difftreelog
feat(refungible-pallet) ERC-721 EVM API
in: master
12 files changed
Makefilediffbeforeafterboth--- a/Makefile
+++ b/Makefile
@@ -15,8 +15,9 @@
NONFUNGIBLE_EVM_STUBS=./pallets/nonfungible/src/stubs
NONFUNGIBLE_EVM_ABI=./tests/src/eth/nonFungibleAbi.json
-RENFUNGIBLE_EVM_ABI=./tests/src/eth/reFungibleAbi.json
-RENFUNGIBLE_TOKEN_EVM_ABI=./tests/src/eth/reFungibleTokenAbi.json
+REFUNGIBLE_EVM_STUBS=./pallets/refungible/src/stubs
+REFUNGIBLE_EVM_ABI=./tests/src/eth/reFungibleAbi.json
+REFUNGIBLE_TOKEN_EVM_ABI=./tests/src/eth/reFungibleTokenAbi.json
CONTRACT_HELPERS_STUBS=./pallets/evm-contract-helpers/src/stubs/
CONTRACT_HELPERS_ABI=./tests/src/eth/util/contractHelpersAbi.json
@@ -36,6 +37,10 @@
UniqueNFT.sol:
PACKAGE=pallet-nonfungible NAME=erc::gen_iface OUTPUT=$(TESTS_API)/$@ ./.maintain/scripts/generate_sol.sh
PACKAGE=pallet-nonfungible NAME=erc::gen_impl OUTPUT=$(NONFUNGIBLE_EVM_STUBS)/$@ ./.maintain/scripts/generate_sol.sh
+
+UniqueRefungible.sol:
+ PACKAGE=pallet-refungible NAME=erc::gen_iface OUTPUT=$(TESTS_API)/$@ ./.maintain/scripts/generate_sol.sh
+ PACKAGE=pallet-refungible NAME=erc::gen_impl OUTPUT=$(REFUNGIBLE_EVM_STUBS)/$@ ./.maintain/scripts/generate_sol.sh
UniqueRefungible.sol:
PACKAGE=pallet-refungible NAME=erc::gen_iface OUTPUT=$(TESTS_API)/$@ ./.maintain/scripts/generate_sol.sh
@@ -61,9 +66,13 @@
INPUT=$(NONFUNGIBLE_EVM_STUBS)/$< OUTPUT=$(NONFUNGIBLE_EVM_STUBS)/UniqueNFT.raw ./.maintain/scripts/compile_stub.sh
INPUT=$(NONFUNGIBLE_EVM_STUBS)/$< OUTPUT=$(NONFUNGIBLE_EVM_ABI) ./.maintain/scripts/generate_abi.sh
+UniqueRefungible: UniqueRefungible.sol
+ INPUT=$(REFUNGIBLE_EVM_STUBS)/$< OUTPUT=$(REFUNGIBLE_EVM_STUBS)/UniqueRefungible.raw ./.maintain/scripts/compile_stub.sh
+ INPUT=$(REFUNGIBLE_EVM_STUBS)/$< OUTPUT=$(REFUNGIBLE_EVM_ABI) ./.maintain/scripts/generate_abi.sh
+
UniqueRefungibleToken: UniqueRefungibleToken.sol
INPUT=$(REFUNGIBLE_EVM_STUBS)/$< OUTPUT=$(REFUNGIBLE_EVM_STUBS)/UniqueRefungibleToken.raw ./.maintain/scripts/compile_stub.sh
- INPUT=$(REFUNGIBLE_EVM_STUBS)/$< OUTPUT=$(RENFUNGIBLE_TOKEN_EVM_ABI) ./.maintain/scripts/generate_abi.sh
+ INPUT=$(REFUNGIBLE_EVM_STUBS)/$< OUTPUT=$(REFUNGIBLE_TOKEN_EVM_ABI) ./.maintain/scripts/generate_abi.sh
UniqueRefungible: UniqueRefungible.sol
INPUT=$(REFUNGIBLE_EVM_STUBS)/$< OUTPUT=$(REFUNGIBLE_EVM_STUBS)/UniqueRefungible.raw ./.maintain/scripts/compile_stub.sh
pallets/refungible/src/erc.rsdiffbeforeafterboth--- a/pallets/refungible/src/erc.rs
+++ b/pallets/refungible/src/erc.rs
@@ -15,18 +15,607 @@
// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
extern crate alloc;
-use evm_coder::{generate_stubgen, solidity_interface, types::*};
-use pallet_common::{CollectionHandle, erc::CollectionCall, erc::CommonEvmHandler};
+use alloc::string::ToString;
+use core::{
+ char::{REPLACEMENT_CHARACTER, decode_utf16},
+ convert::TryInto,
+};
+use evm_coder::{ToLog, execution::*, generate_stubgen, solidity, solidity_interface, types::*, weight};
+use frame_support::{BoundedBTreeMap, BoundedVec};
+use pallet_common::{
+ CollectionHandle, CollectionPropertyPermissions,
+ erc::{
+ CommonEvmHandler, CollectionCall,
+ static_property::{key, value as property_value},
+ },
+};
+use pallet_evm::{account::CrossAccountId, PrecompileHandle};
+use pallet_evm_coder_substrate::{call, dispatch_to_evm};
+use pallet_structure::{SelfWeightOf as StructureWeight, weights::WeightInfo as _};
+use sp_core::H160;
+use sp_std::{collections::btree_map::BTreeMap, vec::Vec, vec};
+use up_data_structs::{
+ CollectionId, CollectionPropertiesVec, Property, PropertyKey, PropertyKeyPermission,
+ PropertyPermission, TokenId,
+};
+
+use crate::{
+ AccountBalance, Config, CreateItemData, Pallet, RefungibleHandle, SelfWeightOf,
+ TokenProperties, TokensMinted, weights::WeightInfo,
+};
-use pallet_evm::PrecompileHandle;
-use pallet_evm_coder_substrate::call;
+#[solidity_interface(name = "TokenProperties")]
+impl<T: Config> RefungibleHandle<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_token_property_permissions(
+ self,
+ &caller,
+ vec![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>)
+ }
-use crate::{Config, RefungibleHandle};
+ 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")?;
+ let nesting_budget = self
+ .recorder
+ .weight_calls_budget(<StructureWeight<T>>::find_parent());
+
+ <Pallet<T>>::set_token_property(
+ self,
+ &caller,
+ TokenId(token_id),
+ Property { key, value },
+ &nesting_budget,
+ )
+ .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")?;
+
+ let nesting_budget = self
+ .recorder
+ .weight_calls_budget(<StructureWeight<T>>::find_parent());
+
+ <Pallet<T>>::delete_token_property(self, &caller, TokenId(token_id), key, &nesting_budget)
+ .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())
+ }
+}
+
+#[derive(ToLog)]
+pub enum ERC721Events {
+ Transfer {
+ #[indexed]
+ from: address,
+ #[indexed]
+ to: address,
+ #[indexed]
+ token_id: uint256,
+ },
+ /// @dev Not supported
+ Approval {
+ #[indexed]
+ owner: address,
+ #[indexed]
+ approved: address,
+ #[indexed]
+ token_id: uint256,
+ },
+ /// @dev Not supported
+ #[allow(dead_code)]
+ ApprovalForAll {
+ #[indexed]
+ owner: address,
+ #[indexed]
+ operator: address,
+ approved: bool,
+ },
+}
+
+#[derive(ToLog)]
+pub enum ERC721MintableEvents {
+ /// @dev Not supported
+ #[allow(dead_code)]
+ MintingFinished {},
+}
+
+#[solidity_interface(name = "ERC721Metadata")]
+impl<T: Config> RefungibleHandle<T> {
+ fn name(&self) -> Result<string> {
+ Ok(decode_utf16(self.name.iter().copied())
+ .map(|r| r.unwrap_or(REPLACEMENT_CHARACTER))
+ .collect::<string>())
+ }
+
+ fn symbol(&self) -> Result<string> {
+ Ok(string::from_utf8_lossy(&self.token_prefix).into())
+ }
+
+ /// @notice A distinct Uniform Resource Identifier (URI) for a given asset.
+ ///
+ /// @dev If the token has a `url` property and it is not empty, it is returned.
+ /// Else If the collection does not have a property with key `schemaName` or its value is not equal to `ERC721Metadata`, it return an error `tokenURI not set`.
+ /// If the collection property `baseURI` is empty or absent, return "" (empty string)
+ /// otherwise, if token property `suffix` present and is non-empty, return concatenation of baseURI and suffix
+ /// otherwise, return concatenation of `baseURI` and stringified token id (decimal stringifying, without paddings).
+ ///
+ /// @return token's const_metadata
+ #[solidity(rename_selector = "tokenURI")]
+ fn token_uri(&self, token_id: uint256) -> Result<string> {
+ let token_id_u32: u32 = token_id.try_into().map_err(|_| "token id overflow")?;
+
+ if let Ok(url) = get_token_property(self, token_id_u32, &key::url()) {
+ if !url.is_empty() {
+ return Ok(url);
+ }
+ } else if !is_erc721_metadata_compatible::<T>(self.id) {
+ return Err("tokenURI not set".into());
+ }
+
+ if let Some(base_uri) =
+ pallet_common::Pallet::<T>::get_collection_property(self.id, &key::base_uri())
+ {
+ if !base_uri.is_empty() {
+ let base_uri = string::from_utf8(base_uri.into_inner()).map_err(|e| {
+ Error::Revert(alloc::format!(
+ "Can not convert value \"baseURI\" to string with error \"{}\"",
+ e
+ ))
+ })?;
+ if let Ok(suffix) = get_token_property(self, token_id_u32, &key::suffix()) {
+ if !suffix.is_empty() {
+ return Ok(base_uri + suffix.as_str());
+ }
+ }
+
+ return Ok(base_uri + token_id.to_string().as_str());
+ }
+ }
+
+ Ok("".into())
+ }
+}
+
+#[solidity_interface(name = "ERC721Enumerable")]
+impl<T: Config> RefungibleHandle<T> {
+ fn token_by_index(&self, index: uint256) -> Result<uint256> {
+ Ok(index)
+ }
+
+ /// Not implemented
+ fn token_of_owner_by_index(&self, _owner: address, _index: uint256) -> Result<uint256> {
+ // TODO: Not implemetable
+ Err("not implemented".into())
+ }
+
+ fn total_supply(&self) -> Result<uint256> {
+ self.consume_store_reads(1)?;
+ Ok(<Pallet<T>>::total_supply(self).into())
+ }
+}
+
+#[solidity_interface(name = "ERC721", events(ERC721Events))]
+impl<T: Config> RefungibleHandle<T> {
+ fn balance_of(&self, owner: address) -> Result<uint256> {
+ self.consume_store_reads(1)?;
+ let owner = T::CrossAccountId::from_eth(owner);
+ let balance = <AccountBalance<T>>::get((self.id, owner));
+ Ok(balance.into())
+ }
+
+ fn owner_of(&self, token_id: uint256) -> Result<address> {
+ self.consume_store_reads(2)?;
+ let token = token_id.try_into()?;
+ let owner = <Pallet<T>>::token_owner(self.id, token);
+ Ok(owner
+ .map(|address| *address.as_eth())
+ .unwrap_or_else(|| H160::default()))
+ }
+
+ /// @dev Not implemented
+ fn safe_transfer_from_with_data(
+ &mut self,
+ _from: address,
+ _to: address,
+ _token_id: uint256,
+ _data: bytes,
+ _value: value,
+ ) -> Result<void> {
+ // TODO: Not implemetable
+ Err("not implemented".into())
+ }
+
+ /// @dev Not implemented
+ fn safe_transfer_from(
+ &mut self,
+ _from: address,
+ _to: address,
+ _token_id: uint256,
+ _value: value,
+ ) -> Result<void> {
+ // TODO: Not implemetable
+ Err("not implemented".into())
+ }
+
+ /// @dev Not implemented
+ fn transfer_from(
+ &mut self,
+ _caller: caller,
+ _from: address,
+ _to: address,
+ _token_id: uint256,
+ _value: value,
+ ) -> Result<void> {
+ Err("not implemented".into())
+ }
+
+ /// @dev Not implemented
+ fn approve(
+ &mut self,
+ _caller: caller,
+ _approved: address,
+ _token_id: uint256,
+ _value: value,
+ ) -> Result<void> {
+ Err("not implemented".into())
+ }
+
+ /// @dev Not implemented
+ fn set_approval_for_all(
+ &mut self,
+ _caller: caller,
+ _operator: address,
+ _approved: bool,
+ ) -> Result<void> {
+ // TODO: Not implemetable
+ Err("not implemented".into())
+ }
+
+ /// @dev Not implemented
+ fn get_approved(&self, _token_id: uint256) -> Result<address> {
+ // TODO: Not implemetable
+ Err("not implemented".into())
+ }
+
+ /// @dev Not implemented
+ fn is_approved_for_all(&self, _owner: address, _operator: address) -> Result<address> {
+ // TODO: Not implemetable
+ Err("not implemented".into())
+ }
+}
+
+#[solidity_interface(name = "ERC721Burnable")]
+impl<T: Config> RefungibleHandle<T> {
+ /// @dev Not implemented
+ fn burn(&mut self, _caller: caller, _token_id: uint256, _value: value) -> Result<void> {
+ Err("not implemented".into())
+ }
+}
+
+#[solidity_interface(name = "ERC721Mintable", events(ERC721MintableEvents))]
+impl<T: Config> RefungibleHandle<T> {
+ fn minting_finished(&self) -> Result<bool> {
+ Ok(false)
+ }
+
+ /// `token_id` should be obtained with `next_token_id` method,
+ /// unlike standard, you can't specify it manually
+ #[weight(<SelfWeightOf<T>>::create_item())]
+ fn mint(&mut self, caller: caller, to: address, token_id: uint256) -> Result<bool> {
+ let caller = T::CrossAccountId::from_eth(caller);
+ let to = T::CrossAccountId::from_eth(to);
+ let token_id: u32 = token_id.try_into()?;
+ let budget = self
+ .recorder
+ .weight_calls_budget(<StructureWeight<T>>::find_parent());
+
+ if <TokensMinted<T>>::get(self.id)
+ .checked_add(1)
+ .ok_or("item id overflow")?
+ != token_id
+ {
+ return Err("item id should be next".into());
+ }
+
+ let const_data = BoundedVec::default();
+ let users = [(to.clone(), 1)]
+ .into_iter()
+ .collect::<BTreeMap<_, _>>()
+ .try_into()
+ .unwrap();
+ <Pallet<T>>::create_item(
+ self,
+ &caller,
+ CreateItemData::<T> {
+ const_data,
+ users,
+ properties: CollectionPropertiesVec::default(),
+ },
+ &budget,
+ )
+ .map_err(dispatch_to_evm::<T>)?;
+
+ Ok(true)
+ }
+
+ /// `token_id` should be obtained with `next_token_id` method,
+ /// unlike standard, you can't specify it manually
+ #[solidity(rename_selector = "mintWithTokenURI")]
+ #[weight(<SelfWeightOf<T>>::create_item())]
+ fn mint_with_token_uri(
+ &mut self,
+ caller: caller,
+ to: address,
+ token_id: uint256,
+ token_uri: string,
+ ) -> Result<bool> {
+ let key = key::url();
+ let permission = get_token_permission::<T>(self.id, &key)?;
+ if !permission.collection_admin {
+ return Err("Operation is not allowed".into());
+ }
+
+ let caller = T::CrossAccountId::from_eth(caller);
+ let to = T::CrossAccountId::from_eth(to);
+ let token_id: u32 = token_id.try_into().map_err(|_| "amount overflow")?;
+ let budget = self
+ .recorder
+ .weight_calls_budget(<StructureWeight<T>>::find_parent());
+
+ if <TokensMinted<T>>::get(self.id)
+ .checked_add(1)
+ .ok_or("item id overflow")?
+ != token_id
+ {
+ return Err("item id should be next".into());
+ }
+
+ let mut properties = CollectionPropertiesVec::default();
+ properties
+ .try_push(Property {
+ key,
+ value: token_uri
+ .into_bytes()
+ .try_into()
+ .map_err(|_| "token uri is too long")?,
+ })
+ .map_err(|e| Error::Revert(alloc::format!("Can't add property: {:?}", e)))?;
+
+ let const_data = BoundedVec::default();
+ let users = [(to.clone(), 1)]
+ .into_iter()
+ .collect::<BTreeMap<_, _>>()
+ .try_into()
+ .unwrap();
+ <Pallet<T>>::create_item(
+ self,
+ &caller,
+ CreateItemData::<T> {
+ const_data,
+ users,
+ properties,
+ },
+ &budget,
+ )
+ .map_err(dispatch_to_evm::<T>)?;
+ Ok(true)
+ }
+
+ /// @dev Not implemented
+ fn finish_minting(&mut self, _caller: caller) -> Result<bool> {
+ Err("not implementable".into())
+ }
+}
+
+fn get_token_property<T: Config>(
+ collection: &CollectionHandle<T>,
+ token_id: u32,
+ key: &up_data_structs::PropertyKey,
+) -> Result<string> {
+ collection.consume_store_reads(1)?;
+ let properties = <TokenProperties<T>>::try_get((collection.id, token_id))
+ .map_err(|_| Error::Revert("Token properties not found".into()))?;
+ if let Some(property) = properties.get(key) {
+ return Ok(string::from_utf8_lossy(property).into());
+ }
+
+ Err("Property tokenURI not found".into())
+}
+
+fn is_erc721_metadata_compatible<T: Config>(collection_id: CollectionId) -> bool {
+ if let Some(shema_name) =
+ pallet_common::Pallet::<T>::get_collection_property(collection_id, &key::schema_name())
+ {
+ let shema_name = shema_name.into_inner();
+ shema_name == property_value::ERC721_METADATA
+ } else {
+ false
+ }
+}
+
+fn get_token_permission<T: Config>(
+ collection_id: CollectionId,
+ key: &PropertyKey,
+) -> Result<PropertyPermission> {
+ let token_property_permissions = CollectionPropertyPermissions::<T>::try_get(collection_id)
+ .map_err(|_| Error::Revert("No permissions for collection".into()))?;
+ let a = token_property_permissions
+ .get(key)
+ .map(Clone::clone)
+ .ok_or_else(|| {
+ let key = string::from_utf8(key.clone().into_inner()).unwrap_or_default();
+ Error::Revert(alloc::format!("No permission for key {}", key))
+ })?;
+ Ok(a)
+}
+
+#[solidity_interface(name = "ERC721UniqueExtensions")]
+impl<T: Config> RefungibleHandle<T> {
+ /// @notice Returns next free RFT ID.
+ fn next_token_id(&self) -> Result<uint256> {
+ self.consume_store_reads(1)?;
+ Ok(<TokensMinted<T>>::get(self.id)
+ .checked_add(1)
+ .ok_or("item id overflow")?
+ .into())
+ }
+
+ #[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);
+ let to = T::CrossAccountId::from_eth(to);
+ let mut expected_index = <TokensMinted<T>>::get(self.id)
+ .checked_add(1)
+ .ok_or("item id overflow")?;
+ let budget = self
+ .recorder
+ .weight_calls_budget(<StructureWeight<T>>::find_parent());
+
+ let total_tokens = token_ids.len();
+ for id in token_ids.into_iter() {
+ let id: u32 = id.try_into().map_err(|_| "token id overflow")?;
+ if id != expected_index {
+ return Err("item id should be next".into());
+ }
+ expected_index = expected_index.checked_add(1).ok_or("item id overflow")?;
+ }
+ let const_data = BoundedVec::default();
+ let users = [(to.clone(), 1)]
+ .into_iter()
+ .collect::<BTreeMap<_, _>>()
+ .try_into()
+ .unwrap();
+ let create_item_data = CreateItemData::<T> {
+ const_data,
+ users,
+ properties: CollectionPropertiesVec::default(),
+ };
+ let data = (0..total_tokens)
+ .map(|_| create_item_data.clone())
+ .collect();
+
+ <Pallet<T>>::create_multiple_items(self, &caller, data, &budget)
+ .map_err(dispatch_to_evm::<T>)?;
+ Ok(true)
+ }
+
+ #[solidity(rename_selector = "mintBulkWithTokenURI")]
+ #[weight(<SelfWeightOf<T>>::create_multiple_items(tokens.len() as u32))]
+ fn mint_bulk_with_token_uri(
+ &mut self,
+ caller: caller,
+ to: address,
+ tokens: Vec<(uint256, string)>,
+ ) -> Result<bool> {
+ let key = key::url();
+ let caller = T::CrossAccountId::from_eth(caller);
+ let to = T::CrossAccountId::from_eth(to);
+ let mut expected_index = <TokensMinted<T>>::get(self.id)
+ .checked_add(1)
+ .ok_or("item id overflow")?;
+ let budget = self
+ .recorder
+ .weight_calls_budget(<StructureWeight<T>>::find_parent());
+
+ let mut data = Vec::with_capacity(tokens.len());
+ let const_data = BoundedVec::default();
+ let users: BoundedBTreeMap<_, _, _> = [(to.clone(), 1)]
+ .into_iter()
+ .collect::<BTreeMap<_, _>>()
+ .try_into()
+ .unwrap();
+ for (id, token_uri) in tokens {
+ let id: u32 = id.try_into().map_err(|_| "token id overflow")?;
+ if id != expected_index {
+ return Err("item id should be next".into());
+ }
+ expected_index = expected_index.checked_add(1).ok_or("item id overflow")?;
+
+ let mut properties = CollectionPropertiesVec::default();
+ properties
+ .try_push(Property {
+ key: key.clone(),
+ value: token_uri
+ .into_bytes()
+ .try_into()
+ .map_err(|_| "token uri is too long")?,
+ })
+ .map_err(|e| Error::Revert(alloc::format!("Can't add property: {:?}", e)))?;
+
+ let create_item_data = CreateItemData::<T> {
+ const_data: const_data.clone(),
+ users: users.clone(),
+ properties,
+ };
+ data.push(create_item_data);
+ }
+
+ <Pallet<T>>::create_multiple_items(self, &caller, data, &budget)
+ .map_err(dispatch_to_evm::<T>)?;
+ Ok(true)
+ }
+}
+
#[solidity_interface(
name = "UniqueRefungible",
- is(via("CollectionHandle<T>", common_mut, Collection),)
+ is(
+ ERC721,
+ ERC721Metadata,
+ ERC721Enumerable,
+ ERC721UniqueExtensions,
+ ERC721Mintable,
+ ERC721Burnable,
+ via("CollectionHandle<T>", common_mut, Collection),
+ TokenProperties,
+ )
)]
impl<T: Config> RefungibleHandle<T> where T::AccountId: From<[u8; 32]> {}
pallets/refungible/src/lib.rsdiffbeforeafterboth--- a/pallets/refungible/src/lib.rs
+++ b/pallets/refungible/src/lib.rs
@@ -88,6 +88,7 @@
#![cfg_attr(not(feature = "std"), no_std)]
use crate::erc_token::ERC20Events;
+use crate::erc::ERC721Events;
use codec::{Encode, Decode, MaxEncodedLen};
use core::ops::Deref;
@@ -96,7 +97,8 @@
use pallet_evm::{account::CrossAccountId, Pallet as PalletEvm};
use pallet_evm_coder_substrate::WithRecorder;
use pallet_common::{
- CommonCollectionOperations, Error as CommonError, Event as CommonEvent, Pallet as PalletCommon,
+ CommonCollectionOperations, Error as CommonError, Event as CommonEvent,
+ eth::collection_id_to_address, Pallet as PalletCommon,
};
use pallet_structure::Pallet as PalletStructure;
use scale_info::TypeInfo;
@@ -117,6 +119,9 @@
pub mod erc;
pub mod erc_token;
pub mod weights;
+
+pub type CreateItemData<T> =
+ CreateRefungibleExData<<T as pallet_evm::account::Config>::CrossAccountId>;
pub(crate) type SelfWeightOf<T> = <T as Config>::WeightInfo;
/// Token data, stored independently from other data used to describe it
@@ -779,6 +784,7 @@
token,
)),
);
+
<PalletCommon<T>>::deposit_event(CommonEvent::Transfer(
collection.id,
token,
@@ -797,7 +803,7 @@
pub fn create_multiple_items(
collection: &RefungibleHandle<T>,
sender: &T::CrossAccountId,
- data: Vec<CreateRefungibleExData<T::CrossAccountId>>,
+ data: Vec<CreateItemData<T>>,
nesting_budget: &dyn Budget,
) -> DispatchResult {
if !collection.is_owner_or_admin(sender) {
@@ -942,6 +948,14 @@
TokenId(token_id),
)),
);
+ <PalletEvm<T>>::deposit_log(
+ ERC721Events::Transfer {
+ from: H160::default(),
+ to: *user.as_eth(),
+ token_id: token_id.into(),
+ }
+ .to_log(collection_id_to_address(collection.id)),
+ );
<PalletCommon<T>>::deposit_event(CommonEvent::ItemCreated(
collection.id,
TokenId(token_id),
@@ -1120,7 +1134,7 @@
pub fn create_item(
collection: &RefungibleHandle<T>,
sender: &T::CrossAccountId,
- data: CreateRefungibleExData<T::CrossAccountId>,
+ data: CreateItemData<T>,
nesting_budget: &dyn Budget,
) -> DispatchResult {
Self::create_multiple_items(collection, sender, vec![data], nesting_budget)
pallets/refungible/src/stubs/UniqueRefungible.soldiffbeforeafterboth--- a/pallets/refungible/src/stubs/UniqueRefungible.sol
+++ b/pallets/refungible/src/stubs/UniqueRefungible.sol
@@ -3,6 +3,12 @@
pragma solidity >=0.8.0 <0.9.0;
+// Anonymous struct
+struct Tuple0 {
+ uint256 field_0;
+ string field_1;
+}
+
// Common stubs holder
contract Dummy {
uint8 dummy;
@@ -21,6 +27,351 @@
}
}
+// Inline
+contract ERC721Events {
+ event Transfer(
+ address indexed from,
+ address indexed to,
+ uint256 indexed tokenId
+ );
+ event Approval(
+ address indexed owner,
+ address indexed approved,
+ uint256 indexed tokenId
+ );
+ event ApprovalForAll(
+ address indexed owner,
+ address indexed operator,
+ bool approved
+ );
+}
+
+// Inline
+contract ERC721MintableEvents {
+ event MintingFinished();
+}
+
+// Selector: 0784ee64
+contract ERC721UniqueExtensions is Dummy, ERC165 {
+ // @notice Returns next free RFT ID.
+ //
+ // Selector: nextTokenId() 75794a3c
+ function nextTokenId() public view returns (uint256) {
+ require(false, stub_error);
+ dummy;
+ return 0;
+ }
+
+ // Selector: mintBulk(address,uint256[]) 44a9945e
+ function mintBulk(address to, uint256[] memory tokenIds)
+ public
+ returns (bool)
+ {
+ require(false, stub_error);
+ to;
+ tokenIds;
+ dummy = 0;
+ return false;
+ }
+
+ // Selector: mintBulkWithTokenURI(address,(uint256,string)[]) 36543006
+ function mintBulkWithTokenURI(address to, Tuple0[] memory tokens)
+ public
+ returns (bool)
+ {
+ require(false, stub_error);
+ to;
+ tokens;
+ dummy = 0;
+ return false;
+ }
+}
+
+// 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 {
+ // @dev Not implemented
+ //
+ // Selector: burn(uint256) 42966c68
+ function burn(uint256 tokenId) public {
+ require(false, stub_error);
+ tokenId;
+ dummy = 0;
+ }
+}
+
+// Selector: 58800161
+contract ERC721 is Dummy, ERC165, ERC721Events {
+ // Selector: balanceOf(address) 70a08231
+ function balanceOf(address owner) public view returns (uint256) {
+ require(false, stub_error);
+ owner;
+ dummy;
+ return 0;
+ }
+
+ // Selector: ownerOf(uint256) 6352211e
+ function ownerOf(uint256 tokenId) public view returns (address) {
+ require(false, stub_error);
+ tokenId;
+ dummy;
+ return 0x0000000000000000000000000000000000000000;
+ }
+
+ // @dev Not implemented
+ //
+ // Selector: safeTransferFromWithData(address,address,uint256,bytes) 60a11672
+ function safeTransferFromWithData(
+ address from,
+ address to,
+ uint256 tokenId,
+ bytes memory data
+ ) public {
+ require(false, stub_error);
+ from;
+ to;
+ tokenId;
+ data;
+ dummy = 0;
+ }
+
+ // @dev Not implemented
+ //
+ // Selector: safeTransferFrom(address,address,uint256) 42842e0e
+ function safeTransferFrom(
+ address from,
+ address to,
+ uint256 tokenId
+ ) public {
+ require(false, stub_error);
+ from;
+ to;
+ tokenId;
+ dummy = 0;
+ }
+
+ // @dev Not implemented
+ //
+ // Selector: transferFrom(address,address,uint256) 23b872dd
+ function transferFrom(
+ address from,
+ address to,
+ uint256 tokenId
+ ) public {
+ require(false, stub_error);
+ from;
+ to;
+ tokenId;
+ dummy = 0;
+ }
+
+ // @dev Not implemented
+ //
+ // Selector: approve(address,uint256) 095ea7b3
+ function approve(address approved, uint256 tokenId) public {
+ require(false, stub_error);
+ approved;
+ tokenId;
+ dummy = 0;
+ }
+
+ // @dev Not implemented
+ //
+ // Selector: setApprovalForAll(address,bool) a22cb465
+ function setApprovalForAll(address operator, bool approved) public {
+ require(false, stub_error);
+ operator;
+ approved;
+ dummy = 0;
+ }
+
+ // @dev Not implemented
+ //
+ // Selector: getApproved(uint256) 081812fc
+ function getApproved(uint256 tokenId) public view returns (address) {
+ require(false, stub_error);
+ tokenId;
+ dummy;
+ return 0x0000000000000000000000000000000000000000;
+ }
+
+ // @dev Not implemented
+ //
+ // Selector: isApprovedForAll(address,address) e985e9c5
+ function isApprovedForAll(address owner, address operator)
+ public
+ view
+ returns (address)
+ {
+ require(false, stub_error);
+ owner;
+ operator;
+ dummy;
+ return 0x0000000000000000000000000000000000000000;
+ }
+}
+
+// Selector: 5b5e139f
+contract ERC721Metadata is Dummy, ERC165 {
+ // Selector: name() 06fdde03
+ function name() public view returns (string memory) {
+ require(false, stub_error);
+ dummy;
+ return "";
+ }
+
+ // Selector: symbol() 95d89b41
+ function symbol() public view returns (string memory) {
+ require(false, stub_error);
+ dummy;
+ return "";
+ }
+
+ // Returns token's const_metadata
+ //
+ // Selector: tokenURI(uint256) c87b56dd
+ function tokenURI(uint256 tokenId) public view returns (string memory) {
+ require(false, stub_error);
+ tokenId;
+ dummy;
+ return "";
+ }
+}
+
+// Selector: 68ccfe89
+contract ERC721Mintable is Dummy, ERC165, ERC721MintableEvents {
+ // Selector: mintingFinished() 05d2035b
+ function mintingFinished() public view returns (bool) {
+ require(false, stub_error);
+ dummy;
+ return false;
+ }
+
+ // `token_id` should be obtained with `next_token_id` method,
+ // unlike standard, you can't specify it manually
+ //
+ // Selector: mint(address,uint256) 40c10f19
+ function mint(address to, uint256 tokenId) public returns (bool) {
+ require(false, stub_error);
+ to;
+ tokenId;
+ dummy = 0;
+ return false;
+ }
+
+ // `token_id` should be obtained with `next_token_id` method,
+ // unlike standard, you can't specify it manually
+ //
+ // Selector: mintWithTokenURI(address,uint256,string) 50bb4e7f
+ function mintWithTokenURI(
+ address to,
+ uint256 tokenId,
+ string memory tokenUri
+ ) public returns (bool) {
+ require(false, stub_error);
+ to;
+ tokenId;
+ tokenUri;
+ dummy = 0;
+ return false;
+ }
+
+ // @dev Not implemented
+ //
+ // Selector: finishMinting() 7d64bcb4
+ function finishMinting() public returns (bool) {
+ require(false, stub_error);
+ dummy = 0;
+ return false;
+ }
+}
+
+// Selector: 780e9d63
+contract ERC721Enumerable is Dummy, ERC165 {
+ // Selector: tokenByIndex(uint256) 4f6ccce7
+ function tokenByIndex(uint256 index) public view returns (uint256) {
+ require(false, stub_error);
+ index;
+ dummy;
+ return 0;
+ }
+
+ // Not implemented
+ //
+ // Selector: tokenOfOwnerByIndex(address,uint256) 2f745c59
+ function tokenOfOwnerByIndex(address owner, uint256 index)
+ public
+ view
+ returns (uint256)
+ {
+ require(false, stub_error);
+ owner;
+ index;
+ dummy;
+ return 0;
+ }
+
+ // Selector: totalSupply() 18160ddd
+ function totalSupply() public view returns (uint256) {
+ require(false, stub_error);
+ dummy;
+ return 0;
+ }
+}
+
// Selector: 7d9262e6
contract Collection is Dummy, ERC165 {
// Set collection property.
@@ -248,4 +599,15 @@
}
}
-contract UniqueRefungible is Dummy, ERC165, Collection {}
+contract UniqueRefungible is
+ Dummy,
+ ERC165,
+ ERC721,
+ ERC721Metadata,
+ ERC721Enumerable,
+ ERC721UniqueExtensions,
+ ERC721Mintable,
+ ERC721Burnable,
+ Collection,
+ TokenProperties
+{}
tests/src/eth/api/UniqueRefungible.soldiffbeforeafterboth--- a/tests/src/eth/api/UniqueRefungible.sol
+++ b/tests/src/eth/api/UniqueRefungible.sol
@@ -3,6 +3,12 @@
pragma solidity >=0.8.0 <0.9.0;
+// Anonymous struct
+struct Tuple0 {
+ uint256 field_0;
+ string field_1;
+}
+
// Common stubs holder
interface Dummy {
@@ -12,6 +18,203 @@
function supportsInterface(bytes4 interfaceID) external view returns (bool);
}
+// Inline
+interface ERC721Events {
+ event Transfer(
+ address indexed from,
+ address indexed to,
+ uint256 indexed tokenId
+ );
+ event Approval(
+ address indexed owner,
+ address indexed approved,
+ uint256 indexed tokenId
+ );
+ event ApprovalForAll(
+ address indexed owner,
+ address indexed operator,
+ bool approved
+ );
+}
+
+// Inline
+interface ERC721MintableEvents {
+ event MintingFinished();
+}
+
+// Selector: 0784ee64
+interface ERC721UniqueExtensions is Dummy, ERC165 {
+ // @notice Returns next free RFT ID.
+ //
+ // Selector: nextTokenId() 75794a3c
+ function nextTokenId() external view returns (uint256);
+
+ // Selector: mintBulk(address,uint256[]) 44a9945e
+ function mintBulk(address to, uint256[] memory tokenIds)
+ external
+ returns (bool);
+
+ // Selector: mintBulkWithTokenURI(address,(uint256,string)[]) 36543006
+ function mintBulkWithTokenURI(address to, Tuple0[] memory tokens)
+ external
+ returns (bool);
+}
+
+// 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 {
+ // @dev Not implemented
+ //
+ // Selector: burn(uint256) 42966c68
+ function burn(uint256 tokenId) external;
+}
+
+// Selector: 58800161
+interface ERC721 is Dummy, ERC165, ERC721Events {
+ // Selector: balanceOf(address) 70a08231
+ function balanceOf(address owner) external view returns (uint256);
+
+ // Selector: ownerOf(uint256) 6352211e
+ function ownerOf(uint256 tokenId) external view returns (address);
+
+ // @dev Not implemented
+ //
+ // Selector: safeTransferFromWithData(address,address,uint256,bytes) 60a11672
+ function safeTransferFromWithData(
+ address from,
+ address to,
+ uint256 tokenId,
+ bytes memory data
+ ) external;
+
+ // @dev Not implemented
+ //
+ // Selector: safeTransferFrom(address,address,uint256) 42842e0e
+ function safeTransferFrom(
+ address from,
+ address to,
+ uint256 tokenId
+ ) external;
+
+ // @dev Not implemented
+ //
+ // Selector: transferFrom(address,address,uint256) 23b872dd
+ function transferFrom(
+ address from,
+ address to,
+ uint256 tokenId
+ ) external;
+
+ // @dev Not implemented
+ //
+ // Selector: approve(address,uint256) 095ea7b3
+ function approve(address approved, uint256 tokenId) external;
+
+ // @dev Not implemented
+ //
+ // Selector: setApprovalForAll(address,bool) a22cb465
+ function setApprovalForAll(address operator, bool approved) external;
+
+ // @dev Not implemented
+ //
+ // Selector: getApproved(uint256) 081812fc
+ function getApproved(uint256 tokenId) external view returns (address);
+
+ // @dev Not implemented
+ //
+ // Selector: isApprovedForAll(address,address) e985e9c5
+ function isApprovedForAll(address owner, address operator)
+ external
+ view
+ returns (address);
+}
+
+// Selector: 5b5e139f
+interface ERC721Metadata is Dummy, ERC165 {
+ // Selector: name() 06fdde03
+ function name() external view returns (string memory);
+
+ // Selector: symbol() 95d89b41
+ function symbol() external view returns (string memory);
+
+ // Returns token's const_metadata
+ //
+ // Selector: tokenURI(uint256) c87b56dd
+ function tokenURI(uint256 tokenId) external view returns (string memory);
+}
+
+// Selector: 68ccfe89
+interface ERC721Mintable is Dummy, ERC165, ERC721MintableEvents {
+ // Selector: mintingFinished() 05d2035b
+ function mintingFinished() external view returns (bool);
+
+ // `token_id` should be obtained with `next_token_id` method,
+ // unlike standard, you can't specify it manually
+ //
+ // Selector: mint(address,uint256) 40c10f19
+ function mint(address to, uint256 tokenId) external returns (bool);
+
+ // `token_id` should be obtained with `next_token_id` method,
+ // unlike standard, you can't specify it manually
+ //
+ // Selector: mintWithTokenURI(address,uint256,string) 50bb4e7f
+ function mintWithTokenURI(
+ address to,
+ uint256 tokenId,
+ string memory tokenUri
+ ) external returns (bool);
+
+ // @dev Not implemented
+ //
+ // Selector: finishMinting() 7d64bcb4
+ function finishMinting() external returns (bool);
+}
+
+// Selector: 780e9d63
+interface ERC721Enumerable is Dummy, ERC165 {
+ // Selector: tokenByIndex(uint256) 4f6ccce7
+ function tokenByIndex(uint256 index) external view returns (uint256);
+
+ // Not implemented
+ //
+ // Selector: tokenOfOwnerByIndex(address,uint256) 2f745c59
+ function tokenOfOwnerByIndex(address owner, uint256 index)
+ external
+ view
+ returns (uint256);
+
+ // Selector: totalSupply() 18160ddd
+ function totalSupply() external view returns (uint256);
+}
+
// Selector: 7d9262e6
interface Collection is Dummy, ERC165 {
// Set collection property.
@@ -160,4 +363,15 @@
function setCollectionMintMode(bool mode) external;
}
-interface UniqueRefungible is Dummy, ERC165, Collection {}
+interface UniqueRefungible is
+ Dummy,
+ ERC165,
+ ERC721,
+ ERC721Metadata,
+ ERC721Enumerable,
+ ERC721UniqueExtensions,
+ ERC721Mintable,
+ ERC721Burnable,
+ Collection,
+ TokenProperties
+{}
tests/src/eth/reFungibleAbi.jsondiffbeforeafterboth--- /dev/null
+++ b/tests/src/eth/reFungibleAbi.json
@@ -0,0 +1,510 @@
+[
+ {
+ "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": "newAdmin", "type": "address" }
+ ],
+ "name": "addCollectionAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "uint256", "name": "newAdmin", "type": "uint256" }
+ ],
+ "name": "addCollectionAdminSubstrate",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "user", "type": "address" }
+ ],
+ "name": "addToCollectionAllowList",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "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": "string", "name": "key", "type": "string" }],
+ "name": "collectionProperty",
+ "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "confirmCollectionSponsorship",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractAddress",
+ "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
+ "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": "admin", "type": "address" }
+ ],
+ "name": "removeCollectionAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "uint256", "name": "admin", "type": "uint256" }
+ ],
+ "name": "removeCollectionAdminSubstrate",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "user", "type": "address" }
+ ],
+ "name": "removeFromCollectionAllowList",
+ "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": "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": "uint8", "name": "mode", "type": "uint8" }],
+ "name": "setCollectionAccess",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "string", "name": "limit", "type": "string" },
+ { "internalType": "uint32", "name": "value", "type": "uint32" }
+ ],
+ "name": "setCollectionLimit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "string", "name": "limit", "type": "string" },
+ { "internalType": "bool", "name": "value", "type": "bool" }
+ ],
+ "name": "setCollectionLimit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{ "internalType": "bool", "name": "mode", "type": "bool" }],
+ "name": "setCollectionMintMode",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{ "internalType": "bool", "name": "enable", "type": "bool" }],
+ "name": "setCollectionNesting",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "bool", "name": "enable", "type": "bool" },
+ {
+ "internalType": "address[]",
+ "name": "collections",
+ "type": "address[]"
+ }
+ ],
+ "name": "setCollectionNesting",
+ "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": "address", "name": "sponsor", "type": "address" }
+ ],
+ "name": "setCollectionSponsor",
+ "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": "from", "type": "address" },
+ { "internalType": "address", "name": "to", "type": "address" },
+ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+]
tests/src/interfaces/augment-api-errors.tsdiffbeforeafterboth--- a/tests/src/interfaces/augment-api-errors.ts
+++ b/tests/src/interfaces/augment-api-errors.ts
@@ -446,25 +446,83 @@
[key: string]: AugmentedError<ApiType>;
};
rmrkCore: {
+ /**
+ * Not the target owner of the sent NFT.
+ **/
CannotAcceptNonOwnedNft: AugmentedError<ApiType>;
+ /**
+ * Not the target owner of the sent NFT.
+ **/
CannotRejectNonOwnedNft: AugmentedError<ApiType>;
+ /**
+ * NFT was not sent and is not pending.
+ **/
CannotRejectNonPendingNft: AugmentedError<ApiType>;
+ /**
+ * If an NFT is sent to a descendant, that would form a nesting loop, an ouroboros.
+ * Sending to self is redundant.
+ **/
CannotSendToDescendentOrSelf: AugmentedError<ApiType>;
+ /**
+ * Too many tokens created in the collection, no new ones are allowed.
+ **/
CollectionFullOrLocked: AugmentedError<ApiType>;
+ /**
+ * Only destroying collections without tokens is allowed.
+ **/
CollectionNotEmpty: AugmentedError<ApiType>;
+ /**
+ * Collection does not exist, has a wrong type, or does not map to a Unique ID.
+ **/
CollectionUnknown: AugmentedError<ApiType>;
+ /**
+ * Property of the type of RMRK collection could not be read successfully.
+ **/
CorruptedCollectionType: AugmentedError<ApiType>;
- NftTypeEncodeError: AugmentedError<ApiType>;
+ /**
+ * Could not find an ID for a collection. It is likely there were too many collections created on the chain, causing an overflow.
+ **/
NoAvailableCollectionId: AugmentedError<ApiType>;
+ /**
+ * Token does not exist, or there is no suitable ID for it, likely too many tokens were created in a collection, causing an overflow.
+ **/
NoAvailableNftId: AugmentedError<ApiType>;
+ /**
+ * Could not find an ID for the resource. It is likely there were too many resources created on an NFT, causing an overflow.
+ **/
NoAvailableResourceId: AugmentedError<ApiType>;
+ /**
+ * Token is marked as non-transferable, and thus cannot be transferred.
+ **/
NonTransferable: AugmentedError<ApiType>;
+ /**
+ * No permission to perform action.
+ **/
NoPermission: AugmentedError<ApiType>;
+ /**
+ * No such resource found.
+ **/
ResourceDoesntExist: AugmentedError<ApiType>;
+ /**
+ * Resource is not pending for the operation.
+ **/
ResourceNotPending: AugmentedError<ApiType>;
+ /**
+ * Could not find a property by the supplied key.
+ **/
RmrkPropertyIsNotFound: AugmentedError<ApiType>;
+ /**
+ * Too many symbols supplied as the property key. The maximum is [256](up_data_structs::MAX_PROPERTY_KEY_LENGTH).
+ **/
RmrkPropertyKeyIsTooLong: AugmentedError<ApiType>;
+ /**
+ * Too many bytes supplied as the property value. The maximum is [32768](up_data_structs::MAX_PROPERTY_VALUE_LENGTH).
+ **/
RmrkPropertyValueIsTooLong: AugmentedError<ApiType>;
+ /**
+ * Something went wrong when decoding encoded data from the storage.
+ * Perhaps, there was a wrong key supplied for the type, or the data was improperly stored.
+ **/
UnableToDecodeRmrkData: AugmentedError<ApiType>;
/**
* Generic error
@@ -472,12 +530,33 @@
[key: string]: AugmentedError<ApiType>;
};
rmrkEquip: {
+ /**
+ * Base collection linked to this ID does not exist.
+ **/
BaseDoesntExist: AugmentedError<ApiType>;
+ /**
+ * No Theme named "default" is associated with the Base.
+ **/
NeedsDefaultThemeFirst: AugmentedError<ApiType>;
+ /**
+ * Could not find an ID for a Base collection. It is likely there were too many collections created on the chain, causing an overflow.
+ **/
NoAvailableBaseId: AugmentedError<ApiType>;
+ /**
+ * Could not find a suitable ID for a Part, likely too many Part tokens were created in the Base, causing an overflow
+ **/
NoAvailablePartId: AugmentedError<ApiType>;
+ /**
+ * Cannot assign equippables to a fixed Part.
+ **/
NoEquippableOnFixedPart: AugmentedError<ApiType>;
+ /**
+ * Part linked to this ID does not exist.
+ **/
PartDoesntExist: AugmentedError<ApiType>;
+ /**
+ * No permission to perform action.
+ **/
PermissionError: AugmentedError<ApiType>;
/**
* Generic error
@@ -508,15 +587,15 @@
};
structure: {
/**
- * While iterating over children, reached the breadth limit.
+ * While nesting, reached the breadth limit of nesting, exceeding the provided budget.
**/
BreadthLimit: AugmentedError<ApiType>;
/**
- * While searching for the owner, reached the depth limit.
+ * While nesting, reached the depth limit of nesting, exceeding the provided budget.
**/
DepthLimit: AugmentedError<ApiType>;
/**
- * While searching for the owner, encountered an already checked account, detecting a loop.
+ * While nesting, encountered an already checked account, detecting a loop.
**/
OuroborosDetected: AugmentedError<ApiType>;
/**
tests/src/interfaces/augment-api-query.tsdiffbeforeafterboth--- a/tests/src/interfaces/augment-api-query.ts
+++ b/tests/src/interfaces/augment-api-query.ts
@@ -492,7 +492,13 @@
[key: string]: QueryableStorageEntry<ApiType>;
};
rmrkCore: {
+ /**
+ * Latest yet-unused collection ID.
+ **/
collectionIndex: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * Mapping from RMRK collection ID to Unique's.
+ **/
uniqueCollectionId: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u32>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
/**
* Generic query
@@ -500,7 +506,13 @@
[key: string]: QueryableStorageEntry<ApiType>;
};
rmrkEquip: {
+ /**
+ * Checkmark that a Base has a Theme NFT named "default".
+ **/
baseHasDefaultTheme: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<bool>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
+ /**
+ * Map of a Base ID and a Part ID to an NFT in the Base collection serving as the Part.
+ **/
inernalPartId: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<Option<u32>>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;
/**
* Generic query
tests/src/interfaces/augment-api-tx.tsdiffbeforeafterboth1// Auto-generated via `yarn polkadot-types-from-chain`, do not edit2/* eslint-disable */34import type { ApiTypes } from '@polkadot/api-base/types';5import type { Bytes, Compact, Option, U256, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';6import type { AnyNumber, IMethod, ITuple } from '@polkadot/types-codec/types';7import type { AccountId32, Call, H160, H256, MultiAddress, Perbill, Permill } from '@polkadot/types/interfaces/runtime';8import type { CumulusPrimitivesParachainInherentParachainInherentData, EthereumTransactionTransactionV2, FrameSupportScheduleMaybeHashed, OrmlVestingVestingSchedule, PalletEvmAccountBasicCrossAccountIdRepr, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsPartEquippableList, RmrkTraitsPartPartType, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCreateCollectionData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, XcmV1MultiLocation, XcmV2WeightLimit, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';910declare module '@polkadot/api-base/types/submittable' {11 export interface AugmentedSubmittables<ApiType extends ApiTypes> {12 balances: {13 /**14 * Exactly as `transfer`, except the origin must be root and the source account may be15 * specified.16 * # <weight>17 * - Same as transfer, but additional read and write because the source account is not18 * assumed to be in the overlay.19 * # </weight>20 **/21 forceTransfer: AugmentedSubmittable<(source: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact<u128> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, MultiAddress, Compact<u128>]>;22 /**23 * Unreserve some balance from a user by force.24 * 25 * Can only be called by ROOT.26 **/27 forceUnreserve: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, u128]>;28 /**29 * Set the balances of a given account.30 * 31 * This will alter `FreeBalance` and `ReservedBalance` in storage. it will32 * also alter the total issuance of the system (`TotalIssuance`) appropriately.33 * If the new free or reserved balance is below the existential deposit,34 * it will reset the account nonce (`frame_system::AccountNonce`).35 * 36 * The dispatch origin for this call is `root`.37 **/38 setBalance: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, newFree: Compact<u128> | AnyNumber | Uint8Array, newReserved: Compact<u128> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, Compact<u128>, Compact<u128>]>;39 /**40 * Transfer some liquid free balance to another account.41 * 42 * `transfer` will set the `FreeBalance` of the sender and receiver.43 * If the sender's account is below the existential deposit as a result44 * of the transfer, the account will be reaped.45 * 46 * The dispatch origin for this call must be `Signed` by the transactor.47 * 48 * # <weight>49 * - Dependent on arguments but not critical, given proper implementations for input config50 * types. See related functions below.51 * - It contains a limited number of reads and writes internally and no complex52 * computation.53 * 54 * Related functions:55 * 56 * - `ensure_can_withdraw` is always called internally but has a bounded complexity.57 * - Transferring balances to accounts that did not exist before will cause58 * `T::OnNewAccount::on_new_account` to be called.59 * - Removing enough funds from an account will trigger `T::DustRemoval::on_unbalanced`.60 * - `transfer_keep_alive` works the same way as `transfer`, but has an additional check61 * that the transfer will not kill the origin account.62 * ---------------------------------63 * - Origin account is already in memory, so no DB operations for them.64 * # </weight>65 **/66 transfer: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact<u128> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, Compact<u128>]>;67 /**68 * Transfer the entire transferable balance from the caller account.69 * 70 * NOTE: This function only attempts to transfer _transferable_ balances. This means that71 * any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be72 * transferred by this function. To ensure that this function results in a killed account,73 * you might need to prepare the account by removing any reference counters, storage74 * deposits, etc...75 * 76 * The dispatch origin of this call must be Signed.77 * 78 * - `dest`: The recipient of the transfer.79 * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all80 * of the funds the account has, causing the sender account to be killed (false), or81 * transfer everything except at least the existential deposit, which will guarantee to82 * keep the sender account alive (true). # <weight>83 * - O(1). Just like transfer, but reading the user's transferable balance first.84 * #</weight>85 **/86 transferAll: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, keepAlive: bool | boolean | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, bool]>;87 /**88 * Same as the [`transfer`] call, but with a check that the transfer will not kill the89 * origin account.90 * 91 * 99% of the time you want [`transfer`] instead.92 * 93 * [`transfer`]: struct.Pallet.html#method.transfer94 **/95 transferKeepAlive: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact<u128> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, Compact<u128>]>;96 /**97 * Generic tx98 **/99 [key: string]: SubmittableExtrinsicFunction<ApiType>;100 };101 charging: {102 /**103 * Generic tx104 **/105 [key: string]: SubmittableExtrinsicFunction<ApiType>;106 };107 cumulusXcm: {108 /**109 * Generic tx110 **/111 [key: string]: SubmittableExtrinsicFunction<ApiType>;112 };113 dmpQueue: {114 /**115 * Service a single overweight message.116 * 117 * - `origin`: Must pass `ExecuteOverweightOrigin`.118 * - `index`: The index of the overweight message to service.119 * - `weight_limit`: The amount of weight that message execution may take.120 * 121 * Errors:122 * - `Unknown`: Message of `index` is unknown.123 * - `OverLimit`: Message execution may use greater than `weight_limit`.124 * 125 * Events:126 * - `OverweightServiced`: On success.127 **/128 serviceOverweight: AugmentedSubmittable<(index: u64 | AnyNumber | Uint8Array, weightLimit: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u64, u64]>;129 /**130 * Generic tx131 **/132 [key: string]: SubmittableExtrinsicFunction<ApiType>;133 };134 ethereum: {135 /**136 * Transact an Ethereum transaction.137 **/138 transact: AugmentedSubmittable<(transaction: EthereumTransactionTransactionV2 | { Legacy: any } | { EIP2930: any } | { EIP1559: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [EthereumTransactionTransactionV2]>;139 /**140 * Generic tx141 **/142 [key: string]: SubmittableExtrinsicFunction<ApiType>;143 };144 evm: {145 /**146 * Issue an EVM call operation. This is similar to a message call transaction in Ethereum.147 **/148 call: AugmentedSubmittable<(source: H160 | string | Uint8Array, target: H160 | string | Uint8Array, input: Bytes | string | Uint8Array, value: U256 | AnyNumber | Uint8Array, gasLimit: u64 | AnyNumber | Uint8Array, maxFeePerGas: U256 | AnyNumber | Uint8Array, maxPriorityFeePerGas: Option<U256> | null | object | string | Uint8Array, nonce: Option<U256> | null | object | string | Uint8Array, accessList: Vec<ITuple<[H160, Vec<H256>]>> | ([H160 | string | Uint8Array, Vec<H256> | (H256 | string | Uint8Array)[]])[]) => SubmittableExtrinsic<ApiType>, [H160, H160, Bytes, U256, u64, U256, Option<U256>, Option<U256>, Vec<ITuple<[H160, Vec<H256>]>>]>;149 /**150 * Issue an EVM create operation. This is similar to a contract creation transaction in151 * Ethereum.152 **/153 create: AugmentedSubmittable<(source: H160 | string | Uint8Array, init: Bytes | string | Uint8Array, value: U256 | AnyNumber | Uint8Array, gasLimit: u64 | AnyNumber | Uint8Array, maxFeePerGas: U256 | AnyNumber | Uint8Array, maxPriorityFeePerGas: Option<U256> | null | object | string | Uint8Array, nonce: Option<U256> | null | object | string | Uint8Array, accessList: Vec<ITuple<[H160, Vec<H256>]>> | ([H160 | string | Uint8Array, Vec<H256> | (H256 | string | Uint8Array)[]])[]) => SubmittableExtrinsic<ApiType>, [H160, Bytes, U256, u64, U256, Option<U256>, Option<U256>, Vec<ITuple<[H160, Vec<H256>]>>]>;154 /**155 * Issue an EVM create2 operation.156 **/157 create2: AugmentedSubmittable<(source: H160 | string | Uint8Array, init: Bytes | string | Uint8Array, salt: H256 | string | Uint8Array, value: U256 | AnyNumber | Uint8Array, gasLimit: u64 | AnyNumber | Uint8Array, maxFeePerGas: U256 | AnyNumber | Uint8Array, maxPriorityFeePerGas: Option<U256> | null | object | string | Uint8Array, nonce: Option<U256> | null | object | string | Uint8Array, accessList: Vec<ITuple<[H160, Vec<H256>]>> | ([H160 | string | Uint8Array, Vec<H256> | (H256 | string | Uint8Array)[]])[]) => SubmittableExtrinsic<ApiType>, [H160, Bytes, H256, U256, u64, U256, Option<U256>, Option<U256>, Vec<ITuple<[H160, Vec<H256>]>>]>;158 /**159 * Withdraw balance from EVM into currency/balances pallet.160 **/161 withdraw: AugmentedSubmittable<(address: H160 | string | Uint8Array, value: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [H160, u128]>;162 /**163 * Generic tx164 **/165 [key: string]: SubmittableExtrinsicFunction<ApiType>;166 };167 evmMigration: {168 begin: AugmentedSubmittable<(address: H160 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H160]>;169 finish: AugmentedSubmittable<(address: H160 | string | Uint8Array, code: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H160, Bytes]>;170 setData: AugmentedSubmittable<(address: H160 | string | Uint8Array, data: Vec<ITuple<[H256, H256]>> | ([H256 | string | Uint8Array, H256 | string | Uint8Array])[]) => SubmittableExtrinsic<ApiType>, [H160, Vec<ITuple<[H256, H256]>>]>;171 /**172 * Generic tx173 **/174 [key: string]: SubmittableExtrinsicFunction<ApiType>;175 };176 inflation: {177 /**178 * This method sets the inflation start date. Can be only called once.179 * Inflation start block can be backdated and will catch up. The method will create Treasury180 * account if it does not exist and perform the first inflation deposit.181 * 182 * # Permissions183 * 184 * * Root185 * 186 * # Arguments187 * 188 * * inflation_start_relay_block: The relay chain block at which inflation should start189 **/190 startInflation: AugmentedSubmittable<(inflationStartRelayBlock: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;191 /**192 * Generic tx193 **/194 [key: string]: SubmittableExtrinsicFunction<ApiType>;195 };196 parachainSystem: {197 authorizeUpgrade: AugmentedSubmittable<(codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H256]>;198 enactAuthorizedUpgrade: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;199 /**200 * Set the current validation data.201 * 202 * This should be invoked exactly once per block. It will panic at the finalization203 * phase if the call was not invoked.204 * 205 * The dispatch origin for this call must be `Inherent`206 * 207 * As a side effect, this function upgrades the current validation function208 * if the appropriate time has come.209 **/210 setValidationData: AugmentedSubmittable<(data: CumulusPrimitivesParachainInherentParachainInherentData | { validationData?: any; relayChainState?: any; downwardMessages?: any; horizontalMessages?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [CumulusPrimitivesParachainInherentParachainInherentData]>;211 sudoSendUpwardMessage: AugmentedSubmittable<(message: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;212 /**213 * Generic tx214 **/215 [key: string]: SubmittableExtrinsicFunction<ApiType>;216 };217 polkadotXcm: {218 /**219 * Execute an XCM message from a local, signed, origin.220 * 221 * An event is deposited indicating whether `msg` could be executed completely or only222 * partially.223 * 224 * No more than `max_weight` will be used in its attempted execution. If this is less than the225 * maximum amount of weight that the message could take to be executed, then no execution226 * attempt will be made.227 * 228 * NOTE: A successful return to this does *not* imply that the `msg` was executed successfully229 * to completion; only that *some* of it was executed.230 **/231 execute: AugmentedSubmittable<(message: XcmVersionedXcm | { V0: any } | { V1: any } | { V2: any } | string | Uint8Array, maxWeight: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedXcm, u64]>;232 /**233 * Set a safe XCM version (the version that XCM should be encoded with if the most recent234 * version a destination can accept is unknown).235 * 236 * - `origin`: Must be Root.237 * - `maybe_xcm_version`: The default XCM encoding version, or `None` to disable.238 **/239 forceDefaultXcmVersion: AugmentedSubmittable<(maybeXcmVersion: Option<u32> | null | object | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Option<u32>]>;240 /**241 * Ask a location to notify us regarding their XCM version and any changes to it.242 * 243 * - `origin`: Must be Root.244 * - `location`: The location to which we should subscribe for XCM version notifications.245 **/246 forceSubscribeVersionNotify: AugmentedSubmittable<(location: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation]>;247 /**248 * Require that a particular destination should no longer notify us regarding any XCM249 * version changes.250 * 251 * - `origin`: Must be Root.252 * - `location`: The location to which we are currently subscribed for XCM version253 * notifications which we no longer desire.254 **/255 forceUnsubscribeVersionNotify: AugmentedSubmittable<(location: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation]>;256 /**257 * Extoll that a particular destination can be communicated with through a particular258 * version of XCM.259 * 260 * - `origin`: Must be Root.261 * - `location`: The destination that is being described.262 * - `xcm_version`: The latest version of XCM that `location` supports.263 **/264 forceXcmVersion: AugmentedSubmittable<(location: XcmV1MultiLocation | { parents?: any; interior?: any } | string | Uint8Array, xcmVersion: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmV1MultiLocation, u32]>;265 /**266 * Transfer some assets from the local chain to the sovereign account of a destination267 * chain and forward a notification XCM.268 * 269 * Fee payment on the destination side is made from the asset in the `assets` vector of270 * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight271 * is needed than `weight_limit`, then the operation will fail and the assets send may be272 * at risk.273 * 274 * - `origin`: Must be capable of withdrawing the `assets` and executing XCM.275 * - `dest`: Destination context for the assets. Will typically be `X2(Parent, Parachain(..))` to send276 * from parachain to parachain, or `X1(Parachain(..))` to send from relay to parachain.277 * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be278 * an `AccountId32` value.279 * - `assets`: The assets to be withdrawn. This should include the assets used to pay the fee on the280 * `dest` side.281 * - `fee_asset_item`: The index into `assets` of the item which should be used to pay282 * fees.283 * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase.284 **/285 limitedReserveTransferAssets: AugmentedSubmittable<(dest: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, beneficiary: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, assets: XcmVersionedMultiAssets | { V0: any } | { V1: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array, weightLimit: XcmV2WeightLimit | { Unlimited: any } | { Limited: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation, XcmVersionedMultiLocation, XcmVersionedMultiAssets, u32, XcmV2WeightLimit]>;286 /**287 * Teleport some assets from the local chain to some destination chain.288 * 289 * Fee payment on the destination side is made from the asset in the `assets` vector of290 * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight291 * is needed than `weight_limit`, then the operation will fail and the assets send may be292 * at risk.293 * 294 * - `origin`: Must be capable of withdrawing the `assets` and executing XCM.295 * - `dest`: Destination context for the assets. Will typically be `X2(Parent, Parachain(..))` to send296 * from parachain to parachain, or `X1(Parachain(..))` to send from relay to parachain.297 * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be298 * an `AccountId32` value.299 * - `assets`: The assets to be withdrawn. The first item should be the currency used to to pay the fee on the300 * `dest` side. May not be empty.301 * - `fee_asset_item`: The index into `assets` of the item which should be used to pay302 * fees.303 * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase.304 **/305 limitedTeleportAssets: AugmentedSubmittable<(dest: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, beneficiary: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, assets: XcmVersionedMultiAssets | { V0: any } | { V1: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array, weightLimit: XcmV2WeightLimit | { Unlimited: any } | { Limited: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation, XcmVersionedMultiLocation, XcmVersionedMultiAssets, u32, XcmV2WeightLimit]>;306 /**307 * Transfer some assets from the local chain to the sovereign account of a destination308 * chain and forward a notification XCM.309 * 310 * Fee payment on the destination side is made from the asset in the `assets` vector of311 * index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,312 * with all fees taken as needed from the asset.313 * 314 * - `origin`: Must be capable of withdrawing the `assets` and executing XCM.315 * - `dest`: Destination context for the assets. Will typically be `X2(Parent, Parachain(..))` to send316 * from parachain to parachain, or `X1(Parachain(..))` to send from relay to parachain.317 * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be318 * an `AccountId32` value.319 * - `assets`: The assets to be withdrawn. This should include the assets used to pay the fee on the320 * `dest` side.321 * - `fee_asset_item`: The index into `assets` of the item which should be used to pay322 * fees.323 **/324 reserveTransferAssets: AugmentedSubmittable<(dest: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, beneficiary: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, assets: XcmVersionedMultiAssets | { V0: any } | { V1: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation, XcmVersionedMultiLocation, XcmVersionedMultiAssets, u32]>;325 send: AugmentedSubmittable<(dest: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, message: XcmVersionedXcm | { V0: any } | { V1: any } | { V2: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation, XcmVersionedXcm]>;326 /**327 * Teleport some assets from the local chain to some destination chain.328 * 329 * Fee payment on the destination side is made from the asset in the `assets` vector of330 * index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,331 * with all fees taken as needed from the asset.332 * 333 * - `origin`: Must be capable of withdrawing the `assets` and executing XCM.334 * - `dest`: Destination context for the assets. Will typically be `X2(Parent, Parachain(..))` to send335 * from parachain to parachain, or `X1(Parachain(..))` to send from relay to parachain.336 * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be337 * an `AccountId32` value.338 * - `assets`: The assets to be withdrawn. The first item should be the currency used to to pay the fee on the339 * `dest` side. May not be empty.340 * - `fee_asset_item`: The index into `assets` of the item which should be used to pay341 * fees.342 **/343 teleportAssets: AugmentedSubmittable<(dest: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, beneficiary: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, assets: XcmVersionedMultiAssets | { V0: any } | { V1: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation, XcmVersionedMultiLocation, XcmVersionedMultiAssets, u32]>;344 /**345 * Generic tx346 **/347 [key: string]: SubmittableExtrinsicFunction<ApiType>;348 };349 rmrkCore: {350 /**351 * Accepts an NFT sent from another account to self or owned NFT352 * 353 * Parameters:354 * - `origin`: sender of the transaction355 * - `rmrk_collection_id`: collection id of the nft to be accepted356 * - `rmrk_nft_id`: nft id of the nft to be accepted357 * - `new_owner`: either origin's account ID or origin-owned NFT, whichever the NFT was358 * sent to359 **/360 acceptNft: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, newOwner: RmrkTraitsNftAccountIdOrCollectionNftTuple | { AccountId: any } | { CollectionAndNftTuple: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, RmrkTraitsNftAccountIdOrCollectionNftTuple]>;361 /**362 * accept the addition of a new resource to an existing NFT363 **/364 acceptResource: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, resourceId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u32]>;365 /**366 * accept the removal of a resource of an existing NFT367 **/368 acceptResourceRemoval: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, resourceId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u32]>;369 /**370 * Create basic resource371 **/372 addBasicResource: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, resource: RmrkTraitsResourceBasicResource | { src?: any; metadata?: any; license?: any; thumb?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, RmrkTraitsResourceBasicResource]>;373 /**374 * Create composable resource375 **/376 addComposableResource: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, resource: RmrkTraitsResourceComposableResource | { parts?: any; base?: any; src?: any; metadata?: any; license?: any; thumb?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, RmrkTraitsResourceComposableResource]>;377 /**378 * Create slot resource379 **/380 addSlotResource: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, resource: RmrkTraitsResourceSlotResource | { base?: any; src?: any; metadata?: any; slot?: any; license?: any; thumb?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, RmrkTraitsResourceSlotResource]>;381 /**382 * burn nft383 **/384 burnNft: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, maxBurns: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u32]>;385 /**386 * Change the issuer of a collection387 * 388 * Parameters:389 * - `origin`: sender of the transaction390 * - `collection_id`: collection id of the nft to change issuer of391 * - `new_issuer`: Collection's new issuer392 **/393 changeCollectionIssuer: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newIssuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, MultiAddress]>;394 /**395 * Create a collection396 **/397 createCollection: AugmentedSubmittable<(metadata: Bytes | string | Uint8Array, max: Option<u32> | null | object | string | Uint8Array, symbol: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes, Option<u32>, Bytes]>;398 /**399 * destroy collection400 **/401 destroyCollection: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;402 /**403 * lock collection404 **/405 lockCollection: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;406 /**407 * Mints an NFT in the specified collection408 * Sets metadata and the royalty attribute409 * 410 * Parameters:411 * - `collection_id`: The class of the asset to be minted.412 * - `nft_id`: The nft value of the asset to be minted.413 * - `recipient`: Receiver of the royalty414 * - `royalty`: Permillage reward from each trade for the Recipient415 * - `metadata`: Arbitrary data about an nft, e.g. IPFS hash416 * - `transferable`: Ability to transfer this NFT417 **/418 mintNft: AugmentedSubmittable<(owner: Option<AccountId32> | null | object | string | Uint8Array, collectionId: u32 | AnyNumber | Uint8Array, recipient: Option<AccountId32> | null | object | string | Uint8Array, royaltyAmount: Option<Permill> | null | object | string | Uint8Array, metadata: Bytes | string | Uint8Array, transferable: bool | boolean | Uint8Array, resources: Option<Vec<RmrkTraitsResourceResourceTypes>> | null | object | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Option<AccountId32>, u32, Option<AccountId32>, Option<Permill>, Bytes, bool, Option<Vec<RmrkTraitsResourceResourceTypes>>]>;419 /**420 * Rejects an NFT sent from another account to self or owned NFT421 * 422 * Parameters:423 * - `origin`: sender of the transaction424 * - `rmrk_collection_id`: collection id of the nft to be accepted425 * - `rmrk_nft_id`: nft id of the nft to be accepted426 **/427 rejectNft: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32]>;428 /**429 * remove resource430 **/431 removeResource: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, resourceId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u32]>;432 /**433 * Transfers a NFT from an Account or NFT A to another Account or NFT B434 * 435 * Parameters:436 * - `origin`: sender of the transaction437 * - `rmrk_collection_id`: collection id of the nft to be transferred438 * - `rmrk_nft_id`: nft id of the nft to be transferred439 * - `new_owner`: new owner of the nft which can be either an account or a NFT440 **/441 send: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, newOwner: RmrkTraitsNftAccountIdOrCollectionNftTuple | { AccountId: any } | { CollectionAndNftTuple: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, RmrkTraitsNftAccountIdOrCollectionNftTuple]>;442 /**443 * set a different order of resource priority444 **/445 setPriority: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, priorities: Vec<u32> | (u32 | AnyNumber | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, u32, Vec<u32>]>;446 /**447 * set a custom value on an NFT448 **/449 setProperty: AugmentedSubmittable<(rmrkCollectionId: Compact<u32> | AnyNumber | Uint8Array, maybeNftId: Option<u32> | null | object | string | Uint8Array, key: Bytes | string | Uint8Array, value: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, Option<u32>, Bytes, Bytes]>;450 /**451 * Generic tx452 **/453 [key: string]: SubmittableExtrinsicFunction<ApiType>;454 };455 rmrkEquip: {456 /**457 * Creates a new Base.458 * Modeled after [base interaction](https://github.com/rmrk-team/rmrk-spec/blob/master/standards/rmrk2.0.0/interactions/base.md)459 * 460 * Parameters:461 * - origin: Caller, will be assigned as the issuer of the Base462 * - base_type: media type, e.g. "svg"463 * - symbol: arbitrary client-chosen symbol464 * - parts: array of Fixed and Slot parts composing the base, confined in length by465 * RmrkPartsLimit466 **/467 createBase: AugmentedSubmittable<(baseType: Bytes | string | Uint8Array, symbol: Bytes | string | Uint8Array, parts: Vec<RmrkTraitsPartPartType> | (RmrkTraitsPartPartType | { FixedPart: any } | { SlotPart: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [Bytes, Bytes, Vec<RmrkTraitsPartPartType>]>;468 equippable: AugmentedSubmittable<(baseId: u32 | AnyNumber | Uint8Array, slotId: u32 | AnyNumber | Uint8Array, equippables: RmrkTraitsPartEquippableList | { All: any } | { Empty: any } | { Custom: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, RmrkTraitsPartEquippableList]>;469 /**470 * Adds a Theme to a Base.471 * Modeled after [themeadd interaction](https://github.com/rmrk-team/rmrk-spec/blob/master/standards/rmrk2.0.0/interactions/themeadd.md)472 * Themes are stored in the Themes storage473 * A Theme named "default" is required prior to adding other Themes.474 * 475 * Parameters:476 * - origin: The caller of the function, must be issuer of the base477 * - base_id: The Base containing the Theme to be updated478 * - theme: The Theme to add to the Base. A Theme has a name and properties, which are an479 * array of [key, value, inherit].480 * - key: arbitrary BoundedString, defined by client481 * - value: arbitrary BoundedString, defined by client482 * - inherit: optional bool483 **/484 themeAdd: AugmentedSubmittable<(baseId: u32 | AnyNumber | Uint8Array, theme: RmrkTraitsTheme | { name?: any; properties?: any; inherit?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, RmrkTraitsTheme]>;485 /**486 * Generic tx487 **/488 [key: string]: SubmittableExtrinsicFunction<ApiType>;489 };490 scheduler: {491 /**492 * Cancel a named scheduled task.493 **/494 cancelNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed]>;495 /**496 * Schedule a named task.497 **/498 scheduleNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, when: u32 | AnyNumber | Uint8Array, maybePeriodic: Option<ITuple<[u32, u32]>> | null | object | string | Uint8Array, priority: u8 | AnyNumber | Uint8Array, call: FrameSupportScheduleMaybeHashed | { Value: any } | { Hash: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed, u32, Option<ITuple<[u32, u32]>>, u8, FrameSupportScheduleMaybeHashed]>;499 /**500 * Schedule a named task after a delay.501 * 502 * # <weight>503 * Same as [`schedule_named`](Self::schedule_named).504 * # </weight>505 **/506 scheduleNamedAfter: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, after: u32 | AnyNumber | Uint8Array, maybePeriodic: Option<ITuple<[u32, u32]>> | null | object | string | Uint8Array, priority: u8 | AnyNumber | Uint8Array, call: FrameSupportScheduleMaybeHashed | { Value: any } | { Hash: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed, u32, Option<ITuple<[u32, u32]>>, u8, FrameSupportScheduleMaybeHashed]>;507 /**508 * Generic tx509 **/510 [key: string]: SubmittableExtrinsicFunction<ApiType>;511 };512 structure: {513 /**514 * Generic tx515 **/516 [key: string]: SubmittableExtrinsicFunction<ApiType>;517 };518 sudo: {519 /**520 * Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo521 * key.522 * 523 * The dispatch origin for this call must be _Signed_.524 * 525 * # <weight>526 * - O(1).527 * - Limited storage reads.528 * - One DB change.529 * # </weight>530 **/531 setKey: AugmentedSubmittable<(updated: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress]>;532 /**533 * Authenticates the sudo key and dispatches a function call with `Root` origin.534 * 535 * The dispatch origin for this call must be _Signed_.536 * 537 * # <weight>538 * - O(1).539 * - Limited storage reads.540 * - One DB write (event).541 * - Weight of derivative `call` execution + 10,000.542 * # </weight>543 **/544 sudo: AugmentedSubmittable<(call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Call]>;545 /**546 * Authenticates the sudo key and dispatches a function call with `Signed` origin from547 * a given account.548 * 549 * The dispatch origin for this call must be _Signed_.550 * 551 * # <weight>552 * - O(1).553 * - Limited storage reads.554 * - One DB write (event).555 * - Weight of derivative `call` execution + 10,000.556 * # </weight>557 **/558 sudoAs: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, Call]>;559 /**560 * Authenticates the sudo key and dispatches a function call with `Root` origin.561 * This function does not check the weight of the call, and instead allows the562 * Sudo user to specify the weight of the call.563 * 564 * The dispatch origin for this call must be _Signed_.565 * 566 * # <weight>567 * - O(1).568 * - The weight of this call is defined by the caller.569 * # </weight>570 **/571 sudoUncheckedWeight: AugmentedSubmittable<(call: Call | IMethod | string | Uint8Array, weight: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Call, u64]>;572 /**573 * Generic tx574 **/575 [key: string]: SubmittableExtrinsicFunction<ApiType>;576 };577 system: {578 /**579 * A dispatch that will fill the block weight up to the given ratio.580 **/581 fillBlock: AugmentedSubmittable<(ratio: Perbill | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Perbill]>;582 /**583 * Kill all storage items with a key that starts with the given prefix.584 * 585 * **NOTE:** We rely on the Root origin to provide us the number of subkeys under586 * the prefix we are removing to accurately calculate the weight of this function.587 **/588 killPrefix: AugmentedSubmittable<(prefix: Bytes | string | Uint8Array, subkeys: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes, u32]>;589 /**590 * Kill some items from storage.591 **/592 killStorage: AugmentedSubmittable<(keys: Vec<Bytes> | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [Vec<Bytes>]>;593 /**594 * Make some on-chain remark.595 * 596 * # <weight>597 * - `O(1)`598 * # </weight>599 **/600 remark: AugmentedSubmittable<(remark: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;601 /**602 * Make some on-chain remark and emit event.603 **/604 remarkWithEvent: AugmentedSubmittable<(remark: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;605 /**606 * Set the new runtime code.607 * 608 * # <weight>609 * - `O(C + S)` where `C` length of `code` and `S` complexity of `can_set_code`610 * - 1 call to `can_set_code`: `O(S)` (calls `sp_io::misc::runtime_version` which is611 * expensive).612 * - 1 storage write (codec `O(C)`).613 * - 1 digest item.614 * - 1 event.615 * The weight of this function is dependent on the runtime, but generally this is very616 * expensive. We will treat this as a full block.617 * # </weight>618 **/619 setCode: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;620 /**621 * Set the new runtime code without doing any checks of the given `code`.622 * 623 * # <weight>624 * - `O(C)` where `C` length of `code`625 * - 1 storage write (codec `O(C)`).626 * - 1 digest item.627 * - 1 event.628 * The weight of this function is dependent on the runtime. We will treat this as a full629 * block. # </weight>630 **/631 setCodeWithoutChecks: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;632 /**633 * Set the number of pages in the WebAssembly environment's heap.634 **/635 setHeapPages: AugmentedSubmittable<(pages: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u64]>;636 /**637 * Set some items of storage.638 **/639 setStorage: AugmentedSubmittable<(items: Vec<ITuple<[Bytes, Bytes]>> | ([Bytes | string | Uint8Array, Bytes | string | Uint8Array])[]) => SubmittableExtrinsic<ApiType>, [Vec<ITuple<[Bytes, Bytes]>>]>;640 /**641 * Generic tx642 **/643 [key: string]: SubmittableExtrinsicFunction<ApiType>;644 };645 timestamp: {646 /**647 * Set the current time.648 * 649 * This call should be invoked exactly once per block. It will panic at the finalization650 * phase, if this call hasn't been invoked by that time.651 * 652 * The timestamp should be greater than the previous one by the amount specified by653 * `MinimumPeriod`.654 * 655 * The dispatch origin for this call must be `Inherent`.656 * 657 * # <weight>658 * - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)659 * - 1 storage read and 1 storage mutation (codec `O(1)`). (because of `DidUpdate::take` in660 * `on_finalize`)661 * - 1 event handler `on_timestamp_set`. Must be `O(1)`.662 * # </weight>663 **/664 set: AugmentedSubmittable<(now: Compact<u64> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u64>]>;665 /**666 * Generic tx667 **/668 [key: string]: SubmittableExtrinsicFunction<ApiType>;669 };670 treasury: {671 /**672 * Approve a proposal. At a later time, the proposal will be allocated to the beneficiary673 * and the original deposit will be returned.674 * 675 * May only be called from `T::ApproveOrigin`.676 * 677 * # <weight>678 * - Complexity: O(1).679 * - DbReads: `Proposals`, `Approvals`680 * - DbWrite: `Approvals`681 * # </weight>682 **/683 approveProposal: AugmentedSubmittable<(proposalId: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>]>;684 /**685 * Put forward a suggestion for spending. A deposit proportional to the value686 * is reserved and slashed if the proposal is rejected. It is returned once the687 * proposal is awarded.688 * 689 * # <weight>690 * - Complexity: O(1)691 * - DbReads: `ProposalCount`, `origin account`692 * - DbWrites: `ProposalCount`, `Proposals`, `origin account`693 * # </weight>694 **/695 proposeSpend: AugmentedSubmittable<(value: Compact<u128> | AnyNumber | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u128>, MultiAddress]>;696 /**697 * Reject a proposed spend. The original deposit will be slashed.698 * 699 * May only be called from `T::RejectOrigin`.700 * 701 * # <weight>702 * - Complexity: O(1)703 * - DbReads: `Proposals`, `rejected proposer account`704 * - DbWrites: `Proposals`, `rejected proposer account`705 * # </weight>706 **/707 rejectProposal: AugmentedSubmittable<(proposalId: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>]>;708 /**709 * Force a previously approved proposal to be removed from the approval queue.710 * The original deposit will no longer be returned.711 * 712 * May only be called from `T::RejectOrigin`.713 * - `proposal_id`: The index of a proposal714 * 715 * # <weight>716 * - Complexity: O(A) where `A` is the number of approvals717 * - Db reads and writes: `Approvals`718 * # </weight>719 * 720 * Errors:721 * - `ProposalNotApproved`: The `proposal_id` supplied was not found in the approval queue,722 * i.e., the proposal has not been approved. This could also mean the proposal does not723 * exist altogether, thus there is no way it would have been approved in the first place.724 **/725 removeApproval: AugmentedSubmittable<(proposalId: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>]>;726 /**727 * Generic tx728 **/729 [key: string]: SubmittableExtrinsicFunction<ApiType>;730 };731 unique: {732 /**733 * Add an admin to a collection.734 * 735 * NFT Collection can be controlled by multiple admin addresses736 * (some which can also be servers, for example). Admins can issue737 * and burn NFTs, as well as add and remove other admins,738 * but cannot change NFT or Collection ownership.739 * 740 * # Permissions741 * 742 * * Collection owner743 * * Collection admin744 * 745 * # Arguments746 * 747 * * `collection_id`: ID of the Collection to add an admin for.748 * * `new_admin`: Address of new admin to add.749 **/750 addCollectionAdmin: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newAdmin: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;751 /**752 * Add an address to allow list.753 * 754 * # Permissions755 * 756 * * Collection owner757 * * Collection admin758 * 759 * # Arguments760 * 761 * * `collection_id`: ID of the modified collection.762 * * `address`: ID of the address to be added to the allowlist.763 **/764 addToAllowList: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, address: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;765 /**766 * Allow a non-permissioned address to transfer or burn an item.767 * 768 * # Permissions769 * 770 * * Collection owner771 * * Collection admin772 * * Current item owner773 * 774 * # Arguments775 * 776 * * `spender`: Account to be approved to make specific transactions on non-owned tokens.777 * * `collection_id`: ID of the collection the item belongs to.778 * * `item_id`: ID of the item transactions on which are now approved.779 * * `amount`: Number of pieces of the item approved for a transaction (maximum of 1 for NFTs).780 * Set to 0 to revoke the approval.781 **/782 approve: AugmentedSubmittable<(spender: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, collectionId: u32 | AnyNumber | Uint8Array, itemId: u32 | AnyNumber | Uint8Array, amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [PalletEvmAccountBasicCrossAccountIdRepr, u32, u32, u128]>;783 /**784 * Destroy a token on behalf of the owner as a non-owner account.785 * 786 * See also: [`approve`][`Pallet::approve`].787 * 788 * After this method executes, one approval is removed from the total so that789 * the approved address will not be able to transfer this item again from this owner.790 * 791 * # Permissions792 * 793 * * Collection owner794 * * Collection admin795 * * Current token owner796 * * Address approved by current item owner797 * 798 * # Arguments799 * 800 * * `from`: The owner of the burning item.801 * * `collection_id`: ID of the collection to which the item belongs.802 * * `item_id`: ID of item to burn.803 * * `value`: Number of pieces to burn.804 * * Non-Fungible Mode: An NFT is indivisible, there is always 1 corresponding to an ID.805 * * Fungible Mode: The desired number of pieces to burn.806 * * Re-Fungible Mode: The desired number of pieces to burn.807 **/808 burnFrom: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, from: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, itemId: u32 | AnyNumber | Uint8Array, value: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr, u32, u128]>;809 /**810 * Destroy an item.811 * 812 * # Permissions813 * 814 * * Collection owner815 * * Collection admin816 * * Current item owner817 * 818 * # Arguments819 * 820 * * `collection_id`: ID of the collection to which the item belongs.821 * * `item_id`: ID of item to burn.822 * * `value`: Number of pieces of the item to destroy.823 * * Non-Fungible Mode: An NFT is indivisible, there is always 1 corresponding to an ID.824 * * Fungible Mode: The desired number of pieces to burn.825 * * Re-Fungible Mode: The desired number of pieces to burn.826 **/827 burnItem: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, itemId: u32 | AnyNumber | Uint8Array, value: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u128]>;828 /**829 * Change the owner of the collection.830 * 831 * # Permissions832 * 833 * * Collection owner834 * 835 * # Arguments836 * 837 * * `collection_id`: ID of the modified collection.838 * * `new_owner`: ID of the account that will become the owner.839 **/840 changeCollectionOwner: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newOwner: AccountId32 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, AccountId32]>;841 /**842 * Confirm own sponsorship of a collection, becoming the sponsor.843 * 844 * An invitation must be pending, see [`set_collection_sponsor`][`Pallet::set_collection_sponsor`].845 * Sponsor can pay the fees of a transaction instead of the sender,846 * but only within specified limits.847 * 848 * # Permissions849 * 850 * * Sponsor-to-be851 * 852 * # Arguments853 * 854 * * `collection_id`: ID of the collection with the pending sponsor.855 **/856 confirmSponsorship: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;857 /**858 * Create a collection of tokens.859 * 860 * Each Token may have multiple properties encoded as an array of bytes861 * of certain length. The initial owner of the collection is set862 * to the address that signed the transaction and can be changed later.863 * 864 * Prefer the more advanced [`create_collection_ex`][`Pallet::create_collection_ex`] instead.865 * 866 * # Permissions867 * 868 * * Anyone - becomes the owner of the new collection.869 * 870 * # Arguments871 * 872 * * `collection_name`: Wide-character string with collection name873 * (limit [`MAX_COLLECTION_NAME_LENGTH`]).874 * * `collection_description`: Wide-character string with collection description875 * (limit [`MAX_COLLECTION_DESCRIPTION_LENGTH`]).876 * * `token_prefix`: Byte string containing the token prefix to mark a collection877 * to which a token belongs (limit [`MAX_TOKEN_PREFIX_LENGTH`]).878 * * `mode`: Type of items stored in the collection and type dependent data.879 **/880 createCollection: AugmentedSubmittable<(collectionName: Vec<u16> | (u16 | AnyNumber | Uint8Array)[], collectionDescription: Vec<u16> | (u16 | AnyNumber | Uint8Array)[], tokenPrefix: Bytes | string | Uint8Array, mode: UpDataStructsCollectionMode | { NFT: any } | { Fungible: any } | { ReFungible: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Vec<u16>, Vec<u16>, Bytes, UpDataStructsCollectionMode]>;881 /**882 * Create a collection with explicit parameters.883 * 884 * Prefer it to the deprecated [`create_collection`][`Pallet::create_collection`] method.885 * 886 * # Permissions887 * 888 * * Anyone - becomes the owner of the new collection.889 * 890 * # Arguments891 * 892 * * `data`: Explicit data of a collection used for its creation.893 **/894 createCollectionEx: AugmentedSubmittable<(data: UpDataStructsCreateCollectionData | { mode?: any; access?: any; name?: any; description?: any; tokenPrefix?: any; pendingSponsor?: any; limits?: any; permissions?: any; tokenPropertyPermissions?: any; properties?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [UpDataStructsCreateCollectionData]>;895 /**896 * Mint an item within a collection.897 * 898 * A collection must exist first, see [`create_collection_ex`][`Pallet::create_collection_ex`].899 * 900 * # Permissions901 * 902 * * Collection owner903 * * Collection admin904 * * Anyone if905 * * Allow List is enabled, and906 * * Address is added to allow list, and907 * * MintPermission is enabled (see [`set_collection_permissions`][`Pallet::set_collection_permissions`])908 * 909 * # Arguments910 * 911 * * `collection_id`: ID of the collection to which an item would belong.912 * * `owner`: Address of the initial owner of the item.913 * * `data`: Token data describing the item to store on chain.914 **/915 createItem: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, owner: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, data: UpDataStructsCreateItemData | { NFT: any } | { Fungible: any } | { ReFungible: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr, UpDataStructsCreateItemData]>;916 /**917 * Create multiple items within a collection.918 * 919 * A collection must exist first, see [`create_collection_ex`][`Pallet::create_collection_ex`].920 * 921 * # Permissions922 * 923 * * Collection owner924 * * Collection admin925 * * Anyone if926 * * Allow List is enabled, and927 * * Address is added to the allow list, and928 * * MintPermission is enabled (see [`set_collection_permissions`][`Pallet::set_collection_permissions`])929 * 930 * # Arguments931 * 932 * * `collection_id`: ID of the collection to which the tokens would belong.933 * * `owner`: Address of the initial owner of the tokens.934 * * `items_data`: Vector of data describing each item to be created.935 **/936 createMultipleItems: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, owner: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, itemsData: Vec<UpDataStructsCreateItemData> | (UpDataStructsCreateItemData | { NFT: any } | { Fungible: any } | { ReFungible: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr, Vec<UpDataStructsCreateItemData>]>;937 /**938 * Create multiple items within a collection with explicitly specified initial parameters.939 * 940 * # Permissions941 * 942 * * Collection owner943 * * Collection admin944 * * Anyone if945 * * Allow List is enabled, and946 * * Address is added to allow list, and947 * * MintPermission is enabled (see [`set_collection_permissions`][`Pallet::set_collection_permissions`])948 * 949 * # Arguments950 * 951 * * `collection_id`: ID of the collection to which the tokens would belong.952 * * `data`: Explicit item creation data.953 **/954 createMultipleItemsEx: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, data: UpDataStructsCreateItemExData | { NFT: any } | { Fungible: any } | { RefungibleMultipleItems: any } | { RefungibleMultipleOwners: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, UpDataStructsCreateItemExData]>;955 /**956 * Delete specified collection properties.957 * 958 * # Permissions959 * 960 * * Collection Owner961 * * Collection Admin962 * 963 * # Arguments964 * 965 * * `collection_id`: ID of the modified collection.966 * * `property_keys`: Vector of keys of the properties to be deleted.967 * Keys support Latin letters, `-`, `_`, and `.` as symbols.968 **/969 deleteCollectionProperties: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, propertyKeys: Vec<Bytes> | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, Vec<Bytes>]>;970 /**971 * Delete specified token properties. Currently properties only work with NFTs.972 * 973 * # Permissions974 * 975 * * Depends on collection's token property permissions and specified property mutability:976 * * Collection owner977 * * Collection admin978 * * Token owner979 * 980 * # Arguments981 * 982 * * `collection_id`: ID of the collection to which the token belongs.983 * * `token_id`: ID of the modified token.984 * * `property_keys`: Vector of keys of the properties to be deleted.985 * Keys support Latin letters, `-`, `_`, and `.` as symbols.986 **/987 deleteTokenProperties: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, propertyKeys: Vec<Bytes> | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, u32, Vec<Bytes>]>;988 /**989 * Destroy a collection if no tokens exist within.990 * 991 * # Permissions992 * 993 * * Collection owner994 * 995 * # Arguments996 * 997 * * `collection_id`: Collection to destroy.998 **/999 destroyCollection: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;1000 /**1001 * Remove admin of a collection.1002 * 1003 * An admin address can remove itself. List of admins may become empty,1004 * in which case only Collection Owner will be able to add an Admin.1005 * 1006 * # Permissions1007 * 1008 * * Collection owner1009 * * Collection admin1010 * 1011 * # Arguments1012 * 1013 * * `collection_id`: ID of the collection to remove the admin for.1014 * * `account_id`: Address of the admin to remove.1015 **/1016 removeCollectionAdmin: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, accountId: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;1017 /**1018 * Remove a collection's a sponsor, making everyone pay for their own transactions.1019 * 1020 * # Permissions1021 * 1022 * * Collection owner1023 * 1024 * # Arguments1025 * 1026 * * `collection_id`: ID of the collection with the sponsor to remove.1027 **/1028 removeCollectionSponsor: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;1029 /**1030 * Remove an address from allow list.1031 * 1032 * # Permissions1033 * 1034 * * Collection owner1035 * * Collection admin1036 * 1037 * # Arguments1038 * 1039 * * `collection_id`: ID of the modified collection.1040 * * `address`: ID of the address to be removed from the allowlist.1041 **/1042 removeFromAllowList: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, address: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;1043 /**1044 * Re-partition a refungible token, while owning all of its parts/pieces.1045 * 1046 * # Permissions1047 * 1048 * * Token owner (must own every part)1049 * 1050 * # Arguments1051 * 1052 * * `collection_id`: ID of the collection the RFT belongs to.1053 * * `token_id`: ID of the RFT.1054 * * `amount`: New number of parts/pieces into which the token shall be partitioned.1055 **/1056 repartition: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u128]>;1057 /**1058 * Set specific limits of a collection. Empty, or None fields mean chain default.1059 * 1060 * # Permissions1061 * 1062 * * Collection owner1063 * * Collection admin1064 * 1065 * # Arguments1066 * 1067 * * `collection_id`: ID of the modified collection.1068 * * `new_limit`: New limits of the collection. Fields that are not set (None)1069 * will not overwrite the old ones.1070 **/1071 setCollectionLimits: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newLimit: UpDataStructsCollectionLimits | { accountTokenOwnershipLimit?: any; sponsoredDataSize?: any; sponsoredDataRateLimit?: any; tokenLimit?: any; sponsorTransferTimeout?: any; sponsorApproveTimeout?: any; ownerCanTransfer?: any; ownerCanDestroy?: any; transfersEnabled?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, UpDataStructsCollectionLimits]>;1072 /**1073 * Set specific permissions of a collection. Empty, or None fields mean chain default.1074 * 1075 * # Permissions1076 * 1077 * * Collection owner1078 * * Collection admin1079 * 1080 * # Arguments1081 * 1082 * * `collection_id`: ID of the modified collection.1083 * * `new_permission`: New permissions of the collection. Fields that are not set (None)1084 * will not overwrite the old ones.1085 **/1086 setCollectionPermissions: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newPermission: UpDataStructsCollectionPermissions | { access?: any; mintMode?: any; nesting?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, UpDataStructsCollectionPermissions]>;1087 /**1088 * Add or change collection properties.1089 * 1090 * # Permissions1091 * 1092 * * Collection owner1093 * * Collection admin1094 * 1095 * # Arguments1096 * 1097 * * `collection_id`: ID of the modified collection.1098 * * `properties`: Vector of key-value pairs stored as the collection's metadata.1099 * Keys support Latin letters, `-`, `_`, and `.` as symbols.1100 **/1101 setCollectionProperties: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, properties: Vec<UpDataStructsProperty> | (UpDataStructsProperty | { key?: any; value?: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, Vec<UpDataStructsProperty>]>;1102 /**1103 * Set (invite) a new collection sponsor.1104 * 1105 * If successful, confirmation from the sponsor-to-be will be pending.1106 * 1107 * # Permissions1108 * 1109 * * Collection owner1110 * * Collection admin1111 * 1112 * # Arguments1113 * 1114 * * `collection_id`: ID of the modified collection.1115 * * `new_sponsor`: ID of the account of the sponsor-to-be.1116 **/1117 setCollectionSponsor: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newSponsor: AccountId32 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, AccountId32]>;1118 /**1119 * Add or change token properties according to collection's permissions.1120 * Currently properties only work with NFTs.1121 * 1122 * # Permissions1123 * 1124 * * Depends on collection's token property permissions and specified property mutability:1125 * * Collection owner1126 * * Collection admin1127 * * Token owner1128 * 1129 * See [`set_token_property_permissions`][`Pallet::set_token_property_permissions`].1130 * 1131 * # Arguments1132 * 1133 * * `collection_id: ID of the collection to which the token belongs.1134 * * `token_id`: ID of the modified token.1135 * * `properties`: Vector of key-value pairs stored as the token's metadata.1136 * Keys support Latin letters, `-`, `_`, and `.` as symbols.1137 **/1138 setTokenProperties: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, properties: Vec<UpDataStructsProperty> | (UpDataStructsProperty | { key?: any; value?: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, u32, Vec<UpDataStructsProperty>]>;1139 /**1140 * Add or change token property permissions of a collection.1141 * 1142 * Without a permission for a particular key, a property with that key1143 * cannot be created in a token.1144 * 1145 * # Permissions1146 * 1147 * * Collection owner1148 * * Collection admin1149 * 1150 * # Arguments1151 * 1152 * * `collection_id`: ID of the modified collection.1153 * * `property_permissions`: Vector of permissions for property keys.1154 * Keys support Latin letters, `-`, `_`, and `.` as symbols.1155 **/1156 setTokenPropertyPermissions: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, propertyPermissions: Vec<UpDataStructsPropertyKeyPermission> | (UpDataStructsPropertyKeyPermission | { key?: any; permission?: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, Vec<UpDataStructsPropertyKeyPermission>]>;1157 /**1158 * Completely allow or disallow transfers for a particular collection.1159 * 1160 * # Permissions1161 * 1162 * * Collection owner1163 * 1164 * # Arguments1165 * 1166 * * `collection_id`: ID of the collection.1167 * * `value`: New value of the flag, are transfers allowed?1168 **/1169 setTransfersEnabledFlag: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, value: bool | boolean | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, bool]>;1170 /**1171 * Change ownership of the token.1172 * 1173 * # Permissions1174 * 1175 * * Collection owner1176 * * Collection admin1177 * * Current token owner1178 * 1179 * # Arguments1180 * 1181 * * `recipient`: Address of token recipient.1182 * * `collection_id`: ID of the collection the item belongs to.1183 * * `item_id`: ID of the item.1184 * * Non-Fungible Mode: Required.1185 * * Fungible Mode: Ignored.1186 * * Re-Fungible Mode: Required.1187 * 1188 * * `value`: Amount to transfer.1189 * * Non-Fungible Mode: An NFT is indivisible, there is always 1 corresponding to an ID.1190 * * Fungible Mode: The desired number of pieces to transfer.1191 * * Re-Fungible Mode: The desired number of pieces to transfer.1192 **/1193 transfer: AugmentedSubmittable<(recipient: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, collectionId: u32 | AnyNumber | Uint8Array, itemId: u32 | AnyNumber | Uint8Array, value: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [PalletEvmAccountBasicCrossAccountIdRepr, u32, u32, u128]>;1194 /**1195 * Change ownership of an item on behalf of the owner as a non-owner account.1196 * 1197 * See the [`approve`][`Pallet::approve`] method for additional information.1198 * 1199 * After this method executes, one approval is removed from the total so that1200 * the approved address will not be able to transfer this item again from this owner.1201 * 1202 * # Permissions1203 * 1204 * * Collection owner1205 * * Collection admin1206 * * Current item owner1207 * * Address approved by current item owner1208 * 1209 * # Arguments1210 * 1211 * * `from`: Address that currently owns the token.1212 * * `recipient`: Address of the new token-owner-to-be.1213 * * `collection_id`: ID of the collection the item.1214 * * `item_id`: ID of the item to be transferred.1215 * * `value`: Amount to transfer.1216 * * Non-Fungible Mode: An NFT is indivisible, there is always 1 corresponding to an ID.1217 * * Fungible Mode: The desired number of pieces to transfer.1218 * * Re-Fungible Mode: The desired number of pieces to transfer.1219 **/1220 transferFrom: AugmentedSubmittable<(from: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, recipient: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, collectionId: u32 | AnyNumber | Uint8Array, itemId: u32 | AnyNumber | Uint8Array, value: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u32, u32, u128]>;1221 /**1222 * Generic tx1223 **/1224 [key: string]: SubmittableExtrinsicFunction<ApiType>;1225 };1226 vesting: {1227 claim: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;1228 claimFor: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress]>;1229 updateVestingSchedules: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, vestingSchedules: Vec<OrmlVestingVestingSchedule> | (OrmlVestingVestingSchedule | { start?: any; period?: any; periodCount?: any; perPeriod?: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [MultiAddress, Vec<OrmlVestingVestingSchedule>]>;1230 vestedTransfer: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, schedule: OrmlVestingVestingSchedule | { start?: any; period?: any; periodCount?: any; perPeriod?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, OrmlVestingVestingSchedule]>;1231 /**1232 * Generic tx1233 **/1234 [key: string]: SubmittableExtrinsicFunction<ApiType>;1235 };1236 xcmpQueue: {1237 /**1238 * Resumes all XCM executions for the XCMP queue.1239 * 1240 * Note that this function doesn't change the status of the in/out bound channels.1241 * 1242 * - `origin`: Must pass `ControllerOrigin`.1243 **/1244 resumeXcmExecution: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;1245 /**1246 * Services a single overweight XCM.1247 * 1248 * - `origin`: Must pass `ExecuteOverweightOrigin`.1249 * - `index`: The index of the overweight XCM to service1250 * - `weight_limit`: The amount of weight that XCM execution may take.1251 * 1252 * Errors:1253 * - `BadOverweightIndex`: XCM under `index` is not found in the `Overweight` storage map.1254 * - `BadXcm`: XCM under `index` cannot be properly decoded into a valid XCM format.1255 * - `WeightOverLimit`: XCM execution may use greater `weight_limit`.1256 * 1257 * Events:1258 * - `OverweightServiced`: On success.1259 **/1260 serviceOverweight: AugmentedSubmittable<(index: u64 | AnyNumber | Uint8Array, weightLimit: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u64, u64]>;1261 /**1262 * Suspends all XCM executions for the XCMP queue, regardless of the sender's origin.1263 * 1264 * - `origin`: Must pass `ControllerOrigin`.1265 **/1266 suspendXcmExecution: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;1267 /**1268 * Overwrites the number of pages of messages which must be in the queue after which we drop any further1269 * messages from the channel.1270 * 1271 * - `origin`: Must pass `Root`.1272 * - `new`: Desired value for `QueueConfigData.drop_threshold`1273 **/1274 updateDropThreshold: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;1275 /**1276 * Overwrites the number of pages of messages which the queue must be reduced to before it signals that1277 * message sending may recommence after it has been suspended.1278 * 1279 * - `origin`: Must pass `Root`.1280 * - `new`: Desired value for `QueueConfigData.resume_threshold`1281 **/1282 updateResumeThreshold: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;1283 /**1284 * Overwrites the number of pages of messages which must be in the queue for the other side to be told to1285 * suspend their sending.1286 * 1287 * - `origin`: Must pass `Root`.1288 * - `new`: Desired value for `QueueConfigData.suspend_value`1289 **/1290 updateSuspendThreshold: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;1291 /**1292 * Overwrites the amount of remaining weight under which we stop processing messages.1293 * 1294 * - `origin`: Must pass `Root`.1295 * - `new`: Desired value for `QueueConfigData.threshold_weight`1296 **/1297 updateThresholdWeight: AugmentedSubmittable<(updated: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u64]>;1298 /**1299 * Overwrites the speed to which the available weight approaches the maximum weight.1300 * A lower number results in a faster progression. A value of 1 makes the entire weight available initially.1301 * 1302 * - `origin`: Must pass `Root`.1303 * - `new`: Desired value for `QueueConfigData.weight_restrict_decay`.1304 **/1305 updateWeightRestrictDecay: AugmentedSubmittable<(updated: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u64]>;1306 /**1307 * Overwrite the maximum amount of weight any individual message may consume.1308 * Messages above this weight go into the overweight queue and may only be serviced explicitly.1309 * 1310 * - `origin`: Must pass `Root`.1311 * - `new`: Desired value for `QueueConfigData.xcmp_max_individual_weight`.1312 **/1313 updateXcmpMaxIndividualWeight: AugmentedSubmittable<(updated: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u64]>;1314 /**1315 * Generic tx1316 **/1317 [key: string]: SubmittableExtrinsicFunction<ApiType>;1318 };1319 } // AugmentedSubmittables1320} // declare module1// Auto-generated via `yarn polkadot-types-from-chain`, do not edit2/* eslint-disable */34import type { ApiTypes } from '@polkadot/api-base/types';5import type { Bytes, Compact, Option, U256, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';6import type { AnyNumber, IMethod, ITuple } from '@polkadot/types-codec/types';7import type { AccountId32, Call, H160, H256, MultiAddress, Perbill, Permill } from '@polkadot/types/interfaces/runtime';8import type { CumulusPrimitivesParachainInherentParachainInherentData, EthereumTransactionTransactionV2, FrameSupportScheduleMaybeHashed, OrmlVestingVestingSchedule, PalletEvmAccountBasicCrossAccountIdRepr, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsPartEquippableList, RmrkTraitsPartPartType, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCreateCollectionData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, XcmV1MultiLocation, XcmV2WeightLimit, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';910declare module '@polkadot/api-base/types/submittable' {11 export interface AugmentedSubmittables<ApiType extends ApiTypes> {12 balances: {13 /**14 * Exactly as `transfer`, except the origin must be root and the source account may be15 * specified.16 * # <weight>17 * - Same as transfer, but additional read and write because the source account is not18 * assumed to be in the overlay.19 * # </weight>20 **/21 forceTransfer: AugmentedSubmittable<(source: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact<u128> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, MultiAddress, Compact<u128>]>;22 /**23 * Unreserve some balance from a user by force.24 * 25 * Can only be called by ROOT.26 **/27 forceUnreserve: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, u128]>;28 /**29 * Set the balances of a given account.30 * 31 * This will alter `FreeBalance` and `ReservedBalance` in storage. it will32 * also alter the total issuance of the system (`TotalIssuance`) appropriately.33 * If the new free or reserved balance is below the existential deposit,34 * it will reset the account nonce (`frame_system::AccountNonce`).35 * 36 * The dispatch origin for this call is `root`.37 **/38 setBalance: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, newFree: Compact<u128> | AnyNumber | Uint8Array, newReserved: Compact<u128> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, Compact<u128>, Compact<u128>]>;39 /**40 * Transfer some liquid free balance to another account.41 * 42 * `transfer` will set the `FreeBalance` of the sender and receiver.43 * If the sender's account is below the existential deposit as a result44 * of the transfer, the account will be reaped.45 * 46 * The dispatch origin for this call must be `Signed` by the transactor.47 * 48 * # <weight>49 * - Dependent on arguments but not critical, given proper implementations for input config50 * types. See related functions below.51 * - It contains a limited number of reads and writes internally and no complex52 * computation.53 * 54 * Related functions:55 * 56 * - `ensure_can_withdraw` is always called internally but has a bounded complexity.57 * - Transferring balances to accounts that did not exist before will cause58 * `T::OnNewAccount::on_new_account` to be called.59 * - Removing enough funds from an account will trigger `T::DustRemoval::on_unbalanced`.60 * - `transfer_keep_alive` works the same way as `transfer`, but has an additional check61 * that the transfer will not kill the origin account.62 * ---------------------------------63 * - Origin account is already in memory, so no DB operations for them.64 * # </weight>65 **/66 transfer: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact<u128> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, Compact<u128>]>;67 /**68 * Transfer the entire transferable balance from the caller account.69 * 70 * NOTE: This function only attempts to transfer _transferable_ balances. This means that71 * any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be72 * transferred by this function. To ensure that this function results in a killed account,73 * you might need to prepare the account by removing any reference counters, storage74 * deposits, etc...75 * 76 * The dispatch origin of this call must be Signed.77 * 78 * - `dest`: The recipient of the transfer.79 * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all80 * of the funds the account has, causing the sender account to be killed (false), or81 * transfer everything except at least the existential deposit, which will guarantee to82 * keep the sender account alive (true). # <weight>83 * - O(1). Just like transfer, but reading the user's transferable balance first.84 * #</weight>85 **/86 transferAll: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, keepAlive: bool | boolean | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, bool]>;87 /**88 * Same as the [`transfer`] call, but with a check that the transfer will not kill the89 * origin account.90 * 91 * 99% of the time you want [`transfer`] instead.92 * 93 * [`transfer`]: struct.Pallet.html#method.transfer94 **/95 transferKeepAlive: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact<u128> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, Compact<u128>]>;96 /**97 * Generic tx98 **/99 [key: string]: SubmittableExtrinsicFunction<ApiType>;100 };101 charging: {102 /**103 * Generic tx104 **/105 [key: string]: SubmittableExtrinsicFunction<ApiType>;106 };107 cumulusXcm: {108 /**109 * Generic tx110 **/111 [key: string]: SubmittableExtrinsicFunction<ApiType>;112 };113 dmpQueue: {114 /**115 * Service a single overweight message.116 * 117 * - `origin`: Must pass `ExecuteOverweightOrigin`.118 * - `index`: The index of the overweight message to service.119 * - `weight_limit`: The amount of weight that message execution may take.120 * 121 * Errors:122 * - `Unknown`: Message of `index` is unknown.123 * - `OverLimit`: Message execution may use greater than `weight_limit`.124 * 125 * Events:126 * - `OverweightServiced`: On success.127 **/128 serviceOverweight: AugmentedSubmittable<(index: u64 | AnyNumber | Uint8Array, weightLimit: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u64, u64]>;129 /**130 * Generic tx131 **/132 [key: string]: SubmittableExtrinsicFunction<ApiType>;133 };134 ethereum: {135 /**136 * Transact an Ethereum transaction.137 **/138 transact: AugmentedSubmittable<(transaction: EthereumTransactionTransactionV2 | { Legacy: any } | { EIP2930: any } | { EIP1559: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [EthereumTransactionTransactionV2]>;139 /**140 * Generic tx141 **/142 [key: string]: SubmittableExtrinsicFunction<ApiType>;143 };144 evm: {145 /**146 * Issue an EVM call operation. This is similar to a message call transaction in Ethereum.147 **/148 call: AugmentedSubmittable<(source: H160 | string | Uint8Array, target: H160 | string | Uint8Array, input: Bytes | string | Uint8Array, value: U256 | AnyNumber | Uint8Array, gasLimit: u64 | AnyNumber | Uint8Array, maxFeePerGas: U256 | AnyNumber | Uint8Array, maxPriorityFeePerGas: Option<U256> | null | object | string | Uint8Array, nonce: Option<U256> | null | object | string | Uint8Array, accessList: Vec<ITuple<[H160, Vec<H256>]>> | ([H160 | string | Uint8Array, Vec<H256> | (H256 | string | Uint8Array)[]])[]) => SubmittableExtrinsic<ApiType>, [H160, H160, Bytes, U256, u64, U256, Option<U256>, Option<U256>, Vec<ITuple<[H160, Vec<H256>]>>]>;149 /**150 * Issue an EVM create operation. This is similar to a contract creation transaction in151 * Ethereum.152 **/153 create: AugmentedSubmittable<(source: H160 | string | Uint8Array, init: Bytes | string | Uint8Array, value: U256 | AnyNumber | Uint8Array, gasLimit: u64 | AnyNumber | Uint8Array, maxFeePerGas: U256 | AnyNumber | Uint8Array, maxPriorityFeePerGas: Option<U256> | null | object | string | Uint8Array, nonce: Option<U256> | null | object | string | Uint8Array, accessList: Vec<ITuple<[H160, Vec<H256>]>> | ([H160 | string | Uint8Array, Vec<H256> | (H256 | string | Uint8Array)[]])[]) => SubmittableExtrinsic<ApiType>, [H160, Bytes, U256, u64, U256, Option<U256>, Option<U256>, Vec<ITuple<[H160, Vec<H256>]>>]>;154 /**155 * Issue an EVM create2 operation.156 **/157 create2: AugmentedSubmittable<(source: H160 | string | Uint8Array, init: Bytes | string | Uint8Array, salt: H256 | string | Uint8Array, value: U256 | AnyNumber | Uint8Array, gasLimit: u64 | AnyNumber | Uint8Array, maxFeePerGas: U256 | AnyNumber | Uint8Array, maxPriorityFeePerGas: Option<U256> | null | object | string | Uint8Array, nonce: Option<U256> | null | object | string | Uint8Array, accessList: Vec<ITuple<[H160, Vec<H256>]>> | ([H160 | string | Uint8Array, Vec<H256> | (H256 | string | Uint8Array)[]])[]) => SubmittableExtrinsic<ApiType>, [H160, Bytes, H256, U256, u64, U256, Option<U256>, Option<U256>, Vec<ITuple<[H160, Vec<H256>]>>]>;158 /**159 * Withdraw balance from EVM into currency/balances pallet.160 **/161 withdraw: AugmentedSubmittable<(address: H160 | string | Uint8Array, value: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [H160, u128]>;162 /**163 * Generic tx164 **/165 [key: string]: SubmittableExtrinsicFunction<ApiType>;166 };167 evmMigration: {168 begin: AugmentedSubmittable<(address: H160 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H160]>;169 finish: AugmentedSubmittable<(address: H160 | string | Uint8Array, code: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H160, Bytes]>;170 setData: AugmentedSubmittable<(address: H160 | string | Uint8Array, data: Vec<ITuple<[H256, H256]>> | ([H256 | string | Uint8Array, H256 | string | Uint8Array])[]) => SubmittableExtrinsic<ApiType>, [H160, Vec<ITuple<[H256, H256]>>]>;171 /**172 * Generic tx173 **/174 [key: string]: SubmittableExtrinsicFunction<ApiType>;175 };176 inflation: {177 /**178 * This method sets the inflation start date. Can be only called once.179 * Inflation start block can be backdated and will catch up. The method will create Treasury180 * account if it does not exist and perform the first inflation deposit.181 * 182 * # Permissions183 * 184 * * Root185 * 186 * # Arguments187 * 188 * * inflation_start_relay_block: The relay chain block at which inflation should start189 **/190 startInflation: AugmentedSubmittable<(inflationStartRelayBlock: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;191 /**192 * Generic tx193 **/194 [key: string]: SubmittableExtrinsicFunction<ApiType>;195 };196 parachainSystem: {197 authorizeUpgrade: AugmentedSubmittable<(codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H256]>;198 enactAuthorizedUpgrade: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;199 /**200 * Set the current validation data.201 * 202 * This should be invoked exactly once per block. It will panic at the finalization203 * phase if the call was not invoked.204 * 205 * The dispatch origin for this call must be `Inherent`206 * 207 * As a side effect, this function upgrades the current validation function208 * if the appropriate time has come.209 **/210 setValidationData: AugmentedSubmittable<(data: CumulusPrimitivesParachainInherentParachainInherentData | { validationData?: any; relayChainState?: any; downwardMessages?: any; horizontalMessages?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [CumulusPrimitivesParachainInherentParachainInherentData]>;211 sudoSendUpwardMessage: AugmentedSubmittable<(message: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;212 /**213 * Generic tx214 **/215 [key: string]: SubmittableExtrinsicFunction<ApiType>;216 };217 polkadotXcm: {218 /**219 * Execute an XCM message from a local, signed, origin.220 * 221 * An event is deposited indicating whether `msg` could be executed completely or only222 * partially.223 * 224 * No more than `max_weight` will be used in its attempted execution. If this is less than the225 * maximum amount of weight that the message could take to be executed, then no execution226 * attempt will be made.227 * 228 * NOTE: A successful return to this does *not* imply that the `msg` was executed successfully229 * to completion; only that *some* of it was executed.230 **/231 execute: AugmentedSubmittable<(message: XcmVersionedXcm | { V0: any } | { V1: any } | { V2: any } | string | Uint8Array, maxWeight: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedXcm, u64]>;232 /**233 * Set a safe XCM version (the version that XCM should be encoded with if the most recent234 * version a destination can accept is unknown).235 * 236 * - `origin`: Must be Root.237 * - `maybe_xcm_version`: The default XCM encoding version, or `None` to disable.238 **/239 forceDefaultXcmVersion: AugmentedSubmittable<(maybeXcmVersion: Option<u32> | null | object | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Option<u32>]>;240 /**241 * Ask a location to notify us regarding their XCM version and any changes to it.242 * 243 * - `origin`: Must be Root.244 * - `location`: The location to which we should subscribe for XCM version notifications.245 **/246 forceSubscribeVersionNotify: AugmentedSubmittable<(location: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation]>;247 /**248 * Require that a particular destination should no longer notify us regarding any XCM249 * version changes.250 * 251 * - `origin`: Must be Root.252 * - `location`: The location to which we are currently subscribed for XCM version253 * notifications which we no longer desire.254 **/255 forceUnsubscribeVersionNotify: AugmentedSubmittable<(location: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation]>;256 /**257 * Extoll that a particular destination can be communicated with through a particular258 * version of XCM.259 * 260 * - `origin`: Must be Root.261 * - `location`: The destination that is being described.262 * - `xcm_version`: The latest version of XCM that `location` supports.263 **/264 forceXcmVersion: AugmentedSubmittable<(location: XcmV1MultiLocation | { parents?: any; interior?: any } | string | Uint8Array, xcmVersion: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmV1MultiLocation, u32]>;265 /**266 * Transfer some assets from the local chain to the sovereign account of a destination267 * chain and forward a notification XCM.268 * 269 * Fee payment on the destination side is made from the asset in the `assets` vector of270 * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight271 * is needed than `weight_limit`, then the operation will fail and the assets send may be272 * at risk.273 * 274 * - `origin`: Must be capable of withdrawing the `assets` and executing XCM.275 * - `dest`: Destination context for the assets. Will typically be `X2(Parent, Parachain(..))` to send276 * from parachain to parachain, or `X1(Parachain(..))` to send from relay to parachain.277 * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be278 * an `AccountId32` value.279 * - `assets`: The assets to be withdrawn. This should include the assets used to pay the fee on the280 * `dest` side.281 * - `fee_asset_item`: The index into `assets` of the item which should be used to pay282 * fees.283 * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase.284 **/285 limitedReserveTransferAssets: AugmentedSubmittable<(dest: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, beneficiary: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, assets: XcmVersionedMultiAssets | { V0: any } | { V1: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array, weightLimit: XcmV2WeightLimit | { Unlimited: any } | { Limited: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation, XcmVersionedMultiLocation, XcmVersionedMultiAssets, u32, XcmV2WeightLimit]>;286 /**287 * Teleport some assets from the local chain to some destination chain.288 * 289 * Fee payment on the destination side is made from the asset in the `assets` vector of290 * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight291 * is needed than `weight_limit`, then the operation will fail and the assets send may be292 * at risk.293 * 294 * - `origin`: Must be capable of withdrawing the `assets` and executing XCM.295 * - `dest`: Destination context for the assets. Will typically be `X2(Parent, Parachain(..))` to send296 * from parachain to parachain, or `X1(Parachain(..))` to send from relay to parachain.297 * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be298 * an `AccountId32` value.299 * - `assets`: The assets to be withdrawn. The first item should be the currency used to to pay the fee on the300 * `dest` side. May not be empty.301 * - `fee_asset_item`: The index into `assets` of the item which should be used to pay302 * fees.303 * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase.304 **/305 limitedTeleportAssets: AugmentedSubmittable<(dest: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, beneficiary: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, assets: XcmVersionedMultiAssets | { V0: any } | { V1: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array, weightLimit: XcmV2WeightLimit | { Unlimited: any } | { Limited: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation, XcmVersionedMultiLocation, XcmVersionedMultiAssets, u32, XcmV2WeightLimit]>;306 /**307 * Transfer some assets from the local chain to the sovereign account of a destination308 * chain and forward a notification XCM.309 * 310 * Fee payment on the destination side is made from the asset in the `assets` vector of311 * index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,312 * with all fees taken as needed from the asset.313 * 314 * - `origin`: Must be capable of withdrawing the `assets` and executing XCM.315 * - `dest`: Destination context for the assets. Will typically be `X2(Parent, Parachain(..))` to send316 * from parachain to parachain, or `X1(Parachain(..))` to send from relay to parachain.317 * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be318 * an `AccountId32` value.319 * - `assets`: The assets to be withdrawn. This should include the assets used to pay the fee on the320 * `dest` side.321 * - `fee_asset_item`: The index into `assets` of the item which should be used to pay322 * fees.323 **/324 reserveTransferAssets: AugmentedSubmittable<(dest: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, beneficiary: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, assets: XcmVersionedMultiAssets | { V0: any } | { V1: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation, XcmVersionedMultiLocation, XcmVersionedMultiAssets, u32]>;325 send: AugmentedSubmittable<(dest: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, message: XcmVersionedXcm | { V0: any } | { V1: any } | { V2: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation, XcmVersionedXcm]>;326 /**327 * Teleport some assets from the local chain to some destination chain.328 * 329 * Fee payment on the destination side is made from the asset in the `assets` vector of330 * index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,331 * with all fees taken as needed from the asset.332 * 333 * - `origin`: Must be capable of withdrawing the `assets` and executing XCM.334 * - `dest`: Destination context for the assets. Will typically be `X2(Parent, Parachain(..))` to send335 * from parachain to parachain, or `X1(Parachain(..))` to send from relay to parachain.336 * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be337 * an `AccountId32` value.338 * - `assets`: The assets to be withdrawn. The first item should be the currency used to to pay the fee on the339 * `dest` side. May not be empty.340 * - `fee_asset_item`: The index into `assets` of the item which should be used to pay341 * fees.342 **/343 teleportAssets: AugmentedSubmittable<(dest: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, beneficiary: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, assets: XcmVersionedMultiAssets | { V0: any } | { V1: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation, XcmVersionedMultiLocation, XcmVersionedMultiAssets, u32]>;344 /**345 * Generic tx346 **/347 [key: string]: SubmittableExtrinsicFunction<ApiType>;348 };349 rmrkCore: {350 /**351 * Accept an NFT sent from another account to self or an owned NFT.352 * 353 * The NFT in question must be pending, and, thus, be [sent](`Pallet::send`) first.354 * 355 * # Permissions:356 * - Token-owner-to-be357 * 358 * # Arguments:359 * - `rmrk_collection_id`: RMRK collection ID of the NFT to be accepted.360 * - `rmrk_nft_id`: ID of the NFT to be accepted.361 * - `new_owner`: Either the sender's account ID or a sender-owned NFT,362 * whichever the accepted NFT was sent to.363 **/364 acceptNft: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, newOwner: RmrkTraitsNftAccountIdOrCollectionNftTuple | { AccountId: any } | { CollectionAndNftTuple: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, RmrkTraitsNftAccountIdOrCollectionNftTuple]>;365 /**366 * Accept the addition of a newly created pending resource to an existing NFT.367 * 368 * This transaction is needed when a resource is created and assigned to an NFT369 * by a non-owner, i.e. the collection issuer, with one of the370 * [`add_...` transactions](Pallet::add_basic_resource).371 * 372 * # Permissions:373 * - Token owner374 * 375 * # Arguments:376 * - `rmrk_collection_id`: RMRK collection ID of the NFT.377 * - `rmrk_nft_id`: ID of the NFT with a pending resource to be accepted.378 * - `resource_id`: ID of the newly created pending resource.379 **/380 acceptResource: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, resourceId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u32]>;381 /**382 * Accept the removal of a removal-pending resource from an NFT.383 * 384 * This transaction is needed when a non-owner, i.e. the collection issuer,385 * requests a [removal](`Pallet::remove_resource`) of a resource from an NFT.386 * 387 * # Permissions:388 * - Token owner389 * 390 * # Arguments:391 * - `rmrk_collection_id`: RMRK collection ID of the NFT.392 * - `rmrk_nft_id`: ID of the NFT with a resource to be removed.393 * - `resource_id`: ID of the removal-pending resource.394 **/395 acceptResourceRemoval: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, resourceId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u32]>;396 /**397 * Create and set/propose a basic resource for an NFT.398 * 399 * A basic resource is the simplest, lacking a Base and anything that comes with it.400 * See RMRK docs for more information and examples.401 * 402 * # Permissions:403 * - Collection issuer - if not the token owner, adding the resource will warrant404 * the owner's [acceptance](Pallet::accept_resource).405 * 406 * # Arguments:407 * - `rmrk_collection_id`: RMRK collection ID of the NFT.408 * - `nft_id`: ID of the NFT to assign a resource to.409 * - `resource`: Data of the resource to be created.410 **/411 addBasicResource: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, resource: RmrkTraitsResourceBasicResource | { src?: any; metadata?: any; license?: any; thumb?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, RmrkTraitsResourceBasicResource]>;412 /**413 * Create and set/propose a composable resource for an NFT.414 * 415 * A composable resource links to a Base and has a subset of its Parts it is composed of.416 * See RMRK docs for more information and examples.417 * 418 * # Permissions:419 * - Collection issuer - if not the token owner, adding the resource will warrant420 * the owner's [acceptance](Pallet::accept_resource).421 * 422 * # Arguments:423 * - `rmrk_collection_id`: RMRK collection ID of the NFT.424 * - `nft_id`: ID of the NFT to assign a resource to.425 * - `resource`: Data of the resource to be created.426 **/427 addComposableResource: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, resource: RmrkTraitsResourceComposableResource | { parts?: any; base?: any; src?: any; metadata?: any; license?: any; thumb?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, RmrkTraitsResourceComposableResource]>;428 /**429 * Create and set/propose a slot resource for an NFT.430 * 431 * A slot resource links to a Base and a slot ID in it which it can fit into.432 * See RMRK docs for more information and examples.433 * 434 * # Permissions:435 * - Collection issuer - if not the token owner, adding the resource will warrant436 * the owner's [acceptance](Pallet::accept_resource).437 * 438 * # Arguments:439 * - `rmrk_collection_id`: RMRK collection ID of the NFT.440 * - `nft_id`: ID of the NFT to assign a resource to.441 * - `resource`: Data of the resource to be created.442 **/443 addSlotResource: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, resource: RmrkTraitsResourceSlotResource | { base?: any; src?: any; metadata?: any; slot?: any; license?: any; thumb?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, RmrkTraitsResourceSlotResource]>;444 /**445 * Burn an NFT, destroying it and its nested tokens up to the specified limit.446 * If the burning budget is exceeded, the transaction is reverted.447 * 448 * This is the way to burn a nested token as well.449 * 450 * For more information, see [`burn_recursively`](pallet_nonfungible::pallet::Pallet::burn_recursively).451 * 452 * # Permissions:453 * * Token owner454 * 455 * # Arguments:456 * - `collection_id`: RMRK ID of the collection in which the NFT to burn belongs to.457 * - `nft_id`: ID of the NFT to be destroyed.458 * - `max_burns`: Maximum number of tokens to burn, assuming nesting. The transaction459 * is reverted if there are more tokens to burn in the nesting tree than this number.460 * This is primarily a mechanism of transaction weight control.461 **/462 burnNft: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, maxBurns: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u32]>;463 /**464 * Change the issuer of a collection. Analogous to Unique's collection's [`owner`](up_data_structs::Collection).465 * 466 * # Permissions:467 * * Collection issuer468 * 469 * # Arguments:470 * - `collection_id`: RMRK collection ID to change the issuer of.471 * - `new_issuer`: Collection's new issuer.472 **/473 changeCollectionIssuer: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newIssuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, MultiAddress]>;474 /**475 * Create a new collection of NFTs.476 * 477 * # Permissions:478 * * Anyone - will be assigned as the issuer of the collection.479 * 480 * # Arguments:481 * - `metadata`: Metadata describing the collection, e.g. IPFS hash. Cannot be changed.482 * - `max`: Optional maximum number of tokens.483 * - `symbol`: UTF-8 string with token prefix, by which to represent the token in wallets and UIs.484 * Analogous to Unique's [`token_prefix`](up_data_structs::Collection). Cannot be changed.485 **/486 createCollection: AugmentedSubmittable<(metadata: Bytes | string | Uint8Array, max: Option<u32> | null | object | string | Uint8Array, symbol: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes, Option<u32>, Bytes]>;487 /**488 * Destroy a collection.489 * 490 * Only empty collections can be destroyed. If it has any tokens, they must be burned first.491 * 492 * # Permissions:493 * * Collection issuer494 * 495 * # Arguments:496 * - `collection_id`: RMRK ID of the collection to destroy.497 **/498 destroyCollection: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;499 /**500 * "Lock" the collection and prevent new token creation. Cannot be undone.501 * 502 * # Permissions:503 * * Collection issuer504 * 505 * # Arguments:506 * - `collection_id`: RMRK ID of the collection to lock.507 **/508 lockCollection: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;509 /**510 * Mint an NFT in a specified collection.511 * 512 * # Permissions:513 * * Collection issuer514 * 515 * # Arguments:516 * - `owner`: Owner account of the NFT. If set to None, defaults to the sender (collection issuer).517 * - `collection_id`: RMRK collection ID for the NFT to be minted within. Cannot be changed.518 * - `recipient`: Receiver account of the royalty. Has no effect if the `royalty_amount` is not set. Cannot be changed.519 * - `royalty_amount`: Optional permillage reward from each trade for the `recipient`. Cannot be changed.520 * - `metadata`: Arbitrary data about an NFT, e.g. IPFS hash. Cannot be changed.521 * - `transferable`: Can this NFT be transferred? Cannot be changed.522 * - `resources`: Resource data to be added to the NFT immediately after minting.523 **/524 mintNft: AugmentedSubmittable<(owner: Option<AccountId32> | null | object | string | Uint8Array, collectionId: u32 | AnyNumber | Uint8Array, recipient: Option<AccountId32> | null | object | string | Uint8Array, royaltyAmount: Option<Permill> | null | object | string | Uint8Array, metadata: Bytes | string | Uint8Array, transferable: bool | boolean | Uint8Array, resources: Option<Vec<RmrkTraitsResourceResourceTypes>> | null | object | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Option<AccountId32>, u32, Option<AccountId32>, Option<Permill>, Bytes, bool, Option<Vec<RmrkTraitsResourceResourceTypes>>]>;525 /**526 * Reject an NFT sent from another account to self or owned NFT.527 * The NFT in question will not be sent back and burnt instead.528 * 529 * The NFT in question must be pending, and, thus, be [sent](`Pallet::send`) first.530 * 531 * # Permissions:532 * - Token-owner-to-be-not533 * 534 * # Arguments:535 * - `rmrk_collection_id`: RMRK ID of the NFT to be rejected.536 * - `rmrk_nft_id`: ID of the NFT to be rejected.537 **/538 rejectNft: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32]>;539 /**540 * Remove and erase a resource from an NFT.541 * 542 * If the sender does not own the NFT, then it will be pending confirmation,543 * and will have to be [accepted](Pallet::accept_resource_removal) by the token owner.544 * 545 * # Permissions546 * - Collection issuer547 * 548 * # Arguments549 * - `collection_id`: RMRK ID of a collection to which the NFT making use of the resource belongs to.550 * - `nft_id`: ID of the NFT with a resource to be removed.551 * - `resource_id`: ID of the resource to be removed.552 **/553 removeResource: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, resourceId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u32]>;554 /**555 * Transfer an NFT from an account/NFT A to another account/NFT B.556 * The token must be transferable. Nesting cannot occur deeper than the [`NESTING_BUDGET`].557 * 558 * If the target owner is an NFT owned by another account, then the NFT will enter559 * the pending state and will have to be accepted by the other account.560 * 561 * # Permissions:562 * - Token owner563 * 564 * # Arguments:565 * - `collection_id`: RMRK ID of the collection of the NFT to be transferred.566 * - `nft_id`: ID of the NFT to be transferred.567 * - `new_owner`: New owner of the nft which can be either an account or a NFT.568 **/569 send: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, newOwner: RmrkTraitsNftAccountIdOrCollectionNftTuple | { AccountId: any } | { CollectionAndNftTuple: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, RmrkTraitsNftAccountIdOrCollectionNftTuple]>;570 /**571 * Set a different order of resource priorities for an NFT. Priorities can be used,572 * for example, for order of rendering.573 * 574 * Note that the priorities are not updated automatically, and are an empty vector575 * by default. There is no pre-set definition for the order to be particular,576 * it can be interpreted arbitrarily use-case by use-case.577 * 578 * # Permissions:579 * - Token owner580 * 581 * # Arguments:582 * - `rmrk_collection_id`: RMRK collection ID of the NFT.583 * - `rmrk_nft_id`: ID of the NFT to rearrange resource priorities for.584 * - `priorities`: Ordered vector of resource IDs.585 **/586 setPriority: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, priorities: Vec<u32> | (u32 | AnyNumber | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, u32, Vec<u32>]>;587 /**588 * Add or edit a custom user property, a key-value pair, describing the metadata589 * of a token or a collection, on either one of these.590 * 591 * Note that in this proxy implementation many details regarding RMRK are stored592 * as scoped properties prefixed with "rmrk:", normally inaccessible593 * to external transactions and RPCs.594 * 595 * # Permissions:596 * - Collection issuer - in case of collection property597 * - Token owner - in case of NFT property598 * 599 * # Arguments:600 * - `rmrk_collection_id`: RMRK collection ID.601 * - `maybe_nft_id`: Optional ID of the NFT. If left empty, then the property is set for the collection.602 * - `key`: Key of the custom property to be referenced by.603 * - `value`: Value of the custom property to be stored.604 **/605 setProperty: AugmentedSubmittable<(rmrkCollectionId: Compact<u32> | AnyNumber | Uint8Array, maybeNftId: Option<u32> | null | object | string | Uint8Array, key: Bytes | string | Uint8Array, value: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, Option<u32>, Bytes, Bytes]>;606 /**607 * Generic tx608 **/609 [key: string]: SubmittableExtrinsicFunction<ApiType>;610 };611 rmrkEquip: {612 /**613 * Create a new Base.614 * 615 * Modeled after the [Base interaction](https://github.com/rmrk-team/rmrk-spec/blob/master/standards/rmrk2.0.0/interactions/base.md)616 * 617 * # Permissions618 * - Anyone - will be assigned as the issuer of the Base.619 * 620 * # Arguments:621 * - `base_type`: Arbitrary media type, e.g. "svg".622 * - `symbol`: Arbitrary client-chosen symbol.623 * - `parts`: Array of Fixed and Slot Parts composing the Base,624 * confined in length by [`RmrkPartsLimit`](up_data_structs::RmrkPartsLimit).625 **/626 createBase: AugmentedSubmittable<(baseType: Bytes | string | Uint8Array, symbol: Bytes | string | Uint8Array, parts: Vec<RmrkTraitsPartPartType> | (RmrkTraitsPartPartType | { FixedPart: any } | { SlotPart: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [Bytes, Bytes, Vec<RmrkTraitsPartPartType>]>;627 /**628 * Update the array of Collections allowed to be equipped to a Base's specified Slot Part.629 * 630 * Modeled after [equippable interaction](https://github.com/rmrk-team/rmrk-spec/blob/master/standards/rmrk2.0.0/interactions/equippable.md).631 * 632 * # Permissions:633 * - Base issuer634 * 635 * # Arguments:636 * - `base_id`: Base containing the Slot Part to be updated.637 * - `part_id`: Slot Part whose Equippable List is being updated.638 * - `equippables`: List of equippables that will override the current Equippables list.639 **/640 equippable: AugmentedSubmittable<(baseId: u32 | AnyNumber | Uint8Array, slotId: u32 | AnyNumber | Uint8Array, equippables: RmrkTraitsPartEquippableList | { All: any } | { Empty: any } | { Custom: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, RmrkTraitsPartEquippableList]>;641 /**642 * Add a Theme to a Base.643 * A Theme named "default" is required prior to adding other Themes.644 * 645 * Modeled after [Themeadd interaction](https://github.com/rmrk-team/rmrk-spec/blob/master/standards/rmrk2.0.0/interactions/themeadd.md).646 * 647 * # Permissions:648 * - Base issuer649 * 650 * # Arguments:651 * - `base_id`: Base ID containing the Theme to be updated.652 * - `theme`: Theme to add to the Base. A Theme has a name and properties, which are an653 * array of [key, value, inherit].654 * - `key`: Arbitrary BoundedString, defined by client.655 * - `value`: Arbitrary BoundedString, defined by client.656 * - `inherit`: Optional bool.657 **/658 themeAdd: AugmentedSubmittable<(baseId: u32 | AnyNumber | Uint8Array, theme: RmrkTraitsTheme | { name?: any; properties?: any; inherit?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, RmrkTraitsTheme]>;659 /**660 * Generic tx661 **/662 [key: string]: SubmittableExtrinsicFunction<ApiType>;663 };664 scheduler: {665 /**666 * Cancel a named scheduled task.667 **/668 cancelNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed]>;669 /**670 * Schedule a named task.671 **/672 scheduleNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, when: u32 | AnyNumber | Uint8Array, maybePeriodic: Option<ITuple<[u32, u32]>> | null | object | string | Uint8Array, priority: u8 | AnyNumber | Uint8Array, call: FrameSupportScheduleMaybeHashed | { Value: any } | { Hash: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed, u32, Option<ITuple<[u32, u32]>>, u8, FrameSupportScheduleMaybeHashed]>;673 /**674 * Schedule a named task after a delay.675 * 676 * # <weight>677 * Same as [`schedule_named`](Self::schedule_named).678 * # </weight>679 **/680 scheduleNamedAfter: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, after: u32 | AnyNumber | Uint8Array, maybePeriodic: Option<ITuple<[u32, u32]>> | null | object | string | Uint8Array, priority: u8 | AnyNumber | Uint8Array, call: FrameSupportScheduleMaybeHashed | { Value: any } | { Hash: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed, u32, Option<ITuple<[u32, u32]>>, u8, FrameSupportScheduleMaybeHashed]>;681 /**682 * Generic tx683 **/684 [key: string]: SubmittableExtrinsicFunction<ApiType>;685 };686 structure: {687 /**688 * Generic tx689 **/690 [key: string]: SubmittableExtrinsicFunction<ApiType>;691 };692 sudo: {693 /**694 * Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo695 * key.696 * 697 * The dispatch origin for this call must be _Signed_.698 * 699 * # <weight>700 * - O(1).701 * - Limited storage reads.702 * - One DB change.703 * # </weight>704 **/705 setKey: AugmentedSubmittable<(updated: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress]>;706 /**707 * Authenticates the sudo key and dispatches a function call with `Root` origin.708 * 709 * The dispatch origin for this call must be _Signed_.710 * 711 * # <weight>712 * - O(1).713 * - Limited storage reads.714 * - One DB write (event).715 * - Weight of derivative `call` execution + 10,000.716 * # </weight>717 **/718 sudo: AugmentedSubmittable<(call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Call]>;719 /**720 * Authenticates the sudo key and dispatches a function call with `Signed` origin from721 * a given account.722 * 723 * The dispatch origin for this call must be _Signed_.724 * 725 * # <weight>726 * - O(1).727 * - Limited storage reads.728 * - One DB write (event).729 * - Weight of derivative `call` execution + 10,000.730 * # </weight>731 **/732 sudoAs: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, Call]>;733 /**734 * Authenticates the sudo key and dispatches a function call with `Root` origin.735 * This function does not check the weight of the call, and instead allows the736 * Sudo user to specify the weight of the call.737 * 738 * The dispatch origin for this call must be _Signed_.739 * 740 * # <weight>741 * - O(1).742 * - The weight of this call is defined by the caller.743 * # </weight>744 **/745 sudoUncheckedWeight: AugmentedSubmittable<(call: Call | IMethod | string | Uint8Array, weight: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Call, u64]>;746 /**747 * Generic tx748 **/749 [key: string]: SubmittableExtrinsicFunction<ApiType>;750 };751 system: {752 /**753 * A dispatch that will fill the block weight up to the given ratio.754 **/755 fillBlock: AugmentedSubmittable<(ratio: Perbill | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Perbill]>;756 /**757 * Kill all storage items with a key that starts with the given prefix.758 * 759 * **NOTE:** We rely on the Root origin to provide us the number of subkeys under760 * the prefix we are removing to accurately calculate the weight of this function.761 **/762 killPrefix: AugmentedSubmittable<(prefix: Bytes | string | Uint8Array, subkeys: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes, u32]>;763 /**764 * Kill some items from storage.765 **/766 killStorage: AugmentedSubmittable<(keys: Vec<Bytes> | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [Vec<Bytes>]>;767 /**768 * Make some on-chain remark.769 * 770 * # <weight>771 * - `O(1)`772 * # </weight>773 **/774 remark: AugmentedSubmittable<(remark: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;775 /**776 * Make some on-chain remark and emit event.777 **/778 remarkWithEvent: AugmentedSubmittable<(remark: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;779 /**780 * Set the new runtime code.781 * 782 * # <weight>783 * - `O(C + S)` where `C` length of `code` and `S` complexity of `can_set_code`784 * - 1 call to `can_set_code`: `O(S)` (calls `sp_io::misc::runtime_version` which is785 * expensive).786 * - 1 storage write (codec `O(C)`).787 * - 1 digest item.788 * - 1 event.789 * The weight of this function is dependent on the runtime, but generally this is very790 * expensive. We will treat this as a full block.791 * # </weight>792 **/793 setCode: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;794 /**795 * Set the new runtime code without doing any checks of the given `code`.796 * 797 * # <weight>798 * - `O(C)` where `C` length of `code`799 * - 1 storage write (codec `O(C)`).800 * - 1 digest item.801 * - 1 event.802 * The weight of this function is dependent on the runtime. We will treat this as a full803 * block. # </weight>804 **/805 setCodeWithoutChecks: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;806 /**807 * Set the number of pages in the WebAssembly environment's heap.808 **/809 setHeapPages: AugmentedSubmittable<(pages: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u64]>;810 /**811 * Set some items of storage.812 **/813 setStorage: AugmentedSubmittable<(items: Vec<ITuple<[Bytes, Bytes]>> | ([Bytes | string | Uint8Array, Bytes | string | Uint8Array])[]) => SubmittableExtrinsic<ApiType>, [Vec<ITuple<[Bytes, Bytes]>>]>;814 /**815 * Generic tx816 **/817 [key: string]: SubmittableExtrinsicFunction<ApiType>;818 };819 timestamp: {820 /**821 * Set the current time.822 * 823 * This call should be invoked exactly once per block. It will panic at the finalization824 * phase, if this call hasn't been invoked by that time.825 * 826 * The timestamp should be greater than the previous one by the amount specified by827 * `MinimumPeriod`.828 * 829 * The dispatch origin for this call must be `Inherent`.830 * 831 * # <weight>832 * - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)833 * - 1 storage read and 1 storage mutation (codec `O(1)`). (because of `DidUpdate::take` in834 * `on_finalize`)835 * - 1 event handler `on_timestamp_set`. Must be `O(1)`.836 * # </weight>837 **/838 set: AugmentedSubmittable<(now: Compact<u64> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u64>]>;839 /**840 * Generic tx841 **/842 [key: string]: SubmittableExtrinsicFunction<ApiType>;843 };844 treasury: {845 /**846 * Approve a proposal. At a later time, the proposal will be allocated to the beneficiary847 * and the original deposit will be returned.848 * 849 * May only be called from `T::ApproveOrigin`.850 * 851 * # <weight>852 * - Complexity: O(1).853 * - DbReads: `Proposals`, `Approvals`854 * - DbWrite: `Approvals`855 * # </weight>856 **/857 approveProposal: AugmentedSubmittable<(proposalId: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>]>;858 /**859 * Put forward a suggestion for spending. A deposit proportional to the value860 * is reserved and slashed if the proposal is rejected. It is returned once the861 * proposal is awarded.862 * 863 * # <weight>864 * - Complexity: O(1)865 * - DbReads: `ProposalCount`, `origin account`866 * - DbWrites: `ProposalCount`, `Proposals`, `origin account`867 * # </weight>868 **/869 proposeSpend: AugmentedSubmittable<(value: Compact<u128> | AnyNumber | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u128>, MultiAddress]>;870 /**871 * Reject a proposed spend. The original deposit will be slashed.872 * 873 * May only be called from `T::RejectOrigin`.874 * 875 * # <weight>876 * - Complexity: O(1)877 * - DbReads: `Proposals`, `rejected proposer account`878 * - DbWrites: `Proposals`, `rejected proposer account`879 * # </weight>880 **/881 rejectProposal: AugmentedSubmittable<(proposalId: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>]>;882 /**883 * Force a previously approved proposal to be removed from the approval queue.884 * The original deposit will no longer be returned.885 * 886 * May only be called from `T::RejectOrigin`.887 * - `proposal_id`: The index of a proposal888 * 889 * # <weight>890 * - Complexity: O(A) where `A` is the number of approvals891 * - Db reads and writes: `Approvals`892 * # </weight>893 * 894 * Errors:895 * - `ProposalNotApproved`: The `proposal_id` supplied was not found in the approval queue,896 * i.e., the proposal has not been approved. This could also mean the proposal does not897 * exist altogether, thus there is no way it would have been approved in the first place.898 **/899 removeApproval: AugmentedSubmittable<(proposalId: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>]>;900 /**901 * Generic tx902 **/903 [key: string]: SubmittableExtrinsicFunction<ApiType>;904 };905 unique: {906 /**907 * Add an admin to a collection.908 * 909 * NFT Collection can be controlled by multiple admin addresses910 * (some which can also be servers, for example). Admins can issue911 * and burn NFTs, as well as add and remove other admins,912 * but cannot change NFT or Collection ownership.913 * 914 * # Permissions915 * 916 * * Collection owner917 * * Collection admin918 * 919 * # Arguments920 * 921 * * `collection_id`: ID of the Collection to add an admin for.922 * * `new_admin`: Address of new admin to add.923 **/924 addCollectionAdmin: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newAdmin: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;925 /**926 * Add an address to allow list.927 * 928 * # Permissions929 * 930 * * Collection owner931 * * Collection admin932 * 933 * # Arguments934 * 935 * * `collection_id`: ID of the modified collection.936 * * `address`: ID of the address to be added to the allowlist.937 **/938 addToAllowList: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, address: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;939 /**940 * Allow a non-permissioned address to transfer or burn an item.941 * 942 * # Permissions943 * 944 * * Collection owner945 * * Collection admin946 * * Current item owner947 * 948 * # Arguments949 * 950 * * `spender`: Account to be approved to make specific transactions on non-owned tokens.951 * * `collection_id`: ID of the collection the item belongs to.952 * * `item_id`: ID of the item transactions on which are now approved.953 * * `amount`: Number of pieces of the item approved for a transaction (maximum of 1 for NFTs).954 * Set to 0 to revoke the approval.955 **/956 approve: AugmentedSubmittable<(spender: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, collectionId: u32 | AnyNumber | Uint8Array, itemId: u32 | AnyNumber | Uint8Array, amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [PalletEvmAccountBasicCrossAccountIdRepr, u32, u32, u128]>;957 /**958 * Destroy a token on behalf of the owner as a non-owner account.959 * 960 * See also: [`approve`][`Pallet::approve`].961 * 962 * After this method executes, one approval is removed from the total so that963 * the approved address will not be able to transfer this item again from this owner.964 * 965 * # Permissions966 * 967 * * Collection owner968 * * Collection admin969 * * Current token owner970 * * Address approved by current item owner971 * 972 * # Arguments973 * 974 * * `from`: The owner of the burning item.975 * * `collection_id`: ID of the collection to which the item belongs.976 * * `item_id`: ID of item to burn.977 * * `value`: Number of pieces to burn.978 * * Non-Fungible Mode: An NFT is indivisible, there is always 1 corresponding to an ID.979 * * Fungible Mode: The desired number of pieces to burn.980 * * Re-Fungible Mode: The desired number of pieces to burn.981 **/982 burnFrom: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, from: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, itemId: u32 | AnyNumber | Uint8Array, value: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr, u32, u128]>;983 /**984 * Destroy an item.985 * 986 * # Permissions987 * 988 * * Collection owner989 * * Collection admin990 * * Current item owner991 * 992 * # Arguments993 * 994 * * `collection_id`: ID of the collection to which the item belongs.995 * * `item_id`: ID of item to burn.996 * * `value`: Number of pieces of the item to destroy.997 * * Non-Fungible Mode: An NFT is indivisible, there is always 1 corresponding to an ID.998 * * Fungible Mode: The desired number of pieces to burn.999 * * Re-Fungible Mode: The desired number of pieces to burn.1000 **/1001 burnItem: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, itemId: u32 | AnyNumber | Uint8Array, value: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u128]>;1002 /**1003 * Change the owner of the collection.1004 * 1005 * # Permissions1006 * 1007 * * Collection owner1008 * 1009 * # Arguments1010 * 1011 * * `collection_id`: ID of the modified collection.1012 * * `new_owner`: ID of the account that will become the owner.1013 **/1014 changeCollectionOwner: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newOwner: AccountId32 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, AccountId32]>;1015 /**1016 * Confirm own sponsorship of a collection, becoming the sponsor.1017 * 1018 * An invitation must be pending, see [`set_collection_sponsor`][`Pallet::set_collection_sponsor`].1019 * Sponsor can pay the fees of a transaction instead of the sender,1020 * but only within specified limits.1021 * 1022 * # Permissions1023 * 1024 * * Sponsor-to-be1025 * 1026 * # Arguments1027 * 1028 * * `collection_id`: ID of the collection with the pending sponsor.1029 **/1030 confirmSponsorship: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;1031 /**1032 * Create a collection of tokens.1033 * 1034 * Each Token may have multiple properties encoded as an array of bytes1035 * of certain length. The initial owner of the collection is set1036 * to the address that signed the transaction and can be changed later.1037 * 1038 * Prefer the more advanced [`create_collection_ex`][`Pallet::create_collection_ex`] instead.1039 * 1040 * # Permissions1041 * 1042 * * Anyone - becomes the owner of the new collection.1043 * 1044 * # Arguments1045 * 1046 * * `collection_name`: Wide-character string with collection name1047 * (limit [`MAX_COLLECTION_NAME_LENGTH`]).1048 * * `collection_description`: Wide-character string with collection description1049 * (limit [`MAX_COLLECTION_DESCRIPTION_LENGTH`]).1050 * * `token_prefix`: Byte string containing the token prefix to mark a collection1051 * to which a token belongs (limit [`MAX_TOKEN_PREFIX_LENGTH`]).1052 * * `mode`: Type of items stored in the collection and type dependent data.1053 **/1054 createCollection: AugmentedSubmittable<(collectionName: Vec<u16> | (u16 | AnyNumber | Uint8Array)[], collectionDescription: Vec<u16> | (u16 | AnyNumber | Uint8Array)[], tokenPrefix: Bytes | string | Uint8Array, mode: UpDataStructsCollectionMode | { NFT: any } | { Fungible: any } | { ReFungible: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Vec<u16>, Vec<u16>, Bytes, UpDataStructsCollectionMode]>;1055 /**1056 * Create a collection with explicit parameters.1057 * 1058 * Prefer it to the deprecated [`create_collection`][`Pallet::create_collection`] method.1059 * 1060 * # Permissions1061 * 1062 * * Anyone - becomes the owner of the new collection.1063 * 1064 * # Arguments1065 * 1066 * * `data`: Explicit data of a collection used for its creation.1067 **/1068 createCollectionEx: AugmentedSubmittable<(data: UpDataStructsCreateCollectionData | { mode?: any; access?: any; name?: any; description?: any; tokenPrefix?: any; pendingSponsor?: any; limits?: any; permissions?: any; tokenPropertyPermissions?: any; properties?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [UpDataStructsCreateCollectionData]>;1069 /**1070 * Mint an item within a collection.1071 * 1072 * A collection must exist first, see [`create_collection_ex`][`Pallet::create_collection_ex`].1073 * 1074 * # Permissions1075 * 1076 * * Collection owner1077 * * Collection admin1078 * * Anyone if1079 * * Allow List is enabled, and1080 * * Address is added to allow list, and1081 * * MintPermission is enabled (see [`set_collection_permissions`][`Pallet::set_collection_permissions`])1082 * 1083 * # Arguments1084 * 1085 * * `collection_id`: ID of the collection to which an item would belong.1086 * * `owner`: Address of the initial owner of the item.1087 * * `data`: Token data describing the item to store on chain.1088 **/1089 createItem: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, owner: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, data: UpDataStructsCreateItemData | { NFT: any } | { Fungible: any } | { ReFungible: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr, UpDataStructsCreateItemData]>;1090 /**1091 * Create multiple items within a collection.1092 * 1093 * A collection must exist first, see [`create_collection_ex`][`Pallet::create_collection_ex`].1094 * 1095 * # Permissions1096 * 1097 * * Collection owner1098 * * Collection admin1099 * * Anyone if1100 * * Allow List is enabled, and1101 * * Address is added to the allow list, and1102 * * MintPermission is enabled (see [`set_collection_permissions`][`Pallet::set_collection_permissions`])1103 * 1104 * # Arguments1105 * 1106 * * `collection_id`: ID of the collection to which the tokens would belong.1107 * * `owner`: Address of the initial owner of the tokens.1108 * * `items_data`: Vector of data describing each item to be created.1109 **/1110 createMultipleItems: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, owner: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, itemsData: Vec<UpDataStructsCreateItemData> | (UpDataStructsCreateItemData | { NFT: any } | { Fungible: any } | { ReFungible: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr, Vec<UpDataStructsCreateItemData>]>;1111 /**1112 * Create multiple items within a collection with explicitly specified initial parameters.1113 * 1114 * # Permissions1115 * 1116 * * Collection owner1117 * * Collection admin1118 * * Anyone if1119 * * Allow List is enabled, and1120 * * Address is added to allow list, and1121 * * MintPermission is enabled (see [`set_collection_permissions`][`Pallet::set_collection_permissions`])1122 * 1123 * # Arguments1124 * 1125 * * `collection_id`: ID of the collection to which the tokens would belong.1126 * * `data`: Explicit item creation data.1127 **/1128 createMultipleItemsEx: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, data: UpDataStructsCreateItemExData | { NFT: any } | { Fungible: any } | { RefungibleMultipleItems: any } | { RefungibleMultipleOwners: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, UpDataStructsCreateItemExData]>;1129 /**1130 * Delete specified collection properties.1131 * 1132 * # Permissions1133 * 1134 * * Collection Owner1135 * * Collection Admin1136 * 1137 * # Arguments1138 * 1139 * * `collection_id`: ID of the modified collection.1140 * * `property_keys`: Vector of keys of the properties to be deleted.1141 * Keys support Latin letters, `-`, `_`, and `.` as symbols.1142 **/1143 deleteCollectionProperties: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, propertyKeys: Vec<Bytes> | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, Vec<Bytes>]>;1144 /**1145 * Delete specified token properties. Currently properties only work with NFTs.1146 * 1147 * # Permissions1148 * 1149 * * Depends on collection's token property permissions and specified property mutability:1150 * * Collection owner1151 * * Collection admin1152 * * Token owner1153 * 1154 * # Arguments1155 * 1156 * * `collection_id`: ID of the collection to which the token belongs.1157 * * `token_id`: ID of the modified token.1158 * * `property_keys`: Vector of keys of the properties to be deleted.1159 * Keys support Latin letters, `-`, `_`, and `.` as symbols.1160 **/1161 deleteTokenProperties: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, propertyKeys: Vec<Bytes> | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, u32, Vec<Bytes>]>;1162 /**1163 * Destroy a collection if no tokens exist within.1164 * 1165 * # Permissions1166 * 1167 * * Collection owner1168 * 1169 * # Arguments1170 * 1171 * * `collection_id`: Collection to destroy.1172 **/1173 destroyCollection: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;1174 /**1175 * Remove admin of a collection.1176 * 1177 * An admin address can remove itself. List of admins may become empty,1178 * in which case only Collection Owner will be able to add an Admin.1179 * 1180 * # Permissions1181 * 1182 * * Collection owner1183 * * Collection admin1184 * 1185 * # Arguments1186 * 1187 * * `collection_id`: ID of the collection to remove the admin for.1188 * * `account_id`: Address of the admin to remove.1189 **/1190 removeCollectionAdmin: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, accountId: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;1191 /**1192 * Remove a collection's a sponsor, making everyone pay for their own transactions.1193 * 1194 * # Permissions1195 * 1196 * * Collection owner1197 * 1198 * # Arguments1199 * 1200 * * `collection_id`: ID of the collection with the sponsor to remove.1201 **/1202 removeCollectionSponsor: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;1203 /**1204 * Remove an address from allow list.1205 * 1206 * # Permissions1207 * 1208 * * Collection owner1209 * * Collection admin1210 * 1211 * # Arguments1212 * 1213 * * `collection_id`: ID of the modified collection.1214 * * `address`: ID of the address to be removed from the allowlist.1215 **/1216 removeFromAllowList: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, address: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;1217 /**1218 * Re-partition a refungible token, while owning all of its parts/pieces.1219 * 1220 * # Permissions1221 * 1222 * * Token owner (must own every part)1223 * 1224 * # Arguments1225 * 1226 * * `collection_id`: ID of the collection the RFT belongs to.1227 * * `token_id`: ID of the RFT.1228 * * `amount`: New number of parts/pieces into which the token shall be partitioned.1229 **/1230 repartition: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u128]>;1231 /**1232 * Set specific limits of a collection. Empty, or None fields mean chain default.1233 * 1234 * # Permissions1235 * 1236 * * Collection owner1237 * * Collection admin1238 * 1239 * # Arguments1240 * 1241 * * `collection_id`: ID of the modified collection.1242 * * `new_limit`: New limits of the collection. Fields that are not set (None)1243 * will not overwrite the old ones.1244 **/1245 setCollectionLimits: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newLimit: UpDataStructsCollectionLimits | { accountTokenOwnershipLimit?: any; sponsoredDataSize?: any; sponsoredDataRateLimit?: any; tokenLimit?: any; sponsorTransferTimeout?: any; sponsorApproveTimeout?: any; ownerCanTransfer?: any; ownerCanDestroy?: any; transfersEnabled?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, UpDataStructsCollectionLimits]>;1246 /**1247 * Set specific permissions of a collection. Empty, or None fields mean chain default.1248 * 1249 * # Permissions1250 * 1251 * * Collection owner1252 * * Collection admin1253 * 1254 * # Arguments1255 * 1256 * * `collection_id`: ID of the modified collection.1257 * * `new_permission`: New permissions of the collection. Fields that are not set (None)1258 * will not overwrite the old ones.1259 **/1260 setCollectionPermissions: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newPermission: UpDataStructsCollectionPermissions | { access?: any; mintMode?: any; nesting?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, UpDataStructsCollectionPermissions]>;1261 /**1262 * Add or change collection properties.1263 * 1264 * # Permissions1265 * 1266 * * Collection owner1267 * * Collection admin1268 * 1269 * # Arguments1270 * 1271 * * `collection_id`: ID of the modified collection.1272 * * `properties`: Vector of key-value pairs stored as the collection's metadata.1273 * Keys support Latin letters, `-`, `_`, and `.` as symbols.1274 **/1275 setCollectionProperties: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, properties: Vec<UpDataStructsProperty> | (UpDataStructsProperty | { key?: any; value?: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, Vec<UpDataStructsProperty>]>;1276 /**1277 * Set (invite) a new collection sponsor.1278 * 1279 * If successful, confirmation from the sponsor-to-be will be pending.1280 * 1281 * # Permissions1282 * 1283 * * Collection owner1284 * * Collection admin1285 * 1286 * # Arguments1287 * 1288 * * `collection_id`: ID of the modified collection.1289 * * `new_sponsor`: ID of the account of the sponsor-to-be.1290 **/1291 setCollectionSponsor: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newSponsor: AccountId32 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, AccountId32]>;1292 /**1293 * Add or change token properties according to collection's permissions.1294 * Currently properties only work with NFTs.1295 * 1296 * # Permissions1297 * 1298 * * Depends on collection's token property permissions and specified property mutability:1299 * * Collection owner1300 * * Collection admin1301 * * Token owner1302 * 1303 * See [`set_token_property_permissions`][`Pallet::set_token_property_permissions`].1304 * 1305 * # Arguments1306 * 1307 * * `collection_id: ID of the collection to which the token belongs.1308 * * `token_id`: ID of the modified token.1309 * * `properties`: Vector of key-value pairs stored as the token's metadata.1310 * Keys support Latin letters, `-`, `_`, and `.` as symbols.1311 **/1312 setTokenProperties: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, properties: Vec<UpDataStructsProperty> | (UpDataStructsProperty | { key?: any; value?: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, u32, Vec<UpDataStructsProperty>]>;1313 /**1314 * Add or change token property permissions of a collection.1315 * 1316 * Without a permission for a particular key, a property with that key1317 * cannot be created in a token.1318 * 1319 * # Permissions1320 * 1321 * * Collection owner1322 * * Collection admin1323 * 1324 * # Arguments1325 * 1326 * * `collection_id`: ID of the modified collection.1327 * * `property_permissions`: Vector of permissions for property keys.1328 * Keys support Latin letters, `-`, `_`, and `.` as symbols.1329 **/1330 setTokenPropertyPermissions: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, propertyPermissions: Vec<UpDataStructsPropertyKeyPermission> | (UpDataStructsPropertyKeyPermission | { key?: any; permission?: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, Vec<UpDataStructsPropertyKeyPermission>]>;1331 /**1332 * Completely allow or disallow transfers for a particular collection.1333 * 1334 * # Permissions1335 * 1336 * * Collection owner1337 * 1338 * # Arguments1339 * 1340 * * `collection_id`: ID of the collection.1341 * * `value`: New value of the flag, are transfers allowed?1342 **/1343 setTransfersEnabledFlag: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, value: bool | boolean | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, bool]>;1344 /**1345 * Change ownership of the token.1346 * 1347 * # Permissions1348 * 1349 * * Collection owner1350 * * Collection admin1351 * * Current token owner1352 * 1353 * # Arguments1354 * 1355 * * `recipient`: Address of token recipient.1356 * * `collection_id`: ID of the collection the item belongs to.1357 * * `item_id`: ID of the item.1358 * * Non-Fungible Mode: Required.1359 * * Fungible Mode: Ignored.1360 * * Re-Fungible Mode: Required.1361 * 1362 * * `value`: Amount to transfer.1363 * * Non-Fungible Mode: An NFT is indivisible, there is always 1 corresponding to an ID.1364 * * Fungible Mode: The desired number of pieces to transfer.1365 * * Re-Fungible Mode: The desired number of pieces to transfer.1366 **/1367 transfer: AugmentedSubmittable<(recipient: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, collectionId: u32 | AnyNumber | Uint8Array, itemId: u32 | AnyNumber | Uint8Array, value: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [PalletEvmAccountBasicCrossAccountIdRepr, u32, u32, u128]>;1368 /**1369 * Change ownership of an item on behalf of the owner as a non-owner account.1370 * 1371 * See the [`approve`][`Pallet::approve`] method for additional information.1372 * 1373 * After this method executes, one approval is removed from the total so that1374 * the approved address will not be able to transfer this item again from this owner.1375 * 1376 * # Permissions1377 * 1378 * * Collection owner1379 * * Collection admin1380 * * Current item owner1381 * * Address approved by current item owner1382 * 1383 * # Arguments1384 * 1385 * * `from`: Address that currently owns the token.1386 * * `recipient`: Address of the new token-owner-to-be.1387 * * `collection_id`: ID of the collection the item.1388 * * `item_id`: ID of the item to be transferred.1389 * * `value`: Amount to transfer.1390 * * Non-Fungible Mode: An NFT is indivisible, there is always 1 corresponding to an ID.1391 * * Fungible Mode: The desired number of pieces to transfer.1392 * * Re-Fungible Mode: The desired number of pieces to transfer.1393 **/1394 transferFrom: AugmentedSubmittable<(from: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, recipient: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, collectionId: u32 | AnyNumber | Uint8Array, itemId: u32 | AnyNumber | Uint8Array, value: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u32, u32, u128]>;1395 /**1396 * Generic tx1397 **/1398 [key: string]: SubmittableExtrinsicFunction<ApiType>;1399 };1400 vesting: {1401 claim: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;1402 claimFor: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress]>;1403 updateVestingSchedules: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, vestingSchedules: Vec<OrmlVestingVestingSchedule> | (OrmlVestingVestingSchedule | { start?: any; period?: any; periodCount?: any; perPeriod?: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [MultiAddress, Vec<OrmlVestingVestingSchedule>]>;1404 vestedTransfer: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, schedule: OrmlVestingVestingSchedule | { start?: any; period?: any; periodCount?: any; perPeriod?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, OrmlVestingVestingSchedule]>;1405 /**1406 * Generic tx1407 **/1408 [key: string]: SubmittableExtrinsicFunction<ApiType>;1409 };1410 xcmpQueue: {1411 /**1412 * Resumes all XCM executions for the XCMP queue.1413 * 1414 * Note that this function doesn't change the status of the in/out bound channels.1415 * 1416 * - `origin`: Must pass `ControllerOrigin`.1417 **/1418 resumeXcmExecution: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;1419 /**1420 * Services a single overweight XCM.1421 * 1422 * - `origin`: Must pass `ExecuteOverweightOrigin`.1423 * - `index`: The index of the overweight XCM to service1424 * - `weight_limit`: The amount of weight that XCM execution may take.1425 * 1426 * Errors:1427 * - `BadOverweightIndex`: XCM under `index` is not found in the `Overweight` storage map.1428 * - `BadXcm`: XCM under `index` cannot be properly decoded into a valid XCM format.1429 * - `WeightOverLimit`: XCM execution may use greater `weight_limit`.1430 * 1431 * Events:1432 * - `OverweightServiced`: On success.1433 **/1434 serviceOverweight: AugmentedSubmittable<(index: u64 | AnyNumber | Uint8Array, weightLimit: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u64, u64]>;1435 /**1436 * Suspends all XCM executions for the XCMP queue, regardless of the sender's origin.1437 * 1438 * - `origin`: Must pass `ControllerOrigin`.1439 **/1440 suspendXcmExecution: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;1441 /**1442 * Overwrites the number of pages of messages which must be in the queue after which we drop any further1443 * messages from the channel.1444 * 1445 * - `origin`: Must pass `Root`.1446 * - `new`: Desired value for `QueueConfigData.drop_threshold`1447 **/1448 updateDropThreshold: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;1449 /**1450 * Overwrites the number of pages of messages which the queue must be reduced to before it signals that1451 * message sending may recommence after it has been suspended.1452 * 1453 * - `origin`: Must pass `Root`.1454 * - `new`: Desired value for `QueueConfigData.resume_threshold`1455 **/1456 updateResumeThreshold: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;1457 /**1458 * Overwrites the number of pages of messages which must be in the queue for the other side to be told to1459 * suspend their sending.1460 * 1461 * - `origin`: Must pass `Root`.1462 * - `new`: Desired value for `QueueConfigData.suspend_value`1463 **/1464 updateSuspendThreshold: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;1465 /**1466 * Overwrites the amount of remaining weight under which we stop processing messages.1467 * 1468 * - `origin`: Must pass `Root`.1469 * - `new`: Desired value for `QueueConfigData.threshold_weight`1470 **/1471 updateThresholdWeight: AugmentedSubmittable<(updated: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u64]>;1472 /**1473 * Overwrites the speed to which the available weight approaches the maximum weight.1474 * A lower number results in a faster progression. A value of 1 makes the entire weight available initially.1475 * 1476 * - `origin`: Must pass `Root`.1477 * - `new`: Desired value for `QueueConfigData.weight_restrict_decay`.1478 **/1479 updateWeightRestrictDecay: AugmentedSubmittable<(updated: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u64]>;1480 /**1481 * Overwrite the maximum amount of weight any individual message may consume.1482 * Messages above this weight go into the overweight queue and may only be serviced explicitly.1483 * 1484 * - `origin`: Must pass `Root`.1485 * - `new`: Desired value for `QueueConfigData.xcmp_max_individual_weight`.1486 **/1487 updateXcmpMaxIndividualWeight: AugmentedSubmittable<(updated: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u64]>;1488 /**1489 * Generic tx1490 **/1491 [key: string]: SubmittableExtrinsicFunction<ApiType>;1492 };1493 } // AugmentedSubmittables1494} // declare moduletests/src/interfaces/default/types.tsdiffbeforeafterboth--- a/tests/src/interfaces/default/types.ts
+++ b/tests/src/interfaces/default/types.ts
@@ -1314,7 +1314,6 @@
/** @name PalletRmrkCoreError */
export interface PalletRmrkCoreError extends Enum {
readonly isCorruptedCollectionType: boolean;
- readonly isNftTypeEncodeError: boolean;
readonly isRmrkPropertyKeyIsTooLong: boolean;
readonly isRmrkPropertyValueIsTooLong: boolean;
readonly isRmrkPropertyIsNotFound: boolean;
@@ -1333,7 +1332,7 @@
readonly isCannotRejectNonPendingNft: boolean;
readonly isResourceNotPending: boolean;
readonly isNoAvailableResourceId: boolean;
- readonly type: 'CorruptedCollectionType' | 'NftTypeEncodeError' | 'RmrkPropertyKeyIsTooLong' | 'RmrkPropertyValueIsTooLong' | 'RmrkPropertyIsNotFound' | 'UnableToDecodeRmrkData' | 'CollectionNotEmpty' | 'NoAvailableCollectionId' | 'NoAvailableNftId' | 'CollectionUnknown' | 'NoPermission' | 'NonTransferable' | 'CollectionFullOrLocked' | 'ResourceDoesntExist' | 'CannotSendToDescendentOrSelf' | 'CannotAcceptNonOwnedNft' | 'CannotRejectNonOwnedNft' | 'CannotRejectNonPendingNft' | 'ResourceNotPending' | 'NoAvailableResourceId';
+ readonly type: 'CorruptedCollectionType' | 'RmrkPropertyKeyIsTooLong' | 'RmrkPropertyValueIsTooLong' | 'RmrkPropertyIsNotFound' | 'UnableToDecodeRmrkData' | 'CollectionNotEmpty' | 'NoAvailableCollectionId' | 'NoAvailableNftId' | 'CollectionUnknown' | 'NoPermission' | 'NonTransferable' | 'CollectionFullOrLocked' | 'ResourceDoesntExist' | 'CannotSendToDescendentOrSelf' | 'CannotAcceptNonOwnedNft' | 'CannotRejectNonOwnedNft' | 'CannotRejectNonPendingNft' | 'ResourceNotPending' | 'NoAvailableResourceId';
}
/** @name PalletRmrkCoreEvent */
tests/src/interfaces/lookup.tsdiffbeforeafterboth--- a/tests/src/interfaces/lookup.ts
+++ b/tests/src/interfaces/lookup.ts
@@ -2990,7 +2990,7 @@
* Lookup400: pallet_rmrk_core::pallet::Error<T>
**/
PalletRmrkCoreError: {
- _enum: ['CorruptedCollectionType', 'NftTypeEncodeError', 'RmrkPropertyKeyIsTooLong', 'RmrkPropertyValueIsTooLong', 'RmrkPropertyIsNotFound', 'UnableToDecodeRmrkData', 'CollectionNotEmpty', 'NoAvailableCollectionId', 'NoAvailableNftId', 'CollectionUnknown', 'NoPermission', 'NonTransferable', 'CollectionFullOrLocked', 'ResourceDoesntExist', 'CannotSendToDescendentOrSelf', 'CannotAcceptNonOwnedNft', 'CannotRejectNonOwnedNft', 'CannotRejectNonPendingNft', 'ResourceNotPending', 'NoAvailableResourceId']
+ _enum: ['CorruptedCollectionType', 'RmrkPropertyKeyIsTooLong', 'RmrkPropertyValueIsTooLong', 'RmrkPropertyIsNotFound', 'UnableToDecodeRmrkData', 'CollectionNotEmpty', 'NoAvailableCollectionId', 'NoAvailableNftId', 'CollectionUnknown', 'NoPermission', 'NonTransferable', 'CollectionFullOrLocked', 'ResourceDoesntExist', 'CannotSendToDescendentOrSelf', 'CannotAcceptNonOwnedNft', 'CannotRejectNonOwnedNft', 'CannotRejectNonPendingNft', 'ResourceNotPending', 'NoAvailableResourceId']
},
/**
* Lookup402: pallet_rmrk_equip::pallet::Error<T>
tests/src/interfaces/types-lookup.tsdiffbeforeafterboth--- a/tests/src/interfaces/types-lookup.ts
+++ b/tests/src/interfaces/types-lookup.ts
@@ -3144,7 +3144,6 @@
/** @name PalletRmrkCoreError (400) */
export interface PalletRmrkCoreError extends Enum {
readonly isCorruptedCollectionType: boolean;
- readonly isNftTypeEncodeError: boolean;
readonly isRmrkPropertyKeyIsTooLong: boolean;
readonly isRmrkPropertyValueIsTooLong: boolean;
readonly isRmrkPropertyIsNotFound: boolean;
@@ -3163,7 +3162,7 @@
readonly isCannotRejectNonPendingNft: boolean;
readonly isResourceNotPending: boolean;
readonly isNoAvailableResourceId: boolean;
- readonly type: 'CorruptedCollectionType' | 'NftTypeEncodeError' | 'RmrkPropertyKeyIsTooLong' | 'RmrkPropertyValueIsTooLong' | 'RmrkPropertyIsNotFound' | 'UnableToDecodeRmrkData' | 'CollectionNotEmpty' | 'NoAvailableCollectionId' | 'NoAvailableNftId' | 'CollectionUnknown' | 'NoPermission' | 'NonTransferable' | 'CollectionFullOrLocked' | 'ResourceDoesntExist' | 'CannotSendToDescendentOrSelf' | 'CannotAcceptNonOwnedNft' | 'CannotRejectNonOwnedNft' | 'CannotRejectNonPendingNft' | 'ResourceNotPending' | 'NoAvailableResourceId';
+ readonly type: 'CorruptedCollectionType' | 'RmrkPropertyKeyIsTooLong' | 'RmrkPropertyValueIsTooLong' | 'RmrkPropertyIsNotFound' | 'UnableToDecodeRmrkData' | 'CollectionNotEmpty' | 'NoAvailableCollectionId' | 'NoAvailableNftId' | 'CollectionUnknown' | 'NoPermission' | 'NonTransferable' | 'CollectionFullOrLocked' | 'ResourceDoesntExist' | 'CannotSendToDescendentOrSelf' | 'CannotAcceptNonOwnedNft' | 'CannotRejectNonOwnedNft' | 'CannotRejectNonPendingNft' | 'ResourceNotPending' | 'NoAvailableResourceId';
}
/** @name PalletRmrkEquipError (402) */