difftreelog
Merge branch 'feature/pallet-structure-rebased' of https://github.com/UniqueNetwork/unique-chain into feature/pallet-structure-rebased
in: master
68 files changed
.maintain/scripts/generate_api.shdiffbeforeafterboth7sed -n '/=== SNIP START ===/, /=== SNIP END ===/{ /=== SNIP START ===/! { /=== SNIP END ===/! p } }' $tmp > $raw7sed -n '/=== SNIP START ===/, /=== SNIP END ===/{ /=== SNIP START ===/! { /=== SNIP END ===/! p } }' $tmp > $raw8formatted=$(mktemp)8formatted=$(mktemp)9prettier --use-tabs $raw > $formatted9prettier --use-tabs $raw > $formatted10solhint --fix $formatted111012mv $formatted $OUTPUT11mv $formatted $OUTPUT1312Cargo.lockdiffbeforeafterboth6391 "sp-core",6391 "sp-core",6392 "sp-runtime",6392 "sp-runtime",6393 "sp-std",6393 "sp-std",6394 "struct-versioning",6394 "up-data-structs",6395 "up-data-structs",6395]6396]639663976508 "sp-core",6509 "sp-core",6509 "sp-runtime",6510 "sp-runtime",6510 "sp-std",6511 "sp-std",6512 "struct-versioning",6511 "up-data-structs",6513 "up-data-structs",6512]6514]65136515client/rpc/src/lib.rsdiffbeforeafterboth31use rmrk_rpc::RmrkApi as RmrkRuntimeApi;31use rmrk_rpc::RmrkApi as RmrkRuntimeApi;32use up_data_structs::{32use up_data_structs::{33 RmrkCollectionId, RmrkNftId, RmrkBaseId, RmrkNftChild,33 RmrkCollectionId, RmrkNftId, RmrkBaseId, RmrkNftChild, RmrkThemeName, RmrkPropertyKey,34 RmrkThemeName, RmrkPropertyKey, RmrkResourceId34 RmrkResourceId,35};35};363637pub use rmrk_unique_rpc::RmrkApi;37pub use rmrk_unique_rpc::RmrkApi;80 token: TokenId,80 token: TokenId,81 at: Option<BlockHash>,81 at: Option<BlockHash>,82 ) -> Result<Vec<u8>>;82 ) -> Result<Vec<u8>>;83 #[rpc(name = "unique_variableMetadata")]84 fn variable_metadata(85 &self,86 collection: CollectionId,87 token: TokenId,88 at: Option<BlockHash>,89 ) -> Result<Vec<u8>>;908391 #[rpc(name = "unique_collectionProperties")]84 #[rpc(name = "unique_collectionProperties")]92 fn collection_properties(85 fn collection_properties(93 &self,86 &self,94 collection: CollectionId,87 collection: CollectionId,95 keys: Vec<String>,88 keys: Option<Vec<String>>,96 at: Option<BlockHash>,89 at: Option<BlockHash>,97 ) -> Result<Vec<Property>>;90 ) -> Result<Vec<Property>>;9891101 &self,94 &self,102 collection: CollectionId,95 collection: CollectionId,103 token_id: TokenId,96 token_id: TokenId,104 properties: Vec<String>,97 keys: Option<Vec<String>>,105 at: Option<BlockHash>,98 at: Option<BlockHash>,106 ) -> Result<Vec<Property>>;99 ) -> Result<Vec<Property>>;107100108 #[rpc(name = "unique_propertyPermissions")]101 #[rpc(name = "unique_propertyPermissions")]109 fn property_permissions(102 fn property_permissions(110 &self,103 &self,111 collection: CollectionId,104 collection: CollectionId,112 keys: Vec<String>,105 keys: Option<Vec<String>>,113 at: Option<BlockHash>,106 at: Option<BlockHash>,114 ) -> Result<Vec<PropertyKeyPermission>>;107 ) -> Result<Vec<PropertyKeyPermission>>;115108118 &self,111 &self,119 collection: CollectionId,112 collection: CollectionId,120 token_id: TokenId,113 token_id: TokenId,121 keys: Vec<String>,114 keys: Option<Vec<String>>,122 at: Option<BlockHash>,115 at: Option<BlockHash>,123 ) -> Result<TokenData<CrossAccountId>>;116 ) -> Result<TokenData<CrossAccountId>>;124117429 pass_method!(422 pass_method!(430 const_metadata(collection: CollectionId, token: TokenId) -> Vec<u8>, unique_api423 const_metadata(collection: CollectionId, token: TokenId) -> Vec<u8>, unique_api431 );424 );432 pass_method!(433 variable_metadata(collection: CollectionId, token: TokenId) -> Vec<u8>,434 unique_api435 );436 pass_method!(total_supply(collection: CollectionId) -> u32, unique_api);425 pass_method!(total_supply(collection: CollectionId) -> u32, unique_api);437 pass_method!(account_balance(collection: CollectionId, account: CrossAccountId) -> u32, unique_api);426 pass_method!(account_balance(collection: CollectionId, account: CrossAccountId) -> u32, unique_api);438 pass_method!(balance(collection: CollectionId, account: CrossAccountId, token: TokenId) -> String => |v| v.to_string(), unique_api);427 pass_method!(balance(collection: CollectionId, account: CrossAccountId, token: TokenId) -> String => |v| v.to_string(), unique_api);445 collection: CollectionId,434 collection: CollectionId,446435447 #[map(|keys| string_keys_to_bytes_keys(keys))]436 #[map(|keys| string_keys_to_bytes_keys(keys))]448 keys: Vec<String>437 keys: Option<Vec<String>>449 ) -> Vec<Property>, unique_api);438 ) -> Vec<Property>, unique_api);450439451 pass_method!(token_properties(440 pass_method!(token_properties(452 collection: CollectionId,441 collection: CollectionId,453 token_id: TokenId,442 token_id: TokenId,454443455 #[map(|keys| string_keys_to_bytes_keys(keys))]444 #[map(|keys| string_keys_to_bytes_keys(keys))]456 properties: Vec<String>445 keys: Option<Vec<String>>457 ) -> Vec<Property>, unique_api);446 ) -> Vec<Property>, unique_api);458447459 pass_method!(property_permissions(448 pass_method!(property_permissions(460 collection: CollectionId,449 collection: CollectionId,461450462 #[map(|keys| string_keys_to_bytes_keys(keys))]451 #[map(|keys| string_keys_to_bytes_keys(keys))]463 keys: Vec<String>452 keys: Option<Vec<String>>464 ) -> Vec<PropertyKeyPermission>, unique_api);453 ) -> Vec<PropertyKeyPermission>, unique_api);465454466 pass_method!(token_data(455 pass_method!(token_data(467 collection: CollectionId,456 collection: CollectionId,468 token_id: TokenId,457 token_id: TokenId,469458470 #[map(|keys| string_keys_to_bytes_keys(keys))]459 #[map(|keys| string_keys_to_bytes_keys(keys))]471 keys: Vec<String>,460 keys: Option<Vec<String>>,472 ) -> TokenData<CrossAccountId>, unique_api);461 ) -> TokenData<CrossAccountId>, unique_api);473462474 pass_method!(adminlist(collection: CollectionId) -> Vec<CrossAccountId>, unique_api);463 pass_method!(adminlist(collection: CollectionId) -> Vec<CrossAccountId>, unique_api);549 pass_method!(theme(base_id: RmrkBaseId, theme_name: RmrkThemeName, filter_keys: Option<Vec<RmrkPropertyKey>>) -> Option<Theme>, rmrk_api);538 pass_method!(theme(base_id: RmrkBaseId, theme_name: RmrkThemeName, filter_keys: Option<Vec<RmrkPropertyKey>>) -> Option<Theme>, rmrk_api);550}539}551540552fn string_keys_to_bytes_keys(keys: Vec<String>) -> Vec<Vec<u8>> {541fn string_keys_to_bytes_keys(keys: Option<Vec<String>>) -> Option<Vec<Vec<u8>>> {553 keys.into_iter().map(|key| key.into_bytes()).collect()542 keys.map(|keys| keys.into_iter().map(|key| key.into_bytes()).collect())554}543}555544node/cli/src/service.rsdiffbeforeafterboth72 Balance,73 Index,74 Hash,75 Block,76};776978// RMRK70// RMRKnode/rpc/src/lib.rsdiffbeforeafterbothno syntactic changes
pallets/common/src/erc.rsdiffbeforeafterboth21use sp_std::vec::Vec;21use sp_std::vec::Vec;22use up_data_structs::Property;22use up_data_structs::Property;232324use crate::{Pallet, CollectionHandle, Config};24use crate::{Pallet, CollectionHandle, Config, CollectionProperties};252526/// Does not always represent a full collection, for RFT it is either26/// Does not always represent a full collection, for RFT it is either27/// collection (Implementing ERC721), or specific collection token (Implementing ERC20)27/// collection (Implementing ERC721), or specific collection token (Implementing ERC20)333334#[solidity_interface(name = "CollectionProperties")]34#[solidity_interface(name = "CollectionProperties")]35impl<T: Config> CollectionHandle<T> {35impl<T: Config> CollectionHandle<T> {36 fn set_property(&mut self, caller: caller, key: string, value: string) -> Result<()> {36 fn set_collection_property(&mut self, caller: caller, key: string, value: bytes) -> Result<()> {37 <Pallet<T>>::set_collection_property(38 self,39 &T::CrossAccountId::from_eth(caller),37 let caller = T::CrossAccountId::from_eth(caller);40 Property {41 key: <Vec<u8>>::from(key)38 let key = <Vec<u8>>::from(key)42 .try_into()39 .try_into()43 .map_err(|_| "key too large")?,40 .map_err(|_| "key too large")?;44 value: <Vec<u8>>::from(value)41 let value = value.try_into().map_err(|_| "value too large")?;45 .try_into()4246 .map_err(|_| "value too large")?,43 <Pallet<T>>::set_collection_property(self, &caller, Property { key, value })47 },48 )49 .map_err(dispatch_to_evm::<T>)?;44 .map_err(dispatch_to_evm::<T>)50 Ok(())51 }45 }524653 fn delete_property(&mut self, caller: caller, key: string) -> Result<()> {47 fn delete_collection_property(&mut self, caller: caller, key: string) -> Result<()> {48 let caller = T::CrossAccountId::from_eth(caller);49 let key = <Vec<u8>>::from(key)50 .try_into()51 .map_err(|_| "key too large")?;5253 <Pallet<T>>::delete_collection_property(self, &caller, key).map_err(dispatch_to_evm::<T>)54 }5556 /// Throws error if key not found54 self.set_property(caller, key, string::new())57 fn collection_property(&self, key: string) -> Result<bytes> {55 }58 let key = <Vec<u8>>::from(key)59 .try_into()60 .map_err(|_| "key too large")?;6162 let props = <CollectionProperties<T>>::get(self.id);63 let prop = props.get(&key).ok_or("key not found")?;6465 Ok(prop.to_vec())66 }56}67}5768pallets/common/src/lib.rsdiffbeforeafterboth22use pallet_evm::account::CrossAccountId;22use pallet_evm::account::CrossAccountId;23use frame_support::{23use frame_support::{24 dispatch::{DispatchErrorWithPostInfo, DispatchResultWithPostInfo, Weight, PostDispatchInfo},24 dispatch::{DispatchErrorWithPostInfo, DispatchResultWithPostInfo, Weight, PostDispatchInfo},25 ensure, fail,25 ensure,26 traits::{Imbalance, Get, Currency, WithdrawReasons, ExistenceRequirement},26 traits::{Imbalance, Get, Currency, WithdrawReasons, ExistenceRequirement},27 BoundedVec,27 BoundedVec,28 weights::Pays,28 weights::Pays,29 transactional,29};30};30use pallet_evm::GasWeightMapping;31use pallet_evm::GasWeightMapping;31use up_data_structs::{32use up_data_structs::{32 COLLECTION_NUMBER_LIMIT, Collection, RpcCollection, CollectionId, CreateItemData,33 COLLECTION_NUMBER_LIMIT,34 Collection,35 RpcCollection,36 CollectionId,37 CreateItemData,33 MAX_TOKEN_PREFIX_LENGTH, COLLECTION_ADMINS_LIMIT, MetaUpdatePermission, TokenId,38 MAX_TOKEN_PREFIX_LENGTH,39 COLLECTION_ADMINS_LIMIT,40 TokenId,34 CollectionStats, MAX_TOKEN_OWNERSHIP, CollectionMode, NFT_SPONSOR_TRANSFER_TIMEOUT,41 CollectionStats,42 MAX_TOKEN_OWNERSHIP,43 CollectionMode,44 NFT_SPONSOR_TRANSFER_TIMEOUT,35 FUNGIBLE_SPONSOR_TRANSFER_TIMEOUT, REFUNGIBLE_SPONSOR_TRANSFER_TIMEOUT, MAX_SPONSOR_TIMEOUT,45 FUNGIBLE_SPONSOR_TRANSFER_TIMEOUT,46 REFUNGIBLE_SPONSOR_TRANSFER_TIMEOUT,47 MAX_SPONSOR_TIMEOUT,36 CUSTOM_DATA_LIMIT, CollectionLimits, CustomDataLimit, CreateCollectionData, SponsorshipState,48 CUSTOM_DATA_LIMIT,49 CollectionLimits,50 CreateCollectionData,51 SponsorshipState,37 CreateItemExData, SponsoringRateLimit, budget::Budget, COLLECTION_FIELD_LIMIT, CollectionField,52 CreateItemExData,53 SponsoringRateLimit,54 budget::Budget,55 COLLECTION_FIELD_LIMIT,56 CollectionField,38 PhantomType, Property, Properties, PropertiesPermissionMap, PropertyKey, PropertyPermission,57 PhantomType,58 Property,59 Properties,60 PropertiesPermissionMap,61 PropertyKey,62 PropertyPermission,39 PropertiesError, PropertyKeyPermission, TokenData, TrySet,63 PropertiesError,64 PropertyKeyPermission,65 TokenData,66 TrySetProperty,40 // RMRK67 // RMRK41 RmrkCollectionInfo, RmrkInstanceInfo, RmrkResourceInfo, RmrkPropertyInfo, RmrkBaseInfo, RmrkPartType, RmrkTheme,68 RmrkCollectionInfo,69 RmrkInstanceInfo,70 RmrkResourceInfo,71 RmrkPropertyInfo,72 RmrkBaseInfo,73 RmrkPartType,74 RmrkTheme,42 RmrkNftChild,75 RmrkNftChild,43};76};4477139 );172 );140 Ok(())173 Ok(())141 }174 }142143 pub fn check_can_update_meta(144 &self,145 subject: &T::CrossAccountId,146 item_owner: &T::CrossAccountId,147 ) -> DispatchResult {148 match self.meta_update_permission {149 MetaUpdatePermission::ItemOwner => {150 ensure!(subject == item_owner, <Error<T>>::NoPermission);151 Ok(())152 }153 MetaUpdatePermission::Admin => self.check_is_owner_or_admin(subject),154 MetaUpdatePermission::None => fail!(<Error<T>>::NoPermission),155 }156 }157}175}158176159#[frame_support::pallet]177#[frame_support::pallet]316 CollectionTokenPrefixLimitExceeded,334 CollectionTokenPrefixLimitExceeded,317 /// Total collections bound exceeded.335 /// Total collections bound exceeded.318 TotalCollectionsLimitExceeded,336 TotalCollectionsLimitExceeded,319 /// variable_data exceeded data limit.320 TokenVariableDataLimitExceeded,321 /// Exceeded max admin count337 /// Exceeded max admin count322 CollectionAdminCountExceeded,338 CollectionAdminCountExceeded,323 /// Collection limit bounds per collection exceeded339 /// Collection limit bounds per collection exceeded366 /// Tried to store more property keys than allowed382 /// Tried to store more property keys than allowed367 PropertyLimitReached,383 PropertyLimitReached,368384369 /// Unable to read array of unbounded keys385 /// Property key is too long370 UnableToReadUnboundedKeys,386 PropertyKeyIsTooLong,371387372 /// Only ASCII letters, digits, and '_', '-' are allowed388 /// Only ASCII letters, digits, and '_', '-' are allowed373 InvalidCharacterInPropertyKey,389 InvalidCharacterInPropertyKey,580 schema_version,596 schema_version,581 sponsorship,597 sponsorship,582 limits,598 limits,583 meta_update_permission,584 } = <CollectionById<T>>::get(collection)?;599 } = <CollectionById<T>>::get(collection)?;585600586 let token_property_permissions = <CollectionPropertyPermissions<T>>::get(collection)601 let token_property_permissions = <CollectionPropertyPermissions<T>>::get(collection)610 schema_version,625 schema_version,611 sponsorship,626 sponsorship,612 limits,627 limits,613 meta_update_permission,614 offchain_schema: <CollectionData<T>>::get((628 offchain_schema: <CollectionData<T>>::get((615 collection,629 collection,616 CollectionField::OffchainSchema,630 CollectionField::OffchainSchema,671 .limits685 .limits672 .map(|limits| Self::clamp_limits(data.mode.clone(), &Default::default(), limits))686 .map(|limits| Self::clamp_limits(data.mode.clone(), &Default::default(), limits))673 .unwrap_or_else(|| Ok(CollectionLimits::default()))?,687 .unwrap_or_else(|| Ok(CollectionLimits::default()))?,674 meta_update_permission: data.meta_update_permission.unwrap_or_default(),675 };688 };676689677 let mut collection_properties = up_data_structs::CollectionProperties::get();690 let mut collection_properties = up_data_structs::CollectionProperties::get();775 Ok(())788 Ok(())776 }789 }777790791 #[transactional]778 pub fn set_collection_properties(792 pub fn set_collection_properties(779 collection: &CollectionHandle<T>,793 collection: &CollectionHandle<T>,780 sender: &T::CrossAccountId,794 sender: &T::CrossAccountId,807 Ok(())821 Ok(())808 }822 }809823824 #[transactional]810 pub fn delete_collection_properties(825 pub fn delete_collection_properties(811 collection: &CollectionHandle<T>,826 collection: &CollectionHandle<T>,812 sender: &T::CrossAccountId,827 sender: &T::CrossAccountId,849 Ok(())864 Ok(())850 }865 }851866867 #[transactional]852 pub fn set_property_permissions(868 pub fn set_property_permissions(853 collection: &CollectionHandle<T>,869 collection: &CollectionHandle<T>,854 sender: &T::CrossAccountId,870 sender: &T::CrossAccountId,867 keys.into_iter()883 keys.into_iter()868 .map(|key| -> Result<PropertyKey, DispatchError> {884 .map(|key| -> Result<PropertyKey, DispatchError> {869 key.try_into()885 key.try_into()870 .map_err(|_| <Error<T>>::UnableToReadUnboundedKeys.into())886 .map_err(|_| <Error<T>>::PropertyKeyIsTooLong.into())871 })887 })872 .collect::<Result<Vec<PropertyKey>, DispatchError>>()888 .collect::<Result<Vec<PropertyKey>, DispatchError>>()873 }889 }874890875 pub fn check_property_key(key: &PropertyKey) -> Result<(), DispatchError> {876 let key_str = sp_std::str::from_utf8(key.as_slice())877 .map_err(|_| <Error<T>>::InvalidCharacterInPropertyKey)?;878879 for ch in key_str.chars() {880 if !ch.is_ascii_alphanumeric() && ch != '_' && ch != '-' {881 return Err(<Error<T>>::InvalidCharacterInPropertyKey.into());882 }883 }884885 Ok(())886 }887888 pub fn filter_collection_properties(891 pub fn filter_collection_properties(889 collection_id: CollectionId,892 collection_id: CollectionId,890 keys: Vec<PropertyKey>,893 keys: Option<Vec<PropertyKey>>,891 ) -> Result<Vec<Property>, DispatchError> {894 ) -> Result<Vec<Property>, DispatchError> {892 let properties = Self::collection_properties(collection_id);895 let properties = Self::collection_properties(collection_id);893896894 let properties = keys897 let properties = keys895 .into_iter()898 .map(|keys| {899 keys.into_iter()896 .filter_map(|key| {900 .filter_map(|key| {897 properties.get(&key).map(|value| Property {901 properties.get(&key).map(|value| Property {898 key,902 key,899 value: value.clone(),903 value: value.clone(),900 })904 })905 })906 .collect()901 })907 })902 .collect();908 .unwrap_or_else(|| {909 properties910 .iter()911 .map(|(key, value)| Property {912 key: key.clone(),913 value: value.clone(),914 })915 .collect()916 });903917904 Ok(properties)918 Ok(properties)905 }919 }906920907 pub fn filter_property_permissions(921 pub fn filter_property_permissions(908 collection_id: CollectionId,922 collection_id: CollectionId,909 keys: Vec<PropertyKey>,923 keys: Option<Vec<PropertyKey>>,910 ) -> Result<Vec<PropertyKeyPermission>, DispatchError> {924 ) -> Result<Vec<PropertyKeyPermission>, DispatchError> {911 let permissions = Self::property_permissions(collection_id);925 let permissions = Self::property_permissions(collection_id);912926913 let key_permissions = keys927 let key_permissions = keys914 .into_iter()928 .map(|keys| {929 keys.into_iter()915 .filter_map(|key| {930 .filter_map(|key| {931 permissions932 .get(&key)933 .map(|permission| PropertyKeyPermission {934 key,935 permission: permission.clone(),936 })937 })938 .collect()939 })940 .unwrap_or_else(|| {916 permissions941 permissions917 .get(&key)942 .iter()918 .map(|permission| PropertyKeyPermission {943 .map(|(key, permission)| PropertyKeyPermission {919 key,944 key: key.clone(),920 permission: permission.clone(),945 permission: permission.clone(),921 })946 })922 })947 .collect()923 .collect();948 });924949925 Ok(key_permissions)950 Ok(key_permissions)926 }951 }1086 fn approve() -> Weight;1111 fn approve() -> Weight;1087 fn transfer_from() -> Weight;1112 fn transfer_from() -> Weight;1088 fn burn_from() -> Weight;1113 fn burn_from() -> Weight;1089 fn set_variable_metadata(bytes: u32) -> Weight;1090}1114}109111151092pub trait CommonCollectionOperations<T: Config> {1116pub trait CommonCollectionOperations<T: Config> {1174 token: TokenId,1198 token: TokenId,1175 amount: u128,1199 amount: u128,1176 nesting_budget: &dyn Budget,1200 nesting_budget: &dyn Budget,1177 ) -> DispatchResultWithPostInfo;11781179 fn set_variable_metadata(1180 &self,1181 sender: T::CrossAccountId,1182 token: TokenId,1183 data: BoundedVec<u8, CustomDataLimit>,1184 ) -> DispatchResultWithPostInfo;1201 ) -> DispatchResultWithPostInfo;118512021186 fn check_nesting(1203 fn check_nesting(119812151199 fn token_owner(&self, token: TokenId) -> Option<T::CrossAccountId>;1216 fn token_owner(&self, token: TokenId) -> Option<T::CrossAccountId>;1200 fn const_metadata(&self, token: TokenId) -> Vec<u8>;1217 fn const_metadata(&self, token: TokenId) -> Vec<u8>;1201 fn variable_metadata(&self, token: TokenId) -> Vec<u8>;1218 fn token_properties(&self, token_id: TokenId, keys: Option<Vec<PropertyKey>>) -> Vec<Property>;1202 fn token_properties(&self, token_id: TokenId, keys: Vec<PropertyKey>) -> Vec<Property>;1203 /// Amount of unique collection tokens1219 /// Amount of unique collection tokens1204 fn total_supply(&self) -> u32;1220 fn total_supply(&self) -> u32;1205 /// Amount of different tokens account has (Applicable to nonfungible/refungible)1221 /// Amount of different tokens account has (Applicable to nonfungible/refungible)1232 PropertiesError::NoSpaceForProperty => Self::NoSpaceForProperty,1248 PropertiesError::NoSpaceForProperty => Self::NoSpaceForProperty,1233 PropertiesError::PropertyLimitReached => Self::PropertyLimitReached,1249 PropertiesError::PropertyLimitReached => Self::PropertyLimitReached,1234 PropertiesError::InvalidCharacterInPropertyKey => Self::InvalidCharacterInPropertyKey,1250 PropertiesError::InvalidCharacterInPropertyKey => Self::InvalidCharacterInPropertyKey,1251 PropertiesError::PropertyKeyIsTooLong => Self::PropertyKeyIsTooLong,1235 PropertiesError::EmptyPropertyKey => Self::EmptyPropertyKey,1252 PropertiesError::EmptyPropertyKey => Self::EmptyPropertyKey,1236 }1253 }1237 }1254 }pallets/evm-contract-helpers/src/stubs/ContractHelpers.rawdiffbeforeafterbothbinary blob — no preview
pallets/fungible/src/common.rsdiffbeforeafterboth161617use core::marker::PhantomData;17use core::marker::PhantomData;181819use frame_support::{dispatch::DispatchResultWithPostInfo, ensure, fail, weights::Weight, BoundedVec};19use frame_support::{dispatch::DispatchResultWithPostInfo, ensure, fail, weights::Weight};20use up_data_structs::{TokenId, CollectionId, CreateItemExData, budget::Budget};20use up_data_structs::{TokenId, CollectionId, CreateItemExData, budget::Budget};21use pallet_common::{CommonCollectionOperations, CommonWeightInfo, with_weight};21use pallet_common::{CommonCollectionOperations, CommonWeightInfo, with_weight};22use sp_runtime::ArithmeticError;22use sp_runtime::ArithmeticError;23use sp_std::{vec::Vec, vec};23use sp_std::{vec::Vec, vec};24use up_data_structs::{CustomDataLimit, Property, PropertyKey, PropertyKeyPermission};24use up_data_structs::{Property, PropertyKey, PropertyKeyPermission};252526use crate::{26use crate::{27 Allowance, Balance, Config, Error, FungibleHandle, Pallet, SelfWeightOf, weights::WeightInfo,27 Allowance, Balance, Config, Error, FungibleHandle, Pallet, SelfWeightOf, weights::WeightInfo,86 <SelfWeightOf<T>>::burn_from()86 <SelfWeightOf<T>>::burn_from()87 }87 }8889 fn set_variable_metadata(_bytes: u32) -> Weight {90 // Error91 092 }93}88}948995impl<T: Config> CommonCollectionOperations<T> for FungibleHandle<T> {90impl<T: Config> CommonCollectionOperations<T> for FungibleHandle<T> {287 fail!(<Error<T>>::SettingPropertiesNotAllowed)282 fail!(<Error<T>>::SettingPropertiesNotAllowed)288 }283 }289290 fn set_variable_metadata(291 &self,292 _sender: T::CrossAccountId,293 _token: TokenId,294 _data: BoundedVec<u8, CustomDataLimit>,295 ) -> DispatchResultWithPostInfo {296 fail!(<Error<T>>::FungibleItemsDontHaveData)297 }298284299 fn check_nesting(285 fn check_nesting(300 &self,286 &self,332 fn const_metadata(&self, _token: TokenId) -> Vec<u8> {318 fn const_metadata(&self, _token: TokenId) -> Vec<u8> {333 Vec::new()319 Vec::new()334 }320 }335 fn variable_metadata(&self, _token: TokenId) -> Vec<u8> {336 Vec::new()337 }338321339 fn token_properties(&self, _token_id: TokenId, _keys: Vec<PropertyKey>) -> Vec<Property> {322 fn token_properties(323 &self,324 _token_id: TokenId,325 _keys: Option<Vec<PropertyKey>>,326 ) -> Vec<Property> {340 Vec::new()327 Vec::new()341 }328 }pallets/fungible/src/stubs/UniqueFungible.rawdiffbeforeafterbothbinary blob — no preview
pallets/fungible/src/stubs/UniqueFungible.soldiffbeforeafterboth31 );23}32}2425// Selector: 56fd500b26contract CollectionProperties is Dummy, ERC165 {27 // Selector: setProperty(string,string) 62d9491f28 function setProperty(string memory key, string memory value) public {29 require(false, stub_error);30 key;31 value;32 dummy = 0;33 }34 // Selector: deleteProperty(string) 3424191435 function deleteProperty(string memory key) public {36 require(false, stub_error);37 key;38 dummy = 0;39 }40}413342// Selector: 79cc679034// Selector: 79cc679043contract ERC20UniqueExtensions is Dummy, ERC165 {35contract ERC20UniqueExtensions is Dummy, ERC165 {119 }127 }120}128}129130// Selector: 9b5e29c5131contract CollectionProperties is Dummy, ERC165 {132 // Selector: setCollectionProperty(string,bytes) 2f073f66133 function setCollectionProperty(string memory key, bytes memory value)134 public135 {136 require(false, stub_error);137 key;138 value;139 dummy = 0;140 }141142 // Selector: deleteCollectionProperty(string) 7b7debce143 function deleteCollectionProperty(string memory key) public {144 require(false, stub_error);145 key;146 dummy = 0;147 }148149 // Throws error if key not found150 //151 // Selector: collectionProperty(string) cf24fd6d152 function collectionProperty(string memory key)153 public154 view155 returns (bytes memory)156 {157 require(false, stub_error);158 key;159 dummy;160 return hex"";161 }162}121163122contract UniqueFungible is Dummy, ERC165, ERC20, ERC20UniqueExtensions, CollectionProperties {164contract UniqueFungible is165 Dummy,pallets/nonfungible/Cargo.tomldiffbeforeafterboth27scale-info = { version = "2.0.1", default-features = false, features = [27scale-info = { version = "2.0.1", default-features = false, features = [28 "derive",28 "derive",29] }29] }30struct-versioning = { path = "../../crates/struct-versioning" }303131[features]32[features]32default = ["std"]33default = ["std"]pallets/nonfungible/src/benchmarking.rsdiffbeforeafterboth282829fn create_max_item_data<T: Config>(owner: T::CrossAccountId) -> CreateItemData<T> {29fn create_max_item_data<T: Config>(owner: T::CrossAccountId) -> CreateItemData<T> {30 let const_data = create_data::<CUSTOM_DATA_LIMIT>();30 let const_data = create_data::<CUSTOM_DATA_LIMIT>();31 let variable_data = create_data::<CUSTOM_DATA_LIMIT>();32 CreateItemData::<T> {31 CreateItemData::<T> { const_data, owner }33 const_data,34 variable_data,35 owner,36 }37}32}38fn create_max_item<T: Config>(33fn create_max_item<T: Config>(126 <Pallet<T>>::set_allowance(&collection, &sender, item, Some(&burner))?;121 <Pallet<T>>::set_allowance(&collection, &sender, item, Some(&burner))?;127 }: {<Pallet<T>>::burn_from(&collection, &burner, &sender, item, &Unlimited)?}122 }: {<Pallet<T>>::burn_from(&collection, &burner, &sender, item, &Unlimited)?}128129 set_variable_metadata {130 let b in 0..CUSTOM_DATA_LIMIT;131 bench_init!{132 owner: sub; collection: collection(owner);133 owner: cross_from_sub; sender: cross_sub;134 };135 let item = create_max_item(&collection, &owner, sender.clone())?;136 let data = create_var_data(b).try_into().unwrap();137 }: {<Pallet<T>>::set_variable_metadata(&collection, &sender, item, data)?}138}123}139124pallets/nonfungible/src/common.rsdiffbeforeafterboth161617use core::marker::PhantomData;17use core::marker::PhantomData;181819use frame_support::{dispatch::DispatchResultWithPostInfo, ensure, fail, weights::Weight, BoundedVec};19use frame_support::{dispatch::DispatchResultWithPostInfo, ensure, fail, weights::Weight};20use up_data_structs::{20use up_data_structs::{21 TokenId, CustomDataLimit, CreateItemExData, CollectionId, budget::Budget, Property,21 TokenId, CreateItemExData, CollectionId, budget::Budget, Property, PropertyKey,22 PropertyKey, PropertyKeyPermission,22 PropertyKeyPermission,23};23};24use pallet_common::{CommonCollectionOperations, CommonWeightInfo, with_weight};24use pallet_common::{CommonCollectionOperations, CommonWeightInfo, with_weight};87 <SelfWeightOf<T>>::burn_from()87 <SelfWeightOf<T>>::burn_from()88 }88 }8990 fn set_variable_metadata(bytes: u32) -> Weight {91 <SelfWeightOf<T>>::set_variable_metadata(bytes)92 }93}89}949095fn map_create_data<T: Config>(91fn map_create_data<T: Config>(99 match data {95 match data {100 up_data_structs::CreateItemData::NFT(data) => Ok(CreateItemData::<T> {96 up_data_structs::CreateItemData::NFT(data) => Ok(CreateItemData::<T> {101 const_data: data.const_data,97 const_data: data.const_data,102 variable_data: data.variable_data,103 properties: data.properties,98 properties: data.properties,104 owner: to.clone(),99 owner: to.clone(),105 }),100 }),184 let weight = <CommonWeights<T>>::delete_collection_properties(property_keys.len() as u32);179 let weight = <CommonWeights<T>>::delete_collection_properties(property_keys.len() as u32);185180186 with_weight(181 with_weight(187 <Pallet<T>>::delete_collection_properties(self, &sender, property_keys),182 <Pallet<T>>::delete_collection_properties(self, sender, property_keys),188 weight,183 weight,189 )184 )190 }185 }327 }322 }328 }323 }329330 fn set_variable_metadata(331 &self,332 sender: T::CrossAccountId,333 token: TokenId,334 data: BoundedVec<u8, CustomDataLimit>,335 ) -> DispatchResultWithPostInfo {336 let len = data.len();337 with_weight(338 <Pallet<T>>::set_variable_metadata(self, &sender, token, data),339 <CommonWeights<T>>::set_variable_metadata(len as u32),340 )341 }342324343 fn check_nesting(325 fn check_nesting(344 &self,326 &self,379 .unwrap_or_default()361 .unwrap_or_default()380 .into_inner()362 .into_inner()381 }363 }382 fn variable_metadata(&self, token: TokenId) -> Vec<u8> {383 <TokenData<T>>::get((self.id, token))384 .map(|t| t.variable_data)385 .unwrap_or_default()386 .into_inner()387 }388364389 fn token_properties(&self, token_id: TokenId, keys: Vec<PropertyKey>) -> Vec<Property> {365 fn token_properties(&self, token_id: TokenId, keys: Option<Vec<PropertyKey>>) -> Vec<Property> {390 let properties = <Pallet<T>>::token_properties((self.id, token_id));366 let properties = <Pallet<T>>::token_properties((self.id, token_id));391367368 keys.map(|keys| {392 keys.into_iter()369 keys.into_iter()393 .filter_map(|key| {370 .filter_map(|key| {394 properties.get(&key).map(|value| Property {371 properties.get(&key).map(|value| Property {397 })374 })398 })375 })399 .collect()376 .collect()377 })378 .unwrap_or_else(|| {379 properties380 .iter()381 .map(|(key, value)| Property {382 key: key.clone(),383 value: value.clone(),384 })385 .collect()386 })400 }387 }401388402 fn total_supply(&self) -> u32 {389 fn total_supply(&self) -> u32 {pallets/nonfungible/src/erc.rsdiffbeforeafterboth21};21};22use evm_coder::{ToLog, execution::*, generate_stubgen, solidity, solidity_interface, types::*, weight};22use evm_coder::{ToLog, execution::*, generate_stubgen, solidity, solidity_interface, types::*, weight};23use frame_support::BoundedVec;23use frame_support::BoundedVec;24use up_data_structs::{TokenId, SchemaVersion};24use up_data_structs::{TokenId, SchemaVersion, PropertyPermission, PropertyKeyPermission, Property};25use pallet_evm_coder_substrate::dispatch_to_evm;25use pallet_evm_coder_substrate::dispatch_to_evm;26use sp_core::{H160, U256};26use sp_core::{H160, U256};27use sp_std::{vec::Vec, vec};27use sp_std::vec::Vec;28use pallet_common::{28use pallet_common::{29 erc::{CommonEvmHandler, PrecompileResult, CollectionPropertiesCall},29 erc::{CommonEvmHandler, PrecompileResult, CollectionPropertiesCall},30 CollectionHandle,30 CollectionHandle,353536use crate::{36use crate::{37 AccountBalance, Config, CreateItemData, NonfungibleHandle, Pallet, TokenData, TokensMinted,37 AccountBalance, Config, CreateItemData, NonfungibleHandle, Pallet, TokenData, TokensMinted,38 SelfWeightOf, weights::WeightInfo,38 SelfWeightOf, weights::WeightInfo, TokenProperties,39};39};4041#[solidity_interface(name = "TokenProperties")]42impl<T: Config> NonfungibleHandle<T> {43 fn set_token_property_permission(44 &mut self,45 caller: caller,46 key: string,47 is_mutable: bool,48 collection_admin: bool,49 token_owner: bool,50 ) -> Result<()> {51 let caller = T::CrossAccountId::from_eth(caller);52 <Pallet<T>>::set_property_permission(53 self,54 &caller,55 PropertyKeyPermission {56 key: <Vec<u8>>::from(key)57 .try_into()58 .map_err(|_| "too long key")?,59 permission: PropertyPermission {60 mutable: is_mutable,61 collection_admin,62 token_owner,63 },64 },65 )66 .map_err(dispatch_to_evm::<T>)67 }6869 fn set_property(70 &mut self,71 caller: caller,72 token_id: uint256,73 key: string,74 value: bytes,75 ) -> Result<()> {76 let caller = T::CrossAccountId::from_eth(caller);77 let token_id: u32 = token_id.try_into().map_err(|_| "token id overflow")?;78 let key = <Vec<u8>>::from(key)79 .try_into()80 .map_err(|_| "key too long")?;81 let value = value.try_into().map_err(|_| "value too long")?;8283 <Pallet<T>>::set_token_property(self, &caller, TokenId(token_id), Property { key, value })84 .map_err(dispatch_to_evm::<T>)85 }8687 fn delete_property(&mut self, token_id: uint256, caller: caller, key: string) -> Result<()> {88 let caller = T::CrossAccountId::from_eth(caller);89 let token_id: u32 = token_id.try_into().map_err(|_| "token id overflow")?;90 let key = <Vec<u8>>::from(key)91 .try_into()92 .map_err(|_| "key too long")?;9394 <Pallet<T>>::delete_token_property(self, &caller, TokenId(token_id), key)95 .map_err(dispatch_to_evm::<T>)96 }9798 /// Throws error if key not found99 fn property(&self, token_id: uint256, key: string) -> Result<bytes> {100 let token_id: u32 = token_id.try_into().map_err(|_| "token id overflow")?;101 let key = <Vec<u8>>::from(key)102 .try_into()103 .map_err(|_| "key too long")?;104105 let props = <TokenProperties<T>>::get((self.id, token_id));106 let prop = props.get(&key).ok_or("key not found")?;107108 Ok(prop.to_vec())109 }110}4011141fn error_unsupported_schema_version() -> Error {112fn error_unsupported_schema_version() -> Error {42 alloc::format!(113 alloc::format!(274 &caller,345 &caller,275 CreateItemData::<T> {346 CreateItemData::<T> {276 const_data: BoundedVec::default(),347 const_data: BoundedVec::default(),277 variable_data: BoundedVec::default(),278 properties: BoundedVec::default(),348 properties: BoundedVec::default(),279 owner: to,349 owner: to,280 },350 },322 const_data: Vec::<u8>::from(token_uri)392 const_data: Vec::<u8>::from(token_uri)323 .try_into()393 .try_into()324 .map_err(|_| "token uri is too long")?,394 .map_err(|_| "token uri is too long")?,325 variable_data: BoundedVec::default(),326 properties: BoundedVec::default(),395 properties: BoundedVec::default(),327 owner: to,396 owner: to,328 },397 },387 .into())456 .into())388 }457 }389390 #[weight(<SelfWeightOf<T>>::set_variable_metadata(data.len() as u32))]391 fn set_variable_metadata(392 &mut self,393 caller: caller,394 token_id: uint256,395 data: bytes,396 ) -> Result<void> {397 let caller = T::CrossAccountId::from_eth(caller);398 let token = token_id.try_into()?;399400 <Pallet<T>>::set_variable_metadata(401 self,402 &caller,403 token,404 data.try_into()405 .map_err(|_| "metadata size exceeded limit")?,406 )407 .map_err(dispatch_to_evm::<T>)?;408 Ok(())409 }410411 fn get_variable_metadata(&self, token_id: uint256) -> Result<bytes> {412 self.consume_store_reads(1)?;413 let token: TokenId = token_id.try_into()?;414415 Ok(<TokenData<T>>::get((self.id, token))416 .ok_or("token not found")?417 .variable_data418 .into_inner())419 }420458421 #[weight(<SelfWeightOf<T>>::create_multiple_items(token_ids.len() as u32))]459 #[weight(<SelfWeightOf<T>>::create_multiple_items(token_ids.len() as u32))]422 fn mint_bulk(&mut self, caller: caller, to: address, token_ids: Vec<uint256>) -> Result<bool> {460 fn mint_bulk(&mut self, caller: caller, to: address, token_ids: Vec<uint256>) -> Result<bool> {440 let data = (0..total_tokens)478 let data = (0..total_tokens)441 .map(|_| CreateItemData::<T> {479 .map(|_| CreateItemData::<T> {442 const_data: BoundedVec::default(),480 const_data: BoundedVec::default(),443 variable_data: BoundedVec::default(),444 properties: BoundedVec::default(),481 properties: BoundedVec::default(),445 owner: to.clone(),482 owner: to.clone(),446 })483 })484 const_data: Vec::<u8>::from(token_uri)521 const_data: Vec::<u8>::from(token_uri)485 .try_into()522 .try_into()486 .map_err(|_| "token uri is too long")?,523 .map_err(|_| "token uri is too long")?,487 variable_data: vec![].try_into().unwrap(),488 properties: BoundedVec::default(),524 properties: BoundedVec::default(),489 owner: to.clone(),525 owner: to.clone(),490 });526 });505 ERC721UniqueExtensions,541 ERC721UniqueExtensions,506 ERC721Mintable,542 ERC721Mintable,507 ERC721Burnable,543 ERC721Burnable,508 via("CollectionHandle<T>", common_mut, CollectionProperties)544 via("CollectionHandle<T>", common_mut, CollectionProperties),545 TokenProperties,509 )546 )510)]547)]511impl<T: Config> NonfungibleHandle<T> {}548impl<T: Config> NonfungibleHandle<T> {}pallets/nonfungible/src/lib.rsdiffbeforeafterboth181819use erc::ERC721Events;19use erc::ERC721Events;20use evm_coder::ToLog;20use evm_coder::ToLog;21use frame_support::{BoundedVec, ensure, fail};21use frame_support::{BoundedVec, ensure, fail, transactional};22use up_data_structs::{22use up_data_structs::{23 AccessMode, CollectionId, CustomDataLimit, TokenId, CreateCollectionData, CreateNftExData,23 AccessMode, CollectionId, CustomDataLimit, TokenId, CreateCollectionData, CreateNftExData,24 mapping::TokenAddressMapping, NestingRule, budget::Budget, Property, PropertyPermission,24 mapping::TokenAddressMapping, NestingRule, budget::Budget, Property, PropertyPermission,25 PropertyKey, PropertyKeyPermission, Properties, TrySet,25 PropertyKey, PropertyKeyPermission, Properties, TrySetProperty,26};26};27use pallet_evm::{account::CrossAccountId, Pallet as PalletEvm};27use pallet_evm::{account::CrossAccountId, Pallet as PalletEvm};28use pallet_common::{28use pallet_common::{49pub type CreateItemData<T> = CreateNftExData<<T as pallet_evm::account::Config>::CrossAccountId>;49pub type CreateItemData<T> = CreateNftExData<<T as pallet_evm::account::Config>::CrossAccountId>;50pub(crate) type SelfWeightOf<T> = <T as Config>::WeightInfo;50pub(crate) type SelfWeightOf<T> = <T as Config>::WeightInfo;515152#[struct_versioning::versioned(version = 2, upper)]52#[derive(Encode, Decode, TypeInfo, MaxEncodedLen)]53#[derive(Encode, Decode, TypeInfo, MaxEncodedLen)]53pub struct ItemData<CrossAccountId> {54pub struct ItemData<CrossAccountId> {54 pub const_data: BoundedVec<u8, CustomDataLimit>,55 pub const_data: BoundedVec<u8, CustomDataLimit>,5657 #[version(..2)]55 pub variable_data: BoundedVec<u8, CustomDataLimit>,58 pub variable_data: BoundedVec<u8, CustomDataLimit>,5956 pub owner: CrossAccountId,60 pub owner: CrossAccountId,57}61}586259#[frame_support::pallet]63#[frame_support::pallet]60pub mod pallet {64pub mod pallet {61 use super::*;65 use super::*;62 use frame_support::{Blake2_128Concat, Twox64Concat, pallet_prelude::*, storage::Key};66 use frame_support::{67 Blake2_128Concat, Twox64Concat, pallet_prelude::*, storage::Key, traits::StorageVersion,68 };69 use frame_system::pallet_prelude::*;63 use up_data_structs::{CollectionId, TokenId};70 use up_data_structs::{CollectionId, TokenId};64 use super::weights::WeightInfo;71 use super::weights::WeightInfo;657278 type WeightInfo: WeightInfo;85 type WeightInfo: WeightInfo;79 }86 }8788 const STORAGE_VERSION: StorageVersion = StorageVersion::new(1);808981 #[pallet::pallet]90 #[pallet::pallet]91 #[pallet::storage_version(STORAGE_VERSION)]82 #[pallet::generate_store(pub(super) trait Store)]92 #[pallet::generate_store(pub(super) trait Store)]83 pub struct Pallet<T>(_);93 pub struct Pallet<T>(_);8494134 QueryKind = OptionQuery,144 QueryKind = OptionQuery,135 >;145 >;146147 #[pallet::hooks]148 impl<T: Config> Hooks<BlockNumberFor<T>> for Pallet<T> {149 fn on_runtime_upgrade() -> Weight {150 if StorageVersion::get::<Pallet<T>>() < StorageVersion::new(1) {151 <TokenData<T>>::translate_values::<ItemDataVersion1<T::CrossAccountId>, _>(|v| {152 Some(<ItemDataVersion2<T::CrossAccountId>>::from(v))153 })154 }155156 0157 }158 }136}159}137160138pub struct NonfungibleHandle<T: Config>(pallet_common::CollectionHandle<T>);161pub struct NonfungibleHandle<T: Config>(pallet_common::CollectionHandle<T>);286 Ok(())309 Ok(())287 }310 }288311312 #[transactional]289 pub fn set_token_properties(313 pub fn set_token_properties(290 collection: &NonfungibleHandle<T>,314 collection: &NonfungibleHandle<T>,291 sender: &T::CrossAccountId,315 sender: &T::CrossAccountId,329 ) -> DispatchResult {353 ) -> DispatchResult {330 let permission = <PalletCommon<T>>::property_permissions(collection.id)354 let permission = <PalletCommon<T>>::property_permissions(collection.id)331 .get(property_key)355 .get(property_key)332 .map(|p| p.clone())356 .cloned()333 .unwrap_or(PropertyPermission::none());357 .unwrap_or_else(PropertyPermission::none);334358335 let token_data = <TokenData<T>>::get((collection.id, token_id))359 let token_data = <TokenData<T>>::get((collection.id, token_id))336 .ok_or(<CommonError<T>>::TokenNotFound)?;360 .ok_or(<CommonError<T>>::TokenNotFound)?;369 }393 }370 }394 }371395396 #[transactional]372 pub fn delete_token_properties(397 pub fn delete_token_properties(373 collection: &NonfungibleHandle<T>,398 collection: &NonfungibleHandle<T>,374 sender: &T::CrossAccountId,399 sender: &T::CrossAccountId,406 <PalletCommon<T>>::set_property_permissions(collection, sender, property_permissions)431 <PalletCommon<T>>::set_property_permissions(collection, sender, property_permissions)407 }432 }433434 pub fn set_property_permission(435 collection: &CollectionHandle<T>,436 sender: &T::CrossAccountId,437 permission: PropertyKeyPermission,438 ) -> DispatchResult {439 <PalletCommon<T>>::set_property_permission(collection, sender, permission)440 }408441409 pub fn transfer(442 pub fn transfer(410 collection: &NonfungibleHandle<T>,443 collection: &NonfungibleHandle<T>,577 (collection.id, token),610 (collection.id, token),578 ItemData {611 ItemData {579 const_data: data.const_data,612 const_data: data.const_data,580 variable_data: data.variable_data,581 owner: data.owner.clone(),613 owner: data.owner.clone(),582 },614 },583 );615 );775 Self::burn(collection, from, token)807 Self::burn(collection, from, token)776 }808 }777778 pub fn set_variable_metadata(779 collection: &NonfungibleHandle<T>,780 sender: &T::CrossAccountId,781 token: TokenId,782 data: BoundedVec<u8, CustomDataLimit>,783 ) -> DispatchResult {784 let token_data =785 <TokenData<T>>::get((collection.id, token)).ok_or(<CommonError<T>>::TokenNotFound)?;786 collection.check_can_update_meta(sender, &token_data.owner)?;787788 // =========789790 <TokenData<T>>::insert(791 (collection.id, token),792 ItemData {793 variable_data: data,794 ..token_data795 },796 );797 Ok(())798 }799809800 pub fn check_nesting(810 pub fn check_nesting(801 handle: &NonfungibleHandle<T>,811 handle: &NonfungibleHandle<T>,pallets/nonfungible/src/stubs/UniqueNFT.rawdiffbeforeafterbothbinary blob — no preview
pallets/nonfungible/src/stubs/UniqueNFT.soldiffbeforeafterboth51 event MintingFinished();51 event MintingFinished();52}52}5354// Selector: 4136937755contract TokenProperties is Dummy, ERC165 {56 // Selector: setTokenPropertyPermission(string,bool,bool,bool) 222d97fa57 function setTokenPropertyPermission(58 string memory key,59 bool isMutable,60 bool collectionAdmin,61 bool tokenOwner62 ) public {63 require(false, stub_error);64 key;65 isMutable;66 collectionAdmin;67 tokenOwner;68 dummy = 0;69 }7071 // Selector: setProperty(uint256,string,bytes) 1752d67b72 function setProperty(73 uint256 tokenId,74 string memory key,75 bytes memory value76 ) public {77 require(false, stub_error);78 tokenId;79 key;80 value;81 dummy = 0;82 }8384 // Selector: deleteProperty(uint256,string) 066111d185 function deleteProperty(uint256 tokenId, string memory key) public {86 require(false, stub_error);87 tokenId;88 key;89 dummy = 0;90 }9192 // Throws error if key not found93 //94 // Selector: property(uint256,string) 7228c32795 function property(uint256 tokenId, string memory key)96 public97 view98 returns (bytes memory)99 {100 require(false, stub_error);101 tokenId;102 key;103 dummy;104 return hex"";105 }106}5310754// Selector: 42966c68108// Selector: 42966c6855contract ERC721Burnable is Dummy, ERC165 {109contract ERC721Burnable is Dummy, ERC165 {276 }330 }277}331}332333// Selector: 9b5e29c5334contract CollectionProperties is Dummy, ERC165 {335 // Selector: setCollectionProperty(string,bytes) 2f073f66336 function setCollectionProperty(string memory key, bytes memory value)337 public338 {339 require(false, stub_error);340 key;341 value;342 dummy = 0;343 }344345 // Selector: deleteCollectionProperty(string) 7b7debce346 function deleteCollectionProperty(string memory key) public {347 require(false, stub_error);348 key;349 dummy = 0;350 }351352 // Throws error if key not found353 //354 // Selector: collectionProperty(string) cf24fd6d355 function collectionProperty(string memory key)356 public357 view358 returns (bytes memory)359 {360 require(false, stub_error);361 key;362 dummy;363 return hex"";364 }365}278366279// Selector: e562194d367// Selector: d74d154f280contract ERC721UniqueExtensions is Dummy, ERC165 {368contract ERC721UniqueExtensions is Dummy, ERC165 {281 // Selector: transfer(address,uint256) a9059cbb369 // Selector: transfer(address,uint256) a9059cbb282 function transfer(address to, uint256 tokenId) public {370 function transfer(address to, uint256 tokenId) public {301 return 0;389 return 0;302 }390 }303304 // Selector: setVariableMetadata(uint256,bytes) d4eac26d305 function setVariableMetadata(uint256 tokenId, bytes memory data) public {306 require(false, stub_error);307 tokenId;308 data;309 dummy = 0;310 }311312 // Selector: getVariableMetadata(uint256) e6c5ce6f313 function getVariableMetadata(uint256 tokenId)314 public315 view316 returns (bytes memory)317 {318 require(false, stub_error);319 tokenId;320 dummy;321 return hex"";322 }323391324 // Selector: mintBulk(address,uint256[]) 44a9945e392 // Selector: mintBulk(address,uint256[]) 44a9945e325 function mintBulk(address to, uint256[] memory tokenIds)393 function mintBulk(address to, uint256[] memory tokenIds)354 ERC721Enumerable,422 ERC721Enumerable,355 ERC721UniqueExtensions,423 ERC721UniqueExtensions,356 ERC721Mintable,424 ERC721Mintable,357 ERC721Burnable425 ERC721Burnable,426 CollectionProperties,427 TokenProperties358{}428{}359429pallets/nonfungible/src/weights.rsdiffbeforeafterboth45 fn approve() -> Weight;45 fn approve() -> Weight;46 fn transfer_from() -> Weight;46 fn transfer_from() -> Weight;47 fn burn_from() -> Weight;47 fn burn_from() -> Weight;48 fn set_variable_metadata(b: u32, ) -> Weight;49}48}504951/// Weights for pallet_nonfungible using the Substrate node and recommended hardware.50/// Weights for pallet_nonfungible using the Substrate node and recommended hardware.156 .saturating_add(T::DbWeight::get().reads(4 as Weight))155 .saturating_add(T::DbWeight::get().reads(4 as Weight))157 .saturating_add(T::DbWeight::get().writes(5 as Weight))156 .saturating_add(T::DbWeight::get().writes(5 as Weight))158 }157 }159 // Storage: Nonfungible TokenData (r:1 w:1)160 fn set_variable_metadata(_b: u32, ) -> Weight {161 (7_700_000 as Weight)162 .saturating_add(T::DbWeight::get().reads(1 as Weight))163 .saturating_add(T::DbWeight::get().writes(1 as Weight))164 }165}158}166159167// For backwards compatibility and tests160// For backwards compatibility and tests271 .saturating_add(RocksDbWeight::get().reads(4 as Weight))264 .saturating_add(RocksDbWeight::get().reads(4 as Weight))272 .saturating_add(RocksDbWeight::get().writes(5 as Weight))265 .saturating_add(RocksDbWeight::get().writes(5 as Weight))273 }266 }274 // Storage: Nonfungible TokenData (r:1 w:1)275 fn set_variable_metadata(_b: u32, ) -> Weight {276 (7_700_000 as Weight)277 .saturating_add(RocksDbWeight::get().reads(1 as Weight))278 .saturating_add(RocksDbWeight::get().writes(1 as Weight))279 }280}267}281268pallets/refungible/Cargo.tomldiffbeforeafterboth24scale-info = { version = "2.0.1", default-features = false, features = [24scale-info = { version = "2.0.1", default-features = false, features = [25 "derive",25 "derive",26] }26] }27struct-versioning = { path = "../../crates/struct-versioning" }272828[features]29[features]29default = ["std"]30default = ["std"]pallets/refungible/src/benchmarking.rsdiffbeforeafterboth31 users: impl IntoIterator<Item = (CrossAccountId, u128)>,31 users: impl IntoIterator<Item = (CrossAccountId, u128)>,32) -> CreateRefungibleExData<CrossAccountId> {32) -> CreateRefungibleExData<CrossAccountId> {33 let const_data = create_data::<CUSTOM_DATA_LIMIT>();33 let const_data = create_data::<CUSTOM_DATA_LIMIT>();34 let variable_data = create_data::<CUSTOM_DATA_LIMIT>();35 CreateRefungibleExData {34 CreateRefungibleExData {36 const_data,35 const_data,37 variable_data,38 users: users36 users: users39 .into_iter()37 .into_iter()40 .collect::<BTreeMap<_, _>>()38 .collect::<BTreeMap<_, _>>()204 <Pallet<T>>::set_allowance(&collection, &sender, &burner, item, 200)?;202 <Pallet<T>>::set_allowance(&collection, &sender, &burner, item, 200)?;205 }: {<Pallet<T>>::burn_from(&collection, &burner, &sender, item, 200, &Unlimited)?}203 }: {<Pallet<T>>::burn_from(&collection, &burner, &sender, item, 200, &Unlimited)?}206207 set_variable_metadata {208 let b in 0..CUSTOM_DATA_LIMIT;209 bench_init!{210 owner: sub; collection: collection(owner);211 sender: cross_from_sub(owner);212 };213 let item = create_max_item(&collection, &sender, [(sender.clone(), 200)])?;214 let data = create_var_data(b).try_into().unwrap();215 }: {<Pallet<T>>::set_variable_metadata(&collection, &sender, item, data)?}216}204}217205pallets/refungible/src/common.rsdiffbeforeafterboth17use core::marker::PhantomData;17use core::marker::PhantomData;181819use sp_std::collections::btree_map::BTreeMap;19use sp_std::collections::btree_map::BTreeMap;20use frame_support::{dispatch::DispatchResultWithPostInfo, fail, weights::Weight, BoundedVec};20use frame_support::{dispatch::DispatchResultWithPostInfo, fail, weights::Weight};21use up_data_structs::{21use up_data_structs::{22 CollectionId, TokenId, CustomDataLimit, CreateItemExData, CreateRefungibleExData,22 CollectionId, TokenId, CreateItemExData, CreateRefungibleExData, budget::Budget, Property,23 budget::Budget, Property, PropertyKey, PropertyKeyPermission,23 PropertyKey, PropertyKeyPermission,24};24};25use pallet_common::{CommonCollectionOperations, CommonWeightInfo, with_weight};25use pallet_common::{CommonCollectionOperations, CommonWeightInfo, with_weight};112 <SelfWeightOf<T>>::burn_from()112 <SelfWeightOf<T>>::burn_from()113 }113 }114115 fn set_variable_metadata(bytes: u32) -> Weight {116 <SelfWeightOf<T>>::set_variable_metadata(bytes)117 }118}114}119115120fn map_create_data<T: Config>(116fn map_create_data<T: Config>(124 match data {120 match data {125 up_data_structs::CreateItemData::ReFungible(data) => Ok(CreateRefungibleExData {121 up_data_structs::CreateItemData::ReFungible(data) => Ok(CreateRefungibleExData {126 const_data: data.const_data,122 const_data: data.const_data,127 variable_data: data.variable_data,128 users: {123 users: {129 let mut out = BTreeMap::new();124 let mut out = BTreeMap::new();130 out.insert(to.clone(), data.pieces);125 out.insert(to.clone(), data.pieces);306 fail!(<Error<T>>::SettingPropertiesNotAllowed)301 fail!(<Error<T>>::SettingPropertiesNotAllowed)307 }302 }308309 fn set_variable_metadata(310 &self,311 sender: T::CrossAccountId,312 token: TokenId,313 data: BoundedVec<u8, CustomDataLimit>,314 ) -> DispatchResultWithPostInfo {315 let len = data.len();316 with_weight(317 <Pallet<T>>::set_variable_metadata(self, &sender, token, data),318 <CommonWeights<T>>::set_variable_metadata(len as u32),319 )320 }321303322 fn check_nesting(304 fn check_nesting(323 &self,305 &self,357 .const_data339 .const_data358 .into_inner()340 .into_inner()359 }341 }360 fn variable_metadata(&self, token: TokenId) -> Vec<u8> {361 <TokenData<T>>::get((self.id, token))362 .variable_data363 .into_inner()364 }365342366 fn token_properties(&self, _token_id: TokenId, _keys: Vec<PropertyKey>) -> Vec<Property> {343 fn token_properties(344 &self,345 _token_id: TokenId,346 _keys: Option<Vec<PropertyKey>>,347 ) -> Vec<Property> {367 Vec::new()348 Vec::new()368 }349 }pallets/refungible/src/lib.rsdiffbeforeafterboth41pub mod weights;41pub mod weights;42pub(crate) type SelfWeightOf<T> = <T as Config>::WeightInfo;42pub(crate) type SelfWeightOf<T> = <T as Config>::WeightInfo;434344#[struct_versioning::versioned(version = 2, upper)]44#[derive(Encode, Decode, Default, TypeInfo, MaxEncodedLen)]45#[derive(Encode, Decode, Default, TypeInfo, MaxEncodedLen)]45pub struct ItemData {46pub struct ItemData {46 pub const_data: BoundedVec<u8, CustomDataLimit>,47 pub const_data: BoundedVec<u8, CustomDataLimit>,4849 #[version(..2)]47 pub variable_data: BoundedVec<u8, CustomDataLimit>,50 pub variable_data: BoundedVec<u8, CustomDataLimit>,48}51}495250#[frame_support::pallet]53#[frame_support::pallet]51pub mod pallet {54pub mod pallet {52 use super::*;55 use super::*;53 use frame_support::{Blake2_128, Blake2_128Concat, Twox64Concat, pallet_prelude::*, storage::Key};56 use frame_support::{57 Blake2_128, Blake2_128Concat, Twox64Concat, pallet_prelude::*, storage::Key,58 traits::StorageVersion,59 };60 use frame_system::pallet_prelude::*;54 use up_data_structs::{CollectionId, TokenId};61 use up_data_structs::{CollectionId, TokenId};55 use super::weights::WeightInfo;62 use super::weights::WeightInfo;566373 type WeightInfo: WeightInfo;80 type WeightInfo: WeightInfo;74 }81 }8283 const STORAGE_VERSION: StorageVersion = StorageVersion::new(1);758476 #[pallet::pallet]85 #[pallet::pallet]86 #[pallet::storage_version(STORAGE_VERSION)]77 #[pallet::generate_store(pub(super) trait Store)]87 #[pallet::generate_store(pub(super) trait Store)]78 pub struct Pallet<T>(_);88 pub struct Pallet<T>(_);7989147 QueryKind = ValueQuery,157 QueryKind = ValueQuery,148 >;158 >;159160 #[pallet::hooks]161 impl<T: Config> Hooks<BlockNumberFor<T>> for Pallet<T> {162 fn on_runtime_upgrade() -> Weight {163 if StorageVersion::get::<Pallet<T>>() < StorageVersion::new(1) {164 <TokenData<T>>::translate_values::<ItemDataVersion1, _>(|v| {165 Some(<ItemDataVersion2>::from(v))166 })167 }168169 0170 }171 }149}172}150173151pub struct RefungibleHandle<T: Config>(pallet_common::CollectionHandle<T>);174pub struct RefungibleHandle<T: Config>(pallet_common::CollectionHandle<T>);494 (collection.id, token_id),517 (collection.id, token_id),495 ItemData {518 ItemData {496 const_data: token.const_data,519 const_data: token.const_data,497 variable_data: token.variable_data,498 },520 },499 );521 );500 for (user, amount) in token.users.into_iter() {522 for (user, amount) in token.users.into_iter() {646 Ok(())668 Ok(())647 }669 }648649 pub fn set_variable_metadata(650 collection: &RefungibleHandle<T>,651 sender: &T::CrossAccountId,652 token: TokenId,653 data: BoundedVec<u8, CustomDataLimit>,654 ) -> DispatchResult {655 collection.check_can_update_meta(656 sender,657 &T::CrossAccountId::from_sub(collection.owner.clone()),658 )?;659660 let token_data = <TokenData<T>>::get((collection.id, token));661662 // =========663664 <TokenData<T>>::insert(665 (collection.id, token),666 ItemData {667 variable_data: data,668 ..token_data669 },670 );671 Ok(())672 }673670674 /// Delegated to `create_multiple_items`671 /// Delegated to `create_multiple_items`675 pub fn create_item(672 pub fn create_item(pallets/refungible/src/weights.rsdiffbeforeafterboth53 fn transfer_from_removing() -> Weight;53 fn transfer_from_removing() -> Weight;54 fn transfer_from_creating_removing() -> Weight;54 fn transfer_from_creating_removing() -> Weight;55 fn burn_from() -> Weight;55 fn burn_from() -> Weight;56 fn set_variable_metadata(b: u32, ) -> Weight;57}56}585759/// Weights for pallet_refungible using the Substrate node and recommended hardware.58/// Weights for pallet_refungible using the Substrate node and recommended hardware.243 .saturating_add(T::DbWeight::get().reads(5 as Weight))242 .saturating_add(T::DbWeight::get().reads(5 as Weight))244 .saturating_add(T::DbWeight::get().writes(7 as Weight))243 .saturating_add(T::DbWeight::get().writes(7 as Weight))245 }244 }246 // Storage: Refungible TokenData (r:1 w:1)247 fn set_variable_metadata(_b: u32, ) -> Weight {248 (7_364_000 as Weight)249 .saturating_add(T::DbWeight::get().reads(1 as Weight))250 .saturating_add(T::DbWeight::get().writes(1 as Weight))251 }252}245}253246254// For backwards compatibility and tests247// For backwards compatibility and tests437 .saturating_add(RocksDbWeight::get().reads(5 as Weight))430 .saturating_add(RocksDbWeight::get().reads(5 as Weight))438 .saturating_add(RocksDbWeight::get().writes(7 as Weight))431 .saturating_add(RocksDbWeight::get().writes(7 as Weight))439 }432 }440 // Storage: Refungible TokenData (r:1 w:1)441 fn set_variable_metadata(_b: u32, ) -> Weight {442 (7_364_000 as Weight)443 .saturating_add(RocksDbWeight::get().reads(1 as Weight))444 .saturating_add(RocksDbWeight::get().writes(1 as Weight))445 }446}433}447434pallets/unique/src/benchmarking.rsdiffbeforeafterboth169 };169 };170 }: set_collection_limits(RawOrigin::Signed(caller.clone()), collection, cl)170 }: set_collection_limits(RawOrigin::Signed(caller.clone()), collection, cl)171172 set_meta_update_permission_flag {173 let caller: T::AccountId = account("caller", 0, SEED);174 let collection = create_nft_collection::<T>(caller.clone())?;175 }: _(RawOrigin::Signed(caller.clone()), collection, MetaUpdatePermission::Admin)176}171}177172pallets/unique/src/lib.rsdiffbeforeafterboth38 CONST_ON_CHAIN_SCHEMA_LIMIT, OFFCHAIN_SCHEMA_LIMIT,38 CONST_ON_CHAIN_SCHEMA_LIMIT, OFFCHAIN_SCHEMA_LIMIT, MAX_COLLECTION_NAME_LENGTH,39 MAX_COLLECTION_NAME_LENGTH, MAX_COLLECTION_DESCRIPTION_LENGTH, MAX_TOKEN_PREFIX_LENGTH,39 MAX_COLLECTION_DESCRIPTION_LENGTH, MAX_TOKEN_PREFIX_LENGTH, AccessMode, CreateItemData,40 AccessMode, CreateItemData, CollectionLimits, CollectionId, CollectionMode, TokenId,40 CollectionLimits, CollectionId, CollectionMode, TokenId, SchemaVersion, SponsorshipState,41 SchemaVersion, SponsorshipState, MetaUpdatePermission, CreateCollectionData, CustomDataLimit,41 CreateCollectionData, CreateItemExData, budget, CollectionField, Property, PropertyKey,42 CreateItemExData, budget, CollectionField, Property, PropertyKey, PropertyKeyPermission,42 PropertyKeyPermission,43};43};44use pallet_evm::account::CrossAccountId;44use pallet_evm::account::CrossAccountId;45use pallet_common::{45use pallet_common::{46 CollectionHandle, Pallet as PalletCommon, Error as CommonError, CommonWeightInfo,46 CollectionHandle, Pallet as PalletCommon, CommonWeightInfo, dispatch::dispatch_call,47 dispatch::dispatch_call, dispatch::CollectionDispatch,47 dispatch::CollectionDispatch,48};48};4949240240241 /// Variable metadata sponsoring241 /// Variable metadata sponsoring242 /// Collection id (controlled?2), token id (controlled?2)242 /// Collection id (controlled?2), token id (controlled?2)243 #[deprecated]243 pub VariableMetaDataBasket get(fn variable_meta_data_basket): double_map hasher(blake2_128_concat) CollectionId, hasher(blake2_128_concat) TokenId => Option<T::BlockNumber>;244 pub VariableMetaDataBasket get(fn variable_meta_data_basket): double_map hasher(blake2_128_concat) CollectionId, hasher(blake2_128_concat) TokenId => Option<T::BlockNumber>;245244 /// Approval sponsoring246 /// Approval sponsoring261 0263 0262 }264 }265266 fn on_runtime_upgrade() -> Weight {267 let limit = None;268269 <VariableMetaDataBasket<T>>::remove_all(limit);270271 0272 }263273264 /// This method creates a Collection of NFTs. Each Token may have multiple properties encoded as an array of bytes of certain length. The initial owner of the collection is set to the address that signed the transaction and can be changed later.274 /// This method creates a Collection of NFTs. Each Token may have multiple properties encoded as an array of bytes of certain length. The initial owner of the collection is set to the address that signed the transaction and can be changed later.265 ///275 ///333 <FungibleTransferBasket<T>>::remove_prefix(collection_id, None);343 <FungibleTransferBasket<T>>::remove_prefix(collection_id, None);334 <ReFungibleTransferBasket<T>>::remove_prefix((collection_id,), None);344 <ReFungibleTransferBasket<T>>::remove_prefix((collection_id,), None);335345336 <VariableMetaDataBasket<T>>::remove_prefix(collection_id, None);337 <NftApproveBasket<T>>::remove_prefix(collection_id, None);346 <NftApproveBasket<T>>::remove_prefix(collection_id, None);338 <FungibleApproveBasket<T>>::remove_prefix(collection_id, None);347 <FungibleApproveBasket<T>>::remove_prefix(collection_id, None);339 <RefungibleApproveBasket<T>>::remove_prefix((collection_id,), None);348 <RefungibleApproveBasket<T>>::remove_prefix((collection_id,), None);931 dispatch_call::<T, _>(collection_id, |d| d.transfer_from(sender, from, recipient, item_id, value, &budget))940 dispatch_call::<T, _>(collection_id, |d| d.transfer_from(sender, from, recipient, item_id, value, &budget))932 }941 }933934 /// Set off-chain data schema.935 ///936 /// # Permissions937 ///938 /// * Collection Owner939 /// * Collection Admin940 ///941 /// # Arguments942 ///943 /// * collection_id.944 ///945 /// * schema: String representing the offchain data schema.946 #[weight = T::CommonWeightInfo::set_variable_metadata(data.len() as u32)]947 #[transactional]948 pub fn set_variable_meta_data (949 origin,950 collection_id: CollectionId,951 item_id: TokenId,952 data: BoundedVec<u8, CustomDataLimit>,953 ) -> DispatchResultWithPostInfo {954 let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);955956 dispatch_call::<T, _>(collection_id, |d| d.set_variable_metadata(sender, item_id, data))957 }958959 /// Set meta_update_permission value for particular collection960 ///961 /// # Permissions962 ///963 /// * Collection Owner.964 ///965 /// # Arguments966 ///967 /// * collection_id: ID of the collection.968 ///969 /// * value: New flag value.970 #[weight = <SelfWeightOf<T>>::set_meta_update_permission_flag()]971 #[transactional]972 pub fn set_meta_update_permission_flag(origin, collection_id: CollectionId, value: MetaUpdatePermission) -> DispatchResult {973 let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);974 let mut target_collection = <CollectionHandle<T>>::try_get(collection_id)?;975976 ensure!(977 target_collection.meta_update_permission != MetaUpdatePermission::None,978 <CommonError<T>>::MetadataFlagFrozen,979 );980 target_collection.check_is_owner(&sender)?;981982 target_collection.meta_update_permission = value;983984 target_collection.save()985 }986942987 /// Set schema standard943 /// Set schema standard988 /// ImageURL944 /// ImageURLpallets/unique/src/weights.rsdiffbeforeafterboth49 fn set_const_on_chain_schema(b: u32, ) -> Weight;49 fn set_const_on_chain_schema(b: u32, ) -> Weight;50 fn set_schema_version() -> Weight;50 fn set_schema_version() -> Weight;51 fn set_collection_limits() -> Weight;51 fn set_collection_limits() -> Weight;52 fn set_meta_update_permission_flag() -> Weight;53}52}545355/// Weights for pallet_unique using the Substrate node and recommended hardware.54/// Weights for pallet_unique using the Substrate node and recommended hardware.170 .saturating_add(T::DbWeight::get().reads(1 as Weight))169 .saturating_add(T::DbWeight::get().reads(1 as Weight))171 .saturating_add(T::DbWeight::get().writes(1 as Weight))170 .saturating_add(T::DbWeight::get().writes(1 as Weight))172 }171 }173 // Storage: Common CollectionById (r:1 w:1)174 fn set_meta_update_permission_flag() -> Weight {175 (7_214_000 as Weight)176 .saturating_add(T::DbWeight::get().reads(1 as Weight))177 .saturating_add(T::DbWeight::get().writes(1 as Weight))178 }179}172}180173181// For backwards compatibility and tests174// For backwards compatibility and tests295 .saturating_add(RocksDbWeight::get().reads(1 as Weight))288 .saturating_add(RocksDbWeight::get().reads(1 as Weight))296 .saturating_add(RocksDbWeight::get().writes(1 as Weight))289 .saturating_add(RocksDbWeight::get().writes(1 as Weight))297 }290 }298 // Storage: Common CollectionById (r:1 w:1)299 fn set_meta_update_permission_flag() -> Weight {300 (7_214_000 as Weight)301 .saturating_add(RocksDbWeight::get().reads(1 as Weight))302 .saturating_add(RocksDbWeight::get().writes(1 as Weight))303 }304}291}305292primitives/data-structs/src/lib.rsdiffbeforeafterboth42pub use rmrk_types::{43pub use rmrk_types::{43 primitives::{CollectionId as RmrkCollectionId, NftId as RmrkNftId, BaseId as RmrkBaseId, PartId as RmrkPartId, ResourceId as RmrkResourceId},44 primitives::{45 CollectionId as RmrkCollectionId, NftId as RmrkNftId, BaseId as RmrkBaseId,46 PartId as RmrkPartId, ResourceId as RmrkResourceId,47 },44 NftChild as RmrkNftChild, AccountIdOrCollectionNftTuple as RmrkAccountIdOrCollectionNftTuple,48 NftChild as RmrkNftChild, AccountIdOrCollectionNftTuple as RmrkAccountIdOrCollectionNftTuple,45};49};858986// Schema limits90// Schema limits87pub const OFFCHAIN_SCHEMA_LIMIT: u32 = 8192;91pub const OFFCHAIN_SCHEMA_LIMIT: u32 = 8192;92pub const VARIABLE_ON_CHAIN_SCHEMA_LIMIT: u32 = 8192;88pub const CONST_ON_CHAIN_SCHEMA_LIMIT: u32 = 32768;93pub const CONST_ON_CHAIN_SCHEMA_LIMIT: u32 = 32768;899490pub const COLLECTION_FIELD_LIMIT: u32 = CONST_ON_CHAIN_SCHEMA_LIMIT;95pub const COLLECTION_FIELD_LIMIT: u32 = CONST_ON_CHAIN_SCHEMA_LIMIT;317 #[version(2.., upper(limits.into()))]322 #[version(2.., upper(limits.into()))]318 pub limits: CollectionLimitsVersion2,323 pub limits: CollectionLimitsVersion2,324325 #[version(..2)]326 pub variable_on_chain_schema: BoundedVec<u8, ConstU32<VARIABLE_ON_CHAIN_SCHEMA_LIMIT>>,319327320 #[version(..2)]328 #[version(..2)]321 pub const_on_chain_schema: BoundedVec<u8, ConstU32<CONST_ON_CHAIN_SCHEMA_LIMIT>>,329 pub const_on_chain_schema: BoundedVec<u8, ConstU32<CONST_ON_CHAIN_SCHEMA_LIMIT>>,322330331 #[version(..2)]323 pub meta_update_permission: MetaUpdatePermission,332 pub meta_update_permission: MetaUpdatePermission,324}333}325334339 pub sponsorship: SponsorshipState<AccountId>,348 pub sponsorship: SponsorshipState<AccountId>,340 pub limits: CollectionLimits,349 pub limits: CollectionLimits,341 pub const_on_chain_schema: Vec<u8>,350 pub const_on_chain_schema: Vec<u8>,342 pub meta_update_permission: MetaUpdatePermission,343 pub token_property_permissions: Vec<PropertyKeyPermission>,351 pub token_property_permissions: Vec<PropertyKeyPermission>,344 pub properties: Vec<Property>,352 pub properties: Vec<Property>,345}353}365 pub pending_sponsor: Option<AccountId>,373 pub pending_sponsor: Option<AccountId>,366 pub limits: Option<CollectionLimits>,374 pub limits: Option<CollectionLimits>,367 pub const_on_chain_schema: BoundedVec<u8, ConstU32<CONST_ON_CHAIN_SCHEMA_LIMIT>>,375 pub const_on_chain_schema: BoundedVec<u8, ConstU32<CONST_ON_CHAIN_SCHEMA_LIMIT>>,368 pub meta_update_permission: Option<MetaUpdatePermission>,369 pub token_property_permissions: CollectionPropertiesPermissionsVec,376 pub token_property_permissions: CollectionPropertiesPermissionsVec,370 pub properties: CollectionPropertiesVec,377 pub properties: CollectionPropertiesVec,371}378}376pub type CollectionPropertiesVec =383pub type CollectionPropertiesVec =377 BoundedVec<Property, ConstU32<MAX_COLLECTION_PROPERTIES_ENCODE_LEN>>;384 BoundedVec<Property, ConstU32<MAX_COLLECTION_PROPERTIES_ENCODE_LEN>>;378379#[derive(Encode, Decode, Debug, Clone, PartialEq, TypeInfo)]380#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]381pub struct NftItemType<AccountId> {382 pub owner: AccountId,383 pub const_data: Vec<u8>,384 pub variable_data: Vec<u8>,385}386387#[derive(Encode, Decode, Default, Debug, Clone, PartialEq, TypeInfo)]388#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]389pub struct FungibleItemType {390 pub value: u128,391}392393#[derive(Encode, Decode, Debug, Clone, PartialEq, TypeInfo)]394#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]395pub struct ReFungibleItemType<AccountId> {396 pub owner: Vec<Ownership<AccountId>>,397 pub const_data: Vec<u8>,398 pub variable_data: Vec<u8>,399}400385401/// All fields are wrapped in `Option`s, where None means chain default386/// All fields are wrapped in `Option`s, where None means chain default402#[struct_versioning::versioned(version = 2, upper)]387#[struct_versioning::versioned(version = 2, upper)]406 pub account_token_ownership_limit: Option<u32>,391 pub account_token_ownership_limit: Option<u32>,407 pub sponsored_data_size: Option<u32>,392 pub sponsored_data_size: Option<u32>,393394 /// FIXME should we delete this or repurpose it?408 /// None - setVariableMetadata is not sponsored395 /// None - setVariableMetadata is not sponsored409 /// Some(v) - setVariableMetadata is sponsored396 /// Some(v) - setVariableMetadata is sponsored410 /// if there is v block between txs397 /// if there is v block between txs502 #[cfg_attr(feature = "serde1", serde(with = "bounded::vec_serde"))]489 #[cfg_attr(feature = "serde1", serde(with = "bounded::vec_serde"))]503 #[derivative(Debug(format_with = "bounded::vec_debug"))]490 #[derivative(Debug(format_with = "bounded::vec_debug"))]504 pub const_data: BoundedVec<u8, CustomDataLimit>,491 pub const_data: BoundedVec<u8, CustomDataLimit>,505 #[cfg_attr(feature = "serde1", serde(with = "bounded::vec_serde"))]506 #[derivative(Debug(format_with = "bounded::vec_debug"))]507 pub variable_data: BoundedVec<u8, CustomDataLimit>,508492509 #[cfg_attr(feature = "serde1", serde(with = "bounded::vec_serde"))]493 #[cfg_attr(feature = "serde1", serde(with = "bounded::vec_serde"))]510 #[derivative(Debug(format_with = "bounded::vec_debug"))]494 #[derivative(Debug(format_with = "bounded::vec_debug"))]524 #[cfg_attr(feature = "serde1", serde(with = "bounded::vec_serde"))]508 #[cfg_attr(feature = "serde1", serde(with = "bounded::vec_serde"))]525 #[derivative(Debug(format_with = "bounded::vec_debug"))]509 #[derivative(Debug(format_with = "bounded::vec_debug"))]526 pub const_data: BoundedVec<u8, CustomDataLimit>,510 pub const_data: BoundedVec<u8, CustomDataLimit>,527 #[cfg_attr(feature = "serde1", serde(with = "bounded::vec_serde"))]528 #[derivative(Debug(format_with = "bounded::vec_debug"))]529 pub variable_data: BoundedVec<u8, CustomDataLimit>,530 pub pieces: u128,511 pub pieces: u128,531}512}532513533#[derive(Encode, Decode, Debug, Clone, PartialEq, TypeInfo, MaxEncodedLen)]514#[derive(Encode, Decode, Debug, Clone, PartialEq, TypeInfo, MaxEncodedLen)]534#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]535pub enum MetaUpdatePermission {515pub enum MetaUpdatePermission {536 ItemOwner,516 ItemOwner,537 Admin,517 Admin,538 None,518 None,539}519}540541impl Default for MetaUpdatePermission {542 fn default() -> Self {543 Self::ItemOwner544 }545}546520547#[derive(Encode, Decode, MaxEncodedLen, PartialEq, Clone, Debug, TypeInfo)]521#[derive(Encode, Decode, MaxEncodedLen, PartialEq, Clone, Debug, TypeInfo)]548#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]522#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]557pub struct CreateNftExData<CrossAccountId> {531pub struct CreateNftExData<CrossAccountId> {558 #[derivative(Debug(format_with = "bounded::vec_debug"))]532 #[derivative(Debug(format_with = "bounded::vec_debug"))]559 pub const_data: BoundedVec<u8, CustomDataLimit>,533 pub const_data: BoundedVec<u8, CustomDataLimit>,560 #[derivative(Debug(format_with = "bounded::vec_debug"))]561 pub variable_data: BoundedVec<u8, CustomDataLimit>,562 #[derivative(Debug(format_with = "bounded::vec_debug"))]534 #[derivative(Debug(format_with = "bounded::vec_debug"))]563 pub properties: CollectionPropertiesVec,535 pub properties: CollectionPropertiesVec,564 pub owner: CrossAccountId,536 pub owner: CrossAccountId,569pub struct CreateRefungibleExData<CrossAccountId> {541pub struct CreateRefungibleExData<CrossAccountId> {570 #[derivative(Debug(format_with = "bounded::vec_debug"))]542 #[derivative(Debug(format_with = "bounded::vec_debug"))]571 pub const_data: BoundedVec<u8, CustomDataLimit>,543 pub const_data: BoundedVec<u8, CustomDataLimit>,572 #[derivative(Debug(format_with = "bounded::vec_debug"))]573 pub variable_data: BoundedVec<u8, CustomDataLimit>,574 #[derivative(Debug(format_with = "bounded::map_debug"))]544 #[derivative(Debug(format_with = "bounded::map_debug"))]575 pub users: BoundedBTreeMap<CrossAccountId, u128, ConstU32<MAX_ITEMS_PER_BATCH>>,545 pub users: BoundedBTreeMap<CrossAccountId, u128, ConstU32<MAX_ITEMS_PER_BATCH>>,576}546}598impl CreateItemData {568impl CreateItemData {599 pub fn data_size(&self) -> usize {569 pub fn data_size(&self) -> usize {600 match self {570 match self {601 CreateItemData::NFT(data) => data.variable_data.len() + data.const_data.len(),571 CreateItemData::NFT(data) => data.const_data.len(),602 CreateItemData::ReFungible(data) => data.variable_data.len() + data.const_data.len(),572 CreateItemData::ReFungible(data) => data.const_data.len(),603 _ => 0,573 _ => 0,604 }574 }605 }575 }700 NoSpaceForProperty,670 NoSpaceForProperty,701 PropertyLimitReached,671 PropertyLimitReached,702 InvalidCharacterInPropertyKey,672 InvalidCharacterInPropertyKey,673 PropertyKeyIsTooLong,703 EmptyPropertyKey,674 EmptyPropertyKey,704}675}676677#[derive(Clone, Copy)]678pub enum PropertyScope {679 None,680 Rmrk,681}682683impl PropertyScope {684 fn apply(self, key: PropertyKey) -> Result<PropertyKey, PropertiesError> {685 let scope_str: &[u8] = match self {686 Self::None => return Ok(key),687 Self::Rmrk => b"rmrk",688 };689690 [scope_str, b":", key.as_slice()]691 .concat()692 .try_into()693 .map_err(|_| PropertiesError::PropertyKeyIsTooLong)694 }695}705696706pub trait TrySet: Sized {697pub trait TrySetProperty: Sized {707 type Value;698 type Value;708699709 fn try_set(&mut self, key: PropertyKey, value: Self::Value) -> Result<(), PropertiesError>;700 fn try_scoped_set(701 &mut self,702 scope: PropertyScope,703 key: PropertyKey,704 value: Self::Value,705 ) -> Result<(), PropertiesError>;710706711 fn try_set_from_iter<I>(&mut self, iter: I) -> Result<(), PropertiesError>707 fn try_scoped_set_from_iter<I>(708 &mut self,709 scope: PropertyScope,710 iter: I,711 ) -> Result<(), PropertiesError>712 where712 where713 I: Iterator<Item = (PropertyKey, Self::Value)>,713 I: Iterator<Item = (PropertyKey, Self::Value)>,714 {714 {715 for (key, value) in iter {715 for (key, value) in iter {716 self.try_set(key, value)?;716 self.try_scoped_set(scope, key, value)?;717 }717 }718718719 Ok(())719 Ok(())720 }720 }721722 fn try_set(&mut self, key: PropertyKey, value: Self::Value) -> Result<(), PropertiesError> {723 self.try_scoped_set(PropertyScope::None, key, value)724 }725726 fn try_set_from_iter<I>(&mut self, iter: I) -> Result<(), PropertiesError>727 where728 I: Iterator<Item = (PropertyKey, Self::Value)>,729 {730 self.try_scoped_set_from_iter(PropertyScope::None, iter)731 }721}732}722733723#[derive(Encode, Decode, TypeInfo, Derivative, Clone, PartialEq, MaxEncodedLen)]734#[derive(Encode, Decode, TypeInfo, Derivative, Clone, PartialEq, MaxEncodedLen)]751 }762 }752763753 for byte in key.as_slice().iter() {764 for byte in key.as_slice().iter() {765 let byte = *byte;766754 match char::from_u32(*byte as u32) {767 if !byte.is_ascii_alphanumeric() && byte != b'_' && byte != b'-' {755 Some(ch)756 if ch.is_ascii_alphanumeric()757 || ch == '_'758 || ch == '-' => { /* OK */ },759 _ => return Err(PropertiesError::InvalidCharacterInPropertyKey)768 return Err(PropertiesError::InvalidCharacterInPropertyKey);760 }769 }761 }770 }762771763 Ok(())772 Ok(())764 }773 }765}774}766775767impl<Value> TrySet for PropertiesMap<Value> {776impl<Value> TrySetProperty for PropertiesMap<Value> {768 type Value = Value;777 type Value = Value;769778770 fn try_set(&mut self, key: PropertyKey, value: Self::Value) -> Result<(), PropertiesError> {779 fn try_scoped_set(780 &mut self,781 scope: PropertyScope,782 key: PropertyKey,783 value: Self::Value,784 ) -> Result<(), PropertiesError> {771 Self::check_property_key(&key)?;785 Self::check_property_key(&key)?;772786787 let key = scope.apply(key)?;773 self.0788 self.0774 .try_insert(key, value)789 .try_insert(key, value)775 .map_err(|_| PropertiesError::PropertyLimitReached)?;790 .map_err(|_| PropertiesError::PropertyLimitReached)?;816 }831 }817}832}818833819impl TrySet for Properties {834impl TrySetProperty for Properties {820 type Value = PropertyValue;835 type Value = PropertyValue;821836822 fn try_set(&mut self, key: PropertyKey, value: Self::Value) -> Result<(), PropertiesError> {837 fn try_scoped_set(838 &mut self,839 scope: PropertyScope,840 key: PropertyKey,841 value: Self::Value,842 ) -> Result<(), PropertiesError> {823 let value_len = value.len();843 let value_len = value.len();824844825 if self.consumed_space as usize + value_len > self.space_limit as usize {845 if self.consumed_space as usize + value_len > self.space_limit as usize {826 return Err(PropertiesError::NoSpaceForProperty);846 return Err(PropertiesError::NoSpaceForProperty);827 }847 }828848829 self.map.try_set(key, value)?;849 self.map.try_scoped_set(scope, key, value)?;830850831 self.consumed_space += value_len as u32;851 self.consumed_space += value_len as u32;832852879 Permill,880 RmrkString881>;882pub type RmrkResourceInfo = ResourceInfo::<895pub type RmrkResourceInfo = ResourceInfo<883 BoundedVec<u8, RmrkResourceSymbolLimit>,896 BoundedVec<u8, RmrkResourceSymbolLimit>,884 RmrkString,897 RmrkString,885 BoundedVec<RmrkPartId, RmrkPartsLimit>898 BoundedVec<RmrkPartId, RmrkPartsLimit>,886>;899>;887pub type RmrkPropertyInfo = PropertyInfo<900pub type RmrkPropertyInfo =888 BoundedVec<u8, RmrkKeyLimit>, 901 PropertyInfo<BoundedVec<u8, RmrkKeyLimit>, BoundedVec<u8, RmrkValueLimit>>;primitives/rpc/src/lib.rsdiffbeforeafterboth42 fn token_owner(collection: CollectionId, token: TokenId) -> Result<Option<CrossAccountId>>;42 fn token_owner(collection: CollectionId, token: TokenId) -> Result<Option<CrossAccountId>>;43 fn topmost_token_owner(collection: CollectionId, token: TokenId) -> Result<Option<CrossAccountId>>;43 fn topmost_token_owner(collection: CollectionId, token: TokenId) -> Result<Option<CrossAccountId>>;44 fn const_metadata(collection: CollectionId, token: TokenId) -> Result<Vec<u8>>;44 fn const_metadata(collection: CollectionId, token: TokenId) -> Result<Vec<u8>>;45 fn variable_metadata(collection: CollectionId, token: TokenId) -> Result<Vec<u8>>;464547 fn collection_properties(collection: CollectionId, properties: Vec<Vec<u8>>) -> Result<Vec<Property>>;46 fn collection_properties(collection: CollectionId, properties: Option<Vec<Vec<u8>>>) -> Result<Vec<Property>>;484749 fn token_properties(48 fn token_properties(50 collection: CollectionId,49 collection: CollectionId,51 token_id: TokenId,50 token_id: TokenId,52 properties: Vec<Vec<u8>>51 properties: Option<Vec<Vec<u8>>>53 ) -> Result<Vec<Property>>;52 ) -> Result<Vec<Property>>;545355 fn property_permissions(54 fn property_permissions(56 collection: CollectionId,55 collection: CollectionId,57 properties: Vec<Vec<u8>>56 properties: Option<Vec<Vec<u8>>>58 ) -> Result<Vec<PropertyKeyPermission>>;57 ) -> Result<Vec<PropertyKeyPermission>>;595860 fn token_data(collection: CollectionId, token_id: TokenId, keys: Vec<Vec<u8>>) -> Result<TokenData<CrossAccountId>>;59 fn token_data(60 collection: CollectionId,61 token_id: TokenId,62 keys: Option<Vec<Vec<u8>>>63 ) -> Result<TokenData<CrossAccountId>>;616462 fn total_supply(collection: CollectionId) -> Result<u32>;65 fn total_supply(collection: CollectionId) -> Result<u32>;runtime/common/src/runtime_apis.rsdiffbeforeafterboth32 fn const_metadata(collection: CollectionId, token: TokenId) -> Result<Vec<u8>, DispatchError> {32 fn const_metadata(collection: CollectionId, token: TokenId) -> Result<Vec<u8>, DispatchError> {33 dispatch_unique_runtime!(collection.const_metadata(token))33 dispatch_unique_runtime!(collection.const_metadata(token))34 }34 }35 fn variable_metadata(collection: CollectionId, token: TokenId) -> Result<Vec<u8>, DispatchError> {36 dispatch_unique_runtime!(collection.variable_metadata(token))37 }383539 fn collection_properties(36 fn collection_properties(40 collection: CollectionId,37 collection: CollectionId,41 keys: Vec<Vec<u8>>38 keys: Option<Vec<Vec<u8>>>42 ) -> Result<Vec<Property>, DispatchError> {39 ) -> Result<Vec<Property>, DispatchError> {43 let keys = pallet_common::Pallet::<Runtime>::bytes_keys_to_property_keys(keys)?;40 let keys = keys.map(41 |keys| pallet_common::Pallet::<Runtime>::bytes_keys_to_property_keys(keys)42 ).transpose()?;444345 pallet_common::Pallet::<Runtime>::filter_collection_properties(collection, keys)44 pallet_common::Pallet::<Runtime>::filter_collection_properties(collection, keys)46 }45 }474648 fn token_properties(47 fn token_properties(49 collection: CollectionId,48 collection: CollectionId,50 token_id: TokenId,49 token_id: TokenId,51 keys: Vec<Vec<u8>>50 keys: Option<Vec<Vec<u8>>>52 ) -> Result<Vec<Property>, DispatchError> {51 ) -> Result<Vec<Property>, DispatchError> {53 let keys = pallet_common::Pallet::<Runtime>::bytes_keys_to_property_keys(keys)?;52 let keys = keys.map(53 |keys| pallet_common::Pallet::<Runtime>::bytes_keys_to_property_keys(keys)54 ).transpose()?;5554 dispatch_unique_runtime!(collection.token_properties(token_id, keys))56 dispatch_unique_runtime!(collection.token_properties(token_id, keys))55 }57 }565857 fn property_permissions(59 fn property_permissions(58 collection: CollectionId,60 collection: CollectionId,59 keys: Vec<Vec<u8>>61 keys: Option<Vec<Vec<u8>>>60 ) -> Result<Vec<PropertyKeyPermission>, DispatchError> {62 ) -> Result<Vec<PropertyKeyPermission>, DispatchError> {61 let keys = pallet_common::Pallet::<Runtime>::bytes_keys_to_property_keys(keys)?;63 let keys = keys.map(64 |keys| pallet_common::Pallet::<Runtime>::bytes_keys_to_property_keys(keys)65 ).transpose()?;626663 pallet_common::Pallet::<Runtime>::filter_property_permissions(collection, keys)67 pallet_common::Pallet::<Runtime>::filter_property_permissions(collection, keys)64 }68 }656966 fn token_data(70 fn token_data(67 collection: CollectionId,71 collection: CollectionId,68 token_id: TokenId,72 token_id: TokenId,69 keys: Vec<Vec<u8>>73 keys: Option<Vec<Vec<u8>>>70 ) -> Result<TokenData<CrossAccountId>, DispatchError> {74 ) -> Result<TokenData<CrossAccountId>, DispatchError> {71 let token_data = TokenData {75 let token_data = TokenData {72 const_data: Self::const_metadata(collection, token_id)?,76 const_data: Self::const_metadata(collection, token_id)?,300 let keys = pallet_common::Pallet::<Runtime>::bytes_keys_to_property_keys(304 let keys = pallet_common::Pallet::<Runtime>::bytes_keys_to_property_keys(301 Vec::from([String::from("rmrk:base-type").into_bytes()])305 Vec::from([String::from("rmrk:base-type").into_bytes()])302 )?;306 )?;303 let properties = pallet_common::Pallet::<Runtime>::filter_collection_properties(collection_id, keys)?;307 let properties = pallet_common::Pallet::<Runtime>::filter_collection_properties(collection_id, Some(keys))?;304 //ensure!(properties.len() == 1); // todo make sure it's fine to have ensure in place // no access to errors from here? displace?308 //ensure!(properties.len() == 1); // todo make sure it's fine to have ensure in place // no access to errors from here? displace?305309306 Ok(Some( RmrkBaseInfo {310 Ok(Some( RmrkBaseInfo {runtime/common/src/sponsoring.rsdiffbeforeafterboth21 storage::{StorageMap, StorageDoubleMap, StorageNMap},21 storage::{StorageMap, StorageDoubleMap, StorageNMap},22};22};23use up_data_structs::{23use up_data_structs::{24 CollectionId, FUNGIBLE_SPONSOR_TRANSFER_TIMEOUT, MetaUpdatePermission,24 CollectionId, FUNGIBLE_SPONSOR_TRANSFER_TIMEOUT, NFT_SPONSOR_TRANSFER_TIMEOUT,25 NFT_SPONSOR_TRANSFER_TIMEOUT, REFUNGIBLE_SPONSOR_TRANSFER_TIMEOUT, TokenId, CollectionMode,25 REFUNGIBLE_SPONSOR_TRANSFER_TIMEOUT, TokenId, CollectionMode, CreateItemData,26 CreateItemData,27};26};28use sp_runtime::traits::Saturating;27use sp_runtime::traits::Saturating;29use pallet_common::{CollectionHandle};28use pallet_common::{CollectionHandle};30use pallet_evm::account::CrossAccountId;29use pallet_evm::account::CrossAccountId;31use pallet_unique::{30use pallet_unique::{32 Call as UniqueCall, Config as UniqueConfig, FungibleApproveBasket, RefungibleApproveBasket,31 Call as UniqueCall, Config as UniqueConfig, FungibleApproveBasket, RefungibleApproveBasket,33 NftApproveBasket, VariableMetaDataBasket, CreateItemBasket, ReFungibleTransferBasket,32 NftApproveBasket, CreateItemBasket, ReFungibleTransferBasket, FungibleTransferBasket,34 FungibleTransferBasket, NftTransferBasket,33 NftTransferBasket,35};34};36use pallet_fungible::Config as FungibleConfig;35use pallet_fungible::Config as FungibleConfig;140 Some(())139 Some(())141}140}142143pub fn withdraw_set_variable_meta_data<T: Config>(144 who: &T::CrossAccountId,145 collection: &CollectionHandle<T>,146 item_id: &TokenId,147 data: &[u8],148) -> Option<()> {149 // TODO: make it work for admins150 if collection.meta_update_permission != MetaUpdatePermission::ItemOwner {151 return None;152 }153 // preliminary sponsoring correctness check154 match collection.mode {155 CollectionMode::NFT => {156 let owner = pallet_nonfungible::TokenData::<T>::get((collection.id, item_id))?.owner;157 if !owner.conv_eq(who) {158 return None;159 }160 }161 CollectionMode::Fungible(_) => {162 if item_id != &TokenId::default() {163 return None;164 }165 if <pallet_fungible::Balance<T>>::get((collection.id, who)) == 0 {166 return None;167 }168 }169 CollectionMode::ReFungible => {170 if !<pallet_refungible::Owned<T>>::get((collection.id, who, item_id)) {171 return None;172 }173 }174 }175176 // Can't sponsor fungible collection, this tx will be rejected177 // as invalid178 if matches!(collection.mode, CollectionMode::Fungible(_)) {179 return None;180 }181 if data.len() > collection.limits.sponsored_data_size() as usize {182 return None;183 }184185 let block_number = <frame_system::Pallet<T>>::block_number() as T::BlockNumber;186 let limit = collection.limits.sponsored_data_rate_limit()?;187188 if let Some(last_tx_block) = VariableMetaDataBasket::<T>::get(collection.id, item_id) {189 let timeout = last_tx_block + limit.into();190 if block_number < timeout {191 return None;192 }193 }194195 <VariableMetaDataBasket<T>>::insert(collection.id, item_id, block_number);196197 Some(())198}199141200pub fn withdraw_approve<T: Config>(142pub fn withdraw_approve<T: Config>(201 collection: &CollectionHandle<T>,143 collection: &CollectionHandle<T>,291 let (sponsor, collection) = load(*collection_id)?;233 let (sponsor, collection) = load(*collection_id)?;292 withdraw_approve::<T>(&collection, who, item_id).map(|()| sponsor)234 withdraw_approve::<T>(&collection, who, item_id).map(|()| sponsor)293 }235 }294 UniqueCall::set_variable_meta_data {295 collection_id,296 item_id,297 data,298 } => {299 let (sponsor, collection) = load(*collection_id)?;300 withdraw_set_variable_meta_data::<T>(301 &T::CrossAccountId::from_sub(who.clone()),302 &collection,303 item_id,304 data,305 )306 .map(|()| sponsor)307 }308 _ => None,236 _ => None,309 }237 }310 }238 }runtime/common/src/weights.rsdiffbeforeafterboth86 dispatch_weight::<T>() + max_weight_of!(transfer_from())86 dispatch_weight::<T>() + max_weight_of!(transfer_from())87 }87 }8889 fn set_variable_metadata(bytes: u32) -> Weight {90 dispatch_weight::<T>() + max_weight_of!(set_variable_metadata(bytes))91 }928893 fn burn_from() -> Weight {89 fn burn_from() -> Weight {94 dispatch_weight::<T>() + max_weight_of!(burn_from())90 dispatch_weight::<T>() + max_weight_of!(burn_from())runtime/tests/src/tests.rsdiffbeforeafterboth18use crate::{Test, TestCrossAccountId, CollectionCreationPrice, Origin, Unique, new_test_ext};18use crate::{Test, TestCrossAccountId, CollectionCreationPrice, Origin, Unique, new_test_ext};19use up_data_structs::{19use up_data_structs::{20 COLLECTION_NUMBER_LIMIT, CollectionId, CreateItemData, CreateFungibleData, CreateNftData,20 COLLECTION_NUMBER_LIMIT, CollectionId, CreateItemData, CreateFungibleData, CreateNftData,21 CreateReFungibleData, MAX_DECIMAL_POINTS, COLLECTION_ADMINS_LIMIT, MetaUpdatePermission,21 CreateReFungibleData, MAX_DECIMAL_POINTS, COLLECTION_ADMINS_LIMIT, TokenId,22 TokenId, MAX_TOKEN_OWNERSHIP, CreateCollectionData, CollectionField, SchemaVersion,22 MAX_TOKEN_OWNERSHIP, CreateCollectionData, CollectionField, SchemaVersion, CollectionMode,23 CollectionMode, AccessMode,23 AccessMode,24};24};47fn default_nft_data() -> CreateNftData {47fn default_nft_data() -> CreateNftData {48 CreateNftData {48 CreateNftData {49 const_data: vec![1, 2, 3].try_into().unwrap(),49 const_data: vec![1, 2, 3].try_into().unwrap(),50 variable_data: vec![3, 2, 1].try_into().unwrap(),50 properties: vec![].try_into().unwrap(),51 }51 }52}52}535358fn default_re_fungible_data() -> CreateReFungibleData {58fn default_re_fungible_data() -> CreateReFungibleData {59 CreateReFungibleData {59 CreateReFungibleData {60 const_data: vec![1, 2, 3].try_into().unwrap(),60 const_data: vec![1, 2, 3].try_into().unwrap(),61 variable_data: vec![3, 2, 1].try_into().unwrap(),62 pieces: 1023,61 pieces: 1023,63 }62 }64}63}215214216 let item = <pallet_nonfungible::TokenData<Test>>::get((collection_id, 1)).unwrap();215 let item = <pallet_nonfungible::TokenData<Test>>::get((collection_id, 1)).unwrap();217 assert_eq!(item.const_data, data.const_data.into_inner());216 assert_eq!(item.const_data, data.const_data.into_inner());218 assert_eq!(item.variable_data, data.variable_data.into_inner());219 });217 });220}218}221219247 ))245 ))248 .unwrap();246 .unwrap();249 assert_eq!(item.const_data.to_vec(), data.const_data.into_inner());247 assert_eq!(item.const_data.to_vec(), data.const_data.into_inner());250 assert_eq!(item.variable_data.to_vec(), data.variable_data.into_inner());251 }248 }252 });249 });253}250}263 let balance =260 let balance =264 <pallet_refungible::Balance<Test>>::get((collection_id, TokenId(1), account(1)));261 <pallet_refungible::Balance<Test>>::get((collection_id, TokenId(1), account(1)));265 assert_eq!(item.const_data, data.const_data.into_inner());262 assert_eq!(item.const_data, data.const_data.into_inner());266 assert_eq!(item.variable_data, data.variable_data.into_inner());267 assert_eq!(balance, 1023);263 assert_eq!(balance, 1023);268 });264 });269}265}299 let balance =295 let balance =300 <pallet_refungible::Balance<Test>>::get((CollectionId(1), TokenId(1), account(1)));296 <pallet_refungible::Balance<Test>>::get((CollectionId(1), TokenId(1), account(1)));301 assert_eq!(item.const_data.to_vec(), data.const_data.into_inner());297 assert_eq!(item.const_data.to_vec(), data.const_data.into_inner());302 assert_eq!(item.variable_data.to_vec(), data.variable_data.into_inner());303 assert_eq!(balance, 1023);298 assert_eq!(balance, 1023);304 }299 }305 });300 });413 create_test_item(collection_id, &data.clone().into());408 create_test_item(collection_id, &data.clone().into());414 let item = <pallet_refungible::TokenData<Test>>::get((collection_id, TokenId(1)));409 let item = <pallet_refungible::TokenData<Test>>::get((collection_id, TokenId(1)));415 assert_eq!(item.const_data, data.const_data.into_inner());410 assert_eq!(item.const_data, data.const_data.into_inner());416 assert_eq!(item.variable_data, data.variable_data.into_inner());417 assert_eq!(411 assert_eq!(418 <pallet_refungible::AccountBalance<Test>>::get((collection_id, account(1))),412 <pallet_refungible::AccountBalance<Test>>::get((collection_id, account(1))),419 1413 12426 });2420 });2427}2421}24282429#[test]2430fn set_variable_meta_data_on_nft_token_stores_variable_meta_data() {2431 new_test_ext().execute_with(|| {2432 let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1));24332434 let origin1 = Origin::signed(1);24352436 let data = default_nft_data();2437 create_test_item(CollectionId(1), &data.into());24382439 let variable_data = b"test data".to_vec();2440 assert_ok!(Unique::set_variable_meta_data(2441 origin1,2442 collection_id,2443 TokenId(1),2444 variable_data.clone().try_into().unwrap()2445 ));24462447 assert_eq!(2448 <pallet_nonfungible::TokenData<Test>>::get((collection_id, 1))2449 .unwrap()2450 .variable_data,2451 variable_data2452 );2453 });2454}24552456#[test]2457fn set_variable_meta_data_on_re_fungible_token_stores_variable_meta_data() {2458 new_test_ext().execute_with(|| {2459 let collection_id = create_test_collection(&CollectionMode::ReFungible, CollectionId(1));24602461 let origin1 = Origin::signed(1);24622463 let data = default_re_fungible_data();2464 create_test_item(collection_id, &data.into());24652466 let variable_data = b"test data".to_vec();2467 assert_ok!(Unique::set_variable_meta_data(2468 origin1,2469 collection_id,2470 TokenId(1),2471 variable_data.clone().try_into().unwrap()2472 ));24732474 assert_eq!(2475 <pallet_refungible::TokenData<Test>>::get((collection_id, TokenId(1))).variable_data,2476 variable_data2477 );2478 });2479}24802481#[test]2482fn set_variable_meta_data_on_fungible_token_fails() {2483 new_test_ext().execute_with(|| {2484 let collection_id = create_test_collection(&CollectionMode::Fungible(3), CollectionId(1));24852486 let origin1 = Origin::signed(1);24872488 let data = default_fungible_data();2489 create_test_item(collection_id, &data.into());24902491 let variable_data = b"test data".to_vec();2492 assert_noop!(2493 Unique::set_variable_meta_data(2494 origin1,2495 collection_id,2496 TokenId(0),2497 variable_data.try_into().unwrap()2498 )2499 .map_err(|e| e.error),2500 <pallet_fungible::Error<Test>>::FungibleItemsDontHaveData2501 );2502 });2503}25042505#[test]2506fn set_variable_meta_data_on_nft_with_item_owner_permission_flag() {2507 new_test_ext().execute_with(|| {2508 //default_limits();25092510 let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1));25112512 let origin1 = Origin::signed(1);25132514 let data = default_nft_data();2515 create_test_item(collection_id, &data.into());25162517 assert_ok!(Unique::set_meta_update_permission_flag(2518 origin1.clone(),2519 collection_id,2520 MetaUpdatePermission::ItemOwner,2521 ));25222523 let variable_data = b"ten chars.".to_vec();2524 assert_ok!(Unique::set_variable_meta_data(2525 origin1,2526 collection_id,2527 TokenId(1),2528 variable_data.clone().try_into().unwrap()2529 ));25302531 assert_eq!(2532 <pallet_nonfungible::TokenData<Test>>::get((collection_id, TokenId(1)))2533 .unwrap()2534 .variable_data,2535 variable_data2536 );2537 });2538}253924222540#[test]2423#[test]2541fn collection_transfer_flag_works() {2424fn collection_transfer_flag_works() {2589 });2472 });2590}2473}25912592#[test]2593fn set_variable_meta_data_on_nft_with_admin_flag() {2594 new_test_ext().execute_with(|| {2595 // default_limits();25962597 let collection_id =2598 create_test_collection_for_owner(&CollectionMode::NFT, 2, CollectionId(1));25992600 let origin1 = Origin::signed(1);2601 let origin2 = Origin::signed(2);26022603 assert_ok!(Unique::set_mint_permission(2604 origin2.clone(),2605 collection_id,2606 true2607 ));2608 assert_ok!(Unique::add_to_allow_list(2609 origin2.clone(),2610 collection_id,2611 account(1)2612 ));26132614 assert_ok!(Unique::add_collection_admin(2615 origin2.clone(),2616 collection_id,2617 account(1)2618 ));26192620 let data = default_nft_data();2621 create_test_item(collection_id, &data.into());26222623 assert_ok!(Unique::set_meta_update_permission_flag(2624 origin2.clone(),2625 collection_id,2626 MetaUpdatePermission::Admin,2627 ));26282629 let variable_data = b"test.".to_vec();2630 assert_ok!(Unique::set_variable_meta_data(2631 origin1,2632 collection_id,2633 TokenId(1),2634 variable_data.clone().try_into().unwrap()2635 ));26362637 assert_eq!(2638 <pallet_nonfungible::TokenData<Test>>::get((collection_id, 1))2639 .unwrap()2640 .variable_data,2641 variable_data2642 );2643 });2644}26452646#[test]2647fn set_variable_meta_data_on_nft_with_admin_flag_neg() {2648 new_test_ext().execute_with(|| {2649 // default_limits();26502651 let collection_id =2652 create_test_collection_for_owner(&CollectionMode::NFT, 2, CollectionId(1));26532654 let origin1 = Origin::signed(1);2655 let origin2 = Origin::signed(2);26562657 assert_ok!(Unique::set_mint_permission(2658 origin2.clone(),2659 collection_id,2660 true2661 ));2662 assert_ok!(Unique::add_to_allow_list(2663 origin2.clone(),2664 collection_id,2665 account(1)2666 ));26672668 let data = default_nft_data();2669 create_test_item(collection_id, &data.into());26702671 assert_ok!(Unique::set_meta_update_permission_flag(2672 origin2.clone(),2673 collection_id,2674 MetaUpdatePermission::Admin,2675 ));26762677 let variable_data = b"test.".to_vec();2678 assert_noop!(2679 Unique::set_variable_meta_data(2680 origin1,2681 collection_id,2682 TokenId(1),2683 variable_data.try_into().unwrap()2684 )2685 .map_err(|e| e.error),2686 CommonError::<Test>::NoPermission2687 );2688 });2689}26902691#[test]2692fn set_variable_meta_flag_after_freeze() {2693 new_test_ext().execute_with(|| {2694 // default_limits();26952696 let collection_id =2697 create_test_collection_for_owner(&CollectionMode::NFT, 2, CollectionId(1));26982699 let origin2 = Origin::signed(2);27002701 assert_ok!(Unique::set_meta_update_permission_flag(2702 origin2.clone(),2703 collection_id,2704 MetaUpdatePermission::None,2705 ));2706 assert_noop!(2707 Unique::set_meta_update_permission_flag(2708 origin2.clone(),2709 collection_id,2710 MetaUpdatePermission::Admin2711 ),2712 CommonError::<Test>::MetadataFlagFrozen2713 );2714 });2715}27162717#[test]2718fn set_variable_meta_data_on_nft_with_none_flag_neg() {2719 new_test_ext().execute_with(|| {2720 // default_limits();27212722 let collection_id =2723 create_test_collection_for_owner(&CollectionMode::NFT, 1, CollectionId(1));2724 let origin1 = Origin::signed(1);27252726 let data = default_nft_data();2727 create_test_item(collection_id, &data.into());27282729 assert_ok!(Unique::set_meta_update_permission_flag(2730 origin1.clone(),2731 collection_id,2732 MetaUpdatePermission::None,2733 ));27342735 let variable_data = b"test.".to_vec();2736 assert_noop!(2737 Unique::set_variable_meta_data(2738 origin1.clone(),2739 collection_id,2740 TokenId(1),2741 variable_data.try_into().unwrap()2742 )2743 .map_err(|e| e.error),2744 CommonError::<Test>::NoPermission2745 );2746 });2747}274824742749#[test]2475#[test]2750fn collection_transfer_flag_works_neg() {2476fn collection_transfer_flag_works_neg() {smart_contracs/transfer/lib.rsdiffbeforeafterboth58pub enum CreateItemData {58pub enum CreateItemData {59 Nft {59 Nft {60 const_data: Vec<u8>,60 const_data: Vec<u8>,61 variable_data: Vec<u8>,62 },61 },63 Fungible {62 Fungible {64 value: u128,63 value: u128,65 },64 },66 ReFungible {65 ReFungible {67 const_data: Vec<u8>,66 const_data: Vec<u8>,68 variable_data: Vec<u8>,69 pieces: u128,67 pieces: u128,70 },68 },71}69}88 fn approve(spender: DefaultAccountId, collection_id: u32, item_id: u32, amount: u128);86 fn approve(spender: DefaultAccountId, collection_id: u32, item_id: u32, amount: u128);89 #[ink(extension = 4, returns_result = false)]87 #[ink(extension = 4, returns_result = false)]90 fn transfer_from(owner: DefaultAccountId, recipient: DefaultAccountId, collection_id: u32, item_id: u32, amount: u128);88 fn transfer_from(owner: DefaultAccountId, recipient: DefaultAccountId, collection_id: u32, item_id: u32, amount: u128);91 #[ink(extension = 5, returns_result = false)]92 fn set_variable_meta_data(collection_id: u32, item_id: u32, data: Vec<u8>);93 #[ink(extension = 6, returns_result = false)]89 #[ink(extension = 6, returns_result = false)]94 fn toggle_allow_list(collection_id: u32, address: DefaultAccountId, allowlisted: bool);90 fn toggle_allow_list(collection_id: u32, address: DefaultAccountId, allowlisted: bool);95}91}144 .extension()140 .extension()145 .transfer_from(owner, recipient, collection_id, item_id, amount);141 .transfer_from(owner, recipient, collection_id, item_id, amount);146 }142 }147 #[ink(message)]148 pub fn set_variable_meta_data(&mut self, collection_id: u32, item_id: u32, data: Vec<u8>) {149 let _ = self.env()150 .extension()151 .set_variable_meta_data(collection_id, item_id, data);152 }153 #[ink(message)]143 #[ink(message)]154 pub fn toggle_allow_list(&mut self, collection_id: u32, address: AccountId, allowlisted: bool) {144 pub fn toggle_allow_list(&mut self, collection_id: u32, address: AccountId, allowlisted: bool) {155 let _ = self.env()145 let _ = self.env()tests/package.jsondiffbeforeafterboth40 "testMigrationStructure": "mocha --timeout 9999999 -r ts-node/register ./**/nesting/migration-check.test.ts",40 "testMigrationStructure": "mocha --timeout 9999999 -r ts-node/register ./**/nesting/migration-check.test.ts",41 "testAddCollectionAdmin": "mocha --timeout 9999999 -r ts-node/register ./**/addCollectionAdmin.test.ts",41 "testAddCollectionAdmin": "mocha --timeout 9999999 -r ts-node/register ./**/addCollectionAdmin.test.ts",42 "testSetSchemaVersion": "mocha --timeout 9999999 -r ts-node/register ./**/setSchemaVersion.test.ts",42 "testSetSchemaVersion": "mocha --timeout 9999999 -r ts-node/register ./**/setSchemaVersion.test.ts",43 "testSetVariableMetaData": "mocha --timeout 9999999 -r ts-node/register ./**/setVariableMetaData.test.ts",44 "testSetCollectionLimits": "mocha --timeout 9999999 -r ts-node/register ./**/setCollectionLimits.test.ts",43 "testSetCollectionLimits": "mocha --timeout 9999999 -r ts-node/register ./**/setCollectionLimits.test.ts",45 "testSetCollectionSponsor": "mocha --timeout 9999999 -r ts-node/register ./**/setCollectionSponsor.test.ts",44 "testSetCollectionSponsor": "mocha --timeout 9999999 -r ts-node/register ./**/setCollectionSponsor.test.ts",46 "testConfirmSponsorship": "mocha --timeout 9999999 -r ts-node/register ./**/confirmSponsorship.test.ts",45 "testConfirmSponsorship": "mocha --timeout 9999999 -r ts-node/register ./**/confirmSponsorship.test.ts",tests/src/contracts.test.tsdiffbeforeafterboth111 await addToAllowListExpectSuccess(alice, collectionId, contract.address);111 await addToAllowListExpectSuccess(alice, collectionId, contract.address);112 await addToAllowListExpectSuccess(alice, collectionId, bob.address);112 await addToAllowListExpectSuccess(alice, collectionId, bob.address);113113114 const transferTx = contract.tx.createItem(value, gasLimit, bob.address, collectionId, {Nft: {const_data: '0x010203', variable_data: '0x020304'}});114 const transferTx = contract.tx.createItem(value, gasLimit, bob.address, collectionId, {Nft: {const_data: '0x010203'}});115 const events = await submitTransactionAsync(alice, transferTx);115 const events = await submitTransactionAsync(alice, transferTx);116 const result = getGenericResult(events);116 const result = getGenericResult(events);117 expect(result.success).to.be.true;117 expect(result.success).to.be.true;121 {121 {122 owner: bob.address,122 owner: bob.address,123 constData: '0x010203',123 constData: '0x010203',124 variableData: '0x020304',125 },124 },126 ]);125 ]);127 });126 });140 await addToAllowListExpectSuccess(alice, collectionId, bob.address);139 await addToAllowListExpectSuccess(alice, collectionId, bob.address);141140142 const transferTx = contract.tx.createMultipleItems(value, gasLimit, bob.address, collectionId, [141 const transferTx = contract.tx.createMultipleItems(value, gasLimit, bob.address, collectionId, [143 {Nft: {const_data: '0x010203', variable_data: '0x020304'}},142 {Nft: {const_data: '0x010203'}},144 {Nft: {const_data: '0x010204', variable_data: '0x020305'}},143 {Nft: {const_data: '0x010204'}},145 {Nft: {const_data: '0x010205', variable_data: '0x020306'}},144 {Nft: {const_data: '0x010205'}},146 ]);145 ]);147 const events = await submitTransactionAsync(alice, transferTx);146 const events = await submitTransactionAsync(alice, transferTx);148 const result = getGenericResult(events);147 const result = getGenericResult(events);155 {154 {156 Owner: bob.address,155 Owner: bob.address,157 ConstData: '0x010203',156 ConstData: '0x010203',158 VariableData: '0x020304',159 },157 },160 {158 {161 Owner: bob.address,159 Owner: bob.address,162 ConstData: '0x010204',160 ConstData: '0x010204',163 VariableData: '0x020305',164 },161 },165 {162 {166 Owner: bob.address,163 Owner: bob.address,167 ConstData: '0x010205',164 ConstData: '0x010205',168 VariableData: '0x020306',169 },165 },170 ]);166 ]);171 });167 });211 });207 });212 });208 });213214 it('SetVariableMetaData CE', async () => {215 await usingApi(async api => {216 const alice = privateKey('//Alice');217218 const collectionId = await createCollectionExpectSuccess();219 const [contract] = await deployTransferContract(api);220 const tokenId = await createItemExpectSuccess(alice, collectionId, 'NFT', contract.address.toString());221222 const transferTx = contract.tx.setVariableMetaData(value, gasLimit, collectionId, tokenId, '0x121314');223 const events = await submitTransactionAsync(alice, transferTx);224 const result = getGenericResult(events);225 expect(result.success).to.be.true;226227 const token: any = (await api.query.unique.nftItemList(collectionId, tokenId) as any).unwrap();228 expect(token.variableData.toString()).to.be.equal('0x121314');229 });230 });231209232 it('ToggleAllowList CE', async () => {210 it('ToggleAllowList CE', async () => {233 await usingApi(async api => {211 await usingApi(async api => {tests/src/createCollection.test.tsdiffbeforeafterboth74 accountTokenOwnershipLimit: 3,74 accountTokenOwnershipLimit: 3,75 },75 },76 constOnChainSchema: '0x333333',76 constOnChainSchema: '0x333333',77 metaUpdatePermission: 'Admin',78 });77 });79 const events = await submitTransactionAsync(alice, tx);78 const events = await submitTransactionAsync(alice, tx);80 const result = getCreateCollectionResult(events);79 const result = getCreateCollectionResult(events);91 expect(collection.sponsorship.asUnconfirmed.toString()).to.equal(bob.address);90 expect(collection.sponsorship.asUnconfirmed.toString()).to.equal(bob.address);92 expect(collection.limits.accountTokenOwnershipLimit.unwrap().toNumber()).to.equal(3);91 expect(collection.limits.accountTokenOwnershipLimit.unwrap().toNumber()).to.equal(3);93 expect(collection.constOnChainSchema.toString()).to.equal('0x333333');92 expect(collection.constOnChainSchema.toString()).to.equal('0x333333');94 expect(collection.metaUpdatePermission.isAdmin).to.be.true;95 });93 });96 });94 });97});95});tests/src/createMultipleItems.test.tsdiffbeforeafterboth30 getBalance,30 getBalance,31 getTokenOwner,31 getTokenOwner,32 getLastTokenId,32 getLastTokenId,33 getVariableMetadata,34 getConstMetadata,33 getConstMetadata,35 getCreatedCollectionCount,34 getCreatedCollectionCount,36 createCollectionWithPropsExpectSuccess,35 createCollectionWithPropsExpectSuccess,47 const itemsListIndexBefore = await getLastTokenId(api, collectionId);46 const itemsListIndexBefore = await getLastTokenId(api, collectionId);48 expect(itemsListIndexBefore).to.be.equal(0);47 expect(itemsListIndexBefore).to.be.equal(0);49 const alice = privateKey('//Alice');48 const alice = privateKey('//Alice');50 const args = [{Nft: {const_data: '0x31', variable_data: '0x31'}},49 const args = [{Nft: {const_data: '0x31'}},51 {Nft: {const_data: '0x32', variable_data: '0x32'}},50 {Nft: {const_data: '0x32'}},52 {Nft: {const_data: '0x33', variable_data: '0x33'}}];51 {Nft: {const_data: '0x33'}}];53 const createMultipleItemsTx = api.tx.unique52 const createMultipleItemsTx = api.tx.unique54 .createMultipleItems(collectionId, normalizeAccountId(alice.address), args);53 .createMultipleItems(collectionId, normalizeAccountId(alice.address), args);55 await submitTransactionAsync(alice, createMultipleItemsTx);54 await submitTransactionAsync(alice, createMultipleItemsTx);64 expect(await getConstMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);63 expect(await getConstMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);65 expect(await getConstMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);64 expect(await getConstMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);6667 expect(await getVariableMetadata(api, collectionId, 1)).to.be.deep.equal([0x31]);68 expect(await getVariableMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);69 expect(await getVariableMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);70 });65 });71 });66 });726797 expect(itemsListIndexBefore).to.be.equal(0);92 expect(itemsListIndexBefore).to.be.equal(0);98 const alice = privateKey('//Alice');93 const alice = privateKey('//Alice');99 const args = [94 const args = [100 {ReFungible: {const_data: [0x31], variable_data: [0x31], pieces: 1}},95 {ReFungible: {const_data: [0x31], pieces: 1}},101 {ReFungible: {const_data: [0x32], variable_data: [0x32], pieces: 1}},96 {ReFungible: {const_data: [0x32], pieces: 1}},102 {ReFungible: {const_data: [0x33], variable_data: [0x33], pieces: 1}},97 {ReFungible: {const_data: [0x33], pieces: 1}},103 ];98 ];104 const createMultipleItemsTx = api.tx.unique99 const createMultipleItemsTx = api.tx.unique105 .createMultipleItems(collectionId, normalizeAccountId(alice.address), args);100 .createMultipleItems(collectionId, normalizeAccountId(alice.address), args);115 expect(await getConstMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);110 expect(await getConstMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);116 expect(await getConstMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);111 expect(await getConstMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);117118 expect(await getVariableMetadata(api, collectionId, 1)).to.be.deep.equal([0x31]);119 expect(await getVariableMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);120 expect(await getVariableMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);121 });112 });122 });113 });123114130 tokenLimit: 2,121 tokenLimit: 2,131 });122 });132 const args = [123 const args = [133 {NFT: {const_data: 'A', variable_data: 'A'}},124 {NFT: {const_data: 'A'}},134 {NFT: {const_data: 'B', variable_data: 'B'}},125 {NFT: {const_data: 'B'}},135 ];126 ];136 const createMultipleItemsTx = api.tx.unique.createMultipleItems(collectionId, normalizeAccountId(alice.address), args);127 const createMultipleItemsTx = api.tx.unique.createMultipleItems(collectionId, normalizeAccountId(alice.address), args);137 const events = await submitTransactionAsync(alice, createMultipleItemsTx);128 const events = await submitTransactionAsync(alice, createMultipleItemsTx);146 const itemsListIndexBefore = await getLastTokenId(api, collectionId);137 const itemsListIndexBefore = await getLastTokenId(api, collectionId);147 expect(itemsListIndexBefore).to.be.equal(0);138 expect(itemsListIndexBefore).to.be.equal(0);148 const alice = privateKey('//Alice');139 const alice = privateKey('//Alice');140 const bob = privateKey('//Bob');149 const args = [{Nft: {const_data: '0x31', variable_data: '0x31'}},141 const args = [{Nft: {const_data: '0x31'}},150 {Nft: {const_data: '0x32', variable_data: '0x32'}},142 {Nft: {const_data: '0x32'}},151 {Nft: {const_data: '0x33', variable_data: '0x33'}}];143 {Nft: {const_data: '0x33'}}];152 const createMultipleItemsTx = api.tx.unique144 const createMultipleItemsTx = api.tx.unique153 .createMultipleItems(collectionId, normalizeAccountId(alice.address), args);145 .createMultipleItems(collectionId, normalizeAccountId(alice.address), args);154 await submitTransactionAsync(alice, createMultipleItemsTx);146 await submitTransactionAsync(alice, createMultipleItemsTx);169 expect(await getConstMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);161 expect(await getConstMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);170 expect(await getConstMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);162 expect(await getConstMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);171172 expect(await getVariableMetadata(api, collectionId, 1)).to.be.deep.equal([0x31]);173 expect(await getVariableMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);174 expect(await getVariableMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);175 });163 });176 });164 });177165181 const itemsListIndexBefore = await getLastTokenId(api, collectionId);169 const itemsListIndexBefore = await getLastTokenId(api, collectionId);182 expect(itemsListIndexBefore).to.be.equal(0);170 expect(itemsListIndexBefore).to.be.equal(0);183 const alice = privateKey('//Alice');171 const alice = privateKey('//Alice');172 const bob = privateKey('//Bob');184 const args = [{Nft: {const_data: '0x31', variable_data: '0x31'}},173 const args = [{Nft: {const_data: '0x31'}},185 {Nft: {const_data: '0x32', variable_data: '0x32'}},174 {Nft: {const_data: '0x32'}},186 {Nft: {const_data: '0x33', variable_data: '0x33'}}];175 {Nft: {const_data: '0x33'}}];187 const createMultipleItemsTx = api.tx.unique176 const createMultipleItemsTx = api.tx.unique188 .createMultipleItems(collectionId, normalizeAccountId(alice.address), args);177 .createMultipleItems(collectionId, normalizeAccountId(alice.address), args);189 await submitTransactionAsync(alice, createMultipleItemsTx);178 await submitTransactionAsync(alice, createMultipleItemsTx);204 expect(await getConstMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);193 expect(await getConstMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);205 expect(await getConstMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);194 expect(await getConstMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);206207 expect(await getVariableMetadata(api, collectionId, 1)).to.be.deep.equal([0x31]);208 expect(await getVariableMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);209 expect(await getVariableMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);210 });195 });211 });196 });212197216 const itemsListIndexBefore = await getLastTokenId(api, collectionId);201 const itemsListIndexBefore = await getLastTokenId(api, collectionId);217 expect(itemsListIndexBefore).to.be.equal(0);202 expect(itemsListIndexBefore).to.be.equal(0);218 const alice = privateKey('//Alice');203 const alice = privateKey('//Alice');204 const bob = privateKey('//Bob');219 const args = [{Nft: {const_data: '0x31', variable_data: '0x31'}},205 const args = [{Nft: {const_data: '0x31'}},220 {Nft: {const_data: '0x32', variable_data: '0x32'}},206 {Nft: {const_data: '0x32'}},221 {Nft: {const_data: '0x33', variable_data: '0x33'}}];207 {Nft: {const_data: '0x33'}}];222 const createMultipleItemsTx = api.tx.unique208 const createMultipleItemsTx = api.tx.unique223 .createMultipleItems(collectionId, normalizeAccountId(alice.address), args);209 .createMultipleItems(collectionId, normalizeAccountId(alice.address), args);224 await submitTransactionAsync(alice, createMultipleItemsTx);210 await submitTransactionAsync(alice, createMultipleItemsTx);239 expect(await getConstMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);225 expect(await getConstMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);240 expect(await getConstMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);226 expect(await getConstMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);241242 expect(await getVariableMetadata(api, collectionId, 1)).to.be.deep.equal([0x31]);243 expect(await getVariableMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);244 expect(await getVariableMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);245 });227 });246 });228 });247});229});264 const itemsListIndexBefore = await getLastTokenId(api, collectionId);246 const itemsListIndexBefore = await getLastTokenId(api, collectionId);265 expect(itemsListIndexBefore).to.be.equal(0);247 expect(itemsListIndexBefore).to.be.equal(0);266 await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);248 await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);267 const args = [{Nft: {const_data: '0x31', variable_data: '0x31'}},249 const args = [{Nft: {const_data: '0x31'}},268 {Nft: {const_data: '0x32', variable_data: '0x32'}},250 {Nft: {const_data: '0x32'}},269 {Nft: {const_data: '0x33', variable_data: '0x33'}}];251 {Nft: {const_data: '0x33'}}];270 const createMultipleItemsTx = api.tx.unique252 const createMultipleItemsTx = api.tx.unique271 .createMultipleItems(collectionId, normalizeAccountId(bob.address), args);253 .createMultipleItems(collectionId, normalizeAccountId(bob.address), args);272 await submitTransactionAsync(bob, createMultipleItemsTx);254 await submitTransactionAsync(bob, createMultipleItemsTx);281 expect(await getConstMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);263 expect(await getConstMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);282 expect(await getConstMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);264 expect(await getConstMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);283284 expect(await getVariableMetadata(api, collectionId, 1)).to.be.deep.equal([0x31]);285 expect(await getVariableMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);286 expect(await getVariableMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);287 });265 });288 });266 });289267314 expect(itemsListIndexBefore).to.be.equal(0);292 expect(itemsListIndexBefore).to.be.equal(0);315 await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);293 await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);316 const args = [294 const args = [317 {ReFungible: {const_data: [0x31], variable_data: [0x31], pieces: 1}},295 {ReFungible: {const_data: [0x31], pieces: 1}},318 {ReFungible: {const_data: [0x32], variable_data: [0x32], pieces: 1}},296 {ReFungible: {const_data: [0x32], pieces: 1}},319 {ReFungible: {const_data: [0x33], variable_data: [0x33], pieces: 1}},297 {ReFungible: {const_data: [0x33], pieces: 1}},320 ];298 ];321 const createMultipleItemsTx = api.tx.unique299 const createMultipleItemsTx = api.tx.unique322 .createMultipleItems(collectionId, normalizeAccountId(bob.address), args);300 .createMultipleItems(collectionId, normalizeAccountId(bob.address), args);332 expect(await getConstMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);310 expect(await getConstMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);333 expect(await getConstMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);311 expect(await getConstMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);334335 expect(await getVariableMetadata(api, collectionId, 1)).to.be.deep.equal([0x31]);336 expect(await getVariableMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);337 expect(await getVariableMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);338 });312 });339 });313 });340});314});356 const collectionId = await createCollectionExpectSuccess();330 const collectionId = await createCollectionExpectSuccess();357 const itemsListIndexBefore = await getLastTokenId(api, collectionId);331 const itemsListIndexBefore = await getLastTokenId(api, collectionId);358 expect(itemsListIndexBefore).to.be.equal(0);332 expect(itemsListIndexBefore).to.be.equal(0);359 const args = [{Nft: {const_data: '0x31', variable_data: '0x31'}},333 const args = [{Nft: {const_data: '0x31'}},360 {Nft: {const_data: '0x32', variable_data: '0x32'}},334 {Nft: {const_data: '0x32'}},361 {Nft: {const_data: '0x33', variable_data: '0x33'}}];335 {Nft: {const_data: '0x33'}}];362 const createMultipleItemsTx = api.tx.unique336 const createMultipleItemsTx = api.tx.unique363 .createMultipleItems(collectionId, normalizeAccountId(alice.address), args);337 .createMultipleItems(collectionId, normalizeAccountId(alice.address), args);364 await expect(submitTransactionAsync(bob, createMultipleItemsTx)).to.be.rejected;338 await expect(submitTransactionAsync(bob, createMultipleItemsTx)).to.be.rejected;387 const itemsListIndexBefore = await getLastTokenId(api, collectionId);361 const itemsListIndexBefore = await getLastTokenId(api, collectionId);388 expect(itemsListIndexBefore).to.be.equal(0);362 expect(itemsListIndexBefore).to.be.equal(0);389 const args = [363 const args = [390 {ReFungible: {const_data: [0x31], variable_data: [0x31], pieces: 1}},364 {ReFungible: {const_data: [0x31], pieces: 1}},391 {ReFungible: {const_data: [0x32], variable_data: [0x32], pieces: 1}},365 {ReFungible: {const_data: [0x32], pieces: 1}},392 {ReFungible: {const_data: [0x33], variable_data: [0x33], pieces: 1}},366 {ReFungible: {const_data: [0x33], pieces: 1}},393 ];367 ];394 const createMultipleItemsTx = api.tx.unique368 const createMultipleItemsTx = api.tx.unique395 .createMultipleItems(collectionId, normalizeAccountId(alice.address), args);369 .createMultipleItems(collectionId, normalizeAccountId(alice.address), args);412 const collectionId = await createCollectionExpectSuccess();386 const collectionId = await createCollectionExpectSuccess();413 const alice = privateKey('//Alice');387 const alice = privateKey('//Alice');414 const args = [388 const args = [415 {NFT: {const_data: 'A'.repeat(2049), variable_data: 'A'.repeat(2049)}},389 {NFT: {const_data: 'A'.repeat(2049)}},416 {NFT: {const_data: 'B'.repeat(2049), variable_data: 'B'.repeat(2049)}},390 {NFT: {const_data: 'B'.repeat(2049)}},417 {NFT: {const_data: 'C'.repeat(2049), variable_data: 'C'.repeat(2049)}},391 {NFT: {const_data: 'C'.repeat(2049)}},418 ];392 ];419 const createMultipleItemsTx = api.tx.unique393 const createMultipleItemsTx = api.tx.unique420 .createMultipleItems(collectionId, normalizeAccountId(alice.address), args);394 .createMultipleItems(collectionId, normalizeAccountId(alice.address), args);424 const collectionIdReFungible =398 const collectionIdReFungible =425 await createCollectionExpectSuccess({mode: {type: 'ReFungible'}});399 await createCollectionExpectSuccess({mode: {type: 'ReFungible'}});426 const argsReFungible = [400 const argsReFungible = [427 {ReFungible: ['1'.repeat(2049), '1'.repeat(2049), 10]},401 {ReFungible: ['1'.repeat(2049), 10]},428 {ReFungible: ['2'.repeat(2049), '2'.repeat(2049), 10]},402 {ReFungible: ['2'.repeat(2049), 10]},429 {ReFungible: ['3'.repeat(2049), '3'.repeat(2049), 10]},403 {ReFungible: ['3'.repeat(2049), 10]},430 ];404 ];431 const createMultipleItemsTxFungible = api.tx.unique405 const createMultipleItemsTxFungible = api.tx.unique432 .createMultipleItems(collectionIdReFungible, normalizeAccountId(alice.address), argsReFungible);406 .createMultipleItems(collectionIdReFungible, normalizeAccountId(alice.address), argsReFungible);449 await usingApi(async (api: ApiPromise) => {423 await usingApi(async (api: ApiPromise) => {450 const collectionId = await createCollectionExpectSuccess();424 const collectionId = await createCollectionExpectSuccess();451 const args = [425 const args = [452 {NFT: {const_data: 'A', variable_data: 'A'}},426 {NFT: {const_data: 'A'}},453 {NFT: {const_data: 'B', variable_data: 'B'.repeat(2049)}},427 {NFT: {const_data: 'B'.repeat(2049)}},454 {NFT: {const_data: 'C'.repeat(2049), variable_data: 'C'}},455 ];428 ];456 const createMultipleItemsTx = await api.tx.unique429 const createMultipleItemsTx = await api.tx.unique457 .createMultipleItems(collectionId, normalizeAccountId(alice.address), args);430 .createMultipleItems(collectionId, normalizeAccountId(alice.address), args);467 tokenLimit: 1,440 tokenLimit: 1,468 });441 });469 const args = [442 const args = [470 {NFT: {const_data: 'A', variable_data: 'A'}},443 {NFT: {const_data: 'A'}},471 {NFT: {const_data: 'B', variable_data: 'B'}},444 {NFT: {const_data: 'B'}},472 ];445 ];473 const createMultipleItemsTx = api.tx.unique.createMultipleItems(collectionId, normalizeAccountId(alice.address), args);446 const createMultipleItemsTx = api.tx.unique.createMultipleItems(collectionId, normalizeAccountId(alice.address), args);474 await expect(submitTransactionExpectFailAsync(alice, createMultipleItemsTx)).to.be.rejected;447 await expect(submitTransactionExpectFailAsync(alice, createMultipleItemsTx)).to.be.rejected;482 const itemsListIndexBefore = await getLastTokenId(api, collectionId);455 const itemsListIndexBefore = await getLastTokenId(api, collectionId);483 expect(itemsListIndexBefore).to.be.equal(0);456 expect(itemsListIndexBefore).to.be.equal(0);484 await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);457 await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);485 const args = [{Nft: {const_data: '0x31', variable_data: '0x31'}},458 const args = [{Nft: {const_data: '0x31'}},486 {Nft: {const_data: '0x32', variable_data: '0x32'}},459 {Nft: {const_data: '0x32'}},487 {Nft: {const_data: '0x33', variable_data: '0x33'}}];460 {Nft: {const_data: '0x33'}}];488 461489 const createMultipleItemsTx = api.tx.unique.createMultipleItems(collectionId, normalizeAccountId(alice.address), args);462 const createMultipleItemsTx = api.tx.unique.createMultipleItems(collectionId, normalizeAccountId(alice.address), args);490463510 const itemsListIndexBefore = await getLastTokenId(api, collectionId);483 const itemsListIndexBefore = await getLastTokenId(api, collectionId);511 expect(itemsListIndexBefore).to.be.equal(0);484 expect(itemsListIndexBefore).to.be.equal(0);512 await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);485 await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);513 const args = [{Nft: {const_data: '0x31', variable_data: '0x31'}},486 const args = [{Nft: {const_data: '0x31'}},514 {Nft: {const_data: '0x32', variable_data: '0x32'}},487 {Nft: {const_data: '0x32'}},515 {Nft: {const_data: '0x33', variable_data: '0x33'}}];488 {Nft: {const_data: '0x33'}}];516 489517 const createMultipleItemsTx = api.tx.unique.createMultipleItems(collectionId, normalizeAccountId(alice.address), args);490 const createMultipleItemsTx = api.tx.unique.createMultipleItems(collectionId, normalizeAccountId(alice.address), args);518491535 const itemsListIndexBefore = await getLastTokenId(api, collectionId);508 const itemsListIndexBefore = await getLastTokenId(api, collectionId);536 await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);509 await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);537 expect(itemsListIndexBefore).to.be.equal(0);510 expect(itemsListIndexBefore).to.be.equal(0);538 const args = [{Nft: {const_data: '0x31', variable_data: '0x31'}},511 const args = [{Nft: {const_data: '0x31'}},539 {Nft: {const_data: '0x32', variable_data: '0x32'}},512 {Nft: {const_data: '0x32'}},540 {Nft: {const_data: '0x33', variable_data: '0x33'}}];513 {Nft: {const_data: '0x33'}}];541 514542 const createMultipleItemsTx = api.tx.unique.createMultipleItems(collectionId, normalizeAccountId(alice.address), args);515 const createMultipleItemsTx = api.tx.unique.createMultipleItems(collectionId, normalizeAccountId(alice.address), args);543516562 expect(itemsListIndexBefore).to.be.equal(0);535 expect(itemsListIndexBefore).to.be.equal(0);563 await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);536 await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);564537565 const args = [{Nft: {const_data: '0x31', variable_data: '0x31'}},538 const args = [{Nft: {const_data: '0x31'}},566 {Nft: {const_data: '0x32', variable_data: '0x32'}},539 {Nft: {const_data: '0x32'}},567 {Nft: {const_data: '0x33', variable_data: '0x33'}}];540 {Nft: {const_data: '0x33'}}];568 541569 const createMultipleItemsTx = api.tx.unique.createMultipleItems(collectionId, normalizeAccountId(alice.address), args);542 const createMultipleItemsTx = api.tx.unique.createMultipleItems(collectionId, normalizeAccountId(alice.address), args);570 const events = await submitTransactionAsync(alice, createMultipleItemsTx);543 const events = await submitTransactionAsync(alice, createMultipleItemsTx);595 propPerm: [{key: 'key1', mutable: true, collectionAdmin: false, tokenOwner: false}]});568 propPerm: [{key: 'key1', mutable: true, collectionAdmin: false, tokenOwner: false}]});596 const itemsListIndexBefore = await getLastTokenId(api, collectionId);569 const itemsListIndexBefore = await getLastTokenId(api, collectionId);597 expect(itemsListIndexBefore).to.be.equal(0);570 expect(itemsListIndexBefore).to.be.equal(0);598 const args = [{Nft: {const_data: '0x31', variable_data: '0x31'}},571 const args = [{Nft: {const_data: '0x31'}},599 {Nft: {const_data: '0x32', variable_data: '0x32'}},572 {Nft: {const_data: '0x32'}},600 {Nft: {const_data: '0x33', variable_data: '0x33'}}];573 {Nft: {const_data: '0x33'}}];601 574602 const createMultipleItemsTx = api.tx.unique.createMultipleItems(collectionId, normalizeAccountId(alice.address), args);575 const createMultipleItemsTx = api.tx.unique.createMultipleItems(collectionId, normalizeAccountId(alice.address), args);603576tests/src/createMultipleItemsEx.test.tsdiffbeforeafterboth30 {30 {31 owner: {substrate: alice.address},31 owner: {substrate: alice.address},32 constData: '0x0000',32 constData: '0x0000',33 variableData: '0x1111',34 }, {33 }, {35 owner: {substrate: bob.address},34 owner: {substrate: bob.address},36 constData: '0x2222',35 constData: '0x2222',37 variableData: '0x3333',38 }, {36 }, {39 owner: {substrate: charlie.address},37 owner: {substrate: charlie.address},40 constData: '0x4444',38 constData: '0x4444',41 variableData: '0x5555',42 },39 },43 ];40 ];444161 {58 {62 owner: {substrate: alice.address},59 owner: {substrate: alice.address},63 constData: '0x0000',60 constData: '0x0000',64 variableData: '0x1111',65 }, {61 }, {66 owner: {substrate: bob.address},62 owner: {substrate: bob.address},67 constData: '0x2222',63 constData: '0x2222',68 variableData: '0x3333',69 }, {64 }, {70 owner: {substrate: charlie.address},65 owner: {substrate: charlie.address},71 constData: '0x4444',66 constData: '0x4444',72 variableData: '0x5555',73 },67 },74 ];68 ];756998 {92 {99 owner: {substrate: alice.address},93 owner: {substrate: alice.address},100 constData: '0x0000',94 constData: '0x0000',101 variableData: '0x1111',102 }, {95 }, {103 owner: {substrate: bob.address},96 owner: {substrate: bob.address},104 constData: '0x2222',97 constData: '0x2222',105 variableData: '0x3333',106 }, {98 }, {107 owner: {substrate: charlie.address},99 owner: {substrate: charlie.address},108 constData: '0x4444',100 constData: '0x4444',109 variableData: '0x5555',110 },101 },111 ];102 ];112 await expect(executeTransaction(103 await expect(executeTransaction(136 {127 {137 owner: {substrate: alice.address},128 owner: {substrate: alice.address},138 constData: '0x0000',129 constData: '0x0000',139 variableData: '0x1111',140 }, {130 }, {141 owner: {substrate: bob.address},131 owner: {substrate: bob.address},142 constData: '0x2222',132 constData: '0x2222',143 variableData: '0x3333',144 }, {133 }, {145 owner: {substrate: charlie.address},134 owner: {substrate: charlie.address},146 constData: '0x4444',135 constData: '0x4444',147 variableData: '0x5555',148 },136 },149 ];137 ];150 await expect(executeTransaction(138 await expect(executeTransaction(355 {343 {356 owner: {substrate: alice.address},344 owner: {substrate: alice.address},357 constData: '0x0000',345 constData: '0x0000',358 variableData: '0x1111',359 }, {346 }, {360 owner: {substrate: bob.address},347 owner: {substrate: bob.address},361 constData: '0x2222',348 constData: '0x2222',362 variableData: '0x3333',363 }, {349 }, {364 owner: {substrate: charlie.address},350 owner: {substrate: charlie.address},365 constData: '0x4444',351 constData: '0x4444',366 variableData: '0x5555',367 },352 },368 ];353 ];369354386 {371 {387 owner: {substrate: alice.address},372 owner: {substrate: alice.address},388 constData: '0x0000',373 constData: '0x0000',389 variableData: '0x1111',390 }, {374 }, {391 owner: {substrate: bob.address},375 owner: {substrate: bob.address},392 constData: '0x2222',376 constData: '0x2222',393 variableData: '0x3333',394 }, {377 }, {395 owner: {substrate: charlie.address},378 owner: {substrate: charlie.address},396 constData: '0x4444',379 constData: '0x4444',397 variableData: '0x5555',398 },380 },399 ];381 ];400382tests/src/eth/api/UniqueFungible.soldiffbeforeafterboth22 );22 );23}23}2425// Selector: 79cc679026interface ERC20UniqueExtensions is Dummy, ERC165 {27 // Selector: burnFrom(address,uint256) 79cc679028 function burnFrom(address from, uint256 amount) external returns (bool);29}243025// Selector: 942e8b2231// Selector: 942e8b2226interface ERC20 is Dummy, ERC165, ERC20Events {32interface ERC20 is Dummy, ERC165, ERC20Events {59 returns (uint256);65 returns (uint256);60}66}6768// Selector: 9b5e29c569interface CollectionProperties is Dummy, ERC165 {70 // Selector: setCollectionProperty(string,bytes) 2f073f6671 function setCollectionProperty(string memory key, bytes memory value)72 external;7374 // Selector: deleteCollectionProperty(string) 7b7debce75 function deleteCollectionProperty(string memory key) external;7677 // Throws error if key not found78 //79 // Selector: collectionProperty(string) cf24fd6d80 function collectionProperty(string memory key)81 external82 view83 returns (bytes memory);84}618562interface UniqueFungible is Dummy, ERC165, ERC20 {}86interface UniqueFungible is87 Dummy,88 ERC165,89 ERC20,90 ERC20UniqueExtensions,91 CollectionProperties92{}6393tests/src/eth/api/UniqueNFT.soldiffbeforeafterboth42 event MintingFinished();42 event MintingFinished();43}43}4445// Selector: 4136937746interface TokenProperties is Dummy, ERC165 {47 // Selector: setTokenPropertyPermission(string,bool,bool,bool) 222d97fa48 function setTokenPropertyPermission(49 string memory key,50 bool isMutable,51 bool collectionAdmin,52 bool tokenOwner53 ) external;5455 // Selector: setProperty(uint256,string,bytes) 1752d67b56 function setProperty(57 uint256 tokenId,58 string memory key,59 bytes memory value60 ) external;6162 // Selector: deleteProperty(uint256,string) 066111d163 function deleteProperty(uint256 tokenId, string memory key) external;6465 // Throws error if key not found66 //67 // Selector: property(uint256,string) 7228c32768 function property(uint256 tokenId, string memory key)69 external70 view71 returns (bytes memory);72}447345// Selector: 42966c6874// Selector: 42966c6846interface ERC721Burnable is Dummy, ERC165 {75interface ERC721Burnable is Dummy, ERC165 {162 function totalSupply() external view returns (uint256);191 function totalSupply() external view returns (uint256);163}192}193194// Selector: 9b5e29c5195interface CollectionProperties is Dummy, ERC165 {196 // Selector: setCollectionProperty(string,bytes) 2f073f66197 function setCollectionProperty(string memory key, bytes memory value)198 external;199200 // Selector: deleteCollectionProperty(string) 7b7debce201 function deleteCollectionProperty(string memory key) external;202203 // Throws error if key not found204 //205 // Selector: collectionProperty(string) cf24fd6d206 function collectionProperty(string memory key)207 external208 view209 returns (bytes memory);210}164211165// Selector: e562194d212// Selector: d74d154f166interface ERC721UniqueExtensions is Dummy, ERC165 {213interface ERC721UniqueExtensions is Dummy, ERC165 {167 // Selector: transfer(address,uint256) a9059cbb214 // Selector: transfer(address,uint256) a9059cbb168 function transfer(address to, uint256 tokenId) external;215 function transfer(address to, uint256 tokenId) external;173 // Selector: nextTokenId() 75794a3c220 // Selector: nextTokenId() 75794a3c174 function nextTokenId() external view returns (uint256);221 function nextTokenId() external view returns (uint256);175176 // Selector: setVariableMetadata(uint256,bytes) d4eac26d177 function setVariableMetadata(uint256 tokenId, bytes memory data) external;178179 // Selector: getVariableMetadata(uint256) e6c5ce6f180 function getVariableMetadata(uint256 tokenId)181 external182 view183 returns (bytes memory);184222185 // Selector: mintBulk(address,uint256[]) 44a9945e223 // Selector: mintBulk(address,uint256[]) 44a9945e186 function mintBulk(address to, uint256[] memory tokenIds)224 function mintBulk(address to, uint256[] memory tokenIds)201 ERC721Enumerable,239 ERC721Enumerable,202 ERC721UniqueExtensions,240 ERC721UniqueExtensions,203 ERC721Mintable,241 ERC721Mintable,204 ERC721Burnable242 ERC721Burnable,243 CollectionProperties,244 TokenProperties205{}245{}206246tests/src/eth/base.test.tsdiffbeforeafterboth101 });101 });102102103 itWeb3('ERC721UniqueExtensions support', async ({web3}) => {103 itWeb3('ERC721UniqueExtensions support', async ({web3}) => {104 expect(await contract(web3).methods.supportsInterface('0xe562194d').call()).to.be.true;104 expect(await contract(web3).methods.supportsInterface('0xd74d154f').call()).to.be.true;105 });105 });106106107 itWeb3('ERC721Burnable support', async ({web3}) => {107 itWeb3('ERC721Burnable support', async ({web3}) => {tests/src/eth/collectionProperties.test.tsdiffbeforeafterbothno changes
tests/src/eth/nonFungible.test.tsdiffbeforeafterboth15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.161617import privateKey from '../substrate/privateKey';17import privateKey from '../substrate/privateKey';18import {approveExpectSuccess, burnItemExpectSuccess, createCollectionExpectSuccess, createItemExpectSuccess, setVariableMetaDataExpectSuccess, transferExpectSuccess, transferFromExpectSuccess, UNIQUE, setMetadataUpdatePermissionFlagExpectSuccess} from '../util/helpers';18import {approveExpectSuccess, burnItemExpectSuccess, createCollectionExpectSuccess, createItemExpectSuccess, transferExpectSuccess, transferFromExpectSuccess, UNIQUE} from '../util/helpers';19import {collectionIdToAddress, createEthAccount, createEthAccountWithBalance, GAS_ARGS, itWeb3, normalizeEvents, recordEthFee, recordEvents, subToEth, transferBalanceToEth} from './util/helpers';19import {collectionIdToAddress, createEthAccount, createEthAccountWithBalance, GAS_ARGS, itWeb3, normalizeEvents, recordEthFee, recordEvents, subToEth, transferBalanceToEth} from './util/helpers';20import nonFungibleAbi from './nonFungibleAbi.json';20import nonFungibleAbi from './nonFungibleAbi.json';21import {expect} from 'chai';21import {expect} from 'chai';333 }333 }334 });334 });335336 itWeb3('Can perform getVariableMetadata', async ({web3, api}) => {337 const collection = await createCollectionExpectSuccess({338 mode: {type: 'NFT'},339 });340 const alice = privateKey('//Alice');341342 const owner = await createEthAccountWithBalance(api, web3);343344 const item = await createItemExpectSuccess(alice, collection, 'NFT', {Ethereum: owner});345 await setMetadataUpdatePermissionFlagExpectSuccess(alice, collection, 'Admin');346 await setVariableMetaDataExpectSuccess(alice, collection, item, [1, 2, 3]);347348 const address = collectionIdToAddress(collection);349 const contract = new web3.eth.Contract(nonFungibleAbi as any, address, {from: owner, ...GAS_ARGS});350351 expect(await contract.methods.getVariableMetadata(item).call()).to.be.equal('0x010203');352 });353354 itWeb3('Can perform setVariableMetadata', async ({web3, api}) => {355 const collection = await createCollectionExpectSuccess({356 mode: {type: 'NFT'},357 });358 const alice = privateKey('//Alice');359360 const owner = await createEthAccountWithBalance(api, web3);361362 const item = await createItemExpectSuccess(alice, collection, 'NFT', {Ethereum: owner});363364 const address = collectionIdToAddress(collection);365 const contract = new web3.eth.Contract(nonFungibleAbi as any, address, {from: owner, ...GAS_ARGS});366367 expect(await contract.methods.setVariableMetadata(item, '0x010203').send({from: owner}));368 expect(await contract.methods.getVariableMetadata(item).call()).to.be.equal('0x010203');369 });370});335});371336372describe('NFT: Fees', () => {337describe('NFT: Fees', () => {tests/src/eth/nonFungibleAbi.jsondiffbeforeafterboth130 "stateMutability": "nonpayable",130 "stateMutability": "nonpayable",131 "type": "function"131 "type": "function"132 },132 },133 {134 "inputs": [135 {136 "internalType": "address",137 "name": "from",138 "type": "address"139 },140 {141 "internalType": "uint256",142 "name": "tokenId",143 "type": "uint256"144 }145 ],146 "name": "burnFrom",147 "outputs": [],148 "stateMutability": "nonpayable",149 "type": "function"150 },151 {152 "inputs": [153 {154 "internalType": "string",155 "name": "key",156 "type": "string"157 }158 ],159 "name": "collectionProperty",160 "outputs": [161 {162 "internalType": "bytes",163 "name": "",164 "type": "bytes"165 }166 ],167 "stateMutability": "view",168 "type": "function"169 },170 {171 "inputs": [172 {173 "internalType": "string",174 "name": "key",175 "type": "string"176 }177 ],178 "name": "deleteCollectionProperty",179 "outputs": [],180 "stateMutability": "nonpayable",181 "type": "function"182 },183 {184 "inputs": [185 {186 "internalType": "uint256",187 "name": "tokenId",188 "type": "uint256"189 },190 {191 "internalType": "string",192 "name": "key",193 "type": "string"194 }195 ],196 "name": "deleteProperty",197 "outputs": [],198 "stateMutability": "nonpayable",199 "type": "function"200 },133 {201 {134 "inputs": [],202 "inputs": [],135 "name": "finishMinting",203 "name": "finishMinting",162 "stateMutability": "view",230 "stateMutability": "view",163 "type": "function"231 "type": "function"164 },232 },165 {166 "inputs": [167 {168 "internalType": "uint256",169 "name": "tokenId",170 "type": "uint256"171 }172 ],173 "name": "getVariableMetadata",174 "outputs": [175 {176 "internalType": "bytes",177 "name": "",178 "type": "bytes"179 }180 ],181 "stateMutability": "view",182 "type": "function"183 },184 {233 {185 "inputs": [234 "inputs": [186 {235 {376 "stateMutability": "view",425 "stateMutability": "view",377 "type": "function"426 "type": "function"378 },427 },428 {429 "inputs": [430 {431 "internalType": "uint256",432 "name": "tokenId",433 "type": "uint256"434 },435 {436 "internalType": "string",437 "name": "key",438 "type": "string"439 }440 ],441 "name": "property",442 "outputs": [443 {444 "internalType": "bytes",445 "name": "",446 "type": "bytes"447 }448 ],449 "stateMutability": "view",450 "type": "function"451 },379 {452 {380 "inputs": [453 "inputs": [381 {454 {445 "stateMutability": "nonpayable",518 "stateMutability": "nonpayable",446 "type": "function"519 "type": "function"447 },520 },521 {522 "inputs": [523 {524 "internalType": "string",525 "name": "key",526 "type": "string"527 },528 {529 "internalType": "bytes",530 "name": "value",531 "type": "bytes"532 }533 ],534 "name": "setCollectionProperty",535 "outputs": [],536 "stateMutability": "nonpayable",537 "type": "function"538 },448 {539 {449 "inputs": [540 "inputs": [450 {541 {451 "internalType": "uint256",542 "internalType": "uint256",452 "name": "tokenId",543 "name": "tokenId",453 "type": "uint256"544 "type": "uint256"454 },545 },546 {547 "internalType": "string",548 "name": "key",549 "type": "string"550 },455 {551 {456 "internalType": "bytes",552 "internalType": "bytes",457 "name": "data",553 "name": "value",458 "type": "bytes"554 "type": "bytes"459 }555 }460 ],556 ],461 "name": "setVariableMetadata",557 "name": "setProperty",462 "outputs": [],558 "outputs": [],463 "stateMutability": "nonpayable",559 "stateMutability": "nonpayable",464 "type": "function"560 "type": "function"465 },561 },562 {563 "inputs": [564 {565 "internalType": "string",566 "name": "key",567 "type": "string"568 },569 {570 "internalType": "bool",571 "name": "isMutable",572 "type": "bool"573 },574 {575 "internalType": "bool",576 "name": "collectionAdmin",577 "type": "bool"578 },579 {580 "internalType": "bool",581 "name": "tokenOwner",582 "type": "bool"583 }584 ],585 "name": "setTokenPropertyPermission",586 "outputs": [],587 "stateMutability": "nonpayable",588 "type": "function"589 },466 {590 {467 "inputs": [591 "inputs": [468 {592 {469 "internalType": "bytes4",593 "internalType": "bytes4",470 "name": "interfaceId",594 "name": "interfaceID",471 "type": "bytes4"595 "type": "bytes4"472 }596 }473 ],597 ],tests/src/eth/proxy/UniqueNFTProxy.abidiffbeforeafterboth1[{"inputs":[{"internalType":"address","name":"_proxied","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[],"name":"MintingFinished","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"approved","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finishMinting","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getVariableMetadata","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"mintBulk","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"components":[{"internalType":"uint256","name":"field_0","type":"uint256"},{"internalType":"string","name":"field_1","type":"string"}],"internalType":"struct Tuple0[]","name":"tokens","type":"tuple[]"}],"name":"mintBulkWithTokenURI","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"string","name":"tokenUri","type":"string"}],"name":"mintWithTokenURI","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"mintingFinished","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFromWithData","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"setVariableMetadata","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"interfaceId","type":"uint32"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}]1[{"inputs":[{"internalType":"address","name":"_proxied","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[],"name":"MintingFinished","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"approved","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"key","type":"string"}],"name":"deleteProperty","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finishMinting","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"mintBulk","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"components":[{"internalType":"uint256","name":"field_0","type":"uint256"},{"internalType":"string","name":"field_1","type":"string"}],"internalType":"struct Tuple0[]","name":"tokens","type":"tuple[]"}],"name":"mintBulkWithTokenURI","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"string","name":"tokenUri","type":"string"}],"name":"mintWithTokenURI","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"mintingFinished","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFromWithData","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"key","type":"string"},{"internalType":"string","name":"value","type":"string"}],"name":"setProperty","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}]tests/src/eth/proxy/UniqueNFTProxy.bindiffbeforeafterboth1608060405234801561001057600080fd5b5060405161168d38038061168d83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6115fa806100936000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c806350bb4e7f116100f9578063a22cb46511610097578063d4eac26d11610071578063d4eac26d1461036b578063e6c5ce6f1461037e578063e985e9c514610391578063f4f4b500146103a457600080fd5b8063a22cb46514610332578063a9059cbb14610345578063c87b56dd1461035857600080fd5b806370a08231116100d357806370a082311461030757806375794a3c1461031a5780637d64bcb41461032257806395d89b411461032a57600080fd5b806350bb4e7f146102ce57806360a11672146102e15780636352211e146102f457600080fd5b80632f745c591161016657806342842e0e1161014057806342842e0e1461028257806342966c681461029557806344a9945e146102a85780634f6ccce7146102bb57600080fd5b80632f745c5914610249578063365430061461025c57806340c10f191461026f57600080fd5b806305d2035b146101ae57806306fdde03146101cb578063081812fc146101e0578063095ea7b31461020b57806318160ddd1461022057806323b872dd14610236575b600080fd5b6101b66103b7565b60405190151581526020015b60405180910390f35b6101d3610443565b6040516101c2919061148a565b6101f36101ee366004611277565b6104c3565b6040516001600160a01b0390911681526020016101c2565b61021e61021936600461118c565b610547565b005b6102286105b2565b6040519081526020016101c2565b61021e610244366004610eff565b610639565b61022861025736600461118c565b6106ad565b6101b661026a366004610fac565b610739565b6101b661027d36600461118c565b6107be565b61021e610290366004610eff565b6107f8565b61021e6102a3366004611277565b610839565b6101b66102b63660046110b1565b61089a565b6102286102c9366004611277565b6108cd565b6101b66102dc3660046111b8565b61094b565b61021e6102ef366004610f40565b6109da565b6101f3610302366004611277565b610a49565b610228610315366004610e8c565b610a7b565b610228610aae565b6101b6610afd565b6101d3610b62565b61021e61034036600461115e565b610ba6565b61021e61035336600461118c565b610be0565b6101d3610366366004611277565b610c19565b61021e6103793660046112a9565b610c9b565b6101d361038c366004611277565b610ccd565b6101f361039f366004610ec6565b610cff565b6101b66103b23660046112f0565b610d85565b60008060009054906101000a90046001600160a01b03166001600160a01b03166305d2035b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561040657600080fd5b505afa15801561041a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043e9190611211565b905090565b60008054604080516306fdde0360e01b815290516060936001600160a01b03909316926306fdde039260048082019391829003018186803b15801561048757600080fd5b505afa15801561049b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261043e919081019061122e565b6000805460405163020604bf60e21b8152600481018490526001600160a01b039091169063081812fc906024015b60206040518083038186803b15801561050957600080fd5b505afa15801561051d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105419190610ea9565b92915050565b60005460405163095ea7b360e01b81526001600160a01b038481166004830152602482018490529091169063095ea7b3906044015b600060405180830381600087803b15801561059657600080fd5b505af11580156105aa573d6000803e3d6000fd5b505050505050565b60008060009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561060157600080fd5b505afa158015610615573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043e9190611290565b6000546040516323b872dd60e01b81526001600160a01b038581166004830152848116602483015260448201849052909116906323b872dd906064015b600060405180830381600087803b15801561069057600080fd5b505af11580156106a4573d6000803e3d6000fd5b50505050505050565b60008054604051632f745c5960e01b81526001600160a01b0385811660048301526024820185905290911690632f745c599060440160206040518083038186803b1580156106fa57600080fd5b505afa15801561070e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107329190611290565b9392505050565b60008054604051631b2a180360e11b81526001600160a01b039091169063365430069061076c908690869060040161137f565b602060405180830381600087803b15801561078657600080fd5b505af115801561079a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107329190611211565b600080546040516340c10f1960e01b81526001600160a01b03858116600483015260248201859052909116906340c10f199060440161076c565b600054604051632142170760e11b81526001600160a01b038581166004830152848116602483015260448201849052909116906342842e0e90606401610676565b600054604051630852cd8d60e31b8152600481018390526001600160a01b03909116906342966c6890602401600060405180830381600087803b15801561087f57600080fd5b505af1158015610893573d6000803e3d6000fd5b5050505050565b60008054604051632254ca2f60e11b81526001600160a01b03909116906344a9945e9061076c9086908690600401611404565b60008054604051634f6ccce760e01b8152600481018490526001600160a01b0390911690634f6ccce7906024015b60206040518083038186803b15801561091357600080fd5b505afa158015610927573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105419190611290565b600080546040516350bb4e7f60e01b81526001600160a01b03909116906350bb4e7f906109809087908790879060040161145a565b602060405180830381600087803b15801561099a57600080fd5b505af11580156109ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d29190611211565b949350505050565b6000546040516330508b3960e11b81526001600160a01b03909116906360a1167290610a10908790879087908790600401611342565b600060405180830381600087803b158015610a2a57600080fd5b505af1158015610a3e573d6000803e3d6000fd5b505050505b50505050565b600080546040516331a9108f60e11b8152600481018490526001600160a01b0390911690636352211e906024016104f1565b600080546040516370a0823160e01b81526001600160a01b038481166004830152909116906370a08231906024016108fb565b60008060009054906101000a90046001600160a01b03166001600160a01b03166375794a3c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561060157600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b0316637d64bcb46040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610b4e57600080fd5b505af115801561041a573d6000803e3d6000fd5b60008054604080516395d89b4160e01b815290516060936001600160a01b03909316926395d89b419260048082019391829003018186803b15801561048757600080fd5b60005460405163a22cb46560e01b81526001600160a01b03848116600483015283151560248301529091169063a22cb4659060440161057c565b60005460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb9060440161057c565b60005460405163c87b56dd60e01b8152600481018390526060916001600160a01b03169063c87b56dd906024015b60006040518083038186803b158015610c5f57600080fd5b505afa158015610c73573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610541919081019061122e565b60005460405163d4eac26d60e01b81526001600160a01b039091169063d4eac26d9061057c908590859060040161149d565b60005460405163e6c5ce6f60e01b8152600481018390526060916001600160a01b03169063e6c5ce6f90602401610c47565b6000805460405163e985e9c560e01b81526001600160a01b03858116600483015284811660248301529091169063e985e9c59060440160206040518083038186803b158015610d4d57600080fd5b505afa158015610d61573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107329190610ea9565b6000805460405162f4f4b560e81b815263ffffffff841660048201526001600160a01b039091169063f4f4b5009060240160206040518083038186803b158015610dce57600080fd5b505afa158015610de2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105419190611211565b6000610e19610e1484611534565b6114df565b9050828152838383011115610e2d57600080fd5b61073283602083018461155c565b600082601f830112610e4c57600080fd5b8135610e5a610e1482611534565b818152846020838601011115610e6f57600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215610e9e57600080fd5b81356107328161159e565b600060208284031215610ebb57600080fd5b81516107328161159e565b60008060408385031215610ed957600080fd5b8235610ee48161159e565b91506020830135610ef48161159e565b809150509250929050565b600080600060608486031215610f1457600080fd5b8335610f1f8161159e565b92506020840135610f2f8161159e565b929592945050506040919091013590565b60008060008060808587031215610f5657600080fd5b8435610f618161159e565b93506020850135610f718161159e565b925060408501359150606085013567ffffffffffffffff811115610f9457600080fd5b610fa087828801610e3b565b91505092959194509250565b60008060408385031215610fbf57600080fd5b8235610fca8161159e565b915060208381013567ffffffffffffffff80821115610fe857600080fd5b818601915086601f830112610ffc57600080fd5b813561100a610e1482611510565b8082825285820191508585018a878560051b880101111561102a57600080fd5b60005b848110156110a05781358681111561104457600080fd5b87016040818e03601f1901121561105a57600080fd5b6110626114b6565b89820135815260408201358881111561107a57600080fd5b6110888f8c83860101610e3b565b828c015250855250928701929087019060010161102d565b50979a909950975050505050505050565b600080604083850312156110c457600080fd5b82356110cf8161159e565b915060208381013567ffffffffffffffff8111156110ec57600080fd5b8401601f810186136110fd57600080fd5b803561110b610e1482611510565b80828252848201915084840189868560051b870101111561112b57600080fd5b600094505b8385101561114e578035835260019490940193918501918501611130565b5080955050505050509250929050565b6000806040838503121561117157600080fd5b823561117c8161159e565b91506020830135610ef4816115b6565b6000806040838503121561119f57600080fd5b82356111aa8161159e565b946020939093013593505050565b6000806000606084860312156111cd57600080fd5b83356111d88161159e565b925060208401359150604084013567ffffffffffffffff8111156111fb57600080fd5b61120786828701610e3b565b9150509250925092565b60006020828403121561122357600080fd5b8151610732816115b6565b60006020828403121561124057600080fd5b815167ffffffffffffffff81111561125757600080fd5b8201601f8101841361126857600080fd5b6109d284825160208401610e06565b60006020828403121561128957600080fd5b5035919050565b6000602082840312156112a257600080fd5b5051919050565b600080604083850312156112bc57600080fd5b82359150602083013567ffffffffffffffff8111156112da57600080fd5b6112e685828601610e3b565b9150509250929050565b60006020828403121561130257600080fd5b813563ffffffff8116811461073257600080fd5b6000815180845261132e81602086016020860161155c565b601f01601f19169290920160200192915050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061137590830184611316565b9695505050505050565b6001600160a01b0383168152604060208083018290528351828401819052600092916060600583901b860181019290860190878301865b828110156113f557888603605f190184528151805187528501518587018890526113e288880182611316565b96505092840192908401906001016113b6565b50939998505050505050505050565b6001600160a01b038316815260406020808301829052835191830182905260009184820191906060850190845b8181101561144d57845183529383019391830191600101611431565b5090979650505050505050565b60018060a01b03841681528260208201526060604082015260006114816060830184611316565b95945050505050565b6020815260006107326020830184611316565b8281526040602082015260006109d26040830184611316565b6040805190810167ffffffffffffffff811182821017156114d9576114d9611588565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561150857611508611588565b604052919050565b600067ffffffffffffffff82111561152a5761152a611588565b5060051b60200190565b600067ffffffffffffffff82111561154e5761154e611588565b50601f01601f191660200190565b60005b8381101561157757818101518382015260200161155f565b83811115610a435750506000910152565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146115b357600080fd5b50565b80151581146115b357600080fdfea2646970667358221220669a75a3efcdc6b60606caa5c7e41cab1d727e89a03fd231d1cda27f4de159a064736f6c634300080700331608060405234801561001057600080fd5b506040516116bb3803806116bb83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b611628806100936000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c80634f6ccce7116100f957806379cc679011610097578063a22cb46511610071578063a22cb46514610399578063a9059cbb146103ac578063c87b56dd146103bf578063e985e9c5146103d257600080fd5b806379cc6790146103765780637d64bcb41461038957806395d89b411461039157600080fd5b806362d9491f116100d357806362d9491f146103355780636352211e1461034857806370a082311461035b57806375794a3c1461036e57600080fd5b80634f6ccce7146102fc57806350bb4e7f1461030f57806360a116721461032257600080fd5b80632f745c591161016657806340c10f191161014057806340c10f19146102b057806342842e0e146102c357806342966c68146102d657806344a9945e146102e957600080fd5b80632f745c5914610277578063342419141461028a578063365430061461029d57600080fd5b8063081812fc116101a2578063081812fc1461020e578063095ea7b31461023957806318160ddd1461024e57806323b872dd1461026457600080fd5b806301ffc9a7146101c957806305d2035b146101f157806306fdde03146101f9575b600080fd5b6101dc6101d7366004610dca565b6103e5565b60405190151581526020015b60405180910390f35b6101dc610462565b6102016104df565b6040516101e89190610e4c565b61022161021c366004610e5f565b610550565b6040516001600160a01b0390911681526020016101e8565b61024c610247366004610e90565b6105bf565b005b61025661062a565b6040519081526020016101e8565b61024c610272366004610ebc565b6106a2565b610256610285366004610e90565b610716565b61024c610298366004610ff3565b610793565b6101dc6102ab36600461104c565b6107f8565b6101dc6102be366004610e90565b61086e565b61024c6102d1366004610ebc565b6108a8565b61024c6102e4366004610e5f565b6108e9565b6101dc6102f736600461114f565b61091a565b61025661030a366004610e5f565b61094d565b6101dc61031d3660046111f5565b6109bc565b61024c61033036600461124e565b610a3c565b61024c6103433660046112ce565b610aab565b610221610356366004610e5f565b610add565b610256610369366004611332565b610b0f565b610256610b42565b61024c610384366004610e90565b610b96565b6101dc610bcf565b610201610c25565b61024c6103a736600461135d565b610c6e565b61024c6103ba366004610e90565b610ca8565b6102016103cd366004610e5f565b610ce1565b6102216103e0366004611396565b610d53565b600080546040516301ffc9a760e01b81526001600160e01b0319841660048201526001600160a01b03909116906301ffc9a790602401602060405180830381865afa158015610438573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045c91906113c4565b92915050565b60008060009054906101000a90046001600160a01b03166001600160a01b03166305d2035b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104da91906113c4565b905090565b60008054604080516306fdde0360e01b815290516060936001600160a01b03909316926306fdde0392600480820193918290030181865afa158015610528573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104da91908101906113e1565b6000805460405163020604bf60e21b8152600481018490526001600160a01b039091169063081812fc906024015b602060405180830381865afa15801561059b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045c9190611458565b60005460405163095ea7b360e01b81526001600160a01b038481166004830152602482018490529091169063095ea7b3906044015b600060405180830381600087803b15801561060e57600080fd5b505af1158015610622573d6000803e3d6000fd5b505050505050565b60008060009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561067e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104da9190611475565b6000546040516323b872dd60e01b81526001600160a01b038581166004830152848116602483015260448201849052909116906323b872dd906064015b600060405180830381600087803b1580156106f957600080fd5b505af115801561070d573d6000803e3d6000fd5b50505050505050565b60008054604051632f745c5960e01b81526001600160a01b0385811660048301526024820185905290911690632f745c5990604401602060405180830381865afa158015610768573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078c9190611475565b9392505050565b600054604051630d09064560e21b81526001600160a01b03909116906334241914906107c3908490600401610e4c565b600060405180830381600087803b1580156107dd57600080fd5b505af11580156107f1573d6000803e3d6000fd5b5050505050565b60008054604051631b2a180360e11b81526001600160a01b039091169063365430069061082b908690869060040161148e565b6020604051808303816000875af115801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078c91906113c4565b600080546040516340c10f1960e01b81526001600160a01b03858116600483015260248201859052909116906340c10f199060440161082b565b600054604051632142170760e11b81526001600160a01b038581166004830152848116602483015260448201849052909116906342842e0e906064016106df565b600054604051630852cd8d60e31b8152600481018390526001600160a01b03909116906342966c68906024016107c3565b60008054604051632254ca2f60e11b81526001600160a01b03909116906344a9945e9061082b9086908690600401611513565b60008054604051634f6ccce760e01b8152600481018490526001600160a01b0390911690634f6ccce7906024015b602060405180830381865afa158015610998573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045c9190611475565b600080546040516350bb4e7f60e01b81526001600160a01b03909116906350bb4e7f906109f190879087908790600401611569565b6020604051808303816000875af1158015610a10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3491906113c4565b949350505050565b6000546040516330508b3960e11b81526001600160a01b03909116906360a1167290610a72908790879087908790600401611590565b600060405180830381600087803b158015610a8c57600080fd5b505af1158015610aa0573d6000803e3d6000fd5b505050505b50505050565b6000546040516362d9491f60e01b81526001600160a01b03909116906362d9491f906105f490859085906004016115cd565b600080546040516331a9108f60e11b8152600481018490526001600160a01b0390911690636352211e9060240161057e565b600080546040516370a0823160e01b81526001600160a01b038481166004830152909116906370a082319060240161097b565b60008060009054906101000a90046001600160a01b03166001600160a01b03166375794a3c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561067e573d6000803e3d6000fd5b60005460405163079cc67960e41b81526001600160a01b03848116600483015260248201849052909116906379cc6790906044016105f4565b60008060009054906101000a90046001600160a01b03166001600160a01b0316637d64bcb46040518163ffffffff1660e01b81526004016020604051808303816000875af11580156104b6573d6000803e3d6000fd5b60008054604080516395d89b4160e01b815290516060936001600160a01b03909316926395d89b4192600480820193918290030181865afa158015610528573d6000803e3d6000fd5b60005460405163a22cb46560e01b81526001600160a01b03848116600483015283151560248301529091169063a22cb465906044016105f4565b60005460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb906044016105f4565b60005460405163c87b56dd60e01b8152600481018390526060916001600160a01b03169063c87b56dd90602401600060405180830381865afa158015610d2b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261045c91908101906113e1565b6000805460405163e985e9c560e01b81526001600160a01b03858116600483015284811660248301529091169063e985e9c590604401602060405180830381865afa158015610da6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078c9190611458565b600060208284031215610ddc57600080fd5b81356001600160e01b03198116811461078c57600080fd5b60005b83811015610e0f578181015183820152602001610df7565b83811115610aa55750506000910152565b60008151808452610e38816020860160208601610df4565b601f01601f19169290920160200192915050565b60208152600061078c6020830184610e20565b600060208284031215610e7157600080fd5b5035919050565b6001600160a01b0381168114610e8d57600080fd5b50565b60008060408385031215610ea357600080fd5b8235610eae81610e78565b946020939093013593505050565b600080600060608486031215610ed157600080fd5b8335610edc81610e78565b92506020840135610eec81610e78565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715610f3657610f36610efd565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610f6557610f65610efd565b604052919050565b600067ffffffffffffffff821115610f8757610f87610efd565b50601f01601f191660200190565b6000610fa8610fa384610f6d565b610f3c565b9050828152838383011115610fbc57600080fd5b828260208301376000602084830101529392505050565b600082601f830112610fe457600080fd5b61078c83833560208501610f95565b60006020828403121561100557600080fd5b813567ffffffffffffffff81111561101c57600080fd5b610a3484828501610fd3565b600067ffffffffffffffff82111561104257611042610efd565b5060051b60200190565b600080604080848603121561106057600080fd5b833561106b81610e78565b925060208481013567ffffffffffffffff8082111561108957600080fd5b818701915087601f83011261109d57600080fd5b81356110ab610fa382611028565b81815260059190911b8301840190848101908a8311156110ca57600080fd5b8585015b8381101561113d578035858111156110e65760008081fd5b8601808d03601f19018913156110fc5760008081fd5b611104610f13565b888201358152898201358781111561111c5760008081fd5b61112a8f8b83860101610fd3565b828b0152508452509186019186016110ce565b50809750505050505050509250929050565b6000806040838503121561116257600080fd5b823561116d81610e78565b915060208381013567ffffffffffffffff81111561118a57600080fd5b8401601f8101861361119b57600080fd5b80356111a9610fa382611028565b81815260059190911b820183019083810190888311156111c857600080fd5b928401925b828410156111e6578335825292840192908401906111cd565b80955050505050509250929050565b60008060006060848603121561120a57600080fd5b833561121581610e78565b925060208401359150604084013567ffffffffffffffff81111561123857600080fd5b61124486828701610fd3565b9150509250925092565b6000806000806080858703121561126457600080fd5b843561126f81610e78565b9350602085013561127f81610e78565b925060408501359150606085013567ffffffffffffffff8111156112a257600080fd5b8501601f810187136112b357600080fd5b6112c287823560208401610f95565b91505092959194509250565b600080604083850312156112e157600080fd5b823567ffffffffffffffff808211156112f957600080fd5b61130586838701610fd3565b9350602085013591508082111561131b57600080fd5b5061132885828601610fd3565b9150509250929050565b60006020828403121561134457600080fd5b813561078c81610e78565b8015158114610e8d57600080fd5b6000806040838503121561137057600080fd5b823561137b81610e78565b9150602083013561138b8161134f565b809150509250929050565b600080604083850312156113a957600080fd5b82356113b481610e78565b9150602083013561138b81610e78565b6000602082840312156113d657600080fd5b815161078c8161134f565b6000602082840312156113f357600080fd5b815167ffffffffffffffff81111561140a57600080fd5b8201601f8101841361141b57600080fd5b8051611429610fa382610f6d565b81815285602083850101111561143e57600080fd5b61144f826020830160208601610df4565b95945050505050565b60006020828403121561146a57600080fd5b815161078c81610e78565b60006020828403121561148757600080fd5b5051919050565b6001600160a01b0383168152604060208083018290528351828401819052600092916060600583901b860181019290860190878301865b8281101561150457888603605f190184528151805187528501518587018890526114f188880182610e20565b96505092840192908401906001016114c5565b50939998505050505050505050565b6001600160a01b038316815260406020808301829052835191830182905260009184820191906060850190845b8181101561155c57845183529383019391830191600101611540565b5090979650505050505050565b60018060a01b038416815282602082015260606040820152600061144f6060830184610e20565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906115c390830184610e20565b9695505050505050565b6040815260006115e06040830185610e20565b828103602084015261144f8185610e2056fea26469706673582212205bdf4275f4b714a1029ccfe77c0f9a0e20e121a932e1e5840cace97dfa886da964736f6c634300080d0033tests/src/eth/proxy/UniqueNFTProxy.soldiffbeforeafterboth148 return proxied.nextTokenId();148 return proxied.nextTokenId();149 }149 }150151 function supportsInterface(uint32 interfaceId)152 external153 view154 override155 returns (bool)156 {157 return proxied.supportsInterface(interfaceId);158 }159150160 function setVariableMetadata(uint256 tokenId, bytes memory data)151 function burnFrom(address from, uint256 tokenId) external override {161 external162 override163 {164 return proxied.setVariableMetadata(tokenId, data);152 return proxied.burnFrom(from, tokenId);165 }153 }166154167 function getVariableMetadata(uint256 tokenId)155 function supportsInterface(bytes4 interfaceId)168 external156 external169 view157 view170 override158 override171 returns (bytes memory)159 returns (bool)172 {160 {173 return proxied.getVariableMetadata(tokenId);161 return proxied.supportsInterface(interfaceId);174 }162 }175163176 function mintBulk(address to, uint256[] memory tokenIds)164 function mintBulk(address to, uint256[] memory tokenIds)189 return proxied.mintBulkWithTokenURI(to, tokens);177 return proxied.mintBulkWithTokenURI(to, tokens);190 }178 }179180 function setProperty(string memory key, string memory value) external override {181 return proxied.setProperty(key, value);182 }183184 function deleteProperty(string memory key) external override {185 return proxied.deleteProperty(key);186 }191}187}192188tests/src/eth/proxy/nonFungibleProxy.test.tsdiffbeforeafterboth15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.161617import privateKey from '../../substrate/privateKey';17import privateKey from '../../substrate/privateKey';18import {createCollectionExpectSuccess, createItemExpectSuccess, setVariableMetaDataExpectSuccess, setMetadataUpdatePermissionFlagExpectSuccess} from '../../util/helpers';18import {createCollectionExpectSuccess, createItemExpectSuccess} from '../../util/helpers';19import {collectionIdToAddress, createEthAccount, createEthAccountWithBalance, GAS_ARGS, itWeb3, normalizeEvents} from '../util/helpers';19import {collectionIdToAddress, createEthAccount, createEthAccountWithBalance, GAS_ARGS, itWeb3, normalizeEvents} from '../util/helpers';20import nonFungibleAbi from '../nonFungibleAbi.json';20import nonFungibleAbi from '../nonFungibleAbi.json';21import {expect} from 'chai';21import {expect} from 'chai';335 }335 }336 });336 });337338 itWeb3('Can perform getVariableMetadata', async ({web3, api}) => {339 const collection = await createCollectionExpectSuccess({340 mode: {type: 'NFT'},341 });342 const alice = privateKey('//Alice');343 const caller = await createEthAccountWithBalance(api, web3);344345 const address = collectionIdToAddress(collection);346 const contract = await proxyWrap(api, web3, new web3.eth.Contract(nonFungibleAbi as any, address, {from: caller, ...GAS_ARGS}));347 const item = await createItemExpectSuccess(alice, collection, 'NFT', {Ethereum: contract.options.address});348 await setMetadataUpdatePermissionFlagExpectSuccess(alice, collection, 'Admin');349 await setVariableMetaDataExpectSuccess(alice, collection, item, [1, 2, 3]);350351 expect(await contract.methods.getVariableMetadata(item).call()).to.be.equal('0x010203');352 });353354 itWeb3('Can perform setVariableMetadata', async ({web3, api}) => {355 const collection = await createCollectionExpectSuccess({356 mode: {type: 'NFT'},357 });358 const alice = privateKey('//Alice');359 const caller = await createEthAccountWithBalance(api, web3);360361 const address = collectionIdToAddress(collection);362 const contract = await proxyWrap(api, web3, new web3.eth.Contract(nonFungibleAbi as any, address, {from: caller, ...GAS_ARGS}));363 const item = await createItemExpectSuccess(alice, collection, 'NFT', {Ethereum: contract.options.address});364365 expect(await contract.methods.setVariableMetadata(item, '0x010203').send({from: caller}));366 expect(await contract.methods.getVariableMetadata(item).call()).to.be.equal('0x010203');367 });368});337});369338tests/src/eth/tokenProperties.test.tsdiffbeforeafterbothno changes
tests/src/eth/util/helpers.tsdiffbeforeafterboth323 return before - after;323 return before - after;324}324}325325326type ElementOf<A> = A extends readonly (infer T)[] ? T : never;327// I want a fancier api, not a memory efficiency328export function* cartesian<T extends Array<Array<any>>, R extends Array<any>>(internalRest: [...R], ...args: [...T]): Generator<[...R, ...{[K in keyof T]: ElementOf<T[K]>}]> {329 if(args.length === 0) {330 yield internalRest as any;331 return;332 }333 for(const value of args[0]) {334 yield* cartesian([...internalRest, value], ...args.slice(1)) as any;335 }336}tests/src/interfaces/augment-api-errors.tsdiffbeforeafterboth136 * Tried to enable permissions which are only permitted to be disabled136 * Tried to enable permissions which are only permitted to be disabled137 **/137 **/138 OwnerPermissionsCantBeReverted: AugmentedError<ApiType>;138 OwnerPermissionsCantBeReverted: AugmentedError<ApiType>;139 /**140 * Property key is too long141 **/142 PropertyKeyIsTooLong: AugmentedError<ApiType>;139 /**143 /**140 * Tried to store more property keys than allowed144 * Tried to store more property keys than allowed141 **/145 **/156 * Item balance not enough.160 * Item balance not enough.157 **/161 **/158 TokenValueTooLow: AugmentedError<ApiType>;162 TokenValueTooLow: AugmentedError<ApiType>;159 /**160 * variable_data exceeded data limit.161 **/162 TokenVariableDataLimitExceeded: AugmentedError<ApiType>;163 /**163 /**164 * Total collections bound exceeded.164 * Total collections bound exceeded.165 **/165 **/168 * Collection settings not allowing items transferring168 * Collection settings not allowing items transferring169 **/169 **/170 TransferNotAllowed: AugmentedError<ApiType>;170 TransferNotAllowed: AugmentedError<ApiType>;171 /**172 * Unable to read array of unbounded keys173 **/174 UnableToReadUnboundedKeys: AugmentedError<ApiType>;175 /**171 /**176 * Target collection doesn't supports this operation172 * Target collection doesn't supports this operation177 **/173 **/tests/src/interfaces/augment-api-rpc.tsdiffbeforeafterboth1// Auto-generated via `yarn polkadot-types-from-chain`, do not edit1// Auto-generated via `yarn polkadot-types-from-chain`, do not edit2/* eslint-disable */2/* eslint-disable */334import type { PalletEvmAccountBasicCrossAccountIdRepr, UpDataStructsCollectionLimits, UpDataStructsCollectionStats, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsRpcCollection, UpDataStructsTokenData } from './unique';4import type { PalletEvmAccountBasicCrossAccountIdRepr, RmrkTypesBaseInfo, RmrkTypesCollectionInfo, RmrkTypesNftChild, RmrkTypesNftInfo, RmrkTypesPartType, RmrkTypesPropertyInfo, RmrkTypesResourceInfo, RmrkTypesTheme, UpDataStructsCollectionLimits, UpDataStructsCollectionStats, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsRpcCollection, UpDataStructsTokenData } from './unique';5import type { AugmentedRpc } from '@polkadot/rpc-core/types';5import type { AugmentedRpc } from '@polkadot/rpc-core/types';6import type { Metadata, StorageKey } from '@polkadot/types';6import type { Metadata, StorageKey } from '@polkadot/types';7import type { Bytes, HashMap, Json, Null, Option, Text, U256, U64, Vec, bool, u128, u32, u64 } from '@polkadot/types-codec';7import type { Bytes, HashMap, Json, Null, Option, Text, U256, U64, Vec, bool, u128, u32, u64 } from '@polkadot/types-codec';401 /**401 /**402 * Get base info402 * Get base info403 **/403 **/404 base: AugmentedRpc<(baseId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<RmrkTraitsBaseBaseInfo>>>;404 base: AugmentedRpc<(baseId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<RmrkTypesBaseInfo>>>;405 /**405 /**406 * Get all Base's parts406 * Get all Base's parts407 **/407 **/408 baseParts: AugmentedRpc<(baseId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<RmrkTraitsPartPartType>>>;408 baseParts: AugmentedRpc<(baseId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<RmrkTypesPartType>>>;409 /**409 /**410 * Get collection by id410 * Get collection by id411 **/411 **/412 collectionById: AugmentedRpc<(id: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<RmrkTraitsCollectionCollectionInfo>>>;412 collectionById: AugmentedRpc<(id: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<RmrkTypesCollectionInfo>>>;413 /**413 /**414 * Get collection properties414 * Get collection properties415 **/415 **/416 collectionProperties: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<RmrkTraitsPropertyPropertyInfo>>>;416 collectionProperties: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<RmrkTypesPropertyInfo>>>;417 /**417 /**418 * Get the latest created collection id418 * Get the latest created collection id419 **/419 **/420 lastCollectionIdx: AugmentedRpc<(at?: Hash | string | Uint8Array) => Observable<u32>>;420 lastCollectionIdx: AugmentedRpc<(at?: Hash | string | Uint8Array) => Observable<u32>>;421 /**421 /**422 * Get NFT by collection id and NFT id422 * Get NFT by collection id and NFT id423 **/423 **/424 nftById: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<RmrkTraitsNftNftInfo>>>;424 nftById: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<RmrkTypesNftInfo>>>;425 /**425 /**426 * Get NFT children426 * Get NFT children427 **/427 **/428 nftChildren: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<RmrkTraitsNftNftChild>>>;428 nftChildren: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<RmrkTypesNftChild>>>;429 /**429 /**430 * Get NFT properties430 * Get NFT properties431 **/431 **/432 nftProperties: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<RmrkTraitsPropertyPropertyInfo>>>;432 nftProperties: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<RmrkTypesPropertyInfo>>>;433 /**433 /**434 * Get NFT resource priorities434 * Get NFT resource priorities435 **/435 **/436 nftResourcePriorities: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<Bytes>>>;436 nftResourcePriorities: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<Bytes>>>;437 /**437 /**438 * Get NFT resources438 * Get NFT resources439 **/439 **/440 nftResources: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<RmrkTraitsResourceResourceInfo>>>;440 nftResources: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<RmrkTypesResourceInfo>>>;441 /**441 /**442 * Get Base's theme names442 * Get Base's theme names443 **/443 **/444 themeNames: AugmentedRpc<(baseId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<Bytes>>>;444 themeNames: AugmentedRpc<(baseId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<Bytes>>>;445 /**445 /**446 * Get Theme's keys values446 * Get Theme's keys values447 **/447 **/448 themes: AugmentedRpc<(baseId: u32 | AnyNumber | Uint8Array, themeName: Text | string, keys: Option<Vec<Text>> | null | object | string | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<RmrkTraitsTheme>>>;448 themes: AugmentedRpc<(baseId: u32 | AnyNumber | Uint8Array, themeName: Text | string, keys: Option<Vec<Text>> | null | object | string | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<RmrkTypesTheme>>>;449 };449 };450 rpc: {450 rpc: {451 /**451 /**659 /**659 /**660 * Get collection properties660 * Get collection properties661 **/661 **/662 collectionProperties: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, propertyKeys: Vec<Text> | (Text | string)[], at?: Hash | string | Uint8Array) => Observable<Vec<UpDataStructsProperty>>>;662 collectionProperties: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, propertyKeys?: Vec<Text> | (Text | string)[], at?: Hash | string | Uint8Array) => Observable<Vec<UpDataStructsProperty>>>;663 /**663 /**664 * Get collection stats664 * Get collection stats665 **/665 **/687 /**687 /**688 * Get property permissions688 * Get property permissions689 **/689 **/690 propertyPermissions: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, propertyKeys: Vec<Text> | (Text | string)[], at?: Hash | string | Uint8Array) => Observable<Vec<UpDataStructsPropertyKeyPermission>>>;690 propertyPermissions: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, propertyKeys?: Vec<Text> | (Text | string)[], at?: Hash | string | Uint8Array) => Observable<Vec<UpDataStructsPropertyKeyPermission>>>;691 /**691 /**692 * Get token data692 * Get token data693 **/693 **/694 tokenData: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, propertyKeys: Vec<Text> | (Text | string)[], at?: Hash | string | Uint8Array) => Observable<UpDataStructsTokenData>>;694 tokenData: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, propertyKeys?: Vec<Text> | (Text | string)[], at?: Hash | string | Uint8Array) => Observable<UpDataStructsTokenData>>;695 /**695 /**696 * Check if token exists696 * Check if token exists697 **/697 **/703 /**703 /**704 * Get token properties704 * Get token properties705 **/705 **/706 tokenProperties: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, propertyKeys: Vec<Text> | (Text | string)[], at?: Hash | string | Uint8Array) => Observable<Vec<UpDataStructsProperty>>>;706 tokenProperties: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, propertyKeys?: Vec<Text> | (Text | string)[], at?: Hash | string | Uint8Array) => Observable<Vec<UpDataStructsProperty>>>;707 /**707 /**708 * Get token owner, in case of nested token - find parent recursive708 * Get token owner, in case of nested token - find parent recursive709 **/709 **/tests/src/interfaces/augment-api-tx.tsdiffbeforeafterboth5import type { Bytes, Compact, Option, U256, Vec, bool, u128, u16, u32, u64 } from '@polkadot/types-codec';5import type { Bytes, Compact, Option, U256, Vec, bool, u128, u16, u32, u64 } from '@polkadot/types-codec';6import type { AnyNumber, IMethod, ITuple } from '@polkadot/types-codec/types';6import type { AnyNumber, IMethod, ITuple } from '@polkadot/types-codec/types';7import type { AccountId32, Call, H160, H256, MultiAddress, Perbill } from '@polkadot/types/interfaces/runtime';7import type { AccountId32, Call, H160, H256, MultiAddress, Perbill } from '@polkadot/types/interfaces/runtime';8import type { CumulusPrimitivesParachainInherentParachainInherentData, EthereumTransactionTransactionV2, OrmlVestingVestingSchedule, PalletEvmAccountBasicCrossAccountIdRepr, UpDataStructsAccessMode, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCreateCollectionData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsMetaUpdatePermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsSchemaVersion, XcmV1MultiLocation, XcmV2WeightLimit, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';8import type { CumulusPrimitivesParachainInherentParachainInherentData, EthereumTransactionTransactionV2, OrmlVestingVestingSchedule, PalletEvmAccountBasicCrossAccountIdRepr, UpDataStructsAccessMode, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCreateCollectionData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsSchemaVersion, XcmV1MultiLocation, XcmV2WeightLimit, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';9910declare module '@polkadot/api-base/types/submittable' {10declare module '@polkadot/api-base/types/submittable' {11 export interface AugmentedSubmittables<ApiType extends ApiTypes> {11 export interface AugmentedSubmittables<ApiType extends ApiTypes> {679 * 679 * 680 * Prefer it to deprecated [`created_collection`] method680 * Prefer it to deprecated [`created_collection`] method681 **/681 **/682 createCollectionEx: AugmentedSubmittable<(data: UpDataStructsCreateCollectionData | { mode?: any; access?: any; name?: any; description?: any; tokenPrefix?: any; offchainSchema?: any; schemaVersion?: any; pendingSponsor?: any; limits?: any; constOnChainSchema?: any; metaUpdatePermission?: any; tokenPropertyPermissions?: any; properties?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [UpDataStructsCreateCollectionData]>;682 createCollectionEx: AugmentedSubmittable<(data: UpDataStructsCreateCollectionData | { mode?: any; access?: any; name?: any; description?: any; tokenPrefix?: any; offchainSchema?: any; schemaVersion?: any; pendingSponsor?: any; limits?: any; constOnChainSchema?: any; tokenPropertyPermissions?: any; properties?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [UpDataStructsCreateCollectionData]>;683 /**683 /**684 * This method creates a concrete instance of NFT Collection created with CreateCollection method.684 * This method creates a concrete instance of NFT Collection created with CreateCollection method.685 * 685 * 808 * * schema: String representing the const on-chain data schema.808 * * schema: String representing the const on-chain data schema.809 **/809 **/810 setConstOnChainSchema: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, schema: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, Bytes]>;810 setConstOnChainSchema: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, schema: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, Bytes]>;811 /**812 * Set meta_update_permission value for particular collection813 * 814 * # Permissions815 * 816 * * Collection Owner.817 * 818 * # Arguments819 * 820 * * collection_id: ID of the collection.821 * 822 * * value: New flag value.823 **/824 setMetaUpdatePermissionFlag: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, value: UpDataStructsMetaUpdatePermission | 'ItemOwner' | 'Admin' | 'None' | number | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, UpDataStructsMetaUpdatePermission]>;825 /**811 /**826 * Allows Anyone to create tokens if:812 * Allows Anyone to create tokens if:827 * * Allow List is enabled, and813 * * Allow List is enabled, and900 * * value: New flag value.886 * * value: New flag value.901 **/887 **/902 setTransfersEnabledFlag: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, value: bool | boolean | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, bool]>;888 setTransfersEnabledFlag: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, value: bool | boolean | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, bool]>;903 /**904 * Set off-chain data schema.905 * 906 * # Permissions907 * 908 * * Collection Owner909 * * Collection Admin910 * 911 * # Arguments912 * 913 * * collection_id.914 * 915 * * schema: String representing the offchain data schema.916 **/917 setVariableMetaData: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, itemId: u32 | AnyNumber | Uint8Array, data: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, Bytes]>;918 /**889 /**919 * Change ownership of the token.890 * Change ownership of the token.920 * 891 * tests/src/interfaces/augment-types.tsdiffbeforeafterboth1// Auto-generated via `yarn polkadot-types-from-defs`, do not edit1// Auto-generated via `yarn polkadot-types-from-defs`, do not edit2/* eslint-disable */2/* eslint-disable */334import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportPalletId, FrameSupportStorageBoundedBTreeSet, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchClass, FrameSupportWeightsDispatchInfo, FrameSupportWeightsPays, FrameSupportWeightsPerDispatchClassU32, FrameSupportWeightsPerDispatchClassU64, FrameSupportWeightsPerDispatchClassWeightsPerClass, FrameSupportWeightsRuntimeDbWeight, FrameSupportWeightsWeightToFeeCoefficient, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeRuntime, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletFungibleError, PalletInflationCall, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTimestampCall, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletXcmCall, PalletXcmError, PalletXcmEvent, PhantomTypeUpDataStructsBaseInfo, PhantomTypeUpDataStructsCollectionInfo, PhantomTypeUpDataStructsNftChild, PhantomTypeUpDataStructsNftInfo, PhantomTypeUpDataStructsPartType, PhantomTypeUpDataStructsPropertyInfo, PhantomTypeUpDataStructsResourceInfo, PhantomTypeUpDataStructsRpcCollection, PhantomTypeUpDataStructsTheme, PhantomTypeUpDataStructsTokenData, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTypesAccountIdOrCollectionNftTuple, RmrkTypesBaseInfo, RmrkTypesCollectionInfo, RmrkTypesEquippableList, RmrkTypesFixedPart, RmrkTypesNftChild, RmrkTypesNftInfo, RmrkTypesPartType, RmrkTypesPropertyInfo, RmrkTypesResourceInfo, RmrkTypesRoyaltyInfo, RmrkTypesSlotPart, RmrkTypesTheme, RmrkTypesThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionField, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExData, UpDataStructsMetaUpdatePermission, UpDataStructsNestingRule, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsRpcCollection, UpDataStructsSchemaVersion, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipState, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from './unique';4import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportPalletId, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchClass, FrameSupportWeightsDispatchInfo, FrameSupportWeightsPays, FrameSupportWeightsPerDispatchClassU32, FrameSupportWeightsPerDispatchClassU64, FrameSupportWeightsPerDispatchClassWeightsPerClass, FrameSupportWeightsRuntimeDbWeight, FrameSupportWeightsWeightToFeeCoefficient, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeRuntime, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletFungibleError, PalletInflationCall, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTimestampCall, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletXcmCall, PalletXcmError, PalletXcmEvent, PhantomTypeUpDataStructsBaseInfo, PhantomTypeUpDataStructsCollectionInfo, PhantomTypeUpDataStructsNftChild, PhantomTypeUpDataStructsNftInfo, PhantomTypeUpDataStructsPartType, PhantomTypeUpDataStructsPropertyInfo, PhantomTypeUpDataStructsResourceInfo, PhantomTypeUpDataStructsRpcCollection, PhantomTypeUpDataStructsTheme, PhantomTypeUpDataStructsTokenData, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTypesAccountIdOrCollectionNftTuple, RmrkTypesBaseInfo, RmrkTypesCollectionInfo, RmrkTypesEquippableList, RmrkTypesFixedPart, RmrkTypesNftChild, RmrkTypesNftInfo, RmrkTypesPartType, RmrkTypesPropertyInfo, RmrkTypesResourceInfo, RmrkTypesRoyaltyInfo, RmrkTypesSlotPart, RmrkTypesTheme, RmrkTypesThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionField, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExData, UpDataStructsNestingRule, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsRpcCollection, UpDataStructsSchemaVersion, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipState, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from './unique';5import type { Data, StorageKey } from '@polkadot/types';5import type { Data, StorageKey } from '@polkadot/types';6import type { BitVec, Bool, Bytes, I128, I16, I256, I32, I64, I8, Json, Null, Raw, Text, Type, U128, U16, U256, U32, U64, U8, USize, bool, i128, i16, i256, i32, i64, i8, u128, u16, u256, u32, u64, u8, usize } from '@polkadot/types-codec';6import type { BitVec, Bool, Bytes, I128, I16, I256, I32, I64, I8, Json, Null, Raw, Text, Type, U128, U16, U256, U32, U64, U8, USize, bool, i128, i16, i256, i32, i64, i8, u128, u16, u256, u32, u64, u8, usize } from '@polkadot/types-codec';7import type { AssetApproval, AssetApprovalKey, AssetBalance, AssetDestroyWitness, AssetDetails, AssetMetadata, TAssetBalance, TAssetDepositBalance } from '@polkadot/types/interfaces/assets';7import type { AssetApproval, AssetApprovalKey, AssetBalance, AssetDestroyWitness, AssetDetails, AssetMetadata, TAssetBalance, TAssetDepositBalance } from '@polkadot/types/interfaces/assets';478 ForkTreePendingChangeNode: ForkTreePendingChangeNode;478 ForkTreePendingChangeNode: ForkTreePendingChangeNode;479 FpRpcTransactionStatus: FpRpcTransactionStatus;479 FpRpcTransactionStatus: FpRpcTransactionStatus;480 FrameSupportPalletId: FrameSupportPalletId;480 FrameSupportPalletId: FrameSupportPalletId;481 FrameSupportStorageBoundedBTreeSet: FrameSupportStorageBoundedBTreeSet;482 FrameSupportTokensMiscBalanceStatus: FrameSupportTokensMiscBalanceStatus;481 FrameSupportTokensMiscBalanceStatus: FrameSupportTokensMiscBalanceStatus;483 FrameSupportWeightsDispatchClass: FrameSupportWeightsDispatchClass;482 FrameSupportWeightsDispatchClass: FrameSupportWeightsDispatchClass;484 FrameSupportWeightsDispatchInfo: FrameSupportWeightsDispatchInfo;483 FrameSupportWeightsDispatchInfo: FrameSupportWeightsDispatchInfo;1204 UpDataStructsCreateNftExData: UpDataStructsCreateNftExData;1203 UpDataStructsCreateNftExData: UpDataStructsCreateNftExData;1205 UpDataStructsCreateReFungibleData: UpDataStructsCreateReFungibleData;1204 UpDataStructsCreateReFungibleData: UpDataStructsCreateReFungibleData;1206 UpDataStructsCreateRefungibleExData: UpDataStructsCreateRefungibleExData;1205 UpDataStructsCreateRefungibleExData: UpDataStructsCreateRefungibleExData;1207 UpDataStructsMetaUpdatePermission: UpDataStructsMetaUpdatePermission;1208 UpDataStructsNestingRule: UpDataStructsNestingRule;1206 UpDataStructsNestingRule: UpDataStructsNestingRule;1209 UpDataStructsProperties: UpDataStructsProperties;1207 UpDataStructsProperties: UpDataStructsProperties;1210 UpDataStructsPropertiesMapBoundedVec: UpDataStructsPropertiesMapBoundedVec;1208 UpDataStructsPropertiesMapBoundedVec: UpDataStructsPropertiesMapBoundedVec;tests/src/interfaces/lookup.tsdiffbeforeafterboth1360 itemId: 'u32',1360 itemId: 'u32',1361 value: 'u128',1361 value: 'u128',1362 },1362 },1363 set_variable_meta_data: {1364 collectionId: 'u32',1365 itemId: 'u32',1366 data: 'Bytes',1367 },1368 set_meta_update_permission_flag: {1369 collectionId: 'u32',1370 value: 'UpDataStructsMetaUpdatePermission',1371 },1372 set_schema_version: {1363 set_schema_version: {1373 collectionId: 'u32',1364 collectionId: 'u32',1374 version: 'UpDataStructsSchemaVersion',1365 version: 'UpDataStructsSchemaVersion',1411 pendingSponsor: 'Option<AccountId32>',1402 pendingSponsor: 'Option<AccountId32>',1412 limits: 'Option<UpDataStructsCollectionLimits>',1403 limits: 'Option<UpDataStructsCollectionLimits>',1413 constOnChainSchema: 'Bytes',1404 constOnChainSchema: 'Bytes',1414 metaUpdatePermission: 'Option<UpDataStructsMetaUpdatePermission>',1415 tokenPropertyPermissions: 'Vec<UpDataStructsPropertyKeyPermission>',1405 tokenPropertyPermissions: 'Vec<UpDataStructsPropertyKeyPermission>',1416 properties: 'Vec<UpDataStructsProperty>'1406 properties: 'Vec<UpDataStructsProperty>'1417 },1407 },1461 OwnerRestricted: 'BTreeSet<u32>'1451 OwnerRestricted: 'BTreeSet<u32>'1462 }1452 }1463 },1453 },1464 /**1465 * Lookup177: up_data_structs::MetaUpdatePermission1466 **/1467 UpDataStructsMetaUpdatePermission: {1468 _enum: ['ItemOwner', 'Admin', 'None']1469 },1470 /**1454 /**1471 * Lookup179: up_data_structs::PropertyKeyPermission1455 * Lookup177: up_data_structs::PropertyKeyPermission1472 **/1456 **/1473 UpDataStructsPropertyKeyPermission: {1457 UpDataStructsPropertyKeyPermission: {1474 key: 'Bytes',1458 key: 'Bytes',1475 permission: 'UpDataStructsPropertyPermission'1459 permission: 'UpDataStructsPropertyPermission'1476 },1460 },1477 /**1461 /**1478 * Lookup181: up_data_structs::PropertyPermission1462 * Lookup179: up_data_structs::PropertyPermission1479 **/1463 **/1480 UpDataStructsPropertyPermission: {1464 UpDataStructsPropertyPermission: {1481 mutable: 'bool',1465 mutable: 'bool',1482 collectionAdmin: 'bool',1466 collectionAdmin: 'bool',1483 tokenOwner: 'bool'1467 tokenOwner: 'bool'1484 },1468 },1485 /**1469 /**1486 * Lookup184: up_data_structs::Property1470 * Lookup182: up_data_structs::Property1487 **/1471 **/1488 UpDataStructsProperty: {1472 UpDataStructsProperty: {1489 key: 'Bytes',1473 key: 'Bytes',1490 value: 'Bytes'1474 value: 'Bytes'1491 },1475 },1492 /**1476 /**1493 * Lookup186: pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>1477 * Lookup184: pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>1494 **/1478 **/1495 PalletEvmAccountBasicCrossAccountIdRepr: {1479 PalletEvmAccountBasicCrossAccountIdRepr: {1496 _enum: {1480 _enum: {1497 Substrate: 'AccountId32',1481 Substrate: 'AccountId32',1498 Ethereum: 'H160'1482 Ethereum: 'H160'1499 }1483 }1500 },1484 },1501 /**1485 /**1502 * Lookup188: up_data_structs::CreateItemData1486 * Lookup186: up_data_structs::CreateItemData1503 **/1487 **/1504 UpDataStructsCreateItemData: {1488 UpDataStructsCreateItemData: {1505 _enum: {1489 _enum: {1506 NFT: 'UpDataStructsCreateNftData',1490 NFT: 'UpDataStructsCreateNftData',1507 Fungible: 'UpDataStructsCreateFungibleData',1491 Fungible: 'UpDataStructsCreateFungibleData',1508 ReFungible: 'UpDataStructsCreateReFungibleData'1492 ReFungible: 'UpDataStructsCreateReFungibleData'1509 }1493 }1510 },1494 },1511 /**1495 /**1512 * Lookup189: up_data_structs::CreateNftData1496 * Lookup187: up_data_structs::CreateNftData1513 **/1497 **/1514 UpDataStructsCreateNftData: {1498 UpDataStructsCreateNftData: {1515 constData: 'Bytes',1499 constData: 'Bytes',1516 variableData: 'Bytes',1517 properties: 'Vec<UpDataStructsProperty>'1500 properties: 'Vec<UpDataStructsProperty>'1518 },1501 },1519 /**1502 /**1520 * Lookup191: up_data_structs::CreateFungibleData1503 * Lookup189: up_data_structs::CreateFungibleData1521 **/1504 **/1522 UpDataStructsCreateFungibleData: {1505 UpDataStructsCreateFungibleData: {1523 value: 'u128'1506 value: 'u128'1524 },1507 },1525 /**1508 /**1526 * Lookup192: up_data_structs::CreateReFungibleData1509 * Lookup190: up_data_structs::CreateReFungibleData1527 **/1510 **/1528 UpDataStructsCreateReFungibleData: {1511 UpDataStructsCreateReFungibleData: {1529 constData: 'Bytes',1512 constData: 'Bytes',1530 variableData: 'Bytes',1531 pieces: 'u128'1513 pieces: 'u128'1532 },1514 },1533 /**1515 /**1534 * Lookup196: up_data_structs::CreateItemExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>1516 * Lookup194: up_data_structs::CreateItemExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>1535 **/1517 **/1536 UpDataStructsCreateItemExData: {1518 UpDataStructsCreateItemExData: {1537 _enum: {1519 _enum: {1538 NFT: 'Vec<UpDataStructsCreateNftExData>',1520 NFT: 'Vec<UpDataStructsCreateNftExData>',1541 RefungibleMultipleOwners: 'UpDataStructsCreateRefungibleExData'1523 RefungibleMultipleOwners: 'UpDataStructsCreateRefungibleExData'1542 }1524 }1543 },1525 },1544 /**1526 /**1545 * Lookup198: up_data_structs::CreateNftExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>1527 * Lookup196: up_data_structs::CreateNftExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>1546 **/1528 **/1547 UpDataStructsCreateNftExData: {1529 UpDataStructsCreateNftExData: {1548 constData: 'Bytes',1530 constData: 'Bytes',1549 variableData: 'Bytes',1550 properties: 'Vec<UpDataStructsProperty>',1531 properties: 'Vec<UpDataStructsProperty>',1551 owner: 'PalletEvmAccountBasicCrossAccountIdRepr'1532 owner: 'PalletEvmAccountBasicCrossAccountIdRepr'1552 },1533 },1553 /**1534 /**1554 * Lookup205: up_data_structs::CreateRefungibleExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>1535 * Lookup203: up_data_structs::CreateRefungibleExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>1555 **/1536 **/1556 UpDataStructsCreateRefungibleExData: {1537 UpDataStructsCreateRefungibleExData: {1557 constData: 'Bytes',1538 constData: 'Bytes',1558 variableData: 'Bytes',1559 users: 'BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>'1539 users: 'BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>'1560 },1540 },1561 /**1541 /**1562 * Lookup207: pallet_template_transaction_payment::Call<T>1542 * Lookup205: pallet_template_transaction_payment::Call<T>1563 **/1543 **/1564 PalletTemplateTransactionPaymentCall: 'Null',1544 PalletTemplateTransactionPaymentCall: 'Null',1565 /**1545 /**1566 * Lookup208: pallet_structure::pallet::Call<T>1546 * Lookup206: pallet_structure::pallet::Call<T>1567 **/1547 **/1568 PalletStructureCall: 'Null',1548 PalletStructureCall: 'Null',1569 /**1549 /**1570 * Lookup209: pallet_evm::pallet::Call<T>1550 * Lookup207: pallet_evm::pallet::Call<T>1571 **/1551 **/1572 PalletEvmCall: {1552 PalletEvmCall: {1573 _enum: {1553 _enum: {1574 withdraw: {1554 withdraw: {1609 }1589 }1610 }1590 }1611 },1591 },1612 /**1592 /**1613 * Lookup215: pallet_ethereum::pallet::Call<T>1593 * Lookup213: pallet_ethereum::pallet::Call<T>1614 **/1594 **/1615 PalletEthereumCall: {1595 PalletEthereumCall: {1616 _enum: {1596 _enum: {1617 transact: {1597 transact: {1618 transaction: 'EthereumTransactionTransactionV2'1598 transaction: 'EthereumTransactionTransactionV2'1619 }1599 }1620 }1600 }1621 },1601 },1622 /**1602 /**1623 * Lookup216: ethereum::transaction::TransactionV21603 * Lookup214: ethereum::transaction::TransactionV21624 **/1604 **/1625 EthereumTransactionTransactionV2: {1605 EthereumTransactionTransactionV2: {1626 _enum: {1606 _enum: {1627 Legacy: 'EthereumTransactionLegacyTransaction',1607 Legacy: 'EthereumTransactionLegacyTransaction',1628 EIP2930: 'EthereumTransactionEip2930Transaction',1608 EIP2930: 'EthereumTransactionEip2930Transaction',1629 EIP1559: 'EthereumTransactionEip1559Transaction'1609 EIP1559: 'EthereumTransactionEip1559Transaction'1630 }1610 }1631 },1611 },1632 /**1612 /**1633 * Lookup217: ethereum::transaction::LegacyTransaction1613 * Lookup215: ethereum::transaction::LegacyTransaction1634 **/1614 **/1635 EthereumTransactionLegacyTransaction: {1615 EthereumTransactionLegacyTransaction: {1636 nonce: 'U256',1616 nonce: 'U256',1637 gasPrice: 'U256',1617 gasPrice: 'U256',1641 input: 'Bytes',1621 input: 'Bytes',1642 signature: 'EthereumTransactionTransactionSignature'1622 signature: 'EthereumTransactionTransactionSignature'1643 },1623 },1644 /**1624 /**1645 * Lookup218: ethereum::transaction::TransactionAction1625 * Lookup216: ethereum::transaction::TransactionAction1646 **/1626 **/1647 EthereumTransactionTransactionAction: {1627 EthereumTransactionTransactionAction: {1648 _enum: {1628 _enum: {1649 Call: 'H160',1629 Call: 'H160',1650 Create: 'Null'1630 Create: 'Null'1651 }1631 }1652 },1632 },1653 /**1633 /**1654 * Lookup219: ethereum::transaction::TransactionSignature1634 * Lookup217: ethereum::transaction::TransactionSignature1655 **/1635 **/1656 EthereumTransactionTransactionSignature: {1636 EthereumTransactionTransactionSignature: {1657 v: 'u64',1637 v: 'u64',1658 r: 'H256',1638 r: 'H256',1659 s: 'H256'1639 s: 'H256'1660 },1640 },1661 /**1641 /**1662 * Lookup221: ethereum::transaction::EIP2930Transaction1642 * Lookup219: ethereum::transaction::EIP2930Transaction1663 **/1643 **/1664 EthereumTransactionEip2930Transaction: {1644 EthereumTransactionEip2930Transaction: {1665 chainId: 'u64',1645 chainId: 'u64',1666 nonce: 'U256',1646 nonce: 'U256',1674 r: 'H256',1654 r: 'H256',1675 s: 'H256'1655 s: 'H256'1676 },1656 },1677 /**1657 /**1678 * Lookup223: ethereum::transaction::AccessListItem1658 * Lookup221: ethereum::transaction::AccessListItem1679 **/1659 **/1680 EthereumTransactionAccessListItem: {1660 EthereumTransactionAccessListItem: {1681 address: 'H160',1661 address: 'H160',1682 storageKeys: 'Vec<H256>'1662 storageKeys: 'Vec<H256>'1683 },1663 },1684 /**1664 /**1685 * Lookup224: ethereum::transaction::EIP1559Transaction1665 * Lookup222: ethereum::transaction::EIP1559Transaction1686 **/1666 **/1687 EthereumTransactionEip1559Transaction: {1667 EthereumTransactionEip1559Transaction: {1688 chainId: 'u64',1668 chainId: 'u64',1689 nonce: 'U256',1669 nonce: 'U256',1698 r: 'H256',1678 r: 'H256',1699 s: 'H256'1679 s: 'H256'1700 },1680 },1701 /**1681 /**1702 * Lookup225: pallet_evm_migration::pallet::Call<T>1682 * Lookup223: pallet_evm_migration::pallet::Call<T>1703 **/1683 **/1704 PalletEvmMigrationCall: {1684 PalletEvmMigrationCall: {1705 _enum: {1685 _enum: {1706 begin: {1686 begin: {1716 }1696 }1717 }1697 }1718 },1698 },1719 /**1699 /**1720 * Lookup228: pallet_sudo::pallet::Event<T>1700 * Lookup226: pallet_sudo::pallet::Event<T>1721 **/1701 **/1722 PalletSudoEvent: {1702 PalletSudoEvent: {1723 _enum: {1703 _enum: {1724 Sudid: {1704 Sudid: {1732 }1712 }1733 }1713 }1734 },1714 },1735 /**1715 /**1736 * Lookup230: sp_runtime::DispatchError1716 * Lookup228: sp_runtime::DispatchError1737 **/1717 **/1738 SpRuntimeDispatchError: {1718 SpRuntimeDispatchError: {1739 _enum: {1719 _enum: {1740 Other: 'Null',1720 Other: 'Null',1749 Transactional: 'SpRuntimeTransactionalError'1729 Transactional: 'SpRuntimeTransactionalError'1750 }1730 }1751 },1731 },1752 /**1732 /**1753 * Lookup231: sp_runtime::ModuleError1733 * Lookup229: sp_runtime::ModuleError1754 **/1734 **/1755 SpRuntimeModuleError: {1735 SpRuntimeModuleError: {1756 index: 'u8',1736 index: 'u8',1757 error: '[u8;4]'1737 error: '[u8;4]'1758 },1738 },1759 /**1739 /**1760 * Lookup232: sp_runtime::TokenError1740 * Lookup230: sp_runtime::TokenError1761 **/1741 **/1762 SpRuntimeTokenError: {1742 SpRuntimeTokenError: {1763 _enum: ['NoFunds', 'WouldDie', 'BelowMinimum', 'CannotCreate', 'UnknownAsset', 'Frozen', 'Unsupported']1743 _enum: ['NoFunds', 'WouldDie', 'BelowMinimum', 'CannotCreate', 'UnknownAsset', 'Frozen', 'Unsupported']1764 },1744 },1765 /**1745 /**1766 * Lookup233: sp_runtime::ArithmeticError1746 * Lookup231: sp_runtime::ArithmeticError1767 **/1747 **/1768 SpRuntimeArithmeticError: {1748 SpRuntimeArithmeticError: {1769 _enum: ['Underflow', 'Overflow', 'DivisionByZero']1749 _enum: ['Underflow', 'Overflow', 'DivisionByZero']1770 },1750 },1771 /**1751 /**1772 * Lookup234: sp_runtime::TransactionalError1752 * Lookup232: sp_runtime::TransactionalError1773 **/1753 **/1774 SpRuntimeTransactionalError: {1754 SpRuntimeTransactionalError: {1775 _enum: ['LimitReached', 'NoLayer']1755 _enum: ['LimitReached', 'NoLayer']1776 },1756 },1777 /**1757 /**1778 * Lookup235: pallet_sudo::pallet::Error<T>1758 * Lookup233: pallet_sudo::pallet::Error<T>1779 **/1759 **/1780 PalletSudoError: {1760 PalletSudoError: {1781 _enum: ['RequireSudo']1761 _enum: ['RequireSudo']1782 },1762 },1783 /**1763 /**1784 * Lookup236: frame_system::AccountInfo<Index, pallet_balances::AccountData<Balance>>1764 * Lookup234: frame_system::AccountInfo<Index, pallet_balances::AccountData<Balance>>1785 **/1765 **/1786 FrameSystemAccountInfo: {1766 FrameSystemAccountInfo: {1787 nonce: 'u32',1767 nonce: 'u32',1788 consumers: 'u32',1768 consumers: 'u32',1789 providers: 'u32',1769 providers: 'u32',1790 sufficients: 'u32',1770 sufficients: 'u32',1791 data: 'PalletBalancesAccountData'1771 data: 'PalletBalancesAccountData'1792 },1772 },1793 /**1773 /**1794 * Lookup237: frame_support::weights::PerDispatchClass<T>1774 * Lookup235: frame_support::weights::PerDispatchClass<T>1795 **/1775 **/1796 FrameSupportWeightsPerDispatchClassU64: {1776 FrameSupportWeightsPerDispatchClassU64: {1797 normal: 'u64',1777 normal: 'u64',1798 operational: 'u64',1778 operational: 'u64',1799 mandatory: 'u64'1779 mandatory: 'u64'1800 },1780 },1801 /**1781 /**1802 * Lookup238: sp_runtime::generic::digest::Digest1782 * Lookup236: sp_runtime::generic::digest::Digest1803 **/1783 **/1804 SpRuntimeDigest: {1784 SpRuntimeDigest: {1805 logs: 'Vec<SpRuntimeDigestDigestItem>'1785 logs: 'Vec<SpRuntimeDigestDigestItem>'1806 },1786 },1807 /**1787 /**1808 * Lookup240: sp_runtime::generic::digest::DigestItem1788 * Lookup238: sp_runtime::generic::digest::DigestItem1809 **/1789 **/1810 SpRuntimeDigestDigestItem: {1790 SpRuntimeDigestDigestItem: {1811 _enum: {1791 _enum: {1812 Other: 'Bytes',1792 Other: 'Bytes',1820 RuntimeEnvironmentUpdated: 'Null'1800 RuntimeEnvironmentUpdated: 'Null'1821 }1801 }1822 },1802 },1823 /**1803 /**1824 * Lookup242: frame_system::EventRecord<opal_runtime::Event, primitive_types::H256>1804 * Lookup240: frame_system::EventRecord<opal_runtime::Event, primitive_types::H256>1825 **/1805 **/1826 FrameSystemEventRecord: {1806 FrameSystemEventRecord: {1827 phase: 'FrameSystemPhase',1807 phase: 'FrameSystemPhase',1828 event: 'Event',1808 event: 'Event',1829 topics: 'Vec<H256>'1809 topics: 'Vec<H256>'1830 },1810 },1831 /**1811 /**1832 * Lookup244: frame_system::pallet::Event<T>1812 * Lookup242: frame_system::pallet::Event<T>1833 **/1813 **/1834 FrameSystemEvent: {1814 FrameSystemEvent: {1835 _enum: {1815 _enum: {1836 ExtrinsicSuccess: {1816 ExtrinsicSuccess: {1856 }1836 }1857 }1837 }1858 },1838 },1859 /**1839 /**1860 * Lookup245: frame_support::weights::DispatchInfo1840 * Lookup243: frame_support::weights::DispatchInfo1861 **/1841 **/1862 FrameSupportWeightsDispatchInfo: {1842 FrameSupportWeightsDispatchInfo: {1863 weight: 'u64',1843 weight: 'u64',1864 class: 'FrameSupportWeightsDispatchClass',1844 class: 'FrameSupportWeightsDispatchClass',1865 paysFee: 'FrameSupportWeightsPays'1845 paysFee: 'FrameSupportWeightsPays'1866 },1846 },1867 /**1847 /**1868 * Lookup246: frame_support::weights::DispatchClass1848 * Lookup244: frame_support::weights::DispatchClass1869 **/1849 **/1870 FrameSupportWeightsDispatchClass: {1850 FrameSupportWeightsDispatchClass: {1871 _enum: ['Normal', 'Operational', 'Mandatory']1851 _enum: ['Normal', 'Operational', 'Mandatory']1872 },1852 },1873 /**1853 /**1874 * Lookup247: frame_support::weights::Pays1854 * Lookup245: frame_support::weights::Pays1875 **/1855 **/1876 FrameSupportWeightsPays: {1856 FrameSupportWeightsPays: {1877 _enum: ['Yes', 'No']1857 _enum: ['Yes', 'No']1878 },1858 },1879 /**1859 /**1880 * Lookup248: orml_vesting::module::Event<T>1860 * Lookup246: orml_vesting::module::Event<T>1881 **/1861 **/1882 OrmlVestingModuleEvent: {1862 OrmlVestingModuleEvent: {1883 _enum: {1863 _enum: {1884 VestingScheduleAdded: {1864 VestingScheduleAdded: {1895 }1875 }1896 }1876 }1897 },1877 },1898 /**1878 /**1899 * Lookup249: cumulus_pallet_xcmp_queue::pallet::Event<T>1879 * Lookup247: cumulus_pallet_xcmp_queue::pallet::Event<T>1900 **/1880 **/1901 CumulusPalletXcmpQueueEvent: {1881 CumulusPalletXcmpQueueEvent: {1902 _enum: {1882 _enum: {1903 Success: 'Option<H256>',1883 Success: 'Option<H256>',1910 OverweightServiced: '(u64,u64)'1890 OverweightServiced: '(u64,u64)'1911 }1891 }1912 },1892 },1913 /**1893 /**1914 * Lookup250: pallet_xcm::pallet::Event<T>1894 * Lookup248: pallet_xcm::pallet::Event<T>1915 **/1895 **/1916 PalletXcmEvent: {1896 PalletXcmEvent: {1917 _enum: {1897 _enum: {1918 Attempted: 'XcmV2TraitsOutcome',1898 Attempted: 'XcmV2TraitsOutcome',1933 NotifyTargetMigrationFail: '(XcmVersionedMultiLocation,u64)'1913 NotifyTargetMigrationFail: '(XcmVersionedMultiLocation,u64)'1934 }1914 }1935 },1915 },1936 /**1916 /**1937 * Lookup251: xcm::v2::traits::Outcome1917 * Lookup249: xcm::v2::traits::Outcome1938 **/1918 **/1939 XcmV2TraitsOutcome: {1919 XcmV2TraitsOutcome: {1940 _enum: {1920 _enum: {1941 Complete: 'u64',1921 Complete: 'u64',1942 Incomplete: '(u64,XcmV2TraitsError)',1922 Incomplete: '(u64,XcmV2TraitsError)',1943 Error: 'XcmV2TraitsError'1923 Error: 'XcmV2TraitsError'1944 }1924 }1945 },1925 },1946 /**1926 /**1947 * Lookup253: cumulus_pallet_xcm::pallet::Event<T>1927 * Lookup251: cumulus_pallet_xcm::pallet::Event<T>1948 **/1928 **/1949 CumulusPalletXcmEvent: {1929 CumulusPalletXcmEvent: {1950 _enum: {1930 _enum: {1951 InvalidFormat: '[u8;8]',1931 InvalidFormat: '[u8;8]',1952 UnsupportedVersion: '[u8;8]',1932 UnsupportedVersion: '[u8;8]',1953 ExecutedDownward: '([u8;8],XcmV2TraitsOutcome)'1933 ExecutedDownward: '([u8;8],XcmV2TraitsOutcome)'1954 }1934 }1955 },1935 },1956 /**1936 /**1957 * Lookup254: cumulus_pallet_dmp_queue::pallet::Event<T>1937 * Lookup252: cumulus_pallet_dmp_queue::pallet::Event<T>1958 **/1938 **/1959 CumulusPalletDmpQueueEvent: {1939 CumulusPalletDmpQueueEvent: {1960 _enum: {1940 _enum: {1961 InvalidFormat: '[u8;32]',1941 InvalidFormat: '[u8;32]',1966 OverweightServiced: '(u64,u64)'1946 OverweightServiced: '(u64,u64)'1967 }1947 }1968 },1948 },1969 /**1949 /**1970 * Lookup255: pallet_unique::RawEvent<sp_core::crypto::AccountId32, pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>1950 * Lookup253: pallet_unique::RawEvent<sp_core::crypto::AccountId32, pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>1971 **/1951 **/1972 PalletUniqueRawEvent: {1952 PalletUniqueRawEvent: {1973 _enum: {1953 _enum: {1974 CollectionSponsorRemoved: 'u32',1954 CollectionSponsorRemoved: 'u32',1987 SchemaVersionSet: 'u32'1967 SchemaVersionSet: 'u32'1988 }1968 }1989 },1969 },1990 /**1970 /**1991 * Lookup256: pallet_common::pallet::Event<T>1971 * Lookup254: pallet_common::pallet::Event<T>1992 **/1972 **/1993 PalletCommonEvent: {1973 PalletCommonEvent: {1994 _enum: {1974 _enum: {1995 CollectionCreated: '(u32,u8,AccountId32)',1975 CollectionCreated: '(u32,u8,AccountId32)',2005 PropertyPermissionSet: '(u32,Bytes)'1985 PropertyPermissionSet: '(u32,Bytes)'2006 }1986 }2007 },1987 },2008 /**1988 /**2009 * Lookup257: pallet_structure::pallet::Event<T>1989 * Lookup255: pallet_structure::pallet::Event<T>2010 **/1990 **/2011 PalletStructureEvent: {1991 PalletStructureEvent: {2012 _enum: {1992 _enum: {2013 Executed: 'Result<Null, SpRuntimeDispatchError>'1993 Executed: 'Result<Null, SpRuntimeDispatchError>'2014 }1994 }2015 },1995 },2016 /**1996 /**2017 * Lookup258: pallet_evm::pallet::Event<T>1997 * Lookup256: pallet_evm::pallet::Event<T>2018 **/1998 **/2019 PalletEvmEvent: {1999 PalletEvmEvent: {2020 _enum: {2000 _enum: {2021 Log: 'EthereumLog',2001 Log: 'EthereumLog',2027 BalanceWithdraw: '(AccountId32,H160,U256)'2007 BalanceWithdraw: '(AccountId32,H160,U256)'2028 }2008 }2029 },2009 },2030 /**2010 /**2031 * Lookup259: ethereum::log::Log2011 * Lookup257: ethereum::log::Log2032 **/2012 **/2033 EthereumLog: {2013 EthereumLog: {2034 address: 'H160',2014 address: 'H160',2035 topics: 'Vec<H256>',2015 topics: 'Vec<H256>',2036 data: 'Bytes'2016 data: 'Bytes'2037 },2017 },2038 /**2018 /**2039 * Lookup260: pallet_ethereum::pallet::Event2019 * Lookup258: pallet_ethereum::pallet::Event2040 **/2020 **/2041 PalletEthereumEvent: {2021 PalletEthereumEvent: {2042 _enum: {2022 _enum: {2043 Executed: '(H160,H160,H256,EvmCoreErrorExitReason)'2023 Executed: '(H160,H160,H256,EvmCoreErrorExitReason)'2044 }2024 }2045 },2025 },2046 /**2026 /**2047 * Lookup261: evm_core::error::ExitReason2027 * Lookup259: evm_core::error::ExitReason2048 **/2028 **/2049 EvmCoreErrorExitReason: {2029 EvmCoreErrorExitReason: {2050 _enum: {2030 _enum: {2051 Succeed: 'EvmCoreErrorExitSucceed',2031 Succeed: 'EvmCoreErrorExitSucceed',2054 Fatal: 'EvmCoreErrorExitFatal'2034 Fatal: 'EvmCoreErrorExitFatal'2055 }2035 }2056 },2036 },2057 /**2037 /**2058 * Lookup262: evm_core::error::ExitSucceed2038 * Lookup260: evm_core::error::ExitSucceed2059 **/2039 **/2060 EvmCoreErrorExitSucceed: {2040 EvmCoreErrorExitSucceed: {2061 _enum: ['Stopped', 'Returned', 'Suicided']2041 _enum: ['Stopped', 'Returned', 'Suicided']2062 },2042 },2063 /**2043 /**2064 * Lookup263: evm_core::error::ExitError2044 * Lookup261: evm_core::error::ExitError2065 **/2045 **/2066 EvmCoreErrorExitError: {2046 EvmCoreErrorExitError: {2067 _enum: {2047 _enum: {2068 StackUnderflow: 'Null',2048 StackUnderflow: 'Null',2082 InvalidCode: 'Null'2062 InvalidCode: 'Null'2083 }2063 }2084 },2064 },2085 /**2065 /**2086 * Lookup266: evm_core::error::ExitRevert2066 * Lookup264: evm_core::error::ExitRevert2087 **/2067 **/2088 EvmCoreErrorExitRevert: {2068 EvmCoreErrorExitRevert: {2089 _enum: ['Reverted']2069 _enum: ['Reverted']2090 },2070 },2091 /**2071 /**2092 * Lookup267: evm_core::error::ExitFatal2072 * Lookup265: evm_core::error::ExitFatal2093 **/2073 **/2094 EvmCoreErrorExitFatal: {2074 EvmCoreErrorExitFatal: {2095 _enum: {2075 _enum: {2096 NotSupported: 'Null',2076 NotSupported: 'Null',2099 Other: 'Text'2079 Other: 'Text'2100 }2080 }2101 },2081 },2102 /**2082 /**2103 * Lookup268: frame_system::Phase2083 * Lookup266: frame_system::Phase2104 **/2084 **/2105 FrameSystemPhase: {2085 FrameSystemPhase: {2106 _enum: {2086 _enum: {2107 ApplyExtrinsic: 'u32',2087 ApplyExtrinsic: 'u32',2108 Finalization: 'Null',2088 Finalization: 'Null',2109 Initialization: 'Null'2089 Initialization: 'Null'2110 }2090 }2111 },2091 },2112 /**2092 /**2113 * Lookup270: frame_system::LastRuntimeUpgradeInfo2093 * Lookup268: frame_system::LastRuntimeUpgradeInfo2114 **/2094 **/2115 FrameSystemLastRuntimeUpgradeInfo: {2095 FrameSystemLastRuntimeUpgradeInfo: {2116 specVersion: 'Compact<u32>',2096 specVersion: 'Compact<u32>',2117 specName: 'Text'2097 specName: 'Text'2118 },2098 },2119 /**2099 /**2120 * Lookup271: frame_system::limits::BlockWeights2100 * Lookup269: frame_system::limits::BlockWeights2121 **/2101 **/2122 FrameSystemLimitsBlockWeights: {2102 FrameSystemLimitsBlockWeights: {2123 baseBlock: 'u64',2103 baseBlock: 'u64',2124 maxBlock: 'u64',2104 maxBlock: 'u64',2125 perClass: 'FrameSupportWeightsPerDispatchClassWeightsPerClass'2105 perClass: 'FrameSupportWeightsPerDispatchClassWeightsPerClass'2126 },2106 },2127 /**2107 /**2128 * Lookup272: frame_support::weights::PerDispatchClass<frame_system::limits::WeightsPerClass>2108 * Lookup270: frame_support::weights::PerDispatchClass<frame_system::limits::WeightsPerClass>2129 **/2109 **/2130 FrameSupportWeightsPerDispatchClassWeightsPerClass: {2110 FrameSupportWeightsPerDispatchClassWeightsPerClass: {2131 normal: 'FrameSystemLimitsWeightsPerClass',2111 normal: 'FrameSystemLimitsWeightsPerClass',2132 operational: 'FrameSystemLimitsWeightsPerClass',2112 operational: 'FrameSystemLimitsWeightsPerClass',2133 mandatory: 'FrameSystemLimitsWeightsPerClass'2113 mandatory: 'FrameSystemLimitsWeightsPerClass'2134 },2114 },2135 /**2115 /**2136 * Lookup273: frame_system::limits::WeightsPerClass2116 * Lookup271: frame_system::limits::WeightsPerClass2137 **/2117 **/2138 FrameSystemLimitsWeightsPerClass: {2118 FrameSystemLimitsWeightsPerClass: {2139 baseExtrinsic: 'u64',2119 baseExtrinsic: 'u64',2140 maxExtrinsic: 'Option<u64>',2120 maxExtrinsic: 'Option<u64>',2141 maxTotal: 'Option<u64>',2121 maxTotal: 'Option<u64>',2142 reserved: 'Option<u64>'2122 reserved: 'Option<u64>'2143 },2123 },2144 /**2124 /**2145 * Lookup275: frame_system::limits::BlockLength2125 * Lookup273: frame_system::limits::BlockLength2146 **/2126 **/2147 FrameSystemLimitsBlockLength: {2127 FrameSystemLimitsBlockLength: {2148 max: 'FrameSupportWeightsPerDispatchClassU32'2128 max: 'FrameSupportWeightsPerDispatchClassU32'2149 },2129 },2150 /**2130 /**2151 * Lookup276: frame_support::weights::PerDispatchClass<T>2131 * Lookup274: frame_support::weights::PerDispatchClass<T>2152 **/2132 **/2153 FrameSupportWeightsPerDispatchClassU32: {2133 FrameSupportWeightsPerDispatchClassU32: {2154 normal: 'u32',2134 normal: 'u32',2155 operational: 'u32',2135 operational: 'u32',2156 mandatory: 'u32'2136 mandatory: 'u32'2157 },2137 },2158 /**2138 /**2159 * Lookup277: frame_support::weights::RuntimeDbWeight2139 * Lookup275: frame_support::weights::RuntimeDbWeight2160 **/2140 **/2161 FrameSupportWeightsRuntimeDbWeight: {2141 FrameSupportWeightsRuntimeDbWeight: {2162 read: 'u64',2142 read: 'u64',2163 write: 'u64'2143 write: 'u64'2164 },2144 },2165 /**2145 /**2166 * Lookup278: sp_version::RuntimeVersion2146 * Lookup276: sp_version::RuntimeVersion2167 **/2147 **/2168 SpVersionRuntimeVersion: {2148 SpVersionRuntimeVersion: {2169 specName: 'Text',2149 specName: 'Text',2170 implName: 'Text',2150 implName: 'Text',2175 transactionVersion: 'u32',2155 transactionVersion: 'u32',2176 stateVersion: 'u8'2156 stateVersion: 'u8'2177 },2157 },2178 /**2158 /**2179 * Lookup282: frame_system::pallet::Error<T>2159 * Lookup280: frame_system::pallet::Error<T>2180 **/2160 **/2181 FrameSystemError: {2161 FrameSystemError: {2182 _enum: ['InvalidSpecName', 'SpecVersionNeedsToIncrease', 'FailedToExtractRuntimeVersion', 'NonDefaultComposite', 'NonZeroRefCount', 'CallFiltered']2162 _enum: ['InvalidSpecName', 'SpecVersionNeedsToIncrease', 'FailedToExtractRuntimeVersion', 'NonDefaultComposite', 'NonZeroRefCount', 'CallFiltered']2183 },2163 },2184 /**2164 /**2185 * Lookup284: orml_vesting::module::Error<T>2165 * Lookup282: orml_vesting::module::Error<T>2186 **/2166 **/2187 OrmlVestingModuleError: {2167 OrmlVestingModuleError: {2188 _enum: ['ZeroVestingPeriod', 'ZeroVestingPeriodCount', 'InsufficientBalanceToLock', 'TooManyVestingSchedules', 'AmountLow', 'MaxVestingSchedulesExceeded']2168 _enum: ['ZeroVestingPeriod', 'ZeroVestingPeriodCount', 'InsufficientBalanceToLock', 'TooManyVestingSchedules', 'AmountLow', 'MaxVestingSchedulesExceeded']2189 },2169 },2190 /**2170 /**2191 * Lookup286: cumulus_pallet_xcmp_queue::InboundChannelDetails2171 * Lookup284: cumulus_pallet_xcmp_queue::InboundChannelDetails2192 **/2172 **/2193 CumulusPalletXcmpQueueInboundChannelDetails: {2173 CumulusPalletXcmpQueueInboundChannelDetails: {2194 sender: 'u32',2174 sender: 'u32',2195 state: 'CumulusPalletXcmpQueueInboundState',2175 state: 'CumulusPalletXcmpQueueInboundState',2196 messageMetadata: 'Vec<(u32,PolkadotParachainPrimitivesXcmpMessageFormat)>'2176 messageMetadata: 'Vec<(u32,PolkadotParachainPrimitivesXcmpMessageFormat)>'2197 },2177 },2198 /**2178 /**2199 * Lookup287: cumulus_pallet_xcmp_queue::InboundState2179 * Lookup285: cumulus_pallet_xcmp_queue::InboundState2200 **/2180 **/2201 CumulusPalletXcmpQueueInboundState: {2181 CumulusPalletXcmpQueueInboundState: {2202 _enum: ['Ok', 'Suspended']2182 _enum: ['Ok', 'Suspended']2203 },2183 },2204 /**2184 /**2205 * Lookup290: polkadot_parachain::primitives::XcmpMessageFormat2185 * Lookup288: polkadot_parachain::primitives::XcmpMessageFormat2206 **/2186 **/2207 PolkadotParachainPrimitivesXcmpMessageFormat: {2187 PolkadotParachainPrimitivesXcmpMessageFormat: {2208 _enum: ['ConcatenatedVersionedXcm', 'ConcatenatedEncodedBlob', 'Signals']2188 _enum: ['ConcatenatedVersionedXcm', 'ConcatenatedEncodedBlob', 'Signals']2209 },2189 },2210 /**2190 /**2211 * Lookup293: cumulus_pallet_xcmp_queue::OutboundChannelDetails2191 * Lookup291: cumulus_pallet_xcmp_queue::OutboundChannelDetails2212 **/2192 **/2213 CumulusPalletXcmpQueueOutboundChannelDetails: {2193 CumulusPalletXcmpQueueOutboundChannelDetails: {2214 recipient: 'u32',2194 recipient: 'u32',2215 state: 'CumulusPalletXcmpQueueOutboundState',2195 state: 'CumulusPalletXcmpQueueOutboundState',2216 signalsExist: 'bool',2196 signalsExist: 'bool',2217 firstIndex: 'u16',2197 firstIndex: 'u16',2218 lastIndex: 'u16'2198 lastIndex: 'u16'2219 },2199 },2220 /**2200 /**2221 * Lookup294: cumulus_pallet_xcmp_queue::OutboundState2201 * Lookup292: cumulus_pallet_xcmp_queue::OutboundState2222 **/2202 **/2223 CumulusPalletXcmpQueueOutboundState: {2203 CumulusPalletXcmpQueueOutboundState: {2224 _enum: ['Ok', 'Suspended']2204 _enum: ['Ok', 'Suspended']2225 },2205 },2226 /**2206 /**2227 * Lookup296: cumulus_pallet_xcmp_queue::QueueConfigData2207 * Lookup294: cumulus_pallet_xcmp_queue::QueueConfigData2228 **/2208 **/2229 CumulusPalletXcmpQueueQueueConfigData: {2209 CumulusPalletXcmpQueueQueueConfigData: {2230 suspendThreshold: 'u32',2210 suspendThreshold: 'u32',2231 dropThreshold: 'u32',2211 dropThreshold: 'u32',2234 weightRestrictDecay: 'u64',2214 weightRestrictDecay: 'u64',2235 xcmpMaxIndividualWeight: 'u64'2215 xcmpMaxIndividualWeight: 'u64'2236 },2216 },2237 /**2217 /**2238 * Lookup298: cumulus_pallet_xcmp_queue::pallet::Error<T>2218 * Lookup296: cumulus_pallet_xcmp_queue::pallet::Error<T>2239 **/2219 **/2240 CumulusPalletXcmpQueueError: {2220 CumulusPalletXcmpQueueError: {2241 _enum: ['FailedToSend', 'BadXcmOrigin', 'BadXcm', 'BadOverweightIndex', 'WeightOverLimit']2221 _enum: ['FailedToSend', 'BadXcmOrigin', 'BadXcm', 'BadOverweightIndex', 'WeightOverLimit']2242 },2222 },2243 /**2223 /**2244 * Lookup299: pallet_xcm::pallet::Error<T>2224 * Lookup297: pallet_xcm::pallet::Error<T>2245 **/2225 **/2246 PalletXcmError: {2226 PalletXcmError: {2247 _enum: ['Unreachable', 'SendFailure', 'Filtered', 'UnweighableMessage', 'DestinationNotInvertible', 'Empty', 'CannotReanchor', 'TooManyAssets', 'InvalidOrigin', 'BadVersion', 'BadLocation', 'NoSubscription', 'AlreadySubscribed']2227 _enum: ['Unreachable', 'SendFailure', 'Filtered', 'UnweighableMessage', 'DestinationNotInvertible', 'Empty', 'CannotReanchor', 'TooManyAssets', 'InvalidOrigin', 'BadVersion', 'BadLocation', 'NoSubscription', 'AlreadySubscribed']2248 },2228 },2249 /**2229 /**2250 * Lookup300: cumulus_pallet_xcm::pallet::Error<T>2230 * Lookup298: cumulus_pallet_xcm::pallet::Error<T>2251 **/2231 **/2252 CumulusPalletXcmError: 'Null',2232 CumulusPalletXcmError: 'Null',2253 /**2233 /**2254 * Lookup301: cumulus_pallet_dmp_queue::ConfigData2234 * Lookup299: cumulus_pallet_dmp_queue::ConfigData2255 **/2235 **/2256 CumulusPalletDmpQueueConfigData: {2236 CumulusPalletDmpQueueConfigData: {2257 maxIndividual: 'u64'2237 maxIndividual: 'u64'2258 },2238 },2259 /**2239 /**2260 * Lookup302: cumulus_pallet_dmp_queue::PageIndexData2240 * Lookup300: cumulus_pallet_dmp_queue::PageIndexData2261 **/2241 **/2262 CumulusPalletDmpQueuePageIndexData: {2242 CumulusPalletDmpQueuePageIndexData: {2263 beginUsed: 'u32',2243 beginUsed: 'u32',2264 endUsed: 'u32',2244 endUsed: 'u32',2265 overweightCount: 'u64'2245 overweightCount: 'u64'2266 },2246 },2267 /**2247 /**2268 * Lookup305: cumulus_pallet_dmp_queue::pallet::Error<T>2248 * Lookup303: cumulus_pallet_dmp_queue::pallet::Error<T>2269 **/2249 **/2270 CumulusPalletDmpQueueError: {2250 CumulusPalletDmpQueueError: {2271 _enum: ['Unknown', 'OverLimit']2251 _enum: ['Unknown', 'OverLimit']2272 },2252 },2273 /**2253 /**2274 * Lookup309: pallet_unique::Error<T>2254 * Lookup307: pallet_unique::Error<T>2275 **/2255 **/2276 PalletUniqueError: {2256 PalletUniqueError: {2277 _enum: ['CollectionDecimalPointLimitExceeded', 'ConfirmUnsetSponsorFail', 'EmptyArgument']2257 _enum: ['CollectionDecimalPointLimitExceeded', 'ConfirmUnsetSponsorFail', 'EmptyArgument']2278 },2258 },2279 /**2259 /**2280 * Lookup310: up_data_structs::Collection<sp_core::crypto::AccountId32>2260 * Lookup308: up_data_structs::Collection<sp_core::crypto::AccountId32>2281 **/2261 **/2282 UpDataStructsCollection: {2262 UpDataStructsCollection: {2283 owner: 'AccountId32',2263 owner: 'AccountId32',2284 mode: 'UpDataStructsCollectionMode',2264 mode: 'UpDataStructsCollectionMode',2289 mintMode: 'bool',2269 mintMode: 'bool',2290 schemaVersion: 'UpDataStructsSchemaVersion',2270 schemaVersion: 'UpDataStructsSchemaVersion',2291 sponsorship: 'UpDataStructsSponsorshipState',2271 sponsorship: 'UpDataStructsSponsorshipState',2292 limits: 'UpDataStructsCollectionLimits',2272 limits: 'UpDataStructsCollectionLimits'2293 metaUpdatePermission: 'UpDataStructsMetaUpdatePermission'2294 },2273 },2295 /**2274 /**2296 * Lookup311: up_data_structs::SponsorshipState<sp_core::crypto::AccountId32>2275 * Lookup309: up_data_structs::SponsorshipState<sp_core::crypto::AccountId32>2297 **/2276 **/2298 UpDataStructsSponsorshipState: {2277 UpDataStructsSponsorshipState: {2299 _enum: {2278 _enum: {2300 Disabled: 'Null',2279 Disabled: 'Null',2301 Unconfirmed: 'AccountId32',2280 Unconfirmed: 'AccountId32',2302 Confirmed: 'AccountId32'2281 Confirmed: 'AccountId32'2303 }2282 }2304 },2283 },2305 /**2284 /**2306 * Lookup312: up_data_structs::Properties2285 * Lookup310: up_data_structs::Properties2307 **/2286 **/2308 UpDataStructsProperties: {2287 UpDataStructsProperties: {2309 map: 'UpDataStructsPropertiesMapBoundedVec',2288 map: 'UpDataStructsPropertiesMapBoundedVec',2310 consumedSpace: 'u32',2289 consumedSpace: 'u32',2311 spaceLimit: 'u32'2290 spaceLimit: 'u32'2312 },2291 },2313 /**2292 /**2314 * Lookup313: up_data_structs::PropertiesMap<frame_support::storage::bounded_vec::BoundedVec<T, S>>2293 * Lookup311: up_data_structs::PropertiesMap<frame_support::storage::bounded_vec::BoundedVec<T, S>>2315 **/2294 **/2316 UpDataStructsPropertiesMapBoundedVec: 'BTreeMap<Bytes, Bytes>',2295 UpDataStructsPropertiesMapBoundedVec: 'BTreeMap<Bytes, Bytes>',2317 /**2296 /**2318 * Lookup318: up_data_structs::PropertiesMap<up_data_structs::PropertyPermission>2297 * Lookup316: up_data_structs::PropertiesMap<up_data_structs::PropertyPermission>2319 **/2298 **/2320 UpDataStructsPropertiesMapPropertyPermission: 'BTreeMap<Bytes, UpDataStructsPropertyPermission>',2299 UpDataStructsPropertiesMapPropertyPermission: 'BTreeMap<Bytes, UpDataStructsPropertyPermission>',2321 /**2300 /**2322 * Lookup324: up_data_structs::CollectionField2301 * Lookup322: up_data_structs::CollectionField2323 **/2302 **/2324 UpDataStructsCollectionField: {2303 UpDataStructsCollectionField: {2325 _enum: ['ConstOnChainSchema', 'OffchainSchema']2304 _enum: ['ConstOnChainSchema', 'OffchainSchema']2326 },2305 },2327 /**2306 /**2328 * Lookup327: up_data_structs::CollectionStats2307 * Lookup325: up_data_structs::CollectionStats2329 **/2308 **/2330 UpDataStructsCollectionStats: {2309 UpDataStructsCollectionStats: {2331 created: 'u32',2310 created: 'u32',2332 destroyed: 'u32',2311 destroyed: 'u32',2333 alive: 'u32'2312 alive: 'u32'2334 },2313 },2335 /**2314 /**2336 * Lookup328: PhantomType::up_data_structs<up_data_structs::TokenData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>>2315 * Lookup326: PhantomType::up_data_structs<up_data_structs::TokenData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>>2337 **/2316 **/2338 PhantomTypeUpDataStructsTokenData: '[Lookup329;0]',2317 PhantomTypeUpDataStructsTokenData: '[Lookup327;0]',2339 /**2318 /**2340 * Lookup329: up_data_structs::TokenData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2319 * Lookup327: up_data_structs::TokenData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2341 **/2320 **/2342 UpDataStructsTokenData: {2321 UpDataStructsTokenData: {2343 constData: 'Bytes',2322 constData: 'Bytes',2344 properties: 'Vec<UpDataStructsProperty>',2323 properties: 'Vec<UpDataStructsProperty>',2345 owner: 'Option<PalletEvmAccountBasicCrossAccountIdRepr>'2324 owner: 'Option<PalletEvmAccountBasicCrossAccountIdRepr>'2346 },2325 },2347 /**2326 /**2348 * Lookup332: PhantomType::up_data_structs<up_data_structs::RpcCollection<sp_core::crypto::AccountId32>>2327 * Lookup330: PhantomType::up_data_structs<up_data_structs::RpcCollection<sp_core::crypto::AccountId32>>2349 **/2328 **/2350 PhantomTypeUpDataStructsRpcCollection: '[Lookup333;0]',2329 PhantomTypeUpDataStructsRpcCollection: '[Lookup331;0]',2351 /**2330 /**2352 * Lookup333: up_data_structs::RpcCollection<sp_core::crypto::AccountId32>2331 * Lookup331: up_data_structs::RpcCollection<sp_core::crypto::AccountId32>2353 **/2332 **/2354 UpDataStructsRpcCollection: {2333 UpDataStructsRpcCollection: {2355 owner: 'AccountId32',2334 owner: 'AccountId32',2356 mode: 'UpDataStructsCollectionMode',2335 mode: 'UpDataStructsCollectionMode',2364 sponsorship: 'UpDataStructsSponsorshipState',2343 sponsorship: 'UpDataStructsSponsorshipState',2365 limits: 'UpDataStructsCollectionLimits',2344 limits: 'UpDataStructsCollectionLimits',2366 constOnChainSchema: 'Bytes',2345 constOnChainSchema: 'Bytes',2367 metaUpdatePermission: 'UpDataStructsMetaUpdatePermission',2368 tokenPropertyPermissions: 'Vec<UpDataStructsPropertyKeyPermission>',2346 tokenPropertyPermissions: 'Vec<UpDataStructsPropertyKeyPermission>',2369 properties: 'Vec<UpDataStructsProperty>'2347 properties: 'Vec<UpDataStructsProperty>'2370 },2348 },2371 /**2349 /**2372 * Lookup335: PhantomType::up_data_structs<rmrk_types::CollectionInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>, sp_core::crypto::AccountId32>>2350 * Lookup333: PhantomType::up_data_structs<rmrk_types::CollectionInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>, sp_core::crypto::AccountId32>>2373 **/2351 **/2374 PhantomTypeUpDataStructsCollectionInfo: '[Lookup336;0]',2352 PhantomTypeUpDataStructsCollectionInfo: '[Lookup334;0]',2375 /**2353 /**2376 * Lookup336: rmrk_types::CollectionInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>, sp_core::crypto::AccountId32>2354 * Lookup334: rmrk_types::CollectionInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>, sp_core::crypto::AccountId32>2377 **/2355 **/2378 RmrkTypesCollectionInfo: {2356 RmrkTypesCollectionInfo: {2379 issuer: 'AccountId32',2357 issuer: 'AccountId32',2380 metadata: 'Bytes',2358 metadata: 'Bytes',2381 max: 'Option<u32>',2359 max: 'Option<u32>',2382 symbol: 'Bytes',2360 symbol: 'Bytes',2383 nftsCount: 'u32'2361 nftsCount: 'u32'2384 },2362 },2385 /**2363 /**2386 * Lookup340: PhantomType::up_data_structs<rmrk_types::NftInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill, frame_support::storage::bounded_vec::BoundedVec<T, S>>>2364 * Lookup338: PhantomType::up_data_structs<rmrk_types::NftInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill, frame_support::storage::bounded_vec::BoundedVec<T, S>>>2387 **/2365 **/2388 PhantomTypeUpDataStructsNftInfo: '[Lookup341;0]',2366 PhantomTypeUpDataStructsNftInfo: '[Lookup339;0]',2389 /**2367 /**2390 * Lookup341: rmrk_types::NftInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill, frame_support::storage::bounded_vec::BoundedVec<T, S>>2368 * Lookup339: rmrk_types::NftInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill, frame_support::storage::bounded_vec::BoundedVec<T, S>>2391 **/2369 **/2392 RmrkTypesNftInfo: {2370 RmrkTypesNftInfo: {2393 owner: 'RmrkTypesAccountIdOrCollectionNftTuple',2371 owner: 'RmrkTypesAccountIdOrCollectionNftTuple',2394 royalty: 'Option<RmrkTypesRoyaltyInfo>',2372 royalty: 'Option<RmrkTypesRoyaltyInfo>',2395 metadata: 'Bytes',2373 metadata: 'Bytes',2396 equipped: 'bool',2374 equipped: 'bool',2397 pending: 'bool'2375 pending: 'bool'2398 },2376 },2399 /**2377 /**2400 * Lookup342: rmrk_types::AccountIdOrCollectionNftTuple<sp_core::crypto::AccountId32>2378 * Lookup340: rmrk_types::AccountIdOrCollectionNftTuple<sp_core::crypto::AccountId32>2401 **/2379 **/2402 RmrkTypesAccountIdOrCollectionNftTuple: {2380 RmrkTypesAccountIdOrCollectionNftTuple: {2403 _enum: {2381 _enum: {2404 AccountId: 'AccountId32',2382 AccountId: 'AccountId32',2405 CollectionAndNftTuple: '(u32,u32)'2383 CollectionAndNftTuple: '(u32,u32)'2406 }2384 }2407 },2385 },2408 /**2386 /**2409 * Lookup344: rmrk_types::RoyaltyInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill>2387 * Lookup342: rmrk_types::RoyaltyInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill>2410 **/2388 **/2411 RmrkTypesRoyaltyInfo: {2389 RmrkTypesRoyaltyInfo: {2412 recipient: 'AccountId32',2390 recipient: 'AccountId32',2413 amount: 'Permill'2391 amount: 'Permill'2414 },2392 },2415 /**2393 /**2416 * Lookup346: PhantomType::up_data_structs<rmrk_types::ResourceInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>>2394 * Lookup344: PhantomType::up_data_structs<rmrk_types::ResourceInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>>2417 **/2395 **/2418 PhantomTypeUpDataStructsResourceInfo: '[Lookup347;0]',2396 PhantomTypeUpDataStructsResourceInfo: '[Lookup345;0]',2419 /**2397 /**2420 * Lookup347: rmrk_types::ResourceInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>2398 * Lookup345: rmrk_types::ResourceInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>2421 **/2399 **/2422 RmrkTypesResourceInfo: {2400 RmrkTypesResourceInfo: {2423 id: 'Bytes',2401 id: 'Bytes',2424 pending: 'bool',2402 pending: 'bool',2431 license: 'Option<Bytes>',2409 license: 'Option<Bytes>',2432 thumb: 'Option<Bytes>'2410 thumb: 'Option<Bytes>'2433 },2411 },2434 /**2412 /**2435 * Lookup353: PhantomType::up_data_structs<rmrk_types::PropertyInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>>2413 * Lookup351: PhantomType::up_data_structs<rmrk_types::PropertyInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>>2436 **/2414 **/2437 PhantomTypeUpDataStructsPropertyInfo: '[Lookup354;0]',2415 PhantomTypeUpDataStructsPropertyInfo: '[Lookup352;0]',2438 /**2416 /**2439 * Lookup354: rmrk_types::PropertyInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>2417 * Lookup352: rmrk_types::PropertyInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>2440 **/2418 **/2441 RmrkTypesPropertyInfo: {2419 RmrkTypesPropertyInfo: {2442 key: 'Bytes',2420 key: 'Bytes',2443 value: 'Bytes'2421 value: 'Bytes'2444 },2422 },2445 /**2423 /**2446 * Lookup358: PhantomType::up_data_structs<rmrk_types::BaseInfo<sp_core::crypto::AccountId32, frame_support::storage::bounded_vec::BoundedVec<T, S>>>2424 * Lookup356: PhantomType::up_data_structs<rmrk_types::BaseInfo<sp_core::crypto::AccountId32, frame_support::storage::bounded_vec::BoundedVec<T, S>>>2447 **/2425 **/2448 PhantomTypeUpDataStructsBaseInfo: '[Lookup359;0]',2426 PhantomTypeUpDataStructsBaseInfo: '[Lookup357;0]',2449 /**2427 /**2450 * Lookup359: rmrk_types::BaseInfo<sp_core::crypto::AccountId32, frame_support::storage::bounded_vec::BoundedVec<T, S>>2428 * Lookup357: rmrk_types::BaseInfo<sp_core::crypto::AccountId32, frame_support::storage::bounded_vec::BoundedVec<T, S>>2451 **/2429 **/2452 RmrkTypesBaseInfo: {2430 RmrkTypesBaseInfo: {2453 issuer: 'AccountId32',2431 issuer: 'AccountId32',2454 baseType: 'Bytes',2432 baseType: 'Bytes',2455 symbol: 'Bytes'2433 symbol: 'Bytes'2456 },2434 },2457 /**2435 /**2458 * Lookup361: PhantomType::up_data_structs<rmrk_types::PartType<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>>2436 * Lookup359: PhantomType::up_data_structs<rmrk_types::PartType<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>>2459 **/2437 **/2460 PhantomTypeUpDataStructsPartType: '[Lookup362;0]',2438 PhantomTypeUpDataStructsPartType: '[Lookup360;0]',2461 /**2439 /**2462 * Lookup362: rmrk_types::PartType<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>2440 * Lookup360: rmrk_types::PartType<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>2463 **/2441 **/2464 RmrkTypesPartType: {2442 RmrkTypesPartType: {2465 _enum: {2443 _enum: {2466 FixedPart: 'RmrkTypesFixedPart',2444 FixedPart: 'RmrkTypesFixedPart',2467 SlotPart: 'RmrkTypesSlotPart'2445 SlotPart: 'RmrkTypesSlotPart'2468 }2446 }2469 },2447 },2470 /**2448 /**2471 * Lookup364: rmrk_types::FixedPart<frame_support::storage::bounded_vec::BoundedVec<T, S>>2449 * Lookup362: rmrk_types::FixedPart<frame_support::storage::bounded_vec::BoundedVec<T, S>>2472 **/2450 **/2473 RmrkTypesFixedPart: {2451 RmrkTypesFixedPart: {2474 id: 'u32',2452 id: 'u32',2475 z: 'u32',2453 z: 'u32',2476 src: 'Bytes'2454 src: 'Bytes'2477 },2455 },2478 /**2456 /**2479 * Lookup365: rmrk_types::SlotPart<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>2457 * Lookup363: rmrk_types::SlotPart<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>2480 **/2458 **/2481 RmrkTypesSlotPart: {2459 RmrkTypesSlotPart: {2482 id: 'u32',2460 id: 'u32',2483 equippable: 'RmrkTypesEquippableList',2461 equippable: 'RmrkTypesEquippableList',2484 src: 'Bytes',2462 src: 'Bytes',2485 z: 'u32'2463 z: 'u32'2486 },2464 },2487 /**2465 /**2488 * Lookup366: rmrk_types::EquippableList<frame_support::storage::bounded_vec::BoundedVec<T, S>>2466 * Lookup364: rmrk_types::EquippableList<frame_support::storage::bounded_vec::BoundedVec<T, S>>2489 **/2467 **/2490 RmrkTypesEquippableList: {2468 RmrkTypesEquippableList: {2491 _enum: {2469 _enum: {2492 All: 'Null',2470 All: 'Null',2493 Empty: 'Null',2471 Empty: 'Null',2494 Custom: 'Vec<u32>'2472 Custom: 'Vec<u32>'2495 }2473 }2496 },2474 },2497 /**2475 /**2498 * Lookup368: PhantomType::up_data_structs<rmrk_types::Theme<frame_support::storage::bounded_vec::BoundedVec<T, S>, BoundedPropertyList>>2476 * Lookup366: PhantomType::up_data_structs<rmrk_types::Theme<frame_support::storage::bounded_vec::BoundedVec<T, S>, BoundedPropertyList>>2499 **/2477 **/2500 PhantomTypeUpDataStructsTheme: '[Lookup369;0]',2478 PhantomTypeUpDataStructsTheme: '[Lookup367;0]',2501 /**2479 /**2502 * Lookup369: rmrk_types::Theme<frame_support::storage::bounded_vec::BoundedVec<T, S>, BoundedPropertyList>2480 * Lookup367: rmrk_types::Theme<frame_support::storage::bounded_vec::BoundedVec<T, S>, BoundedPropertyList>2503 **/2481 **/2504 RmrkTypesTheme: {2482 RmrkTypesTheme: {2505 name: 'Bytes',2483 name: 'Bytes',2506 properties: 'Vec<RmrkTypesThemeProperty>',2484 properties: 'Vec<RmrkTypesThemeProperty>',2507 inherit: 'bool'2485 inherit: 'bool'2508 },2486 },2509 /**2487 /**2510 * Lookup371: rmrk_types::ThemeProperty<frame_support::storage::bounded_vec::BoundedVec<T, S>>2488 * Lookup369: rmrk_types::ThemeProperty<frame_support::storage::bounded_vec::BoundedVec<T, S>>2511 **/2489 **/2512 RmrkTypesThemeProperty: {2490 RmrkTypesThemeProperty: {2513 key: 'Bytes',2491 key: 'Bytes',2514 value: 'Bytes'2492 value: 'Bytes'2515 },2493 },2516 /**2494 /**2517 * Lookup373: PhantomType::up_data_structs<rmrk_types::NftChild>2495 * Lookup371: PhantomType::up_data_structs<rmrk_types::NftChild>2518 **/2496 **/2519 PhantomTypeUpDataStructsNftChild: '[Lookup374;0]',2497 PhantomTypeUpDataStructsNftChild: '[Lookup372;0]',2520 /**2498 /**2521 * Lookup374: rmrk_types::NftChild2499 * Lookup372: rmrk_types::NftChild2522 **/2500 **/2523 RmrkTypesNftChild: {2501 RmrkTypesNftChild: {2524 collectionId: 'u32',2502 collectionId: 'u32',2525 nftId: 'u32'2503 nftId: 'u32'2526 },2504 },2527 /**2505 /**2528 * Lookup376: pallet_common::pallet::Error<T>2506 * Lookup374: pallet_common::pallet::Error<T>2529 **/2507 **/2530 PalletCommonError: {2508 PalletCommonError: {2531 _enum: ['CollectionNotFound', 'MustBeTokenOwner', 'NoPermission', 'PublicMintingNotAllowed', 'AddressNotInAllowlist', 'CollectionNameLimitExceeded', 'CollectionDescriptionLimitExceeded', 'CollectionTokenPrefixLimitExceeded', 'TotalCollectionsLimitExceeded', 'TokenVariableDataLimitExceeded', 'CollectionAdminCountExceeded', 'CollectionLimitBoundsExceeded', 'OwnerPermissionsCantBeReverted', 'TransferNotAllowed', 'AccountTokenLimitExceeded', 'CollectionTokenLimitExceeded', 'MetadataFlagFrozen', 'TokenNotFound', 'TokenValueTooLow', 'ApprovedValueTooLow', 'CantApproveMoreThanOwned', 'AddressIsZero', 'UnsupportedOperation', 'NotSufficientFounds', 'NestingIsDisabled', 'OnlyOwnerAllowedToNest', 'SourceCollectionIsNotAllowedToNest', 'CollectionFieldSizeExceeded', 'NoSpaceForProperty', 'PropertyLimitReached', 'UnableToReadUnboundedKeys', 'InvalidCharacterInPropertyKey', 'EmptyPropertyKey']2509 _enum: ['CollectionNotFound', 'MustBeTokenOwner', 'NoPermission', 'PublicMintingNotAllowed', 'AddressNotInAllowlist', 'CollectionNameLimitExceeded', 'CollectionDescriptionLimitExceeded', 'CollectionTokenPrefixLimitExceeded', 'TotalCollectionsLimitExceeded', 'CollectionAdminCountExceeded', 'CollectionLimitBoundsExceeded', 'OwnerPermissionsCantBeReverted', 'TransferNotAllowed', 'AccountTokenLimitExceeded', 'CollectionTokenLimitExceeded', 'MetadataFlagFrozen', 'TokenNotFound', 'TokenValueTooLow', 'ApprovedValueTooLow', 'CantApproveMoreThanOwned', 'AddressIsZero', 'UnsupportedOperation', 'NotSufficientFounds', 'NestingIsDisabled', 'OnlyOwnerAllowedToNest', 'SourceCollectionIsNotAllowedToNest', 'CollectionFieldSizeExceeded', 'NoSpaceForProperty', 'PropertyLimitReached', 'PropertyKeyIsTooLong', 'InvalidCharacterInPropertyKey', 'EmptyPropertyKey']2532 },2510 },2533 /**2511 /**2534 * Lookup378: pallet_fungible::pallet::Error<T>2512 * Lookup376: pallet_fungible::pallet::Error<T>2535 **/2513 **/2536 PalletFungibleError: {2514 PalletFungibleError: {2537 _enum: ['NotFungibleDataUsedToMintFungibleCollectionToken', 'FungibleItemsHaveNoId', 'FungibleItemsDontHaveData', 'FungibleDisallowsNesting', 'SettingPropertiesNotAllowed']2515 _enum: ['NotFungibleDataUsedToMintFungibleCollectionToken', 'FungibleItemsHaveNoId', 'FungibleItemsDontHaveData', 'FungibleDisallowsNesting', 'SettingPropertiesNotAllowed']2538 },2516 },2539 /**2517 /**2540 * Lookup379: pallet_refungible::ItemData2518 * Lookup377: pallet_refungible::ItemData2541 **/2519 **/2542 PalletRefungibleItemData: {2520 PalletRefungibleItemData: {2543 constData: 'Bytes',2521 constData: 'Bytes'2544 variableData: 'Bytes'2545 },2522 },2546 /**2523 /**2547 * Lookup383: pallet_refungible::pallet::Error<T>2524 * Lookup381: pallet_refungible::pallet::Error<T>2548 **/2525 **/2549 PalletRefungibleError: {2526 PalletRefungibleError: {2550 _enum: ['NotRefungibleDataUsedToMintFungibleCollectionToken', 'WrongRefungiblePieces', 'RefungibleDisallowsNesting', 'SettingPropertiesNotAllowed']2527 _enum: ['NotRefungibleDataUsedToMintFungibleCollectionToken', 'WrongRefungiblePieces', 'RefungibleDisallowsNesting', 'SettingPropertiesNotAllowed']2551 },2528 },2552 /**2529 /**2553 * Lookup384: pallet_nonfungible::ItemData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2530 * Lookup382: pallet_nonfungible::ItemData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2554 **/2531 **/2555 PalletNonfungibleItemData: {2532 PalletNonfungibleItemData: {2556 constData: 'Bytes',2533 constData: 'Bytes',2557 variableData: 'Bytes',2558 owner: 'PalletEvmAccountBasicCrossAccountIdRepr'2534 owner: 'PalletEvmAccountBasicCrossAccountIdRepr'2559 },2535 },2560 /**2536 /**2561 * Lookup385: pallet_nonfungible::pallet::Error<T>2537 * Lookup383: pallet_nonfungible::pallet::Error<T>2562 **/2538 **/2563 PalletNonfungibleError: {2539 PalletNonfungibleError: {2564 _enum: ['NotNonfungibleDataUsedToMintFungibleCollectionToken', 'NonfungibleItemsHaveNoAmount']2540 _enum: ['NotNonfungibleDataUsedToMintFungibleCollectionToken', 'NonfungibleItemsHaveNoAmount']2565 },2541 },2566 /**2542 /**2567 * Lookup386: pallet_structure::pallet::Error<T>2543 * Lookup384: pallet_structure::pallet::Error<T>2568 **/2544 **/2569 PalletStructureError: {2545 PalletStructureError: {2570 _enum: ['OuroborosDetected', 'DepthLimit', 'TokenNotFound']2546 _enum: ['OuroborosDetected', 'DepthLimit', 'TokenNotFound']2571 },2547 },2572 /**2548 /**2573 * Lookup389: pallet_evm::pallet::Error<T>2549 * Lookup387: pallet_evm::pallet::Error<T>2574 **/2550 **/2575 PalletEvmError: {2551 PalletEvmError: {2576 _enum: ['BalanceLow', 'FeeOverflow', 'PaymentOverflow', 'WithdrawFailed', 'GasPriceTooLow', 'InvalidNonce']2552 _enum: ['BalanceLow', 'FeeOverflow', 'PaymentOverflow', 'WithdrawFailed', 'GasPriceTooLow', 'InvalidNonce']2577 },2553 },2578 /**2554 /**2579 * Lookup392: fp_rpc::TransactionStatus2555 * Lookup390: fp_rpc::TransactionStatus2580 **/2556 **/2581 FpRpcTransactionStatus: {2557 FpRpcTransactionStatus: {2582 transactionHash: 'H256',2558 transactionHash: 'H256',2583 transactionIndex: 'u32',2559 transactionIndex: 'u32',2587 logs: 'Vec<EthereumLog>',2563 logs: 'Vec<EthereumLog>',2588 logsBloom: 'EthbloomBloom'2564 logsBloom: 'EthbloomBloom'2589 },2565 },2590 /**2566 /**2591 * Lookup394: ethbloom::Bloom2567 * Lookup392: ethbloom::Bloom2592 **/2568 **/2593 EthbloomBloom: '[u8;256]',2569 EthbloomBloom: '[u8;256]',2594 /**2570 /**2595 * Lookup396: ethereum::receipt::ReceiptV32571 * Lookup394: ethereum::receipt::ReceiptV32596 **/2572 **/2597 EthereumReceiptReceiptV3: {2573 EthereumReceiptReceiptV3: {2598 _enum: {2574 _enum: {2599 Legacy: 'EthereumReceiptEip658ReceiptData',2575 Legacy: 'EthereumReceiptEip658ReceiptData',2600 EIP2930: 'EthereumReceiptEip658ReceiptData',2576 EIP2930: 'EthereumReceiptEip658ReceiptData',2601 EIP1559: 'EthereumReceiptEip658ReceiptData'2577 EIP1559: 'EthereumReceiptEip658ReceiptData'2602 }2578 }2603 },2579 },2604 /**2580 /**2605 * Lookup397: ethereum::receipt::EIP658ReceiptData2581 * Lookup395: ethereum::receipt::EIP658ReceiptData2606 **/2582 **/2607 EthereumReceiptEip658ReceiptData: {2583 EthereumReceiptEip658ReceiptData: {2608 statusCode: 'u8',2584 statusCode: 'u8',2609 usedGas: 'U256',2585 usedGas: 'U256',2610 logsBloom: 'EthbloomBloom',2586 logsBloom: 'EthbloomBloom',2611 logs: 'Vec<EthereumLog>'2587 logs: 'Vec<EthereumLog>'2612 },2588 },2613 /**2589 /**2614 * Lookup398: ethereum::block::Block<ethereum::transaction::TransactionV2>2590 * Lookup396: ethereum::block::Block<ethereum::transaction::TransactionV2>2615 **/2591 **/2616 EthereumBlock: {2592 EthereumBlock: {2617 header: 'EthereumHeader',2593 header: 'EthereumHeader',2618 transactions: 'Vec<EthereumTransactionTransactionV2>',2594 transactions: 'Vec<EthereumTransactionTransactionV2>',2619 ommers: 'Vec<EthereumHeader>'2595 ommers: 'Vec<EthereumHeader>'2620 },2596 },2621 /**2597 /**2622 * Lookup399: ethereum::header::Header2598 * Lookup397: ethereum::header::Header2623 **/2599 **/2624 EthereumHeader: {2600 EthereumHeader: {2625 parentHash: 'H256',2601 parentHash: 'H256',2626 ommersHash: 'H256',2602 ommersHash: 'H256',2638 mixHash: 'H256',2614 mixHash: 'H256',2639 nonce: 'EthereumTypesHashH64'2615 nonce: 'EthereumTypesHashH64'2640 },2616 },2641 /**2617 /**2642 * Lookup400: ethereum_types::hash::H642618 * Lookup398: ethereum_types::hash::H642643 **/2619 **/2644 EthereumTypesHashH64: '[u8;8]',2620 EthereumTypesHashH64: '[u8;8]',2645 /**2621 /**2646 * Lookup405: pallet_ethereum::pallet::Error<T>2622 * Lookup403: pallet_ethereum::pallet::Error<T>2647 **/2623 **/2648 PalletEthereumError: {2624 PalletEthereumError: {2649 _enum: ['InvalidSignature', 'PreLogExists']2625 _enum: ['InvalidSignature', 'PreLogExists']2650 },2626 },2651 /**2627 /**2652 * Lookup406: pallet_evm_coder_substrate::pallet::Error<T>2628 * Lookup404: pallet_evm_coder_substrate::pallet::Error<T>2653 **/2629 **/2654 PalletEvmCoderSubstrateError: {2630 PalletEvmCoderSubstrateError: {2655 _enum: ['OutOfGas', 'OutOfFund']2631 _enum: ['OutOfGas', 'OutOfFund']2656 },2632 },2657 /**2633 /**2658 * Lookup407: pallet_evm_contract_helpers::SponsoringModeT2634 * Lookup405: pallet_evm_contract_helpers::SponsoringModeT2659 **/2635 **/2660 PalletEvmContractHelpersSponsoringModeT: {2636 PalletEvmContractHelpersSponsoringModeT: {2661 _enum: ['Disabled', 'Allowlisted', 'Generous']2637 _enum: ['Disabled', 'Allowlisted', 'Generous']2662 },2638 },2663 /**2639 /**2664 * Lookup409: pallet_evm_contract_helpers::pallet::Error<T>2640 * Lookup407: pallet_evm_contract_helpers::pallet::Error<T>2665 **/2641 **/2666 PalletEvmContractHelpersError: {2642 PalletEvmContractHelpersError: {2667 _enum: ['NoPermission']2643 _enum: ['NoPermission']2668 },2644 },2669 /**2645 /**2670 * Lookup410: pallet_evm_migration::pallet::Error<T>2646 * Lookup408: pallet_evm_migration::pallet::Error<T>2671 **/2647 **/2672 PalletEvmMigrationError: {2648 PalletEvmMigrationError: {2673 _enum: ['AccountNotEmpty', 'AccountIsNotMigrating']2649 _enum: ['AccountNotEmpty', 'AccountIsNotMigrating']2674 },2650 },2675 /**2651 /**2676 * Lookup412: sp_runtime::MultiSignature2652 * Lookup410: sp_runtime::MultiSignature2677 **/2653 **/2678 SpRuntimeMultiSignature: {2654 SpRuntimeMultiSignature: {2679 _enum: {2655 _enum: {2680 Ed25519: 'SpCoreEd25519Signature',2656 Ed25519: 'SpCoreEd25519Signature',2681 Sr25519: 'SpCoreSr25519Signature',2657 Sr25519: 'SpCoreSr25519Signature',2682 Ecdsa: 'SpCoreEcdsaSignature'2658 Ecdsa: 'SpCoreEcdsaSignature'2683 }2659 }2684 },2660 },2685 /**2661 /**2686 * Lookup413: sp_core::ed25519::Signature2662 * Lookup411: sp_core::ed25519::Signature2687 **/2663 **/2688 SpCoreEd25519Signature: '[u8;64]',2664 SpCoreEd25519Signature: '[u8;64]',2689 /**2665 /**2690 * Lookup415: sp_core::sr25519::Signature2666 * Lookup413: sp_core::sr25519::Signature2691 **/2667 **/2692 SpCoreSr25519Signature: '[u8;64]',2668 SpCoreSr25519Signature: '[u8;64]',2693 /**2669 /**2694 * Lookup416: sp_core::ecdsa::Signature2670 * Lookup414: sp_core::ecdsa::Signature2695 **/2671 **/2696 SpCoreEcdsaSignature: '[u8;65]',2672 SpCoreEcdsaSignature: '[u8;65]',2697 /**2673 /**2698 * Lookup419: frame_system::extensions::check_spec_version::CheckSpecVersion<T>2674 * Lookup417: frame_system::extensions::check_spec_version::CheckSpecVersion<T>2699 **/2675 **/2700 FrameSystemExtensionsCheckSpecVersion: 'Null',2676 FrameSystemExtensionsCheckSpecVersion: 'Null',2701 /**2677 /**2702 * Lookup420: frame_system::extensions::check_genesis::CheckGenesis<T>2678 * Lookup418: frame_system::extensions::check_genesis::CheckGenesis<T>2703 **/2679 **/2704 FrameSystemExtensionsCheckGenesis: 'Null',2680 FrameSystemExtensionsCheckGenesis: 'Null',2705 /**2681 /**2706 * Lookup423: frame_system::extensions::check_nonce::CheckNonce<T>2682 * Lookup421: frame_system::extensions::check_nonce::CheckNonce<T>2707 **/2683 **/2708 FrameSystemExtensionsCheckNonce: 'Compact<u32>',2684 FrameSystemExtensionsCheckNonce: 'Compact<u32>',2709 /**2685 /**2710 * Lookup424: frame_system::extensions::check_weight::CheckWeight<T>2686 * Lookup422: frame_system::extensions::check_weight::CheckWeight<T>2711 **/2687 **/2712 FrameSystemExtensionsCheckWeight: 'Null',2688 FrameSystemExtensionsCheckWeight: 'Null',2713 /**2689 /**2714 * Lookup425: pallet_template_transaction_payment::ChargeTransactionPayment<opal_runtime::Runtime>2690 * Lookup423: pallet_template_transaction_payment::ChargeTransactionPayment<opal_runtime::Runtime>2715 **/2691 **/2716 PalletTemplateTransactionPaymentChargeTransactionPayment: 'Compact<u128>',2692 PalletTemplateTransactionPaymentChargeTransactionPayment: 'Compact<u128>',2717 /**2693 /**2718 * Lookup426: opal_runtime::Runtime2694 * Lookup424: opal_runtime::Runtime2719 **/2695 **/2720 OpalRuntimeRuntime: 'Null',2696 OpalRuntimeRuntime: 'Null',2721 /**2697 /**2722 * Lookup427: pallet_ethereum::FakeTransactionFinalizer<opal_runtime::Runtime>2698 * Lookup425: pallet_ethereum::FakeTransactionFinalizer<opal_runtime::Runtime>2723 **/2699 **/2724 PalletEthereumFakeTransactionFinalizer: 'Null'2700 PalletEthereumFakeTransactionFinalizer: 'Null'2725};2701};27262702tests/src/interfaces/registry.tsdiffbeforeafterboth1// Auto-generated via `yarn polkadot-types-from-defs`, do not edit1// Auto-generated via `yarn polkadot-types-from-defs`, do not edit2/* eslint-disable */2/* eslint-disable */334import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportPalletId, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchClass, FrameSupportWeightsDispatchInfo, FrameSupportWeightsPays, FrameSupportWeightsPerDispatchClassU32, FrameSupportWeightsPerDispatchClassU64, FrameSupportWeightsPerDispatchClassWeightsPerClass, FrameSupportWeightsRuntimeDbWeight, FrameSupportWeightsWeightToFeeCoefficient, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeRuntime, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletFungibleError, PalletInflationCall, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTimestampCall, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletXcmCall, PalletXcmError, PalletXcmEvent, PhantomTypeUpDataStructsBaseInfo, PhantomTypeUpDataStructsCollectionInfo, PhantomTypeUpDataStructsNftChild, PhantomTypeUpDataStructsNftInfo, PhantomTypeUpDataStructsPartType, PhantomTypeUpDataStructsPropertyInfo, PhantomTypeUpDataStructsResourceInfo, PhantomTypeUpDataStructsRpcCollection, PhantomTypeUpDataStructsTheme, PhantomTypeUpDataStructsTokenData, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTypesAccountIdOrCollectionNftTuple, RmrkTypesBaseInfo, RmrkTypesCollectionInfo, RmrkTypesEquippableList, RmrkTypesFixedPart, RmrkTypesNftChild, RmrkTypesNftInfo, RmrkTypesPartType, RmrkTypesPropertyInfo, RmrkTypesResourceInfo, RmrkTypesRoyaltyInfo, RmrkTypesSlotPart, RmrkTypesTheme, RmrkTypesThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionField, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExData, UpDataStructsMetaUpdatePermission, UpDataStructsNestingRule, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsRpcCollection, UpDataStructsSchemaVersion, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipState, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';4import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportPalletId, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchClass, FrameSupportWeightsDispatchInfo, FrameSupportWeightsPays, FrameSupportWeightsPerDispatchClassU32, FrameSupportWeightsPerDispatchClassU64, FrameSupportWeightsPerDispatchClassWeightsPerClass, FrameSupportWeightsRuntimeDbWeight, FrameSupportWeightsWeightToFeeCoefficient, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeRuntime, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletFungibleError, PalletInflationCall, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTimestampCall, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletXcmCall, PalletXcmError, PalletXcmEvent, PhantomTypeUpDataStructsBaseInfo, PhantomTypeUpDataStructsCollectionInfo, PhantomTypeUpDataStructsNftChild, PhantomTypeUpDataStructsNftInfo, PhantomTypeUpDataStructsPartType, PhantomTypeUpDataStructsPropertyInfo, PhantomTypeUpDataStructsResourceInfo, PhantomTypeUpDataStructsRpcCollection, PhantomTypeUpDataStructsTheme, PhantomTypeUpDataStructsTokenData, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTypesAccountIdOrCollectionNftTuple, RmrkTypesBaseInfo, RmrkTypesCollectionInfo, RmrkTypesEquippableList, RmrkTypesFixedPart, RmrkTypesNftChild, RmrkTypesNftInfo, RmrkTypesPartType, RmrkTypesPropertyInfo, RmrkTypesResourceInfo, RmrkTypesRoyaltyInfo, RmrkTypesSlotPart, RmrkTypesTheme, RmrkTypesThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionField, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExData, UpDataStructsNestingRule, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsRpcCollection, UpDataStructsSchemaVersion, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipState, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';556declare module '@polkadot/types/types/registry' {6declare module '@polkadot/types/types/registry' {7 export interface InterfaceTypes {7 export interface InterfaceTypes {183 UpDataStructsCreateNftExData: UpDataStructsCreateNftExData;183 UpDataStructsCreateNftExData: UpDataStructsCreateNftExData;184 UpDataStructsCreateReFungibleData: UpDataStructsCreateReFungibleData;184 UpDataStructsCreateReFungibleData: UpDataStructsCreateReFungibleData;185 UpDataStructsCreateRefungibleExData: UpDataStructsCreateRefungibleExData;185 UpDataStructsCreateRefungibleExData: UpDataStructsCreateRefungibleExData;186 UpDataStructsMetaUpdatePermission: UpDataStructsMetaUpdatePermission;187 UpDataStructsNestingRule: UpDataStructsNestingRule;186 UpDataStructsNestingRule: UpDataStructsNestingRule;188 UpDataStructsProperties: UpDataStructsProperties;187 UpDataStructsProperties: UpDataStructsProperties;189 UpDataStructsPropertiesMapBoundedVec: UpDataStructsPropertiesMapBoundedVec;188 UpDataStructsPropertiesMapBoundedVec: UpDataStructsPropertiesMapBoundedVec;tests/src/interfaces/rmrk/definitions.tsdiffbeforeafterboth33 types,33 types,34 rpc: {34 rpc: {35 lastCollectionIdx: fn('Get the latest created collection id', [], 'u32'),35 lastCollectionIdx: fn('Get the latest created collection id', [], 'u32'),36 collectionById: fn('Get collection by id', [{name: 'id', type: 'u32'}], 'Option<RmrkTraitsCollectionCollectionInfo>'),36 collectionById: fn('Get collection by id', [{name: 'id', type: 'u32'}], 'Option<RmrkTypesCollectionInfo>'),37 nftById: fn(37 nftById: fn(38 'Get NFT by collection id and NFT id',38 'Get NFT by collection id and NFT id',39 [39 [40 {name: 'collectionId', type: 'u32'},40 {name: 'collectionId', type: 'u32'},41 {name: 'nftId', type: 'u32'},41 {name: 'nftId', type: 'u32'},42 ],42 ],43 'Option<RmrkTraitsNftNftInfo>'43 'Option<RmrkTypesNftInfo>'44 ),44 ),45 accountTokens: fn(45 accountTokens: fn(46 'Get tokens owned by an account in a collection',46 'Get tokens owned by an account in a collection',56 {name: 'collectionId', type: 'u32'},56 {name: 'collectionId', type: 'u32'},57 {name: 'nftId', type: 'u32'},57 {name: 'nftId', type: 'u32'},58 ],58 ],59 'Vec<RmrkTraitsNftNftChild>'59 'Vec<RmrkTypesNftChild>'60 ),60 ),61 collectionProperties: fn(61 collectionProperties: fn(62 'Get collection properties',62 'Get collection properties',63 [{name: 'collectionId', type: 'u32'}],63 [{name: 'collectionId', type: 'u32'}],64 'Vec<RmrkTraitsPropertyPropertyInfo>'64 'Vec<RmrkTypesPropertyInfo>'65 ),65 ),66 nftProperties: fn(66 nftProperties: fn(67 'Get NFT properties',67 'Get NFT properties',68 [68 [69 {name: 'collectionId', type: 'u32'},69 {name: 'collectionId', type: 'u32'},70 {name: 'nftId', type: 'u32'}70 {name: 'nftId', type: 'u32'}71 ],71 ],72 'Vec<RmrkTraitsPropertyPropertyInfo>'72 'Vec<RmrkTypesPropertyInfo>'73 ),73 ),74 nftResources: fn(74 nftResources: fn(75 'Get NFT resources',75 'Get NFT resources',76 [76 [77 {name: 'collectionId', type: 'u32'},77 {name: 'collectionId', type: 'u32'},78 {name: 'nftId', type: 'u32'}78 {name: 'nftId', type: 'u32'}79 ],79 ],80 'Vec<RmrkTraitsResourceResourceInfo>'80 'Vec<RmrkTypesResourceInfo>'81 ),81 ),82 nftResourcePriorities: fn(82 nftResourcePriorities: fn(83 'Get NFT resource priorities',83 'Get NFT resource priorities',90 base: fn(90 base: fn(91 'Get base info',91 'Get base info',92 [{name: 'baseId', type: 'u32'}],92 [{name: 'baseId', type: 'u32'}],93 'Option<RmrkTraitsBaseBaseInfo>'93 'Option<RmrkTypesBaseInfo>'94 ),94 ),95 baseParts: fn(95 baseParts: fn(96 'Get all Base\'s parts',96 'Get all Base\'s parts',97 [{name: 'baseId', type: 'u32'}],97 [{name: 'baseId', type: 'u32'}],98 'Vec<RmrkTraitsPartPartType>'98 'Vec<RmrkTypesPartType>'99 ),99 ),100 themeNames: fn(100 themeNames: fn(101 'Get Base\'s theme names',101 'Get Base\'s theme names',109 {name: 'themeName', type: 'String'},109 {name: 'themeName', type: 'String'},110 {name: 'keys', type: 'Option<Vec<String>>'}110 {name: 'keys', type: 'Option<Vec<String>>'}111 ],111 ],112 'Option<RmrkTraitsTheme>'112 'Option<RmrkTypesTheme>'113 )113 )114 }114 }115};115};tests/src/interfaces/rmrk/types.tsdiffbeforeafterboth446/** @name FrameSupportPalletId */446/** @name FrameSupportPalletId */447export interface FrameSupportPalletId extends U8aFixed {}447export interface FrameSupportPalletId extends U8aFixed {}448449/** @name FrameSupportStorageBoundedBTreeSet */450export interface FrameSupportStorageBoundedBTreeSet extends BTreeSet<u32> {}451448452/** @name FrameSupportTokensMiscBalanceStatus */449/** @name FrameSupportTokensMiscBalanceStatus */453export interface FrameSupportTokensMiscBalanceStatus extends Enum {450export interface FrameSupportTokensMiscBalanceStatus extends Enum {875 readonly isCollectionDescriptionLimitExceeded: boolean;872 readonly isCollectionDescriptionLimitExceeded: boolean;876 readonly isCollectionTokenPrefixLimitExceeded: boolean;873 readonly isCollectionTokenPrefixLimitExceeded: boolean;877 readonly isTotalCollectionsLimitExceeded: boolean;874 readonly isTotalCollectionsLimitExceeded: boolean;878 readonly isTokenVariableDataLimitExceeded: boolean;879 readonly isCollectionAdminCountExceeded: boolean;875 readonly isCollectionAdminCountExceeded: boolean;880 readonly isCollectionLimitBoundsExceeded: boolean;876 readonly isCollectionLimitBoundsExceeded: boolean;881 readonly isOwnerPermissionsCantBeReverted: boolean;877 readonly isOwnerPermissionsCantBeReverted: boolean;896 readonly isCollectionFieldSizeExceeded: boolean;892 readonly isCollectionFieldSizeExceeded: boolean;897 readonly isNoSpaceForProperty: boolean;893 readonly isNoSpaceForProperty: boolean;898 readonly isPropertyLimitReached: boolean;894 readonly isPropertyLimitReached: boolean;899 readonly isUnableToReadUnboundedKeys: boolean;895 readonly isPropertyKeyIsTooLong: boolean;900 readonly isInvalidCharacterInPropertyKey: boolean;896 readonly isInvalidCharacterInPropertyKey: boolean;901 readonly isEmptyPropertyKey: boolean;897 readonly isEmptyPropertyKey: boolean;902 readonly type: 'CollectionNotFound' | 'MustBeTokenOwner' | 'NoPermission' | 'PublicMintingNotAllowed' | 'AddressNotInAllowlist' | 'CollectionNameLimitExceeded' | 'CollectionDescriptionLimitExceeded' | 'CollectionTokenPrefixLimitExceeded' | 'TotalCollectionsLimitExceeded' | 'TokenVariableDataLimitExceeded' | 'CollectionAdminCountExceeded' | 'CollectionLimitBoundsExceeded' | 'OwnerPermissionsCantBeReverted' | 'TransferNotAllowed' | 'AccountTokenLimitExceeded' | 'CollectionTokenLimitExceeded' | 'MetadataFlagFrozen' | 'TokenNotFound' | 'TokenValueTooLow' | 'ApprovedValueTooLow' | 'CantApproveMoreThanOwned' | 'AddressIsZero' | 'UnsupportedOperation' | 'NotSufficientFounds' | 'NestingIsDisabled' | 'OnlyOwnerAllowedToNest' | 'SourceCollectionIsNotAllowedToNest' | 'CollectionFieldSizeExceeded' | 'NoSpaceForProperty' | 'PropertyLimitReached' | 'UnableToReadUnboundedKeys' | 'InvalidCharacterInPropertyKey' | 'EmptyPropertyKey';898 readonly type: 'CollectionNotFound' | 'MustBeTokenOwner' | 'NoPermission' | 'PublicMintingNotAllowed' | 'AddressNotInAllowlist' | 'CollectionNameLimitExceeded' | 'CollectionDescriptionLimitExceeded' | 'CollectionTokenPrefixLimitExceeded' | 'TotalCollectionsLimitExceeded' | 'CollectionAdminCountExceeded' | 'CollectionLimitBoundsExceeded' | 'OwnerPermissionsCantBeReverted' | 'TransferNotAllowed' | 'AccountTokenLimitExceeded' | 'CollectionTokenLimitExceeded' | 'MetadataFlagFrozen' | 'TokenNotFound' | 'TokenValueTooLow' | 'ApprovedValueTooLow' | 'CantApproveMoreThanOwned' | 'AddressIsZero' | 'UnsupportedOperation' | 'NotSufficientFounds' | 'NestingIsDisabled' | 'OnlyOwnerAllowedToNest' | 'SourceCollectionIsNotAllowedToNest' | 'CollectionFieldSizeExceeded' | 'NoSpaceForProperty' | 'PropertyLimitReached' | 'PropertyKeyIsTooLong' | 'InvalidCharacterInPropertyKey' | 'EmptyPropertyKey';903}899}904900905/** @name PalletCommonEvent */901/** @name PalletCommonEvent */1115/** @name PalletNonfungibleItemData */1111/** @name PalletNonfungibleItemData */1116export interface PalletNonfungibleItemData extends Struct {1112export interface PalletNonfungibleItemData extends Struct {1117 readonly constData: Bytes;1113 readonly constData: Bytes;1118 readonly variableData: Bytes;1119 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;1114 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;1120}1115}112111161131/** @name PalletRefungibleItemData */1126/** @name PalletRefungibleItemData */1132export interface PalletRefungibleItemData extends Struct {1127export interface PalletRefungibleItemData extends Struct {1133 readonly constData: Bytes;1128 readonly constData: Bytes;1134 readonly variableData: Bytes;1135}1129}113611301137/** @name PalletStructureCall */1131/** @name PalletStructureCall */1439 readonly itemId: u32;1433 readonly itemId: u32;1440 readonly value: u128;1434 readonly value: u128;1441 } & Struct;1435 } & Struct;1442 readonly isSetVariableMetaData: boolean;1443 readonly asSetVariableMetaData: {1444 readonly collectionId: u32;1445 readonly itemId: u32;1446 readonly data: Bytes;1447 } & Struct;1448 readonly isSetMetaUpdatePermissionFlag: boolean;1449 readonly asSetMetaUpdatePermissionFlag: {1450 readonly collectionId: u32;1451 readonly value: UpDataStructsMetaUpdatePermission;1452 } & Struct;1453 readonly isSetSchemaVersion: boolean;1436 readonly isSetSchemaVersion: boolean;1454 readonly asSetSchemaVersion: {1437 readonly asSetSchemaVersion: {1455 readonly collectionId: u32;1438 readonly collectionId: u32;1470 readonly collectionId: u32;1453 readonly collectionId: u32;1471 readonly newLimit: UpDataStructsCollectionLimits;1454 readonly newLimit: UpDataStructsCollectionLimits;1472 } & Struct;1455 } & Struct;1473 readonly type: 'CreateCollection' | 'CreateCollectionEx' | 'DestroyCollection' | 'AddToAllowList' | 'RemoveFromAllowList' | 'SetPublicAccessMode' | 'SetMintPermission' | 'ChangeCollectionOwner' | 'AddCollectionAdmin' | 'RemoveCollectionAdmin' | 'SetCollectionSponsor' | 'ConfirmSponsorship' | 'RemoveCollectionSponsor' | 'CreateItem' | 'CreateMultipleItems' | 'SetCollectionProperties' | 'DeleteCollectionProperties' | 'SetTokenProperties' | 'DeleteTokenProperties' | 'SetPropertyPermissions' | 'CreateMultipleItemsEx' | 'SetTransfersEnabledFlag' | 'BurnItem' | 'BurnFrom' | 'Transfer' | 'Approve' | 'TransferFrom' | 'SetVariableMetaData' | 'SetMetaUpdatePermissionFlag' | 'SetSchemaVersion' | 'SetOffchainSchema' | 'SetConstOnChainSchema' | 'SetCollectionLimits';1456 readonly type: 'CreateCollection' | 'CreateCollectionEx' | 'DestroyCollection' | 'AddToAllowList' | 'RemoveFromAllowList' | 'SetPublicAccessMode' | 'SetMintPermission' | 'ChangeCollectionOwner' | 'AddCollectionAdmin' | 'RemoveCollectionAdmin' | 'SetCollectionSponsor' | 'ConfirmSponsorship' | 'RemoveCollectionSponsor' | 'CreateItem' | 'CreateMultipleItems' | 'SetCollectionProperties' | 'DeleteCollectionProperties' | 'SetTokenProperties' | 'DeleteTokenProperties' | 'SetPropertyPermissions' | 'CreateMultipleItemsEx' | 'SetTransfersEnabledFlag' | 'BurnItem' | 'BurnFrom' | 'Transfer' | 'Approve' | 'TransferFrom' | 'SetSchemaVersion' | 'SetOffchainSchema' | 'SetConstOnChainSchema' | 'SetCollectionLimits';1474}1457}147514581476/** @name PalletUniqueError */1459/** @name PalletUniqueError */1632}1615}163316161634/** @name PhantomTypeUpDataStructsBaseInfo */1617/** @name PhantomTypeUpDataStructsBaseInfo */1635export interface PhantomTypeUpDataStructsBaseInfo extends Vec<Lookup359> {}1618export interface PhantomTypeUpDataStructsBaseInfo extends Vec<Lookup357> {}163616191637/** @name PhantomTypeUpDataStructsCollectionInfo */1620/** @name PhantomTypeUpDataStructsCollectionInfo */1638export interface PhantomTypeUpDataStructsCollectionInfo extends Vec<Lookup336> {}1621export interface PhantomTypeUpDataStructsCollectionInfo extends Vec<Lookup334> {}163916221640/** @name PhantomTypeUpDataStructsNftChild */1623/** @name PhantomTypeUpDataStructsNftChild */1641export interface PhantomTypeUpDataStructsNftChild extends Vec<Lookup374> {}1624export interface PhantomTypeUpDataStructsNftChild extends Vec<Lookup372> {}164216251643/** @name PhantomTypeUpDataStructsNftInfo */1626/** @name PhantomTypeUpDataStructsNftInfo */1644export interface PhantomTypeUpDataStructsNftInfo extends Vec<Lookup341> {}1627export interface PhantomTypeUpDataStructsNftInfo extends Vec<Lookup339> {}164516281646/** @name PhantomTypeUpDataStructsPartType */1629/** @name PhantomTypeUpDataStructsPartType */1647export interface PhantomTypeUpDataStructsPartType extends Vec<Lookup362> {}1630export interface PhantomTypeUpDataStructsPartType extends Vec<Lookup360> {}164816311649/** @name PhantomTypeUpDataStructsPropertyInfo */1632/** @name PhantomTypeUpDataStructsPropertyInfo */1650export interface PhantomTypeUpDataStructsPropertyInfo extends Vec<Lookup354> {}1633export interface PhantomTypeUpDataStructsPropertyInfo extends Vec<Lookup352> {}165116341652/** @name PhantomTypeUpDataStructsResourceInfo */1635/** @name PhantomTypeUpDataStructsResourceInfo */1653export interface PhantomTypeUpDataStructsResourceInfo extends Vec<Lookup347> {}1636export interface PhantomTypeUpDataStructsResourceInfo extends Vec<Lookup345> {}165416371655/** @name PhantomTypeUpDataStructsRpcCollection */1638/** @name PhantomTypeUpDataStructsRpcCollection */1656export interface PhantomTypeUpDataStructsRpcCollection extends Vec<Lookup333> {}1639export interface PhantomTypeUpDataStructsRpcCollection extends Vec<Lookup331> {}165716401658/** @name PhantomTypeUpDataStructsTheme */1641/** @name PhantomTypeUpDataStructsTheme */1659export interface PhantomTypeUpDataStructsTheme extends Vec<Lookup369> {}1642export interface PhantomTypeUpDataStructsTheme extends Vec<Lookup367> {}166016431661/** @name PhantomTypeUpDataStructsTokenData */1644/** @name PhantomTypeUpDataStructsTokenData */1662export interface PhantomTypeUpDataStructsTokenData extends Vec<Lookup329> {}1645export interface PhantomTypeUpDataStructsTokenData extends Vec<Lookup327> {}166316461664/** @name PolkadotCorePrimitivesInboundDownwardMessage */1647/** @name PolkadotCorePrimitivesInboundDownwardMessage */1665export interface PolkadotCorePrimitivesInboundDownwardMessage extends Struct {1648export interface PolkadotCorePrimitivesInboundDownwardMessage extends Struct {1963 readonly schemaVersion: UpDataStructsSchemaVersion;1946 readonly schemaVersion: UpDataStructsSchemaVersion;1964 readonly sponsorship: UpDataStructsSponsorshipState;1947 readonly sponsorship: UpDataStructsSponsorshipState;1965 readonly limits: UpDataStructsCollectionLimits;1948 readonly limits: UpDataStructsCollectionLimits;1966 readonly metaUpdatePermission: UpDataStructsMetaUpdatePermission;1967}1949}196819501969/** @name UpDataStructsCollectionField */1951/** @name UpDataStructsCollectionField */2015 readonly pendingSponsor: Option<AccountId32>;1997 readonly pendingSponsor: Option<AccountId32>;2016 readonly limits: Option<UpDataStructsCollectionLimits>;1998 readonly limits: Option<UpDataStructsCollectionLimits>;2017 readonly constOnChainSchema: Bytes;1999 readonly constOnChainSchema: Bytes;2018 readonly metaUpdatePermission: Option<UpDataStructsMetaUpdatePermission>;2019 readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;2000 readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;2020 readonly properties: Vec<UpDataStructsProperty>;2001 readonly properties: Vec<UpDataStructsProperty>;2021}2002}2052/** @name UpDataStructsCreateNftData */2033/** @name UpDataStructsCreateNftData */2053export interface UpDataStructsCreateNftData extends Struct {2034export interface UpDataStructsCreateNftData extends Struct {2054 readonly constData: Bytes;2035 readonly constData: Bytes;2055 readonly variableData: Bytes;2056 readonly properties: Vec<UpDataStructsProperty>;2036 readonly properties: Vec<UpDataStructsProperty>;2057}2037}205820382059/** @name UpDataStructsCreateNftExData */2039/** @name UpDataStructsCreateNftExData */2060export interface UpDataStructsCreateNftExData extends Struct {2040export interface UpDataStructsCreateNftExData extends Struct {2061 readonly constData: Bytes;2041 readonly constData: Bytes;2062 readonly variableData: Bytes;2063 readonly properties: Vec<UpDataStructsProperty>;2042 readonly properties: Vec<UpDataStructsProperty>;2064 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;2043 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;2065}2044}206620452067/** @name UpDataStructsCreateReFungibleData */2046/** @name UpDataStructsCreateReFungibleData */2068export interface UpDataStructsCreateReFungibleData extends Struct {2047export interface UpDataStructsCreateReFungibleData extends Struct {2069 readonly constData: Bytes;2048 readonly constData: Bytes;2070 readonly variableData: Bytes;2071 readonly pieces: u128;2049 readonly pieces: u128;2072}2050}207320512074/** @name UpDataStructsCreateRefungibleExData */2052/** @name UpDataStructsCreateRefungibleExData */2075export interface UpDataStructsCreateRefungibleExData extends Struct {2053export interface UpDataStructsCreateRefungibleExData extends Struct {2076 readonly constData: Bytes;2054 readonly constData: Bytes;2077 readonly variableData: Bytes;2078 readonly users: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>;2055 readonly users: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>;2079}2056}20802081/** @name UpDataStructsMetaUpdatePermission */2082export interface UpDataStructsMetaUpdatePermission extends Enum {2083 readonly isItemOwner: boolean;2084 readonly isAdmin: boolean;2085 readonly isNone: boolean;2086 readonly type: 'ItemOwner' | 'Admin' | 'None';2087}208820572089/** @name UpDataStructsNestingRule */2058/** @name UpDataStructsNestingRule */2090export interface UpDataStructsNestingRule extends Enum {2059export interface UpDataStructsNestingRule extends Enum {2091 readonly isDisabled: boolean;2060 readonly isDisabled: boolean;2092 readonly isOwner: boolean;2061 readonly isOwner: boolean;2093 readonly isOwnerRestricted: boolean;2062 readonly isOwnerRestricted: boolean;2094 readonly asOwnerRestricted: FrameSupportStorageBoundedBTreeSet;2063 readonly asOwnerRestricted: BTreeSet<u32>;2095 readonly type: 'Disabled' | 'Owner' | 'OwnerRestricted';2064 readonly type: 'Disabled' | 'Owner' | 'OwnerRestricted';2096}2065}209720662141 readonly sponsorship: UpDataStructsSponsorshipState;2110 readonly sponsorship: UpDataStructsSponsorshipState;2142 readonly limits: UpDataStructsCollectionLimits;2111 readonly limits: UpDataStructsCollectionLimits;2143 readonly constOnChainSchema: Bytes;2112 readonly constOnChainSchema: Bytes;2144 readonly metaUpdatePermission: UpDataStructsMetaUpdatePermission;2145 readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;2113 readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;2146 readonly properties: Vec<UpDataStructsProperty>;2114 readonly properties: Vec<UpDataStructsProperty>;2147}2115}tests/src/interfaces/types-lookup.tsdiffbeforeafterboth1493 readonly itemId: u32;1493 readonly itemId: u32;1494 readonly value: u128;1494 readonly value: u128;1495 } & Struct;1495 } & Struct;1496 readonly isSetVariableMetaData: boolean;1497 readonly asSetVariableMetaData: {1498 readonly collectionId: u32;1499 readonly itemId: u32;1500 readonly data: Bytes;1501 } & Struct;1502 readonly isSetMetaUpdatePermissionFlag: boolean;1503 readonly asSetMetaUpdatePermissionFlag: {1504 readonly collectionId: u32;1505 readonly value: UpDataStructsMetaUpdatePermission;1506 } & Struct;1507 readonly isSetSchemaVersion: boolean;1496 readonly isSetSchemaVersion: boolean;1508 readonly asSetSchemaVersion: {1497 readonly asSetSchemaVersion: {1509 readonly collectionId: u32;1498 readonly collectionId: u32;1524 readonly collectionId: u32;1513 readonly collectionId: u32;1525 readonly newLimit: UpDataStructsCollectionLimits;1514 readonly newLimit: UpDataStructsCollectionLimits;1526 } & Struct;1515 } & Struct;1527 readonly type: 'CreateCollection' | 'CreateCollectionEx' | 'DestroyCollection' | 'AddToAllowList' | 'RemoveFromAllowList' | 'SetPublicAccessMode' | 'SetMintPermission' | 'ChangeCollectionOwner' | 'AddCollectionAdmin' | 'RemoveCollectionAdmin' | 'SetCollectionSponsor' | 'ConfirmSponsorship' | 'RemoveCollectionSponsor' | 'CreateItem' | 'CreateMultipleItems' | 'SetCollectionProperties' | 'DeleteCollectionProperties' | 'SetTokenProperties' | 'DeleteTokenProperties' | 'SetPropertyPermissions' | 'CreateMultipleItemsEx' | 'SetTransfersEnabledFlag' | 'BurnItem' | 'BurnFrom' | 'Transfer' | 'Approve' | 'TransferFrom' | 'SetVariableMetaData' | 'SetMetaUpdatePermissionFlag' | 'SetSchemaVersion' | 'SetOffchainSchema' | 'SetConstOnChainSchema' | 'SetCollectionLimits';1516 readonly type: 'CreateCollection' | 'CreateCollectionEx' | 'DestroyCollection' | 'AddToAllowList' | 'RemoveFromAllowList' | 'SetPublicAccessMode' | 'SetMintPermission' | 'ChangeCollectionOwner' | 'AddCollectionAdmin' | 'RemoveCollectionAdmin' | 'SetCollectionSponsor' | 'ConfirmSponsorship' | 'RemoveCollectionSponsor' | 'CreateItem' | 'CreateMultipleItems' | 'SetCollectionProperties' | 'DeleteCollectionProperties' | 'SetTokenProperties' | 'DeleteTokenProperties' | 'SetPropertyPermissions' | 'CreateMultipleItemsEx' | 'SetTransfersEnabledFlag' | 'BurnItem' | 'BurnFrom' | 'Transfer' | 'Approve' | 'TransferFrom' | 'SetSchemaVersion' | 'SetOffchainSchema' | 'SetConstOnChainSchema' | 'SetCollectionLimits';1528 }1517 }152915181530 /** @name UpDataStructsCollectionMode (156) */1519 /** @name UpDataStructsCollectionMode (156) */1548 readonly pendingSponsor: Option<AccountId32>;1537 readonly pendingSponsor: Option<AccountId32>;1549 readonly limits: Option<UpDataStructsCollectionLimits>;1538 readonly limits: Option<UpDataStructsCollectionLimits>;1550 readonly constOnChainSchema: Bytes;1539 readonly constOnChainSchema: Bytes;1551 readonly metaUpdatePermission: Option<UpDataStructsMetaUpdatePermission>;1552 readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;1540 readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;1553 readonly properties: Vec<UpDataStructsProperty>;1541 readonly properties: Vec<UpDataStructsProperty>;1554 }1542 }1598 readonly type: 'Disabled' | 'Owner' | 'OwnerRestricted';1586 readonly type: 'Disabled' | 'Owner' | 'OwnerRestricted';1599 }1587 }16001601 /** @name UpDataStructsMetaUpdatePermission (177) */1602 export interface UpDataStructsMetaUpdatePermission extends Enum {1603 readonly isItemOwner: boolean;1604 readonly isAdmin: boolean;1605 readonly isNone: boolean;1606 readonly type: 'ItemOwner' | 'Admin' | 'None';1607 }160815881609 /** @name UpDataStructsPropertyKeyPermission (179) */1589 /** @name UpDataStructsPropertyKeyPermission (177) */1610 export interface UpDataStructsPropertyKeyPermission extends Struct {1590 export interface UpDataStructsPropertyKeyPermission extends Struct {1611 readonly key: Bytes;1591 readonly key: Bytes;1612 readonly permission: UpDataStructsPropertyPermission;1592 readonly permission: UpDataStructsPropertyPermission;1613 }1593 }161415941615 /** @name UpDataStructsPropertyPermission (181) */1595 /** @name UpDataStructsPropertyPermission (179) */1616 export interface UpDataStructsPropertyPermission extends Struct {1596 export interface UpDataStructsPropertyPermission extends Struct {1617 readonly mutable: bool;1597 readonly mutable: bool;1618 readonly collectionAdmin: bool;1598 readonly collectionAdmin: bool;1619 readonly tokenOwner: bool;1599 readonly tokenOwner: bool;1620 }1600 }162116011622 /** @name UpDataStructsProperty (184) */1602 /** @name UpDataStructsProperty (182) */1623 export interface UpDataStructsProperty extends Struct {1603 export interface UpDataStructsProperty extends Struct {1624 readonly key: Bytes;1604 readonly key: Bytes;1625 readonly value: Bytes;1605 readonly value: Bytes;1626 }1606 }162716071628 /** @name PalletEvmAccountBasicCrossAccountIdRepr (186) */1608 /** @name PalletEvmAccountBasicCrossAccountIdRepr (184) */1629 export interface PalletEvmAccountBasicCrossAccountIdRepr extends Enum {1609 export interface PalletEvmAccountBasicCrossAccountIdRepr extends Enum {1630 readonly isSubstrate: boolean;1610 readonly isSubstrate: boolean;1631 readonly asSubstrate: AccountId32;1611 readonly asSubstrate: AccountId32;1634 readonly type: 'Substrate' | 'Ethereum';1614 readonly type: 'Substrate' | 'Ethereum';1635 }1615 }163616161637 /** @name UpDataStructsCreateItemData (188) */1617 /** @name UpDataStructsCreateItemData (186) */1638 export interface UpDataStructsCreateItemData extends Enum {1618 export interface UpDataStructsCreateItemData extends Enum {1639 readonly isNft: boolean;1619 readonly isNft: boolean;1640 readonly asNft: UpDataStructsCreateNftData;1620 readonly asNft: UpDataStructsCreateNftData;1645 readonly type: 'Nft' | 'Fungible' | 'ReFungible';1625 readonly type: 'Nft' | 'Fungible' | 'ReFungible';1646 }1626 }164716271648 /** @name UpDataStructsCreateNftData (189) */1628 /** @name UpDataStructsCreateNftData (187) */1649 export interface UpDataStructsCreateNftData extends Struct {1629 export interface UpDataStructsCreateNftData extends Struct {1650 readonly constData: Bytes;1630 readonly constData: Bytes;1651 readonly variableData: Bytes;1652 readonly properties: Vec<UpDataStructsProperty>;1631 readonly properties: Vec<UpDataStructsProperty>;1653 }1632 }165416331655 /** @name UpDataStructsCreateFungibleData (191) */1634 /** @name UpDataStructsCreateFungibleData (189) */1656 export interface UpDataStructsCreateFungibleData extends Struct {1635 export interface UpDataStructsCreateFungibleData extends Struct {1657 readonly value: u128;1636 readonly value: u128;1658 }1637 }165916381660 /** @name UpDataStructsCreateReFungibleData (192) */1639 /** @name UpDataStructsCreateReFungibleData (190) */1661 export interface UpDataStructsCreateReFungibleData extends Struct {1640 export interface UpDataStructsCreateReFungibleData extends Struct {1662 readonly constData: Bytes;1641 readonly constData: Bytes;1663 readonly variableData: Bytes;1664 readonly pieces: u128;1642 readonly pieces: u128;1665 }1643 }166616441667 /** @name UpDataStructsCreateItemExData (196) */1645 /** @name UpDataStructsCreateItemExData (194) */1668 export interface UpDataStructsCreateItemExData extends Enum {1646 export interface UpDataStructsCreateItemExData extends Enum {1669 readonly isNft: boolean;1647 readonly isNft: boolean;1670 readonly asNft: Vec<UpDataStructsCreateNftExData>;1648 readonly asNft: Vec<UpDataStructsCreateNftExData>;1677 readonly type: 'Nft' | 'Fungible' | 'RefungibleMultipleItems' | 'RefungibleMultipleOwners';1655 readonly type: 'Nft' | 'Fungible' | 'RefungibleMultipleItems' | 'RefungibleMultipleOwners';1678 }1656 }167916571680 /** @name UpDataStructsCreateNftExData (198) */1658 /** @name UpDataStructsCreateNftExData (196) */1681 export interface UpDataStructsCreateNftExData extends Struct {1659 export interface UpDataStructsCreateNftExData extends Struct {1682 readonly constData: Bytes;1660 readonly constData: Bytes;1683 readonly variableData: Bytes;1684 readonly properties: Vec<UpDataStructsProperty>;1661 readonly properties: Vec<UpDataStructsProperty>;1685 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;1662 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;1686 }1663 }168716641688 /** @name UpDataStructsCreateRefungibleExData (205) */1665 /** @name UpDataStructsCreateRefungibleExData (203) */1689 export interface UpDataStructsCreateRefungibleExData extends Struct {1666 export interface UpDataStructsCreateRefungibleExData extends Struct {1690 readonly constData: Bytes;1667 readonly constData: Bytes;1691 readonly variableData: Bytes;1692 readonly users: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>;1668 readonly users: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>;1693 }1669 }169416701695 /** @name PalletTemplateTransactionPaymentCall (207) */1671 /** @name PalletTemplateTransactionPaymentCall (205) */1696 export type PalletTemplateTransactionPaymentCall = Null;1672 export type PalletTemplateTransactionPaymentCall = Null;169716731698 /** @name PalletStructureCall (208) */1674 /** @name PalletStructureCall (206) */1699 export type PalletStructureCall = Null;1675 export type PalletStructureCall = Null;170016761701 /** @name PalletEvmCall (209) */1677 /** @name PalletEvmCall (207) */1702 export interface PalletEvmCall extends Enum {1678 export interface PalletEvmCall extends Enum {1703 readonly isWithdraw: boolean;1679 readonly isWithdraw: boolean;1704 readonly asWithdraw: {1680 readonly asWithdraw: {1743 readonly type: 'Withdraw' | 'Call' | 'Create' | 'Create2';1719 readonly type: 'Withdraw' | 'Call' | 'Create' | 'Create2';1744 }1720 }174517211746 /** @name PalletEthereumCall (215) */1722 /** @name PalletEthereumCall (213) */1747 export interface PalletEthereumCall extends Enum {1723 export interface PalletEthereumCall extends Enum {1748 readonly isTransact: boolean;1724 readonly isTransact: boolean;1749 readonly asTransact: {1725 readonly asTransact: {1752 readonly type: 'Transact';1728 readonly type: 'Transact';1753 }1729 }175417301755 /** @name EthereumTransactionTransactionV2 (216) */1731 /** @name EthereumTransactionTransactionV2 (214) */1756 export interface EthereumTransactionTransactionV2 extends Enum {1732 export interface EthereumTransactionTransactionV2 extends Enum {1757 readonly isLegacy: boolean;1733 readonly isLegacy: boolean;1758 readonly asLegacy: EthereumTransactionLegacyTransaction;1734 readonly asLegacy: EthereumTransactionLegacyTransaction;1763 readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';1739 readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';1764 }1740 }176517411766 /** @name EthereumTransactionLegacyTransaction (217) */1742 /** @name EthereumTransactionLegacyTransaction (215) */1767 export interface EthereumTransactionLegacyTransaction extends Struct {1743 export interface EthereumTransactionLegacyTransaction extends Struct {1768 readonly nonce: U256;1744 readonly nonce: U256;1769 readonly gasPrice: U256;1745 readonly gasPrice: U256;1774 readonly signature: EthereumTransactionTransactionSignature;1750 readonly signature: EthereumTransactionTransactionSignature;1775 }1751 }177617521777 /** @name EthereumTransactionTransactionAction (218) */1753 /** @name EthereumTransactionTransactionAction (216) */1778 export interface EthereumTransactionTransactionAction extends Enum {1754 export interface EthereumTransactionTransactionAction extends Enum {1779 readonly isCall: boolean;1755 readonly isCall: boolean;1780 readonly asCall: H160;1756 readonly asCall: H160;1781 readonly isCreate: boolean;1757 readonly isCreate: boolean;1782 readonly type: 'Call' | 'Create';1758 readonly type: 'Call' | 'Create';1783 }1759 }178417601785 /** @name EthereumTransactionTransactionSignature (219) */1761 /** @name EthereumTransactionTransactionSignature (217) */1786 export interface EthereumTransactionTransactionSignature extends Struct {1762 export interface EthereumTransactionTransactionSignature extends Struct {1787 readonly v: u64;1763 readonly v: u64;1788 readonly r: H256;1764 readonly r: H256;1789 readonly s: H256;1765 readonly s: H256;1790 }1766 }179117671792 /** @name EthereumTransactionEip2930Transaction (221) */1768 /** @name EthereumTransactionEip2930Transaction (219) */1793 export interface EthereumTransactionEip2930Transaction extends Struct {1769 export interface EthereumTransactionEip2930Transaction extends Struct {1794 readonly chainId: u64;1770 readonly chainId: u64;1795 readonly nonce: U256;1771 readonly nonce: U256;1804 readonly s: H256;1780 readonly s: H256;1805 }1781 }180617821807 /** @name EthereumTransactionAccessListItem (223) */1783 /** @name EthereumTransactionAccessListItem (221) */1808 export interface EthereumTransactionAccessListItem extends Struct {1784 export interface EthereumTransactionAccessListItem extends Struct {1809 readonly address: H160;1785 readonly address: H160;1810 readonly storageKeys: Vec<H256>;1786 readonly storageKeys: Vec<H256>;1811 }1787 }181217881813 /** @name EthereumTransactionEip1559Transaction (224) */1789 /** @name EthereumTransactionEip1559Transaction (222) */1814 export interface EthereumTransactionEip1559Transaction extends Struct {1790 export interface EthereumTransactionEip1559Transaction extends Struct {1815 readonly chainId: u64;1791 readonly chainId: u64;1816 readonly nonce: U256;1792 readonly nonce: U256;1826 readonly s: H256;1802 readonly s: H256;1827 }1803 }182818041829 /** @name PalletEvmMigrationCall (225) */1805 /** @name PalletEvmMigrationCall (223) */1830 export interface PalletEvmMigrationCall extends Enum {1806 export interface PalletEvmMigrationCall extends Enum {1831 readonly isBegin: boolean;1807 readonly isBegin: boolean;1832 readonly asBegin: {1808 readonly asBegin: {1845 readonly type: 'Begin' | 'SetData' | 'Finish';1821 readonly type: 'Begin' | 'SetData' | 'Finish';1846 }1822 }184718231848 /** @name PalletSudoEvent (228) */1824 /** @name PalletSudoEvent (226) */1849 export interface PalletSudoEvent extends Enum {1825 export interface PalletSudoEvent extends Enum {1850 readonly isSudid: boolean;1826 readonly isSudid: boolean;1851 readonly asSudid: {1827 readonly asSudid: {1862 readonly type: 'Sudid' | 'KeyChanged' | 'SudoAsDone';1838 readonly type: 'Sudid' | 'KeyChanged' | 'SudoAsDone';1863 }1839 }186418401865 /** @name SpRuntimeDispatchError (230) */1841 /** @name SpRuntimeDispatchError (228) */1866 export interface SpRuntimeDispatchError extends Enum {1842 export interface SpRuntimeDispatchError extends Enum {1867 readonly isOther: boolean;1843 readonly isOther: boolean;1868 readonly isCannotLookup: boolean;1844 readonly isCannotLookup: boolean;1881 readonly type: 'Other' | 'CannotLookup' | 'BadOrigin' | 'Module' | 'ConsumerRemaining' | 'NoProviders' | 'TooManyConsumers' | 'Token' | 'Arithmetic' | 'Transactional';1857 readonly type: 'Other' | 'CannotLookup' | 'BadOrigin' | 'Module' | 'ConsumerRemaining' | 'NoProviders' | 'TooManyConsumers' | 'Token' | 'Arithmetic' | 'Transactional';1882 }1858 }188318591884 /** @name SpRuntimeModuleError (231) */1860 /** @name SpRuntimeModuleError (229) */1885 export interface SpRuntimeModuleError extends Struct {1861 export interface SpRuntimeModuleError extends Struct {1886 readonly index: u8;1862 readonly index: u8;1887 readonly error: U8aFixed;1863 readonly error: U8aFixed;1888 }1864 }188918651890 /** @name SpRuntimeTokenError (232) */1866 /** @name SpRuntimeTokenError (230) */1891 export interface SpRuntimeTokenError extends Enum {1867 export interface SpRuntimeTokenError extends Enum {1892 readonly isNoFunds: boolean;1868 readonly isNoFunds: boolean;1893 readonly isWouldDie: boolean;1869 readonly isWouldDie: boolean;1899 readonly type: 'NoFunds' | 'WouldDie' | 'BelowMinimum' | 'CannotCreate' | 'UnknownAsset' | 'Frozen' | 'Unsupported';1875 readonly type: 'NoFunds' | 'WouldDie' | 'BelowMinimum' | 'CannotCreate' | 'UnknownAsset' | 'Frozen' | 'Unsupported';1900 }1876 }190118771902 /** @name SpRuntimeArithmeticError (233) */1878 /** @name SpRuntimeArithmeticError (231) */1903 export interface SpRuntimeArithmeticError extends Enum {1879 export interface SpRuntimeArithmeticError extends Enum {1904 readonly isUnderflow: boolean;1880 readonly isUnderflow: boolean;1905 readonly isOverflow: boolean;1881 readonly isOverflow: boolean;1906 readonly isDivisionByZero: boolean;1882 readonly isDivisionByZero: boolean;1907 readonly type: 'Underflow' | 'Overflow' | 'DivisionByZero';1883 readonly type: 'Underflow' | 'Overflow' | 'DivisionByZero';1908 }1884 }190918851910 /** @name SpRuntimeTransactionalError (234) */1886 /** @name SpRuntimeTransactionalError (232) */1911 export interface SpRuntimeTransactionalError extends Enum {1887 export interface SpRuntimeTransactionalError extends Enum {1912 readonly isLimitReached: boolean;1888 readonly isLimitReached: boolean;1913 readonly isNoLayer: boolean;1889 readonly isNoLayer: boolean;1914 readonly type: 'LimitReached' | 'NoLayer';1890 readonly type: 'LimitReached' | 'NoLayer';1915 }1891 }191618921917 /** @name PalletSudoError (235) */1893 /** @name PalletSudoError (233) */1918 export interface PalletSudoError extends Enum {1894 export interface PalletSudoError extends Enum {1919 readonly isRequireSudo: boolean;1895 readonly isRequireSudo: boolean;1920 readonly type: 'RequireSudo';1896 readonly type: 'RequireSudo';1921 }1897 }192218981923 /** @name FrameSystemAccountInfo (236) */1899 /** @name FrameSystemAccountInfo (234) */1924 export interface FrameSystemAccountInfo extends Struct {1900 export interface FrameSystemAccountInfo extends Struct {1925 readonly nonce: u32;1901 readonly nonce: u32;1926 readonly consumers: u32;1902 readonly consumers: u32;1929 readonly data: PalletBalancesAccountData;1905 readonly data: PalletBalancesAccountData;1930 }1906 }193119071932 /** @name FrameSupportWeightsPerDispatchClassU64 (237) */1908 /** @name FrameSupportWeightsPerDispatchClassU64 (235) */1933 export interface FrameSupportWeightsPerDispatchClassU64 extends Struct {1909 export interface FrameSupportWeightsPerDispatchClassU64 extends Struct {1934 readonly normal: u64;1910 readonly normal: u64;1935 readonly operational: u64;1911 readonly operational: u64;1936 readonly mandatory: u64;1912 readonly mandatory: u64;1937 }1913 }193819141939 /** @name SpRuntimeDigest (238) */1915 /** @name SpRuntimeDigest (236) */1940 export interface SpRuntimeDigest extends Struct {1916 export interface SpRuntimeDigest extends Struct {1941 readonly logs: Vec<SpRuntimeDigestDigestItem>;1917 readonly logs: Vec<SpRuntimeDigestDigestItem>;1942 }1918 }194319191944 /** @name SpRuntimeDigestDigestItem (240) */1920 /** @name SpRuntimeDigestDigestItem (238) */1945 export interface SpRuntimeDigestDigestItem extends Enum {1921 export interface SpRuntimeDigestDigestItem extends Enum {1946 readonly isOther: boolean;1922 readonly isOther: boolean;1947 readonly asOther: Bytes;1923 readonly asOther: Bytes;1955 readonly type: 'Other' | 'Consensus' | 'Seal' | 'PreRuntime' | 'RuntimeEnvironmentUpdated';1931 readonly type: 'Other' | 'Consensus' | 'Seal' | 'PreRuntime' | 'RuntimeEnvironmentUpdated';1956 }1932 }195719331958 /** @name FrameSystemEventRecord (242) */1934 /** @name FrameSystemEventRecord (240) */1959 export interface FrameSystemEventRecord extends Struct {1935 export interface FrameSystemEventRecord extends Struct {1960 readonly phase: FrameSystemPhase;1936 readonly phase: FrameSystemPhase;1961 readonly event: Event;1937 readonly event: Event;1962 readonly topics: Vec<H256>;1938 readonly topics: Vec<H256>;1963 }1939 }196419401965 /** @name FrameSystemEvent (244) */1941 /** @name FrameSystemEvent (242) */1966 export interface FrameSystemEvent extends Enum {1942 export interface FrameSystemEvent extends Enum {1967 readonly isExtrinsicSuccess: boolean;1943 readonly isExtrinsicSuccess: boolean;1968 readonly asExtrinsicSuccess: {1944 readonly asExtrinsicSuccess: {1990 readonly type: 'ExtrinsicSuccess' | 'ExtrinsicFailed' | 'CodeUpdated' | 'NewAccount' | 'KilledAccount' | 'Remarked';1966 readonly type: 'ExtrinsicSuccess' | 'ExtrinsicFailed' | 'CodeUpdated' | 'NewAccount' | 'KilledAccount' | 'Remarked';1991 }1967 }199219681993 /** @name FrameSupportWeightsDispatchInfo (245) */1969 /** @name FrameSupportWeightsDispatchInfo (243) */1994 export interface FrameSupportWeightsDispatchInfo extends Struct {1970 export interface FrameSupportWeightsDispatchInfo extends Struct {1995 readonly weight: u64;1971 readonly weight: u64;1996 readonly class: FrameSupportWeightsDispatchClass;1972 readonly class: FrameSupportWeightsDispatchClass;1997 readonly paysFee: FrameSupportWeightsPays;1973 readonly paysFee: FrameSupportWeightsPays;1998 }1974 }199919752000 /** @name FrameSupportWeightsDispatchClass (246) */1976 /** @name FrameSupportWeightsDispatchClass (244) */2001 export interface FrameSupportWeightsDispatchClass extends Enum {1977 export interface FrameSupportWeightsDispatchClass extends Enum {2002 readonly isNormal: boolean;1978 readonly isNormal: boolean;2003 readonly isOperational: boolean;1979 readonly isOperational: boolean;2004 readonly isMandatory: boolean;1980 readonly isMandatory: boolean;2005 readonly type: 'Normal' | 'Operational' | 'Mandatory';1981 readonly type: 'Normal' | 'Operational' | 'Mandatory';2006 }1982 }200719832008 /** @name FrameSupportWeightsPays (247) */1984 /** @name FrameSupportWeightsPays (245) */2009 export interface FrameSupportWeightsPays extends Enum {1985 export interface FrameSupportWeightsPays extends Enum {2010 readonly isYes: boolean;1986 readonly isYes: boolean;2011 readonly isNo: boolean;1987 readonly isNo: boolean;2012 readonly type: 'Yes' | 'No';1988 readonly type: 'Yes' | 'No';2013 }1989 }201419902015 /** @name OrmlVestingModuleEvent (248) */1991 /** @name OrmlVestingModuleEvent (246) */2016 export interface OrmlVestingModuleEvent extends Enum {1992 export interface OrmlVestingModuleEvent extends Enum {2017 readonly isVestingScheduleAdded: boolean;1993 readonly isVestingScheduleAdded: boolean;2018 readonly asVestingScheduleAdded: {1994 readonly asVestingScheduleAdded: {2032 readonly type: 'VestingScheduleAdded' | 'Claimed' | 'VestingSchedulesUpdated';2008 readonly type: 'VestingScheduleAdded' | 'Claimed' | 'VestingSchedulesUpdated';2033 }2009 }203420102035 /** @name CumulusPalletXcmpQueueEvent (249) */2011 /** @name CumulusPalletXcmpQueueEvent (247) */2036 export interface CumulusPalletXcmpQueueEvent extends Enum {2012 export interface CumulusPalletXcmpQueueEvent extends Enum {2037 readonly isSuccess: boolean;2013 readonly isSuccess: boolean;2038 readonly asSuccess: Option<H256>;2014 readonly asSuccess: Option<H256>;2053 readonly type: 'Success' | 'Fail' | 'BadVersion' | 'BadFormat' | 'UpwardMessageSent' | 'XcmpMessageSent' | 'OverweightEnqueued' | 'OverweightServiced';2029 readonly type: 'Success' | 'Fail' | 'BadVersion' | 'BadFormat' | 'UpwardMessageSent' | 'XcmpMessageSent' | 'OverweightEnqueued' | 'OverweightServiced';2054 }2030 }205520312056 /** @name PalletXcmEvent (250) */2032 /** @name PalletXcmEvent (248) */2057 export interface PalletXcmEvent extends Enum {2033 export interface PalletXcmEvent extends Enum {2058 readonly isAttempted: boolean;2034 readonly isAttempted: boolean;2059 readonly asAttempted: XcmV2TraitsOutcome;2035 readonly asAttempted: XcmV2TraitsOutcome;2090 readonly type: 'Attempted' | 'Sent' | 'UnexpectedResponse' | 'ResponseReady' | 'Notified' | 'NotifyOverweight' | 'NotifyDispatchError' | 'NotifyDecodeFailed' | 'InvalidResponder' | 'InvalidResponderVersion' | 'ResponseTaken' | 'AssetsTrapped' | 'VersionChangeNotified' | 'SupportedVersionChanged' | 'NotifyTargetSendFail' | 'NotifyTargetMigrationFail';2066 readonly type: 'Attempted' | 'Sent' | 'UnexpectedResponse' | 'ResponseReady' | 'Notified' | 'NotifyOverweight' | 'NotifyDispatchError' | 'NotifyDecodeFailed' | 'InvalidResponder' | 'InvalidResponderVersion' | 'ResponseTaken' | 'AssetsTrapped' | 'VersionChangeNotified' | 'SupportedVersionChanged' | 'NotifyTargetSendFail' | 'NotifyTargetMigrationFail';2091 }2067 }209220682093 /** @name XcmV2TraitsOutcome (251) */2069 /** @name XcmV2TraitsOutcome (249) */2094 export interface XcmV2TraitsOutcome extends Enum {2070 export interface XcmV2TraitsOutcome extends Enum {2095 readonly isComplete: boolean;2071 readonly isComplete: boolean;2096 readonly asComplete: u64;2072 readonly asComplete: u64;2101 readonly type: 'Complete' | 'Incomplete' | 'Error';2077 readonly type: 'Complete' | 'Incomplete' | 'Error';2102 }2078 }210320792104 /** @name CumulusPalletXcmEvent (253) */2080 /** @name CumulusPalletXcmEvent (251) */2105 export interface CumulusPalletXcmEvent extends Enum {2081 export interface CumulusPalletXcmEvent extends Enum {2106 readonly isInvalidFormat: boolean;2082 readonly isInvalidFormat: boolean;2107 readonly asInvalidFormat: U8aFixed;2083 readonly asInvalidFormat: U8aFixed;2112 readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward';2088 readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward';2113 }2089 }211420902115 /** @name CumulusPalletDmpQueueEvent (254) */2091 /** @name CumulusPalletDmpQueueEvent (252) */2116 export interface CumulusPalletDmpQueueEvent extends Enum {2092 export interface CumulusPalletDmpQueueEvent extends Enum {2117 readonly isInvalidFormat: boolean;2093 readonly isInvalidFormat: boolean;2118 readonly asInvalidFormat: U8aFixed;2094 readonly asInvalidFormat: U8aFixed;2129 readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward' | 'WeightExhausted' | 'OverweightEnqueued' | 'OverweightServiced';2105 readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward' | 'WeightExhausted' | 'OverweightEnqueued' | 'OverweightServiced';2130 }2106 }213121072132 /** @name PalletUniqueRawEvent (255) */2108 /** @name PalletUniqueRawEvent (253) */2133 export interface PalletUniqueRawEvent extends Enum {2109 export interface PalletUniqueRawEvent extends Enum {2134 readonly isCollectionSponsorRemoved: boolean;2110 readonly isCollectionSponsorRemoved: boolean;2135 readonly asCollectionSponsorRemoved: u32;2111 readonly asCollectionSponsorRemoved: u32;2162 readonly type: 'CollectionSponsorRemoved' | 'CollectionAdminAdded' | 'CollectionOwnedChanged' | 'CollectionSponsorSet' | 'ConstOnChainSchemaSet' | 'SponsorshipConfirmed' | 'CollectionAdminRemoved' | 'AllowListAddressRemoved' | 'AllowListAddressAdded' | 'CollectionLimitSet' | 'MintPermissionSet' | 'OffchainSchemaSet' | 'PublicAccessModeSet' | 'SchemaVersionSet';2138 readonly type: 'CollectionSponsorRemoved' | 'CollectionAdminAdded' | 'CollectionOwnedChanged' | 'CollectionSponsorSet' | 'ConstOnChainSchemaSet' | 'SponsorshipConfirmed' | 'CollectionAdminRemoved' | 'AllowListAddressRemoved' | 'AllowListAddressAdded' | 'CollectionLimitSet' | 'MintPermissionSet' | 'OffchainSchemaSet' | 'PublicAccessModeSet' | 'SchemaVersionSet';2163 }2139 }216421402165 /** @name PalletCommonEvent (256) */2141 /** @name PalletCommonEvent (254) */2166 export interface PalletCommonEvent extends Enum {2142 export interface PalletCommonEvent extends Enum {2167 readonly isCollectionCreated: boolean;2143 readonly isCollectionCreated: boolean;2168 readonly asCollectionCreated: ITuple<[u32, u8, AccountId32]>;2144 readonly asCollectionCreated: ITuple<[u32, u8, AccountId32]>;2189 readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'ItemCreated' | 'ItemDestroyed' | 'Transfer' | 'Approved' | 'CollectionPropertySet' | 'CollectionPropertyDeleted' | 'TokenPropertySet' | 'TokenPropertyDeleted' | 'PropertyPermissionSet';2165 readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'ItemCreated' | 'ItemDestroyed' | 'Transfer' | 'Approved' | 'CollectionPropertySet' | 'CollectionPropertyDeleted' | 'TokenPropertySet' | 'TokenPropertyDeleted' | 'PropertyPermissionSet';2190 }2166 }219121672192 /** @name PalletStructureEvent (257) */2168 /** @name PalletStructureEvent (255) */2193 export interface PalletStructureEvent extends Enum {2169 export interface PalletStructureEvent extends Enum {2194 readonly isExecuted: boolean;2170 readonly isExecuted: boolean;2195 readonly asExecuted: Result<Null, SpRuntimeDispatchError>;2171 readonly asExecuted: Result<Null, SpRuntimeDispatchError>;2196 readonly type: 'Executed';2172 readonly type: 'Executed';2197 }2173 }219821742199 /** @name PalletEvmEvent (258) */2175 /** @name PalletEvmEvent (256) */2200 export interface PalletEvmEvent extends Enum {2176 export interface PalletEvmEvent extends Enum {2201 readonly isLog: boolean;2177 readonly isLog: boolean;2202 readonly asLog: EthereumLog;2178 readonly asLog: EthereumLog;2215 readonly type: 'Log' | 'Created' | 'CreatedFailed' | 'Executed' | 'ExecutedFailed' | 'BalanceDeposit' | 'BalanceWithdraw';2191 readonly type: 'Log' | 'Created' | 'CreatedFailed' | 'Executed' | 'ExecutedFailed' | 'BalanceDeposit' | 'BalanceWithdraw';2216 }2192 }221721932218 /** @name EthereumLog (259) */2194 /** @name EthereumLog (257) */2219 export interface EthereumLog extends Struct {2195 export interface EthereumLog extends Struct {2220 readonly address: H160;2196 readonly address: H160;2221 readonly topics: Vec<H256>;2197 readonly topics: Vec<H256>;2222 readonly data: Bytes;2198 readonly data: Bytes;2223 }2199 }222422002225 /** @name PalletEthereumEvent (260) */2201 /** @name PalletEthereumEvent (258) */2226 export interface PalletEthereumEvent extends Enum {2202 export interface PalletEthereumEvent extends Enum {2227 readonly isExecuted: boolean;2203 readonly isExecuted: boolean;2228 readonly asExecuted: ITuple<[H160, H160, H256, EvmCoreErrorExitReason]>;2204 readonly asExecuted: ITuple<[H160, H160, H256, EvmCoreErrorExitReason]>;2229 readonly type: 'Executed';2205 readonly type: 'Executed';2230 }2206 }223122072232 /** @name EvmCoreErrorExitReason (261) */2208 /** @name EvmCoreErrorExitReason (259) */2233 export interface EvmCoreErrorExitReason extends Enum {2209 export interface EvmCoreErrorExitReason extends Enum {2234 readonly isSucceed: boolean;2210 readonly isSucceed: boolean;2235 readonly asSucceed: EvmCoreErrorExitSucceed;2211 readonly asSucceed: EvmCoreErrorExitSucceed;2242 readonly type: 'Succeed' | 'Error' | 'Revert' | 'Fatal';2218 readonly type: 'Succeed' | 'Error' | 'Revert' | 'Fatal';2243 }2219 }224422202245 /** @name EvmCoreErrorExitSucceed (262) */2221 /** @name EvmCoreErrorExitSucceed (260) */2246 export interface EvmCoreErrorExitSucceed extends Enum {2222 export interface EvmCoreErrorExitSucceed extends Enum {2247 readonly isStopped: boolean;2223 readonly isStopped: boolean;2248 readonly isReturned: boolean;2224 readonly isReturned: boolean;2249 readonly isSuicided: boolean;2225 readonly isSuicided: boolean;2250 readonly type: 'Stopped' | 'Returned' | 'Suicided';2226 readonly type: 'Stopped' | 'Returned' | 'Suicided';2251 }2227 }225222282253 /** @name EvmCoreErrorExitError (263) */2229 /** @name EvmCoreErrorExitError (261) */2254 export interface EvmCoreErrorExitError extends Enum {2230 export interface EvmCoreErrorExitError extends Enum {2255 readonly isStackUnderflow: boolean;2231 readonly isStackUnderflow: boolean;2256 readonly isStackOverflow: boolean;2232 readonly isStackOverflow: boolean;2271 readonly type: 'StackUnderflow' | 'StackOverflow' | 'InvalidJump' | 'InvalidRange' | 'DesignatedInvalid' | 'CallTooDeep' | 'CreateCollision' | 'CreateContractLimit' | 'OutOfOffset' | 'OutOfGas' | 'OutOfFund' | 'PcUnderflow' | 'CreateEmpty' | 'Other' | 'InvalidCode';2247 readonly type: 'StackUnderflow' | 'StackOverflow' | 'InvalidJump' | 'InvalidRange' | 'DesignatedInvalid' | 'CallTooDeep' | 'CreateCollision' | 'CreateContractLimit' | 'OutOfOffset' | 'OutOfGas' | 'OutOfFund' | 'PcUnderflow' | 'CreateEmpty' | 'Other' | 'InvalidCode';2272 }2248 }227322492274 /** @name EvmCoreErrorExitRevert (266) */2250 /** @name EvmCoreErrorExitRevert (264) */2275 export interface EvmCoreErrorExitRevert extends Enum {2251 export interface EvmCoreErrorExitRevert extends Enum {2276 readonly isReverted: boolean;2252 readonly isReverted: boolean;2277 readonly type: 'Reverted';2253 readonly type: 'Reverted';2278 }2254 }227922552280 /** @name EvmCoreErrorExitFatal (267) */2256 /** @name EvmCoreErrorExitFatal (265) */2281 export interface EvmCoreErrorExitFatal extends Enum {2257 export interface EvmCoreErrorExitFatal extends Enum {2282 readonly isNotSupported: boolean;2258 readonly isNotSupported: boolean;2283 readonly isUnhandledInterrupt: boolean;2259 readonly isUnhandledInterrupt: boolean;2288 readonly type: 'NotSupported' | 'UnhandledInterrupt' | 'CallErrorAsFatal' | 'Other';2264 readonly type: 'NotSupported' | 'UnhandledInterrupt' | 'CallErrorAsFatal' | 'Other';2289 }2265 }229022662291 /** @name FrameSystemPhase (268) */2267 /** @name FrameSystemPhase (266) */2292 export interface FrameSystemPhase extends Enum {2268 export interface FrameSystemPhase extends Enum {2293 readonly isApplyExtrinsic: boolean;2269 readonly isApplyExtrinsic: boolean;2294 readonly asApplyExtrinsic: u32;2270 readonly asApplyExtrinsic: u32;2297 readonly type: 'ApplyExtrinsic' | 'Finalization' | 'Initialization';2273 readonly type: 'ApplyExtrinsic' | 'Finalization' | 'Initialization';2298 }2274 }229922752300 /** @name FrameSystemLastRuntimeUpgradeInfo (270) */2276 /** @name FrameSystemLastRuntimeUpgradeInfo (268) */2301 export interface FrameSystemLastRuntimeUpgradeInfo extends Struct {2277 export interface FrameSystemLastRuntimeUpgradeInfo extends Struct {2302 readonly specVersion: Compact<u32>;2278 readonly specVersion: Compact<u32>;2303 readonly specName: Text;2279 readonly specName: Text;2304 }2280 }230522812306 /** @name FrameSystemLimitsBlockWeights (271) */2282 /** @name FrameSystemLimitsBlockWeights (269) */2307 export interface FrameSystemLimitsBlockWeights extends Struct {2283 export interface FrameSystemLimitsBlockWeights extends Struct {2308 readonly baseBlock: u64;2284 readonly baseBlock: u64;2309 readonly maxBlock: u64;2285 readonly maxBlock: u64;2310 readonly perClass: FrameSupportWeightsPerDispatchClassWeightsPerClass;2286 readonly perClass: FrameSupportWeightsPerDispatchClassWeightsPerClass;2311 }2287 }231222882313 /** @name FrameSupportWeightsPerDispatchClassWeightsPerClass (272) */2289 /** @name FrameSupportWeightsPerDispatchClassWeightsPerClass (270) */2314 export interface FrameSupportWeightsPerDispatchClassWeightsPerClass extends Struct {2290 export interface FrameSupportWeightsPerDispatchClassWeightsPerClass extends Struct {2315 readonly normal: FrameSystemLimitsWeightsPerClass;2291 readonly normal: FrameSystemLimitsWeightsPerClass;2316 readonly operational: FrameSystemLimitsWeightsPerClass;2292 readonly operational: FrameSystemLimitsWeightsPerClass;2317 readonly mandatory: FrameSystemLimitsWeightsPerClass;2293 readonly mandatory: FrameSystemLimitsWeightsPerClass;2318 }2294 }231922952320 /** @name FrameSystemLimitsWeightsPerClass (273) */2296 /** @name FrameSystemLimitsWeightsPerClass (271) */2321 export interface FrameSystemLimitsWeightsPerClass extends Struct {2297 export interface FrameSystemLimitsWeightsPerClass extends Struct {2322 readonly baseExtrinsic: u64;2298 readonly baseExtrinsic: u64;2323 readonly maxExtrinsic: Option<u64>;2299 readonly maxExtrinsic: Option<u64>;2324 readonly maxTotal: Option<u64>;2300 readonly maxTotal: Option<u64>;2325 readonly reserved: Option<u64>;2301 readonly reserved: Option<u64>;2326 }2302 }232723032328 /** @name FrameSystemLimitsBlockLength (275) */2304 /** @name FrameSystemLimitsBlockLength (273) */2329 export interface FrameSystemLimitsBlockLength extends Struct {2305 export interface FrameSystemLimitsBlockLength extends Struct {2330 readonly max: FrameSupportWeightsPerDispatchClassU32;2306 readonly max: FrameSupportWeightsPerDispatchClassU32;2331 }2307 }233223082333 /** @name FrameSupportWeightsPerDispatchClassU32 (276) */2309 /** @name FrameSupportWeightsPerDispatchClassU32 (274) */2334 export interface FrameSupportWeightsPerDispatchClassU32 extends Struct {2310 export interface FrameSupportWeightsPerDispatchClassU32 extends Struct {2335 readonly normal: u32;2311 readonly normal: u32;2336 readonly operational: u32;2312 readonly operational: u32;2337 readonly mandatory: u32;2313 readonly mandatory: u32;2338 }2314 }233923152340 /** @name FrameSupportWeightsRuntimeDbWeight (277) */2316 /** @name FrameSupportWeightsRuntimeDbWeight (275) */2341 export interface FrameSupportWeightsRuntimeDbWeight extends Struct {2317 export interface FrameSupportWeightsRuntimeDbWeight extends Struct {2342 readonly read: u64;2318 readonly read: u64;2343 readonly write: u64;2319 readonly write: u64;2344 }2320 }234523212346 /** @name SpVersionRuntimeVersion (278) */2322 /** @name SpVersionRuntimeVersion (276) */2347 export interface SpVersionRuntimeVersion extends Struct {2323 export interface SpVersionRuntimeVersion extends Struct {2348 readonly specName: Text;2324 readonly specName: Text;2349 readonly implName: Text;2325 readonly implName: Text;2355 readonly stateVersion: u8;2331 readonly stateVersion: u8;2356 }2332 }235723332358 /** @name FrameSystemError (282) */2334 /** @name FrameSystemError (280) */2359 export interface FrameSystemError extends Enum {2335 export interface FrameSystemError extends Enum {2360 readonly isInvalidSpecName: boolean;2336 readonly isInvalidSpecName: boolean;2361 readonly isSpecVersionNeedsToIncrease: boolean;2337 readonly isSpecVersionNeedsToIncrease: boolean;2366 readonly type: 'InvalidSpecName' | 'SpecVersionNeedsToIncrease' | 'FailedToExtractRuntimeVersion' | 'NonDefaultComposite' | 'NonZeroRefCount' | 'CallFiltered';2342 readonly type: 'InvalidSpecName' | 'SpecVersionNeedsToIncrease' | 'FailedToExtractRuntimeVersion' | 'NonDefaultComposite' | 'NonZeroRefCount' | 'CallFiltered';2367 }2343 }236823442369 /** @name OrmlVestingModuleError (284) */2345 /** @name OrmlVestingModuleError (282) */2370 export interface OrmlVestingModuleError extends Enum {2346 export interface OrmlVestingModuleError extends Enum {2371 readonly isZeroVestingPeriod: boolean;2347 readonly isZeroVestingPeriod: boolean;2372 readonly isZeroVestingPeriodCount: boolean;2348 readonly isZeroVestingPeriodCount: boolean;2377 readonly type: 'ZeroVestingPeriod' | 'ZeroVestingPeriodCount' | 'InsufficientBalanceToLock' | 'TooManyVestingSchedules' | 'AmountLow' | 'MaxVestingSchedulesExceeded';2353 readonly type: 'ZeroVestingPeriod' | 'ZeroVestingPeriodCount' | 'InsufficientBalanceToLock' | 'TooManyVestingSchedules' | 'AmountLow' | 'MaxVestingSchedulesExceeded';2378 }2354 }237923552380 /** @name CumulusPalletXcmpQueueInboundChannelDetails (286) */2356 /** @name CumulusPalletXcmpQueueInboundChannelDetails (284) */2381 export interface CumulusPalletXcmpQueueInboundChannelDetails extends Struct {2357 export interface CumulusPalletXcmpQueueInboundChannelDetails extends Struct {2382 readonly sender: u32;2358 readonly sender: u32;2383 readonly state: CumulusPalletXcmpQueueInboundState;2359 readonly state: CumulusPalletXcmpQueueInboundState;2384 readonly messageMetadata: Vec<ITuple<[u32, PolkadotParachainPrimitivesXcmpMessageFormat]>>;2360 readonly messageMetadata: Vec<ITuple<[u32, PolkadotParachainPrimitivesXcmpMessageFormat]>>;2385 }2361 }238623622387 /** @name CumulusPalletXcmpQueueInboundState (287) */2363 /** @name CumulusPalletXcmpQueueInboundState (285) */2388 export interface CumulusPalletXcmpQueueInboundState extends Enum {2364 export interface CumulusPalletXcmpQueueInboundState extends Enum {2389 readonly isOk: boolean;2365 readonly isOk: boolean;2390 readonly isSuspended: boolean;2366 readonly isSuspended: boolean;2391 readonly type: 'Ok' | 'Suspended';2367 readonly type: 'Ok' | 'Suspended';2392 }2368 }239323692394 /** @name PolkadotParachainPrimitivesXcmpMessageFormat (290) */2370 /** @name PolkadotParachainPrimitivesXcmpMessageFormat (288) */2395 export interface PolkadotParachainPrimitivesXcmpMessageFormat extends Enum {2371 export interface PolkadotParachainPrimitivesXcmpMessageFormat extends Enum {2396 readonly isConcatenatedVersionedXcm: boolean;2372 readonly isConcatenatedVersionedXcm: boolean;2397 readonly isConcatenatedEncodedBlob: boolean;2373 readonly isConcatenatedEncodedBlob: boolean;2398 readonly isSignals: boolean;2374 readonly isSignals: boolean;2399 readonly type: 'ConcatenatedVersionedXcm' | 'ConcatenatedEncodedBlob' | 'Signals';2375 readonly type: 'ConcatenatedVersionedXcm' | 'ConcatenatedEncodedBlob' | 'Signals';2400 }2376 }240123772402 /** @name CumulusPalletXcmpQueueOutboundChannelDetails (293) */2378 /** @name CumulusPalletXcmpQueueOutboundChannelDetails (291) */2403 export interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct {2379 export interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct {2404 readonly recipient: u32;2380 readonly recipient: u32;2405 readonly state: CumulusPalletXcmpQueueOutboundState;2381 readonly state: CumulusPalletXcmpQueueOutboundState;2408 readonly lastIndex: u16;2384 readonly lastIndex: u16;2409 }2385 }241023862411 /** @name CumulusPalletXcmpQueueOutboundState (294) */2387 /** @name CumulusPalletXcmpQueueOutboundState (292) */2412 export interface CumulusPalletXcmpQueueOutboundState extends Enum {2388 export interface CumulusPalletXcmpQueueOutboundState extends Enum {2413 readonly isOk: boolean;2389 readonly isOk: boolean;2414 readonly isSuspended: boolean;2390 readonly isSuspended: boolean;2415 readonly type: 'Ok' | 'Suspended';2391 readonly type: 'Ok' | 'Suspended';2416 }2392 }241723932418 /** @name CumulusPalletXcmpQueueQueueConfigData (296) */2394 /** @name CumulusPalletXcmpQueueQueueConfigData (294) */2419 export interface CumulusPalletXcmpQueueQueueConfigData extends Struct {2395 export interface CumulusPalletXcmpQueueQueueConfigData extends Struct {2420 readonly suspendThreshold: u32;2396 readonly suspendThreshold: u32;2421 readonly dropThreshold: u32;2397 readonly dropThreshold: u32;2425 readonly xcmpMaxIndividualWeight: u64;2401 readonly xcmpMaxIndividualWeight: u64;2426 }2402 }242724032428 /** @name CumulusPalletXcmpQueueError (298) */2404 /** @name CumulusPalletXcmpQueueError (296) */2429 export interface CumulusPalletXcmpQueueError extends Enum {2405 export interface CumulusPalletXcmpQueueError extends Enum {2430 readonly isFailedToSend: boolean;2406 readonly isFailedToSend: boolean;2431 readonly isBadXcmOrigin: boolean;2407 readonly isBadXcmOrigin: boolean;2435 readonly type: 'FailedToSend' | 'BadXcmOrigin' | 'BadXcm' | 'BadOverweightIndex' | 'WeightOverLimit';2411 readonly type: 'FailedToSend' | 'BadXcmOrigin' | 'BadXcm' | 'BadOverweightIndex' | 'WeightOverLimit';2436 }2412 }243724132438 /** @name PalletXcmError (299) */2414 /** @name PalletXcmError (297) */2439 export interface PalletXcmError extends Enum {2415 export interface PalletXcmError extends Enum {2440 readonly isUnreachable: boolean;2416 readonly isUnreachable: boolean;2441 readonly isSendFailure: boolean;2417 readonly isSendFailure: boolean;2453 readonly type: 'Unreachable' | 'SendFailure' | 'Filtered' | 'UnweighableMessage' | 'DestinationNotInvertible' | 'Empty' | 'CannotReanchor' | 'TooManyAssets' | 'InvalidOrigin' | 'BadVersion' | 'BadLocation' | 'NoSubscription' | 'AlreadySubscribed';2429 readonly type: 'Unreachable' | 'SendFailure' | 'Filtered' | 'UnweighableMessage' | 'DestinationNotInvertible' | 'Empty' | 'CannotReanchor' | 'TooManyAssets' | 'InvalidOrigin' | 'BadVersion' | 'BadLocation' | 'NoSubscription' | 'AlreadySubscribed';2454 }2430 }245524312456 /** @name CumulusPalletXcmError (300) */2432 /** @name CumulusPalletXcmError (298) */2457 export type CumulusPalletXcmError = Null;2433 export type CumulusPalletXcmError = Null;245824342459 /** @name CumulusPalletDmpQueueConfigData (301) */2435 /** @name CumulusPalletDmpQueueConfigData (299) */2460 export interface CumulusPalletDmpQueueConfigData extends Struct {2436 export interface CumulusPalletDmpQueueConfigData extends Struct {2461 readonly maxIndividual: u64;2437 readonly maxIndividual: u64;2462 }2438 }246324392464 /** @name CumulusPalletDmpQueuePageIndexData (302) */2440 /** @name CumulusPalletDmpQueuePageIndexData (300) */2465 export interface CumulusPalletDmpQueuePageIndexData extends Struct {2441 export interface CumulusPalletDmpQueuePageIndexData extends Struct {2466 readonly beginUsed: u32;2442 readonly beginUsed: u32;2467 readonly endUsed: u32;2443 readonly endUsed: u32;2468 readonly overweightCount: u64;2444 readonly overweightCount: u64;2469 }2445 }247024462471 /** @name CumulusPalletDmpQueueError (305) */2447 /** @name CumulusPalletDmpQueueError (303) */2472 export interface CumulusPalletDmpQueueError extends Enum {2448 export interface CumulusPalletDmpQueueError extends Enum {2473 readonly isUnknown: boolean;2449 readonly isUnknown: boolean;2474 readonly isOverLimit: boolean;2450 readonly isOverLimit: boolean;2475 readonly type: 'Unknown' | 'OverLimit';2451 readonly type: 'Unknown' | 'OverLimit';2476 }2452 }247724532478 /** @name PalletUniqueError (309) */2454 /** @name PalletUniqueError (307) */2479 export interface PalletUniqueError extends Enum {2455 export interface PalletUniqueError extends Enum {2480 readonly isCollectionDecimalPointLimitExceeded: boolean;2456 readonly isCollectionDecimalPointLimitExceeded: boolean;2481 readonly isConfirmUnsetSponsorFail: boolean;2457 readonly isConfirmUnsetSponsorFail: boolean;2482 readonly isEmptyArgument: boolean;2458 readonly isEmptyArgument: boolean;2483 readonly type: 'CollectionDecimalPointLimitExceeded' | 'ConfirmUnsetSponsorFail' | 'EmptyArgument';2459 readonly type: 'CollectionDecimalPointLimitExceeded' | 'ConfirmUnsetSponsorFail' | 'EmptyArgument';2484 }2460 }248524612486 /** @name UpDataStructsCollection (310) */2462 /** @name UpDataStructsCollection (308) */2487 export interface UpDataStructsCollection extends Struct {2463 export interface UpDataStructsCollection extends Struct {2488 readonly owner: AccountId32;2464 readonly owner: AccountId32;2489 readonly mode: UpDataStructsCollectionMode;2465 readonly mode: UpDataStructsCollectionMode;2495 readonly schemaVersion: UpDataStructsSchemaVersion;2471 readonly schemaVersion: UpDataStructsSchemaVersion;2496 readonly sponsorship: UpDataStructsSponsorshipState;2472 readonly sponsorship: UpDataStructsSponsorshipState;2497 readonly limits: UpDataStructsCollectionLimits;2473 readonly limits: UpDataStructsCollectionLimits;2498 readonly metaUpdatePermission: UpDataStructsMetaUpdatePermission;2499 }2474 }250024752501 /** @name UpDataStructsSponsorshipState (311) */2476 /** @name UpDataStructsSponsorshipState (309) */2502 export interface UpDataStructsSponsorshipState extends Enum {2477 export interface UpDataStructsSponsorshipState extends Enum {2503 readonly isDisabled: boolean;2478 readonly isDisabled: boolean;2504 readonly isUnconfirmed: boolean;2479 readonly isUnconfirmed: boolean;2508 readonly type: 'Disabled' | 'Unconfirmed' | 'Confirmed';2483 readonly type: 'Disabled' | 'Unconfirmed' | 'Confirmed';2509 }2484 }251024852511 /** @name UpDataStructsProperties (312) */2486 /** @name UpDataStructsProperties (310) */2512 export interface UpDataStructsProperties extends Struct {2487 export interface UpDataStructsProperties extends Struct {2513 readonly map: UpDataStructsPropertiesMapBoundedVec;2488 readonly map: UpDataStructsPropertiesMapBoundedVec;2514 readonly consumedSpace: u32;2489 readonly consumedSpace: u32;2515 readonly spaceLimit: u32;2490 readonly spaceLimit: u32;2516 }2491 }251724922518 /** @name UpDataStructsPropertiesMapBoundedVec (313) */2493 /** @name UpDataStructsPropertiesMapBoundedVec (311) */2519 export interface UpDataStructsPropertiesMapBoundedVec extends BTreeMap<Bytes, Bytes> {}2494 export interface UpDataStructsPropertiesMapBoundedVec extends BTreeMap<Bytes, Bytes> {}252024952521 /** @name UpDataStructsPropertiesMapPropertyPermission (318) */2496 /** @name UpDataStructsPropertiesMapPropertyPermission (316) */2522 export interface UpDataStructsPropertiesMapPropertyPermission extends BTreeMap<Bytes, UpDataStructsPropertyPermission> {}2497 export interface UpDataStructsPropertiesMapPropertyPermission extends BTreeMap<Bytes, UpDataStructsPropertyPermission> {}252324982524 /** @name UpDataStructsCollectionField (324) */2499 /** @name UpDataStructsCollectionField (322) */2525 export interface UpDataStructsCollectionField extends Enum {2500 export interface UpDataStructsCollectionField extends Enum {2526 readonly isConstOnChainSchema: boolean;2501 readonly isConstOnChainSchema: boolean;2527 readonly isOffchainSchema: boolean;2502 readonly isOffchainSchema: boolean;2528 readonly type: 'ConstOnChainSchema' | 'OffchainSchema';2503 readonly type: 'ConstOnChainSchema' | 'OffchainSchema';2529 }2504 }253025052531 /** @name UpDataStructsCollectionStats (327) */2506 /** @name UpDataStructsCollectionStats (325) */2532 export interface UpDataStructsCollectionStats extends Struct {2507 export interface UpDataStructsCollectionStats extends Struct {2533 readonly created: u32;2508 readonly created: u32;2534 readonly destroyed: u32;2509 readonly destroyed: u32;2535 readonly alive: u32;2510 readonly alive: u32;2536 }2511 }253725122538 /** @name PhantomTypeUpDataStructsTokenData (328) */2513 /** @name PhantomTypeUpDataStructsTokenData (326) */2539 export interface PhantomTypeUpDataStructsTokenData extends Vec<UpDataStructsTokenData> {}2514 export interface PhantomTypeUpDataStructsTokenData extends Vec<UpDataStructsTokenData> {}254025152541 /** @name UpDataStructsTokenData (329) */2516 /** @name UpDataStructsTokenData (327) */2542 export interface UpDataStructsTokenData extends Struct {2517 export interface UpDataStructsTokenData extends Struct {2543 readonly constData: Bytes;2518 readonly constData: Bytes;2544 readonly properties: Vec<UpDataStructsProperty>;2519 readonly properties: Vec<UpDataStructsProperty>;2545 readonly owner: Option<PalletEvmAccountBasicCrossAccountIdRepr>;2520 readonly owner: Option<PalletEvmAccountBasicCrossAccountIdRepr>;2546 }2521 }254725222548 /** @name PhantomTypeUpDataStructsRpcCollection (332) */2523 /** @name PhantomTypeUpDataStructsRpcCollection (330) */2549 export interface PhantomTypeUpDataStructsRpcCollection extends Vec<UpDataStructsRpcCollection> {}2524 export interface PhantomTypeUpDataStructsRpcCollection extends Vec<UpDataStructsRpcCollection> {}255025252551 /** @name UpDataStructsRpcCollection (333) */2526 /** @name UpDataStructsRpcCollection (331) */2552 export interface UpDataStructsRpcCollection extends Struct {2527 export interface UpDataStructsRpcCollection extends Struct {2553 readonly owner: AccountId32;2528 readonly owner: AccountId32;2554 readonly mode: UpDataStructsCollectionMode;2529 readonly mode: UpDataStructsCollectionMode;2562 readonly sponsorship: UpDataStructsSponsorshipState;2537 readonly sponsorship: UpDataStructsSponsorshipState;2563 readonly limits: UpDataStructsCollectionLimits;2538 readonly limits: UpDataStructsCollectionLimits;2564 readonly constOnChainSchema: Bytes;2539 readonly constOnChainSchema: Bytes;2565 readonly metaUpdatePermission: UpDataStructsMetaUpdatePermission;2566 readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;2540 readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;2567 readonly properties: Vec<UpDataStructsProperty>;2541 readonly properties: Vec<UpDataStructsProperty>;2568 }2542 }256925432570 /** @name PhantomTypeUpDataStructsCollectionInfo (335) */2544 /** @name PhantomTypeUpDataStructsCollectionInfo (333) */2571 export interface PhantomTypeUpDataStructsCollectionInfo extends Vec<RmrkTypesCollectionInfo> {}2545 export interface PhantomTypeUpDataStructsCollectionInfo extends Vec<RmrkTypesCollectionInfo> {}257225462573 /** @name RmrkTypesCollectionInfo (336) */2547 /** @name RmrkTypesCollectionInfo (334) */2574 export interface RmrkTypesCollectionInfo extends Struct {2548 export interface RmrkTypesCollectionInfo extends Struct {2575 readonly issuer: AccountId32;2549 readonly issuer: AccountId32;2576 readonly metadata: Bytes;2550 readonly metadata: Bytes;2579 readonly nftsCount: u32;2553 readonly nftsCount: u32;2580 }2554 }258125552582 /** @name PhantomTypeUpDataStructsNftInfo (340) */2556 /** @name PhantomTypeUpDataStructsNftInfo (338) */2583 export interface PhantomTypeUpDataStructsNftInfo extends Vec<RmrkTypesNftInfo> {}2557 export interface PhantomTypeUpDataStructsNftInfo extends Vec<RmrkTypesNftInfo> {}258425582585 /** @name RmrkTypesNftInfo (341) */2559 /** @name RmrkTypesNftInfo (339) */2586 export interface RmrkTypesNftInfo extends Struct {2560 export interface RmrkTypesNftInfo extends Struct {2587 readonly owner: RmrkTypesAccountIdOrCollectionNftTuple;2561 readonly owner: RmrkTypesAccountIdOrCollectionNftTuple;2588 readonly royalty: Option<RmrkTypesRoyaltyInfo>;2562 readonly royalty: Option<RmrkTypesRoyaltyInfo>;2591 readonly pending: bool;2565 readonly pending: bool;2592 }2566 }259325672594 /** @name RmrkTypesAccountIdOrCollectionNftTuple (342) */2568 /** @name RmrkTypesAccountIdOrCollectionNftTuple (340) */2595 export interface RmrkTypesAccountIdOrCollectionNftTuple extends Enum {2569 export interface RmrkTypesAccountIdOrCollectionNftTuple extends Enum {2596 readonly isAccountId: boolean;2570 readonly isAccountId: boolean;2597 readonly asAccountId: AccountId32;2571 readonly asAccountId: AccountId32;2600 readonly type: 'AccountId' | 'CollectionAndNftTuple';2574 readonly type: 'AccountId' | 'CollectionAndNftTuple';2601 }2575 }260225762603 /** @name RmrkTypesRoyaltyInfo (344) */2577 /** @name RmrkTypesRoyaltyInfo (342) */2604 export interface RmrkTypesRoyaltyInfo extends Struct {2578 export interface RmrkTypesRoyaltyInfo extends Struct {2605 readonly recipient: AccountId32;2579 readonly recipient: AccountId32;2606 readonly amount: Permill;2580 readonly amount: Permill;2607 }2581 }260825822609 /** @name PhantomTypeUpDataStructsResourceInfo (346) */2583 /** @name PhantomTypeUpDataStructsResourceInfo (344) */2610 export interface PhantomTypeUpDataStructsResourceInfo extends Vec<RmrkTypesResourceInfo> {}2584 export interface PhantomTypeUpDataStructsResourceInfo extends Vec<RmrkTypesResourceInfo> {}261125852612 /** @name RmrkTypesResourceInfo (347) */2586 /** @name RmrkTypesResourceInfo (345) */2613 export interface RmrkTypesResourceInfo extends Struct {2587 export interface RmrkTypesResourceInfo extends Struct {2614 readonly id: Bytes;2588 readonly id: Bytes;2615 readonly pending: bool;2589 readonly pending: bool;2623 readonly thumb: Option<Bytes>;2597 readonly thumb: Option<Bytes>;2624 }2598 }262525992626 /** @name PhantomTypeUpDataStructsPropertyInfo (353) */2600 /** @name PhantomTypeUpDataStructsPropertyInfo (351) */2627 export interface PhantomTypeUpDataStructsPropertyInfo extends Vec<RmrkTypesPropertyInfo> {}2601 export interface PhantomTypeUpDataStructsPropertyInfo extends Vec<RmrkTypesPropertyInfo> {}262826022629 /** @name RmrkTypesPropertyInfo (354) */2603 /** @name RmrkTypesPropertyInfo (352) */2630 export interface RmrkTypesPropertyInfo extends Struct {2604 export interface RmrkTypesPropertyInfo extends Struct {2631 readonly key: Bytes;2605 readonly key: Bytes;2632 readonly value: Bytes;2606 readonly value: Bytes;2633 }2607 }263426082635 /** @name PhantomTypeUpDataStructsBaseInfo (358) */2609 /** @name PhantomTypeUpDataStructsBaseInfo (356) */2636 export interface PhantomTypeUpDataStructsBaseInfo extends Vec<RmrkTypesBaseInfo> {}2610 export interface PhantomTypeUpDataStructsBaseInfo extends Vec<RmrkTypesBaseInfo> {}263726112638 /** @name RmrkTypesBaseInfo (359) */2612 /** @name RmrkTypesBaseInfo (357) */2639 export interface RmrkTypesBaseInfo extends Struct {2613 export interface RmrkTypesBaseInfo extends Struct {2640 readonly issuer: AccountId32;2614 readonly issuer: AccountId32;2641 readonly baseType: Bytes;2615 readonly baseType: Bytes;2642 readonly symbol: Bytes;2616 readonly symbol: Bytes;2643 }2617 }264426182645 /** @name PhantomTypeUpDataStructsPartType (361) */2619 /** @name PhantomTypeUpDataStructsPartType (359) */2646 export interface PhantomTypeUpDataStructsPartType extends Vec<RmrkTypesPartType> {}2620 export interface PhantomTypeUpDataStructsPartType extends Vec<RmrkTypesPartType> {}264726212648 /** @name RmrkTypesPartType (362) */2622 /** @name RmrkTypesPartType (360) */2649 export interface RmrkTypesPartType extends Enum {2623 export interface RmrkTypesPartType extends Enum {2650 readonly isFixedPart: boolean;2624 readonly isFixedPart: boolean;2651 readonly asFixedPart: RmrkTypesFixedPart;2625 readonly asFixedPart: RmrkTypesFixedPart;2654 readonly type: 'FixedPart' | 'SlotPart';2628 readonly type: 'FixedPart' | 'SlotPart';2655 }2629 }265626302657 /** @name RmrkTypesFixedPart (364) */2631 /** @name RmrkTypesFixedPart (362) */2658 export interface RmrkTypesFixedPart extends Struct {2632 export interface RmrkTypesFixedPart extends Struct {2659 readonly id: u32;2633 readonly id: u32;2660 readonly z: u32;2634 readonly z: u32;2661 readonly src: Bytes;2635 readonly src: Bytes;2662 }2636 }266326372664 /** @name RmrkTypesSlotPart (365) */2638 /** @name RmrkTypesSlotPart (363) */2665 export interface RmrkTypesSlotPart extends Struct {2639 export interface RmrkTypesSlotPart extends Struct {2666 readonly id: u32;2640 readonly id: u32;2667 readonly equippable: RmrkTypesEquippableList;2641 readonly equippable: RmrkTypesEquippableList;2668 readonly src: Bytes;2642 readonly src: Bytes;2669 readonly z: u32;2643 readonly z: u32;2670 }2644 }267126452672 /** @name RmrkTypesEquippableList (366) */2646 /** @name RmrkTypesEquippableList (364) */2673 export interface RmrkTypesEquippableList extends Enum {2647 export interface RmrkTypesEquippableList extends Enum {2674 readonly isAll: boolean;2648 readonly isAll: boolean;2675 readonly isEmpty: boolean;2649 readonly isEmpty: boolean;2678 readonly type: 'All' | 'Empty' | 'Custom';2652 readonly type: 'All' | 'Empty' | 'Custom';2679 }2653 }268026542681 /** @name PhantomTypeUpDataStructsTheme (368) */2655 /** @name PhantomTypeUpDataStructsTheme (366) */2682 export interface PhantomTypeUpDataStructsTheme extends Vec<RmrkTypesTheme> {}2656 export interface PhantomTypeUpDataStructsTheme extends Vec<RmrkTypesTheme> {}268326572684 /** @name RmrkTypesTheme (369) */2658 /** @name RmrkTypesTheme (367) */2685 export interface RmrkTypesTheme extends Struct {2659 export interface RmrkTypesTheme extends Struct {2686 readonly name: Bytes;2660 readonly name: Bytes;2687 readonly properties: Vec<RmrkTypesThemeProperty>;2661 readonly properties: Vec<RmrkTypesThemeProperty>;2688 readonly inherit: bool;2662 readonly inherit: bool;2689 }2663 }269026642691 /** @name RmrkTypesThemeProperty (371) */2665 /** @name RmrkTypesThemeProperty (369) */2692 export interface RmrkTypesThemeProperty extends Struct {2666 export interface RmrkTypesThemeProperty extends Struct {2693 readonly key: Bytes;2667 readonly key: Bytes;2694 readonly value: Bytes;2668 readonly value: Bytes;2695 }2669 }269626702697 /** @name PhantomTypeUpDataStructsNftChild (373) */2671 /** @name PhantomTypeUpDataStructsNftChild (371) */2698 export interface PhantomTypeUpDataStructsNftChild extends Vec<RmrkTypesNftChild> {}2672 export interface PhantomTypeUpDataStructsNftChild extends Vec<RmrkTypesNftChild> {}269926732700 /** @name RmrkTypesNftChild (374) */2674 /** @name RmrkTypesNftChild (372) */2701 export interface RmrkTypesNftChild extends Struct {2675 export interface RmrkTypesNftChild extends Struct {2702 readonly collectionId: u32;2676 readonly collectionId: u32;2703 readonly nftId: u32;2677 readonly nftId: u32;2704 }2678 }270526792706 /** @name PalletCommonError (376) */2680 /** @name PalletCommonError (374) */2707 export interface PalletCommonError extends Enum {2681 export interface PalletCommonError extends Enum {2708 readonly isCollectionNotFound: boolean;2682 readonly isCollectionNotFound: boolean;2709 readonly isMustBeTokenOwner: boolean;2683 readonly isMustBeTokenOwner: boolean;2714 readonly isCollectionDescriptionLimitExceeded: boolean;2688 readonly isCollectionDescriptionLimitExceeded: boolean;2715 readonly isCollectionTokenPrefixLimitExceeded: boolean;2689 readonly isCollectionTokenPrefixLimitExceeded: boolean;2716 readonly isTotalCollectionsLimitExceeded: boolean;2690 readonly isTotalCollectionsLimitExceeded: boolean;2717 readonly isTokenVariableDataLimitExceeded: boolean;2718 readonly isCollectionAdminCountExceeded: boolean;2691 readonly isCollectionAdminCountExceeded: boolean;2719 readonly isCollectionLimitBoundsExceeded: boolean;2692 readonly isCollectionLimitBoundsExceeded: boolean;2720 readonly isOwnerPermissionsCantBeReverted: boolean;2693 readonly isOwnerPermissionsCantBeReverted: boolean;2735 readonly isCollectionFieldSizeExceeded: boolean;2708 readonly isCollectionFieldSizeExceeded: boolean;2736 readonly isNoSpaceForProperty: boolean;2709 readonly isNoSpaceForProperty: boolean;2737 readonly isPropertyLimitReached: boolean;2710 readonly isPropertyLimitReached: boolean;2738 readonly isUnableToReadUnboundedKeys: boolean;2711 readonly isPropertyKeyIsTooLong: boolean;2739 readonly isInvalidCharacterInPropertyKey: boolean;2712 readonly isInvalidCharacterInPropertyKey: boolean;2740 readonly isEmptyPropertyKey: boolean;2713 readonly isEmptyPropertyKey: boolean;2741 readonly type: 'CollectionNotFound' | 'MustBeTokenOwner' | 'NoPermission' | 'PublicMintingNotAllowed' | 'AddressNotInAllowlist' | 'CollectionNameLimitExceeded' | 'CollectionDescriptionLimitExceeded' | 'CollectionTokenPrefixLimitExceeded' | 'TotalCollectionsLimitExceeded' | 'TokenVariableDataLimitExceeded' | 'CollectionAdminCountExceeded' | 'CollectionLimitBoundsExceeded' | 'OwnerPermissionsCantBeReverted' | 'TransferNotAllowed' | 'AccountTokenLimitExceeded' | 'CollectionTokenLimitExceeded' | 'MetadataFlagFrozen' | 'TokenNotFound' | 'TokenValueTooLow' | 'ApprovedValueTooLow' | 'CantApproveMoreThanOwned' | 'AddressIsZero' | 'UnsupportedOperation' | 'NotSufficientFounds' | 'NestingIsDisabled' | 'OnlyOwnerAllowedToNest' | 'SourceCollectionIsNotAllowedToNest' | 'CollectionFieldSizeExceeded' | 'NoSpaceForProperty' | 'PropertyLimitReached' | 'UnableToReadUnboundedKeys' | 'InvalidCharacterInPropertyKey' | 'EmptyPropertyKey';2714 readonly type: 'CollectionNotFound' | 'MustBeTokenOwner' | 'NoPermission' | 'PublicMintingNotAllowed' | 'AddressNotInAllowlist' | 'CollectionNameLimitExceeded' | 'CollectionDescriptionLimitExceeded' | 'CollectionTokenPrefixLimitExceeded' | 'TotalCollectionsLimitExceeded' | 'CollectionAdminCountExceeded' | 'CollectionLimitBoundsExceeded' | 'OwnerPermissionsCantBeReverted' | 'TransferNotAllowed' | 'AccountTokenLimitExceeded' | 'CollectionTokenLimitExceeded' | 'MetadataFlagFrozen' | 'TokenNotFound' | 'TokenValueTooLow' | 'ApprovedValueTooLow' | 'CantApproveMoreThanOwned' | 'AddressIsZero' | 'UnsupportedOperation' | 'NotSufficientFounds' | 'NestingIsDisabled' | 'OnlyOwnerAllowedToNest' | 'SourceCollectionIsNotAllowedToNest' | 'CollectionFieldSizeExceeded' | 'NoSpaceForProperty' | 'PropertyLimitReached' | 'PropertyKeyIsTooLong' | 'InvalidCharacterInPropertyKey' | 'EmptyPropertyKey';2742 }2715 }274327162744 /** @name PalletFungibleError (378) */2717 /** @name PalletFungibleError (376) */2745 export interface PalletFungibleError extends Enum {2718 export interface PalletFungibleError extends Enum {2746 readonly isNotFungibleDataUsedToMintFungibleCollectionToken: boolean;2719 readonly isNotFungibleDataUsedToMintFungibleCollectionToken: boolean;2747 readonly isFungibleItemsHaveNoId: boolean;2720 readonly isFungibleItemsHaveNoId: boolean;2751 readonly type: 'NotFungibleDataUsedToMintFungibleCollectionToken' | 'FungibleItemsHaveNoId' | 'FungibleItemsDontHaveData' | 'FungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';2724 readonly type: 'NotFungibleDataUsedToMintFungibleCollectionToken' | 'FungibleItemsHaveNoId' | 'FungibleItemsDontHaveData' | 'FungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';2752 }2725 }275327262754 /** @name PalletRefungibleItemData (379) */2727 /** @name PalletRefungibleItemData (377) */2755 export interface PalletRefungibleItemData extends Struct {2728 export interface PalletRefungibleItemData extends Struct {2756 readonly constData: Bytes;2729 readonly constData: Bytes;2757 readonly variableData: Bytes;2758 }2730 }275927312760 /** @name PalletRefungibleError (383) */2732 /** @name PalletRefungibleError (381) */2761 export interface PalletRefungibleError extends Enum {2733 export interface PalletRefungibleError extends Enum {2762 readonly isNotRefungibleDataUsedToMintFungibleCollectionToken: boolean;2734 readonly isNotRefungibleDataUsedToMintFungibleCollectionToken: boolean;2763 readonly isWrongRefungiblePieces: boolean;2735 readonly isWrongRefungiblePieces: boolean;2766 readonly type: 'NotRefungibleDataUsedToMintFungibleCollectionToken' | 'WrongRefungiblePieces' | 'RefungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';2738 readonly type: 'NotRefungibleDataUsedToMintFungibleCollectionToken' | 'WrongRefungiblePieces' | 'RefungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';2767 }2739 }276827402769 /** @name PalletNonfungibleItemData (384) */2741 /** @name PalletNonfungibleItemData (382) */2770 export interface PalletNonfungibleItemData extends Struct {2742 export interface PalletNonfungibleItemData extends Struct {2771 readonly constData: Bytes;2743 readonly constData: Bytes;2772 readonly variableData: Bytes;2773 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;2744 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;2774 }2745 }277527462776 /** @name PalletNonfungibleError (385) */2747 /** @name PalletNonfungibleError (383) */2777 export interface PalletNonfungibleError extends Enum {2748 export interface PalletNonfungibleError extends Enum {2778 readonly isNotNonfungibleDataUsedToMintFungibleCollectionToken: boolean;2749 readonly isNotNonfungibleDataUsedToMintFungibleCollectionToken: boolean;2779 readonly isNonfungibleItemsHaveNoAmount: boolean;2750 readonly isNonfungibleItemsHaveNoAmount: boolean;2780 readonly type: 'NotNonfungibleDataUsedToMintFungibleCollectionToken' | 'NonfungibleItemsHaveNoAmount';2751 readonly type: 'NotNonfungibleDataUsedToMintFungibleCollectionToken' | 'NonfungibleItemsHaveNoAmount';2781 }2752 }278227532783 /** @name PalletStructureError (386) */2754 /** @name PalletStructureError (384) */2784 export interface PalletStructureError extends Enum {2755 export interface PalletStructureError extends Enum {2785 readonly isOuroborosDetected: boolean;2756 readonly isOuroborosDetected: boolean;2786 readonly isDepthLimit: boolean;2757 readonly isDepthLimit: boolean;2787 readonly isTokenNotFound: boolean;2758 readonly isTokenNotFound: boolean;2788 readonly type: 'OuroborosDetected' | 'DepthLimit' | 'TokenNotFound';2759 readonly type: 'OuroborosDetected' | 'DepthLimit' | 'TokenNotFound';2789 }2760 }279027612791 /** @name PalletEvmError (389) */2762 /** @name PalletEvmError (387) */2792 export interface PalletEvmError extends Enum {2763 export interface PalletEvmError extends Enum {2793 readonly isBalanceLow: boolean;2764 readonly isBalanceLow: boolean;2794 readonly isFeeOverflow: boolean;2765 readonly isFeeOverflow: boolean;2799 readonly type: 'BalanceLow' | 'FeeOverflow' | 'PaymentOverflow' | 'WithdrawFailed' | 'GasPriceTooLow' | 'InvalidNonce';2770 readonly type: 'BalanceLow' | 'FeeOverflow' | 'PaymentOverflow' | 'WithdrawFailed' | 'GasPriceTooLow' | 'InvalidNonce';2800 }2771 }280127722802 /** @name FpRpcTransactionStatus (392) */2773 /** @name FpRpcTransactionStatus (390) */2803 export interface FpRpcTransactionStatus extends Struct {2774 export interface FpRpcTransactionStatus extends Struct {2804 readonly transactionHash: H256;2775 readonly transactionHash: H256;2805 readonly transactionIndex: u32;2776 readonly transactionIndex: u32;2810 readonly logsBloom: EthbloomBloom;2781 readonly logsBloom: EthbloomBloom;2811 }2782 }281227832813 /** @name EthbloomBloom (394) */2784 /** @name EthbloomBloom (392) */2814 export interface EthbloomBloom extends U8aFixed {}2785 export interface EthbloomBloom extends U8aFixed {}281527862816 /** @name EthereumReceiptReceiptV3 (396) */2787 /** @name EthereumReceiptReceiptV3 (394) */2817 export interface EthereumReceiptReceiptV3 extends Enum {2788 export interface EthereumReceiptReceiptV3 extends Enum {2818 readonly isLegacy: boolean;2789 readonly isLegacy: boolean;2819 readonly asLegacy: EthereumReceiptEip658ReceiptData;2790 readonly asLegacy: EthereumReceiptEip658ReceiptData;2824 readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';2795 readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';2825 }2796 }282627972827 /** @name EthereumReceiptEip658ReceiptData (397) */2798 /** @name EthereumReceiptEip658ReceiptData (395) */2828 export interface EthereumReceiptEip658ReceiptData extends Struct {2799 export interface EthereumReceiptEip658ReceiptData extends Struct {2829 readonly statusCode: u8;2800 readonly statusCode: u8;2830 readonly usedGas: U256;2801 readonly usedGas: U256;2831 readonly logsBloom: EthbloomBloom;2802 readonly logsBloom: EthbloomBloom;2832 readonly logs: Vec<EthereumLog>;2803 readonly logs: Vec<EthereumLog>;2833 }2804 }283428052835 /** @name EthereumBlock (398) */2806 /** @name EthereumBlock (396) */2836 export interface EthereumBlock extends Struct {2807 export interface EthereumBlock extends Struct {2837 readonly header: EthereumHeader;2808 readonly header: EthereumHeader;2838 readonly transactions: Vec<EthereumTransactionTransactionV2>;2809 readonly transactions: Vec<EthereumTransactionTransactionV2>;2839 readonly ommers: Vec<EthereumHeader>;2810 readonly ommers: Vec<EthereumHeader>;2840 }2811 }284128122842 /** @name EthereumHeader (399) */2813 /** @name EthereumHeader (397) */2843 export interface EthereumHeader extends Struct {2814 export interface EthereumHeader extends Struct {2844 readonly parentHash: H256;2815 readonly parentHash: H256;2845 readonly ommersHash: H256;2816 readonly ommersHash: H256;2858 readonly nonce: EthereumTypesHashH64;2829 readonly nonce: EthereumTypesHashH64;2859 }2830 }286028312861 /** @name EthereumTypesHashH64 (400) */2832 /** @name EthereumTypesHashH64 (398) */2862 export interface EthereumTypesHashH64 extends U8aFixed {}2833 export interface EthereumTypesHashH64 extends U8aFixed {}286328342864 /** @name PalletEthereumError (405) */2835 /** @name PalletEthereumError (403) */2865 export interface PalletEthereumError extends Enum {2836 export interface PalletEthereumError extends Enum {2866 readonly isInvalidSignature: boolean;2837 readonly isInvalidSignature: boolean;2867 readonly isPreLogExists: boolean;2838 readonly isPreLogExists: boolean;2868 readonly type: 'InvalidSignature' | 'PreLogExists';2839 readonly type: 'InvalidSignature' | 'PreLogExists';2869 }2840 }287028412871 /** @name PalletEvmCoderSubstrateError (406) */2842 /** @name PalletEvmCoderSubstrateError (404) */2872 export interface PalletEvmCoderSubstrateError extends Enum {2843 export interface PalletEvmCoderSubstrateError extends Enum {2873 readonly isOutOfGas: boolean;2844 readonly isOutOfGas: boolean;2874 readonly isOutOfFund: boolean;2845 readonly isOutOfFund: boolean;2875 readonly type: 'OutOfGas' | 'OutOfFund';2846 readonly type: 'OutOfGas' | 'OutOfFund';2876 }2847 }287728482878 /** @name PalletEvmContractHelpersSponsoringModeT (407) */2849 /** @name PalletEvmContractHelpersSponsoringModeT (405) */2879 export interface PalletEvmContractHelpersSponsoringModeT extends Enum {2850 export interface PalletEvmContractHelpersSponsoringModeT extends Enum {2880 readonly isDisabled: boolean;2851 readonly isDisabled: boolean;2881 readonly isAllowlisted: boolean;2852 readonly isAllowlisted: boolean;2882 readonly isGenerous: boolean;2853 readonly isGenerous: boolean;2883 readonly type: 'Disabled' | 'Allowlisted' | 'Generous';2854 readonly type: 'Disabled' | 'Allowlisted' | 'Generous';2884 }2855 }288528562886 /** @name PalletEvmContractHelpersError (409) */2857 /** @name PalletEvmContractHelpersError (407) */2887 export interface PalletEvmContractHelpersError extends Enum {2858 export interface PalletEvmContractHelpersError extends Enum {2888 readonly isNoPermission: boolean;2859 readonly isNoPermission: boolean;2889 readonly type: 'NoPermission';2860 readonly type: 'NoPermission';2890 }2861 }289128622892 /** @name PalletEvmMigrationError (410) */2863 /** @name PalletEvmMigrationError (408) */2893 export interface PalletEvmMigrationError extends Enum {2864 export interface PalletEvmMigrationError extends Enum {2894 readonly isAccountNotEmpty: boolean;2865 readonly isAccountNotEmpty: boolean;2895 readonly isAccountIsNotMigrating: boolean;2866 readonly isAccountIsNotMigrating: boolean;2896 readonly type: 'AccountNotEmpty' | 'AccountIsNotMigrating';2867 readonly type: 'AccountNotEmpty' | 'AccountIsNotMigrating';2897 }2868 }289828692899 /** @name SpRuntimeMultiSignature (412) */2870 /** @name SpRuntimeMultiSignature (410) */2900 export interface SpRuntimeMultiSignature extends Enum {2871 export interface SpRuntimeMultiSignature extends Enum {2901 readonly isEd25519: boolean;2872 readonly isEd25519: boolean;2902 readonly asEd25519: SpCoreEd25519Signature;2873 readonly asEd25519: SpCoreEd25519Signature;2907 readonly type: 'Ed25519' | 'Sr25519' | 'Ecdsa';2878 readonly type: 'Ed25519' | 'Sr25519' | 'Ecdsa';2908 }2879 }290928802910 /** @name SpCoreEd25519Signature (413) */2881 /** @name SpCoreEd25519Signature (411) */2911 export interface SpCoreEd25519Signature extends U8aFixed {}2882 export interface SpCoreEd25519Signature extends U8aFixed {}291228832913 /** @name SpCoreSr25519Signature (415) */2884 /** @name SpCoreSr25519Signature (413) */2914 export interface SpCoreSr25519Signature extends U8aFixed {}2885 export interface SpCoreSr25519Signature extends U8aFixed {}291528862916 /** @name SpCoreEcdsaSignature (416) */2887 /** @name SpCoreEcdsaSignature (414) */2917 export interface SpCoreEcdsaSignature extends U8aFixed {}2888 export interface SpCoreEcdsaSignature extends U8aFixed {}291828892919 /** @name FrameSystemExtensionsCheckSpecVersion (419) */2890 /** @name FrameSystemExtensionsCheckSpecVersion (417) */2920 export type FrameSystemExtensionsCheckSpecVersion = Null;2891 export type FrameSystemExtensionsCheckSpecVersion = Null;292128922922 /** @name FrameSystemExtensionsCheckGenesis (420) */2893 /** @name FrameSystemExtensionsCheckGenesis (418) */2923 export type FrameSystemExtensionsCheckGenesis = Null;2894 export type FrameSystemExtensionsCheckGenesis = Null;292428952925 /** @name FrameSystemExtensionsCheckNonce (423) */2896 /** @name FrameSystemExtensionsCheckNonce (421) */2926 export interface FrameSystemExtensionsCheckNonce extends Compact<u32> {}2897 export interface FrameSystemExtensionsCheckNonce extends Compact<u32> {}292728982928 /** @name FrameSystemExtensionsCheckWeight (424) */2899 /** @name FrameSystemExtensionsCheckWeight (422) */2929 export type FrameSystemExtensionsCheckWeight = Null;2900 export type FrameSystemExtensionsCheckWeight = Null;293029012931 /** @name PalletTemplateTransactionPaymentChargeTransactionPayment (425) */2902 /** @name PalletTemplateTransactionPaymentChargeTransactionPayment (423) */2932 export interface PalletTemplateTransactionPaymentChargeTransactionPayment extends Compact<u128> {}2903 export interface PalletTemplateTransactionPaymentChargeTransactionPayment extends Compact<u128> {}293329042934 /** @name OpalRuntimeRuntime (426) */2905 /** @name OpalRuntimeRuntime (424) */2935 export type OpalRuntimeRuntime = Null;2906 export type OpalRuntimeRuntime = Null;293629072937 /** @name PalletEthereumFakeTransactionFinalizer (427) */2908 /** @name PalletEthereumFakeTransactionFinalizer (425) */2938 export type PalletEthereumFakeTransactionFinalizer = Null;2909 export type PalletEthereumFakeTransactionFinalizer = Null;293929102940} // declare module2911} // declare moduletests/src/interfaces/unique/definitions.tsdiffbeforeafterboth262627const collectionParam = {name: 'collection', type: 'u32'};27const collectionParam = {name: 'collection', type: 'u32'};28const tokenParam = {name: 'tokenId', type: 'u32'};28const tokenParam = {name: 'tokenId', type: 'u32'};29const propertyKeysParam = {name: 'propertyKeys', type: 'Vec<String>'};29const propertyKeysParam = {name: 'propertyKeys', type: 'Vec<String>', isOptional: true};30const crossAccountParam = (name = 'account') => ({name, type: CROSS_ACCOUNT_ID_TYPE});30const crossAccountParam = (name = 'account') => ({name, type: CROSS_ACCOUNT_ID_TYPE});31const atParam = {name: 'at', type: 'Hash', isOptional: true};31const atParam = {name: 'at', type: 'Hash', isOptional: true};3232tests/src/interfaces/unique/types.tsdiffbeforeafterboth446/** @name FrameSupportPalletId */446/** @name FrameSupportPalletId */447export interface FrameSupportPalletId extends U8aFixed {}447export interface FrameSupportPalletId extends U8aFixed {}448449/** @name FrameSupportStorageBoundedBTreeSet */450export interface FrameSupportStorageBoundedBTreeSet extends BTreeSet<u32> {}451448452/** @name FrameSupportTokensMiscBalanceStatus */449/** @name FrameSupportTokensMiscBalanceStatus */453export interface FrameSupportTokensMiscBalanceStatus extends Enum {450export interface FrameSupportTokensMiscBalanceStatus extends Enum {875 readonly isCollectionDescriptionLimitExceeded: boolean;872 readonly isCollectionDescriptionLimitExceeded: boolean;876 readonly isCollectionTokenPrefixLimitExceeded: boolean;873 readonly isCollectionTokenPrefixLimitExceeded: boolean;877 readonly isTotalCollectionsLimitExceeded: boolean;874 readonly isTotalCollectionsLimitExceeded: boolean;878 readonly isTokenVariableDataLimitExceeded: boolean;879 readonly isCollectionAdminCountExceeded: boolean;875 readonly isCollectionAdminCountExceeded: boolean;880 readonly isCollectionLimitBoundsExceeded: boolean;876 readonly isCollectionLimitBoundsExceeded: boolean;881 readonly isOwnerPermissionsCantBeReverted: boolean;877 readonly isOwnerPermissionsCantBeReverted: boolean;896 readonly isCollectionFieldSizeExceeded: boolean;892 readonly isCollectionFieldSizeExceeded: boolean;897 readonly isNoSpaceForProperty: boolean;893 readonly isNoSpaceForProperty: boolean;898 readonly isPropertyLimitReached: boolean;894 readonly isPropertyLimitReached: boolean;899 readonly isUnableToReadUnboundedKeys: boolean;895 readonly isPropertyKeyIsTooLong: boolean;900 readonly isInvalidCharacterInPropertyKey: boolean;896 readonly isInvalidCharacterInPropertyKey: boolean;901 readonly isEmptyPropertyKey: boolean;897 readonly isEmptyPropertyKey: boolean;902 readonly type: 'CollectionNotFound' | 'MustBeTokenOwner' | 'NoPermission' | 'PublicMintingNotAllowed' | 'AddressNotInAllowlist' | 'CollectionNameLimitExceeded' | 'CollectionDescriptionLimitExceeded' | 'CollectionTokenPrefixLimitExceeded' | 'TotalCollectionsLimitExceeded' | 'TokenVariableDataLimitExceeded' | 'CollectionAdminCountExceeded' | 'CollectionLimitBoundsExceeded' | 'OwnerPermissionsCantBeReverted' | 'TransferNotAllowed' | 'AccountTokenLimitExceeded' | 'CollectionTokenLimitExceeded' | 'MetadataFlagFrozen' | 'TokenNotFound' | 'TokenValueTooLow' | 'ApprovedValueTooLow' | 'CantApproveMoreThanOwned' | 'AddressIsZero' | 'UnsupportedOperation' | 'NotSufficientFounds' | 'NestingIsDisabled' | 'OnlyOwnerAllowedToNest' | 'SourceCollectionIsNotAllowedToNest' | 'CollectionFieldSizeExceeded' | 'NoSpaceForProperty' | 'PropertyLimitReached' | 'UnableToReadUnboundedKeys' | 'InvalidCharacterInPropertyKey' | 'EmptyPropertyKey';898 readonly type: 'CollectionNotFound' | 'MustBeTokenOwner' | 'NoPermission' | 'PublicMintingNotAllowed' | 'AddressNotInAllowlist' | 'CollectionNameLimitExceeded' | 'CollectionDescriptionLimitExceeded' | 'CollectionTokenPrefixLimitExceeded' | 'TotalCollectionsLimitExceeded' | 'CollectionAdminCountExceeded' | 'CollectionLimitBoundsExceeded' | 'OwnerPermissionsCantBeReverted' | 'TransferNotAllowed' | 'AccountTokenLimitExceeded' | 'CollectionTokenLimitExceeded' | 'MetadataFlagFrozen' | 'TokenNotFound' | 'TokenValueTooLow' | 'ApprovedValueTooLow' | 'CantApproveMoreThanOwned' | 'AddressIsZero' | 'UnsupportedOperation' | 'NotSufficientFounds' | 'NestingIsDisabled' | 'OnlyOwnerAllowedToNest' | 'SourceCollectionIsNotAllowedToNest' | 'CollectionFieldSizeExceeded' | 'NoSpaceForProperty' | 'PropertyLimitReached' | 'PropertyKeyIsTooLong' | 'InvalidCharacterInPropertyKey' | 'EmptyPropertyKey';903}899}904900905/** @name PalletCommonEvent */901/** @name PalletCommonEvent */1115/** @name PalletNonfungibleItemData */1111/** @name PalletNonfungibleItemData */1116export interface PalletNonfungibleItemData extends Struct {1112export interface PalletNonfungibleItemData extends Struct {1117 readonly constData: Bytes;1113 readonly constData: Bytes;1118 readonly variableData: Bytes;1119 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;1114 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;1120}1115}112111161131/** @name PalletRefungibleItemData */1126/** @name PalletRefungibleItemData */1132export interface PalletRefungibleItemData extends Struct {1127export interface PalletRefungibleItemData extends Struct {1133 readonly constData: Bytes;1128 readonly constData: Bytes;1134 readonly variableData: Bytes;1135}1129}113611301137/** @name PalletStructureCall */1131/** @name PalletStructureCall */1439 readonly itemId: u32;1433 readonly itemId: u32;1440 readonly value: u128;1434 readonly value: u128;1441 } & Struct;1435 } & Struct;1442 readonly isSetVariableMetaData: boolean;1443 readonly asSetVariableMetaData: {1444 readonly collectionId: u32;1445 readonly itemId: u32;1446 readonly data: Bytes;1447 } & Struct;1448 readonly isSetMetaUpdatePermissionFlag: boolean;1449 readonly asSetMetaUpdatePermissionFlag: {1450 readonly collectionId: u32;1451 readonly value: UpDataStructsMetaUpdatePermission;1452 } & Struct;1453 readonly isSetSchemaVersion: boolean;1436 readonly isSetSchemaVersion: boolean;1454 readonly asSetSchemaVersion: {1437 readonly asSetSchemaVersion: {1455 readonly collectionId: u32;1438 readonly collectionId: u32;1470 readonly collectionId: u32;1453 readonly collectionId: u32;1471 readonly newLimit: UpDataStructsCollectionLimits;1454 readonly newLimit: UpDataStructsCollectionLimits;1472 } & Struct;1455 } & Struct;1473 readonly type: 'CreateCollection' | 'CreateCollectionEx' | 'DestroyCollection' | 'AddToAllowList' | 'RemoveFromAllowList' | 'SetPublicAccessMode' | 'SetMintPermission' | 'ChangeCollectionOwner' | 'AddCollectionAdmin' | 'RemoveCollectionAdmin' | 'SetCollectionSponsor' | 'ConfirmSponsorship' | 'RemoveCollectionSponsor' | 'CreateItem' | 'CreateMultipleItems' | 'SetCollectionProperties' | 'DeleteCollectionProperties' | 'SetTokenProperties' | 'DeleteTokenProperties' | 'SetPropertyPermissions' | 'CreateMultipleItemsEx' | 'SetTransfersEnabledFlag' | 'BurnItem' | 'BurnFrom' | 'Transfer' | 'Approve' | 'TransferFrom' | 'SetVariableMetaData' | 'SetMetaUpdatePermissionFlag' | 'SetSchemaVersion' | 'SetOffchainSchema' | 'SetConstOnChainSchema' | 'SetCollectionLimits';1456 readonly type: 'CreateCollection' | 'CreateCollectionEx' | 'DestroyCollection' | 'AddToAllowList' | 'RemoveFromAllowList' | 'SetPublicAccessMode' | 'SetMintPermission' | 'ChangeCollectionOwner' | 'AddCollectionAdmin' | 'RemoveCollectionAdmin' | 'SetCollectionSponsor' | 'ConfirmSponsorship' | 'RemoveCollectionSponsor' | 'CreateItem' | 'CreateMultipleItems' | 'SetCollectionProperties' | 'DeleteCollectionProperties' | 'SetTokenProperties' | 'DeleteTokenProperties' | 'SetPropertyPermissions' | 'CreateMultipleItemsEx' | 'SetTransfersEnabledFlag' | 'BurnItem' | 'BurnFrom' | 'Transfer' | 'Approve' | 'TransferFrom' | 'SetSchemaVersion' | 'SetOffchainSchema' | 'SetConstOnChainSchema' | 'SetCollectionLimits';1474}1457}147514581476/** @name PalletUniqueError */1459/** @name PalletUniqueError */1632}1615}163316161634/** @name PhantomTypeUpDataStructsBaseInfo */1617/** @name PhantomTypeUpDataStructsBaseInfo */1635export interface PhantomTypeUpDataStructsBaseInfo extends Vec<Lookup359> {}1618export interface PhantomTypeUpDataStructsBaseInfo extends Vec<Lookup357> {}163616191637/** @name PhantomTypeUpDataStructsCollectionInfo */1620/** @name PhantomTypeUpDataStructsCollectionInfo */1638export interface PhantomTypeUpDataStructsCollectionInfo extends Vec<Lookup336> {}1621export interface PhantomTypeUpDataStructsCollectionInfo extends Vec<Lookup334> {}163916221640/** @name PhantomTypeUpDataStructsNftChild */1623/** @name PhantomTypeUpDataStructsNftChild */1641export interface PhantomTypeUpDataStructsNftChild extends Vec<Lookup374> {}1624export interface PhantomTypeUpDataStructsNftChild extends Vec<Lookup372> {}164216251643/** @name PhantomTypeUpDataStructsNftInfo */1626/** @name PhantomTypeUpDataStructsNftInfo */1644export interface PhantomTypeUpDataStructsNftInfo extends Vec<Lookup341> {}1627export interface PhantomTypeUpDataStructsNftInfo extends Vec<Lookup339> {}164516281646/** @name PhantomTypeUpDataStructsPartType */1629/** @name PhantomTypeUpDataStructsPartType */1647export interface PhantomTypeUpDataStructsPartType extends Vec<Lookup362> {}1630export interface PhantomTypeUpDataStructsPartType extends Vec<Lookup360> {}164816311649/** @name PhantomTypeUpDataStructsPropertyInfo */1632/** @name PhantomTypeUpDataStructsPropertyInfo */1650export interface PhantomTypeUpDataStructsPropertyInfo extends Vec<Lookup354> {}1633export interface PhantomTypeUpDataStructsPropertyInfo extends Vec<Lookup352> {}165116341652/** @name PhantomTypeUpDataStructsResourceInfo */1635/** @name PhantomTypeUpDataStructsResourceInfo */1653export interface PhantomTypeUpDataStructsResourceInfo extends Vec<Lookup347> {}1636export interface PhantomTypeUpDataStructsResourceInfo extends Vec<Lookup345> {}165416371655/** @name PhantomTypeUpDataStructsRpcCollection */1638/** @name PhantomTypeUpDataStructsRpcCollection */1656export interface PhantomTypeUpDataStructsRpcCollection extends Vec<Lookup333> {}1639export interface PhantomTypeUpDataStructsRpcCollection extends Vec<Lookup331> {}165716401658/** @name PhantomTypeUpDataStructsTheme */1641/** @name PhantomTypeUpDataStructsTheme */1659export interface PhantomTypeUpDataStructsTheme extends Vec<Lookup369> {}1642export interface PhantomTypeUpDataStructsTheme extends Vec<Lookup367> {}166016431661/** @name PhantomTypeUpDataStructsTokenData */1644/** @name PhantomTypeUpDataStructsTokenData */1662export interface PhantomTypeUpDataStructsTokenData extends Vec<Lookup329> {}1645export interface PhantomTypeUpDataStructsTokenData extends Vec<Lookup327> {}166316461664/** @name PolkadotCorePrimitivesInboundDownwardMessage */1647/** @name PolkadotCorePrimitivesInboundDownwardMessage */1665export interface PolkadotCorePrimitivesInboundDownwardMessage extends Struct {1648export interface PolkadotCorePrimitivesInboundDownwardMessage extends Struct {1963 readonly schemaVersion: UpDataStructsSchemaVersion;1946 readonly schemaVersion: UpDataStructsSchemaVersion;1964 readonly sponsorship: UpDataStructsSponsorshipState;1947 readonly sponsorship: UpDataStructsSponsorshipState;1965 readonly limits: UpDataStructsCollectionLimits;1948 readonly limits: UpDataStructsCollectionLimits;1966 readonly metaUpdatePermission: UpDataStructsMetaUpdatePermission;1967}1949}196819501969/** @name UpDataStructsCollectionField */1951/** @name UpDataStructsCollectionField */2015 readonly pendingSponsor: Option<AccountId32>;1997 readonly pendingSponsor: Option<AccountId32>;2016 readonly limits: Option<UpDataStructsCollectionLimits>;1998 readonly limits: Option<UpDataStructsCollectionLimits>;2017 readonly constOnChainSchema: Bytes;1999 readonly constOnChainSchema: Bytes;2018 readonly metaUpdatePermission: Option<UpDataStructsMetaUpdatePermission>;2019 readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;2000 readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;2020 readonly properties: Vec<UpDataStructsProperty>;2001 readonly properties: Vec<UpDataStructsProperty>;2021}2002}2052/** @name UpDataStructsCreateNftData */2033/** @name UpDataStructsCreateNftData */2053export interface UpDataStructsCreateNftData extends Struct {2034export interface UpDataStructsCreateNftData extends Struct {2054 readonly constData: Bytes;2035 readonly constData: Bytes;2055 readonly variableData: Bytes;2056 readonly properties: Vec<UpDataStructsProperty>;2036 readonly properties: Vec<UpDataStructsProperty>;2057}2037}205820382059/** @name UpDataStructsCreateNftExData */2039/** @name UpDataStructsCreateNftExData */2060export interface UpDataStructsCreateNftExData extends Struct {2040export interface UpDataStructsCreateNftExData extends Struct {2061 readonly constData: Bytes;2041 readonly constData: Bytes;2062 readonly variableData: Bytes;2063 readonly properties: Vec<UpDataStructsProperty>;2042 readonly properties: Vec<UpDataStructsProperty>;2064 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;2043 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;2065}2044}206620452067/** @name UpDataStructsCreateReFungibleData */2046/** @name UpDataStructsCreateReFungibleData */2068export interface UpDataStructsCreateReFungibleData extends Struct {2047export interface UpDataStructsCreateReFungibleData extends Struct {2069 readonly constData: Bytes;2048 readonly constData: Bytes;2070 readonly variableData: Bytes;2071 readonly pieces: u128;2049 readonly pieces: u128;2072}2050}207320512074/** @name UpDataStructsCreateRefungibleExData */2052/** @name UpDataStructsCreateRefungibleExData */2075export interface UpDataStructsCreateRefungibleExData extends Struct {2053export interface UpDataStructsCreateRefungibleExData extends Struct {2076 readonly constData: Bytes;2054 readonly constData: Bytes;2077 readonly variableData: Bytes;2078 readonly users: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>;2055 readonly users: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>;2079}2056}20802081/** @name UpDataStructsMetaUpdatePermission */2082export interface UpDataStructsMetaUpdatePermission extends Enum {2083 readonly isItemOwner: boolean;2084 readonly isAdmin: boolean;2085 readonly isNone: boolean;2086 readonly type: 'ItemOwner' | 'Admin' | 'None';2087}208820572089/** @name UpDataStructsNestingRule */2058/** @name UpDataStructsNestingRule */2090export interface UpDataStructsNestingRule extends Enum {2059export interface UpDataStructsNestingRule extends Enum {2091 readonly isDisabled: boolean;2060 readonly isDisabled: boolean;2092 readonly isOwner: boolean;2061 readonly isOwner: boolean;2093 readonly isOwnerRestricted: boolean;2062 readonly isOwnerRestricted: boolean;2094 readonly asOwnerRestricted: FrameSupportStorageBoundedBTreeSet;2063 readonly asOwnerRestricted: BTreeSet<u32>;2095 readonly type: 'Disabled' | 'Owner' | 'OwnerRestricted';2064 readonly type: 'Disabled' | 'Owner' | 'OwnerRestricted';2096}2065}209720662141 readonly sponsorship: UpDataStructsSponsorshipState;2110 readonly sponsorship: UpDataStructsSponsorshipState;2142 readonly limits: UpDataStructsCollectionLimits;2111 readonly limits: UpDataStructsCollectionLimits;2143 readonly constOnChainSchema: Bytes;2112 readonly constOnChainSchema: Bytes;2144 readonly metaUpdatePermission: UpDataStructsMetaUpdatePermission;2145 readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;2113 readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;2146 readonly properties: Vec<UpDataStructsProperty>;2114 readonly properties: Vec<UpDataStructsProperty>;2147}2115}tests/src/metadataUpdate.test.tsdiffbeforeafterbothno changes
tests/src/nesting/migration-check.test.tsdiffbeforeafterboth37 accountTokenOwnershipLimit: 3,37 accountTokenOwnershipLimit: 3,38 },38 },39 constOnChainSchema: '0x333333',39 constOnChainSchema: '0x333333',40 metaUpdatePermission: 'Admin',41 });40 });42 const events = await submitTransactionAsync(alice, tx);41 const events = await submitTransactionAsync(alice, tx);43 const result = getCreateCollectionResult(events);42 const result = getCreateCollectionResult(events);tests/src/nesting/rules-smoke.test.tsdiffbeforeafterboth39 it('called for nonfungible', async () => {39 it('called for nonfungible', async () => {40 await usingApi(async api => {40 await usingApi(async api => {41 const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}});41 const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}});42 await expect(executeTransaction(api, alice, api.tx.unique.createItem(collection, nestTarget, {NFT: {ConstData: [], VariableData: {}}})))42 await expect(executeTransaction(api, alice, api.tx.unique.createItem(collection, nestTarget, {NFT: {ConstData: []}})))43 .to.be.rejectedWith(/^common\.SourceCollectionIsNotAllowedToNest$/);43 .to.be.rejectedWith(/^common\.SourceCollectionIsNotAllowedToNest$/);444445 const token = await createItemExpectSuccess(alice, collection, 'NFT', {Substrate: alice.address});45 const token = await createItemExpectSuccess(alice, collection, 'NFT', {Substrate: alice.address});51 it('called for refungible', async () => {51 it('called for refungible', async () => {52 await usingApi(async api => {52 await usingApi(async api => {53 const collection = await createCollectionExpectSuccess({mode: {type: 'ReFungible'}});53 const collection = await createCollectionExpectSuccess({mode: {type: 'ReFungible'}});54 await expect(executeTransaction(api, alice, api.tx.unique.createItem(collection, nestTarget, {ReFungible: {ConstData: [], VariableData: {}}})))54 await expect(executeTransaction(api, alice, api.tx.unique.createItem(collection, nestTarget, {ReFungible: {ConstData: []}})))55 .to.be.rejectedWith(/^common\.SourceCollectionIsNotAllowedToNest$/);55 .to.be.rejectedWith(/^common\.SourceCollectionIsNotAllowedToNest$/);565657 const token = await createItemExpectSuccess(alice, collection, 'ReFungible', {Substrate: alice.address});57 const token = await createItemExpectSuccess(alice, collection, 'ReFungible', {Substrate: alice.address});tests/src/setVariableMetaData.test.tsdiffbeforeafterbothno changes
tests/src/setVariableMetadataSponsoringRateLimit.test.tsdiffbeforeafterbothno changes
tests/src/util/helpers.tsdiffbeforeafterboth142export interface IReFungibleTokenDataType {142export interface IReFungibleTokenDataType {143 owner: IReFungibleOwner[];143 owner: IReFungibleOwner[];144 constData: number[];144 constData: number[];145 variableData: number[];146}145}147146148export function uniqueEventMessage(events: EventRecord[]): IGetMessage {147export function uniqueEventMessage(events: EventRecord[]): IGetMessage {651 });650 });652}651}653654export async function setMetadataUpdatePermissionFlagExpectSuccess(sender: IKeyringPair, collectionId: number, flag: string) {655656 await usingApi(async (api) => {657 const tx = api.tx.unique.setMetaUpdatePermissionFlag(collectionId, flag as any);658 const events = await submitTransactionAsync(sender, tx);659 const result = getGenericResult(events);660661 expect(result.success).to.be.true;662 });663}664665export async function setMetadataUpdatePermissionFlagExpectFailure(sender: IKeyringPair, collectionId: number, flag: string) {666667 await usingApi(async (api) => {668 const tx = api.tx.unique.setMetaUpdatePermissionFlag(collectionId, flag as any);669 const events = await expect(submitTransactionExpectFailAsync(sender, tx)).to.be.rejected;670 const result = getGenericResult(events);671672 expect(result.success).to.be.false;673 });674}675652676export async function enableContractSponsoringExpectSuccess(sender: IKeyringPair, contractAddress: AccountId | string, enable: boolean) {653export async function enableContractSponsoringExpectSuccess(sender: IKeyringPair, contractAddress: AccountId | string, enable: boolean) {677 await usingApi(async (api) => {654 await usingApi(async (api) => {794 });771 });795}772}796797export async function setVariableMetaDataExpectSuccess(sender: IKeyringPair, collectionId: number, itemId: number, data: number[]) {798 await usingApi(async (api) => {799 const tx = api.tx.unique.setVariableMetaData(collectionId, itemId, '0x' + Buffer.from(data).toString('hex'));800 const events = await submitTransactionAsync(sender, tx);801 const result = getGenericResult(events);802803 expect(result.success).to.be.true;804 });805}806807export async function setVariableMetaDataExpectFailure(sender: IKeyringPair, collectionId: number, itemId: number, data: number[]) {808 await usingApi(async (api) => {809 const tx = api.tx.unique.setVariableMetaData(collectionId, itemId, '0x' + Buffer.from(data).toString('hex'));810 await expect(submitTransactionExpectFailAsync(sender, tx)).to.be.rejected;811 });812}813773814export async function setOffchainSchemaExpectSuccess(sender: IKeyringPair, collectionId: number, data: number[]) {774export async function setOffchainSchemaExpectSuccess(sender: IKeyringPair, collectionId: number, data: number[]) {815 await usingApi(async (api) => {775 await usingApi(async (api) => {1138): Promise<string[]> {1098): Promise<string[]> {1139 return (await api.rpc.unique.adminlist(collectionId)).toHuman() as any;1099 return (await api.rpc.unique.adminlist(collectionId)).toHuman() as any;1140}1100}1141export async function getVariableMetadata(1142 api: ApiPromise,1143 collectionId: number,1144 tokenId: number,1145): Promise<number[]> {1146 return [...(await api.rpc.unique.variableMetadata(collectionId, tokenId))];1147}1148export async function getConstMetadata(1101export async function getConstMetadata(1149 api: ApiPromise,1102 api: ApiPromise,1150 collectionId: number,1103 collectionId: number,1182 const createData = {fungible: {value: 10}};1135 const createData = {fungible: {value: 10}};1183 tx = api.tx.unique.createItem(collectionId, to, createData as any);1136 tx = api.tx.unique.createItem(collectionId, to, createData as any);1184 } else if (createMode === 'ReFungible') {1137 } else if (createMode === 'ReFungible') {1185 const createData = {refungible: {const_data: [], variable_data: [], pieces: 100}};1138 const createData = {refungible: {const_data: [], pieces: 100}};1186 tx = api.tx.unique.createItem(collectionId, to, createData as any);1139 tx = api.tx.unique.createItem(collectionId, to, createData as any);1187 } else {1140 } else {1188 const createData = {nft: {const_data: [], variable_data: []}};1141 const createData = {nft: {const_data: []}};1189 tx = api.tx.unique.createItem(collectionId, to, createData as any);1142 tx = api.tx.unique.createItem(collectionId, to, createData as any);1190 }1143 }11911144