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.shdiffbeforeafterboth--- a/.maintain/scripts/generate_api.sh
+++ b/.maintain/scripts/generate_api.sh
@@ -7,6 +7,5 @@
sed -n '/=== SNIP START ===/, /=== SNIP END ===/{ /=== SNIP START ===/! { /=== SNIP END ===/! p } }' $tmp > $raw
formatted=$(mktemp)
prettier --use-tabs $raw > $formatted
-solhint --fix $formatted
mv $formatted $OUTPUT
Cargo.lockdiffbeforeafterboth--- a/Cargo.lock
+++ b/Cargo.lock
@@ -6391,6 +6391,7 @@
"sp-core",
"sp-runtime",
"sp-std",
+ "struct-versioning",
"up-data-structs",
]
@@ -6508,6 +6509,7 @@
"sp-core",
"sp-runtime",
"sp-std",
+ "struct-versioning",
"up-data-structs",
]
client/rpc/src/lib.rsdiffbeforeafterboth--- a/client/rpc/src/lib.rs
+++ b/client/rpc/src/lib.rs
@@ -30,8 +30,8 @@
// RMRK
use rmrk_rpc::RmrkApi as RmrkRuntimeApi;
use up_data_structs::{
- RmrkCollectionId, RmrkNftId, RmrkBaseId, RmrkNftChild,
- RmrkThemeName, RmrkPropertyKey, RmrkResourceId
+ RmrkCollectionId, RmrkNftId, RmrkBaseId, RmrkNftChild, RmrkThemeName, RmrkPropertyKey,
+ RmrkResourceId,
};
pub use rmrk_unique_rpc::RmrkApi;
@@ -75,13 +75,6 @@
) -> Result<Option<CrossAccountId>>;
#[rpc(name = "unique_constMetadata")]
fn const_metadata(
- &self,
- collection: CollectionId,
- token: TokenId,
- at: Option<BlockHash>,
- ) -> Result<Vec<u8>>;
- #[rpc(name = "unique_variableMetadata")]
- fn variable_metadata(
&self,
collection: CollectionId,
token: TokenId,
@@ -92,7 +85,7 @@
fn collection_properties(
&self,
collection: CollectionId,
- keys: Vec<String>,
+ keys: Option<Vec<String>>,
at: Option<BlockHash>,
) -> Result<Vec<Property>>;
@@ -101,7 +94,7 @@
&self,
collection: CollectionId,
token_id: TokenId,
- properties: Vec<String>,
+ keys: Option<Vec<String>>,
at: Option<BlockHash>,
) -> Result<Vec<Property>>;
@@ -109,7 +102,7 @@
fn property_permissions(
&self,
collection: CollectionId,
- keys: Vec<String>,
+ keys: Option<Vec<String>>,
at: Option<BlockHash>,
) -> Result<Vec<PropertyKeyPermission>>;
@@ -118,7 +111,7 @@
&self,
collection: CollectionId,
token_id: TokenId,
- keys: Vec<String>,
+ keys: Option<Vec<String>>,
at: Option<BlockHash>,
) -> Result<TokenData<CrossAccountId>>;
@@ -428,10 +421,6 @@
);
pass_method!(
const_metadata(collection: CollectionId, token: TokenId) -> Vec<u8>, unique_api
- );
- pass_method!(
- variable_metadata(collection: CollectionId, token: TokenId) -> Vec<u8>,
- unique_api
);
pass_method!(total_supply(collection: CollectionId) -> u32, unique_api);
pass_method!(account_balance(collection: CollectionId, account: CrossAccountId) -> u32, unique_api);
@@ -445,7 +434,7 @@
collection: CollectionId,
#[map(|keys| string_keys_to_bytes_keys(keys))]
- keys: Vec<String>
+ keys: Option<Vec<String>>
) -> Vec<Property>, unique_api);
pass_method!(token_properties(
@@ -453,14 +442,14 @@
token_id: TokenId,
#[map(|keys| string_keys_to_bytes_keys(keys))]
- properties: Vec<String>
+ keys: Option<Vec<String>>
) -> Vec<Property>, unique_api);
pass_method!(property_permissions(
collection: CollectionId,
#[map(|keys| string_keys_to_bytes_keys(keys))]
- keys: Vec<String>
+ keys: Option<Vec<String>>
) -> Vec<PropertyKeyPermission>, unique_api);
pass_method!(token_data(
@@ -468,7 +457,7 @@
token_id: TokenId,
#[map(|keys| string_keys_to_bytes_keys(keys))]
- keys: Vec<String>,
+ keys: Option<Vec<String>>,
) -> TokenData<CrossAccountId>, unique_api);
pass_method!(adminlist(collection: CollectionId) -> Vec<CrossAccountId>, unique_api);
@@ -549,6 +538,6 @@
pass_method!(theme(base_id: RmrkBaseId, theme_name: RmrkThemeName, filter_keys: Option<Vec<RmrkPropertyKey>>) -> Option<Theme>, rmrk_api);
}
-fn string_keys_to_bytes_keys(keys: Vec<String>) -> Vec<Vec<u8>> {
- keys.into_iter().map(|key| key.into_bytes()).collect()
+fn string_keys_to_bytes_keys(keys: Option<Vec<String>>) -> Option<Vec<Vec<u8>>> {
+ keys.map(|keys| keys.into_iter().map(|key| key.into_bytes()).collect())
}
node/cli/src/service.rsdiffbeforeafterboth--- a/node/cli/src/service.rs
+++ b/node/cli/src/service.rs
@@ -65,25 +65,12 @@
use fc_rpc_core::types::FilterPool;
use fc_mapping_sync::{MappingSyncWorker, SyncStrategy};
-use unique_runtime_common::types::{
- AuraId,
- RuntimeInstance,
- AccountId,
- Balance,
- Index,
- Hash,
- Block,
-};
+use unique_runtime_common::types::{AuraId, RuntimeInstance, AccountId, Balance, Index, Hash, Block};
// RMRK
use up_data_structs::{
- RmrkCollectionInfo,
- RmrkInstanceInfo,
- RmrkResourceInfo,
- RmrkPropertyInfo,
- RmrkBaseInfo,
- RmrkPartType,
- RmrkTheme,
+ RmrkCollectionInfo, RmrkInstanceInfo, RmrkResourceInfo, RmrkPropertyInfo, RmrkBaseInfo,
+ RmrkPartType, RmrkTheme,
};
/// Unique native executor instance.
node/rpc/src/lib.rsdiffbeforeafterboth--- a/node/rpc/src/lib.rs
+++ b/node/rpc/src/lib.rs
@@ -41,17 +41,12 @@
use std::{collections::BTreeMap, sync::Arc};
use unique_runtime_common::types::{
- Hash,
- AccountId,
- RuntimeInstance,
- Index,
- Block,
- BlockNumber,
- Balance,
+ Hash, AccountId, RuntimeInstance, Index, Block, BlockNumber, Balance,
};
// RMRK
use up_data_structs::{
- RmrkCollectionInfo, RmrkInstanceInfo, RmrkResourceInfo, RmrkPropertyInfo, RmrkBaseInfo, RmrkPartType, RmrkTheme,
+ RmrkCollectionInfo, RmrkInstanceInfo, RmrkResourceInfo, RmrkPropertyInfo, RmrkBaseInfo,
+ RmrkPartType, RmrkTheme,
};
/// Public io handler for exporting into other modules
pallets/common/src/erc.rsdiffbeforeafterboth--- a/pallets/common/src/erc.rs
+++ b/pallets/common/src/erc.rs
@@ -21,7 +21,7 @@
use sp_std::vec::Vec;
use up_data_structs::Property;
-use crate::{Pallet, CollectionHandle, Config};
+use crate::{Pallet, CollectionHandle, Config, CollectionProperties};
/// Does not always represent a full collection, for RFT it is either
/// collection (Implementing ERC721), or specific collection token (Implementing ERC20)
@@ -33,24 +33,35 @@
#[solidity_interface(name = "CollectionProperties")]
impl<T: Config> CollectionHandle<T> {
- fn set_property(&mut self, caller: caller, key: string, value: string) -> Result<()> {
- <Pallet<T>>::set_collection_property(
- self,
- &T::CrossAccountId::from_eth(caller),
- Property {
- key: <Vec<u8>>::from(key)
- .try_into()
- .map_err(|_| "key too large")?,
- value: <Vec<u8>>::from(value)
- .try_into()
- .map_err(|_| "value too large")?,
- },
- )
- .map_err(dispatch_to_evm::<T>)?;
- Ok(())
+ fn set_collection_property(&mut self, caller: caller, key: string, value: bytes) -> Result<()> {
+ let caller = T::CrossAccountId::from_eth(caller);
+ let key = <Vec<u8>>::from(key)
+ .try_into()
+ .map_err(|_| "key too large")?;
+ let value = value.try_into().map_err(|_| "value too large")?;
+
+ <Pallet<T>>::set_collection_property(self, &caller, Property { key, value })
+ .map_err(dispatch_to_evm::<T>)
}
- fn delete_property(&mut self, caller: caller, key: string) -> Result<()> {
- self.set_property(caller, key, string::new())
+ fn delete_collection_property(&mut self, caller: caller, key: string) -> Result<()> {
+ let caller = T::CrossAccountId::from_eth(caller);
+ let key = <Vec<u8>>::from(key)
+ .try_into()
+ .map_err(|_| "key too large")?;
+
+ <Pallet<T>>::delete_collection_property(self, &caller, key).map_err(dispatch_to_evm::<T>)
+ }
+
+ /// Throws error if key not found
+ fn collection_property(&self, key: string) -> Result<bytes> {
+ let key = <Vec<u8>>::from(key)
+ .try_into()
+ .map_err(|_| "key too large")?;
+
+ let props = <CollectionProperties<T>>::get(self.id);
+ let prop = props.get(&key).ok_or("key not found")?;
+
+ Ok(prop.to_vec())
}
}
pallets/common/src/lib.rsdiffbeforeafterboth--- a/pallets/common/src/lib.rs
+++ b/pallets/common/src/lib.rs
@@ -22,23 +22,56 @@
use pallet_evm::account::CrossAccountId;
use frame_support::{
dispatch::{DispatchErrorWithPostInfo, DispatchResultWithPostInfo, Weight, PostDispatchInfo},
- ensure, fail,
+ ensure,
traits::{Imbalance, Get, Currency, WithdrawReasons, ExistenceRequirement},
BoundedVec,
weights::Pays,
+ transactional,
};
use pallet_evm::GasWeightMapping;
use up_data_structs::{
- COLLECTION_NUMBER_LIMIT, Collection, RpcCollection, CollectionId, CreateItemData,
- MAX_TOKEN_PREFIX_LENGTH, COLLECTION_ADMINS_LIMIT, MetaUpdatePermission, TokenId,
- CollectionStats, MAX_TOKEN_OWNERSHIP, CollectionMode, NFT_SPONSOR_TRANSFER_TIMEOUT,
- FUNGIBLE_SPONSOR_TRANSFER_TIMEOUT, REFUNGIBLE_SPONSOR_TRANSFER_TIMEOUT, MAX_SPONSOR_TIMEOUT,
- CUSTOM_DATA_LIMIT, CollectionLimits, CustomDataLimit, CreateCollectionData, SponsorshipState,
- CreateItemExData, SponsoringRateLimit, budget::Budget, COLLECTION_FIELD_LIMIT, CollectionField,
- PhantomType, Property, Properties, PropertiesPermissionMap, PropertyKey, PropertyPermission,
- PropertiesError, PropertyKeyPermission, TokenData, TrySet,
+ COLLECTION_NUMBER_LIMIT,
+ Collection,
+ RpcCollection,
+ CollectionId,
+ CreateItemData,
+ MAX_TOKEN_PREFIX_LENGTH,
+ COLLECTION_ADMINS_LIMIT,
+ TokenId,
+ CollectionStats,
+ MAX_TOKEN_OWNERSHIP,
+ CollectionMode,
+ NFT_SPONSOR_TRANSFER_TIMEOUT,
+ FUNGIBLE_SPONSOR_TRANSFER_TIMEOUT,
+ REFUNGIBLE_SPONSOR_TRANSFER_TIMEOUT,
+ MAX_SPONSOR_TIMEOUT,
+ CUSTOM_DATA_LIMIT,
+ CollectionLimits,
+ CreateCollectionData,
+ SponsorshipState,
+ CreateItemExData,
+ SponsoringRateLimit,
+ budget::Budget,
+ COLLECTION_FIELD_LIMIT,
+ CollectionField,
+ PhantomType,
+ Property,
+ Properties,
+ PropertiesPermissionMap,
+ PropertyKey,
+ PropertyPermission,
+ PropertiesError,
+ PropertyKeyPermission,
+ TokenData,
+ TrySetProperty,
// RMRK
- RmrkCollectionInfo, RmrkInstanceInfo, RmrkResourceInfo, RmrkPropertyInfo, RmrkBaseInfo, RmrkPartType, RmrkTheme,
+ RmrkCollectionInfo,
+ RmrkInstanceInfo,
+ RmrkResourceInfo,
+ RmrkPropertyInfo,
+ RmrkBaseInfo,
+ RmrkPartType,
+ RmrkTheme,
RmrkNftChild,
};
@@ -138,21 +171,6 @@
<Error<T>>::AddressNotInAllowlist
);
Ok(())
- }
-
- pub fn check_can_update_meta(
- &self,
- subject: &T::CrossAccountId,
- item_owner: &T::CrossAccountId,
- ) -> DispatchResult {
- match self.meta_update_permission {
- MetaUpdatePermission::ItemOwner => {
- ensure!(subject == item_owner, <Error<T>>::NoPermission);
- Ok(())
- }
- MetaUpdatePermission::Admin => self.check_is_owner_or_admin(subject),
- MetaUpdatePermission::None => fail!(<Error<T>>::NoPermission),
- }
}
}
@@ -316,8 +334,6 @@
CollectionTokenPrefixLimitExceeded,
/// Total collections bound exceeded.
TotalCollectionsLimitExceeded,
- /// variable_data exceeded data limit.
- TokenVariableDataLimitExceeded,
/// Exceeded max admin count
CollectionAdminCountExceeded,
/// Collection limit bounds per collection exceeded
@@ -366,8 +382,8 @@
/// Tried to store more property keys than allowed
PropertyLimitReached,
- /// Unable to read array of unbounded keys
- UnableToReadUnboundedKeys,
+ /// Property key is too long
+ PropertyKeyIsTooLong,
/// Only ASCII letters, digits, and '_', '-' are allowed
InvalidCharacterInPropertyKey,
@@ -580,7 +596,6 @@
schema_version,
sponsorship,
limits,
- meta_update_permission,
} = <CollectionById<T>>::get(collection)?;
let token_property_permissions = <CollectionPropertyPermissions<T>>::get(collection)
@@ -610,7 +625,6 @@
schema_version,
sponsorship,
limits,
- meta_update_permission,
offchain_schema: <CollectionData<T>>::get((
collection,
CollectionField::OffchainSchema,
@@ -671,7 +685,6 @@
.limits
.map(|limits| Self::clamp_limits(data.mode.clone(), &Default::default(), limits))
.unwrap_or_else(|| Ok(CollectionLimits::default()))?,
- meta_update_permission: data.meta_update_permission.unwrap_or_default(),
};
let mut collection_properties = up_data_structs::CollectionProperties::get();
@@ -775,6 +788,7 @@
Ok(())
}
+ #[transactional]
pub fn set_collection_properties(
collection: &CollectionHandle<T>,
sender: &T::CrossAccountId,
@@ -807,6 +821,7 @@
Ok(())
}
+ #[transactional]
pub fn delete_collection_properties(
collection: &CollectionHandle<T>,
sender: &T::CrossAccountId,
@@ -849,6 +864,7 @@
Ok(())
}
+ #[transactional]
pub fn set_property_permissions(
collection: &CollectionHandle<T>,
sender: &T::CrossAccountId,
@@ -867,60 +883,69 @@
keys.into_iter()
.map(|key| -> Result<PropertyKey, DispatchError> {
key.try_into()
- .map_err(|_| <Error<T>>::UnableToReadUnboundedKeys.into())
+ .map_err(|_| <Error<T>>::PropertyKeyIsTooLong.into())
})
.collect::<Result<Vec<PropertyKey>, DispatchError>>()
- }
-
- pub fn check_property_key(key: &PropertyKey) -> Result<(), DispatchError> {
- let key_str = sp_std::str::from_utf8(key.as_slice())
- .map_err(|_| <Error<T>>::InvalidCharacterInPropertyKey)?;
-
- for ch in key_str.chars() {
- if !ch.is_ascii_alphanumeric() && ch != '_' && ch != '-' {
- return Err(<Error<T>>::InvalidCharacterInPropertyKey.into());
- }
- }
-
- Ok(())
}
pub fn filter_collection_properties(
collection_id: CollectionId,
- keys: Vec<PropertyKey>,
+ keys: Option<Vec<PropertyKey>>,
) -> Result<Vec<Property>, DispatchError> {
let properties = Self::collection_properties(collection_id);
let properties = keys
- .into_iter()
- .filter_map(|key| {
- properties.get(&key).map(|value| Property {
- key,
- value: value.clone(),
- })
+ .map(|keys| {
+ keys.into_iter()
+ .filter_map(|key| {
+ properties.get(&key).map(|value| Property {
+ key,
+ value: value.clone(),
+ })
+ })
+ .collect()
})
- .collect();
+ .unwrap_or_else(|| {
+ properties
+ .iter()
+ .map(|(key, value)| Property {
+ key: key.clone(),
+ value: value.clone(),
+ })
+ .collect()
+ });
Ok(properties)
}
pub fn filter_property_permissions(
collection_id: CollectionId,
- keys: Vec<PropertyKey>,
+ keys: Option<Vec<PropertyKey>>,
) -> Result<Vec<PropertyKeyPermission>, DispatchError> {
let permissions = Self::property_permissions(collection_id);
let key_permissions = keys
- .into_iter()
- .filter_map(|key| {
+ .map(|keys| {
+ keys.into_iter()
+ .filter_map(|key| {
+ permissions
+ .get(&key)
+ .map(|permission| PropertyKeyPermission {
+ key,
+ permission: permission.clone(),
+ })
+ })
+ .collect()
+ })
+ .unwrap_or_else(|| {
permissions
- .get(&key)
- .map(|permission| PropertyKeyPermission {
- key,
+ .iter()
+ .map(|(key, permission)| PropertyKeyPermission {
+ key: key.clone(),
permission: permission.clone(),
})
- })
- .collect();
+ .collect()
+ });
Ok(key_permissions)
}
@@ -1086,7 +1111,6 @@
fn approve() -> Weight;
fn transfer_from() -> Weight;
fn burn_from() -> Weight;
- fn set_variable_metadata(bytes: u32) -> Weight;
}
pub trait CommonCollectionOperations<T: Config> {
@@ -1174,13 +1198,6 @@
token: TokenId,
amount: u128,
nesting_budget: &dyn Budget,
- ) -> DispatchResultWithPostInfo;
-
- fn set_variable_metadata(
- &self,
- sender: T::CrossAccountId,
- token: TokenId,
- data: BoundedVec<u8, CustomDataLimit>,
) -> DispatchResultWithPostInfo;
fn check_nesting(
@@ -1198,8 +1215,7 @@
fn token_owner(&self, token: TokenId) -> Option<T::CrossAccountId>;
fn const_metadata(&self, token: TokenId) -> Vec<u8>;
- fn variable_metadata(&self, token: TokenId) -> Vec<u8>;
- fn token_properties(&self, token_id: TokenId, keys: Vec<PropertyKey>) -> Vec<Property>;
+ fn token_properties(&self, token_id: TokenId, keys: Option<Vec<PropertyKey>>) -> Vec<Property>;
/// Amount of unique collection tokens
fn total_supply(&self) -> u32;
/// Amount of different tokens account has (Applicable to nonfungible/refungible)
@@ -1232,6 +1248,7 @@
PropertiesError::NoSpaceForProperty => Self::NoSpaceForProperty,
PropertiesError::PropertyLimitReached => Self::PropertyLimitReached,
PropertiesError::InvalidCharacterInPropertyKey => Self::InvalidCharacterInPropertyKey,
+ PropertiesError::PropertyKeyIsTooLong => Self::PropertyKeyIsTooLong,
PropertiesError::EmptyPropertyKey => Self::EmptyPropertyKey,
}
}
pallets/evm-contract-helpers/src/stubs/ContractHelpers.rawdiffbeforeafterbothbinary blob — no preview
pallets/fungible/src/common.rsdiffbeforeafterboth--- a/pallets/fungible/src/common.rs
+++ b/pallets/fungible/src/common.rs
@@ -16,12 +16,12 @@
use core::marker::PhantomData;
-use frame_support::{dispatch::DispatchResultWithPostInfo, ensure, fail, weights::Weight, BoundedVec};
+use frame_support::{dispatch::DispatchResultWithPostInfo, ensure, fail, weights::Weight};
use up_data_structs::{TokenId, CollectionId, CreateItemExData, budget::Budget};
use pallet_common::{CommonCollectionOperations, CommonWeightInfo, with_weight};
use sp_runtime::ArithmeticError;
use sp_std::{vec::Vec, vec};
-use up_data_structs::{CustomDataLimit, Property, PropertyKey, PropertyKeyPermission};
+use up_data_structs::{Property, PropertyKey, PropertyKeyPermission};
use crate::{
Allowance, Balance, Config, Error, FungibleHandle, Pallet, SelfWeightOf, weights::WeightInfo,
@@ -84,11 +84,6 @@
fn burn_from() -> Weight {
<SelfWeightOf<T>>::burn_from()
- }
-
- fn set_variable_metadata(_bytes: u32) -> Weight {
- // Error
- 0
}
}
@@ -287,15 +282,6 @@
fail!(<Error<T>>::SettingPropertiesNotAllowed)
}
- fn set_variable_metadata(
- &self,
- _sender: T::CrossAccountId,
- _token: TokenId,
- _data: BoundedVec<u8, CustomDataLimit>,
- ) -> DispatchResultWithPostInfo {
- fail!(<Error<T>>::FungibleItemsDontHaveData)
- }
-
fn check_nesting(
&self,
_sender: <T>::CrossAccountId,
@@ -330,13 +316,14 @@
None
}
fn const_metadata(&self, _token: TokenId) -> Vec<u8> {
- Vec::new()
- }
- fn variable_metadata(&self, _token: TokenId) -> Vec<u8> {
Vec::new()
}
- fn token_properties(&self, _token_id: TokenId, _keys: Vec<PropertyKey>) -> Vec<Property> {
+ fn token_properties(
+ &self,
+ _token_id: TokenId,
+ _keys: Option<Vec<PropertyKey>>,
+ ) -> Vec<Property> {
Vec::new()
}
pallets/fungible/src/stubs/UniqueFungible.rawdiffbeforeafterbothbinary blob — no preview
pallets/fungible/src/stubs/UniqueFungible.soldiffbeforeafterboth--- a/pallets/fungible/src/stubs/UniqueFungible.sol
+++ b/pallets/fungible/src/stubs/UniqueFungible.sol
@@ -8,8 +8,13 @@
uint8 dummy;
string stub_error = "this contract is implemented in native";
}
+
contract ERC165 is Dummy {
- function supportsInterface(bytes4 interfaceID) external view returns (bool) {
+ function supportsInterface(bytes4 interfaceID)
+ external
+ view
+ returns (bool)
+ {
require(false, stub_error);
interfaceID;
return true;
@@ -19,24 +24,11 @@
// Inline
contract ERC20Events {
event Transfer(address indexed from, address indexed to, uint256 value);
- event Approval(address indexed owner, address indexed spender, uint256 value);
-}
-
-// Selector: 56fd500b
-contract CollectionProperties is Dummy, ERC165 {
- // Selector: setProperty(string,string) 62d9491f
- function setProperty(string memory key, string memory value) public {
- require(false, stub_error);
- key;
- value;
- dummy = 0;
- }
- // Selector: deleteProperty(string) 34241914
- function deleteProperty(string memory key) public {
- require(false, stub_error);
- key;
- dummy = 0;
- }
+ event Approval(
+ address indexed owner,
+ address indexed spender,
+ uint256 value
+ );
}
// Selector: 79cc6790
@@ -59,24 +51,28 @@
dummy;
return "";
}
+
// Selector: symbol() 95d89b41
function symbol() public view returns (string memory) {
require(false, stub_error);
dummy;
return "";
}
+
// Selector: totalSupply() 18160ddd
function totalSupply() public view returns (uint256) {
require(false, stub_error);
dummy;
return 0;
}
+
// Selector: decimals() 313ce567
function decimals() public view returns (uint8) {
require(false, stub_error);
dummy;
return 0;
}
+
// Selector: balanceOf(address) 70a08231
function balanceOf(address owner) public view returns (uint256) {
require(false, stub_error);
@@ -84,6 +80,7 @@
dummy;
return 0;
}
+
// Selector: transfer(address,uint256) a9059cbb
function transfer(address to, uint256 amount) public returns (bool) {
require(false, stub_error);
@@ -92,8 +89,13 @@
dummy = 0;
return false;
}
+
// Selector: transferFrom(address,address,uint256) 23b872dd
- function transferFrom(address from, address to, uint256 amount) public returns (bool) {
+ function transferFrom(
+ address from,
+ address to,
+ uint256 amount
+ ) public returns (bool) {
require(false, stub_error);
from;
to;
@@ -101,6 +103,7 @@
dummy = 0;
return false;
}
+
// Selector: approve(address,uint256) 095ea7b3
function approve(address spender, uint256 amount) public returns (bool) {
require(false, stub_error);
@@ -109,8 +112,13 @@
dummy = 0;
return false;
}
+
// Selector: allowance(address,address) dd62ed3e
- function allowance(address owner, address spender) public view returns (uint256) {
+ function allowance(address owner, address spender)
+ public
+ view
+ returns (uint256)
+ {
require(false, stub_error);
owner;
spender;
@@ -119,6 +127,44 @@
}
}
-contract UniqueFungible is Dummy, ERC165, ERC20, ERC20UniqueExtensions, CollectionProperties {
+// Selector: 9b5e29c5
+contract CollectionProperties is Dummy, ERC165 {
+ // Selector: setCollectionProperty(string,bytes) 2f073f66
+ function setCollectionProperty(string memory key, bytes memory value)
+ public
+ {
+ require(false, stub_error);
+ key;
+ value;
+ dummy = 0;
+ }
+
+ // Selector: deleteCollectionProperty(string) 7b7debce
+ function deleteCollectionProperty(string memory key) public {
+ require(false, stub_error);
+ key;
+ dummy = 0;
+ }
+
+ // Throws error if key not found
+ //
+ // Selector: collectionProperty(string) cf24fd6d
+ function collectionProperty(string memory key)
+ public
+ view
+ returns (bytes memory)
+ {
+ require(false, stub_error);
+ key;
+ dummy;
+ return hex"";
+ }
}
+contract UniqueFungible is
+ Dummy,
+ ERC165,
+ ERC20,
+ ERC20UniqueExtensions,
+ CollectionProperties
+{}
pallets/nonfungible/Cargo.tomldiffbeforeafterboth--- a/pallets/nonfungible/Cargo.toml
+++ b/pallets/nonfungible/Cargo.toml
@@ -27,6 +27,7 @@
scale-info = { version = "2.0.1", default-features = false, features = [
"derive",
] }
+struct-versioning = { path = "../../crates/struct-versioning" }
[features]
default = ["std"]
pallets/nonfungible/src/benchmarking.rsdiffbeforeafterboth--- a/pallets/nonfungible/src/benchmarking.rs
+++ b/pallets/nonfungible/src/benchmarking.rs
@@ -28,12 +28,7 @@
fn create_max_item_data<T: Config>(owner: T::CrossAccountId) -> CreateItemData<T> {
let const_data = create_data::<CUSTOM_DATA_LIMIT>();
- let variable_data = create_data::<CUSTOM_DATA_LIMIT>();
- CreateItemData::<T> {
- const_data,
- variable_data,
- owner,
- }
+ CreateItemData::<T> { const_data, owner }
}
fn create_max_item<T: Config>(
collection: &NonfungibleHandle<T>,
@@ -125,14 +120,4 @@
let item = create_max_item(&collection, &owner, sender.clone())?;
<Pallet<T>>::set_allowance(&collection, &sender, item, Some(&burner))?;
}: {<Pallet<T>>::burn_from(&collection, &burner, &sender, item, &Unlimited)?}
-
- set_variable_metadata {
- let b in 0..CUSTOM_DATA_LIMIT;
- bench_init!{
- owner: sub; collection: collection(owner);
- owner: cross_from_sub; sender: cross_sub;
- };
- let item = create_max_item(&collection, &owner, sender.clone())?;
- let data = create_var_data(b).try_into().unwrap();
- }: {<Pallet<T>>::set_variable_metadata(&collection, &sender, item, data)?}
}
pallets/nonfungible/src/common.rsdiffbeforeafterboth--- a/pallets/nonfungible/src/common.rs
+++ b/pallets/nonfungible/src/common.rs
@@ -16,10 +16,10 @@
use core::marker::PhantomData;
-use frame_support::{dispatch::DispatchResultWithPostInfo, ensure, fail, weights::Weight, BoundedVec};
+use frame_support::{dispatch::DispatchResultWithPostInfo, ensure, fail, weights::Weight};
use up_data_structs::{
- TokenId, CustomDataLimit, CreateItemExData, CollectionId, budget::Budget, Property,
- PropertyKey, PropertyKeyPermission,
+ TokenId, CreateItemExData, CollectionId, budget::Budget, Property, PropertyKey,
+ PropertyKeyPermission,
};
use pallet_common::{CommonCollectionOperations, CommonWeightInfo, with_weight};
use sp_runtime::DispatchError;
@@ -86,10 +86,6 @@
fn burn_from() -> Weight {
<SelfWeightOf<T>>::burn_from()
}
-
- fn set_variable_metadata(bytes: u32) -> Weight {
- <SelfWeightOf<T>>::set_variable_metadata(bytes)
- }
}
fn map_create_data<T: Config>(
@@ -99,7 +95,6 @@
match data {
up_data_structs::CreateItemData::NFT(data) => Ok(CreateItemData::<T> {
const_data: data.const_data,
- variable_data: data.variable_data,
properties: data.properties,
owner: to.clone(),
}),
@@ -184,7 +179,7 @@
let weight = <CommonWeights<T>>::delete_collection_properties(property_keys.len() as u32);
with_weight(
- <Pallet<T>>::delete_collection_properties(self, &sender, property_keys),
+ <Pallet<T>>::delete_collection_properties(self, sender, property_keys),
weight,
)
}
@@ -327,19 +322,6 @@
}
}
- fn set_variable_metadata(
- &self,
- sender: T::CrossAccountId,
- token: TokenId,
- data: BoundedVec<u8, CustomDataLimit>,
- ) -> DispatchResultWithPostInfo {
- let len = data.len();
- with_weight(
- <Pallet<T>>::set_variable_metadata(self, &sender, token, data),
- <CommonWeights<T>>::set_variable_metadata(len as u32),
- )
- }
-
fn check_nesting(
&self,
sender: T::CrossAccountId,
@@ -379,24 +361,29 @@
.unwrap_or_default()
.into_inner()
}
- fn variable_metadata(&self, token: TokenId) -> Vec<u8> {
- <TokenData<T>>::get((self.id, token))
- .map(|t| t.variable_data)
- .unwrap_or_default()
- .into_inner()
- }
- fn token_properties(&self, token_id: TokenId, keys: Vec<PropertyKey>) -> Vec<Property> {
+ fn token_properties(&self, token_id: TokenId, keys: Option<Vec<PropertyKey>>) -> Vec<Property> {
let properties = <Pallet<T>>::token_properties((self.id, token_id));
- keys.into_iter()
- .filter_map(|key| {
- properties.get(&key).map(|value| Property {
- key,
+ keys.map(|keys| {
+ keys.into_iter()
+ .filter_map(|key| {
+ properties.get(&key).map(|value| Property {
+ key,
+ value: value.clone(),
+ })
+ })
+ .collect()
+ })
+ .unwrap_or_else(|| {
+ properties
+ .iter()
+ .map(|(key, value)| Property {
+ key: key.clone(),
value: value.clone(),
})
- })
- .collect()
+ .collect()
+ })
}
fn total_supply(&self) -> u32 {
pallets/nonfungible/src/erc.rsdiffbeforeafterboth--- a/pallets/nonfungible/src/erc.rs
+++ b/pallets/nonfungible/src/erc.rs
@@ -21,10 +21,10 @@
};
use evm_coder::{ToLog, execution::*, generate_stubgen, solidity, solidity_interface, types::*, weight};
use frame_support::BoundedVec;
-use up_data_structs::{TokenId, SchemaVersion};
+use up_data_structs::{TokenId, SchemaVersion, PropertyPermission, PropertyKeyPermission, Property};
use pallet_evm_coder_substrate::dispatch_to_evm;
use sp_core::{H160, U256};
-use sp_std::{vec::Vec, vec};
+use sp_std::vec::Vec;
use pallet_common::{
erc::{CommonEvmHandler, PrecompileResult, CollectionPropertiesCall},
CollectionHandle,
@@ -35,9 +35,80 @@
use crate::{
AccountBalance, Config, CreateItemData, NonfungibleHandle, Pallet, TokenData, TokensMinted,
- SelfWeightOf, weights::WeightInfo,
+ SelfWeightOf, weights::WeightInfo, TokenProperties,
};
+#[solidity_interface(name = "TokenProperties")]
+impl<T: Config> NonfungibleHandle<T> {
+ fn set_token_property_permission(
+ &mut self,
+ caller: caller,
+ key: string,
+ is_mutable: bool,
+ collection_admin: bool,
+ token_owner: bool,
+ ) -> Result<()> {
+ let caller = T::CrossAccountId::from_eth(caller);
+ <Pallet<T>>::set_property_permission(
+ self,
+ &caller,
+ PropertyKeyPermission {
+ key: <Vec<u8>>::from(key)
+ .try_into()
+ .map_err(|_| "too long key")?,
+ permission: PropertyPermission {
+ mutable: is_mutable,
+ collection_admin,
+ token_owner,
+ },
+ },
+ )
+ .map_err(dispatch_to_evm::<T>)
+ }
+
+ fn set_property(
+ &mut self,
+ caller: caller,
+ token_id: uint256,
+ key: string,
+ value: bytes,
+ ) -> Result<()> {
+ let caller = T::CrossAccountId::from_eth(caller);
+ let token_id: u32 = token_id.try_into().map_err(|_| "token id overflow")?;
+ let key = <Vec<u8>>::from(key)
+ .try_into()
+ .map_err(|_| "key too long")?;
+ let value = value.try_into().map_err(|_| "value too long")?;
+
+ <Pallet<T>>::set_token_property(self, &caller, TokenId(token_id), Property { key, value })
+ .map_err(dispatch_to_evm::<T>)
+ }
+
+ fn delete_property(&mut self, token_id: uint256, caller: caller, key: string) -> Result<()> {
+ let caller = T::CrossAccountId::from_eth(caller);
+ let token_id: u32 = token_id.try_into().map_err(|_| "token id overflow")?;
+ let key = <Vec<u8>>::from(key)
+ .try_into()
+ .map_err(|_| "key too long")?;
+
+ <Pallet<T>>::delete_token_property(self, &caller, TokenId(token_id), key)
+ .map_err(dispatch_to_evm::<T>)
+ }
+
+ /// Throws error if key not found
+ fn property(&self, token_id: uint256, key: string) -> Result<bytes> {
+ let token_id: u32 = token_id.try_into().map_err(|_| "token id overflow")?;
+ let key = <Vec<u8>>::from(key)
+ .try_into()
+ .map_err(|_| "key too long")?;
+
+ let props = <TokenProperties<T>>::get((self.id, token_id));
+ let prop = props.get(&key).ok_or("key not found")?;
+
+ Ok(prop.to_vec())
+ }
+}
+
fn error_unsupported_schema_version() -> Error {
alloc::format!(
"Unsupported schema version! Support only {:?}",
@@ -274,7 +345,6 @@
&caller,
CreateItemData::<T> {
const_data: BoundedVec::default(),
- variable_data: BoundedVec::default(),
properties: BoundedVec::default(),
owner: to,
},
@@ -322,7 +392,6 @@
const_data: Vec::<u8>::from(token_uri)
.try_into()
.map_err(|_| "token uri is too long")?,
- variable_data: BoundedVec::default(),
properties: BoundedVec::default(),
owner: to,
},
@@ -387,37 +456,6 @@
.into())
}
- #[weight(<SelfWeightOf<T>>::set_variable_metadata(data.len() as u32))]
- fn set_variable_metadata(
- &mut self,
- caller: caller,
- token_id: uint256,
- data: bytes,
- ) -> Result<void> {
- let caller = T::CrossAccountId::from_eth(caller);
- let token = token_id.try_into()?;
-
- <Pallet<T>>::set_variable_metadata(
- self,
- &caller,
- token,
- data.try_into()
- .map_err(|_| "metadata size exceeded limit")?,
- )
- .map_err(dispatch_to_evm::<T>)?;
- Ok(())
- }
-
- fn get_variable_metadata(&self, token_id: uint256) -> Result<bytes> {
- self.consume_store_reads(1)?;
- let token: TokenId = token_id.try_into()?;
-
- Ok(<TokenData<T>>::get((self.id, token))
- .ok_or("token not found")?
- .variable_data
- .into_inner())
- }
-
#[weight(<SelfWeightOf<T>>::create_multiple_items(token_ids.len() as u32))]
fn mint_bulk(&mut self, caller: caller, to: address, token_ids: Vec<uint256>) -> Result<bool> {
let caller = T::CrossAccountId::from_eth(caller);
@@ -440,7 +478,6 @@
let data = (0..total_tokens)
.map(|_| CreateItemData::<T> {
const_data: BoundedVec::default(),
- variable_data: BoundedVec::default(),
properties: BoundedVec::default(),
owner: to.clone(),
})
@@ -484,7 +521,6 @@
const_data: Vec::<u8>::from(token_uri)
.try_into()
.map_err(|_| "token uri is too long")?,
- variable_data: vec![].try_into().unwrap(),
properties: BoundedVec::default(),
owner: to.clone(),
});
@@ -505,7 +541,8 @@
ERC721UniqueExtensions,
ERC721Mintable,
ERC721Burnable,
- via("CollectionHandle<T>", common_mut, CollectionProperties)
+ via("CollectionHandle<T>", common_mut, CollectionProperties),
+ TokenProperties,
)
)]
impl<T: Config> NonfungibleHandle<T> {}
pallets/nonfungible/src/lib.rsdiffbeforeafterboth--- a/pallets/nonfungible/src/lib.rs
+++ b/pallets/nonfungible/src/lib.rs
@@ -18,11 +18,11 @@
use erc::ERC721Events;
use evm_coder::ToLog;
-use frame_support::{BoundedVec, ensure, fail};
+use frame_support::{BoundedVec, ensure, fail, transactional};
use up_data_structs::{
AccessMode, CollectionId, CustomDataLimit, TokenId, CreateCollectionData, CreateNftExData,
mapping::TokenAddressMapping, NestingRule, budget::Budget, Property, PropertyPermission,
- PropertyKey, PropertyKeyPermission, Properties, TrySet,
+ PropertyKey, PropertyKeyPermission, Properties, TrySetProperty,
};
use pallet_evm::{account::CrossAccountId, Pallet as PalletEvm};
use pallet_common::{
@@ -49,17 +49,24 @@
pub type CreateItemData<T> = CreateNftExData<<T as pallet_evm::account::Config>::CrossAccountId>;
pub(crate) type SelfWeightOf<T> = <T as Config>::WeightInfo;
+#[struct_versioning::versioned(version = 2, upper)]
#[derive(Encode, Decode, TypeInfo, MaxEncodedLen)]
pub struct ItemData<CrossAccountId> {
pub const_data: BoundedVec<u8, CustomDataLimit>,
+
+ #[version(..2)]
pub variable_data: BoundedVec<u8, CustomDataLimit>,
+
pub owner: CrossAccountId,
}
#[frame_support::pallet]
pub mod pallet {
use super::*;
- use frame_support::{Blake2_128Concat, Twox64Concat, pallet_prelude::*, storage::Key};
+ use frame_support::{
+ Blake2_128Concat, Twox64Concat, pallet_prelude::*, storage::Key, traits::StorageVersion,
+ };
+ use frame_system::pallet_prelude::*;
use up_data_structs::{CollectionId, TokenId};
use super::weights::WeightInfo;
@@ -78,7 +85,10 @@
type WeightInfo: WeightInfo;
}
+ const STORAGE_VERSION: StorageVersion = StorageVersion::new(1);
+
#[pallet::pallet]
+ #[pallet::storage_version(STORAGE_VERSION)]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
@@ -133,6 +143,19 @@
Value = T::CrossAccountId,
QueryKind = OptionQuery,
>;
+
+ #[pallet::hooks]
+ impl<T: Config> Hooks<BlockNumberFor<T>> for Pallet<T> {
+ fn on_runtime_upgrade() -> Weight {
+ if StorageVersion::get::<Pallet<T>>() < StorageVersion::new(1) {
+ <TokenData<T>>::translate_values::<ItemDataVersion1<T::CrossAccountId>, _>(|v| {
+ Some(<ItemDataVersion2<T::CrossAccountId>>::from(v))
+ })
+ }
+
+ 0
+ }
+ }
}
pub struct NonfungibleHandle<T: Config>(pallet_common::CollectionHandle<T>);
@@ -286,6 +309,7 @@
Ok(())
}
+ #[transactional]
pub fn set_token_properties(
collection: &NonfungibleHandle<T>,
sender: &T::CrossAccountId,
@@ -329,8 +353,8 @@
) -> DispatchResult {
let permission = <PalletCommon<T>>::property_permissions(collection.id)
.get(property_key)
- .map(|p| p.clone())
- .unwrap_or(PropertyPermission::none());
+ .cloned()
+ .unwrap_or_else(PropertyPermission::none);
let token_data = <TokenData<T>>::get((collection.id, token_id))
.ok_or(<CommonError<T>>::TokenNotFound)?;
@@ -369,6 +393,7 @@
}
}
+ #[transactional]
pub fn delete_token_properties(
collection: &NonfungibleHandle<T>,
sender: &T::CrossAccountId,
@@ -406,6 +431,14 @@
<PalletCommon<T>>::set_property_permissions(collection, sender, property_permissions)
}
+ pub fn set_property_permission(
+ collection: &CollectionHandle<T>,
+ sender: &T::CrossAccountId,
+ permission: PropertyKeyPermission,
+ ) -> DispatchResult {
+ <PalletCommon<T>>::set_property_permission(collection, sender, permission)
+ }
+
pub fn transfer(
collection: &NonfungibleHandle<T>,
from: &T::CrossAccountId,
@@ -577,7 +610,6 @@
(collection.id, token),
ItemData {
const_data: data.const_data,
- variable_data: data.variable_data,
owner: data.owner.clone(),
},
);
@@ -773,28 +805,6 @@
// =========
Self::burn(collection, from, token)
- }
-
- pub fn set_variable_metadata(
- collection: &NonfungibleHandle<T>,
- sender: &T::CrossAccountId,
- token: TokenId,
- data: BoundedVec<u8, CustomDataLimit>,
- ) -> DispatchResult {
- let token_data =
- <TokenData<T>>::get((collection.id, token)).ok_or(<CommonError<T>>::TokenNotFound)?;
- collection.check_can_update_meta(sender, &token_data.owner)?;
-
- // =========
-
- <TokenData<T>>::insert(
- (collection.id, token),
- ItemData {
- variable_data: data,
- ..token_data
- },
- );
- Ok(())
}
pub fn check_nesting(
pallets/nonfungible/src/stubs/UniqueNFT.rawdiffbeforeafterbothbinary blob — no preview
pallets/nonfungible/src/stubs/UniqueNFT.soldiffbeforeafterboth--- a/pallets/nonfungible/src/stubs/UniqueNFT.sol
+++ b/pallets/nonfungible/src/stubs/UniqueNFT.sol
@@ -51,6 +51,60 @@
event MintingFinished();
}
+// Selector: 41369377
+contract TokenProperties is Dummy, ERC165 {
+ // Selector: setTokenPropertyPermission(string,bool,bool,bool) 222d97fa
+ function setTokenPropertyPermission(
+ string memory key,
+ bool isMutable,
+ bool collectionAdmin,
+ bool tokenOwner
+ ) public {
+ require(false, stub_error);
+ key;
+ isMutable;
+ collectionAdmin;
+ tokenOwner;
+ dummy = 0;
+ }
+
+ // Selector: setProperty(uint256,string,bytes) 1752d67b
+ function setProperty(
+ uint256 tokenId,
+ string memory key,
+ bytes memory value
+ ) public {
+ require(false, stub_error);
+ tokenId;
+ key;
+ value;
+ dummy = 0;
+ }
+
+ // Selector: deleteProperty(uint256,string) 066111d1
+ function deleteProperty(uint256 tokenId, string memory key) public {
+ require(false, stub_error);
+ tokenId;
+ key;
+ dummy = 0;
+ }
+
+ // Throws error if key not found
+ //
+ // Selector: property(uint256,string) 7228c327
+ function property(uint256 tokenId, string memory key)
+ public
+ view
+ returns (bytes memory)
+ {
+ require(false, stub_error);
+ tokenId;
+ key;
+ dummy;
+ return hex"";
+ }
+}
+
// Selector: 42966c68
contract ERC721Burnable is Dummy, ERC165 {
// Selector: burn(uint256) 42966c68
@@ -276,7 +330,41 @@
}
}
-// Selector: e562194d
+// Selector: 9b5e29c5
+contract CollectionProperties is Dummy, ERC165 {
+ // Selector: setCollectionProperty(string,bytes) 2f073f66
+ function setCollectionProperty(string memory key, bytes memory value)
+ public
+ {
+ require(false, stub_error);
+ key;
+ value;
+ dummy = 0;
+ }
+
+ // Selector: deleteCollectionProperty(string) 7b7debce
+ function deleteCollectionProperty(string memory key) public {
+ require(false, stub_error);
+ key;
+ dummy = 0;
+ }
+
+ // Throws error if key not found
+ //
+ // Selector: collectionProperty(string) cf24fd6d
+ function collectionProperty(string memory key)
+ public
+ view
+ returns (bytes memory)
+ {
+ require(false, stub_error);
+ key;
+ dummy;
+ return hex"";
+ }
+}
+
+// Selector: d74d154f
contract ERC721UniqueExtensions is Dummy, ERC165 {
// Selector: transfer(address,uint256) a9059cbb
function transfer(address to, uint256 tokenId) public {
@@ -299,26 +387,6 @@
require(false, stub_error);
dummy;
return 0;
- }
-
- // Selector: setVariableMetadata(uint256,bytes) d4eac26d
- function setVariableMetadata(uint256 tokenId, bytes memory data) public {
- require(false, stub_error);
- tokenId;
- data;
- dummy = 0;
- }
-
- // Selector: getVariableMetadata(uint256) e6c5ce6f
- function getVariableMetadata(uint256 tokenId)
- public
- view
- returns (bytes memory)
- {
- require(false, stub_error);
- tokenId;
- dummy;
- return hex"";
}
// Selector: mintBulk(address,uint256[]) 44a9945e
@@ -354,5 +422,7 @@
ERC721Enumerable,
ERC721UniqueExtensions,
ERC721Mintable,
- ERC721Burnable
+ ERC721Burnable,
+ CollectionProperties,
+ TokenProperties
{}
pallets/nonfungible/src/weights.rsdiffbeforeafterboth--- a/pallets/nonfungible/src/weights.rs
+++ b/pallets/nonfungible/src/weights.rs
@@ -45,7 +45,6 @@
fn approve() -> Weight;
fn transfer_from() -> Weight;
fn burn_from() -> Weight;
- fn set_variable_metadata(b: u32, ) -> Weight;
}
/// Weights for pallet_nonfungible using the Substrate node and recommended hardware.
@@ -155,12 +154,6 @@
(27_580_000 as Weight)
.saturating_add(T::DbWeight::get().reads(4 as Weight))
.saturating_add(T::DbWeight::get().writes(5 as Weight))
- }
- // Storage: Nonfungible TokenData (r:1 w:1)
- fn set_variable_metadata(_b: u32, ) -> Weight {
- (7_700_000 as Weight)
- .saturating_add(T::DbWeight::get().reads(1 as Weight))
- .saturating_add(T::DbWeight::get().writes(1 as Weight))
}
}
@@ -270,11 +263,5 @@
(27_580_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(4 as Weight))
.saturating_add(RocksDbWeight::get().writes(5 as Weight))
- }
- // Storage: Nonfungible TokenData (r:1 w:1)
- fn set_variable_metadata(_b: u32, ) -> Weight {
- (7_700_000 as Weight)
- .saturating_add(RocksDbWeight::get().reads(1 as Weight))
- .saturating_add(RocksDbWeight::get().writes(1 as Weight))
}
}
pallets/refungible/Cargo.tomldiffbeforeafterboth--- a/pallets/refungible/Cargo.toml
+++ b/pallets/refungible/Cargo.toml
@@ -24,6 +24,7 @@
scale-info = { version = "2.0.1", default-features = false, features = [
"derive",
] }
+struct-versioning = { path = "../../crates/struct-versioning" }
[features]
default = ["std"]
pallets/refungible/src/benchmarking.rsdiffbeforeafterboth--- a/pallets/refungible/src/benchmarking.rs
+++ b/pallets/refungible/src/benchmarking.rs
@@ -31,10 +31,8 @@
users: impl IntoIterator<Item = (CrossAccountId, u128)>,
) -> CreateRefungibleExData<CrossAccountId> {
let const_data = create_data::<CUSTOM_DATA_LIMIT>();
- let variable_data = create_data::<CUSTOM_DATA_LIMIT>();
CreateRefungibleExData {
const_data,
- variable_data,
users: users
.into_iter()
.collect::<BTreeMap<_, _>>()
@@ -203,14 +201,4 @@
let item = create_max_item(&collection, &owner, [(sender.clone(), 200)])?;
<Pallet<T>>::set_allowance(&collection, &sender, &burner, item, 200)?;
}: {<Pallet<T>>::burn_from(&collection, &burner, &sender, item, 200, &Unlimited)?}
-
- set_variable_metadata {
- let b in 0..CUSTOM_DATA_LIMIT;
- bench_init!{
- owner: sub; collection: collection(owner);
- sender: cross_from_sub(owner);
- };
- let item = create_max_item(&collection, &sender, [(sender.clone(), 200)])?;
- let data = create_var_data(b).try_into().unwrap();
- }: {<Pallet<T>>::set_variable_metadata(&collection, &sender, item, data)?}
}
pallets/refungible/src/common.rsdiffbeforeafterboth--- a/pallets/refungible/src/common.rs
+++ b/pallets/refungible/src/common.rs
@@ -17,10 +17,10 @@
use core::marker::PhantomData;
use sp_std::collections::btree_map::BTreeMap;
-use frame_support::{dispatch::DispatchResultWithPostInfo, fail, weights::Weight, BoundedVec};
+use frame_support::{dispatch::DispatchResultWithPostInfo, fail, weights::Weight};
use up_data_structs::{
- CollectionId, TokenId, CustomDataLimit, CreateItemExData, CreateRefungibleExData,
- budget::Budget, Property, PropertyKey, PropertyKeyPermission,
+ CollectionId, TokenId, CreateItemExData, CreateRefungibleExData, budget::Budget, Property,
+ PropertyKey, PropertyKeyPermission,
};
use pallet_common::{CommonCollectionOperations, CommonWeightInfo, with_weight};
use sp_runtime::DispatchError;
@@ -110,10 +110,6 @@
fn burn_from() -> Weight {
<SelfWeightOf<T>>::burn_from()
- }
-
- fn set_variable_metadata(bytes: u32) -> Weight {
- <SelfWeightOf<T>>::set_variable_metadata(bytes)
}
}
@@ -124,7 +120,6 @@
match data {
up_data_structs::CreateItemData::ReFungible(data) => Ok(CreateRefungibleExData {
const_data: data.const_data,
- variable_data: data.variable_data,
users: {
let mut out = BTreeMap::new();
out.insert(to.clone(), data.pieces);
@@ -306,19 +301,6 @@
fail!(<Error<T>>::SettingPropertiesNotAllowed)
}
- fn set_variable_metadata(
- &self,
- sender: T::CrossAccountId,
- token: TokenId,
- data: BoundedVec<u8, CustomDataLimit>,
- ) -> DispatchResultWithPostInfo {
- let len = data.len();
- with_weight(
- <Pallet<T>>::set_variable_metadata(self, &sender, token, data),
- <CommonWeights<T>>::set_variable_metadata(len as u32),
- )
- }
-
fn check_nesting(
&self,
_sender: <T>::CrossAccountId,
@@ -357,13 +339,12 @@
.const_data
.into_inner()
}
- fn variable_metadata(&self, token: TokenId) -> Vec<u8> {
- <TokenData<T>>::get((self.id, token))
- .variable_data
- .into_inner()
- }
- fn token_properties(&self, _token_id: TokenId, _keys: Vec<PropertyKey>) -> Vec<Property> {
+ fn token_properties(
+ &self,
+ _token_id: TokenId,
+ _keys: Option<Vec<PropertyKey>>,
+ ) -> Vec<Property> {
Vec::new()
}
pallets/refungible/src/lib.rsdiffbeforeafterboth--- a/pallets/refungible/src/lib.rs
+++ b/pallets/refungible/src/lib.rs
@@ -41,16 +41,23 @@
pub mod weights;
pub(crate) type SelfWeightOf<T> = <T as Config>::WeightInfo;
+#[struct_versioning::versioned(version = 2, upper)]
#[derive(Encode, Decode, Default, TypeInfo, MaxEncodedLen)]
pub struct ItemData {
pub const_data: BoundedVec<u8, CustomDataLimit>,
+
+ #[version(..2)]
pub variable_data: BoundedVec<u8, CustomDataLimit>,
}
#[frame_support::pallet]
pub mod pallet {
use super::*;
- use frame_support::{Blake2_128, Blake2_128Concat, Twox64Concat, pallet_prelude::*, storage::Key};
+ use frame_support::{
+ Blake2_128, Blake2_128Concat, Twox64Concat, pallet_prelude::*, storage::Key,
+ traits::StorageVersion,
+ };
+ use frame_system::pallet_prelude::*;
use up_data_structs::{CollectionId, TokenId};
use super::weights::WeightInfo;
@@ -73,7 +80,10 @@
type WeightInfo: WeightInfo;
}
+ const STORAGE_VERSION: StorageVersion = StorageVersion::new(1);
+
#[pallet::pallet]
+ #[pallet::storage_version(STORAGE_VERSION)]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
@@ -146,6 +156,19 @@
Value = u128,
QueryKind = ValueQuery,
>;
+
+ #[pallet::hooks]
+ impl<T: Config> Hooks<BlockNumberFor<T>> for Pallet<T> {
+ fn on_runtime_upgrade() -> Weight {
+ if StorageVersion::get::<Pallet<T>>() < StorageVersion::new(1) {
+ <TokenData<T>>::translate_values::<ItemDataVersion1, _>(|v| {
+ Some(<ItemDataVersion2>::from(v))
+ })
+ }
+
+ 0
+ }
+ }
}
pub struct RefungibleHandle<T: Config>(pallet_common::CollectionHandle<T>);
@@ -494,7 +517,6 @@
(collection.id, token_id),
ItemData {
const_data: token.const_data,
- variable_data: token.variable_data,
},
);
for (user, amount) in token.users.into_iter() {
@@ -643,31 +665,6 @@
if let Some(allowance) = allowance {
Self::set_allowance_unchecked(collection, from, spender, token, allowance);
}
- Ok(())
- }
-
- pub fn set_variable_metadata(
- collection: &RefungibleHandle<T>,
- sender: &T::CrossAccountId,
- token: TokenId,
- data: BoundedVec<u8, CustomDataLimit>,
- ) -> DispatchResult {
- collection.check_can_update_meta(
- sender,
- &T::CrossAccountId::from_sub(collection.owner.clone()),
- )?;
-
- let token_data = <TokenData<T>>::get((collection.id, token));
-
- // =========
-
- <TokenData<T>>::insert(
- (collection.id, token),
- ItemData {
- variable_data: data,
- ..token_data
- },
- );
Ok(())
}
pallets/refungible/src/weights.rsdiffbeforeafterboth--- a/pallets/refungible/src/weights.rs
+++ b/pallets/refungible/src/weights.rs
@@ -53,7 +53,6 @@
fn transfer_from_removing() -> Weight;
fn transfer_from_creating_removing() -> Weight;
fn burn_from() -> Weight;
- fn set_variable_metadata(b: u32, ) -> Weight;
}
/// Weights for pallet_refungible using the Substrate node and recommended hardware.
@@ -242,12 +241,6 @@
(42_043_000 as Weight)
.saturating_add(T::DbWeight::get().reads(5 as Weight))
.saturating_add(T::DbWeight::get().writes(7 as Weight))
- }
- // Storage: Refungible TokenData (r:1 w:1)
- fn set_variable_metadata(_b: u32, ) -> Weight {
- (7_364_000 as Weight)
- .saturating_add(T::DbWeight::get().reads(1 as Weight))
- .saturating_add(T::DbWeight::get().writes(1 as Weight))
}
}
@@ -436,11 +429,5 @@
(42_043_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(5 as Weight))
.saturating_add(RocksDbWeight::get().writes(7 as Weight))
- }
- // Storage: Refungible TokenData (r:1 w:1)
- fn set_variable_metadata(_b: u32, ) -> Weight {
- (7_364_000 as Weight)
- .saturating_add(RocksDbWeight::get().reads(1 as Weight))
- .saturating_add(RocksDbWeight::get().writes(1 as Weight))
}
}
pallets/unique/src/benchmarking.rsdiffbeforeafterboth--- a/pallets/unique/src/benchmarking.rs
+++ b/pallets/unique/src/benchmarking.rs
@@ -168,9 +168,4 @@
nesting_rule: None,
};
}: set_collection_limits(RawOrigin::Signed(caller.clone()), collection, cl)
-
- set_meta_update_permission_flag {
- let caller: T::AccountId = account("caller", 0, SEED);
- let collection = create_nft_collection::<T>(caller.clone())?;
- }: _(RawOrigin::Signed(caller.clone()), collection, MetaUpdatePermission::Admin)
}
pallets/unique/src/lib.rsdiffbeforeafterboth--- a/pallets/unique/src/lib.rs
+++ b/pallets/unique/src/lib.rs
@@ -35,16 +35,16 @@
use frame_system::{self as system, ensure_signed};
use sp_runtime::{sp_std::prelude::Vec};
use up_data_structs::{
- CONST_ON_CHAIN_SCHEMA_LIMIT, OFFCHAIN_SCHEMA_LIMIT,
- MAX_COLLECTION_NAME_LENGTH, MAX_COLLECTION_DESCRIPTION_LENGTH, MAX_TOKEN_PREFIX_LENGTH,
- AccessMode, CreateItemData, CollectionLimits, CollectionId, CollectionMode, TokenId,
- SchemaVersion, SponsorshipState, MetaUpdatePermission, CreateCollectionData, CustomDataLimit,
- CreateItemExData, budget, CollectionField, Property, PropertyKey, PropertyKeyPermission,
+ CONST_ON_CHAIN_SCHEMA_LIMIT, OFFCHAIN_SCHEMA_LIMIT, MAX_COLLECTION_NAME_LENGTH,
+ MAX_COLLECTION_DESCRIPTION_LENGTH, MAX_TOKEN_PREFIX_LENGTH, AccessMode, CreateItemData,
+ CollectionLimits, CollectionId, CollectionMode, TokenId, SchemaVersion, SponsorshipState,
+ CreateCollectionData, CreateItemExData, budget, CollectionField, Property, PropertyKey,
+ PropertyKeyPermission,
};
use pallet_evm::account::CrossAccountId;
use pallet_common::{
- CollectionHandle, Pallet as PalletCommon, Error as CommonError, CommonWeightInfo,
- dispatch::dispatch_call, dispatch::CollectionDispatch,
+ CollectionHandle, Pallet as PalletCommon, CommonWeightInfo, dispatch::dispatch_call,
+ dispatch::CollectionDispatch,
};
#[cfg(feature = "runtime-benchmarks")]
@@ -240,7 +240,9 @@
/// Variable metadata sponsoring
/// Collection id (controlled?2), token id (controlled?2)
+ #[deprecated]
pub VariableMetaDataBasket get(fn variable_meta_data_basket): double_map hasher(blake2_128_concat) CollectionId, hasher(blake2_128_concat) TokenId => Option<T::BlockNumber>;
+
/// Approval sponsoring
pub NftApproveBasket get(fn nft_approve_basket): double_map hasher(blake2_128_concat) CollectionId, hasher(blake2_128_concat) TokenId => Option<T::BlockNumber>;
pub FungibleApproveBasket get(fn fungible_approve_basket): double_map hasher(blake2_128_concat) CollectionId, hasher(twox_64_concat) T::AccountId => Option<T::BlockNumber>;
@@ -261,6 +263,14 @@
0
}
+ fn on_runtime_upgrade() -> Weight {
+ let limit = None;
+
+ <VariableMetaDataBasket<T>>::remove_all(limit);
+
+ 0
+ }
+
/// 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.
///
/// # Permissions
@@ -333,7 +343,6 @@
<FungibleTransferBasket<T>>::remove_prefix(collection_id, None);
<ReFungibleTransferBasket<T>>::remove_prefix((collection_id,), None);
- <VariableMetaDataBasket<T>>::remove_prefix(collection_id, None);
<NftApproveBasket<T>>::remove_prefix(collection_id, None);
<FungibleApproveBasket<T>>::remove_prefix(collection_id, None);
<RefungibleApproveBasket<T>>::remove_prefix((collection_id,), None);
@@ -929,59 +938,6 @@
let budget = budget::Value::new(2);
dispatch_call::<T, _>(collection_id, |d| d.transfer_from(sender, from, recipient, item_id, value, &budget))
- }
-
- /// Set off-chain data schema.
- ///
- /// # Permissions
- ///
- /// * Collection Owner
- /// * Collection Admin
- ///
- /// # Arguments
- ///
- /// * collection_id.
- ///
- /// * schema: String representing the offchain data schema.
- #[weight = T::CommonWeightInfo::set_variable_metadata(data.len() as u32)]
- #[transactional]
- pub fn set_variable_meta_data (
- origin,
- collection_id: CollectionId,
- item_id: TokenId,
- data: BoundedVec<u8, CustomDataLimit>,
- ) -> DispatchResultWithPostInfo {
- let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);
-
- dispatch_call::<T, _>(collection_id, |d| d.set_variable_metadata(sender, item_id, data))
- }
-
- /// Set meta_update_permission value for particular collection
- ///
- /// # Permissions
- ///
- /// * Collection Owner.
- ///
- /// # Arguments
- ///
- /// * collection_id: ID of the collection.
- ///
- /// * value: New flag value.
- #[weight = <SelfWeightOf<T>>::set_meta_update_permission_flag()]
- #[transactional]
- pub fn set_meta_update_permission_flag(origin, collection_id: CollectionId, value: MetaUpdatePermission) -> DispatchResult {
- let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);
- let mut target_collection = <CollectionHandle<T>>::try_get(collection_id)?;
-
- ensure!(
- target_collection.meta_update_permission != MetaUpdatePermission::None,
- <CommonError<T>>::MetadataFlagFrozen,
- );
- target_collection.check_is_owner(&sender)?;
-
- target_collection.meta_update_permission = value;
-
- target_collection.save()
}
/// Set schema standard
pallets/unique/src/weights.rsdiffbeforeafterboth--- a/pallets/unique/src/weights.rs
+++ b/pallets/unique/src/weights.rs
@@ -49,7 +49,6 @@
fn set_const_on_chain_schema(b: u32, ) -> Weight;
fn set_schema_version() -> Weight;
fn set_collection_limits() -> Weight;
- fn set_meta_update_permission_flag() -> Weight;
}
/// Weights for pallet_unique using the Substrate node and recommended hardware.
@@ -167,12 +166,6 @@
// Storage: Common CollectionById (r:1 w:1)
fn set_collection_limits() -> Weight {
(15_339_000 as Weight)
- .saturating_add(T::DbWeight::get().reads(1 as Weight))
- .saturating_add(T::DbWeight::get().writes(1 as Weight))
- }
- // Storage: Common CollectionById (r:1 w:1)
- fn set_meta_update_permission_flag() -> Weight {
- (7_214_000 as Weight)
.saturating_add(T::DbWeight::get().reads(1 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
@@ -292,12 +285,6 @@
// Storage: Common CollectionById (r:1 w:1)
fn set_collection_limits() -> Weight {
(15_339_000 as Weight)
- .saturating_add(RocksDbWeight::get().reads(1 as Weight))
- .saturating_add(RocksDbWeight::get().writes(1 as Weight))
- }
- // Storage: Common CollectionById (r:1 w:1)
- fn set_meta_update_permission_flag() -> Weight {
- (7_214_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(1 as Weight))
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
}
primitives/data-structs/src/lib.rsdiffbeforeafterboth--- a/primitives/data-structs/src/lib.rs
+++ b/primitives/data-structs/src/lib.rs
@@ -22,7 +22,8 @@
};
use frame_support::{
storage::{bounded_btree_map::BoundedBTreeMap, bounded_btree_set::BoundedBTreeSet},
- traits::Get, parameter_types,
+ traits::Get,
+ parameter_types,
};
#[cfg(feature = "serde")]
@@ -40,7 +41,10 @@
CollectionInfo, NftInfo, ResourceInfo, PropertyInfo, BaseInfo, PartType, Theme, ThemeProperty,
};
pub use rmrk_types::{
- primitives::{CollectionId as RmrkCollectionId, NftId as RmrkNftId, BaseId as RmrkBaseId, PartId as RmrkPartId, ResourceId as RmrkResourceId},
+ primitives::{
+ CollectionId as RmrkCollectionId, NftId as RmrkNftId, BaseId as RmrkBaseId,
+ PartId as RmrkPartId, ResourceId as RmrkResourceId,
+ },
NftChild as RmrkNftChild, AccountIdOrCollectionNftTuple as RmrkAccountIdOrCollectionNftTuple,
};
@@ -85,6 +89,7 @@
// Schema limits
pub const OFFCHAIN_SCHEMA_LIMIT: u32 = 8192;
+pub const VARIABLE_ON_CHAIN_SCHEMA_LIMIT: u32 = 8192;
pub const CONST_ON_CHAIN_SCHEMA_LIMIT: u32 = 32768;
pub const COLLECTION_FIELD_LIMIT: u32 = CONST_ON_CHAIN_SCHEMA_LIMIT;
@@ -318,8 +323,12 @@
pub limits: CollectionLimitsVersion2,
#[version(..2)]
+ pub variable_on_chain_schema: BoundedVec<u8, ConstU32<VARIABLE_ON_CHAIN_SCHEMA_LIMIT>>,
+
+ #[version(..2)]
pub const_on_chain_schema: BoundedVec<u8, ConstU32<CONST_ON_CHAIN_SCHEMA_LIMIT>>,
+ #[version(..2)]
pub meta_update_permission: MetaUpdatePermission,
}
@@ -339,7 +348,6 @@
pub sponsorship: SponsorshipState<AccountId>,
pub limits: CollectionLimits,
pub const_on_chain_schema: Vec<u8>,
- pub meta_update_permission: MetaUpdatePermission,
pub token_property_permissions: Vec<PropertyKeyPermission>,
pub properties: Vec<Property>,
}
@@ -365,7 +373,6 @@
pub pending_sponsor: Option<AccountId>,
pub limits: Option<CollectionLimits>,
pub const_on_chain_schema: BoundedVec<u8, ConstU32<CONST_ON_CHAIN_SCHEMA_LIMIT>>,
- pub meta_update_permission: Option<MetaUpdatePermission>,
pub token_property_permissions: CollectionPropertiesPermissionsVec,
pub properties: CollectionPropertiesVec,
}
@@ -376,28 +383,6 @@
pub type CollectionPropertiesVec =
BoundedVec<Property, ConstU32<MAX_COLLECTION_PROPERTIES_ENCODE_LEN>>;
-#[derive(Encode, Decode, Debug, Clone, PartialEq, TypeInfo)]
-#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
-pub struct NftItemType<AccountId> {
- pub owner: AccountId,
- pub const_data: Vec<u8>,
- pub variable_data: Vec<u8>,
-}
-
-#[derive(Encode, Decode, Default, Debug, Clone, PartialEq, TypeInfo)]
-#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
-pub struct FungibleItemType {
- pub value: u128,
-}
-
-#[derive(Encode, Decode, Debug, Clone, PartialEq, TypeInfo)]
-#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
-pub struct ReFungibleItemType<AccountId> {
- pub owner: Vec<Ownership<AccountId>>,
- pub const_data: Vec<u8>,
- pub variable_data: Vec<u8>,
-}
-
/// All fields are wrapped in `Option`s, where None means chain default
#[struct_versioning::versioned(version = 2, upper)]
#[derive(Encode, Decode, Debug, Default, Clone, PartialEq, TypeInfo, MaxEncodedLen)]
@@ -405,6 +390,8 @@
pub struct CollectionLimits {
pub account_token_ownership_limit: Option<u32>,
pub sponsored_data_size: Option<u32>,
+
+ /// FIXME should we delete this or repurpose it?
/// None - setVariableMetadata is not sponsored
/// Some(v) - setVariableMetadata is sponsored
/// if there is v block between txs
@@ -502,9 +489,6 @@
#[cfg_attr(feature = "serde1", serde(with = "bounded::vec_serde"))]
#[derivative(Debug(format_with = "bounded::vec_debug"))]
pub const_data: BoundedVec<u8, CustomDataLimit>,
- #[cfg_attr(feature = "serde1", serde(with = "bounded::vec_serde"))]
- #[derivative(Debug(format_with = "bounded::vec_debug"))]
- pub variable_data: BoundedVec<u8, CustomDataLimit>,
#[cfg_attr(feature = "serde1", serde(with = "bounded::vec_serde"))]
#[derivative(Debug(format_with = "bounded::vec_debug"))]
@@ -524,26 +508,16 @@
#[cfg_attr(feature = "serde1", serde(with = "bounded::vec_serde"))]
#[derivative(Debug(format_with = "bounded::vec_debug"))]
pub const_data: BoundedVec<u8, CustomDataLimit>,
- #[cfg_attr(feature = "serde1", serde(with = "bounded::vec_serde"))]
- #[derivative(Debug(format_with = "bounded::vec_debug"))]
- pub variable_data: BoundedVec<u8, CustomDataLimit>,
pub pieces: u128,
}
#[derive(Encode, Decode, Debug, Clone, PartialEq, TypeInfo, MaxEncodedLen)]
-#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
pub enum MetaUpdatePermission {
ItemOwner,
Admin,
None,
}
-impl Default for MetaUpdatePermission {
- fn default() -> Self {
- Self::ItemOwner
- }
-}
-
#[derive(Encode, Decode, MaxEncodedLen, PartialEq, Clone, Debug, TypeInfo)]
#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
pub enum CreateItemData {
@@ -557,8 +531,6 @@
pub struct CreateNftExData<CrossAccountId> {
#[derivative(Debug(format_with = "bounded::vec_debug"))]
pub const_data: BoundedVec<u8, CustomDataLimit>,
- #[derivative(Debug(format_with = "bounded::vec_debug"))]
- pub variable_data: BoundedVec<u8, CustomDataLimit>,
#[derivative(Debug(format_with = "bounded::vec_debug"))]
pub properties: CollectionPropertiesVec,
pub owner: CrossAccountId,
@@ -569,8 +541,6 @@
pub struct CreateRefungibleExData<CrossAccountId> {
#[derivative(Debug(format_with = "bounded::vec_debug"))]
pub const_data: BoundedVec<u8, CustomDataLimit>,
- #[derivative(Debug(format_with = "bounded::vec_debug"))]
- pub variable_data: BoundedVec<u8, CustomDataLimit>,
#[derivative(Debug(format_with = "bounded::map_debug"))]
pub users: BoundedBTreeMap<CrossAccountId, u128, ConstU32<MAX_ITEMS_PER_BATCH>>,
}
@@ -598,8 +568,8 @@
impl CreateItemData {
pub fn data_size(&self) -> usize {
match self {
- CreateItemData::NFT(data) => data.variable_data.len() + data.const_data.len(),
- CreateItemData::ReFungible(data) => data.variable_data.len() + data.const_data.len(),
+ CreateItemData::NFT(data) => data.const_data.len(),
+ CreateItemData::ReFungible(data) => data.const_data.len(),
_ => 0,
}
}
@@ -700,24 +670,65 @@
NoSpaceForProperty,
PropertyLimitReached,
InvalidCharacterInPropertyKey,
+ PropertyKeyIsTooLong,
EmptyPropertyKey,
}
-pub trait TrySet: Sized {
+#[derive(Clone, Copy)]
+pub enum PropertyScope {
+ None,
+ Rmrk,
+}
+
+impl PropertyScope {
+ fn apply(self, key: PropertyKey) -> Result<PropertyKey, PropertiesError> {
+ let scope_str: &[u8] = match self {
+ Self::None => return Ok(key),
+ Self::Rmrk => b"rmrk",
+ };
+
+ [scope_str, b":", key.as_slice()]
+ .concat()
+ .try_into()
+ .map_err(|_| PropertiesError::PropertyKeyIsTooLong)
+ }
+}
+
+pub trait TrySetProperty: Sized {
type Value;
- fn try_set(&mut self, key: PropertyKey, value: Self::Value) -> Result<(), PropertiesError>;
+ fn try_scoped_set(
+ &mut self,
+ scope: PropertyScope,
+ key: PropertyKey,
+ value: Self::Value,
+ ) -> Result<(), PropertiesError>;
- fn try_set_from_iter<I>(&mut self, iter: I) -> Result<(), PropertiesError>
+ fn try_scoped_set_from_iter<I>(
+ &mut self,
+ scope: PropertyScope,
+ iter: I,
+ ) -> Result<(), PropertiesError>
where
I: Iterator<Item = (PropertyKey, Self::Value)>,
{
for (key, value) in iter {
- self.try_set(key, value)?;
+ self.try_scoped_set(scope, key, value)?;
}
Ok(())
}
+
+ fn try_set(&mut self, key: PropertyKey, value: Self::Value) -> Result<(), PropertiesError> {
+ self.try_scoped_set(PropertyScope::None, key, value)
+ }
+
+ fn try_set_from_iter<I>(&mut self, iter: I) -> Result<(), PropertiesError>
+ where
+ I: Iterator<Item = (PropertyKey, Self::Value)>,
+ {
+ self.try_scoped_set_from_iter(PropertyScope::None, iter)
+ }
}
#[derive(Encode, Decode, TypeInfo, Derivative, Clone, PartialEq, MaxEncodedLen)]
@@ -751,12 +762,10 @@
}
for byte in key.as_slice().iter() {
- match char::from_u32(*byte as u32) {
- Some(ch)
- if ch.is_ascii_alphanumeric()
- || ch == '_'
- || ch == '-' => { /* OK */ },
- _ => return Err(PropertiesError::InvalidCharacterInPropertyKey)
+ let byte = *byte;
+
+ if !byte.is_ascii_alphanumeric() && byte != b'_' && byte != b'-' {
+ return Err(PropertiesError::InvalidCharacterInPropertyKey);
}
}
@@ -764,12 +773,18 @@
}
}
-impl<Value> TrySet for PropertiesMap<Value> {
+impl<Value> TrySetProperty for PropertiesMap<Value> {
type Value = Value;
- fn try_set(&mut self, key: PropertyKey, value: Self::Value) -> Result<(), PropertiesError> {
+ fn try_scoped_set(
+ &mut self,
+ scope: PropertyScope,
+ key: PropertyKey,
+ value: Self::Value,
+ ) -> Result<(), PropertiesError> {
Self::check_property_key(&key)?;
+ let key = scope.apply(key)?;
self.0
.try_insert(key, value)
.map_err(|_| PropertiesError::PropertyLimitReached)?;
@@ -816,17 +831,22 @@
}
}
-impl TrySet for Properties {
+impl TrySetProperty for Properties {
type Value = PropertyValue;
- fn try_set(&mut self, key: PropertyKey, value: Self::Value) -> Result<(), PropertiesError> {
+ fn try_scoped_set(
+ &mut self,
+ scope: PropertyScope,
+ key: PropertyKey,
+ value: Self::Value,
+ ) -> Result<(), PropertiesError> {
let value_len = value.len();
if self.consumed_space as usize + value_len > self.space_limit as usize {
return Err(PropertiesError::NoSpaceForProperty);
}
- self.map.try_set(key, value)?;
+ self.map.try_scoped_set(scope, key, value)?;
self.consumed_space += value_len as u32;
@@ -869,34 +889,23 @@
pub const RmrkPartsLimit: u32 = 3;
}
-pub type RmrkCollectionInfo<AccountId> = CollectionInfo<
- RmrkString,
- BoundedVec<u8, RmrkCollectionSymbolLimit>,
- AccountId
->;
-pub type RmrkInstanceInfo<AccountId> = NftInfo<
- AccountId,
- Permill,
- RmrkString
->;
-pub type RmrkResourceInfo = ResourceInfo::<
+pub type RmrkCollectionInfo<AccountId> =
+ CollectionInfo<RmrkString, BoundedVec<u8, RmrkCollectionSymbolLimit>, AccountId>;
+pub type RmrkInstanceInfo<AccountId> = NftInfo<AccountId, Permill, RmrkString>;
+pub type RmrkResourceInfo = ResourceInfo<
BoundedVec<u8, RmrkResourceSymbolLimit>,
RmrkString,
- BoundedVec<RmrkPartId, RmrkPartsLimit>
->;
-pub type RmrkPropertyInfo = PropertyInfo<
- BoundedVec<u8, RmrkKeyLimit>,
- BoundedVec<u8, RmrkValueLimit>
+ BoundedVec<RmrkPartId, RmrkPartsLimit>,
>;
+pub type RmrkPropertyInfo =
+ PropertyInfo<BoundedVec<u8, RmrkKeyLimit>, BoundedVec<u8, RmrkValueLimit>>;
pub type RmrkBaseInfo<AccountId> = BaseInfo<AccountId, RmrkString>;
-pub type RmrkPartType = PartType<
- RmrkString,
- BoundedVec<RmrkCollectionId, RmrkMaxCollectionsEquippablePerPart>
->;
+pub type RmrkPartType =
+ PartType<RmrkString, BoundedVec<RmrkCollectionId, RmrkMaxCollectionsEquippablePerPart>>;
pub type RmrkTheme = Theme<RmrkString, Vec<ThemeProperty<RmrkString>>>;
pub type RmrkRpcString = Vec<u8>;
pub type RmrkThemeName = RmrkRpcString;
pub type RmrkPropertyKey = RmrkRpcString;
-type RmrkString = BoundedVec<u8, RmrkStringLimit>;
\ No newline at end of file
+type RmrkString = BoundedVec<u8, RmrkStringLimit>;
primitives/rpc/src/lib.rsdiffbeforeafterboth--- a/primitives/rpc/src/lib.rs
+++ b/primitives/rpc/src/lib.rs
@@ -42,22 +42,25 @@
fn token_owner(collection: CollectionId, token: TokenId) -> Result<Option<CrossAccountId>>;
fn topmost_token_owner(collection: CollectionId, token: TokenId) -> Result<Option<CrossAccountId>>;
fn const_metadata(collection: CollectionId, token: TokenId) -> Result<Vec<u8>>;
- fn variable_metadata(collection: CollectionId, token: TokenId) -> Result<Vec<u8>>;
- fn collection_properties(collection: CollectionId, properties: Vec<Vec<u8>>) -> Result<Vec<Property>>;
+ fn collection_properties(collection: CollectionId, properties: Option<Vec<Vec<u8>>>) -> Result<Vec<Property>>;
fn token_properties(
collection: CollectionId,
token_id: TokenId,
- properties: Vec<Vec<u8>>
+ properties: Option<Vec<Vec<u8>>>
) -> Result<Vec<Property>>;
fn property_permissions(
collection: CollectionId,
- properties: Vec<Vec<u8>>
+ properties: Option<Vec<Vec<u8>>>
) -> Result<Vec<PropertyKeyPermission>>;
- fn token_data(collection: CollectionId, token_id: TokenId, keys: Vec<Vec<u8>>) -> Result<TokenData<CrossAccountId>>;
+ fn token_data(
+ collection: CollectionId,
+ token_id: TokenId,
+ keys: Option<Vec<Vec<u8>>>
+ ) -> Result<TokenData<CrossAccountId>>;
fn total_supply(collection: CollectionId) -> Result<u32>;
fn account_balance(collection: CollectionId, account: CrossAccountId) -> Result<u32>;
runtime/common/src/runtime_apis.rsdiffbeforeafterboth--- a/runtime/common/src/runtime_apis.rs
+++ b/runtime/common/src/runtime_apis.rs
@@ -32,15 +32,14 @@
fn const_metadata(collection: CollectionId, token: TokenId) -> Result<Vec<u8>, DispatchError> {
dispatch_unique_runtime!(collection.const_metadata(token))
}
- fn variable_metadata(collection: CollectionId, token: TokenId) -> Result<Vec<u8>, DispatchError> {
- dispatch_unique_runtime!(collection.variable_metadata(token))
- }
fn collection_properties(
collection: CollectionId,
- keys: Vec<Vec<u8>>
+ keys: Option<Vec<Vec<u8>>>
) -> Result<Vec<Property>, DispatchError> {
- let keys = pallet_common::Pallet::<Runtime>::bytes_keys_to_property_keys(keys)?;
+ let keys = keys.map(
+ |keys| pallet_common::Pallet::<Runtime>::bytes_keys_to_property_keys(keys)
+ ).transpose()?;
pallet_common::Pallet::<Runtime>::filter_collection_properties(collection, keys)
}
@@ -48,17 +47,22 @@
fn token_properties(
collection: CollectionId,
token_id: TokenId,
- keys: Vec<Vec<u8>>
+ keys: Option<Vec<Vec<u8>>>
) -> Result<Vec<Property>, DispatchError> {
- let keys = pallet_common::Pallet::<Runtime>::bytes_keys_to_property_keys(keys)?;
+ let keys = keys.map(
+ |keys| pallet_common::Pallet::<Runtime>::bytes_keys_to_property_keys(keys)
+ ).transpose()?;
+
dispatch_unique_runtime!(collection.token_properties(token_id, keys))
}
fn property_permissions(
collection: CollectionId,
- keys: Vec<Vec<u8>>
+ keys: Option<Vec<Vec<u8>>>
) -> Result<Vec<PropertyKeyPermission>, DispatchError> {
- let keys = pallet_common::Pallet::<Runtime>::bytes_keys_to_property_keys(keys)?;
+ let keys = keys.map(
+ |keys| pallet_common::Pallet::<Runtime>::bytes_keys_to_property_keys(keys)
+ ).transpose()?;
pallet_common::Pallet::<Runtime>::filter_property_permissions(collection, keys)
}
@@ -66,7 +70,7 @@
fn token_data(
collection: CollectionId,
token_id: TokenId,
- keys: Vec<Vec<u8>>
+ keys: Option<Vec<Vec<u8>>>
) -> Result<TokenData<CrossAccountId>, DispatchError> {
let token_data = TokenData {
const_data: Self::const_metadata(collection, token_id)?,
@@ -232,7 +236,7 @@
})
})
.collect();
-
+
properties
}
None => {
@@ -253,7 +257,7 @@
let token_id = TokenId(nft_id);
let properties = pallet_nonfungible::Pallet::<Runtime>::token_properties((collection_id, token_id)); // todo look into usage of nonfungible
-
+
return Ok(match filter_keys {
Some(keys) => {
let keys = pallet_common::Pallet::<Runtime>::bytes_keys_to_property_keys(keys)?;
@@ -266,7 +270,7 @@
})
})
.collect();
-
+
properties
}
None => {
@@ -300,7 +304,7 @@
let keys = pallet_common::Pallet::<Runtime>::bytes_keys_to_property_keys(
Vec::from([String::from("rmrk:base-type").into_bytes()])
)?;
- let properties = pallet_common::Pallet::<Runtime>::filter_collection_properties(collection_id, keys)?;
+ let properties = pallet_common::Pallet::<Runtime>::filter_collection_properties(collection_id, Some(keys))?;
//ensure!(properties.len() == 1); // todo make sure it's fine to have ensure in place // no access to errors from here? displace?
Ok(Some( RmrkBaseInfo {
runtime/common/src/sponsoring.rsdiffbeforeafterboth--- a/runtime/common/src/sponsoring.rs
+++ b/runtime/common/src/sponsoring.rs
@@ -21,17 +21,16 @@
storage::{StorageMap, StorageDoubleMap, StorageNMap},
};
use up_data_structs::{
- CollectionId, FUNGIBLE_SPONSOR_TRANSFER_TIMEOUT, MetaUpdatePermission,
- NFT_SPONSOR_TRANSFER_TIMEOUT, REFUNGIBLE_SPONSOR_TRANSFER_TIMEOUT, TokenId, CollectionMode,
- CreateItemData,
+ CollectionId, FUNGIBLE_SPONSOR_TRANSFER_TIMEOUT, NFT_SPONSOR_TRANSFER_TIMEOUT,
+ REFUNGIBLE_SPONSOR_TRANSFER_TIMEOUT, TokenId, CollectionMode, CreateItemData,
};
use sp_runtime::traits::Saturating;
use pallet_common::{CollectionHandle};
use pallet_evm::account::CrossAccountId;
use pallet_unique::{
Call as UniqueCall, Config as UniqueConfig, FungibleApproveBasket, RefungibleApproveBasket,
- NftApproveBasket, VariableMetaDataBasket, CreateItemBasket, ReFungibleTransferBasket,
- FungibleTransferBasket, NftTransferBasket,
+ NftApproveBasket, CreateItemBasket, ReFungibleTransferBasket, FungibleTransferBasket,
+ NftTransferBasket,
};
use pallet_fungible::Config as FungibleConfig;
use pallet_nonfungible::Config as NonfungibleConfig;
@@ -136,63 +135,6 @@
}
CreateItemBasket::<T>::insert((collection.id, who.as_sub()), block_number);
-
- Some(())
-}
-
-pub fn withdraw_set_variable_meta_data<T: Config>(
- who: &T::CrossAccountId,
- collection: &CollectionHandle<T>,
- item_id: &TokenId,
- data: &[u8],
-) -> Option<()> {
- // TODO: make it work for admins
- if collection.meta_update_permission != MetaUpdatePermission::ItemOwner {
- return None;
- }
- // preliminary sponsoring correctness check
- match collection.mode {
- CollectionMode::NFT => {
- let owner = pallet_nonfungible::TokenData::<T>::get((collection.id, item_id))?.owner;
- if !owner.conv_eq(who) {
- return None;
- }
- }
- CollectionMode::Fungible(_) => {
- if item_id != &TokenId::default() {
- return None;
- }
- if <pallet_fungible::Balance<T>>::get((collection.id, who)) == 0 {
- return None;
- }
- }
- CollectionMode::ReFungible => {
- if !<pallet_refungible::Owned<T>>::get((collection.id, who, item_id)) {
- return None;
- }
- }
- }
-
- // Can't sponsor fungible collection, this tx will be rejected
- // as invalid
- if matches!(collection.mode, CollectionMode::Fungible(_)) {
- return None;
- }
- if data.len() > collection.limits.sponsored_data_size() as usize {
- return None;
- }
-
- let block_number = <frame_system::Pallet<T>>::block_number() as T::BlockNumber;
- let limit = collection.limits.sponsored_data_rate_limit()?;
-
- if let Some(last_tx_block) = VariableMetaDataBasket::<T>::get(collection.id, item_id) {
- let timeout = last_tx_block + limit.into();
- if block_number < timeout {
- return None;
- }
- }
-
- <VariableMetaDataBasket<T>>::insert(collection.id, item_id, block_number);
Some(())
}
@@ -290,20 +232,6 @@
} => {
let (sponsor, collection) = load(*collection_id)?;
withdraw_approve::<T>(&collection, who, item_id).map(|()| sponsor)
- }
- UniqueCall::set_variable_meta_data {
- collection_id,
- item_id,
- data,
- } => {
- let (sponsor, collection) = load(*collection_id)?;
- withdraw_set_variable_meta_data::<T>(
- &T::CrossAccountId::from_sub(who.clone()),
- &collection,
- item_id,
- data,
- )
- .map(|()| sponsor)
}
_ => None,
}
runtime/common/src/weights.rsdiffbeforeafterboth--- a/runtime/common/src/weights.rs
+++ b/runtime/common/src/weights.rs
@@ -86,10 +86,6 @@
dispatch_weight::<T>() + max_weight_of!(transfer_from())
}
- fn set_variable_metadata(bytes: u32) -> Weight {
- dispatch_weight::<T>() + max_weight_of!(set_variable_metadata(bytes))
- }
-
fn burn_from() -> Weight {
dispatch_weight::<T>() + max_weight_of!(burn_from())
}
runtime/tests/src/tests.rsdiffbeforeafterboth--- a/runtime/tests/src/tests.rs
+++ b/runtime/tests/src/tests.rs
@@ -18,9 +18,9 @@
use crate::{Test, TestCrossAccountId, CollectionCreationPrice, Origin, Unique, new_test_ext};
use up_data_structs::{
COLLECTION_NUMBER_LIMIT, CollectionId, CreateItemData, CreateFungibleData, CreateNftData,
- CreateReFungibleData, MAX_DECIMAL_POINTS, COLLECTION_ADMINS_LIMIT, MetaUpdatePermission,
- TokenId, MAX_TOKEN_OWNERSHIP, CreateCollectionData, CollectionField, SchemaVersion,
- CollectionMode, AccessMode,
+ CreateReFungibleData, MAX_DECIMAL_POINTS, COLLECTION_ADMINS_LIMIT, TokenId,
+ MAX_TOKEN_OWNERSHIP, CreateCollectionData, CollectionField, SchemaVersion, CollectionMode,
+ AccessMode,
};
use frame_support::{assert_noop, assert_ok, assert_err};
use sp_std::convert::TryInto;
@@ -47,7 +47,7 @@
fn default_nft_data() -> CreateNftData {
CreateNftData {
const_data: vec![1, 2, 3].try_into().unwrap(),
- variable_data: vec![3, 2, 1].try_into().unwrap(),
+ properties: vec![].try_into().unwrap(),
}
}
@@ -58,7 +58,6 @@
fn default_re_fungible_data() -> CreateReFungibleData {
CreateReFungibleData {
const_data: vec![1, 2, 3].try_into().unwrap(),
- variable_data: vec![3, 2, 1].try_into().unwrap(),
pieces: 1023,
}
}
@@ -215,7 +214,6 @@
let item = <pallet_nonfungible::TokenData<Test>>::get((collection_id, 1)).unwrap();
assert_eq!(item.const_data, data.const_data.into_inner());
- assert_eq!(item.variable_data, data.variable_data.into_inner());
});
}
@@ -247,7 +245,6 @@
))
.unwrap();
assert_eq!(item.const_data.to_vec(), data.const_data.into_inner());
- assert_eq!(item.variable_data.to_vec(), data.variable_data.into_inner());
}
});
}
@@ -263,7 +260,6 @@
let balance =
<pallet_refungible::Balance<Test>>::get((collection_id, TokenId(1), account(1)));
assert_eq!(item.const_data, data.const_data.into_inner());
- assert_eq!(item.variable_data, data.variable_data.into_inner());
assert_eq!(balance, 1023);
});
}
@@ -299,7 +295,6 @@
let balance =
<pallet_refungible::Balance<Test>>::get((CollectionId(1), TokenId(1), account(1)));
assert_eq!(item.const_data.to_vec(), data.const_data.into_inner());
- assert_eq!(item.variable_data.to_vec(), data.variable_data.into_inner());
assert_eq!(balance, 1023);
}
});
@@ -413,7 +408,6 @@
create_test_item(collection_id, &data.clone().into());
let item = <pallet_refungible::TokenData<Test>>::get((collection_id, TokenId(1)));
assert_eq!(item.const_data, data.const_data.into_inner());
- assert_eq!(item.variable_data, data.variable_data.into_inner());
assert_eq!(
<pallet_refungible::AccountBalance<Test>>::get((collection_id, account(1))),
1
@@ -2427,117 +2421,6 @@
}
#[test]
-fn set_variable_meta_data_on_nft_token_stores_variable_meta_data() {
- new_test_ext().execute_with(|| {
- let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1));
-
- let origin1 = Origin::signed(1);
-
- let data = default_nft_data();
- create_test_item(CollectionId(1), &data.into());
-
- let variable_data = b"test data".to_vec();
- assert_ok!(Unique::set_variable_meta_data(
- origin1,
- collection_id,
- TokenId(1),
- variable_data.clone().try_into().unwrap()
- ));
-
- assert_eq!(
- <pallet_nonfungible::TokenData<Test>>::get((collection_id, 1))
- .unwrap()
- .variable_data,
- variable_data
- );
- });
-}
-
-#[test]
-fn set_variable_meta_data_on_re_fungible_token_stores_variable_meta_data() {
- new_test_ext().execute_with(|| {
- let collection_id = create_test_collection(&CollectionMode::ReFungible, CollectionId(1));
-
- let origin1 = Origin::signed(1);
-
- let data = default_re_fungible_data();
- create_test_item(collection_id, &data.into());
-
- let variable_data = b"test data".to_vec();
- assert_ok!(Unique::set_variable_meta_data(
- origin1,
- collection_id,
- TokenId(1),
- variable_data.clone().try_into().unwrap()
- ));
-
- assert_eq!(
- <pallet_refungible::TokenData<Test>>::get((collection_id, TokenId(1))).variable_data,
- variable_data
- );
- });
-}
-
-#[test]
-fn set_variable_meta_data_on_fungible_token_fails() {
- new_test_ext().execute_with(|| {
- let collection_id = create_test_collection(&CollectionMode::Fungible(3), CollectionId(1));
-
- let origin1 = Origin::signed(1);
-
- let data = default_fungible_data();
- create_test_item(collection_id, &data.into());
-
- let variable_data = b"test data".to_vec();
- assert_noop!(
- Unique::set_variable_meta_data(
- origin1,
- collection_id,
- TokenId(0),
- variable_data.try_into().unwrap()
- )
- .map_err(|e| e.error),
- <pallet_fungible::Error<Test>>::FungibleItemsDontHaveData
- );
- });
-}
-
-#[test]
-fn set_variable_meta_data_on_nft_with_item_owner_permission_flag() {
- new_test_ext().execute_with(|| {
- //default_limits();
-
- let collection_id = create_test_collection(&CollectionMode::NFT, CollectionId(1));
-
- let origin1 = Origin::signed(1);
-
- let data = default_nft_data();
- create_test_item(collection_id, &data.into());
-
- assert_ok!(Unique::set_meta_update_permission_flag(
- origin1.clone(),
- collection_id,
- MetaUpdatePermission::ItemOwner,
- ));
-
- let variable_data = b"ten chars.".to_vec();
- assert_ok!(Unique::set_variable_meta_data(
- origin1,
- collection_id,
- TokenId(1),
- variable_data.clone().try_into().unwrap()
- ));
-
- assert_eq!(
- <pallet_nonfungible::TokenData<Test>>::get((collection_id, TokenId(1)))
- .unwrap()
- .variable_data,
- variable_data
- );
- });
-}
-
-#[test]
fn collection_transfer_flag_works() {
new_test_ext().execute_with(|| {
let origin1 = Origin::signed(1);
@@ -2585,163 +2468,6 @@
assert_eq!(
<pallet_nonfungible::AccountBalance<Test>>::get((collection_id, account(2))),
1
- );
- });
-}
-
-#[test]
-fn set_variable_meta_data_on_nft_with_admin_flag() {
- new_test_ext().execute_with(|| {
- // default_limits();
-
- let collection_id =
- create_test_collection_for_owner(&CollectionMode::NFT, 2, CollectionId(1));
-
- let origin1 = Origin::signed(1);
- let origin2 = Origin::signed(2);
-
- assert_ok!(Unique::set_mint_permission(
- origin2.clone(),
- collection_id,
- true
- ));
- assert_ok!(Unique::add_to_allow_list(
- origin2.clone(),
- collection_id,
- account(1)
- ));
-
- assert_ok!(Unique::add_collection_admin(
- origin2.clone(),
- collection_id,
- account(1)
- ));
-
- let data = default_nft_data();
- create_test_item(collection_id, &data.into());
-
- assert_ok!(Unique::set_meta_update_permission_flag(
- origin2.clone(),
- collection_id,
- MetaUpdatePermission::Admin,
- ));
-
- let variable_data = b"test.".to_vec();
- assert_ok!(Unique::set_variable_meta_data(
- origin1,
- collection_id,
- TokenId(1),
- variable_data.clone().try_into().unwrap()
- ));
-
- assert_eq!(
- <pallet_nonfungible::TokenData<Test>>::get((collection_id, 1))
- .unwrap()
- .variable_data,
- variable_data
- );
- });
-}
-
-#[test]
-fn set_variable_meta_data_on_nft_with_admin_flag_neg() {
- new_test_ext().execute_with(|| {
- // default_limits();
-
- let collection_id =
- create_test_collection_for_owner(&CollectionMode::NFT, 2, CollectionId(1));
-
- let origin1 = Origin::signed(1);
- let origin2 = Origin::signed(2);
-
- assert_ok!(Unique::set_mint_permission(
- origin2.clone(),
- collection_id,
- true
- ));
- assert_ok!(Unique::add_to_allow_list(
- origin2.clone(),
- collection_id,
- account(1)
- ));
-
- let data = default_nft_data();
- create_test_item(collection_id, &data.into());
-
- assert_ok!(Unique::set_meta_update_permission_flag(
- origin2.clone(),
- collection_id,
- MetaUpdatePermission::Admin,
- ));
-
- let variable_data = b"test.".to_vec();
- assert_noop!(
- Unique::set_variable_meta_data(
- origin1,
- collection_id,
- TokenId(1),
- variable_data.try_into().unwrap()
- )
- .map_err(|e| e.error),
- CommonError::<Test>::NoPermission
- );
- });
-}
-
-#[test]
-fn set_variable_meta_flag_after_freeze() {
- new_test_ext().execute_with(|| {
- // default_limits();
-
- let collection_id =
- create_test_collection_for_owner(&CollectionMode::NFT, 2, CollectionId(1));
-
- let origin2 = Origin::signed(2);
-
- assert_ok!(Unique::set_meta_update_permission_flag(
- origin2.clone(),
- collection_id,
- MetaUpdatePermission::None,
- ));
- assert_noop!(
- Unique::set_meta_update_permission_flag(
- origin2.clone(),
- collection_id,
- MetaUpdatePermission::Admin
- ),
- CommonError::<Test>::MetadataFlagFrozen
- );
- });
-}
-
-#[test]
-fn set_variable_meta_data_on_nft_with_none_flag_neg() {
- new_test_ext().execute_with(|| {
- // default_limits();
-
- let collection_id =
- create_test_collection_for_owner(&CollectionMode::NFT, 1, CollectionId(1));
- let origin1 = Origin::signed(1);
-
- let data = default_nft_data();
- create_test_item(collection_id, &data.into());
-
- assert_ok!(Unique::set_meta_update_permission_flag(
- origin1.clone(),
- collection_id,
- MetaUpdatePermission::None,
- ));
-
- let variable_data = b"test.".to_vec();
- assert_noop!(
- Unique::set_variable_meta_data(
- origin1.clone(),
- collection_id,
- TokenId(1),
- variable_data.try_into().unwrap()
- )
- .map_err(|e| e.error),
- CommonError::<Test>::NoPermission
);
});
}
smart_contracs/transfer/lib.rsdiffbeforeafterboth--- a/smart_contracs/transfer/lib.rs
+++ b/smart_contracs/transfer/lib.rs
@@ -58,14 +58,12 @@
pub enum CreateItemData {
Nft {
const_data: Vec<u8>,
- variable_data: Vec<u8>,
},
Fungible {
value: u128,
},
ReFungible {
const_data: Vec<u8>,
- variable_data: Vec<u8>,
pieces: u128,
},
}
@@ -88,8 +86,6 @@
fn approve(spender: DefaultAccountId, collection_id: u32, item_id: u32, amount: u128);
#[ink(extension = 4, returns_result = false)]
fn transfer_from(owner: DefaultAccountId, recipient: DefaultAccountId, collection_id: u32, item_id: u32, amount: u128);
- #[ink(extension = 5, returns_result = false)]
- fn set_variable_meta_data(collection_id: u32, item_id: u32, data: Vec<u8>);
#[ink(extension = 6, returns_result = false)]
fn toggle_allow_list(collection_id: u32, address: DefaultAccountId, allowlisted: bool);
}
@@ -143,12 +139,6 @@
let _ = self.env()
.extension()
.transfer_from(owner, recipient, collection_id, item_id, amount);
- }
- #[ink(message)]
- pub fn set_variable_meta_data(&mut self, collection_id: u32, item_id: u32, data: Vec<u8>) {
- let _ = self.env()
- .extension()
- .set_variable_meta_data(collection_id, item_id, data);
}
#[ink(message)]
pub fn toggle_allow_list(&mut self, collection_id: u32, address: AccountId, allowlisted: bool) {
tests/package.jsondiffbeforeafterboth--- a/tests/package.json
+++ b/tests/package.json
@@ -40,7 +40,6 @@
"testMigrationStructure": "mocha --timeout 9999999 -r ts-node/register ./**/nesting/migration-check.test.ts",
"testAddCollectionAdmin": "mocha --timeout 9999999 -r ts-node/register ./**/addCollectionAdmin.test.ts",
"testSetSchemaVersion": "mocha --timeout 9999999 -r ts-node/register ./**/setSchemaVersion.test.ts",
- "testSetVariableMetaData": "mocha --timeout 9999999 -r ts-node/register ./**/setVariableMetaData.test.ts",
"testSetCollectionLimits": "mocha --timeout 9999999 -r ts-node/register ./**/setCollectionLimits.test.ts",
"testSetCollectionSponsor": "mocha --timeout 9999999 -r ts-node/register ./**/setCollectionSponsor.test.ts",
"testConfirmSponsorship": "mocha --timeout 9999999 -r ts-node/register ./**/confirmSponsorship.test.ts",
tests/src/contracts.test.tsdiffbeforeafterboth--- a/tests/src/contracts.test.ts
+++ b/tests/src/contracts.test.ts
@@ -111,7 +111,7 @@
await addToAllowListExpectSuccess(alice, collectionId, contract.address);
await addToAllowListExpectSuccess(alice, collectionId, bob.address);
- const transferTx = contract.tx.createItem(value, gasLimit, bob.address, collectionId, {Nft: {const_data: '0x010203', variable_data: '0x020304'}});
+ const transferTx = contract.tx.createItem(value, gasLimit, bob.address, collectionId, {Nft: {const_data: '0x010203'}});
const events = await submitTransactionAsync(alice, transferTx);
const result = getGenericResult(events);
expect(result.success).to.be.true;
@@ -121,7 +121,6 @@
{
owner: bob.address,
constData: '0x010203',
- variableData: '0x020304',
},
]);
});
@@ -140,9 +139,9 @@
await addToAllowListExpectSuccess(alice, collectionId, bob.address);
const transferTx = contract.tx.createMultipleItems(value, gasLimit, bob.address, collectionId, [
- {Nft: {const_data: '0x010203', variable_data: '0x020304'}},
- {Nft: {const_data: '0x010204', variable_data: '0x020305'}},
- {Nft: {const_data: '0x010205', variable_data: '0x020306'}},
+ {Nft: {const_data: '0x010203'}},
+ {Nft: {const_data: '0x010204'}},
+ {Nft: {const_data: '0x010205'}},
]);
const events = await submitTransactionAsync(alice, transferTx);
const result = getGenericResult(events);
@@ -155,17 +154,14 @@
{
Owner: bob.address,
ConstData: '0x010203',
- VariableData: '0x020304',
},
{
Owner: bob.address,
ConstData: '0x010204',
- VariableData: '0x020305',
},
{
Owner: bob.address,
ConstData: '0x010205',
- VariableData: '0x020306',
},
]);
});
@@ -208,24 +204,6 @@
const token: any = (await api.query.unique.nftItemList(collectionId, tokenId) as any).unwrap();
expect(token.owner.toString()).to.be.equal(charlie.address);
- });
- });
-
- it('SetVariableMetaData CE', async () => {
- await usingApi(async api => {
- const alice = privateKey('//Alice');
-
- const collectionId = await createCollectionExpectSuccess();
- const [contract] = await deployTransferContract(api);
- const tokenId = await createItemExpectSuccess(alice, collectionId, 'NFT', contract.address.toString());
-
- const transferTx = contract.tx.setVariableMetaData(value, gasLimit, collectionId, tokenId, '0x121314');
- const events = await submitTransactionAsync(alice, transferTx);
- const result = getGenericResult(events);
- expect(result.success).to.be.true;
-
- const token: any = (await api.query.unique.nftItemList(collectionId, tokenId) as any).unwrap();
- expect(token.variableData.toString()).to.be.equal('0x121314');
});
});
tests/src/createCollection.test.tsdiffbeforeafterboth--- a/tests/src/createCollection.test.ts
+++ b/tests/src/createCollection.test.ts
@@ -74,7 +74,6 @@
accountTokenOwnershipLimit: 3,
},
constOnChainSchema: '0x333333',
- metaUpdatePermission: 'Admin',
});
const events = await submitTransactionAsync(alice, tx);
const result = getCreateCollectionResult(events);
@@ -91,7 +90,6 @@
expect(collection.sponsorship.asUnconfirmed.toString()).to.equal(bob.address);
expect(collection.limits.accountTokenOwnershipLimit.unwrap().toNumber()).to.equal(3);
expect(collection.constOnChainSchema.toString()).to.equal('0x333333');
- expect(collection.metaUpdatePermission.isAdmin).to.be.true;
});
});
});
tests/src/createMultipleItems.test.tsdiffbeforeafterboth--- a/tests/src/createMultipleItems.test.ts
+++ b/tests/src/createMultipleItems.test.ts
@@ -30,7 +30,6 @@
getBalance,
getTokenOwner,
getLastTokenId,
- getVariableMetadata,
getConstMetadata,
getCreatedCollectionCount,
createCollectionWithPropsExpectSuccess,
@@ -47,9 +46,9 @@
const itemsListIndexBefore = await getLastTokenId(api, collectionId);
expect(itemsListIndexBefore).to.be.equal(0);
const alice = privateKey('//Alice');
- const args = [{Nft: {const_data: '0x31', variable_data: '0x31'}},
- {Nft: {const_data: '0x32', variable_data: '0x32'}},
- {Nft: {const_data: '0x33', variable_data: '0x33'}}];
+ const args = [{Nft: {const_data: '0x31'}},
+ {Nft: {const_data: '0x32'}},
+ {Nft: {const_data: '0x33'}}];
const createMultipleItemsTx = api.tx.unique
.createMultipleItems(collectionId, normalizeAccountId(alice.address), args);
await submitTransactionAsync(alice, createMultipleItemsTx);
@@ -63,10 +62,6 @@
expect(await getConstMetadata(api, collectionId, 1)).to.be.deep.equal([0x31]);
expect(await getConstMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);
expect(await getConstMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);
-
- expect(await getVariableMetadata(api, collectionId, 1)).to.be.deep.equal([0x31]);
- expect(await getVariableMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);
- expect(await getVariableMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);
});
});
@@ -97,9 +92,9 @@
expect(itemsListIndexBefore).to.be.equal(0);
const alice = privateKey('//Alice');
const args = [
- {ReFungible: {const_data: [0x31], variable_data: [0x31], pieces: 1}},
- {ReFungible: {const_data: [0x32], variable_data: [0x32], pieces: 1}},
- {ReFungible: {const_data: [0x33], variable_data: [0x33], pieces: 1}},
+ {ReFungible: {const_data: [0x31], pieces: 1}},
+ {ReFungible: {const_data: [0x32], pieces: 1}},
+ {ReFungible: {const_data: [0x33], pieces: 1}},
];
const createMultipleItemsTx = api.tx.unique
.createMultipleItems(collectionId, normalizeAccountId(alice.address), args);
@@ -114,10 +109,6 @@
expect(await getConstMetadata(api, collectionId, 1)).to.be.deep.equal([0x31]);
expect(await getConstMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);
expect(await getConstMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);
-
- expect(await getVariableMetadata(api, collectionId, 1)).to.be.deep.equal([0x31]);
- expect(await getVariableMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);
- expect(await getVariableMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);
});
});
@@ -130,8 +121,8 @@
tokenLimit: 2,
});
const args = [
- {NFT: {const_data: 'A', variable_data: 'A'}},
- {NFT: {const_data: 'B', variable_data: 'B'}},
+ {NFT: {const_data: 'A'}},
+ {NFT: {const_data: 'B'}},
];
const createMultipleItemsTx = api.tx.unique.createMultipleItems(collectionId, normalizeAccountId(alice.address), args);
const events = await submitTransactionAsync(alice, createMultipleItemsTx);
@@ -146,9 +137,10 @@
const itemsListIndexBefore = await getLastTokenId(api, collectionId);
expect(itemsListIndexBefore).to.be.equal(0);
const alice = privateKey('//Alice');
- const args = [{Nft: {const_data: '0x31', variable_data: '0x31'}},
- {Nft: {const_data: '0x32', variable_data: '0x32'}},
- {Nft: {const_data: '0x33', variable_data: '0x33'}}];
+ const bob = privateKey('//Bob');
+ const args = [{Nft: {const_data: '0x31'}},
+ {Nft: {const_data: '0x32'}},
+ {Nft: {const_data: '0x33'}}];
const createMultipleItemsTx = api.tx.unique
.createMultipleItems(collectionId, normalizeAccountId(alice.address), args);
await submitTransactionAsync(alice, createMultipleItemsTx);
@@ -156,9 +148,9 @@
expect(itemsListIndexAfter).to.be.equal(3);
await expect(executeTransaction(
- api,
- alice,
- api.tx.unique.setPropertyPermissions(collectionId, [{key: 'k', permission: {mutable: true, collectionAdmin: true, tokenOwner: false}}]),
+ api,
+ alice,
+ api.tx.unique.setPropertyPermissions(collectionId, [{key: 'k', permission: {mutable: true, collectionAdmin: true, tokenOwner: false}}]),
)).to.not.be.rejected;
expect(await getTokenOwner(api, collectionId, 1)).to.be.deep.equal(normalizeAccountId(alice.address));
@@ -168,10 +160,6 @@
expect(await getConstMetadata(api, collectionId, 1)).to.be.deep.equal([0x31]);
expect(await getConstMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);
expect(await getConstMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);
-
- expect(await getVariableMetadata(api, collectionId, 1)).to.be.deep.equal([0x31]);
- expect(await getVariableMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);
- expect(await getVariableMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);
});
});
@@ -181,9 +169,10 @@
const itemsListIndexBefore = await getLastTokenId(api, collectionId);
expect(itemsListIndexBefore).to.be.equal(0);
const alice = privateKey('//Alice');
- const args = [{Nft: {const_data: '0x31', variable_data: '0x31'}},
- {Nft: {const_data: '0x32', variable_data: '0x32'}},
- {Nft: {const_data: '0x33', variable_data: '0x33'}}];
+ const bob = privateKey('//Bob');
+ const args = [{Nft: {const_data: '0x31'}},
+ {Nft: {const_data: '0x32'}},
+ {Nft: {const_data: '0x33'}}];
const createMultipleItemsTx = api.tx.unique
.createMultipleItems(collectionId, normalizeAccountId(alice.address), args);
await submitTransactionAsync(alice, createMultipleItemsTx);
@@ -191,9 +180,9 @@
expect(itemsListIndexAfter).to.be.equal(3);
await expect(executeTransaction(
- api,
- alice,
- api.tx.unique.setPropertyPermissions(collectionId, [{key: 'k', permission: {mutable: false, collectionAdmin: true, tokenOwner: false}}]),
+ api,
+ alice,
+ api.tx.unique.setPropertyPermissions(collectionId, [{key: 'k', permission: {mutable: false, collectionAdmin: true, tokenOwner: false}}]),
)).to.not.be.rejected;
expect(await getTokenOwner(api, collectionId, 1)).to.be.deep.equal(normalizeAccountId(alice.address));
@@ -203,10 +192,6 @@
expect(await getConstMetadata(api, collectionId, 1)).to.be.deep.equal([0x31]);
expect(await getConstMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);
expect(await getConstMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);
-
- expect(await getVariableMetadata(api, collectionId, 1)).to.be.deep.equal([0x31]);
- expect(await getVariableMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);
- expect(await getVariableMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);
});
});
@@ -216,9 +201,10 @@
const itemsListIndexBefore = await getLastTokenId(api, collectionId);
expect(itemsListIndexBefore).to.be.equal(0);
const alice = privateKey('//Alice');
- const args = [{Nft: {const_data: '0x31', variable_data: '0x31'}},
- {Nft: {const_data: '0x32', variable_data: '0x32'}},
- {Nft: {const_data: '0x33', variable_data: '0x33'}}];
+ const bob = privateKey('//Bob');
+ const args = [{Nft: {const_data: '0x31'}},
+ {Nft: {const_data: '0x32'}},
+ {Nft: {const_data: '0x33'}}];
const createMultipleItemsTx = api.tx.unique
.createMultipleItems(collectionId, normalizeAccountId(alice.address), args);
await submitTransactionAsync(alice, createMultipleItemsTx);
@@ -226,9 +212,9 @@
expect(itemsListIndexAfter).to.be.equal(3);
await expect(executeTransaction(
- api,
- alice,
- api.tx.unique.setPropertyPermissions(collectionId, [{key: 'k', permission: {mutable: true, collectionAdmin: true, tokenOwner: true}}]),
+ api,
+ alice,
+ api.tx.unique.setPropertyPermissions(collectionId, [{key: 'k', permission: {mutable: true, collectionAdmin: true, tokenOwner: true}}]),
)).to.not.be.rejected;
expect(await getTokenOwner(api, collectionId, 1)).to.be.deep.equal(normalizeAccountId(alice.address));
@@ -238,10 +224,6 @@
expect(await getConstMetadata(api, collectionId, 1)).to.be.deep.equal([0x31]);
expect(await getConstMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);
expect(await getConstMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);
-
- expect(await getVariableMetadata(api, collectionId, 1)).to.be.deep.equal([0x31]);
- expect(await getVariableMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);
- expect(await getVariableMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);
});
});
});
@@ -264,9 +246,9 @@
const itemsListIndexBefore = await getLastTokenId(api, collectionId);
expect(itemsListIndexBefore).to.be.equal(0);
await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
- const args = [{Nft: {const_data: '0x31', variable_data: '0x31'}},
- {Nft: {const_data: '0x32', variable_data: '0x32'}},
- {Nft: {const_data: '0x33', variable_data: '0x33'}}];
+ const args = [{Nft: {const_data: '0x31'}},
+ {Nft: {const_data: '0x32'}},
+ {Nft: {const_data: '0x33'}}];
const createMultipleItemsTx = api.tx.unique
.createMultipleItems(collectionId, normalizeAccountId(bob.address), args);
await submitTransactionAsync(bob, createMultipleItemsTx);
@@ -280,10 +262,6 @@
expect(await getConstMetadata(api, collectionId, 1)).to.be.deep.equal([0x31]);
expect(await getConstMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);
expect(await getConstMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);
-
- expect(await getVariableMetadata(api, collectionId, 1)).to.be.deep.equal([0x31]);
- expect(await getVariableMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);
- expect(await getVariableMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);
});
});
@@ -314,9 +292,9 @@
expect(itemsListIndexBefore).to.be.equal(0);
await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
const args = [
- {ReFungible: {const_data: [0x31], variable_data: [0x31], pieces: 1}},
- {ReFungible: {const_data: [0x32], variable_data: [0x32], pieces: 1}},
- {ReFungible: {const_data: [0x33], variable_data: [0x33], pieces: 1}},
+ {ReFungible: {const_data: [0x31], pieces: 1}},
+ {ReFungible: {const_data: [0x32], pieces: 1}},
+ {ReFungible: {const_data: [0x33], pieces: 1}},
];
const createMultipleItemsTx = api.tx.unique
.createMultipleItems(collectionId, normalizeAccountId(bob.address), args);
@@ -331,10 +309,6 @@
expect(await getConstMetadata(api, collectionId, 1)).to.be.deep.equal([0x31]);
expect(await getConstMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);
expect(await getConstMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);
-
- expect(await getVariableMetadata(api, collectionId, 1)).to.be.deep.equal([0x31]);
- expect(await getVariableMetadata(api, collectionId, 2)).to.be.deep.equal([0x32]);
- expect(await getVariableMetadata(api, collectionId, 3)).to.be.deep.equal([0x33]);
});
});
});
@@ -356,9 +330,9 @@
const collectionId = await createCollectionExpectSuccess();
const itemsListIndexBefore = await getLastTokenId(api, collectionId);
expect(itemsListIndexBefore).to.be.equal(0);
- const args = [{Nft: {const_data: '0x31', variable_data: '0x31'}},
- {Nft: {const_data: '0x32', variable_data: '0x32'}},
- {Nft: {const_data: '0x33', variable_data: '0x33'}}];
+ const args = [{Nft: {const_data: '0x31'}},
+ {Nft: {const_data: '0x32'}},
+ {Nft: {const_data: '0x33'}}];
const createMultipleItemsTx = api.tx.unique
.createMultipleItems(collectionId, normalizeAccountId(alice.address), args);
await expect(submitTransactionAsync(bob, createMultipleItemsTx)).to.be.rejected;
@@ -387,9 +361,9 @@
const itemsListIndexBefore = await getLastTokenId(api, collectionId);
expect(itemsListIndexBefore).to.be.equal(0);
const args = [
- {ReFungible: {const_data: [0x31], variable_data: [0x31], pieces: 1}},
- {ReFungible: {const_data: [0x32], variable_data: [0x32], pieces: 1}},
- {ReFungible: {const_data: [0x33], variable_data: [0x33], pieces: 1}},
+ {ReFungible: {const_data: [0x31], pieces: 1}},
+ {ReFungible: {const_data: [0x32], pieces: 1}},
+ {ReFungible: {const_data: [0x33], pieces: 1}},
];
const createMultipleItemsTx = api.tx.unique
.createMultipleItems(collectionId, normalizeAccountId(alice.address), args);
@@ -412,9 +386,9 @@
const collectionId = await createCollectionExpectSuccess();
const alice = privateKey('//Alice');
const args = [
- {NFT: {const_data: 'A'.repeat(2049), variable_data: 'A'.repeat(2049)}},
- {NFT: {const_data: 'B'.repeat(2049), variable_data: 'B'.repeat(2049)}},
- {NFT: {const_data: 'C'.repeat(2049), variable_data: 'C'.repeat(2049)}},
+ {NFT: {const_data: 'A'.repeat(2049)}},
+ {NFT: {const_data: 'B'.repeat(2049)}},
+ {NFT: {const_data: 'C'.repeat(2049)}},
];
const createMultipleItemsTx = api.tx.unique
.createMultipleItems(collectionId, normalizeAccountId(alice.address), args);
@@ -424,9 +398,9 @@
const collectionIdReFungible =
await createCollectionExpectSuccess({mode: {type: 'ReFungible'}});
const argsReFungible = [
- {ReFungible: ['1'.repeat(2049), '1'.repeat(2049), 10]},
- {ReFungible: ['2'.repeat(2049), '2'.repeat(2049), 10]},
- {ReFungible: ['3'.repeat(2049), '3'.repeat(2049), 10]},
+ {ReFungible: ['1'.repeat(2049), 10]},
+ {ReFungible: ['2'.repeat(2049), 10]},
+ {ReFungible: ['3'.repeat(2049), 10]},
];
const createMultipleItemsTxFungible = api.tx.unique
.createMultipleItems(collectionIdReFungible, normalizeAccountId(alice.address), argsReFungible);
@@ -449,9 +423,8 @@
await usingApi(async (api: ApiPromise) => {
const collectionId = await createCollectionExpectSuccess();
const args = [
- {NFT: {const_data: 'A', variable_data: 'A'}},
- {NFT: {const_data: 'B', variable_data: 'B'.repeat(2049)}},
- {NFT: {const_data: 'C'.repeat(2049), variable_data: 'C'}},
+ {NFT: {const_data: 'A'}},
+ {NFT: {const_data: 'B'.repeat(2049)}},
];
const createMultipleItemsTx = await api.tx.unique
.createMultipleItems(collectionId, normalizeAccountId(alice.address), args);
@@ -467,8 +440,8 @@
tokenLimit: 1,
});
const args = [
- {NFT: {const_data: 'A', variable_data: 'A'}},
- {NFT: {const_data: 'B', variable_data: 'B'}},
+ {NFT: {const_data: 'A'}},
+ {NFT: {const_data: 'B'}},
];
const createMultipleItemsTx = api.tx.unique.createMultipleItems(collectionId, normalizeAccountId(alice.address), args);
await expect(submitTransactionExpectFailAsync(alice, createMultipleItemsTx)).to.be.rejected;
@@ -482,10 +455,10 @@
const itemsListIndexBefore = await getLastTokenId(api, collectionId);
expect(itemsListIndexBefore).to.be.equal(0);
await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
- const args = [{Nft: {const_data: '0x31', variable_data: '0x31'}},
- {Nft: {const_data: '0x32', variable_data: '0x32'}},
- {Nft: {const_data: '0x33', variable_data: '0x33'}}];
-
+ const args = [{Nft: {const_data: '0x31'}},
+ {Nft: {const_data: '0x32'}},
+ {Nft: {const_data: '0x33'}}];
+
const createMultipleItemsTx = api.tx.unique.createMultipleItems(collectionId, normalizeAccountId(alice.address), args);
const events = await submitTransactionAsync(alice, createMultipleItemsTx);
@@ -493,9 +466,9 @@
for (const elem of result) {
await expect(executeTransaction(
- api,
- bob,
- api.tx.unique.setTokenProperties(elem.collectionId, elem.itemId, [{key: 'key1', value: 'v2'}]),
+ api,
+ bob,
+ api.tx.unique.setTokenProperties(elem.collectionId, elem.itemId, [{key: 'key1', value: 'v2'}]),
)).to.be.rejected;
}
@@ -510,10 +483,10 @@
const itemsListIndexBefore = await getLastTokenId(api, collectionId);
expect(itemsListIndexBefore).to.be.equal(0);
await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
- const args = [{Nft: {const_data: '0x31', variable_data: '0x31'}},
- {Nft: {const_data: '0x32', variable_data: '0x32'}},
- {Nft: {const_data: '0x33', variable_data: '0x33'}}];
-
+ const args = [{Nft: {const_data: '0x31'}},
+ {Nft: {const_data: '0x32'}},
+ {Nft: {const_data: '0x33'}}];
+
const createMultipleItemsTx = api.tx.unique.createMultipleItems(collectionId, normalizeAccountId(alice.address), args);
const events = await submitTransactionAsync(alice, createMultipleItemsTx);
@@ -521,9 +494,9 @@
for (const elem of result) {
await expect(executeTransaction(
- api,
- bob,
- api.tx.unique.setTokenProperties(elem.collectionId, elem.itemId, [{key: 'key1', value: 'v2'}]),
+ api,
+ bob,
+ api.tx.unique.setTokenProperties(elem.collectionId, elem.itemId, [{key: 'key1', value: 'v2'}]),
)).to.be.rejected;
}
});
@@ -535,10 +508,10 @@
const itemsListIndexBefore = await getLastTokenId(api, collectionId);
await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
expect(itemsListIndexBefore).to.be.equal(0);
- const args = [{Nft: {const_data: '0x31', variable_data: '0x31'}},
- {Nft: {const_data: '0x32', variable_data: '0x32'}},
- {Nft: {const_data: '0x33', variable_data: '0x33'}}];
-
+ const args = [{Nft: {const_data: '0x31'}},
+ {Nft: {const_data: '0x32'}},
+ {Nft: {const_data: '0x33'}}];
+
const createMultipleItemsTx = api.tx.unique.createMultipleItems(collectionId, normalizeAccountId(alice.address), args);
const events = await submitTransactionAsync(alice, createMultipleItemsTx);
@@ -546,9 +519,9 @@
for (const elem of result) {
await expect(executeTransaction(
- api,
- bob,
- api.tx.unique.setTokenProperties(elem.collectionId, elem.itemId, [{key: 'key1', value: 'v2'}]),
+ api,
+ bob,
+ api.tx.unique.setTokenProperties(elem.collectionId, elem.itemId, [{key: 'key1', value: 'v2'}]),
)).to.be.rejected;
}
});
@@ -562,28 +535,28 @@
expect(itemsListIndexBefore).to.be.equal(0);
await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
- const args = [{Nft: {const_data: '0x31', variable_data: '0x31'}},
- {Nft: {const_data: '0x32', variable_data: '0x32'}},
- {Nft: {const_data: '0x33', variable_data: '0x33'}}];
-
+ const args = [{Nft: {const_data: '0x31'}},
+ {Nft: {const_data: '0x32'}},
+ {Nft: {const_data: '0x33'}}];
+
const createMultipleItemsTx = api.tx.unique.createMultipleItems(collectionId, normalizeAccountId(alice.address), args);
const events = await submitTransactionAsync(alice, createMultipleItemsTx);
const result = getCreateItemsResult(events);
-
+
const prps = [];
-
+
for (let i = 0; i < 65; i++) {
prps.push({key: `key${i}`, value: `value${i}`});
}
await expect(executeTransaction(api, bob, api.tx.unique.setCollectionProperties(collectionId, prps))).to.be.rejectedWith(/common\.PropertyLimitReached/);
-
+
for (const elem of result) {
await expect(executeTransaction(
- api,
- bob,
- api.tx.unique.setTokenProperties(elem.collectionId, elem.itemId, prps),
+ api,
+ bob,
+ api.tx.unique.setTokenProperties(elem.collectionId, elem.itemId, prps),
)).to.be.rejected;
}
});
@@ -595,10 +568,10 @@
propPerm: [{key: 'key1', mutable: true, collectionAdmin: false, tokenOwner: false}]});
const itemsListIndexBefore = await getLastTokenId(api, collectionId);
expect(itemsListIndexBefore).to.be.equal(0);
- const args = [{Nft: {const_data: '0x31', variable_data: '0x31'}},
- {Nft: {const_data: '0x32', variable_data: '0x32'}},
- {Nft: {const_data: '0x33', variable_data: '0x33'}}];
-
+ const args = [{Nft: {const_data: '0x31'}},
+ {Nft: {const_data: '0x32'}},
+ {Nft: {const_data: '0x33'}}];
+
const createMultipleItemsTx = api.tx.unique.createMultipleItems(collectionId, normalizeAccountId(alice.address), args);
const events = await submitTransactionAsync(alice, createMultipleItemsTx);
@@ -609,9 +582,9 @@
for (const elem of result) {
await expect(executeTransaction(
- api,
- bob,
- api.tx.unique.setTokenProperties(elem.collectionId, elem.itemId, [{key: 'k', value: 'vvvvvv'.repeat(5000)}, {key: 'k2', value: 'vvv'.repeat(5000)}]),
+ api,
+ bob,
+ api.tx.unique.setTokenProperties(elem.collectionId, elem.itemId, [{key: 'k', value: 'vvvvvv'.repeat(5000)}, {key: 'k2', value: 'vvv'.repeat(5000)}]),
)).to.be.rejected;
}
});
tests/src/createMultipleItemsEx.test.tsdiffbeforeafterboth--- a/tests/src/createMultipleItemsEx.test.ts
+++ b/tests/src/createMultipleItemsEx.test.ts
@@ -30,15 +30,12 @@
{
owner: {substrate: alice.address},
constData: '0x0000',
- variableData: '0x1111',
}, {
owner: {substrate: bob.address},
constData: '0x2222',
- variableData: '0x3333',
}, {
owner: {substrate: charlie.address},
constData: '0x4444',
- variableData: '0x5555',
},
];
@@ -61,22 +58,19 @@
{
owner: {substrate: alice.address},
constData: '0x0000',
- variableData: '0x1111',
}, {
owner: {substrate: bob.address},
constData: '0x2222',
- variableData: '0x3333',
}, {
owner: {substrate: charlie.address},
constData: '0x4444',
- variableData: '0x5555',
},
];
await expect(executeTransaction(
- api,
- alice,
- api.tx.unique.setPropertyPermissions(collection, [{key: 'k', permission: {mutable: true, collectionAdmin: true, tokenOwner: false}}]),
+ api,
+ alice,
+ api.tx.unique.setPropertyPermissions(collection, [{key: 'k', permission: {mutable: true, collectionAdmin: true, tokenOwner: false}}]),
)).to.not.be.rejected;
await executeTransaction(api, alice, api.tx.unique.createMultipleItemsEx(collection, {
@@ -98,28 +92,25 @@
{
owner: {substrate: alice.address},
constData: '0x0000',
- variableData: '0x1111',
}, {
owner: {substrate: bob.address},
constData: '0x2222',
- variableData: '0x3333',
}, {
owner: {substrate: charlie.address},
constData: '0x4444',
- variableData: '0x5555',
},
];
await expect(executeTransaction(
- api,
- alice,
- api.tx.unique.setPropertyPermissions(collection, [{key: 'k', permission: {mutable: false, collectionAdmin: true, tokenOwner: false}}]),
+ api,
+ alice,
+ api.tx.unique.setPropertyPermissions(collection, [{key: 'k', permission: {mutable: false, collectionAdmin: true, tokenOwner: false}}]),
)).to.not.be.rejected;
await executeTransaction(api, alice, api.tx.unique.createMultipleItemsEx(collection, {
NFT: data,
}));
-
+
const tokens = await api.query.nonfungible.tokenData.entries(collection);
const json = tokens.map(([, token]) => token.toJSON());
expect(json).to.be.deep.equal(data);
@@ -136,28 +127,25 @@
{
owner: {substrate: alice.address},
constData: '0x0000',
- variableData: '0x1111',
}, {
owner: {substrate: bob.address},
constData: '0x2222',
- variableData: '0x3333',
}, {
owner: {substrate: charlie.address},
constData: '0x4444',
- variableData: '0x5555',
},
];
await expect(executeTransaction(
- api,
- alice,
- api.tx.unique.setPropertyPermissions(collection, [{key: 'k', permission: {mutable: true, collectionAdmin: true, tokenOwner: true}}]),
+ api,
+ alice,
+ api.tx.unique.setPropertyPermissions(collection, [{key: 'k', permission: {mutable: true, collectionAdmin: true, tokenOwner: true}}]),
)).to.not.be.rejected;
await executeTransaction(api, alice, api.tx.unique.createMultipleItemsEx(collection, {
NFT: data,
}));
-
+
const tokens = await api.query.nonfungible.tokenData.entries(collection);
const json = tokens.map(([, token]) => token.toJSON());
expect(json).to.be.deep.equal(data);
@@ -184,15 +172,15 @@
const tx = api.tx.unique.createMultipleItemsEx(collection, {NFT: data});
await executeTransaction(api, alice, tx);
-
+
const events = await submitTransactionAsync(alice, tx);
const result = getCreateItemsResult(events);
-
+
for (const elem of result) {
await expect(executeTransaction(
- api,
- bob,
- api.tx.unique.setTokenProperties(elem.collectionId, elem.itemId, [{key: 'key1', value: 'v2'}]),
+ api,
+ bob,
+ api.tx.unique.setTokenProperties(elem.collectionId, elem.itemId, [{key: 'key1', value: 'v2'}]),
)).to.be.rejected;
}
});
@@ -218,15 +206,15 @@
const tx = api.tx.unique.createMultipleItemsEx(collection, {NFT: data});
await executeTransaction(api, alice, tx);
-
+
const events = await submitTransactionAsync(alice, tx);
const result = getCreateItemsResult(events);
-
+
for (const elem of result) {
await expect(executeTransaction(
- api,
- bob,
- api.tx.unique.setTokenProperties(elem.collectionId, elem.itemId, [{key: 'key1', value: 'v2'}]),
+ api,
+ bob,
+ api.tx.unique.setTokenProperties(elem.collectionId, elem.itemId, [{key: 'key1', value: 'v2'}]),
)).to.be.rejected;
}
});
@@ -251,15 +239,15 @@
const tx = api.tx.unique.createMultipleItemsEx(collection, {NFT: data});
await executeTransaction(api, alice, tx);
-
+
const events = await submitTransactionAsync(alice, tx);
const result = getCreateItemsResult(events);
-
+
for (const elem of result) {
await expect(executeTransaction(
- api,
- bob,
- api.tx.unique.setTokenProperties(elem.collectionId, elem.itemId, [{key: 'key1', value: 'v2'}]),
+ api,
+ bob,
+ api.tx.unique.setTokenProperties(elem.collectionId, elem.itemId, [{key: 'key1', value: 'v2'}]),
)).to.be.rejected;
}
});
@@ -284,24 +272,24 @@
const tx = api.tx.unique.createMultipleItemsEx(collection, {NFT: data});
await executeTransaction(api, alice, tx);
-
+
const events = await submitTransactionAsync(alice, tx);
const result = getCreateItemsResult(events);
const prps = [];
-
+
for (let i = 0; i < 65; i++) {
prps.push({key: `key${i}`, value: `value${i}`});
}
await expect(executeTransaction(api, bob, api.tx.unique.setCollectionProperties(collection, prps))).to.be.rejectedWith(/common\.PropertyLimitReached/);
-
+
for (const elem of result) {
await expect(executeTransaction(
- api,
- bob,
- api.tx.unique.setTokenProperties(elem.collectionId, elem.itemId, prps),
+ api,
+ bob,
+ api.tx.unique.setTokenProperties(elem.collectionId, elem.itemId, prps),
)).to.be.rejected;
}
});
@@ -326,7 +314,7 @@
const tx = api.tx.unique.createMultipleItemsEx(collection, {NFT: data});
await executeTransaction(api, alice, tx);
-
+
const events = await submitTransactionAsync(alice, tx);
const result = getCreateItemsResult(events);
@@ -334,12 +322,12 @@
await expect(executeTransaction(api, bob, api.tx.unique.setCollectionProperties(collection, prps))).to.be.rejectedWith(/common\.NoSpaceForProperty/);
-
+
for (const elem of result) {
await expect(executeTransaction(
- api,
- bob,
- api.tx.unique.setTokenProperties(elem.collectionId, elem.itemId, prps),
+ api,
+ bob,
+ api.tx.unique.setTokenProperties(elem.collectionId, elem.itemId, prps),
)).to.be.rejected;
}
});
@@ -355,15 +343,12 @@
{
owner: {substrate: alice.address},
constData: '0x0000',
- variableData: '0x1111',
}, {
owner: {substrate: bob.address},
constData: '0x2222',
- variableData: '0x3333',
}, {
owner: {substrate: charlie.address},
constData: '0x4444',
- variableData: '0x5555',
},
];
@@ -386,15 +371,12 @@
{
owner: {substrate: alice.address},
constData: '0x0000',
- variableData: '0x1111',
}, {
owner: {substrate: bob.address},
constData: '0x2222',
- variableData: '0x3333',
}, {
owner: {substrate: charlie.address},
constData: '0x4444',
- variableData: '0x5555',
},
];
tests/src/eth/api/UniqueFungible.soldiffbeforeafterboth--- a/tests/src/eth/api/UniqueFungible.sol
+++ b/tests/src/eth/api/UniqueFungible.sol
@@ -22,6 +22,12 @@
);
}
+// Selector: 79cc6790
+interface ERC20UniqueExtensions is Dummy, ERC165 {
+ // Selector: burnFrom(address,uint256) 79cc6790
+ function burnFrom(address from, uint256 amount) external returns (bool);
+}
+
// Selector: 942e8b22
interface ERC20 is Dummy, ERC165, ERC20Events {
// Selector: name() 06fdde03
@@ -59,4 +65,28 @@
returns (uint256);
}
-interface UniqueFungible is Dummy, ERC165, ERC20 {}
+// Selector: 9b5e29c5
+interface CollectionProperties is Dummy, ERC165 {
+ // Selector: setCollectionProperty(string,bytes) 2f073f66
+ function setCollectionProperty(string memory key, bytes memory value)
+ external;
+
+ // Selector: deleteCollectionProperty(string) 7b7debce
+ function deleteCollectionProperty(string memory key) external;
+
+ // Throws error if key not found
+ //
+ // Selector: collectionProperty(string) cf24fd6d
+ function collectionProperty(string memory key)
+ external
+ view
+ returns (bytes memory);
+}
+
+interface UniqueFungible is
+ Dummy,
+ ERC165,
+ ERC20,
+ ERC20UniqueExtensions,
+ CollectionProperties
+{}
tests/src/eth/api/UniqueNFT.soldiffbeforeafterboth--- a/tests/src/eth/api/UniqueNFT.sol
+++ b/tests/src/eth/api/UniqueNFT.sol
@@ -42,6 +42,35 @@
event MintingFinished();
}
+// Selector: 41369377
+interface TokenProperties is Dummy, ERC165 {
+ // Selector: setTokenPropertyPermission(string,bool,bool,bool) 222d97fa
+ function setTokenPropertyPermission(
+ string memory key,
+ bool isMutable,
+ bool collectionAdmin,
+ bool tokenOwner
+ ) external;
+
+ // Selector: setProperty(uint256,string,bytes) 1752d67b
+ function setProperty(
+ uint256 tokenId,
+ string memory key,
+ bytes memory value
+ ) external;
+
+ // Selector: deleteProperty(uint256,string) 066111d1
+ function deleteProperty(uint256 tokenId, string memory key) external;
+
+ // Throws error if key not found
+ //
+ // Selector: property(uint256,string) 7228c327
+ function property(uint256 tokenId, string memory key)
+ external
+ view
+ returns (bytes memory);
+}
+
// Selector: 42966c68
interface ERC721Burnable is Dummy, ERC165 {
// Selector: burn(uint256) 42966c68
@@ -162,7 +191,25 @@
function totalSupply() external view returns (uint256);
}
-// Selector: e562194d
+// Selector: 9b5e29c5
+interface CollectionProperties is Dummy, ERC165 {
+ // Selector: setCollectionProperty(string,bytes) 2f073f66
+ function setCollectionProperty(string memory key, bytes memory value)
+ external;
+
+ // Selector: deleteCollectionProperty(string) 7b7debce
+ function deleteCollectionProperty(string memory key) external;
+
+ // Throws error if key not found
+ //
+ // Selector: collectionProperty(string) cf24fd6d
+ function collectionProperty(string memory key)
+ external
+ view
+ returns (bytes memory);
+}
+
+// Selector: d74d154f
interface ERC721UniqueExtensions is Dummy, ERC165 {
// Selector: transfer(address,uint256) a9059cbb
function transfer(address to, uint256 tokenId) external;
@@ -172,16 +219,7 @@
// Selector: nextTokenId() 75794a3c
function nextTokenId() external view returns (uint256);
-
- // Selector: setVariableMetadata(uint256,bytes) d4eac26d
- function setVariableMetadata(uint256 tokenId, bytes memory data) external;
- // Selector: getVariableMetadata(uint256) e6c5ce6f
- function getVariableMetadata(uint256 tokenId)
- external
- view
- returns (bytes memory);
-
// Selector: mintBulk(address,uint256[]) 44a9945e
function mintBulk(address to, uint256[] memory tokenIds)
external
@@ -201,5 +239,7 @@
ERC721Enumerable,
ERC721UniqueExtensions,
ERC721Mintable,
- ERC721Burnable
+ ERC721Burnable,
+ CollectionProperties,
+ TokenProperties
{}
tests/src/eth/base.test.tsdiffbeforeafterboth--- a/tests/src/eth/base.test.ts
+++ b/tests/src/eth/base.test.ts
@@ -79,7 +79,7 @@
minter = createEthAccount(web3);
});
});
-
+
itWeb3('interfaceID == 0xffffffff always false', async ({web3}) => {
expect(await contract(web3).methods.supportsInterface('0xffffffff').call()).to.be.false;
});
@@ -101,7 +101,7 @@
});
itWeb3('ERC721UniqueExtensions support', async ({web3}) => {
- expect(await contract(web3).methods.supportsInterface('0xe562194d').call()).to.be.true;
+ expect(await contract(web3).methods.supportsInterface('0xd74d154f').call()).to.be.true;
});
itWeb3('ERC721Burnable support', async ({web3}) => {
tests/src/eth/collectionProperties.test.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/eth/collectionProperties.test.ts
@@ -0,0 +1,54 @@
+import privateKey from '../substrate/privateKey';
+import {addCollectionAdminExpectSuccess, createCollectionExpectSuccess} from '../util/helpers';
+import {collectionIdToAddress, createEthAccount, createEthAccountWithBalance, GAS_ARGS, itWeb3} from './util/helpers';
+import nonFungibleAbi from './nonFungibleAbi.json';
+import {expect} from 'chai';
+import {executeTransaction} from '../substrate/substrate-api';
+
+describe('EVM collection properties', () => {
+ itWeb3('Can be set', async({web3, api}) => {
+ const alice = privateKey('//Alice');
+ const caller = await createEthAccountWithBalance(api, web3);
+ const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
+
+ await addCollectionAdminExpectSuccess(alice, collection, {Ethereum: caller});
+
+ const address = collectionIdToAddress(collection);
+ const contract = new web3.eth.Contract(nonFungibleAbi as any, address, {from: caller, ...GAS_ARGS});
+
+ await contract.methods.setCollectionProperty('testKey', Buffer.from('testValue')).send({from: caller});
+
+ const [{value}] = (await api.rpc.unique.collectionProperties(collection, ['testKey'])).toHuman()! as any;
+ expect(value).to.equal('testValue');
+ });
+ itWeb3('Can be deleted', async({web3, api}) => {
+ const alice = privateKey('//Alice');
+ const caller = await createEthAccountWithBalance(api, web3);
+ const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
+
+ await executeTransaction(api, alice, api.tx.unique.setCollectionProperties(collection, [{key: 'testKey', value: 'testValue'}]));
+
+ await addCollectionAdminExpectSuccess(alice, collection, {Ethereum: caller});
+
+ const address = collectionIdToAddress(collection);
+ const contract = new web3.eth.Contract(nonFungibleAbi as any, address, {from: caller, ...GAS_ARGS});
+
+ await contract.methods.deleteCollectionProperty('testKey').send({from: caller});
+
+ const result = (await api.rpc.unique.collectionProperties(collection, ['testKey'])).toJSON()! as any;
+ expect(result.length).to.equal(0);
+ });
+ itWeb3('Can be read', async({web3, api}) => {
+ const alice = privateKey('//Alice');
+ const caller = createEthAccount(web3);
+ const collection = await createCollectionExpectSuccess({mode: {type:'NFT'}});
+
+ await executeTransaction(api, alice, api.tx.unique.setCollectionProperties(collection, [{key: 'testKey', value: 'testValue'}]));
+
+ const address = collectionIdToAddress(collection);
+ const contract = new web3.eth.Contract(nonFungibleAbi as any, address, {from: caller, ...GAS_ARGS});
+
+ const value = await contract.methods.collectionProperty('testKey').call();
+ expect(value).to.equal(web3.utils.toHex('testValue'));
+ });
+});
tests/src/eth/nonFungible.test.tsdiffbeforeafterboth--- a/tests/src/eth/nonFungible.test.ts
+++ b/tests/src/eth/nonFungible.test.ts
@@ -15,7 +15,7 @@
// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
import privateKey from '../substrate/privateKey';
-import {approveExpectSuccess, burnItemExpectSuccess, createCollectionExpectSuccess, createItemExpectSuccess, setVariableMetaDataExpectSuccess, transferExpectSuccess, transferFromExpectSuccess, UNIQUE, setMetadataUpdatePermissionFlagExpectSuccess} from '../util/helpers';
+import {approveExpectSuccess, burnItemExpectSuccess, createCollectionExpectSuccess, createItemExpectSuccess, transferExpectSuccess, transferFromExpectSuccess, UNIQUE} from '../util/helpers';
import {collectionIdToAddress, createEthAccount, createEthAccountWithBalance, GAS_ARGS, itWeb3, normalizeEvents, recordEthFee, recordEvents, subToEth, transferBalanceToEth} from './util/helpers';
import nonFungibleAbi from './nonFungibleAbi.json';
import {expect} from 'chai';
@@ -331,41 +331,6 @@
const balance = await contract.methods.balanceOf(receiver).call();
expect(+balance).to.equal(1);
}
- });
-
- itWeb3('Can perform getVariableMetadata', async ({web3, api}) => {
- const collection = await createCollectionExpectSuccess({
- mode: {type: 'NFT'},
- });
- const alice = privateKey('//Alice');
-
- const owner = await createEthAccountWithBalance(api, web3);
-
- const item = await createItemExpectSuccess(alice, collection, 'NFT', {Ethereum: owner});
- await setMetadataUpdatePermissionFlagExpectSuccess(alice, collection, 'Admin');
- await setVariableMetaDataExpectSuccess(alice, collection, item, [1, 2, 3]);
-
- const address = collectionIdToAddress(collection);
- const contract = new web3.eth.Contract(nonFungibleAbi as any, address, {from: owner, ...GAS_ARGS});
-
- expect(await contract.methods.getVariableMetadata(item).call()).to.be.equal('0x010203');
- });
-
- itWeb3('Can perform setVariableMetadata', async ({web3, api}) => {
- const collection = await createCollectionExpectSuccess({
- mode: {type: 'NFT'},
- });
- const alice = privateKey('//Alice');
-
- const owner = await createEthAccountWithBalance(api, web3);
-
- const item = await createItemExpectSuccess(alice, collection, 'NFT', {Ethereum: owner});
-
- const address = collectionIdToAddress(collection);
- const contract = new web3.eth.Contract(nonFungibleAbi as any, address, {from: owner, ...GAS_ARGS});
-
- expect(await contract.methods.setVariableMetadata(item, '0x010203').send({from: owner}));
- expect(await contract.methods.getVariableMetadata(item).call()).to.be.equal('0x010203');
});
});
tests/src/eth/nonFungibleAbi.jsondiffbeforeafterboth--- a/tests/src/eth/nonFungibleAbi.json
+++ b/tests/src/eth/nonFungibleAbi.json
@@ -1,614 +1,738 @@
[
- {
- "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": "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"
- }
-]
+ {
+ "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": "collectionProperty",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "key",
+ "type": "string"
+ }
+ ],
+ "name": "deleteCollectionProperty",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "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": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "key",
+ "type": "string"
+ }
+ ],
+ "name": "property",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "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": "bytes",
+ "name": "value",
+ "type": "bytes"
+ }
+ ],
+ "name": "setCollectionProperty",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "key",
+ "type": "string"
+ },
+ {
+ "internalType": "bytes",
+ "name": "value",
+ "type": "bytes"
+ }
+ ],
+ "name": "setProperty",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "key",
+ "type": "string"
+ },
+ {
+ "internalType": "bool",
+ "name": "isMutable",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "collectionAdmin",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "tokenOwner",
+ "type": "bool"
+ }
+ ],
+ "name": "setTokenPropertyPermission",
+ "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"
+ }
+]
\ No newline at end of file
tests/src/eth/proxy/UniqueNFTProxy.abidiffbeforeafterboth--- a/tests/src/eth/proxy/UniqueNFTProxy.abi
+++ b/tests/src/eth/proxy/UniqueNFTProxy.abi
@@ -1 +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":[],"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"}]
\ No newline at end of file
+[{"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"}]
\ No newline at end of file
tests/src/eth/proxy/UniqueNFTProxy.bindiffbeforeafterboth--- a/tests/src/eth/proxy/UniqueNFTProxy.bin
+++ b/tests/src/eth/proxy/UniqueNFTProxy.bin
@@ -1 +1 @@
-608060405234801561001057600080fd5b5060405161168d38038061168d83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6115fa806100936000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c806350bb4e7f116100f9578063a22cb46511610097578063d4eac26d11610071578063d4eac26d1461036b578063e6c5ce6f1461037e578063e985e9c514610391578063f4f4b500146103a457600080fd5b8063a22cb46514610332578063a9059cbb14610345578063c87b56dd1461035857600080fd5b806370a08231116100d357806370a082311461030757806375794a3c1461031a5780637d64bcb41461032257806395d89b411461032a57600080fd5b806350bb4e7f146102ce57806360a11672146102e15780636352211e146102f457600080fd5b80632f745c591161016657806342842e0e1161014057806342842e0e1461028257806342966c681461029557806344a9945e146102a85780634f6ccce7146102bb57600080fd5b80632f745c5914610249578063365430061461025c57806340c10f191461026f57600080fd5b806305d2035b146101ae57806306fdde03146101cb578063081812fc146101e0578063095ea7b31461020b57806318160ddd1461022057806323b872dd14610236575b600080fd5b6101b66103b7565b60405190151581526020015b60405180910390f35b6101d3610443565b6040516101c2919061148a565b6101f36101ee366004611277565b6104c3565b6040516001600160a01b0390911681526020016101c2565b61021e61021936600461118c565b610547565b005b6102286105b2565b6040519081526020016101c2565b61021e610244366004610eff565b610639565b61022861025736600461118c565b6106ad565b6101b661026a366004610fac565b610739565b6101b661027d36600461118c565b6107be565b61021e610290366004610eff565b6107f8565b61021e6102a3366004611277565b610839565b6101b66102b63660046110b1565b61089a565b6102286102c9366004611277565b6108cd565b6101b66102dc3660046111b8565b61094b565b61021e6102ef366004610f40565b6109da565b6101f3610302366004611277565b610a49565b610228610315366004610e8c565b610a7b565b610228610aae565b6101b6610afd565b6101d3610b62565b61021e61034036600461115e565b610ba6565b61021e61035336600461118c565b610be0565b6101d3610366366004611277565b610c19565b61021e6103793660046112a9565b610c9b565b6101d361038c366004611277565b610ccd565b6101f361039f366004610ec6565b610cff565b6101b66103b23660046112f0565b610d85565b60008060009054906101000a90046001600160a01b03166001600160a01b03166305d2035b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561040657600080fd5b505afa15801561041a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043e9190611211565b905090565b60008054604080516306fdde0360e01b815290516060936001600160a01b03909316926306fdde039260048082019391829003018186803b15801561048757600080fd5b505afa15801561049b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261043e919081019061122e565b6000805460405163020604bf60e21b8152600481018490526001600160a01b039091169063081812fc906024015b60206040518083038186803b15801561050957600080fd5b505afa15801561051d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105419190610ea9565b92915050565b60005460405163095ea7b360e01b81526001600160a01b038481166004830152602482018490529091169063095ea7b3906044015b600060405180830381600087803b15801561059657600080fd5b505af11580156105aa573d6000803e3d6000fd5b505050505050565b60008060009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561060157600080fd5b505afa158015610615573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043e9190611290565b6000546040516323b872dd60e01b81526001600160a01b038581166004830152848116602483015260448201849052909116906323b872dd906064015b600060405180830381600087803b15801561069057600080fd5b505af11580156106a4573d6000803e3d6000fd5b50505050505050565b60008054604051632f745c5960e01b81526001600160a01b0385811660048301526024820185905290911690632f745c599060440160206040518083038186803b1580156106fa57600080fd5b505afa15801561070e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107329190611290565b9392505050565b60008054604051631b2a180360e11b81526001600160a01b039091169063365430069061076c908690869060040161137f565b602060405180830381600087803b15801561078657600080fd5b505af115801561079a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107329190611211565b600080546040516340c10f1960e01b81526001600160a01b03858116600483015260248201859052909116906340c10f199060440161076c565b600054604051632142170760e11b81526001600160a01b038581166004830152848116602483015260448201849052909116906342842e0e90606401610676565b600054604051630852cd8d60e31b8152600481018390526001600160a01b03909116906342966c6890602401600060405180830381600087803b15801561087f57600080fd5b505af1158015610893573d6000803e3d6000fd5b5050505050565b60008054604051632254ca2f60e11b81526001600160a01b03909116906344a9945e9061076c9086908690600401611404565b60008054604051634f6ccce760e01b8152600481018490526001600160a01b0390911690634f6ccce7906024015b60206040518083038186803b15801561091357600080fd5b505afa158015610927573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105419190611290565b600080546040516350bb4e7f60e01b81526001600160a01b03909116906350bb4e7f906109809087908790879060040161145a565b602060405180830381600087803b15801561099a57600080fd5b505af11580156109ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d29190611211565b949350505050565b6000546040516330508b3960e11b81526001600160a01b03909116906360a1167290610a10908790879087908790600401611342565b600060405180830381600087803b158015610a2a57600080fd5b505af1158015610a3e573d6000803e3d6000fd5b505050505b50505050565b600080546040516331a9108f60e11b8152600481018490526001600160a01b0390911690636352211e906024016104f1565b600080546040516370a0823160e01b81526001600160a01b038481166004830152909116906370a08231906024016108fb565b60008060009054906101000a90046001600160a01b03166001600160a01b03166375794a3c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561060157600080fd5b60008060009054906101000a90046001600160a01b03166001600160a01b0316637d64bcb46040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610b4e57600080fd5b505af115801561041a573d6000803e3d6000fd5b60008054604080516395d89b4160e01b815290516060936001600160a01b03909316926395d89b419260048082019391829003018186803b15801561048757600080fd5b60005460405163a22cb46560e01b81526001600160a01b03848116600483015283151560248301529091169063a22cb4659060440161057c565b60005460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb9060440161057c565b60005460405163c87b56dd60e01b8152600481018390526060916001600160a01b03169063c87b56dd906024015b60006040518083038186803b158015610c5f57600080fd5b505afa158015610c73573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610541919081019061122e565b60005460405163d4eac26d60e01b81526001600160a01b039091169063d4eac26d9061057c908590859060040161149d565b60005460405163e6c5ce6f60e01b8152600481018390526060916001600160a01b03169063e6c5ce6f90602401610c47565b6000805460405163e985e9c560e01b81526001600160a01b03858116600483015284811660248301529091169063e985e9c59060440160206040518083038186803b158015610d4d57600080fd5b505afa158015610d61573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107329190610ea9565b6000805460405162f4f4b560e81b815263ffffffff841660048201526001600160a01b039091169063f4f4b5009060240160206040518083038186803b158015610dce57600080fd5b505afa158015610de2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105419190611211565b6000610e19610e1484611534565b6114df565b9050828152838383011115610e2d57600080fd5b61073283602083018461155c565b600082601f830112610e4c57600080fd5b8135610e5a610e1482611534565b818152846020838601011115610e6f57600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215610e9e57600080fd5b81356107328161159e565b600060208284031215610ebb57600080fd5b81516107328161159e565b60008060408385031215610ed957600080fd5b8235610ee48161159e565b91506020830135610ef48161159e565b809150509250929050565b600080600060608486031215610f1457600080fd5b8335610f1f8161159e565b92506020840135610f2f8161159e565b929592945050506040919091013590565b60008060008060808587031215610f5657600080fd5b8435610f618161159e565b93506020850135610f718161159e565b925060408501359150606085013567ffffffffffffffff811115610f9457600080fd5b610fa087828801610e3b565b91505092959194509250565b60008060408385031215610fbf57600080fd5b8235610fca8161159e565b915060208381013567ffffffffffffffff80821115610fe857600080fd5b818601915086601f830112610ffc57600080fd5b813561100a610e1482611510565b8082825285820191508585018a878560051b880101111561102a57600080fd5b60005b848110156110a05781358681111561104457600080fd5b87016040818e03601f1901121561105a57600080fd5b6110626114b6565b89820135815260408201358881111561107a57600080fd5b6110888f8c83860101610e3b565b828c015250855250928701929087019060010161102d565b50979a909950975050505050505050565b600080604083850312156110c457600080fd5b82356110cf8161159e565b915060208381013567ffffffffffffffff8111156110ec57600080fd5b8401601f810186136110fd57600080fd5b803561110b610e1482611510565b80828252848201915084840189868560051b870101111561112b57600080fd5b600094505b8385101561114e578035835260019490940193918501918501611130565b5080955050505050509250929050565b6000806040838503121561117157600080fd5b823561117c8161159e565b91506020830135610ef4816115b6565b6000806040838503121561119f57600080fd5b82356111aa8161159e565b946020939093013593505050565b6000806000606084860312156111cd57600080fd5b83356111d88161159e565b925060208401359150604084013567ffffffffffffffff8111156111fb57600080fd5b61120786828701610e3b565b9150509250925092565b60006020828403121561122357600080fd5b8151610732816115b6565b60006020828403121561124057600080fd5b815167ffffffffffffffff81111561125757600080fd5b8201601f8101841361126857600080fd5b6109d284825160208401610e06565b60006020828403121561128957600080fd5b5035919050565b6000602082840312156112a257600080fd5b5051919050565b600080604083850312156112bc57600080fd5b82359150602083013567ffffffffffffffff8111156112da57600080fd5b6112e685828601610e3b565b9150509250929050565b60006020828403121561130257600080fd5b813563ffffffff8116811461073257600080fd5b6000815180845261132e81602086016020860161155c565b601f01601f19169290920160200192915050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061137590830184611316565b9695505050505050565b6001600160a01b0383168152604060208083018290528351828401819052600092916060600583901b860181019290860190878301865b828110156113f557888603605f190184528151805187528501518587018890526113e288880182611316565b96505092840192908401906001016113b6565b50939998505050505050505050565b6001600160a01b038316815260406020808301829052835191830182905260009184820191906060850190845b8181101561144d57845183529383019391830191600101611431565b5090979650505050505050565b60018060a01b03841681528260208201526060604082015260006114816060830184611316565b95945050505050565b6020815260006107326020830184611316565b8281526040602082015260006109d26040830184611316565b6040805190810167ffffffffffffffff811182821017156114d9576114d9611588565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561150857611508611588565b604052919050565b600067ffffffffffffffff82111561152a5761152a611588565b5060051b60200190565b600067ffffffffffffffff82111561154e5761154e611588565b50601f01601f191660200190565b60005b8381101561157757818101518382015260200161155f565b83811115610a435750506000910152565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146115b357600080fd5b50565b80151581146115b357600080fdfea2646970667358221220669a75a3efcdc6b60606caa5c7e41cab1d727e89a03fd231d1cda27f4de159a064736f6c63430008070033
\ No newline at end of file
+608060405234801561001057600080fd5b506040516116bb3803806116bb83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b611628806100936000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c80634f6ccce7116100f957806379cc679011610097578063a22cb46511610071578063a22cb46514610399578063a9059cbb146103ac578063c87b56dd146103bf578063e985e9c5146103d257600080fd5b806379cc6790146103765780637d64bcb41461038957806395d89b411461039157600080fd5b806362d9491f116100d357806362d9491f146103355780636352211e1461034857806370a082311461035b57806375794a3c1461036e57600080fd5b80634f6ccce7146102fc57806350bb4e7f1461030f57806360a116721461032257600080fd5b80632f745c591161016657806340c10f191161014057806340c10f19146102b057806342842e0e146102c357806342966c68146102d657806344a9945e146102e957600080fd5b80632f745c5914610277578063342419141461028a578063365430061461029d57600080fd5b8063081812fc116101a2578063081812fc1461020e578063095ea7b31461023957806318160ddd1461024e57806323b872dd1461026457600080fd5b806301ffc9a7146101c957806305d2035b146101f157806306fdde03146101f9575b600080fd5b6101dc6101d7366004610dca565b6103e5565b60405190151581526020015b60405180910390f35b6101dc610462565b6102016104df565b6040516101e89190610e4c565b61022161021c366004610e5f565b610550565b6040516001600160a01b0390911681526020016101e8565b61024c610247366004610e90565b6105bf565b005b61025661062a565b6040519081526020016101e8565b61024c610272366004610ebc565b6106a2565b610256610285366004610e90565b610716565b61024c610298366004610ff3565b610793565b6101dc6102ab36600461104c565b6107f8565b6101dc6102be366004610e90565b61086e565b61024c6102d1366004610ebc565b6108a8565b61024c6102e4366004610e5f565b6108e9565b6101dc6102f736600461114f565b61091a565b61025661030a366004610e5f565b61094d565b6101dc61031d3660046111f5565b6109bc565b61024c61033036600461124e565b610a3c565b61024c6103433660046112ce565b610aab565b610221610356366004610e5f565b610add565b610256610369366004611332565b610b0f565b610256610b42565b61024c610384366004610e90565b610b96565b6101dc610bcf565b610201610c25565b61024c6103a736600461135d565b610c6e565b61024c6103ba366004610e90565b610ca8565b6102016103cd366004610e5f565b610ce1565b6102216103e0366004611396565b610d53565b600080546040516301ffc9a760e01b81526001600160e01b0319841660048201526001600160a01b03909116906301ffc9a790602401602060405180830381865afa158015610438573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045c91906113c4565b92915050565b60008060009054906101000a90046001600160a01b03166001600160a01b03166305d2035b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104da91906113c4565b905090565b60008054604080516306fdde0360e01b815290516060936001600160a01b03909316926306fdde0392600480820193918290030181865afa158015610528573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104da91908101906113e1565b6000805460405163020604bf60e21b8152600481018490526001600160a01b039091169063081812fc906024015b602060405180830381865afa15801561059b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045c9190611458565b60005460405163095ea7b360e01b81526001600160a01b038481166004830152602482018490529091169063095ea7b3906044015b600060405180830381600087803b15801561060e57600080fd5b505af1158015610622573d6000803e3d6000fd5b505050505050565b60008060009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561067e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104da9190611475565b6000546040516323b872dd60e01b81526001600160a01b038581166004830152848116602483015260448201849052909116906323b872dd906064015b600060405180830381600087803b1580156106f957600080fd5b505af115801561070d573d6000803e3d6000fd5b50505050505050565b60008054604051632f745c5960e01b81526001600160a01b0385811660048301526024820185905290911690632f745c5990604401602060405180830381865afa158015610768573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078c9190611475565b9392505050565b600054604051630d09064560e21b81526001600160a01b03909116906334241914906107c3908490600401610e4c565b600060405180830381600087803b1580156107dd57600080fd5b505af11580156107f1573d6000803e3d6000fd5b5050505050565b60008054604051631b2a180360e11b81526001600160a01b039091169063365430069061082b908690869060040161148e565b6020604051808303816000875af115801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078c91906113c4565b600080546040516340c10f1960e01b81526001600160a01b03858116600483015260248201859052909116906340c10f199060440161082b565b600054604051632142170760e11b81526001600160a01b038581166004830152848116602483015260448201849052909116906342842e0e906064016106df565b600054604051630852cd8d60e31b8152600481018390526001600160a01b03909116906342966c68906024016107c3565b60008054604051632254ca2f60e11b81526001600160a01b03909116906344a9945e9061082b9086908690600401611513565b60008054604051634f6ccce760e01b8152600481018490526001600160a01b0390911690634f6ccce7906024015b602060405180830381865afa158015610998573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045c9190611475565b600080546040516350bb4e7f60e01b81526001600160a01b03909116906350bb4e7f906109f190879087908790600401611569565b6020604051808303816000875af1158015610a10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3491906113c4565b949350505050565b6000546040516330508b3960e11b81526001600160a01b03909116906360a1167290610a72908790879087908790600401611590565b600060405180830381600087803b158015610a8c57600080fd5b505af1158015610aa0573d6000803e3d6000fd5b505050505b50505050565b6000546040516362d9491f60e01b81526001600160a01b03909116906362d9491f906105f490859085906004016115cd565b600080546040516331a9108f60e11b8152600481018490526001600160a01b0390911690636352211e9060240161057e565b600080546040516370a0823160e01b81526001600160a01b038481166004830152909116906370a082319060240161097b565b60008060009054906101000a90046001600160a01b03166001600160a01b03166375794a3c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561067e573d6000803e3d6000fd5b60005460405163079cc67960e41b81526001600160a01b03848116600483015260248201849052909116906379cc6790906044016105f4565b60008060009054906101000a90046001600160a01b03166001600160a01b0316637d64bcb46040518163ffffffff1660e01b81526004016020604051808303816000875af11580156104b6573d6000803e3d6000fd5b60008054604080516395d89b4160e01b815290516060936001600160a01b03909316926395d89b4192600480820193918290030181865afa158015610528573d6000803e3d6000fd5b60005460405163a22cb46560e01b81526001600160a01b03848116600483015283151560248301529091169063a22cb465906044016105f4565b60005460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb906044016105f4565b60005460405163c87b56dd60e01b8152600481018390526060916001600160a01b03169063c87b56dd90602401600060405180830381865afa158015610d2b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261045c91908101906113e1565b6000805460405163e985e9c560e01b81526001600160a01b03858116600483015284811660248301529091169063e985e9c590604401602060405180830381865afa158015610da6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078c9190611458565b600060208284031215610ddc57600080fd5b81356001600160e01b03198116811461078c57600080fd5b60005b83811015610e0f578181015183820152602001610df7565b83811115610aa55750506000910152565b60008151808452610e38816020860160208601610df4565b601f01601f19169290920160200192915050565b60208152600061078c6020830184610e20565b600060208284031215610e7157600080fd5b5035919050565b6001600160a01b0381168114610e8d57600080fd5b50565b60008060408385031215610ea357600080fd5b8235610eae81610e78565b946020939093013593505050565b600080600060608486031215610ed157600080fd5b8335610edc81610e78565b92506020840135610eec81610e78565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715610f3657610f36610efd565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610f6557610f65610efd565b604052919050565b600067ffffffffffffffff821115610f8757610f87610efd565b50601f01601f191660200190565b6000610fa8610fa384610f6d565b610f3c565b9050828152838383011115610fbc57600080fd5b828260208301376000602084830101529392505050565b600082601f830112610fe457600080fd5b61078c83833560208501610f95565b60006020828403121561100557600080fd5b813567ffffffffffffffff81111561101c57600080fd5b610a3484828501610fd3565b600067ffffffffffffffff82111561104257611042610efd565b5060051b60200190565b600080604080848603121561106057600080fd5b833561106b81610e78565b925060208481013567ffffffffffffffff8082111561108957600080fd5b818701915087601f83011261109d57600080fd5b81356110ab610fa382611028565b81815260059190911b8301840190848101908a8311156110ca57600080fd5b8585015b8381101561113d578035858111156110e65760008081fd5b8601808d03601f19018913156110fc5760008081fd5b611104610f13565b888201358152898201358781111561111c5760008081fd5b61112a8f8b83860101610fd3565b828b0152508452509186019186016110ce565b50809750505050505050509250929050565b6000806040838503121561116257600080fd5b823561116d81610e78565b915060208381013567ffffffffffffffff81111561118a57600080fd5b8401601f8101861361119b57600080fd5b80356111a9610fa382611028565b81815260059190911b820183019083810190888311156111c857600080fd5b928401925b828410156111e6578335825292840192908401906111cd565b80955050505050509250929050565b60008060006060848603121561120a57600080fd5b833561121581610e78565b925060208401359150604084013567ffffffffffffffff81111561123857600080fd5b61124486828701610fd3565b9150509250925092565b6000806000806080858703121561126457600080fd5b843561126f81610e78565b9350602085013561127f81610e78565b925060408501359150606085013567ffffffffffffffff8111156112a257600080fd5b8501601f810187136112b357600080fd5b6112c287823560208401610f95565b91505092959194509250565b600080604083850312156112e157600080fd5b823567ffffffffffffffff808211156112f957600080fd5b61130586838701610fd3565b9350602085013591508082111561131b57600080fd5b5061132885828601610fd3565b9150509250929050565b60006020828403121561134457600080fd5b813561078c81610e78565b8015158114610e8d57600080fd5b6000806040838503121561137057600080fd5b823561137b81610e78565b9150602083013561138b8161134f565b809150509250929050565b600080604083850312156113a957600080fd5b82356113b481610e78565b9150602083013561138b81610e78565b6000602082840312156113d657600080fd5b815161078c8161134f565b6000602082840312156113f357600080fd5b815167ffffffffffffffff81111561140a57600080fd5b8201601f8101841361141b57600080fd5b8051611429610fa382610f6d565b81815285602083850101111561143e57600080fd5b61144f826020830160208601610df4565b95945050505050565b60006020828403121561146a57600080fd5b815161078c81610e78565b60006020828403121561148757600080fd5b5051919050565b6001600160a01b0383168152604060208083018290528351828401819052600092916060600583901b860181019290860190878301865b8281101561150457888603605f190184528151805187528501518587018890526114f188880182610e20565b96505092840192908401906001016114c5565b50939998505050505050505050565b6001600160a01b038316815260406020808301829052835191830182905260009184820191906060850190845b8181101561155c57845183529383019391830191600101611540565b5090979650505050505050565b60018060a01b038416815282602082015260606040820152600061144f6060830184610e20565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906115c390830184610e20565b9695505050505050565b6040815260006115e06040830185610e20565b828103602084015261144f8185610e2056fea26469706673582212205bdf4275f4b714a1029ccfe77c0f9a0e20e121a932e1e5840cace97dfa886da964736f6c634300080d0033
\ No newline at end of file
tests/src/eth/proxy/UniqueNFTProxy.soldiffbeforeafterboth--- a/tests/src/eth/proxy/UniqueNFTProxy.sol
+++ b/tests/src/eth/proxy/UniqueNFTProxy.sol
@@ -148,29 +148,17 @@
return proxied.nextTokenId();
}
- function supportsInterface(uint32 interfaceId)
+ function burnFrom(address from, uint256 tokenId) external override {
+ return proxied.burnFrom(from, tokenId);
+ }
+
+ function supportsInterface(bytes4 interfaceId)
external
view
override
returns (bool)
{
return proxied.supportsInterface(interfaceId);
- }
-
- function setVariableMetadata(uint256 tokenId, bytes memory data)
- external
- override
- {
- return proxied.setVariableMetadata(tokenId, data);
- }
-
- function getVariableMetadata(uint256 tokenId)
- external
- view
- override
- returns (bytes memory)
- {
- return proxied.getVariableMetadata(tokenId);
}
function mintBulk(address to, uint256[] memory tokenIds)
@@ -188,4 +176,12 @@
{
return proxied.mintBulkWithTokenURI(to, tokens);
}
+
+ function setProperty(string memory key, string memory value) external override {
+ return proxied.setProperty(key, value);
+ }
+
+ function deleteProperty(string memory key) external override {
+ return proxied.deleteProperty(key);
+ }
}
tests/src/eth/proxy/nonFungibleProxy.test.tsdiffbeforeafterboth--- a/tests/src/eth/proxy/nonFungibleProxy.test.ts
+++ b/tests/src/eth/proxy/nonFungibleProxy.test.ts
@@ -15,7 +15,7 @@
// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
import privateKey from '../../substrate/privateKey';
-import {createCollectionExpectSuccess, createItemExpectSuccess, setVariableMetaDataExpectSuccess, setMetadataUpdatePermissionFlagExpectSuccess} from '../../util/helpers';
+import {createCollectionExpectSuccess, createItemExpectSuccess} from '../../util/helpers';
import {collectionIdToAddress, createEthAccount, createEthAccountWithBalance, GAS_ARGS, itWeb3, normalizeEvents} from '../util/helpers';
import nonFungibleAbi from '../nonFungibleAbi.json';
import {expect} from 'chai';
@@ -333,36 +333,5 @@
const balance = await contract.methods.balanceOf(receiver).call();
expect(+balance).to.equal(1);
}
- });
-
- itWeb3('Can perform getVariableMetadata', async ({web3, api}) => {
- const collection = await createCollectionExpectSuccess({
- mode: {type: 'NFT'},
- });
- const alice = privateKey('//Alice');
- const caller = await createEthAccountWithBalance(api, web3);
-
- const address = collectionIdToAddress(collection);
- const contract = await proxyWrap(api, web3, new web3.eth.Contract(nonFungibleAbi as any, address, {from: caller, ...GAS_ARGS}));
- const item = await createItemExpectSuccess(alice, collection, 'NFT', {Ethereum: contract.options.address});
- await setMetadataUpdatePermissionFlagExpectSuccess(alice, collection, 'Admin');
- await setVariableMetaDataExpectSuccess(alice, collection, item, [1, 2, 3]);
-
- expect(await contract.methods.getVariableMetadata(item).call()).to.be.equal('0x010203');
- });
-
- itWeb3('Can perform setVariableMetadata', async ({web3, api}) => {
- const collection = await createCollectionExpectSuccess({
- mode: {type: 'NFT'},
- });
- const alice = privateKey('//Alice');
- const caller = await createEthAccountWithBalance(api, web3);
-
- const address = collectionIdToAddress(collection);
- const contract = await proxyWrap(api, web3, new web3.eth.Contract(nonFungibleAbi as any, address, {from: caller, ...GAS_ARGS}));
- const item = await createItemExpectSuccess(alice, collection, 'NFT', {Ethereum: contract.options.address});
-
- expect(await contract.methods.setVariableMetadata(item, '0x010203').send({from: caller}));
- expect(await contract.methods.getVariableMetadata(item).call()).to.be.equal('0x010203');
});
});
tests/src/eth/tokenProperties.test.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/eth/tokenProperties.test.ts
@@ -0,0 +1,95 @@
+import privateKey from '../substrate/privateKey';
+import {addCollectionAdminExpectSuccess, createCollectionExpectSuccess, createItemExpectSuccess} from '../util/helpers';
+import {cartesian, collectionIdToAddress, createEthAccount, createEthAccountWithBalance, GAS_ARGS, itWeb3} from './util/helpers';
+import nonFungibleAbi from './nonFungibleAbi.json';
+import {expect} from 'chai';
+import {executeTransaction} from '../substrate/substrate-api';
+
+describe('EVM token properties', () => {
+ itWeb3('Can be reconfigured', async({web3, api}) => {
+ const alice = privateKey('//Alice');
+ const caller = await createEthAccountWithBalance(api, web3);
+ for(const [mutable,collectionAdmin, tokenOwner] of cartesian([], [false, true], [false, true], [false, true])) {
+ const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
+ await addCollectionAdminExpectSuccess(alice, collection, {Ethereum: caller});
+
+ const address = collectionIdToAddress(collection);
+ const contract = new web3.eth.Contract(nonFungibleAbi as any, address, {from: caller, ...GAS_ARGS});
+
+ await contract.methods.setTokenPropertyPermission('testKey', mutable, collectionAdmin, tokenOwner).send({from: caller});
+
+ const state = (await api.query.common.collectionPropertyPermissions(collection)).toJSON();
+ expect(state).to.be.deep.equal({
+ [web3.utils.toHex('testKey')]: {mutable, collectionAdmin, tokenOwner},
+ });
+ }
+ });
+ itWeb3('Can be set', async({web3, api}) => {
+ const alice = privateKey('//Alice');
+ const caller = await createEthAccountWithBalance(api, web3);
+ const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
+ const token = await createItemExpectSuccess(alice, collection, 'NFT');
+
+ await executeTransaction(api, alice, api.tx.unique.setPropertyPermissions(collection, [{
+ key: 'testKey',
+ permission: {
+ collectionAdmin: true,
+ },
+ }]));
+
+ await addCollectionAdminExpectSuccess(alice, collection, {Ethereum: caller});
+
+ const address = collectionIdToAddress(collection);
+ const contract = new web3.eth.Contract(nonFungibleAbi as any, address, {from: caller, ...GAS_ARGS});
+
+ await contract.methods.setProperty(token, 'testKey', Buffer.from('testValue')).send({from: caller});
+
+ const [{value}] = (await api.rpc.unique.tokenProperties(collection, token, ['testKey'])).toHuman()! as any;
+ expect(value).to.equal('testValue');
+ });
+ itWeb3('Can be deleted', async({web3, api}) => {
+ const alice = privateKey('//Alice');
+ const caller = await createEthAccountWithBalance(api, web3);
+ const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
+ const token = await createItemExpectSuccess(alice, collection, 'NFT');
+
+ await executeTransaction(api, alice, api.tx.unique.setPropertyPermissions(collection, [{
+ key: 'testKey',
+ permission: {
+ mutable: true,
+ collectionAdmin: true,
+ },
+ }]));
+ await executeTransaction(api, alice, api.tx.unique.setTokenProperties(collection, token, [{key: 'testKey', value: 'testValue'}]));
+
+ await addCollectionAdminExpectSuccess(alice, collection, {Ethereum: caller});
+
+ const address = collectionIdToAddress(collection);
+ const contract = new web3.eth.Contract(nonFungibleAbi as any, address, {from: caller, ...GAS_ARGS});
+
+ await contract.methods.deleteProperty(token, 'testKey').send({from: caller});
+
+ const result = (await api.rpc.unique.tokenProperties(collection, token, ['testKey'])).toJSON()! as any;
+ expect(result.length).to.equal(0);
+ });
+ itWeb3('Can be read', async({web3, api}) => {
+ const alice = privateKey('//Alice');
+ const caller = createEthAccount(web3);
+ const collection = await createCollectionExpectSuccess({mode: {type:'NFT'}});
+ const token = await createItemExpectSuccess(alice, collection, 'NFT');
+
+ await executeTransaction(api, alice, api.tx.unique.setPropertyPermissions(collection, [{
+ key: 'testKey',
+ permission: {
+ collectionAdmin: true,
+ },
+ }]));
+ await executeTransaction(api, alice, api.tx.unique.setTokenProperties(collection, token, [{key: 'testKey', value: 'testValue'}]));
+
+ const address = collectionIdToAddress(collection);
+ const contract = new web3.eth.Contract(nonFungibleAbi as any, address, {from: caller, ...GAS_ARGS});
+
+ const value = await contract.methods.property(token, 'testKey').call();
+ expect(value).to.equal(web3.utils.toHex('testValue'));
+ });
+});
tests/src/eth/util/helpers.tsdiffbeforeafterboth--- a/tests/src/eth/util/helpers.ts
+++ b/tests/src/eth/util/helpers.ts
@@ -322,3 +322,15 @@
return before - after;
}
+
+type ElementOf<A> = A extends readonly (infer T)[] ? T : never;
+// I want a fancier api, not a memory efficiency
+export function* cartesian<T extends Array<Array<any>>, R extends Array<any>>(internalRest: [...R], ...args: [...T]): Generator<[...R, ...{[K in keyof T]: ElementOf<T[K]>}]> {
+ if(args.length === 0) {
+ yield internalRest as any;
+ return;
+ }
+ for(const value of args[0]) {
+ yield* cartesian([...internalRest, value], ...args.slice(1)) as any;
+ }
+}
\ No newline at end of file
tests/src/interfaces/augment-api-errors.tsdiffbeforeafterboth--- a/tests/src/interfaces/augment-api-errors.ts
+++ b/tests/src/interfaces/augment-api-errors.ts
@@ -137,6 +137,10 @@
**/
OwnerPermissionsCantBeReverted: AugmentedError<ApiType>;
/**
+ * Property key is too long
+ **/
+ PropertyKeyIsTooLong: AugmentedError<ApiType>;
+ /**
* Tried to store more property keys than allowed
**/
PropertyLimitReached: AugmentedError<ApiType>;
@@ -156,10 +160,6 @@
* Item balance not enough.
**/
TokenValueTooLow: AugmentedError<ApiType>;
- /**
- * variable_data exceeded data limit.
- **/
- TokenVariableDataLimitExceeded: AugmentedError<ApiType>;
/**
* Total collections bound exceeded.
**/
@@ -168,10 +168,6 @@
* Collection settings not allowing items transferring
**/
TransferNotAllowed: AugmentedError<ApiType>;
- /**
- * Unable to read array of unbounded keys
- **/
- UnableToReadUnboundedKeys: AugmentedError<ApiType>;
/**
* Target collection doesn't supports this operation
**/
tests/src/interfaces/augment-api-rpc.tsdiffbeforeafterboth--- a/tests/src/interfaces/augment-api-rpc.ts
+++ b/tests/src/interfaces/augment-api-rpc.ts
@@ -1,7 +1,7 @@
// Auto-generated via `yarn polkadot-types-from-chain`, do not edit
/* eslint-disable */
-import type { PalletEvmAccountBasicCrossAccountIdRepr, UpDataStructsCollectionLimits, UpDataStructsCollectionStats, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsRpcCollection, UpDataStructsTokenData } from './unique';
+import type { PalletEvmAccountBasicCrossAccountIdRepr, RmrkTypesBaseInfo, RmrkTypesCollectionInfo, RmrkTypesNftChild, RmrkTypesNftInfo, RmrkTypesPartType, RmrkTypesPropertyInfo, RmrkTypesResourceInfo, RmrkTypesTheme, UpDataStructsCollectionLimits, UpDataStructsCollectionStats, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsRpcCollection, UpDataStructsTokenData } from './unique';
import type { AugmentedRpc } from '@polkadot/rpc-core/types';
import type { Metadata, StorageKey } from '@polkadot/types';
import type { Bytes, HashMap, Json, Null, Option, Text, U256, U64, Vec, bool, u128, u32, u64 } from '@polkadot/types-codec';
@@ -401,19 +401,19 @@
/**
* Get base info
**/
- base: AugmentedRpc<(baseId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<RmrkTraitsBaseBaseInfo>>>;
+ base: AugmentedRpc<(baseId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<RmrkTypesBaseInfo>>>;
/**
* Get all Base's parts
**/
- baseParts: AugmentedRpc<(baseId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<RmrkTraitsPartPartType>>>;
+ baseParts: AugmentedRpc<(baseId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<RmrkTypesPartType>>>;
/**
* Get collection by id
**/
- collectionById: AugmentedRpc<(id: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<RmrkTraitsCollectionCollectionInfo>>>;
+ collectionById: AugmentedRpc<(id: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<RmrkTypesCollectionInfo>>>;
/**
* Get collection properties
**/
- collectionProperties: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<RmrkTraitsPropertyPropertyInfo>>>;
+ collectionProperties: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<RmrkTypesPropertyInfo>>>;
/**
* Get the latest created collection id
**/
@@ -421,15 +421,15 @@
/**
* Get NFT by collection id and NFT id
**/
- nftById: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<RmrkTraitsNftNftInfo>>>;
+ nftById: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<RmrkTypesNftInfo>>>;
/**
* Get NFT children
**/
- nftChildren: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<RmrkTraitsNftNftChild>>>;
+ nftChildren: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<RmrkTypesNftChild>>>;
/**
* Get NFT properties
**/
- nftProperties: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<RmrkTraitsPropertyPropertyInfo>>>;
+ nftProperties: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<RmrkTypesPropertyInfo>>>;
/**
* Get NFT resource priorities
**/
@@ -437,7 +437,7 @@
/**
* Get NFT resources
**/
- nftResources: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<RmrkTraitsResourceResourceInfo>>>;
+ nftResources: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<RmrkTypesResourceInfo>>>;
/**
* Get Base's theme names
**/
@@ -445,7 +445,7 @@
/**
* Get Theme's keys values
**/
- themes: AugmentedRpc<(baseId: u32 | AnyNumber | Uint8Array, themeName: Text | string, keys: Option<Vec<Text>> | null | object | string | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<RmrkTraitsTheme>>>;
+ themes: AugmentedRpc<(baseId: u32 | AnyNumber | Uint8Array, themeName: Text | string, keys: Option<Vec<Text>> | null | object | string | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<RmrkTypesTheme>>>;
};
rpc: {
/**
@@ -659,7 +659,7 @@
/**
* Get collection properties
**/
- collectionProperties: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, propertyKeys: Vec<Text> | (Text | string)[], at?: Hash | string | Uint8Array) => Observable<Vec<UpDataStructsProperty>>>;
+ collectionProperties: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, propertyKeys?: Vec<Text> | (Text | string)[], at?: Hash | string | Uint8Array) => Observable<Vec<UpDataStructsProperty>>>;
/**
* Get collection stats
**/
@@ -687,11 +687,11 @@
/**
* Get property permissions
**/
- propertyPermissions: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, propertyKeys: Vec<Text> | (Text | string)[], at?: Hash | string | Uint8Array) => Observable<Vec<UpDataStructsPropertyKeyPermission>>>;
+ propertyPermissions: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, propertyKeys?: Vec<Text> | (Text | string)[], at?: Hash | string | Uint8Array) => Observable<Vec<UpDataStructsPropertyKeyPermission>>>;
/**
* Get token data
**/
- tokenData: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, propertyKeys: Vec<Text> | (Text | string)[], at?: Hash | string | Uint8Array) => Observable<UpDataStructsTokenData>>;
+ tokenData: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, propertyKeys?: Vec<Text> | (Text | string)[], at?: Hash | string | Uint8Array) => Observable<UpDataStructsTokenData>>;
/**
* Check if token exists
**/
@@ -703,7 +703,7 @@
/**
* Get token properties
**/
- tokenProperties: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, propertyKeys: Vec<Text> | (Text | string)[], at?: Hash | string | Uint8Array) => Observable<Vec<UpDataStructsProperty>>>;
+ tokenProperties: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, propertyKeys?: Vec<Text> | (Text | string)[], at?: Hash | string | Uint8Array) => Observable<Vec<UpDataStructsProperty>>>;
/**
* Get token owner, in case of nested token - find parent recursive
**/
tests/src/interfaces/augment-api-tx.tsdiffbeforeafterboth--- a/tests/src/interfaces/augment-api-tx.ts
+++ b/tests/src/interfaces/augment-api-tx.ts
@@ -5,7 +5,7 @@
import type { Bytes, Compact, Option, U256, Vec, bool, u128, u16, u32, u64 } from '@polkadot/types-codec';
import type { AnyNumber, IMethod, ITuple } from '@polkadot/types-codec/types';
import type { AccountId32, Call, H160, H256, MultiAddress, Perbill } from '@polkadot/types/interfaces/runtime';
-import type { CumulusPrimitivesParachainInherentParachainInherentData, EthereumTransactionTransactionV2, OrmlVestingVestingSchedule, PalletEvmAccountBasicCrossAccountIdRepr, UpDataStructsAccessMode, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCreateCollectionData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsMetaUpdatePermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsSchemaVersion, XcmV1MultiLocation, XcmV2WeightLimit, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';
+import type { CumulusPrimitivesParachainInherentParachainInherentData, EthereumTransactionTransactionV2, OrmlVestingVestingSchedule, PalletEvmAccountBasicCrossAccountIdRepr, UpDataStructsAccessMode, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCreateCollectionData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsSchemaVersion, XcmV1MultiLocation, XcmV2WeightLimit, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';
declare module '@polkadot/api-base/types/submittable' {
export interface AugmentedSubmittables<ApiType extends ApiTypes> {
@@ -679,7 +679,7 @@
*
* Prefer it to deprecated [`created_collection`] method
**/
- 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]>;
+ 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]>;
/**
* This method creates a concrete instance of NFT Collection created with CreateCollection method.
*
@@ -809,20 +809,6 @@
**/
setConstOnChainSchema: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, schema: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, Bytes]>;
/**
- * Set meta_update_permission value for particular collection
- *
- * # Permissions
- *
- * * Collection Owner.
- *
- * # Arguments
- *
- * * collection_id: ID of the collection.
- *
- * * value: New flag value.
- **/
- setMetaUpdatePermissionFlag: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, value: UpDataStructsMetaUpdatePermission | 'ItemOwner' | 'Admin' | 'None' | number | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, UpDataStructsMetaUpdatePermission]>;
- /**
* Allows Anyone to create tokens if:
* * Allow List is enabled, and
* * Address is added to allow list, and
@@ -900,21 +886,6 @@
* * value: New flag value.
**/
setTransfersEnabledFlag: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, value: bool | boolean | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, bool]>;
- /**
- * Set off-chain data schema.
- *
- * # Permissions
- *
- * * Collection Owner
- * * Collection Admin
- *
- * # Arguments
- *
- * * collection_id.
- *
- * * schema: String representing the offchain data schema.
- **/
- setVariableMetaData: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, itemId: u32 | AnyNumber | Uint8Array, data: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, Bytes]>;
/**
* Change ownership of the token.
*
tests/src/interfaces/augment-types.tsdiffbeforeafterboth--- a/tests/src/interfaces/augment-types.ts
+++ b/tests/src/interfaces/augment-types.ts
@@ -1,7 +1,7 @@
// Auto-generated via `yarn polkadot-types-from-defs`, do not edit
/* eslint-disable */
-import 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';
+import 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';
import type { Data, StorageKey } from '@polkadot/types';
import 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';
import type { AssetApproval, AssetApprovalKey, AssetBalance, AssetDestroyWitness, AssetDetails, AssetMetadata, TAssetBalance, TAssetDepositBalance } from '@polkadot/types/interfaces/assets';
@@ -478,7 +478,6 @@
ForkTreePendingChangeNode: ForkTreePendingChangeNode;
FpRpcTransactionStatus: FpRpcTransactionStatus;
FrameSupportPalletId: FrameSupportPalletId;
- FrameSupportStorageBoundedBTreeSet: FrameSupportStorageBoundedBTreeSet;
FrameSupportTokensMiscBalanceStatus: FrameSupportTokensMiscBalanceStatus;
FrameSupportWeightsDispatchClass: FrameSupportWeightsDispatchClass;
FrameSupportWeightsDispatchInfo: FrameSupportWeightsDispatchInfo;
@@ -1204,7 +1203,6 @@
UpDataStructsCreateNftExData: UpDataStructsCreateNftExData;
UpDataStructsCreateReFungibleData: UpDataStructsCreateReFungibleData;
UpDataStructsCreateRefungibleExData: UpDataStructsCreateRefungibleExData;
- UpDataStructsMetaUpdatePermission: UpDataStructsMetaUpdatePermission;
UpDataStructsNestingRule: UpDataStructsNestingRule;
UpDataStructsProperties: UpDataStructsProperties;
UpDataStructsPropertiesMapBoundedVec: UpDataStructsPropertiesMapBoundedVec;
tests/src/interfaces/lookup.tsdiffbeforeafterboth--- a/tests/src/interfaces/lookup.ts
+++ b/tests/src/interfaces/lookup.ts
@@ -1360,15 +1360,6 @@
itemId: 'u32',
value: 'u128',
},
- set_variable_meta_data: {
- collectionId: 'u32',
- itemId: 'u32',
- data: 'Bytes',
- },
- set_meta_update_permission_flag: {
- collectionId: 'u32',
- value: 'UpDataStructsMetaUpdatePermission',
- },
set_schema_version: {
collectionId: 'u32',
version: 'UpDataStructsSchemaVersion',
@@ -1411,7 +1402,6 @@
pendingSponsor: 'Option<AccountId32>',
limits: 'Option<UpDataStructsCollectionLimits>',
constOnChainSchema: 'Bytes',
- metaUpdatePermission: 'Option<UpDataStructsMetaUpdatePermission>',
tokenPropertyPermissions: 'Vec<UpDataStructsPropertyKeyPermission>',
properties: 'Vec<UpDataStructsProperty>'
},
@@ -1462,20 +1452,14 @@
}
},
/**
- * Lookup177: up_data_structs::MetaUpdatePermission
+ * Lookup177: up_data_structs::PropertyKeyPermission
**/
- UpDataStructsMetaUpdatePermission: {
- _enum: ['ItemOwner', 'Admin', 'None']
- },
- /**
- * Lookup179: up_data_structs::PropertyKeyPermission
- **/
UpDataStructsPropertyKeyPermission: {
key: 'Bytes',
permission: 'UpDataStructsPropertyPermission'
},
/**
- * Lookup181: up_data_structs::PropertyPermission
+ * Lookup179: up_data_structs::PropertyPermission
**/
UpDataStructsPropertyPermission: {
mutable: 'bool',
@@ -1483,14 +1467,14 @@
tokenOwner: 'bool'
},
/**
- * Lookup184: up_data_structs::Property
+ * Lookup182: up_data_structs::Property
**/
UpDataStructsProperty: {
key: 'Bytes',
value: 'Bytes'
},
/**
- * Lookup186: pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>
+ * Lookup184: pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>
**/
PalletEvmAccountBasicCrossAccountIdRepr: {
_enum: {
@@ -1499,7 +1483,7 @@
}
},
/**
- * Lookup188: up_data_structs::CreateItemData
+ * Lookup186: up_data_structs::CreateItemData
**/
UpDataStructsCreateItemData: {
_enum: {
@@ -1509,29 +1493,27 @@
}
},
/**
- * Lookup189: up_data_structs::CreateNftData
+ * Lookup187: up_data_structs::CreateNftData
**/
UpDataStructsCreateNftData: {
constData: 'Bytes',
- variableData: 'Bytes',
properties: 'Vec<UpDataStructsProperty>'
},
/**
- * Lookup191: up_data_structs::CreateFungibleData
+ * Lookup189: up_data_structs::CreateFungibleData
**/
UpDataStructsCreateFungibleData: {
value: 'u128'
},
/**
- * Lookup192: up_data_structs::CreateReFungibleData
+ * Lookup190: up_data_structs::CreateReFungibleData
**/
UpDataStructsCreateReFungibleData: {
constData: 'Bytes',
- variableData: 'Bytes',
pieces: 'u128'
},
/**
- * Lookup196: up_data_structs::CreateItemExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
+ * Lookup194: up_data_structs::CreateItemExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
**/
UpDataStructsCreateItemExData: {
_enum: {
@@ -1542,32 +1524,30 @@
}
},
/**
- * Lookup198: up_data_structs::CreateNftExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
+ * Lookup196: up_data_structs::CreateNftExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
**/
UpDataStructsCreateNftExData: {
constData: 'Bytes',
- variableData: 'Bytes',
properties: 'Vec<UpDataStructsProperty>',
owner: 'PalletEvmAccountBasicCrossAccountIdRepr'
},
/**
- * Lookup205: up_data_structs::CreateRefungibleExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
+ * Lookup203: up_data_structs::CreateRefungibleExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
**/
UpDataStructsCreateRefungibleExData: {
constData: 'Bytes',
- variableData: 'Bytes',
users: 'BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>'
},
/**
- * Lookup207: pallet_template_transaction_payment::Call<T>
+ * Lookup205: pallet_template_transaction_payment::Call<T>
**/
PalletTemplateTransactionPaymentCall: 'Null',
/**
- * Lookup208: pallet_structure::pallet::Call<T>
+ * Lookup206: pallet_structure::pallet::Call<T>
**/
PalletStructureCall: 'Null',
/**
- * Lookup209: pallet_evm::pallet::Call<T>
+ * Lookup207: pallet_evm::pallet::Call<T>
**/
PalletEvmCall: {
_enum: {
@@ -1610,7 +1590,7 @@
}
},
/**
- * Lookup215: pallet_ethereum::pallet::Call<T>
+ * Lookup213: pallet_ethereum::pallet::Call<T>
**/
PalletEthereumCall: {
_enum: {
@@ -1620,7 +1600,7 @@
}
},
/**
- * Lookup216: ethereum::transaction::TransactionV2
+ * Lookup214: ethereum::transaction::TransactionV2
**/
EthereumTransactionTransactionV2: {
_enum: {
@@ -1630,7 +1610,7 @@
}
},
/**
- * Lookup217: ethereum::transaction::LegacyTransaction
+ * Lookup215: ethereum::transaction::LegacyTransaction
**/
EthereumTransactionLegacyTransaction: {
nonce: 'U256',
@@ -1642,7 +1622,7 @@
signature: 'EthereumTransactionTransactionSignature'
},
/**
- * Lookup218: ethereum::transaction::TransactionAction
+ * Lookup216: ethereum::transaction::TransactionAction
**/
EthereumTransactionTransactionAction: {
_enum: {
@@ -1651,7 +1631,7 @@
}
},
/**
- * Lookup219: ethereum::transaction::TransactionSignature
+ * Lookup217: ethereum::transaction::TransactionSignature
**/
EthereumTransactionTransactionSignature: {
v: 'u64',
@@ -1659,7 +1639,7 @@
s: 'H256'
},
/**
- * Lookup221: ethereum::transaction::EIP2930Transaction
+ * Lookup219: ethereum::transaction::EIP2930Transaction
**/
EthereumTransactionEip2930Transaction: {
chainId: 'u64',
@@ -1675,14 +1655,14 @@
s: 'H256'
},
/**
- * Lookup223: ethereum::transaction::AccessListItem
+ * Lookup221: ethereum::transaction::AccessListItem
**/
EthereumTransactionAccessListItem: {
address: 'H160',
storageKeys: 'Vec<H256>'
},
/**
- * Lookup224: ethereum::transaction::EIP1559Transaction
+ * Lookup222: ethereum::transaction::EIP1559Transaction
**/
EthereumTransactionEip1559Transaction: {
chainId: 'u64',
@@ -1699,7 +1679,7 @@
s: 'H256'
},
/**
- * Lookup225: pallet_evm_migration::pallet::Call<T>
+ * Lookup223: pallet_evm_migration::pallet::Call<T>
**/
PalletEvmMigrationCall: {
_enum: {
@@ -1717,7 +1697,7 @@
}
},
/**
- * Lookup228: pallet_sudo::pallet::Event<T>
+ * Lookup226: pallet_sudo::pallet::Event<T>
**/
PalletSudoEvent: {
_enum: {
@@ -1733,7 +1713,7 @@
}
},
/**
- * Lookup230: sp_runtime::DispatchError
+ * Lookup228: sp_runtime::DispatchError
**/
SpRuntimeDispatchError: {
_enum: {
@@ -1750,38 +1730,38 @@
}
},
/**
- * Lookup231: sp_runtime::ModuleError
+ * Lookup229: sp_runtime::ModuleError
**/
SpRuntimeModuleError: {
index: 'u8',
error: '[u8;4]'
},
/**
- * Lookup232: sp_runtime::TokenError
+ * Lookup230: sp_runtime::TokenError
**/
SpRuntimeTokenError: {
_enum: ['NoFunds', 'WouldDie', 'BelowMinimum', 'CannotCreate', 'UnknownAsset', 'Frozen', 'Unsupported']
},
/**
- * Lookup233: sp_runtime::ArithmeticError
+ * Lookup231: sp_runtime::ArithmeticError
**/
SpRuntimeArithmeticError: {
_enum: ['Underflow', 'Overflow', 'DivisionByZero']
},
/**
- * Lookup234: sp_runtime::TransactionalError
+ * Lookup232: sp_runtime::TransactionalError
**/
SpRuntimeTransactionalError: {
_enum: ['LimitReached', 'NoLayer']
},
/**
- * Lookup235: pallet_sudo::pallet::Error<T>
+ * Lookup233: pallet_sudo::pallet::Error<T>
**/
PalletSudoError: {
_enum: ['RequireSudo']
},
/**
- * Lookup236: frame_system::AccountInfo<Index, pallet_balances::AccountData<Balance>>
+ * Lookup234: frame_system::AccountInfo<Index, pallet_balances::AccountData<Balance>>
**/
FrameSystemAccountInfo: {
nonce: 'u32',
@@ -1791,7 +1771,7 @@
data: 'PalletBalancesAccountData'
},
/**
- * Lookup237: frame_support::weights::PerDispatchClass<T>
+ * Lookup235: frame_support::weights::PerDispatchClass<T>
**/
FrameSupportWeightsPerDispatchClassU64: {
normal: 'u64',
@@ -1799,13 +1779,13 @@
mandatory: 'u64'
},
/**
- * Lookup238: sp_runtime::generic::digest::Digest
+ * Lookup236: sp_runtime::generic::digest::Digest
**/
SpRuntimeDigest: {
logs: 'Vec<SpRuntimeDigestDigestItem>'
},
/**
- * Lookup240: sp_runtime::generic::digest::DigestItem
+ * Lookup238: sp_runtime::generic::digest::DigestItem
**/
SpRuntimeDigestDigestItem: {
_enum: {
@@ -1821,7 +1801,7 @@
}
},
/**
- * Lookup242: frame_system::EventRecord<opal_runtime::Event, primitive_types::H256>
+ * Lookup240: frame_system::EventRecord<opal_runtime::Event, primitive_types::H256>
**/
FrameSystemEventRecord: {
phase: 'FrameSystemPhase',
@@ -1829,7 +1809,7 @@
topics: 'Vec<H256>'
},
/**
- * Lookup244: frame_system::pallet::Event<T>
+ * Lookup242: frame_system::pallet::Event<T>
**/
FrameSystemEvent: {
_enum: {
@@ -1857,7 +1837,7 @@
}
},
/**
- * Lookup245: frame_support::weights::DispatchInfo
+ * Lookup243: frame_support::weights::DispatchInfo
**/
FrameSupportWeightsDispatchInfo: {
weight: 'u64',
@@ -1865,19 +1845,19 @@
paysFee: 'FrameSupportWeightsPays'
},
/**
- * Lookup246: frame_support::weights::DispatchClass
+ * Lookup244: frame_support::weights::DispatchClass
**/
FrameSupportWeightsDispatchClass: {
_enum: ['Normal', 'Operational', 'Mandatory']
},
/**
- * Lookup247: frame_support::weights::Pays
+ * Lookup245: frame_support::weights::Pays
**/
FrameSupportWeightsPays: {
_enum: ['Yes', 'No']
},
/**
- * Lookup248: orml_vesting::module::Event<T>
+ * Lookup246: orml_vesting::module::Event<T>
**/
OrmlVestingModuleEvent: {
_enum: {
@@ -1896,7 +1876,7 @@
}
},
/**
- * Lookup249: cumulus_pallet_xcmp_queue::pallet::Event<T>
+ * Lookup247: cumulus_pallet_xcmp_queue::pallet::Event<T>
**/
CumulusPalletXcmpQueueEvent: {
_enum: {
@@ -1911,7 +1891,7 @@
}
},
/**
- * Lookup250: pallet_xcm::pallet::Event<T>
+ * Lookup248: pallet_xcm::pallet::Event<T>
**/
PalletXcmEvent: {
_enum: {
@@ -1934,7 +1914,7 @@
}
},
/**
- * Lookup251: xcm::v2::traits::Outcome
+ * Lookup249: xcm::v2::traits::Outcome
**/
XcmV2TraitsOutcome: {
_enum: {
@@ -1944,7 +1924,7 @@
}
},
/**
- * Lookup253: cumulus_pallet_xcm::pallet::Event<T>
+ * Lookup251: cumulus_pallet_xcm::pallet::Event<T>
**/
CumulusPalletXcmEvent: {
_enum: {
@@ -1954,7 +1934,7 @@
}
},
/**
- * Lookup254: cumulus_pallet_dmp_queue::pallet::Event<T>
+ * Lookup252: cumulus_pallet_dmp_queue::pallet::Event<T>
**/
CumulusPalletDmpQueueEvent: {
_enum: {
@@ -1967,7 +1947,7 @@
}
},
/**
- * Lookup255: pallet_unique::RawEvent<sp_core::crypto::AccountId32, pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
+ * Lookup253: pallet_unique::RawEvent<sp_core::crypto::AccountId32, pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
**/
PalletUniqueRawEvent: {
_enum: {
@@ -1988,7 +1968,7 @@
}
},
/**
- * Lookup256: pallet_common::pallet::Event<T>
+ * Lookup254: pallet_common::pallet::Event<T>
**/
PalletCommonEvent: {
_enum: {
@@ -2006,7 +1986,7 @@
}
},
/**
- * Lookup257: pallet_structure::pallet::Event<T>
+ * Lookup255: pallet_structure::pallet::Event<T>
**/
PalletStructureEvent: {
_enum: {
@@ -2014,7 +1994,7 @@
}
},
/**
- * Lookup258: pallet_evm::pallet::Event<T>
+ * Lookup256: pallet_evm::pallet::Event<T>
**/
PalletEvmEvent: {
_enum: {
@@ -2028,7 +2008,7 @@
}
},
/**
- * Lookup259: ethereum::log::Log
+ * Lookup257: ethereum::log::Log
**/
EthereumLog: {
address: 'H160',
@@ -2036,7 +2016,7 @@
data: 'Bytes'
},
/**
- * Lookup260: pallet_ethereum::pallet::Event
+ * Lookup258: pallet_ethereum::pallet::Event
**/
PalletEthereumEvent: {
_enum: {
@@ -2044,7 +2024,7 @@
}
},
/**
- * Lookup261: evm_core::error::ExitReason
+ * Lookup259: evm_core::error::ExitReason
**/
EvmCoreErrorExitReason: {
_enum: {
@@ -2055,13 +2035,13 @@
}
},
/**
- * Lookup262: evm_core::error::ExitSucceed
+ * Lookup260: evm_core::error::ExitSucceed
**/
EvmCoreErrorExitSucceed: {
_enum: ['Stopped', 'Returned', 'Suicided']
},
/**
- * Lookup263: evm_core::error::ExitError
+ * Lookup261: evm_core::error::ExitError
**/
EvmCoreErrorExitError: {
_enum: {
@@ -2083,13 +2063,13 @@
}
},
/**
- * Lookup266: evm_core::error::ExitRevert
+ * Lookup264: evm_core::error::ExitRevert
**/
EvmCoreErrorExitRevert: {
_enum: ['Reverted']
},
/**
- * Lookup267: evm_core::error::ExitFatal
+ * Lookup265: evm_core::error::ExitFatal
**/
EvmCoreErrorExitFatal: {
_enum: {
@@ -2100,7 +2080,7 @@
}
},
/**
- * Lookup268: frame_system::Phase
+ * Lookup266: frame_system::Phase
**/
FrameSystemPhase: {
_enum: {
@@ -2110,14 +2090,14 @@
}
},
/**
- * Lookup270: frame_system::LastRuntimeUpgradeInfo
+ * Lookup268: frame_system::LastRuntimeUpgradeInfo
**/
FrameSystemLastRuntimeUpgradeInfo: {
specVersion: 'Compact<u32>',
specName: 'Text'
},
/**
- * Lookup271: frame_system::limits::BlockWeights
+ * Lookup269: frame_system::limits::BlockWeights
**/
FrameSystemLimitsBlockWeights: {
baseBlock: 'u64',
@@ -2125,7 +2105,7 @@
perClass: 'FrameSupportWeightsPerDispatchClassWeightsPerClass'
},
/**
- * Lookup272: frame_support::weights::PerDispatchClass<frame_system::limits::WeightsPerClass>
+ * Lookup270: frame_support::weights::PerDispatchClass<frame_system::limits::WeightsPerClass>
**/
FrameSupportWeightsPerDispatchClassWeightsPerClass: {
normal: 'FrameSystemLimitsWeightsPerClass',
@@ -2133,7 +2113,7 @@
mandatory: 'FrameSystemLimitsWeightsPerClass'
},
/**
- * Lookup273: frame_system::limits::WeightsPerClass
+ * Lookup271: frame_system::limits::WeightsPerClass
**/
FrameSystemLimitsWeightsPerClass: {
baseExtrinsic: 'u64',
@@ -2142,13 +2122,13 @@
reserved: 'Option<u64>'
},
/**
- * Lookup275: frame_system::limits::BlockLength
+ * Lookup273: frame_system::limits::BlockLength
**/
FrameSystemLimitsBlockLength: {
max: 'FrameSupportWeightsPerDispatchClassU32'
},
/**
- * Lookup276: frame_support::weights::PerDispatchClass<T>
+ * Lookup274: frame_support::weights::PerDispatchClass<T>
**/
FrameSupportWeightsPerDispatchClassU32: {
normal: 'u32',
@@ -2156,14 +2136,14 @@
mandatory: 'u32'
},
/**
- * Lookup277: frame_support::weights::RuntimeDbWeight
+ * Lookup275: frame_support::weights::RuntimeDbWeight
**/
FrameSupportWeightsRuntimeDbWeight: {
read: 'u64',
write: 'u64'
},
/**
- * Lookup278: sp_version::RuntimeVersion
+ * Lookup276: sp_version::RuntimeVersion
**/
SpVersionRuntimeVersion: {
specName: 'Text',
@@ -2176,19 +2156,19 @@
stateVersion: 'u8'
},
/**
- * Lookup282: frame_system::pallet::Error<T>
+ * Lookup280: frame_system::pallet::Error<T>
**/
FrameSystemError: {
_enum: ['InvalidSpecName', 'SpecVersionNeedsToIncrease', 'FailedToExtractRuntimeVersion', 'NonDefaultComposite', 'NonZeroRefCount', 'CallFiltered']
},
/**
- * Lookup284: orml_vesting::module::Error<T>
+ * Lookup282: orml_vesting::module::Error<T>
**/
OrmlVestingModuleError: {
_enum: ['ZeroVestingPeriod', 'ZeroVestingPeriodCount', 'InsufficientBalanceToLock', 'TooManyVestingSchedules', 'AmountLow', 'MaxVestingSchedulesExceeded']
},
/**
- * Lookup286: cumulus_pallet_xcmp_queue::InboundChannelDetails
+ * Lookup284: cumulus_pallet_xcmp_queue::InboundChannelDetails
**/
CumulusPalletXcmpQueueInboundChannelDetails: {
sender: 'u32',
@@ -2196,19 +2176,19 @@
messageMetadata: 'Vec<(u32,PolkadotParachainPrimitivesXcmpMessageFormat)>'
},
/**
- * Lookup287: cumulus_pallet_xcmp_queue::InboundState
+ * Lookup285: cumulus_pallet_xcmp_queue::InboundState
**/
CumulusPalletXcmpQueueInboundState: {
_enum: ['Ok', 'Suspended']
},
/**
- * Lookup290: polkadot_parachain::primitives::XcmpMessageFormat
+ * Lookup288: polkadot_parachain::primitives::XcmpMessageFormat
**/
PolkadotParachainPrimitivesXcmpMessageFormat: {
_enum: ['ConcatenatedVersionedXcm', 'ConcatenatedEncodedBlob', 'Signals']
},
/**
- * Lookup293: cumulus_pallet_xcmp_queue::OutboundChannelDetails
+ * Lookup291: cumulus_pallet_xcmp_queue::OutboundChannelDetails
**/
CumulusPalletXcmpQueueOutboundChannelDetails: {
recipient: 'u32',
@@ -2218,13 +2198,13 @@
lastIndex: 'u16'
},
/**
- * Lookup294: cumulus_pallet_xcmp_queue::OutboundState
+ * Lookup292: cumulus_pallet_xcmp_queue::OutboundState
**/
CumulusPalletXcmpQueueOutboundState: {
_enum: ['Ok', 'Suspended']
},
/**
- * Lookup296: cumulus_pallet_xcmp_queue::QueueConfigData
+ * Lookup294: cumulus_pallet_xcmp_queue::QueueConfigData
**/
CumulusPalletXcmpQueueQueueConfigData: {
suspendThreshold: 'u32',
@@ -2235,29 +2215,29 @@
xcmpMaxIndividualWeight: 'u64'
},
/**
- * Lookup298: cumulus_pallet_xcmp_queue::pallet::Error<T>
+ * Lookup296: cumulus_pallet_xcmp_queue::pallet::Error<T>
**/
CumulusPalletXcmpQueueError: {
_enum: ['FailedToSend', 'BadXcmOrigin', 'BadXcm', 'BadOverweightIndex', 'WeightOverLimit']
},
/**
- * Lookup299: pallet_xcm::pallet::Error<T>
+ * Lookup297: pallet_xcm::pallet::Error<T>
**/
PalletXcmError: {
_enum: ['Unreachable', 'SendFailure', 'Filtered', 'UnweighableMessage', 'DestinationNotInvertible', 'Empty', 'CannotReanchor', 'TooManyAssets', 'InvalidOrigin', 'BadVersion', 'BadLocation', 'NoSubscription', 'AlreadySubscribed']
},
/**
- * Lookup300: cumulus_pallet_xcm::pallet::Error<T>
+ * Lookup298: cumulus_pallet_xcm::pallet::Error<T>
**/
CumulusPalletXcmError: 'Null',
/**
- * Lookup301: cumulus_pallet_dmp_queue::ConfigData
+ * Lookup299: cumulus_pallet_dmp_queue::ConfigData
**/
CumulusPalletDmpQueueConfigData: {
maxIndividual: 'u64'
},
/**
- * Lookup302: cumulus_pallet_dmp_queue::PageIndexData
+ * Lookup300: cumulus_pallet_dmp_queue::PageIndexData
**/
CumulusPalletDmpQueuePageIndexData: {
beginUsed: 'u32',
@@ -2265,19 +2245,19 @@
overweightCount: 'u64'
},
/**
- * Lookup305: cumulus_pallet_dmp_queue::pallet::Error<T>
+ * Lookup303: cumulus_pallet_dmp_queue::pallet::Error<T>
**/
CumulusPalletDmpQueueError: {
_enum: ['Unknown', 'OverLimit']
},
/**
- * Lookup309: pallet_unique::Error<T>
+ * Lookup307: pallet_unique::Error<T>
**/
PalletUniqueError: {
_enum: ['CollectionDecimalPointLimitExceeded', 'ConfirmUnsetSponsorFail', 'EmptyArgument']
},
/**
- * Lookup310: up_data_structs::Collection<sp_core::crypto::AccountId32>
+ * Lookup308: up_data_structs::Collection<sp_core::crypto::AccountId32>
**/
UpDataStructsCollection: {
owner: 'AccountId32',
@@ -2289,11 +2269,10 @@
mintMode: 'bool',
schemaVersion: 'UpDataStructsSchemaVersion',
sponsorship: 'UpDataStructsSponsorshipState',
- limits: 'UpDataStructsCollectionLimits',
- metaUpdatePermission: 'UpDataStructsMetaUpdatePermission'
+ limits: 'UpDataStructsCollectionLimits'
},
/**
- * Lookup311: up_data_structs::SponsorshipState<sp_core::crypto::AccountId32>
+ * Lookup309: up_data_structs::SponsorshipState<sp_core::crypto::AccountId32>
**/
UpDataStructsSponsorshipState: {
_enum: {
@@ -2303,7 +2282,7 @@
}
},
/**
- * Lookup312: up_data_structs::Properties
+ * Lookup310: up_data_structs::Properties
**/
UpDataStructsProperties: {
map: 'UpDataStructsPropertiesMapBoundedVec',
@@ -2311,21 +2290,21 @@
spaceLimit: 'u32'
},
/**
- * Lookup313: up_data_structs::PropertiesMap<frame_support::storage::bounded_vec::BoundedVec<T, S>>
+ * Lookup311: up_data_structs::PropertiesMap<frame_support::storage::bounded_vec::BoundedVec<T, S>>
**/
UpDataStructsPropertiesMapBoundedVec: 'BTreeMap<Bytes, Bytes>',
/**
- * Lookup318: up_data_structs::PropertiesMap<up_data_structs::PropertyPermission>
+ * Lookup316: up_data_structs::PropertiesMap<up_data_structs::PropertyPermission>
**/
UpDataStructsPropertiesMapPropertyPermission: 'BTreeMap<Bytes, UpDataStructsPropertyPermission>',
/**
- * Lookup324: up_data_structs::CollectionField
+ * Lookup322: up_data_structs::CollectionField
**/
UpDataStructsCollectionField: {
_enum: ['ConstOnChainSchema', 'OffchainSchema']
},
/**
- * Lookup327: up_data_structs::CollectionStats
+ * Lookup325: up_data_structs::CollectionStats
**/
UpDataStructsCollectionStats: {
created: 'u32',
@@ -2333,11 +2312,11 @@
alive: 'u32'
},
/**
- * Lookup328: PhantomType::up_data_structs<up_data_structs::TokenData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>>
+ * Lookup326: PhantomType::up_data_structs<up_data_structs::TokenData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>>
**/
- PhantomTypeUpDataStructsTokenData: '[Lookup329;0]',
+ PhantomTypeUpDataStructsTokenData: '[Lookup327;0]',
/**
- * Lookup329: up_data_structs::TokenData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
+ * Lookup327: up_data_structs::TokenData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
**/
UpDataStructsTokenData: {
constData: 'Bytes',
@@ -2345,11 +2324,11 @@
owner: 'Option<PalletEvmAccountBasicCrossAccountIdRepr>'
},
/**
- * Lookup332: PhantomType::up_data_structs<up_data_structs::RpcCollection<sp_core::crypto::AccountId32>>
+ * Lookup330: PhantomType::up_data_structs<up_data_structs::RpcCollection<sp_core::crypto::AccountId32>>
**/
- PhantomTypeUpDataStructsRpcCollection: '[Lookup333;0]',
+ PhantomTypeUpDataStructsRpcCollection: '[Lookup331;0]',
/**
- * Lookup333: up_data_structs::RpcCollection<sp_core::crypto::AccountId32>
+ * Lookup331: up_data_structs::RpcCollection<sp_core::crypto::AccountId32>
**/
UpDataStructsRpcCollection: {
owner: 'AccountId32',
@@ -2364,16 +2343,15 @@
sponsorship: 'UpDataStructsSponsorshipState',
limits: 'UpDataStructsCollectionLimits',
constOnChainSchema: 'Bytes',
- metaUpdatePermission: 'UpDataStructsMetaUpdatePermission',
tokenPropertyPermissions: 'Vec<UpDataStructsPropertyKeyPermission>',
properties: 'Vec<UpDataStructsProperty>'
},
/**
- * 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>>
+ * 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>>
**/
- PhantomTypeUpDataStructsCollectionInfo: '[Lookup336;0]',
+ PhantomTypeUpDataStructsCollectionInfo: '[Lookup334;0]',
/**
- * Lookup336: rmrk_types::CollectionInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>, sp_core::crypto::AccountId32>
+ * Lookup334: rmrk_types::CollectionInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>, sp_core::crypto::AccountId32>
**/
RmrkTypesCollectionInfo: {
issuer: 'AccountId32',
@@ -2383,11 +2361,11 @@
nftsCount: 'u32'
},
/**
- * 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>>>
+ * 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>>>
**/
- PhantomTypeUpDataStructsNftInfo: '[Lookup341;0]',
+ PhantomTypeUpDataStructsNftInfo: '[Lookup339;0]',
/**
- * Lookup341: rmrk_types::NftInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill, frame_support::storage::bounded_vec::BoundedVec<T, S>>
+ * Lookup339: rmrk_types::NftInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill, frame_support::storage::bounded_vec::BoundedVec<T, S>>
**/
RmrkTypesNftInfo: {
owner: 'RmrkTypesAccountIdOrCollectionNftTuple',
@@ -2397,7 +2375,7 @@
pending: 'bool'
},
/**
- * Lookup342: rmrk_types::AccountIdOrCollectionNftTuple<sp_core::crypto::AccountId32>
+ * Lookup340: rmrk_types::AccountIdOrCollectionNftTuple<sp_core::crypto::AccountId32>
**/
RmrkTypesAccountIdOrCollectionNftTuple: {
_enum: {
@@ -2406,18 +2384,18 @@
}
},
/**
- * Lookup344: rmrk_types::RoyaltyInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill>
+ * Lookup342: rmrk_types::RoyaltyInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill>
**/
RmrkTypesRoyaltyInfo: {
recipient: 'AccountId32',
amount: 'Permill'
},
/**
- * 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>>>
+ * 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>>>
**/
- PhantomTypeUpDataStructsResourceInfo: '[Lookup347;0]',
+ PhantomTypeUpDataStructsResourceInfo: '[Lookup345;0]',
/**
- * 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>>
+ * 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>>
**/
RmrkTypesResourceInfo: {
id: 'Bytes',
@@ -2432,22 +2410,22 @@
thumb: 'Option<Bytes>'
},
/**
- * Lookup353: PhantomType::up_data_structs<rmrk_types::PropertyInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>>
+ * Lookup351: PhantomType::up_data_structs<rmrk_types::PropertyInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>>
**/
- PhantomTypeUpDataStructsPropertyInfo: '[Lookup354;0]',
+ PhantomTypeUpDataStructsPropertyInfo: '[Lookup352;0]',
/**
- * Lookup354: rmrk_types::PropertyInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
+ * Lookup352: rmrk_types::PropertyInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
**/
RmrkTypesPropertyInfo: {
key: 'Bytes',
value: 'Bytes'
},
/**
- * Lookup358: PhantomType::up_data_structs<rmrk_types::BaseInfo<sp_core::crypto::AccountId32, frame_support::storage::bounded_vec::BoundedVec<T, S>>>
+ * Lookup356: PhantomType::up_data_structs<rmrk_types::BaseInfo<sp_core::crypto::AccountId32, frame_support::storage::bounded_vec::BoundedVec<T, S>>>
**/
- PhantomTypeUpDataStructsBaseInfo: '[Lookup359;0]',
+ PhantomTypeUpDataStructsBaseInfo: '[Lookup357;0]',
/**
- * Lookup359: rmrk_types::BaseInfo<sp_core::crypto::AccountId32, frame_support::storage::bounded_vec::BoundedVec<T, S>>
+ * Lookup357: rmrk_types::BaseInfo<sp_core::crypto::AccountId32, frame_support::storage::bounded_vec::BoundedVec<T, S>>
**/
RmrkTypesBaseInfo: {
issuer: 'AccountId32',
@@ -2455,11 +2433,11 @@
symbol: 'Bytes'
},
/**
- * Lookup361: PhantomType::up_data_structs<rmrk_types::PartType<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>>
+ * Lookup359: PhantomType::up_data_structs<rmrk_types::PartType<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>>
**/
- PhantomTypeUpDataStructsPartType: '[Lookup362;0]',
+ PhantomTypeUpDataStructsPartType: '[Lookup360;0]',
/**
- * Lookup362: rmrk_types::PartType<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
+ * Lookup360: rmrk_types::PartType<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
**/
RmrkTypesPartType: {
_enum: {
@@ -2468,7 +2446,7 @@
}
},
/**
- * Lookup364: rmrk_types::FixedPart<frame_support::storage::bounded_vec::BoundedVec<T, S>>
+ * Lookup362: rmrk_types::FixedPart<frame_support::storage::bounded_vec::BoundedVec<T, S>>
**/
RmrkTypesFixedPart: {
id: 'u32',
@@ -2476,7 +2454,7 @@
src: 'Bytes'
},
/**
- * Lookup365: rmrk_types::SlotPart<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
+ * Lookup363: rmrk_types::SlotPart<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
**/
RmrkTypesSlotPart: {
id: 'u32',
@@ -2485,7 +2463,7 @@
z: 'u32'
},
/**
- * Lookup366: rmrk_types::EquippableList<frame_support::storage::bounded_vec::BoundedVec<T, S>>
+ * Lookup364: rmrk_types::EquippableList<frame_support::storage::bounded_vec::BoundedVec<T, S>>
**/
RmrkTypesEquippableList: {
_enum: {
@@ -2495,11 +2473,11 @@
}
},
/**
- * Lookup368: PhantomType::up_data_structs<rmrk_types::Theme<frame_support::storage::bounded_vec::BoundedVec<T, S>, BoundedPropertyList>>
+ * Lookup366: PhantomType::up_data_structs<rmrk_types::Theme<frame_support::storage::bounded_vec::BoundedVec<T, S>, BoundedPropertyList>>
**/
- PhantomTypeUpDataStructsTheme: '[Lookup369;0]',
+ PhantomTypeUpDataStructsTheme: '[Lookup367;0]',
/**
- * Lookup369: rmrk_types::Theme<frame_support::storage::bounded_vec::BoundedVec<T, S>, BoundedPropertyList>
+ * Lookup367: rmrk_types::Theme<frame_support::storage::bounded_vec::BoundedVec<T, S>, BoundedPropertyList>
**/
RmrkTypesTheme: {
name: 'Bytes',
@@ -2507,76 +2485,74 @@
inherit: 'bool'
},
/**
- * Lookup371: rmrk_types::ThemeProperty<frame_support::storage::bounded_vec::BoundedVec<T, S>>
+ * Lookup369: rmrk_types::ThemeProperty<frame_support::storage::bounded_vec::BoundedVec<T, S>>
**/
RmrkTypesThemeProperty: {
key: 'Bytes',
value: 'Bytes'
},
/**
- * Lookup373: PhantomType::up_data_structs<rmrk_types::NftChild>
+ * Lookup371: PhantomType::up_data_structs<rmrk_types::NftChild>
**/
- PhantomTypeUpDataStructsNftChild: '[Lookup374;0]',
+ PhantomTypeUpDataStructsNftChild: '[Lookup372;0]',
/**
- * Lookup374: rmrk_types::NftChild
+ * Lookup372: rmrk_types::NftChild
**/
RmrkTypesNftChild: {
collectionId: 'u32',
nftId: 'u32'
},
/**
- * Lookup376: pallet_common::pallet::Error<T>
+ * Lookup374: pallet_common::pallet::Error<T>
**/
PalletCommonError: {
- _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']
+ _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']
},
/**
- * Lookup378: pallet_fungible::pallet::Error<T>
+ * Lookup376: pallet_fungible::pallet::Error<T>
**/
PalletFungibleError: {
_enum: ['NotFungibleDataUsedToMintFungibleCollectionToken', 'FungibleItemsHaveNoId', 'FungibleItemsDontHaveData', 'FungibleDisallowsNesting', 'SettingPropertiesNotAllowed']
},
/**
- * Lookup379: pallet_refungible::ItemData
+ * Lookup377: pallet_refungible::ItemData
**/
PalletRefungibleItemData: {
- constData: 'Bytes',
- variableData: 'Bytes'
+ constData: 'Bytes'
},
/**
- * Lookup383: pallet_refungible::pallet::Error<T>
+ * Lookup381: pallet_refungible::pallet::Error<T>
**/
PalletRefungibleError: {
_enum: ['NotRefungibleDataUsedToMintFungibleCollectionToken', 'WrongRefungiblePieces', 'RefungibleDisallowsNesting', 'SettingPropertiesNotAllowed']
},
/**
- * Lookup384: pallet_nonfungible::ItemData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
+ * Lookup382: pallet_nonfungible::ItemData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
**/
PalletNonfungibleItemData: {
constData: 'Bytes',
- variableData: 'Bytes',
owner: 'PalletEvmAccountBasicCrossAccountIdRepr'
},
/**
- * Lookup385: pallet_nonfungible::pallet::Error<T>
+ * Lookup383: pallet_nonfungible::pallet::Error<T>
**/
PalletNonfungibleError: {
_enum: ['NotNonfungibleDataUsedToMintFungibleCollectionToken', 'NonfungibleItemsHaveNoAmount']
},
/**
- * Lookup386: pallet_structure::pallet::Error<T>
+ * Lookup384: pallet_structure::pallet::Error<T>
**/
PalletStructureError: {
_enum: ['OuroborosDetected', 'DepthLimit', 'TokenNotFound']
},
/**
- * Lookup389: pallet_evm::pallet::Error<T>
+ * Lookup387: pallet_evm::pallet::Error<T>
**/
PalletEvmError: {
_enum: ['BalanceLow', 'FeeOverflow', 'PaymentOverflow', 'WithdrawFailed', 'GasPriceTooLow', 'InvalidNonce']
},
/**
- * Lookup392: fp_rpc::TransactionStatus
+ * Lookup390: fp_rpc::TransactionStatus
**/
FpRpcTransactionStatus: {
transactionHash: 'H256',
@@ -2588,11 +2564,11 @@
logsBloom: 'EthbloomBloom'
},
/**
- * Lookup394: ethbloom::Bloom
+ * Lookup392: ethbloom::Bloom
**/
EthbloomBloom: '[u8;256]',
/**
- * Lookup396: ethereum::receipt::ReceiptV3
+ * Lookup394: ethereum::receipt::ReceiptV3
**/
EthereumReceiptReceiptV3: {
_enum: {
@@ -2602,7 +2578,7 @@
}
},
/**
- * Lookup397: ethereum::receipt::EIP658ReceiptData
+ * Lookup395: ethereum::receipt::EIP658ReceiptData
**/
EthereumReceiptEip658ReceiptData: {
statusCode: 'u8',
@@ -2611,7 +2587,7 @@
logs: 'Vec<EthereumLog>'
},
/**
- * Lookup398: ethereum::block::Block<ethereum::transaction::TransactionV2>
+ * Lookup396: ethereum::block::Block<ethereum::transaction::TransactionV2>
**/
EthereumBlock: {
header: 'EthereumHeader',
@@ -2619,7 +2595,7 @@
ommers: 'Vec<EthereumHeader>'
},
/**
- * Lookup399: ethereum::header::Header
+ * Lookup397: ethereum::header::Header
**/
EthereumHeader: {
parentHash: 'H256',
@@ -2639,41 +2615,41 @@
nonce: 'EthereumTypesHashH64'
},
/**
- * Lookup400: ethereum_types::hash::H64
+ * Lookup398: ethereum_types::hash::H64
**/
EthereumTypesHashH64: '[u8;8]',
/**
- * Lookup405: pallet_ethereum::pallet::Error<T>
+ * Lookup403: pallet_ethereum::pallet::Error<T>
**/
PalletEthereumError: {
_enum: ['InvalidSignature', 'PreLogExists']
},
/**
- * Lookup406: pallet_evm_coder_substrate::pallet::Error<T>
+ * Lookup404: pallet_evm_coder_substrate::pallet::Error<T>
**/
PalletEvmCoderSubstrateError: {
_enum: ['OutOfGas', 'OutOfFund']
},
/**
- * Lookup407: pallet_evm_contract_helpers::SponsoringModeT
+ * Lookup405: pallet_evm_contract_helpers::SponsoringModeT
**/
PalletEvmContractHelpersSponsoringModeT: {
_enum: ['Disabled', 'Allowlisted', 'Generous']
},
/**
- * Lookup409: pallet_evm_contract_helpers::pallet::Error<T>
+ * Lookup407: pallet_evm_contract_helpers::pallet::Error<T>
**/
PalletEvmContractHelpersError: {
_enum: ['NoPermission']
},
/**
- * Lookup410: pallet_evm_migration::pallet::Error<T>
+ * Lookup408: pallet_evm_migration::pallet::Error<T>
**/
PalletEvmMigrationError: {
_enum: ['AccountNotEmpty', 'AccountIsNotMigrating']
},
/**
- * Lookup412: sp_runtime::MultiSignature
+ * Lookup410: sp_runtime::MultiSignature
**/
SpRuntimeMultiSignature: {
_enum: {
@@ -2683,43 +2659,43 @@
}
},
/**
- * Lookup413: sp_core::ed25519::Signature
+ * Lookup411: sp_core::ed25519::Signature
**/
SpCoreEd25519Signature: '[u8;64]',
/**
- * Lookup415: sp_core::sr25519::Signature
+ * Lookup413: sp_core::sr25519::Signature
**/
SpCoreSr25519Signature: '[u8;64]',
/**
- * Lookup416: sp_core::ecdsa::Signature
+ * Lookup414: sp_core::ecdsa::Signature
**/
SpCoreEcdsaSignature: '[u8;65]',
/**
- * Lookup419: frame_system::extensions::check_spec_version::CheckSpecVersion<T>
+ * Lookup417: frame_system::extensions::check_spec_version::CheckSpecVersion<T>
**/
FrameSystemExtensionsCheckSpecVersion: 'Null',
/**
- * Lookup420: frame_system::extensions::check_genesis::CheckGenesis<T>
+ * Lookup418: frame_system::extensions::check_genesis::CheckGenesis<T>
**/
FrameSystemExtensionsCheckGenesis: 'Null',
/**
- * Lookup423: frame_system::extensions::check_nonce::CheckNonce<T>
+ * Lookup421: frame_system::extensions::check_nonce::CheckNonce<T>
**/
FrameSystemExtensionsCheckNonce: 'Compact<u32>',
/**
- * Lookup424: frame_system::extensions::check_weight::CheckWeight<T>
+ * Lookup422: frame_system::extensions::check_weight::CheckWeight<T>
**/
FrameSystemExtensionsCheckWeight: 'Null',
/**
- * Lookup425: pallet_template_transaction_payment::ChargeTransactionPayment<opal_runtime::Runtime>
+ * Lookup423: pallet_template_transaction_payment::ChargeTransactionPayment<opal_runtime::Runtime>
**/
PalletTemplateTransactionPaymentChargeTransactionPayment: 'Compact<u128>',
/**
- * Lookup426: opal_runtime::Runtime
+ * Lookup424: opal_runtime::Runtime
**/
OpalRuntimeRuntime: 'Null',
/**
- * Lookup427: pallet_ethereum::FakeTransactionFinalizer<opal_runtime::Runtime>
+ * Lookup425: pallet_ethereum::FakeTransactionFinalizer<opal_runtime::Runtime>
**/
PalletEthereumFakeTransactionFinalizer: 'Null'
};
tests/src/interfaces/registry.tsdiffbeforeafterboth--- a/tests/src/interfaces/registry.ts
+++ b/tests/src/interfaces/registry.ts
@@ -1,7 +1,7 @@
// Auto-generated via `yarn polkadot-types-from-defs`, do not edit
/* eslint-disable */
-import 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';
+import 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';
declare module '@polkadot/types/types/registry' {
export interface InterfaceTypes {
@@ -183,7 +183,6 @@
UpDataStructsCreateNftExData: UpDataStructsCreateNftExData;
UpDataStructsCreateReFungibleData: UpDataStructsCreateReFungibleData;
UpDataStructsCreateRefungibleExData: UpDataStructsCreateRefungibleExData;
- UpDataStructsMetaUpdatePermission: UpDataStructsMetaUpdatePermission;
UpDataStructsNestingRule: UpDataStructsNestingRule;
UpDataStructsProperties: UpDataStructsProperties;
UpDataStructsPropertiesMapBoundedVec: UpDataStructsPropertiesMapBoundedVec;
tests/src/interfaces/rmrk/definitions.tsdiffbeforeafterboth--- a/tests/src/interfaces/rmrk/definitions.ts
+++ b/tests/src/interfaces/rmrk/definitions.ts
@@ -33,14 +33,14 @@
types,
rpc: {
lastCollectionIdx: fn('Get the latest created collection id', [], 'u32'),
- collectionById: fn('Get collection by id', [{name: 'id', type: 'u32'}], 'Option<RmrkTraitsCollectionCollectionInfo>'),
+ collectionById: fn('Get collection by id', [{name: 'id', type: 'u32'}], 'Option<RmrkTypesCollectionInfo>'),
nftById: fn(
'Get NFT by collection id and NFT id',
[
{name: 'collectionId', type: 'u32'},
{name: 'nftId', type: 'u32'},
],
- 'Option<RmrkTraitsNftNftInfo>'
+ 'Option<RmrkTypesNftInfo>'
),
accountTokens: fn(
'Get tokens owned by an account in a collection',
@@ -56,12 +56,12 @@
{name: 'collectionId', type: 'u32'},
{name: 'nftId', type: 'u32'},
],
- 'Vec<RmrkTraitsNftNftChild>'
+ 'Vec<RmrkTypesNftChild>'
),
collectionProperties: fn(
'Get collection properties',
[{name: 'collectionId', type: 'u32'}],
- 'Vec<RmrkTraitsPropertyPropertyInfo>'
+ 'Vec<RmrkTypesPropertyInfo>'
),
nftProperties: fn(
'Get NFT properties',
@@ -69,7 +69,7 @@
{name: 'collectionId', type: 'u32'},
{name: 'nftId', type: 'u32'}
],
- 'Vec<RmrkTraitsPropertyPropertyInfo>'
+ 'Vec<RmrkTypesPropertyInfo>'
),
nftResources: fn(
'Get NFT resources',
@@ -77,7 +77,7 @@
{name: 'collectionId', type: 'u32'},
{name: 'nftId', type: 'u32'}
],
- 'Vec<RmrkTraitsResourceResourceInfo>'
+ 'Vec<RmrkTypesResourceInfo>'
),
nftResourcePriorities: fn(
'Get NFT resource priorities',
@@ -90,12 +90,12 @@
base: fn(
'Get base info',
[{name: 'baseId', type: 'u32'}],
- 'Option<RmrkTraitsBaseBaseInfo>'
+ 'Option<RmrkTypesBaseInfo>'
),
baseParts: fn(
'Get all Base\'s parts',
[{name: 'baseId', type: 'u32'}],
- 'Vec<RmrkTraitsPartPartType>'
+ 'Vec<RmrkTypesPartType>'
),
themeNames: fn(
'Get Base\'s theme names',
@@ -109,7 +109,7 @@
{name: 'themeName', type: 'String'},
{name: 'keys', type: 'Option<Vec<String>>'}
],
- 'Option<RmrkTraitsTheme>'
+ 'Option<RmrkTypesTheme>'
)
}
};
tests/src/interfaces/rmrk/types.tsdiffbeforeafterboth--- a/tests/src/interfaces/rmrk/types.ts
+++ b/tests/src/interfaces/rmrk/types.ts
@@ -446,9 +446,6 @@
/** @name FrameSupportPalletId */
export interface FrameSupportPalletId extends U8aFixed {}
-/** @name FrameSupportStorageBoundedBTreeSet */
-export interface FrameSupportStorageBoundedBTreeSet extends BTreeSet<u32> {}
-
/** @name FrameSupportTokensMiscBalanceStatus */
export interface FrameSupportTokensMiscBalanceStatus extends Enum {
readonly isFree: boolean;
@@ -875,7 +872,6 @@
readonly isCollectionDescriptionLimitExceeded: boolean;
readonly isCollectionTokenPrefixLimitExceeded: boolean;
readonly isTotalCollectionsLimitExceeded: boolean;
- readonly isTokenVariableDataLimitExceeded: boolean;
readonly isCollectionAdminCountExceeded: boolean;
readonly isCollectionLimitBoundsExceeded: boolean;
readonly isOwnerPermissionsCantBeReverted: boolean;
@@ -896,10 +892,10 @@
readonly isCollectionFieldSizeExceeded: boolean;
readonly isNoSpaceForProperty: boolean;
readonly isPropertyLimitReached: boolean;
- readonly isUnableToReadUnboundedKeys: boolean;
+ readonly isPropertyKeyIsTooLong: boolean;
readonly isInvalidCharacterInPropertyKey: boolean;
readonly isEmptyPropertyKey: boolean;
- 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';
+ 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';
}
/** @name PalletCommonEvent */
@@ -1115,7 +1111,6 @@
/** @name PalletNonfungibleItemData */
export interface PalletNonfungibleItemData extends Struct {
readonly constData: Bytes;
- readonly variableData: Bytes;
readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;
}
@@ -1131,7 +1126,6 @@
/** @name PalletRefungibleItemData */
export interface PalletRefungibleItemData extends Struct {
readonly constData: Bytes;
- readonly variableData: Bytes;
}
/** @name PalletStructureCall */
@@ -1438,17 +1432,6 @@
readonly collectionId: u32;
readonly itemId: u32;
readonly value: u128;
- } & Struct;
- readonly isSetVariableMetaData: boolean;
- readonly asSetVariableMetaData: {
- readonly collectionId: u32;
- readonly itemId: u32;
- readonly data: Bytes;
- } & Struct;
- readonly isSetMetaUpdatePermissionFlag: boolean;
- readonly asSetMetaUpdatePermissionFlag: {
- readonly collectionId: u32;
- readonly value: UpDataStructsMetaUpdatePermission;
} & Struct;
readonly isSetSchemaVersion: boolean;
readonly asSetSchemaVersion: {
@@ -1470,7 +1453,7 @@
readonly collectionId: u32;
readonly newLimit: UpDataStructsCollectionLimits;
} & Struct;
- 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';
+ 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';
}
/** @name PalletUniqueError */
@@ -1632,34 +1615,34 @@
}
/** @name PhantomTypeUpDataStructsBaseInfo */
-export interface PhantomTypeUpDataStructsBaseInfo extends Vec<Lookup359> {}
+export interface PhantomTypeUpDataStructsBaseInfo extends Vec<Lookup357> {}
/** @name PhantomTypeUpDataStructsCollectionInfo */
-export interface PhantomTypeUpDataStructsCollectionInfo extends Vec<Lookup336> {}
+export interface PhantomTypeUpDataStructsCollectionInfo extends Vec<Lookup334> {}
/** @name PhantomTypeUpDataStructsNftChild */
-export interface PhantomTypeUpDataStructsNftChild extends Vec<Lookup374> {}
+export interface PhantomTypeUpDataStructsNftChild extends Vec<Lookup372> {}
/** @name PhantomTypeUpDataStructsNftInfo */
-export interface PhantomTypeUpDataStructsNftInfo extends Vec<Lookup341> {}
+export interface PhantomTypeUpDataStructsNftInfo extends Vec<Lookup339> {}
/** @name PhantomTypeUpDataStructsPartType */
-export interface PhantomTypeUpDataStructsPartType extends Vec<Lookup362> {}
+export interface PhantomTypeUpDataStructsPartType extends Vec<Lookup360> {}
/** @name PhantomTypeUpDataStructsPropertyInfo */
-export interface PhantomTypeUpDataStructsPropertyInfo extends Vec<Lookup354> {}
+export interface PhantomTypeUpDataStructsPropertyInfo extends Vec<Lookup352> {}
/** @name PhantomTypeUpDataStructsResourceInfo */
-export interface PhantomTypeUpDataStructsResourceInfo extends Vec<Lookup347> {}
+export interface PhantomTypeUpDataStructsResourceInfo extends Vec<Lookup345> {}
/** @name PhantomTypeUpDataStructsRpcCollection */
-export interface PhantomTypeUpDataStructsRpcCollection extends Vec<Lookup333> {}
+export interface PhantomTypeUpDataStructsRpcCollection extends Vec<Lookup331> {}
/** @name PhantomTypeUpDataStructsTheme */
-export interface PhantomTypeUpDataStructsTheme extends Vec<Lookup369> {}
+export interface PhantomTypeUpDataStructsTheme extends Vec<Lookup367> {}
/** @name PhantomTypeUpDataStructsTokenData */
-export interface PhantomTypeUpDataStructsTokenData extends Vec<Lookup329> {}
+export interface PhantomTypeUpDataStructsTokenData extends Vec<Lookup327> {}
/** @name PolkadotCorePrimitivesInboundDownwardMessage */
export interface PolkadotCorePrimitivesInboundDownwardMessage extends Struct {
@@ -1963,7 +1946,6 @@
readonly schemaVersion: UpDataStructsSchemaVersion;
readonly sponsorship: UpDataStructsSponsorshipState;
readonly limits: UpDataStructsCollectionLimits;
- readonly metaUpdatePermission: UpDataStructsMetaUpdatePermission;
}
/** @name UpDataStructsCollectionField */
@@ -2015,7 +1997,6 @@
readonly pendingSponsor: Option<AccountId32>;
readonly limits: Option<UpDataStructsCollectionLimits>;
readonly constOnChainSchema: Bytes;
- readonly metaUpdatePermission: Option<UpDataStructsMetaUpdatePermission>;
readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;
readonly properties: Vec<UpDataStructsProperty>;
}
@@ -2052,14 +2033,12 @@
/** @name UpDataStructsCreateNftData */
export interface UpDataStructsCreateNftData extends Struct {
readonly constData: Bytes;
- readonly variableData: Bytes;
readonly properties: Vec<UpDataStructsProperty>;
}
/** @name UpDataStructsCreateNftExData */
export interface UpDataStructsCreateNftExData extends Struct {
readonly constData: Bytes;
- readonly variableData: Bytes;
readonly properties: Vec<UpDataStructsProperty>;
readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;
}
@@ -2067,31 +2046,21 @@
/** @name UpDataStructsCreateReFungibleData */
export interface UpDataStructsCreateReFungibleData extends Struct {
readonly constData: Bytes;
- readonly variableData: Bytes;
readonly pieces: u128;
}
/** @name UpDataStructsCreateRefungibleExData */
export interface UpDataStructsCreateRefungibleExData extends Struct {
readonly constData: Bytes;
- readonly variableData: Bytes;
readonly users: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>;
}
-/** @name UpDataStructsMetaUpdatePermission */
-export interface UpDataStructsMetaUpdatePermission extends Enum {
- readonly isItemOwner: boolean;
- readonly isAdmin: boolean;
- readonly isNone: boolean;
- readonly type: 'ItemOwner' | 'Admin' | 'None';
-}
-
/** @name UpDataStructsNestingRule */
export interface UpDataStructsNestingRule extends Enum {
readonly isDisabled: boolean;
readonly isOwner: boolean;
readonly isOwnerRestricted: boolean;
- readonly asOwnerRestricted: FrameSupportStorageBoundedBTreeSet;
+ readonly asOwnerRestricted: BTreeSet<u32>;
readonly type: 'Disabled' | 'Owner' | 'OwnerRestricted';
}
@@ -2141,7 +2110,6 @@
readonly sponsorship: UpDataStructsSponsorshipState;
readonly limits: UpDataStructsCollectionLimits;
readonly constOnChainSchema: Bytes;
- readonly metaUpdatePermission: UpDataStructsMetaUpdatePermission;
readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;
readonly properties: Vec<UpDataStructsProperty>;
}
tests/src/interfaces/types-lookup.tsdiffbeforeafterboth1// Auto-generated via `yarn polkadot-types-from-defs`, do not edit2/* eslint-disable */34declare module '@polkadot/types/lookup' {5 import type { BTreeMap, BTreeSet, Bytes, Compact, Enum, Null, Option, Result, Struct, Text, U256, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';6 import type { ITuple } from '@polkadot/types-codec/types';7 import type { AccountId32, Call, H160, H256, MultiAddress, Perbill, Permill } from '@polkadot/types/interfaces/runtime';8 import type { Event } from '@polkadot/types/interfaces/system';910 /** @name PolkadotPrimitivesV2PersistedValidationData (2) */11 export interface PolkadotPrimitivesV2PersistedValidationData extends Struct {12 readonly parentHead: Bytes;13 readonly relayParentNumber: u32;14 readonly relayParentStorageRoot: H256;15 readonly maxPovSize: u32;16 }1718 /** @name PolkadotPrimitivesV2UpgradeRestriction (9) */19 export interface PolkadotPrimitivesV2UpgradeRestriction extends Enum {20 readonly isPresent: boolean;21 readonly type: 'Present';22 }2324 /** @name SpTrieStorageProof (10) */25 export interface SpTrieStorageProof extends Struct {26 readonly trieNodes: BTreeSet<Bytes>;27 }2829 /** @name CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot (13) */30 export interface CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot extends Struct {31 readonly dmqMqcHead: H256;32 readonly relayDispatchQueueSize: ITuple<[u32, u32]>;33 readonly ingressChannels: Vec<ITuple<[u32, PolkadotPrimitivesV2AbridgedHrmpChannel]>>;34 readonly egressChannels: Vec<ITuple<[u32, PolkadotPrimitivesV2AbridgedHrmpChannel]>>;35 }3637 /** @name PolkadotPrimitivesV2AbridgedHrmpChannel (18) */38 export interface PolkadotPrimitivesV2AbridgedHrmpChannel extends Struct {39 readonly maxCapacity: u32;40 readonly maxTotalSize: u32;41 readonly maxMessageSize: u32;42 readonly msgCount: u32;43 readonly totalSize: u32;44 readonly mqcHead: Option<H256>;45 }4647 /** @name PolkadotPrimitivesV2AbridgedHostConfiguration (20) */48 export interface PolkadotPrimitivesV2AbridgedHostConfiguration extends Struct {49 readonly maxCodeSize: u32;50 readonly maxHeadDataSize: u32;51 readonly maxUpwardQueueCount: u32;52 readonly maxUpwardQueueSize: u32;53 readonly maxUpwardMessageSize: u32;54 readonly maxUpwardMessageNumPerCandidate: u32;55 readonly hrmpMaxMessageNumPerCandidate: u32;56 readonly validationUpgradeCooldown: u32;57 readonly validationUpgradeDelay: u32;58 }5960 /** @name PolkadotCorePrimitivesOutboundHrmpMessage (26) */61 export interface PolkadotCorePrimitivesOutboundHrmpMessage extends Struct {62 readonly recipient: u32;63 readonly data: Bytes;64 }6566 /** @name CumulusPalletParachainSystemCall (28) */67 export interface CumulusPalletParachainSystemCall extends Enum {68 readonly isSetValidationData: boolean;69 readonly asSetValidationData: {70 readonly data: CumulusPrimitivesParachainInherentParachainInherentData;71 } & Struct;72 readonly isSudoSendUpwardMessage: boolean;73 readonly asSudoSendUpwardMessage: {74 readonly message: Bytes;75 } & Struct;76 readonly isAuthorizeUpgrade: boolean;77 readonly asAuthorizeUpgrade: {78 readonly codeHash: H256;79 } & Struct;80 readonly isEnactAuthorizedUpgrade: boolean;81 readonly asEnactAuthorizedUpgrade: {82 readonly code: Bytes;83 } & Struct;84 readonly type: 'SetValidationData' | 'SudoSendUpwardMessage' | 'AuthorizeUpgrade' | 'EnactAuthorizedUpgrade';85 }8687 /** @name CumulusPrimitivesParachainInherentParachainInherentData (29) */88 export interface CumulusPrimitivesParachainInherentParachainInherentData extends Struct {89 readonly validationData: PolkadotPrimitivesV2PersistedValidationData;90 readonly relayChainState: SpTrieStorageProof;91 readonly downwardMessages: Vec<PolkadotCorePrimitivesInboundDownwardMessage>;92 readonly horizontalMessages: BTreeMap<u32, Vec<PolkadotCorePrimitivesInboundHrmpMessage>>;93 }9495 /** @name PolkadotCorePrimitivesInboundDownwardMessage (31) */96 export interface PolkadotCorePrimitivesInboundDownwardMessage extends Struct {97 readonly sentAt: u32;98 readonly msg: Bytes;99 }100101 /** @name PolkadotCorePrimitivesInboundHrmpMessage (34) */102 export interface PolkadotCorePrimitivesInboundHrmpMessage extends Struct {103 readonly sentAt: u32;104 readonly data: Bytes;105 }106107 /** @name CumulusPalletParachainSystemEvent (37) */108 export interface CumulusPalletParachainSystemEvent extends Enum {109 readonly isValidationFunctionStored: boolean;110 readonly isValidationFunctionApplied: boolean;111 readonly asValidationFunctionApplied: u32;112 readonly isValidationFunctionDiscarded: boolean;113 readonly isUpgradeAuthorized: boolean;114 readonly asUpgradeAuthorized: H256;115 readonly isDownwardMessagesReceived: boolean;116 readonly asDownwardMessagesReceived: u32;117 readonly isDownwardMessagesProcessed: boolean;118 readonly asDownwardMessagesProcessed: ITuple<[u64, H256]>;119 readonly type: 'ValidationFunctionStored' | 'ValidationFunctionApplied' | 'ValidationFunctionDiscarded' | 'UpgradeAuthorized' | 'DownwardMessagesReceived' | 'DownwardMessagesProcessed';120 }121122 /** @name CumulusPalletParachainSystemError (38) */123 export interface CumulusPalletParachainSystemError extends Enum {124 readonly isOverlappingUpgrades: boolean;125 readonly isProhibitedByPolkadot: boolean;126 readonly isTooBig: boolean;127 readonly isValidationDataNotAvailable: boolean;128 readonly isHostConfigurationNotAvailable: boolean;129 readonly isNotScheduled: boolean;130 readonly isNothingAuthorized: boolean;131 readonly isUnauthorized: boolean;132 readonly type: 'OverlappingUpgrades' | 'ProhibitedByPolkadot' | 'TooBig' | 'ValidationDataNotAvailable' | 'HostConfigurationNotAvailable' | 'NotScheduled' | 'NothingAuthorized' | 'Unauthorized';133 }134135 /** @name PalletBalancesAccountData (41) */136 export interface PalletBalancesAccountData extends Struct {137 readonly free: u128;138 readonly reserved: u128;139 readonly miscFrozen: u128;140 readonly feeFrozen: u128;141 }142143 /** @name PalletBalancesBalanceLock (43) */144 export interface PalletBalancesBalanceLock extends Struct {145 readonly id: U8aFixed;146 readonly amount: u128;147 readonly reasons: PalletBalancesReasons;148 }149150 /** @name PalletBalancesReasons (45) */151 export interface PalletBalancesReasons extends Enum {152 readonly isFee: boolean;153 readonly isMisc: boolean;154 readonly isAll: boolean;155 readonly type: 'Fee' | 'Misc' | 'All';156 }157158 /** @name PalletBalancesReserveData (48) */159 export interface PalletBalancesReserveData extends Struct {160 readonly id: U8aFixed;161 readonly amount: u128;162 }163164 /** @name PalletBalancesReleases (50) */165 export interface PalletBalancesReleases extends Enum {166 readonly isV100: boolean;167 readonly isV200: boolean;168 readonly type: 'V100' | 'V200';169 }170171 /** @name PalletBalancesCall (51) */172 export interface PalletBalancesCall extends Enum {173 readonly isTransfer: boolean;174 readonly asTransfer: {175 readonly dest: MultiAddress;176 readonly value: Compact<u128>;177 } & Struct;178 readonly isSetBalance: boolean;179 readonly asSetBalance: {180 readonly who: MultiAddress;181 readonly newFree: Compact<u128>;182 readonly newReserved: Compact<u128>;183 } & Struct;184 readonly isForceTransfer: boolean;185 readonly asForceTransfer: {186 readonly source: MultiAddress;187 readonly dest: MultiAddress;188 readonly value: Compact<u128>;189 } & Struct;190 readonly isTransferKeepAlive: boolean;191 readonly asTransferKeepAlive: {192 readonly dest: MultiAddress;193 readonly value: Compact<u128>;194 } & Struct;195 readonly isTransferAll: boolean;196 readonly asTransferAll: {197 readonly dest: MultiAddress;198 readonly keepAlive: bool;199 } & Struct;200 readonly isForceUnreserve: boolean;201 readonly asForceUnreserve: {202 readonly who: MultiAddress;203 readonly amount: u128;204 } & Struct;205 readonly type: 'Transfer' | 'SetBalance' | 'ForceTransfer' | 'TransferKeepAlive' | 'TransferAll' | 'ForceUnreserve';206 }207208 /** @name PalletBalancesEvent (57) */209 export interface PalletBalancesEvent extends Enum {210 readonly isEndowed: boolean;211 readonly asEndowed: {212 readonly account: AccountId32;213 readonly freeBalance: u128;214 } & Struct;215 readonly isDustLost: boolean;216 readonly asDustLost: {217 readonly account: AccountId32;218 readonly amount: u128;219 } & Struct;220 readonly isTransfer: boolean;221 readonly asTransfer: {222 readonly from: AccountId32;223 readonly to: AccountId32;224 readonly amount: u128;225 } & Struct;226 readonly isBalanceSet: boolean;227 readonly asBalanceSet: {228 readonly who: AccountId32;229 readonly free: u128;230 readonly reserved: u128;231 } & Struct;232 readonly isReserved: boolean;233 readonly asReserved: {234 readonly who: AccountId32;235 readonly amount: u128;236 } & Struct;237 readonly isUnreserved: boolean;238 readonly asUnreserved: {239 readonly who: AccountId32;240 readonly amount: u128;241 } & Struct;242 readonly isReserveRepatriated: boolean;243 readonly asReserveRepatriated: {244 readonly from: AccountId32;245 readonly to: AccountId32;246 readonly amount: u128;247 readonly destinationStatus: FrameSupportTokensMiscBalanceStatus;248 } & Struct;249 readonly isDeposit: boolean;250 readonly asDeposit: {251 readonly who: AccountId32;252 readonly amount: u128;253 } & Struct;254 readonly isWithdraw: boolean;255 readonly asWithdraw: {256 readonly who: AccountId32;257 readonly amount: u128;258 } & Struct;259 readonly isSlashed: boolean;260 readonly asSlashed: {261 readonly who: AccountId32;262 readonly amount: u128;263 } & Struct;264 readonly type: 'Endowed' | 'DustLost' | 'Transfer' | 'BalanceSet' | 'Reserved' | 'Unreserved' | 'ReserveRepatriated' | 'Deposit' | 'Withdraw' | 'Slashed';265 }266267 /** @name FrameSupportTokensMiscBalanceStatus (58) */268 export interface FrameSupportTokensMiscBalanceStatus extends Enum {269 readonly isFree: boolean;270 readonly isReserved: boolean;271 readonly type: 'Free' | 'Reserved';272 }273274 /** @name PalletBalancesError (59) */275 export interface PalletBalancesError extends Enum {276 readonly isVestingBalance: boolean;277 readonly isLiquidityRestrictions: boolean;278 readonly isInsufficientBalance: boolean;279 readonly isExistentialDeposit: boolean;280 readonly isKeepAlive: boolean;281 readonly isExistingVestingSchedule: boolean;282 readonly isDeadAccount: boolean;283 readonly isTooManyReserves: boolean;284 readonly type: 'VestingBalance' | 'LiquidityRestrictions' | 'InsufficientBalance' | 'ExistentialDeposit' | 'KeepAlive' | 'ExistingVestingSchedule' | 'DeadAccount' | 'TooManyReserves';285 }286287 /** @name PalletTimestampCall (62) */288 export interface PalletTimestampCall extends Enum {289 readonly isSet: boolean;290 readonly asSet: {291 readonly now: Compact<u64>;292 } & Struct;293 readonly type: 'Set';294 }295296 /** @name PalletTransactionPaymentReleases (65) */297 export interface PalletTransactionPaymentReleases extends Enum {298 readonly isV1Ancient: boolean;299 readonly isV2: boolean;300 readonly type: 'V1Ancient' | 'V2';301 }302303 /** @name FrameSupportWeightsWeightToFeeCoefficient (67) */304 export interface FrameSupportWeightsWeightToFeeCoefficient extends Struct {305 readonly coeffInteger: u128;306 readonly coeffFrac: Perbill;307 readonly negative: bool;308 readonly degree: u8;309 }310311 /** @name PalletTreasuryProposal (69) */312 export interface PalletTreasuryProposal extends Struct {313 readonly proposer: AccountId32;314 readonly value: u128;315 readonly beneficiary: AccountId32;316 readonly bond: u128;317 }318319 /** @name PalletTreasuryCall (72) */320 export interface PalletTreasuryCall extends Enum {321 readonly isProposeSpend: boolean;322 readonly asProposeSpend: {323 readonly value: Compact<u128>;324 readonly beneficiary: MultiAddress;325 } & Struct;326 readonly isRejectProposal: boolean;327 readonly asRejectProposal: {328 readonly proposalId: Compact<u32>;329 } & Struct;330 readonly isApproveProposal: boolean;331 readonly asApproveProposal: {332 readonly proposalId: Compact<u32>;333 } & Struct;334 readonly type: 'ProposeSpend' | 'RejectProposal' | 'ApproveProposal';335 }336337 /** @name PalletTreasuryEvent (74) */338 export interface PalletTreasuryEvent extends Enum {339 readonly isProposed: boolean;340 readonly asProposed: {341 readonly proposalIndex: u32;342 } & Struct;343 readonly isSpending: boolean;344 readonly asSpending: {345 readonly budgetRemaining: u128;346 } & Struct;347 readonly isAwarded: boolean;348 readonly asAwarded: {349 readonly proposalIndex: u32;350 readonly award: u128;351 readonly account: AccountId32;352 } & Struct;353 readonly isRejected: boolean;354 readonly asRejected: {355 readonly proposalIndex: u32;356 readonly slashed: u128;357 } & Struct;358 readonly isBurnt: boolean;359 readonly asBurnt: {360 readonly burntFunds: u128;361 } & Struct;362 readonly isRollover: boolean;363 readonly asRollover: {364 readonly rolloverBalance: u128;365 } & Struct;366 readonly isDeposit: boolean;367 readonly asDeposit: {368 readonly value: u128;369 } & Struct;370 readonly type: 'Proposed' | 'Spending' | 'Awarded' | 'Rejected' | 'Burnt' | 'Rollover' | 'Deposit';371 }372373 /** @name FrameSupportPalletId (77) */374 export interface FrameSupportPalletId extends U8aFixed {}375376 /** @name PalletTreasuryError (78) */377 export interface PalletTreasuryError extends Enum {378 readonly isInsufficientProposersBalance: boolean;379 readonly isInvalidIndex: boolean;380 readonly isTooManyApprovals: boolean;381 readonly type: 'InsufficientProposersBalance' | 'InvalidIndex' | 'TooManyApprovals';382 }383384 /** @name PalletSudoCall (79) */385 export interface PalletSudoCall extends Enum {386 readonly isSudo: boolean;387 readonly asSudo: {388 readonly call: Call;389 } & Struct;390 readonly isSudoUncheckedWeight: boolean;391 readonly asSudoUncheckedWeight: {392 readonly call: Call;393 readonly weight: u64;394 } & Struct;395 readonly isSetKey: boolean;396 readonly asSetKey: {397 readonly new_: MultiAddress;398 } & Struct;399 readonly isSudoAs: boolean;400 readonly asSudoAs: {401 readonly who: MultiAddress;402 readonly call: Call;403 } & Struct;404 readonly type: 'Sudo' | 'SudoUncheckedWeight' | 'SetKey' | 'SudoAs';405 }406407 /** @name FrameSystemCall (81) */408 export interface FrameSystemCall extends Enum {409 readonly isFillBlock: boolean;410 readonly asFillBlock: {411 readonly ratio: Perbill;412 } & Struct;413 readonly isRemark: boolean;414 readonly asRemark: {415 readonly remark: Bytes;416 } & Struct;417 readonly isSetHeapPages: boolean;418 readonly asSetHeapPages: {419 readonly pages: u64;420 } & Struct;421 readonly isSetCode: boolean;422 readonly asSetCode: {423 readonly code: Bytes;424 } & Struct;425 readonly isSetCodeWithoutChecks: boolean;426 readonly asSetCodeWithoutChecks: {427 readonly code: Bytes;428 } & Struct;429 readonly isSetStorage: boolean;430 readonly asSetStorage: {431 readonly items: Vec<ITuple<[Bytes, Bytes]>>;432 } & Struct;433 readonly isKillStorage: boolean;434 readonly asKillStorage: {435 readonly keys_: Vec<Bytes>;436 } & Struct;437 readonly isKillPrefix: boolean;438 readonly asKillPrefix: {439 readonly prefix: Bytes;440 readonly subkeys: u32;441 } & Struct;442 readonly isRemarkWithEvent: boolean;443 readonly asRemarkWithEvent: {444 readonly remark: Bytes;445 } & Struct;446 readonly type: 'FillBlock' | 'Remark' | 'SetHeapPages' | 'SetCode' | 'SetCodeWithoutChecks' | 'SetStorage' | 'KillStorage' | 'KillPrefix' | 'RemarkWithEvent';447 }448449 /** @name OrmlVestingModuleCall (84) */450 export interface OrmlVestingModuleCall extends Enum {451 readonly isClaim: boolean;452 readonly isVestedTransfer: boolean;453 readonly asVestedTransfer: {454 readonly dest: MultiAddress;455 readonly schedule: OrmlVestingVestingSchedule;456 } & Struct;457 readonly isUpdateVestingSchedules: boolean;458 readonly asUpdateVestingSchedules: {459 readonly who: MultiAddress;460 readonly vestingSchedules: Vec<OrmlVestingVestingSchedule>;461 } & Struct;462 readonly isClaimFor: boolean;463 readonly asClaimFor: {464 readonly dest: MultiAddress;465 } & Struct;466 readonly type: 'Claim' | 'VestedTransfer' | 'UpdateVestingSchedules' | 'ClaimFor';467 }468469 /** @name OrmlVestingVestingSchedule (85) */470 export interface OrmlVestingVestingSchedule extends Struct {471 readonly start: u32;472 readonly period: u32;473 readonly periodCount: u32;474 readonly perPeriod: Compact<u128>;475 }476477 /** @name CumulusPalletXcmpQueueCall (87) */478 export interface CumulusPalletXcmpQueueCall extends Enum {479 readonly isServiceOverweight: boolean;480 readonly asServiceOverweight: {481 readonly index: u64;482 readonly weightLimit: u64;483 } & Struct;484 readonly isSuspendXcmExecution: boolean;485 readonly isResumeXcmExecution: boolean;486 readonly isUpdateSuspendThreshold: boolean;487 readonly asUpdateSuspendThreshold: {488 readonly new_: u32;489 } & Struct;490 readonly isUpdateDropThreshold: boolean;491 readonly asUpdateDropThreshold: {492 readonly new_: u32;493 } & Struct;494 readonly isUpdateResumeThreshold: boolean;495 readonly asUpdateResumeThreshold: {496 readonly new_: u32;497 } & Struct;498 readonly isUpdateThresholdWeight: boolean;499 readonly asUpdateThresholdWeight: {500 readonly new_: u64;501 } & Struct;502 readonly isUpdateWeightRestrictDecay: boolean;503 readonly asUpdateWeightRestrictDecay: {504 readonly new_: u64;505 } & Struct;506 readonly isUpdateXcmpMaxIndividualWeight: boolean;507 readonly asUpdateXcmpMaxIndividualWeight: {508 readonly new_: u64;509 } & Struct;510 readonly type: 'ServiceOverweight' | 'SuspendXcmExecution' | 'ResumeXcmExecution' | 'UpdateSuspendThreshold' | 'UpdateDropThreshold' | 'UpdateResumeThreshold' | 'UpdateThresholdWeight' | 'UpdateWeightRestrictDecay' | 'UpdateXcmpMaxIndividualWeight';511 }512513 /** @name PalletXcmCall (88) */514 export interface PalletXcmCall extends Enum {515 readonly isSend: boolean;516 readonly asSend: {517 readonly dest: XcmVersionedMultiLocation;518 readonly message: XcmVersionedXcm;519 } & Struct;520 readonly isTeleportAssets: boolean;521 readonly asTeleportAssets: {522 readonly dest: XcmVersionedMultiLocation;523 readonly beneficiary: XcmVersionedMultiLocation;524 readonly assets: XcmVersionedMultiAssets;525 readonly feeAssetItem: u32;526 } & Struct;527 readonly isReserveTransferAssets: boolean;528 readonly asReserveTransferAssets: {529 readonly dest: XcmVersionedMultiLocation;530 readonly beneficiary: XcmVersionedMultiLocation;531 readonly assets: XcmVersionedMultiAssets;532 readonly feeAssetItem: u32;533 } & Struct;534 readonly isExecute: boolean;535 readonly asExecute: {536 readonly message: XcmVersionedXcm;537 readonly maxWeight: u64;538 } & Struct;539 readonly isForceXcmVersion: boolean;540 readonly asForceXcmVersion: {541 readonly location: XcmV1MultiLocation;542 readonly xcmVersion: u32;543 } & Struct;544 readonly isForceDefaultXcmVersion: boolean;545 readonly asForceDefaultXcmVersion: {546 readonly maybeXcmVersion: Option<u32>;547 } & Struct;548 readonly isForceSubscribeVersionNotify: boolean;549 readonly asForceSubscribeVersionNotify: {550 readonly location: XcmVersionedMultiLocation;551 } & Struct;552 readonly isForceUnsubscribeVersionNotify: boolean;553 readonly asForceUnsubscribeVersionNotify: {554 readonly location: XcmVersionedMultiLocation;555 } & Struct;556 readonly isLimitedReserveTransferAssets: boolean;557 readonly asLimitedReserveTransferAssets: {558 readonly dest: XcmVersionedMultiLocation;559 readonly beneficiary: XcmVersionedMultiLocation;560 readonly assets: XcmVersionedMultiAssets;561 readonly feeAssetItem: u32;562 readonly weightLimit: XcmV2WeightLimit;563 } & Struct;564 readonly isLimitedTeleportAssets: boolean;565 readonly asLimitedTeleportAssets: {566 readonly dest: XcmVersionedMultiLocation;567 readonly beneficiary: XcmVersionedMultiLocation;568 readonly assets: XcmVersionedMultiAssets;569 readonly feeAssetItem: u32;570 readonly weightLimit: XcmV2WeightLimit;571 } & Struct;572 readonly type: 'Send' | 'TeleportAssets' | 'ReserveTransferAssets' | 'Execute' | 'ForceXcmVersion' | 'ForceDefaultXcmVersion' | 'ForceSubscribeVersionNotify' | 'ForceUnsubscribeVersionNotify' | 'LimitedReserveTransferAssets' | 'LimitedTeleportAssets';573 }574575 /** @name XcmVersionedMultiLocation (89) */576 export interface XcmVersionedMultiLocation extends Enum {577 readonly isV0: boolean;578 readonly asV0: XcmV0MultiLocation;579 readonly isV1: boolean;580 readonly asV1: XcmV1MultiLocation;581 readonly type: 'V0' | 'V1';582 }583584 /** @name XcmV0MultiLocation (90) */585 export interface XcmV0MultiLocation extends Enum {586 readonly isNull: boolean;587 readonly isX1: boolean;588 readonly asX1: XcmV0Junction;589 readonly isX2: boolean;590 readonly asX2: ITuple<[XcmV0Junction, XcmV0Junction]>;591 readonly isX3: boolean;592 readonly asX3: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction]>;593 readonly isX4: boolean;594 readonly asX4: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;595 readonly isX5: boolean;596 readonly asX5: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;597 readonly isX6: boolean;598 readonly asX6: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;599 readonly isX7: boolean;600 readonly asX7: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;601 readonly isX8: boolean;602 readonly asX8: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;603 readonly type: 'Null' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8';604 }605606 /** @name XcmV0Junction (91) */607 export interface XcmV0Junction extends Enum {608 readonly isParent: boolean;609 readonly isParachain: boolean;610 readonly asParachain: Compact<u32>;611 readonly isAccountId32: boolean;612 readonly asAccountId32: {613 readonly network: XcmV0JunctionNetworkId;614 readonly id: U8aFixed;615 } & Struct;616 readonly isAccountIndex64: boolean;617 readonly asAccountIndex64: {618 readonly network: XcmV0JunctionNetworkId;619 readonly index: Compact<u64>;620 } & Struct;621 readonly isAccountKey20: boolean;622 readonly asAccountKey20: {623 readonly network: XcmV0JunctionNetworkId;624 readonly key: U8aFixed;625 } & Struct;626 readonly isPalletInstance: boolean;627 readonly asPalletInstance: u8;628 readonly isGeneralIndex: boolean;629 readonly asGeneralIndex: Compact<u128>;630 readonly isGeneralKey: boolean;631 readonly asGeneralKey: Bytes;632 readonly isOnlyChild: boolean;633 readonly isPlurality: boolean;634 readonly asPlurality: {635 readonly id: XcmV0JunctionBodyId;636 readonly part: XcmV0JunctionBodyPart;637 } & Struct;638 readonly type: 'Parent' | 'Parachain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality';639 }640641 /** @name XcmV0JunctionNetworkId (92) */642 export interface XcmV0JunctionNetworkId extends Enum {643 readonly isAny: boolean;644 readonly isNamed: boolean;645 readonly asNamed: Bytes;646 readonly isPolkadot: boolean;647 readonly isKusama: boolean;648 readonly type: 'Any' | 'Named' | 'Polkadot' | 'Kusama';649 }650651 /** @name XcmV0JunctionBodyId (93) */652 export interface XcmV0JunctionBodyId extends Enum {653 readonly isUnit: boolean;654 readonly isNamed: boolean;655 readonly asNamed: Bytes;656 readonly isIndex: boolean;657 readonly asIndex: Compact<u32>;658 readonly isExecutive: boolean;659 readonly isTechnical: boolean;660 readonly isLegislative: boolean;661 readonly isJudicial: boolean;662 readonly type: 'Unit' | 'Named' | 'Index' | 'Executive' | 'Technical' | 'Legislative' | 'Judicial';663 }664665 /** @name XcmV0JunctionBodyPart (94) */666 export interface XcmV0JunctionBodyPart extends Enum {667 readonly isVoice: boolean;668 readonly isMembers: boolean;669 readonly asMembers: {670 readonly count: Compact<u32>;671 } & Struct;672 readonly isFraction: boolean;673 readonly asFraction: {674 readonly nom: Compact<u32>;675 readonly denom: Compact<u32>;676 } & Struct;677 readonly isAtLeastProportion: boolean;678 readonly asAtLeastProportion: {679 readonly nom: Compact<u32>;680 readonly denom: Compact<u32>;681 } & Struct;682 readonly isMoreThanProportion: boolean;683 readonly asMoreThanProportion: {684 readonly nom: Compact<u32>;685 readonly denom: Compact<u32>;686 } & Struct;687 readonly type: 'Voice' | 'Members' | 'Fraction' | 'AtLeastProportion' | 'MoreThanProportion';688 }689690 /** @name XcmV1MultiLocation (95) */691 export interface XcmV1MultiLocation extends Struct {692 readonly parents: u8;693 readonly interior: XcmV1MultilocationJunctions;694 }695696 /** @name XcmV1MultilocationJunctions (96) */697 export interface XcmV1MultilocationJunctions extends Enum {698 readonly isHere: boolean;699 readonly isX1: boolean;700 readonly asX1: XcmV1Junction;701 readonly isX2: boolean;702 readonly asX2: ITuple<[XcmV1Junction, XcmV1Junction]>;703 readonly isX3: boolean;704 readonly asX3: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction]>;705 readonly isX4: boolean;706 readonly asX4: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;707 readonly isX5: boolean;708 readonly asX5: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;709 readonly isX6: boolean;710 readonly asX6: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;711 readonly isX7: boolean;712 readonly asX7: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;713 readonly isX8: boolean;714 readonly asX8: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;715 readonly type: 'Here' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8';716 }717718 /** @name XcmV1Junction (97) */719 export interface XcmV1Junction extends Enum {720 readonly isParachain: boolean;721 readonly asParachain: Compact<u32>;722 readonly isAccountId32: boolean;723 readonly asAccountId32: {724 readonly network: XcmV0JunctionNetworkId;725 readonly id: U8aFixed;726 } & Struct;727 readonly isAccountIndex64: boolean;728 readonly asAccountIndex64: {729 readonly network: XcmV0JunctionNetworkId;730 readonly index: Compact<u64>;731 } & Struct;732 readonly isAccountKey20: boolean;733 readonly asAccountKey20: {734 readonly network: XcmV0JunctionNetworkId;735 readonly key: U8aFixed;736 } & Struct;737 readonly isPalletInstance: boolean;738 readonly asPalletInstance: u8;739 readonly isGeneralIndex: boolean;740 readonly asGeneralIndex: Compact<u128>;741 readonly isGeneralKey: boolean;742 readonly asGeneralKey: Bytes;743 readonly isOnlyChild: boolean;744 readonly isPlurality: boolean;745 readonly asPlurality: {746 readonly id: XcmV0JunctionBodyId;747 readonly part: XcmV0JunctionBodyPart;748 } & Struct;749 readonly type: 'Parachain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality';750 }751752 /** @name XcmVersionedXcm (98) */753 export interface XcmVersionedXcm extends Enum {754 readonly isV0: boolean;755 readonly asV0: XcmV0Xcm;756 readonly isV1: boolean;757 readonly asV1: XcmV1Xcm;758 readonly isV2: boolean;759 readonly asV2: XcmV2Xcm;760 readonly type: 'V0' | 'V1' | 'V2';761 }762763 /** @name XcmV0Xcm (99) */764 export interface XcmV0Xcm extends Enum {765 readonly isWithdrawAsset: boolean;766 readonly asWithdrawAsset: {767 readonly assets: Vec<XcmV0MultiAsset>;768 readonly effects: Vec<XcmV0Order>;769 } & Struct;770 readonly isReserveAssetDeposit: boolean;771 readonly asReserveAssetDeposit: {772 readonly assets: Vec<XcmV0MultiAsset>;773 readonly effects: Vec<XcmV0Order>;774 } & Struct;775 readonly isTeleportAsset: boolean;776 readonly asTeleportAsset: {777 readonly assets: Vec<XcmV0MultiAsset>;778 readonly effects: Vec<XcmV0Order>;779 } & Struct;780 readonly isQueryResponse: boolean;781 readonly asQueryResponse: {782 readonly queryId: Compact<u64>;783 readonly response: XcmV0Response;784 } & Struct;785 readonly isTransferAsset: boolean;786 readonly asTransferAsset: {787 readonly assets: Vec<XcmV0MultiAsset>;788 readonly dest: XcmV0MultiLocation;789 } & Struct;790 readonly isTransferReserveAsset: boolean;791 readonly asTransferReserveAsset: {792 readonly assets: Vec<XcmV0MultiAsset>;793 readonly dest: XcmV0MultiLocation;794 readonly effects: Vec<XcmV0Order>;795 } & Struct;796 readonly isTransact: boolean;797 readonly asTransact: {798 readonly originType: XcmV0OriginKind;799 readonly requireWeightAtMost: u64;800 readonly call: XcmDoubleEncoded;801 } & Struct;802 readonly isHrmpNewChannelOpenRequest: boolean;803 readonly asHrmpNewChannelOpenRequest: {804 readonly sender: Compact<u32>;805 readonly maxMessageSize: Compact<u32>;806 readonly maxCapacity: Compact<u32>;807 } & Struct;808 readonly isHrmpChannelAccepted: boolean;809 readonly asHrmpChannelAccepted: {810 readonly recipient: Compact<u32>;811 } & Struct;812 readonly isHrmpChannelClosing: boolean;813 readonly asHrmpChannelClosing: {814 readonly initiator: Compact<u32>;815 readonly sender: Compact<u32>;816 readonly recipient: Compact<u32>;817 } & Struct;818 readonly isRelayedFrom: boolean;819 readonly asRelayedFrom: {820 readonly who: XcmV0MultiLocation;821 readonly message: XcmV0Xcm;822 } & Struct;823 readonly type: 'WithdrawAsset' | 'ReserveAssetDeposit' | 'TeleportAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'RelayedFrom';824 }825826 /** @name XcmV0MultiAsset (101) */827 export interface XcmV0MultiAsset extends Enum {828 readonly isNone: boolean;829 readonly isAll: boolean;830 readonly isAllFungible: boolean;831 readonly isAllNonFungible: boolean;832 readonly isAllAbstractFungible: boolean;833 readonly asAllAbstractFungible: {834 readonly id: Bytes;835 } & Struct;836 readonly isAllAbstractNonFungible: boolean;837 readonly asAllAbstractNonFungible: {838 readonly class: Bytes;839 } & Struct;840 readonly isAllConcreteFungible: boolean;841 readonly asAllConcreteFungible: {842 readonly id: XcmV0MultiLocation;843 } & Struct;844 readonly isAllConcreteNonFungible: boolean;845 readonly asAllConcreteNonFungible: {846 readonly class: XcmV0MultiLocation;847 } & Struct;848 readonly isAbstractFungible: boolean;849 readonly asAbstractFungible: {850 readonly id: Bytes;851 readonly amount: Compact<u128>;852 } & Struct;853 readonly isAbstractNonFungible: boolean;854 readonly asAbstractNonFungible: {855 readonly class: Bytes;856 readonly instance: XcmV1MultiassetAssetInstance;857 } & Struct;858 readonly isConcreteFungible: boolean;859 readonly asConcreteFungible: {860 readonly id: XcmV0MultiLocation;861 readonly amount: Compact<u128>;862 } & Struct;863 readonly isConcreteNonFungible: boolean;864 readonly asConcreteNonFungible: {865 readonly class: XcmV0MultiLocation;866 readonly instance: XcmV1MultiassetAssetInstance;867 } & Struct;868 readonly type: 'None' | 'All' | 'AllFungible' | 'AllNonFungible' | 'AllAbstractFungible' | 'AllAbstractNonFungible' | 'AllConcreteFungible' | 'AllConcreteNonFungible' | 'AbstractFungible' | 'AbstractNonFungible' | 'ConcreteFungible' | 'ConcreteNonFungible';869 }870871 /** @name XcmV1MultiassetAssetInstance (102) */872 export interface XcmV1MultiassetAssetInstance extends Enum {873 readonly isUndefined: boolean;874 readonly isIndex: boolean;875 readonly asIndex: Compact<u128>;876 readonly isArray4: boolean;877 readonly asArray4: U8aFixed;878 readonly isArray8: boolean;879 readonly asArray8: U8aFixed;880 readonly isArray16: boolean;881 readonly asArray16: U8aFixed;882 readonly isArray32: boolean;883 readonly asArray32: U8aFixed;884 readonly isBlob: boolean;885 readonly asBlob: Bytes;886 readonly type: 'Undefined' | 'Index' | 'Array4' | 'Array8' | 'Array16' | 'Array32' | 'Blob';887 }888889 /** @name XcmV0Order (106) */890 export interface XcmV0Order extends Enum {891 readonly isNull: boolean;892 readonly isDepositAsset: boolean;893 readonly asDepositAsset: {894 readonly assets: Vec<XcmV0MultiAsset>;895 readonly dest: XcmV0MultiLocation;896 } & Struct;897 readonly isDepositReserveAsset: boolean;898 readonly asDepositReserveAsset: {899 readonly assets: Vec<XcmV0MultiAsset>;900 readonly dest: XcmV0MultiLocation;901 readonly effects: Vec<XcmV0Order>;902 } & Struct;903 readonly isExchangeAsset: boolean;904 readonly asExchangeAsset: {905 readonly give: Vec<XcmV0MultiAsset>;906 readonly receive: Vec<XcmV0MultiAsset>;907 } & Struct;908 readonly isInitiateReserveWithdraw: boolean;909 readonly asInitiateReserveWithdraw: {910 readonly assets: Vec<XcmV0MultiAsset>;911 readonly reserve: XcmV0MultiLocation;912 readonly effects: Vec<XcmV0Order>;913 } & Struct;914 readonly isInitiateTeleport: boolean;915 readonly asInitiateTeleport: {916 readonly assets: Vec<XcmV0MultiAsset>;917 readonly dest: XcmV0MultiLocation;918 readonly effects: Vec<XcmV0Order>;919 } & Struct;920 readonly isQueryHolding: boolean;921 readonly asQueryHolding: {922 readonly queryId: Compact<u64>;923 readonly dest: XcmV0MultiLocation;924 readonly assets: Vec<XcmV0MultiAsset>;925 } & Struct;926 readonly isBuyExecution: boolean;927 readonly asBuyExecution: {928 readonly fees: XcmV0MultiAsset;929 readonly weight: u64;930 readonly debt: u64;931 readonly haltOnError: bool;932 readonly xcm: Vec<XcmV0Xcm>;933 } & Struct;934 readonly type: 'Null' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution';935 }936937 /** @name XcmV0Response (108) */938 export interface XcmV0Response extends Enum {939 readonly isAssets: boolean;940 readonly asAssets: Vec<XcmV0MultiAsset>;941 readonly type: 'Assets';942 }943944 /** @name XcmV0OriginKind (109) */945 export interface XcmV0OriginKind extends Enum {946 readonly isNative: boolean;947 readonly isSovereignAccount: boolean;948 readonly isSuperuser: boolean;949 readonly isXcm: boolean;950 readonly type: 'Native' | 'SovereignAccount' | 'Superuser' | 'Xcm';951 }952953 /** @name XcmDoubleEncoded (110) */954 export interface XcmDoubleEncoded extends Struct {955 readonly encoded: Bytes;956 }957958 /** @name XcmV1Xcm (111) */959 export interface XcmV1Xcm extends Enum {960 readonly isWithdrawAsset: boolean;961 readonly asWithdrawAsset: {962 readonly assets: XcmV1MultiassetMultiAssets;963 readonly effects: Vec<XcmV1Order>;964 } & Struct;965 readonly isReserveAssetDeposited: boolean;966 readonly asReserveAssetDeposited: {967 readonly assets: XcmV1MultiassetMultiAssets;968 readonly effects: Vec<XcmV1Order>;969 } & Struct;970 readonly isReceiveTeleportedAsset: boolean;971 readonly asReceiveTeleportedAsset: {972 readonly assets: XcmV1MultiassetMultiAssets;973 readonly effects: Vec<XcmV1Order>;974 } & Struct;975 readonly isQueryResponse: boolean;976 readonly asQueryResponse: {977 readonly queryId: Compact<u64>;978 readonly response: XcmV1Response;979 } & Struct;980 readonly isTransferAsset: boolean;981 readonly asTransferAsset: {982 readonly assets: XcmV1MultiassetMultiAssets;983 readonly beneficiary: XcmV1MultiLocation;984 } & Struct;985 readonly isTransferReserveAsset: boolean;986 readonly asTransferReserveAsset: {987 readonly assets: XcmV1MultiassetMultiAssets;988 readonly dest: XcmV1MultiLocation;989 readonly effects: Vec<XcmV1Order>;990 } & Struct;991 readonly isTransact: boolean;992 readonly asTransact: {993 readonly originType: XcmV0OriginKind;994 readonly requireWeightAtMost: u64;995 readonly call: XcmDoubleEncoded;996 } & Struct;997 readonly isHrmpNewChannelOpenRequest: boolean;998 readonly asHrmpNewChannelOpenRequest: {999 readonly sender: Compact<u32>;1000 readonly maxMessageSize: Compact<u32>;1001 readonly maxCapacity: Compact<u32>;1002 } & Struct;1003 readonly isHrmpChannelAccepted: boolean;1004 readonly asHrmpChannelAccepted: {1005 readonly recipient: Compact<u32>;1006 } & Struct;1007 readonly isHrmpChannelClosing: boolean;1008 readonly asHrmpChannelClosing: {1009 readonly initiator: Compact<u32>;1010 readonly sender: Compact<u32>;1011 readonly recipient: Compact<u32>;1012 } & Struct;1013 readonly isRelayedFrom: boolean;1014 readonly asRelayedFrom: {1015 readonly who: XcmV1MultilocationJunctions;1016 readonly message: XcmV1Xcm;1017 } & Struct;1018 readonly isSubscribeVersion: boolean;1019 readonly asSubscribeVersion: {1020 readonly queryId: Compact<u64>;1021 readonly maxResponseWeight: Compact<u64>;1022 } & Struct;1023 readonly isUnsubscribeVersion: boolean;1024 readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'RelayedFrom' | 'SubscribeVersion' | 'UnsubscribeVersion';1025 }10261027 /** @name XcmV1MultiassetMultiAssets (112) */1028 export interface XcmV1MultiassetMultiAssets extends Vec<XcmV1MultiAsset> {}10291030 /** @name XcmV1MultiAsset (114) */1031 export interface XcmV1MultiAsset extends Struct {1032 readonly id: XcmV1MultiassetAssetId;1033 readonly fun: XcmV1MultiassetFungibility;1034 }10351036 /** @name XcmV1MultiassetAssetId (115) */1037 export interface XcmV1MultiassetAssetId extends Enum {1038 readonly isConcrete: boolean;1039 readonly asConcrete: XcmV1MultiLocation;1040 readonly isAbstract: boolean;1041 readonly asAbstract: Bytes;1042 readonly type: 'Concrete' | 'Abstract';1043 }10441045 /** @name XcmV1MultiassetFungibility (116) */1046 export interface XcmV1MultiassetFungibility extends Enum {1047 readonly isFungible: boolean;1048 readonly asFungible: Compact<u128>;1049 readonly isNonFungible: boolean;1050 readonly asNonFungible: XcmV1MultiassetAssetInstance;1051 readonly type: 'Fungible' | 'NonFungible';1052 }10531054 /** @name XcmV1Order (118) */1055 export interface XcmV1Order extends Enum {1056 readonly isNoop: boolean;1057 readonly isDepositAsset: boolean;1058 readonly asDepositAsset: {1059 readonly assets: XcmV1MultiassetMultiAssetFilter;1060 readonly maxAssets: u32;1061 readonly beneficiary: XcmV1MultiLocation;1062 } & Struct;1063 readonly isDepositReserveAsset: boolean;1064 readonly asDepositReserveAsset: {1065 readonly assets: XcmV1MultiassetMultiAssetFilter;1066 readonly maxAssets: u32;1067 readonly dest: XcmV1MultiLocation;1068 readonly effects: Vec<XcmV1Order>;1069 } & Struct;1070 readonly isExchangeAsset: boolean;1071 readonly asExchangeAsset: {1072 readonly give: XcmV1MultiassetMultiAssetFilter;1073 readonly receive: XcmV1MultiassetMultiAssets;1074 } & Struct;1075 readonly isInitiateReserveWithdraw: boolean;1076 readonly asInitiateReserveWithdraw: {1077 readonly assets: XcmV1MultiassetMultiAssetFilter;1078 readonly reserve: XcmV1MultiLocation;1079 readonly effects: Vec<XcmV1Order>;1080 } & Struct;1081 readonly isInitiateTeleport: boolean;1082 readonly asInitiateTeleport: {1083 readonly assets: XcmV1MultiassetMultiAssetFilter;1084 readonly dest: XcmV1MultiLocation;1085 readonly effects: Vec<XcmV1Order>;1086 } & Struct;1087 readonly isQueryHolding: boolean;1088 readonly asQueryHolding: {1089 readonly queryId: Compact<u64>;1090 readonly dest: XcmV1MultiLocation;1091 readonly assets: XcmV1MultiassetMultiAssetFilter;1092 } & Struct;1093 readonly isBuyExecution: boolean;1094 readonly asBuyExecution: {1095 readonly fees: XcmV1MultiAsset;1096 readonly weight: u64;1097 readonly debt: u64;1098 readonly haltOnError: bool;1099 readonly instructions: Vec<XcmV1Xcm>;1100 } & Struct;1101 readonly type: 'Noop' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution';1102 }11031104 /** @name XcmV1MultiassetMultiAssetFilter (119) */1105 export interface XcmV1MultiassetMultiAssetFilter extends Enum {1106 readonly isDefinite: boolean;1107 readonly asDefinite: XcmV1MultiassetMultiAssets;1108 readonly isWild: boolean;1109 readonly asWild: XcmV1MultiassetWildMultiAsset;1110 readonly type: 'Definite' | 'Wild';1111 }11121113 /** @name XcmV1MultiassetWildMultiAsset (120) */1114 export interface XcmV1MultiassetWildMultiAsset extends Enum {1115 readonly isAll: boolean;1116 readonly isAllOf: boolean;1117 readonly asAllOf: {1118 readonly id: XcmV1MultiassetAssetId;1119 readonly fun: XcmV1MultiassetWildFungibility;1120 } & Struct;1121 readonly type: 'All' | 'AllOf';1122 }11231124 /** @name XcmV1MultiassetWildFungibility (121) */1125 export interface XcmV1MultiassetWildFungibility extends Enum {1126 readonly isFungible: boolean;1127 readonly isNonFungible: boolean;1128 readonly type: 'Fungible' | 'NonFungible';1129 }11301131 /** @name XcmV1Response (123) */1132 export interface XcmV1Response extends Enum {1133 readonly isAssets: boolean;1134 readonly asAssets: XcmV1MultiassetMultiAssets;1135 readonly isVersion: boolean;1136 readonly asVersion: u32;1137 readonly type: 'Assets' | 'Version';1138 }11391140 /** @name XcmV2Xcm (124) */1141 export interface XcmV2Xcm extends Vec<XcmV2Instruction> {}11421143 /** @name XcmV2Instruction (126) */1144 export interface XcmV2Instruction extends Enum {1145 readonly isWithdrawAsset: boolean;1146 readonly asWithdrawAsset: XcmV1MultiassetMultiAssets;1147 readonly isReserveAssetDeposited: boolean;1148 readonly asReserveAssetDeposited: XcmV1MultiassetMultiAssets;1149 readonly isReceiveTeleportedAsset: boolean;1150 readonly asReceiveTeleportedAsset: XcmV1MultiassetMultiAssets;1151 readonly isQueryResponse: boolean;1152 readonly asQueryResponse: {1153 readonly queryId: Compact<u64>;1154 readonly response: XcmV2Response;1155 readonly maxWeight: Compact<u64>;1156 } & Struct;1157 readonly isTransferAsset: boolean;1158 readonly asTransferAsset: {1159 readonly assets: XcmV1MultiassetMultiAssets;1160 readonly beneficiary: XcmV1MultiLocation;1161 } & Struct;1162 readonly isTransferReserveAsset: boolean;1163 readonly asTransferReserveAsset: {1164 readonly assets: XcmV1MultiassetMultiAssets;1165 readonly dest: XcmV1MultiLocation;1166 readonly xcm: XcmV2Xcm;1167 } & Struct;1168 readonly isTransact: boolean;1169 readonly asTransact: {1170 readonly originType: XcmV0OriginKind;1171 readonly requireWeightAtMost: Compact<u64>;1172 readonly call: XcmDoubleEncoded;1173 } & Struct;1174 readonly isHrmpNewChannelOpenRequest: boolean;1175 readonly asHrmpNewChannelOpenRequest: {1176 readonly sender: Compact<u32>;1177 readonly maxMessageSize: Compact<u32>;1178 readonly maxCapacity: Compact<u32>;1179 } & Struct;1180 readonly isHrmpChannelAccepted: boolean;1181 readonly asHrmpChannelAccepted: {1182 readonly recipient: Compact<u32>;1183 } & Struct;1184 readonly isHrmpChannelClosing: boolean;1185 readonly asHrmpChannelClosing: {1186 readonly initiator: Compact<u32>;1187 readonly sender: Compact<u32>;1188 readonly recipient: Compact<u32>;1189 } & Struct;1190 readonly isClearOrigin: boolean;1191 readonly isDescendOrigin: boolean;1192 readonly asDescendOrigin: XcmV1MultilocationJunctions;1193 readonly isReportError: boolean;1194 readonly asReportError: {1195 readonly queryId: Compact<u64>;1196 readonly dest: XcmV1MultiLocation;1197 readonly maxResponseWeight: Compact<u64>;1198 } & Struct;1199 readonly isDepositAsset: boolean;1200 readonly asDepositAsset: {1201 readonly assets: XcmV1MultiassetMultiAssetFilter;1202 readonly maxAssets: Compact<u32>;1203 readonly beneficiary: XcmV1MultiLocation;1204 } & Struct;1205 readonly isDepositReserveAsset: boolean;1206 readonly asDepositReserveAsset: {1207 readonly assets: XcmV1MultiassetMultiAssetFilter;1208 readonly maxAssets: Compact<u32>;1209 readonly dest: XcmV1MultiLocation;1210 readonly xcm: XcmV2Xcm;1211 } & Struct;1212 readonly isExchangeAsset: boolean;1213 readonly asExchangeAsset: {1214 readonly give: XcmV1MultiassetMultiAssetFilter;1215 readonly receive: XcmV1MultiassetMultiAssets;1216 } & Struct;1217 readonly isInitiateReserveWithdraw: boolean;1218 readonly asInitiateReserveWithdraw: {1219 readonly assets: XcmV1MultiassetMultiAssetFilter;1220 readonly reserve: XcmV1MultiLocation;1221 readonly xcm: XcmV2Xcm;1222 } & Struct;1223 readonly isInitiateTeleport: boolean;1224 readonly asInitiateTeleport: {1225 readonly assets: XcmV1MultiassetMultiAssetFilter;1226 readonly dest: XcmV1MultiLocation;1227 readonly xcm: XcmV2Xcm;1228 } & Struct;1229 readonly isQueryHolding: boolean;1230 readonly asQueryHolding: {1231 readonly queryId: Compact<u64>;1232 readonly dest: XcmV1MultiLocation;1233 readonly assets: XcmV1MultiassetMultiAssetFilter;1234 readonly maxResponseWeight: Compact<u64>;1235 } & Struct;1236 readonly isBuyExecution: boolean;1237 readonly asBuyExecution: {1238 readonly fees: XcmV1MultiAsset;1239 readonly weightLimit: XcmV2WeightLimit;1240 } & Struct;1241 readonly isRefundSurplus: boolean;1242 readonly isSetErrorHandler: boolean;1243 readonly asSetErrorHandler: XcmV2Xcm;1244 readonly isSetAppendix: boolean;1245 readonly asSetAppendix: XcmV2Xcm;1246 readonly isClearError: boolean;1247 readonly isClaimAsset: boolean;1248 readonly asClaimAsset: {1249 readonly assets: XcmV1MultiassetMultiAssets;1250 readonly ticket: XcmV1MultiLocation;1251 } & Struct;1252 readonly isTrap: boolean;1253 readonly asTrap: Compact<u64>;1254 readonly isSubscribeVersion: boolean;1255 readonly asSubscribeVersion: {1256 readonly queryId: Compact<u64>;1257 readonly maxResponseWeight: Compact<u64>;1258 } & Struct;1259 readonly isUnsubscribeVersion: boolean;1260 readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'ClearOrigin' | 'DescendOrigin' | 'ReportError' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution' | 'RefundSurplus' | 'SetErrorHandler' | 'SetAppendix' | 'ClearError' | 'ClaimAsset' | 'Trap' | 'SubscribeVersion' | 'UnsubscribeVersion';1261 }12621263 /** @name XcmV2Response (127) */1264 export interface XcmV2Response extends Enum {1265 readonly isNull: boolean;1266 readonly isAssets: boolean;1267 readonly asAssets: XcmV1MultiassetMultiAssets;1268 readonly isExecutionResult: boolean;1269 readonly asExecutionResult: Option<ITuple<[u32, XcmV2TraitsError]>>;1270 readonly isVersion: boolean;1271 readonly asVersion: u32;1272 readonly type: 'Null' | 'Assets' | 'ExecutionResult' | 'Version';1273 }12741275 /** @name XcmV2TraitsError (130) */1276 export interface XcmV2TraitsError extends Enum {1277 readonly isOverflow: boolean;1278 readonly isUnimplemented: boolean;1279 readonly isUntrustedReserveLocation: boolean;1280 readonly isUntrustedTeleportLocation: boolean;1281 readonly isMultiLocationFull: boolean;1282 readonly isMultiLocationNotInvertible: boolean;1283 readonly isBadOrigin: boolean;1284 readonly isInvalidLocation: boolean;1285 readonly isAssetNotFound: boolean;1286 readonly isFailedToTransactAsset: boolean;1287 readonly isNotWithdrawable: boolean;1288 readonly isLocationCannotHold: boolean;1289 readonly isExceedsMaxMessageSize: boolean;1290 readonly isDestinationUnsupported: boolean;1291 readonly isTransport: boolean;1292 readonly isUnroutable: boolean;1293 readonly isUnknownClaim: boolean;1294 readonly isFailedToDecode: boolean;1295 readonly isMaxWeightInvalid: boolean;1296 readonly isNotHoldingFees: boolean;1297 readonly isTooExpensive: boolean;1298 readonly isTrap: boolean;1299 readonly asTrap: u64;1300 readonly isUnhandledXcmVersion: boolean;1301 readonly isWeightLimitReached: boolean;1302 readonly asWeightLimitReached: u64;1303 readonly isBarrier: boolean;1304 readonly isWeightNotComputable: boolean;1305 readonly type: 'Overflow' | 'Unimplemented' | 'UntrustedReserveLocation' | 'UntrustedTeleportLocation' | 'MultiLocationFull' | 'MultiLocationNotInvertible' | 'BadOrigin' | 'InvalidLocation' | 'AssetNotFound' | 'FailedToTransactAsset' | 'NotWithdrawable' | 'LocationCannotHold' | 'ExceedsMaxMessageSize' | 'DestinationUnsupported' | 'Transport' | 'Unroutable' | 'UnknownClaim' | 'FailedToDecode' | 'MaxWeightInvalid' | 'NotHoldingFees' | 'TooExpensive' | 'Trap' | 'UnhandledXcmVersion' | 'WeightLimitReached' | 'Barrier' | 'WeightNotComputable';1306 }13071308 /** @name XcmV2WeightLimit (131) */1309 export interface XcmV2WeightLimit extends Enum {1310 readonly isUnlimited: boolean;1311 readonly isLimited: boolean;1312 readonly asLimited: Compact<u64>;1313 readonly type: 'Unlimited' | 'Limited';1314 }13151316 /** @name XcmVersionedMultiAssets (132) */1317 export interface XcmVersionedMultiAssets extends Enum {1318 readonly isV0: boolean;1319 readonly asV0: Vec<XcmV0MultiAsset>;1320 readonly isV1: boolean;1321 readonly asV1: XcmV1MultiassetMultiAssets;1322 readonly type: 'V0' | 'V1';1323 }13241325 /** @name CumulusPalletXcmCall (147) */1326 export type CumulusPalletXcmCall = Null;13271328 /** @name CumulusPalletDmpQueueCall (148) */1329 export interface CumulusPalletDmpQueueCall extends Enum {1330 readonly isServiceOverweight: boolean;1331 readonly asServiceOverweight: {1332 readonly index: u64;1333 readonly weightLimit: u64;1334 } & Struct;1335 readonly type: 'ServiceOverweight';1336 }13371338 /** @name PalletInflationCall (149) */1339 export interface PalletInflationCall extends Enum {1340 readonly isStartInflation: boolean;1341 readonly asStartInflation: {1342 readonly inflationStartRelayBlock: u32;1343 } & Struct;1344 readonly type: 'StartInflation';1345 }13461347 /** @name PalletUniqueCall (150) */1348 export interface PalletUniqueCall extends Enum {1349 readonly isCreateCollection: boolean;1350 readonly asCreateCollection: {1351 readonly collectionName: Vec<u16>;1352 readonly collectionDescription: Vec<u16>;1353 readonly tokenPrefix: Bytes;1354 readonly mode: UpDataStructsCollectionMode;1355 } & Struct;1356 readonly isCreateCollectionEx: boolean;1357 readonly asCreateCollectionEx: {1358 readonly data: UpDataStructsCreateCollectionData;1359 } & Struct;1360 readonly isDestroyCollection: boolean;1361 readonly asDestroyCollection: {1362 readonly collectionId: u32;1363 } & Struct;1364 readonly isAddToAllowList: boolean;1365 readonly asAddToAllowList: {1366 readonly collectionId: u32;1367 readonly address: PalletEvmAccountBasicCrossAccountIdRepr;1368 } & Struct;1369 readonly isRemoveFromAllowList: boolean;1370 readonly asRemoveFromAllowList: {1371 readonly collectionId: u32;1372 readonly address: PalletEvmAccountBasicCrossAccountIdRepr;1373 } & Struct;1374 readonly isSetPublicAccessMode: boolean;1375 readonly asSetPublicAccessMode: {1376 readonly collectionId: u32;1377 readonly mode: UpDataStructsAccessMode;1378 } & Struct;1379 readonly isSetMintPermission: boolean;1380 readonly asSetMintPermission: {1381 readonly collectionId: u32;1382 readonly mintPermission: bool;1383 } & Struct;1384 readonly isChangeCollectionOwner: boolean;1385 readonly asChangeCollectionOwner: {1386 readonly collectionId: u32;1387 readonly newOwner: AccountId32;1388 } & Struct;1389 readonly isAddCollectionAdmin: boolean;1390 readonly asAddCollectionAdmin: {1391 readonly collectionId: u32;1392 readonly newAdminId: PalletEvmAccountBasicCrossAccountIdRepr;1393 } & Struct;1394 readonly isRemoveCollectionAdmin: boolean;1395 readonly asRemoveCollectionAdmin: {1396 readonly collectionId: u32;1397 readonly accountId: PalletEvmAccountBasicCrossAccountIdRepr;1398 } & Struct;1399 readonly isSetCollectionSponsor: boolean;1400 readonly asSetCollectionSponsor: {1401 readonly collectionId: u32;1402 readonly newSponsor: AccountId32;1403 } & Struct;1404 readonly isConfirmSponsorship: boolean;1405 readonly asConfirmSponsorship: {1406 readonly collectionId: u32;1407 } & Struct;1408 readonly isRemoveCollectionSponsor: boolean;1409 readonly asRemoveCollectionSponsor: {1410 readonly collectionId: u32;1411 } & Struct;1412 readonly isCreateItem: boolean;1413 readonly asCreateItem: {1414 readonly collectionId: u32;1415 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;1416 readonly data: UpDataStructsCreateItemData;1417 } & Struct;1418 readonly isCreateMultipleItems: boolean;1419 readonly asCreateMultipleItems: {1420 readonly collectionId: u32;1421 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;1422 readonly itemsData: Vec<UpDataStructsCreateItemData>;1423 } & Struct;1424 readonly isSetCollectionProperties: boolean;1425 readonly asSetCollectionProperties: {1426 readonly collectionId: u32;1427 readonly properties: Vec<UpDataStructsProperty>;1428 } & Struct;1429 readonly isDeleteCollectionProperties: boolean;1430 readonly asDeleteCollectionProperties: {1431 readonly collectionId: u32;1432 readonly propertyKeys: Vec<Bytes>;1433 } & Struct;1434 readonly isSetTokenProperties: boolean;1435 readonly asSetTokenProperties: {1436 readonly collectionId: u32;1437 readonly tokenId: u32;1438 readonly properties: Vec<UpDataStructsProperty>;1439 } & Struct;1440 readonly isDeleteTokenProperties: boolean;1441 readonly asDeleteTokenProperties: {1442 readonly collectionId: u32;1443 readonly tokenId: u32;1444 readonly propertyKeys: Vec<Bytes>;1445 } & Struct;1446 readonly isSetPropertyPermissions: boolean;1447 readonly asSetPropertyPermissions: {1448 readonly collectionId: u32;1449 readonly propertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;1450 } & Struct;1451 readonly isCreateMultipleItemsEx: boolean;1452 readonly asCreateMultipleItemsEx: {1453 readonly collectionId: u32;1454 readonly data: UpDataStructsCreateItemExData;1455 } & Struct;1456 readonly isSetTransfersEnabledFlag: boolean;1457 readonly asSetTransfersEnabledFlag: {1458 readonly collectionId: u32;1459 readonly value: bool;1460 } & Struct;1461 readonly isBurnItem: boolean;1462 readonly asBurnItem: {1463 readonly collectionId: u32;1464 readonly itemId: u32;1465 readonly value: u128;1466 } & Struct;1467 readonly isBurnFrom: boolean;1468 readonly asBurnFrom: {1469 readonly collectionId: u32;1470 readonly from: PalletEvmAccountBasicCrossAccountIdRepr;1471 readonly itemId: u32;1472 readonly value: u128;1473 } & Struct;1474 readonly isTransfer: boolean;1475 readonly asTransfer: {1476 readonly recipient: PalletEvmAccountBasicCrossAccountIdRepr;1477 readonly collectionId: u32;1478 readonly itemId: u32;1479 readonly value: u128;1480 } & Struct;1481 readonly isApprove: boolean;1482 readonly asApprove: {1483 readonly spender: PalletEvmAccountBasicCrossAccountIdRepr;1484 readonly collectionId: u32;1485 readonly itemId: u32;1486 readonly amount: u128;1487 } & Struct;1488 readonly isTransferFrom: boolean;1489 readonly asTransferFrom: {1490 readonly from: PalletEvmAccountBasicCrossAccountIdRepr;1491 readonly recipient: PalletEvmAccountBasicCrossAccountIdRepr;1492 readonly collectionId: u32;1493 readonly itemId: u32;1494 readonly value: u128;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;1508 readonly asSetSchemaVersion: {1509 readonly collectionId: u32;1510 readonly version: UpDataStructsSchemaVersion;1511 } & Struct;1512 readonly isSetOffchainSchema: boolean;1513 readonly asSetOffchainSchema: {1514 readonly collectionId: u32;1515 readonly schema: Bytes;1516 } & Struct;1517 readonly isSetConstOnChainSchema: boolean;1518 readonly asSetConstOnChainSchema: {1519 readonly collectionId: u32;1520 readonly schema: Bytes;1521 } & Struct;1522 readonly isSetCollectionLimits: boolean;1523 readonly asSetCollectionLimits: {1524 readonly collectionId: u32;1525 readonly newLimit: UpDataStructsCollectionLimits;1526 } & 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';1528 }15291530 /** @name UpDataStructsCollectionMode (156) */1531 export interface UpDataStructsCollectionMode extends Enum {1532 readonly isNft: boolean;1533 readonly isFungible: boolean;1534 readonly asFungible: u8;1535 readonly isReFungible: boolean;1536 readonly type: 'Nft' | 'Fungible' | 'ReFungible';1537 }15381539 /** @name UpDataStructsCreateCollectionData (157) */1540 export interface UpDataStructsCreateCollectionData extends Struct {1541 readonly mode: UpDataStructsCollectionMode;1542 readonly access: Option<UpDataStructsAccessMode>;1543 readonly name: Vec<u16>;1544 readonly description: Vec<u16>;1545 readonly tokenPrefix: Bytes;1546 readonly offchainSchema: Bytes;1547 readonly schemaVersion: Option<UpDataStructsSchemaVersion>;1548 readonly pendingSponsor: Option<AccountId32>;1549 readonly limits: Option<UpDataStructsCollectionLimits>;1550 readonly constOnChainSchema: Bytes;1551 readonly metaUpdatePermission: Option<UpDataStructsMetaUpdatePermission>;1552 readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;1553 readonly properties: Vec<UpDataStructsProperty>;1554 }15551556 /** @name UpDataStructsAccessMode (159) */1557 export interface UpDataStructsAccessMode extends Enum {1558 readonly isNormal: boolean;1559 readonly isAllowList: boolean;1560 readonly type: 'Normal' | 'AllowList';1561 }15621563 /** @name UpDataStructsSchemaVersion (162) */1564 export interface UpDataStructsSchemaVersion extends Enum {1565 readonly isImageURL: boolean;1566 readonly isUnique: boolean;1567 readonly type: 'ImageURL' | 'Unique';1568 }15691570 /** @name UpDataStructsCollectionLimits (165) */1571 export interface UpDataStructsCollectionLimits extends Struct {1572 readonly accountTokenOwnershipLimit: Option<u32>;1573 readonly sponsoredDataSize: Option<u32>;1574 readonly sponsoredDataRateLimit: Option<UpDataStructsSponsoringRateLimit>;1575 readonly tokenLimit: Option<u32>;1576 readonly sponsorTransferTimeout: Option<u32>;1577 readonly sponsorApproveTimeout: Option<u32>;1578 readonly ownerCanTransfer: Option<bool>;1579 readonly ownerCanDestroy: Option<bool>;1580 readonly transfersEnabled: Option<bool>;1581 readonly nestingRule: Option<UpDataStructsNestingRule>;1582 }15831584 /** @name UpDataStructsSponsoringRateLimit (167) */1585 export interface UpDataStructsSponsoringRateLimit extends Enum {1586 readonly isSponsoringDisabled: boolean;1587 readonly isBlocks: boolean;1588 readonly asBlocks: u32;1589 readonly type: 'SponsoringDisabled' | 'Blocks';1590 }15911592 /** @name UpDataStructsNestingRule (170) */1593 export interface UpDataStructsNestingRule extends Enum {1594 readonly isDisabled: boolean;1595 readonly isOwner: boolean;1596 readonly isOwnerRestricted: boolean;1597 readonly asOwnerRestricted: BTreeSet<u32>;1598 readonly type: 'Disabled' | 'Owner' | 'OwnerRestricted';1599 }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 }16081609 /** @name UpDataStructsPropertyKeyPermission (179) */1610 export interface UpDataStructsPropertyKeyPermission extends Struct {1611 readonly key: Bytes;1612 readonly permission: UpDataStructsPropertyPermission;1613 }16141615 /** @name UpDataStructsPropertyPermission (181) */1616 export interface UpDataStructsPropertyPermission extends Struct {1617 readonly mutable: bool;1618 readonly collectionAdmin: bool;1619 readonly tokenOwner: bool;1620 }16211622 /** @name UpDataStructsProperty (184) */1623 export interface UpDataStructsProperty extends Struct {1624 readonly key: Bytes;1625 readonly value: Bytes;1626 }16271628 /** @name PalletEvmAccountBasicCrossAccountIdRepr (186) */1629 export interface PalletEvmAccountBasicCrossAccountIdRepr extends Enum {1630 readonly isSubstrate: boolean;1631 readonly asSubstrate: AccountId32;1632 readonly isEthereum: boolean;1633 readonly asEthereum: H160;1634 readonly type: 'Substrate' | 'Ethereum';1635 }16361637 /** @name UpDataStructsCreateItemData (188) */1638 export interface UpDataStructsCreateItemData extends Enum {1639 readonly isNft: boolean;1640 readonly asNft: UpDataStructsCreateNftData;1641 readonly isFungible: boolean;1642 readonly asFungible: UpDataStructsCreateFungibleData;1643 readonly isReFungible: boolean;1644 readonly asReFungible: UpDataStructsCreateReFungibleData;1645 readonly type: 'Nft' | 'Fungible' | 'ReFungible';1646 }16471648 /** @name UpDataStructsCreateNftData (189) */1649 export interface UpDataStructsCreateNftData extends Struct {1650 readonly constData: Bytes;1651 readonly variableData: Bytes;1652 readonly properties: Vec<UpDataStructsProperty>;1653 }16541655 /** @name UpDataStructsCreateFungibleData (191) */1656 export interface UpDataStructsCreateFungibleData extends Struct {1657 readonly value: u128;1658 }16591660 /** @name UpDataStructsCreateReFungibleData (192) */1661 export interface UpDataStructsCreateReFungibleData extends Struct {1662 readonly constData: Bytes;1663 readonly variableData: Bytes;1664 readonly pieces: u128;1665 }16661667 /** @name UpDataStructsCreateItemExData (196) */1668 export interface UpDataStructsCreateItemExData extends Enum {1669 readonly isNft: boolean;1670 readonly asNft: Vec<UpDataStructsCreateNftExData>;1671 readonly isFungible: boolean;1672 readonly asFungible: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>;1673 readonly isRefungibleMultipleItems: boolean;1674 readonly asRefungibleMultipleItems: Vec<UpDataStructsCreateRefungibleExData>;1675 readonly isRefungibleMultipleOwners: boolean;1676 readonly asRefungibleMultipleOwners: UpDataStructsCreateRefungibleExData;1677 readonly type: 'Nft' | 'Fungible' | 'RefungibleMultipleItems' | 'RefungibleMultipleOwners';1678 }16791680 /** @name UpDataStructsCreateNftExData (198) */1681 export interface UpDataStructsCreateNftExData extends Struct {1682 readonly constData: Bytes;1683 readonly variableData: Bytes;1684 readonly properties: Vec<UpDataStructsProperty>;1685 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;1686 }16871688 /** @name UpDataStructsCreateRefungibleExData (205) */1689 export interface UpDataStructsCreateRefungibleExData extends Struct {1690 readonly constData: Bytes;1691 readonly variableData: Bytes;1692 readonly users: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>;1693 }16941695 /** @name PalletTemplateTransactionPaymentCall (207) */1696 export type PalletTemplateTransactionPaymentCall = Null;16971698 /** @name PalletStructureCall (208) */1699 export type PalletStructureCall = Null;17001701 /** @name PalletEvmCall (209) */1702 export interface PalletEvmCall extends Enum {1703 readonly isWithdraw: boolean;1704 readonly asWithdraw: {1705 readonly address: H160;1706 readonly value: u128;1707 } & Struct;1708 readonly isCall: boolean;1709 readonly asCall: {1710 readonly source: H160;1711 readonly target: H160;1712 readonly input: Bytes;1713 readonly value: U256;1714 readonly gasLimit: u64;1715 readonly maxFeePerGas: U256;1716 readonly maxPriorityFeePerGas: Option<U256>;1717 readonly nonce: Option<U256>;1718 readonly accessList: Vec<ITuple<[H160, Vec<H256>]>>;1719 } & Struct;1720 readonly isCreate: boolean;1721 readonly asCreate: {1722 readonly source: H160;1723 readonly init: Bytes;1724 readonly value: U256;1725 readonly gasLimit: u64;1726 readonly maxFeePerGas: U256;1727 readonly maxPriorityFeePerGas: Option<U256>;1728 readonly nonce: Option<U256>;1729 readonly accessList: Vec<ITuple<[H160, Vec<H256>]>>;1730 } & Struct;1731 readonly isCreate2: boolean;1732 readonly asCreate2: {1733 readonly source: H160;1734 readonly init: Bytes;1735 readonly salt: H256;1736 readonly value: U256;1737 readonly gasLimit: u64;1738 readonly maxFeePerGas: U256;1739 readonly maxPriorityFeePerGas: Option<U256>;1740 readonly nonce: Option<U256>;1741 readonly accessList: Vec<ITuple<[H160, Vec<H256>]>>;1742 } & Struct;1743 readonly type: 'Withdraw' | 'Call' | 'Create' | 'Create2';1744 }17451746 /** @name PalletEthereumCall (215) */1747 export interface PalletEthereumCall extends Enum {1748 readonly isTransact: boolean;1749 readonly asTransact: {1750 readonly transaction: EthereumTransactionTransactionV2;1751 } & Struct;1752 readonly type: 'Transact';1753 }17541755 /** @name EthereumTransactionTransactionV2 (216) */1756 export interface EthereumTransactionTransactionV2 extends Enum {1757 readonly isLegacy: boolean;1758 readonly asLegacy: EthereumTransactionLegacyTransaction;1759 readonly isEip2930: boolean;1760 readonly asEip2930: EthereumTransactionEip2930Transaction;1761 readonly isEip1559: boolean;1762 readonly asEip1559: EthereumTransactionEip1559Transaction;1763 readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';1764 }17651766 /** @name EthereumTransactionLegacyTransaction (217) */1767 export interface EthereumTransactionLegacyTransaction extends Struct {1768 readonly nonce: U256;1769 readonly gasPrice: U256;1770 readonly gasLimit: U256;1771 readonly action: EthereumTransactionTransactionAction;1772 readonly value: U256;1773 readonly input: Bytes;1774 readonly signature: EthereumTransactionTransactionSignature;1775 }17761777 /** @name EthereumTransactionTransactionAction (218) */1778 export interface EthereumTransactionTransactionAction extends Enum {1779 readonly isCall: boolean;1780 readonly asCall: H160;1781 readonly isCreate: boolean;1782 readonly type: 'Call' | 'Create';1783 }17841785 /** @name EthereumTransactionTransactionSignature (219) */1786 export interface EthereumTransactionTransactionSignature extends Struct {1787 readonly v: u64;1788 readonly r: H256;1789 readonly s: H256;1790 }17911792 /** @name EthereumTransactionEip2930Transaction (221) */1793 export interface EthereumTransactionEip2930Transaction extends Struct {1794 readonly chainId: u64;1795 readonly nonce: U256;1796 readonly gasPrice: U256;1797 readonly gasLimit: U256;1798 readonly action: EthereumTransactionTransactionAction;1799 readonly value: U256;1800 readonly input: Bytes;1801 readonly accessList: Vec<EthereumTransactionAccessListItem>;1802 readonly oddYParity: bool;1803 readonly r: H256;1804 readonly s: H256;1805 }18061807 /** @name EthereumTransactionAccessListItem (223) */1808 export interface EthereumTransactionAccessListItem extends Struct {1809 readonly address: H160;1810 readonly storageKeys: Vec<H256>;1811 }18121813 /** @name EthereumTransactionEip1559Transaction (224) */1814 export interface EthereumTransactionEip1559Transaction extends Struct {1815 readonly chainId: u64;1816 readonly nonce: U256;1817 readonly maxPriorityFeePerGas: U256;1818 readonly maxFeePerGas: U256;1819 readonly gasLimit: U256;1820 readonly action: EthereumTransactionTransactionAction;1821 readonly value: U256;1822 readonly input: Bytes;1823 readonly accessList: Vec<EthereumTransactionAccessListItem>;1824 readonly oddYParity: bool;1825 readonly r: H256;1826 readonly s: H256;1827 }18281829 /** @name PalletEvmMigrationCall (225) */1830 export interface PalletEvmMigrationCall extends Enum {1831 readonly isBegin: boolean;1832 readonly asBegin: {1833 readonly address: H160;1834 } & Struct;1835 readonly isSetData: boolean;1836 readonly asSetData: {1837 readonly address: H160;1838 readonly data: Vec<ITuple<[H256, H256]>>;1839 } & Struct;1840 readonly isFinish: boolean;1841 readonly asFinish: {1842 readonly address: H160;1843 readonly code: Bytes;1844 } & Struct;1845 readonly type: 'Begin' | 'SetData' | 'Finish';1846 }18471848 /** @name PalletSudoEvent (228) */1849 export interface PalletSudoEvent extends Enum {1850 readonly isSudid: boolean;1851 readonly asSudid: {1852 readonly sudoResult: Result<Null, SpRuntimeDispatchError>;1853 } & Struct;1854 readonly isKeyChanged: boolean;1855 readonly asKeyChanged: {1856 readonly oldSudoer: Option<AccountId32>;1857 } & Struct;1858 readonly isSudoAsDone: boolean;1859 readonly asSudoAsDone: {1860 readonly sudoResult: Result<Null, SpRuntimeDispatchError>;1861 } & Struct;1862 readonly type: 'Sudid' | 'KeyChanged' | 'SudoAsDone';1863 }18641865 /** @name SpRuntimeDispatchError (230) */1866 export interface SpRuntimeDispatchError extends Enum {1867 readonly isOther: boolean;1868 readonly isCannotLookup: boolean;1869 readonly isBadOrigin: boolean;1870 readonly isModule: boolean;1871 readonly asModule: SpRuntimeModuleError;1872 readonly isConsumerRemaining: boolean;1873 readonly isNoProviders: boolean;1874 readonly isTooManyConsumers: boolean;1875 readonly isToken: boolean;1876 readonly asToken: SpRuntimeTokenError;1877 readonly isArithmetic: boolean;1878 readonly asArithmetic: SpRuntimeArithmeticError;1879 readonly isTransactional: boolean;1880 readonly asTransactional: SpRuntimeTransactionalError;1881 readonly type: 'Other' | 'CannotLookup' | 'BadOrigin' | 'Module' | 'ConsumerRemaining' | 'NoProviders' | 'TooManyConsumers' | 'Token' | 'Arithmetic' | 'Transactional';1882 }18831884 /** @name SpRuntimeModuleError (231) */1885 export interface SpRuntimeModuleError extends Struct {1886 readonly index: u8;1887 readonly error: U8aFixed;1888 }18891890 /** @name SpRuntimeTokenError (232) */1891 export interface SpRuntimeTokenError extends Enum {1892 readonly isNoFunds: boolean;1893 readonly isWouldDie: boolean;1894 readonly isBelowMinimum: boolean;1895 readonly isCannotCreate: boolean;1896 readonly isUnknownAsset: boolean;1897 readonly isFrozen: boolean;1898 readonly isUnsupported: boolean;1899 readonly type: 'NoFunds' | 'WouldDie' | 'BelowMinimum' | 'CannotCreate' | 'UnknownAsset' | 'Frozen' | 'Unsupported';1900 }19011902 /** @name SpRuntimeArithmeticError (233) */1903 export interface SpRuntimeArithmeticError extends Enum {1904 readonly isUnderflow: boolean;1905 readonly isOverflow: boolean;1906 readonly isDivisionByZero: boolean;1907 readonly type: 'Underflow' | 'Overflow' | 'DivisionByZero';1908 }19091910 /** @name SpRuntimeTransactionalError (234) */1911 export interface SpRuntimeTransactionalError extends Enum {1912 readonly isLimitReached: boolean;1913 readonly isNoLayer: boolean;1914 readonly type: 'LimitReached' | 'NoLayer';1915 }19161917 /** @name PalletSudoError (235) */1918 export interface PalletSudoError extends Enum {1919 readonly isRequireSudo: boolean;1920 readonly type: 'RequireSudo';1921 }19221923 /** @name FrameSystemAccountInfo (236) */1924 export interface FrameSystemAccountInfo extends Struct {1925 readonly nonce: u32;1926 readonly consumers: u32;1927 readonly providers: u32;1928 readonly sufficients: u32;1929 readonly data: PalletBalancesAccountData;1930 }19311932 /** @name FrameSupportWeightsPerDispatchClassU64 (237) */1933 export interface FrameSupportWeightsPerDispatchClassU64 extends Struct {1934 readonly normal: u64;1935 readonly operational: u64;1936 readonly mandatory: u64;1937 }19381939 /** @name SpRuntimeDigest (238) */1940 export interface SpRuntimeDigest extends Struct {1941 readonly logs: Vec<SpRuntimeDigestDigestItem>;1942 }19431944 /** @name SpRuntimeDigestDigestItem (240) */1945 export interface SpRuntimeDigestDigestItem extends Enum {1946 readonly isOther: boolean;1947 readonly asOther: Bytes;1948 readonly isConsensus: boolean;1949 readonly asConsensus: ITuple<[U8aFixed, Bytes]>;1950 readonly isSeal: boolean;1951 readonly asSeal: ITuple<[U8aFixed, Bytes]>;1952 readonly isPreRuntime: boolean;1953 readonly asPreRuntime: ITuple<[U8aFixed, Bytes]>;1954 readonly isRuntimeEnvironmentUpdated: boolean;1955 readonly type: 'Other' | 'Consensus' | 'Seal' | 'PreRuntime' | 'RuntimeEnvironmentUpdated';1956 }19571958 /** @name FrameSystemEventRecord (242) */1959 export interface FrameSystemEventRecord extends Struct {1960 readonly phase: FrameSystemPhase;1961 readonly event: Event;1962 readonly topics: Vec<H256>;1963 }19641965 /** @name FrameSystemEvent (244) */1966 export interface FrameSystemEvent extends Enum {1967 readonly isExtrinsicSuccess: boolean;1968 readonly asExtrinsicSuccess: {1969 readonly dispatchInfo: FrameSupportWeightsDispatchInfo;1970 } & Struct;1971 readonly isExtrinsicFailed: boolean;1972 readonly asExtrinsicFailed: {1973 readonly dispatchError: SpRuntimeDispatchError;1974 readonly dispatchInfo: FrameSupportWeightsDispatchInfo;1975 } & Struct;1976 readonly isCodeUpdated: boolean;1977 readonly isNewAccount: boolean;1978 readonly asNewAccount: {1979 readonly account: AccountId32;1980 } & Struct;1981 readonly isKilledAccount: boolean;1982 readonly asKilledAccount: {1983 readonly account: AccountId32;1984 } & Struct;1985 readonly isRemarked: boolean;1986 readonly asRemarked: {1987 readonly sender: AccountId32;1988 readonly hash_: H256;1989 } & Struct;1990 readonly type: 'ExtrinsicSuccess' | 'ExtrinsicFailed' | 'CodeUpdated' | 'NewAccount' | 'KilledAccount' | 'Remarked';1991 }19921993 /** @name FrameSupportWeightsDispatchInfo (245) */1994 export interface FrameSupportWeightsDispatchInfo extends Struct {1995 readonly weight: u64;1996 readonly class: FrameSupportWeightsDispatchClass;1997 readonly paysFee: FrameSupportWeightsPays;1998 }19992000 /** @name FrameSupportWeightsDispatchClass (246) */2001 export interface FrameSupportWeightsDispatchClass extends Enum {2002 readonly isNormal: boolean;2003 readonly isOperational: boolean;2004 readonly isMandatory: boolean;2005 readonly type: 'Normal' | 'Operational' | 'Mandatory';2006 }20072008 /** @name FrameSupportWeightsPays (247) */2009 export interface FrameSupportWeightsPays extends Enum {2010 readonly isYes: boolean;2011 readonly isNo: boolean;2012 readonly type: 'Yes' | 'No';2013 }20142015 /** @name OrmlVestingModuleEvent (248) */2016 export interface OrmlVestingModuleEvent extends Enum {2017 readonly isVestingScheduleAdded: boolean;2018 readonly asVestingScheduleAdded: {2019 readonly from: AccountId32;2020 readonly to: AccountId32;2021 readonly vestingSchedule: OrmlVestingVestingSchedule;2022 } & Struct;2023 readonly isClaimed: boolean;2024 readonly asClaimed: {2025 readonly who: AccountId32;2026 readonly amount: u128;2027 } & Struct;2028 readonly isVestingSchedulesUpdated: boolean;2029 readonly asVestingSchedulesUpdated: {2030 readonly who: AccountId32;2031 } & Struct;2032 readonly type: 'VestingScheduleAdded' | 'Claimed' | 'VestingSchedulesUpdated';2033 }20342035 /** @name CumulusPalletXcmpQueueEvent (249) */2036 export interface CumulusPalletXcmpQueueEvent extends Enum {2037 readonly isSuccess: boolean;2038 readonly asSuccess: Option<H256>;2039 readonly isFail: boolean;2040 readonly asFail: ITuple<[Option<H256>, XcmV2TraitsError]>;2041 readonly isBadVersion: boolean;2042 readonly asBadVersion: Option<H256>;2043 readonly isBadFormat: boolean;2044 readonly asBadFormat: Option<H256>;2045 readonly isUpwardMessageSent: boolean;2046 readonly asUpwardMessageSent: Option<H256>;2047 readonly isXcmpMessageSent: boolean;2048 readonly asXcmpMessageSent: Option<H256>;2049 readonly isOverweightEnqueued: boolean;2050 readonly asOverweightEnqueued: ITuple<[u32, u32, u64, u64]>;2051 readonly isOverweightServiced: boolean;2052 readonly asOverweightServiced: ITuple<[u64, u64]>;2053 readonly type: 'Success' | 'Fail' | 'BadVersion' | 'BadFormat' | 'UpwardMessageSent' | 'XcmpMessageSent' | 'OverweightEnqueued' | 'OverweightServiced';2054 }20552056 /** @name PalletXcmEvent (250) */2057 export interface PalletXcmEvent extends Enum {2058 readonly isAttempted: boolean;2059 readonly asAttempted: XcmV2TraitsOutcome;2060 readonly isSent: boolean;2061 readonly asSent: ITuple<[XcmV1MultiLocation, XcmV1MultiLocation, XcmV2Xcm]>;2062 readonly isUnexpectedResponse: boolean;2063 readonly asUnexpectedResponse: ITuple<[XcmV1MultiLocation, u64]>;2064 readonly isResponseReady: boolean;2065 readonly asResponseReady: ITuple<[u64, XcmV2Response]>;2066 readonly isNotified: boolean;2067 readonly asNotified: ITuple<[u64, u8, u8]>;2068 readonly isNotifyOverweight: boolean;2069 readonly asNotifyOverweight: ITuple<[u64, u8, u8, u64, u64]>;2070 readonly isNotifyDispatchError: boolean;2071 readonly asNotifyDispatchError: ITuple<[u64, u8, u8]>;2072 readonly isNotifyDecodeFailed: boolean;2073 readonly asNotifyDecodeFailed: ITuple<[u64, u8, u8]>;2074 readonly isInvalidResponder: boolean;2075 readonly asInvalidResponder: ITuple<[XcmV1MultiLocation, u64, Option<XcmV1MultiLocation>]>;2076 readonly isInvalidResponderVersion: boolean;2077 readonly asInvalidResponderVersion: ITuple<[XcmV1MultiLocation, u64]>;2078 readonly isResponseTaken: boolean;2079 readonly asResponseTaken: u64;2080 readonly isAssetsTrapped: boolean;2081 readonly asAssetsTrapped: ITuple<[H256, XcmV1MultiLocation, XcmVersionedMultiAssets]>;2082 readonly isVersionChangeNotified: boolean;2083 readonly asVersionChangeNotified: ITuple<[XcmV1MultiLocation, u32]>;2084 readonly isSupportedVersionChanged: boolean;2085 readonly asSupportedVersionChanged: ITuple<[XcmV1MultiLocation, u32]>;2086 readonly isNotifyTargetSendFail: boolean;2087 readonly asNotifyTargetSendFail: ITuple<[XcmV1MultiLocation, u64, XcmV2TraitsError]>;2088 readonly isNotifyTargetMigrationFail: boolean;2089 readonly asNotifyTargetMigrationFail: ITuple<[XcmVersionedMultiLocation, u64]>;2090 readonly type: 'Attempted' | 'Sent' | 'UnexpectedResponse' | 'ResponseReady' | 'Notified' | 'NotifyOverweight' | 'NotifyDispatchError' | 'NotifyDecodeFailed' | 'InvalidResponder' | 'InvalidResponderVersion' | 'ResponseTaken' | 'AssetsTrapped' | 'VersionChangeNotified' | 'SupportedVersionChanged' | 'NotifyTargetSendFail' | 'NotifyTargetMigrationFail';2091 }20922093 /** @name XcmV2TraitsOutcome (251) */2094 export interface XcmV2TraitsOutcome extends Enum {2095 readonly isComplete: boolean;2096 readonly asComplete: u64;2097 readonly isIncomplete: boolean;2098 readonly asIncomplete: ITuple<[u64, XcmV2TraitsError]>;2099 readonly isError: boolean;2100 readonly asError: XcmV2TraitsError;2101 readonly type: 'Complete' | 'Incomplete' | 'Error';2102 }21032104 /** @name CumulusPalletXcmEvent (253) */2105 export interface CumulusPalletXcmEvent extends Enum {2106 readonly isInvalidFormat: boolean;2107 readonly asInvalidFormat: U8aFixed;2108 readonly isUnsupportedVersion: boolean;2109 readonly asUnsupportedVersion: U8aFixed;2110 readonly isExecutedDownward: boolean;2111 readonly asExecutedDownward: ITuple<[U8aFixed, XcmV2TraitsOutcome]>;2112 readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward';2113 }21142115 /** @name CumulusPalletDmpQueueEvent (254) */2116 export interface CumulusPalletDmpQueueEvent extends Enum {2117 readonly isInvalidFormat: boolean;2118 readonly asInvalidFormat: U8aFixed;2119 readonly isUnsupportedVersion: boolean;2120 readonly asUnsupportedVersion: U8aFixed;2121 readonly isExecutedDownward: boolean;2122 readonly asExecutedDownward: ITuple<[U8aFixed, XcmV2TraitsOutcome]>;2123 readonly isWeightExhausted: boolean;2124 readonly asWeightExhausted: ITuple<[U8aFixed, u64, u64]>;2125 readonly isOverweightEnqueued: boolean;2126 readonly asOverweightEnqueued: ITuple<[U8aFixed, u64, u64]>;2127 readonly isOverweightServiced: boolean;2128 readonly asOverweightServiced: ITuple<[u64, u64]>;2129 readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward' | 'WeightExhausted' | 'OverweightEnqueued' | 'OverweightServiced';2130 }21312132 /** @name PalletUniqueRawEvent (255) */2133 export interface PalletUniqueRawEvent extends Enum {2134 readonly isCollectionSponsorRemoved: boolean;2135 readonly asCollectionSponsorRemoved: u32;2136 readonly isCollectionAdminAdded: boolean;2137 readonly asCollectionAdminAdded: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;2138 readonly isCollectionOwnedChanged: boolean;2139 readonly asCollectionOwnedChanged: ITuple<[u32, AccountId32]>;2140 readonly isCollectionSponsorSet: boolean;2141 readonly asCollectionSponsorSet: ITuple<[u32, AccountId32]>;2142 readonly isConstOnChainSchemaSet: boolean;2143 readonly asConstOnChainSchemaSet: u32;2144 readonly isSponsorshipConfirmed: boolean;2145 readonly asSponsorshipConfirmed: ITuple<[u32, AccountId32]>;2146 readonly isCollectionAdminRemoved: boolean;2147 readonly asCollectionAdminRemoved: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;2148 readonly isAllowListAddressRemoved: boolean;2149 readonly asAllowListAddressRemoved: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;2150 readonly isAllowListAddressAdded: boolean;2151 readonly asAllowListAddressAdded: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;2152 readonly isCollectionLimitSet: boolean;2153 readonly asCollectionLimitSet: u32;2154 readonly isMintPermissionSet: boolean;2155 readonly asMintPermissionSet: u32;2156 readonly isOffchainSchemaSet: boolean;2157 readonly asOffchainSchemaSet: u32;2158 readonly isPublicAccessModeSet: boolean;2159 readonly asPublicAccessModeSet: ITuple<[u32, UpDataStructsAccessMode]>;2160 readonly isSchemaVersionSet: boolean;2161 readonly asSchemaVersionSet: u32;2162 readonly type: 'CollectionSponsorRemoved' | 'CollectionAdminAdded' | 'CollectionOwnedChanged' | 'CollectionSponsorSet' | 'ConstOnChainSchemaSet' | 'SponsorshipConfirmed' | 'CollectionAdminRemoved' | 'AllowListAddressRemoved' | 'AllowListAddressAdded' | 'CollectionLimitSet' | 'MintPermissionSet' | 'OffchainSchemaSet' | 'PublicAccessModeSet' | 'SchemaVersionSet';2163 }21642165 /** @name PalletCommonEvent (256) */2166 export interface PalletCommonEvent extends Enum {2167 readonly isCollectionCreated: boolean;2168 readonly asCollectionCreated: ITuple<[u32, u8, AccountId32]>;2169 readonly isCollectionDestroyed: boolean;2170 readonly asCollectionDestroyed: u32;2171 readonly isItemCreated: boolean;2172 readonly asItemCreated: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;2173 readonly isItemDestroyed: boolean;2174 readonly asItemDestroyed: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;2175 readonly isTransfer: boolean;2176 readonly asTransfer: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;2177 readonly isApproved: boolean;2178 readonly asApproved: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;2179 readonly isCollectionPropertySet: boolean;2180 readonly asCollectionPropertySet: ITuple<[u32, Bytes]>;2181 readonly isCollectionPropertyDeleted: boolean;2182 readonly asCollectionPropertyDeleted: ITuple<[u32, Bytes]>;2183 readonly isTokenPropertySet: boolean;2184 readonly asTokenPropertySet: ITuple<[u32, u32, Bytes]>;2185 readonly isTokenPropertyDeleted: boolean;2186 readonly asTokenPropertyDeleted: ITuple<[u32, u32, Bytes]>;2187 readonly isPropertyPermissionSet: boolean;2188 readonly asPropertyPermissionSet: ITuple<[u32, Bytes]>;2189 readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'ItemCreated' | 'ItemDestroyed' | 'Transfer' | 'Approved' | 'CollectionPropertySet' | 'CollectionPropertyDeleted' | 'TokenPropertySet' | 'TokenPropertyDeleted' | 'PropertyPermissionSet';2190 }21912192 /** @name PalletStructureEvent (257) */2193 export interface PalletStructureEvent extends Enum {2194 readonly isExecuted: boolean;2195 readonly asExecuted: Result<Null, SpRuntimeDispatchError>;2196 readonly type: 'Executed';2197 }21982199 /** @name PalletEvmEvent (258) */2200 export interface PalletEvmEvent extends Enum {2201 readonly isLog: boolean;2202 readonly asLog: EthereumLog;2203 readonly isCreated: boolean;2204 readonly asCreated: H160;2205 readonly isCreatedFailed: boolean;2206 readonly asCreatedFailed: H160;2207 readonly isExecuted: boolean;2208 readonly asExecuted: H160;2209 readonly isExecutedFailed: boolean;2210 readonly asExecutedFailed: H160;2211 readonly isBalanceDeposit: boolean;2212 readonly asBalanceDeposit: ITuple<[AccountId32, H160, U256]>;2213 readonly isBalanceWithdraw: boolean;2214 readonly asBalanceWithdraw: ITuple<[AccountId32, H160, U256]>;2215 readonly type: 'Log' | 'Created' | 'CreatedFailed' | 'Executed' | 'ExecutedFailed' | 'BalanceDeposit' | 'BalanceWithdraw';2216 }22172218 /** @name EthereumLog (259) */2219 export interface EthereumLog extends Struct {2220 readonly address: H160;2221 readonly topics: Vec<H256>;2222 readonly data: Bytes;2223 }22242225 /** @name PalletEthereumEvent (260) */2226 export interface PalletEthereumEvent extends Enum {2227 readonly isExecuted: boolean;2228 readonly asExecuted: ITuple<[H160, H160, H256, EvmCoreErrorExitReason]>;2229 readonly type: 'Executed';2230 }22312232 /** @name EvmCoreErrorExitReason (261) */2233 export interface EvmCoreErrorExitReason extends Enum {2234 readonly isSucceed: boolean;2235 readonly asSucceed: EvmCoreErrorExitSucceed;2236 readonly isError: boolean;2237 readonly asError: EvmCoreErrorExitError;2238 readonly isRevert: boolean;2239 readonly asRevert: EvmCoreErrorExitRevert;2240 readonly isFatal: boolean;2241 readonly asFatal: EvmCoreErrorExitFatal;2242 readonly type: 'Succeed' | 'Error' | 'Revert' | 'Fatal';2243 }22442245 /** @name EvmCoreErrorExitSucceed (262) */2246 export interface EvmCoreErrorExitSucceed extends Enum {2247 readonly isStopped: boolean;2248 readonly isReturned: boolean;2249 readonly isSuicided: boolean;2250 readonly type: 'Stopped' | 'Returned' | 'Suicided';2251 }22522253 /** @name EvmCoreErrorExitError (263) */2254 export interface EvmCoreErrorExitError extends Enum {2255 readonly isStackUnderflow: boolean;2256 readonly isStackOverflow: boolean;2257 readonly isInvalidJump: boolean;2258 readonly isInvalidRange: boolean;2259 readonly isDesignatedInvalid: boolean;2260 readonly isCallTooDeep: boolean;2261 readonly isCreateCollision: boolean;2262 readonly isCreateContractLimit: boolean;2263 readonly isOutOfOffset: boolean;2264 readonly isOutOfGas: boolean;2265 readonly isOutOfFund: boolean;2266 readonly isPcUnderflow: boolean;2267 readonly isCreateEmpty: boolean;2268 readonly isOther: boolean;2269 readonly asOther: Text;2270 readonly isInvalidCode: boolean;2271 readonly type: 'StackUnderflow' | 'StackOverflow' | 'InvalidJump' | 'InvalidRange' | 'DesignatedInvalid' | 'CallTooDeep' | 'CreateCollision' | 'CreateContractLimit' | 'OutOfOffset' | 'OutOfGas' | 'OutOfFund' | 'PcUnderflow' | 'CreateEmpty' | 'Other' | 'InvalidCode';2272 }22732274 /** @name EvmCoreErrorExitRevert (266) */2275 export interface EvmCoreErrorExitRevert extends Enum {2276 readonly isReverted: boolean;2277 readonly type: 'Reverted';2278 }22792280 /** @name EvmCoreErrorExitFatal (267) */2281 export interface EvmCoreErrorExitFatal extends Enum {2282 readonly isNotSupported: boolean;2283 readonly isUnhandledInterrupt: boolean;2284 readonly isCallErrorAsFatal: boolean;2285 readonly asCallErrorAsFatal: EvmCoreErrorExitError;2286 readonly isOther: boolean;2287 readonly asOther: Text;2288 readonly type: 'NotSupported' | 'UnhandledInterrupt' | 'CallErrorAsFatal' | 'Other';2289 }22902291 /** @name FrameSystemPhase (268) */2292 export interface FrameSystemPhase extends Enum {2293 readonly isApplyExtrinsic: boolean;2294 readonly asApplyExtrinsic: u32;2295 readonly isFinalization: boolean;2296 readonly isInitialization: boolean;2297 readonly type: 'ApplyExtrinsic' | 'Finalization' | 'Initialization';2298 }22992300 /** @name FrameSystemLastRuntimeUpgradeInfo (270) */2301 export interface FrameSystemLastRuntimeUpgradeInfo extends Struct {2302 readonly specVersion: Compact<u32>;2303 readonly specName: Text;2304 }23052306 /** @name FrameSystemLimitsBlockWeights (271) */2307 export interface FrameSystemLimitsBlockWeights extends Struct {2308 readonly baseBlock: u64;2309 readonly maxBlock: u64;2310 readonly perClass: FrameSupportWeightsPerDispatchClassWeightsPerClass;2311 }23122313 /** @name FrameSupportWeightsPerDispatchClassWeightsPerClass (272) */2314 export interface FrameSupportWeightsPerDispatchClassWeightsPerClass extends Struct {2315 readonly normal: FrameSystemLimitsWeightsPerClass;2316 readonly operational: FrameSystemLimitsWeightsPerClass;2317 readonly mandatory: FrameSystemLimitsWeightsPerClass;2318 }23192320 /** @name FrameSystemLimitsWeightsPerClass (273) */2321 export interface FrameSystemLimitsWeightsPerClass extends Struct {2322 readonly baseExtrinsic: u64;2323 readonly maxExtrinsic: Option<u64>;2324 readonly maxTotal: Option<u64>;2325 readonly reserved: Option<u64>;2326 }23272328 /** @name FrameSystemLimitsBlockLength (275) */2329 export interface FrameSystemLimitsBlockLength extends Struct {2330 readonly max: FrameSupportWeightsPerDispatchClassU32;2331 }23322333 /** @name FrameSupportWeightsPerDispatchClassU32 (276) */2334 export interface FrameSupportWeightsPerDispatchClassU32 extends Struct {2335 readonly normal: u32;2336 readonly operational: u32;2337 readonly mandatory: u32;2338 }23392340 /** @name FrameSupportWeightsRuntimeDbWeight (277) */2341 export interface FrameSupportWeightsRuntimeDbWeight extends Struct {2342 readonly read: u64;2343 readonly write: u64;2344 }23452346 /** @name SpVersionRuntimeVersion (278) */2347 export interface SpVersionRuntimeVersion extends Struct {2348 readonly specName: Text;2349 readonly implName: Text;2350 readonly authoringVersion: u32;2351 readonly specVersion: u32;2352 readonly implVersion: u32;2353 readonly apis: Vec<ITuple<[U8aFixed, u32]>>;2354 readonly transactionVersion: u32;2355 readonly stateVersion: u8;2356 }23572358 /** @name FrameSystemError (282) */2359 export interface FrameSystemError extends Enum {2360 readonly isInvalidSpecName: boolean;2361 readonly isSpecVersionNeedsToIncrease: boolean;2362 readonly isFailedToExtractRuntimeVersion: boolean;2363 readonly isNonDefaultComposite: boolean;2364 readonly isNonZeroRefCount: boolean;2365 readonly isCallFiltered: boolean;2366 readonly type: 'InvalidSpecName' | 'SpecVersionNeedsToIncrease' | 'FailedToExtractRuntimeVersion' | 'NonDefaultComposite' | 'NonZeroRefCount' | 'CallFiltered';2367 }23682369 /** @name OrmlVestingModuleError (284) */2370 export interface OrmlVestingModuleError extends Enum {2371 readonly isZeroVestingPeriod: boolean;2372 readonly isZeroVestingPeriodCount: boolean;2373 readonly isInsufficientBalanceToLock: boolean;2374 readonly isTooManyVestingSchedules: boolean;2375 readonly isAmountLow: boolean;2376 readonly isMaxVestingSchedulesExceeded: boolean;2377 readonly type: 'ZeroVestingPeriod' | 'ZeroVestingPeriodCount' | 'InsufficientBalanceToLock' | 'TooManyVestingSchedules' | 'AmountLow' | 'MaxVestingSchedulesExceeded';2378 }23792380 /** @name CumulusPalletXcmpQueueInboundChannelDetails (286) */2381 export interface CumulusPalletXcmpQueueInboundChannelDetails extends Struct {2382 readonly sender: u32;2383 readonly state: CumulusPalletXcmpQueueInboundState;2384 readonly messageMetadata: Vec<ITuple<[u32, PolkadotParachainPrimitivesXcmpMessageFormat]>>;2385 }23862387 /** @name CumulusPalletXcmpQueueInboundState (287) */2388 export interface CumulusPalletXcmpQueueInboundState extends Enum {2389 readonly isOk: boolean;2390 readonly isSuspended: boolean;2391 readonly type: 'Ok' | 'Suspended';2392 }23932394 /** @name PolkadotParachainPrimitivesXcmpMessageFormat (290) */2395 export interface PolkadotParachainPrimitivesXcmpMessageFormat extends Enum {2396 readonly isConcatenatedVersionedXcm: boolean;2397 readonly isConcatenatedEncodedBlob: boolean;2398 readonly isSignals: boolean;2399 readonly type: 'ConcatenatedVersionedXcm' | 'ConcatenatedEncodedBlob' | 'Signals';2400 }24012402 /** @name CumulusPalletXcmpQueueOutboundChannelDetails (293) */2403 export interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct {2404 readonly recipient: u32;2405 readonly state: CumulusPalletXcmpQueueOutboundState;2406 readonly signalsExist: bool;2407 readonly firstIndex: u16;2408 readonly lastIndex: u16;2409 }24102411 /** @name CumulusPalletXcmpQueueOutboundState (294) */2412 export interface CumulusPalletXcmpQueueOutboundState extends Enum {2413 readonly isOk: boolean;2414 readonly isSuspended: boolean;2415 readonly type: 'Ok' | 'Suspended';2416 }24172418 /** @name CumulusPalletXcmpQueueQueueConfigData (296) */2419 export interface CumulusPalletXcmpQueueQueueConfigData extends Struct {2420 readonly suspendThreshold: u32;2421 readonly dropThreshold: u32;2422 readonly resumeThreshold: u32;2423 readonly thresholdWeight: u64;2424 readonly weightRestrictDecay: u64;2425 readonly xcmpMaxIndividualWeight: u64;2426 }24272428 /** @name CumulusPalletXcmpQueueError (298) */2429 export interface CumulusPalletXcmpQueueError extends Enum {2430 readonly isFailedToSend: boolean;2431 readonly isBadXcmOrigin: boolean;2432 readonly isBadXcm: boolean;2433 readonly isBadOverweightIndex: boolean;2434 readonly isWeightOverLimit: boolean;2435 readonly type: 'FailedToSend' | 'BadXcmOrigin' | 'BadXcm' | 'BadOverweightIndex' | 'WeightOverLimit';2436 }24372438 /** @name PalletXcmError (299) */2439 export interface PalletXcmError extends Enum {2440 readonly isUnreachable: boolean;2441 readonly isSendFailure: boolean;2442 readonly isFiltered: boolean;2443 readonly isUnweighableMessage: boolean;2444 readonly isDestinationNotInvertible: boolean;2445 readonly isEmpty: boolean;2446 readonly isCannotReanchor: boolean;2447 readonly isTooManyAssets: boolean;2448 readonly isInvalidOrigin: boolean;2449 readonly isBadVersion: boolean;2450 readonly isBadLocation: boolean;2451 readonly isNoSubscription: boolean;2452 readonly isAlreadySubscribed: boolean;2453 readonly type: 'Unreachable' | 'SendFailure' | 'Filtered' | 'UnweighableMessage' | 'DestinationNotInvertible' | 'Empty' | 'CannotReanchor' | 'TooManyAssets' | 'InvalidOrigin' | 'BadVersion' | 'BadLocation' | 'NoSubscription' | 'AlreadySubscribed';2454 }24552456 /** @name CumulusPalletXcmError (300) */2457 export type CumulusPalletXcmError = Null;24582459 /** @name CumulusPalletDmpQueueConfigData (301) */2460 export interface CumulusPalletDmpQueueConfigData extends Struct {2461 readonly maxIndividual: u64;2462 }24632464 /** @name CumulusPalletDmpQueuePageIndexData (302) */2465 export interface CumulusPalletDmpQueuePageIndexData extends Struct {2466 readonly beginUsed: u32;2467 readonly endUsed: u32;2468 readonly overweightCount: u64;2469 }24702471 /** @name CumulusPalletDmpQueueError (305) */2472 export interface CumulusPalletDmpQueueError extends Enum {2473 readonly isUnknown: boolean;2474 readonly isOverLimit: boolean;2475 readonly type: 'Unknown' | 'OverLimit';2476 }24772478 /** @name PalletUniqueError (309) */2479 export interface PalletUniqueError extends Enum {2480 readonly isCollectionDecimalPointLimitExceeded: boolean;2481 readonly isConfirmUnsetSponsorFail: boolean;2482 readonly isEmptyArgument: boolean;2483 readonly type: 'CollectionDecimalPointLimitExceeded' | 'ConfirmUnsetSponsorFail' | 'EmptyArgument';2484 }24852486 /** @name UpDataStructsCollection (310) */2487 export interface UpDataStructsCollection extends Struct {2488 readonly owner: AccountId32;2489 readonly mode: UpDataStructsCollectionMode;2490 readonly access: UpDataStructsAccessMode;2491 readonly name: Vec<u16>;2492 readonly description: Vec<u16>;2493 readonly tokenPrefix: Bytes;2494 readonly mintMode: bool;2495 readonly schemaVersion: UpDataStructsSchemaVersion;2496 readonly sponsorship: UpDataStructsSponsorshipState;2497 readonly limits: UpDataStructsCollectionLimits;2498 readonly metaUpdatePermission: UpDataStructsMetaUpdatePermission;2499 }25002501 /** @name UpDataStructsSponsorshipState (311) */2502 export interface UpDataStructsSponsorshipState extends Enum {2503 readonly isDisabled: boolean;2504 readonly isUnconfirmed: boolean;2505 readonly asUnconfirmed: AccountId32;2506 readonly isConfirmed: boolean;2507 readonly asConfirmed: AccountId32;2508 readonly type: 'Disabled' | 'Unconfirmed' | 'Confirmed';2509 }25102511 /** @name UpDataStructsProperties (312) */2512 export interface UpDataStructsProperties extends Struct {2513 readonly map: UpDataStructsPropertiesMapBoundedVec;2514 readonly consumedSpace: u32;2515 readonly spaceLimit: u32;2516 }25172518 /** @name UpDataStructsPropertiesMapBoundedVec (313) */2519 export interface UpDataStructsPropertiesMapBoundedVec extends BTreeMap<Bytes, Bytes> {}25202521 /** @name UpDataStructsPropertiesMapPropertyPermission (318) */2522 export interface UpDataStructsPropertiesMapPropertyPermission extends BTreeMap<Bytes, UpDataStructsPropertyPermission> {}25232524 /** @name UpDataStructsCollectionField (324) */2525 export interface UpDataStructsCollectionField extends Enum {2526 readonly isConstOnChainSchema: boolean;2527 readonly isOffchainSchema: boolean;2528 readonly type: 'ConstOnChainSchema' | 'OffchainSchema';2529 }25302531 /** @name UpDataStructsCollectionStats (327) */2532 export interface UpDataStructsCollectionStats extends Struct {2533 readonly created: u32;2534 readonly destroyed: u32;2535 readonly alive: u32;2536 }25372538 /** @name PhantomTypeUpDataStructsTokenData (328) */2539 export interface PhantomTypeUpDataStructsTokenData extends Vec<UpDataStructsTokenData> {}25402541 /** @name UpDataStructsTokenData (329) */2542 export interface UpDataStructsTokenData extends Struct {2543 readonly constData: Bytes;2544 readonly properties: Vec<UpDataStructsProperty>;2545 readonly owner: Option<PalletEvmAccountBasicCrossAccountIdRepr>;2546 }25472548 /** @name PhantomTypeUpDataStructsRpcCollection (332) */2549 export interface PhantomTypeUpDataStructsRpcCollection extends Vec<UpDataStructsRpcCollection> {}25502551 /** @name UpDataStructsRpcCollection (333) */2552 export interface UpDataStructsRpcCollection extends Struct {2553 readonly owner: AccountId32;2554 readonly mode: UpDataStructsCollectionMode;2555 readonly access: UpDataStructsAccessMode;2556 readonly name: Vec<u16>;2557 readonly description: Vec<u16>;2558 readonly tokenPrefix: Bytes;2559 readonly mintMode: bool;2560 readonly offchainSchema: Bytes;2561 readonly schemaVersion: UpDataStructsSchemaVersion;2562 readonly sponsorship: UpDataStructsSponsorshipState;2563 readonly limits: UpDataStructsCollectionLimits;2564 readonly constOnChainSchema: Bytes;2565 readonly metaUpdatePermission: UpDataStructsMetaUpdatePermission;2566 readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;2567 readonly properties: Vec<UpDataStructsProperty>;2568 }25692570 /** @name PhantomTypeUpDataStructsCollectionInfo (335) */2571 export interface PhantomTypeUpDataStructsCollectionInfo extends Vec<RmrkTypesCollectionInfo> {}25722573 /** @name RmrkTypesCollectionInfo (336) */2574 export interface RmrkTypesCollectionInfo extends Struct {2575 readonly issuer: AccountId32;2576 readonly metadata: Bytes;2577 readonly max: Option<u32>;2578 readonly symbol: Bytes;2579 readonly nftsCount: u32;2580 }25812582 /** @name PhantomTypeUpDataStructsNftInfo (340) */2583 export interface PhantomTypeUpDataStructsNftInfo extends Vec<RmrkTypesNftInfo> {}25842585 /** @name RmrkTypesNftInfo (341) */2586 export interface RmrkTypesNftInfo extends Struct {2587 readonly owner: RmrkTypesAccountIdOrCollectionNftTuple;2588 readonly royalty: Option<RmrkTypesRoyaltyInfo>;2589 readonly metadata: Bytes;2590 readonly equipped: bool;2591 readonly pending: bool;2592 }25932594 /** @name RmrkTypesAccountIdOrCollectionNftTuple (342) */2595 export interface RmrkTypesAccountIdOrCollectionNftTuple extends Enum {2596 readonly isAccountId: boolean;2597 readonly asAccountId: AccountId32;2598 readonly isCollectionAndNftTuple: boolean;2599 readonly asCollectionAndNftTuple: ITuple<[u32, u32]>;2600 readonly type: 'AccountId' | 'CollectionAndNftTuple';2601 }26022603 /** @name RmrkTypesRoyaltyInfo (344) */2604 export interface RmrkTypesRoyaltyInfo extends Struct {2605 readonly recipient: AccountId32;2606 readonly amount: Permill;2607 }26082609 /** @name PhantomTypeUpDataStructsResourceInfo (346) */2610 export interface PhantomTypeUpDataStructsResourceInfo extends Vec<RmrkTypesResourceInfo> {}26112612 /** @name RmrkTypesResourceInfo (347) */2613 export interface RmrkTypesResourceInfo extends Struct {2614 readonly id: Bytes;2615 readonly pending: bool;2616 readonly pendingRemoval: bool;2617 readonly parts: Option<Vec<u32>>;2618 readonly base: Option<u32>;2619 readonly src: Option<Bytes>;2620 readonly metadata: Option<Bytes>;2621 readonly slot: Option<u32>;2622 readonly license: Option<Bytes>;2623 readonly thumb: Option<Bytes>;2624 }26252626 /** @name PhantomTypeUpDataStructsPropertyInfo (353) */2627 export interface PhantomTypeUpDataStructsPropertyInfo extends Vec<RmrkTypesPropertyInfo> {}26282629 /** @name RmrkTypesPropertyInfo (354) */2630 export interface RmrkTypesPropertyInfo extends Struct {2631 readonly key: Bytes;2632 readonly value: Bytes;2633 }26342635 /** @name PhantomTypeUpDataStructsBaseInfo (358) */2636 export interface PhantomTypeUpDataStructsBaseInfo extends Vec<RmrkTypesBaseInfo> {}26372638 /** @name RmrkTypesBaseInfo (359) */2639 export interface RmrkTypesBaseInfo extends Struct {2640 readonly issuer: AccountId32;2641 readonly baseType: Bytes;2642 readonly symbol: Bytes;2643 }26442645 /** @name PhantomTypeUpDataStructsPartType (361) */2646 export interface PhantomTypeUpDataStructsPartType extends Vec<RmrkTypesPartType> {}26472648 /** @name RmrkTypesPartType (362) */2649 export interface RmrkTypesPartType extends Enum {2650 readonly isFixedPart: boolean;2651 readonly asFixedPart: RmrkTypesFixedPart;2652 readonly isSlotPart: boolean;2653 readonly asSlotPart: RmrkTypesSlotPart;2654 readonly type: 'FixedPart' | 'SlotPart';2655 }26562657 /** @name RmrkTypesFixedPart (364) */2658 export interface RmrkTypesFixedPart extends Struct {2659 readonly id: u32;2660 readonly z: u32;2661 readonly src: Bytes;2662 }26632664 /** @name RmrkTypesSlotPart (365) */2665 export interface RmrkTypesSlotPart extends Struct {2666 readonly id: u32;2667 readonly equippable: RmrkTypesEquippableList;2668 readonly src: Bytes;2669 readonly z: u32;2670 }26712672 /** @name RmrkTypesEquippableList (366) */2673 export interface RmrkTypesEquippableList extends Enum {2674 readonly isAll: boolean;2675 readonly isEmpty: boolean;2676 readonly isCustom: boolean;2677 readonly asCustom: Vec<u32>;2678 readonly type: 'All' | 'Empty' | 'Custom';2679 }26802681 /** @name PhantomTypeUpDataStructsTheme (368) */2682 export interface PhantomTypeUpDataStructsTheme extends Vec<RmrkTypesTheme> {}26832684 /** @name RmrkTypesTheme (369) */2685 export interface RmrkTypesTheme extends Struct {2686 readonly name: Bytes;2687 readonly properties: Vec<RmrkTypesThemeProperty>;2688 readonly inherit: bool;2689 }26902691 /** @name RmrkTypesThemeProperty (371) */2692 export interface RmrkTypesThemeProperty extends Struct {2693 readonly key: Bytes;2694 readonly value: Bytes;2695 }26962697 /** @name PhantomTypeUpDataStructsNftChild (373) */2698 export interface PhantomTypeUpDataStructsNftChild extends Vec<RmrkTypesNftChild> {}26992700 /** @name RmrkTypesNftChild (374) */2701 export interface RmrkTypesNftChild extends Struct {2702 readonly collectionId: u32;2703 readonly nftId: u32;2704 }27052706 /** @name PalletCommonError (376) */2707 export interface PalletCommonError extends Enum {2708 readonly isCollectionNotFound: boolean;2709 readonly isMustBeTokenOwner: boolean;2710 readonly isNoPermission: boolean;2711 readonly isPublicMintingNotAllowed: boolean;2712 readonly isAddressNotInAllowlist: boolean;2713 readonly isCollectionNameLimitExceeded: boolean;2714 readonly isCollectionDescriptionLimitExceeded: boolean;2715 readonly isCollectionTokenPrefixLimitExceeded: boolean;2716 readonly isTotalCollectionsLimitExceeded: boolean;2717 readonly isTokenVariableDataLimitExceeded: boolean;2718 readonly isCollectionAdminCountExceeded: boolean;2719 readonly isCollectionLimitBoundsExceeded: boolean;2720 readonly isOwnerPermissionsCantBeReverted: boolean;2721 readonly isTransferNotAllowed: boolean;2722 readonly isAccountTokenLimitExceeded: boolean;2723 readonly isCollectionTokenLimitExceeded: boolean;2724 readonly isMetadataFlagFrozen: boolean;2725 readonly isTokenNotFound: boolean;2726 readonly isTokenValueTooLow: boolean;2727 readonly isApprovedValueTooLow: boolean;2728 readonly isCantApproveMoreThanOwned: boolean;2729 readonly isAddressIsZero: boolean;2730 readonly isUnsupportedOperation: boolean;2731 readonly isNotSufficientFounds: boolean;2732 readonly isNestingIsDisabled: boolean;2733 readonly isOnlyOwnerAllowedToNest: boolean;2734 readonly isSourceCollectionIsNotAllowedToNest: boolean;2735 readonly isCollectionFieldSizeExceeded: boolean;2736 readonly isNoSpaceForProperty: boolean;2737 readonly isPropertyLimitReached: boolean;2738 readonly isUnableToReadUnboundedKeys: boolean;2739 readonly isInvalidCharacterInPropertyKey: boolean;2740 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';2742 }27432744 /** @name PalletFungibleError (378) */2745 export interface PalletFungibleError extends Enum {2746 readonly isNotFungibleDataUsedToMintFungibleCollectionToken: boolean;2747 readonly isFungibleItemsHaveNoId: boolean;2748 readonly isFungibleItemsDontHaveData: boolean;2749 readonly isFungibleDisallowsNesting: boolean;2750 readonly isSettingPropertiesNotAllowed: boolean;2751 readonly type: 'NotFungibleDataUsedToMintFungibleCollectionToken' | 'FungibleItemsHaveNoId' | 'FungibleItemsDontHaveData' | 'FungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';2752 }27532754 /** @name PalletRefungibleItemData (379) */2755 export interface PalletRefungibleItemData extends Struct {2756 readonly constData: Bytes;2757 readonly variableData: Bytes;2758 }27592760 /** @name PalletRefungibleError (383) */2761 export interface PalletRefungibleError extends Enum {2762 readonly isNotRefungibleDataUsedToMintFungibleCollectionToken: boolean;2763 readonly isWrongRefungiblePieces: boolean;2764 readonly isRefungibleDisallowsNesting: boolean;2765 readonly isSettingPropertiesNotAllowed: boolean;2766 readonly type: 'NotRefungibleDataUsedToMintFungibleCollectionToken' | 'WrongRefungiblePieces' | 'RefungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';2767 }27682769 /** @name PalletNonfungibleItemData (384) */2770 export interface PalletNonfungibleItemData extends Struct {2771 readonly constData: Bytes;2772 readonly variableData: Bytes;2773 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;2774 }27752776 /** @name PalletNonfungibleError (385) */2777 export interface PalletNonfungibleError extends Enum {2778 readonly isNotNonfungibleDataUsedToMintFungibleCollectionToken: boolean;2779 readonly isNonfungibleItemsHaveNoAmount: boolean;2780 readonly type: 'NotNonfungibleDataUsedToMintFungibleCollectionToken' | 'NonfungibleItemsHaveNoAmount';2781 }27822783 /** @name PalletStructureError (386) */2784 export interface PalletStructureError extends Enum {2785 readonly isOuroborosDetected: boolean;2786 readonly isDepthLimit: boolean;2787 readonly isTokenNotFound: boolean;2788 readonly type: 'OuroborosDetected' | 'DepthLimit' | 'TokenNotFound';2789 }27902791 /** @name PalletEvmError (389) */2792 export interface PalletEvmError extends Enum {2793 readonly isBalanceLow: boolean;2794 readonly isFeeOverflow: boolean;2795 readonly isPaymentOverflow: boolean;2796 readonly isWithdrawFailed: boolean;2797 readonly isGasPriceTooLow: boolean;2798 readonly isInvalidNonce: boolean;2799 readonly type: 'BalanceLow' | 'FeeOverflow' | 'PaymentOverflow' | 'WithdrawFailed' | 'GasPriceTooLow' | 'InvalidNonce';2800 }28012802 /** @name FpRpcTransactionStatus (392) */2803 export interface FpRpcTransactionStatus extends Struct {2804 readonly transactionHash: H256;2805 readonly transactionIndex: u32;2806 readonly from: H160;2807 readonly to: Option<H160>;2808 readonly contractAddress: Option<H160>;2809 readonly logs: Vec<EthereumLog>;2810 readonly logsBloom: EthbloomBloom;2811 }28122813 /** @name EthbloomBloom (394) */2814 export interface EthbloomBloom extends U8aFixed {}28152816 /** @name EthereumReceiptReceiptV3 (396) */2817 export interface EthereumReceiptReceiptV3 extends Enum {2818 readonly isLegacy: boolean;2819 readonly asLegacy: EthereumReceiptEip658ReceiptData;2820 readonly isEip2930: boolean;2821 readonly asEip2930: EthereumReceiptEip658ReceiptData;2822 readonly isEip1559: boolean;2823 readonly asEip1559: EthereumReceiptEip658ReceiptData;2824 readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';2825 }28262827 /** @name EthereumReceiptEip658ReceiptData (397) */2828 export interface EthereumReceiptEip658ReceiptData extends Struct {2829 readonly statusCode: u8;2830 readonly usedGas: U256;2831 readonly logsBloom: EthbloomBloom;2832 readonly logs: Vec<EthereumLog>;2833 }28342835 /** @name EthereumBlock (398) */2836 export interface EthereumBlock extends Struct {2837 readonly header: EthereumHeader;2838 readonly transactions: Vec<EthereumTransactionTransactionV2>;2839 readonly ommers: Vec<EthereumHeader>;2840 }28412842 /** @name EthereumHeader (399) */2843 export interface EthereumHeader extends Struct {2844 readonly parentHash: H256;2845 readonly ommersHash: H256;2846 readonly beneficiary: H160;2847 readonly stateRoot: H256;2848 readonly transactionsRoot: H256;2849 readonly receiptsRoot: H256;2850 readonly logsBloom: EthbloomBloom;2851 readonly difficulty: U256;2852 readonly number: U256;2853 readonly gasLimit: U256;2854 readonly gasUsed: U256;2855 readonly timestamp: u64;2856 readonly extraData: Bytes;2857 readonly mixHash: H256;2858 readonly nonce: EthereumTypesHashH64;2859 }28602861 /** @name EthereumTypesHashH64 (400) */2862 export interface EthereumTypesHashH64 extends U8aFixed {}28632864 /** @name PalletEthereumError (405) */2865 export interface PalletEthereumError extends Enum {2866 readonly isInvalidSignature: boolean;2867 readonly isPreLogExists: boolean;2868 readonly type: 'InvalidSignature' | 'PreLogExists';2869 }28702871 /** @name PalletEvmCoderSubstrateError (406) */2872 export interface PalletEvmCoderSubstrateError extends Enum {2873 readonly isOutOfGas: boolean;2874 readonly isOutOfFund: boolean;2875 readonly type: 'OutOfGas' | 'OutOfFund';2876 }28772878 /** @name PalletEvmContractHelpersSponsoringModeT (407) */2879 export interface PalletEvmContractHelpersSponsoringModeT extends Enum {2880 readonly isDisabled: boolean;2881 readonly isAllowlisted: boolean;2882 readonly isGenerous: boolean;2883 readonly type: 'Disabled' | 'Allowlisted' | 'Generous';2884 }28852886 /** @name PalletEvmContractHelpersError (409) */2887 export interface PalletEvmContractHelpersError extends Enum {2888 readonly isNoPermission: boolean;2889 readonly type: 'NoPermission';2890 }28912892 /** @name PalletEvmMigrationError (410) */2893 export interface PalletEvmMigrationError extends Enum {2894 readonly isAccountNotEmpty: boolean;2895 readonly isAccountIsNotMigrating: boolean;2896 readonly type: 'AccountNotEmpty' | 'AccountIsNotMigrating';2897 }28982899 /** @name SpRuntimeMultiSignature (412) */2900 export interface SpRuntimeMultiSignature extends Enum {2901 readonly isEd25519: boolean;2902 readonly asEd25519: SpCoreEd25519Signature;2903 readonly isSr25519: boolean;2904 readonly asSr25519: SpCoreSr25519Signature;2905 readonly isEcdsa: boolean;2906 readonly asEcdsa: SpCoreEcdsaSignature;2907 readonly type: 'Ed25519' | 'Sr25519' | 'Ecdsa';2908 }29092910 /** @name SpCoreEd25519Signature (413) */2911 export interface SpCoreEd25519Signature extends U8aFixed {}29122913 /** @name SpCoreSr25519Signature (415) */2914 export interface SpCoreSr25519Signature extends U8aFixed {}29152916 /** @name SpCoreEcdsaSignature (416) */2917 export interface SpCoreEcdsaSignature extends U8aFixed {}29182919 /** @name FrameSystemExtensionsCheckSpecVersion (419) */2920 export type FrameSystemExtensionsCheckSpecVersion = Null;29212922 /** @name FrameSystemExtensionsCheckGenesis (420) */2923 export type FrameSystemExtensionsCheckGenesis = Null;29242925 /** @name FrameSystemExtensionsCheckNonce (423) */2926 export interface FrameSystemExtensionsCheckNonce extends Compact<u32> {}29272928 /** @name FrameSystemExtensionsCheckWeight (424) */2929 export type FrameSystemExtensionsCheckWeight = Null;29302931 /** @name PalletTemplateTransactionPaymentChargeTransactionPayment (425) */2932 export interface PalletTemplateTransactionPaymentChargeTransactionPayment extends Compact<u128> {}29332934 /** @name OpalRuntimeRuntime (426) */2935 export type OpalRuntimeRuntime = Null;29362937 /** @name PalletEthereumFakeTransactionFinalizer (427) */2938 export type PalletEthereumFakeTransactionFinalizer = Null;29392940} // declare module1// Auto-generated via `yarn polkadot-types-from-defs`, do not edit2/* eslint-disable */34declare module '@polkadot/types/lookup' {5 import type { BTreeMap, BTreeSet, Bytes, Compact, Enum, Null, Option, Result, Struct, Text, U256, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';6 import type { ITuple } from '@polkadot/types-codec/types';7 import type { AccountId32, Call, H160, H256, MultiAddress, Perbill, Permill } from '@polkadot/types/interfaces/runtime';8 import type { Event } from '@polkadot/types/interfaces/system';910 /** @name PolkadotPrimitivesV2PersistedValidationData (2) */11 export interface PolkadotPrimitivesV2PersistedValidationData extends Struct {12 readonly parentHead: Bytes;13 readonly relayParentNumber: u32;14 readonly relayParentStorageRoot: H256;15 readonly maxPovSize: u32;16 }1718 /** @name PolkadotPrimitivesV2UpgradeRestriction (9) */19 export interface PolkadotPrimitivesV2UpgradeRestriction extends Enum {20 readonly isPresent: boolean;21 readonly type: 'Present';22 }2324 /** @name SpTrieStorageProof (10) */25 export interface SpTrieStorageProof extends Struct {26 readonly trieNodes: BTreeSet<Bytes>;27 }2829 /** @name CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot (13) */30 export interface CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot extends Struct {31 readonly dmqMqcHead: H256;32 readonly relayDispatchQueueSize: ITuple<[u32, u32]>;33 readonly ingressChannels: Vec<ITuple<[u32, PolkadotPrimitivesV2AbridgedHrmpChannel]>>;34 readonly egressChannels: Vec<ITuple<[u32, PolkadotPrimitivesV2AbridgedHrmpChannel]>>;35 }3637 /** @name PolkadotPrimitivesV2AbridgedHrmpChannel (18) */38 export interface PolkadotPrimitivesV2AbridgedHrmpChannel extends Struct {39 readonly maxCapacity: u32;40 readonly maxTotalSize: u32;41 readonly maxMessageSize: u32;42 readonly msgCount: u32;43 readonly totalSize: u32;44 readonly mqcHead: Option<H256>;45 }4647 /** @name PolkadotPrimitivesV2AbridgedHostConfiguration (20) */48 export interface PolkadotPrimitivesV2AbridgedHostConfiguration extends Struct {49 readonly maxCodeSize: u32;50 readonly maxHeadDataSize: u32;51 readonly maxUpwardQueueCount: u32;52 readonly maxUpwardQueueSize: u32;53 readonly maxUpwardMessageSize: u32;54 readonly maxUpwardMessageNumPerCandidate: u32;55 readonly hrmpMaxMessageNumPerCandidate: u32;56 readonly validationUpgradeCooldown: u32;57 readonly validationUpgradeDelay: u32;58 }5960 /** @name PolkadotCorePrimitivesOutboundHrmpMessage (26) */61 export interface PolkadotCorePrimitivesOutboundHrmpMessage extends Struct {62 readonly recipient: u32;63 readonly data: Bytes;64 }6566 /** @name CumulusPalletParachainSystemCall (28) */67 export interface CumulusPalletParachainSystemCall extends Enum {68 readonly isSetValidationData: boolean;69 readonly asSetValidationData: {70 readonly data: CumulusPrimitivesParachainInherentParachainInherentData;71 } & Struct;72 readonly isSudoSendUpwardMessage: boolean;73 readonly asSudoSendUpwardMessage: {74 readonly message: Bytes;75 } & Struct;76 readonly isAuthorizeUpgrade: boolean;77 readonly asAuthorizeUpgrade: {78 readonly codeHash: H256;79 } & Struct;80 readonly isEnactAuthorizedUpgrade: boolean;81 readonly asEnactAuthorizedUpgrade: {82 readonly code: Bytes;83 } & Struct;84 readonly type: 'SetValidationData' | 'SudoSendUpwardMessage' | 'AuthorizeUpgrade' | 'EnactAuthorizedUpgrade';85 }8687 /** @name CumulusPrimitivesParachainInherentParachainInherentData (29) */88 export interface CumulusPrimitivesParachainInherentParachainInherentData extends Struct {89 readonly validationData: PolkadotPrimitivesV2PersistedValidationData;90 readonly relayChainState: SpTrieStorageProof;91 readonly downwardMessages: Vec<PolkadotCorePrimitivesInboundDownwardMessage>;92 readonly horizontalMessages: BTreeMap<u32, Vec<PolkadotCorePrimitivesInboundHrmpMessage>>;93 }9495 /** @name PolkadotCorePrimitivesInboundDownwardMessage (31) */96 export interface PolkadotCorePrimitivesInboundDownwardMessage extends Struct {97 readonly sentAt: u32;98 readonly msg: Bytes;99 }100101 /** @name PolkadotCorePrimitivesInboundHrmpMessage (34) */102 export interface PolkadotCorePrimitivesInboundHrmpMessage extends Struct {103 readonly sentAt: u32;104 readonly data: Bytes;105 }106107 /** @name CumulusPalletParachainSystemEvent (37) */108 export interface CumulusPalletParachainSystemEvent extends Enum {109 readonly isValidationFunctionStored: boolean;110 readonly isValidationFunctionApplied: boolean;111 readonly asValidationFunctionApplied: u32;112 readonly isValidationFunctionDiscarded: boolean;113 readonly isUpgradeAuthorized: boolean;114 readonly asUpgradeAuthorized: H256;115 readonly isDownwardMessagesReceived: boolean;116 readonly asDownwardMessagesReceived: u32;117 readonly isDownwardMessagesProcessed: boolean;118 readonly asDownwardMessagesProcessed: ITuple<[u64, H256]>;119 readonly type: 'ValidationFunctionStored' | 'ValidationFunctionApplied' | 'ValidationFunctionDiscarded' | 'UpgradeAuthorized' | 'DownwardMessagesReceived' | 'DownwardMessagesProcessed';120 }121122 /** @name CumulusPalletParachainSystemError (38) */123 export interface CumulusPalletParachainSystemError extends Enum {124 readonly isOverlappingUpgrades: boolean;125 readonly isProhibitedByPolkadot: boolean;126 readonly isTooBig: boolean;127 readonly isValidationDataNotAvailable: boolean;128 readonly isHostConfigurationNotAvailable: boolean;129 readonly isNotScheduled: boolean;130 readonly isNothingAuthorized: boolean;131 readonly isUnauthorized: boolean;132 readonly type: 'OverlappingUpgrades' | 'ProhibitedByPolkadot' | 'TooBig' | 'ValidationDataNotAvailable' | 'HostConfigurationNotAvailable' | 'NotScheduled' | 'NothingAuthorized' | 'Unauthorized';133 }134135 /** @name PalletBalancesAccountData (41) */136 export interface PalletBalancesAccountData extends Struct {137 readonly free: u128;138 readonly reserved: u128;139 readonly miscFrozen: u128;140 readonly feeFrozen: u128;141 }142143 /** @name PalletBalancesBalanceLock (43) */144 export interface PalletBalancesBalanceLock extends Struct {145 readonly id: U8aFixed;146 readonly amount: u128;147 readonly reasons: PalletBalancesReasons;148 }149150 /** @name PalletBalancesReasons (45) */151 export interface PalletBalancesReasons extends Enum {152 readonly isFee: boolean;153 readonly isMisc: boolean;154 readonly isAll: boolean;155 readonly type: 'Fee' | 'Misc' | 'All';156 }157158 /** @name PalletBalancesReserveData (48) */159 export interface PalletBalancesReserveData extends Struct {160 readonly id: U8aFixed;161 readonly amount: u128;162 }163164 /** @name PalletBalancesReleases (50) */165 export interface PalletBalancesReleases extends Enum {166 readonly isV100: boolean;167 readonly isV200: boolean;168 readonly type: 'V100' | 'V200';169 }170171 /** @name PalletBalancesCall (51) */172 export interface PalletBalancesCall extends Enum {173 readonly isTransfer: boolean;174 readonly asTransfer: {175 readonly dest: MultiAddress;176 readonly value: Compact<u128>;177 } & Struct;178 readonly isSetBalance: boolean;179 readonly asSetBalance: {180 readonly who: MultiAddress;181 readonly newFree: Compact<u128>;182 readonly newReserved: Compact<u128>;183 } & Struct;184 readonly isForceTransfer: boolean;185 readonly asForceTransfer: {186 readonly source: MultiAddress;187 readonly dest: MultiAddress;188 readonly value: Compact<u128>;189 } & Struct;190 readonly isTransferKeepAlive: boolean;191 readonly asTransferKeepAlive: {192 readonly dest: MultiAddress;193 readonly value: Compact<u128>;194 } & Struct;195 readonly isTransferAll: boolean;196 readonly asTransferAll: {197 readonly dest: MultiAddress;198 readonly keepAlive: bool;199 } & Struct;200 readonly isForceUnreserve: boolean;201 readonly asForceUnreserve: {202 readonly who: MultiAddress;203 readonly amount: u128;204 } & Struct;205 readonly type: 'Transfer' | 'SetBalance' | 'ForceTransfer' | 'TransferKeepAlive' | 'TransferAll' | 'ForceUnreserve';206 }207208 /** @name PalletBalancesEvent (57) */209 export interface PalletBalancesEvent extends Enum {210 readonly isEndowed: boolean;211 readonly asEndowed: {212 readonly account: AccountId32;213 readonly freeBalance: u128;214 } & Struct;215 readonly isDustLost: boolean;216 readonly asDustLost: {217 readonly account: AccountId32;218 readonly amount: u128;219 } & Struct;220 readonly isTransfer: boolean;221 readonly asTransfer: {222 readonly from: AccountId32;223 readonly to: AccountId32;224 readonly amount: u128;225 } & Struct;226 readonly isBalanceSet: boolean;227 readonly asBalanceSet: {228 readonly who: AccountId32;229 readonly free: u128;230 readonly reserved: u128;231 } & Struct;232 readonly isReserved: boolean;233 readonly asReserved: {234 readonly who: AccountId32;235 readonly amount: u128;236 } & Struct;237 readonly isUnreserved: boolean;238 readonly asUnreserved: {239 readonly who: AccountId32;240 readonly amount: u128;241 } & Struct;242 readonly isReserveRepatriated: boolean;243 readonly asReserveRepatriated: {244 readonly from: AccountId32;245 readonly to: AccountId32;246 readonly amount: u128;247 readonly destinationStatus: FrameSupportTokensMiscBalanceStatus;248 } & Struct;249 readonly isDeposit: boolean;250 readonly asDeposit: {251 readonly who: AccountId32;252 readonly amount: u128;253 } & Struct;254 readonly isWithdraw: boolean;255 readonly asWithdraw: {256 readonly who: AccountId32;257 readonly amount: u128;258 } & Struct;259 readonly isSlashed: boolean;260 readonly asSlashed: {261 readonly who: AccountId32;262 readonly amount: u128;263 } & Struct;264 readonly type: 'Endowed' | 'DustLost' | 'Transfer' | 'BalanceSet' | 'Reserved' | 'Unreserved' | 'ReserveRepatriated' | 'Deposit' | 'Withdraw' | 'Slashed';265 }266267 /** @name FrameSupportTokensMiscBalanceStatus (58) */268 export interface FrameSupportTokensMiscBalanceStatus extends Enum {269 readonly isFree: boolean;270 readonly isReserved: boolean;271 readonly type: 'Free' | 'Reserved';272 }273274 /** @name PalletBalancesError (59) */275 export interface PalletBalancesError extends Enum {276 readonly isVestingBalance: boolean;277 readonly isLiquidityRestrictions: boolean;278 readonly isInsufficientBalance: boolean;279 readonly isExistentialDeposit: boolean;280 readonly isKeepAlive: boolean;281 readonly isExistingVestingSchedule: boolean;282 readonly isDeadAccount: boolean;283 readonly isTooManyReserves: boolean;284 readonly type: 'VestingBalance' | 'LiquidityRestrictions' | 'InsufficientBalance' | 'ExistentialDeposit' | 'KeepAlive' | 'ExistingVestingSchedule' | 'DeadAccount' | 'TooManyReserves';285 }286287 /** @name PalletTimestampCall (62) */288 export interface PalletTimestampCall extends Enum {289 readonly isSet: boolean;290 readonly asSet: {291 readonly now: Compact<u64>;292 } & Struct;293 readonly type: 'Set';294 }295296 /** @name PalletTransactionPaymentReleases (65) */297 export interface PalletTransactionPaymentReleases extends Enum {298 readonly isV1Ancient: boolean;299 readonly isV2: boolean;300 readonly type: 'V1Ancient' | 'V2';301 }302303 /** @name FrameSupportWeightsWeightToFeeCoefficient (67) */304 export interface FrameSupportWeightsWeightToFeeCoefficient extends Struct {305 readonly coeffInteger: u128;306 readonly coeffFrac: Perbill;307 readonly negative: bool;308 readonly degree: u8;309 }310311 /** @name PalletTreasuryProposal (69) */312 export interface PalletTreasuryProposal extends Struct {313 readonly proposer: AccountId32;314 readonly value: u128;315 readonly beneficiary: AccountId32;316 readonly bond: u128;317 }318319 /** @name PalletTreasuryCall (72) */320 export interface PalletTreasuryCall extends Enum {321 readonly isProposeSpend: boolean;322 readonly asProposeSpend: {323 readonly value: Compact<u128>;324 readonly beneficiary: MultiAddress;325 } & Struct;326 readonly isRejectProposal: boolean;327 readonly asRejectProposal: {328 readonly proposalId: Compact<u32>;329 } & Struct;330 readonly isApproveProposal: boolean;331 readonly asApproveProposal: {332 readonly proposalId: Compact<u32>;333 } & Struct;334 readonly type: 'ProposeSpend' | 'RejectProposal' | 'ApproveProposal';335 }336337 /** @name PalletTreasuryEvent (74) */338 export interface PalletTreasuryEvent extends Enum {339 readonly isProposed: boolean;340 readonly asProposed: {341 readonly proposalIndex: u32;342 } & Struct;343 readonly isSpending: boolean;344 readonly asSpending: {345 readonly budgetRemaining: u128;346 } & Struct;347 readonly isAwarded: boolean;348 readonly asAwarded: {349 readonly proposalIndex: u32;350 readonly award: u128;351 readonly account: AccountId32;352 } & Struct;353 readonly isRejected: boolean;354 readonly asRejected: {355 readonly proposalIndex: u32;356 readonly slashed: u128;357 } & Struct;358 readonly isBurnt: boolean;359 readonly asBurnt: {360 readonly burntFunds: u128;361 } & Struct;362 readonly isRollover: boolean;363 readonly asRollover: {364 readonly rolloverBalance: u128;365 } & Struct;366 readonly isDeposit: boolean;367 readonly asDeposit: {368 readonly value: u128;369 } & Struct;370 readonly type: 'Proposed' | 'Spending' | 'Awarded' | 'Rejected' | 'Burnt' | 'Rollover' | 'Deposit';371 }372373 /** @name FrameSupportPalletId (77) */374 export interface FrameSupportPalletId extends U8aFixed {}375376 /** @name PalletTreasuryError (78) */377 export interface PalletTreasuryError extends Enum {378 readonly isInsufficientProposersBalance: boolean;379 readonly isInvalidIndex: boolean;380 readonly isTooManyApprovals: boolean;381 readonly type: 'InsufficientProposersBalance' | 'InvalidIndex' | 'TooManyApprovals';382 }383384 /** @name PalletSudoCall (79) */385 export interface PalletSudoCall extends Enum {386 readonly isSudo: boolean;387 readonly asSudo: {388 readonly call: Call;389 } & Struct;390 readonly isSudoUncheckedWeight: boolean;391 readonly asSudoUncheckedWeight: {392 readonly call: Call;393 readonly weight: u64;394 } & Struct;395 readonly isSetKey: boolean;396 readonly asSetKey: {397 readonly new_: MultiAddress;398 } & Struct;399 readonly isSudoAs: boolean;400 readonly asSudoAs: {401 readonly who: MultiAddress;402 readonly call: Call;403 } & Struct;404 readonly type: 'Sudo' | 'SudoUncheckedWeight' | 'SetKey' | 'SudoAs';405 }406407 /** @name FrameSystemCall (81) */408 export interface FrameSystemCall extends Enum {409 readonly isFillBlock: boolean;410 readonly asFillBlock: {411 readonly ratio: Perbill;412 } & Struct;413 readonly isRemark: boolean;414 readonly asRemark: {415 readonly remark: Bytes;416 } & Struct;417 readonly isSetHeapPages: boolean;418 readonly asSetHeapPages: {419 readonly pages: u64;420 } & Struct;421 readonly isSetCode: boolean;422 readonly asSetCode: {423 readonly code: Bytes;424 } & Struct;425 readonly isSetCodeWithoutChecks: boolean;426 readonly asSetCodeWithoutChecks: {427 readonly code: Bytes;428 } & Struct;429 readonly isSetStorage: boolean;430 readonly asSetStorage: {431 readonly items: Vec<ITuple<[Bytes, Bytes]>>;432 } & Struct;433 readonly isKillStorage: boolean;434 readonly asKillStorage: {435 readonly keys_: Vec<Bytes>;436 } & Struct;437 readonly isKillPrefix: boolean;438 readonly asKillPrefix: {439 readonly prefix: Bytes;440 readonly subkeys: u32;441 } & Struct;442 readonly isRemarkWithEvent: boolean;443 readonly asRemarkWithEvent: {444 readonly remark: Bytes;445 } & Struct;446 readonly type: 'FillBlock' | 'Remark' | 'SetHeapPages' | 'SetCode' | 'SetCodeWithoutChecks' | 'SetStorage' | 'KillStorage' | 'KillPrefix' | 'RemarkWithEvent';447 }448449 /** @name OrmlVestingModuleCall (84) */450 export interface OrmlVestingModuleCall extends Enum {451 readonly isClaim: boolean;452 readonly isVestedTransfer: boolean;453 readonly asVestedTransfer: {454 readonly dest: MultiAddress;455 readonly schedule: OrmlVestingVestingSchedule;456 } & Struct;457 readonly isUpdateVestingSchedules: boolean;458 readonly asUpdateVestingSchedules: {459 readonly who: MultiAddress;460 readonly vestingSchedules: Vec<OrmlVestingVestingSchedule>;461 } & Struct;462 readonly isClaimFor: boolean;463 readonly asClaimFor: {464 readonly dest: MultiAddress;465 } & Struct;466 readonly type: 'Claim' | 'VestedTransfer' | 'UpdateVestingSchedules' | 'ClaimFor';467 }468469 /** @name OrmlVestingVestingSchedule (85) */470 export interface OrmlVestingVestingSchedule extends Struct {471 readonly start: u32;472 readonly period: u32;473 readonly periodCount: u32;474 readonly perPeriod: Compact<u128>;475 }476477 /** @name CumulusPalletXcmpQueueCall (87) */478 export interface CumulusPalletXcmpQueueCall extends Enum {479 readonly isServiceOverweight: boolean;480 readonly asServiceOverweight: {481 readonly index: u64;482 readonly weightLimit: u64;483 } & Struct;484 readonly isSuspendXcmExecution: boolean;485 readonly isResumeXcmExecution: boolean;486 readonly isUpdateSuspendThreshold: boolean;487 readonly asUpdateSuspendThreshold: {488 readonly new_: u32;489 } & Struct;490 readonly isUpdateDropThreshold: boolean;491 readonly asUpdateDropThreshold: {492 readonly new_: u32;493 } & Struct;494 readonly isUpdateResumeThreshold: boolean;495 readonly asUpdateResumeThreshold: {496 readonly new_: u32;497 } & Struct;498 readonly isUpdateThresholdWeight: boolean;499 readonly asUpdateThresholdWeight: {500 readonly new_: u64;501 } & Struct;502 readonly isUpdateWeightRestrictDecay: boolean;503 readonly asUpdateWeightRestrictDecay: {504 readonly new_: u64;505 } & Struct;506 readonly isUpdateXcmpMaxIndividualWeight: boolean;507 readonly asUpdateXcmpMaxIndividualWeight: {508 readonly new_: u64;509 } & Struct;510 readonly type: 'ServiceOverweight' | 'SuspendXcmExecution' | 'ResumeXcmExecution' | 'UpdateSuspendThreshold' | 'UpdateDropThreshold' | 'UpdateResumeThreshold' | 'UpdateThresholdWeight' | 'UpdateWeightRestrictDecay' | 'UpdateXcmpMaxIndividualWeight';511 }512513 /** @name PalletXcmCall (88) */514 export interface PalletXcmCall extends Enum {515 readonly isSend: boolean;516 readonly asSend: {517 readonly dest: XcmVersionedMultiLocation;518 readonly message: XcmVersionedXcm;519 } & Struct;520 readonly isTeleportAssets: boolean;521 readonly asTeleportAssets: {522 readonly dest: XcmVersionedMultiLocation;523 readonly beneficiary: XcmVersionedMultiLocation;524 readonly assets: XcmVersionedMultiAssets;525 readonly feeAssetItem: u32;526 } & Struct;527 readonly isReserveTransferAssets: boolean;528 readonly asReserveTransferAssets: {529 readonly dest: XcmVersionedMultiLocation;530 readonly beneficiary: XcmVersionedMultiLocation;531 readonly assets: XcmVersionedMultiAssets;532 readonly feeAssetItem: u32;533 } & Struct;534 readonly isExecute: boolean;535 readonly asExecute: {536 readonly message: XcmVersionedXcm;537 readonly maxWeight: u64;538 } & Struct;539 readonly isForceXcmVersion: boolean;540 readonly asForceXcmVersion: {541 readonly location: XcmV1MultiLocation;542 readonly xcmVersion: u32;543 } & Struct;544 readonly isForceDefaultXcmVersion: boolean;545 readonly asForceDefaultXcmVersion: {546 readonly maybeXcmVersion: Option<u32>;547 } & Struct;548 readonly isForceSubscribeVersionNotify: boolean;549 readonly asForceSubscribeVersionNotify: {550 readonly location: XcmVersionedMultiLocation;551 } & Struct;552 readonly isForceUnsubscribeVersionNotify: boolean;553 readonly asForceUnsubscribeVersionNotify: {554 readonly location: XcmVersionedMultiLocation;555 } & Struct;556 readonly isLimitedReserveTransferAssets: boolean;557 readonly asLimitedReserveTransferAssets: {558 readonly dest: XcmVersionedMultiLocation;559 readonly beneficiary: XcmVersionedMultiLocation;560 readonly assets: XcmVersionedMultiAssets;561 readonly feeAssetItem: u32;562 readonly weightLimit: XcmV2WeightLimit;563 } & Struct;564 readonly isLimitedTeleportAssets: boolean;565 readonly asLimitedTeleportAssets: {566 readonly dest: XcmVersionedMultiLocation;567 readonly beneficiary: XcmVersionedMultiLocation;568 readonly assets: XcmVersionedMultiAssets;569 readonly feeAssetItem: u32;570 readonly weightLimit: XcmV2WeightLimit;571 } & Struct;572 readonly type: 'Send' | 'TeleportAssets' | 'ReserveTransferAssets' | 'Execute' | 'ForceXcmVersion' | 'ForceDefaultXcmVersion' | 'ForceSubscribeVersionNotify' | 'ForceUnsubscribeVersionNotify' | 'LimitedReserveTransferAssets' | 'LimitedTeleportAssets';573 }574575 /** @name XcmVersionedMultiLocation (89) */576 export interface XcmVersionedMultiLocation extends Enum {577 readonly isV0: boolean;578 readonly asV0: XcmV0MultiLocation;579 readonly isV1: boolean;580 readonly asV1: XcmV1MultiLocation;581 readonly type: 'V0' | 'V1';582 }583584 /** @name XcmV0MultiLocation (90) */585 export interface XcmV0MultiLocation extends Enum {586 readonly isNull: boolean;587 readonly isX1: boolean;588 readonly asX1: XcmV0Junction;589 readonly isX2: boolean;590 readonly asX2: ITuple<[XcmV0Junction, XcmV0Junction]>;591 readonly isX3: boolean;592 readonly asX3: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction]>;593 readonly isX4: boolean;594 readonly asX4: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;595 readonly isX5: boolean;596 readonly asX5: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;597 readonly isX6: boolean;598 readonly asX6: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;599 readonly isX7: boolean;600 readonly asX7: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;601 readonly isX8: boolean;602 readonly asX8: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;603 readonly type: 'Null' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8';604 }605606 /** @name XcmV0Junction (91) */607 export interface XcmV0Junction extends Enum {608 readonly isParent: boolean;609 readonly isParachain: boolean;610 readonly asParachain: Compact<u32>;611 readonly isAccountId32: boolean;612 readonly asAccountId32: {613 readonly network: XcmV0JunctionNetworkId;614 readonly id: U8aFixed;615 } & Struct;616 readonly isAccountIndex64: boolean;617 readonly asAccountIndex64: {618 readonly network: XcmV0JunctionNetworkId;619 readonly index: Compact<u64>;620 } & Struct;621 readonly isAccountKey20: boolean;622 readonly asAccountKey20: {623 readonly network: XcmV0JunctionNetworkId;624 readonly key: U8aFixed;625 } & Struct;626 readonly isPalletInstance: boolean;627 readonly asPalletInstance: u8;628 readonly isGeneralIndex: boolean;629 readonly asGeneralIndex: Compact<u128>;630 readonly isGeneralKey: boolean;631 readonly asGeneralKey: Bytes;632 readonly isOnlyChild: boolean;633 readonly isPlurality: boolean;634 readonly asPlurality: {635 readonly id: XcmV0JunctionBodyId;636 readonly part: XcmV0JunctionBodyPart;637 } & Struct;638 readonly type: 'Parent' | 'Parachain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality';639 }640641 /** @name XcmV0JunctionNetworkId (92) */642 export interface XcmV0JunctionNetworkId extends Enum {643 readonly isAny: boolean;644 readonly isNamed: boolean;645 readonly asNamed: Bytes;646 readonly isPolkadot: boolean;647 readonly isKusama: boolean;648 readonly type: 'Any' | 'Named' | 'Polkadot' | 'Kusama';649 }650651 /** @name XcmV0JunctionBodyId (93) */652 export interface XcmV0JunctionBodyId extends Enum {653 readonly isUnit: boolean;654 readonly isNamed: boolean;655 readonly asNamed: Bytes;656 readonly isIndex: boolean;657 readonly asIndex: Compact<u32>;658 readonly isExecutive: boolean;659 readonly isTechnical: boolean;660 readonly isLegislative: boolean;661 readonly isJudicial: boolean;662 readonly type: 'Unit' | 'Named' | 'Index' | 'Executive' | 'Technical' | 'Legislative' | 'Judicial';663 }664665 /** @name XcmV0JunctionBodyPart (94) */666 export interface XcmV0JunctionBodyPart extends Enum {667 readonly isVoice: boolean;668 readonly isMembers: boolean;669 readonly asMembers: {670 readonly count: Compact<u32>;671 } & Struct;672 readonly isFraction: boolean;673 readonly asFraction: {674 readonly nom: Compact<u32>;675 readonly denom: Compact<u32>;676 } & Struct;677 readonly isAtLeastProportion: boolean;678 readonly asAtLeastProportion: {679 readonly nom: Compact<u32>;680 readonly denom: Compact<u32>;681 } & Struct;682 readonly isMoreThanProportion: boolean;683 readonly asMoreThanProportion: {684 readonly nom: Compact<u32>;685 readonly denom: Compact<u32>;686 } & Struct;687 readonly type: 'Voice' | 'Members' | 'Fraction' | 'AtLeastProportion' | 'MoreThanProportion';688 }689690 /** @name XcmV1MultiLocation (95) */691 export interface XcmV1MultiLocation extends Struct {692 readonly parents: u8;693 readonly interior: XcmV1MultilocationJunctions;694 }695696 /** @name XcmV1MultilocationJunctions (96) */697 export interface XcmV1MultilocationJunctions extends Enum {698 readonly isHere: boolean;699 readonly isX1: boolean;700 readonly asX1: XcmV1Junction;701 readonly isX2: boolean;702 readonly asX2: ITuple<[XcmV1Junction, XcmV1Junction]>;703 readonly isX3: boolean;704 readonly asX3: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction]>;705 readonly isX4: boolean;706 readonly asX4: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;707 readonly isX5: boolean;708 readonly asX5: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;709 readonly isX6: boolean;710 readonly asX6: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;711 readonly isX7: boolean;712 readonly asX7: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;713 readonly isX8: boolean;714 readonly asX8: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;715 readonly type: 'Here' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8';716 }717718 /** @name XcmV1Junction (97) */719 export interface XcmV1Junction extends Enum {720 readonly isParachain: boolean;721 readonly asParachain: Compact<u32>;722 readonly isAccountId32: boolean;723 readonly asAccountId32: {724 readonly network: XcmV0JunctionNetworkId;725 readonly id: U8aFixed;726 } & Struct;727 readonly isAccountIndex64: boolean;728 readonly asAccountIndex64: {729 readonly network: XcmV0JunctionNetworkId;730 readonly index: Compact<u64>;731 } & Struct;732 readonly isAccountKey20: boolean;733 readonly asAccountKey20: {734 readonly network: XcmV0JunctionNetworkId;735 readonly key: U8aFixed;736 } & Struct;737 readonly isPalletInstance: boolean;738 readonly asPalletInstance: u8;739 readonly isGeneralIndex: boolean;740 readonly asGeneralIndex: Compact<u128>;741 readonly isGeneralKey: boolean;742 readonly asGeneralKey: Bytes;743 readonly isOnlyChild: boolean;744 readonly isPlurality: boolean;745 readonly asPlurality: {746 readonly id: XcmV0JunctionBodyId;747 readonly part: XcmV0JunctionBodyPart;748 } & Struct;749 readonly type: 'Parachain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality';750 }751752 /** @name XcmVersionedXcm (98) */753 export interface XcmVersionedXcm extends Enum {754 readonly isV0: boolean;755 readonly asV0: XcmV0Xcm;756 readonly isV1: boolean;757 readonly asV1: XcmV1Xcm;758 readonly isV2: boolean;759 readonly asV2: XcmV2Xcm;760 readonly type: 'V0' | 'V1' | 'V2';761 }762763 /** @name XcmV0Xcm (99) */764 export interface XcmV0Xcm extends Enum {765 readonly isWithdrawAsset: boolean;766 readonly asWithdrawAsset: {767 readonly assets: Vec<XcmV0MultiAsset>;768 readonly effects: Vec<XcmV0Order>;769 } & Struct;770 readonly isReserveAssetDeposit: boolean;771 readonly asReserveAssetDeposit: {772 readonly assets: Vec<XcmV0MultiAsset>;773 readonly effects: Vec<XcmV0Order>;774 } & Struct;775 readonly isTeleportAsset: boolean;776 readonly asTeleportAsset: {777 readonly assets: Vec<XcmV0MultiAsset>;778 readonly effects: Vec<XcmV0Order>;779 } & Struct;780 readonly isQueryResponse: boolean;781 readonly asQueryResponse: {782 readonly queryId: Compact<u64>;783 readonly response: XcmV0Response;784 } & Struct;785 readonly isTransferAsset: boolean;786 readonly asTransferAsset: {787 readonly assets: Vec<XcmV0MultiAsset>;788 readonly dest: XcmV0MultiLocation;789 } & Struct;790 readonly isTransferReserveAsset: boolean;791 readonly asTransferReserveAsset: {792 readonly assets: Vec<XcmV0MultiAsset>;793 readonly dest: XcmV0MultiLocation;794 readonly effects: Vec<XcmV0Order>;795 } & Struct;796 readonly isTransact: boolean;797 readonly asTransact: {798 readonly originType: XcmV0OriginKind;799 readonly requireWeightAtMost: u64;800 readonly call: XcmDoubleEncoded;801 } & Struct;802 readonly isHrmpNewChannelOpenRequest: boolean;803 readonly asHrmpNewChannelOpenRequest: {804 readonly sender: Compact<u32>;805 readonly maxMessageSize: Compact<u32>;806 readonly maxCapacity: Compact<u32>;807 } & Struct;808 readonly isHrmpChannelAccepted: boolean;809 readonly asHrmpChannelAccepted: {810 readonly recipient: Compact<u32>;811 } & Struct;812 readonly isHrmpChannelClosing: boolean;813 readonly asHrmpChannelClosing: {814 readonly initiator: Compact<u32>;815 readonly sender: Compact<u32>;816 readonly recipient: Compact<u32>;817 } & Struct;818 readonly isRelayedFrom: boolean;819 readonly asRelayedFrom: {820 readonly who: XcmV0MultiLocation;821 readonly message: XcmV0Xcm;822 } & Struct;823 readonly type: 'WithdrawAsset' | 'ReserveAssetDeposit' | 'TeleportAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'RelayedFrom';824 }825826 /** @name XcmV0MultiAsset (101) */827 export interface XcmV0MultiAsset extends Enum {828 readonly isNone: boolean;829 readonly isAll: boolean;830 readonly isAllFungible: boolean;831 readonly isAllNonFungible: boolean;832 readonly isAllAbstractFungible: boolean;833 readonly asAllAbstractFungible: {834 readonly id: Bytes;835 } & Struct;836 readonly isAllAbstractNonFungible: boolean;837 readonly asAllAbstractNonFungible: {838 readonly class: Bytes;839 } & Struct;840 readonly isAllConcreteFungible: boolean;841 readonly asAllConcreteFungible: {842 readonly id: XcmV0MultiLocation;843 } & Struct;844 readonly isAllConcreteNonFungible: boolean;845 readonly asAllConcreteNonFungible: {846 readonly class: XcmV0MultiLocation;847 } & Struct;848 readonly isAbstractFungible: boolean;849 readonly asAbstractFungible: {850 readonly id: Bytes;851 readonly amount: Compact<u128>;852 } & Struct;853 readonly isAbstractNonFungible: boolean;854 readonly asAbstractNonFungible: {855 readonly class: Bytes;856 readonly instance: XcmV1MultiassetAssetInstance;857 } & Struct;858 readonly isConcreteFungible: boolean;859 readonly asConcreteFungible: {860 readonly id: XcmV0MultiLocation;861 readonly amount: Compact<u128>;862 } & Struct;863 readonly isConcreteNonFungible: boolean;864 readonly asConcreteNonFungible: {865 readonly class: XcmV0MultiLocation;866 readonly instance: XcmV1MultiassetAssetInstance;867 } & Struct;868 readonly type: 'None' | 'All' | 'AllFungible' | 'AllNonFungible' | 'AllAbstractFungible' | 'AllAbstractNonFungible' | 'AllConcreteFungible' | 'AllConcreteNonFungible' | 'AbstractFungible' | 'AbstractNonFungible' | 'ConcreteFungible' | 'ConcreteNonFungible';869 }870871 /** @name XcmV1MultiassetAssetInstance (102) */872 export interface XcmV1MultiassetAssetInstance extends Enum {873 readonly isUndefined: boolean;874 readonly isIndex: boolean;875 readonly asIndex: Compact<u128>;876 readonly isArray4: boolean;877 readonly asArray4: U8aFixed;878 readonly isArray8: boolean;879 readonly asArray8: U8aFixed;880 readonly isArray16: boolean;881 readonly asArray16: U8aFixed;882 readonly isArray32: boolean;883 readonly asArray32: U8aFixed;884 readonly isBlob: boolean;885 readonly asBlob: Bytes;886 readonly type: 'Undefined' | 'Index' | 'Array4' | 'Array8' | 'Array16' | 'Array32' | 'Blob';887 }888889 /** @name XcmV0Order (106) */890 export interface XcmV0Order extends Enum {891 readonly isNull: boolean;892 readonly isDepositAsset: boolean;893 readonly asDepositAsset: {894 readonly assets: Vec<XcmV0MultiAsset>;895 readonly dest: XcmV0MultiLocation;896 } & Struct;897 readonly isDepositReserveAsset: boolean;898 readonly asDepositReserveAsset: {899 readonly assets: Vec<XcmV0MultiAsset>;900 readonly dest: XcmV0MultiLocation;901 readonly effects: Vec<XcmV0Order>;902 } & Struct;903 readonly isExchangeAsset: boolean;904 readonly asExchangeAsset: {905 readonly give: Vec<XcmV0MultiAsset>;906 readonly receive: Vec<XcmV0MultiAsset>;907 } & Struct;908 readonly isInitiateReserveWithdraw: boolean;909 readonly asInitiateReserveWithdraw: {910 readonly assets: Vec<XcmV0MultiAsset>;911 readonly reserve: XcmV0MultiLocation;912 readonly effects: Vec<XcmV0Order>;913 } & Struct;914 readonly isInitiateTeleport: boolean;915 readonly asInitiateTeleport: {916 readonly assets: Vec<XcmV0MultiAsset>;917 readonly dest: XcmV0MultiLocation;918 readonly effects: Vec<XcmV0Order>;919 } & Struct;920 readonly isQueryHolding: boolean;921 readonly asQueryHolding: {922 readonly queryId: Compact<u64>;923 readonly dest: XcmV0MultiLocation;924 readonly assets: Vec<XcmV0MultiAsset>;925 } & Struct;926 readonly isBuyExecution: boolean;927 readonly asBuyExecution: {928 readonly fees: XcmV0MultiAsset;929 readonly weight: u64;930 readonly debt: u64;931 readonly haltOnError: bool;932 readonly xcm: Vec<XcmV0Xcm>;933 } & Struct;934 readonly type: 'Null' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution';935 }936937 /** @name XcmV0Response (108) */938 export interface XcmV0Response extends Enum {939 readonly isAssets: boolean;940 readonly asAssets: Vec<XcmV0MultiAsset>;941 readonly type: 'Assets';942 }943944 /** @name XcmV0OriginKind (109) */945 export interface XcmV0OriginKind extends Enum {946 readonly isNative: boolean;947 readonly isSovereignAccount: boolean;948 readonly isSuperuser: boolean;949 readonly isXcm: boolean;950 readonly type: 'Native' | 'SovereignAccount' | 'Superuser' | 'Xcm';951 }952953 /** @name XcmDoubleEncoded (110) */954 export interface XcmDoubleEncoded extends Struct {955 readonly encoded: Bytes;956 }957958 /** @name XcmV1Xcm (111) */959 export interface XcmV1Xcm extends Enum {960 readonly isWithdrawAsset: boolean;961 readonly asWithdrawAsset: {962 readonly assets: XcmV1MultiassetMultiAssets;963 readonly effects: Vec<XcmV1Order>;964 } & Struct;965 readonly isReserveAssetDeposited: boolean;966 readonly asReserveAssetDeposited: {967 readonly assets: XcmV1MultiassetMultiAssets;968 readonly effects: Vec<XcmV1Order>;969 } & Struct;970 readonly isReceiveTeleportedAsset: boolean;971 readonly asReceiveTeleportedAsset: {972 readonly assets: XcmV1MultiassetMultiAssets;973 readonly effects: Vec<XcmV1Order>;974 } & Struct;975 readonly isQueryResponse: boolean;976 readonly asQueryResponse: {977 readonly queryId: Compact<u64>;978 readonly response: XcmV1Response;979 } & Struct;980 readonly isTransferAsset: boolean;981 readonly asTransferAsset: {982 readonly assets: XcmV1MultiassetMultiAssets;983 readonly beneficiary: XcmV1MultiLocation;984 } & Struct;985 readonly isTransferReserveAsset: boolean;986 readonly asTransferReserveAsset: {987 readonly assets: XcmV1MultiassetMultiAssets;988 readonly dest: XcmV1MultiLocation;989 readonly effects: Vec<XcmV1Order>;990 } & Struct;991 readonly isTransact: boolean;992 readonly asTransact: {993 readonly originType: XcmV0OriginKind;994 readonly requireWeightAtMost: u64;995 readonly call: XcmDoubleEncoded;996 } & Struct;997 readonly isHrmpNewChannelOpenRequest: boolean;998 readonly asHrmpNewChannelOpenRequest: {999 readonly sender: Compact<u32>;1000 readonly maxMessageSize: Compact<u32>;1001 readonly maxCapacity: Compact<u32>;1002 } & Struct;1003 readonly isHrmpChannelAccepted: boolean;1004 readonly asHrmpChannelAccepted: {1005 readonly recipient: Compact<u32>;1006 } & Struct;1007 readonly isHrmpChannelClosing: boolean;1008 readonly asHrmpChannelClosing: {1009 readonly initiator: Compact<u32>;1010 readonly sender: Compact<u32>;1011 readonly recipient: Compact<u32>;1012 } & Struct;1013 readonly isRelayedFrom: boolean;1014 readonly asRelayedFrom: {1015 readonly who: XcmV1MultilocationJunctions;1016 readonly message: XcmV1Xcm;1017 } & Struct;1018 readonly isSubscribeVersion: boolean;1019 readonly asSubscribeVersion: {1020 readonly queryId: Compact<u64>;1021 readonly maxResponseWeight: Compact<u64>;1022 } & Struct;1023 readonly isUnsubscribeVersion: boolean;1024 readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'RelayedFrom' | 'SubscribeVersion' | 'UnsubscribeVersion';1025 }10261027 /** @name XcmV1MultiassetMultiAssets (112) */1028 export interface XcmV1MultiassetMultiAssets extends Vec<XcmV1MultiAsset> {}10291030 /** @name XcmV1MultiAsset (114) */1031 export interface XcmV1MultiAsset extends Struct {1032 readonly id: XcmV1MultiassetAssetId;1033 readonly fun: XcmV1MultiassetFungibility;1034 }10351036 /** @name XcmV1MultiassetAssetId (115) */1037 export interface XcmV1MultiassetAssetId extends Enum {1038 readonly isConcrete: boolean;1039 readonly asConcrete: XcmV1MultiLocation;1040 readonly isAbstract: boolean;1041 readonly asAbstract: Bytes;1042 readonly type: 'Concrete' | 'Abstract';1043 }10441045 /** @name XcmV1MultiassetFungibility (116) */1046 export interface XcmV1MultiassetFungibility extends Enum {1047 readonly isFungible: boolean;1048 readonly asFungible: Compact<u128>;1049 readonly isNonFungible: boolean;1050 readonly asNonFungible: XcmV1MultiassetAssetInstance;1051 readonly type: 'Fungible' | 'NonFungible';1052 }10531054 /** @name XcmV1Order (118) */1055 export interface XcmV1Order extends Enum {1056 readonly isNoop: boolean;1057 readonly isDepositAsset: boolean;1058 readonly asDepositAsset: {1059 readonly assets: XcmV1MultiassetMultiAssetFilter;1060 readonly maxAssets: u32;1061 readonly beneficiary: XcmV1MultiLocation;1062 } & Struct;1063 readonly isDepositReserveAsset: boolean;1064 readonly asDepositReserveAsset: {1065 readonly assets: XcmV1MultiassetMultiAssetFilter;1066 readonly maxAssets: u32;1067 readonly dest: XcmV1MultiLocation;1068 readonly effects: Vec<XcmV1Order>;1069 } & Struct;1070 readonly isExchangeAsset: boolean;1071 readonly asExchangeAsset: {1072 readonly give: XcmV1MultiassetMultiAssetFilter;1073 readonly receive: XcmV1MultiassetMultiAssets;1074 } & Struct;1075 readonly isInitiateReserveWithdraw: boolean;1076 readonly asInitiateReserveWithdraw: {1077 readonly assets: XcmV1MultiassetMultiAssetFilter;1078 readonly reserve: XcmV1MultiLocation;1079 readonly effects: Vec<XcmV1Order>;1080 } & Struct;1081 readonly isInitiateTeleport: boolean;1082 readonly asInitiateTeleport: {1083 readonly assets: XcmV1MultiassetMultiAssetFilter;1084 readonly dest: XcmV1MultiLocation;1085 readonly effects: Vec<XcmV1Order>;1086 } & Struct;1087 readonly isQueryHolding: boolean;1088 readonly asQueryHolding: {1089 readonly queryId: Compact<u64>;1090 readonly dest: XcmV1MultiLocation;1091 readonly assets: XcmV1MultiassetMultiAssetFilter;1092 } & Struct;1093 readonly isBuyExecution: boolean;1094 readonly asBuyExecution: {1095 readonly fees: XcmV1MultiAsset;1096 readonly weight: u64;1097 readonly debt: u64;1098 readonly haltOnError: bool;1099 readonly instructions: Vec<XcmV1Xcm>;1100 } & Struct;1101 readonly type: 'Noop' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution';1102 }11031104 /** @name XcmV1MultiassetMultiAssetFilter (119) */1105 export interface XcmV1MultiassetMultiAssetFilter extends Enum {1106 readonly isDefinite: boolean;1107 readonly asDefinite: XcmV1MultiassetMultiAssets;1108 readonly isWild: boolean;1109 readonly asWild: XcmV1MultiassetWildMultiAsset;1110 readonly type: 'Definite' | 'Wild';1111 }11121113 /** @name XcmV1MultiassetWildMultiAsset (120) */1114 export interface XcmV1MultiassetWildMultiAsset extends Enum {1115 readonly isAll: boolean;1116 readonly isAllOf: boolean;1117 readonly asAllOf: {1118 readonly id: XcmV1MultiassetAssetId;1119 readonly fun: XcmV1MultiassetWildFungibility;1120 } & Struct;1121 readonly type: 'All' | 'AllOf';1122 }11231124 /** @name XcmV1MultiassetWildFungibility (121) */1125 export interface XcmV1MultiassetWildFungibility extends Enum {1126 readonly isFungible: boolean;1127 readonly isNonFungible: boolean;1128 readonly type: 'Fungible' | 'NonFungible';1129 }11301131 /** @name XcmV1Response (123) */1132 export interface XcmV1Response extends Enum {1133 readonly isAssets: boolean;1134 readonly asAssets: XcmV1MultiassetMultiAssets;1135 readonly isVersion: boolean;1136 readonly asVersion: u32;1137 readonly type: 'Assets' | 'Version';1138 }11391140 /** @name XcmV2Xcm (124) */1141 export interface XcmV2Xcm extends Vec<XcmV2Instruction> {}11421143 /** @name XcmV2Instruction (126) */1144 export interface XcmV2Instruction extends Enum {1145 readonly isWithdrawAsset: boolean;1146 readonly asWithdrawAsset: XcmV1MultiassetMultiAssets;1147 readonly isReserveAssetDeposited: boolean;1148 readonly asReserveAssetDeposited: XcmV1MultiassetMultiAssets;1149 readonly isReceiveTeleportedAsset: boolean;1150 readonly asReceiveTeleportedAsset: XcmV1MultiassetMultiAssets;1151 readonly isQueryResponse: boolean;1152 readonly asQueryResponse: {1153 readonly queryId: Compact<u64>;1154 readonly response: XcmV2Response;1155 readonly maxWeight: Compact<u64>;1156 } & Struct;1157 readonly isTransferAsset: boolean;1158 readonly asTransferAsset: {1159 readonly assets: XcmV1MultiassetMultiAssets;1160 readonly beneficiary: XcmV1MultiLocation;1161 } & Struct;1162 readonly isTransferReserveAsset: boolean;1163 readonly asTransferReserveAsset: {1164 readonly assets: XcmV1MultiassetMultiAssets;1165 readonly dest: XcmV1MultiLocation;1166 readonly xcm: XcmV2Xcm;1167 } & Struct;1168 readonly isTransact: boolean;1169 readonly asTransact: {1170 readonly originType: XcmV0OriginKind;1171 readonly requireWeightAtMost: Compact<u64>;1172 readonly call: XcmDoubleEncoded;1173 } & Struct;1174 readonly isHrmpNewChannelOpenRequest: boolean;1175 readonly asHrmpNewChannelOpenRequest: {1176 readonly sender: Compact<u32>;1177 readonly maxMessageSize: Compact<u32>;1178 readonly maxCapacity: Compact<u32>;1179 } & Struct;1180 readonly isHrmpChannelAccepted: boolean;1181 readonly asHrmpChannelAccepted: {1182 readonly recipient: Compact<u32>;1183 } & Struct;1184 readonly isHrmpChannelClosing: boolean;1185 readonly asHrmpChannelClosing: {1186 readonly initiator: Compact<u32>;1187 readonly sender: Compact<u32>;1188 readonly recipient: Compact<u32>;1189 } & Struct;1190 readonly isClearOrigin: boolean;1191 readonly isDescendOrigin: boolean;1192 readonly asDescendOrigin: XcmV1MultilocationJunctions;1193 readonly isReportError: boolean;1194 readonly asReportError: {1195 readonly queryId: Compact<u64>;1196 readonly dest: XcmV1MultiLocation;1197 readonly maxResponseWeight: Compact<u64>;1198 } & Struct;1199 readonly isDepositAsset: boolean;1200 readonly asDepositAsset: {1201 readonly assets: XcmV1MultiassetMultiAssetFilter;1202 readonly maxAssets: Compact<u32>;1203 readonly beneficiary: XcmV1MultiLocation;1204 } & Struct;1205 readonly isDepositReserveAsset: boolean;1206 readonly asDepositReserveAsset: {1207 readonly assets: XcmV1MultiassetMultiAssetFilter;1208 readonly maxAssets: Compact<u32>;1209 readonly dest: XcmV1MultiLocation;1210 readonly xcm: XcmV2Xcm;1211 } & Struct;1212 readonly isExchangeAsset: boolean;1213 readonly asExchangeAsset: {1214 readonly give: XcmV1MultiassetMultiAssetFilter;1215 readonly receive: XcmV1MultiassetMultiAssets;1216 } & Struct;1217 readonly isInitiateReserveWithdraw: boolean;1218 readonly asInitiateReserveWithdraw: {1219 readonly assets: XcmV1MultiassetMultiAssetFilter;1220 readonly reserve: XcmV1MultiLocation;1221 readonly xcm: XcmV2Xcm;1222 } & Struct;1223 readonly isInitiateTeleport: boolean;1224 readonly asInitiateTeleport: {1225 readonly assets: XcmV1MultiassetMultiAssetFilter;1226 readonly dest: XcmV1MultiLocation;1227 readonly xcm: XcmV2Xcm;1228 } & Struct;1229 readonly isQueryHolding: boolean;1230 readonly asQueryHolding: {1231 readonly queryId: Compact<u64>;1232 readonly dest: XcmV1MultiLocation;1233 readonly assets: XcmV1MultiassetMultiAssetFilter;1234 readonly maxResponseWeight: Compact<u64>;1235 } & Struct;1236 readonly isBuyExecution: boolean;1237 readonly asBuyExecution: {1238 readonly fees: XcmV1MultiAsset;1239 readonly weightLimit: XcmV2WeightLimit;1240 } & Struct;1241 readonly isRefundSurplus: boolean;1242 readonly isSetErrorHandler: boolean;1243 readonly asSetErrorHandler: XcmV2Xcm;1244 readonly isSetAppendix: boolean;1245 readonly asSetAppendix: XcmV2Xcm;1246 readonly isClearError: boolean;1247 readonly isClaimAsset: boolean;1248 readonly asClaimAsset: {1249 readonly assets: XcmV1MultiassetMultiAssets;1250 readonly ticket: XcmV1MultiLocation;1251 } & Struct;1252 readonly isTrap: boolean;1253 readonly asTrap: Compact<u64>;1254 readonly isSubscribeVersion: boolean;1255 readonly asSubscribeVersion: {1256 readonly queryId: Compact<u64>;1257 readonly maxResponseWeight: Compact<u64>;1258 } & Struct;1259 readonly isUnsubscribeVersion: boolean;1260 readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'ClearOrigin' | 'DescendOrigin' | 'ReportError' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution' | 'RefundSurplus' | 'SetErrorHandler' | 'SetAppendix' | 'ClearError' | 'ClaimAsset' | 'Trap' | 'SubscribeVersion' | 'UnsubscribeVersion';1261 }12621263 /** @name XcmV2Response (127) */1264 export interface XcmV2Response extends Enum {1265 readonly isNull: boolean;1266 readonly isAssets: boolean;1267 readonly asAssets: XcmV1MultiassetMultiAssets;1268 readonly isExecutionResult: boolean;1269 readonly asExecutionResult: Option<ITuple<[u32, XcmV2TraitsError]>>;1270 readonly isVersion: boolean;1271 readonly asVersion: u32;1272 readonly type: 'Null' | 'Assets' | 'ExecutionResult' | 'Version';1273 }12741275 /** @name XcmV2TraitsError (130) */1276 export interface XcmV2TraitsError extends Enum {1277 readonly isOverflow: boolean;1278 readonly isUnimplemented: boolean;1279 readonly isUntrustedReserveLocation: boolean;1280 readonly isUntrustedTeleportLocation: boolean;1281 readonly isMultiLocationFull: boolean;1282 readonly isMultiLocationNotInvertible: boolean;1283 readonly isBadOrigin: boolean;1284 readonly isInvalidLocation: boolean;1285 readonly isAssetNotFound: boolean;1286 readonly isFailedToTransactAsset: boolean;1287 readonly isNotWithdrawable: boolean;1288 readonly isLocationCannotHold: boolean;1289 readonly isExceedsMaxMessageSize: boolean;1290 readonly isDestinationUnsupported: boolean;1291 readonly isTransport: boolean;1292 readonly isUnroutable: boolean;1293 readonly isUnknownClaim: boolean;1294 readonly isFailedToDecode: boolean;1295 readonly isMaxWeightInvalid: boolean;1296 readonly isNotHoldingFees: boolean;1297 readonly isTooExpensive: boolean;1298 readonly isTrap: boolean;1299 readonly asTrap: u64;1300 readonly isUnhandledXcmVersion: boolean;1301 readonly isWeightLimitReached: boolean;1302 readonly asWeightLimitReached: u64;1303 readonly isBarrier: boolean;1304 readonly isWeightNotComputable: boolean;1305 readonly type: 'Overflow' | 'Unimplemented' | 'UntrustedReserveLocation' | 'UntrustedTeleportLocation' | 'MultiLocationFull' | 'MultiLocationNotInvertible' | 'BadOrigin' | 'InvalidLocation' | 'AssetNotFound' | 'FailedToTransactAsset' | 'NotWithdrawable' | 'LocationCannotHold' | 'ExceedsMaxMessageSize' | 'DestinationUnsupported' | 'Transport' | 'Unroutable' | 'UnknownClaim' | 'FailedToDecode' | 'MaxWeightInvalid' | 'NotHoldingFees' | 'TooExpensive' | 'Trap' | 'UnhandledXcmVersion' | 'WeightLimitReached' | 'Barrier' | 'WeightNotComputable';1306 }13071308 /** @name XcmV2WeightLimit (131) */1309 export interface XcmV2WeightLimit extends Enum {1310 readonly isUnlimited: boolean;1311 readonly isLimited: boolean;1312 readonly asLimited: Compact<u64>;1313 readonly type: 'Unlimited' | 'Limited';1314 }13151316 /** @name XcmVersionedMultiAssets (132) */1317 export interface XcmVersionedMultiAssets extends Enum {1318 readonly isV0: boolean;1319 readonly asV0: Vec<XcmV0MultiAsset>;1320 readonly isV1: boolean;1321 readonly asV1: XcmV1MultiassetMultiAssets;1322 readonly type: 'V0' | 'V1';1323 }13241325 /** @name CumulusPalletXcmCall (147) */1326 export type CumulusPalletXcmCall = Null;13271328 /** @name CumulusPalletDmpQueueCall (148) */1329 export interface CumulusPalletDmpQueueCall extends Enum {1330 readonly isServiceOverweight: boolean;1331 readonly asServiceOverweight: {1332 readonly index: u64;1333 readonly weightLimit: u64;1334 } & Struct;1335 readonly type: 'ServiceOverweight';1336 }13371338 /** @name PalletInflationCall (149) */1339 export interface PalletInflationCall extends Enum {1340 readonly isStartInflation: boolean;1341 readonly asStartInflation: {1342 readonly inflationStartRelayBlock: u32;1343 } & Struct;1344 readonly type: 'StartInflation';1345 }13461347 /** @name PalletUniqueCall (150) */1348 export interface PalletUniqueCall extends Enum {1349 readonly isCreateCollection: boolean;1350 readonly asCreateCollection: {1351 readonly collectionName: Vec<u16>;1352 readonly collectionDescription: Vec<u16>;1353 readonly tokenPrefix: Bytes;1354 readonly mode: UpDataStructsCollectionMode;1355 } & Struct;1356 readonly isCreateCollectionEx: boolean;1357 readonly asCreateCollectionEx: {1358 readonly data: UpDataStructsCreateCollectionData;1359 } & Struct;1360 readonly isDestroyCollection: boolean;1361 readonly asDestroyCollection: {1362 readonly collectionId: u32;1363 } & Struct;1364 readonly isAddToAllowList: boolean;1365 readonly asAddToAllowList: {1366 readonly collectionId: u32;1367 readonly address: PalletEvmAccountBasicCrossAccountIdRepr;1368 } & Struct;1369 readonly isRemoveFromAllowList: boolean;1370 readonly asRemoveFromAllowList: {1371 readonly collectionId: u32;1372 readonly address: PalletEvmAccountBasicCrossAccountIdRepr;1373 } & Struct;1374 readonly isSetPublicAccessMode: boolean;1375 readonly asSetPublicAccessMode: {1376 readonly collectionId: u32;1377 readonly mode: UpDataStructsAccessMode;1378 } & Struct;1379 readonly isSetMintPermission: boolean;1380 readonly asSetMintPermission: {1381 readonly collectionId: u32;1382 readonly mintPermission: bool;1383 } & Struct;1384 readonly isChangeCollectionOwner: boolean;1385 readonly asChangeCollectionOwner: {1386 readonly collectionId: u32;1387 readonly newOwner: AccountId32;1388 } & Struct;1389 readonly isAddCollectionAdmin: boolean;1390 readonly asAddCollectionAdmin: {1391 readonly collectionId: u32;1392 readonly newAdminId: PalletEvmAccountBasicCrossAccountIdRepr;1393 } & Struct;1394 readonly isRemoveCollectionAdmin: boolean;1395 readonly asRemoveCollectionAdmin: {1396 readonly collectionId: u32;1397 readonly accountId: PalletEvmAccountBasicCrossAccountIdRepr;1398 } & Struct;1399 readonly isSetCollectionSponsor: boolean;1400 readonly asSetCollectionSponsor: {1401 readonly collectionId: u32;1402 readonly newSponsor: AccountId32;1403 } & Struct;1404 readonly isConfirmSponsorship: boolean;1405 readonly asConfirmSponsorship: {1406 readonly collectionId: u32;1407 } & Struct;1408 readonly isRemoveCollectionSponsor: boolean;1409 readonly asRemoveCollectionSponsor: {1410 readonly collectionId: u32;1411 } & Struct;1412 readonly isCreateItem: boolean;1413 readonly asCreateItem: {1414 readonly collectionId: u32;1415 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;1416 readonly data: UpDataStructsCreateItemData;1417 } & Struct;1418 readonly isCreateMultipleItems: boolean;1419 readonly asCreateMultipleItems: {1420 readonly collectionId: u32;1421 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;1422 readonly itemsData: Vec<UpDataStructsCreateItemData>;1423 } & Struct;1424 readonly isSetCollectionProperties: boolean;1425 readonly asSetCollectionProperties: {1426 readonly collectionId: u32;1427 readonly properties: Vec<UpDataStructsProperty>;1428 } & Struct;1429 readonly isDeleteCollectionProperties: boolean;1430 readonly asDeleteCollectionProperties: {1431 readonly collectionId: u32;1432 readonly propertyKeys: Vec<Bytes>;1433 } & Struct;1434 readonly isSetTokenProperties: boolean;1435 readonly asSetTokenProperties: {1436 readonly collectionId: u32;1437 readonly tokenId: u32;1438 readonly properties: Vec<UpDataStructsProperty>;1439 } & Struct;1440 readonly isDeleteTokenProperties: boolean;1441 readonly asDeleteTokenProperties: {1442 readonly collectionId: u32;1443 readonly tokenId: u32;1444 readonly propertyKeys: Vec<Bytes>;1445 } & Struct;1446 readonly isSetPropertyPermissions: boolean;1447 readonly asSetPropertyPermissions: {1448 readonly collectionId: u32;1449 readonly propertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;1450 } & Struct;1451 readonly isCreateMultipleItemsEx: boolean;1452 readonly asCreateMultipleItemsEx: {1453 readonly collectionId: u32;1454 readonly data: UpDataStructsCreateItemExData;1455 } & Struct;1456 readonly isSetTransfersEnabledFlag: boolean;1457 readonly asSetTransfersEnabledFlag: {1458 readonly collectionId: u32;1459 readonly value: bool;1460 } & Struct;1461 readonly isBurnItem: boolean;1462 readonly asBurnItem: {1463 readonly collectionId: u32;1464 readonly itemId: u32;1465 readonly value: u128;1466 } & Struct;1467 readonly isBurnFrom: boolean;1468 readonly asBurnFrom: {1469 readonly collectionId: u32;1470 readonly from: PalletEvmAccountBasicCrossAccountIdRepr;1471 readonly itemId: u32;1472 readonly value: u128;1473 } & Struct;1474 readonly isTransfer: boolean;1475 readonly asTransfer: {1476 readonly recipient: PalletEvmAccountBasicCrossAccountIdRepr;1477 readonly collectionId: u32;1478 readonly itemId: u32;1479 readonly value: u128;1480 } & Struct;1481 readonly isApprove: boolean;1482 readonly asApprove: {1483 readonly spender: PalletEvmAccountBasicCrossAccountIdRepr;1484 readonly collectionId: u32;1485 readonly itemId: u32;1486 readonly amount: u128;1487 } & Struct;1488 readonly isTransferFrom: boolean;1489 readonly asTransferFrom: {1490 readonly from: PalletEvmAccountBasicCrossAccountIdRepr;1491 readonly recipient: PalletEvmAccountBasicCrossAccountIdRepr;1492 readonly collectionId: u32;1493 readonly itemId: u32;1494 readonly value: u128;1495 } & Struct;1496 readonly isSetSchemaVersion: boolean;1497 readonly asSetSchemaVersion: {1498 readonly collectionId: u32;1499 readonly version: UpDataStructsSchemaVersion;1500 } & Struct;1501 readonly isSetOffchainSchema: boolean;1502 readonly asSetOffchainSchema: {1503 readonly collectionId: u32;1504 readonly schema: Bytes;1505 } & Struct;1506 readonly isSetConstOnChainSchema: boolean;1507 readonly asSetConstOnChainSchema: {1508 readonly collectionId: u32;1509 readonly schema: Bytes;1510 } & Struct;1511 readonly isSetCollectionLimits: boolean;1512 readonly asSetCollectionLimits: {1513 readonly collectionId: u32;1514 readonly newLimit: UpDataStructsCollectionLimits;1515 } & Struct;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';1517 }15181519 /** @name UpDataStructsCollectionMode (156) */1520 export interface UpDataStructsCollectionMode extends Enum {1521 readonly isNft: boolean;1522 readonly isFungible: boolean;1523 readonly asFungible: u8;1524 readonly isReFungible: boolean;1525 readonly type: 'Nft' | 'Fungible' | 'ReFungible';1526 }15271528 /** @name UpDataStructsCreateCollectionData (157) */1529 export interface UpDataStructsCreateCollectionData extends Struct {1530 readonly mode: UpDataStructsCollectionMode;1531 readonly access: Option<UpDataStructsAccessMode>;1532 readonly name: Vec<u16>;1533 readonly description: Vec<u16>;1534 readonly tokenPrefix: Bytes;1535 readonly offchainSchema: Bytes;1536 readonly schemaVersion: Option<UpDataStructsSchemaVersion>;1537 readonly pendingSponsor: Option<AccountId32>;1538 readonly limits: Option<UpDataStructsCollectionLimits>;1539 readonly constOnChainSchema: Bytes;1540 readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;1541 readonly properties: Vec<UpDataStructsProperty>;1542 }15431544 /** @name UpDataStructsAccessMode (159) */1545 export interface UpDataStructsAccessMode extends Enum {1546 readonly isNormal: boolean;1547 readonly isAllowList: boolean;1548 readonly type: 'Normal' | 'AllowList';1549 }15501551 /** @name UpDataStructsSchemaVersion (162) */1552 export interface UpDataStructsSchemaVersion extends Enum {1553 readonly isImageURL: boolean;1554 readonly isUnique: boolean;1555 readonly type: 'ImageURL' | 'Unique';1556 }15571558 /** @name UpDataStructsCollectionLimits (165) */1559 export interface UpDataStructsCollectionLimits extends Struct {1560 readonly accountTokenOwnershipLimit: Option<u32>;1561 readonly sponsoredDataSize: Option<u32>;1562 readonly sponsoredDataRateLimit: Option<UpDataStructsSponsoringRateLimit>;1563 readonly tokenLimit: Option<u32>;1564 readonly sponsorTransferTimeout: Option<u32>;1565 readonly sponsorApproveTimeout: Option<u32>;1566 readonly ownerCanTransfer: Option<bool>;1567 readonly ownerCanDestroy: Option<bool>;1568 readonly transfersEnabled: Option<bool>;1569 readonly nestingRule: Option<UpDataStructsNestingRule>;1570 }15711572 /** @name UpDataStructsSponsoringRateLimit (167) */1573 export interface UpDataStructsSponsoringRateLimit extends Enum {1574 readonly isSponsoringDisabled: boolean;1575 readonly isBlocks: boolean;1576 readonly asBlocks: u32;1577 readonly type: 'SponsoringDisabled' | 'Blocks';1578 }15791580 /** @name UpDataStructsNestingRule (170) */1581 export interface UpDataStructsNestingRule extends Enum {1582 readonly isDisabled: boolean;1583 readonly isOwner: boolean;1584 readonly isOwnerRestricted: boolean;1585 readonly asOwnerRestricted: BTreeSet<u32>;1586 readonly type: 'Disabled' | 'Owner' | 'OwnerRestricted';1587 }15881589 /** @name UpDataStructsPropertyKeyPermission (177) */1590 export interface UpDataStructsPropertyKeyPermission extends Struct {1591 readonly key: Bytes;1592 readonly permission: UpDataStructsPropertyPermission;1593 }15941595 /** @name UpDataStructsPropertyPermission (179) */1596 export interface UpDataStructsPropertyPermission extends Struct {1597 readonly mutable: bool;1598 readonly collectionAdmin: bool;1599 readonly tokenOwner: bool;1600 }16011602 /** @name UpDataStructsProperty (182) */1603 export interface UpDataStructsProperty extends Struct {1604 readonly key: Bytes;1605 readonly value: Bytes;1606 }16071608 /** @name PalletEvmAccountBasicCrossAccountIdRepr (184) */1609 export interface PalletEvmAccountBasicCrossAccountIdRepr extends Enum {1610 readonly isSubstrate: boolean;1611 readonly asSubstrate: AccountId32;1612 readonly isEthereum: boolean;1613 readonly asEthereum: H160;1614 readonly type: 'Substrate' | 'Ethereum';1615 }16161617 /** @name UpDataStructsCreateItemData (186) */1618 export interface UpDataStructsCreateItemData extends Enum {1619 readonly isNft: boolean;1620 readonly asNft: UpDataStructsCreateNftData;1621 readonly isFungible: boolean;1622 readonly asFungible: UpDataStructsCreateFungibleData;1623 readonly isReFungible: boolean;1624 readonly asReFungible: UpDataStructsCreateReFungibleData;1625 readonly type: 'Nft' | 'Fungible' | 'ReFungible';1626 }16271628 /** @name UpDataStructsCreateNftData (187) */1629 export interface UpDataStructsCreateNftData extends Struct {1630 readonly constData: Bytes;1631 readonly properties: Vec<UpDataStructsProperty>;1632 }16331634 /** @name UpDataStructsCreateFungibleData (189) */1635 export interface UpDataStructsCreateFungibleData extends Struct {1636 readonly value: u128;1637 }16381639 /** @name UpDataStructsCreateReFungibleData (190) */1640 export interface UpDataStructsCreateReFungibleData extends Struct {1641 readonly constData: Bytes;1642 readonly pieces: u128;1643 }16441645 /** @name UpDataStructsCreateItemExData (194) */1646 export interface UpDataStructsCreateItemExData extends Enum {1647 readonly isNft: boolean;1648 readonly asNft: Vec<UpDataStructsCreateNftExData>;1649 readonly isFungible: boolean;1650 readonly asFungible: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>;1651 readonly isRefungibleMultipleItems: boolean;1652 readonly asRefungibleMultipleItems: Vec<UpDataStructsCreateRefungibleExData>;1653 readonly isRefungibleMultipleOwners: boolean;1654 readonly asRefungibleMultipleOwners: UpDataStructsCreateRefungibleExData;1655 readonly type: 'Nft' | 'Fungible' | 'RefungibleMultipleItems' | 'RefungibleMultipleOwners';1656 }16571658 /** @name UpDataStructsCreateNftExData (196) */1659 export interface UpDataStructsCreateNftExData extends Struct {1660 readonly constData: Bytes;1661 readonly properties: Vec<UpDataStructsProperty>;1662 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;1663 }16641665 /** @name UpDataStructsCreateRefungibleExData (203) */1666 export interface UpDataStructsCreateRefungibleExData extends Struct {1667 readonly constData: Bytes;1668 readonly users: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>;1669 }16701671 /** @name PalletTemplateTransactionPaymentCall (205) */1672 export type PalletTemplateTransactionPaymentCall = Null;16731674 /** @name PalletStructureCall (206) */1675 export type PalletStructureCall = Null;16761677 /** @name PalletEvmCall (207) */1678 export interface PalletEvmCall extends Enum {1679 readonly isWithdraw: boolean;1680 readonly asWithdraw: {1681 readonly address: H160;1682 readonly value: u128;1683 } & Struct;1684 readonly isCall: boolean;1685 readonly asCall: {1686 readonly source: H160;1687 readonly target: H160;1688 readonly input: Bytes;1689 readonly value: U256;1690 readonly gasLimit: u64;1691 readonly maxFeePerGas: U256;1692 readonly maxPriorityFeePerGas: Option<U256>;1693 readonly nonce: Option<U256>;1694 readonly accessList: Vec<ITuple<[H160, Vec<H256>]>>;1695 } & Struct;1696 readonly isCreate: boolean;1697 readonly asCreate: {1698 readonly source: H160;1699 readonly init: Bytes;1700 readonly value: U256;1701 readonly gasLimit: u64;1702 readonly maxFeePerGas: U256;1703 readonly maxPriorityFeePerGas: Option<U256>;1704 readonly nonce: Option<U256>;1705 readonly accessList: Vec<ITuple<[H160, Vec<H256>]>>;1706 } & Struct;1707 readonly isCreate2: boolean;1708 readonly asCreate2: {1709 readonly source: H160;1710 readonly init: Bytes;1711 readonly salt: H256;1712 readonly value: U256;1713 readonly gasLimit: u64;1714 readonly maxFeePerGas: U256;1715 readonly maxPriorityFeePerGas: Option<U256>;1716 readonly nonce: Option<U256>;1717 readonly accessList: Vec<ITuple<[H160, Vec<H256>]>>;1718 } & Struct;1719 readonly type: 'Withdraw' | 'Call' | 'Create' | 'Create2';1720 }17211722 /** @name PalletEthereumCall (213) */1723 export interface PalletEthereumCall extends Enum {1724 readonly isTransact: boolean;1725 readonly asTransact: {1726 readonly transaction: EthereumTransactionTransactionV2;1727 } & Struct;1728 readonly type: 'Transact';1729 }17301731 /** @name EthereumTransactionTransactionV2 (214) */1732 export interface EthereumTransactionTransactionV2 extends Enum {1733 readonly isLegacy: boolean;1734 readonly asLegacy: EthereumTransactionLegacyTransaction;1735 readonly isEip2930: boolean;1736 readonly asEip2930: EthereumTransactionEip2930Transaction;1737 readonly isEip1559: boolean;1738 readonly asEip1559: EthereumTransactionEip1559Transaction;1739 readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';1740 }17411742 /** @name EthereumTransactionLegacyTransaction (215) */1743 export interface EthereumTransactionLegacyTransaction extends Struct {1744 readonly nonce: U256;1745 readonly gasPrice: U256;1746 readonly gasLimit: U256;1747 readonly action: EthereumTransactionTransactionAction;1748 readonly value: U256;1749 readonly input: Bytes;1750 readonly signature: EthereumTransactionTransactionSignature;1751 }17521753 /** @name EthereumTransactionTransactionAction (216) */1754 export interface EthereumTransactionTransactionAction extends Enum {1755 readonly isCall: boolean;1756 readonly asCall: H160;1757 readonly isCreate: boolean;1758 readonly type: 'Call' | 'Create';1759 }17601761 /** @name EthereumTransactionTransactionSignature (217) */1762 export interface EthereumTransactionTransactionSignature extends Struct {1763 readonly v: u64;1764 readonly r: H256;1765 readonly s: H256;1766 }17671768 /** @name EthereumTransactionEip2930Transaction (219) */1769 export interface EthereumTransactionEip2930Transaction extends Struct {1770 readonly chainId: u64;1771 readonly nonce: U256;1772 readonly gasPrice: U256;1773 readonly gasLimit: U256;1774 readonly action: EthereumTransactionTransactionAction;1775 readonly value: U256;1776 readonly input: Bytes;1777 readonly accessList: Vec<EthereumTransactionAccessListItem>;1778 readonly oddYParity: bool;1779 readonly r: H256;1780 readonly s: H256;1781 }17821783 /** @name EthereumTransactionAccessListItem (221) */1784 export interface EthereumTransactionAccessListItem extends Struct {1785 readonly address: H160;1786 readonly storageKeys: Vec<H256>;1787 }17881789 /** @name EthereumTransactionEip1559Transaction (222) */1790 export interface EthereumTransactionEip1559Transaction extends Struct {1791 readonly chainId: u64;1792 readonly nonce: U256;1793 readonly maxPriorityFeePerGas: U256;1794 readonly maxFeePerGas: U256;1795 readonly gasLimit: U256;1796 readonly action: EthereumTransactionTransactionAction;1797 readonly value: U256;1798 readonly input: Bytes;1799 readonly accessList: Vec<EthereumTransactionAccessListItem>;1800 readonly oddYParity: bool;1801 readonly r: H256;1802 readonly s: H256;1803 }18041805 /** @name PalletEvmMigrationCall (223) */1806 export interface PalletEvmMigrationCall extends Enum {1807 readonly isBegin: boolean;1808 readonly asBegin: {1809 readonly address: H160;1810 } & Struct;1811 readonly isSetData: boolean;1812 readonly asSetData: {1813 readonly address: H160;1814 readonly data: Vec<ITuple<[H256, H256]>>;1815 } & Struct;1816 readonly isFinish: boolean;1817 readonly asFinish: {1818 readonly address: H160;1819 readonly code: Bytes;1820 } & Struct;1821 readonly type: 'Begin' | 'SetData' | 'Finish';1822 }18231824 /** @name PalletSudoEvent (226) */1825 export interface PalletSudoEvent extends Enum {1826 readonly isSudid: boolean;1827 readonly asSudid: {1828 readonly sudoResult: Result<Null, SpRuntimeDispatchError>;1829 } & Struct;1830 readonly isKeyChanged: boolean;1831 readonly asKeyChanged: {1832 readonly oldSudoer: Option<AccountId32>;1833 } & Struct;1834 readonly isSudoAsDone: boolean;1835 readonly asSudoAsDone: {1836 readonly sudoResult: Result<Null, SpRuntimeDispatchError>;1837 } & Struct;1838 readonly type: 'Sudid' | 'KeyChanged' | 'SudoAsDone';1839 }18401841 /** @name SpRuntimeDispatchError (228) */1842 export interface SpRuntimeDispatchError extends Enum {1843 readonly isOther: boolean;1844 readonly isCannotLookup: boolean;1845 readonly isBadOrigin: boolean;1846 readonly isModule: boolean;1847 readonly asModule: SpRuntimeModuleError;1848 readonly isConsumerRemaining: boolean;1849 readonly isNoProviders: boolean;1850 readonly isTooManyConsumers: boolean;1851 readonly isToken: boolean;1852 readonly asToken: SpRuntimeTokenError;1853 readonly isArithmetic: boolean;1854 readonly asArithmetic: SpRuntimeArithmeticError;1855 readonly isTransactional: boolean;1856 readonly asTransactional: SpRuntimeTransactionalError;1857 readonly type: 'Other' | 'CannotLookup' | 'BadOrigin' | 'Module' | 'ConsumerRemaining' | 'NoProviders' | 'TooManyConsumers' | 'Token' | 'Arithmetic' | 'Transactional';1858 }18591860 /** @name SpRuntimeModuleError (229) */1861 export interface SpRuntimeModuleError extends Struct {1862 readonly index: u8;1863 readonly error: U8aFixed;1864 }18651866 /** @name SpRuntimeTokenError (230) */1867 export interface SpRuntimeTokenError extends Enum {1868 readonly isNoFunds: boolean;1869 readonly isWouldDie: boolean;1870 readonly isBelowMinimum: boolean;1871 readonly isCannotCreate: boolean;1872 readonly isUnknownAsset: boolean;1873 readonly isFrozen: boolean;1874 readonly isUnsupported: boolean;1875 readonly type: 'NoFunds' | 'WouldDie' | 'BelowMinimum' | 'CannotCreate' | 'UnknownAsset' | 'Frozen' | 'Unsupported';1876 }18771878 /** @name SpRuntimeArithmeticError (231) */1879 export interface SpRuntimeArithmeticError extends Enum {1880 readonly isUnderflow: boolean;1881 readonly isOverflow: boolean;1882 readonly isDivisionByZero: boolean;1883 readonly type: 'Underflow' | 'Overflow' | 'DivisionByZero';1884 }18851886 /** @name SpRuntimeTransactionalError (232) */1887 export interface SpRuntimeTransactionalError extends Enum {1888 readonly isLimitReached: boolean;1889 readonly isNoLayer: boolean;1890 readonly type: 'LimitReached' | 'NoLayer';1891 }18921893 /** @name PalletSudoError (233) */1894 export interface PalletSudoError extends Enum {1895 readonly isRequireSudo: boolean;1896 readonly type: 'RequireSudo';1897 }18981899 /** @name FrameSystemAccountInfo (234) */1900 export interface FrameSystemAccountInfo extends Struct {1901 readonly nonce: u32;1902 readonly consumers: u32;1903 readonly providers: u32;1904 readonly sufficients: u32;1905 readonly data: PalletBalancesAccountData;1906 }19071908 /** @name FrameSupportWeightsPerDispatchClassU64 (235) */1909 export interface FrameSupportWeightsPerDispatchClassU64 extends Struct {1910 readonly normal: u64;1911 readonly operational: u64;1912 readonly mandatory: u64;1913 }19141915 /** @name SpRuntimeDigest (236) */1916 export interface SpRuntimeDigest extends Struct {1917 readonly logs: Vec<SpRuntimeDigestDigestItem>;1918 }19191920 /** @name SpRuntimeDigestDigestItem (238) */1921 export interface SpRuntimeDigestDigestItem extends Enum {1922 readonly isOther: boolean;1923 readonly asOther: Bytes;1924 readonly isConsensus: boolean;1925 readonly asConsensus: ITuple<[U8aFixed, Bytes]>;1926 readonly isSeal: boolean;1927 readonly asSeal: ITuple<[U8aFixed, Bytes]>;1928 readonly isPreRuntime: boolean;1929 readonly asPreRuntime: ITuple<[U8aFixed, Bytes]>;1930 readonly isRuntimeEnvironmentUpdated: boolean;1931 readonly type: 'Other' | 'Consensus' | 'Seal' | 'PreRuntime' | 'RuntimeEnvironmentUpdated';1932 }19331934 /** @name FrameSystemEventRecord (240) */1935 export interface FrameSystemEventRecord extends Struct {1936 readonly phase: FrameSystemPhase;1937 readonly event: Event;1938 readonly topics: Vec<H256>;1939 }19401941 /** @name FrameSystemEvent (242) */1942 export interface FrameSystemEvent extends Enum {1943 readonly isExtrinsicSuccess: boolean;1944 readonly asExtrinsicSuccess: {1945 readonly dispatchInfo: FrameSupportWeightsDispatchInfo;1946 } & Struct;1947 readonly isExtrinsicFailed: boolean;1948 readonly asExtrinsicFailed: {1949 readonly dispatchError: SpRuntimeDispatchError;1950 readonly dispatchInfo: FrameSupportWeightsDispatchInfo;1951 } & Struct;1952 readonly isCodeUpdated: boolean;1953 readonly isNewAccount: boolean;1954 readonly asNewAccount: {1955 readonly account: AccountId32;1956 } & Struct;1957 readonly isKilledAccount: boolean;1958 readonly asKilledAccount: {1959 readonly account: AccountId32;1960 } & Struct;1961 readonly isRemarked: boolean;1962 readonly asRemarked: {1963 readonly sender: AccountId32;1964 readonly hash_: H256;1965 } & Struct;1966 readonly type: 'ExtrinsicSuccess' | 'ExtrinsicFailed' | 'CodeUpdated' | 'NewAccount' | 'KilledAccount' | 'Remarked';1967 }19681969 /** @name FrameSupportWeightsDispatchInfo (243) */1970 export interface FrameSupportWeightsDispatchInfo extends Struct {1971 readonly weight: u64;1972 readonly class: FrameSupportWeightsDispatchClass;1973 readonly paysFee: FrameSupportWeightsPays;1974 }19751976 /** @name FrameSupportWeightsDispatchClass (244) */1977 export interface FrameSupportWeightsDispatchClass extends Enum {1978 readonly isNormal: boolean;1979 readonly isOperational: boolean;1980 readonly isMandatory: boolean;1981 readonly type: 'Normal' | 'Operational' | 'Mandatory';1982 }19831984 /** @name FrameSupportWeightsPays (245) */1985 export interface FrameSupportWeightsPays extends Enum {1986 readonly isYes: boolean;1987 readonly isNo: boolean;1988 readonly type: 'Yes' | 'No';1989 }19901991 /** @name OrmlVestingModuleEvent (246) */1992 export interface OrmlVestingModuleEvent extends Enum {1993 readonly isVestingScheduleAdded: boolean;1994 readonly asVestingScheduleAdded: {1995 readonly from: AccountId32;1996 readonly to: AccountId32;1997 readonly vestingSchedule: OrmlVestingVestingSchedule;1998 } & Struct;1999 readonly isClaimed: boolean;2000 readonly asClaimed: {2001 readonly who: AccountId32;2002 readonly amount: u128;2003 } & Struct;2004 readonly isVestingSchedulesUpdated: boolean;2005 readonly asVestingSchedulesUpdated: {2006 readonly who: AccountId32;2007 } & Struct;2008 readonly type: 'VestingScheduleAdded' | 'Claimed' | 'VestingSchedulesUpdated';2009 }20102011 /** @name CumulusPalletXcmpQueueEvent (247) */2012 export interface CumulusPalletXcmpQueueEvent extends Enum {2013 readonly isSuccess: boolean;2014 readonly asSuccess: Option<H256>;2015 readonly isFail: boolean;2016 readonly asFail: ITuple<[Option<H256>, XcmV2TraitsError]>;2017 readonly isBadVersion: boolean;2018 readonly asBadVersion: Option<H256>;2019 readonly isBadFormat: boolean;2020 readonly asBadFormat: Option<H256>;2021 readonly isUpwardMessageSent: boolean;2022 readonly asUpwardMessageSent: Option<H256>;2023 readonly isXcmpMessageSent: boolean;2024 readonly asXcmpMessageSent: Option<H256>;2025 readonly isOverweightEnqueued: boolean;2026 readonly asOverweightEnqueued: ITuple<[u32, u32, u64, u64]>;2027 readonly isOverweightServiced: boolean;2028 readonly asOverweightServiced: ITuple<[u64, u64]>;2029 readonly type: 'Success' | 'Fail' | 'BadVersion' | 'BadFormat' | 'UpwardMessageSent' | 'XcmpMessageSent' | 'OverweightEnqueued' | 'OverweightServiced';2030 }20312032 /** @name PalletXcmEvent (248) */2033 export interface PalletXcmEvent extends Enum {2034 readonly isAttempted: boolean;2035 readonly asAttempted: XcmV2TraitsOutcome;2036 readonly isSent: boolean;2037 readonly asSent: ITuple<[XcmV1MultiLocation, XcmV1MultiLocation, XcmV2Xcm]>;2038 readonly isUnexpectedResponse: boolean;2039 readonly asUnexpectedResponse: ITuple<[XcmV1MultiLocation, u64]>;2040 readonly isResponseReady: boolean;2041 readonly asResponseReady: ITuple<[u64, XcmV2Response]>;2042 readonly isNotified: boolean;2043 readonly asNotified: ITuple<[u64, u8, u8]>;2044 readonly isNotifyOverweight: boolean;2045 readonly asNotifyOverweight: ITuple<[u64, u8, u8, u64, u64]>;2046 readonly isNotifyDispatchError: boolean;2047 readonly asNotifyDispatchError: ITuple<[u64, u8, u8]>;2048 readonly isNotifyDecodeFailed: boolean;2049 readonly asNotifyDecodeFailed: ITuple<[u64, u8, u8]>;2050 readonly isInvalidResponder: boolean;2051 readonly asInvalidResponder: ITuple<[XcmV1MultiLocation, u64, Option<XcmV1MultiLocation>]>;2052 readonly isInvalidResponderVersion: boolean;2053 readonly asInvalidResponderVersion: ITuple<[XcmV1MultiLocation, u64]>;2054 readonly isResponseTaken: boolean;2055 readonly asResponseTaken: u64;2056 readonly isAssetsTrapped: boolean;2057 readonly asAssetsTrapped: ITuple<[H256, XcmV1MultiLocation, XcmVersionedMultiAssets]>;2058 readonly isVersionChangeNotified: boolean;2059 readonly asVersionChangeNotified: ITuple<[XcmV1MultiLocation, u32]>;2060 readonly isSupportedVersionChanged: boolean;2061 readonly asSupportedVersionChanged: ITuple<[XcmV1MultiLocation, u32]>;2062 readonly isNotifyTargetSendFail: boolean;2063 readonly asNotifyTargetSendFail: ITuple<[XcmV1MultiLocation, u64, XcmV2TraitsError]>;2064 readonly isNotifyTargetMigrationFail: boolean;2065 readonly asNotifyTargetMigrationFail: ITuple<[XcmVersionedMultiLocation, u64]>;2066 readonly type: 'Attempted' | 'Sent' | 'UnexpectedResponse' | 'ResponseReady' | 'Notified' | 'NotifyOverweight' | 'NotifyDispatchError' | 'NotifyDecodeFailed' | 'InvalidResponder' | 'InvalidResponderVersion' | 'ResponseTaken' | 'AssetsTrapped' | 'VersionChangeNotified' | 'SupportedVersionChanged' | 'NotifyTargetSendFail' | 'NotifyTargetMigrationFail';2067 }20682069 /** @name XcmV2TraitsOutcome (249) */2070 export interface XcmV2TraitsOutcome extends Enum {2071 readonly isComplete: boolean;2072 readonly asComplete: u64;2073 readonly isIncomplete: boolean;2074 readonly asIncomplete: ITuple<[u64, XcmV2TraitsError]>;2075 readonly isError: boolean;2076 readonly asError: XcmV2TraitsError;2077 readonly type: 'Complete' | 'Incomplete' | 'Error';2078 }20792080 /** @name CumulusPalletXcmEvent (251) */2081 export interface CumulusPalletXcmEvent extends Enum {2082 readonly isInvalidFormat: boolean;2083 readonly asInvalidFormat: U8aFixed;2084 readonly isUnsupportedVersion: boolean;2085 readonly asUnsupportedVersion: U8aFixed;2086 readonly isExecutedDownward: boolean;2087 readonly asExecutedDownward: ITuple<[U8aFixed, XcmV2TraitsOutcome]>;2088 readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward';2089 }20902091 /** @name CumulusPalletDmpQueueEvent (252) */2092 export interface CumulusPalletDmpQueueEvent extends Enum {2093 readonly isInvalidFormat: boolean;2094 readonly asInvalidFormat: U8aFixed;2095 readonly isUnsupportedVersion: boolean;2096 readonly asUnsupportedVersion: U8aFixed;2097 readonly isExecutedDownward: boolean;2098 readonly asExecutedDownward: ITuple<[U8aFixed, XcmV2TraitsOutcome]>;2099 readonly isWeightExhausted: boolean;2100 readonly asWeightExhausted: ITuple<[U8aFixed, u64, u64]>;2101 readonly isOverweightEnqueued: boolean;2102 readonly asOverweightEnqueued: ITuple<[U8aFixed, u64, u64]>;2103 readonly isOverweightServiced: boolean;2104 readonly asOverweightServiced: ITuple<[u64, u64]>;2105 readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward' | 'WeightExhausted' | 'OverweightEnqueued' | 'OverweightServiced';2106 }21072108 /** @name PalletUniqueRawEvent (253) */2109 export interface PalletUniqueRawEvent extends Enum {2110 readonly isCollectionSponsorRemoved: boolean;2111 readonly asCollectionSponsorRemoved: u32;2112 readonly isCollectionAdminAdded: boolean;2113 readonly asCollectionAdminAdded: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;2114 readonly isCollectionOwnedChanged: boolean;2115 readonly asCollectionOwnedChanged: ITuple<[u32, AccountId32]>;2116 readonly isCollectionSponsorSet: boolean;2117 readonly asCollectionSponsorSet: ITuple<[u32, AccountId32]>;2118 readonly isConstOnChainSchemaSet: boolean;2119 readonly asConstOnChainSchemaSet: u32;2120 readonly isSponsorshipConfirmed: boolean;2121 readonly asSponsorshipConfirmed: ITuple<[u32, AccountId32]>;2122 readonly isCollectionAdminRemoved: boolean;2123 readonly asCollectionAdminRemoved: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;2124 readonly isAllowListAddressRemoved: boolean;2125 readonly asAllowListAddressRemoved: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;2126 readonly isAllowListAddressAdded: boolean;2127 readonly asAllowListAddressAdded: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;2128 readonly isCollectionLimitSet: boolean;2129 readonly asCollectionLimitSet: u32;2130 readonly isMintPermissionSet: boolean;2131 readonly asMintPermissionSet: u32;2132 readonly isOffchainSchemaSet: boolean;2133 readonly asOffchainSchemaSet: u32;2134 readonly isPublicAccessModeSet: boolean;2135 readonly asPublicAccessModeSet: ITuple<[u32, UpDataStructsAccessMode]>;2136 readonly isSchemaVersionSet: boolean;2137 readonly asSchemaVersionSet: u32;2138 readonly type: 'CollectionSponsorRemoved' | 'CollectionAdminAdded' | 'CollectionOwnedChanged' | 'CollectionSponsorSet' | 'ConstOnChainSchemaSet' | 'SponsorshipConfirmed' | 'CollectionAdminRemoved' | 'AllowListAddressRemoved' | 'AllowListAddressAdded' | 'CollectionLimitSet' | 'MintPermissionSet' | 'OffchainSchemaSet' | 'PublicAccessModeSet' | 'SchemaVersionSet';2139 }21402141 /** @name PalletCommonEvent (254) */2142 export interface PalletCommonEvent extends Enum {2143 readonly isCollectionCreated: boolean;2144 readonly asCollectionCreated: ITuple<[u32, u8, AccountId32]>;2145 readonly isCollectionDestroyed: boolean;2146 readonly asCollectionDestroyed: u32;2147 readonly isItemCreated: boolean;2148 readonly asItemCreated: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;2149 readonly isItemDestroyed: boolean;2150 readonly asItemDestroyed: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;2151 readonly isTransfer: boolean;2152 readonly asTransfer: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;2153 readonly isApproved: boolean;2154 readonly asApproved: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;2155 readonly isCollectionPropertySet: boolean;2156 readonly asCollectionPropertySet: ITuple<[u32, Bytes]>;2157 readonly isCollectionPropertyDeleted: boolean;2158 readonly asCollectionPropertyDeleted: ITuple<[u32, Bytes]>;2159 readonly isTokenPropertySet: boolean;2160 readonly asTokenPropertySet: ITuple<[u32, u32, Bytes]>;2161 readonly isTokenPropertyDeleted: boolean;2162 readonly asTokenPropertyDeleted: ITuple<[u32, u32, Bytes]>;2163 readonly isPropertyPermissionSet: boolean;2164 readonly asPropertyPermissionSet: ITuple<[u32, Bytes]>;2165 readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'ItemCreated' | 'ItemDestroyed' | 'Transfer' | 'Approved' | 'CollectionPropertySet' | 'CollectionPropertyDeleted' | 'TokenPropertySet' | 'TokenPropertyDeleted' | 'PropertyPermissionSet';2166 }21672168 /** @name PalletStructureEvent (255) */2169 export interface PalletStructureEvent extends Enum {2170 readonly isExecuted: boolean;2171 readonly asExecuted: Result<Null, SpRuntimeDispatchError>;2172 readonly type: 'Executed';2173 }21742175 /** @name PalletEvmEvent (256) */2176 export interface PalletEvmEvent extends Enum {2177 readonly isLog: boolean;2178 readonly asLog: EthereumLog;2179 readonly isCreated: boolean;2180 readonly asCreated: H160;2181 readonly isCreatedFailed: boolean;2182 readonly asCreatedFailed: H160;2183 readonly isExecuted: boolean;2184 readonly asExecuted: H160;2185 readonly isExecutedFailed: boolean;2186 readonly asExecutedFailed: H160;2187 readonly isBalanceDeposit: boolean;2188 readonly asBalanceDeposit: ITuple<[AccountId32, H160, U256]>;2189 readonly isBalanceWithdraw: boolean;2190 readonly asBalanceWithdraw: ITuple<[AccountId32, H160, U256]>;2191 readonly type: 'Log' | 'Created' | 'CreatedFailed' | 'Executed' | 'ExecutedFailed' | 'BalanceDeposit' | 'BalanceWithdraw';2192 }21932194 /** @name EthereumLog (257) */2195 export interface EthereumLog extends Struct {2196 readonly address: H160;2197 readonly topics: Vec<H256>;2198 readonly data: Bytes;2199 }22002201 /** @name PalletEthereumEvent (258) */2202 export interface PalletEthereumEvent extends Enum {2203 readonly isExecuted: boolean;2204 readonly asExecuted: ITuple<[H160, H160, H256, EvmCoreErrorExitReason]>;2205 readonly type: 'Executed';2206 }22072208 /** @name EvmCoreErrorExitReason (259) */2209 export interface EvmCoreErrorExitReason extends Enum {2210 readonly isSucceed: boolean;2211 readonly asSucceed: EvmCoreErrorExitSucceed;2212 readonly isError: boolean;2213 readonly asError: EvmCoreErrorExitError;2214 readonly isRevert: boolean;2215 readonly asRevert: EvmCoreErrorExitRevert;2216 readonly isFatal: boolean;2217 readonly asFatal: EvmCoreErrorExitFatal;2218 readonly type: 'Succeed' | 'Error' | 'Revert' | 'Fatal';2219 }22202221 /** @name EvmCoreErrorExitSucceed (260) */2222 export interface EvmCoreErrorExitSucceed extends Enum {2223 readonly isStopped: boolean;2224 readonly isReturned: boolean;2225 readonly isSuicided: boolean;2226 readonly type: 'Stopped' | 'Returned' | 'Suicided';2227 }22282229 /** @name EvmCoreErrorExitError (261) */2230 export interface EvmCoreErrorExitError extends Enum {2231 readonly isStackUnderflow: boolean;2232 readonly isStackOverflow: boolean;2233 readonly isInvalidJump: boolean;2234 readonly isInvalidRange: boolean;2235 readonly isDesignatedInvalid: boolean;2236 readonly isCallTooDeep: boolean;2237 readonly isCreateCollision: boolean;2238 readonly isCreateContractLimit: boolean;2239 readonly isOutOfOffset: boolean;2240 readonly isOutOfGas: boolean;2241 readonly isOutOfFund: boolean;2242 readonly isPcUnderflow: boolean;2243 readonly isCreateEmpty: boolean;2244 readonly isOther: boolean;2245 readonly asOther: Text;2246 readonly isInvalidCode: boolean;2247 readonly type: 'StackUnderflow' | 'StackOverflow' | 'InvalidJump' | 'InvalidRange' | 'DesignatedInvalid' | 'CallTooDeep' | 'CreateCollision' | 'CreateContractLimit' | 'OutOfOffset' | 'OutOfGas' | 'OutOfFund' | 'PcUnderflow' | 'CreateEmpty' | 'Other' | 'InvalidCode';2248 }22492250 /** @name EvmCoreErrorExitRevert (264) */2251 export interface EvmCoreErrorExitRevert extends Enum {2252 readonly isReverted: boolean;2253 readonly type: 'Reverted';2254 }22552256 /** @name EvmCoreErrorExitFatal (265) */2257 export interface EvmCoreErrorExitFatal extends Enum {2258 readonly isNotSupported: boolean;2259 readonly isUnhandledInterrupt: boolean;2260 readonly isCallErrorAsFatal: boolean;2261 readonly asCallErrorAsFatal: EvmCoreErrorExitError;2262 readonly isOther: boolean;2263 readonly asOther: Text;2264 readonly type: 'NotSupported' | 'UnhandledInterrupt' | 'CallErrorAsFatal' | 'Other';2265 }22662267 /** @name FrameSystemPhase (266) */2268 export interface FrameSystemPhase extends Enum {2269 readonly isApplyExtrinsic: boolean;2270 readonly asApplyExtrinsic: u32;2271 readonly isFinalization: boolean;2272 readonly isInitialization: boolean;2273 readonly type: 'ApplyExtrinsic' | 'Finalization' | 'Initialization';2274 }22752276 /** @name FrameSystemLastRuntimeUpgradeInfo (268) */2277 export interface FrameSystemLastRuntimeUpgradeInfo extends Struct {2278 readonly specVersion: Compact<u32>;2279 readonly specName: Text;2280 }22812282 /** @name FrameSystemLimitsBlockWeights (269) */2283 export interface FrameSystemLimitsBlockWeights extends Struct {2284 readonly baseBlock: u64;2285 readonly maxBlock: u64;2286 readonly perClass: FrameSupportWeightsPerDispatchClassWeightsPerClass;2287 }22882289 /** @name FrameSupportWeightsPerDispatchClassWeightsPerClass (270) */2290 export interface FrameSupportWeightsPerDispatchClassWeightsPerClass extends Struct {2291 readonly normal: FrameSystemLimitsWeightsPerClass;2292 readonly operational: FrameSystemLimitsWeightsPerClass;2293 readonly mandatory: FrameSystemLimitsWeightsPerClass;2294 }22952296 /** @name FrameSystemLimitsWeightsPerClass (271) */2297 export interface FrameSystemLimitsWeightsPerClass extends Struct {2298 readonly baseExtrinsic: u64;2299 readonly maxExtrinsic: Option<u64>;2300 readonly maxTotal: Option<u64>;2301 readonly reserved: Option<u64>;2302 }23032304 /** @name FrameSystemLimitsBlockLength (273) */2305 export interface FrameSystemLimitsBlockLength extends Struct {2306 readonly max: FrameSupportWeightsPerDispatchClassU32;2307 }23082309 /** @name FrameSupportWeightsPerDispatchClassU32 (274) */2310 export interface FrameSupportWeightsPerDispatchClassU32 extends Struct {2311 readonly normal: u32;2312 readonly operational: u32;2313 readonly mandatory: u32;2314 }23152316 /** @name FrameSupportWeightsRuntimeDbWeight (275) */2317 export interface FrameSupportWeightsRuntimeDbWeight extends Struct {2318 readonly read: u64;2319 readonly write: u64;2320 }23212322 /** @name SpVersionRuntimeVersion (276) */2323 export interface SpVersionRuntimeVersion extends Struct {2324 readonly specName: Text;2325 readonly implName: Text;2326 readonly authoringVersion: u32;2327 readonly specVersion: u32;2328 readonly implVersion: u32;2329 readonly apis: Vec<ITuple<[U8aFixed, u32]>>;2330 readonly transactionVersion: u32;2331 readonly stateVersion: u8;2332 }23332334 /** @name FrameSystemError (280) */2335 export interface FrameSystemError extends Enum {2336 readonly isInvalidSpecName: boolean;2337 readonly isSpecVersionNeedsToIncrease: boolean;2338 readonly isFailedToExtractRuntimeVersion: boolean;2339 readonly isNonDefaultComposite: boolean;2340 readonly isNonZeroRefCount: boolean;2341 readonly isCallFiltered: boolean;2342 readonly type: 'InvalidSpecName' | 'SpecVersionNeedsToIncrease' | 'FailedToExtractRuntimeVersion' | 'NonDefaultComposite' | 'NonZeroRefCount' | 'CallFiltered';2343 }23442345 /** @name OrmlVestingModuleError (282) */2346 export interface OrmlVestingModuleError extends Enum {2347 readonly isZeroVestingPeriod: boolean;2348 readonly isZeroVestingPeriodCount: boolean;2349 readonly isInsufficientBalanceToLock: boolean;2350 readonly isTooManyVestingSchedules: boolean;2351 readonly isAmountLow: boolean;2352 readonly isMaxVestingSchedulesExceeded: boolean;2353 readonly type: 'ZeroVestingPeriod' | 'ZeroVestingPeriodCount' | 'InsufficientBalanceToLock' | 'TooManyVestingSchedules' | 'AmountLow' | 'MaxVestingSchedulesExceeded';2354 }23552356 /** @name CumulusPalletXcmpQueueInboundChannelDetails (284) */2357 export interface CumulusPalletXcmpQueueInboundChannelDetails extends Struct {2358 readonly sender: u32;2359 readonly state: CumulusPalletXcmpQueueInboundState;2360 readonly messageMetadata: Vec<ITuple<[u32, PolkadotParachainPrimitivesXcmpMessageFormat]>>;2361 }23622363 /** @name CumulusPalletXcmpQueueInboundState (285) */2364 export interface CumulusPalletXcmpQueueInboundState extends Enum {2365 readonly isOk: boolean;2366 readonly isSuspended: boolean;2367 readonly type: 'Ok' | 'Suspended';2368 }23692370 /** @name PolkadotParachainPrimitivesXcmpMessageFormat (288) */2371 export interface PolkadotParachainPrimitivesXcmpMessageFormat extends Enum {2372 readonly isConcatenatedVersionedXcm: boolean;2373 readonly isConcatenatedEncodedBlob: boolean;2374 readonly isSignals: boolean;2375 readonly type: 'ConcatenatedVersionedXcm' | 'ConcatenatedEncodedBlob' | 'Signals';2376 }23772378 /** @name CumulusPalletXcmpQueueOutboundChannelDetails (291) */2379 export interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct {2380 readonly recipient: u32;2381 readonly state: CumulusPalletXcmpQueueOutboundState;2382 readonly signalsExist: bool;2383 readonly firstIndex: u16;2384 readonly lastIndex: u16;2385 }23862387 /** @name CumulusPalletXcmpQueueOutboundState (292) */2388 export interface CumulusPalletXcmpQueueOutboundState extends Enum {2389 readonly isOk: boolean;2390 readonly isSuspended: boolean;2391 readonly type: 'Ok' | 'Suspended';2392 }23932394 /** @name CumulusPalletXcmpQueueQueueConfigData (294) */2395 export interface CumulusPalletXcmpQueueQueueConfigData extends Struct {2396 readonly suspendThreshold: u32;2397 readonly dropThreshold: u32;2398 readonly resumeThreshold: u32;2399 readonly thresholdWeight: u64;2400 readonly weightRestrictDecay: u64;2401 readonly xcmpMaxIndividualWeight: u64;2402 }24032404 /** @name CumulusPalletXcmpQueueError (296) */2405 export interface CumulusPalletXcmpQueueError extends Enum {2406 readonly isFailedToSend: boolean;2407 readonly isBadXcmOrigin: boolean;2408 readonly isBadXcm: boolean;2409 readonly isBadOverweightIndex: boolean;2410 readonly isWeightOverLimit: boolean;2411 readonly type: 'FailedToSend' | 'BadXcmOrigin' | 'BadXcm' | 'BadOverweightIndex' | 'WeightOverLimit';2412 }24132414 /** @name PalletXcmError (297) */2415 export interface PalletXcmError extends Enum {2416 readonly isUnreachable: boolean;2417 readonly isSendFailure: boolean;2418 readonly isFiltered: boolean;2419 readonly isUnweighableMessage: boolean;2420 readonly isDestinationNotInvertible: boolean;2421 readonly isEmpty: boolean;2422 readonly isCannotReanchor: boolean;2423 readonly isTooManyAssets: boolean;2424 readonly isInvalidOrigin: boolean;2425 readonly isBadVersion: boolean;2426 readonly isBadLocation: boolean;2427 readonly isNoSubscription: boolean;2428 readonly isAlreadySubscribed: boolean;2429 readonly type: 'Unreachable' | 'SendFailure' | 'Filtered' | 'UnweighableMessage' | 'DestinationNotInvertible' | 'Empty' | 'CannotReanchor' | 'TooManyAssets' | 'InvalidOrigin' | 'BadVersion' | 'BadLocation' | 'NoSubscription' | 'AlreadySubscribed';2430 }24312432 /** @name CumulusPalletXcmError (298) */2433 export type CumulusPalletXcmError = Null;24342435 /** @name CumulusPalletDmpQueueConfigData (299) */2436 export interface CumulusPalletDmpQueueConfigData extends Struct {2437 readonly maxIndividual: u64;2438 }24392440 /** @name CumulusPalletDmpQueuePageIndexData (300) */2441 export interface CumulusPalletDmpQueuePageIndexData extends Struct {2442 readonly beginUsed: u32;2443 readonly endUsed: u32;2444 readonly overweightCount: u64;2445 }24462447 /** @name CumulusPalletDmpQueueError (303) */2448 export interface CumulusPalletDmpQueueError extends Enum {2449 readonly isUnknown: boolean;2450 readonly isOverLimit: boolean;2451 readonly type: 'Unknown' | 'OverLimit';2452 }24532454 /** @name PalletUniqueError (307) */2455 export interface PalletUniqueError extends Enum {2456 readonly isCollectionDecimalPointLimitExceeded: boolean;2457 readonly isConfirmUnsetSponsorFail: boolean;2458 readonly isEmptyArgument: boolean;2459 readonly type: 'CollectionDecimalPointLimitExceeded' | 'ConfirmUnsetSponsorFail' | 'EmptyArgument';2460 }24612462 /** @name UpDataStructsCollection (308) */2463 export interface UpDataStructsCollection extends Struct {2464 readonly owner: AccountId32;2465 readonly mode: UpDataStructsCollectionMode;2466 readonly access: UpDataStructsAccessMode;2467 readonly name: Vec<u16>;2468 readonly description: Vec<u16>;2469 readonly tokenPrefix: Bytes;2470 readonly mintMode: bool;2471 readonly schemaVersion: UpDataStructsSchemaVersion;2472 readonly sponsorship: UpDataStructsSponsorshipState;2473 readonly limits: UpDataStructsCollectionLimits;2474 }24752476 /** @name UpDataStructsSponsorshipState (309) */2477 export interface UpDataStructsSponsorshipState extends Enum {2478 readonly isDisabled: boolean;2479 readonly isUnconfirmed: boolean;2480 readonly asUnconfirmed: AccountId32;2481 readonly isConfirmed: boolean;2482 readonly asConfirmed: AccountId32;2483 readonly type: 'Disabled' | 'Unconfirmed' | 'Confirmed';2484 }24852486 /** @name UpDataStructsProperties (310) */2487 export interface UpDataStructsProperties extends Struct {2488 readonly map: UpDataStructsPropertiesMapBoundedVec;2489 readonly consumedSpace: u32;2490 readonly spaceLimit: u32;2491 }24922493 /** @name UpDataStructsPropertiesMapBoundedVec (311) */2494 export interface UpDataStructsPropertiesMapBoundedVec extends BTreeMap<Bytes, Bytes> {}24952496 /** @name UpDataStructsPropertiesMapPropertyPermission (316) */2497 export interface UpDataStructsPropertiesMapPropertyPermission extends BTreeMap<Bytes, UpDataStructsPropertyPermission> {}24982499 /** @name UpDataStructsCollectionField (322) */2500 export interface UpDataStructsCollectionField extends Enum {2501 readonly isConstOnChainSchema: boolean;2502 readonly isOffchainSchema: boolean;2503 readonly type: 'ConstOnChainSchema' | 'OffchainSchema';2504 }25052506 /** @name UpDataStructsCollectionStats (325) */2507 export interface UpDataStructsCollectionStats extends Struct {2508 readonly created: u32;2509 readonly destroyed: u32;2510 readonly alive: u32;2511 }25122513 /** @name PhantomTypeUpDataStructsTokenData (326) */2514 export interface PhantomTypeUpDataStructsTokenData extends Vec<UpDataStructsTokenData> {}25152516 /** @name UpDataStructsTokenData (327) */2517 export interface UpDataStructsTokenData extends Struct {2518 readonly constData: Bytes;2519 readonly properties: Vec<UpDataStructsProperty>;2520 readonly owner: Option<PalletEvmAccountBasicCrossAccountIdRepr>;2521 }25222523 /** @name PhantomTypeUpDataStructsRpcCollection (330) */2524 export interface PhantomTypeUpDataStructsRpcCollection extends Vec<UpDataStructsRpcCollection> {}25252526 /** @name UpDataStructsRpcCollection (331) */2527 export interface UpDataStructsRpcCollection extends Struct {2528 readonly owner: AccountId32;2529 readonly mode: UpDataStructsCollectionMode;2530 readonly access: UpDataStructsAccessMode;2531 readonly name: Vec<u16>;2532 readonly description: Vec<u16>;2533 readonly tokenPrefix: Bytes;2534 readonly mintMode: bool;2535 readonly offchainSchema: Bytes;2536 readonly schemaVersion: UpDataStructsSchemaVersion;2537 readonly sponsorship: UpDataStructsSponsorshipState;2538 readonly limits: UpDataStructsCollectionLimits;2539 readonly constOnChainSchema: Bytes;2540 readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;2541 readonly properties: Vec<UpDataStructsProperty>;2542 }25432544 /** @name PhantomTypeUpDataStructsCollectionInfo (333) */2545 export interface PhantomTypeUpDataStructsCollectionInfo extends Vec<RmrkTypesCollectionInfo> {}25462547 /** @name RmrkTypesCollectionInfo (334) */2548 export interface RmrkTypesCollectionInfo extends Struct {2549 readonly issuer: AccountId32;2550 readonly metadata: Bytes;2551 readonly max: Option<u32>;2552 readonly symbol: Bytes;2553 readonly nftsCount: u32;2554 }25552556 /** @name PhantomTypeUpDataStructsNftInfo (338) */2557 export interface PhantomTypeUpDataStructsNftInfo extends Vec<RmrkTypesNftInfo> {}25582559 /** @name RmrkTypesNftInfo (339) */2560 export interface RmrkTypesNftInfo extends Struct {2561 readonly owner: RmrkTypesAccountIdOrCollectionNftTuple;2562 readonly royalty: Option<RmrkTypesRoyaltyInfo>;2563 readonly metadata: Bytes;2564 readonly equipped: bool;2565 readonly pending: bool;2566 }25672568 /** @name RmrkTypesAccountIdOrCollectionNftTuple (340) */2569 export interface RmrkTypesAccountIdOrCollectionNftTuple extends Enum {2570 readonly isAccountId: boolean;2571 readonly asAccountId: AccountId32;2572 readonly isCollectionAndNftTuple: boolean;2573 readonly asCollectionAndNftTuple: ITuple<[u32, u32]>;2574 readonly type: 'AccountId' | 'CollectionAndNftTuple';2575 }25762577 /** @name RmrkTypesRoyaltyInfo (342) */2578 export interface RmrkTypesRoyaltyInfo extends Struct {2579 readonly recipient: AccountId32;2580 readonly amount: Permill;2581 }25822583 /** @name PhantomTypeUpDataStructsResourceInfo (344) */2584 export interface PhantomTypeUpDataStructsResourceInfo extends Vec<RmrkTypesResourceInfo> {}25852586 /** @name RmrkTypesResourceInfo (345) */2587 export interface RmrkTypesResourceInfo extends Struct {2588 readonly id: Bytes;2589 readonly pending: bool;2590 readonly pendingRemoval: bool;2591 readonly parts: Option<Vec<u32>>;2592 readonly base: Option<u32>;2593 readonly src: Option<Bytes>;2594 readonly metadata: Option<Bytes>;2595 readonly slot: Option<u32>;2596 readonly license: Option<Bytes>;2597 readonly thumb: Option<Bytes>;2598 }25992600 /** @name PhantomTypeUpDataStructsPropertyInfo (351) */2601 export interface PhantomTypeUpDataStructsPropertyInfo extends Vec<RmrkTypesPropertyInfo> {}26022603 /** @name RmrkTypesPropertyInfo (352) */2604 export interface RmrkTypesPropertyInfo extends Struct {2605 readonly key: Bytes;2606 readonly value: Bytes;2607 }26082609 /** @name PhantomTypeUpDataStructsBaseInfo (356) */2610 export interface PhantomTypeUpDataStructsBaseInfo extends Vec<RmrkTypesBaseInfo> {}26112612 /** @name RmrkTypesBaseInfo (357) */2613 export interface RmrkTypesBaseInfo extends Struct {2614 readonly issuer: AccountId32;2615 readonly baseType: Bytes;2616 readonly symbol: Bytes;2617 }26182619 /** @name PhantomTypeUpDataStructsPartType (359) */2620 export interface PhantomTypeUpDataStructsPartType extends Vec<RmrkTypesPartType> {}26212622 /** @name RmrkTypesPartType (360) */2623 export interface RmrkTypesPartType extends Enum {2624 readonly isFixedPart: boolean;2625 readonly asFixedPart: RmrkTypesFixedPart;2626 readonly isSlotPart: boolean;2627 readonly asSlotPart: RmrkTypesSlotPart;2628 readonly type: 'FixedPart' | 'SlotPart';2629 }26302631 /** @name RmrkTypesFixedPart (362) */2632 export interface RmrkTypesFixedPart extends Struct {2633 readonly id: u32;2634 readonly z: u32;2635 readonly src: Bytes;2636 }26372638 /** @name RmrkTypesSlotPart (363) */2639 export interface RmrkTypesSlotPart extends Struct {2640 readonly id: u32;2641 readonly equippable: RmrkTypesEquippableList;2642 readonly src: Bytes;2643 readonly z: u32;2644 }26452646 /** @name RmrkTypesEquippableList (364) */2647 export interface RmrkTypesEquippableList extends Enum {2648 readonly isAll: boolean;2649 readonly isEmpty: boolean;2650 readonly isCustom: boolean;2651 readonly asCustom: Vec<u32>;2652 readonly type: 'All' | 'Empty' | 'Custom';2653 }26542655 /** @name PhantomTypeUpDataStructsTheme (366) */2656 export interface PhantomTypeUpDataStructsTheme extends Vec<RmrkTypesTheme> {}26572658 /** @name RmrkTypesTheme (367) */2659 export interface RmrkTypesTheme extends Struct {2660 readonly name: Bytes;2661 readonly properties: Vec<RmrkTypesThemeProperty>;2662 readonly inherit: bool;2663 }26642665 /** @name RmrkTypesThemeProperty (369) */2666 export interface RmrkTypesThemeProperty extends Struct {2667 readonly key: Bytes;2668 readonly value: Bytes;2669 }26702671 /** @name PhantomTypeUpDataStructsNftChild (371) */2672 export interface PhantomTypeUpDataStructsNftChild extends Vec<RmrkTypesNftChild> {}26732674 /** @name RmrkTypesNftChild (372) */2675 export interface RmrkTypesNftChild extends Struct {2676 readonly collectionId: u32;2677 readonly nftId: u32;2678 }26792680 /** @name PalletCommonError (374) */2681 export interface PalletCommonError extends Enum {2682 readonly isCollectionNotFound: boolean;2683 readonly isMustBeTokenOwner: boolean;2684 readonly isNoPermission: boolean;2685 readonly isPublicMintingNotAllowed: boolean;2686 readonly isAddressNotInAllowlist: boolean;2687 readonly isCollectionNameLimitExceeded: boolean;2688 readonly isCollectionDescriptionLimitExceeded: boolean;2689 readonly isCollectionTokenPrefixLimitExceeded: boolean;2690 readonly isTotalCollectionsLimitExceeded: boolean;2691 readonly isCollectionAdminCountExceeded: boolean;2692 readonly isCollectionLimitBoundsExceeded: boolean;2693 readonly isOwnerPermissionsCantBeReverted: boolean;2694 readonly isTransferNotAllowed: boolean;2695 readonly isAccountTokenLimitExceeded: boolean;2696 readonly isCollectionTokenLimitExceeded: boolean;2697 readonly isMetadataFlagFrozen: boolean;2698 readonly isTokenNotFound: boolean;2699 readonly isTokenValueTooLow: boolean;2700 readonly isApprovedValueTooLow: boolean;2701 readonly isCantApproveMoreThanOwned: boolean;2702 readonly isAddressIsZero: boolean;2703 readonly isUnsupportedOperation: boolean;2704 readonly isNotSufficientFounds: boolean;2705 readonly isNestingIsDisabled: boolean;2706 readonly isOnlyOwnerAllowedToNest: boolean;2707 readonly isSourceCollectionIsNotAllowedToNest: boolean;2708 readonly isCollectionFieldSizeExceeded: boolean;2709 readonly isNoSpaceForProperty: boolean;2710 readonly isPropertyLimitReached: boolean;2711 readonly isPropertyKeyIsTooLong: boolean;2712 readonly isInvalidCharacterInPropertyKey: boolean;2713 readonly isEmptyPropertyKey: boolean;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';2715 }27162717 /** @name PalletFungibleError (376) */2718 export interface PalletFungibleError extends Enum {2719 readonly isNotFungibleDataUsedToMintFungibleCollectionToken: boolean;2720 readonly isFungibleItemsHaveNoId: boolean;2721 readonly isFungibleItemsDontHaveData: boolean;2722 readonly isFungibleDisallowsNesting: boolean;2723 readonly isSettingPropertiesNotAllowed: boolean;2724 readonly type: 'NotFungibleDataUsedToMintFungibleCollectionToken' | 'FungibleItemsHaveNoId' | 'FungibleItemsDontHaveData' | 'FungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';2725 }27262727 /** @name PalletRefungibleItemData (377) */2728 export interface PalletRefungibleItemData extends Struct {2729 readonly constData: Bytes;2730 }27312732 /** @name PalletRefungibleError (381) */2733 export interface PalletRefungibleError extends Enum {2734 readonly isNotRefungibleDataUsedToMintFungibleCollectionToken: boolean;2735 readonly isWrongRefungiblePieces: boolean;2736 readonly isRefungibleDisallowsNesting: boolean;2737 readonly isSettingPropertiesNotAllowed: boolean;2738 readonly type: 'NotRefungibleDataUsedToMintFungibleCollectionToken' | 'WrongRefungiblePieces' | 'RefungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';2739 }27402741 /** @name PalletNonfungibleItemData (382) */2742 export interface PalletNonfungibleItemData extends Struct {2743 readonly constData: Bytes;2744 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;2745 }27462747 /** @name PalletNonfungibleError (383) */2748 export interface PalletNonfungibleError extends Enum {2749 readonly isNotNonfungibleDataUsedToMintFungibleCollectionToken: boolean;2750 readonly isNonfungibleItemsHaveNoAmount: boolean;2751 readonly type: 'NotNonfungibleDataUsedToMintFungibleCollectionToken' | 'NonfungibleItemsHaveNoAmount';2752 }27532754 /** @name PalletStructureError (384) */2755 export interface PalletStructureError extends Enum {2756 readonly isOuroborosDetected: boolean;2757 readonly isDepthLimit: boolean;2758 readonly isTokenNotFound: boolean;2759 readonly type: 'OuroborosDetected' | 'DepthLimit' | 'TokenNotFound';2760 }27612762 /** @name PalletEvmError (387) */2763 export interface PalletEvmError extends Enum {2764 readonly isBalanceLow: boolean;2765 readonly isFeeOverflow: boolean;2766 readonly isPaymentOverflow: boolean;2767 readonly isWithdrawFailed: boolean;2768 readonly isGasPriceTooLow: boolean;2769 readonly isInvalidNonce: boolean;2770 readonly type: 'BalanceLow' | 'FeeOverflow' | 'PaymentOverflow' | 'WithdrawFailed' | 'GasPriceTooLow' | 'InvalidNonce';2771 }27722773 /** @name FpRpcTransactionStatus (390) */2774 export interface FpRpcTransactionStatus extends Struct {2775 readonly transactionHash: H256;2776 readonly transactionIndex: u32;2777 readonly from: H160;2778 readonly to: Option<H160>;2779 readonly contractAddress: Option<H160>;2780 readonly logs: Vec<EthereumLog>;2781 readonly logsBloom: EthbloomBloom;2782 }27832784 /** @name EthbloomBloom (392) */2785 export interface EthbloomBloom extends U8aFixed {}27862787 /** @name EthereumReceiptReceiptV3 (394) */2788 export interface EthereumReceiptReceiptV3 extends Enum {2789 readonly isLegacy: boolean;2790 readonly asLegacy: EthereumReceiptEip658ReceiptData;2791 readonly isEip2930: boolean;2792 readonly asEip2930: EthereumReceiptEip658ReceiptData;2793 readonly isEip1559: boolean;2794 readonly asEip1559: EthereumReceiptEip658ReceiptData;2795 readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';2796 }27972798 /** @name EthereumReceiptEip658ReceiptData (395) */2799 export interface EthereumReceiptEip658ReceiptData extends Struct {2800 readonly statusCode: u8;2801 readonly usedGas: U256;2802 readonly logsBloom: EthbloomBloom;2803 readonly logs: Vec<EthereumLog>;2804 }28052806 /** @name EthereumBlock (396) */2807 export interface EthereumBlock extends Struct {2808 readonly header: EthereumHeader;2809 readonly transactions: Vec<EthereumTransactionTransactionV2>;2810 readonly ommers: Vec<EthereumHeader>;2811 }28122813 /** @name EthereumHeader (397) */2814 export interface EthereumHeader extends Struct {2815 readonly parentHash: H256;2816 readonly ommersHash: H256;2817 readonly beneficiary: H160;2818 readonly stateRoot: H256;2819 readonly transactionsRoot: H256;2820 readonly receiptsRoot: H256;2821 readonly logsBloom: EthbloomBloom;2822 readonly difficulty: U256;2823 readonly number: U256;2824 readonly gasLimit: U256;2825 readonly gasUsed: U256;2826 readonly timestamp: u64;2827 readonly extraData: Bytes;2828 readonly mixHash: H256;2829 readonly nonce: EthereumTypesHashH64;2830 }28312832 /** @name EthereumTypesHashH64 (398) */2833 export interface EthereumTypesHashH64 extends U8aFixed {}28342835 /** @name PalletEthereumError (403) */2836 export interface PalletEthereumError extends Enum {2837 readonly isInvalidSignature: boolean;2838 readonly isPreLogExists: boolean;2839 readonly type: 'InvalidSignature' | 'PreLogExists';2840 }28412842 /** @name PalletEvmCoderSubstrateError (404) */2843 export interface PalletEvmCoderSubstrateError extends Enum {2844 readonly isOutOfGas: boolean;2845 readonly isOutOfFund: boolean;2846 readonly type: 'OutOfGas' | 'OutOfFund';2847 }28482849 /** @name PalletEvmContractHelpersSponsoringModeT (405) */2850 export interface PalletEvmContractHelpersSponsoringModeT extends Enum {2851 readonly isDisabled: boolean;2852 readonly isAllowlisted: boolean;2853 readonly isGenerous: boolean;2854 readonly type: 'Disabled' | 'Allowlisted' | 'Generous';2855 }28562857 /** @name PalletEvmContractHelpersError (407) */2858 export interface PalletEvmContractHelpersError extends Enum {2859 readonly isNoPermission: boolean;2860 readonly type: 'NoPermission';2861 }28622863 /** @name PalletEvmMigrationError (408) */2864 export interface PalletEvmMigrationError extends Enum {2865 readonly isAccountNotEmpty: boolean;2866 readonly isAccountIsNotMigrating: boolean;2867 readonly type: 'AccountNotEmpty' | 'AccountIsNotMigrating';2868 }28692870 /** @name SpRuntimeMultiSignature (410) */2871 export interface SpRuntimeMultiSignature extends Enum {2872 readonly isEd25519: boolean;2873 readonly asEd25519: SpCoreEd25519Signature;2874 readonly isSr25519: boolean;2875 readonly asSr25519: SpCoreSr25519Signature;2876 readonly isEcdsa: boolean;2877 readonly asEcdsa: SpCoreEcdsaSignature;2878 readonly type: 'Ed25519' | 'Sr25519' | 'Ecdsa';2879 }28802881 /** @name SpCoreEd25519Signature (411) */2882 export interface SpCoreEd25519Signature extends U8aFixed {}28832884 /** @name SpCoreSr25519Signature (413) */2885 export interface SpCoreSr25519Signature extends U8aFixed {}28862887 /** @name SpCoreEcdsaSignature (414) */2888 export interface SpCoreEcdsaSignature extends U8aFixed {}28892890 /** @name FrameSystemExtensionsCheckSpecVersion (417) */2891 export type FrameSystemExtensionsCheckSpecVersion = Null;28922893 /** @name FrameSystemExtensionsCheckGenesis (418) */2894 export type FrameSystemExtensionsCheckGenesis = Null;28952896 /** @name FrameSystemExtensionsCheckNonce (421) */2897 export interface FrameSystemExtensionsCheckNonce extends Compact<u32> {}28982899 /** @name FrameSystemExtensionsCheckWeight (422) */2900 export type FrameSystemExtensionsCheckWeight = Null;29012902 /** @name PalletTemplateTransactionPaymentChargeTransactionPayment (423) */2903 export interface PalletTemplateTransactionPaymentChargeTransactionPayment extends Compact<u128> {}29042905 /** @name OpalRuntimeRuntime (424) */2906 export type OpalRuntimeRuntime = Null;29072908 /** @name PalletEthereumFakeTransactionFinalizer (425) */2909 export type PalletEthereumFakeTransactionFinalizer = Null;29102911} // declare moduletests/src/interfaces/unique/definitions.tsdiffbeforeafterboth--- a/tests/src/interfaces/unique/definitions.ts
+++ b/tests/src/interfaces/unique/definitions.ts
@@ -26,7 +26,7 @@
const collectionParam = {name: 'collection', type: 'u32'};
const tokenParam = {name: 'tokenId', type: 'u32'};
-const propertyKeysParam = {name: 'propertyKeys', type: 'Vec<String>'};
+const propertyKeysParam = {name: 'propertyKeys', type: 'Vec<String>', isOptional: true};
const crossAccountParam = (name = 'account') => ({name, type: CROSS_ACCOUNT_ID_TYPE});
const atParam = {name: 'at', type: 'Hash', isOptional: true};
tests/src/interfaces/unique/types.tsdiffbeforeafterboth--- a/tests/src/interfaces/unique/types.ts
+++ b/tests/src/interfaces/unique/types.ts
@@ -446,9 +446,6 @@
/** @name FrameSupportPalletId */
export interface FrameSupportPalletId extends U8aFixed {}
-/** @name FrameSupportStorageBoundedBTreeSet */
-export interface FrameSupportStorageBoundedBTreeSet extends BTreeSet<u32> {}
-
/** @name FrameSupportTokensMiscBalanceStatus */
export interface FrameSupportTokensMiscBalanceStatus extends Enum {
readonly isFree: boolean;
@@ -875,7 +872,6 @@
readonly isCollectionDescriptionLimitExceeded: boolean;
readonly isCollectionTokenPrefixLimitExceeded: boolean;
readonly isTotalCollectionsLimitExceeded: boolean;
- readonly isTokenVariableDataLimitExceeded: boolean;
readonly isCollectionAdminCountExceeded: boolean;
readonly isCollectionLimitBoundsExceeded: boolean;
readonly isOwnerPermissionsCantBeReverted: boolean;
@@ -896,10 +892,10 @@
readonly isCollectionFieldSizeExceeded: boolean;
readonly isNoSpaceForProperty: boolean;
readonly isPropertyLimitReached: boolean;
- readonly isUnableToReadUnboundedKeys: boolean;
+ readonly isPropertyKeyIsTooLong: boolean;
readonly isInvalidCharacterInPropertyKey: boolean;
readonly isEmptyPropertyKey: boolean;
- 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';
+ 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';
}
/** @name PalletCommonEvent */
@@ -1115,7 +1111,6 @@
/** @name PalletNonfungibleItemData */
export interface PalletNonfungibleItemData extends Struct {
readonly constData: Bytes;
- readonly variableData: Bytes;
readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;
}
@@ -1131,7 +1126,6 @@
/** @name PalletRefungibleItemData */
export interface PalletRefungibleItemData extends Struct {
readonly constData: Bytes;
- readonly variableData: Bytes;
}
/** @name PalletStructureCall */
@@ -1438,17 +1432,6 @@
readonly collectionId: u32;
readonly itemId: u32;
readonly value: u128;
- } & Struct;
- readonly isSetVariableMetaData: boolean;
- readonly asSetVariableMetaData: {
- readonly collectionId: u32;
- readonly itemId: u32;
- readonly data: Bytes;
- } & Struct;
- readonly isSetMetaUpdatePermissionFlag: boolean;
- readonly asSetMetaUpdatePermissionFlag: {
- readonly collectionId: u32;
- readonly value: UpDataStructsMetaUpdatePermission;
} & Struct;
readonly isSetSchemaVersion: boolean;
readonly asSetSchemaVersion: {
@@ -1470,7 +1453,7 @@
readonly collectionId: u32;
readonly newLimit: UpDataStructsCollectionLimits;
} & Struct;
- 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';
+ 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';
}
/** @name PalletUniqueError */
@@ -1632,34 +1615,34 @@
}
/** @name PhantomTypeUpDataStructsBaseInfo */
-export interface PhantomTypeUpDataStructsBaseInfo extends Vec<Lookup359> {}
+export interface PhantomTypeUpDataStructsBaseInfo extends Vec<Lookup357> {}
/** @name PhantomTypeUpDataStructsCollectionInfo */
-export interface PhantomTypeUpDataStructsCollectionInfo extends Vec<Lookup336> {}
+export interface PhantomTypeUpDataStructsCollectionInfo extends Vec<Lookup334> {}
/** @name PhantomTypeUpDataStructsNftChild */
-export interface PhantomTypeUpDataStructsNftChild extends Vec<Lookup374> {}
+export interface PhantomTypeUpDataStructsNftChild extends Vec<Lookup372> {}
/** @name PhantomTypeUpDataStructsNftInfo */
-export interface PhantomTypeUpDataStructsNftInfo extends Vec<Lookup341> {}
+export interface PhantomTypeUpDataStructsNftInfo extends Vec<Lookup339> {}
/** @name PhantomTypeUpDataStructsPartType */
-export interface PhantomTypeUpDataStructsPartType extends Vec<Lookup362> {}
+export interface PhantomTypeUpDataStructsPartType extends Vec<Lookup360> {}
/** @name PhantomTypeUpDataStructsPropertyInfo */
-export interface PhantomTypeUpDataStructsPropertyInfo extends Vec<Lookup354> {}
+export interface PhantomTypeUpDataStructsPropertyInfo extends Vec<Lookup352> {}
/** @name PhantomTypeUpDataStructsResourceInfo */
-export interface PhantomTypeUpDataStructsResourceInfo extends Vec<Lookup347> {}
+export interface PhantomTypeUpDataStructsResourceInfo extends Vec<Lookup345> {}
/** @name PhantomTypeUpDataStructsRpcCollection */
-export interface PhantomTypeUpDataStructsRpcCollection extends Vec<Lookup333> {}
+export interface PhantomTypeUpDataStructsRpcCollection extends Vec<Lookup331> {}
/** @name PhantomTypeUpDataStructsTheme */
-export interface PhantomTypeUpDataStructsTheme extends Vec<Lookup369> {}
+export interface PhantomTypeUpDataStructsTheme extends Vec<Lookup367> {}
/** @name PhantomTypeUpDataStructsTokenData */
-export interface PhantomTypeUpDataStructsTokenData extends Vec<Lookup329> {}
+export interface PhantomTypeUpDataStructsTokenData extends Vec<Lookup327> {}
/** @name PolkadotCorePrimitivesInboundDownwardMessage */
export interface PolkadotCorePrimitivesInboundDownwardMessage extends Struct {
@@ -1963,7 +1946,6 @@
readonly schemaVersion: UpDataStructsSchemaVersion;
readonly sponsorship: UpDataStructsSponsorshipState;
readonly limits: UpDataStructsCollectionLimits;
- readonly metaUpdatePermission: UpDataStructsMetaUpdatePermission;
}
/** @name UpDataStructsCollectionField */
@@ -2015,7 +1997,6 @@
readonly pendingSponsor: Option<AccountId32>;
readonly limits: Option<UpDataStructsCollectionLimits>;
readonly constOnChainSchema: Bytes;
- readonly metaUpdatePermission: Option<UpDataStructsMetaUpdatePermission>;
readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;
readonly properties: Vec<UpDataStructsProperty>;
}
@@ -2052,14 +2033,12 @@
/** @name UpDataStructsCreateNftData */
export interface UpDataStructsCreateNftData extends Struct {
readonly constData: Bytes;
- readonly variableData: Bytes;
readonly properties: Vec<UpDataStructsProperty>;
}
/** @name UpDataStructsCreateNftExData */
export interface UpDataStructsCreateNftExData extends Struct {
readonly constData: Bytes;
- readonly variableData: Bytes;
readonly properties: Vec<UpDataStructsProperty>;
readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;
}
@@ -2067,31 +2046,21 @@
/** @name UpDataStructsCreateReFungibleData */
export interface UpDataStructsCreateReFungibleData extends Struct {
readonly constData: Bytes;
- readonly variableData: Bytes;
readonly pieces: u128;
}
/** @name UpDataStructsCreateRefungibleExData */
export interface UpDataStructsCreateRefungibleExData extends Struct {
readonly constData: Bytes;
- readonly variableData: Bytes;
readonly users: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>;
}
-/** @name UpDataStructsMetaUpdatePermission */
-export interface UpDataStructsMetaUpdatePermission extends Enum {
- readonly isItemOwner: boolean;
- readonly isAdmin: boolean;
- readonly isNone: boolean;
- readonly type: 'ItemOwner' | 'Admin' | 'None';
-}
-
/** @name UpDataStructsNestingRule */
export interface UpDataStructsNestingRule extends Enum {
readonly isDisabled: boolean;
readonly isOwner: boolean;
readonly isOwnerRestricted: boolean;
- readonly asOwnerRestricted: FrameSupportStorageBoundedBTreeSet;
+ readonly asOwnerRestricted: BTreeSet<u32>;
readonly type: 'Disabled' | 'Owner' | 'OwnerRestricted';
}
@@ -2141,7 +2110,6 @@
readonly sponsorship: UpDataStructsSponsorshipState;
readonly limits: UpDataStructsCollectionLimits;
readonly constOnChainSchema: Bytes;
- readonly metaUpdatePermission: UpDataStructsMetaUpdatePermission;
readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;
readonly properties: Vec<UpDataStructsProperty>;
}
tests/src/metadataUpdate.test.tsdiffbeforeafterboth--- a/tests/src/metadataUpdate.test.ts
+++ /dev/null
@@ -1,214 +0,0 @@
-// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.
-// This file is part of Unique Network.
-
-// Unique Network is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-
-// Unique Network is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
-
-import chai from 'chai';
-import chaiAsPromised from 'chai-as-promised';
-import privateKey from './substrate/privateKey';
-import usingApi from './substrate/substrate-api';
-import {
- createItemExpectSuccess,
- createCollectionExpectSuccess,
- enablePublicMintingExpectSuccess,
- enableAllowListExpectSuccess,
- setMetadataUpdatePermissionFlagExpectSuccess,
- setVariableMetaDataExpectSuccess,
- setMintPermissionExpectSuccess,
- addToAllowListExpectSuccess,
- addCollectionAdminExpectSuccess,
- setVariableMetaDataExpectFailure,
- setMetadataUpdatePermissionFlagExpectFailure,
-} from './util/helpers';
-
-chai.use(chaiAsPromised);
-
-describe('Metadata update permissions with ItemOwner flag', () => {
- it('ItemOwner can set variable metadata with ItemOwner permission flag', async () => {
- await usingApi(async () => {
- const alice = privateKey('//Alice');
-
- const data = [1, 2, 254, 255];
-
- // nft
- const nftCollectionId = await createCollectionExpectSuccess();
- const newNftTokenId = await createItemExpectSuccess(alice, nftCollectionId, 'NFT');
- await setMetadataUpdatePermissionFlagExpectSuccess(alice, nftCollectionId, 'ItemOwner');
-
- await setVariableMetaDataExpectSuccess(alice, nftCollectionId, newNftTokenId, data);
- });
- });
-
- it('Admin can\'n set variable metadata with ItemOwner permission flag', async () => {
- await usingApi(async () => {
- const alice = privateKey('//Alice');
- const bob = privateKey('//Bob');
-
- const data = [1, 2, 254, 255];
-
- // nft
- const nftCollectionId = await createCollectionExpectSuccess();
- const newNftTokenId = await createItemExpectSuccess(alice, nftCollectionId, 'NFT');
- await setMetadataUpdatePermissionFlagExpectSuccess(alice, nftCollectionId, 'ItemOwner');
-
- await setMintPermissionExpectSuccess(alice, nftCollectionId, true);
- await addToAllowListExpectSuccess(alice, nftCollectionId, bob.address);
- await addCollectionAdminExpectSuccess(alice, nftCollectionId, bob.address);
-
- await setVariableMetaDataExpectFailure(bob, nftCollectionId, newNftTokenId, data);
- });
- });
-
- it('User can\'n set variable metadata with ItemOwner permission flag', async () => {
- await usingApi(async () => {
- const alice = privateKey('//Alice');
- const bob = privateKey('//Bob');
-
- const data = [1, 2, 254, 255];
-
- // nft
- const nftCollectionId = await createCollectionExpectSuccess();
- const newNftTokenId = await createItemExpectSuccess(alice, nftCollectionId, 'NFT');
- await setMetadataUpdatePermissionFlagExpectSuccess(alice, nftCollectionId, 'ItemOwner');
-
- await setMintPermissionExpectSuccess(alice, nftCollectionId, true);
- await setVariableMetaDataExpectFailure(bob, nftCollectionId, newNftTokenId, data);
- });
- });
-});
-
-describe('Metadata update permissions with Admin flag', () => {
- it('Admin can set variable metadata with Admin permission flag', async () => {
- await usingApi(async () => {
- const alice = privateKey('//Alice');
- const bob = privateKey('//Bob');
-
- const data = [1, 2, 254, 255];
-
- // nft
- const nftCollectionId = await createCollectionExpectSuccess();
- const newNftTokenId = await createItemExpectSuccess(alice, nftCollectionId, 'NFT');
- await setMetadataUpdatePermissionFlagExpectSuccess(alice, nftCollectionId, 'Admin');
-
- await setMintPermissionExpectSuccess(alice, nftCollectionId, true);
- await addToAllowListExpectSuccess(alice, nftCollectionId, bob.address);
- await addCollectionAdminExpectSuccess(alice, nftCollectionId, bob.address);
-
- await setVariableMetaDataExpectSuccess(bob, nftCollectionId, newNftTokenId, data);
- });
- });
-
- it('User can\'n can set variable metadata with Admin permission flag', async () => {
- await usingApi(async () => {
- const alice = privateKey('//Alice');
- const bob = privateKey('//Bob');
-
- const data = [1, 2, 254, 255];
-
- // nft
- const nftCollectionId = await createCollectionExpectSuccess();
- const newNftTokenId = await createItemExpectSuccess(alice, nftCollectionId, 'NFT');
- await setMetadataUpdatePermissionFlagExpectSuccess(alice, nftCollectionId, 'Admin');
-
- await setMintPermissionExpectSuccess(alice, nftCollectionId, true);
- await addToAllowListExpectSuccess(alice, nftCollectionId, bob.address);
- await addCollectionAdminExpectSuccess(alice, nftCollectionId, bob.address);
-
- await setVariableMetaDataExpectSuccess(bob, nftCollectionId, newNftTokenId, data);
- });
- });
-
- it('ItemOwner can\'n can set variable metadata with Admin permission flag', async () => {
- await usingApi(async () => {
- const alice = privateKey('//Alice');
- const bob = privateKey('//Bob');
-
- const data = [1, 2, 254, 255];
-
- // nft
- const nftCollectionId = await createCollectionExpectSuccess();
- await enablePublicMintingExpectSuccess(alice, nftCollectionId);
- await addToAllowListExpectSuccess(alice, nftCollectionId, bob.address);
- await enableAllowListExpectSuccess(alice, nftCollectionId);
- const newNftTokenId = await createItemExpectSuccess(bob, nftCollectionId, 'NFT');
- await setMetadataUpdatePermissionFlagExpectSuccess(alice, nftCollectionId, 'Admin');
-
- await setVariableMetaDataExpectFailure(bob, nftCollectionId, newNftTokenId, data);
- });
- });
-});
-
-describe('Metadata update permissions with None flag', () => {
- it('Nobody can set variable metadata with None flag (Regular)', async () => {
- await usingApi(async () => {
- const alice = privateKey('//Alice');
- const bob = privateKey('//Bob');
-
- const data = [1, 2, 254, 255];
-
- // nft
- const nftCollectionId = await createCollectionExpectSuccess();
- const newNftTokenId = await createItemExpectSuccess(alice, nftCollectionId, 'NFT');
- await setMetadataUpdatePermissionFlagExpectSuccess(alice, nftCollectionId, 'None');
-
- await setVariableMetaDataExpectFailure(bob, nftCollectionId, newNftTokenId, data);
- });
- });
-
- it('Nobody can set variable metadata with None flag (Admin)', async () => {
- await usingApi(async () => {
- const alice = privateKey('//Alice');
- const bob = privateKey('//Bob');
-
- const data = [1, 2, 254, 255];
-
- // nft
- const nftCollectionId = await createCollectionExpectSuccess();
- const newNftTokenId = await createItemExpectSuccess(alice, nftCollectionId, 'NFT');
- await setMetadataUpdatePermissionFlagExpectSuccess(alice, nftCollectionId, 'None');
-
- await setMintPermissionExpectSuccess(alice, nftCollectionId, true);
- await addToAllowListExpectSuccess(alice, nftCollectionId, bob.address);
- await addCollectionAdminExpectSuccess(alice, nftCollectionId, bob.address);
-
- await setVariableMetaDataExpectFailure(bob, nftCollectionId, newNftTokenId, data);
- });
- });
-
- it('Nobody can set variable metadata with None flag (ItemOwner)', async () => {
- await usingApi(async () => {
- const alice = privateKey('//Alice');
-
- const data = [1, 2, 254, 255];
-
- // nft
- const nftCollectionId = await createCollectionExpectSuccess();
- const newNftTokenId = await createItemExpectSuccess(alice, nftCollectionId, 'NFT');
- await setMetadataUpdatePermissionFlagExpectSuccess(alice, nftCollectionId, 'None');
-
- await setVariableMetaDataExpectFailure(alice, nftCollectionId, newNftTokenId, data);
- });
- });
-
- it('Nobody can set variable metadata flag after freeze', async () => {
- await usingApi(async () => {
- const alice = privateKey('//Alice');
-
- // nft
- const nftCollectionId = await createCollectionExpectSuccess();
- await setMetadataUpdatePermissionFlagExpectSuccess(alice, nftCollectionId, 'None');
- await setMetadataUpdatePermissionFlagExpectFailure(alice, nftCollectionId, 'Admin');
- });
- });
-});
tests/src/nesting/migration-check.test.tsdiffbeforeafterboth--- a/tests/src/nesting/migration-check.test.ts
+++ b/tests/src/nesting/migration-check.test.ts
@@ -37,7 +37,6 @@
accountTokenOwnershipLimit: 3,
},
constOnChainSchema: '0x333333',
- metaUpdatePermission: 'Admin',
});
const events = await submitTransactionAsync(alice, tx);
const result = getCreateCollectionResult(events);
tests/src/nesting/rules-smoke.test.tsdiffbeforeafterboth--- a/tests/src/nesting/rules-smoke.test.ts
+++ b/tests/src/nesting/rules-smoke.test.ts
@@ -23,7 +23,7 @@
nestTarget = {Ethereum: tokenIdToAddress(collection, token)};
});
});
-
+
it('called for fungible', async () => {
await usingApi(async api => {
const collection = await createCollectionExpectSuccess({mode: {type: 'Fungible',decimalPoints:0}});
@@ -39,7 +39,7 @@
it('called for nonfungible', async () => {
await usingApi(async api => {
const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
- await expect(executeTransaction(api, alice, api.tx.unique.createItem(collection, nestTarget, {NFT: {ConstData: [], VariableData: {}}})))
+ await expect(executeTransaction(api, alice, api.tx.unique.createItem(collection, nestTarget, {NFT: {ConstData: []}})))
.to.be.rejectedWith(/^common\.SourceCollectionIsNotAllowedToNest$/);
const token = await createItemExpectSuccess(alice, collection, 'NFT', {Substrate: alice.address});
@@ -51,7 +51,7 @@
it('called for refungible', async () => {
await usingApi(async api => {
const collection = await createCollectionExpectSuccess({mode: {type: 'ReFungible'}});
- await expect(executeTransaction(api, alice, api.tx.unique.createItem(collection, nestTarget, {ReFungible: {ConstData: [], VariableData: {}}})))
+ await expect(executeTransaction(api, alice, api.tx.unique.createItem(collection, nestTarget, {ReFungible: {ConstData: []}})))
.to.be.rejectedWith(/^common\.SourceCollectionIsNotAllowedToNest$/);
const token = await createItemExpectSuccess(alice, collection, 'ReFungible', {Substrate: alice.address});
@@ -60,4 +60,3 @@
});
});
});
-
\ No newline at end of file
tests/src/setVariableMetaData.test.tsdiffbeforeafterboth--- a/tests/src/setVariableMetaData.test.ts
+++ /dev/null
@@ -1,150 +0,0 @@
-// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.
-// This file is part of Unique Network.
-
-// Unique Network is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-
-// Unique Network is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
-
-import {IKeyringPair} from '@polkadot/types/types';
-import chai from 'chai';
-import chaiAsPromised from 'chai-as-promised';
-import privateKey from './substrate/privateKey';
-import usingApi from './substrate/substrate-api';
-import {
- burnItemExpectSuccess,
- createCollectionExpectSuccess,
- createItemExpectSuccess,
- destroyCollectionExpectSuccess,
- findNotExistingCollection,
- setVariableMetaDataExpectFailure,
- setVariableMetaDataExpectSuccess,
- addCollectionAdminExpectSuccess,
- setMetadataUpdatePermissionFlagExpectSuccess,
- getVariableMetadata,
-} from './util/helpers';
-
-chai.use(chaiAsPromised);
-const expect = chai.expect;
-
-describe('Integration Test setVariableMetaData', () => {
- const data = [1, 2, 254, 255];
-
- let alice: IKeyringPair;
- let collectionId: number;
- let tokenId: number;
- before(async () => {
- await usingApi(async () => {
- alice = privateKey('//Alice');
- collectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
- tokenId = await createItemExpectSuccess(alice, collectionId, 'NFT');
- });
- });
-
- it('execute setVariableMetaData', async () => {
- await setVariableMetaDataExpectSuccess(alice, collectionId, tokenId, data);
- });
-
- it('verify data was set', async () => {
- await usingApi(async api => {
- expect(await getVariableMetadata(api, collectionId, tokenId)).to.deep.equal(data);
- });
- });
-});
-
-describe('Integration Test collection admin setVariableMetaData', () => {
- const data = [1, 2, 254, 255];
-
- let alice: IKeyringPair;
- let bob: IKeyringPair;
- let collectionId: number;
- let tokenId: number;
- before(async () => {
- await usingApi(async () => {
- alice = privateKey('//Alice');
- bob = privateKey('//Bob');
- collectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
- tokenId = await createItemExpectSuccess(alice, collectionId, 'NFT');
- await setMetadataUpdatePermissionFlagExpectSuccess(alice, collectionId, 'Admin');
- await addCollectionAdminExpectSuccess(alice, collectionId, bob.address);
- });
- });
-
- it('execute setVariableMetaData', async () => {
- await setVariableMetaDataExpectSuccess(bob, collectionId, tokenId, data);
- });
-
- it('verify data was set', async () => {
- await usingApi(async api => {
- expect(await getVariableMetadata(api, collectionId, tokenId)).to.deep.equal(data);
- });
- });
-});
-
-describe('Negative Integration Test setVariableMetaData', () => {
- const data = [1];
-
- let alice: IKeyringPair;
- let bob: IKeyringPair;
-
- let validCollectionId: number;
- let validTokenId: number;
-
- before(async () => {
- await usingApi(async () => {
- alice = privateKey('//Alice');
- bob = privateKey('//Bob');
-
- validCollectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
- validTokenId = await createItemExpectSuccess(alice, validCollectionId, 'NFT');
- });
- });
-
- it('fails on not existing collection id', async () => {
- await usingApi(async api => {
- const nonExistingCollectionId = await findNotExistingCollection(api);
- await setVariableMetaDataExpectFailure(alice, nonExistingCollectionId, 1, data);
- });
- });
- it('fails on removed collection id', async () => {
- const removedCollectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
- const removedCollectionTokenId = await createItemExpectSuccess(alice, removedCollectionId, 'NFT');
-
- await destroyCollectionExpectSuccess(removedCollectionId);
- await setVariableMetaDataExpectFailure(alice, removedCollectionId, removedCollectionTokenId, data);
- });
- it('fails on removed token', async () => {
- const removedTokenCollectionId = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
- const removedTokenId = await createItemExpectSuccess(alice, removedTokenCollectionId, 'NFT');
- await burnItemExpectSuccess(alice, removedTokenCollectionId, removedTokenId);
-
- await setVariableMetaDataExpectFailure(alice, removedTokenCollectionId, removedTokenId, data);
- });
- it('fails on not existing token', async () => {
- const nonExistingTokenId = validTokenId + 1;
-
- await setVariableMetaDataExpectFailure(alice, validCollectionId, nonExistingTokenId, data);
- });
- it('fails on too long data', async () => {
- const tooLongData = new Array(4097).fill(0xff);
-
- await setVariableMetaDataExpectFailure(alice, validCollectionId, validTokenId, tooLongData);
- });
- it('fails on fungible token', async () => {
- const fungibleCollectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});
- const fungibleTokenId = await createItemExpectSuccess(alice, fungibleCollectionId, 'Fungible');
-
- await setVariableMetaDataExpectFailure(alice, fungibleCollectionId, fungibleTokenId, data);
- });
- it('fails on bad sender', async () => {
- await setVariableMetaDataExpectFailure(bob, validCollectionId, validTokenId, data);
- });
-});
tests/src/setVariableMetadataSponsoringRateLimit.test.tsdiffbeforeafterboth--- a/tests/src/setVariableMetadataSponsoringRateLimit.test.ts
+++ /dev/null
@@ -1,121 +0,0 @@
-// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.
-// This file is part of Unique Network.
-
-// Unique Network is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-
-// Unique Network is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
-
-import {IKeyringPair} from '@polkadot/types/types';
-import {expect} from 'chai';
-import privateKey from './substrate/privateKey';
-import usingApi from './substrate/substrate-api';
-import {
- confirmSponsorshipExpectSuccess,
- createCollectionExpectSuccess,
- createItemExpectSuccess,
- findUnusedAddress,
- getDetailedCollectionInfo,
- setCollectionLimitsExpectSuccess,
- setCollectionSponsorExpectSuccess,
- setVariableMetaDataExpectFailure,
- setVariableMetaDataExpectSuccess,
-} from './util/helpers';
-
-describe('Integration Test setVariableMetadataSponsoringRateLimit', () => {
- let alice: IKeyringPair;
- let userWithNoBalance: IKeyringPair;
-
- before(async () => {
- await usingApi(async (api) => {
- alice = privateKey('//Alice');
- userWithNoBalance = await findUnusedAddress(api);
- });
- });
-
- it('sponsored setVariableMetaData can be called twice with pause for free', async () => {
- const collectionId = await createCollectionExpectSuccess();
- await setCollectionSponsorExpectSuccess(collectionId, alice.address);
- await confirmSponsorshipExpectSuccess(collectionId);
- await setCollectionLimitsExpectSuccess(alice, collectionId, {
- sponsoredDataRateLimit: {Blocks: 0},
- });
-
- const itemId = await createItemExpectSuccess(alice, collectionId, 'NFT', userWithNoBalance.address);
- await setVariableMetaDataExpectSuccess(userWithNoBalance, collectionId, itemId, [1, 2, 3]);
- await setVariableMetaDataExpectSuccess(userWithNoBalance, collectionId, itemId, [1, 2, 3]);
- });
-
- it('sponsored setVariableMetaData can\'t be called twice without pause for free', async () => {
- const collectionId = await createCollectionExpectSuccess();
- await setCollectionSponsorExpectSuccess(collectionId, alice.address);
- await confirmSponsorshipExpectSuccess(collectionId);
- await setCollectionLimitsExpectSuccess(alice, collectionId, {
- sponsoredDataRateLimit: {Blocks: 10},
- });
-
- const itemId = await createItemExpectSuccess(alice, collectionId, 'NFT', userWithNoBalance.address);
- await setVariableMetaDataExpectSuccess(userWithNoBalance, collectionId, itemId, [1, 2, 3]);
- await setVariableMetaDataExpectFailure(userWithNoBalance, collectionId, itemId, [1, 2, 3]);
- });
-
- it('sponsored setVariableMetaData can\'t be called for free with variable metadata above collection limits', async () => {
- const collectionId = await createCollectionExpectSuccess();
- await setCollectionSponsorExpectSuccess(collectionId, alice.address);
- await confirmSponsorshipExpectSuccess(collectionId);
- await setCollectionLimitsExpectSuccess(alice, collectionId, {
- sponsoredDataRateLimit: {Blocks: 0},
- sponsoredDataSize: 1,
- });
- const itemId = await createItemExpectSuccess(alice, collectionId, 'NFT', userWithNoBalance.address);
-
- await setVariableMetaDataExpectSuccess(userWithNoBalance, collectionId, itemId, [1]);
- await setVariableMetaDataExpectFailure(userWithNoBalance, collectionId, itemId, [1, 2]);
- });
-
- it('Default value of rate limit does not sponsor setting variable metadata', async () => {
- const collectionId = await createCollectionExpectSuccess();
- await setCollectionSponsorExpectSuccess(collectionId, alice.address);
- await confirmSponsorshipExpectSuccess(collectionId);
-
- const itemId = await createItemExpectSuccess(alice, collectionId, 'NFT', userWithNoBalance.address);
- await setVariableMetaDataExpectFailure(userWithNoBalance, collectionId, itemId, [1]);
- });
-
- it('sponsoring of data is disabled by default', async () => {
- await usingApi(async api => {
- const collectionId = await createCollectionExpectSuccess();
-
- const collection = (await getDetailedCollectionInfo(api, collectionId))!;
- // limit is none = default is used
- expect(collection?.limits.sponsoredDataRateLimit.isNone);
- });
- });
-
- it('sponsoring can be disabled explicitly', async () => {
- await usingApi(async api => {
- const collectionId = await createCollectionExpectSuccess();
-
- await setCollectionLimitsExpectSuccess(alice, collectionId, {sponsoredDataRateLimit: {Blocks: 6}});
- {
- const collection = (await getDetailedCollectionInfo(api, collectionId))!;
- expect(collection?.limits.sponsoredDataRateLimit.unwrap().asBlocks.toNumber()).to.equal(6);
- }
-
- await setCollectionLimitsExpectSuccess(alice, collectionId, {sponsoredDataRateLimit: 'SponsoringDisabled'});
- {
- const collection = (await getDetailedCollectionInfo(api, collectionId))!;
- // disabled sponsoring = default value
- expect(collection?.limits.sponsoredDataRateLimit.unwrap().isNone).to.true;
- }
- });
- });
-});
tests/src/util/helpers.tsdiffbeforeafterboth--- a/tests/src/util/helpers.ts
+++ b/tests/src/util/helpers.ts
@@ -142,7 +142,6 @@
export interface IReFungibleTokenDataType {
owner: IReFungibleOwner[];
constData: number[];
- variableData: number[];
}
export function uniqueEventMessage(events: EventRecord[]): IGetMessage {
@@ -648,28 +647,6 @@
const sender = privateKey(senderSeed);
const tx = api.tx.unique.confirmSponsorship(collectionId);
await expect(submitTransactionExpectFailAsync(sender, tx)).to.be.rejected;
- });
-}
-
-export async function setMetadataUpdatePermissionFlagExpectSuccess(sender: IKeyringPair, collectionId: number, flag: string) {
-
- await usingApi(async (api) => {
- const tx = api.tx.unique.setMetaUpdatePermissionFlag(collectionId, flag as any);
- const events = await submitTransactionAsync(sender, tx);
- const result = getGenericResult(events);
-
- expect(result.success).to.be.true;
- });
-}
-
-export async function setMetadataUpdatePermissionFlagExpectFailure(sender: IKeyringPair, collectionId: number, flag: string) {
-
- await usingApi(async (api) => {
- const tx = api.tx.unique.setMetaUpdatePermissionFlag(collectionId, flag as any);
- const events = await expect(submitTransactionExpectFailAsync(sender, tx)).to.be.rejected;
- const result = getGenericResult(events);
-
- expect(result.success).to.be.false;
});
}
@@ -794,23 +771,6 @@
});
}
-export async function setVariableMetaDataExpectSuccess(sender: IKeyringPair, collectionId: number, itemId: number, data: number[]) {
- await usingApi(async (api) => {
- const tx = api.tx.unique.setVariableMetaData(collectionId, itemId, '0x' + Buffer.from(data).toString('hex'));
- const events = await submitTransactionAsync(sender, tx);
- const result = getGenericResult(events);
-
- expect(result.success).to.be.true;
- });
-}
-
-export async function setVariableMetaDataExpectFailure(sender: IKeyringPair, collectionId: number, itemId: number, data: number[]) {
- await usingApi(async (api) => {
- const tx = api.tx.unique.setVariableMetaData(collectionId, itemId, '0x' + Buffer.from(data).toString('hex'));
- await expect(submitTransactionExpectFailAsync(sender, tx)).to.be.rejected;
- });
-}
-
export async function setOffchainSchemaExpectSuccess(sender: IKeyringPair, collectionId: number, data: number[]) {
await usingApi(async (api) => {
const tx = api.tx.unique.setOffchainSchema(collectionId, '0x' + Buffer.from(data).toString('hex'));
@@ -1137,13 +1097,6 @@
collectionId: number,
): Promise<string[]> {
return (await api.rpc.unique.adminlist(collectionId)).toHuman() as any;
-}
-export async function getVariableMetadata(
- api: ApiPromise,
- collectionId: number,
- tokenId: number,
-): Promise<number[]> {
- return [...(await api.rpc.unique.variableMetadata(collectionId, tokenId))];
}
export async function getConstMetadata(
api: ApiPromise,
@@ -1182,10 +1135,10 @@
const createData = {fungible: {value: 10}};
tx = api.tx.unique.createItem(collectionId, to, createData as any);
} else if (createMode === 'ReFungible') {
- const createData = {refungible: {const_data: [], variable_data: [], pieces: 100}};
+ const createData = {refungible: {const_data: [], pieces: 100}};
tx = api.tx.unique.createItem(collectionId, to, createData as any);
} else {
- const createData = {nft: {const_data: [], variable_data: []}};
+ const createData = {nft: {const_data: []}};
tx = api.tx.unique.createItem(collectionId, to, createData as any);
}