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.tsdiffbeforeafterboth--- a/tests/src/interfaces/types-lookup.ts
+++ b/tests/src/interfaces/types-lookup.ts
@@ -1493,17 +1493,6 @@
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: {
readonly collectionId: u32;
@@ -1524,7 +1513,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 UpDataStructsCollectionMode (156) */
@@ -1548,7 +1537,6 @@
readonly pendingSponsor: Option<AccountId32>;
readonly limits: Option<UpDataStructsCollectionLimits>;
readonly constOnChainSchema: Bytes;
- readonly metaUpdatePermission: Option<UpDataStructsMetaUpdatePermission>;
readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;
readonly properties: Vec<UpDataStructsProperty>;
}
@@ -1598,34 +1586,26 @@
readonly type: 'Disabled' | 'Owner' | 'OwnerRestricted';
}
- /** @name UpDataStructsMetaUpdatePermission (177) */
- export interface UpDataStructsMetaUpdatePermission extends Enum {
- readonly isItemOwner: boolean;
- readonly isAdmin: boolean;
- readonly isNone: boolean;
- readonly type: 'ItemOwner' | 'Admin' | 'None';
- }
-
- /** @name UpDataStructsPropertyKeyPermission (179) */
+ /** @name UpDataStructsPropertyKeyPermission (177) */
export interface UpDataStructsPropertyKeyPermission extends Struct {
readonly key: Bytes;
readonly permission: UpDataStructsPropertyPermission;
}
- /** @name UpDataStructsPropertyPermission (181) */
+ /** @name UpDataStructsPropertyPermission (179) */
export interface UpDataStructsPropertyPermission extends Struct {
readonly mutable: bool;
readonly collectionAdmin: bool;
readonly tokenOwner: bool;
}
- /** @name UpDataStructsProperty (184) */
+ /** @name UpDataStructsProperty (182) */
export interface UpDataStructsProperty extends Struct {
readonly key: Bytes;
readonly value: Bytes;
}
- /** @name PalletEvmAccountBasicCrossAccountIdRepr (186) */
+ /** @name PalletEvmAccountBasicCrossAccountIdRepr (184) */
export interface PalletEvmAccountBasicCrossAccountIdRepr extends Enum {
readonly isSubstrate: boolean;
readonly asSubstrate: AccountId32;
@@ -1634,7 +1614,7 @@
readonly type: 'Substrate' | 'Ethereum';
}
- /** @name UpDataStructsCreateItemData (188) */
+ /** @name UpDataStructsCreateItemData (186) */
export interface UpDataStructsCreateItemData extends Enum {
readonly isNft: boolean;
readonly asNft: UpDataStructsCreateNftData;
@@ -1645,26 +1625,24 @@
readonly type: 'Nft' | 'Fungible' | 'ReFungible';
}
- /** @name UpDataStructsCreateNftData (189) */
+ /** @name UpDataStructsCreateNftData (187) */
export interface UpDataStructsCreateNftData extends Struct {
readonly constData: Bytes;
- readonly variableData: Bytes;
readonly properties: Vec<UpDataStructsProperty>;
}
- /** @name UpDataStructsCreateFungibleData (191) */
+ /** @name UpDataStructsCreateFungibleData (189) */
export interface UpDataStructsCreateFungibleData extends Struct {
readonly value: u128;
}
- /** @name UpDataStructsCreateReFungibleData (192) */
+ /** @name UpDataStructsCreateReFungibleData (190) */
export interface UpDataStructsCreateReFungibleData extends Struct {
readonly constData: Bytes;
- readonly variableData: Bytes;
readonly pieces: u128;
}
- /** @name UpDataStructsCreateItemExData (196) */
+ /** @name UpDataStructsCreateItemExData (194) */
export interface UpDataStructsCreateItemExData extends Enum {
readonly isNft: boolean;
readonly asNft: Vec<UpDataStructsCreateNftExData>;
@@ -1677,28 +1655,26 @@
readonly type: 'Nft' | 'Fungible' | 'RefungibleMultipleItems' | 'RefungibleMultipleOwners';
}
- /** @name UpDataStructsCreateNftExData (198) */
+ /** @name UpDataStructsCreateNftExData (196) */
export interface UpDataStructsCreateNftExData extends Struct {
readonly constData: Bytes;
- readonly variableData: Bytes;
readonly properties: Vec<UpDataStructsProperty>;
readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;
}
- /** @name UpDataStructsCreateRefungibleExData (205) */
+ /** @name UpDataStructsCreateRefungibleExData (203) */
export interface UpDataStructsCreateRefungibleExData extends Struct {
readonly constData: Bytes;
- readonly variableData: Bytes;
readonly users: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>;
}
- /** @name PalletTemplateTransactionPaymentCall (207) */
+ /** @name PalletTemplateTransactionPaymentCall (205) */
export type PalletTemplateTransactionPaymentCall = Null;
- /** @name PalletStructureCall (208) */
+ /** @name PalletStructureCall (206) */
export type PalletStructureCall = Null;
- /** @name PalletEvmCall (209) */
+ /** @name PalletEvmCall (207) */
export interface PalletEvmCall extends Enum {
readonly isWithdraw: boolean;
readonly asWithdraw: {
@@ -1743,7 +1719,7 @@
readonly type: 'Withdraw' | 'Call' | 'Create' | 'Create2';
}
- /** @name PalletEthereumCall (215) */
+ /** @name PalletEthereumCall (213) */
export interface PalletEthereumCall extends Enum {
readonly isTransact: boolean;
readonly asTransact: {
@@ -1752,7 +1728,7 @@
readonly type: 'Transact';
}
- /** @name EthereumTransactionTransactionV2 (216) */
+ /** @name EthereumTransactionTransactionV2 (214) */
export interface EthereumTransactionTransactionV2 extends Enum {
readonly isLegacy: boolean;
readonly asLegacy: EthereumTransactionLegacyTransaction;
@@ -1763,7 +1739,7 @@
readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';
}
- /** @name EthereumTransactionLegacyTransaction (217) */
+ /** @name EthereumTransactionLegacyTransaction (215) */
export interface EthereumTransactionLegacyTransaction extends Struct {
readonly nonce: U256;
readonly gasPrice: U256;
@@ -1774,7 +1750,7 @@
readonly signature: EthereumTransactionTransactionSignature;
}
- /** @name EthereumTransactionTransactionAction (218) */
+ /** @name EthereumTransactionTransactionAction (216) */
export interface EthereumTransactionTransactionAction extends Enum {
readonly isCall: boolean;
readonly asCall: H160;
@@ -1782,14 +1758,14 @@
readonly type: 'Call' | 'Create';
}
- /** @name EthereumTransactionTransactionSignature (219) */
+ /** @name EthereumTransactionTransactionSignature (217) */
export interface EthereumTransactionTransactionSignature extends Struct {
readonly v: u64;
readonly r: H256;
readonly s: H256;
}
- /** @name EthereumTransactionEip2930Transaction (221) */
+ /** @name EthereumTransactionEip2930Transaction (219) */
export interface EthereumTransactionEip2930Transaction extends Struct {
readonly chainId: u64;
readonly nonce: U256;
@@ -1804,13 +1780,13 @@
readonly s: H256;
}
- /** @name EthereumTransactionAccessListItem (223) */
+ /** @name EthereumTransactionAccessListItem (221) */
export interface EthereumTransactionAccessListItem extends Struct {
readonly address: H160;
readonly storageKeys: Vec<H256>;
}
- /** @name EthereumTransactionEip1559Transaction (224) */
+ /** @name EthereumTransactionEip1559Transaction (222) */
export interface EthereumTransactionEip1559Transaction extends Struct {
readonly chainId: u64;
readonly nonce: U256;
@@ -1826,7 +1802,7 @@
readonly s: H256;
}
- /** @name PalletEvmMigrationCall (225) */
+ /** @name PalletEvmMigrationCall (223) */
export interface PalletEvmMigrationCall extends Enum {
readonly isBegin: boolean;
readonly asBegin: {
@@ -1845,7 +1821,7 @@
readonly type: 'Begin' | 'SetData' | 'Finish';
}
- /** @name PalletSudoEvent (228) */
+ /** @name PalletSudoEvent (226) */
export interface PalletSudoEvent extends Enum {
readonly isSudid: boolean;
readonly asSudid: {
@@ -1862,7 +1838,7 @@
readonly type: 'Sudid' | 'KeyChanged' | 'SudoAsDone';
}
- /** @name SpRuntimeDispatchError (230) */
+ /** @name SpRuntimeDispatchError (228) */
export interface SpRuntimeDispatchError extends Enum {
readonly isOther: boolean;
readonly isCannotLookup: boolean;
@@ -1881,13 +1857,13 @@
readonly type: 'Other' | 'CannotLookup' | 'BadOrigin' | 'Module' | 'ConsumerRemaining' | 'NoProviders' | 'TooManyConsumers' | 'Token' | 'Arithmetic' | 'Transactional';
}
- /** @name SpRuntimeModuleError (231) */
+ /** @name SpRuntimeModuleError (229) */
export interface SpRuntimeModuleError extends Struct {
readonly index: u8;
readonly error: U8aFixed;
}
- /** @name SpRuntimeTokenError (232) */
+ /** @name SpRuntimeTokenError (230) */
export interface SpRuntimeTokenError extends Enum {
readonly isNoFunds: boolean;
readonly isWouldDie: boolean;
@@ -1899,7 +1875,7 @@
readonly type: 'NoFunds' | 'WouldDie' | 'BelowMinimum' | 'CannotCreate' | 'UnknownAsset' | 'Frozen' | 'Unsupported';
}
- /** @name SpRuntimeArithmeticError (233) */
+ /** @name SpRuntimeArithmeticError (231) */
export interface SpRuntimeArithmeticError extends Enum {
readonly isUnderflow: boolean;
readonly isOverflow: boolean;
@@ -1907,20 +1883,20 @@
readonly type: 'Underflow' | 'Overflow' | 'DivisionByZero';
}
- /** @name SpRuntimeTransactionalError (234) */
+ /** @name SpRuntimeTransactionalError (232) */
export interface SpRuntimeTransactionalError extends Enum {
readonly isLimitReached: boolean;
readonly isNoLayer: boolean;
readonly type: 'LimitReached' | 'NoLayer';
}
- /** @name PalletSudoError (235) */
+ /** @name PalletSudoError (233) */
export interface PalletSudoError extends Enum {
readonly isRequireSudo: boolean;
readonly type: 'RequireSudo';
}
- /** @name FrameSystemAccountInfo (236) */
+ /** @name FrameSystemAccountInfo (234) */
export interface FrameSystemAccountInfo extends Struct {
readonly nonce: u32;
readonly consumers: u32;
@@ -1929,19 +1905,19 @@
readonly data: PalletBalancesAccountData;
}
- /** @name FrameSupportWeightsPerDispatchClassU64 (237) */
+ /** @name FrameSupportWeightsPerDispatchClassU64 (235) */
export interface FrameSupportWeightsPerDispatchClassU64 extends Struct {
readonly normal: u64;
readonly operational: u64;
readonly mandatory: u64;
}
- /** @name SpRuntimeDigest (238) */
+ /** @name SpRuntimeDigest (236) */
export interface SpRuntimeDigest extends Struct {
readonly logs: Vec<SpRuntimeDigestDigestItem>;
}
- /** @name SpRuntimeDigestDigestItem (240) */
+ /** @name SpRuntimeDigestDigestItem (238) */
export interface SpRuntimeDigestDigestItem extends Enum {
readonly isOther: boolean;
readonly asOther: Bytes;
@@ -1955,14 +1931,14 @@
readonly type: 'Other' | 'Consensus' | 'Seal' | 'PreRuntime' | 'RuntimeEnvironmentUpdated';
}
- /** @name FrameSystemEventRecord (242) */
+ /** @name FrameSystemEventRecord (240) */
export interface FrameSystemEventRecord extends Struct {
readonly phase: FrameSystemPhase;
readonly event: Event;
readonly topics: Vec<H256>;
}
- /** @name FrameSystemEvent (244) */
+ /** @name FrameSystemEvent (242) */
export interface FrameSystemEvent extends Enum {
readonly isExtrinsicSuccess: boolean;
readonly asExtrinsicSuccess: {
@@ -1990,14 +1966,14 @@
readonly type: 'ExtrinsicSuccess' | 'ExtrinsicFailed' | 'CodeUpdated' | 'NewAccount' | 'KilledAccount' | 'Remarked';
}
- /** @name FrameSupportWeightsDispatchInfo (245) */
+ /** @name FrameSupportWeightsDispatchInfo (243) */
export interface FrameSupportWeightsDispatchInfo extends Struct {
readonly weight: u64;
readonly class: FrameSupportWeightsDispatchClass;
readonly paysFee: FrameSupportWeightsPays;
}
- /** @name FrameSupportWeightsDispatchClass (246) */
+ /** @name FrameSupportWeightsDispatchClass (244) */
export interface FrameSupportWeightsDispatchClass extends Enum {
readonly isNormal: boolean;
readonly isOperational: boolean;
@@ -2005,14 +1981,14 @@
readonly type: 'Normal' | 'Operational' | 'Mandatory';
}
- /** @name FrameSupportWeightsPays (247) */
+ /** @name FrameSupportWeightsPays (245) */
export interface FrameSupportWeightsPays extends Enum {
readonly isYes: boolean;
readonly isNo: boolean;
readonly type: 'Yes' | 'No';
}
- /** @name OrmlVestingModuleEvent (248) */
+ /** @name OrmlVestingModuleEvent (246) */
export interface OrmlVestingModuleEvent extends Enum {
readonly isVestingScheduleAdded: boolean;
readonly asVestingScheduleAdded: {
@@ -2032,7 +2008,7 @@
readonly type: 'VestingScheduleAdded' | 'Claimed' | 'VestingSchedulesUpdated';
}
- /** @name CumulusPalletXcmpQueueEvent (249) */
+ /** @name CumulusPalletXcmpQueueEvent (247) */
export interface CumulusPalletXcmpQueueEvent extends Enum {
readonly isSuccess: boolean;
readonly asSuccess: Option<H256>;
@@ -2053,7 +2029,7 @@
readonly type: 'Success' | 'Fail' | 'BadVersion' | 'BadFormat' | 'UpwardMessageSent' | 'XcmpMessageSent' | 'OverweightEnqueued' | 'OverweightServiced';
}
- /** @name PalletXcmEvent (250) */
+ /** @name PalletXcmEvent (248) */
export interface PalletXcmEvent extends Enum {
readonly isAttempted: boolean;
readonly asAttempted: XcmV2TraitsOutcome;
@@ -2090,7 +2066,7 @@
readonly type: 'Attempted' | 'Sent' | 'UnexpectedResponse' | 'ResponseReady' | 'Notified' | 'NotifyOverweight' | 'NotifyDispatchError' | 'NotifyDecodeFailed' | 'InvalidResponder' | 'InvalidResponderVersion' | 'ResponseTaken' | 'AssetsTrapped' | 'VersionChangeNotified' | 'SupportedVersionChanged' | 'NotifyTargetSendFail' | 'NotifyTargetMigrationFail';
}
- /** @name XcmV2TraitsOutcome (251) */
+ /** @name XcmV2TraitsOutcome (249) */
export interface XcmV2TraitsOutcome extends Enum {
readonly isComplete: boolean;
readonly asComplete: u64;
@@ -2101,7 +2077,7 @@
readonly type: 'Complete' | 'Incomplete' | 'Error';
}
- /** @name CumulusPalletXcmEvent (253) */
+ /** @name CumulusPalletXcmEvent (251) */
export interface CumulusPalletXcmEvent extends Enum {
readonly isInvalidFormat: boolean;
readonly asInvalidFormat: U8aFixed;
@@ -2112,7 +2088,7 @@
readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward';
}
- /** @name CumulusPalletDmpQueueEvent (254) */
+ /** @name CumulusPalletDmpQueueEvent (252) */
export interface CumulusPalletDmpQueueEvent extends Enum {
readonly isInvalidFormat: boolean;
readonly asInvalidFormat: U8aFixed;
@@ -2129,7 +2105,7 @@
readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward' | 'WeightExhausted' | 'OverweightEnqueued' | 'OverweightServiced';
}
- /** @name PalletUniqueRawEvent (255) */
+ /** @name PalletUniqueRawEvent (253) */
export interface PalletUniqueRawEvent extends Enum {
readonly isCollectionSponsorRemoved: boolean;
readonly asCollectionSponsorRemoved: u32;
@@ -2162,7 +2138,7 @@
readonly type: 'CollectionSponsorRemoved' | 'CollectionAdminAdded' | 'CollectionOwnedChanged' | 'CollectionSponsorSet' | 'ConstOnChainSchemaSet' | 'SponsorshipConfirmed' | 'CollectionAdminRemoved' | 'AllowListAddressRemoved' | 'AllowListAddressAdded' | 'CollectionLimitSet' | 'MintPermissionSet' | 'OffchainSchemaSet' | 'PublicAccessModeSet' | 'SchemaVersionSet';
}
- /** @name PalletCommonEvent (256) */
+ /** @name PalletCommonEvent (254) */
export interface PalletCommonEvent extends Enum {
readonly isCollectionCreated: boolean;
readonly asCollectionCreated: ITuple<[u32, u8, AccountId32]>;
@@ -2189,14 +2165,14 @@
readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'ItemCreated' | 'ItemDestroyed' | 'Transfer' | 'Approved' | 'CollectionPropertySet' | 'CollectionPropertyDeleted' | 'TokenPropertySet' | 'TokenPropertyDeleted' | 'PropertyPermissionSet';
}
- /** @name PalletStructureEvent (257) */
+ /** @name PalletStructureEvent (255) */
export interface PalletStructureEvent extends Enum {
readonly isExecuted: boolean;
readonly asExecuted: Result<Null, SpRuntimeDispatchError>;
readonly type: 'Executed';
}
- /** @name PalletEvmEvent (258) */
+ /** @name PalletEvmEvent (256) */
export interface PalletEvmEvent extends Enum {
readonly isLog: boolean;
readonly asLog: EthereumLog;
@@ -2215,21 +2191,21 @@
readonly type: 'Log' | 'Created' | 'CreatedFailed' | 'Executed' | 'ExecutedFailed' | 'BalanceDeposit' | 'BalanceWithdraw';
}
- /** @name EthereumLog (259) */
+ /** @name EthereumLog (257) */
export interface EthereumLog extends Struct {
readonly address: H160;
readonly topics: Vec<H256>;
readonly data: Bytes;
}
- /** @name PalletEthereumEvent (260) */
+ /** @name PalletEthereumEvent (258) */
export interface PalletEthereumEvent extends Enum {
readonly isExecuted: boolean;
readonly asExecuted: ITuple<[H160, H160, H256, EvmCoreErrorExitReason]>;
readonly type: 'Executed';
}
- /** @name EvmCoreErrorExitReason (261) */
+ /** @name EvmCoreErrorExitReason (259) */
export interface EvmCoreErrorExitReason extends Enum {
readonly isSucceed: boolean;
readonly asSucceed: EvmCoreErrorExitSucceed;
@@ -2242,7 +2218,7 @@
readonly type: 'Succeed' | 'Error' | 'Revert' | 'Fatal';
}
- /** @name EvmCoreErrorExitSucceed (262) */
+ /** @name EvmCoreErrorExitSucceed (260) */
export interface EvmCoreErrorExitSucceed extends Enum {
readonly isStopped: boolean;
readonly isReturned: boolean;
@@ -2250,7 +2226,7 @@
readonly type: 'Stopped' | 'Returned' | 'Suicided';
}
- /** @name EvmCoreErrorExitError (263) */
+ /** @name EvmCoreErrorExitError (261) */
export interface EvmCoreErrorExitError extends Enum {
readonly isStackUnderflow: boolean;
readonly isStackOverflow: boolean;
@@ -2271,13 +2247,13 @@
readonly type: 'StackUnderflow' | 'StackOverflow' | 'InvalidJump' | 'InvalidRange' | 'DesignatedInvalid' | 'CallTooDeep' | 'CreateCollision' | 'CreateContractLimit' | 'OutOfOffset' | 'OutOfGas' | 'OutOfFund' | 'PcUnderflow' | 'CreateEmpty' | 'Other' | 'InvalidCode';
}
- /** @name EvmCoreErrorExitRevert (266) */
+ /** @name EvmCoreErrorExitRevert (264) */
export interface EvmCoreErrorExitRevert extends Enum {
readonly isReverted: boolean;
readonly type: 'Reverted';
}
- /** @name EvmCoreErrorExitFatal (267) */
+ /** @name EvmCoreErrorExitFatal (265) */
export interface EvmCoreErrorExitFatal extends Enum {
readonly isNotSupported: boolean;
readonly isUnhandledInterrupt: boolean;
@@ -2288,7 +2264,7 @@
readonly type: 'NotSupported' | 'UnhandledInterrupt' | 'CallErrorAsFatal' | 'Other';
}
- /** @name FrameSystemPhase (268) */
+ /** @name FrameSystemPhase (266) */
export interface FrameSystemPhase extends Enum {
readonly isApplyExtrinsic: boolean;
readonly asApplyExtrinsic: u32;
@@ -2297,27 +2273,27 @@
readonly type: 'ApplyExtrinsic' | 'Finalization' | 'Initialization';
}
- /** @name FrameSystemLastRuntimeUpgradeInfo (270) */
+ /** @name FrameSystemLastRuntimeUpgradeInfo (268) */
export interface FrameSystemLastRuntimeUpgradeInfo extends Struct {
readonly specVersion: Compact<u32>;
readonly specName: Text;
}
- /** @name FrameSystemLimitsBlockWeights (271) */
+ /** @name FrameSystemLimitsBlockWeights (269) */
export interface FrameSystemLimitsBlockWeights extends Struct {
readonly baseBlock: u64;
readonly maxBlock: u64;
readonly perClass: FrameSupportWeightsPerDispatchClassWeightsPerClass;
}
- /** @name FrameSupportWeightsPerDispatchClassWeightsPerClass (272) */
+ /** @name FrameSupportWeightsPerDispatchClassWeightsPerClass (270) */
export interface FrameSupportWeightsPerDispatchClassWeightsPerClass extends Struct {
readonly normal: FrameSystemLimitsWeightsPerClass;
readonly operational: FrameSystemLimitsWeightsPerClass;
readonly mandatory: FrameSystemLimitsWeightsPerClass;
}
- /** @name FrameSystemLimitsWeightsPerClass (273) */
+ /** @name FrameSystemLimitsWeightsPerClass (271) */
export interface FrameSystemLimitsWeightsPerClass extends Struct {
readonly baseExtrinsic: u64;
readonly maxExtrinsic: Option<u64>;
@@ -2325,25 +2301,25 @@
readonly reserved: Option<u64>;
}
- /** @name FrameSystemLimitsBlockLength (275) */
+ /** @name FrameSystemLimitsBlockLength (273) */
export interface FrameSystemLimitsBlockLength extends Struct {
readonly max: FrameSupportWeightsPerDispatchClassU32;
}
- /** @name FrameSupportWeightsPerDispatchClassU32 (276) */
+ /** @name FrameSupportWeightsPerDispatchClassU32 (274) */
export interface FrameSupportWeightsPerDispatchClassU32 extends Struct {
readonly normal: u32;
readonly operational: u32;
readonly mandatory: u32;
}
- /** @name FrameSupportWeightsRuntimeDbWeight (277) */
+ /** @name FrameSupportWeightsRuntimeDbWeight (275) */
export interface FrameSupportWeightsRuntimeDbWeight extends Struct {
readonly read: u64;
readonly write: u64;
}
- /** @name SpVersionRuntimeVersion (278) */
+ /** @name SpVersionRuntimeVersion (276) */
export interface SpVersionRuntimeVersion extends Struct {
readonly specName: Text;
readonly implName: Text;
@@ -2355,7 +2331,7 @@
readonly stateVersion: u8;
}
- /** @name FrameSystemError (282) */
+ /** @name FrameSystemError (280) */
export interface FrameSystemError extends Enum {
readonly isInvalidSpecName: boolean;
readonly isSpecVersionNeedsToIncrease: boolean;
@@ -2366,7 +2342,7 @@
readonly type: 'InvalidSpecName' | 'SpecVersionNeedsToIncrease' | 'FailedToExtractRuntimeVersion' | 'NonDefaultComposite' | 'NonZeroRefCount' | 'CallFiltered';
}
- /** @name OrmlVestingModuleError (284) */
+ /** @name OrmlVestingModuleError (282) */
export interface OrmlVestingModuleError extends Enum {
readonly isZeroVestingPeriod: boolean;
readonly isZeroVestingPeriodCount: boolean;
@@ -2377,21 +2353,21 @@
readonly type: 'ZeroVestingPeriod' | 'ZeroVestingPeriodCount' | 'InsufficientBalanceToLock' | 'TooManyVestingSchedules' | 'AmountLow' | 'MaxVestingSchedulesExceeded';
}
- /** @name CumulusPalletXcmpQueueInboundChannelDetails (286) */
+ /** @name CumulusPalletXcmpQueueInboundChannelDetails (284) */
export interface CumulusPalletXcmpQueueInboundChannelDetails extends Struct {
readonly sender: u32;
readonly state: CumulusPalletXcmpQueueInboundState;
readonly messageMetadata: Vec<ITuple<[u32, PolkadotParachainPrimitivesXcmpMessageFormat]>>;
}
- /** @name CumulusPalletXcmpQueueInboundState (287) */
+ /** @name CumulusPalletXcmpQueueInboundState (285) */
export interface CumulusPalletXcmpQueueInboundState extends Enum {
readonly isOk: boolean;
readonly isSuspended: boolean;
readonly type: 'Ok' | 'Suspended';
}
- /** @name PolkadotParachainPrimitivesXcmpMessageFormat (290) */
+ /** @name PolkadotParachainPrimitivesXcmpMessageFormat (288) */
export interface PolkadotParachainPrimitivesXcmpMessageFormat extends Enum {
readonly isConcatenatedVersionedXcm: boolean;
readonly isConcatenatedEncodedBlob: boolean;
@@ -2399,7 +2375,7 @@
readonly type: 'ConcatenatedVersionedXcm' | 'ConcatenatedEncodedBlob' | 'Signals';
}
- /** @name CumulusPalletXcmpQueueOutboundChannelDetails (293) */
+ /** @name CumulusPalletXcmpQueueOutboundChannelDetails (291) */
export interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct {
readonly recipient: u32;
readonly state: CumulusPalletXcmpQueueOutboundState;
@@ -2408,14 +2384,14 @@
readonly lastIndex: u16;
}
- /** @name CumulusPalletXcmpQueueOutboundState (294) */
+ /** @name CumulusPalletXcmpQueueOutboundState (292) */
export interface CumulusPalletXcmpQueueOutboundState extends Enum {
readonly isOk: boolean;
readonly isSuspended: boolean;
readonly type: 'Ok' | 'Suspended';
}
- /** @name CumulusPalletXcmpQueueQueueConfigData (296) */
+ /** @name CumulusPalletXcmpQueueQueueConfigData (294) */
export interface CumulusPalletXcmpQueueQueueConfigData extends Struct {
readonly suspendThreshold: u32;
readonly dropThreshold: u32;
@@ -2425,7 +2401,7 @@
readonly xcmpMaxIndividualWeight: u64;
}
- /** @name CumulusPalletXcmpQueueError (298) */
+ /** @name CumulusPalletXcmpQueueError (296) */
export interface CumulusPalletXcmpQueueError extends Enum {
readonly isFailedToSend: boolean;
readonly isBadXcmOrigin: boolean;
@@ -2435,7 +2411,7 @@
readonly type: 'FailedToSend' | 'BadXcmOrigin' | 'BadXcm' | 'BadOverweightIndex' | 'WeightOverLimit';
}
- /** @name PalletXcmError (299) */
+ /** @name PalletXcmError (297) */
export interface PalletXcmError extends Enum {
readonly isUnreachable: boolean;
readonly isSendFailure: boolean;
@@ -2453,29 +2429,29 @@
readonly type: 'Unreachable' | 'SendFailure' | 'Filtered' | 'UnweighableMessage' | 'DestinationNotInvertible' | 'Empty' | 'CannotReanchor' | 'TooManyAssets' | 'InvalidOrigin' | 'BadVersion' | 'BadLocation' | 'NoSubscription' | 'AlreadySubscribed';
}
- /** @name CumulusPalletXcmError (300) */
+ /** @name CumulusPalletXcmError (298) */
export type CumulusPalletXcmError = Null;
- /** @name CumulusPalletDmpQueueConfigData (301) */
+ /** @name CumulusPalletDmpQueueConfigData (299) */
export interface CumulusPalletDmpQueueConfigData extends Struct {
readonly maxIndividual: u64;
}
- /** @name CumulusPalletDmpQueuePageIndexData (302) */
+ /** @name CumulusPalletDmpQueuePageIndexData (300) */
export interface CumulusPalletDmpQueuePageIndexData extends Struct {
readonly beginUsed: u32;
readonly endUsed: u32;
readonly overweightCount: u64;
}
- /** @name CumulusPalletDmpQueueError (305) */
+ /** @name CumulusPalletDmpQueueError (303) */
export interface CumulusPalletDmpQueueError extends Enum {
readonly isUnknown: boolean;
readonly isOverLimit: boolean;
readonly type: 'Unknown' | 'OverLimit';
}
- /** @name PalletUniqueError (309) */
+ /** @name PalletUniqueError (307) */
export interface PalletUniqueError extends Enum {
readonly isCollectionDecimalPointLimitExceeded: boolean;
readonly isConfirmUnsetSponsorFail: boolean;
@@ -2483,7 +2459,7 @@
readonly type: 'CollectionDecimalPointLimitExceeded' | 'ConfirmUnsetSponsorFail' | 'EmptyArgument';
}
- /** @name UpDataStructsCollection (310) */
+ /** @name UpDataStructsCollection (308) */
export interface UpDataStructsCollection extends Struct {
readonly owner: AccountId32;
readonly mode: UpDataStructsCollectionMode;
@@ -2495,10 +2471,9 @@
readonly schemaVersion: UpDataStructsSchemaVersion;
readonly sponsorship: UpDataStructsSponsorshipState;
readonly limits: UpDataStructsCollectionLimits;
- readonly metaUpdatePermission: UpDataStructsMetaUpdatePermission;
}
- /** @name UpDataStructsSponsorshipState (311) */
+ /** @name UpDataStructsSponsorshipState (309) */
export interface UpDataStructsSponsorshipState extends Enum {
readonly isDisabled: boolean;
readonly isUnconfirmed: boolean;
@@ -2508,47 +2483,47 @@
readonly type: 'Disabled' | 'Unconfirmed' | 'Confirmed';
}
- /** @name UpDataStructsProperties (312) */
+ /** @name UpDataStructsProperties (310) */
export interface UpDataStructsProperties extends Struct {
readonly map: UpDataStructsPropertiesMapBoundedVec;
readonly consumedSpace: u32;
readonly spaceLimit: u32;
}
- /** @name UpDataStructsPropertiesMapBoundedVec (313) */
+ /** @name UpDataStructsPropertiesMapBoundedVec (311) */
export interface UpDataStructsPropertiesMapBoundedVec extends BTreeMap<Bytes, Bytes> {}
- /** @name UpDataStructsPropertiesMapPropertyPermission (318) */
+ /** @name UpDataStructsPropertiesMapPropertyPermission (316) */
export interface UpDataStructsPropertiesMapPropertyPermission extends BTreeMap<Bytes, UpDataStructsPropertyPermission> {}
- /** @name UpDataStructsCollectionField (324) */
+ /** @name UpDataStructsCollectionField (322) */
export interface UpDataStructsCollectionField extends Enum {
readonly isConstOnChainSchema: boolean;
readonly isOffchainSchema: boolean;
readonly type: 'ConstOnChainSchema' | 'OffchainSchema';
}
- /** @name UpDataStructsCollectionStats (327) */
+ /** @name UpDataStructsCollectionStats (325) */
export interface UpDataStructsCollectionStats extends Struct {
readonly created: u32;
readonly destroyed: u32;
readonly alive: u32;
}
- /** @name PhantomTypeUpDataStructsTokenData (328) */
+ /** @name PhantomTypeUpDataStructsTokenData (326) */
export interface PhantomTypeUpDataStructsTokenData extends Vec<UpDataStructsTokenData> {}
- /** @name UpDataStructsTokenData (329) */
+ /** @name UpDataStructsTokenData (327) */
export interface UpDataStructsTokenData extends Struct {
readonly constData: Bytes;
readonly properties: Vec<UpDataStructsProperty>;
readonly owner: Option<PalletEvmAccountBasicCrossAccountIdRepr>;
}
- /** @name PhantomTypeUpDataStructsRpcCollection (332) */
+ /** @name PhantomTypeUpDataStructsRpcCollection (330) */
export interface PhantomTypeUpDataStructsRpcCollection extends Vec<UpDataStructsRpcCollection> {}
- /** @name UpDataStructsRpcCollection (333) */
+ /** @name UpDataStructsRpcCollection (331) */
export interface UpDataStructsRpcCollection extends Struct {
readonly owner: AccountId32;
readonly mode: UpDataStructsCollectionMode;
@@ -2562,15 +2537,14 @@
readonly sponsorship: UpDataStructsSponsorshipState;
readonly limits: UpDataStructsCollectionLimits;
readonly constOnChainSchema: Bytes;
- readonly metaUpdatePermission: UpDataStructsMetaUpdatePermission;
readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;
readonly properties: Vec<UpDataStructsProperty>;
}
- /** @name PhantomTypeUpDataStructsCollectionInfo (335) */
+ /** @name PhantomTypeUpDataStructsCollectionInfo (333) */
export interface PhantomTypeUpDataStructsCollectionInfo extends Vec<RmrkTypesCollectionInfo> {}
- /** @name RmrkTypesCollectionInfo (336) */
+ /** @name RmrkTypesCollectionInfo (334) */
export interface RmrkTypesCollectionInfo extends Struct {
readonly issuer: AccountId32;
readonly metadata: Bytes;
@@ -2579,10 +2553,10 @@
readonly nftsCount: u32;
}
- /** @name PhantomTypeUpDataStructsNftInfo (340) */
+ /** @name PhantomTypeUpDataStructsNftInfo (338) */
export interface PhantomTypeUpDataStructsNftInfo extends Vec<RmrkTypesNftInfo> {}
- /** @name RmrkTypesNftInfo (341) */
+ /** @name RmrkTypesNftInfo (339) */
export interface RmrkTypesNftInfo extends Struct {
readonly owner: RmrkTypesAccountIdOrCollectionNftTuple;
readonly royalty: Option<RmrkTypesRoyaltyInfo>;
@@ -2591,7 +2565,7 @@
readonly pending: bool;
}
- /** @name RmrkTypesAccountIdOrCollectionNftTuple (342) */
+ /** @name RmrkTypesAccountIdOrCollectionNftTuple (340) */
export interface RmrkTypesAccountIdOrCollectionNftTuple extends Enum {
readonly isAccountId: boolean;
readonly asAccountId: AccountId32;
@@ -2600,16 +2574,16 @@
readonly type: 'AccountId' | 'CollectionAndNftTuple';
}
- /** @name RmrkTypesRoyaltyInfo (344) */
+ /** @name RmrkTypesRoyaltyInfo (342) */
export interface RmrkTypesRoyaltyInfo extends Struct {
readonly recipient: AccountId32;
readonly amount: Permill;
}
- /** @name PhantomTypeUpDataStructsResourceInfo (346) */
+ /** @name PhantomTypeUpDataStructsResourceInfo (344) */
export interface PhantomTypeUpDataStructsResourceInfo extends Vec<RmrkTypesResourceInfo> {}
- /** @name RmrkTypesResourceInfo (347) */
+ /** @name RmrkTypesResourceInfo (345) */
export interface RmrkTypesResourceInfo extends Struct {
readonly id: Bytes;
readonly pending: bool;
@@ -2623,29 +2597,29 @@
readonly thumb: Option<Bytes>;
}
- /** @name PhantomTypeUpDataStructsPropertyInfo (353) */
+ /** @name PhantomTypeUpDataStructsPropertyInfo (351) */
export interface PhantomTypeUpDataStructsPropertyInfo extends Vec<RmrkTypesPropertyInfo> {}
- /** @name RmrkTypesPropertyInfo (354) */
+ /** @name RmrkTypesPropertyInfo (352) */
export interface RmrkTypesPropertyInfo extends Struct {
readonly key: Bytes;
readonly value: Bytes;
}
- /** @name PhantomTypeUpDataStructsBaseInfo (358) */
+ /** @name PhantomTypeUpDataStructsBaseInfo (356) */
export interface PhantomTypeUpDataStructsBaseInfo extends Vec<RmrkTypesBaseInfo> {}
- /** @name RmrkTypesBaseInfo (359) */
+ /** @name RmrkTypesBaseInfo (357) */
export interface RmrkTypesBaseInfo extends Struct {
readonly issuer: AccountId32;
readonly baseType: Bytes;
readonly symbol: Bytes;
}
- /** @name PhantomTypeUpDataStructsPartType (361) */
+ /** @name PhantomTypeUpDataStructsPartType (359) */
export interface PhantomTypeUpDataStructsPartType extends Vec<RmrkTypesPartType> {}
- /** @name RmrkTypesPartType (362) */
+ /** @name RmrkTypesPartType (360) */
export interface RmrkTypesPartType extends Enum {
readonly isFixedPart: boolean;
readonly asFixedPart: RmrkTypesFixedPart;
@@ -2654,14 +2628,14 @@
readonly type: 'FixedPart' | 'SlotPart';
}
- /** @name RmrkTypesFixedPart (364) */
+ /** @name RmrkTypesFixedPart (362) */
export interface RmrkTypesFixedPart extends Struct {
readonly id: u32;
readonly z: u32;
readonly src: Bytes;
}
- /** @name RmrkTypesSlotPart (365) */
+ /** @name RmrkTypesSlotPart (363) */
export interface RmrkTypesSlotPart extends Struct {
readonly id: u32;
readonly equippable: RmrkTypesEquippableList;
@@ -2669,7 +2643,7 @@
readonly z: u32;
}
- /** @name RmrkTypesEquippableList (366) */
+ /** @name RmrkTypesEquippableList (364) */
export interface RmrkTypesEquippableList extends Enum {
readonly isAll: boolean;
readonly isEmpty: boolean;
@@ -2678,32 +2652,32 @@
readonly type: 'All' | 'Empty' | 'Custom';
}
- /** @name PhantomTypeUpDataStructsTheme (368) */
+ /** @name PhantomTypeUpDataStructsTheme (366) */
export interface PhantomTypeUpDataStructsTheme extends Vec<RmrkTypesTheme> {}
- /** @name RmrkTypesTheme (369) */
+ /** @name RmrkTypesTheme (367) */
export interface RmrkTypesTheme extends Struct {
readonly name: Bytes;
readonly properties: Vec<RmrkTypesThemeProperty>;
readonly inherit: bool;
}
- /** @name RmrkTypesThemeProperty (371) */
+ /** @name RmrkTypesThemeProperty (369) */
export interface RmrkTypesThemeProperty extends Struct {
readonly key: Bytes;
readonly value: Bytes;
}
- /** @name PhantomTypeUpDataStructsNftChild (373) */
+ /** @name PhantomTypeUpDataStructsNftChild (371) */
export interface PhantomTypeUpDataStructsNftChild extends Vec<RmrkTypesNftChild> {}
- /** @name RmrkTypesNftChild (374) */
+ /** @name RmrkTypesNftChild (372) */
export interface RmrkTypesNftChild extends Struct {
readonly collectionId: u32;
readonly nftId: u32;
}
- /** @name PalletCommonError (376) */
+ /** @name PalletCommonError (374) */
export interface PalletCommonError extends Enum {
readonly isCollectionNotFound: boolean;
readonly isMustBeTokenOwner: boolean;
@@ -2714,7 +2688,6 @@
readonly isCollectionDescriptionLimitExceeded: boolean;
readonly isCollectionTokenPrefixLimitExceeded: boolean;
readonly isTotalCollectionsLimitExceeded: boolean;
- readonly isTokenVariableDataLimitExceeded: boolean;
readonly isCollectionAdminCountExceeded: boolean;
readonly isCollectionLimitBoundsExceeded: boolean;
readonly isOwnerPermissionsCantBeReverted: boolean;
@@ -2735,13 +2708,13 @@
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 PalletFungibleError (378) */
+ /** @name PalletFungibleError (376) */
export interface PalletFungibleError extends Enum {
readonly isNotFungibleDataUsedToMintFungibleCollectionToken: boolean;
readonly isFungibleItemsHaveNoId: boolean;
@@ -2751,13 +2724,12 @@
readonly type: 'NotFungibleDataUsedToMintFungibleCollectionToken' | 'FungibleItemsHaveNoId' | 'FungibleItemsDontHaveData' | 'FungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';
}
- /** @name PalletRefungibleItemData (379) */
+ /** @name PalletRefungibleItemData (377) */
export interface PalletRefungibleItemData extends Struct {
readonly constData: Bytes;
- readonly variableData: Bytes;
}
- /** @name PalletRefungibleError (383) */
+ /** @name PalletRefungibleError (381) */
export interface PalletRefungibleError extends Enum {
readonly isNotRefungibleDataUsedToMintFungibleCollectionToken: boolean;
readonly isWrongRefungiblePieces: boolean;
@@ -2766,21 +2738,20 @@
readonly type: 'NotRefungibleDataUsedToMintFungibleCollectionToken' | 'WrongRefungiblePieces' | 'RefungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';
}
- /** @name PalletNonfungibleItemData (384) */
+ /** @name PalletNonfungibleItemData (382) */
export interface PalletNonfungibleItemData extends Struct {
readonly constData: Bytes;
- readonly variableData: Bytes;
readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;
}
- /** @name PalletNonfungibleError (385) */
+ /** @name PalletNonfungibleError (383) */
export interface PalletNonfungibleError extends Enum {
readonly isNotNonfungibleDataUsedToMintFungibleCollectionToken: boolean;
readonly isNonfungibleItemsHaveNoAmount: boolean;
readonly type: 'NotNonfungibleDataUsedToMintFungibleCollectionToken' | 'NonfungibleItemsHaveNoAmount';
}
- /** @name PalletStructureError (386) */
+ /** @name PalletStructureError (384) */
export interface PalletStructureError extends Enum {
readonly isOuroborosDetected: boolean;
readonly isDepthLimit: boolean;
@@ -2788,7 +2759,7 @@
readonly type: 'OuroborosDetected' | 'DepthLimit' | 'TokenNotFound';
}
- /** @name PalletEvmError (389) */
+ /** @name PalletEvmError (387) */
export interface PalletEvmError extends Enum {
readonly isBalanceLow: boolean;
readonly isFeeOverflow: boolean;
@@ -2799,7 +2770,7 @@
readonly type: 'BalanceLow' | 'FeeOverflow' | 'PaymentOverflow' | 'WithdrawFailed' | 'GasPriceTooLow' | 'InvalidNonce';
}
- /** @name FpRpcTransactionStatus (392) */
+ /** @name FpRpcTransactionStatus (390) */
export interface FpRpcTransactionStatus extends Struct {
readonly transactionHash: H256;
readonly transactionIndex: u32;
@@ -2810,10 +2781,10 @@
readonly logsBloom: EthbloomBloom;
}
- /** @name EthbloomBloom (394) */
+ /** @name EthbloomBloom (392) */
export interface EthbloomBloom extends U8aFixed {}
- /** @name EthereumReceiptReceiptV3 (396) */
+ /** @name EthereumReceiptReceiptV3 (394) */
export interface EthereumReceiptReceiptV3 extends Enum {
readonly isLegacy: boolean;
readonly asLegacy: EthereumReceiptEip658ReceiptData;
@@ -2824,7 +2795,7 @@
readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';
}
- /** @name EthereumReceiptEip658ReceiptData (397) */
+ /** @name EthereumReceiptEip658ReceiptData (395) */
export interface EthereumReceiptEip658ReceiptData extends Struct {
readonly statusCode: u8;
readonly usedGas: U256;
@@ -2832,14 +2803,14 @@
readonly logs: Vec<EthereumLog>;
}
- /** @name EthereumBlock (398) */
+ /** @name EthereumBlock (396) */
export interface EthereumBlock extends Struct {
readonly header: EthereumHeader;
readonly transactions: Vec<EthereumTransactionTransactionV2>;
readonly ommers: Vec<EthereumHeader>;
}
- /** @name EthereumHeader (399) */
+ /** @name EthereumHeader (397) */
export interface EthereumHeader extends Struct {
readonly parentHash: H256;
readonly ommersHash: H256;
@@ -2858,24 +2829,24 @@
readonly nonce: EthereumTypesHashH64;
}
- /** @name EthereumTypesHashH64 (400) */
+ /** @name EthereumTypesHashH64 (398) */
export interface EthereumTypesHashH64 extends U8aFixed {}
- /** @name PalletEthereumError (405) */
+ /** @name PalletEthereumError (403) */
export interface PalletEthereumError extends Enum {
readonly isInvalidSignature: boolean;
readonly isPreLogExists: boolean;
readonly type: 'InvalidSignature' | 'PreLogExists';
}
- /** @name PalletEvmCoderSubstrateError (406) */
+ /** @name PalletEvmCoderSubstrateError (404) */
export interface PalletEvmCoderSubstrateError extends Enum {
readonly isOutOfGas: boolean;
readonly isOutOfFund: boolean;
readonly type: 'OutOfGas' | 'OutOfFund';
}
- /** @name PalletEvmContractHelpersSponsoringModeT (407) */
+ /** @name PalletEvmContractHelpersSponsoringModeT (405) */
export interface PalletEvmContractHelpersSponsoringModeT extends Enum {
readonly isDisabled: boolean;
readonly isAllowlisted: boolean;
@@ -2883,20 +2854,20 @@
readonly type: 'Disabled' | 'Allowlisted' | 'Generous';
}
- /** @name PalletEvmContractHelpersError (409) */
+ /** @name PalletEvmContractHelpersError (407) */
export interface PalletEvmContractHelpersError extends Enum {
readonly isNoPermission: boolean;
readonly type: 'NoPermission';
}
- /** @name PalletEvmMigrationError (410) */
+ /** @name PalletEvmMigrationError (408) */
export interface PalletEvmMigrationError extends Enum {
readonly isAccountNotEmpty: boolean;
readonly isAccountIsNotMigrating: boolean;
readonly type: 'AccountNotEmpty' | 'AccountIsNotMigrating';
}
- /** @name SpRuntimeMultiSignature (412) */
+ /** @name SpRuntimeMultiSignature (410) */
export interface SpRuntimeMultiSignature extends Enum {
readonly isEd25519: boolean;
readonly asEd25519: SpCoreEd25519Signature;
@@ -2907,34 +2878,34 @@
readonly type: 'Ed25519' | 'Sr25519' | 'Ecdsa';
}
- /** @name SpCoreEd25519Signature (413) */
+ /** @name SpCoreEd25519Signature (411) */
export interface SpCoreEd25519Signature extends U8aFixed {}
- /** @name SpCoreSr25519Signature (415) */
+ /** @name SpCoreSr25519Signature (413) */
export interface SpCoreSr25519Signature extends U8aFixed {}
- /** @name SpCoreEcdsaSignature (416) */
+ /** @name SpCoreEcdsaSignature (414) */
export interface SpCoreEcdsaSignature extends U8aFixed {}
- /** @name FrameSystemExtensionsCheckSpecVersion (419) */
+ /** @name FrameSystemExtensionsCheckSpecVersion (417) */
export type FrameSystemExtensionsCheckSpecVersion = Null;
- /** @name FrameSystemExtensionsCheckGenesis (420) */
+ /** @name FrameSystemExtensionsCheckGenesis (418) */
export type FrameSystemExtensionsCheckGenesis = Null;
- /** @name FrameSystemExtensionsCheckNonce (423) */
+ /** @name FrameSystemExtensionsCheckNonce (421) */
export interface FrameSystemExtensionsCheckNonce extends Compact<u32> {}
- /** @name FrameSystemExtensionsCheckWeight (424) */
+ /** @name FrameSystemExtensionsCheckWeight (422) */
export type FrameSystemExtensionsCheckWeight = Null;
- /** @name PalletTemplateTransactionPaymentChargeTransactionPayment (425) */
+ /** @name PalletTemplateTransactionPaymentChargeTransactionPayment (423) */
export interface PalletTemplateTransactionPaymentChargeTransactionPayment extends Compact<u128> {}
- /** @name OpalRuntimeRuntime (426) */
+ /** @name OpalRuntimeRuntime (424) */
export type OpalRuntimeRuntime = Null;
- /** @name PalletEthereumFakeTransactionFinalizer (427) */
+ /** @name PalletEthereumFakeTransactionFinalizer (425) */
export type PalletEthereumFakeTransactionFinalizer = Null;
} // declare module
tests/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.tsdiffbeforeafterboth1// Auto-generated via `yarn polkadot-types-from-defs`, do not edit2/* eslint-disable */34import type { BTreeMap, BTreeSet, Bytes, Compact, Enum, Null, Option, Result, Struct, Text, U256, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';5import type { ITuple } from '@polkadot/types-codec/types';6import type { AccountId32, Call, H160, H256, MultiAddress, Perbill, Permill } from '@polkadot/types/interfaces/runtime';7import type { Event } from '@polkadot/types/interfaces/system';89/** @name CumulusPalletDmpQueueCall */10export interface CumulusPalletDmpQueueCall extends Enum {11 readonly isServiceOverweight: boolean;12 readonly asServiceOverweight: {13 readonly index: u64;14 readonly weightLimit: u64;15 } & Struct;16 readonly type: 'ServiceOverweight';17}1819/** @name CumulusPalletDmpQueueConfigData */20export interface CumulusPalletDmpQueueConfigData extends Struct {21 readonly maxIndividual: u64;22}2324/** @name CumulusPalletDmpQueueError */25export interface CumulusPalletDmpQueueError extends Enum {26 readonly isUnknown: boolean;27 readonly isOverLimit: boolean;28 readonly type: 'Unknown' | 'OverLimit';29}3031/** @name CumulusPalletDmpQueueEvent */32export interface CumulusPalletDmpQueueEvent extends Enum {33 readonly isInvalidFormat: boolean;34 readonly asInvalidFormat: U8aFixed;35 readonly isUnsupportedVersion: boolean;36 readonly asUnsupportedVersion: U8aFixed;37 readonly isExecutedDownward: boolean;38 readonly asExecutedDownward: ITuple<[U8aFixed, XcmV2TraitsOutcome]>;39 readonly isWeightExhausted: boolean;40 readonly asWeightExhausted: ITuple<[U8aFixed, u64, u64]>;41 readonly isOverweightEnqueued: boolean;42 readonly asOverweightEnqueued: ITuple<[U8aFixed, u64, u64]>;43 readonly isOverweightServiced: boolean;44 readonly asOverweightServiced: ITuple<[u64, u64]>;45 readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward' | 'WeightExhausted' | 'OverweightEnqueued' | 'OverweightServiced';46}4748/** @name CumulusPalletDmpQueuePageIndexData */49export interface CumulusPalletDmpQueuePageIndexData extends Struct {50 readonly beginUsed: u32;51 readonly endUsed: u32;52 readonly overweightCount: u64;53}5455/** @name CumulusPalletParachainSystemCall */56export interface CumulusPalletParachainSystemCall extends Enum {57 readonly isSetValidationData: boolean;58 readonly asSetValidationData: {59 readonly data: CumulusPrimitivesParachainInherentParachainInherentData;60 } & Struct;61 readonly isSudoSendUpwardMessage: boolean;62 readonly asSudoSendUpwardMessage: {63 readonly message: Bytes;64 } & Struct;65 readonly isAuthorizeUpgrade: boolean;66 readonly asAuthorizeUpgrade: {67 readonly codeHash: H256;68 } & Struct;69 readonly isEnactAuthorizedUpgrade: boolean;70 readonly asEnactAuthorizedUpgrade: {71 readonly code: Bytes;72 } & Struct;73 readonly type: 'SetValidationData' | 'SudoSendUpwardMessage' | 'AuthorizeUpgrade' | 'EnactAuthorizedUpgrade';74}7576/** @name CumulusPalletParachainSystemError */77export interface CumulusPalletParachainSystemError extends Enum {78 readonly isOverlappingUpgrades: boolean;79 readonly isProhibitedByPolkadot: boolean;80 readonly isTooBig: boolean;81 readonly isValidationDataNotAvailable: boolean;82 readonly isHostConfigurationNotAvailable: boolean;83 readonly isNotScheduled: boolean;84 readonly isNothingAuthorized: boolean;85 readonly isUnauthorized: boolean;86 readonly type: 'OverlappingUpgrades' | 'ProhibitedByPolkadot' | 'TooBig' | 'ValidationDataNotAvailable' | 'HostConfigurationNotAvailable' | 'NotScheduled' | 'NothingAuthorized' | 'Unauthorized';87}8889/** @name CumulusPalletParachainSystemEvent */90export interface CumulusPalletParachainSystemEvent extends Enum {91 readonly isValidationFunctionStored: boolean;92 readonly isValidationFunctionApplied: boolean;93 readonly asValidationFunctionApplied: u32;94 readonly isValidationFunctionDiscarded: boolean;95 readonly isUpgradeAuthorized: boolean;96 readonly asUpgradeAuthorized: H256;97 readonly isDownwardMessagesReceived: boolean;98 readonly asDownwardMessagesReceived: u32;99 readonly isDownwardMessagesProcessed: boolean;100 readonly asDownwardMessagesProcessed: ITuple<[u64, H256]>;101 readonly type: 'ValidationFunctionStored' | 'ValidationFunctionApplied' | 'ValidationFunctionDiscarded' | 'UpgradeAuthorized' | 'DownwardMessagesReceived' | 'DownwardMessagesProcessed';102}103104/** @name CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot */105export interface CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot extends Struct {106 readonly dmqMqcHead: H256;107 readonly relayDispatchQueueSize: ITuple<[u32, u32]>;108 readonly ingressChannels: Vec<ITuple<[u32, PolkadotPrimitivesV2AbridgedHrmpChannel]>>;109 readonly egressChannels: Vec<ITuple<[u32, PolkadotPrimitivesV2AbridgedHrmpChannel]>>;110}111112/** @name CumulusPalletXcmCall */113export interface CumulusPalletXcmCall extends Null {}114115/** @name CumulusPalletXcmError */116export interface CumulusPalletXcmError extends Null {}117118/** @name CumulusPalletXcmEvent */119export interface CumulusPalletXcmEvent extends Enum {120 readonly isInvalidFormat: boolean;121 readonly asInvalidFormat: U8aFixed;122 readonly isUnsupportedVersion: boolean;123 readonly asUnsupportedVersion: U8aFixed;124 readonly isExecutedDownward: boolean;125 readonly asExecutedDownward: ITuple<[U8aFixed, XcmV2TraitsOutcome]>;126 readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward';127}128129/** @name CumulusPalletXcmpQueueCall */130export interface CumulusPalletXcmpQueueCall extends Enum {131 readonly isServiceOverweight: boolean;132 readonly asServiceOverweight: {133 readonly index: u64;134 readonly weightLimit: u64;135 } & Struct;136 readonly isSuspendXcmExecution: boolean;137 readonly isResumeXcmExecution: boolean;138 readonly isUpdateSuspendThreshold: boolean;139 readonly asUpdateSuspendThreshold: {140 readonly new_: u32;141 } & Struct;142 readonly isUpdateDropThreshold: boolean;143 readonly asUpdateDropThreshold: {144 readonly new_: u32;145 } & Struct;146 readonly isUpdateResumeThreshold: boolean;147 readonly asUpdateResumeThreshold: {148 readonly new_: u32;149 } & Struct;150 readonly isUpdateThresholdWeight: boolean;151 readonly asUpdateThresholdWeight: {152 readonly new_: u64;153 } & Struct;154 readonly isUpdateWeightRestrictDecay: boolean;155 readonly asUpdateWeightRestrictDecay: {156 readonly new_: u64;157 } & Struct;158 readonly isUpdateXcmpMaxIndividualWeight: boolean;159 readonly asUpdateXcmpMaxIndividualWeight: {160 readonly new_: u64;161 } & Struct;162 readonly type: 'ServiceOverweight' | 'SuspendXcmExecution' | 'ResumeXcmExecution' | 'UpdateSuspendThreshold' | 'UpdateDropThreshold' | 'UpdateResumeThreshold' | 'UpdateThresholdWeight' | 'UpdateWeightRestrictDecay' | 'UpdateXcmpMaxIndividualWeight';163}164165/** @name CumulusPalletXcmpQueueError */166export interface CumulusPalletXcmpQueueError extends Enum {167 readonly isFailedToSend: boolean;168 readonly isBadXcmOrigin: boolean;169 readonly isBadXcm: boolean;170 readonly isBadOverweightIndex: boolean;171 readonly isWeightOverLimit: boolean;172 readonly type: 'FailedToSend' | 'BadXcmOrigin' | 'BadXcm' | 'BadOverweightIndex' | 'WeightOverLimit';173}174175/** @name CumulusPalletXcmpQueueEvent */176export interface CumulusPalletXcmpQueueEvent extends Enum {177 readonly isSuccess: boolean;178 readonly asSuccess: Option<H256>;179 readonly isFail: boolean;180 readonly asFail: ITuple<[Option<H256>, XcmV2TraitsError]>;181 readonly isBadVersion: boolean;182 readonly asBadVersion: Option<H256>;183 readonly isBadFormat: boolean;184 readonly asBadFormat: Option<H256>;185 readonly isUpwardMessageSent: boolean;186 readonly asUpwardMessageSent: Option<H256>;187 readonly isXcmpMessageSent: boolean;188 readonly asXcmpMessageSent: Option<H256>;189 readonly isOverweightEnqueued: boolean;190 readonly asOverweightEnqueued: ITuple<[u32, u32, u64, u64]>;191 readonly isOverweightServiced: boolean;192 readonly asOverweightServiced: ITuple<[u64, u64]>;193 readonly type: 'Success' | 'Fail' | 'BadVersion' | 'BadFormat' | 'UpwardMessageSent' | 'XcmpMessageSent' | 'OverweightEnqueued' | 'OverweightServiced';194}195196/** @name CumulusPalletXcmpQueueInboundChannelDetails */197export interface CumulusPalletXcmpQueueInboundChannelDetails extends Struct {198 readonly sender: u32;199 readonly state: CumulusPalletXcmpQueueInboundState;200 readonly messageMetadata: Vec<ITuple<[u32, PolkadotParachainPrimitivesXcmpMessageFormat]>>;201}202203/** @name CumulusPalletXcmpQueueInboundState */204export interface CumulusPalletXcmpQueueInboundState extends Enum {205 readonly isOk: boolean;206 readonly isSuspended: boolean;207 readonly type: 'Ok' | 'Suspended';208}209210/** @name CumulusPalletXcmpQueueOutboundChannelDetails */211export interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct {212 readonly recipient: u32;213 readonly state: CumulusPalletXcmpQueueOutboundState;214 readonly signalsExist: bool;215 readonly firstIndex: u16;216 readonly lastIndex: u16;217}218219/** @name CumulusPalletXcmpQueueOutboundState */220export interface CumulusPalletXcmpQueueOutboundState extends Enum {221 readonly isOk: boolean;222 readonly isSuspended: boolean;223 readonly type: 'Ok' | 'Suspended';224}225226/** @name CumulusPalletXcmpQueueQueueConfigData */227export interface CumulusPalletXcmpQueueQueueConfigData extends Struct {228 readonly suspendThreshold: u32;229 readonly dropThreshold: u32;230 readonly resumeThreshold: u32;231 readonly thresholdWeight: u64;232 readonly weightRestrictDecay: u64;233 readonly xcmpMaxIndividualWeight: u64;234}235236/** @name CumulusPrimitivesParachainInherentParachainInherentData */237export interface CumulusPrimitivesParachainInherentParachainInherentData extends Struct {238 readonly validationData: PolkadotPrimitivesV2PersistedValidationData;239 readonly relayChainState: SpTrieStorageProof;240 readonly downwardMessages: Vec<PolkadotCorePrimitivesInboundDownwardMessage>;241 readonly horizontalMessages: BTreeMap<u32, Vec<PolkadotCorePrimitivesInboundHrmpMessage>>;242}243244/** @name EthbloomBloom */245export interface EthbloomBloom extends U8aFixed {}246247/** @name EthereumBlock */248export interface EthereumBlock extends Struct {249 readonly header: EthereumHeader;250 readonly transactions: Vec<EthereumTransactionTransactionV2>;251 readonly ommers: Vec<EthereumHeader>;252}253254/** @name EthereumHeader */255export interface EthereumHeader extends Struct {256 readonly parentHash: H256;257 readonly ommersHash: H256;258 readonly beneficiary: H160;259 readonly stateRoot: H256;260 readonly transactionsRoot: H256;261 readonly receiptsRoot: H256;262 readonly logsBloom: EthbloomBloom;263 readonly difficulty: U256;264 readonly number: U256;265 readonly gasLimit: U256;266 readonly gasUsed: U256;267 readonly timestamp: u64;268 readonly extraData: Bytes;269 readonly mixHash: H256;270 readonly nonce: EthereumTypesHashH64;271}272273/** @name EthereumLog */274export interface EthereumLog extends Struct {275 readonly address: H160;276 readonly topics: Vec<H256>;277 readonly data: Bytes;278}279280/** @name EthereumReceiptEip658ReceiptData */281export interface EthereumReceiptEip658ReceiptData extends Struct {282 readonly statusCode: u8;283 readonly usedGas: U256;284 readonly logsBloom: EthbloomBloom;285 readonly logs: Vec<EthereumLog>;286}287288/** @name EthereumReceiptReceiptV3 */289export interface EthereumReceiptReceiptV3 extends Enum {290 readonly isLegacy: boolean;291 readonly asLegacy: EthereumReceiptEip658ReceiptData;292 readonly isEip2930: boolean;293 readonly asEip2930: EthereumReceiptEip658ReceiptData;294 readonly isEip1559: boolean;295 readonly asEip1559: EthereumReceiptEip658ReceiptData;296 readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';297}298299/** @name EthereumTransactionAccessListItem */300export interface EthereumTransactionAccessListItem extends Struct {301 readonly address: H160;302 readonly storageKeys: Vec<H256>;303}304305/** @name EthereumTransactionEip1559Transaction */306export interface EthereumTransactionEip1559Transaction extends Struct {307 readonly chainId: u64;308 readonly nonce: U256;309 readonly maxPriorityFeePerGas: U256;310 readonly maxFeePerGas: U256;311 readonly gasLimit: U256;312 readonly action: EthereumTransactionTransactionAction;313 readonly value: U256;314 readonly input: Bytes;315 readonly accessList: Vec<EthereumTransactionAccessListItem>;316 readonly oddYParity: bool;317 readonly r: H256;318 readonly s: H256;319}320321/** @name EthereumTransactionEip2930Transaction */322export interface EthereumTransactionEip2930Transaction extends Struct {323 readonly chainId: u64;324 readonly nonce: U256;325 readonly gasPrice: U256;326 readonly gasLimit: U256;327 readonly action: EthereumTransactionTransactionAction;328 readonly value: U256;329 readonly input: Bytes;330 readonly accessList: Vec<EthereumTransactionAccessListItem>;331 readonly oddYParity: bool;332 readonly r: H256;333 readonly s: H256;334}335336/** @name EthereumTransactionLegacyTransaction */337export interface EthereumTransactionLegacyTransaction extends Struct {338 readonly nonce: U256;339 readonly gasPrice: U256;340 readonly gasLimit: U256;341 readonly action: EthereumTransactionTransactionAction;342 readonly value: U256;343 readonly input: Bytes;344 readonly signature: EthereumTransactionTransactionSignature;345}346347/** @name EthereumTransactionTransactionAction */348export interface EthereumTransactionTransactionAction extends Enum {349 readonly isCall: boolean;350 readonly asCall: H160;351 readonly isCreate: boolean;352 readonly type: 'Call' | 'Create';353}354355/** @name EthereumTransactionTransactionSignature */356export interface EthereumTransactionTransactionSignature extends Struct {357 readonly v: u64;358 readonly r: H256;359 readonly s: H256;360}361362/** @name EthereumTransactionTransactionV2 */363export interface EthereumTransactionTransactionV2 extends Enum {364 readonly isLegacy: boolean;365 readonly asLegacy: EthereumTransactionLegacyTransaction;366 readonly isEip2930: boolean;367 readonly asEip2930: EthereumTransactionEip2930Transaction;368 readonly isEip1559: boolean;369 readonly asEip1559: EthereumTransactionEip1559Transaction;370 readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';371}372373/** @name EthereumTypesHashH64 */374export interface EthereumTypesHashH64 extends U8aFixed {}375376/** @name EvmCoreErrorExitError */377export interface EvmCoreErrorExitError extends Enum {378 readonly isStackUnderflow: boolean;379 readonly isStackOverflow: boolean;380 readonly isInvalidJump: boolean;381 readonly isInvalidRange: boolean;382 readonly isDesignatedInvalid: boolean;383 readonly isCallTooDeep: boolean;384 readonly isCreateCollision: boolean;385 readonly isCreateContractLimit: boolean;386 readonly isOutOfOffset: boolean;387 readonly isOutOfGas: boolean;388 readonly isOutOfFund: boolean;389 readonly isPcUnderflow: boolean;390 readonly isCreateEmpty: boolean;391 readonly isOther: boolean;392 readonly asOther: Text;393 readonly isInvalidCode: boolean;394 readonly type: 'StackUnderflow' | 'StackOverflow' | 'InvalidJump' | 'InvalidRange' | 'DesignatedInvalid' | 'CallTooDeep' | 'CreateCollision' | 'CreateContractLimit' | 'OutOfOffset' | 'OutOfGas' | 'OutOfFund' | 'PcUnderflow' | 'CreateEmpty' | 'Other' | 'InvalidCode';395}396397/** @name EvmCoreErrorExitFatal */398export interface EvmCoreErrorExitFatal extends Enum {399 readonly isNotSupported: boolean;400 readonly isUnhandledInterrupt: boolean;401 readonly isCallErrorAsFatal: boolean;402 readonly asCallErrorAsFatal: EvmCoreErrorExitError;403 readonly isOther: boolean;404 readonly asOther: Text;405 readonly type: 'NotSupported' | 'UnhandledInterrupt' | 'CallErrorAsFatal' | 'Other';406}407408/** @name EvmCoreErrorExitReason */409export interface EvmCoreErrorExitReason extends Enum {410 readonly isSucceed: boolean;411 readonly asSucceed: EvmCoreErrorExitSucceed;412 readonly isError: boolean;413 readonly asError: EvmCoreErrorExitError;414 readonly isRevert: boolean;415 readonly asRevert: EvmCoreErrorExitRevert;416 readonly isFatal: boolean;417 readonly asFatal: EvmCoreErrorExitFatal;418 readonly type: 'Succeed' | 'Error' | 'Revert' | 'Fatal';419}420421/** @name EvmCoreErrorExitRevert */422export interface EvmCoreErrorExitRevert extends Enum {423 readonly isReverted: boolean;424 readonly type: 'Reverted';425}426427/** @name EvmCoreErrorExitSucceed */428export interface EvmCoreErrorExitSucceed extends Enum {429 readonly isStopped: boolean;430 readonly isReturned: boolean;431 readonly isSuicided: boolean;432 readonly type: 'Stopped' | 'Returned' | 'Suicided';433}434435/** @name FpRpcTransactionStatus */436export interface FpRpcTransactionStatus extends Struct {437 readonly transactionHash: H256;438 readonly transactionIndex: u32;439 readonly from: H160;440 readonly to: Option<H160>;441 readonly contractAddress: Option<H160>;442 readonly logs: Vec<EthereumLog>;443 readonly logsBloom: EthbloomBloom;444}445446/** @name FrameSupportPalletId */447export interface FrameSupportPalletId extends U8aFixed {}448449/** @name FrameSupportStorageBoundedBTreeSet */450export interface FrameSupportStorageBoundedBTreeSet extends BTreeSet<u32> {}451452/** @name FrameSupportTokensMiscBalanceStatus */453export interface FrameSupportTokensMiscBalanceStatus extends Enum {454 readonly isFree: boolean;455 readonly isReserved: boolean;456 readonly type: 'Free' | 'Reserved';457}458459/** @name FrameSupportWeightsDispatchClass */460export interface FrameSupportWeightsDispatchClass extends Enum {461 readonly isNormal: boolean;462 readonly isOperational: boolean;463 readonly isMandatory: boolean;464 readonly type: 'Normal' | 'Operational' | 'Mandatory';465}466467/** @name FrameSupportWeightsDispatchInfo */468export interface FrameSupportWeightsDispatchInfo extends Struct {469 readonly weight: u64;470 readonly class: FrameSupportWeightsDispatchClass;471 readonly paysFee: FrameSupportWeightsPays;472}473474/** @name FrameSupportWeightsPays */475export interface FrameSupportWeightsPays extends Enum {476 readonly isYes: boolean;477 readonly isNo: boolean;478 readonly type: 'Yes' | 'No';479}480481/** @name FrameSupportWeightsPerDispatchClassU32 */482export interface FrameSupportWeightsPerDispatchClassU32 extends Struct {483 readonly normal: u32;484 readonly operational: u32;485 readonly mandatory: u32;486}487488/** @name FrameSupportWeightsPerDispatchClassU64 */489export interface FrameSupportWeightsPerDispatchClassU64 extends Struct {490 readonly normal: u64;491 readonly operational: u64;492 readonly mandatory: u64;493}494495/** @name FrameSupportWeightsPerDispatchClassWeightsPerClass */496export interface FrameSupportWeightsPerDispatchClassWeightsPerClass extends Struct {497 readonly normal: FrameSystemLimitsWeightsPerClass;498 readonly operational: FrameSystemLimitsWeightsPerClass;499 readonly mandatory: FrameSystemLimitsWeightsPerClass;500}501502/** @name FrameSupportWeightsRuntimeDbWeight */503export interface FrameSupportWeightsRuntimeDbWeight extends Struct {504 readonly read: u64;505 readonly write: u64;506}507508/** @name FrameSupportWeightsWeightToFeeCoefficient */509export interface FrameSupportWeightsWeightToFeeCoefficient extends Struct {510 readonly coeffInteger: u128;511 readonly coeffFrac: Perbill;512 readonly negative: bool;513 readonly degree: u8;514}515516/** @name FrameSystemAccountInfo */517export interface FrameSystemAccountInfo extends Struct {518 readonly nonce: u32;519 readonly consumers: u32;520 readonly providers: u32;521 readonly sufficients: u32;522 readonly data: PalletBalancesAccountData;523}524525/** @name FrameSystemCall */526export interface FrameSystemCall extends Enum {527 readonly isFillBlock: boolean;528 readonly asFillBlock: {529 readonly ratio: Perbill;530 } & Struct;531 readonly isRemark: boolean;532 readonly asRemark: {533 readonly remark: Bytes;534 } & Struct;535 readonly isSetHeapPages: boolean;536 readonly asSetHeapPages: {537 readonly pages: u64;538 } & Struct;539 readonly isSetCode: boolean;540 readonly asSetCode: {541 readonly code: Bytes;542 } & Struct;543 readonly isSetCodeWithoutChecks: boolean;544 readonly asSetCodeWithoutChecks: {545 readonly code: Bytes;546 } & Struct;547 readonly isSetStorage: boolean;548 readonly asSetStorage: {549 readonly items: Vec<ITuple<[Bytes, Bytes]>>;550 } & Struct;551 readonly isKillStorage: boolean;552 readonly asKillStorage: {553 readonly keys_: Vec<Bytes>;554 } & Struct;555 readonly isKillPrefix: boolean;556 readonly asKillPrefix: {557 readonly prefix: Bytes;558 readonly subkeys: u32;559 } & Struct;560 readonly isRemarkWithEvent: boolean;561 readonly asRemarkWithEvent: {562 readonly remark: Bytes;563 } & Struct;564 readonly type: 'FillBlock' | 'Remark' | 'SetHeapPages' | 'SetCode' | 'SetCodeWithoutChecks' | 'SetStorage' | 'KillStorage' | 'KillPrefix' | 'RemarkWithEvent';565}566567/** @name FrameSystemError */568export interface FrameSystemError extends Enum {569 readonly isInvalidSpecName: boolean;570 readonly isSpecVersionNeedsToIncrease: boolean;571 readonly isFailedToExtractRuntimeVersion: boolean;572 readonly isNonDefaultComposite: boolean;573 readonly isNonZeroRefCount: boolean;574 readonly isCallFiltered: boolean;575 readonly type: 'InvalidSpecName' | 'SpecVersionNeedsToIncrease' | 'FailedToExtractRuntimeVersion' | 'NonDefaultComposite' | 'NonZeroRefCount' | 'CallFiltered';576}577578/** @name FrameSystemEvent */579export interface FrameSystemEvent extends Enum {580 readonly isExtrinsicSuccess: boolean;581 readonly asExtrinsicSuccess: {582 readonly dispatchInfo: FrameSupportWeightsDispatchInfo;583 } & Struct;584 readonly isExtrinsicFailed: boolean;585 readonly asExtrinsicFailed: {586 readonly dispatchError: SpRuntimeDispatchError;587 readonly dispatchInfo: FrameSupportWeightsDispatchInfo;588 } & Struct;589 readonly isCodeUpdated: boolean;590 readonly isNewAccount: boolean;591 readonly asNewAccount: {592 readonly account: AccountId32;593 } & Struct;594 readonly isKilledAccount: boolean;595 readonly asKilledAccount: {596 readonly account: AccountId32;597 } & Struct;598 readonly isRemarked: boolean;599 readonly asRemarked: {600 readonly sender: AccountId32;601 readonly hash_: H256;602 } & Struct;603 readonly type: 'ExtrinsicSuccess' | 'ExtrinsicFailed' | 'CodeUpdated' | 'NewAccount' | 'KilledAccount' | 'Remarked';604}605606/** @name FrameSystemEventRecord */607export interface FrameSystemEventRecord extends Struct {608 readonly phase: FrameSystemPhase;609 readonly event: Event;610 readonly topics: Vec<H256>;611}612613/** @name FrameSystemExtensionsCheckGenesis */614export interface FrameSystemExtensionsCheckGenesis extends Null {}615616/** @name FrameSystemExtensionsCheckNonce */617export interface FrameSystemExtensionsCheckNonce extends Compact<u32> {}618619/** @name FrameSystemExtensionsCheckSpecVersion */620export interface FrameSystemExtensionsCheckSpecVersion extends Null {}621622/** @name FrameSystemExtensionsCheckWeight */623export interface FrameSystemExtensionsCheckWeight extends Null {}624625/** @name FrameSystemLastRuntimeUpgradeInfo */626export interface FrameSystemLastRuntimeUpgradeInfo extends Struct {627 readonly specVersion: Compact<u32>;628 readonly specName: Text;629}630631/** @name FrameSystemLimitsBlockLength */632export interface FrameSystemLimitsBlockLength extends Struct {633 readonly max: FrameSupportWeightsPerDispatchClassU32;634}635636/** @name FrameSystemLimitsBlockWeights */637export interface FrameSystemLimitsBlockWeights extends Struct {638 readonly baseBlock: u64;639 readonly maxBlock: u64;640 readonly perClass: FrameSupportWeightsPerDispatchClassWeightsPerClass;641}642643/** @name FrameSystemLimitsWeightsPerClass */644export interface FrameSystemLimitsWeightsPerClass extends Struct {645 readonly baseExtrinsic: u64;646 readonly maxExtrinsic: Option<u64>;647 readonly maxTotal: Option<u64>;648 readonly reserved: Option<u64>;649}650651/** @name FrameSystemPhase */652export interface FrameSystemPhase extends Enum {653 readonly isApplyExtrinsic: boolean;654 readonly asApplyExtrinsic: u32;655 readonly isFinalization: boolean;656 readonly isInitialization: boolean;657 readonly type: 'ApplyExtrinsic' | 'Finalization' | 'Initialization';658}659660/** @name OpalRuntimeRuntime */661export interface OpalRuntimeRuntime extends Null {}662663/** @name OrmlVestingModuleCall */664export interface OrmlVestingModuleCall extends Enum {665 readonly isClaim: boolean;666 readonly isVestedTransfer: boolean;667 readonly asVestedTransfer: {668 readonly dest: MultiAddress;669 readonly schedule: OrmlVestingVestingSchedule;670 } & Struct;671 readonly isUpdateVestingSchedules: boolean;672 readonly asUpdateVestingSchedules: {673 readonly who: MultiAddress;674 readonly vestingSchedules: Vec<OrmlVestingVestingSchedule>;675 } & Struct;676 readonly isClaimFor: boolean;677 readonly asClaimFor: {678 readonly dest: MultiAddress;679 } & Struct;680 readonly type: 'Claim' | 'VestedTransfer' | 'UpdateVestingSchedules' | 'ClaimFor';681}682683/** @name OrmlVestingModuleError */684export interface OrmlVestingModuleError extends Enum {685 readonly isZeroVestingPeriod: boolean;686 readonly isZeroVestingPeriodCount: boolean;687 readonly isInsufficientBalanceToLock: boolean;688 readonly isTooManyVestingSchedules: boolean;689 readonly isAmountLow: boolean;690 readonly isMaxVestingSchedulesExceeded: boolean;691 readonly type: 'ZeroVestingPeriod' | 'ZeroVestingPeriodCount' | 'InsufficientBalanceToLock' | 'TooManyVestingSchedules' | 'AmountLow' | 'MaxVestingSchedulesExceeded';692}693694/** @name OrmlVestingModuleEvent */695export interface OrmlVestingModuleEvent extends Enum {696 readonly isVestingScheduleAdded: boolean;697 readonly asVestingScheduleAdded: {698 readonly from: AccountId32;699 readonly to: AccountId32;700 readonly vestingSchedule: OrmlVestingVestingSchedule;701 } & Struct;702 readonly isClaimed: boolean;703 readonly asClaimed: {704 readonly who: AccountId32;705 readonly amount: u128;706 } & Struct;707 readonly isVestingSchedulesUpdated: boolean;708 readonly asVestingSchedulesUpdated: {709 readonly who: AccountId32;710 } & Struct;711 readonly type: 'VestingScheduleAdded' | 'Claimed' | 'VestingSchedulesUpdated';712}713714/** @name OrmlVestingVestingSchedule */715export interface OrmlVestingVestingSchedule extends Struct {716 readonly start: u32;717 readonly period: u32;718 readonly periodCount: u32;719 readonly perPeriod: Compact<u128>;720}721722/** @name PalletBalancesAccountData */723export interface PalletBalancesAccountData extends Struct {724 readonly free: u128;725 readonly reserved: u128;726 readonly miscFrozen: u128;727 readonly feeFrozen: u128;728}729730/** @name PalletBalancesBalanceLock */731export interface PalletBalancesBalanceLock extends Struct {732 readonly id: U8aFixed;733 readonly amount: u128;734 readonly reasons: PalletBalancesReasons;735}736737/** @name PalletBalancesCall */738export interface PalletBalancesCall extends Enum {739 readonly isTransfer: boolean;740 readonly asTransfer: {741 readonly dest: MultiAddress;742 readonly value: Compact<u128>;743 } & Struct;744 readonly isSetBalance: boolean;745 readonly asSetBalance: {746 readonly who: MultiAddress;747 readonly newFree: Compact<u128>;748 readonly newReserved: Compact<u128>;749 } & Struct;750 readonly isForceTransfer: boolean;751 readonly asForceTransfer: {752 readonly source: MultiAddress;753 readonly dest: MultiAddress;754 readonly value: Compact<u128>;755 } & Struct;756 readonly isTransferKeepAlive: boolean;757 readonly asTransferKeepAlive: {758 readonly dest: MultiAddress;759 readonly value: Compact<u128>;760 } & Struct;761 readonly isTransferAll: boolean;762 readonly asTransferAll: {763 readonly dest: MultiAddress;764 readonly keepAlive: bool;765 } & Struct;766 readonly isForceUnreserve: boolean;767 readonly asForceUnreserve: {768 readonly who: MultiAddress;769 readonly amount: u128;770 } & Struct;771 readonly type: 'Transfer' | 'SetBalance' | 'ForceTransfer' | 'TransferKeepAlive' | 'TransferAll' | 'ForceUnreserve';772}773774/** @name PalletBalancesError */775export interface PalletBalancesError extends Enum {776 readonly isVestingBalance: boolean;777 readonly isLiquidityRestrictions: boolean;778 readonly isInsufficientBalance: boolean;779 readonly isExistentialDeposit: boolean;780 readonly isKeepAlive: boolean;781 readonly isExistingVestingSchedule: boolean;782 readonly isDeadAccount: boolean;783 readonly isTooManyReserves: boolean;784 readonly type: 'VestingBalance' | 'LiquidityRestrictions' | 'InsufficientBalance' | 'ExistentialDeposit' | 'KeepAlive' | 'ExistingVestingSchedule' | 'DeadAccount' | 'TooManyReserves';785}786787/** @name PalletBalancesEvent */788export interface PalletBalancesEvent extends Enum {789 readonly isEndowed: boolean;790 readonly asEndowed: {791 readonly account: AccountId32;792 readonly freeBalance: u128;793 } & Struct;794 readonly isDustLost: boolean;795 readonly asDustLost: {796 readonly account: AccountId32;797 readonly amount: u128;798 } & Struct;799 readonly isTransfer: boolean;800 readonly asTransfer: {801 readonly from: AccountId32;802 readonly to: AccountId32;803 readonly amount: u128;804 } & Struct;805 readonly isBalanceSet: boolean;806 readonly asBalanceSet: {807 readonly who: AccountId32;808 readonly free: u128;809 readonly reserved: u128;810 } & Struct;811 readonly isReserved: boolean;812 readonly asReserved: {813 readonly who: AccountId32;814 readonly amount: u128;815 } & Struct;816 readonly isUnreserved: boolean;817 readonly asUnreserved: {818 readonly who: AccountId32;819 readonly amount: u128;820 } & Struct;821 readonly isReserveRepatriated: boolean;822 readonly asReserveRepatriated: {823 readonly from: AccountId32;824 readonly to: AccountId32;825 readonly amount: u128;826 readonly destinationStatus: FrameSupportTokensMiscBalanceStatus;827 } & Struct;828 readonly isDeposit: boolean;829 readonly asDeposit: {830 readonly who: AccountId32;831 readonly amount: u128;832 } & Struct;833 readonly isWithdraw: boolean;834 readonly asWithdraw: {835 readonly who: AccountId32;836 readonly amount: u128;837 } & Struct;838 readonly isSlashed: boolean;839 readonly asSlashed: {840 readonly who: AccountId32;841 readonly amount: u128;842 } & Struct;843 readonly type: 'Endowed' | 'DustLost' | 'Transfer' | 'BalanceSet' | 'Reserved' | 'Unreserved' | 'ReserveRepatriated' | 'Deposit' | 'Withdraw' | 'Slashed';844}845846/** @name PalletBalancesReasons */847export interface PalletBalancesReasons extends Enum {848 readonly isFee: boolean;849 readonly isMisc: boolean;850 readonly isAll: boolean;851 readonly type: 'Fee' | 'Misc' | 'All';852}853854/** @name PalletBalancesReleases */855export interface PalletBalancesReleases extends Enum {856 readonly isV100: boolean;857 readonly isV200: boolean;858 readonly type: 'V100' | 'V200';859}860861/** @name PalletBalancesReserveData */862export interface PalletBalancesReserveData extends Struct {863 readonly id: U8aFixed;864 readonly amount: u128;865}866867/** @name PalletCommonError */868export interface PalletCommonError extends Enum {869 readonly isCollectionNotFound: boolean;870 readonly isMustBeTokenOwner: boolean;871 readonly isNoPermission: boolean;872 readonly isPublicMintingNotAllowed: boolean;873 readonly isAddressNotInAllowlist: boolean;874 readonly isCollectionNameLimitExceeded: boolean;875 readonly isCollectionDescriptionLimitExceeded: boolean;876 readonly isCollectionTokenPrefixLimitExceeded: boolean;877 readonly isTotalCollectionsLimitExceeded: boolean;878 readonly isTokenVariableDataLimitExceeded: boolean;879 readonly isCollectionAdminCountExceeded: boolean;880 readonly isCollectionLimitBoundsExceeded: boolean;881 readonly isOwnerPermissionsCantBeReverted: boolean;882 readonly isTransferNotAllowed: boolean;883 readonly isAccountTokenLimitExceeded: boolean;884 readonly isCollectionTokenLimitExceeded: boolean;885 readonly isMetadataFlagFrozen: boolean;886 readonly isTokenNotFound: boolean;887 readonly isTokenValueTooLow: boolean;888 readonly isApprovedValueTooLow: boolean;889 readonly isCantApproveMoreThanOwned: boolean;890 readonly isAddressIsZero: boolean;891 readonly isUnsupportedOperation: boolean;892 readonly isNotSufficientFounds: boolean;893 readonly isNestingIsDisabled: boolean;894 readonly isOnlyOwnerAllowedToNest: boolean;895 readonly isSourceCollectionIsNotAllowedToNest: boolean;896 readonly isCollectionFieldSizeExceeded: boolean;897 readonly isNoSpaceForProperty: boolean;898 readonly isPropertyLimitReached: boolean;899 readonly isUnableToReadUnboundedKeys: boolean;900 readonly isInvalidCharacterInPropertyKey: boolean;901 readonly isEmptyPropertyKey: boolean;902 readonly type: 'CollectionNotFound' | 'MustBeTokenOwner' | 'NoPermission' | 'PublicMintingNotAllowed' | 'AddressNotInAllowlist' | 'CollectionNameLimitExceeded' | 'CollectionDescriptionLimitExceeded' | 'CollectionTokenPrefixLimitExceeded' | 'TotalCollectionsLimitExceeded' | 'TokenVariableDataLimitExceeded' | 'CollectionAdminCountExceeded' | 'CollectionLimitBoundsExceeded' | 'OwnerPermissionsCantBeReverted' | 'TransferNotAllowed' | 'AccountTokenLimitExceeded' | 'CollectionTokenLimitExceeded' | 'MetadataFlagFrozen' | 'TokenNotFound' | 'TokenValueTooLow' | 'ApprovedValueTooLow' | 'CantApproveMoreThanOwned' | 'AddressIsZero' | 'UnsupportedOperation' | 'NotSufficientFounds' | 'NestingIsDisabled' | 'OnlyOwnerAllowedToNest' | 'SourceCollectionIsNotAllowedToNest' | 'CollectionFieldSizeExceeded' | 'NoSpaceForProperty' | 'PropertyLimitReached' | 'UnableToReadUnboundedKeys' | 'InvalidCharacterInPropertyKey' | 'EmptyPropertyKey';903}904905/** @name PalletCommonEvent */906export interface PalletCommonEvent extends Enum {907 readonly isCollectionCreated: boolean;908 readonly asCollectionCreated: ITuple<[u32, u8, AccountId32]>;909 readonly isCollectionDestroyed: boolean;910 readonly asCollectionDestroyed: u32;911 readonly isItemCreated: boolean;912 readonly asItemCreated: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;913 readonly isItemDestroyed: boolean;914 readonly asItemDestroyed: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;915 readonly isTransfer: boolean;916 readonly asTransfer: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;917 readonly isApproved: boolean;918 readonly asApproved: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;919 readonly isCollectionPropertySet: boolean;920 readonly asCollectionPropertySet: ITuple<[u32, Bytes]>;921 readonly isCollectionPropertyDeleted: boolean;922 readonly asCollectionPropertyDeleted: ITuple<[u32, Bytes]>;923 readonly isTokenPropertySet: boolean;924 readonly asTokenPropertySet: ITuple<[u32, u32, Bytes]>;925 readonly isTokenPropertyDeleted: boolean;926 readonly asTokenPropertyDeleted: ITuple<[u32, u32, Bytes]>;927 readonly isPropertyPermissionSet: boolean;928 readonly asPropertyPermissionSet: ITuple<[u32, Bytes]>;929 readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'ItemCreated' | 'ItemDestroyed' | 'Transfer' | 'Approved' | 'CollectionPropertySet' | 'CollectionPropertyDeleted' | 'TokenPropertySet' | 'TokenPropertyDeleted' | 'PropertyPermissionSet';930}931932/** @name PalletEthereumCall */933export interface PalletEthereumCall extends Enum {934 readonly isTransact: boolean;935 readonly asTransact: {936 readonly transaction: EthereumTransactionTransactionV2;937 } & Struct;938 readonly type: 'Transact';939}940941/** @name PalletEthereumError */942export interface PalletEthereumError extends Enum {943 readonly isInvalidSignature: boolean;944 readonly isPreLogExists: boolean;945 readonly type: 'InvalidSignature' | 'PreLogExists';946}947948/** @name PalletEthereumEvent */949export interface PalletEthereumEvent extends Enum {950 readonly isExecuted: boolean;951 readonly asExecuted: ITuple<[H160, H160, H256, EvmCoreErrorExitReason]>;952 readonly type: 'Executed';953}954955/** @name PalletEthereumFakeTransactionFinalizer */956export interface PalletEthereumFakeTransactionFinalizer extends Null {}957958/** @name PalletEvmAccountBasicCrossAccountIdRepr */959export interface PalletEvmAccountBasicCrossAccountIdRepr extends Enum {960 readonly isSubstrate: boolean;961 readonly asSubstrate: AccountId32;962 readonly isEthereum: boolean;963 readonly asEthereum: H160;964 readonly type: 'Substrate' | 'Ethereum';965}966967/** @name PalletEvmCall */968export interface PalletEvmCall extends Enum {969 readonly isWithdraw: boolean;970 readonly asWithdraw: {971 readonly address: H160;972 readonly value: u128;973 } & Struct;974 readonly isCall: boolean;975 readonly asCall: {976 readonly source: H160;977 readonly target: H160;978 readonly input: Bytes;979 readonly value: U256;980 readonly gasLimit: u64;981 readonly maxFeePerGas: U256;982 readonly maxPriorityFeePerGas: Option<U256>;983 readonly nonce: Option<U256>;984 readonly accessList: Vec<ITuple<[H160, Vec<H256>]>>;985 } & Struct;986 readonly isCreate: boolean;987 readonly asCreate: {988 readonly source: H160;989 readonly init: Bytes;990 readonly value: U256;991 readonly gasLimit: u64;992 readonly maxFeePerGas: U256;993 readonly maxPriorityFeePerGas: Option<U256>;994 readonly nonce: Option<U256>;995 readonly accessList: Vec<ITuple<[H160, Vec<H256>]>>;996 } & Struct;997 readonly isCreate2: boolean;998 readonly asCreate2: {999 readonly source: H160;1000 readonly init: Bytes;1001 readonly salt: H256;1002 readonly value: U256;1003 readonly gasLimit: u64;1004 readonly maxFeePerGas: U256;1005 readonly maxPriorityFeePerGas: Option<U256>;1006 readonly nonce: Option<U256>;1007 readonly accessList: Vec<ITuple<[H160, Vec<H256>]>>;1008 } & Struct;1009 readonly type: 'Withdraw' | 'Call' | 'Create' | 'Create2';1010}10111012/** @name PalletEvmCoderSubstrateError */1013export interface PalletEvmCoderSubstrateError extends Enum {1014 readonly isOutOfGas: boolean;1015 readonly isOutOfFund: boolean;1016 readonly type: 'OutOfGas' | 'OutOfFund';1017}10181019/** @name PalletEvmContractHelpersError */1020export interface PalletEvmContractHelpersError extends Enum {1021 readonly isNoPermission: boolean;1022 readonly type: 'NoPermission';1023}10241025/** @name PalletEvmContractHelpersSponsoringModeT */1026export interface PalletEvmContractHelpersSponsoringModeT extends Enum {1027 readonly isDisabled: boolean;1028 readonly isAllowlisted: boolean;1029 readonly isGenerous: boolean;1030 readonly type: 'Disabled' | 'Allowlisted' | 'Generous';1031}10321033/** @name PalletEvmError */1034export interface PalletEvmError extends Enum {1035 readonly isBalanceLow: boolean;1036 readonly isFeeOverflow: boolean;1037 readonly isPaymentOverflow: boolean;1038 readonly isWithdrawFailed: boolean;1039 readonly isGasPriceTooLow: boolean;1040 readonly isInvalidNonce: boolean;1041 readonly type: 'BalanceLow' | 'FeeOverflow' | 'PaymentOverflow' | 'WithdrawFailed' | 'GasPriceTooLow' | 'InvalidNonce';1042}10431044/** @name PalletEvmEvent */1045export interface PalletEvmEvent extends Enum {1046 readonly isLog: boolean;1047 readonly asLog: EthereumLog;1048 readonly isCreated: boolean;1049 readonly asCreated: H160;1050 readonly isCreatedFailed: boolean;1051 readonly asCreatedFailed: H160;1052 readonly isExecuted: boolean;1053 readonly asExecuted: H160;1054 readonly isExecutedFailed: boolean;1055 readonly asExecutedFailed: H160;1056 readonly isBalanceDeposit: boolean;1057 readonly asBalanceDeposit: ITuple<[AccountId32, H160, U256]>;1058 readonly isBalanceWithdraw: boolean;1059 readonly asBalanceWithdraw: ITuple<[AccountId32, H160, U256]>;1060 readonly type: 'Log' | 'Created' | 'CreatedFailed' | 'Executed' | 'ExecutedFailed' | 'BalanceDeposit' | 'BalanceWithdraw';1061}10621063/** @name PalletEvmMigrationCall */1064export interface PalletEvmMigrationCall extends Enum {1065 readonly isBegin: boolean;1066 readonly asBegin: {1067 readonly address: H160;1068 } & Struct;1069 readonly isSetData: boolean;1070 readonly asSetData: {1071 readonly address: H160;1072 readonly data: Vec<ITuple<[H256, H256]>>;1073 } & Struct;1074 readonly isFinish: boolean;1075 readonly asFinish: {1076 readonly address: H160;1077 readonly code: Bytes;1078 } & Struct;1079 readonly type: 'Begin' | 'SetData' | 'Finish';1080}10811082/** @name PalletEvmMigrationError */1083export interface PalletEvmMigrationError extends Enum {1084 readonly isAccountNotEmpty: boolean;1085 readonly isAccountIsNotMigrating: boolean;1086 readonly type: 'AccountNotEmpty' | 'AccountIsNotMigrating';1087}10881089/** @name PalletFungibleError */1090export interface PalletFungibleError extends Enum {1091 readonly isNotFungibleDataUsedToMintFungibleCollectionToken: boolean;1092 readonly isFungibleItemsHaveNoId: boolean;1093 readonly isFungibleItemsDontHaveData: boolean;1094 readonly isFungibleDisallowsNesting: boolean;1095 readonly isSettingPropertiesNotAllowed: boolean;1096 readonly type: 'NotFungibleDataUsedToMintFungibleCollectionToken' | 'FungibleItemsHaveNoId' | 'FungibleItemsDontHaveData' | 'FungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';1097}10981099/** @name PalletInflationCall */1100export interface PalletInflationCall extends Enum {1101 readonly isStartInflation: boolean;1102 readonly asStartInflation: {1103 readonly inflationStartRelayBlock: u32;1104 } & Struct;1105 readonly type: 'StartInflation';1106}11071108/** @name PalletNonfungibleError */1109export interface PalletNonfungibleError extends Enum {1110 readonly isNotNonfungibleDataUsedToMintFungibleCollectionToken: boolean;1111 readonly isNonfungibleItemsHaveNoAmount: boolean;1112 readonly type: 'NotNonfungibleDataUsedToMintFungibleCollectionToken' | 'NonfungibleItemsHaveNoAmount';1113}11141115/** @name PalletNonfungibleItemData */1116export interface PalletNonfungibleItemData extends Struct {1117 readonly constData: Bytes;1118 readonly variableData: Bytes;1119 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;1120}11211122/** @name PalletRefungibleError */1123export interface PalletRefungibleError extends Enum {1124 readonly isNotRefungibleDataUsedToMintFungibleCollectionToken: boolean;1125 readonly isWrongRefungiblePieces: boolean;1126 readonly isRefungibleDisallowsNesting: boolean;1127 readonly isSettingPropertiesNotAllowed: boolean;1128 readonly type: 'NotRefungibleDataUsedToMintFungibleCollectionToken' | 'WrongRefungiblePieces' | 'RefungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';1129}11301131/** @name PalletRefungibleItemData */1132export interface PalletRefungibleItemData extends Struct {1133 readonly constData: Bytes;1134 readonly variableData: Bytes;1135}11361137/** @name PalletStructureCall */1138export interface PalletStructureCall extends Null {}11391140/** @name PalletStructureError */1141export interface PalletStructureError extends Enum {1142 readonly isOuroborosDetected: boolean;1143 readonly isDepthLimit: boolean;1144 readonly isTokenNotFound: boolean;1145 readonly type: 'OuroborosDetected' | 'DepthLimit' | 'TokenNotFound';1146}11471148/** @name PalletStructureEvent */1149export interface PalletStructureEvent extends Enum {1150 readonly isExecuted: boolean;1151 readonly asExecuted: Result<Null, SpRuntimeDispatchError>;1152 readonly type: 'Executed';1153}11541155/** @name PalletSudoCall */1156export interface PalletSudoCall extends Enum {1157 readonly isSudo: boolean;1158 readonly asSudo: {1159 readonly call: Call;1160 } & Struct;1161 readonly isSudoUncheckedWeight: boolean;1162 readonly asSudoUncheckedWeight: {1163 readonly call: Call;1164 readonly weight: u64;1165 } & Struct;1166 readonly isSetKey: boolean;1167 readonly asSetKey: {1168 readonly new_: MultiAddress;1169 } & Struct;1170 readonly isSudoAs: boolean;1171 readonly asSudoAs: {1172 readonly who: MultiAddress;1173 readonly call: Call;1174 } & Struct;1175 readonly type: 'Sudo' | 'SudoUncheckedWeight' | 'SetKey' | 'SudoAs';1176}11771178/** @name PalletSudoError */1179export interface PalletSudoError extends Enum {1180 readonly isRequireSudo: boolean;1181 readonly type: 'RequireSudo';1182}11831184/** @name PalletSudoEvent */1185export interface PalletSudoEvent extends Enum {1186 readonly isSudid: boolean;1187 readonly asSudid: {1188 readonly sudoResult: Result<Null, SpRuntimeDispatchError>;1189 } & Struct;1190 readonly isKeyChanged: boolean;1191 readonly asKeyChanged: {1192 readonly oldSudoer: Option<AccountId32>;1193 } & Struct;1194 readonly isSudoAsDone: boolean;1195 readonly asSudoAsDone: {1196 readonly sudoResult: Result<Null, SpRuntimeDispatchError>;1197 } & Struct;1198 readonly type: 'Sudid' | 'KeyChanged' | 'SudoAsDone';1199}12001201/** @name PalletTemplateTransactionPaymentCall */1202export interface PalletTemplateTransactionPaymentCall extends Null {}12031204/** @name PalletTemplateTransactionPaymentChargeTransactionPayment */1205export interface PalletTemplateTransactionPaymentChargeTransactionPayment extends Compact<u128> {}12061207/** @name PalletTimestampCall */1208export interface PalletTimestampCall extends Enum {1209 readonly isSet: boolean;1210 readonly asSet: {1211 readonly now: Compact<u64>;1212 } & Struct;1213 readonly type: 'Set';1214}12151216/** @name PalletTransactionPaymentReleases */1217export interface PalletTransactionPaymentReleases extends Enum {1218 readonly isV1Ancient: boolean;1219 readonly isV2: boolean;1220 readonly type: 'V1Ancient' | 'V2';1221}12221223/** @name PalletTreasuryCall */1224export interface PalletTreasuryCall extends Enum {1225 readonly isProposeSpend: boolean;1226 readonly asProposeSpend: {1227 readonly value: Compact<u128>;1228 readonly beneficiary: MultiAddress;1229 } & Struct;1230 readonly isRejectProposal: boolean;1231 readonly asRejectProposal: {1232 readonly proposalId: Compact<u32>;1233 } & Struct;1234 readonly isApproveProposal: boolean;1235 readonly asApproveProposal: {1236 readonly proposalId: Compact<u32>;1237 } & Struct;1238 readonly type: 'ProposeSpend' | 'RejectProposal' | 'ApproveProposal';1239}12401241/** @name PalletTreasuryError */1242export interface PalletTreasuryError extends Enum {1243 readonly isInsufficientProposersBalance: boolean;1244 readonly isInvalidIndex: boolean;1245 readonly isTooManyApprovals: boolean;1246 readonly type: 'InsufficientProposersBalance' | 'InvalidIndex' | 'TooManyApprovals';1247}12481249/** @name PalletTreasuryEvent */1250export interface PalletTreasuryEvent extends Enum {1251 readonly isProposed: boolean;1252 readonly asProposed: {1253 readonly proposalIndex: u32;1254 } & Struct;1255 readonly isSpending: boolean;1256 readonly asSpending: {1257 readonly budgetRemaining: u128;1258 } & Struct;1259 readonly isAwarded: boolean;1260 readonly asAwarded: {1261 readonly proposalIndex: u32;1262 readonly award: u128;1263 readonly account: AccountId32;1264 } & Struct;1265 readonly isRejected: boolean;1266 readonly asRejected: {1267 readonly proposalIndex: u32;1268 readonly slashed: u128;1269 } & Struct;1270 readonly isBurnt: boolean;1271 readonly asBurnt: {1272 readonly burntFunds: u128;1273 } & Struct;1274 readonly isRollover: boolean;1275 readonly asRollover: {1276 readonly rolloverBalance: u128;1277 } & Struct;1278 readonly isDeposit: boolean;1279 readonly asDeposit: {1280 readonly value: u128;1281 } & Struct;1282 readonly type: 'Proposed' | 'Spending' | 'Awarded' | 'Rejected' | 'Burnt' | 'Rollover' | 'Deposit';1283}12841285/** @name PalletTreasuryProposal */1286export interface PalletTreasuryProposal extends Struct {1287 readonly proposer: AccountId32;1288 readonly value: u128;1289 readonly beneficiary: AccountId32;1290 readonly bond: u128;1291}12921293/** @name PalletUniqueCall */1294export interface PalletUniqueCall extends Enum {1295 readonly isCreateCollection: boolean;1296 readonly asCreateCollection: {1297 readonly collectionName: Vec<u16>;1298 readonly collectionDescription: Vec<u16>;1299 readonly tokenPrefix: Bytes;1300 readonly mode: UpDataStructsCollectionMode;1301 } & Struct;1302 readonly isCreateCollectionEx: boolean;1303 readonly asCreateCollectionEx: {1304 readonly data: UpDataStructsCreateCollectionData;1305 } & Struct;1306 readonly isDestroyCollection: boolean;1307 readonly asDestroyCollection: {1308 readonly collectionId: u32;1309 } & Struct;1310 readonly isAddToAllowList: boolean;1311 readonly asAddToAllowList: {1312 readonly collectionId: u32;1313 readonly address: PalletEvmAccountBasicCrossAccountIdRepr;1314 } & Struct;1315 readonly isRemoveFromAllowList: boolean;1316 readonly asRemoveFromAllowList: {1317 readonly collectionId: u32;1318 readonly address: PalletEvmAccountBasicCrossAccountIdRepr;1319 } & Struct;1320 readonly isSetPublicAccessMode: boolean;1321 readonly asSetPublicAccessMode: {1322 readonly collectionId: u32;1323 readonly mode: UpDataStructsAccessMode;1324 } & Struct;1325 readonly isSetMintPermission: boolean;1326 readonly asSetMintPermission: {1327 readonly collectionId: u32;1328 readonly mintPermission: bool;1329 } & Struct;1330 readonly isChangeCollectionOwner: boolean;1331 readonly asChangeCollectionOwner: {1332 readonly collectionId: u32;1333 readonly newOwner: AccountId32;1334 } & Struct;1335 readonly isAddCollectionAdmin: boolean;1336 readonly asAddCollectionAdmin: {1337 readonly collectionId: u32;1338 readonly newAdminId: PalletEvmAccountBasicCrossAccountIdRepr;1339 } & Struct;1340 readonly isRemoveCollectionAdmin: boolean;1341 readonly asRemoveCollectionAdmin: {1342 readonly collectionId: u32;1343 readonly accountId: PalletEvmAccountBasicCrossAccountIdRepr;1344 } & Struct;1345 readonly isSetCollectionSponsor: boolean;1346 readonly asSetCollectionSponsor: {1347 readonly collectionId: u32;1348 readonly newSponsor: AccountId32;1349 } & Struct;1350 readonly isConfirmSponsorship: boolean;1351 readonly asConfirmSponsorship: {1352 readonly collectionId: u32;1353 } & Struct;1354 readonly isRemoveCollectionSponsor: boolean;1355 readonly asRemoveCollectionSponsor: {1356 readonly collectionId: u32;1357 } & Struct;1358 readonly isCreateItem: boolean;1359 readonly asCreateItem: {1360 readonly collectionId: u32;1361 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;1362 readonly data: UpDataStructsCreateItemData;1363 } & Struct;1364 readonly isCreateMultipleItems: boolean;1365 readonly asCreateMultipleItems: {1366 readonly collectionId: u32;1367 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;1368 readonly itemsData: Vec<UpDataStructsCreateItemData>;1369 } & Struct;1370 readonly isSetCollectionProperties: boolean;1371 readonly asSetCollectionProperties: {1372 readonly collectionId: u32;1373 readonly properties: Vec<UpDataStructsProperty>;1374 } & Struct;1375 readonly isDeleteCollectionProperties: boolean;1376 readonly asDeleteCollectionProperties: {1377 readonly collectionId: u32;1378 readonly propertyKeys: Vec<Bytes>;1379 } & Struct;1380 readonly isSetTokenProperties: boolean;1381 readonly asSetTokenProperties: {1382 readonly collectionId: u32;1383 readonly tokenId: u32;1384 readonly properties: Vec<UpDataStructsProperty>;1385 } & Struct;1386 readonly isDeleteTokenProperties: boolean;1387 readonly asDeleteTokenProperties: {1388 readonly collectionId: u32;1389 readonly tokenId: u32;1390 readonly propertyKeys: Vec<Bytes>;1391 } & Struct;1392 readonly isSetPropertyPermissions: boolean;1393 readonly asSetPropertyPermissions: {1394 readonly collectionId: u32;1395 readonly propertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;1396 } & Struct;1397 readonly isCreateMultipleItemsEx: boolean;1398 readonly asCreateMultipleItemsEx: {1399 readonly collectionId: u32;1400 readonly data: UpDataStructsCreateItemExData;1401 } & Struct;1402 readonly isSetTransfersEnabledFlag: boolean;1403 readonly asSetTransfersEnabledFlag: {1404 readonly collectionId: u32;1405 readonly value: bool;1406 } & Struct;1407 readonly isBurnItem: boolean;1408 readonly asBurnItem: {1409 readonly collectionId: u32;1410 readonly itemId: u32;1411 readonly value: u128;1412 } & Struct;1413 readonly isBurnFrom: boolean;1414 readonly asBurnFrom: {1415 readonly collectionId: u32;1416 readonly from: PalletEvmAccountBasicCrossAccountIdRepr;1417 readonly itemId: u32;1418 readonly value: u128;1419 } & Struct;1420 readonly isTransfer: boolean;1421 readonly asTransfer: {1422 readonly recipient: PalletEvmAccountBasicCrossAccountIdRepr;1423 readonly collectionId: u32;1424 readonly itemId: u32;1425 readonly value: u128;1426 } & Struct;1427 readonly isApprove: boolean;1428 readonly asApprove: {1429 readonly spender: PalletEvmAccountBasicCrossAccountIdRepr;1430 readonly collectionId: u32;1431 readonly itemId: u32;1432 readonly amount: u128;1433 } & Struct;1434 readonly isTransferFrom: boolean;1435 readonly asTransferFrom: {1436 readonly from: PalletEvmAccountBasicCrossAccountIdRepr;1437 readonly recipient: PalletEvmAccountBasicCrossAccountIdRepr;1438 readonly collectionId: u32;1439 readonly itemId: u32;1440 readonly value: u128;1441 } & Struct;1442 readonly isSetVariableMetaData: boolean;1443 readonly asSetVariableMetaData: {1444 readonly collectionId: u32;1445 readonly itemId: u32;1446 readonly data: Bytes;1447 } & Struct;1448 readonly isSetMetaUpdatePermissionFlag: boolean;1449 readonly asSetMetaUpdatePermissionFlag: {1450 readonly collectionId: u32;1451 readonly value: UpDataStructsMetaUpdatePermission;1452 } & Struct;1453 readonly isSetSchemaVersion: boolean;1454 readonly asSetSchemaVersion: {1455 readonly collectionId: u32;1456 readonly version: UpDataStructsSchemaVersion;1457 } & Struct;1458 readonly isSetOffchainSchema: boolean;1459 readonly asSetOffchainSchema: {1460 readonly collectionId: u32;1461 readonly schema: Bytes;1462 } & Struct;1463 readonly isSetConstOnChainSchema: boolean;1464 readonly asSetConstOnChainSchema: {1465 readonly collectionId: u32;1466 readonly schema: Bytes;1467 } & Struct;1468 readonly isSetCollectionLimits: boolean;1469 readonly asSetCollectionLimits: {1470 readonly collectionId: u32;1471 readonly newLimit: UpDataStructsCollectionLimits;1472 } & Struct;1473 readonly type: 'CreateCollection' | 'CreateCollectionEx' | 'DestroyCollection' | 'AddToAllowList' | 'RemoveFromAllowList' | 'SetPublicAccessMode' | 'SetMintPermission' | 'ChangeCollectionOwner' | 'AddCollectionAdmin' | 'RemoveCollectionAdmin' | 'SetCollectionSponsor' | 'ConfirmSponsorship' | 'RemoveCollectionSponsor' | 'CreateItem' | 'CreateMultipleItems' | 'SetCollectionProperties' | 'DeleteCollectionProperties' | 'SetTokenProperties' | 'DeleteTokenProperties' | 'SetPropertyPermissions' | 'CreateMultipleItemsEx' | 'SetTransfersEnabledFlag' | 'BurnItem' | 'BurnFrom' | 'Transfer' | 'Approve' | 'TransferFrom' | 'SetVariableMetaData' | 'SetMetaUpdatePermissionFlag' | 'SetSchemaVersion' | 'SetOffchainSchema' | 'SetConstOnChainSchema' | 'SetCollectionLimits';1474}14751476/** @name PalletUniqueError */1477export interface PalletUniqueError extends Enum {1478 readonly isCollectionDecimalPointLimitExceeded: boolean;1479 readonly isConfirmUnsetSponsorFail: boolean;1480 readonly isEmptyArgument: boolean;1481 readonly type: 'CollectionDecimalPointLimitExceeded' | 'ConfirmUnsetSponsorFail' | 'EmptyArgument';1482}14831484/** @name PalletUniqueRawEvent */1485export interface PalletUniqueRawEvent extends Enum {1486 readonly isCollectionSponsorRemoved: boolean;1487 readonly asCollectionSponsorRemoved: u32;1488 readonly isCollectionAdminAdded: boolean;1489 readonly asCollectionAdminAdded: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;1490 readonly isCollectionOwnedChanged: boolean;1491 readonly asCollectionOwnedChanged: ITuple<[u32, AccountId32]>;1492 readonly isCollectionSponsorSet: boolean;1493 readonly asCollectionSponsorSet: ITuple<[u32, AccountId32]>;1494 readonly isConstOnChainSchemaSet: boolean;1495 readonly asConstOnChainSchemaSet: u32;1496 readonly isSponsorshipConfirmed: boolean;1497 readonly asSponsorshipConfirmed: ITuple<[u32, AccountId32]>;1498 readonly isCollectionAdminRemoved: boolean;1499 readonly asCollectionAdminRemoved: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;1500 readonly isAllowListAddressRemoved: boolean;1501 readonly asAllowListAddressRemoved: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;1502 readonly isAllowListAddressAdded: boolean;1503 readonly asAllowListAddressAdded: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;1504 readonly isCollectionLimitSet: boolean;1505 readonly asCollectionLimitSet: u32;1506 readonly isMintPermissionSet: boolean;1507 readonly asMintPermissionSet: u32;1508 readonly isOffchainSchemaSet: boolean;1509 readonly asOffchainSchemaSet: u32;1510 readonly isPublicAccessModeSet: boolean;1511 readonly asPublicAccessModeSet: ITuple<[u32, UpDataStructsAccessMode]>;1512 readonly isSchemaVersionSet: boolean;1513 readonly asSchemaVersionSet: u32;1514 readonly type: 'CollectionSponsorRemoved' | 'CollectionAdminAdded' | 'CollectionOwnedChanged' | 'CollectionSponsorSet' | 'ConstOnChainSchemaSet' | 'SponsorshipConfirmed' | 'CollectionAdminRemoved' | 'AllowListAddressRemoved' | 'AllowListAddressAdded' | 'CollectionLimitSet' | 'MintPermissionSet' | 'OffchainSchemaSet' | 'PublicAccessModeSet' | 'SchemaVersionSet';1515}15161517/** @name PalletXcmCall */1518export interface PalletXcmCall extends Enum {1519 readonly isSend: boolean;1520 readonly asSend: {1521 readonly dest: XcmVersionedMultiLocation;1522 readonly message: XcmVersionedXcm;1523 } & Struct;1524 readonly isTeleportAssets: boolean;1525 readonly asTeleportAssets: {1526 readonly dest: XcmVersionedMultiLocation;1527 readonly beneficiary: XcmVersionedMultiLocation;1528 readonly assets: XcmVersionedMultiAssets;1529 readonly feeAssetItem: u32;1530 } & Struct;1531 readonly isReserveTransferAssets: boolean;1532 readonly asReserveTransferAssets: {1533 readonly dest: XcmVersionedMultiLocation;1534 readonly beneficiary: XcmVersionedMultiLocation;1535 readonly assets: XcmVersionedMultiAssets;1536 readonly feeAssetItem: u32;1537 } & Struct;1538 readonly isExecute: boolean;1539 readonly asExecute: {1540 readonly message: XcmVersionedXcm;1541 readonly maxWeight: u64;1542 } & Struct;1543 readonly isForceXcmVersion: boolean;1544 readonly asForceXcmVersion: {1545 readonly location: XcmV1MultiLocation;1546 readonly xcmVersion: u32;1547 } & Struct;1548 readonly isForceDefaultXcmVersion: boolean;1549 readonly asForceDefaultXcmVersion: {1550 readonly maybeXcmVersion: Option<u32>;1551 } & Struct;1552 readonly isForceSubscribeVersionNotify: boolean;1553 readonly asForceSubscribeVersionNotify: {1554 readonly location: XcmVersionedMultiLocation;1555 } & Struct;1556 readonly isForceUnsubscribeVersionNotify: boolean;1557 readonly asForceUnsubscribeVersionNotify: {1558 readonly location: XcmVersionedMultiLocation;1559 } & Struct;1560 readonly isLimitedReserveTransferAssets: boolean;1561 readonly asLimitedReserveTransferAssets: {1562 readonly dest: XcmVersionedMultiLocation;1563 readonly beneficiary: XcmVersionedMultiLocation;1564 readonly assets: XcmVersionedMultiAssets;1565 readonly feeAssetItem: u32;1566 readonly weightLimit: XcmV2WeightLimit;1567 } & Struct;1568 readonly isLimitedTeleportAssets: boolean;1569 readonly asLimitedTeleportAssets: {1570 readonly dest: XcmVersionedMultiLocation;1571 readonly beneficiary: XcmVersionedMultiLocation;1572 readonly assets: XcmVersionedMultiAssets;1573 readonly feeAssetItem: u32;1574 readonly weightLimit: XcmV2WeightLimit;1575 } & Struct;1576 readonly type: 'Send' | 'TeleportAssets' | 'ReserveTransferAssets' | 'Execute' | 'ForceXcmVersion' | 'ForceDefaultXcmVersion' | 'ForceSubscribeVersionNotify' | 'ForceUnsubscribeVersionNotify' | 'LimitedReserveTransferAssets' | 'LimitedTeleportAssets';1577}15781579/** @name PalletXcmError */1580export interface PalletXcmError extends Enum {1581 readonly isUnreachable: boolean;1582 readonly isSendFailure: boolean;1583 readonly isFiltered: boolean;1584 readonly isUnweighableMessage: boolean;1585 readonly isDestinationNotInvertible: boolean;1586 readonly isEmpty: boolean;1587 readonly isCannotReanchor: boolean;1588 readonly isTooManyAssets: boolean;1589 readonly isInvalidOrigin: boolean;1590 readonly isBadVersion: boolean;1591 readonly isBadLocation: boolean;1592 readonly isNoSubscription: boolean;1593 readonly isAlreadySubscribed: boolean;1594 readonly type: 'Unreachable' | 'SendFailure' | 'Filtered' | 'UnweighableMessage' | 'DestinationNotInvertible' | 'Empty' | 'CannotReanchor' | 'TooManyAssets' | 'InvalidOrigin' | 'BadVersion' | 'BadLocation' | 'NoSubscription' | 'AlreadySubscribed';1595}15961597/** @name PalletXcmEvent */1598export interface PalletXcmEvent extends Enum {1599 readonly isAttempted: boolean;1600 readonly asAttempted: XcmV2TraitsOutcome;1601 readonly isSent: boolean;1602 readonly asSent: ITuple<[XcmV1MultiLocation, XcmV1MultiLocation, XcmV2Xcm]>;1603 readonly isUnexpectedResponse: boolean;1604 readonly asUnexpectedResponse: ITuple<[XcmV1MultiLocation, u64]>;1605 readonly isResponseReady: boolean;1606 readonly asResponseReady: ITuple<[u64, XcmV2Response]>;1607 readonly isNotified: boolean;1608 readonly asNotified: ITuple<[u64, u8, u8]>;1609 readonly isNotifyOverweight: boolean;1610 readonly asNotifyOverweight: ITuple<[u64, u8, u8, u64, u64]>;1611 readonly isNotifyDispatchError: boolean;1612 readonly asNotifyDispatchError: ITuple<[u64, u8, u8]>;1613 readonly isNotifyDecodeFailed: boolean;1614 readonly asNotifyDecodeFailed: ITuple<[u64, u8, u8]>;1615 readonly isInvalidResponder: boolean;1616 readonly asInvalidResponder: ITuple<[XcmV1MultiLocation, u64, Option<XcmV1MultiLocation>]>;1617 readonly isInvalidResponderVersion: boolean;1618 readonly asInvalidResponderVersion: ITuple<[XcmV1MultiLocation, u64]>;1619 readonly isResponseTaken: boolean;1620 readonly asResponseTaken: u64;1621 readonly isAssetsTrapped: boolean;1622 readonly asAssetsTrapped: ITuple<[H256, XcmV1MultiLocation, XcmVersionedMultiAssets]>;1623 readonly isVersionChangeNotified: boolean;1624 readonly asVersionChangeNotified: ITuple<[XcmV1MultiLocation, u32]>;1625 readonly isSupportedVersionChanged: boolean;1626 readonly asSupportedVersionChanged: ITuple<[XcmV1MultiLocation, u32]>;1627 readonly isNotifyTargetSendFail: boolean;1628 readonly asNotifyTargetSendFail: ITuple<[XcmV1MultiLocation, u64, XcmV2TraitsError]>;1629 readonly isNotifyTargetMigrationFail: boolean;1630 readonly asNotifyTargetMigrationFail: ITuple<[XcmVersionedMultiLocation, u64]>;1631 readonly type: 'Attempted' | 'Sent' | 'UnexpectedResponse' | 'ResponseReady' | 'Notified' | 'NotifyOverweight' | 'NotifyDispatchError' | 'NotifyDecodeFailed' | 'InvalidResponder' | 'InvalidResponderVersion' | 'ResponseTaken' | 'AssetsTrapped' | 'VersionChangeNotified' | 'SupportedVersionChanged' | 'NotifyTargetSendFail' | 'NotifyTargetMigrationFail';1632}16331634/** @name PhantomTypeUpDataStructsBaseInfo */1635export interface PhantomTypeUpDataStructsBaseInfo extends Vec<Lookup359> {}16361637/** @name PhantomTypeUpDataStructsCollectionInfo */1638export interface PhantomTypeUpDataStructsCollectionInfo extends Vec<Lookup336> {}16391640/** @name PhantomTypeUpDataStructsNftChild */1641export interface PhantomTypeUpDataStructsNftChild extends Vec<Lookup374> {}16421643/** @name PhantomTypeUpDataStructsNftInfo */1644export interface PhantomTypeUpDataStructsNftInfo extends Vec<Lookup341> {}16451646/** @name PhantomTypeUpDataStructsPartType */1647export interface PhantomTypeUpDataStructsPartType extends Vec<Lookup362> {}16481649/** @name PhantomTypeUpDataStructsPropertyInfo */1650export interface PhantomTypeUpDataStructsPropertyInfo extends Vec<Lookup354> {}16511652/** @name PhantomTypeUpDataStructsResourceInfo */1653export interface PhantomTypeUpDataStructsResourceInfo extends Vec<Lookup347> {}16541655/** @name PhantomTypeUpDataStructsRpcCollection */1656export interface PhantomTypeUpDataStructsRpcCollection extends Vec<Lookup333> {}16571658/** @name PhantomTypeUpDataStructsTheme */1659export interface PhantomTypeUpDataStructsTheme extends Vec<Lookup369> {}16601661/** @name PhantomTypeUpDataStructsTokenData */1662export interface PhantomTypeUpDataStructsTokenData extends Vec<Lookup329> {}16631664/** @name PolkadotCorePrimitivesInboundDownwardMessage */1665export interface PolkadotCorePrimitivesInboundDownwardMessage extends Struct {1666 readonly sentAt: u32;1667 readonly msg: Bytes;1668}16691670/** @name PolkadotCorePrimitivesInboundHrmpMessage */1671export interface PolkadotCorePrimitivesInboundHrmpMessage extends Struct {1672 readonly sentAt: u32;1673 readonly data: Bytes;1674}16751676/** @name PolkadotCorePrimitivesOutboundHrmpMessage */1677export interface PolkadotCorePrimitivesOutboundHrmpMessage extends Struct {1678 readonly recipient: u32;1679 readonly data: Bytes;1680}16811682/** @name PolkadotParachainPrimitivesXcmpMessageFormat */1683export interface PolkadotParachainPrimitivesXcmpMessageFormat extends Enum {1684 readonly isConcatenatedVersionedXcm: boolean;1685 readonly isConcatenatedEncodedBlob: boolean;1686 readonly isSignals: boolean;1687 readonly type: 'ConcatenatedVersionedXcm' | 'ConcatenatedEncodedBlob' | 'Signals';1688}16891690/** @name PolkadotPrimitivesV2AbridgedHostConfiguration */1691export interface PolkadotPrimitivesV2AbridgedHostConfiguration extends Struct {1692 readonly maxCodeSize: u32;1693 readonly maxHeadDataSize: u32;1694 readonly maxUpwardQueueCount: u32;1695 readonly maxUpwardQueueSize: u32;1696 readonly maxUpwardMessageSize: u32;1697 readonly maxUpwardMessageNumPerCandidate: u32;1698 readonly hrmpMaxMessageNumPerCandidate: u32;1699 readonly validationUpgradeCooldown: u32;1700 readonly validationUpgradeDelay: u32;1701}17021703/** @name PolkadotPrimitivesV2AbridgedHrmpChannel */1704export interface PolkadotPrimitivesV2AbridgedHrmpChannel extends Struct {1705 readonly maxCapacity: u32;1706 readonly maxTotalSize: u32;1707 readonly maxMessageSize: u32;1708 readonly msgCount: u32;1709 readonly totalSize: u32;1710 readonly mqcHead: Option<H256>;1711}17121713/** @name PolkadotPrimitivesV2PersistedValidationData */1714export interface PolkadotPrimitivesV2PersistedValidationData extends Struct {1715 readonly parentHead: Bytes;1716 readonly relayParentNumber: u32;1717 readonly relayParentStorageRoot: H256;1718 readonly maxPovSize: u32;1719}17201721/** @name PolkadotPrimitivesV2UpgradeRestriction */1722export interface PolkadotPrimitivesV2UpgradeRestriction extends Enum {1723 readonly isPresent: boolean;1724 readonly type: 'Present';1725}17261727/** @name RmrkTypesAccountIdOrCollectionNftTuple */1728export interface RmrkTypesAccountIdOrCollectionNftTuple extends Enum {1729 readonly isAccountId: boolean;1730 readonly asAccountId: AccountId32;1731 readonly isCollectionAndNftTuple: boolean;1732 readonly asCollectionAndNftTuple: ITuple<[u32, u32]>;1733 readonly type: 'AccountId' | 'CollectionAndNftTuple';1734}17351736/** @name RmrkTypesBaseInfo */1737export interface RmrkTypesBaseInfo extends Struct {1738 readonly issuer: AccountId32;1739 readonly baseType: Bytes;1740 readonly symbol: Bytes;1741}17421743/** @name RmrkTypesCollectionInfo */1744export interface RmrkTypesCollectionInfo extends Struct {1745 readonly issuer: AccountId32;1746 readonly metadata: Bytes;1747 readonly max: Option<u32>;1748 readonly symbol: Bytes;1749 readonly nftsCount: u32;1750}17511752/** @name RmrkTypesEquippableList */1753export interface RmrkTypesEquippableList extends Enum {1754 readonly isAll: boolean;1755 readonly isEmpty: boolean;1756 readonly isCustom: boolean;1757 readonly asCustom: Vec<u32>;1758 readonly type: 'All' | 'Empty' | 'Custom';1759}17601761/** @name RmrkTypesFixedPart */1762export interface RmrkTypesFixedPart extends Struct {1763 readonly id: u32;1764 readonly z: u32;1765 readonly src: Bytes;1766}17671768/** @name RmrkTypesNftChild */1769export interface RmrkTypesNftChild extends Struct {1770 readonly collectionId: u32;1771 readonly nftId: u32;1772}17731774/** @name RmrkTypesNftInfo */1775export interface RmrkTypesNftInfo extends Struct {1776 readonly owner: RmrkTypesAccountIdOrCollectionNftTuple;1777 readonly royalty: Option<RmrkTypesRoyaltyInfo>;1778 readonly metadata: Bytes;1779 readonly equipped: bool;1780 readonly pending: bool;1781}17821783/** @name RmrkTypesPartType */1784export interface RmrkTypesPartType extends Enum {1785 readonly isFixedPart: boolean;1786 readonly asFixedPart: RmrkTypesFixedPart;1787 readonly isSlotPart: boolean;1788 readonly asSlotPart: RmrkTypesSlotPart;1789 readonly type: 'FixedPart' | 'SlotPart';1790}17911792/** @name RmrkTypesPropertyInfo */1793export interface RmrkTypesPropertyInfo extends Struct {1794 readonly key: Bytes;1795 readonly value: Bytes;1796}17971798/** @name RmrkTypesResourceInfo */1799export interface RmrkTypesResourceInfo extends Struct {1800 readonly id: Bytes;1801 readonly pending: bool;1802 readonly pendingRemoval: bool;1803 readonly parts: Option<Vec<u32>>;1804 readonly base: Option<u32>;1805 readonly src: Option<Bytes>;1806 readonly metadata: Option<Bytes>;1807 readonly slot: Option<u32>;1808 readonly license: Option<Bytes>;1809 readonly thumb: Option<Bytes>;1810}18111812/** @name RmrkTypesRoyaltyInfo */1813export interface RmrkTypesRoyaltyInfo extends Struct {1814 readonly recipient: AccountId32;1815 readonly amount: Permill;1816}18171818/** @name RmrkTypesSlotPart */1819export interface RmrkTypesSlotPart extends Struct {1820 readonly id: u32;1821 readonly equippable: RmrkTypesEquippableList;1822 readonly src: Bytes;1823 readonly z: u32;1824}18251826/** @name RmrkTypesTheme */1827export interface RmrkTypesTheme extends Struct {1828 readonly name: Bytes;1829 readonly properties: Vec<RmrkTypesThemeProperty>;1830 readonly inherit: bool;1831}18321833/** @name RmrkTypesThemeProperty */1834export interface RmrkTypesThemeProperty extends Struct {1835 readonly key: Bytes;1836 readonly value: Bytes;1837}18381839/** @name SpCoreEcdsaSignature */1840export interface SpCoreEcdsaSignature extends U8aFixed {}18411842/** @name SpCoreEd25519Signature */1843export interface SpCoreEd25519Signature extends U8aFixed {}18441845/** @name SpCoreSr25519Signature */1846export interface SpCoreSr25519Signature extends U8aFixed {}18471848/** @name SpRuntimeArithmeticError */1849export interface SpRuntimeArithmeticError extends Enum {1850 readonly isUnderflow: boolean;1851 readonly isOverflow: boolean;1852 readonly isDivisionByZero: boolean;1853 readonly type: 'Underflow' | 'Overflow' | 'DivisionByZero';1854}18551856/** @name SpRuntimeDigest */1857export interface SpRuntimeDigest extends Struct {1858 readonly logs: Vec<SpRuntimeDigestDigestItem>;1859}18601861/** @name SpRuntimeDigestDigestItem */1862export interface SpRuntimeDigestDigestItem extends Enum {1863 readonly isOther: boolean;1864 readonly asOther: Bytes;1865 readonly isConsensus: boolean;1866 readonly asConsensus: ITuple<[U8aFixed, Bytes]>;1867 readonly isSeal: boolean;1868 readonly asSeal: ITuple<[U8aFixed, Bytes]>;1869 readonly isPreRuntime: boolean;1870 readonly asPreRuntime: ITuple<[U8aFixed, Bytes]>;1871 readonly isRuntimeEnvironmentUpdated: boolean;1872 readonly type: 'Other' | 'Consensus' | 'Seal' | 'PreRuntime' | 'RuntimeEnvironmentUpdated';1873}18741875/** @name SpRuntimeDispatchError */1876export interface SpRuntimeDispatchError extends Enum {1877 readonly isOther: boolean;1878 readonly isCannotLookup: boolean;1879 readonly isBadOrigin: boolean;1880 readonly isModule: boolean;1881 readonly asModule: SpRuntimeModuleError;1882 readonly isConsumerRemaining: boolean;1883 readonly isNoProviders: boolean;1884 readonly isTooManyConsumers: boolean;1885 readonly isToken: boolean;1886 readonly asToken: SpRuntimeTokenError;1887 readonly isArithmetic: boolean;1888 readonly asArithmetic: SpRuntimeArithmeticError;1889 readonly isTransactional: boolean;1890 readonly asTransactional: SpRuntimeTransactionalError;1891 readonly type: 'Other' | 'CannotLookup' | 'BadOrigin' | 'Module' | 'ConsumerRemaining' | 'NoProviders' | 'TooManyConsumers' | 'Token' | 'Arithmetic' | 'Transactional';1892}18931894/** @name SpRuntimeModuleError */1895export interface SpRuntimeModuleError extends Struct {1896 readonly index: u8;1897 readonly error: U8aFixed;1898}18991900/** @name SpRuntimeMultiSignature */1901export interface SpRuntimeMultiSignature extends Enum {1902 readonly isEd25519: boolean;1903 readonly asEd25519: SpCoreEd25519Signature;1904 readonly isSr25519: boolean;1905 readonly asSr25519: SpCoreSr25519Signature;1906 readonly isEcdsa: boolean;1907 readonly asEcdsa: SpCoreEcdsaSignature;1908 readonly type: 'Ed25519' | 'Sr25519' | 'Ecdsa';1909}19101911/** @name SpRuntimeTokenError */1912export interface SpRuntimeTokenError extends Enum {1913 readonly isNoFunds: boolean;1914 readonly isWouldDie: boolean;1915 readonly isBelowMinimum: boolean;1916 readonly isCannotCreate: boolean;1917 readonly isUnknownAsset: boolean;1918 readonly isFrozen: boolean;1919 readonly isUnsupported: boolean;1920 readonly type: 'NoFunds' | 'WouldDie' | 'BelowMinimum' | 'CannotCreate' | 'UnknownAsset' | 'Frozen' | 'Unsupported';1921}19221923/** @name SpRuntimeTransactionalError */1924export interface SpRuntimeTransactionalError extends Enum {1925 readonly isLimitReached: boolean;1926 readonly isNoLayer: boolean;1927 readonly type: 'LimitReached' | 'NoLayer';1928}19291930/** @name SpTrieStorageProof */1931export interface SpTrieStorageProof extends Struct {1932 readonly trieNodes: BTreeSet<Bytes>;1933}19341935/** @name SpVersionRuntimeVersion */1936export interface SpVersionRuntimeVersion extends Struct {1937 readonly specName: Text;1938 readonly implName: Text;1939 readonly authoringVersion: u32;1940 readonly specVersion: u32;1941 readonly implVersion: u32;1942 readonly apis: Vec<ITuple<[U8aFixed, u32]>>;1943 readonly transactionVersion: u32;1944 readonly stateVersion: u8;1945}19461947/** @name UpDataStructsAccessMode */1948export interface UpDataStructsAccessMode extends Enum {1949 readonly isNormal: boolean;1950 readonly isAllowList: boolean;1951 readonly type: 'Normal' | 'AllowList';1952}19531954/** @name UpDataStructsCollection */1955export interface UpDataStructsCollection extends Struct {1956 readonly owner: AccountId32;1957 readonly mode: UpDataStructsCollectionMode;1958 readonly access: UpDataStructsAccessMode;1959 readonly name: Vec<u16>;1960 readonly description: Vec<u16>;1961 readonly tokenPrefix: Bytes;1962 readonly mintMode: bool;1963 readonly schemaVersion: UpDataStructsSchemaVersion;1964 readonly sponsorship: UpDataStructsSponsorshipState;1965 readonly limits: UpDataStructsCollectionLimits;1966 readonly metaUpdatePermission: UpDataStructsMetaUpdatePermission;1967}19681969/** @name UpDataStructsCollectionField */1970export interface UpDataStructsCollectionField extends Enum {1971 readonly isConstOnChainSchema: boolean;1972 readonly isOffchainSchema: boolean;1973 readonly type: 'ConstOnChainSchema' | 'OffchainSchema';1974}19751976/** @name UpDataStructsCollectionLimits */1977export interface UpDataStructsCollectionLimits extends Struct {1978 readonly accountTokenOwnershipLimit: Option<u32>;1979 readonly sponsoredDataSize: Option<u32>;1980 readonly sponsoredDataRateLimit: Option<UpDataStructsSponsoringRateLimit>;1981 readonly tokenLimit: Option<u32>;1982 readonly sponsorTransferTimeout: Option<u32>;1983 readonly sponsorApproveTimeout: Option<u32>;1984 readonly ownerCanTransfer: Option<bool>;1985 readonly ownerCanDestroy: Option<bool>;1986 readonly transfersEnabled: Option<bool>;1987 readonly nestingRule: Option<UpDataStructsNestingRule>;1988}19891990/** @name UpDataStructsCollectionMode */1991export interface UpDataStructsCollectionMode extends Enum {1992 readonly isNft: boolean;1993 readonly isFungible: boolean;1994 readonly asFungible: u8;1995 readonly isReFungible: boolean;1996 readonly type: 'Nft' | 'Fungible' | 'ReFungible';1997}19981999/** @name UpDataStructsCollectionStats */2000export interface UpDataStructsCollectionStats extends Struct {2001 readonly created: u32;2002 readonly destroyed: u32;2003 readonly alive: u32;2004}20052006/** @name UpDataStructsCreateCollectionData */2007export interface UpDataStructsCreateCollectionData extends Struct {2008 readonly mode: UpDataStructsCollectionMode;2009 readonly access: Option<UpDataStructsAccessMode>;2010 readonly name: Vec<u16>;2011 readonly description: Vec<u16>;2012 readonly tokenPrefix: Bytes;2013 readonly offchainSchema: Bytes;2014 readonly schemaVersion: Option<UpDataStructsSchemaVersion>;2015 readonly pendingSponsor: Option<AccountId32>;2016 readonly limits: Option<UpDataStructsCollectionLimits>;2017 readonly constOnChainSchema: Bytes;2018 readonly metaUpdatePermission: Option<UpDataStructsMetaUpdatePermission>;2019 readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;2020 readonly properties: Vec<UpDataStructsProperty>;2021}20222023/** @name UpDataStructsCreateFungibleData */2024export interface UpDataStructsCreateFungibleData extends Struct {2025 readonly value: u128;2026}20272028/** @name UpDataStructsCreateItemData */2029export interface UpDataStructsCreateItemData extends Enum {2030 readonly isNft: boolean;2031 readonly asNft: UpDataStructsCreateNftData;2032 readonly isFungible: boolean;2033 readonly asFungible: UpDataStructsCreateFungibleData;2034 readonly isReFungible: boolean;2035 readonly asReFungible: UpDataStructsCreateReFungibleData;2036 readonly type: 'Nft' | 'Fungible' | 'ReFungible';2037}20382039/** @name UpDataStructsCreateItemExData */2040export interface UpDataStructsCreateItemExData extends Enum {2041 readonly isNft: boolean;2042 readonly asNft: Vec<UpDataStructsCreateNftExData>;2043 readonly isFungible: boolean;2044 readonly asFungible: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr,u128>;2045 readonly isRefungibleMultipleItems: boolean;2046 readonly asRefungibleMultipleItems: Vec<UpDataStructsCreateRefungibleExData>;2047 readonly isRefungibleMultipleOwners: boolean;2048 readonly asRefungibleMultipleOwners: UpDataStructsCreateRefungibleExData;2049 readonly type: 'Nft' | 'Fungible' | 'RefungibleMultipleItems' | 'RefungibleMultipleOwners';2050}20512052/** @name UpDataStructsCreateNftData */2053export interface UpDataStructsCreateNftData extends Struct {2054 readonly constData: Bytes;2055 readonly variableData: Bytes;2056 readonly properties: Vec<UpDataStructsProperty>;2057}20582059/** @name UpDataStructsCreateNftExData */2060export interface UpDataStructsCreateNftExData extends Struct {2061 readonly constData: Bytes;2062 readonly variableData: Bytes;2063 readonly properties: Vec<UpDataStructsProperty>;2064 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;2065}20662067/** @name UpDataStructsCreateReFungibleData */2068export interface UpDataStructsCreateReFungibleData extends Struct {2069 readonly constData: Bytes;2070 readonly variableData: Bytes;2071 readonly pieces: u128;2072}20732074/** @name UpDataStructsCreateRefungibleExData */2075export interface UpDataStructsCreateRefungibleExData extends Struct {2076 readonly constData: Bytes;2077 readonly variableData: Bytes;2078 readonly users: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>;2079}20802081/** @name UpDataStructsMetaUpdatePermission */2082export interface UpDataStructsMetaUpdatePermission extends Enum {2083 readonly isItemOwner: boolean;2084 readonly isAdmin: boolean;2085 readonly isNone: boolean;2086 readonly type: 'ItemOwner' | 'Admin' | 'None';2087}20882089/** @name UpDataStructsNestingRule */2090export interface UpDataStructsNestingRule extends Enum {2091 readonly isDisabled: boolean;2092 readonly isOwner: boolean;2093 readonly isOwnerRestricted: boolean;2094 readonly asOwnerRestricted: FrameSupportStorageBoundedBTreeSet;2095 readonly type: 'Disabled' | 'Owner' | 'OwnerRestricted';2096}20972098/** @name UpDataStructsProperties */2099export interface UpDataStructsProperties extends Struct {2100 readonly map: UpDataStructsPropertiesMapBoundedVec;2101 readonly consumedSpace: u32;2102 readonly spaceLimit: u32;2103}21042105/** @name UpDataStructsPropertiesMapBoundedVec */2106export interface UpDataStructsPropertiesMapBoundedVec extends BTreeMap<Bytes, Bytes> {}21072108/** @name UpDataStructsPropertiesMapPropertyPermission */2109export interface UpDataStructsPropertiesMapPropertyPermission extends BTreeMap<Bytes, UpDataStructsPropertyPermission> {}21102111/** @name UpDataStructsProperty */2112export interface UpDataStructsProperty extends Struct {2113 readonly key: Bytes;2114 readonly value: Bytes;2115}21162117/** @name UpDataStructsPropertyKeyPermission */2118export interface UpDataStructsPropertyKeyPermission extends Struct {2119 readonly key: Bytes;2120 readonly permission: UpDataStructsPropertyPermission;2121}21222123/** @name UpDataStructsPropertyPermission */2124export interface UpDataStructsPropertyPermission extends Struct {2125 readonly mutable: bool;2126 readonly collectionAdmin: bool;2127 readonly tokenOwner: bool;2128}21292130/** @name UpDataStructsRpcCollection */2131export interface UpDataStructsRpcCollection extends Struct {2132 readonly owner: AccountId32;2133 readonly mode: UpDataStructsCollectionMode;2134 readonly access: UpDataStructsAccessMode;2135 readonly name: Vec<u16>;2136 readonly description: Vec<u16>;2137 readonly tokenPrefix: Bytes;2138 readonly mintMode: bool;2139 readonly offchainSchema: Bytes;2140 readonly schemaVersion: UpDataStructsSchemaVersion;2141 readonly sponsorship: UpDataStructsSponsorshipState;2142 readonly limits: UpDataStructsCollectionLimits;2143 readonly constOnChainSchema: Bytes;2144 readonly metaUpdatePermission: UpDataStructsMetaUpdatePermission;2145 readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;2146 readonly properties: Vec<UpDataStructsProperty>;2147}21482149/** @name UpDataStructsSchemaVersion */2150export interface UpDataStructsSchemaVersion extends Enum {2151 readonly isImageURL: boolean;2152 readonly isUnique: boolean;2153 readonly type: 'ImageURL' | 'Unique';2154}21552156/** @name UpDataStructsSponsoringRateLimit */2157export interface UpDataStructsSponsoringRateLimit extends Enum {2158 readonly isSponsoringDisabled: boolean;2159 readonly isBlocks: boolean;2160 readonly asBlocks: u32;2161 readonly type: 'SponsoringDisabled' | 'Blocks';2162}21632164/** @name UpDataStructsSponsorshipState */2165export interface UpDataStructsSponsorshipState extends Enum {2166 readonly isDisabled: boolean;2167 readonly isUnconfirmed: boolean;2168 readonly asUnconfirmed: AccountId32;2169 readonly isConfirmed: boolean;2170 readonly asConfirmed: AccountId32;2171 readonly type: 'Disabled' | 'Unconfirmed' | 'Confirmed';2172}21732174/** @name UpDataStructsTokenData */2175export interface UpDataStructsTokenData extends Struct {2176 readonly constData: Bytes;2177 readonly properties: Vec<UpDataStructsProperty>;2178 readonly owner: Option<PalletEvmAccountBasicCrossAccountIdRepr>;2179}21802181/** @name XcmDoubleEncoded */2182export interface XcmDoubleEncoded extends Struct {2183 readonly encoded: Bytes;2184}21852186/** @name XcmV0Junction */2187export interface XcmV0Junction extends Enum {2188 readonly isParent: boolean;2189 readonly isParachain: boolean;2190 readonly asParachain: Compact<u32>;2191 readonly isAccountId32: boolean;2192 readonly asAccountId32: {2193 readonly network: XcmV0JunctionNetworkId;2194 readonly id: U8aFixed;2195 } & Struct;2196 readonly isAccountIndex64: boolean;2197 readonly asAccountIndex64: {2198 readonly network: XcmV0JunctionNetworkId;2199 readonly index: Compact<u64>;2200 } & Struct;2201 readonly isAccountKey20: boolean;2202 readonly asAccountKey20: {2203 readonly network: XcmV0JunctionNetworkId;2204 readonly key: U8aFixed;2205 } & Struct;2206 readonly isPalletInstance: boolean;2207 readonly asPalletInstance: u8;2208 readonly isGeneralIndex: boolean;2209 readonly asGeneralIndex: Compact<u128>;2210 readonly isGeneralKey: boolean;2211 readonly asGeneralKey: Bytes;2212 readonly isOnlyChild: boolean;2213 readonly isPlurality: boolean;2214 readonly asPlurality: {2215 readonly id: XcmV0JunctionBodyId;2216 readonly part: XcmV0JunctionBodyPart;2217 } & Struct;2218 readonly type: 'Parent' | 'Parachain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality';2219}22202221/** @name XcmV0JunctionBodyId */2222export interface XcmV0JunctionBodyId extends Enum {2223 readonly isUnit: boolean;2224 readonly isNamed: boolean;2225 readonly asNamed: Bytes;2226 readonly isIndex: boolean;2227 readonly asIndex: Compact<u32>;2228 readonly isExecutive: boolean;2229 readonly isTechnical: boolean;2230 readonly isLegislative: boolean;2231 readonly isJudicial: boolean;2232 readonly type: 'Unit' | 'Named' | 'Index' | 'Executive' | 'Technical' | 'Legislative' | 'Judicial';2233}22342235/** @name XcmV0JunctionBodyPart */2236export interface XcmV0JunctionBodyPart extends Enum {2237 readonly isVoice: boolean;2238 readonly isMembers: boolean;2239 readonly asMembers: {2240 readonly count: Compact<u32>;2241 } & Struct;2242 readonly isFraction: boolean;2243 readonly asFraction: {2244 readonly nom: Compact<u32>;2245 readonly denom: Compact<u32>;2246 } & Struct;2247 readonly isAtLeastProportion: boolean;2248 readonly asAtLeastProportion: {2249 readonly nom: Compact<u32>;2250 readonly denom: Compact<u32>;2251 } & Struct;2252 readonly isMoreThanProportion: boolean;2253 readonly asMoreThanProportion: {2254 readonly nom: Compact<u32>;2255 readonly denom: Compact<u32>;2256 } & Struct;2257 readonly type: 'Voice' | 'Members' | 'Fraction' | 'AtLeastProportion' | 'MoreThanProportion';2258}22592260/** @name XcmV0JunctionNetworkId */2261export interface XcmV0JunctionNetworkId extends Enum {2262 readonly isAny: boolean;2263 readonly isNamed: boolean;2264 readonly asNamed: Bytes;2265 readonly isPolkadot: boolean;2266 readonly isKusama: boolean;2267 readonly type: 'Any' | 'Named' | 'Polkadot' | 'Kusama';2268}22692270/** @name XcmV0MultiAsset */2271export interface XcmV0MultiAsset extends Enum {2272 readonly isNone: boolean;2273 readonly isAll: boolean;2274 readonly isAllFungible: boolean;2275 readonly isAllNonFungible: boolean;2276 readonly isAllAbstractFungible: boolean;2277 readonly asAllAbstractFungible: {2278 readonly id: Bytes;2279 } & Struct;2280 readonly isAllAbstractNonFungible: boolean;2281 readonly asAllAbstractNonFungible: {2282 readonly class: Bytes;2283 } & Struct;2284 readonly isAllConcreteFungible: boolean;2285 readonly asAllConcreteFungible: {2286 readonly id: XcmV0MultiLocation;2287 } & Struct;2288 readonly isAllConcreteNonFungible: boolean;2289 readonly asAllConcreteNonFungible: {2290 readonly class: XcmV0MultiLocation;2291 } & Struct;2292 readonly isAbstractFungible: boolean;2293 readonly asAbstractFungible: {2294 readonly id: Bytes;2295 readonly amount: Compact<u128>;2296 } & Struct;2297 readonly isAbstractNonFungible: boolean;2298 readonly asAbstractNonFungible: {2299 readonly class: Bytes;2300 readonly instance: XcmV1MultiassetAssetInstance;2301 } & Struct;2302 readonly isConcreteFungible: boolean;2303 readonly asConcreteFungible: {2304 readonly id: XcmV0MultiLocation;2305 readonly amount: Compact<u128>;2306 } & Struct;2307 readonly isConcreteNonFungible: boolean;2308 readonly asConcreteNonFungible: {2309 readonly class: XcmV0MultiLocation;2310 readonly instance: XcmV1MultiassetAssetInstance;2311 } & Struct;2312 readonly type: 'None' | 'All' | 'AllFungible' | 'AllNonFungible' | 'AllAbstractFungible' | 'AllAbstractNonFungible' | 'AllConcreteFungible' | 'AllConcreteNonFungible' | 'AbstractFungible' | 'AbstractNonFungible' | 'ConcreteFungible' | 'ConcreteNonFungible';2313}23142315/** @name XcmV0MultiLocation */2316export interface XcmV0MultiLocation extends Enum {2317 readonly isNull: boolean;2318 readonly isX1: boolean;2319 readonly asX1: XcmV0Junction;2320 readonly isX2: boolean;2321 readonly asX2: ITuple<[XcmV0Junction, XcmV0Junction]>;2322 readonly isX3: boolean;2323 readonly asX3: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction]>;2324 readonly isX4: boolean;2325 readonly asX4: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;2326 readonly isX5: boolean;2327 readonly asX5: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;2328 readonly isX6: boolean;2329 readonly asX6: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;2330 readonly isX7: boolean;2331 readonly asX7: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;2332 readonly isX8: boolean;2333 readonly asX8: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;2334 readonly type: 'Null' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8';2335}23362337/** @name XcmV0Order */2338export interface XcmV0Order extends Enum {2339 readonly isNull: boolean;2340 readonly isDepositAsset: boolean;2341 readonly asDepositAsset: {2342 readonly assets: Vec<XcmV0MultiAsset>;2343 readonly dest: XcmV0MultiLocation;2344 } & Struct;2345 readonly isDepositReserveAsset: boolean;2346 readonly asDepositReserveAsset: {2347 readonly assets: Vec<XcmV0MultiAsset>;2348 readonly dest: XcmV0MultiLocation;2349 readonly effects: Vec<XcmV0Order>;2350 } & Struct;2351 readonly isExchangeAsset: boolean;2352 readonly asExchangeAsset: {2353 readonly give: Vec<XcmV0MultiAsset>;2354 readonly receive: Vec<XcmV0MultiAsset>;2355 } & Struct;2356 readonly isInitiateReserveWithdraw: boolean;2357 readonly asInitiateReserveWithdraw: {2358 readonly assets: Vec<XcmV0MultiAsset>;2359 readonly reserve: XcmV0MultiLocation;2360 readonly effects: Vec<XcmV0Order>;2361 } & Struct;2362 readonly isInitiateTeleport: boolean;2363 readonly asInitiateTeleport: {2364 readonly assets: Vec<XcmV0MultiAsset>;2365 readonly dest: XcmV0MultiLocation;2366 readonly effects: Vec<XcmV0Order>;2367 } & Struct;2368 readonly isQueryHolding: boolean;2369 readonly asQueryHolding: {2370 readonly queryId: Compact<u64>;2371 readonly dest: XcmV0MultiLocation;2372 readonly assets: Vec<XcmV0MultiAsset>;2373 } & Struct;2374 readonly isBuyExecution: boolean;2375 readonly asBuyExecution: {2376 readonly fees: XcmV0MultiAsset;2377 readonly weight: u64;2378 readonly debt: u64;2379 readonly haltOnError: bool;2380 readonly xcm: Vec<XcmV0Xcm>;2381 } & Struct;2382 readonly type: 'Null' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution';2383}23842385/** @name XcmV0OriginKind */2386export interface XcmV0OriginKind extends Enum {2387 readonly isNative: boolean;2388 readonly isSovereignAccount: boolean;2389 readonly isSuperuser: boolean;2390 readonly isXcm: boolean;2391 readonly type: 'Native' | 'SovereignAccount' | 'Superuser' | 'Xcm';2392}23932394/** @name XcmV0Response */2395export interface XcmV0Response extends Enum {2396 readonly isAssets: boolean;2397 readonly asAssets: Vec<XcmV0MultiAsset>;2398 readonly type: 'Assets';2399}24002401/** @name XcmV0Xcm */2402export interface XcmV0Xcm extends Enum {2403 readonly isWithdrawAsset: boolean;2404 readonly asWithdrawAsset: {2405 readonly assets: Vec<XcmV0MultiAsset>;2406 readonly effects: Vec<XcmV0Order>;2407 } & Struct;2408 readonly isReserveAssetDeposit: boolean;2409 readonly asReserveAssetDeposit: {2410 readonly assets: Vec<XcmV0MultiAsset>;2411 readonly effects: Vec<XcmV0Order>;2412 } & Struct;2413 readonly isTeleportAsset: boolean;2414 readonly asTeleportAsset: {2415 readonly assets: Vec<XcmV0MultiAsset>;2416 readonly effects: Vec<XcmV0Order>;2417 } & Struct;2418 readonly isQueryResponse: boolean;2419 readonly asQueryResponse: {2420 readonly queryId: Compact<u64>;2421 readonly response: XcmV0Response;2422 } & Struct;2423 readonly isTransferAsset: boolean;2424 readonly asTransferAsset: {2425 readonly assets: Vec<XcmV0MultiAsset>;2426 readonly dest: XcmV0MultiLocation;2427 } & Struct;2428 readonly isTransferReserveAsset: boolean;2429 readonly asTransferReserveAsset: {2430 readonly assets: Vec<XcmV0MultiAsset>;2431 readonly dest: XcmV0MultiLocation;2432 readonly effects: Vec<XcmV0Order>;2433 } & Struct;2434 readonly isTransact: boolean;2435 readonly asTransact: {2436 readonly originType: XcmV0OriginKind;2437 readonly requireWeightAtMost: u64;2438 readonly call: XcmDoubleEncoded;2439 } & Struct;2440 readonly isHrmpNewChannelOpenRequest: boolean;2441 readonly asHrmpNewChannelOpenRequest: {2442 readonly sender: Compact<u32>;2443 readonly maxMessageSize: Compact<u32>;2444 readonly maxCapacity: Compact<u32>;2445 } & Struct;2446 readonly isHrmpChannelAccepted: boolean;2447 readonly asHrmpChannelAccepted: {2448 readonly recipient: Compact<u32>;2449 } & Struct;2450 readonly isHrmpChannelClosing: boolean;2451 readonly asHrmpChannelClosing: {2452 readonly initiator: Compact<u32>;2453 readonly sender: Compact<u32>;2454 readonly recipient: Compact<u32>;2455 } & Struct;2456 readonly isRelayedFrom: boolean;2457 readonly asRelayedFrom: {2458 readonly who: XcmV0MultiLocation;2459 readonly message: XcmV0Xcm;2460 } & Struct;2461 readonly type: 'WithdrawAsset' | 'ReserveAssetDeposit' | 'TeleportAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'RelayedFrom';2462}24632464/** @name XcmV1Junction */2465export interface XcmV1Junction extends Enum {2466 readonly isParachain: boolean;2467 readonly asParachain: Compact<u32>;2468 readonly isAccountId32: boolean;2469 readonly asAccountId32: {2470 readonly network: XcmV0JunctionNetworkId;2471 readonly id: U8aFixed;2472 } & Struct;2473 readonly isAccountIndex64: boolean;2474 readonly asAccountIndex64: {2475 readonly network: XcmV0JunctionNetworkId;2476 readonly index: Compact<u64>;2477 } & Struct;2478 readonly isAccountKey20: boolean;2479 readonly asAccountKey20: {2480 readonly network: XcmV0JunctionNetworkId;2481 readonly key: U8aFixed;2482 } & Struct;2483 readonly isPalletInstance: boolean;2484 readonly asPalletInstance: u8;2485 readonly isGeneralIndex: boolean;2486 readonly asGeneralIndex: Compact<u128>;2487 readonly isGeneralKey: boolean;2488 readonly asGeneralKey: Bytes;2489 readonly isOnlyChild: boolean;2490 readonly isPlurality: boolean;2491 readonly asPlurality: {2492 readonly id: XcmV0JunctionBodyId;2493 readonly part: XcmV0JunctionBodyPart;2494 } & Struct;2495 readonly type: 'Parachain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality';2496}24972498/** @name XcmV1MultiAsset */2499export interface XcmV1MultiAsset extends Struct {2500 readonly id: XcmV1MultiassetAssetId;2501 readonly fun: XcmV1MultiassetFungibility;2502}25032504/** @name XcmV1MultiassetAssetId */2505export interface XcmV1MultiassetAssetId extends Enum {2506 readonly isConcrete: boolean;2507 readonly asConcrete: XcmV1MultiLocation;2508 readonly isAbstract: boolean;2509 readonly asAbstract: Bytes;2510 readonly type: 'Concrete' | 'Abstract';2511}25122513/** @name XcmV1MultiassetAssetInstance */2514export interface XcmV1MultiassetAssetInstance extends Enum {2515 readonly isUndefined: boolean;2516 readonly isIndex: boolean;2517 readonly asIndex: Compact<u128>;2518 readonly isArray4: boolean;2519 readonly asArray4: U8aFixed;2520 readonly isArray8: boolean;2521 readonly asArray8: U8aFixed;2522 readonly isArray16: boolean;2523 readonly asArray16: U8aFixed;2524 readonly isArray32: boolean;2525 readonly asArray32: U8aFixed;2526 readonly isBlob: boolean;2527 readonly asBlob: Bytes;2528 readonly type: 'Undefined' | 'Index' | 'Array4' | 'Array8' | 'Array16' | 'Array32' | 'Blob';2529}25302531/** @name XcmV1MultiassetFungibility */2532export interface XcmV1MultiassetFungibility extends Enum {2533 readonly isFungible: boolean;2534 readonly asFungible: Compact<u128>;2535 readonly isNonFungible: boolean;2536 readonly asNonFungible: XcmV1MultiassetAssetInstance;2537 readonly type: 'Fungible' | 'NonFungible';2538}25392540/** @name XcmV1MultiassetMultiAssetFilter */2541export interface XcmV1MultiassetMultiAssetFilter extends Enum {2542 readonly isDefinite: boolean;2543 readonly asDefinite: XcmV1MultiassetMultiAssets;2544 readonly isWild: boolean;2545 readonly asWild: XcmV1MultiassetWildMultiAsset;2546 readonly type: 'Definite' | 'Wild';2547}25482549/** @name XcmV1MultiassetMultiAssets */2550export interface XcmV1MultiassetMultiAssets extends Vec<XcmV1MultiAsset> {}25512552/** @name XcmV1MultiassetWildFungibility */2553export interface XcmV1MultiassetWildFungibility extends Enum {2554 readonly isFungible: boolean;2555 readonly isNonFungible: boolean;2556 readonly type: 'Fungible' | 'NonFungible';2557}25582559/** @name XcmV1MultiassetWildMultiAsset */2560export interface XcmV1MultiassetWildMultiAsset extends Enum {2561 readonly isAll: boolean;2562 readonly isAllOf: boolean;2563 readonly asAllOf: {2564 readonly id: XcmV1MultiassetAssetId;2565 readonly fun: XcmV1MultiassetWildFungibility;2566 } & Struct;2567 readonly type: 'All' | 'AllOf';2568}25692570/** @name XcmV1MultiLocation */2571export interface XcmV1MultiLocation extends Struct {2572 readonly parents: u8;2573 readonly interior: XcmV1MultilocationJunctions;2574}25752576/** @name XcmV1MultilocationJunctions */2577export interface XcmV1MultilocationJunctions extends Enum {2578 readonly isHere: boolean;2579 readonly isX1: boolean;2580 readonly asX1: XcmV1Junction;2581 readonly isX2: boolean;2582 readonly asX2: ITuple<[XcmV1Junction, XcmV1Junction]>;2583 readonly isX3: boolean;2584 readonly asX3: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction]>;2585 readonly isX4: boolean;2586 readonly asX4: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;2587 readonly isX5: boolean;2588 readonly asX5: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;2589 readonly isX6: boolean;2590 readonly asX6: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;2591 readonly isX7: boolean;2592 readonly asX7: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;2593 readonly isX8: boolean;2594 readonly asX8: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;2595 readonly type: 'Here' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8';2596}25972598/** @name XcmV1Order */2599export interface XcmV1Order extends Enum {2600 readonly isNoop: boolean;2601 readonly isDepositAsset: boolean;2602 readonly asDepositAsset: {2603 readonly assets: XcmV1MultiassetMultiAssetFilter;2604 readonly maxAssets: u32;2605 readonly beneficiary: XcmV1MultiLocation;2606 } & Struct;2607 readonly isDepositReserveAsset: boolean;2608 readonly asDepositReserveAsset: {2609 readonly assets: XcmV1MultiassetMultiAssetFilter;2610 readonly maxAssets: u32;2611 readonly dest: XcmV1MultiLocation;2612 readonly effects: Vec<XcmV1Order>;2613 } & Struct;2614 readonly isExchangeAsset: boolean;2615 readonly asExchangeAsset: {2616 readonly give: XcmV1MultiassetMultiAssetFilter;2617 readonly receive: XcmV1MultiassetMultiAssets;2618 } & Struct;2619 readonly isInitiateReserveWithdraw: boolean;2620 readonly asInitiateReserveWithdraw: {2621 readonly assets: XcmV1MultiassetMultiAssetFilter;2622 readonly reserve: XcmV1MultiLocation;2623 readonly effects: Vec<XcmV1Order>;2624 } & Struct;2625 readonly isInitiateTeleport: boolean;2626 readonly asInitiateTeleport: {2627 readonly assets: XcmV1MultiassetMultiAssetFilter;2628 readonly dest: XcmV1MultiLocation;2629 readonly effects: Vec<XcmV1Order>;2630 } & Struct;2631 readonly isQueryHolding: boolean;2632 readonly asQueryHolding: {2633 readonly queryId: Compact<u64>;2634 readonly dest: XcmV1MultiLocation;2635 readonly assets: XcmV1MultiassetMultiAssetFilter;2636 } & Struct;2637 readonly isBuyExecution: boolean;2638 readonly asBuyExecution: {2639 readonly fees: XcmV1MultiAsset;2640 readonly weight: u64;2641 readonly debt: u64;2642 readonly haltOnError: bool;2643 readonly instructions: Vec<XcmV1Xcm>;2644 } & Struct;2645 readonly type: 'Noop' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution';2646}26472648/** @name XcmV1Response */2649export interface XcmV1Response extends Enum {2650 readonly isAssets: boolean;2651 readonly asAssets: XcmV1MultiassetMultiAssets;2652 readonly isVersion: boolean;2653 readonly asVersion: u32;2654 readonly type: 'Assets' | 'Version';2655}26562657/** @name XcmV1Xcm */2658export interface XcmV1Xcm extends Enum {2659 readonly isWithdrawAsset: boolean;2660 readonly asWithdrawAsset: {2661 readonly assets: XcmV1MultiassetMultiAssets;2662 readonly effects: Vec<XcmV1Order>;2663 } & Struct;2664 readonly isReserveAssetDeposited: boolean;2665 readonly asReserveAssetDeposited: {2666 readonly assets: XcmV1MultiassetMultiAssets;2667 readonly effects: Vec<XcmV1Order>;2668 } & Struct;2669 readonly isReceiveTeleportedAsset: boolean;2670 readonly asReceiveTeleportedAsset: {2671 readonly assets: XcmV1MultiassetMultiAssets;2672 readonly effects: Vec<XcmV1Order>;2673 } & Struct;2674 readonly isQueryResponse: boolean;2675 readonly asQueryResponse: {2676 readonly queryId: Compact<u64>;2677 readonly response: XcmV1Response;2678 } & Struct;2679 readonly isTransferAsset: boolean;2680 readonly asTransferAsset: {2681 readonly assets: XcmV1MultiassetMultiAssets;2682 readonly beneficiary: XcmV1MultiLocation;2683 } & Struct;2684 readonly isTransferReserveAsset: boolean;2685 readonly asTransferReserveAsset: {2686 readonly assets: XcmV1MultiassetMultiAssets;2687 readonly dest: XcmV1MultiLocation;2688 readonly effects: Vec<XcmV1Order>;2689 } & Struct;2690 readonly isTransact: boolean;2691 readonly asTransact: {2692 readonly originType: XcmV0OriginKind;2693 readonly requireWeightAtMost: u64;2694 readonly call: XcmDoubleEncoded;2695 } & Struct;2696 readonly isHrmpNewChannelOpenRequest: boolean;2697 readonly asHrmpNewChannelOpenRequest: {2698 readonly sender: Compact<u32>;2699 readonly maxMessageSize: Compact<u32>;2700 readonly maxCapacity: Compact<u32>;2701 } & Struct;2702 readonly isHrmpChannelAccepted: boolean;2703 readonly asHrmpChannelAccepted: {2704 readonly recipient: Compact<u32>;2705 } & Struct;2706 readonly isHrmpChannelClosing: boolean;2707 readonly asHrmpChannelClosing: {2708 readonly initiator: Compact<u32>;2709 readonly sender: Compact<u32>;2710 readonly recipient: Compact<u32>;2711 } & Struct;2712 readonly isRelayedFrom: boolean;2713 readonly asRelayedFrom: {2714 readonly who: XcmV1MultilocationJunctions;2715 readonly message: XcmV1Xcm;2716 } & Struct;2717 readonly isSubscribeVersion: boolean;2718 readonly asSubscribeVersion: {2719 readonly queryId: Compact<u64>;2720 readonly maxResponseWeight: Compact<u64>;2721 } & Struct;2722 readonly isUnsubscribeVersion: boolean;2723 readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'RelayedFrom' | 'SubscribeVersion' | 'UnsubscribeVersion';2724}27252726/** @name XcmV2Instruction */2727export interface XcmV2Instruction extends Enum {2728 readonly isWithdrawAsset: boolean;2729 readonly asWithdrawAsset: XcmV1MultiassetMultiAssets;2730 readonly isReserveAssetDeposited: boolean;2731 readonly asReserveAssetDeposited: XcmV1MultiassetMultiAssets;2732 readonly isReceiveTeleportedAsset: boolean;2733 readonly asReceiveTeleportedAsset: XcmV1MultiassetMultiAssets;2734 readonly isQueryResponse: boolean;2735 readonly asQueryResponse: {2736 readonly queryId: Compact<u64>;2737 readonly response: XcmV2Response;2738 readonly maxWeight: Compact<u64>;2739 } & Struct;2740 readonly isTransferAsset: boolean;2741 readonly asTransferAsset: {2742 readonly assets: XcmV1MultiassetMultiAssets;2743 readonly beneficiary: XcmV1MultiLocation;2744 } & Struct;2745 readonly isTransferReserveAsset: boolean;2746 readonly asTransferReserveAsset: {2747 readonly assets: XcmV1MultiassetMultiAssets;2748 readonly dest: XcmV1MultiLocation;2749 readonly xcm: XcmV2Xcm;2750 } & Struct;2751 readonly isTransact: boolean;2752 readonly asTransact: {2753 readonly originType: XcmV0OriginKind;2754 readonly requireWeightAtMost: Compact<u64>;2755 readonly call: XcmDoubleEncoded;2756 } & Struct;2757 readonly isHrmpNewChannelOpenRequest: boolean;2758 readonly asHrmpNewChannelOpenRequest: {2759 readonly sender: Compact<u32>;2760 readonly maxMessageSize: Compact<u32>;2761 readonly maxCapacity: Compact<u32>;2762 } & Struct;2763 readonly isHrmpChannelAccepted: boolean;2764 readonly asHrmpChannelAccepted: {2765 readonly recipient: Compact<u32>;2766 } & Struct;2767 readonly isHrmpChannelClosing: boolean;2768 readonly asHrmpChannelClosing: {2769 readonly initiator: Compact<u32>;2770 readonly sender: Compact<u32>;2771 readonly recipient: Compact<u32>;2772 } & Struct;2773 readonly isClearOrigin: boolean;2774 readonly isDescendOrigin: boolean;2775 readonly asDescendOrigin: XcmV1MultilocationJunctions;2776 readonly isReportError: boolean;2777 readonly asReportError: {2778 readonly queryId: Compact<u64>;2779 readonly dest: XcmV1MultiLocation;2780 readonly maxResponseWeight: Compact<u64>;2781 } & Struct;2782 readonly isDepositAsset: boolean;2783 readonly asDepositAsset: {2784 readonly assets: XcmV1MultiassetMultiAssetFilter;2785 readonly maxAssets: Compact<u32>;2786 readonly beneficiary: XcmV1MultiLocation;2787 } & Struct;2788 readonly isDepositReserveAsset: boolean;2789 readonly asDepositReserveAsset: {2790 readonly assets: XcmV1MultiassetMultiAssetFilter;2791 readonly maxAssets: Compact<u32>;2792 readonly dest: XcmV1MultiLocation;2793 readonly xcm: XcmV2Xcm;2794 } & Struct;2795 readonly isExchangeAsset: boolean;2796 readonly asExchangeAsset: {2797 readonly give: XcmV1MultiassetMultiAssetFilter;2798 readonly receive: XcmV1MultiassetMultiAssets;2799 } & Struct;2800 readonly isInitiateReserveWithdraw: boolean;2801 readonly asInitiateReserveWithdraw: {2802 readonly assets: XcmV1MultiassetMultiAssetFilter;2803 readonly reserve: XcmV1MultiLocation;2804 readonly xcm: XcmV2Xcm;2805 } & Struct;2806 readonly isInitiateTeleport: boolean;2807 readonly asInitiateTeleport: {2808 readonly assets: XcmV1MultiassetMultiAssetFilter;2809 readonly dest: XcmV1MultiLocation;2810 readonly xcm: XcmV2Xcm;2811 } & Struct;2812 readonly isQueryHolding: boolean;2813 readonly asQueryHolding: {2814 readonly queryId: Compact<u64>;2815 readonly dest: XcmV1MultiLocation;2816 readonly assets: XcmV1MultiassetMultiAssetFilter;2817 readonly maxResponseWeight: Compact<u64>;2818 } & Struct;2819 readonly isBuyExecution: boolean;2820 readonly asBuyExecution: {2821 readonly fees: XcmV1MultiAsset;2822 readonly weightLimit: XcmV2WeightLimit;2823 } & Struct;2824 readonly isRefundSurplus: boolean;2825 readonly isSetErrorHandler: boolean;2826 readonly asSetErrorHandler: XcmV2Xcm;2827 readonly isSetAppendix: boolean;2828 readonly asSetAppendix: XcmV2Xcm;2829 readonly isClearError: boolean;2830 readonly isClaimAsset: boolean;2831 readonly asClaimAsset: {2832 readonly assets: XcmV1MultiassetMultiAssets;2833 readonly ticket: XcmV1MultiLocation;2834 } & Struct;2835 readonly isTrap: boolean;2836 readonly asTrap: Compact<u64>;2837 readonly isSubscribeVersion: boolean;2838 readonly asSubscribeVersion: {2839 readonly queryId: Compact<u64>;2840 readonly maxResponseWeight: Compact<u64>;2841 } & Struct;2842 readonly isUnsubscribeVersion: boolean;2843 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';2844}28452846/** @name XcmV2Response */2847export interface XcmV2Response extends Enum {2848 readonly isNull: boolean;2849 readonly isAssets: boolean;2850 readonly asAssets: XcmV1MultiassetMultiAssets;2851 readonly isExecutionResult: boolean;2852 readonly asExecutionResult: Option<ITuple<[u32, XcmV2TraitsError]>>;2853 readonly isVersion: boolean;2854 readonly asVersion: u32;2855 readonly type: 'Null' | 'Assets' | 'ExecutionResult' | 'Version';2856}28572858/** @name XcmV2TraitsError */2859export interface XcmV2TraitsError extends Enum {2860 readonly isOverflow: boolean;2861 readonly isUnimplemented: boolean;2862 readonly isUntrustedReserveLocation: boolean;2863 readonly isUntrustedTeleportLocation: boolean;2864 readonly isMultiLocationFull: boolean;2865 readonly isMultiLocationNotInvertible: boolean;2866 readonly isBadOrigin: boolean;2867 readonly isInvalidLocation: boolean;2868 readonly isAssetNotFound: boolean;2869 readonly isFailedToTransactAsset: boolean;2870 readonly isNotWithdrawable: boolean;2871 readonly isLocationCannotHold: boolean;2872 readonly isExceedsMaxMessageSize: boolean;2873 readonly isDestinationUnsupported: boolean;2874 readonly isTransport: boolean;2875 readonly isUnroutable: boolean;2876 readonly isUnknownClaim: boolean;2877 readonly isFailedToDecode: boolean;2878 readonly isMaxWeightInvalid: boolean;2879 readonly isNotHoldingFees: boolean;2880 readonly isTooExpensive: boolean;2881 readonly isTrap: boolean;2882 readonly asTrap: u64;2883 readonly isUnhandledXcmVersion: boolean;2884 readonly isWeightLimitReached: boolean;2885 readonly asWeightLimitReached: u64;2886 readonly isBarrier: boolean;2887 readonly isWeightNotComputable: boolean;2888 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';2889}28902891/** @name XcmV2TraitsOutcome */2892export interface XcmV2TraitsOutcome extends Enum {2893 readonly isComplete: boolean;2894 readonly asComplete: u64;2895 readonly isIncomplete: boolean;2896 readonly asIncomplete: ITuple<[u64, XcmV2TraitsError]>;2897 readonly isError: boolean;2898 readonly asError: XcmV2TraitsError;2899 readonly type: 'Complete' | 'Incomplete' | 'Error';2900}29012902/** @name XcmV2WeightLimit */2903export interface XcmV2WeightLimit extends Enum {2904 readonly isUnlimited: boolean;2905 readonly isLimited: boolean;2906 readonly asLimited: Compact<u64>;2907 readonly type: 'Unlimited' | 'Limited';2908}29092910/** @name XcmV2Xcm */2911export interface XcmV2Xcm extends Vec<XcmV2Instruction> {}29122913/** @name XcmVersionedMultiAssets */2914export interface XcmVersionedMultiAssets extends Enum {2915 readonly isV0: boolean;2916 readonly asV0: Vec<XcmV0MultiAsset>;2917 readonly isV1: boolean;2918 readonly asV1: XcmV1MultiassetMultiAssets;2919 readonly type: 'V0' | 'V1';2920}29212922/** @name XcmVersionedMultiLocation */2923export interface XcmVersionedMultiLocation extends Enum {2924 readonly isV0: boolean;2925 readonly asV0: XcmV0MultiLocation;2926 readonly isV1: boolean;2927 readonly asV1: XcmV1MultiLocation;2928 readonly type: 'V0' | 'V1';2929}29302931/** @name XcmVersionedXcm */2932export interface XcmVersionedXcm extends Enum {2933 readonly isV0: boolean;2934 readonly asV0: XcmV0Xcm;2935 readonly isV1: boolean;2936 readonly asV1: XcmV1Xcm;2937 readonly isV2: boolean;2938 readonly asV2: XcmV2Xcm;2939 readonly type: 'V0' | 'V1' | 'V2';2940}29412942export type PHANTOM_UNIQUE = 'unique';1// Auto-generated via `yarn polkadot-types-from-defs`, do not edit2/* eslint-disable */34import type { BTreeMap, BTreeSet, Bytes, Compact, Enum, Null, Option, Result, Struct, Text, U256, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';5import type { ITuple } from '@polkadot/types-codec/types';6import type { AccountId32, Call, H160, H256, MultiAddress, Perbill, Permill } from '@polkadot/types/interfaces/runtime';7import type { Event } from '@polkadot/types/interfaces/system';89/** @name CumulusPalletDmpQueueCall */10export interface CumulusPalletDmpQueueCall extends Enum {11 readonly isServiceOverweight: boolean;12 readonly asServiceOverweight: {13 readonly index: u64;14 readonly weightLimit: u64;15 } & Struct;16 readonly type: 'ServiceOverweight';17}1819/** @name CumulusPalletDmpQueueConfigData */20export interface CumulusPalletDmpQueueConfigData extends Struct {21 readonly maxIndividual: u64;22}2324/** @name CumulusPalletDmpQueueError */25export interface CumulusPalletDmpQueueError extends Enum {26 readonly isUnknown: boolean;27 readonly isOverLimit: boolean;28 readonly type: 'Unknown' | 'OverLimit';29}3031/** @name CumulusPalletDmpQueueEvent */32export interface CumulusPalletDmpQueueEvent extends Enum {33 readonly isInvalidFormat: boolean;34 readonly asInvalidFormat: U8aFixed;35 readonly isUnsupportedVersion: boolean;36 readonly asUnsupportedVersion: U8aFixed;37 readonly isExecutedDownward: boolean;38 readonly asExecutedDownward: ITuple<[U8aFixed, XcmV2TraitsOutcome]>;39 readonly isWeightExhausted: boolean;40 readonly asWeightExhausted: ITuple<[U8aFixed, u64, u64]>;41 readonly isOverweightEnqueued: boolean;42 readonly asOverweightEnqueued: ITuple<[U8aFixed, u64, u64]>;43 readonly isOverweightServiced: boolean;44 readonly asOverweightServiced: ITuple<[u64, u64]>;45 readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward' | 'WeightExhausted' | 'OverweightEnqueued' | 'OverweightServiced';46}4748/** @name CumulusPalletDmpQueuePageIndexData */49export interface CumulusPalletDmpQueuePageIndexData extends Struct {50 readonly beginUsed: u32;51 readonly endUsed: u32;52 readonly overweightCount: u64;53}5455/** @name CumulusPalletParachainSystemCall */56export interface CumulusPalletParachainSystemCall extends Enum {57 readonly isSetValidationData: boolean;58 readonly asSetValidationData: {59 readonly data: CumulusPrimitivesParachainInherentParachainInherentData;60 } & Struct;61 readonly isSudoSendUpwardMessage: boolean;62 readonly asSudoSendUpwardMessage: {63 readonly message: Bytes;64 } & Struct;65 readonly isAuthorizeUpgrade: boolean;66 readonly asAuthorizeUpgrade: {67 readonly codeHash: H256;68 } & Struct;69 readonly isEnactAuthorizedUpgrade: boolean;70 readonly asEnactAuthorizedUpgrade: {71 readonly code: Bytes;72 } & Struct;73 readonly type: 'SetValidationData' | 'SudoSendUpwardMessage' | 'AuthorizeUpgrade' | 'EnactAuthorizedUpgrade';74}7576/** @name CumulusPalletParachainSystemError */77export interface CumulusPalletParachainSystemError extends Enum {78 readonly isOverlappingUpgrades: boolean;79 readonly isProhibitedByPolkadot: boolean;80 readonly isTooBig: boolean;81 readonly isValidationDataNotAvailable: boolean;82 readonly isHostConfigurationNotAvailable: boolean;83 readonly isNotScheduled: boolean;84 readonly isNothingAuthorized: boolean;85 readonly isUnauthorized: boolean;86 readonly type: 'OverlappingUpgrades' | 'ProhibitedByPolkadot' | 'TooBig' | 'ValidationDataNotAvailable' | 'HostConfigurationNotAvailable' | 'NotScheduled' | 'NothingAuthorized' | 'Unauthorized';87}8889/** @name CumulusPalletParachainSystemEvent */90export interface CumulusPalletParachainSystemEvent extends Enum {91 readonly isValidationFunctionStored: boolean;92 readonly isValidationFunctionApplied: boolean;93 readonly asValidationFunctionApplied: u32;94 readonly isValidationFunctionDiscarded: boolean;95 readonly isUpgradeAuthorized: boolean;96 readonly asUpgradeAuthorized: H256;97 readonly isDownwardMessagesReceived: boolean;98 readonly asDownwardMessagesReceived: u32;99 readonly isDownwardMessagesProcessed: boolean;100 readonly asDownwardMessagesProcessed: ITuple<[u64, H256]>;101 readonly type: 'ValidationFunctionStored' | 'ValidationFunctionApplied' | 'ValidationFunctionDiscarded' | 'UpgradeAuthorized' | 'DownwardMessagesReceived' | 'DownwardMessagesProcessed';102}103104/** @name CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot */105export interface CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot extends Struct {106 readonly dmqMqcHead: H256;107 readonly relayDispatchQueueSize: ITuple<[u32, u32]>;108 readonly ingressChannels: Vec<ITuple<[u32, PolkadotPrimitivesV2AbridgedHrmpChannel]>>;109 readonly egressChannels: Vec<ITuple<[u32, PolkadotPrimitivesV2AbridgedHrmpChannel]>>;110}111112/** @name CumulusPalletXcmCall */113export interface CumulusPalletXcmCall extends Null {}114115/** @name CumulusPalletXcmError */116export interface CumulusPalletXcmError extends Null {}117118/** @name CumulusPalletXcmEvent */119export interface CumulusPalletXcmEvent extends Enum {120 readonly isInvalidFormat: boolean;121 readonly asInvalidFormat: U8aFixed;122 readonly isUnsupportedVersion: boolean;123 readonly asUnsupportedVersion: U8aFixed;124 readonly isExecutedDownward: boolean;125 readonly asExecutedDownward: ITuple<[U8aFixed, XcmV2TraitsOutcome]>;126 readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward';127}128129/** @name CumulusPalletXcmpQueueCall */130export interface CumulusPalletXcmpQueueCall extends Enum {131 readonly isServiceOverweight: boolean;132 readonly asServiceOverweight: {133 readonly index: u64;134 readonly weightLimit: u64;135 } & Struct;136 readonly isSuspendXcmExecution: boolean;137 readonly isResumeXcmExecution: boolean;138 readonly isUpdateSuspendThreshold: boolean;139 readonly asUpdateSuspendThreshold: {140 readonly new_: u32;141 } & Struct;142 readonly isUpdateDropThreshold: boolean;143 readonly asUpdateDropThreshold: {144 readonly new_: u32;145 } & Struct;146 readonly isUpdateResumeThreshold: boolean;147 readonly asUpdateResumeThreshold: {148 readonly new_: u32;149 } & Struct;150 readonly isUpdateThresholdWeight: boolean;151 readonly asUpdateThresholdWeight: {152 readonly new_: u64;153 } & Struct;154 readonly isUpdateWeightRestrictDecay: boolean;155 readonly asUpdateWeightRestrictDecay: {156 readonly new_: u64;157 } & Struct;158 readonly isUpdateXcmpMaxIndividualWeight: boolean;159 readonly asUpdateXcmpMaxIndividualWeight: {160 readonly new_: u64;161 } & Struct;162 readonly type: 'ServiceOverweight' | 'SuspendXcmExecution' | 'ResumeXcmExecution' | 'UpdateSuspendThreshold' | 'UpdateDropThreshold' | 'UpdateResumeThreshold' | 'UpdateThresholdWeight' | 'UpdateWeightRestrictDecay' | 'UpdateXcmpMaxIndividualWeight';163}164165/** @name CumulusPalletXcmpQueueError */166export interface CumulusPalletXcmpQueueError extends Enum {167 readonly isFailedToSend: boolean;168 readonly isBadXcmOrigin: boolean;169 readonly isBadXcm: boolean;170 readonly isBadOverweightIndex: boolean;171 readonly isWeightOverLimit: boolean;172 readonly type: 'FailedToSend' | 'BadXcmOrigin' | 'BadXcm' | 'BadOverweightIndex' | 'WeightOverLimit';173}174175/** @name CumulusPalletXcmpQueueEvent */176export interface CumulusPalletXcmpQueueEvent extends Enum {177 readonly isSuccess: boolean;178 readonly asSuccess: Option<H256>;179 readonly isFail: boolean;180 readonly asFail: ITuple<[Option<H256>, XcmV2TraitsError]>;181 readonly isBadVersion: boolean;182 readonly asBadVersion: Option<H256>;183 readonly isBadFormat: boolean;184 readonly asBadFormat: Option<H256>;185 readonly isUpwardMessageSent: boolean;186 readonly asUpwardMessageSent: Option<H256>;187 readonly isXcmpMessageSent: boolean;188 readonly asXcmpMessageSent: Option<H256>;189 readonly isOverweightEnqueued: boolean;190 readonly asOverweightEnqueued: ITuple<[u32, u32, u64, u64]>;191 readonly isOverweightServiced: boolean;192 readonly asOverweightServiced: ITuple<[u64, u64]>;193 readonly type: 'Success' | 'Fail' | 'BadVersion' | 'BadFormat' | 'UpwardMessageSent' | 'XcmpMessageSent' | 'OverweightEnqueued' | 'OverweightServiced';194}195196/** @name CumulusPalletXcmpQueueInboundChannelDetails */197export interface CumulusPalletXcmpQueueInboundChannelDetails extends Struct {198 readonly sender: u32;199 readonly state: CumulusPalletXcmpQueueInboundState;200 readonly messageMetadata: Vec<ITuple<[u32, PolkadotParachainPrimitivesXcmpMessageFormat]>>;201}202203/** @name CumulusPalletXcmpQueueInboundState */204export interface CumulusPalletXcmpQueueInboundState extends Enum {205 readonly isOk: boolean;206 readonly isSuspended: boolean;207 readonly type: 'Ok' | 'Suspended';208}209210/** @name CumulusPalletXcmpQueueOutboundChannelDetails */211export interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct {212 readonly recipient: u32;213 readonly state: CumulusPalletXcmpQueueOutboundState;214 readonly signalsExist: bool;215 readonly firstIndex: u16;216 readonly lastIndex: u16;217}218219/** @name CumulusPalletXcmpQueueOutboundState */220export interface CumulusPalletXcmpQueueOutboundState extends Enum {221 readonly isOk: boolean;222 readonly isSuspended: boolean;223 readonly type: 'Ok' | 'Suspended';224}225226/** @name CumulusPalletXcmpQueueQueueConfigData */227export interface CumulusPalletXcmpQueueQueueConfigData extends Struct {228 readonly suspendThreshold: u32;229 readonly dropThreshold: u32;230 readonly resumeThreshold: u32;231 readonly thresholdWeight: u64;232 readonly weightRestrictDecay: u64;233 readonly xcmpMaxIndividualWeight: u64;234}235236/** @name CumulusPrimitivesParachainInherentParachainInherentData */237export interface CumulusPrimitivesParachainInherentParachainInherentData extends Struct {238 readonly validationData: PolkadotPrimitivesV2PersistedValidationData;239 readonly relayChainState: SpTrieStorageProof;240 readonly downwardMessages: Vec<PolkadotCorePrimitivesInboundDownwardMessage>;241 readonly horizontalMessages: BTreeMap<u32, Vec<PolkadotCorePrimitivesInboundHrmpMessage>>;242}243244/** @name EthbloomBloom */245export interface EthbloomBloom extends U8aFixed {}246247/** @name EthereumBlock */248export interface EthereumBlock extends Struct {249 readonly header: EthereumHeader;250 readonly transactions: Vec<EthereumTransactionTransactionV2>;251 readonly ommers: Vec<EthereumHeader>;252}253254/** @name EthereumHeader */255export interface EthereumHeader extends Struct {256 readonly parentHash: H256;257 readonly ommersHash: H256;258 readonly beneficiary: H160;259 readonly stateRoot: H256;260 readonly transactionsRoot: H256;261 readonly receiptsRoot: H256;262 readonly logsBloom: EthbloomBloom;263 readonly difficulty: U256;264 readonly number: U256;265 readonly gasLimit: U256;266 readonly gasUsed: U256;267 readonly timestamp: u64;268 readonly extraData: Bytes;269 readonly mixHash: H256;270 readonly nonce: EthereumTypesHashH64;271}272273/** @name EthereumLog */274export interface EthereumLog extends Struct {275 readonly address: H160;276 readonly topics: Vec<H256>;277 readonly data: Bytes;278}279280/** @name EthereumReceiptEip658ReceiptData */281export interface EthereumReceiptEip658ReceiptData extends Struct {282 readonly statusCode: u8;283 readonly usedGas: U256;284 readonly logsBloom: EthbloomBloom;285 readonly logs: Vec<EthereumLog>;286}287288/** @name EthereumReceiptReceiptV3 */289export interface EthereumReceiptReceiptV3 extends Enum {290 readonly isLegacy: boolean;291 readonly asLegacy: EthereumReceiptEip658ReceiptData;292 readonly isEip2930: boolean;293 readonly asEip2930: EthereumReceiptEip658ReceiptData;294 readonly isEip1559: boolean;295 readonly asEip1559: EthereumReceiptEip658ReceiptData;296 readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';297}298299/** @name EthereumTransactionAccessListItem */300export interface EthereumTransactionAccessListItem extends Struct {301 readonly address: H160;302 readonly storageKeys: Vec<H256>;303}304305/** @name EthereumTransactionEip1559Transaction */306export interface EthereumTransactionEip1559Transaction extends Struct {307 readonly chainId: u64;308 readonly nonce: U256;309 readonly maxPriorityFeePerGas: U256;310 readonly maxFeePerGas: U256;311 readonly gasLimit: U256;312 readonly action: EthereumTransactionTransactionAction;313 readonly value: U256;314 readonly input: Bytes;315 readonly accessList: Vec<EthereumTransactionAccessListItem>;316 readonly oddYParity: bool;317 readonly r: H256;318 readonly s: H256;319}320321/** @name EthereumTransactionEip2930Transaction */322export interface EthereumTransactionEip2930Transaction extends Struct {323 readonly chainId: u64;324 readonly nonce: U256;325 readonly gasPrice: U256;326 readonly gasLimit: U256;327 readonly action: EthereumTransactionTransactionAction;328 readonly value: U256;329 readonly input: Bytes;330 readonly accessList: Vec<EthereumTransactionAccessListItem>;331 readonly oddYParity: bool;332 readonly r: H256;333 readonly s: H256;334}335336/** @name EthereumTransactionLegacyTransaction */337export interface EthereumTransactionLegacyTransaction extends Struct {338 readonly nonce: U256;339 readonly gasPrice: U256;340 readonly gasLimit: U256;341 readonly action: EthereumTransactionTransactionAction;342 readonly value: U256;343 readonly input: Bytes;344 readonly signature: EthereumTransactionTransactionSignature;345}346347/** @name EthereumTransactionTransactionAction */348export interface EthereumTransactionTransactionAction extends Enum {349 readonly isCall: boolean;350 readonly asCall: H160;351 readonly isCreate: boolean;352 readonly type: 'Call' | 'Create';353}354355/** @name EthereumTransactionTransactionSignature */356export interface EthereumTransactionTransactionSignature extends Struct {357 readonly v: u64;358 readonly r: H256;359 readonly s: H256;360}361362/** @name EthereumTransactionTransactionV2 */363export interface EthereumTransactionTransactionV2 extends Enum {364 readonly isLegacy: boolean;365 readonly asLegacy: EthereumTransactionLegacyTransaction;366 readonly isEip2930: boolean;367 readonly asEip2930: EthereumTransactionEip2930Transaction;368 readonly isEip1559: boolean;369 readonly asEip1559: EthereumTransactionEip1559Transaction;370 readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';371}372373/** @name EthereumTypesHashH64 */374export interface EthereumTypesHashH64 extends U8aFixed {}375376/** @name EvmCoreErrorExitError */377export interface EvmCoreErrorExitError extends Enum {378 readonly isStackUnderflow: boolean;379 readonly isStackOverflow: boolean;380 readonly isInvalidJump: boolean;381 readonly isInvalidRange: boolean;382 readonly isDesignatedInvalid: boolean;383 readonly isCallTooDeep: boolean;384 readonly isCreateCollision: boolean;385 readonly isCreateContractLimit: boolean;386 readonly isOutOfOffset: boolean;387 readonly isOutOfGas: boolean;388 readonly isOutOfFund: boolean;389 readonly isPcUnderflow: boolean;390 readonly isCreateEmpty: boolean;391 readonly isOther: boolean;392 readonly asOther: Text;393 readonly isInvalidCode: boolean;394 readonly type: 'StackUnderflow' | 'StackOverflow' | 'InvalidJump' | 'InvalidRange' | 'DesignatedInvalid' | 'CallTooDeep' | 'CreateCollision' | 'CreateContractLimit' | 'OutOfOffset' | 'OutOfGas' | 'OutOfFund' | 'PcUnderflow' | 'CreateEmpty' | 'Other' | 'InvalidCode';395}396397/** @name EvmCoreErrorExitFatal */398export interface EvmCoreErrorExitFatal extends Enum {399 readonly isNotSupported: boolean;400 readonly isUnhandledInterrupt: boolean;401 readonly isCallErrorAsFatal: boolean;402 readonly asCallErrorAsFatal: EvmCoreErrorExitError;403 readonly isOther: boolean;404 readonly asOther: Text;405 readonly type: 'NotSupported' | 'UnhandledInterrupt' | 'CallErrorAsFatal' | 'Other';406}407408/** @name EvmCoreErrorExitReason */409export interface EvmCoreErrorExitReason extends Enum {410 readonly isSucceed: boolean;411 readonly asSucceed: EvmCoreErrorExitSucceed;412 readonly isError: boolean;413 readonly asError: EvmCoreErrorExitError;414 readonly isRevert: boolean;415 readonly asRevert: EvmCoreErrorExitRevert;416 readonly isFatal: boolean;417 readonly asFatal: EvmCoreErrorExitFatal;418 readonly type: 'Succeed' | 'Error' | 'Revert' | 'Fatal';419}420421/** @name EvmCoreErrorExitRevert */422export interface EvmCoreErrorExitRevert extends Enum {423 readonly isReverted: boolean;424 readonly type: 'Reverted';425}426427/** @name EvmCoreErrorExitSucceed */428export interface EvmCoreErrorExitSucceed extends Enum {429 readonly isStopped: boolean;430 readonly isReturned: boolean;431 readonly isSuicided: boolean;432 readonly type: 'Stopped' | 'Returned' | 'Suicided';433}434435/** @name FpRpcTransactionStatus */436export interface FpRpcTransactionStatus extends Struct {437 readonly transactionHash: H256;438 readonly transactionIndex: u32;439 readonly from: H160;440 readonly to: Option<H160>;441 readonly contractAddress: Option<H160>;442 readonly logs: Vec<EthereumLog>;443 readonly logsBloom: EthbloomBloom;444}445446/** @name FrameSupportPalletId */447export interface FrameSupportPalletId extends U8aFixed {}448449/** @name FrameSupportTokensMiscBalanceStatus */450export interface FrameSupportTokensMiscBalanceStatus extends Enum {451 readonly isFree: boolean;452 readonly isReserved: boolean;453 readonly type: 'Free' | 'Reserved';454}455456/** @name FrameSupportWeightsDispatchClass */457export interface FrameSupportWeightsDispatchClass extends Enum {458 readonly isNormal: boolean;459 readonly isOperational: boolean;460 readonly isMandatory: boolean;461 readonly type: 'Normal' | 'Operational' | 'Mandatory';462}463464/** @name FrameSupportWeightsDispatchInfo */465export interface FrameSupportWeightsDispatchInfo extends Struct {466 readonly weight: u64;467 readonly class: FrameSupportWeightsDispatchClass;468 readonly paysFee: FrameSupportWeightsPays;469}470471/** @name FrameSupportWeightsPays */472export interface FrameSupportWeightsPays extends Enum {473 readonly isYes: boolean;474 readonly isNo: boolean;475 readonly type: 'Yes' | 'No';476}477478/** @name FrameSupportWeightsPerDispatchClassU32 */479export interface FrameSupportWeightsPerDispatchClassU32 extends Struct {480 readonly normal: u32;481 readonly operational: u32;482 readonly mandatory: u32;483}484485/** @name FrameSupportWeightsPerDispatchClassU64 */486export interface FrameSupportWeightsPerDispatchClassU64 extends Struct {487 readonly normal: u64;488 readonly operational: u64;489 readonly mandatory: u64;490}491492/** @name FrameSupportWeightsPerDispatchClassWeightsPerClass */493export interface FrameSupportWeightsPerDispatchClassWeightsPerClass extends Struct {494 readonly normal: FrameSystemLimitsWeightsPerClass;495 readonly operational: FrameSystemLimitsWeightsPerClass;496 readonly mandatory: FrameSystemLimitsWeightsPerClass;497}498499/** @name FrameSupportWeightsRuntimeDbWeight */500export interface FrameSupportWeightsRuntimeDbWeight extends Struct {501 readonly read: u64;502 readonly write: u64;503}504505/** @name FrameSupportWeightsWeightToFeeCoefficient */506export interface FrameSupportWeightsWeightToFeeCoefficient extends Struct {507 readonly coeffInteger: u128;508 readonly coeffFrac: Perbill;509 readonly negative: bool;510 readonly degree: u8;511}512513/** @name FrameSystemAccountInfo */514export interface FrameSystemAccountInfo extends Struct {515 readonly nonce: u32;516 readonly consumers: u32;517 readonly providers: u32;518 readonly sufficients: u32;519 readonly data: PalletBalancesAccountData;520}521522/** @name FrameSystemCall */523export interface FrameSystemCall extends Enum {524 readonly isFillBlock: boolean;525 readonly asFillBlock: {526 readonly ratio: Perbill;527 } & Struct;528 readonly isRemark: boolean;529 readonly asRemark: {530 readonly remark: Bytes;531 } & Struct;532 readonly isSetHeapPages: boolean;533 readonly asSetHeapPages: {534 readonly pages: u64;535 } & Struct;536 readonly isSetCode: boolean;537 readonly asSetCode: {538 readonly code: Bytes;539 } & Struct;540 readonly isSetCodeWithoutChecks: boolean;541 readonly asSetCodeWithoutChecks: {542 readonly code: Bytes;543 } & Struct;544 readonly isSetStorage: boolean;545 readonly asSetStorage: {546 readonly items: Vec<ITuple<[Bytes, Bytes]>>;547 } & Struct;548 readonly isKillStorage: boolean;549 readonly asKillStorage: {550 readonly keys_: Vec<Bytes>;551 } & Struct;552 readonly isKillPrefix: boolean;553 readonly asKillPrefix: {554 readonly prefix: Bytes;555 readonly subkeys: u32;556 } & Struct;557 readonly isRemarkWithEvent: boolean;558 readonly asRemarkWithEvent: {559 readonly remark: Bytes;560 } & Struct;561 readonly type: 'FillBlock' | 'Remark' | 'SetHeapPages' | 'SetCode' | 'SetCodeWithoutChecks' | 'SetStorage' | 'KillStorage' | 'KillPrefix' | 'RemarkWithEvent';562}563564/** @name FrameSystemError */565export interface FrameSystemError extends Enum {566 readonly isInvalidSpecName: boolean;567 readonly isSpecVersionNeedsToIncrease: boolean;568 readonly isFailedToExtractRuntimeVersion: boolean;569 readonly isNonDefaultComposite: boolean;570 readonly isNonZeroRefCount: boolean;571 readonly isCallFiltered: boolean;572 readonly type: 'InvalidSpecName' | 'SpecVersionNeedsToIncrease' | 'FailedToExtractRuntimeVersion' | 'NonDefaultComposite' | 'NonZeroRefCount' | 'CallFiltered';573}574575/** @name FrameSystemEvent */576export interface FrameSystemEvent extends Enum {577 readonly isExtrinsicSuccess: boolean;578 readonly asExtrinsicSuccess: {579 readonly dispatchInfo: FrameSupportWeightsDispatchInfo;580 } & Struct;581 readonly isExtrinsicFailed: boolean;582 readonly asExtrinsicFailed: {583 readonly dispatchError: SpRuntimeDispatchError;584 readonly dispatchInfo: FrameSupportWeightsDispatchInfo;585 } & Struct;586 readonly isCodeUpdated: boolean;587 readonly isNewAccount: boolean;588 readonly asNewAccount: {589 readonly account: AccountId32;590 } & Struct;591 readonly isKilledAccount: boolean;592 readonly asKilledAccount: {593 readonly account: AccountId32;594 } & Struct;595 readonly isRemarked: boolean;596 readonly asRemarked: {597 readonly sender: AccountId32;598 readonly hash_: H256;599 } & Struct;600 readonly type: 'ExtrinsicSuccess' | 'ExtrinsicFailed' | 'CodeUpdated' | 'NewAccount' | 'KilledAccount' | 'Remarked';601}602603/** @name FrameSystemEventRecord */604export interface FrameSystemEventRecord extends Struct {605 readonly phase: FrameSystemPhase;606 readonly event: Event;607 readonly topics: Vec<H256>;608}609610/** @name FrameSystemExtensionsCheckGenesis */611export interface FrameSystemExtensionsCheckGenesis extends Null {}612613/** @name FrameSystemExtensionsCheckNonce */614export interface FrameSystemExtensionsCheckNonce extends Compact<u32> {}615616/** @name FrameSystemExtensionsCheckSpecVersion */617export interface FrameSystemExtensionsCheckSpecVersion extends Null {}618619/** @name FrameSystemExtensionsCheckWeight */620export interface FrameSystemExtensionsCheckWeight extends Null {}621622/** @name FrameSystemLastRuntimeUpgradeInfo */623export interface FrameSystemLastRuntimeUpgradeInfo extends Struct {624 readonly specVersion: Compact<u32>;625 readonly specName: Text;626}627628/** @name FrameSystemLimitsBlockLength */629export interface FrameSystemLimitsBlockLength extends Struct {630 readonly max: FrameSupportWeightsPerDispatchClassU32;631}632633/** @name FrameSystemLimitsBlockWeights */634export interface FrameSystemLimitsBlockWeights extends Struct {635 readonly baseBlock: u64;636 readonly maxBlock: u64;637 readonly perClass: FrameSupportWeightsPerDispatchClassWeightsPerClass;638}639640/** @name FrameSystemLimitsWeightsPerClass */641export interface FrameSystemLimitsWeightsPerClass extends Struct {642 readonly baseExtrinsic: u64;643 readonly maxExtrinsic: Option<u64>;644 readonly maxTotal: Option<u64>;645 readonly reserved: Option<u64>;646}647648/** @name FrameSystemPhase */649export interface FrameSystemPhase extends Enum {650 readonly isApplyExtrinsic: boolean;651 readonly asApplyExtrinsic: u32;652 readonly isFinalization: boolean;653 readonly isInitialization: boolean;654 readonly type: 'ApplyExtrinsic' | 'Finalization' | 'Initialization';655}656657/** @name OpalRuntimeRuntime */658export interface OpalRuntimeRuntime extends Null {}659660/** @name OrmlVestingModuleCall */661export interface OrmlVestingModuleCall extends Enum {662 readonly isClaim: boolean;663 readonly isVestedTransfer: boolean;664 readonly asVestedTransfer: {665 readonly dest: MultiAddress;666 readonly schedule: OrmlVestingVestingSchedule;667 } & Struct;668 readonly isUpdateVestingSchedules: boolean;669 readonly asUpdateVestingSchedules: {670 readonly who: MultiAddress;671 readonly vestingSchedules: Vec<OrmlVestingVestingSchedule>;672 } & Struct;673 readonly isClaimFor: boolean;674 readonly asClaimFor: {675 readonly dest: MultiAddress;676 } & Struct;677 readonly type: 'Claim' | 'VestedTransfer' | 'UpdateVestingSchedules' | 'ClaimFor';678}679680/** @name OrmlVestingModuleError */681export interface OrmlVestingModuleError extends Enum {682 readonly isZeroVestingPeriod: boolean;683 readonly isZeroVestingPeriodCount: boolean;684 readonly isInsufficientBalanceToLock: boolean;685 readonly isTooManyVestingSchedules: boolean;686 readonly isAmountLow: boolean;687 readonly isMaxVestingSchedulesExceeded: boolean;688 readonly type: 'ZeroVestingPeriod' | 'ZeroVestingPeriodCount' | 'InsufficientBalanceToLock' | 'TooManyVestingSchedules' | 'AmountLow' | 'MaxVestingSchedulesExceeded';689}690691/** @name OrmlVestingModuleEvent */692export interface OrmlVestingModuleEvent extends Enum {693 readonly isVestingScheduleAdded: boolean;694 readonly asVestingScheduleAdded: {695 readonly from: AccountId32;696 readonly to: AccountId32;697 readonly vestingSchedule: OrmlVestingVestingSchedule;698 } & Struct;699 readonly isClaimed: boolean;700 readonly asClaimed: {701 readonly who: AccountId32;702 readonly amount: u128;703 } & Struct;704 readonly isVestingSchedulesUpdated: boolean;705 readonly asVestingSchedulesUpdated: {706 readonly who: AccountId32;707 } & Struct;708 readonly type: 'VestingScheduleAdded' | 'Claimed' | 'VestingSchedulesUpdated';709}710711/** @name OrmlVestingVestingSchedule */712export interface OrmlVestingVestingSchedule extends Struct {713 readonly start: u32;714 readonly period: u32;715 readonly periodCount: u32;716 readonly perPeriod: Compact<u128>;717}718719/** @name PalletBalancesAccountData */720export interface PalletBalancesAccountData extends Struct {721 readonly free: u128;722 readonly reserved: u128;723 readonly miscFrozen: u128;724 readonly feeFrozen: u128;725}726727/** @name PalletBalancesBalanceLock */728export interface PalletBalancesBalanceLock extends Struct {729 readonly id: U8aFixed;730 readonly amount: u128;731 readonly reasons: PalletBalancesReasons;732}733734/** @name PalletBalancesCall */735export interface PalletBalancesCall extends Enum {736 readonly isTransfer: boolean;737 readonly asTransfer: {738 readonly dest: MultiAddress;739 readonly value: Compact<u128>;740 } & Struct;741 readonly isSetBalance: boolean;742 readonly asSetBalance: {743 readonly who: MultiAddress;744 readonly newFree: Compact<u128>;745 readonly newReserved: Compact<u128>;746 } & Struct;747 readonly isForceTransfer: boolean;748 readonly asForceTransfer: {749 readonly source: MultiAddress;750 readonly dest: MultiAddress;751 readonly value: Compact<u128>;752 } & Struct;753 readonly isTransferKeepAlive: boolean;754 readonly asTransferKeepAlive: {755 readonly dest: MultiAddress;756 readonly value: Compact<u128>;757 } & Struct;758 readonly isTransferAll: boolean;759 readonly asTransferAll: {760 readonly dest: MultiAddress;761 readonly keepAlive: bool;762 } & Struct;763 readonly isForceUnreserve: boolean;764 readonly asForceUnreserve: {765 readonly who: MultiAddress;766 readonly amount: u128;767 } & Struct;768 readonly type: 'Transfer' | 'SetBalance' | 'ForceTransfer' | 'TransferKeepAlive' | 'TransferAll' | 'ForceUnreserve';769}770771/** @name PalletBalancesError */772export interface PalletBalancesError extends Enum {773 readonly isVestingBalance: boolean;774 readonly isLiquidityRestrictions: boolean;775 readonly isInsufficientBalance: boolean;776 readonly isExistentialDeposit: boolean;777 readonly isKeepAlive: boolean;778 readonly isExistingVestingSchedule: boolean;779 readonly isDeadAccount: boolean;780 readonly isTooManyReserves: boolean;781 readonly type: 'VestingBalance' | 'LiquidityRestrictions' | 'InsufficientBalance' | 'ExistentialDeposit' | 'KeepAlive' | 'ExistingVestingSchedule' | 'DeadAccount' | 'TooManyReserves';782}783784/** @name PalletBalancesEvent */785export interface PalletBalancesEvent extends Enum {786 readonly isEndowed: boolean;787 readonly asEndowed: {788 readonly account: AccountId32;789 readonly freeBalance: u128;790 } & Struct;791 readonly isDustLost: boolean;792 readonly asDustLost: {793 readonly account: AccountId32;794 readonly amount: u128;795 } & Struct;796 readonly isTransfer: boolean;797 readonly asTransfer: {798 readonly from: AccountId32;799 readonly to: AccountId32;800 readonly amount: u128;801 } & Struct;802 readonly isBalanceSet: boolean;803 readonly asBalanceSet: {804 readonly who: AccountId32;805 readonly free: u128;806 readonly reserved: u128;807 } & Struct;808 readonly isReserved: boolean;809 readonly asReserved: {810 readonly who: AccountId32;811 readonly amount: u128;812 } & Struct;813 readonly isUnreserved: boolean;814 readonly asUnreserved: {815 readonly who: AccountId32;816 readonly amount: u128;817 } & Struct;818 readonly isReserveRepatriated: boolean;819 readonly asReserveRepatriated: {820 readonly from: AccountId32;821 readonly to: AccountId32;822 readonly amount: u128;823 readonly destinationStatus: FrameSupportTokensMiscBalanceStatus;824 } & Struct;825 readonly isDeposit: boolean;826 readonly asDeposit: {827 readonly who: AccountId32;828 readonly amount: u128;829 } & Struct;830 readonly isWithdraw: boolean;831 readonly asWithdraw: {832 readonly who: AccountId32;833 readonly amount: u128;834 } & Struct;835 readonly isSlashed: boolean;836 readonly asSlashed: {837 readonly who: AccountId32;838 readonly amount: u128;839 } & Struct;840 readonly type: 'Endowed' | 'DustLost' | 'Transfer' | 'BalanceSet' | 'Reserved' | 'Unreserved' | 'ReserveRepatriated' | 'Deposit' | 'Withdraw' | 'Slashed';841}842843/** @name PalletBalancesReasons */844export interface PalletBalancesReasons extends Enum {845 readonly isFee: boolean;846 readonly isMisc: boolean;847 readonly isAll: boolean;848 readonly type: 'Fee' | 'Misc' | 'All';849}850851/** @name PalletBalancesReleases */852export interface PalletBalancesReleases extends Enum {853 readonly isV100: boolean;854 readonly isV200: boolean;855 readonly type: 'V100' | 'V200';856}857858/** @name PalletBalancesReserveData */859export interface PalletBalancesReserveData extends Struct {860 readonly id: U8aFixed;861 readonly amount: u128;862}863864/** @name PalletCommonError */865export interface PalletCommonError extends Enum {866 readonly isCollectionNotFound: boolean;867 readonly isMustBeTokenOwner: boolean;868 readonly isNoPermission: boolean;869 readonly isPublicMintingNotAllowed: boolean;870 readonly isAddressNotInAllowlist: boolean;871 readonly isCollectionNameLimitExceeded: boolean;872 readonly isCollectionDescriptionLimitExceeded: boolean;873 readonly isCollectionTokenPrefixLimitExceeded: boolean;874 readonly isTotalCollectionsLimitExceeded: boolean;875 readonly isCollectionAdminCountExceeded: boolean;876 readonly isCollectionLimitBoundsExceeded: boolean;877 readonly isOwnerPermissionsCantBeReverted: boolean;878 readonly isTransferNotAllowed: boolean;879 readonly isAccountTokenLimitExceeded: boolean;880 readonly isCollectionTokenLimitExceeded: boolean;881 readonly isMetadataFlagFrozen: boolean;882 readonly isTokenNotFound: boolean;883 readonly isTokenValueTooLow: boolean;884 readonly isApprovedValueTooLow: boolean;885 readonly isCantApproveMoreThanOwned: boolean;886 readonly isAddressIsZero: boolean;887 readonly isUnsupportedOperation: boolean;888 readonly isNotSufficientFounds: boolean;889 readonly isNestingIsDisabled: boolean;890 readonly isOnlyOwnerAllowedToNest: boolean;891 readonly isSourceCollectionIsNotAllowedToNest: boolean;892 readonly isCollectionFieldSizeExceeded: boolean;893 readonly isNoSpaceForProperty: boolean;894 readonly isPropertyLimitReached: boolean;895 readonly isPropertyKeyIsTooLong: boolean;896 readonly isInvalidCharacterInPropertyKey: boolean;897 readonly isEmptyPropertyKey: boolean;898 readonly type: 'CollectionNotFound' | 'MustBeTokenOwner' | 'NoPermission' | 'PublicMintingNotAllowed' | 'AddressNotInAllowlist' | 'CollectionNameLimitExceeded' | 'CollectionDescriptionLimitExceeded' | 'CollectionTokenPrefixLimitExceeded' | 'TotalCollectionsLimitExceeded' | 'CollectionAdminCountExceeded' | 'CollectionLimitBoundsExceeded' | 'OwnerPermissionsCantBeReverted' | 'TransferNotAllowed' | 'AccountTokenLimitExceeded' | 'CollectionTokenLimitExceeded' | 'MetadataFlagFrozen' | 'TokenNotFound' | 'TokenValueTooLow' | 'ApprovedValueTooLow' | 'CantApproveMoreThanOwned' | 'AddressIsZero' | 'UnsupportedOperation' | 'NotSufficientFounds' | 'NestingIsDisabled' | 'OnlyOwnerAllowedToNest' | 'SourceCollectionIsNotAllowedToNest' | 'CollectionFieldSizeExceeded' | 'NoSpaceForProperty' | 'PropertyLimitReached' | 'PropertyKeyIsTooLong' | 'InvalidCharacterInPropertyKey' | 'EmptyPropertyKey';899}900901/** @name PalletCommonEvent */902export interface PalletCommonEvent extends Enum {903 readonly isCollectionCreated: boolean;904 readonly asCollectionCreated: ITuple<[u32, u8, AccountId32]>;905 readonly isCollectionDestroyed: boolean;906 readonly asCollectionDestroyed: u32;907 readonly isItemCreated: boolean;908 readonly asItemCreated: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;909 readonly isItemDestroyed: boolean;910 readonly asItemDestroyed: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;911 readonly isTransfer: boolean;912 readonly asTransfer: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;913 readonly isApproved: boolean;914 readonly asApproved: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;915 readonly isCollectionPropertySet: boolean;916 readonly asCollectionPropertySet: ITuple<[u32, Bytes]>;917 readonly isCollectionPropertyDeleted: boolean;918 readonly asCollectionPropertyDeleted: ITuple<[u32, Bytes]>;919 readonly isTokenPropertySet: boolean;920 readonly asTokenPropertySet: ITuple<[u32, u32, Bytes]>;921 readonly isTokenPropertyDeleted: boolean;922 readonly asTokenPropertyDeleted: ITuple<[u32, u32, Bytes]>;923 readonly isPropertyPermissionSet: boolean;924 readonly asPropertyPermissionSet: ITuple<[u32, Bytes]>;925 readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'ItemCreated' | 'ItemDestroyed' | 'Transfer' | 'Approved' | 'CollectionPropertySet' | 'CollectionPropertyDeleted' | 'TokenPropertySet' | 'TokenPropertyDeleted' | 'PropertyPermissionSet';926}927928/** @name PalletEthereumCall */929export interface PalletEthereumCall extends Enum {930 readonly isTransact: boolean;931 readonly asTransact: {932 readonly transaction: EthereumTransactionTransactionV2;933 } & Struct;934 readonly type: 'Transact';935}936937/** @name PalletEthereumError */938export interface PalletEthereumError extends Enum {939 readonly isInvalidSignature: boolean;940 readonly isPreLogExists: boolean;941 readonly type: 'InvalidSignature' | 'PreLogExists';942}943944/** @name PalletEthereumEvent */945export interface PalletEthereumEvent extends Enum {946 readonly isExecuted: boolean;947 readonly asExecuted: ITuple<[H160, H160, H256, EvmCoreErrorExitReason]>;948 readonly type: 'Executed';949}950951/** @name PalletEthereumFakeTransactionFinalizer */952export interface PalletEthereumFakeTransactionFinalizer extends Null {}953954/** @name PalletEvmAccountBasicCrossAccountIdRepr */955export interface PalletEvmAccountBasicCrossAccountIdRepr extends Enum {956 readonly isSubstrate: boolean;957 readonly asSubstrate: AccountId32;958 readonly isEthereum: boolean;959 readonly asEthereum: H160;960 readonly type: 'Substrate' | 'Ethereum';961}962963/** @name PalletEvmCall */964export interface PalletEvmCall extends Enum {965 readonly isWithdraw: boolean;966 readonly asWithdraw: {967 readonly address: H160;968 readonly value: u128;969 } & Struct;970 readonly isCall: boolean;971 readonly asCall: {972 readonly source: H160;973 readonly target: H160;974 readonly input: Bytes;975 readonly value: U256;976 readonly gasLimit: u64;977 readonly maxFeePerGas: U256;978 readonly maxPriorityFeePerGas: Option<U256>;979 readonly nonce: Option<U256>;980 readonly accessList: Vec<ITuple<[H160, Vec<H256>]>>;981 } & Struct;982 readonly isCreate: boolean;983 readonly asCreate: {984 readonly source: H160;985 readonly init: Bytes;986 readonly value: U256;987 readonly gasLimit: u64;988 readonly maxFeePerGas: U256;989 readonly maxPriorityFeePerGas: Option<U256>;990 readonly nonce: Option<U256>;991 readonly accessList: Vec<ITuple<[H160, Vec<H256>]>>;992 } & Struct;993 readonly isCreate2: boolean;994 readonly asCreate2: {995 readonly source: H160;996 readonly init: Bytes;997 readonly salt: H256;998 readonly value: U256;999 readonly gasLimit: u64;1000 readonly maxFeePerGas: U256;1001 readonly maxPriorityFeePerGas: Option<U256>;1002 readonly nonce: Option<U256>;1003 readonly accessList: Vec<ITuple<[H160, Vec<H256>]>>;1004 } & Struct;1005 readonly type: 'Withdraw' | 'Call' | 'Create' | 'Create2';1006}10071008/** @name PalletEvmCoderSubstrateError */1009export interface PalletEvmCoderSubstrateError extends Enum {1010 readonly isOutOfGas: boolean;1011 readonly isOutOfFund: boolean;1012 readonly type: 'OutOfGas' | 'OutOfFund';1013}10141015/** @name PalletEvmContractHelpersError */1016export interface PalletEvmContractHelpersError extends Enum {1017 readonly isNoPermission: boolean;1018 readonly type: 'NoPermission';1019}10201021/** @name PalletEvmContractHelpersSponsoringModeT */1022export interface PalletEvmContractHelpersSponsoringModeT extends Enum {1023 readonly isDisabled: boolean;1024 readonly isAllowlisted: boolean;1025 readonly isGenerous: boolean;1026 readonly type: 'Disabled' | 'Allowlisted' | 'Generous';1027}10281029/** @name PalletEvmError */1030export interface PalletEvmError extends Enum {1031 readonly isBalanceLow: boolean;1032 readonly isFeeOverflow: boolean;1033 readonly isPaymentOverflow: boolean;1034 readonly isWithdrawFailed: boolean;1035 readonly isGasPriceTooLow: boolean;1036 readonly isInvalidNonce: boolean;1037 readonly type: 'BalanceLow' | 'FeeOverflow' | 'PaymentOverflow' | 'WithdrawFailed' | 'GasPriceTooLow' | 'InvalidNonce';1038}10391040/** @name PalletEvmEvent */1041export interface PalletEvmEvent extends Enum {1042 readonly isLog: boolean;1043 readonly asLog: EthereumLog;1044 readonly isCreated: boolean;1045 readonly asCreated: H160;1046 readonly isCreatedFailed: boolean;1047 readonly asCreatedFailed: H160;1048 readonly isExecuted: boolean;1049 readonly asExecuted: H160;1050 readonly isExecutedFailed: boolean;1051 readonly asExecutedFailed: H160;1052 readonly isBalanceDeposit: boolean;1053 readonly asBalanceDeposit: ITuple<[AccountId32, H160, U256]>;1054 readonly isBalanceWithdraw: boolean;1055 readonly asBalanceWithdraw: ITuple<[AccountId32, H160, U256]>;1056 readonly type: 'Log' | 'Created' | 'CreatedFailed' | 'Executed' | 'ExecutedFailed' | 'BalanceDeposit' | 'BalanceWithdraw';1057}10581059/** @name PalletEvmMigrationCall */1060export interface PalletEvmMigrationCall extends Enum {1061 readonly isBegin: boolean;1062 readonly asBegin: {1063 readonly address: H160;1064 } & Struct;1065 readonly isSetData: boolean;1066 readonly asSetData: {1067 readonly address: H160;1068 readonly data: Vec<ITuple<[H256, H256]>>;1069 } & Struct;1070 readonly isFinish: boolean;1071 readonly asFinish: {1072 readonly address: H160;1073 readonly code: Bytes;1074 } & Struct;1075 readonly type: 'Begin' | 'SetData' | 'Finish';1076}10771078/** @name PalletEvmMigrationError */1079export interface PalletEvmMigrationError extends Enum {1080 readonly isAccountNotEmpty: boolean;1081 readonly isAccountIsNotMigrating: boolean;1082 readonly type: 'AccountNotEmpty' | 'AccountIsNotMigrating';1083}10841085/** @name PalletFungibleError */1086export interface PalletFungibleError extends Enum {1087 readonly isNotFungibleDataUsedToMintFungibleCollectionToken: boolean;1088 readonly isFungibleItemsHaveNoId: boolean;1089 readonly isFungibleItemsDontHaveData: boolean;1090 readonly isFungibleDisallowsNesting: boolean;1091 readonly isSettingPropertiesNotAllowed: boolean;1092 readonly type: 'NotFungibleDataUsedToMintFungibleCollectionToken' | 'FungibleItemsHaveNoId' | 'FungibleItemsDontHaveData' | 'FungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';1093}10941095/** @name PalletInflationCall */1096export interface PalletInflationCall extends Enum {1097 readonly isStartInflation: boolean;1098 readonly asStartInflation: {1099 readonly inflationStartRelayBlock: u32;1100 } & Struct;1101 readonly type: 'StartInflation';1102}11031104/** @name PalletNonfungibleError */1105export interface PalletNonfungibleError extends Enum {1106 readonly isNotNonfungibleDataUsedToMintFungibleCollectionToken: boolean;1107 readonly isNonfungibleItemsHaveNoAmount: boolean;1108 readonly type: 'NotNonfungibleDataUsedToMintFungibleCollectionToken' | 'NonfungibleItemsHaveNoAmount';1109}11101111/** @name PalletNonfungibleItemData */1112export interface PalletNonfungibleItemData extends Struct {1113 readonly constData: Bytes;1114 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;1115}11161117/** @name PalletRefungibleError */1118export interface PalletRefungibleError extends Enum {1119 readonly isNotRefungibleDataUsedToMintFungibleCollectionToken: boolean;1120 readonly isWrongRefungiblePieces: boolean;1121 readonly isRefungibleDisallowsNesting: boolean;1122 readonly isSettingPropertiesNotAllowed: boolean;1123 readonly type: 'NotRefungibleDataUsedToMintFungibleCollectionToken' | 'WrongRefungiblePieces' | 'RefungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';1124}11251126/** @name PalletRefungibleItemData */1127export interface PalletRefungibleItemData extends Struct {1128 readonly constData: Bytes;1129}11301131/** @name PalletStructureCall */1132export interface PalletStructureCall extends Null {}11331134/** @name PalletStructureError */1135export interface PalletStructureError extends Enum {1136 readonly isOuroborosDetected: boolean;1137 readonly isDepthLimit: boolean;1138 readonly isTokenNotFound: boolean;1139 readonly type: 'OuroborosDetected' | 'DepthLimit' | 'TokenNotFound';1140}11411142/** @name PalletStructureEvent */1143export interface PalletStructureEvent extends Enum {1144 readonly isExecuted: boolean;1145 readonly asExecuted: Result<Null, SpRuntimeDispatchError>;1146 readonly type: 'Executed';1147}11481149/** @name PalletSudoCall */1150export interface PalletSudoCall extends Enum {1151 readonly isSudo: boolean;1152 readonly asSudo: {1153 readonly call: Call;1154 } & Struct;1155 readonly isSudoUncheckedWeight: boolean;1156 readonly asSudoUncheckedWeight: {1157 readonly call: Call;1158 readonly weight: u64;1159 } & Struct;1160 readonly isSetKey: boolean;1161 readonly asSetKey: {1162 readonly new_: MultiAddress;1163 } & Struct;1164 readonly isSudoAs: boolean;1165 readonly asSudoAs: {1166 readonly who: MultiAddress;1167 readonly call: Call;1168 } & Struct;1169 readonly type: 'Sudo' | 'SudoUncheckedWeight' | 'SetKey' | 'SudoAs';1170}11711172/** @name PalletSudoError */1173export interface PalletSudoError extends Enum {1174 readonly isRequireSudo: boolean;1175 readonly type: 'RequireSudo';1176}11771178/** @name PalletSudoEvent */1179export interface PalletSudoEvent extends Enum {1180 readonly isSudid: boolean;1181 readonly asSudid: {1182 readonly sudoResult: Result<Null, SpRuntimeDispatchError>;1183 } & Struct;1184 readonly isKeyChanged: boolean;1185 readonly asKeyChanged: {1186 readonly oldSudoer: Option<AccountId32>;1187 } & Struct;1188 readonly isSudoAsDone: boolean;1189 readonly asSudoAsDone: {1190 readonly sudoResult: Result<Null, SpRuntimeDispatchError>;1191 } & Struct;1192 readonly type: 'Sudid' | 'KeyChanged' | 'SudoAsDone';1193}11941195/** @name PalletTemplateTransactionPaymentCall */1196export interface PalletTemplateTransactionPaymentCall extends Null {}11971198/** @name PalletTemplateTransactionPaymentChargeTransactionPayment */1199export interface PalletTemplateTransactionPaymentChargeTransactionPayment extends Compact<u128> {}12001201/** @name PalletTimestampCall */1202export interface PalletTimestampCall extends Enum {1203 readonly isSet: boolean;1204 readonly asSet: {1205 readonly now: Compact<u64>;1206 } & Struct;1207 readonly type: 'Set';1208}12091210/** @name PalletTransactionPaymentReleases */1211export interface PalletTransactionPaymentReleases extends Enum {1212 readonly isV1Ancient: boolean;1213 readonly isV2: boolean;1214 readonly type: 'V1Ancient' | 'V2';1215}12161217/** @name PalletTreasuryCall */1218export interface PalletTreasuryCall extends Enum {1219 readonly isProposeSpend: boolean;1220 readonly asProposeSpend: {1221 readonly value: Compact<u128>;1222 readonly beneficiary: MultiAddress;1223 } & Struct;1224 readonly isRejectProposal: boolean;1225 readonly asRejectProposal: {1226 readonly proposalId: Compact<u32>;1227 } & Struct;1228 readonly isApproveProposal: boolean;1229 readonly asApproveProposal: {1230 readonly proposalId: Compact<u32>;1231 } & Struct;1232 readonly type: 'ProposeSpend' | 'RejectProposal' | 'ApproveProposal';1233}12341235/** @name PalletTreasuryError */1236export interface PalletTreasuryError extends Enum {1237 readonly isInsufficientProposersBalance: boolean;1238 readonly isInvalidIndex: boolean;1239 readonly isTooManyApprovals: boolean;1240 readonly type: 'InsufficientProposersBalance' | 'InvalidIndex' | 'TooManyApprovals';1241}12421243/** @name PalletTreasuryEvent */1244export interface PalletTreasuryEvent extends Enum {1245 readonly isProposed: boolean;1246 readonly asProposed: {1247 readonly proposalIndex: u32;1248 } & Struct;1249 readonly isSpending: boolean;1250 readonly asSpending: {1251 readonly budgetRemaining: u128;1252 } & Struct;1253 readonly isAwarded: boolean;1254 readonly asAwarded: {1255 readonly proposalIndex: u32;1256 readonly award: u128;1257 readonly account: AccountId32;1258 } & Struct;1259 readonly isRejected: boolean;1260 readonly asRejected: {1261 readonly proposalIndex: u32;1262 readonly slashed: u128;1263 } & Struct;1264 readonly isBurnt: boolean;1265 readonly asBurnt: {1266 readonly burntFunds: u128;1267 } & Struct;1268 readonly isRollover: boolean;1269 readonly asRollover: {1270 readonly rolloverBalance: u128;1271 } & Struct;1272 readonly isDeposit: boolean;1273 readonly asDeposit: {1274 readonly value: u128;1275 } & Struct;1276 readonly type: 'Proposed' | 'Spending' | 'Awarded' | 'Rejected' | 'Burnt' | 'Rollover' | 'Deposit';1277}12781279/** @name PalletTreasuryProposal */1280export interface PalletTreasuryProposal extends Struct {1281 readonly proposer: AccountId32;1282 readonly value: u128;1283 readonly beneficiary: AccountId32;1284 readonly bond: u128;1285}12861287/** @name PalletUniqueCall */1288export interface PalletUniqueCall extends Enum {1289 readonly isCreateCollection: boolean;1290 readonly asCreateCollection: {1291 readonly collectionName: Vec<u16>;1292 readonly collectionDescription: Vec<u16>;1293 readonly tokenPrefix: Bytes;1294 readonly mode: UpDataStructsCollectionMode;1295 } & Struct;1296 readonly isCreateCollectionEx: boolean;1297 readonly asCreateCollectionEx: {1298 readonly data: UpDataStructsCreateCollectionData;1299 } & Struct;1300 readonly isDestroyCollection: boolean;1301 readonly asDestroyCollection: {1302 readonly collectionId: u32;1303 } & Struct;1304 readonly isAddToAllowList: boolean;1305 readonly asAddToAllowList: {1306 readonly collectionId: u32;1307 readonly address: PalletEvmAccountBasicCrossAccountIdRepr;1308 } & Struct;1309 readonly isRemoveFromAllowList: boolean;1310 readonly asRemoveFromAllowList: {1311 readonly collectionId: u32;1312 readonly address: PalletEvmAccountBasicCrossAccountIdRepr;1313 } & Struct;1314 readonly isSetPublicAccessMode: boolean;1315 readonly asSetPublicAccessMode: {1316 readonly collectionId: u32;1317 readonly mode: UpDataStructsAccessMode;1318 } & Struct;1319 readonly isSetMintPermission: boolean;1320 readonly asSetMintPermission: {1321 readonly collectionId: u32;1322 readonly mintPermission: bool;1323 } & Struct;1324 readonly isChangeCollectionOwner: boolean;1325 readonly asChangeCollectionOwner: {1326 readonly collectionId: u32;1327 readonly newOwner: AccountId32;1328 } & Struct;1329 readonly isAddCollectionAdmin: boolean;1330 readonly asAddCollectionAdmin: {1331 readonly collectionId: u32;1332 readonly newAdminId: PalletEvmAccountBasicCrossAccountIdRepr;1333 } & Struct;1334 readonly isRemoveCollectionAdmin: boolean;1335 readonly asRemoveCollectionAdmin: {1336 readonly collectionId: u32;1337 readonly accountId: PalletEvmAccountBasicCrossAccountIdRepr;1338 } & Struct;1339 readonly isSetCollectionSponsor: boolean;1340 readonly asSetCollectionSponsor: {1341 readonly collectionId: u32;1342 readonly newSponsor: AccountId32;1343 } & Struct;1344 readonly isConfirmSponsorship: boolean;1345 readonly asConfirmSponsorship: {1346 readonly collectionId: u32;1347 } & Struct;1348 readonly isRemoveCollectionSponsor: boolean;1349 readonly asRemoveCollectionSponsor: {1350 readonly collectionId: u32;1351 } & Struct;1352 readonly isCreateItem: boolean;1353 readonly asCreateItem: {1354 readonly collectionId: u32;1355 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;1356 readonly data: UpDataStructsCreateItemData;1357 } & Struct;1358 readonly isCreateMultipleItems: boolean;1359 readonly asCreateMultipleItems: {1360 readonly collectionId: u32;1361 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;1362 readonly itemsData: Vec<UpDataStructsCreateItemData>;1363 } & Struct;1364 readonly isSetCollectionProperties: boolean;1365 readonly asSetCollectionProperties: {1366 readonly collectionId: u32;1367 readonly properties: Vec<UpDataStructsProperty>;1368 } & Struct;1369 readonly isDeleteCollectionProperties: boolean;1370 readonly asDeleteCollectionProperties: {1371 readonly collectionId: u32;1372 readonly propertyKeys: Vec<Bytes>;1373 } & Struct;1374 readonly isSetTokenProperties: boolean;1375 readonly asSetTokenProperties: {1376 readonly collectionId: u32;1377 readonly tokenId: u32;1378 readonly properties: Vec<UpDataStructsProperty>;1379 } & Struct;1380 readonly isDeleteTokenProperties: boolean;1381 readonly asDeleteTokenProperties: {1382 readonly collectionId: u32;1383 readonly tokenId: u32;1384 readonly propertyKeys: Vec<Bytes>;1385 } & Struct;1386 readonly isSetPropertyPermissions: boolean;1387 readonly asSetPropertyPermissions: {1388 readonly collectionId: u32;1389 readonly propertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;1390 } & Struct;1391 readonly isCreateMultipleItemsEx: boolean;1392 readonly asCreateMultipleItemsEx: {1393 readonly collectionId: u32;1394 readonly data: UpDataStructsCreateItemExData;1395 } & Struct;1396 readonly isSetTransfersEnabledFlag: boolean;1397 readonly asSetTransfersEnabledFlag: {1398 readonly collectionId: u32;1399 readonly value: bool;1400 } & Struct;1401 readonly isBurnItem: boolean;1402 readonly asBurnItem: {1403 readonly collectionId: u32;1404 readonly itemId: u32;1405 readonly value: u128;1406 } & Struct;1407 readonly isBurnFrom: boolean;1408 readonly asBurnFrom: {1409 readonly collectionId: u32;1410 readonly from: PalletEvmAccountBasicCrossAccountIdRepr;1411 readonly itemId: u32;1412 readonly value: u128;1413 } & Struct;1414 readonly isTransfer: boolean;1415 readonly asTransfer: {1416 readonly recipient: PalletEvmAccountBasicCrossAccountIdRepr;1417 readonly collectionId: u32;1418 readonly itemId: u32;1419 readonly value: u128;1420 } & Struct;1421 readonly isApprove: boolean;1422 readonly asApprove: {1423 readonly spender: PalletEvmAccountBasicCrossAccountIdRepr;1424 readonly collectionId: u32;1425 readonly itemId: u32;1426 readonly amount: u128;1427 } & Struct;1428 readonly isTransferFrom: boolean;1429 readonly asTransferFrom: {1430 readonly from: PalletEvmAccountBasicCrossAccountIdRepr;1431 readonly recipient: PalletEvmAccountBasicCrossAccountIdRepr;1432 readonly collectionId: u32;1433 readonly itemId: u32;1434 readonly value: u128;1435 } & Struct;1436 readonly isSetSchemaVersion: boolean;1437 readonly asSetSchemaVersion: {1438 readonly collectionId: u32;1439 readonly version: UpDataStructsSchemaVersion;1440 } & Struct;1441 readonly isSetOffchainSchema: boolean;1442 readonly asSetOffchainSchema: {1443 readonly collectionId: u32;1444 readonly schema: Bytes;1445 } & Struct;1446 readonly isSetConstOnChainSchema: boolean;1447 readonly asSetConstOnChainSchema: {1448 readonly collectionId: u32;1449 readonly schema: Bytes;1450 } & Struct;1451 readonly isSetCollectionLimits: boolean;1452 readonly asSetCollectionLimits: {1453 readonly collectionId: u32;1454 readonly newLimit: UpDataStructsCollectionLimits;1455 } & Struct;1456 readonly type: 'CreateCollection' | 'CreateCollectionEx' | 'DestroyCollection' | 'AddToAllowList' | 'RemoveFromAllowList' | 'SetPublicAccessMode' | 'SetMintPermission' | 'ChangeCollectionOwner' | 'AddCollectionAdmin' | 'RemoveCollectionAdmin' | 'SetCollectionSponsor' | 'ConfirmSponsorship' | 'RemoveCollectionSponsor' | 'CreateItem' | 'CreateMultipleItems' | 'SetCollectionProperties' | 'DeleteCollectionProperties' | 'SetTokenProperties' | 'DeleteTokenProperties' | 'SetPropertyPermissions' | 'CreateMultipleItemsEx' | 'SetTransfersEnabledFlag' | 'BurnItem' | 'BurnFrom' | 'Transfer' | 'Approve' | 'TransferFrom' | 'SetSchemaVersion' | 'SetOffchainSchema' | 'SetConstOnChainSchema' | 'SetCollectionLimits';1457}14581459/** @name PalletUniqueError */1460export interface PalletUniqueError extends Enum {1461 readonly isCollectionDecimalPointLimitExceeded: boolean;1462 readonly isConfirmUnsetSponsorFail: boolean;1463 readonly isEmptyArgument: boolean;1464 readonly type: 'CollectionDecimalPointLimitExceeded' | 'ConfirmUnsetSponsorFail' | 'EmptyArgument';1465}14661467/** @name PalletUniqueRawEvent */1468export interface PalletUniqueRawEvent extends Enum {1469 readonly isCollectionSponsorRemoved: boolean;1470 readonly asCollectionSponsorRemoved: u32;1471 readonly isCollectionAdminAdded: boolean;1472 readonly asCollectionAdminAdded: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;1473 readonly isCollectionOwnedChanged: boolean;1474 readonly asCollectionOwnedChanged: ITuple<[u32, AccountId32]>;1475 readonly isCollectionSponsorSet: boolean;1476 readonly asCollectionSponsorSet: ITuple<[u32, AccountId32]>;1477 readonly isConstOnChainSchemaSet: boolean;1478 readonly asConstOnChainSchemaSet: u32;1479 readonly isSponsorshipConfirmed: boolean;1480 readonly asSponsorshipConfirmed: ITuple<[u32, AccountId32]>;1481 readonly isCollectionAdminRemoved: boolean;1482 readonly asCollectionAdminRemoved: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;1483 readonly isAllowListAddressRemoved: boolean;1484 readonly asAllowListAddressRemoved: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;1485 readonly isAllowListAddressAdded: boolean;1486 readonly asAllowListAddressAdded: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;1487 readonly isCollectionLimitSet: boolean;1488 readonly asCollectionLimitSet: u32;1489 readonly isMintPermissionSet: boolean;1490 readonly asMintPermissionSet: u32;1491 readonly isOffchainSchemaSet: boolean;1492 readonly asOffchainSchemaSet: u32;1493 readonly isPublicAccessModeSet: boolean;1494 readonly asPublicAccessModeSet: ITuple<[u32, UpDataStructsAccessMode]>;1495 readonly isSchemaVersionSet: boolean;1496 readonly asSchemaVersionSet: u32;1497 readonly type: 'CollectionSponsorRemoved' | 'CollectionAdminAdded' | 'CollectionOwnedChanged' | 'CollectionSponsorSet' | 'ConstOnChainSchemaSet' | 'SponsorshipConfirmed' | 'CollectionAdminRemoved' | 'AllowListAddressRemoved' | 'AllowListAddressAdded' | 'CollectionLimitSet' | 'MintPermissionSet' | 'OffchainSchemaSet' | 'PublicAccessModeSet' | 'SchemaVersionSet';1498}14991500/** @name PalletXcmCall */1501export interface PalletXcmCall extends Enum {1502 readonly isSend: boolean;1503 readonly asSend: {1504 readonly dest: XcmVersionedMultiLocation;1505 readonly message: XcmVersionedXcm;1506 } & Struct;1507 readonly isTeleportAssets: boolean;1508 readonly asTeleportAssets: {1509 readonly dest: XcmVersionedMultiLocation;1510 readonly beneficiary: XcmVersionedMultiLocation;1511 readonly assets: XcmVersionedMultiAssets;1512 readonly feeAssetItem: u32;1513 } & Struct;1514 readonly isReserveTransferAssets: boolean;1515 readonly asReserveTransferAssets: {1516 readonly dest: XcmVersionedMultiLocation;1517 readonly beneficiary: XcmVersionedMultiLocation;1518 readonly assets: XcmVersionedMultiAssets;1519 readonly feeAssetItem: u32;1520 } & Struct;1521 readonly isExecute: boolean;1522 readonly asExecute: {1523 readonly message: XcmVersionedXcm;1524 readonly maxWeight: u64;1525 } & Struct;1526 readonly isForceXcmVersion: boolean;1527 readonly asForceXcmVersion: {1528 readonly location: XcmV1MultiLocation;1529 readonly xcmVersion: u32;1530 } & Struct;1531 readonly isForceDefaultXcmVersion: boolean;1532 readonly asForceDefaultXcmVersion: {1533 readonly maybeXcmVersion: Option<u32>;1534 } & Struct;1535 readonly isForceSubscribeVersionNotify: boolean;1536 readonly asForceSubscribeVersionNotify: {1537 readonly location: XcmVersionedMultiLocation;1538 } & Struct;1539 readonly isForceUnsubscribeVersionNotify: boolean;1540 readonly asForceUnsubscribeVersionNotify: {1541 readonly location: XcmVersionedMultiLocation;1542 } & Struct;1543 readonly isLimitedReserveTransferAssets: boolean;1544 readonly asLimitedReserveTransferAssets: {1545 readonly dest: XcmVersionedMultiLocation;1546 readonly beneficiary: XcmVersionedMultiLocation;1547 readonly assets: XcmVersionedMultiAssets;1548 readonly feeAssetItem: u32;1549 readonly weightLimit: XcmV2WeightLimit;1550 } & Struct;1551 readonly isLimitedTeleportAssets: boolean;1552 readonly asLimitedTeleportAssets: {1553 readonly dest: XcmVersionedMultiLocation;1554 readonly beneficiary: XcmVersionedMultiLocation;1555 readonly assets: XcmVersionedMultiAssets;1556 readonly feeAssetItem: u32;1557 readonly weightLimit: XcmV2WeightLimit;1558 } & Struct;1559 readonly type: 'Send' | 'TeleportAssets' | 'ReserveTransferAssets' | 'Execute' | 'ForceXcmVersion' | 'ForceDefaultXcmVersion' | 'ForceSubscribeVersionNotify' | 'ForceUnsubscribeVersionNotify' | 'LimitedReserveTransferAssets' | 'LimitedTeleportAssets';1560}15611562/** @name PalletXcmError */1563export interface PalletXcmError extends Enum {1564 readonly isUnreachable: boolean;1565 readonly isSendFailure: boolean;1566 readonly isFiltered: boolean;1567 readonly isUnweighableMessage: boolean;1568 readonly isDestinationNotInvertible: boolean;1569 readonly isEmpty: boolean;1570 readonly isCannotReanchor: boolean;1571 readonly isTooManyAssets: boolean;1572 readonly isInvalidOrigin: boolean;1573 readonly isBadVersion: boolean;1574 readonly isBadLocation: boolean;1575 readonly isNoSubscription: boolean;1576 readonly isAlreadySubscribed: boolean;1577 readonly type: 'Unreachable' | 'SendFailure' | 'Filtered' | 'UnweighableMessage' | 'DestinationNotInvertible' | 'Empty' | 'CannotReanchor' | 'TooManyAssets' | 'InvalidOrigin' | 'BadVersion' | 'BadLocation' | 'NoSubscription' | 'AlreadySubscribed';1578}15791580/** @name PalletXcmEvent */1581export interface PalletXcmEvent extends Enum {1582 readonly isAttempted: boolean;1583 readonly asAttempted: XcmV2TraitsOutcome;1584 readonly isSent: boolean;1585 readonly asSent: ITuple<[XcmV1MultiLocation, XcmV1MultiLocation, XcmV2Xcm]>;1586 readonly isUnexpectedResponse: boolean;1587 readonly asUnexpectedResponse: ITuple<[XcmV1MultiLocation, u64]>;1588 readonly isResponseReady: boolean;1589 readonly asResponseReady: ITuple<[u64, XcmV2Response]>;1590 readonly isNotified: boolean;1591 readonly asNotified: ITuple<[u64, u8, u8]>;1592 readonly isNotifyOverweight: boolean;1593 readonly asNotifyOverweight: ITuple<[u64, u8, u8, u64, u64]>;1594 readonly isNotifyDispatchError: boolean;1595 readonly asNotifyDispatchError: ITuple<[u64, u8, u8]>;1596 readonly isNotifyDecodeFailed: boolean;1597 readonly asNotifyDecodeFailed: ITuple<[u64, u8, u8]>;1598 readonly isInvalidResponder: boolean;1599 readonly asInvalidResponder: ITuple<[XcmV1MultiLocation, u64, Option<XcmV1MultiLocation>]>;1600 readonly isInvalidResponderVersion: boolean;1601 readonly asInvalidResponderVersion: ITuple<[XcmV1MultiLocation, u64]>;1602 readonly isResponseTaken: boolean;1603 readonly asResponseTaken: u64;1604 readonly isAssetsTrapped: boolean;1605 readonly asAssetsTrapped: ITuple<[H256, XcmV1MultiLocation, XcmVersionedMultiAssets]>;1606 readonly isVersionChangeNotified: boolean;1607 readonly asVersionChangeNotified: ITuple<[XcmV1MultiLocation, u32]>;1608 readonly isSupportedVersionChanged: boolean;1609 readonly asSupportedVersionChanged: ITuple<[XcmV1MultiLocation, u32]>;1610 readonly isNotifyTargetSendFail: boolean;1611 readonly asNotifyTargetSendFail: ITuple<[XcmV1MultiLocation, u64, XcmV2TraitsError]>;1612 readonly isNotifyTargetMigrationFail: boolean;1613 readonly asNotifyTargetMigrationFail: ITuple<[XcmVersionedMultiLocation, u64]>;1614 readonly type: 'Attempted' | 'Sent' | 'UnexpectedResponse' | 'ResponseReady' | 'Notified' | 'NotifyOverweight' | 'NotifyDispatchError' | 'NotifyDecodeFailed' | 'InvalidResponder' | 'InvalidResponderVersion' | 'ResponseTaken' | 'AssetsTrapped' | 'VersionChangeNotified' | 'SupportedVersionChanged' | 'NotifyTargetSendFail' | 'NotifyTargetMigrationFail';1615}16161617/** @name PhantomTypeUpDataStructsBaseInfo */1618export interface PhantomTypeUpDataStructsBaseInfo extends Vec<Lookup357> {}16191620/** @name PhantomTypeUpDataStructsCollectionInfo */1621export interface PhantomTypeUpDataStructsCollectionInfo extends Vec<Lookup334> {}16221623/** @name PhantomTypeUpDataStructsNftChild */1624export interface PhantomTypeUpDataStructsNftChild extends Vec<Lookup372> {}16251626/** @name PhantomTypeUpDataStructsNftInfo */1627export interface PhantomTypeUpDataStructsNftInfo extends Vec<Lookup339> {}16281629/** @name PhantomTypeUpDataStructsPartType */1630export interface PhantomTypeUpDataStructsPartType extends Vec<Lookup360> {}16311632/** @name PhantomTypeUpDataStructsPropertyInfo */1633export interface PhantomTypeUpDataStructsPropertyInfo extends Vec<Lookup352> {}16341635/** @name PhantomTypeUpDataStructsResourceInfo */1636export interface PhantomTypeUpDataStructsResourceInfo extends Vec<Lookup345> {}16371638/** @name PhantomTypeUpDataStructsRpcCollection */1639export interface PhantomTypeUpDataStructsRpcCollection extends Vec<Lookup331> {}16401641/** @name PhantomTypeUpDataStructsTheme */1642export interface PhantomTypeUpDataStructsTheme extends Vec<Lookup367> {}16431644/** @name PhantomTypeUpDataStructsTokenData */1645export interface PhantomTypeUpDataStructsTokenData extends Vec<Lookup327> {}16461647/** @name PolkadotCorePrimitivesInboundDownwardMessage */1648export interface PolkadotCorePrimitivesInboundDownwardMessage extends Struct {1649 readonly sentAt: u32;1650 readonly msg: Bytes;1651}16521653/** @name PolkadotCorePrimitivesInboundHrmpMessage */1654export interface PolkadotCorePrimitivesInboundHrmpMessage extends Struct {1655 readonly sentAt: u32;1656 readonly data: Bytes;1657}16581659/** @name PolkadotCorePrimitivesOutboundHrmpMessage */1660export interface PolkadotCorePrimitivesOutboundHrmpMessage extends Struct {1661 readonly recipient: u32;1662 readonly data: Bytes;1663}16641665/** @name PolkadotParachainPrimitivesXcmpMessageFormat */1666export interface PolkadotParachainPrimitivesXcmpMessageFormat extends Enum {1667 readonly isConcatenatedVersionedXcm: boolean;1668 readonly isConcatenatedEncodedBlob: boolean;1669 readonly isSignals: boolean;1670 readonly type: 'ConcatenatedVersionedXcm' | 'ConcatenatedEncodedBlob' | 'Signals';1671}16721673/** @name PolkadotPrimitivesV2AbridgedHostConfiguration */1674export interface PolkadotPrimitivesV2AbridgedHostConfiguration extends Struct {1675 readonly maxCodeSize: u32;1676 readonly maxHeadDataSize: u32;1677 readonly maxUpwardQueueCount: u32;1678 readonly maxUpwardQueueSize: u32;1679 readonly maxUpwardMessageSize: u32;1680 readonly maxUpwardMessageNumPerCandidate: u32;1681 readonly hrmpMaxMessageNumPerCandidate: u32;1682 readonly validationUpgradeCooldown: u32;1683 readonly validationUpgradeDelay: u32;1684}16851686/** @name PolkadotPrimitivesV2AbridgedHrmpChannel */1687export interface PolkadotPrimitivesV2AbridgedHrmpChannel extends Struct {1688 readonly maxCapacity: u32;1689 readonly maxTotalSize: u32;1690 readonly maxMessageSize: u32;1691 readonly msgCount: u32;1692 readonly totalSize: u32;1693 readonly mqcHead: Option<H256>;1694}16951696/** @name PolkadotPrimitivesV2PersistedValidationData */1697export interface PolkadotPrimitivesV2PersistedValidationData extends Struct {1698 readonly parentHead: Bytes;1699 readonly relayParentNumber: u32;1700 readonly relayParentStorageRoot: H256;1701 readonly maxPovSize: u32;1702}17031704/** @name PolkadotPrimitivesV2UpgradeRestriction */1705export interface PolkadotPrimitivesV2UpgradeRestriction extends Enum {1706 readonly isPresent: boolean;1707 readonly type: 'Present';1708}17091710/** @name RmrkTypesAccountIdOrCollectionNftTuple */1711export interface RmrkTypesAccountIdOrCollectionNftTuple extends Enum {1712 readonly isAccountId: boolean;1713 readonly asAccountId: AccountId32;1714 readonly isCollectionAndNftTuple: boolean;1715 readonly asCollectionAndNftTuple: ITuple<[u32, u32]>;1716 readonly type: 'AccountId' | 'CollectionAndNftTuple';1717}17181719/** @name RmrkTypesBaseInfo */1720export interface RmrkTypesBaseInfo extends Struct {1721 readonly issuer: AccountId32;1722 readonly baseType: Bytes;1723 readonly symbol: Bytes;1724}17251726/** @name RmrkTypesCollectionInfo */1727export interface RmrkTypesCollectionInfo extends Struct {1728 readonly issuer: AccountId32;1729 readonly metadata: Bytes;1730 readonly max: Option<u32>;1731 readonly symbol: Bytes;1732 readonly nftsCount: u32;1733}17341735/** @name RmrkTypesEquippableList */1736export interface RmrkTypesEquippableList extends Enum {1737 readonly isAll: boolean;1738 readonly isEmpty: boolean;1739 readonly isCustom: boolean;1740 readonly asCustom: Vec<u32>;1741 readonly type: 'All' | 'Empty' | 'Custom';1742}17431744/** @name RmrkTypesFixedPart */1745export interface RmrkTypesFixedPart extends Struct {1746 readonly id: u32;1747 readonly z: u32;1748 readonly src: Bytes;1749}17501751/** @name RmrkTypesNftChild */1752export interface RmrkTypesNftChild extends Struct {1753 readonly collectionId: u32;1754 readonly nftId: u32;1755}17561757/** @name RmrkTypesNftInfo */1758export interface RmrkTypesNftInfo extends Struct {1759 readonly owner: RmrkTypesAccountIdOrCollectionNftTuple;1760 readonly royalty: Option<RmrkTypesRoyaltyInfo>;1761 readonly metadata: Bytes;1762 readonly equipped: bool;1763 readonly pending: bool;1764}17651766/** @name RmrkTypesPartType */1767export interface RmrkTypesPartType extends Enum {1768 readonly isFixedPart: boolean;1769 readonly asFixedPart: RmrkTypesFixedPart;1770 readonly isSlotPart: boolean;1771 readonly asSlotPart: RmrkTypesSlotPart;1772 readonly type: 'FixedPart' | 'SlotPart';1773}17741775/** @name RmrkTypesPropertyInfo */1776export interface RmrkTypesPropertyInfo extends Struct {1777 readonly key: Bytes;1778 readonly value: Bytes;1779}17801781/** @name RmrkTypesResourceInfo */1782export interface RmrkTypesResourceInfo extends Struct {1783 readonly id: Bytes;1784 readonly pending: bool;1785 readonly pendingRemoval: bool;1786 readonly parts: Option<Vec<u32>>;1787 readonly base: Option<u32>;1788 readonly src: Option<Bytes>;1789 readonly metadata: Option<Bytes>;1790 readonly slot: Option<u32>;1791 readonly license: Option<Bytes>;1792 readonly thumb: Option<Bytes>;1793}17941795/** @name RmrkTypesRoyaltyInfo */1796export interface RmrkTypesRoyaltyInfo extends Struct {1797 readonly recipient: AccountId32;1798 readonly amount: Permill;1799}18001801/** @name RmrkTypesSlotPart */1802export interface RmrkTypesSlotPart extends Struct {1803 readonly id: u32;1804 readonly equippable: RmrkTypesEquippableList;1805 readonly src: Bytes;1806 readonly z: u32;1807}18081809/** @name RmrkTypesTheme */1810export interface RmrkTypesTheme extends Struct {1811 readonly name: Bytes;1812 readonly properties: Vec<RmrkTypesThemeProperty>;1813 readonly inherit: bool;1814}18151816/** @name RmrkTypesThemeProperty */1817export interface RmrkTypesThemeProperty extends Struct {1818 readonly key: Bytes;1819 readonly value: Bytes;1820}18211822/** @name SpCoreEcdsaSignature */1823export interface SpCoreEcdsaSignature extends U8aFixed {}18241825/** @name SpCoreEd25519Signature */1826export interface SpCoreEd25519Signature extends U8aFixed {}18271828/** @name SpCoreSr25519Signature */1829export interface SpCoreSr25519Signature extends U8aFixed {}18301831/** @name SpRuntimeArithmeticError */1832export interface SpRuntimeArithmeticError extends Enum {1833 readonly isUnderflow: boolean;1834 readonly isOverflow: boolean;1835 readonly isDivisionByZero: boolean;1836 readonly type: 'Underflow' | 'Overflow' | 'DivisionByZero';1837}18381839/** @name SpRuntimeDigest */1840export interface SpRuntimeDigest extends Struct {1841 readonly logs: Vec<SpRuntimeDigestDigestItem>;1842}18431844/** @name SpRuntimeDigestDigestItem */1845export interface SpRuntimeDigestDigestItem extends Enum {1846 readonly isOther: boolean;1847 readonly asOther: Bytes;1848 readonly isConsensus: boolean;1849 readonly asConsensus: ITuple<[U8aFixed, Bytes]>;1850 readonly isSeal: boolean;1851 readonly asSeal: ITuple<[U8aFixed, Bytes]>;1852 readonly isPreRuntime: boolean;1853 readonly asPreRuntime: ITuple<[U8aFixed, Bytes]>;1854 readonly isRuntimeEnvironmentUpdated: boolean;1855 readonly type: 'Other' | 'Consensus' | 'Seal' | 'PreRuntime' | 'RuntimeEnvironmentUpdated';1856}18571858/** @name SpRuntimeDispatchError */1859export interface SpRuntimeDispatchError extends Enum {1860 readonly isOther: boolean;1861 readonly isCannotLookup: boolean;1862 readonly isBadOrigin: boolean;1863 readonly isModule: boolean;1864 readonly asModule: SpRuntimeModuleError;1865 readonly isConsumerRemaining: boolean;1866 readonly isNoProviders: boolean;1867 readonly isTooManyConsumers: boolean;1868 readonly isToken: boolean;1869 readonly asToken: SpRuntimeTokenError;1870 readonly isArithmetic: boolean;1871 readonly asArithmetic: SpRuntimeArithmeticError;1872 readonly isTransactional: boolean;1873 readonly asTransactional: SpRuntimeTransactionalError;1874 readonly type: 'Other' | 'CannotLookup' | 'BadOrigin' | 'Module' | 'ConsumerRemaining' | 'NoProviders' | 'TooManyConsumers' | 'Token' | 'Arithmetic' | 'Transactional';1875}18761877/** @name SpRuntimeModuleError */1878export interface SpRuntimeModuleError extends Struct {1879 readonly index: u8;1880 readonly error: U8aFixed;1881}18821883/** @name SpRuntimeMultiSignature */1884export interface SpRuntimeMultiSignature extends Enum {1885 readonly isEd25519: boolean;1886 readonly asEd25519: SpCoreEd25519Signature;1887 readonly isSr25519: boolean;1888 readonly asSr25519: SpCoreSr25519Signature;1889 readonly isEcdsa: boolean;1890 readonly asEcdsa: SpCoreEcdsaSignature;1891 readonly type: 'Ed25519' | 'Sr25519' | 'Ecdsa';1892}18931894/** @name SpRuntimeTokenError */1895export interface SpRuntimeTokenError extends Enum {1896 readonly isNoFunds: boolean;1897 readonly isWouldDie: boolean;1898 readonly isBelowMinimum: boolean;1899 readonly isCannotCreate: boolean;1900 readonly isUnknownAsset: boolean;1901 readonly isFrozen: boolean;1902 readonly isUnsupported: boolean;1903 readonly type: 'NoFunds' | 'WouldDie' | 'BelowMinimum' | 'CannotCreate' | 'UnknownAsset' | 'Frozen' | 'Unsupported';1904}19051906/** @name SpRuntimeTransactionalError */1907export interface SpRuntimeTransactionalError extends Enum {1908 readonly isLimitReached: boolean;1909 readonly isNoLayer: boolean;1910 readonly type: 'LimitReached' | 'NoLayer';1911}19121913/** @name SpTrieStorageProof */1914export interface SpTrieStorageProof extends Struct {1915 readonly trieNodes: BTreeSet<Bytes>;1916}19171918/** @name SpVersionRuntimeVersion */1919export interface SpVersionRuntimeVersion extends Struct {1920 readonly specName: Text;1921 readonly implName: Text;1922 readonly authoringVersion: u32;1923 readonly specVersion: u32;1924 readonly implVersion: u32;1925 readonly apis: Vec<ITuple<[U8aFixed, u32]>>;1926 readonly transactionVersion: u32;1927 readonly stateVersion: u8;1928}19291930/** @name UpDataStructsAccessMode */1931export interface UpDataStructsAccessMode extends Enum {1932 readonly isNormal: boolean;1933 readonly isAllowList: boolean;1934 readonly type: 'Normal' | 'AllowList';1935}19361937/** @name UpDataStructsCollection */1938export interface UpDataStructsCollection extends Struct {1939 readonly owner: AccountId32;1940 readonly mode: UpDataStructsCollectionMode;1941 readonly access: UpDataStructsAccessMode;1942 readonly name: Vec<u16>;1943 readonly description: Vec<u16>;1944 readonly tokenPrefix: Bytes;1945 readonly mintMode: bool;1946 readonly schemaVersion: UpDataStructsSchemaVersion;1947 readonly sponsorship: UpDataStructsSponsorshipState;1948 readonly limits: UpDataStructsCollectionLimits;1949}19501951/** @name UpDataStructsCollectionField */1952export interface UpDataStructsCollectionField extends Enum {1953 readonly isConstOnChainSchema: boolean;1954 readonly isOffchainSchema: boolean;1955 readonly type: 'ConstOnChainSchema' | 'OffchainSchema';1956}19571958/** @name UpDataStructsCollectionLimits */1959export interface UpDataStructsCollectionLimits extends Struct {1960 readonly accountTokenOwnershipLimit: Option<u32>;1961 readonly sponsoredDataSize: Option<u32>;1962 readonly sponsoredDataRateLimit: Option<UpDataStructsSponsoringRateLimit>;1963 readonly tokenLimit: Option<u32>;1964 readonly sponsorTransferTimeout: Option<u32>;1965 readonly sponsorApproveTimeout: Option<u32>;1966 readonly ownerCanTransfer: Option<bool>;1967 readonly ownerCanDestroy: Option<bool>;1968 readonly transfersEnabled: Option<bool>;1969 readonly nestingRule: Option<UpDataStructsNestingRule>;1970}19711972/** @name UpDataStructsCollectionMode */1973export interface UpDataStructsCollectionMode extends Enum {1974 readonly isNft: boolean;1975 readonly isFungible: boolean;1976 readonly asFungible: u8;1977 readonly isReFungible: boolean;1978 readonly type: 'Nft' | 'Fungible' | 'ReFungible';1979}19801981/** @name UpDataStructsCollectionStats */1982export interface UpDataStructsCollectionStats extends Struct {1983 readonly created: u32;1984 readonly destroyed: u32;1985 readonly alive: u32;1986}19871988/** @name UpDataStructsCreateCollectionData */1989export interface UpDataStructsCreateCollectionData extends Struct {1990 readonly mode: UpDataStructsCollectionMode;1991 readonly access: Option<UpDataStructsAccessMode>;1992 readonly name: Vec<u16>;1993 readonly description: Vec<u16>;1994 readonly tokenPrefix: Bytes;1995 readonly offchainSchema: Bytes;1996 readonly schemaVersion: Option<UpDataStructsSchemaVersion>;1997 readonly pendingSponsor: Option<AccountId32>;1998 readonly limits: Option<UpDataStructsCollectionLimits>;1999 readonly constOnChainSchema: Bytes;2000 readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;2001 readonly properties: Vec<UpDataStructsProperty>;2002}20032004/** @name UpDataStructsCreateFungibleData */2005export interface UpDataStructsCreateFungibleData extends Struct {2006 readonly value: u128;2007}20082009/** @name UpDataStructsCreateItemData */2010export interface UpDataStructsCreateItemData extends Enum {2011 readonly isNft: boolean;2012 readonly asNft: UpDataStructsCreateNftData;2013 readonly isFungible: boolean;2014 readonly asFungible: UpDataStructsCreateFungibleData;2015 readonly isReFungible: boolean;2016 readonly asReFungible: UpDataStructsCreateReFungibleData;2017 readonly type: 'Nft' | 'Fungible' | 'ReFungible';2018}20192020/** @name UpDataStructsCreateItemExData */2021export interface UpDataStructsCreateItemExData extends Enum {2022 readonly isNft: boolean;2023 readonly asNft: Vec<UpDataStructsCreateNftExData>;2024 readonly isFungible: boolean;2025 readonly asFungible: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr,u128>;2026 readonly isRefungibleMultipleItems: boolean;2027 readonly asRefungibleMultipleItems: Vec<UpDataStructsCreateRefungibleExData>;2028 readonly isRefungibleMultipleOwners: boolean;2029 readonly asRefungibleMultipleOwners: UpDataStructsCreateRefungibleExData;2030 readonly type: 'Nft' | 'Fungible' | 'RefungibleMultipleItems' | 'RefungibleMultipleOwners';2031}20322033/** @name UpDataStructsCreateNftData */2034export interface UpDataStructsCreateNftData extends Struct {2035 readonly constData: Bytes;2036 readonly properties: Vec<UpDataStructsProperty>;2037}20382039/** @name UpDataStructsCreateNftExData */2040export interface UpDataStructsCreateNftExData extends Struct {2041 readonly constData: Bytes;2042 readonly properties: Vec<UpDataStructsProperty>;2043 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;2044}20452046/** @name UpDataStructsCreateReFungibleData */2047export interface UpDataStructsCreateReFungibleData extends Struct {2048 readonly constData: Bytes;2049 readonly pieces: u128;2050}20512052/** @name UpDataStructsCreateRefungibleExData */2053export interface UpDataStructsCreateRefungibleExData extends Struct {2054 readonly constData: Bytes;2055 readonly users: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>;2056}20572058/** @name UpDataStructsNestingRule */2059export interface UpDataStructsNestingRule extends Enum {2060 readonly isDisabled: boolean;2061 readonly isOwner: boolean;2062 readonly isOwnerRestricted: boolean;2063 readonly asOwnerRestricted: BTreeSet<u32>;2064 readonly type: 'Disabled' | 'Owner' | 'OwnerRestricted';2065}20662067/** @name UpDataStructsProperties */2068export interface UpDataStructsProperties extends Struct {2069 readonly map: UpDataStructsPropertiesMapBoundedVec;2070 readonly consumedSpace: u32;2071 readonly spaceLimit: u32;2072}20732074/** @name UpDataStructsPropertiesMapBoundedVec */2075export interface UpDataStructsPropertiesMapBoundedVec extends BTreeMap<Bytes, Bytes> {}20762077/** @name UpDataStructsPropertiesMapPropertyPermission */2078export interface UpDataStructsPropertiesMapPropertyPermission extends BTreeMap<Bytes, UpDataStructsPropertyPermission> {}20792080/** @name UpDataStructsProperty */2081export interface UpDataStructsProperty extends Struct {2082 readonly key: Bytes;2083 readonly value: Bytes;2084}20852086/** @name UpDataStructsPropertyKeyPermission */2087export interface UpDataStructsPropertyKeyPermission extends Struct {2088 readonly key: Bytes;2089 readonly permission: UpDataStructsPropertyPermission;2090}20912092/** @name UpDataStructsPropertyPermission */2093export interface UpDataStructsPropertyPermission extends Struct {2094 readonly mutable: bool;2095 readonly collectionAdmin: bool;2096 readonly tokenOwner: bool;2097}20982099/** @name UpDataStructsRpcCollection */2100export interface UpDataStructsRpcCollection extends Struct {2101 readonly owner: AccountId32;2102 readonly mode: UpDataStructsCollectionMode;2103 readonly access: UpDataStructsAccessMode;2104 readonly name: Vec<u16>;2105 readonly description: Vec<u16>;2106 readonly tokenPrefix: Bytes;2107 readonly mintMode: bool;2108 readonly offchainSchema: Bytes;2109 readonly schemaVersion: UpDataStructsSchemaVersion;2110 readonly sponsorship: UpDataStructsSponsorshipState;2111 readonly limits: UpDataStructsCollectionLimits;2112 readonly constOnChainSchema: Bytes;2113 readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;2114 readonly properties: Vec<UpDataStructsProperty>;2115}21162117/** @name UpDataStructsSchemaVersion */2118export interface UpDataStructsSchemaVersion extends Enum {2119 readonly isImageURL: boolean;2120 readonly isUnique: boolean;2121 readonly type: 'ImageURL' | 'Unique';2122}21232124/** @name UpDataStructsSponsoringRateLimit */2125export interface UpDataStructsSponsoringRateLimit extends Enum {2126 readonly isSponsoringDisabled: boolean;2127 readonly isBlocks: boolean;2128 readonly asBlocks: u32;2129 readonly type: 'SponsoringDisabled' | 'Blocks';2130}21312132/** @name UpDataStructsSponsorshipState */2133export interface UpDataStructsSponsorshipState extends Enum {2134 readonly isDisabled: boolean;2135 readonly isUnconfirmed: boolean;2136 readonly asUnconfirmed: AccountId32;2137 readonly isConfirmed: boolean;2138 readonly asConfirmed: AccountId32;2139 readonly type: 'Disabled' | 'Unconfirmed' | 'Confirmed';2140}21412142/** @name UpDataStructsTokenData */2143export interface UpDataStructsTokenData extends Struct {2144 readonly constData: Bytes;2145 readonly properties: Vec<UpDataStructsProperty>;2146 readonly owner: Option<PalletEvmAccountBasicCrossAccountIdRepr>;2147}21482149/** @name XcmDoubleEncoded */2150export interface XcmDoubleEncoded extends Struct {2151 readonly encoded: Bytes;2152}21532154/** @name XcmV0Junction */2155export interface XcmV0Junction extends Enum {2156 readonly isParent: boolean;2157 readonly isParachain: boolean;2158 readonly asParachain: Compact<u32>;2159 readonly isAccountId32: boolean;2160 readonly asAccountId32: {2161 readonly network: XcmV0JunctionNetworkId;2162 readonly id: U8aFixed;2163 } & Struct;2164 readonly isAccountIndex64: boolean;2165 readonly asAccountIndex64: {2166 readonly network: XcmV0JunctionNetworkId;2167 readonly index: Compact<u64>;2168 } & Struct;2169 readonly isAccountKey20: boolean;2170 readonly asAccountKey20: {2171 readonly network: XcmV0JunctionNetworkId;2172 readonly key: U8aFixed;2173 } & Struct;2174 readonly isPalletInstance: boolean;2175 readonly asPalletInstance: u8;2176 readonly isGeneralIndex: boolean;2177 readonly asGeneralIndex: Compact<u128>;2178 readonly isGeneralKey: boolean;2179 readonly asGeneralKey: Bytes;2180 readonly isOnlyChild: boolean;2181 readonly isPlurality: boolean;2182 readonly asPlurality: {2183 readonly id: XcmV0JunctionBodyId;2184 readonly part: XcmV0JunctionBodyPart;2185 } & Struct;2186 readonly type: 'Parent' | 'Parachain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality';2187}21882189/** @name XcmV0JunctionBodyId */2190export interface XcmV0JunctionBodyId extends Enum {2191 readonly isUnit: boolean;2192 readonly isNamed: boolean;2193 readonly asNamed: Bytes;2194 readonly isIndex: boolean;2195 readonly asIndex: Compact<u32>;2196 readonly isExecutive: boolean;2197 readonly isTechnical: boolean;2198 readonly isLegislative: boolean;2199 readonly isJudicial: boolean;2200 readonly type: 'Unit' | 'Named' | 'Index' | 'Executive' | 'Technical' | 'Legislative' | 'Judicial';2201}22022203/** @name XcmV0JunctionBodyPart */2204export interface XcmV0JunctionBodyPart extends Enum {2205 readonly isVoice: boolean;2206 readonly isMembers: boolean;2207 readonly asMembers: {2208 readonly count: Compact<u32>;2209 } & Struct;2210 readonly isFraction: boolean;2211 readonly asFraction: {2212 readonly nom: Compact<u32>;2213 readonly denom: Compact<u32>;2214 } & Struct;2215 readonly isAtLeastProportion: boolean;2216 readonly asAtLeastProportion: {2217 readonly nom: Compact<u32>;2218 readonly denom: Compact<u32>;2219 } & Struct;2220 readonly isMoreThanProportion: boolean;2221 readonly asMoreThanProportion: {2222 readonly nom: Compact<u32>;2223 readonly denom: Compact<u32>;2224 } & Struct;2225 readonly type: 'Voice' | 'Members' | 'Fraction' | 'AtLeastProportion' | 'MoreThanProportion';2226}22272228/** @name XcmV0JunctionNetworkId */2229export interface XcmV0JunctionNetworkId extends Enum {2230 readonly isAny: boolean;2231 readonly isNamed: boolean;2232 readonly asNamed: Bytes;2233 readonly isPolkadot: boolean;2234 readonly isKusama: boolean;2235 readonly type: 'Any' | 'Named' | 'Polkadot' | 'Kusama';2236}22372238/** @name XcmV0MultiAsset */2239export interface XcmV0MultiAsset extends Enum {2240 readonly isNone: boolean;2241 readonly isAll: boolean;2242 readonly isAllFungible: boolean;2243 readonly isAllNonFungible: boolean;2244 readonly isAllAbstractFungible: boolean;2245 readonly asAllAbstractFungible: {2246 readonly id: Bytes;2247 } & Struct;2248 readonly isAllAbstractNonFungible: boolean;2249 readonly asAllAbstractNonFungible: {2250 readonly class: Bytes;2251 } & Struct;2252 readonly isAllConcreteFungible: boolean;2253 readonly asAllConcreteFungible: {2254 readonly id: XcmV0MultiLocation;2255 } & Struct;2256 readonly isAllConcreteNonFungible: boolean;2257 readonly asAllConcreteNonFungible: {2258 readonly class: XcmV0MultiLocation;2259 } & Struct;2260 readonly isAbstractFungible: boolean;2261 readonly asAbstractFungible: {2262 readonly id: Bytes;2263 readonly amount: Compact<u128>;2264 } & Struct;2265 readonly isAbstractNonFungible: boolean;2266 readonly asAbstractNonFungible: {2267 readonly class: Bytes;2268 readonly instance: XcmV1MultiassetAssetInstance;2269 } & Struct;2270 readonly isConcreteFungible: boolean;2271 readonly asConcreteFungible: {2272 readonly id: XcmV0MultiLocation;2273 readonly amount: Compact<u128>;2274 } & Struct;2275 readonly isConcreteNonFungible: boolean;2276 readonly asConcreteNonFungible: {2277 readonly class: XcmV0MultiLocation;2278 readonly instance: XcmV1MultiassetAssetInstance;2279 } & Struct;2280 readonly type: 'None' | 'All' | 'AllFungible' | 'AllNonFungible' | 'AllAbstractFungible' | 'AllAbstractNonFungible' | 'AllConcreteFungible' | 'AllConcreteNonFungible' | 'AbstractFungible' | 'AbstractNonFungible' | 'ConcreteFungible' | 'ConcreteNonFungible';2281}22822283/** @name XcmV0MultiLocation */2284export interface XcmV0MultiLocation extends Enum {2285 readonly isNull: boolean;2286 readonly isX1: boolean;2287 readonly asX1: XcmV0Junction;2288 readonly isX2: boolean;2289 readonly asX2: ITuple<[XcmV0Junction, XcmV0Junction]>;2290 readonly isX3: boolean;2291 readonly asX3: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction]>;2292 readonly isX4: boolean;2293 readonly asX4: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;2294 readonly isX5: boolean;2295 readonly asX5: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;2296 readonly isX6: boolean;2297 readonly asX6: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;2298 readonly isX7: boolean;2299 readonly asX7: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;2300 readonly isX8: boolean;2301 readonly asX8: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;2302 readonly type: 'Null' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8';2303}23042305/** @name XcmV0Order */2306export interface XcmV0Order extends Enum {2307 readonly isNull: boolean;2308 readonly isDepositAsset: boolean;2309 readonly asDepositAsset: {2310 readonly assets: Vec<XcmV0MultiAsset>;2311 readonly dest: XcmV0MultiLocation;2312 } & Struct;2313 readonly isDepositReserveAsset: boolean;2314 readonly asDepositReserveAsset: {2315 readonly assets: Vec<XcmV0MultiAsset>;2316 readonly dest: XcmV0MultiLocation;2317 readonly effects: Vec<XcmV0Order>;2318 } & Struct;2319 readonly isExchangeAsset: boolean;2320 readonly asExchangeAsset: {2321 readonly give: Vec<XcmV0MultiAsset>;2322 readonly receive: Vec<XcmV0MultiAsset>;2323 } & Struct;2324 readonly isInitiateReserveWithdraw: boolean;2325 readonly asInitiateReserveWithdraw: {2326 readonly assets: Vec<XcmV0MultiAsset>;2327 readonly reserve: XcmV0MultiLocation;2328 readonly effects: Vec<XcmV0Order>;2329 } & Struct;2330 readonly isInitiateTeleport: boolean;2331 readonly asInitiateTeleport: {2332 readonly assets: Vec<XcmV0MultiAsset>;2333 readonly dest: XcmV0MultiLocation;2334 readonly effects: Vec<XcmV0Order>;2335 } & Struct;2336 readonly isQueryHolding: boolean;2337 readonly asQueryHolding: {2338 readonly queryId: Compact<u64>;2339 readonly dest: XcmV0MultiLocation;2340 readonly assets: Vec<XcmV0MultiAsset>;2341 } & Struct;2342 readonly isBuyExecution: boolean;2343 readonly asBuyExecution: {2344 readonly fees: XcmV0MultiAsset;2345 readonly weight: u64;2346 readonly debt: u64;2347 readonly haltOnError: bool;2348 readonly xcm: Vec<XcmV0Xcm>;2349 } & Struct;2350 readonly type: 'Null' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution';2351}23522353/** @name XcmV0OriginKind */2354export interface XcmV0OriginKind extends Enum {2355 readonly isNative: boolean;2356 readonly isSovereignAccount: boolean;2357 readonly isSuperuser: boolean;2358 readonly isXcm: boolean;2359 readonly type: 'Native' | 'SovereignAccount' | 'Superuser' | 'Xcm';2360}23612362/** @name XcmV0Response */2363export interface XcmV0Response extends Enum {2364 readonly isAssets: boolean;2365 readonly asAssets: Vec<XcmV0MultiAsset>;2366 readonly type: 'Assets';2367}23682369/** @name XcmV0Xcm */2370export interface XcmV0Xcm extends Enum {2371 readonly isWithdrawAsset: boolean;2372 readonly asWithdrawAsset: {2373 readonly assets: Vec<XcmV0MultiAsset>;2374 readonly effects: Vec<XcmV0Order>;2375 } & Struct;2376 readonly isReserveAssetDeposit: boolean;2377 readonly asReserveAssetDeposit: {2378 readonly assets: Vec<XcmV0MultiAsset>;2379 readonly effects: Vec<XcmV0Order>;2380 } & Struct;2381 readonly isTeleportAsset: boolean;2382 readonly asTeleportAsset: {2383 readonly assets: Vec<XcmV0MultiAsset>;2384 readonly effects: Vec<XcmV0Order>;2385 } & Struct;2386 readonly isQueryResponse: boolean;2387 readonly asQueryResponse: {2388 readonly queryId: Compact<u64>;2389 readonly response: XcmV0Response;2390 } & Struct;2391 readonly isTransferAsset: boolean;2392 readonly asTransferAsset: {2393 readonly assets: Vec<XcmV0MultiAsset>;2394 readonly dest: XcmV0MultiLocation;2395 } & Struct;2396 readonly isTransferReserveAsset: boolean;2397 readonly asTransferReserveAsset: {2398 readonly assets: Vec<XcmV0MultiAsset>;2399 readonly dest: XcmV0MultiLocation;2400 readonly effects: Vec<XcmV0Order>;2401 } & Struct;2402 readonly isTransact: boolean;2403 readonly asTransact: {2404 readonly originType: XcmV0OriginKind;2405 readonly requireWeightAtMost: u64;2406 readonly call: XcmDoubleEncoded;2407 } & Struct;2408 readonly isHrmpNewChannelOpenRequest: boolean;2409 readonly asHrmpNewChannelOpenRequest: {2410 readonly sender: Compact<u32>;2411 readonly maxMessageSize: Compact<u32>;2412 readonly maxCapacity: Compact<u32>;2413 } & Struct;2414 readonly isHrmpChannelAccepted: boolean;2415 readonly asHrmpChannelAccepted: {2416 readonly recipient: Compact<u32>;2417 } & Struct;2418 readonly isHrmpChannelClosing: boolean;2419 readonly asHrmpChannelClosing: {2420 readonly initiator: Compact<u32>;2421 readonly sender: Compact<u32>;2422 readonly recipient: Compact<u32>;2423 } & Struct;2424 readonly isRelayedFrom: boolean;2425 readonly asRelayedFrom: {2426 readonly who: XcmV0MultiLocation;2427 readonly message: XcmV0Xcm;2428 } & Struct;2429 readonly type: 'WithdrawAsset' | 'ReserveAssetDeposit' | 'TeleportAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'RelayedFrom';2430}24312432/** @name XcmV1Junction */2433export interface XcmV1Junction extends Enum {2434 readonly isParachain: boolean;2435 readonly asParachain: Compact<u32>;2436 readonly isAccountId32: boolean;2437 readonly asAccountId32: {2438 readonly network: XcmV0JunctionNetworkId;2439 readonly id: U8aFixed;2440 } & Struct;2441 readonly isAccountIndex64: boolean;2442 readonly asAccountIndex64: {2443 readonly network: XcmV0JunctionNetworkId;2444 readonly index: Compact<u64>;2445 } & Struct;2446 readonly isAccountKey20: boolean;2447 readonly asAccountKey20: {2448 readonly network: XcmV0JunctionNetworkId;2449 readonly key: U8aFixed;2450 } & Struct;2451 readonly isPalletInstance: boolean;2452 readonly asPalletInstance: u8;2453 readonly isGeneralIndex: boolean;2454 readonly asGeneralIndex: Compact<u128>;2455 readonly isGeneralKey: boolean;2456 readonly asGeneralKey: Bytes;2457 readonly isOnlyChild: boolean;2458 readonly isPlurality: boolean;2459 readonly asPlurality: {2460 readonly id: XcmV0JunctionBodyId;2461 readonly part: XcmV0JunctionBodyPart;2462 } & Struct;2463 readonly type: 'Parachain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality';2464}24652466/** @name XcmV1MultiAsset */2467export interface XcmV1MultiAsset extends Struct {2468 readonly id: XcmV1MultiassetAssetId;2469 readonly fun: XcmV1MultiassetFungibility;2470}24712472/** @name XcmV1MultiassetAssetId */2473export interface XcmV1MultiassetAssetId extends Enum {2474 readonly isConcrete: boolean;2475 readonly asConcrete: XcmV1MultiLocation;2476 readonly isAbstract: boolean;2477 readonly asAbstract: Bytes;2478 readonly type: 'Concrete' | 'Abstract';2479}24802481/** @name XcmV1MultiassetAssetInstance */2482export interface XcmV1MultiassetAssetInstance extends Enum {2483 readonly isUndefined: boolean;2484 readonly isIndex: boolean;2485 readonly asIndex: Compact<u128>;2486 readonly isArray4: boolean;2487 readonly asArray4: U8aFixed;2488 readonly isArray8: boolean;2489 readonly asArray8: U8aFixed;2490 readonly isArray16: boolean;2491 readonly asArray16: U8aFixed;2492 readonly isArray32: boolean;2493 readonly asArray32: U8aFixed;2494 readonly isBlob: boolean;2495 readonly asBlob: Bytes;2496 readonly type: 'Undefined' | 'Index' | 'Array4' | 'Array8' | 'Array16' | 'Array32' | 'Blob';2497}24982499/** @name XcmV1MultiassetFungibility */2500export interface XcmV1MultiassetFungibility extends Enum {2501 readonly isFungible: boolean;2502 readonly asFungible: Compact<u128>;2503 readonly isNonFungible: boolean;2504 readonly asNonFungible: XcmV1MultiassetAssetInstance;2505 readonly type: 'Fungible' | 'NonFungible';2506}25072508/** @name XcmV1MultiassetMultiAssetFilter */2509export interface XcmV1MultiassetMultiAssetFilter extends Enum {2510 readonly isDefinite: boolean;2511 readonly asDefinite: XcmV1MultiassetMultiAssets;2512 readonly isWild: boolean;2513 readonly asWild: XcmV1MultiassetWildMultiAsset;2514 readonly type: 'Definite' | 'Wild';2515}25162517/** @name XcmV1MultiassetMultiAssets */2518export interface XcmV1MultiassetMultiAssets extends Vec<XcmV1MultiAsset> {}25192520/** @name XcmV1MultiassetWildFungibility */2521export interface XcmV1MultiassetWildFungibility extends Enum {2522 readonly isFungible: boolean;2523 readonly isNonFungible: boolean;2524 readonly type: 'Fungible' | 'NonFungible';2525}25262527/** @name XcmV1MultiassetWildMultiAsset */2528export interface XcmV1MultiassetWildMultiAsset extends Enum {2529 readonly isAll: boolean;2530 readonly isAllOf: boolean;2531 readonly asAllOf: {2532 readonly id: XcmV1MultiassetAssetId;2533 readonly fun: XcmV1MultiassetWildFungibility;2534 } & Struct;2535 readonly type: 'All' | 'AllOf';2536}25372538/** @name XcmV1MultiLocation */2539export interface XcmV1MultiLocation extends Struct {2540 readonly parents: u8;2541 readonly interior: XcmV1MultilocationJunctions;2542}25432544/** @name XcmV1MultilocationJunctions */2545export interface XcmV1MultilocationJunctions extends Enum {2546 readonly isHere: boolean;2547 readonly isX1: boolean;2548 readonly asX1: XcmV1Junction;2549 readonly isX2: boolean;2550 readonly asX2: ITuple<[XcmV1Junction, XcmV1Junction]>;2551 readonly isX3: boolean;2552 readonly asX3: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction]>;2553 readonly isX4: boolean;2554 readonly asX4: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;2555 readonly isX5: boolean;2556 readonly asX5: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;2557 readonly isX6: boolean;2558 readonly asX6: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;2559 readonly isX7: boolean;2560 readonly asX7: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;2561 readonly isX8: boolean;2562 readonly asX8: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;2563 readonly type: 'Here' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8';2564}25652566/** @name XcmV1Order */2567export interface XcmV1Order extends Enum {2568 readonly isNoop: boolean;2569 readonly isDepositAsset: boolean;2570 readonly asDepositAsset: {2571 readonly assets: XcmV1MultiassetMultiAssetFilter;2572 readonly maxAssets: u32;2573 readonly beneficiary: XcmV1MultiLocation;2574 } & Struct;2575 readonly isDepositReserveAsset: boolean;2576 readonly asDepositReserveAsset: {2577 readonly assets: XcmV1MultiassetMultiAssetFilter;2578 readonly maxAssets: u32;2579 readonly dest: XcmV1MultiLocation;2580 readonly effects: Vec<XcmV1Order>;2581 } & Struct;2582 readonly isExchangeAsset: boolean;2583 readonly asExchangeAsset: {2584 readonly give: XcmV1MultiassetMultiAssetFilter;2585 readonly receive: XcmV1MultiassetMultiAssets;2586 } & Struct;2587 readonly isInitiateReserveWithdraw: boolean;2588 readonly asInitiateReserveWithdraw: {2589 readonly assets: XcmV1MultiassetMultiAssetFilter;2590 readonly reserve: XcmV1MultiLocation;2591 readonly effects: Vec<XcmV1Order>;2592 } & Struct;2593 readonly isInitiateTeleport: boolean;2594 readonly asInitiateTeleport: {2595 readonly assets: XcmV1MultiassetMultiAssetFilter;2596 readonly dest: XcmV1MultiLocation;2597 readonly effects: Vec<XcmV1Order>;2598 } & Struct;2599 readonly isQueryHolding: boolean;2600 readonly asQueryHolding: {2601 readonly queryId: Compact<u64>;2602 readonly dest: XcmV1MultiLocation;2603 readonly assets: XcmV1MultiassetMultiAssetFilter;2604 } & Struct;2605 readonly isBuyExecution: boolean;2606 readonly asBuyExecution: {2607 readonly fees: XcmV1MultiAsset;2608 readonly weight: u64;2609 readonly debt: u64;2610 readonly haltOnError: bool;2611 readonly instructions: Vec<XcmV1Xcm>;2612 } & Struct;2613 readonly type: 'Noop' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution';2614}26152616/** @name XcmV1Response */2617export interface XcmV1Response extends Enum {2618 readonly isAssets: boolean;2619 readonly asAssets: XcmV1MultiassetMultiAssets;2620 readonly isVersion: boolean;2621 readonly asVersion: u32;2622 readonly type: 'Assets' | 'Version';2623}26242625/** @name XcmV1Xcm */2626export interface XcmV1Xcm extends Enum {2627 readonly isWithdrawAsset: boolean;2628 readonly asWithdrawAsset: {2629 readonly assets: XcmV1MultiassetMultiAssets;2630 readonly effects: Vec<XcmV1Order>;2631 } & Struct;2632 readonly isReserveAssetDeposited: boolean;2633 readonly asReserveAssetDeposited: {2634 readonly assets: XcmV1MultiassetMultiAssets;2635 readonly effects: Vec<XcmV1Order>;2636 } & Struct;2637 readonly isReceiveTeleportedAsset: boolean;2638 readonly asReceiveTeleportedAsset: {2639 readonly assets: XcmV1MultiassetMultiAssets;2640 readonly effects: Vec<XcmV1Order>;2641 } & Struct;2642 readonly isQueryResponse: boolean;2643 readonly asQueryResponse: {2644 readonly queryId: Compact<u64>;2645 readonly response: XcmV1Response;2646 } & Struct;2647 readonly isTransferAsset: boolean;2648 readonly asTransferAsset: {2649 readonly assets: XcmV1MultiassetMultiAssets;2650 readonly beneficiary: XcmV1MultiLocation;2651 } & Struct;2652 readonly isTransferReserveAsset: boolean;2653 readonly asTransferReserveAsset: {2654 readonly assets: XcmV1MultiassetMultiAssets;2655 readonly dest: XcmV1MultiLocation;2656 readonly effects: Vec<XcmV1Order>;2657 } & Struct;2658 readonly isTransact: boolean;2659 readonly asTransact: {2660 readonly originType: XcmV0OriginKind;2661 readonly requireWeightAtMost: u64;2662 readonly call: XcmDoubleEncoded;2663 } & Struct;2664 readonly isHrmpNewChannelOpenRequest: boolean;2665 readonly asHrmpNewChannelOpenRequest: {2666 readonly sender: Compact<u32>;2667 readonly maxMessageSize: Compact<u32>;2668 readonly maxCapacity: Compact<u32>;2669 } & Struct;2670 readonly isHrmpChannelAccepted: boolean;2671 readonly asHrmpChannelAccepted: {2672 readonly recipient: Compact<u32>;2673 } & Struct;2674 readonly isHrmpChannelClosing: boolean;2675 readonly asHrmpChannelClosing: {2676 readonly initiator: Compact<u32>;2677 readonly sender: Compact<u32>;2678 readonly recipient: Compact<u32>;2679 } & Struct;2680 readonly isRelayedFrom: boolean;2681 readonly asRelayedFrom: {2682 readonly who: XcmV1MultilocationJunctions;2683 readonly message: XcmV1Xcm;2684 } & Struct;2685 readonly isSubscribeVersion: boolean;2686 readonly asSubscribeVersion: {2687 readonly queryId: Compact<u64>;2688 readonly maxResponseWeight: Compact<u64>;2689 } & Struct;2690 readonly isUnsubscribeVersion: boolean;2691 readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'RelayedFrom' | 'SubscribeVersion' | 'UnsubscribeVersion';2692}26932694/** @name XcmV2Instruction */2695export interface XcmV2Instruction extends Enum {2696 readonly isWithdrawAsset: boolean;2697 readonly asWithdrawAsset: XcmV1MultiassetMultiAssets;2698 readonly isReserveAssetDeposited: boolean;2699 readonly asReserveAssetDeposited: XcmV1MultiassetMultiAssets;2700 readonly isReceiveTeleportedAsset: boolean;2701 readonly asReceiveTeleportedAsset: XcmV1MultiassetMultiAssets;2702 readonly isQueryResponse: boolean;2703 readonly asQueryResponse: {2704 readonly queryId: Compact<u64>;2705 readonly response: XcmV2Response;2706 readonly maxWeight: Compact<u64>;2707 } & Struct;2708 readonly isTransferAsset: boolean;2709 readonly asTransferAsset: {2710 readonly assets: XcmV1MultiassetMultiAssets;2711 readonly beneficiary: XcmV1MultiLocation;2712 } & Struct;2713 readonly isTransferReserveAsset: boolean;2714 readonly asTransferReserveAsset: {2715 readonly assets: XcmV1MultiassetMultiAssets;2716 readonly dest: XcmV1MultiLocation;2717 readonly xcm: XcmV2Xcm;2718 } & Struct;2719 readonly isTransact: boolean;2720 readonly asTransact: {2721 readonly originType: XcmV0OriginKind;2722 readonly requireWeightAtMost: Compact<u64>;2723 readonly call: XcmDoubleEncoded;2724 } & Struct;2725 readonly isHrmpNewChannelOpenRequest: boolean;2726 readonly asHrmpNewChannelOpenRequest: {2727 readonly sender: Compact<u32>;2728 readonly maxMessageSize: Compact<u32>;2729 readonly maxCapacity: Compact<u32>;2730 } & Struct;2731 readonly isHrmpChannelAccepted: boolean;2732 readonly asHrmpChannelAccepted: {2733 readonly recipient: Compact<u32>;2734 } & Struct;2735 readonly isHrmpChannelClosing: boolean;2736 readonly asHrmpChannelClosing: {2737 readonly initiator: Compact<u32>;2738 readonly sender: Compact<u32>;2739 readonly recipient: Compact<u32>;2740 } & Struct;2741 readonly isClearOrigin: boolean;2742 readonly isDescendOrigin: boolean;2743 readonly asDescendOrigin: XcmV1MultilocationJunctions;2744 readonly isReportError: boolean;2745 readonly asReportError: {2746 readonly queryId: Compact<u64>;2747 readonly dest: XcmV1MultiLocation;2748 readonly maxResponseWeight: Compact<u64>;2749 } & Struct;2750 readonly isDepositAsset: boolean;2751 readonly asDepositAsset: {2752 readonly assets: XcmV1MultiassetMultiAssetFilter;2753 readonly maxAssets: Compact<u32>;2754 readonly beneficiary: XcmV1MultiLocation;2755 } & Struct;2756 readonly isDepositReserveAsset: boolean;2757 readonly asDepositReserveAsset: {2758 readonly assets: XcmV1MultiassetMultiAssetFilter;2759 readonly maxAssets: Compact<u32>;2760 readonly dest: XcmV1MultiLocation;2761 readonly xcm: XcmV2Xcm;2762 } & Struct;2763 readonly isExchangeAsset: boolean;2764 readonly asExchangeAsset: {2765 readonly give: XcmV1MultiassetMultiAssetFilter;2766 readonly receive: XcmV1MultiassetMultiAssets;2767 } & Struct;2768 readonly isInitiateReserveWithdraw: boolean;2769 readonly asInitiateReserveWithdraw: {2770 readonly assets: XcmV1MultiassetMultiAssetFilter;2771 readonly reserve: XcmV1MultiLocation;2772 readonly xcm: XcmV2Xcm;2773 } & Struct;2774 readonly isInitiateTeleport: boolean;2775 readonly asInitiateTeleport: {2776 readonly assets: XcmV1MultiassetMultiAssetFilter;2777 readonly dest: XcmV1MultiLocation;2778 readonly xcm: XcmV2Xcm;2779 } & Struct;2780 readonly isQueryHolding: boolean;2781 readonly asQueryHolding: {2782 readonly queryId: Compact<u64>;2783 readonly dest: XcmV1MultiLocation;2784 readonly assets: XcmV1MultiassetMultiAssetFilter;2785 readonly maxResponseWeight: Compact<u64>;2786 } & Struct;2787 readonly isBuyExecution: boolean;2788 readonly asBuyExecution: {2789 readonly fees: XcmV1MultiAsset;2790 readonly weightLimit: XcmV2WeightLimit;2791 } & Struct;2792 readonly isRefundSurplus: boolean;2793 readonly isSetErrorHandler: boolean;2794 readonly asSetErrorHandler: XcmV2Xcm;2795 readonly isSetAppendix: boolean;2796 readonly asSetAppendix: XcmV2Xcm;2797 readonly isClearError: boolean;2798 readonly isClaimAsset: boolean;2799 readonly asClaimAsset: {2800 readonly assets: XcmV1MultiassetMultiAssets;2801 readonly ticket: XcmV1MultiLocation;2802 } & Struct;2803 readonly isTrap: boolean;2804 readonly asTrap: Compact<u64>;2805 readonly isSubscribeVersion: boolean;2806 readonly asSubscribeVersion: {2807 readonly queryId: Compact<u64>;2808 readonly maxResponseWeight: Compact<u64>;2809 } & Struct;2810 readonly isUnsubscribeVersion: boolean;2811 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';2812}28132814/** @name XcmV2Response */2815export interface XcmV2Response extends Enum {2816 readonly isNull: boolean;2817 readonly isAssets: boolean;2818 readonly asAssets: XcmV1MultiassetMultiAssets;2819 readonly isExecutionResult: boolean;2820 readonly asExecutionResult: Option<ITuple<[u32, XcmV2TraitsError]>>;2821 readonly isVersion: boolean;2822 readonly asVersion: u32;2823 readonly type: 'Null' | 'Assets' | 'ExecutionResult' | 'Version';2824}28252826/** @name XcmV2TraitsError */2827export interface XcmV2TraitsError extends Enum {2828 readonly isOverflow: boolean;2829 readonly isUnimplemented: boolean;2830 readonly isUntrustedReserveLocation: boolean;2831 readonly isUntrustedTeleportLocation: boolean;2832 readonly isMultiLocationFull: boolean;2833 readonly isMultiLocationNotInvertible: boolean;2834 readonly isBadOrigin: boolean;2835 readonly isInvalidLocation: boolean;2836 readonly isAssetNotFound: boolean;2837 readonly isFailedToTransactAsset: boolean;2838 readonly isNotWithdrawable: boolean;2839 readonly isLocationCannotHold: boolean;2840 readonly isExceedsMaxMessageSize: boolean;2841 readonly isDestinationUnsupported: boolean;2842 readonly isTransport: boolean;2843 readonly isUnroutable: boolean;2844 readonly isUnknownClaim: boolean;2845 readonly isFailedToDecode: boolean;2846 readonly isMaxWeightInvalid: boolean;2847 readonly isNotHoldingFees: boolean;2848 readonly isTooExpensive: boolean;2849 readonly isTrap: boolean;2850 readonly asTrap: u64;2851 readonly isUnhandledXcmVersion: boolean;2852 readonly isWeightLimitReached: boolean;2853 readonly asWeightLimitReached: u64;2854 readonly isBarrier: boolean;2855 readonly isWeightNotComputable: boolean;2856 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';2857}28582859/** @name XcmV2TraitsOutcome */2860export interface XcmV2TraitsOutcome extends Enum {2861 readonly isComplete: boolean;2862 readonly asComplete: u64;2863 readonly isIncomplete: boolean;2864 readonly asIncomplete: ITuple<[u64, XcmV2TraitsError]>;2865 readonly isError: boolean;2866 readonly asError: XcmV2TraitsError;2867 readonly type: 'Complete' | 'Incomplete' | 'Error';2868}28692870/** @name XcmV2WeightLimit */2871export interface XcmV2WeightLimit extends Enum {2872 readonly isUnlimited: boolean;2873 readonly isLimited: boolean;2874 readonly asLimited: Compact<u64>;2875 readonly type: 'Unlimited' | 'Limited';2876}28772878/** @name XcmV2Xcm */2879export interface XcmV2Xcm extends Vec<XcmV2Instruction> {}28802881/** @name XcmVersionedMultiAssets */2882export interface XcmVersionedMultiAssets extends Enum {2883 readonly isV0: boolean;2884 readonly asV0: Vec<XcmV0MultiAsset>;2885 readonly isV1: boolean;2886 readonly asV1: XcmV1MultiassetMultiAssets;2887 readonly type: 'V0' | 'V1';2888}28892890/** @name XcmVersionedMultiLocation */2891export interface XcmVersionedMultiLocation extends Enum {2892 readonly isV0: boolean;2893 readonly asV0: XcmV0MultiLocation;2894 readonly isV1: boolean;2895 readonly asV1: XcmV1MultiLocation;2896 readonly type: 'V0' | 'V1';2897}28982899/** @name XcmVersionedXcm */2900export interface XcmVersionedXcm extends Enum {2901 readonly isV0: boolean;2902 readonly asV0: XcmV0Xcm;2903 readonly isV1: boolean;2904 readonly asV1: XcmV1Xcm;2905 readonly isV2: boolean;2906 readonly asV2: XcmV2Xcm;2907 readonly type: 'V0' | 'V1' | 'V2';2908}29092910export type PHANTOM_UNIQUE = 'unique';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);
}