difftreelog
Merge pull request #427 from UniqueNetwork/doc/architectural-changes
in: master
19 files changed
client/rpc/src/lib.rsdiffbeforeafterboth--- a/client/rpc/src/lib.rs
+++ b/client/rpc/src/lib.rs
@@ -42,6 +42,7 @@
#[rpc(server)]
#[async_trait]
pub trait UniqueApi<BlockHash, CrossAccountId, AccountId> {
+ /// Get tokens owned by account.
#[method(name = "unique_accountTokens")]
fn account_tokens(
&self,
@@ -49,12 +50,16 @@
account: CrossAccountId,
at: Option<BlockHash>,
) -> Result<Vec<TokenId>>;
+
+ /// Get tokens contained within a collection.
#[method(name = "unique_collectionTokens")]
fn collection_tokens(
&self,
collection: CollectionId,
at: Option<BlockHash>,
) -> Result<Vec<TokenId>>;
+
+ /// Check if the token exists.
#[method(name = "unique_tokenExists")]
fn token_exists(
&self,
@@ -63,6 +68,7 @@
at: Option<BlockHash>,
) -> Result<bool>;
+ /// Get the token owner.
#[method(name = "unique_tokenOwner")]
fn token_owner(
&self,
@@ -80,6 +86,7 @@
at: Option<BlockHash>,
) -> Result<Vec<CrossAccountId>>;
+ /// Get the topmost token owner in the hierarchy of a possibly nested token.
#[method(name = "unique_topmostTokenOwner")]
fn topmost_token_owner(
&self,
@@ -87,6 +94,8 @@
token: TokenId,
at: Option<BlockHash>,
) -> Result<Option<CrossAccountId>>;
+
+ /// Get tokens nested directly into the token.
#[method(name = "unique_tokenChildren")]
fn token_children(
&self,
@@ -95,6 +104,7 @@
at: Option<BlockHash>,
) -> Result<Vec<TokenChild>>;
+ /// Get collection properties, optionally limited to the provided keys.
#[method(name = "unique_collectionProperties")]
fn collection_properties(
&self,
@@ -103,6 +113,7 @@
at: Option<BlockHash>,
) -> Result<Vec<Property>>;
+ /// Get token properties, optionally limited to the provided keys.
#[method(name = "unique_tokenProperties")]
fn token_properties(
&self,
@@ -112,6 +123,7 @@
at: Option<BlockHash>,
) -> Result<Vec<Property>>;
+ /// Get property permissions, optionally limited to the provided keys.
#[method(name = "unique_propertyPermissions")]
fn property_permissions(
&self,
@@ -120,6 +132,7 @@
at: Option<BlockHash>,
) -> Result<Vec<PropertyKeyPermission>>;
+ /// Get token data, including properties, optionally limited to the provided keys, and total pieces for an RFT.
#[method(name = "unique_tokenData")]
fn token_data(
&self,
@@ -129,8 +142,11 @@
at: Option<BlockHash>,
) -> Result<TokenData<CrossAccountId>>;
+ /// Get the amount of distinctive tokens present in a collection.
#[method(name = "unique_totalSupply")]
fn total_supply(&self, collection: CollectionId, at: Option<BlockHash>) -> Result<u32>;
+
+ /// Get the amount of any user tokens owned by an account.
#[method(name = "unique_accountBalance")]
fn account_balance(
&self,
@@ -138,6 +154,8 @@
account: CrossAccountId,
at: Option<BlockHash>,
) -> Result<u32>;
+
+ /// Get the amount of a specific token owned by an account.
#[method(name = "unique_balance")]
fn balance(
&self,
@@ -146,6 +164,8 @@
token: TokenId,
at: Option<BlockHash>,
) -> Result<String>;
+
+ /// Get the amount of currently possible sponsored transactions on a token for the fee to be taken off a sponsor.
#[method(name = "unique_allowance")]
fn allowance(
&self,
@@ -156,18 +176,23 @@
at: Option<BlockHash>,
) -> Result<String>;
+ /// Get the list of admin accounts of a collection.
#[method(name = "unique_adminlist")]
fn adminlist(
&self,
collection: CollectionId,
at: Option<BlockHash>,
) -> Result<Vec<CrossAccountId>>;
+
+ /// Get the list of accounts allowed to operate within a collection.
#[method(name = "unique_allowlist")]
fn allowlist(
&self,
collection: CollectionId,
at: Option<BlockHash>,
) -> Result<Vec<CrossAccountId>>;
+
+ /// Check if a user is allowed to operate within a collection.
#[method(name = "unique_allowed")]
fn allowed(
&self,
@@ -175,17 +200,24 @@
user: CrossAccountId,
at: Option<BlockHash>,
) -> Result<bool>;
+
+ /// Get the last token ID created in a collection.
#[method(name = "unique_lastTokenId")]
fn last_token_id(&self, collection: CollectionId, at: Option<BlockHash>) -> Result<TokenId>;
+
+ /// Get collection info by the specified ID.
#[method(name = "unique_collectionById")]
fn collection_by_id(
&self,
collection: CollectionId,
at: Option<BlockHash>,
) -> Result<Option<RpcCollection<AccountId>>>;
+
+ /// Get chain stats about collections.
#[method(name = "unique_collectionStats")]
fn collection_stats(&self, at: Option<BlockHash>) -> Result<CollectionStats>;
+ /// Get the number of blocks until sponsoring a transaction is available.
#[method(name = "unique_nextSponsored")]
fn next_sponsored(
&self,
@@ -195,6 +227,7 @@
at: Option<BlockHash>,
) -> Result<Option<u64>>;
+ /// Get effective collection limits. If not explicitly set, get the chain defaults.
#[method(name = "unique_effectiveCollectionLimits")]
fn effective_collection_limits(
&self,
@@ -202,6 +235,7 @@
at: Option<BlockHash>,
) -> Result<Option<CollectionLimits>>;
+ /// Get the total amount of pieces of an RFT.
#[method(name = "unique_totalPieces")]
fn total_pieces(
&self,
@@ -228,20 +262,20 @@
Theme,
>
{
+ /// Get the latest created collection ID.
#[method(name = "rmrk_lastCollectionIdx")]
- /// Get the latest created collection id
fn last_collection_idx(&self, at: Option<BlockHash>) -> Result<RmrkCollectionId>;
+ /// Get collection info by ID.
#[method(name = "rmrk_collectionById")]
- /// Get collection by id
fn collection_by_id(
&self,
id: RmrkCollectionId,
at: Option<BlockHash>,
) -> Result<Option<CollectionInfo>>;
+ /// Get NFT info by collection and NFT IDs.
#[method(name = "rmrk_nftById")]
- /// Get NFT by collection id and NFT id
fn nft_by_id(
&self,
collection_id: RmrkCollectionId,
@@ -249,8 +283,8 @@
at: Option<BlockHash>,
) -> Result<Option<NftInfo>>;
+ /// Get tokens owned by an account in a collection.
#[method(name = "rmrk_accountTokens")]
- /// Get tokens owned by an account in a collection
fn account_tokens(
&self,
account_id: AccountId,
@@ -258,8 +292,8 @@
at: Option<BlockHash>,
) -> Result<Vec<RmrkNftId>>;
+ /// Get tokens nested in an NFT - its direct children (not the children's children).
#[method(name = "rmrk_nftChildren")]
- /// Get NFT children
fn nft_children(
&self,
collection_id: RmrkCollectionId,
@@ -267,8 +301,8 @@
at: Option<BlockHash>,
) -> Result<Vec<RmrkNftChild>>;
+ /// Get collection properties, created by the user - not the proxy-specific properties.
#[method(name = "rmrk_collectionProperties")]
- /// Get collection properties
fn collection_properties(
&self,
collection_id: RmrkCollectionId,
@@ -276,8 +310,8 @@
at: Option<BlockHash>,
) -> Result<Vec<PropertyInfo>>;
+ /// Get NFT properties, created by the user - not the proxy-specific properties.
#[method(name = "rmrk_nftProperties")]
- /// Get NFT properties
fn nft_properties(
&self,
collection_id: RmrkCollectionId,
@@ -286,8 +320,8 @@
at: Option<BlockHash>,
) -> Result<Vec<PropertyInfo>>;
+ /// Get data of resources of an NFT.
#[method(name = "rmrk_nftResources")]
- /// Get NFT resources
fn nft_resources(
&self,
collection_id: RmrkCollectionId,
@@ -295,8 +329,8 @@
at: Option<BlockHash>,
) -> Result<Vec<ResourceInfo>>;
+ /// Get the priority of a resource in an NFT.
#[method(name = "rmrk_nftResourcePriority")]
- /// Get NFT resource priority
fn nft_resource_priority(
&self,
collection_id: RmrkCollectionId,
@@ -305,14 +339,15 @@
at: Option<BlockHash>,
) -> Result<Option<u32>>;
+ /// Get base info by its ID.
#[method(name = "rmrk_base")]
- /// Get base info
fn base(&self, base_id: RmrkBaseId, at: Option<BlockHash>) -> Result<Option<BaseInfo>>;
+ /// Get all parts of a base.
#[method(name = "rmrk_baseParts")]
- /// Get all Base's parts
fn base_parts(&self, base_id: RmrkBaseId, at: Option<BlockHash>) -> Result<Vec<PartType>>;
+ /// Get the theme names belonging to a base.
#[method(name = "rmrk_themeNames")]
fn theme_names(
&self,
@@ -320,6 +355,7 @@
at: Option<BlockHash>,
) -> Result<Vec<RmrkThemeName>>;
+ /// Get theme info, including properties, optionally limited to the provided keys.
#[method(name = "rmrk_themes")]
fn theme(
&self,
pallets/common/src/lib.rsdiffbeforeafterboth--- a/pallets/common/src/lib.rs
+++ b/pallets/common/src/lib.rs
@@ -441,7 +441,7 @@
u128,
),
- /// The colletion property has been set.
+ /// The colletion property has been added or edited.
CollectionPropertySet(
/// Id of collection to which property has been set.
CollectionId,
@@ -457,7 +457,7 @@
PropertyKey,
),
- /// The token property has been set.
+ /// The token property has been added or edited.
TokenPropertySet(
/// Identifier of the collection whose token has the property set.
CollectionId,
@@ -477,9 +477,9 @@
PropertyKey,
),
- /// The colletion property permission has been set.
+ /// The token property permission of a collection has been set.
PropertyPermissionSet(
- /// Id of collection to which property permission has been set.
+ /// ID of collection to which property permission has been set.
CollectionId,
/// The property permission that was set.
PropertyKey,
@@ -524,26 +524,26 @@
/// Metadata flag frozen
MetadataFlagFrozen,
- /// Item not exists.
+ /// Item does not exist
TokenNotFound,
- /// Item balance not enough.
+ /// Item is balance not enough
TokenValueTooLow,
- /// Requested value more than approved.
+ /// Requested value is more than the approved
ApprovedValueTooLow,
/// Tried to approve more than owned
CantApproveMoreThanOwned,
/// Can't transfer tokens to ethereum zero address
AddressIsZero,
- /// Target collection doesn't supports this operation
+ /// Target collection doesn't support this operation
UnsupportedOperation,
- /// Not sufficient funds to perform action
+ /// Insufficient funds to perform an action
NotSufficientFounds,
- /// User not passed nesting rule
+ /// User does not satisfy the nesting rule
UserIsNotAllowedToNest,
- /// Only tokens from specific collections may nest tokens under this
+ /// Only tokens from specific collections may nest tokens under this one
SourceCollectionIsNotAllowedToNest,
/// Tried to store more data than allowed in collection field
@@ -558,7 +558,7 @@
/// Property key is too long
PropertyKeyIsTooLong,
- /// Only ASCII letters, digits, and '_', '-' are allowed
+ /// Only ASCII letters, digits, and symbols `_`, `-`, and `.` are allowed
InvalidCharacterInPropertyKey,
/// Empty property keys are forbidden
@@ -571,7 +571,7 @@
CollectionIsInternal,
}
- /// Storage of the count of created collections.
+ /// Storage of the count of created collections. Essentially contains the last collection ID.
#[pallet::storage]
pub type CreatedCollectionCount<T> = StorageValue<Value = CollectionId, QueryKind = ValueQuery>;
@@ -600,7 +600,7 @@
OnEmpty = up_data_structs::CollectionProperties,
>;
- /// Storage of collection properties permissions.
+ /// Storage of token property permissions of a collection.
#[pallet::storage]
#[pallet::getter(fn property_permissions)]
pub type CollectionPropertyPermissions<T> = StorageMap<
@@ -610,7 +610,7 @@
QueryKind = ValueQuery,
>;
- /// Storage of collection admins count.
+ /// Storage of the amount of collection admins.
#[pallet::storage]
pub type AdminAmount<T> = StorageMap<
Hasher = Blake2_128Concat,
@@ -619,7 +619,7 @@
QueryKind = ValueQuery,
>;
- /// List of collection admins
+ /// List of collection admins.
#[pallet::storage]
pub type IsAdmin<T: Config> = StorageNMap<
Key = (
@@ -630,7 +630,7 @@
QueryKind = ValueQuery,
>;
- /// Allowlisted collection users
+ /// Allowlisted collection users.
#[pallet::storage]
pub type Allowlist<T: Config> = StorageNMap<
Key = (
pallets/fungible/src/lib.rsdiffbeforeafterboth--- a/pallets/fungible/src/lib.rs
+++ b/pallets/fungible/src/lib.rs
@@ -119,8 +119,7 @@
pub enum Error<T> {
/// Not Fungible item data used to mint in Fungible collection.
NotFungibleDataUsedToMintFungibleCollectionToken,
- /// Not default id passed as TokenId argument.
- /// The default value of TokenId for Fungible collection is 0.
+ /// Fungible tokens hold no ID, and the default value of TokenId for Fungible collection is 0.
FungibleItemsHaveNoId,
/// Tried to set data for fungible item.
FungibleItemsDontHaveData,
@@ -157,7 +156,7 @@
QueryKind = ValueQuery,
>;
- /// Storage for delegated assets.
+ /// Storage for assets delegated to a limited extent to other users.
#[pallet::storage]
pub type Allowance<T: Config> = StorageNMap<
Key = (
@@ -172,7 +171,6 @@
/// Wrapper around untyped collection handle, asserting inner collection is of fungible type.
/// Required for interaction with Fungible collections, type safety and implementation [`solidity_interface`][`evm_coder::solidity_interface`].
-
pub struct FungibleHandle<T: Config>(pallet_common::CollectionHandle<T>);
/// Implementation of methods required for dispatching during runtime.
pallets/nonfungible/src/lib.rsdiffbeforeafterboth--- a/pallets/nonfungible/src/lib.rs
+++ b/pallets/nonfungible/src/lib.rs
@@ -21,7 +21,7 @@
//! - [`Config`]
//! - [`NonfungibleHandle`]
//! - [`Pallet`]
-//! - [`CommonWeights`]
+//! - [`CommonWeights`](common::CommonWeights)
//!
//! ## Overview
//!
@@ -130,6 +130,8 @@
pub type CreateItemData<T> = CreateNftExData<<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
+/// for the convenience of database access. Notably contains the owner account address.
#[struct_versioning::versioned(version = 2, upper)]
#[derive(Encode, Decode, TypeInfo, MaxEncodedLen)]
pub struct ItemData<CrossAccountId> {
@@ -176,17 +178,17 @@
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
- /// Amount of tokens minted for collection.
+ /// Total amount of minted tokens in a collection.
#[pallet::storage]
pub type TokensMinted<T: Config> =
StorageMap<Hasher = Twox64Concat, Key = CollectionId, Value = u32, QueryKind = ValueQuery>;
- /// Amount of burnt tokens for collection.
+ /// Amount of burnt tokens in a collection.
#[pallet::storage]
pub type TokensBurnt<T: Config> =
StorageMap<Hasher = Twox64Concat, Key = CollectionId, Value = u32, QueryKind = ValueQuery>;
- /// Custom data serialized to bytes for token.
+ /// Token data, used to partially describe a token.
#[pallet::storage]
pub type TokenData<T: Config> = StorageNMap<
Key = (Key<Twox64Concat, CollectionId>, Key<Twox64Concat, TokenId>),
@@ -194,7 +196,7 @@
QueryKind = OptionQuery,
>;
- /// Key-Value map stored for token.
+ /// Map of key-value pairs, describing the metadata of a token.
#[pallet::storage]
#[pallet::getter(fn token_properties)]
pub type TokenProperties<T: Config> = StorageNMap<
@@ -204,7 +206,14 @@
OnEmpty = up_data_structs::TokenProperties,
>;
- /// Custom data that is serialized to bytes and attached to a token property.
+ /// Custom data of a token that is serialized to bytes,
+ /// primarily reserved for on-chain operations,
+ /// normally obscured from the external users.
+ ///
+ /// Auxiliary properties are slightly different from
+ /// usual [`TokenProperties`] due to an unlimited number
+ /// and separately stored and written-to key-value pairs.
+ ///
/// Currently used to store RMRK data.
#[pallet::storage]
#[pallet::getter(fn token_aux_property)]
@@ -244,7 +253,7 @@
QueryKind = ValueQuery,
>;
- /// Amount of tokens owned by account.
+ /// Amount of tokens owned by an account in a collection.
#[pallet::storage]
pub type AccountBalance<T: Config> = StorageNMap<
Key = (
@@ -255,7 +264,7 @@
QueryKind = ValueQuery,
>;
- /// Allowance set by an owner for a spender for a token.
+ /// Allowance set by a token owner for another user to perform one of certain transactions on a token.
#[pallet::storage]
pub type Allowance<T: Config> = StorageNMap<
Key = (Key<Twox64Concat, CollectionId>, Key<Twox64Concat, TokenId>),
@@ -263,6 +272,7 @@
QueryKind = OptionQuery,
>;
+ /// Upgrade from the old schema to properties.
#[pallet::hooks]
impl<T: Config> Hooks<BlockNumberFor<T>> for Pallet<T> {
fn on_runtime_upgrade() -> Weight {
pallets/refungible/src/lib.rsdiffbeforeafterboth--- a/pallets/refungible/src/lib.rs
+++ b/pallets/refungible/src/lib.rs
@@ -21,7 +21,7 @@
//! - [`Config`]
//! - [`RefungibleHandle`]
//! - [`Pallet`]
-//! - [`CommonWeights`]
+//! - [`CommonWeights`](common::CommonWeights)
//!
//! ## Overview
//!
@@ -119,6 +119,8 @@
pub mod weights;
pub(crate) type SelfWeightOf<T> = <T as Config>::WeightInfo;
+/// Token data, stored independently from other data used to describe it
+/// for the convenience of database access. Notably contains the token metadata.
#[struct_versioning::versioned(version = 2, upper)]
#[derive(Encode, Decode, Default, TypeInfo, MaxEncodedLen)]
pub struct ItemData {
@@ -143,13 +145,13 @@
pub enum Error<T> {
/// Not Refungible item data used to mint in Refungible collection.
NotRefungibleDataUsedToMintFungibleCollectionToken,
- /// Maximum refungibility exceeded
+ /// Maximum refungibility exceeded.
WrongRefungiblePieces,
- /// Refungible token can't be repartitioned by user who isn't owns all pieces
+ /// Refungible token can't be repartitioned by user who isn't owns all pieces.
RepartitionWhileNotOwningAllPieces,
- /// Refungible token can't nest other tokens
+ /// Refungible token can't nest other tokens.
RefungibleDisallowsNesting,
- /// Setting item properties is not allowed
+ /// Setting item properties is not allowed.
SettingPropertiesNotAllowed,
}
@@ -167,17 +169,17 @@
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);
- /// Amount of tokens minted for collection
+ /// Total amount of minted tokens in a collection.
#[pallet::storage]
pub type TokensMinted<T: Config> =
StorageMap<Hasher = Twox64Concat, Key = CollectionId, Value = u32, QueryKind = ValueQuery>;
- /// Amount of burnt tokens for collection
+ /// Amount of tokens burnt in a collection.
#[pallet::storage]
pub type TokensBurnt<T: Config> =
StorageMap<Hasher = Twox64Concat, Key = CollectionId, Value = u32, QueryKind = ValueQuery>;
- /// Custom data serialized to bytes for token
+ /// Token data, used to partially describe a token.
#[pallet::storage]
pub type TokenData<T: Config> = StorageNMap<
Key = (Key<Twox64Concat, CollectionId>, Key<Twox64Concat, TokenId>),
@@ -185,6 +187,7 @@
QueryKind = ValueQuery,
>;
+ /// Amount of pieces a refungible token is split into.
#[pallet::storage]
#[pallet::getter(fn token_properties)]
pub type TokenProperties<T: Config> = StorageNMap<
@@ -202,7 +205,7 @@
QueryKind = ValueQuery,
>;
- /// Used to enumerate tokens owned by account
+ /// Used to enumerate tokens owned by account.
#[pallet::storage]
pub type Owned<T: Config> = StorageNMap<
Key = (
@@ -214,7 +217,7 @@
QueryKind = ValueQuery,
>;
- /// Amount of tokens owned by account
+ /// Amount of tokens (not pieces) partially owned by an account within a collection.
#[pallet::storage]
pub type AccountBalance<T: Config> = StorageNMap<
Key = (
@@ -226,7 +229,7 @@
QueryKind = ValueQuery,
>;
- /// Amount of token pieces owned by account
+ /// Amount of token pieces owned by account.
#[pallet::storage]
pub type Balance<T: Config> = StorageNMap<
Key = (
@@ -239,7 +242,7 @@
QueryKind = ValueQuery,
>;
- /// Allowance set by an owner for a spender for a token
+ /// Allowance set by a token owner for another user to perform one of certain transactions on a number of pieces of a token.
#[pallet::storage]
pub type Allowance<T: Config> = StorageNMap<
Key = (
pallets/scheduler/src/lib.rsdiffbeforeafterboth--- a/pallets/scheduler/src/lib.rs
+++ b/pallets/scheduler/src/lib.rs
@@ -24,7 +24,7 @@
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
-// http://www.apache.org/licenses/LICENSE-2.0
+// <http://www.apache.org/licenses/LICENSE-2.0>
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
@@ -50,7 +50,7 @@
//! Also possible to book a call with a certain frequency.
//!
//! Key differences from the original pallet:
-//! https://crates.io/crates/pallet-scheduler
+//! <https://crates.io/crates/pallet-scheduler>
//! Schedule Id restricted by 16 bytes. Identificator for booked call.
//! Priority limited by HARD DEADLINE (<= 63). Calls over maximum weight don't include to block.
//! The maximum weight that may be scheduled per block for any dispatchables of less priority than `schedule::HARD_DEADLINE`.
@@ -267,6 +267,7 @@
/// A Scheduler-Runtime interface for finer payment handling.
pub trait DispatchCall<T: frame_system::Config + Config, SelfContainedSignedInfo> {
+ /// Reserve (lock) the maximum spendings on a call, calculated from its weight and the repetition count.
fn reserve_balance(
id: ScheduledId,
sponsor: <T as frame_system::Config>::AccountId,
@@ -274,7 +275,7 @@
count: u32,
) -> Result<(), DispatchError>;
- /// Unlock centain amount from payer
+ /// Unreserve (unlock) a certain amount from the payer's reserved funds, returning the change.
fn pay_for_call(
id: ScheduledId,
sponsor: <T as frame_system::Config>::AccountId,
@@ -290,6 +291,7 @@
TransactionValidityError,
>;
+ /// Release unspent reserved funds in case of a schedule cancel.
fn cancel_reserve(
id: ScheduledId,
sponsor: <T as frame_system::Config>::AccountId,
@@ -494,9 +496,8 @@
Agenda::<T>::append(wake, Some(s));
}
}
- /// Weight should be 0, because transaction already paid
+ // Total weight should be 0, because the transaction is already paid for
0
- //total_weight
}
}
pallets/structure/src/lib.rsdiffbeforeafterboth--- a/pallets/structure/src/lib.rs
+++ b/pallets/structure/src/lib.rs
@@ -78,19 +78,19 @@
#[pallet::error]
pub enum Error<T> {
- /// While searched for owner, got already checked account
+ /// While nesting, encountered an already checked account, detecting a loop.
OuroborosDetected,
- /// While searched for owner, encountered depth limit
+ /// While nesting, reached the depth limit of nesting, exceeding the provided budget.
DepthLimit,
- /// While iterating over children, encountered breadth limit
+ /// While nesting, reached the breadth limit of nesting, exceeding the provided budget.
BreadthLimit,
- /// While searched for owner, found token owner by not-yet-existing token
+ /// Couldn't find the token owner that is itself a token.
TokenNotFound,
}
#[pallet::event]
pub enum Event<T> {
- /// Executed call on behalf of token
+ /// Executed call on behalf of the token.
Executed(DispatchResult),
}
@@ -126,11 +126,11 @@
#[derive(PartialEq)]
pub enum Parent<CrossAccountId> {
- /// Token owned by normal account
+ /// Token owned by a normal account.
User(CrossAccountId),
- /// Passed token not found
+ /// Could not find the token provided as the owner.
TokenNotFound,
- /// Token owner is another token (target token still may not exist)
+ /// Token owner is another token (still, the target token may not exist).
Token(CollectionId, TokenId),
}
pallets/unique/src/eth/mod.rsdiffbeforeafterboth--- a/pallets/unique/src/eth/mod.rs
+++ b/pallets/unique/src/eth/mod.rs
@@ -14,6 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
+//! Implementation of CollectionHelpers contract.
+
use core::marker::PhantomData;
use evm_coder::{execution::*, generate_stubgen, solidity_interface, weight, types::*};
use ethereum as _;
@@ -33,7 +35,8 @@
use sp_std::vec::Vec;
use alloc::format;
-struct EvmCollectionHelpers<T: Config>(SubstrateRecorder<T>);
+/// See [`CollectionHelpersCall`]
+pub struct EvmCollectionHelpers<T: Config>(SubstrateRecorder<T>);
impl<T: Config> WithRecorder<T> for EvmCollectionHelpers<T> {
fn recorder(&self) -> &SubstrateRecorder<T> {
&self.0
@@ -44,8 +47,14 @@
}
}
+/// @title Contract, which allows users to operate with collections
#[solidity_interface(name = "CollectionHelpers", events(CollectionHelpersEvents))]
impl<T: Config + pallet_nonfungible::Config> EvmCollectionHelpers<T> {
+ /// Create an NFT collection
+ /// @param name Name of the collection
+ /// @param description Informative description of the collection
+ /// @param token_prefix Token prefix to represent the collection tokens in UI and user applications
+ /// @return address Address of the newly created collection
#[weight(<SelfWeightOf<T>>::create_collection())]
fn create_nonfungible_collection(
&mut self,
@@ -100,6 +109,9 @@
Ok(address)
}
+ /// Check if a collection exists
+ /// @param collection_address Address of the collection in question
+ /// @return bool Does the collection exist?
fn is_collection_exist(&self, _caller: caller, collection_address: address) -> Result<bool> {
if let Some(id) = pallet_common::eth::map_eth_to_id(&collection_address) {
let collection_id = id;
@@ -110,6 +122,7 @@
}
}
+/// Implements [`OnMethodCall`], which delegates call to [`EvmCollectionHelpers`]
pub struct CollectionHelpersOnMethodCall<T: Config>(PhantomData<*const T>);
impl<T: Config + pallet_nonfungible::Config> OnMethodCall<T> for CollectionHelpersOnMethodCall<T> {
fn is_reserved(contract: &sp_core::H160) -> bool {
pallets/unique/src/lib.rsdiffbeforeafterboth--- a/pallets/unique/src/lib.rs
+++ b/pallets/unique/src/lib.rs
@@ -14,6 +14,55 @@
// You should have received a copy of the GNU General Public License
// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
+//! # Unique Pallet
+//!
+//! A pallet governing Unique transactions.
+//!
+//! - [`Config`]
+//! - [`Call`]
+//! - [`Pallet`]
+//!
+//! ## Overview
+//!
+//! The Unique pallet's purpose is to be the primary interface between
+//! external users and the inner structure of the Unique chains.
+//!
+//! It also contains an implementation of [`CollectionHelpers`][`eth`],
+//! an Ethereum contract dealing with collection operations.
+//!
+//! ## Interface
+//!
+//! ### Dispatchables
+//!
+//! - `create_collection` - Create a collection of tokens. **Deprecated**, use `create_collection_ex`.
+//! - `create_collection_ex` - Create a collection of tokens with explicit parameters.
+//! - `destroy_collection` - Destroy a collection if no tokens exist within.
+//! - `add_to_allow_list` - Add an address to allow list.
+//! - `remove_from_allow_list` - Remove an address from allow list.
+//! - `change_collection_owner` - Change the owner of the collection.
+//! - `add_collection_admin` - Add an admin to a collection.
+//! - `remove_collection_admin` - Remove admin of a collection.
+//! - `set_collection_sponsor` - Invite a new collection sponsor.
+//! - `confirm_sponsorship` - Confirm own sponsorship of a collection, becoming the sponsor.
+//! - `remove_collection_sponsor` - Remove a sponsor from a collection.
+//! - `create_item` - Create an item within a collection.
+//! - `create_multiple_items` - Create multiple items within a collection.
+//! - `set_collection_properties` - Add or change collection properties.
+//! - `delete_collection_properties` - Delete specified collection properties.
+//! - `set_token_properties` - Add or change token properties.
+//! - `delete_token_properties` - Delete token properties.
+//! - `set_token_property_permissions` - Add or change token property permissions of a collection.
+//! - `create_multiple_items_ex` - Create multiple items within a collection with explicitly specified initial parameters.
+//! - `set_transfers_enabled_flag` - Completely allow or disallow transfers for a particular collection.
+//! - `burn_item` - Destroy an item.
+//! - `burn_from` - Destroy an item on behalf of the owner as a non-owner account.
+//! - `transfer` - Change ownership of the token.
+//! - `transfer_from` - Change ownership of the token on behalf of the owner as a non-owner account.
+//! - `approve` - Allow a non-permissioned address to transfer or burn an item.
+//! - `set_collection_limits` - Set specific limits of a collection.
+//! - `set_collection_permissions` - Set specific permissions of a collection.
+//! - `repartition` - Re-partition a refungible token, while owning all of its parts.
+
#![recursion_limit = "1024"]
#![cfg_attr(not(feature = "std"), no_std)]
#![allow(
@@ -54,28 +103,35 @@
pub mod weights;
use weights::WeightInfo;
-const NESTING_BUDGET: u32 = 5;
+/// Maximum number of levels of depth in the token nesting tree.
+pub const NESTING_BUDGET: u32 = 5;
decl_error! {
- /// Error for non-fungible-token module.
+ /// Errors for the common Unique transactions.
pub enum Error for Module<T: Config> {
- /// Decimal_points parameter must be lower than MAX_DECIMAL_POINTS constant, currently it is 30.
+ /// Decimal_points parameter must be lower than [`up_data_structs::MAX_DECIMAL_POINTS`].
CollectionDecimalPointLimitExceeded,
/// This address is not set as sponsor, use setCollectionSponsor first.
ConfirmUnsetSponsorFail,
/// Length of items properties must be greater than 0.
EmptyArgument,
- /// Repertition is only supported by refungible collection
+ /// Repertition is only supported by refungible collection.
RepartitionCalledOnNonRefungibleCollection,
}
}
+/// Configuration trait of this pallet.
pub trait Config: system::Config + pallet_common::Config + Sized + TypeInfo {
+ /// Overarching event type.
type Event: From<Event<Self>> + Into<<Self as frame_system::Config>::Event>;
/// Weight information for extrinsics in this pallet.
type WeightInfo: WeightInfo;
+
+ /// Weight information for common pallet operations.
type CommonWeightInfo: CommonWeightInfo<Self::CrossAccountId>;
+
+ /// Weight info information for extra refungible pallet operations.
type RefungibleExtensionsWeightInfo: RefungibleExtensionsWeightInfo;
}
@@ -88,80 +144,68 @@
/// Collection sponsor was removed
///
/// # Arguments
- ///
- /// * collection_id: Globally unique collection identifier.
+ /// * collection_id: ID of the affected collection.
CollectionSponsorRemoved(CollectionId),
/// Collection admin was added
///
/// # Arguments
- ///
- /// * collection_id: Globally unique collection identifier.
- ///
- /// * admin: Admin address.
+ /// * collection_id: ID of the affected collection.
+ /// * admin: Admin address.
CollectionAdminAdded(CollectionId, CrossAccountId),
- /// Collection owned was change
+ /// Collection owned was changed
///
/// # Arguments
- ///
- /// * collection_id: Globally unique collection identifier.
- ///
- /// * owner: New owner address.
+ /// * collection_id: ID of the affected collection.
+ /// * owner: New owner address.
CollectionOwnedChanged(CollectionId, AccountId),
/// Collection sponsor was set
///
/// # Arguments
- ///
- /// * collection_id: Globally unique collection identifier.
- ///
- /// * owner: New sponsor address.
+ /// * collection_id: ID of the affected collection.
+ /// * owner: New sponsor address.
CollectionSponsorSet(CollectionId, AccountId),
/// New sponsor was confirm
///
/// # Arguments
- ///
- /// * collection_id: Globally unique collection identifier.
- ///
- /// * sponsor: New sponsor address.
+ /// * collection_id: ID of the affected collection.
+ /// * sponsor: New sponsor address.
SponsorshipConfirmed(CollectionId, AccountId),
/// Collection admin was removed
///
/// # Arguments
- ///
- /// * collection_id: Globally unique collection identifier.
- ///
- /// * admin: Admin address.
+ /// * collection_id: ID of the affected collection.
+ /// * admin: Removed admin address.
CollectionAdminRemoved(CollectionId, CrossAccountId),
- /// Address was remove from allow list
+ /// Address was removed from the allow list
///
/// # Arguments
- ///
- /// * collection_id: Globally unique collection identifier.
- ///
- /// * user: Address.
+ /// * collection_id: ID of the affected collection.
+ /// * user: Address of the removed account.
AllowListAddressRemoved(CollectionId, CrossAccountId),
- /// Address was add to allow list
+ /// Address was added to the allow list
///
/// # Arguments
- ///
- /// * collection_id: Globally unique collection identifier.
- ///
- /// * user: Address.
+ /// * collection_id: ID of the affected collection.
+ /// * user: Address of the added account.
AllowListAddressAdded(CollectionId, CrossAccountId),
- /// Collection limits was set
+ /// Collection limits were set
///
/// # Arguments
- ///
- /// * collection_id: Globally unique collection identifier.
+ /// * collection_id: ID of the affected collection.
CollectionLimitSet(CollectionId),
+ /// Collection permissions were set
+ ///
+ /// # Arguments
+ /// * collection_id: ID of the affected collection.
CollectionPermissionSet(CollectionId),
}
}
@@ -198,7 +242,7 @@
ChainVersion: u64;
//#endregion
- //#region Tokens transfer rate limit baskets
+ //#region Tokens transfer sponosoring rate limit baskets
/// (Collection id (controlled?2), who created (real))
/// TODO: Off chain worker should remove from this map when collection gets removed
pub CreateItemBasket get(fn create_item_basket): map hasher(blake2_128_concat) (CollectionId, T::AccountId) => Option<T::BlockNumber>;
@@ -214,16 +258,20 @@
/// Collection id (controlled?2), token id (controlled?2)
#[deprecated]
pub VariableMetaDataBasket get(fn variable_meta_data_basket): double_map hasher(blake2_128_concat) CollectionId, hasher(blake2_128_concat) TokenId => Option<T::BlockNumber>;
+ /// Last sponsoring of token property setting // todo:doc rephrase this and the following
pub TokenPropertyBasket get(fn token_property_basket): double_map hasher(blake2_128_concat) CollectionId, hasher(blake2_128_concat) TokenId => Option<T::BlockNumber>;
- /// Approval sponsoring
+ /// Last sponsoring of NFT approval in a collection
pub NftApproveBasket get(fn nft_approve_basket): double_map hasher(blake2_128_concat) CollectionId, hasher(blake2_128_concat) TokenId => Option<T::BlockNumber>;
+ /// Last sponsoring of fungible tokens approval in a collection
pub FungibleApproveBasket get(fn fungible_approve_basket): double_map hasher(blake2_128_concat) CollectionId, hasher(twox_64_concat) T::AccountId => Option<T::BlockNumber>;
+ /// Last sponsoring of RFT approval in a collection
pub RefungibleApproveBasket get(fn refungible_approve_basket): nmap hasher(blake2_128_concat) CollectionId, hasher(blake2_128_concat) TokenId, hasher(twox_64_concat) T::AccountId => Option<T::BlockNumber>;
}
}
decl_module! {
+ /// Type alias to Pallet, to be used by construct_runtime.
pub struct Module<T: Config> for enum Call
where
origin: T::Origin
@@ -244,30 +292,38 @@
0
}
- /// This method creates a Collection of NFTs. Each Token may have multiple properties encoded as an array of bytes of certain length. The initial owner of the collection is set to the address that signed the transaction and can be changed later.
- ///
- /// # Permissions
+ /// Create a collection of tokens.
///
- /// * Anyone.
+ /// Each Token may have multiple properties encoded as an array of bytes
+ /// of certain length. The initial owner of the collection is set
+ /// to the address that signed the transaction and can be changed later.
///
- /// # Arguments
+ /// Prefer the more advanced [`create_collection_ex`][`Pallet::create_collection_ex`] instead.
///
- /// * collection_name: UTF-16 string with collection name (limit 64 characters), will be stored as zero-terminated.
+ /// # Permissions
///
- /// * collection_description: UTF-16 string with collection description (limit 256 characters), will be stored as zero-terminated.
+ /// * Anyone - becomes the owner of the new collection.
///
- /// * token_prefix: UTF-8 string with token prefix.
+ /// # Arguments
///
- /// * mode: [CollectionMode] collection type and type dependent data.
+ /// * `collection_name`: Wide-character string with collection name
+ /// (limit [`MAX_COLLECTION_NAME_LENGTH`]).
+ /// * `collection_description`: Wide-character string with collection description
+ /// (limit [`MAX_COLLECTION_DESCRIPTION_LENGTH`]).
+ /// * `token_prefix`: Byte string containing the token prefix to mark a collection
+ /// to which a token belongs (limit [`MAX_TOKEN_PREFIX_LENGTH`]).
+ /// * `mode`: Type of items stored in the collection and type dependent data.
// returns collection ID
#[weight = <SelfWeightOf<T>>::create_collection()]
#[transactional]
- #[deprecated]
- pub fn create_collection(origin,
- collection_name: BoundedVec<u16, ConstU32<MAX_COLLECTION_NAME_LENGTH>>,
- collection_description: BoundedVec<u16, ConstU32<MAX_COLLECTION_DESCRIPTION_LENGTH>>,
- token_prefix: BoundedVec<u8, ConstU32<MAX_TOKEN_PREFIX_LENGTH>>,
- mode: CollectionMode) -> DispatchResult {
+ #[deprecated(note = "`create_collection_ex` is more up-to-date and advanced, prefer it instead")]
+ pub fn create_collection(
+ origin,
+ collection_name: BoundedVec<u16, ConstU32<MAX_COLLECTION_NAME_LENGTH>>,
+ collection_description: BoundedVec<u16, ConstU32<MAX_COLLECTION_DESCRIPTION_LENGTH>>,
+ token_prefix: BoundedVec<u8, ConstU32<MAX_TOKEN_PREFIX_LENGTH>>,
+ mode: CollectionMode
+ ) -> DispatchResult {
let data: CreateCollectionData<T::AccountId> = CreateCollectionData {
name: collection_name,
description: collection_description,
@@ -278,9 +334,17 @@
Self::create_collection_ex(origin, data)
}
- /// This method creates a collection
+ /// Create a collection with explicit parameters.
+ ///
+ /// Prefer it to the deprecated [`create_collection`][`Pallet::create_collection`] method.
+ ///
+ /// # Permissions
+ ///
+ /// * Anyone - becomes the owner of the new collection.
///
- /// Prefer it to deprecated [`created_collection`] method
+ /// # Arguments
+ ///
+ /// * `data`: Explicit data of a collection used for its creation.
#[weight = <SelfWeightOf<T>>::create_collection()]
#[transactional]
pub fn create_collection_ex(origin, data: CreateCollectionData<T::AccountId>) -> DispatchResult {
@@ -293,15 +357,15 @@
Ok(())
}
- /// Destroys collection if no tokens within this collection
+ /// Destroy a collection if no tokens exist within.
///
/// # Permissions
///
- /// * Collection Owner.
+ /// * Collection owner
///
/// # Arguments
///
- /// * collection_id: collection to destroy.
+ /// * `collection_id`: Collection to destroy.
#[weight = <SelfWeightOf<T>>::destroy_collection()]
#[transactional]
pub fn destroy_collection(origin, collection_id: CollectionId) -> DispatchResult {
@@ -328,14 +392,13 @@
///
/// # Permissions
///
- /// * Collection Owner
- /// * Collection Admin
+ /// * Collection owner
+ /// * Collection admin
///
/// # Arguments
///
- /// * collection_id.
- ///
- /// * address.
+ /// * `collection_id`: ID of the modified collection.
+ /// * `address`: ID of the address to be added to the allowlist.
#[weight = <SelfWeightOf<T>>::add_to_allow_list()]
#[transactional]
pub fn add_to_allow_list(origin, collection_id: CollectionId, address: T::CrossAccountId) -> DispatchResult{
@@ -363,14 +426,13 @@
///
/// # Permissions
///
- /// * Collection Owner
- /// * Collection Admin
+ /// * Collection owner
+ /// * Collection admin
///
/// # Arguments
///
- /// * collection_id.
- ///
- /// * address.
+ /// * `collection_id`: ID of the modified collection.
+ /// * `address`: ID of the address to be removed from the allowlist.
#[weight = <SelfWeightOf<T>>::remove_from_allow_list()]
#[transactional]
pub fn remove_from_allow_list(origin, collection_id: CollectionId, address: T::CrossAccountId) -> DispatchResult{
@@ -398,13 +460,12 @@
///
/// # Permissions
///
- /// * Collection Owner.
+ /// * Collection owner
///
/// # Arguments
///
- /// * collection_id.
- ///
- /// * new_owner.
+ /// * `collection_id`: ID of the modified collection.
+ /// * `new_owner`: ID of the account that will become the owner.
#[weight = <SelfWeightOf<T>>::change_collection_owner()]
#[transactional]
pub fn change_collection_owner(origin, collection_id: CollectionId, new_owner: T::AccountId) -> DispatchResult {
@@ -424,46 +485,51 @@
target_collection.save()
}
- /// Adds an admin of the Collection.
- /// NFT Collection can be controlled by multiple admin addresses (some which can also be servers, for example). Admins can issue and burn NFTs, as well as add and remove other admins, but cannot change NFT or Collection ownership.
+ /// Add an admin to a collection.
///
+ /// NFT Collection can be controlled by multiple admin addresses
+ /// (some which can also be servers, for example). Admins can issue
+ /// and burn NFTs, as well as add and remove other admins,
+ /// but cannot change NFT or Collection ownership.
+ ///
/// # Permissions
///
- /// * Collection Owner.
- /// * Collection Admin.
+ /// * Collection owner
+ /// * Collection admin
///
/// # Arguments
///
- /// * collection_id: ID of the Collection to add admin for.
- ///
- /// * new_admin_id: Address of new admin to add.
+ /// * `collection_id`: ID of the Collection to add an admin for.
+ /// * `new_admin`: Address of new admin to add.
#[weight = <SelfWeightOf<T>>::add_collection_admin()]
#[transactional]
- pub fn add_collection_admin(origin, collection_id: CollectionId, new_admin_id: T::CrossAccountId) -> DispatchResult {
+ pub fn add_collection_admin(origin, collection_id: CollectionId, new_admin: T::CrossAccountId) -> DispatchResult {
let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);
let collection = <CollectionHandle<T>>::try_get(collection_id)?;
collection.check_is_internal()?;
<Pallet<T>>::deposit_event(Event::<T>::CollectionAdminAdded(
collection_id,
- new_admin_id.clone()
+ new_admin.clone()
));
- <PalletCommon<T>>::toggle_admin(&collection, &sender, &new_admin_id, true)
+ <PalletCommon<T>>::toggle_admin(&collection, &sender, &new_admin, true)
}
- /// Remove admin address of the Collection. An admin address can remove itself. List of admins may become empty, in which case only Collection Owner will be able to add an Admin.
+ /// Remove admin of a collection.
+ ///
+ /// An admin address can remove itself. List of admins may become empty,
+ /// in which case only Collection Owner will be able to add an Admin.
///
/// # Permissions
///
- /// * Collection Owner.
- /// * Collection Admin.
+ /// * Collection owner
+ /// * Collection admin
///
/// # Arguments
///
- /// * collection_id: ID of the Collection to remove admin for.
- ///
- /// * account_id: Address of admin to remove.
+ /// * `collection_id`: ID of the collection to remove the admin for.
+ /// * `account_id`: Address of the admin to remove.
#[weight = <SelfWeightOf<T>>::remove_collection_admin()]
#[transactional]
pub fn remove_collection_admin(origin, collection_id: CollectionId, account_id: T::CrossAccountId) -> DispatchResult {
@@ -479,15 +545,19 @@
<PalletCommon<T>>::toggle_admin(&collection, &sender, &account_id, false)
}
+ /// Set (invite) a new collection sponsor.
+ ///
+ /// If successful, confirmation from the sponsor-to-be will be pending.
+ ///
/// # Permissions
///
- /// * Collection Owner
+ /// * Collection owner
+ /// * Collection admin
///
/// # Arguments
///
- /// * collection_id.
- ///
- /// * new_sponsor.
+ /// * `collection_id`: ID of the modified collection.
+ /// * `new_sponsor`: ID of the account of the sponsor-to-be.
#[weight = <SelfWeightOf<T>>::set_collection_sponsor()]
#[transactional]
pub fn set_collection_sponsor(origin, collection_id: CollectionId, new_sponsor: T::AccountId) -> DispatchResult {
@@ -507,13 +577,19 @@
target_collection.save()
}
+ /// Confirm own sponsorship of a collection, becoming the sponsor.
+ ///
+ /// An invitation must be pending, see [`set_collection_sponsor`][`Pallet::set_collection_sponsor`].
+ /// Sponsor can pay the fees of a transaction instead of the sender,
+ /// but only within specified limits.
+ ///
/// # Permissions
///
- /// * Sponsor.
+ /// * Sponsor-to-be
///
/// # Arguments
///
- /// * collection_id.
+ /// * `collection_id`: ID of the collection with the pending sponsor.
#[weight = <SelfWeightOf<T>>::confirm_sponsorship()]
#[transactional]
pub fn confirm_sponsorship(origin, collection_id: CollectionId) -> DispatchResult {
@@ -534,15 +610,15 @@
target_collection.save()
}
- /// Switch back to pay-per-own-transaction model.
+ /// Remove a collection's a sponsor, making everyone pay for their own transactions.
///
/// # Permissions
///
- /// * Collection owner.
+ /// * Collection owner
///
/// # Arguments
///
- /// * collection_id.
+ /// * `collection_id`: ID of the collection with the sponsor to remove.
#[weight = <SelfWeightOf<T>>::remove_collection_sponsor()]
#[transactional]
pub fn remove_collection_sponsor(origin, collection_id: CollectionId) -> DispatchResult {
@@ -560,24 +636,24 @@
target_collection.save()
}
- /// This method creates a concrete instance of NFT Collection created with CreateCollection method.
+ /// Mint an item within a collection.
+ ///
+ /// A collection must exist first, see [`create_collection_ex`][`Pallet::create_collection_ex`].
///
/// # Permissions
///
- /// * Collection Owner.
- /// * Collection Admin.
+ /// * Collection owner
+ /// * Collection admin
/// * Anyone if
/// * Allow List is enabled, and
/// * Address is added to allow list, and
- /// * MintPermission is enabled (see SetMintPermission method)
+ /// * MintPermission is enabled (see [`set_collection_permissions`][`Pallet::set_collection_permissions`])
///
/// # Arguments
- ///
- /// * collection_id: ID of the collection.
///
- /// * owner: Address, initial owner of the NFT.
- ///
- /// * data: Token data to store on chain.
+ /// * `collection_id`: ID of the collection to which an item would belong.
+ /// * `owner`: Address of the initial owner of the item.
+ /// * `data`: Token data describing the item to store on chain.
#[weight = T::CommonWeightInfo::create_item()]
#[transactional]
pub fn create_item(origin, collection_id: CollectionId, owner: T::CrossAccountId, data: CreateItemData) -> DispatchResultWithPostInfo {
@@ -587,24 +663,24 @@
dispatch_tx::<T, _>(collection_id, |d| d.create_item(sender, owner, data, &budget))
}
- /// This method creates multiple items in a collection created with CreateCollection method.
+ /// Create multiple items within a collection.
///
+ /// A collection must exist first, see [`create_collection_ex`][`Pallet::create_collection_ex`].
+ ///
/// # Permissions
///
- /// * Collection Owner.
- /// * Collection Admin.
+ /// * Collection owner
+ /// * Collection admin
/// * Anyone if
/// * Allow List is enabled, and
- /// * Address is added to allow list, and
- /// * MintPermission is enabled (see SetMintPermission method)
+ /// * Address is added to the allow list, and
+ /// * MintPermission is enabled (see [`set_collection_permissions`][`Pallet::set_collection_permissions`])
///
/// # Arguments
///
- /// * collection_id: ID of the collection.
- ///
- /// * itemsData: Array items properties. Each property is an array of bytes itself, see [create_item].
- ///
- /// * owner: Address, initial owner of the NFT.
+ /// * `collection_id`: ID of the collection to which the tokens would belong.
+ /// * `owner`: Address of the initial owner of the tokens.
+ /// * `items_data`: Vector of data describing each item to be created.
#[weight = T::CommonWeightInfo::create_multiple_items(&items_data)]
#[transactional]
pub fn create_multiple_items(origin, collection_id: CollectionId, owner: T::CrossAccountId, items_data: Vec<CreateItemData>) -> DispatchResultWithPostInfo {
@@ -615,6 +691,18 @@
dispatch_tx::<T, _>(collection_id, |d| d.create_multiple_items(sender, owner, items_data, &budget))
}
+ /// Add or change collection properties.
+ ///
+ /// # Permissions
+ ///
+ /// * Collection owner
+ /// * Collection admin
+ ///
+ /// # Arguments
+ ///
+ /// * `collection_id`: ID of the modified collection.
+ /// * `properties`: Vector of key-value pairs stored as the collection's metadata.
+ /// Keys support Latin letters, `-`, `_`, and `.` as symbols.
#[weight = T::CommonWeightInfo::set_collection_properties(properties.len() as u32)]
#[transactional]
pub fn set_collection_properties(
@@ -629,6 +717,18 @@
dispatch_tx::<T, _>(collection_id, |d| d.set_collection_properties(sender, properties))
}
+ /// Delete specified collection properties.
+ ///
+ /// # Permissions
+ ///
+ /// * Collection Owner
+ /// * Collection Admin
+ ///
+ /// # Arguments
+ ///
+ /// * `collection_id`: ID of the modified collection.
+ /// * `property_keys`: Vector of keys of the properties to be deleted.
+ /// Keys support Latin letters, `-`, `_`, and `.` as symbols.
#[weight = T::CommonWeightInfo::delete_collection_properties(property_keys.len() as u32)]
#[transactional]
pub fn delete_collection_properties(
@@ -643,6 +743,24 @@
dispatch_tx::<T, _>(collection_id, |d| d.delete_collection_properties(&sender, property_keys))
}
+ /// Add or change token properties according to collection's permissions.
+ /// Currently properties only work with NFTs.
+ ///
+ /// # Permissions
+ ///
+ /// * Depends on collection's token property permissions and specified property mutability:
+ /// * Collection owner
+ /// * Collection admin
+ /// * Token owner
+ ///
+ /// See [`set_token_property_permissions`][`Pallet::set_token_property_permissions`].
+ ///
+ /// # Arguments
+ ///
+ /// * `collection_id: ID of the collection to which the token belongs.
+ /// * `token_id`: ID of the modified token.
+ /// * `properties`: Vector of key-value pairs stored as the token's metadata.
+ /// Keys support Latin letters, `-`, `_`, and `.` as symbols.
#[weight = T::CommonWeightInfo::set_token_properties(properties.len() as u32)]
#[transactional]
pub fn set_token_properties(
@@ -659,6 +777,21 @@
dispatch_tx::<T, _>(collection_id, |d| d.set_token_properties(sender, token_id, properties, &budget))
}
+ /// Delete specified token properties. Currently properties only work with NFTs.
+ ///
+ /// # Permissions
+ ///
+ /// * Depends on collection's token property permissions and specified property mutability:
+ /// * Collection owner
+ /// * Collection admin
+ /// * Token owner
+ ///
+ /// # Arguments
+ ///
+ /// * `collection_id`: ID of the collection to which the token belongs.
+ /// * `token_id`: ID of the modified token.
+ /// * `property_keys`: Vector of keys of the properties to be deleted.
+ /// Keys support Latin letters, `-`, `_`, and `.` as symbols.
#[weight = T::CommonWeightInfo::delete_token_properties(property_keys.len() as u32)]
#[transactional]
pub fn delete_token_properties(
@@ -675,6 +808,21 @@
dispatch_tx::<T, _>(collection_id, |d| d.delete_token_properties(sender, token_id, property_keys, &budget))
}
+ /// Add or change token property permissions of a collection.
+ ///
+ /// Without a permission for a particular key, a property with that key
+ /// cannot be created in a token.
+ ///
+ /// # Permissions
+ ///
+ /// * Collection owner
+ /// * Collection admin
+ ///
+ /// # Arguments
+ ///
+ /// * `collection_id`: ID of the modified collection.
+ /// * `property_permissions`: Vector of permissions for property keys.
+ /// Keys support Latin letters, `-`, `_`, and `.` as symbols.
#[weight = T::CommonWeightInfo::set_token_property_permissions(property_permissions.len() as u32)]
#[transactional]
pub fn set_token_property_permissions(
@@ -689,6 +837,21 @@
dispatch_tx::<T, _>(collection_id, |d| d.set_token_property_permissions(&sender, property_permissions))
}
+ /// Create multiple items within a collection with explicitly specified initial parameters.
+ ///
+ /// # Permissions
+ ///
+ /// * Collection owner
+ /// * Collection admin
+ /// * Anyone if
+ /// * Allow List is enabled, and
+ /// * Address is added to allow list, and
+ /// * MintPermission is enabled (see [`set_collection_permissions`][`Pallet::set_collection_permissions`])
+ ///
+ /// # Arguments
+ ///
+ /// * `collection_id`: ID of the collection to which the tokens would belong.
+ /// * `data`: Explicit item creation data.
#[weight = T::CommonWeightInfo::create_multiple_items_ex(&data)]
#[transactional]
pub fn create_multiple_items_ex(origin, collection_id: CollectionId, data: CreateItemExData<T::CrossAccountId>) -> DispatchResultWithPostInfo {
@@ -698,17 +861,16 @@
dispatch_tx::<T, _>(collection_id, |d| d.create_multiple_items_ex(sender, data, &budget))
}
- /// Set transfers_enabled value for particular collection
+ /// Completely allow or disallow transfers for a particular collection.
///
/// # Permissions
///
- /// * Collection Owner.
+ /// * Collection owner
///
/// # Arguments
///
- /// * collection_id: ID of the collection.
- ///
- /// * value: New flag value.
+ /// * `collection_id`: ID of the collection.
+ /// * `value`: New value of the flag, are transfers allowed?
#[weight = <SelfWeightOf<T>>::set_transfers_enabled_flag()]
#[transactional]
pub fn set_transfers_enabled_flag(origin, collection_id: CollectionId, value: bool) -> DispatchResult {
@@ -723,19 +885,22 @@
target_collection.save()
}
- /// Destroys a concrete instance of NFT.
+ /// Destroy an item.
///
/// # Permissions
///
- /// * Collection Owner.
- /// * Collection Admin.
- /// * Current NFT Owner.
+ /// * Collection owner
+ /// * Collection admin
+ /// * Current item owner
///
/// # Arguments
///
- /// * collection_id: ID of the collection.
- ///
- /// * item_id: ID of NFT to burn.
+ /// * `collection_id`: ID of the collection to which the item belongs.
+ /// * `item_id`: ID of item to burn.
+ /// * `value`: Number of pieces of the item to destroy.
+ /// * Non-Fungible Mode: An NFT is indivisible, there is always 1 corresponding to an ID.
+ /// * Fungible Mode: The desired number of pieces to burn.
+ /// * Re-Fungible Mode: The desired number of pieces to burn.
#[weight = T::CommonWeightInfo::burn_item()]
#[transactional]
pub fn burn_item(origin, collection_id: CollectionId, item_id: TokenId, value: u128) -> DispatchResultWithPostInfo {
@@ -752,22 +917,29 @@
Ok(post_info)
}
- /// Destroys a concrete instance of NFT on behalf of the owner
- /// See also: [`approve`]
+ /// Destroy a token on behalf of the owner as a non-owner account.
+ ///
+ /// See also: [`approve`][`Pallet::approve`].
+ ///
+ /// After this method executes, one approval is removed from the total so that
+ /// the approved address will not be able to transfer this item again from this owner.
///
/// # Permissions
///
- /// * Collection Owner.
- /// * Collection Admin.
- /// * Current NFT Owner.
+ /// * Collection owner
+ /// * Collection admin
+ /// * Current token owner
+ /// * Address approved by current item owner
///
/// # Arguments
///
- /// * collection_id: ID of the collection.
- ///
- /// * item_id: ID of NFT to burn.
- ///
- /// * from: owner of item
+ /// * `from`: The owner of the burning item.
+ /// * `collection_id`: ID of the collection to which the item belongs.
+ /// * `item_id`: ID of item to burn.
+ /// * `value`: Number of pieces to burn.
+ /// * Non-Fungible Mode: An NFT is indivisible, there is always 1 corresponding to an ID.
+ /// * Fungible Mode: The desired number of pieces to burn.
+ /// * Re-Fungible Mode: The desired number of pieces to burn.
#[weight = T::CommonWeightInfo::burn_from()]
#[transactional]
pub fn burn_from(origin, collection_id: CollectionId, from: T::CrossAccountId, item_id: TokenId, value: u128) -> DispatchResultWithPostInfo {
@@ -781,25 +953,23 @@
///
/// # Permissions
///
- /// * Collection Owner
- /// * Collection Admin
- /// * Current NFT owner
+ /// * Collection owner
+ /// * Collection admin
+ /// * Current token owner
///
/// # Arguments
- ///
- /// * recipient: Address of token recipient.
///
- /// * collection_id.
- ///
- /// * item_id: ID of the item
+ /// * `recipient`: Address of token recipient.
+ /// * `collection_id`: ID of the collection the item belongs to.
+ /// * `item_id`: ID of the item.
/// * Non-Fungible Mode: Required.
/// * Fungible Mode: Ignored.
/// * Re-Fungible Mode: Required.
///
- /// * value: Amount to transfer.
- /// * Non-Fungible Mode: Ignored
- /// * Fungible Mode: Must specify transferred amount
- /// * Re-Fungible Mode: Must specify transferred portion (between 0 and 1)
+ /// * `value`: Amount to transfer.
+ /// * Non-Fungible Mode: An NFT is indivisible, there is always 1 corresponding to an ID.
+ /// * Fungible Mode: The desired number of pieces to transfer.
+ /// * Re-Fungible Mode: The desired number of pieces to transfer.
#[weight = T::CommonWeightInfo::transfer()]
#[transactional]
pub fn transfer(origin, recipient: T::CrossAccountId, collection_id: CollectionId, item_id: TokenId, value: u128) -> DispatchResultWithPostInfo {
@@ -809,21 +979,21 @@
dispatch_tx::<T, _>(collection_id, |d| d.transfer(sender, recipient, item_id, value, &budget))
}
- /// Set, change, or remove approved address to transfer the ownership of the NFT.
+ /// Allow a non-permissioned address to transfer or burn an item.
///
/// # Permissions
///
- /// * Collection Owner
- /// * Collection Admin
- /// * Current NFT owner
+ /// * Collection owner
+ /// * Collection admin
+ /// * Current item owner
///
/// # Arguments
///
- /// * approved: Address that is approved to transfer this NFT or zero (if needed to remove approval).
- ///
- /// * collection_id.
- ///
- /// * item_id: ID of the item.
+ /// * `spender`: Account to be approved to make specific transactions on non-owned tokens.
+ /// * `collection_id`: ID of the collection the item belongs to.
+ /// * `item_id`: ID of the item transactions on which are now approved.
+ /// * `amount`: Number of pieces of the item approved for a transaction (maximum of 1 for NFTs).
+ /// Set to 0 to revoke the approval.
#[weight = T::CommonWeightInfo::approve()]
#[transactional]
pub fn approve(origin, spender: T::CrossAccountId, collection_id: CollectionId, item_id: TokenId, amount: u128) -> DispatchResultWithPostInfo {
@@ -832,25 +1002,30 @@
dispatch_tx::<T, _>(collection_id, |d| d.approve(sender, spender, item_id, amount))
}
- /// Change ownership of a NFT on behalf of the owner. See Approve method for additional information. After this method executes, the approval is removed so that the approved address will not be able to transfer this NFT again from this owner.
+ /// Change ownership of an item on behalf of the owner as a non-owner account.
///
- /// # Permissions
- /// * Collection Owner
- /// * Collection Admin
- /// * Current NFT owner
- /// * Address approved by current NFT owner
+ /// See the [`approve`][`Pallet::approve`] method for additional information.
///
- /// # Arguments
+ /// After this method executes, one approval is removed from the total so that
+ /// the approved address will not be able to transfer this item again from this owner.
///
- /// * from: Address that owns token.
+ /// # Permissions
///
- /// * recipient: Address of token recipient.
+ /// * Collection owner
+ /// * Collection admin
+ /// * Current item owner
+ /// * Address approved by current item owner
///
- /// * collection_id.
+ /// # Arguments
///
- /// * item_id: ID of the item.
- ///
- /// * value: Amount to transfer.
+ /// * `from`: Address that currently owns the token.
+ /// * `recipient`: Address of the new token-owner-to-be.
+ /// * `collection_id`: ID of the collection the item.
+ /// * `item_id`: ID of the item to be transferred.
+ /// * `value`: Amount to transfer.
+ /// * Non-Fungible Mode: An NFT is indivisible, there is always 1 corresponding to an ID.
+ /// * Fungible Mode: The desired number of pieces to transfer.
+ /// * Re-Fungible Mode: The desired number of pieces to transfer.
#[weight = T::CommonWeightInfo::transfer_from()]
#[transactional]
pub fn transfer_from(origin, from: T::CrossAccountId, recipient: T::CrossAccountId, collection_id: CollectionId, item_id: TokenId, value: u128 ) -> DispatchResultWithPostInfo {
@@ -860,6 +1035,18 @@
dispatch_tx::<T, _>(collection_id, |d| d.transfer_from(sender, from, recipient, item_id, value, &budget))
}
+ /// Set specific limits of a collection. Empty, or None fields mean chain default.
+ ///
+ /// # Permissions
+ ///
+ /// * Collection owner
+ /// * Collection admin
+ ///
+ /// # Arguments
+ ///
+ /// * `collection_id`: ID of the modified collection.
+ /// * `new_limit`: New limits of the collection. Fields that are not set (None)
+ /// will not overwrite the old ones.
#[weight = <SelfWeightOf<T>>::set_collection_limits()]
#[transactional]
pub fn set_collection_limits(
@@ -882,12 +1069,24 @@
target_collection.save()
}
+ /// Set specific permissions of a collection. Empty, or None fields mean chain default.
+ ///
+ /// # Permissions
+ ///
+ /// * Collection owner
+ /// * Collection admin
+ ///
+ /// # Arguments
+ ///
+ /// * `collection_id`: ID of the modified collection.
+ /// * `new_permission`: New permissions of the collection. Fields that are not set (None)
+ /// will not overwrite the old ones.
#[weight = <SelfWeightOf<T>>::set_collection_limits()]
#[transactional]
pub fn set_collection_permissions(
origin,
collection_id: CollectionId,
- new_limit: CollectionPermissions,
+ new_permission: CollectionPermissions,
) -> DispatchResult {
let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);
let mut target_collection = <CollectionHandle<T>>::try_get(collection_id)?;
@@ -895,7 +1094,7 @@
target_collection.check_is_owner_or_admin(&sender)?;
let old_limit = &target_collection.permissions;
- target_collection.permissions = <PalletCommon<T>>::clamp_permissions(target_collection.mode.clone(), &old_limit, new_limit)?;
+ target_collection.permissions = <PalletCommon<T>>::clamp_permissions(target_collection.mode.clone(), &old_limit, new_permission)?;
<Pallet<T>>::deposit_event(Event::<T>::CollectionPermissionSet(
collection_id
@@ -904,18 +1103,29 @@
target_collection.save()
}
+ /// Re-partition a refungible token, while owning all of its parts/pieces.
+ ///
+ /// # Permissions
+ ///
+ /// * Token owner (must own every part)
+ ///
+ /// # Arguments
+ ///
+ /// * `collection_id`: ID of the collection the RFT belongs to.
+ /// * `token_id`: ID of the RFT.
+ /// * `amount`: New number of parts/pieces into which the token shall be partitioned.
#[weight = T::RefungibleExtensionsWeightInfo::repartition()]
#[transactional]
pub fn repartition(
origin,
collection_id: CollectionId,
- token: TokenId,
+ token_id: TokenId,
amount: u128,
) -> DispatchResultWithPostInfo {
let sender = T::CrossAccountId::from_sub(ensure_signed(origin)?);
dispatch_tx::<T, _>(collection_id, |d| {
if let Some(refungible_extensions) = d.refungible_extensions() {
- refungible_extensions.repartition(&sender, token, amount)
+ refungible_extensions.repartition(&sender, token_id, amount)
} else {
fail!(<Error<T>>::RepartitionCalledOnNonRefungibleCollection)
}
primitives/data-structs/src/lib.rsdiffbeforeafterboth--- a/primitives/data-structs/src/lib.rs
+++ b/primitives/data-structs/src/lib.rs
@@ -197,7 +197,6 @@
#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
pub enum CollectionMode {
NFT,
- // decimal points
Fungible(DecimalPoints),
ReFungible,
}
@@ -252,12 +251,14 @@
pub enum SponsorshipState<AccountId> {
/// The fees are applied to the transaction sender
Disabled,
+ /// Pending confirmation from a sponsor-to-be
Unconfirmed(AccountId),
/// Transactions are sponsored by specified account
Confirmed(AccountId),
}
impl<AccountId> SponsorshipState<AccountId> {
+ /// Get the acting sponsor account, if present
pub fn sponsor(&self) -> Option<&AccountId> {
match self {
Self::Confirmed(sponsor) => Some(sponsor),
@@ -265,6 +266,7 @@
}
}
+ /// Get the sponsor account currently pending confirmation, if present
pub fn pending_sponsor(&self) -> Option<&AccountId> {
match self {
Self::Unconfirmed(sponsor) | Self::Confirmed(sponsor) => Some(sponsor),
@@ -272,6 +274,7 @@
}
}
+ /// Is sponsorship set and acting
pub fn confirmed(&self) -> bool {
matches!(self, Self::Confirmed(_))
}
@@ -283,7 +286,7 @@
}
}
-/// Used in storage
+/// Collection parameters, used in storage (see [`RpcCollection`] for the RPC version).
#[struct_versioning::versioned(version = 2, upper)]
#[derive(Encode, Decode, Clone, PartialEq, TypeInfo, MaxEncodedLen)]
pub struct Collection<AccountId> {
@@ -324,7 +327,7 @@
pub meta_update_permission: MetaUpdatePermission,
}
-/// Used in RPC calls
+/// Collection parameters, used in RPC calls (see [`Collection`] for the storage version).
#[derive(Encode, Decode, Clone, PartialEq, TypeInfo)]
#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
pub struct RpcCollection<AccountId> {
@@ -362,26 +365,41 @@
pub type CollectionPropertiesVec = BoundedVec<Property, ConstU32<MAX_PROPERTIES_PER_ITEM>>;
-/// All fields are wrapped in `Option`s, where None means chain default
-// When adding/removing fields from this struct - don't forget to also update clamp_limits
+/// Limits and restrictions of a collection.
+/// All fields are wrapped in `Option`s, where None means chain default.
+///
+/// todo:doc links to chain defaults
+// IMPORTANT: When adding/removing fields from this struct - don't forget to also
+// update clamp_limits() in pallet-common.
#[derive(Encode, Decode, Debug, Default, Clone, PartialEq, TypeInfo, MaxEncodedLen)]
#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
pub struct CollectionLimits {
+ /// Maximum number of owned tokens per account. Chain default: [`ACCOUNT_TOKEN_OWNERSHIP_LIMIT`]
pub account_token_ownership_limit: Option<u32>,
+ /// Maximum size of data in bytes of a sponsored transaction. Chain default: [`CUSTOM_DATA_LIMIT`]
pub sponsored_data_size: Option<u32>,
/// FIXME should we delete this or repurpose it?
/// None - setVariableMetadata is not sponsored
/// Some(v) - setVariableMetadata is sponsored
/// if there is v block between txs
+ ///
+ /// In any case, chain default: [`SponsoringRateLimit::SponsoringDisabled`]
pub sponsored_data_rate_limit: Option<SponsoringRateLimit>,
+ /// Maximum amount of tokens inside the collection. Chain default: [`COLLECTION_TOKEN_LIMIT`]
pub token_limit: Option<u32>,
- // Timeouts for item types in passed blocks
+ /// Timeout for sponsoring a token transfer in passed blocks. Chain default:
+ /// either [`NFT_SPONSOR_TRANSFER_TIMEOUT`], [`FUNGIBLE_SPONSOR_TRANSFER_TIMEOUT`], or [`REFUNGIBLE_SPONSOR_TRANSFER_TIMEOUT`],
+ /// depending on the collection type.
pub sponsor_transfer_timeout: Option<u32>,
+ /// Timeout for sponsoring an approval in passed blocks. Chain default: [`SPONSOR_APPROVE_TIMEOUT`]
pub sponsor_approve_timeout: Option<u32>,
+ /// Can a token be transferred by the owner. Chain default: `false`
pub owner_can_transfer: Option<bool>,
+ /// Can a token be burned by the owner. Chain default: `true`
pub owner_can_destroy: Option<bool>,
+ /// Can a token be transferred at all. Chain default: `true`
pub transfers_enabled: Option<bool>,
}
@@ -434,7 +452,10 @@
}
}
-// When adding/removing fields from this struct - don't forget to also update clamp_limits
+/// Permissions on certain operations within a collection.
+/// All fields are wrapped in `Option`s, where None means chain default.
+// IMPORTANT: When adding/removing fields from this struct - don't forget to also
+// update clamp_limits() in pallet-common.
#[derive(Encode, Decode, Debug, Default, Clone, PartialEq, TypeInfo, MaxEncodedLen)]
#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
pub struct CollectionPermissions {
@@ -489,6 +510,7 @@
}
}
+/// Part of collection permissions, if set, defines who is able to nest tokens into other tokens.
#[derive(Encode, Decode, Clone, PartialEq, TypeInfo, MaxEncodedLen, Derivative)]
#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
#[derivative(Debug)]
@@ -505,38 +527,49 @@
pub permissive: bool,
}
+/// Enum denominating how often can sponsoring occur if it is enabled.
#[derive(Encode, Decode, Debug, Clone, Copy, PartialEq, TypeInfo, MaxEncodedLen)]
#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
pub enum SponsoringRateLimit {
+ /// Sponsoring is disabled, and the collection sponsor will not pay for transactions
SponsoringDisabled,
+ /// Once per how many blocks can sponsorship of a transaction type occur
Blocks(u32),
}
+/// Data used to describe an NFT at creation.
#[derive(Encode, Decode, MaxEncodedLen, Default, PartialEq, Clone, Derivative, TypeInfo)]
#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
#[derivative(Debug)]
pub struct CreateNftData {
+ /// Key-value pairs used to describe the token as metadata
#[cfg_attr(feature = "serde1", serde(with = "bounded::vec_serde"))]
#[derivative(Debug(format_with = "bounded::vec_debug"))]
pub properties: CollectionPropertiesVec,
}
+/// Data used to describe a Fungible token at creation.
#[derive(Encode, Decode, MaxEncodedLen, Default, Debug, Clone, PartialEq, TypeInfo)]
#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
pub struct CreateFungibleData {
+ /// Number of fungible coins minted
pub value: u128,
}
+/// Data used to describe a Refungible token at creation.
#[derive(Encode, Decode, MaxEncodedLen, Default, PartialEq, Clone, Derivative, TypeInfo)]
#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
#[derivative(Debug)]
pub struct CreateReFungibleData {
+ /// Immutable metadata of the token
#[cfg_attr(feature = "serde1", serde(with = "bounded::vec_serde"))]
#[derivative(Debug(format_with = "bounded::vec_debug"))]
pub const_data: BoundedVec<u8, CustomDataLimit>,
+ /// Number of pieces the RFT is split into
pub pieces: u128,
+ /// Key-value pairs used to describe the token as metadata
#[cfg_attr(feature = "serde1", serde(with = "bounded::vec_serde"))]
#[derivative(Debug(format_with = "bounded::vec_debug"))]
pub properties: CollectionPropertiesVec,
@@ -550,6 +583,7 @@
None,
}
+/// Enum holding data used for creation of all three item types.
#[derive(Encode, Decode, MaxEncodedLen, PartialEq, Clone, Debug, TypeInfo)]
#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
pub enum CreateItemData {
@@ -558,6 +592,7 @@
ReFungible(CreateReFungibleData),
}
+/// Explicit NFT creation data with meta parameters.
#[derive(Encode, Decode, MaxEncodedLen, PartialEq, Clone, TypeInfo, Derivative)]
#[derivative(Debug)]
pub struct CreateNftExData<CrossAccountId> {
@@ -566,6 +601,7 @@
pub owner: CrossAccountId,
}
+/// Explicit RFT creation data with meta parameters.
#[derive(Encode, Decode, MaxEncodedLen, PartialEq, Clone, TypeInfo, Derivative)]
#[derivative(Debug(bound = "CrossAccountId: fmt::Debug + Ord"))]
pub struct CreateRefungibleExData<CrossAccountId> {
@@ -577,6 +613,7 @@
pub properties: CollectionPropertiesVec,
}
+/// Explicit item creation data with meta parameters, namely the owner.
#[derive(Encode, Decode, MaxEncodedLen, PartialEq, Clone, TypeInfo, Derivative)]
#[derivative(Debug(bound = "CrossAccountId: fmt::Debug + Ord"))]
pub enum CreateItemExData<CrossAccountId> {
@@ -624,6 +661,7 @@
}
}
+/// Token's address, dictated by its collection and token IDs.
#[derive(Encode, Decode, MaxEncodedLen, PartialEq, Clone, Debug, TypeInfo)]
#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
// todo possibly rename to be used generally as an address pair
tests/src/interfaces/augment-api-errors.tsdiffbeforeafterboth--- a/tests/src/interfaces/augment-api-errors.ts
+++ b/tests/src/interfaces/augment-api-errors.ts
@@ -57,7 +57,7 @@
**/
AddressNotInAllowlist: AugmentedError<ApiType>;
/**
- * Requested value more than approved.
+ * Requested value is more than the approved
**/
ApprovedValueTooLow: AugmentedError<ApiType>;
/**
@@ -113,7 +113,7 @@
**/
EmptyPropertyKey: AugmentedError<ApiType>;
/**
- * Only ASCII letters, digits, and '_', '-' are allowed
+ * Only ASCII letters, digits, and symbols `_`, `-`, and `.` are allowed
**/
InvalidCharacterInPropertyKey: AugmentedError<ApiType>;
/**
@@ -133,7 +133,7 @@
**/
NoSpaceForProperty: AugmentedError<ApiType>;
/**
- * Not sufficient funds to perform action
+ * Insufficient funds to perform an action
**/
NotSufficientFounds: AugmentedError<ApiType>;
/**
@@ -153,15 +153,15 @@
**/
PublicMintingNotAllowed: AugmentedError<ApiType>;
/**
- * Only tokens from specific collections may nest tokens under this
+ * Only tokens from specific collections may nest tokens under this one
**/
SourceCollectionIsNotAllowedToNest: AugmentedError<ApiType>;
/**
- * Item not exists.
+ * Item does not exist
**/
TokenNotFound: AugmentedError<ApiType>;
/**
- * Item balance not enough.
+ * Item is balance not enough
**/
TokenValueTooLow: AugmentedError<ApiType>;
/**
@@ -173,11 +173,11 @@
**/
TransferNotAllowed: AugmentedError<ApiType>;
/**
- * Target collection doesn't supports this operation
+ * Target collection doesn't support this operation
**/
UnsupportedOperation: AugmentedError<ApiType>;
/**
- * User not passed nesting rule
+ * User does not satisfy the nesting rule
**/
UserIsNotAllowedToNest: AugmentedError<ApiType>;
/**
@@ -285,8 +285,7 @@
**/
FungibleItemsDontHaveData: AugmentedError<ApiType>;
/**
- * Not default id passed as TokenId argument.
- * The default value of TokenId for Fungible collection is 0.
+ * Fungible tokens hold no ID, and the default value of TokenId for Fungible collection is 0.
**/
FungibleItemsHaveNoId: AugmentedError<ApiType>;
/**
@@ -426,19 +425,19 @@
**/
NotRefungibleDataUsedToMintFungibleCollectionToken: AugmentedError<ApiType>;
/**
- * Refungible token can't nest other tokens
+ * Refungible token can't nest other tokens.
**/
RefungibleDisallowsNesting: AugmentedError<ApiType>;
/**
- * Refungible token can't be repartitioned by user who isn't owns all pieces
+ * Refungible token can't be repartitioned by user who isn't owns all pieces.
**/
RepartitionWhileNotOwningAllPieces: AugmentedError<ApiType>;
/**
- * Setting item properties is not allowed
+ * Setting item properties is not allowed.
**/
SettingPropertiesNotAllowed: AugmentedError<ApiType>;
/**
- * Maximum refungibility exceeded
+ * Maximum refungibility exceeded.
**/
WrongRefungiblePieces: AugmentedError<ApiType>;
/**
@@ -509,19 +508,19 @@
};
structure: {
/**
- * While iterating over children, encountered breadth limit
+ * While iterating over children, reached the breadth limit.
**/
BreadthLimit: AugmentedError<ApiType>;
/**
- * While searched for owner, encountered depth limit
+ * While searching for the owner, reached the depth limit.
**/
DepthLimit: AugmentedError<ApiType>;
/**
- * While searched for owner, got already checked account
+ * While searching for the owner, encountered an already checked account, detecting a loop.
**/
OuroborosDetected: AugmentedError<ApiType>;
/**
- * While searched for owner, found token owner by not-yet-existing token
+ * Couldn't find the token owner that is itself a token.
**/
TokenNotFound: AugmentedError<ApiType>;
/**
@@ -597,7 +596,7 @@
};
unique: {
/**
- * Decimal_points parameter must be lower than MAX_DECIMAL_POINTS constant, currently it is 30.
+ * Decimal_points parameter must be lower than [`up_data_structs::MAX_DECIMAL_POINTS`].
**/
CollectionDecimalPointLimitExceeded: AugmentedError<ApiType>;
/**
@@ -609,7 +608,7 @@
**/
EmptyArgument: AugmentedError<ApiType>;
/**
- * Repertition is only supported by refungible collection
+ * Repertition is only supported by refungible collection.
**/
RepartitionCalledOnNonRefungibleCollection: AugmentedError<ApiType>;
/**
tests/src/interfaces/augment-api-events.tsdiffbeforeafterboth--- a/tests/src/interfaces/augment-api-events.ts
+++ b/tests/src/interfaces/augment-api-events.ts
@@ -75,7 +75,7 @@
**/
CollectionPropertyDeleted: AugmentedEvent<ApiType, [u32, Bytes]>;
/**
- * The colletion property has been set.
+ * The colletion property has been added or edited.
**/
CollectionPropertySet: AugmentedEvent<ApiType, [u32, Bytes]>;
/**
@@ -87,7 +87,7 @@
**/
ItemDestroyed: AugmentedEvent<ApiType, [u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;
/**
- * The colletion property permission has been set.
+ * The token property permission of a collection has been set.
**/
PropertyPermissionSet: AugmentedEvent<ApiType, [u32, Bytes]>;
/**
@@ -95,7 +95,7 @@
**/
TokenPropertyDeleted: AugmentedEvent<ApiType, [u32, u32, Bytes]>;
/**
- * The token property has been set.
+ * The token property has been added or edited.
**/
TokenPropertySet: AugmentedEvent<ApiType, [u32, u32, Bytes]>;
/**
@@ -407,7 +407,7 @@
};
structure: {
/**
- * Executed call on behalf of token
+ * Executed call on behalf of the token.
**/
Executed: AugmentedEvent<ApiType, [Result<Null, SpRuntimeDispatchError>]>;
/**
@@ -499,90 +499,80 @@
};
unique: {
/**
- * Address was add to allow list
+ * Address was added to the allow list
*
* # Arguments
- *
- * * collection_id: Globally unique collection identifier.
- *
- * * user: Address.
+ * * collection_id: ID of the affected collection.
+ * * user: Address of the added account.
**/
AllowListAddressAdded: AugmentedEvent<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;
/**
- * Address was remove from allow list
+ * Address was removed from the allow list
*
* # Arguments
- *
- * * collection_id: Globally unique collection identifier.
- *
- * * user: Address.
+ * * collection_id: ID of the affected collection.
+ * * user: Address of the removed account.
**/
AllowListAddressRemoved: AugmentedEvent<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;
/**
* Collection admin was added
*
* # Arguments
- *
- * * collection_id: Globally unique collection identifier.
- *
- * * admin: Admin address.
+ * * collection_id: ID of the affected collection.
+ * * admin: Admin address.
**/
CollectionAdminAdded: AugmentedEvent<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;
/**
* Collection admin was removed
*
* # Arguments
- *
- * * collection_id: Globally unique collection identifier.
- *
- * * admin: Admin address.
+ * * collection_id: ID of the affected collection.
+ * * admin: Removed admin address.
**/
CollectionAdminRemoved: AugmentedEvent<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;
/**
- * Collection limits was set
+ * Collection limits were set
*
* # Arguments
- *
- * * collection_id: Globally unique collection identifier.
+ * * collection_id: ID of the affected collection.
**/
CollectionLimitSet: AugmentedEvent<ApiType, [u32]>;
/**
- * Collection owned was change
+ * Collection owned was changed
*
* # Arguments
- *
- * * collection_id: Globally unique collection identifier.
- *
- * * owner: New owner address.
+ * * collection_id: ID of the affected collection.
+ * * owner: New owner address.
**/
CollectionOwnedChanged: AugmentedEvent<ApiType, [u32, AccountId32]>;
+ /**
+ * Collection permissions were set
+ *
+ * # Arguments
+ * * collection_id: ID of the affected collection.
+ **/
CollectionPermissionSet: AugmentedEvent<ApiType, [u32]>;
/**
* Collection sponsor was removed
*
* # Arguments
- *
- * * collection_id: Globally unique collection identifier.
+ * * collection_id: ID of the affected collection.
**/
CollectionSponsorRemoved: AugmentedEvent<ApiType, [u32]>;
/**
* Collection sponsor was set
*
* # Arguments
- *
- * * collection_id: Globally unique collection identifier.
- *
- * * owner: New sponsor address.
+ * * collection_id: ID of the affected collection.
+ * * owner: New sponsor address.
**/
CollectionSponsorSet: AugmentedEvent<ApiType, [u32, AccountId32]>;
/**
* New sponsor was confirm
*
* # Arguments
- *
- * * collection_id: Globally unique collection identifier.
- *
- * * sponsor: New sponsor address.
+ * * collection_id: ID of the affected collection.
+ * * sponsor: New sponsor address.
**/
SponsorshipConfirmed: AugmentedEvent<ApiType, [u32, AccountId32]>;
/**
tests/src/interfaces/augment-api-query.tsdiffbeforeafterboth--- a/tests/src/interfaces/augment-api-query.ts
+++ b/tests/src/interfaces/augment-api-query.ts
@@ -70,11 +70,11 @@
};
common: {
/**
- * Storage of collection admins count.
+ * Storage of the amount of collection admins.
**/
adminAmount: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u32>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
/**
- * Allowlisted collection users
+ * Allowlisted collection users.
**/
allowlist: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<bool>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;
/**
@@ -86,11 +86,11 @@
**/
collectionProperties: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<UpDataStructsProperties>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
/**
- * Storage of collection properties permissions.
+ * Storage of token property permissions of a collection.
**/
collectionPropertyPermissions: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<BTreeMap<Bytes, UpDataStructsPropertyPermission>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
/**
- * Storage of the count of created collections.
+ * Storage of the count of created collections. Essentially contains the last collection ID.
**/
createdCollectionCount: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;
/**
@@ -102,7 +102,7 @@
**/
dummyStorageValue: AugmentedQuery<ApiType, () => Observable<Option<ITuple<[UpDataStructsCollectionStats, u32, u32, UpDataStructsTokenChild, PhantomTypeUpDataStructs]>>>, []> & QueryableStorageEntry<ApiType, []>;
/**
- * List of collection admins
+ * List of collection admins.
**/
isAdmin: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<bool>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;
/**
@@ -200,7 +200,7 @@
};
fungible: {
/**
- * Storage for delegated assets.
+ * Storage for assets delegated to a limited extent to other users.
**/
allowance: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, arg3: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<u128>, [u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr]>;
/**
@@ -244,11 +244,11 @@
};
nonfungible: {
/**
- * Amount of tokens owned by account.
+ * Amount of tokens owned by an account in a collection.
**/
accountBalance: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<u32>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;
/**
- * Allowance set by an owner for a spender for a token.
+ * Allowance set by a token owner for another user to perform one of certain transactions on a token.
**/
allowance: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<Option<PalletEvmAccountBasicCrossAccountIdRepr>>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;
/**
@@ -256,7 +256,14 @@
**/
owned: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, arg3: u32 | AnyNumber | Uint8Array) => Observable<bool>, [u32, PalletEvmAccountBasicCrossAccountIdRepr, u32]> & QueryableStorageEntry<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr, u32]>;
/**
- * Custom data that is serialized to bytes and attached to a token property.
+ * Custom data of a token that is serialized to bytes,
+ * primarily reserved for on-chain operations,
+ * normally obscured from the external users.
+ *
+ * Auxiliary properties are slightly different from
+ * usual [`TokenProperties`] due to an unlimited number
+ * and separately stored and written-to key-value pairs.
+ *
* Currently used to store RMRK data.
**/
tokenAuxProperties: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array, arg3: UpDataStructsPropertyScope | 'None' | 'Rmrk' | number | Uint8Array, arg4: Bytes | string | Uint8Array) => Observable<Option<Bytes>>, [u32, u32, UpDataStructsPropertyScope, Bytes]> & QueryableStorageEntry<ApiType, [u32, u32, UpDataStructsPropertyScope, Bytes]>;
@@ -265,19 +272,19 @@
**/
tokenChildren: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array, arg3: ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array]) => Observable<bool>, [u32, u32, ITuple<[u32, u32]>]> & QueryableStorageEntry<ApiType, [u32, u32, ITuple<[u32, u32]>]>;
/**
- * Custom data serialized to bytes for token.
+ * Token data, used to partially describe a token.
**/
tokenData: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<Option<PalletNonfungibleItemData>>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;
/**
- * Key-Value map stored for token.
+ * Map of key-value pairs, describing the metadata of a token.
**/
tokenProperties: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<UpDataStructsProperties>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;
/**
- * Amount of burnt tokens for collection.
+ * Amount of burnt tokens in a collection.
**/
tokensBurnt: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u32>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
/**
- * Amount of tokens minted for collection.
+ * Total amount of minted tokens in a collection.
**/
tokensMinted: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u32>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
/**
@@ -444,32 +451,35 @@
};
refungible: {
/**
- * Amount of tokens owned by account
+ * Amount of tokens (not pieces) partially owned by an account within a collection.
**/
accountBalance: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<u32>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;
/**
- * Allowance set by an owner for a spender for a token
+ * Allowance set by a token owner for another user to perform one of certain transactions on a number of pieces of a token.
**/
allowance: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array, arg3: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, arg4: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<u128>, [u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr]>;
/**
- * Amount of token pieces owned by account
+ * Amount of token pieces owned by account.
**/
balance: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array, arg3: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<u128>, [u32, u32, PalletEvmAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, u32, PalletEvmAccountBasicCrossAccountIdRepr]>;
/**
- * Used to enumerate tokens owned by account
+ * Used to enumerate tokens owned by account.
**/
owned: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, arg3: u32 | AnyNumber | Uint8Array) => Observable<bool>, [u32, PalletEvmAccountBasicCrossAccountIdRepr, u32]> & QueryableStorageEntry<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr, u32]>;
/**
- * Custom data serialized to bytes for token
+ * Token data, used to partially describe a token.
**/
tokenData: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<PalletRefungibleItemData>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;
+ /**
+ * Amount of pieces a refungible token is split into.
+ **/
tokenProperties: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<UpDataStructsProperties>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;
/**
- * Amount of burnt tokens for collection
+ * Amount of tokens burnt in a collection.
**/
tokensBurnt: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u32>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
/**
- * Amount of tokens minted for collection
+ * Total amount of minted tokens in a collection.
**/
tokensMinted: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u32>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
/**
@@ -663,24 +673,33 @@
* TODO: Off chain worker should remove from this map when collection gets removed
**/
createItemBasket: AugmentedQuery<ApiType, (arg: ITuple<[u32, AccountId32]> | [u32 | AnyNumber | Uint8Array, AccountId32 | string | Uint8Array]) => Observable<Option<u32>>, [ITuple<[u32, AccountId32]>]> & QueryableStorageEntry<ApiType, [ITuple<[u32, AccountId32]>]>;
+ /**
+ * Last sponsoring of fungible tokens approval in a collection
+ **/
fungibleApproveBasket: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: AccountId32 | string | Uint8Array) => Observable<Option<u32>>, [u32, AccountId32]> & QueryableStorageEntry<ApiType, [u32, AccountId32]>;
/**
* Collection id (controlled?2), owning user (real)
**/
fungibleTransferBasket: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: AccountId32 | string | Uint8Array) => Observable<Option<u32>>, [u32, AccountId32]> & QueryableStorageEntry<ApiType, [u32, AccountId32]>;
/**
- * Approval sponsoring
+ * Last sponsoring of NFT approval in a collection
**/
nftApproveBasket: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<Option<u32>>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;
/**
* Collection id (controlled?2), token id (controlled?2)
**/
nftTransferBasket: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<Option<u32>>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;
+ /**
+ * Last sponsoring of RFT approval in a collection
+ **/
refungibleApproveBasket: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array, arg3: AccountId32 | string | Uint8Array) => Observable<Option<u32>>, [u32, u32, AccountId32]> & QueryableStorageEntry<ApiType, [u32, u32, AccountId32]>;
/**
* Collection id (controlled?2), token id (controlled?2)
**/
reFungibleTransferBasket: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array, arg3: AccountId32 | string | Uint8Array) => Observable<Option<u32>>, [u32, u32, AccountId32]> & QueryableStorageEntry<ApiType, [u32, u32, AccountId32]>;
+ /**
+ * Last sponsoring of token property setting // todo:doc rephrase this and the following
+ **/
tokenPropertyBasket: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<Option<u32>>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;
/**
* Variable metadata sponsoring
tests/src/interfaces/augment-api-rpc.tsdiffbeforeafterboth--- a/tests/src/interfaces/augment-api-rpc.ts
+++ b/tests/src/interfaces/augment-api-rpc.ts
@@ -629,47 +629,47 @@
};
unique: {
/**
- * Get amount of different user tokens
+ * Get the amount of any user tokens owned by an account
**/
accountBalance: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, account: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, at?: Hash | string | Uint8Array) => Observable<u32>>;
/**
- * Get tokens owned by account
+ * Get tokens owned by an account in a collection
**/
accountTokens: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, account: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<u32>>>;
/**
- * Get admin list
+ * Get the list of admin accounts of a collection
**/
adminlist: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<PalletEvmAccountBasicCrossAccountIdRepr>>>;
/**
- * Get allowed amount
+ * Get the amount of currently possible sponsored transactions on a token for the fee to be taken off a sponsor
**/
allowance: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, sender: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, spender: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<u128>>;
/**
- * Check if user is allowed to use collection
+ * Check if a user is allowed to operate within a collection
**/
allowed: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, account: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, at?: Hash | string | Uint8Array) => Observable<bool>>;
/**
- * Get allowlist
+ * Get the list of accounts allowed to operate within a collection
**/
allowlist: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<PalletEvmAccountBasicCrossAccountIdRepr>>>;
/**
- * Get amount of specific account token
+ * Get the amount of a specific token owned by an account
**/
balance: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, account: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<u128>>;
/**
- * Get collection by specified id
+ * Get a collection by the specified ID
**/
collectionById: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<UpDataStructsRpcCollection>>>;
/**
- * Get collection properties
+ * Get collection properties, optionally limited to the provided keys
**/
collectionProperties: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, propertyKeys?: Vec<Text> | (Text | string)[], at?: Hash | string | Uint8Array) => Observable<Vec<UpDataStructsProperty>>>;
/**
- * Get collection stats
+ * Get chain stats about collections
**/
collectionStats: AugmentedRpc<(at?: Hash | string | Uint8Array) => Observable<UpDataStructsCollectionStats>>;
/**
- * Get tokens contained in collection
+ * Get tokens contained within a collection
**/
collectionTokens: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<u32>>>;
/**
@@ -681,15 +681,15 @@
**/
effectiveCollectionLimits: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<UpDataStructsCollectionLimits>>>;
/**
- * Get last token id
+ * Get the last token ID created in a collection
**/
lastTokenId: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<u32>>;
/**
- * Get number of blocks when sponsored transaction is available
+ * Get the number of blocks until sponsoring a transaction is available
**/
nextSponsored: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, account: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<u64>>>;
/**
- * Get property permissions
+ * Get property permissions, optionally limited to the provided keys
**/
propertyPermissions: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, propertyKeys?: Vec<Text> | (Text | string)[], at?: Hash | string | Uint8Array) => Observable<Vec<UpDataStructsPropertyKeyPermission>>>;
/**
@@ -697,15 +697,15 @@
**/
tokenChildren: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<UpDataStructsTokenChild>>>;
/**
- * Get token data
+ * Get token data, including properties, optionally limited to the provided keys, and total pieces for an RFT
**/
tokenData: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, propertyKeys?: Vec<Text> | (Text | string)[], at?: Hash | string | Uint8Array) => Observable<UpDataStructsTokenData>>;
/**
- * Check if token exists
+ * Check if the token exists
**/
tokenExists: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<bool>>;
/**
- * Get token owner
+ * Get the token owner
**/
tokenOwner: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<PalletEvmAccountBasicCrossAccountIdRepr>>>;
/**
@@ -713,19 +713,19 @@
**/
tokenOwners: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<PalletEvmAccountBasicCrossAccountIdRepr>>>;
/**
- * Get token properties
+ * Get token properties, optionally limited to the provided keys
**/
tokenProperties: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, propertyKeys?: Vec<Text> | (Text | string)[], at?: Hash | string | Uint8Array) => Observable<Vec<UpDataStructsProperty>>>;
/**
- * Get token owner, in case of nested token - find parent recursive
+ * Get the topmost token owner in the hierarchy of a possibly nested token
**/
topmostTokenOwner: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<PalletEvmAccountBasicCrossAccountIdRepr>>>;
/**
- * Get total pieces of token
+ * Get the total amount of pieces of an RFT
**/
totalPieces: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<u128>>>;
/**
- * Get amount of unique collection tokens
+ * Get the amount of distinctive tokens present in a collection
**/
totalSupply: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<u32>>;
/**
tests/src/interfaces/augment-api-tx.tsdiffbeforeafterboth--- a/tests/src/interfaces/augment-api-tx.ts
+++ b/tests/src/interfaces/augment-api-tx.ts
@@ -730,87 +730,99 @@
};
unique: {
/**
- * Adds an admin of the Collection.
- * NFT Collection can be controlled by multiple admin addresses (some which can also be servers, for example). Admins can issue and burn NFTs, as well as add and remove other admins, but cannot change NFT or Collection ownership.
+ * Add an admin to a collection.
+ *
+ * NFT Collection can be controlled by multiple admin addresses
+ * (some which can also be servers, for example). Admins can issue
+ * and burn NFTs, as well as add and remove other admins,
+ * but cannot change NFT or Collection ownership.
*
* # Permissions
*
- * * Collection Owner.
- * * Collection Admin.
+ * * Collection owner
+ * * Collection admin
*
* # Arguments
- *
- * * collection_id: ID of the Collection to add admin for.
*
- * * new_admin_id: Address of new admin to add.
+ * * `collection_id`: ID of the Collection to add an admin for.
+ * * `new_admin`: Address of new admin to add.
**/
- addCollectionAdmin: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newAdminId: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;
+ addCollectionAdmin: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newAdmin: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;
/**
* Add an address to allow list.
*
* # Permissions
*
- * * Collection Owner
- * * Collection Admin
+ * * Collection owner
+ * * Collection admin
*
* # Arguments
*
- * * collection_id.
- *
- * * address.
+ * * `collection_id`: ID of the modified collection.
+ * * `address`: ID of the address to be added to the allowlist.
**/
addToAllowList: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, address: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;
/**
- * Set, change, or remove approved address to transfer the ownership of the NFT.
+ * Allow a non-permissioned address to transfer or burn an item.
*
* # Permissions
*
- * * Collection Owner
- * * Collection Admin
- * * Current NFT owner
+ * * Collection owner
+ * * Collection admin
+ * * Current item owner
*
* # Arguments
- *
- * * approved: Address that is approved to transfer this NFT or zero (if needed to remove approval).
*
- * * collection_id.
- *
- * * item_id: ID of the item.
+ * * `spender`: Account to be approved to make specific transactions on non-owned tokens.
+ * * `collection_id`: ID of the collection the item belongs to.
+ * * `item_id`: ID of the item transactions on which are now approved.
+ * * `amount`: Number of pieces of the item approved for a transaction (maximum of 1 for NFTs).
+ * Set to 0 to revoke the approval.
**/
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]>;
/**
- * Destroys a concrete instance of NFT on behalf of the owner
- * See also: [`approve`]
+ * Destroy a token on behalf of the owner as a non-owner account.
+ *
+ * See also: [`approve`][`Pallet::approve`].
+ *
+ * After this method executes, one approval is removed from the total so that
+ * the approved address will not be able to transfer this item again from this owner.
*
* # Permissions
*
- * * Collection Owner.
- * * Collection Admin.
- * * Current NFT Owner.
+ * * Collection owner
+ * * Collection admin
+ * * Current token owner
+ * * Address approved by current item owner
*
* # Arguments
*
- * * collection_id: ID of the collection.
- *
- * * item_id: ID of NFT to burn.
- *
- * * from: owner of item
+ * * `from`: The owner of the burning item.
+ * * `collection_id`: ID of the collection to which the item belongs.
+ * * `item_id`: ID of item to burn.
+ * * `value`: Number of pieces to burn.
+ * * Non-Fungible Mode: An NFT is indivisible, there is always 1 corresponding to an ID.
+ * * Fungible Mode: The desired number of pieces to burn.
+ * * Re-Fungible Mode: The desired number of pieces to burn.
**/
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]>;
/**
- * Destroys a concrete instance of NFT.
+ * Destroy an item.
*
* # Permissions
*
- * * Collection Owner.
- * * Collection Admin.
- * * Current NFT Owner.
+ * * Collection owner
+ * * Collection admin
+ * * Current item owner
*
* # Arguments
*
- * * collection_id: ID of the collection.
- *
- * * item_id: ID of NFT to burn.
+ * * `collection_id`: ID of the collection to which the item belongs.
+ * * `item_id`: ID of item to burn.
+ * * `value`: Number of pieces of the item to destroy.
+ * * Non-Fungible Mode: An NFT is indivisible, there is always 1 corresponding to an ID.
+ * * Fungible Mode: The desired number of pieces to burn.
+ * * Re-Fungible Mode: The desired number of pieces to burn.
**/
burnItem: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, itemId: u32 | AnyNumber | Uint8Array, value: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u128]>;
/**
@@ -818,131 +830,200 @@
*
* # Permissions
*
- * * Collection Owner.
+ * * Collection owner
*
* # Arguments
*
- * * collection_id.
- *
- * * new_owner.
+ * * `collection_id`: ID of the modified collection.
+ * * `new_owner`: ID of the account that will become the owner.
**/
changeCollectionOwner: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newOwner: AccountId32 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, AccountId32]>;
/**
+ * Confirm own sponsorship of a collection, becoming the sponsor.
+ *
+ * An invitation must be pending, see [`set_collection_sponsor`][`Pallet::set_collection_sponsor`].
+ * Sponsor can pay the fees of a transaction instead of the sender,
+ * but only within specified limits.
+ *
* # Permissions
*
- * * Sponsor.
+ * * Sponsor-to-be
*
* # Arguments
*
- * * collection_id.
+ * * `collection_id`: ID of the collection with the pending sponsor.
**/
confirmSponsorship: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;
/**
- * This method creates a Collection of NFTs. Each Token may have multiple properties encoded as an array of bytes of certain length. The initial owner of the collection is set to the address that signed the transaction and can be changed later.
+ * Create a collection of tokens.
+ *
+ * Each Token may have multiple properties encoded as an array of bytes
+ * of certain length. The initial owner of the collection is set
+ * to the address that signed the transaction and can be changed later.
+ *
+ * Prefer the more advanced [`create_collection_ex`][`Pallet::create_collection_ex`] instead.
*
* # Permissions
*
- * * Anyone.
+ * * Anyone - becomes the owner of the new collection.
*
* # Arguments
*
- * * collection_name: UTF-16 string with collection name (limit 64 characters), will be stored as zero-terminated.
+ * * `collection_name`: Wide-character string with collection name
+ * (limit [`MAX_COLLECTION_NAME_LENGTH`]).
+ * * `collection_description`: Wide-character string with collection description
+ * (limit [`MAX_COLLECTION_DESCRIPTION_LENGTH`]).
+ * * `token_prefix`: Byte string containing the token prefix to mark a collection
+ * to which a token belongs (limit [`MAX_TOKEN_PREFIX_LENGTH`]).
+ * * `mode`: Type of items stored in the collection and type dependent data.
+ **/
+ 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]>;
+ /**
+ * Create a collection with explicit parameters.
*
- * * collection_description: UTF-16 string with collection description (limit 256 characters), will be stored as zero-terminated.
+ * Prefer it to the deprecated [`create_collection`][`Pallet::create_collection`] method.
+ *
+ * # Permissions
*
- * * token_prefix: UTF-8 string with token prefix.
+ * * Anyone - becomes the owner of the new collection.
*
- * * mode: [CollectionMode] collection type and type dependent data.
- **/
- 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]>;
- /**
- * This method creates a collection
+ * # Arguments
*
- * Prefer it to deprecated [`created_collection`] method
+ * * `data`: Explicit data of a collection used for its creation.
**/
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]>;
/**
- * This method creates a concrete instance of NFT Collection created with CreateCollection method.
+ * Mint an item within a collection.
*
+ * A collection must exist first, see [`create_collection_ex`][`Pallet::create_collection_ex`].
+ *
* # Permissions
*
- * * Collection Owner.
- * * Collection Admin.
+ * * Collection owner
+ * * Collection admin
* * Anyone if
* * Allow List is enabled, and
* * Address is added to allow list, and
- * * MintPermission is enabled (see SetMintPermission method)
+ * * MintPermission is enabled (see [`set_collection_permissions`][`Pallet::set_collection_permissions`])
*
* # Arguments
*
- * * collection_id: ID of the collection.
+ * * `collection_id`: ID of the collection to which an item would belong.
+ * * `owner`: Address of the initial owner of the item.
+ * * `data`: Token data describing the item to store on chain.
+ **/
+ 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]>;
+ /**
+ * Create multiple items within a collection.
*
- * * owner: Address, initial owner of the NFT.
+ * A collection must exist first, see [`create_collection_ex`][`Pallet::create_collection_ex`].
+ *
+ * # Permissions
+ *
+ * * Collection owner
+ * * Collection admin
+ * * Anyone if
+ * * Allow List is enabled, and
+ * * Address is added to the allow list, and
+ * * MintPermission is enabled (see [`set_collection_permissions`][`Pallet::set_collection_permissions`])
*
- * * data: Token data to store on chain.
+ * # Arguments
+ *
+ * * `collection_id`: ID of the collection to which the tokens would belong.
+ * * `owner`: Address of the initial owner of the tokens.
+ * * `items_data`: Vector of data describing each item to be created.
**/
- 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]>;
+ 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>]>;
/**
- * This method creates multiple items in a collection created with CreateCollection method.
+ * Create multiple items within a collection with explicitly specified initial parameters.
*
* # Permissions
*
- * * Collection Owner.
- * * Collection Admin.
+ * * Collection owner
+ * * Collection admin
* * Anyone if
* * Allow List is enabled, and
* * Address is added to allow list, and
- * * MintPermission is enabled (see SetMintPermission method)
+ * * MintPermission is enabled (see [`set_collection_permissions`][`Pallet::set_collection_permissions`])
*
* # Arguments
*
- * * collection_id: ID of the collection.
+ * * `collection_id`: ID of the collection to which the tokens would belong.
+ * * `data`: Explicit item creation data.
+ **/
+ createMultipleItemsEx: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, data: UpDataStructsCreateItemExData | { NFT: any } | { Fungible: any } | { RefungibleMultipleItems: any } | { RefungibleMultipleOwners: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, UpDataStructsCreateItemExData]>;
+ /**
+ * Delete specified collection properties.
*
- * * itemsData: Array items properties. Each property is an array of bytes itself, see [create_item].
+ * # Permissions
+ *
+ * * Collection Owner
+ * * Collection Admin
+ *
+ * # Arguments
*
- * * owner: Address, initial owner of the NFT.
+ * * `collection_id`: ID of the modified collection.
+ * * `property_keys`: Vector of keys of the properties to be deleted.
+ * Keys support Latin letters, `-`, `_`, and `.` as symbols.
**/
- 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>]>;
- createMultipleItemsEx: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, data: UpDataStructsCreateItemExData | { NFT: any } | { Fungible: any } | { RefungibleMultipleItems: any } | { RefungibleMultipleOwners: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, UpDataStructsCreateItemExData]>;
deleteCollectionProperties: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, propertyKeys: Vec<Bytes> | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, Vec<Bytes>]>;
+ /**
+ * Delete specified token properties. Currently properties only work with NFTs.
+ *
+ * # Permissions
+ *
+ * * Depends on collection's token property permissions and specified property mutability:
+ * * Collection owner
+ * * Collection admin
+ * * Token owner
+ *
+ * # Arguments
+ *
+ * * `collection_id`: ID of the collection to which the token belongs.
+ * * `token_id`: ID of the modified token.
+ * * `property_keys`: Vector of keys of the properties to be deleted.
+ * Keys support Latin letters, `-`, `_`, and `.` as symbols.
+ **/
deleteTokenProperties: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, propertyKeys: Vec<Bytes> | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, u32, Vec<Bytes>]>;
/**
- * Destroys collection if no tokens within this collection
+ * Destroy a collection if no tokens exist within.
*
* # Permissions
*
- * * Collection Owner.
+ * * Collection owner
*
* # Arguments
*
- * * collection_id: collection to destroy.
+ * * `collection_id`: Collection to destroy.
**/
destroyCollection: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;
/**
- * Remove admin address of the Collection. An admin address can remove itself. List of admins may become empty, in which case only Collection Owner will be able to add an Admin.
+ * Remove admin of a collection.
+ *
+ * An admin address can remove itself. List of admins may become empty,
+ * in which case only Collection Owner will be able to add an Admin.
*
* # Permissions
*
- * * Collection Owner.
- * * Collection Admin.
+ * * Collection owner
+ * * Collection admin
*
* # Arguments
*
- * * collection_id: ID of the Collection to remove admin for.
- *
- * * account_id: Address of admin to remove.
+ * * `collection_id`: ID of the collection to remove the admin for.
+ * * `account_id`: Address of the admin to remove.
**/
removeCollectionAdmin: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, accountId: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;
/**
- * Switch back to pay-per-own-transaction model.
+ * Remove a collection's a sponsor, making everyone pay for their own transactions.
*
* # Permissions
*
- * * Collection owner.
+ * * Collection owner
*
* # Arguments
*
- * * collection_id.
+ * * `collection_id`: ID of the collection with the sponsor to remove.
**/
removeCollectionSponsor: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;
/**
@@ -950,46 +1031,140 @@
*
* # Permissions
*
- * * Collection Owner
- * * Collection Admin
+ * * Collection owner
+ * * Collection admin
*
* # Arguments
*
- * * collection_id.
+ * * `collection_id`: ID of the modified collection.
+ * * `address`: ID of the address to be removed from the allowlist.
+ **/
+ removeFromAllowList: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, address: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;
+ /**
+ * Re-partition a refungible token, while owning all of its parts/pieces.
+ *
+ * # Permissions
+ *
+ * * Token owner (must own every part)
+ *
+ * # Arguments
+ *
+ * * `collection_id`: ID of the collection the RFT belongs to.
+ * * `token_id`: ID of the RFT.
+ * * `amount`: New number of parts/pieces into which the token shall be partitioned.
+ **/
+ repartition: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u128]>;
+ /**
+ * Set specific limits of a collection. Empty, or None fields mean chain default.
+ *
+ * # Permissions
*
- * * address.
+ * * Collection owner
+ * * Collection admin
+ *
+ * # Arguments
+ *
+ * * `collection_id`: ID of the modified collection.
+ * * `new_limit`: New limits of the collection. Fields that are not set (None)
+ * will not overwrite the old ones.
**/
- removeFromAllowList: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, address: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;
- repartition: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, token: u32 | AnyNumber | Uint8Array, amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u128]>;
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]>;
- setCollectionPermissions: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newLimit: UpDataStructsCollectionPermissions | { access?: any; mintMode?: any; nesting?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, UpDataStructsCollectionPermissions]>;
- setCollectionProperties: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, properties: Vec<UpDataStructsProperty> | (UpDataStructsProperty | { key?: any; value?: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, Vec<UpDataStructsProperty>]>;
/**
+ * Set specific permissions of a collection. Empty, or None fields mean chain default.
+ *
* # Permissions
*
- * * Collection Owner
+ * * Collection owner
+ * * Collection admin
*
* # Arguments
*
- * * collection_id.
+ * * `collection_id`: ID of the modified collection.
+ * * `new_permission`: New permissions of the collection. Fields that are not set (None)
+ * will not overwrite the old ones.
+ **/
+ setCollectionPermissions: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newPermission: UpDataStructsCollectionPermissions | { access?: any; mintMode?: any; nesting?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, UpDataStructsCollectionPermissions]>;
+ /**
+ * Add or change collection properties.
+ *
+ * # Permissions
+ *
+ * * Collection owner
+ * * Collection admin
*
- * * new_sponsor.
+ * # Arguments
+ *
+ * * `collection_id`: ID of the modified collection.
+ * * `properties`: Vector of key-value pairs stored as the collection's metadata.
+ * Keys support Latin letters, `-`, `_`, and `.` as symbols.
**/
+ setCollectionProperties: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, properties: Vec<UpDataStructsProperty> | (UpDataStructsProperty | { key?: any; value?: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, Vec<UpDataStructsProperty>]>;
+ /**
+ * Set (invite) a new collection sponsor.
+ *
+ * If successful, confirmation from the sponsor-to-be will be pending.
+ *
+ * # Permissions
+ *
+ * * Collection owner
+ * * Collection admin
+ *
+ * # Arguments
+ *
+ * * `collection_id`: ID of the modified collection.
+ * * `new_sponsor`: ID of the account of the sponsor-to-be.
+ **/
setCollectionSponsor: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newSponsor: AccountId32 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, AccountId32]>;
+ /**
+ * Add or change token properties according to collection's permissions.
+ * Currently properties only work with NFTs.
+ *
+ * # Permissions
+ *
+ * * Depends on collection's token property permissions and specified property mutability:
+ * * Collection owner
+ * * Collection admin
+ * * Token owner
+ *
+ * See [`set_token_property_permissions`][`Pallet::set_token_property_permissions`].
+ *
+ * # Arguments
+ *
+ * * `collection_id: ID of the collection to which the token belongs.
+ * * `token_id`: ID of the modified token.
+ * * `properties`: Vector of key-value pairs stored as the token's metadata.
+ * Keys support Latin letters, `-`, `_`, and `.` as symbols.
+ **/
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>]>;
- setTokenPropertyPermissions: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, propertyPermissions: Vec<UpDataStructsPropertyKeyPermission> | (UpDataStructsPropertyKeyPermission | { key?: any; permission?: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, Vec<UpDataStructsPropertyKeyPermission>]>;
/**
- * Set transfers_enabled value for particular collection
+ * Add or change token property permissions of a collection.
+ *
+ * Without a permission for a particular key, a property with that key
+ * cannot be created in a token.
*
* # Permissions
*
- * * Collection Owner.
+ * * Collection owner
+ * * Collection admin
*
* # Arguments
*
- * * collection_id: ID of the collection.
+ * * `collection_id`: ID of the modified collection.
+ * * `property_permissions`: Vector of permissions for property keys.
+ * Keys support Latin letters, `-`, `_`, and `.` as symbols.
+ **/
+ setTokenPropertyPermissions: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, propertyPermissions: Vec<UpDataStructsPropertyKeyPermission> | (UpDataStructsPropertyKeyPermission | { key?: any; permission?: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, Vec<UpDataStructsPropertyKeyPermission>]>;
+ /**
+ * Completely allow or disallow transfers for a particular collection.
*
- * * value: New flag value.
+ * # Permissions
+ *
+ * * Collection owner
+ *
+ * # Arguments
+ *
+ * * `collection_id`: ID of the collection.
+ * * `value`: New value of the flag, are transfers allowed?
**/
setTransfersEnabledFlag: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, value: bool | boolean | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, bool]>;
/**
@@ -997,47 +1172,50 @@
*
* # Permissions
*
- * * Collection Owner
- * * Collection Admin
- * * Current NFT owner
+ * * Collection owner
+ * * Collection admin
+ * * Current token owner
*
* # Arguments
*
- * * recipient: Address of token recipient.
- *
- * * collection_id.
- *
- * * item_id: ID of the item
+ * * `recipient`: Address of token recipient.
+ * * `collection_id`: ID of the collection the item belongs to.
+ * * `item_id`: ID of the item.
* * Non-Fungible Mode: Required.
* * Fungible Mode: Ignored.
* * Re-Fungible Mode: Required.
*
- * * value: Amount to transfer.
- * * Non-Fungible Mode: Ignored
- * * Fungible Mode: Must specify transferred amount
- * * Re-Fungible Mode: Must specify transferred portion (between 0 and 1)
+ * * `value`: Amount to transfer.
+ * * Non-Fungible Mode: An NFT is indivisible, there is always 1 corresponding to an ID.
+ * * Fungible Mode: The desired number of pieces to transfer.
+ * * Re-Fungible Mode: The desired number of pieces to transfer.
**/
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]>;
/**
- * Change ownership of a NFT on behalf of the owner. See Approve method for additional information. After this method executes, the approval is removed so that the approved address will not be able to transfer this NFT again from this owner.
- *
- * # Permissions
- * * Collection Owner
- * * Collection Admin
- * * Current NFT owner
- * * Address approved by current NFT owner
+ * Change ownership of an item on behalf of the owner as a non-owner account.
*
- * # Arguments
+ * See the [`approve`][`Pallet::approve`] method for additional information.
*
- * * from: Address that owns token.
+ * After this method executes, one approval is removed from the total so that
+ * the approved address will not be able to transfer this item again from this owner.
*
- * * recipient: Address of token recipient.
+ * # Permissions
*
- * * collection_id.
+ * * Collection owner
+ * * Collection admin
+ * * Current item owner
+ * * Address approved by current item owner
*
- * * item_id: ID of the item.
+ * # Arguments
*
- * * value: Amount to transfer.
+ * * `from`: Address that currently owns the token.
+ * * `recipient`: Address of the new token-owner-to-be.
+ * * `collection_id`: ID of the collection the item.
+ * * `item_id`: ID of the item to be transferred.
+ * * `value`: Amount to transfer.
+ * * Non-Fungible Mode: An NFT is indivisible, there is always 1 corresponding to an ID.
+ * * Fungible Mode: The desired number of pieces to transfer.
+ * * Re-Fungible Mode: The desired number of pieces to transfer.
**/
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]>;
/**
tests/src/interfaces/default/types.tsdiffbeforeafterboth--- a/tests/src/interfaces/default/types.ts
+++ b/tests/src/interfaces/default/types.ts
@@ -1672,7 +1672,7 @@
readonly isAddCollectionAdmin: boolean;
readonly asAddCollectionAdmin: {
readonly collectionId: u32;
- readonly newAdminId: PalletEvmAccountBasicCrossAccountIdRepr;
+ readonly newAdmin: PalletEvmAccountBasicCrossAccountIdRepr;
} & Struct;
readonly isRemoveCollectionAdmin: boolean;
readonly asRemoveCollectionAdmin: {
@@ -1784,12 +1784,12 @@
readonly isSetCollectionPermissions: boolean;
readonly asSetCollectionPermissions: {
readonly collectionId: u32;
- readonly newLimit: UpDataStructsCollectionPermissions;
+ readonly newPermission: UpDataStructsCollectionPermissions;
} & Struct;
readonly isRepartition: boolean;
readonly asRepartition: {
readonly collectionId: u32;
- readonly token: u32;
+ readonly tokenId: u32;
readonly amount: u128;
} & Struct;
readonly type: 'CreateCollection' | 'CreateCollectionEx' | 'DestroyCollection' | 'AddToAllowList' | 'RemoveFromAllowList' | 'ChangeCollectionOwner' | 'AddCollectionAdmin' | 'RemoveCollectionAdmin' | 'SetCollectionSponsor' | 'ConfirmSponsorship' | 'RemoveCollectionSponsor' | 'CreateItem' | 'CreateMultipleItems' | 'SetCollectionProperties' | 'DeleteCollectionProperties' | 'SetTokenProperties' | 'DeleteTokenProperties' | 'SetTokenPropertyPermissions' | 'CreateMultipleItemsEx' | 'SetTransfersEnabledFlag' | 'BurnItem' | 'BurnFrom' | 'Transfer' | 'Approve' | 'TransferFrom' | 'SetCollectionLimits' | 'SetCollectionPermissions' | 'Repartition';
tests/src/interfaces/lookup.tsdiffbeforeafterboth1// Auto-generated via `yarn polkadot-types-from-defs`, do not edit2/* eslint-disable */34/* eslint-disable sort-keys */56export default {7 /**8 * Lookup2: polkadot_primitives::v2::PersistedValidationData<primitive_types::H256, N>9 **/10 PolkadotPrimitivesV2PersistedValidationData: {11 parentHead: 'Bytes',12 relayParentNumber: 'u32',13 relayParentStorageRoot: 'H256',14 maxPovSize: 'u32'15 },16 /**17 * Lookup9: polkadot_primitives::v2::UpgradeRestriction18 **/19 PolkadotPrimitivesV2UpgradeRestriction: {20 _enum: ['Present']21 },22 /**23 * Lookup10: sp_trie::storage_proof::StorageProof24 **/25 SpTrieStorageProof: {26 trieNodes: 'BTreeSet<Bytes>'27 },28 /**29 * Lookup13: cumulus_pallet_parachain_system::relay_state_snapshot::MessagingStateSnapshot30 **/31 CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: {32 dmqMqcHead: 'H256',33 relayDispatchQueueSize: '(u32,u32)',34 ingressChannels: 'Vec<(u32,PolkadotPrimitivesV2AbridgedHrmpChannel)>',35 egressChannels: 'Vec<(u32,PolkadotPrimitivesV2AbridgedHrmpChannel)>'36 },37 /**38 * Lookup18: polkadot_primitives::v2::AbridgedHrmpChannel39 **/40 PolkadotPrimitivesV2AbridgedHrmpChannel: {41 maxCapacity: 'u32',42 maxTotalSize: 'u32',43 maxMessageSize: 'u32',44 msgCount: 'u32',45 totalSize: 'u32',46 mqcHead: 'Option<H256>'47 },48 /**49 * Lookup20: polkadot_primitives::v2::AbridgedHostConfiguration50 **/51 PolkadotPrimitivesV2AbridgedHostConfiguration: {52 maxCodeSize: 'u32',53 maxHeadDataSize: 'u32',54 maxUpwardQueueCount: 'u32',55 maxUpwardQueueSize: 'u32',56 maxUpwardMessageSize: 'u32',57 maxUpwardMessageNumPerCandidate: 'u32',58 hrmpMaxMessageNumPerCandidate: 'u32',59 validationUpgradeCooldown: 'u32',60 validationUpgradeDelay: 'u32'61 },62 /**63 * Lookup26: polkadot_core_primitives::OutboundHrmpMessage<polkadot_parachain::primitives::Id>64 **/65 PolkadotCorePrimitivesOutboundHrmpMessage: {66 recipient: 'u32',67 data: 'Bytes'68 },69 /**70 * Lookup28: cumulus_pallet_parachain_system::pallet::Call<T>71 **/72 CumulusPalletParachainSystemCall: {73 _enum: {74 set_validation_data: {75 data: 'CumulusPrimitivesParachainInherentParachainInherentData',76 },77 sudo_send_upward_message: {78 message: 'Bytes',79 },80 authorize_upgrade: {81 codeHash: 'H256',82 },83 enact_authorized_upgrade: {84 code: 'Bytes'85 }86 }87 },88 /**89 * Lookup29: cumulus_primitives_parachain_inherent::ParachainInherentData90 **/91 CumulusPrimitivesParachainInherentParachainInherentData: {92 validationData: 'PolkadotPrimitivesV2PersistedValidationData',93 relayChainState: 'SpTrieStorageProof',94 downwardMessages: 'Vec<PolkadotCorePrimitivesInboundDownwardMessage>',95 horizontalMessages: 'BTreeMap<u32, Vec<PolkadotCorePrimitivesInboundHrmpMessage>>'96 },97 /**98 * Lookup31: polkadot_core_primitives::InboundDownwardMessage<BlockNumber>99 **/100 PolkadotCorePrimitivesInboundDownwardMessage: {101 sentAt: 'u32',102 msg: 'Bytes'103 },104 /**105 * Lookup34: polkadot_core_primitives::InboundHrmpMessage<BlockNumber>106 **/107 PolkadotCorePrimitivesInboundHrmpMessage: {108 sentAt: 'u32',109 data: 'Bytes'110 },111 /**112 * Lookup37: cumulus_pallet_parachain_system::pallet::Event<T>113 **/114 CumulusPalletParachainSystemEvent: {115 _enum: {116 ValidationFunctionStored: 'Null',117 ValidationFunctionApplied: {118 relayChainBlockNum: 'u32',119 },120 ValidationFunctionDiscarded: 'Null',121 UpgradeAuthorized: {122 codeHash: 'H256',123 },124 DownwardMessagesReceived: {125 count: 'u32',126 },127 DownwardMessagesProcessed: {128 weightUsed: 'u64',129 dmqHead: 'H256'130 }131 }132 },133 /**134 * Lookup38: cumulus_pallet_parachain_system::pallet::Error<T>135 **/136 CumulusPalletParachainSystemError: {137 _enum: ['OverlappingUpgrades', 'ProhibitedByPolkadot', 'TooBig', 'ValidationDataNotAvailable', 'HostConfigurationNotAvailable', 'NotScheduled', 'NothingAuthorized', 'Unauthorized']138 },139 /**140 * Lookup41: pallet_balances::AccountData<Balance>141 **/142 PalletBalancesAccountData: {143 free: 'u128',144 reserved: 'u128',145 miscFrozen: 'u128',146 feeFrozen: 'u128'147 },148 /**149 * Lookup43: pallet_balances::BalanceLock<Balance>150 **/151 PalletBalancesBalanceLock: {152 id: '[u8;8]',153 amount: 'u128',154 reasons: 'PalletBalancesReasons'155 },156 /**157 * Lookup45: pallet_balances::Reasons158 **/159 PalletBalancesReasons: {160 _enum: ['Fee', 'Misc', 'All']161 },162 /**163 * Lookup48: pallet_balances::ReserveData<ReserveIdentifier, Balance>164 **/165 PalletBalancesReserveData: {166 id: '[u8;16]',167 amount: 'u128'168 },169 /**170 * Lookup51: pallet_balances::Releases171 **/172 PalletBalancesReleases: {173 _enum: ['V1_0_0', 'V2_0_0']174 },175 /**176 * Lookup52: pallet_balances::pallet::Call<T, I>177 **/178 PalletBalancesCall: {179 _enum: {180 transfer: {181 dest: 'MultiAddress',182 value: 'Compact<u128>',183 },184 set_balance: {185 who: 'MultiAddress',186 newFree: 'Compact<u128>',187 newReserved: 'Compact<u128>',188 },189 force_transfer: {190 source: 'MultiAddress',191 dest: 'MultiAddress',192 value: 'Compact<u128>',193 },194 transfer_keep_alive: {195 dest: 'MultiAddress',196 value: 'Compact<u128>',197 },198 transfer_all: {199 dest: 'MultiAddress',200 keepAlive: 'bool',201 },202 force_unreserve: {203 who: 'MultiAddress',204 amount: 'u128'205 }206 }207 },208 /**209 * Lookup58: pallet_balances::pallet::Event<T, I>210 **/211 PalletBalancesEvent: {212 _enum: {213 Endowed: {214 account: 'AccountId32',215 freeBalance: 'u128',216 },217 DustLost: {218 account: 'AccountId32',219 amount: 'u128',220 },221 Transfer: {222 from: 'AccountId32',223 to: 'AccountId32',224 amount: 'u128',225 },226 BalanceSet: {227 who: 'AccountId32',228 free: 'u128',229 reserved: 'u128',230 },231 Reserved: {232 who: 'AccountId32',233 amount: 'u128',234 },235 Unreserved: {236 who: 'AccountId32',237 amount: 'u128',238 },239 ReserveRepatriated: {240 from: 'AccountId32',241 to: 'AccountId32',242 amount: 'u128',243 destinationStatus: 'FrameSupportTokensMiscBalanceStatus',244 },245 Deposit: {246 who: 'AccountId32',247 amount: 'u128',248 },249 Withdraw: {250 who: 'AccountId32',251 amount: 'u128',252 },253 Slashed: {254 who: 'AccountId32',255 amount: 'u128'256 }257 }258 },259 /**260 * Lookup59: frame_support::traits::tokens::misc::BalanceStatus261 **/262 FrameSupportTokensMiscBalanceStatus: {263 _enum: ['Free', 'Reserved']264 },265 /**266 * Lookup60: pallet_balances::pallet::Error<T, I>267 **/268 PalletBalancesError: {269 _enum: ['VestingBalance', 'LiquidityRestrictions', 'InsufficientBalance', 'ExistentialDeposit', 'KeepAlive', 'ExistingVestingSchedule', 'DeadAccount', 'TooManyReserves']270 },271 /**272 * Lookup63: pallet_timestamp::pallet::Call<T>273 **/274 PalletTimestampCall: {275 _enum: {276 set: {277 now: 'Compact<u64>'278 }279 }280 },281 /**282 * Lookup66: pallet_transaction_payment::Releases283 **/284 PalletTransactionPaymentReleases: {285 _enum: ['V1Ancient', 'V2']286 },287 /**288 * Lookup67: pallet_treasury::Proposal<sp_core::crypto::AccountId32, Balance>289 **/290 PalletTreasuryProposal: {291 proposer: 'AccountId32',292 value: 'u128',293 beneficiary: 'AccountId32',294 bond: 'u128'295 },296 /**297 * Lookup70: pallet_treasury::pallet::Call<T, I>298 **/299 PalletTreasuryCall: {300 _enum: {301 propose_spend: {302 value: 'Compact<u128>',303 beneficiary: 'MultiAddress',304 },305 reject_proposal: {306 proposalId: 'Compact<u32>',307 },308 approve_proposal: {309 proposalId: 'Compact<u32>',310 },311 remove_approval: {312 proposalId: 'Compact<u32>'313 }314 }315 },316 /**317 * Lookup72: pallet_treasury::pallet::Event<T, I>318 **/319 PalletTreasuryEvent: {320 _enum: {321 Proposed: {322 proposalIndex: 'u32',323 },324 Spending: {325 budgetRemaining: 'u128',326 },327 Awarded: {328 proposalIndex: 'u32',329 award: 'u128',330 account: 'AccountId32',331 },332 Rejected: {333 proposalIndex: 'u32',334 slashed: 'u128',335 },336 Burnt: {337 burntFunds: 'u128',338 },339 Rollover: {340 rolloverBalance: 'u128',341 },342 Deposit: {343 value: 'u128'344 }345 }346 },347 /**348 * Lookup75: frame_support::PalletId349 **/350 FrameSupportPalletId: '[u8;8]',351 /**352 * Lookup76: pallet_treasury::pallet::Error<T, I>353 **/354 PalletTreasuryError: {355 _enum: ['InsufficientProposersBalance', 'InvalidIndex', 'TooManyApprovals', 'ProposalNotApproved']356 },357 /**358 * Lookup77: pallet_sudo::pallet::Call<T>359 **/360 PalletSudoCall: {361 _enum: {362 sudo: {363 call: 'Call',364 },365 sudo_unchecked_weight: {366 call: 'Call',367 weight: 'u64',368 },369 set_key: {370 _alias: {371 new_: 'new',372 },373 new_: 'MultiAddress',374 },375 sudo_as: {376 who: 'MultiAddress',377 call: 'Call'378 }379 }380 },381 /**382 * Lookup79: frame_system::pallet::Call<T>383 **/384 FrameSystemCall: {385 _enum: {386 fill_block: {387 ratio: 'Perbill',388 },389 remark: {390 remark: 'Bytes',391 },392 set_heap_pages: {393 pages: 'u64',394 },395 set_code: {396 code: 'Bytes',397 },398 set_code_without_checks: {399 code: 'Bytes',400 },401 set_storage: {402 items: 'Vec<(Bytes,Bytes)>',403 },404 kill_storage: {405 _alias: {406 keys_: 'keys',407 },408 keys_: 'Vec<Bytes>',409 },410 kill_prefix: {411 prefix: 'Bytes',412 subkeys: 'u32',413 },414 remark_with_event: {415 remark: 'Bytes'416 }417 }418 },419 /**420 * Lookup83: orml_vesting::module::Call<T>421 **/422 OrmlVestingModuleCall: {423 _enum: {424 claim: 'Null',425 vested_transfer: {426 dest: 'MultiAddress',427 schedule: 'OrmlVestingVestingSchedule',428 },429 update_vesting_schedules: {430 who: 'MultiAddress',431 vestingSchedules: 'Vec<OrmlVestingVestingSchedule>',432 },433 claim_for: {434 dest: 'MultiAddress'435 }436 }437 },438 /**439 * Lookup84: orml_vesting::VestingSchedule<BlockNumber, Balance>440 **/441 OrmlVestingVestingSchedule: {442 start: 'u32',443 period: 'u32',444 periodCount: 'u32',445 perPeriod: 'Compact<u128>'446 },447 /**448 * Lookup86: cumulus_pallet_xcmp_queue::pallet::Call<T>449 **/450 CumulusPalletXcmpQueueCall: {451 _enum: {452 service_overweight: {453 index: 'u64',454 weightLimit: 'u64',455 },456 suspend_xcm_execution: 'Null',457 resume_xcm_execution: 'Null',458 update_suspend_threshold: {459 _alias: {460 new_: 'new',461 },462 new_: 'u32',463 },464 update_drop_threshold: {465 _alias: {466 new_: 'new',467 },468 new_: 'u32',469 },470 update_resume_threshold: {471 _alias: {472 new_: 'new',473 },474 new_: 'u32',475 },476 update_threshold_weight: {477 _alias: {478 new_: 'new',479 },480 new_: 'u64',481 },482 update_weight_restrict_decay: {483 _alias: {484 new_: 'new',485 },486 new_: 'u64',487 },488 update_xcmp_max_individual_weight: {489 _alias: {490 new_: 'new',491 },492 new_: 'u64'493 }494 }495 },496 /**497 * Lookup87: pallet_xcm::pallet::Call<T>498 **/499 PalletXcmCall: {500 _enum: {501 send: {502 dest: 'XcmVersionedMultiLocation',503 message: 'XcmVersionedXcm',504 },505 teleport_assets: {506 dest: 'XcmVersionedMultiLocation',507 beneficiary: 'XcmVersionedMultiLocation',508 assets: 'XcmVersionedMultiAssets',509 feeAssetItem: 'u32',510 },511 reserve_transfer_assets: {512 dest: 'XcmVersionedMultiLocation',513 beneficiary: 'XcmVersionedMultiLocation',514 assets: 'XcmVersionedMultiAssets',515 feeAssetItem: 'u32',516 },517 execute: {518 message: 'XcmVersionedXcm',519 maxWeight: 'u64',520 },521 force_xcm_version: {522 location: 'XcmV1MultiLocation',523 xcmVersion: 'u32',524 },525 force_default_xcm_version: {526 maybeXcmVersion: 'Option<u32>',527 },528 force_subscribe_version_notify: {529 location: 'XcmVersionedMultiLocation',530 },531 force_unsubscribe_version_notify: {532 location: 'XcmVersionedMultiLocation',533 },534 limited_reserve_transfer_assets: {535 dest: 'XcmVersionedMultiLocation',536 beneficiary: 'XcmVersionedMultiLocation',537 assets: 'XcmVersionedMultiAssets',538 feeAssetItem: 'u32',539 weightLimit: 'XcmV2WeightLimit',540 },541 limited_teleport_assets: {542 dest: 'XcmVersionedMultiLocation',543 beneficiary: 'XcmVersionedMultiLocation',544 assets: 'XcmVersionedMultiAssets',545 feeAssetItem: 'u32',546 weightLimit: 'XcmV2WeightLimit'547 }548 }549 },550 /**551 * Lookup88: xcm::VersionedMultiLocation552 **/553 XcmVersionedMultiLocation: {554 _enum: {555 V0: 'XcmV0MultiLocation',556 V1: 'XcmV1MultiLocation'557 }558 },559 /**560 * Lookup89: xcm::v0::multi_location::MultiLocation561 **/562 XcmV0MultiLocation: {563 _enum: {564 Null: 'Null',565 X1: 'XcmV0Junction',566 X2: '(XcmV0Junction,XcmV0Junction)',567 X3: '(XcmV0Junction,XcmV0Junction,XcmV0Junction)',568 X4: '(XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction)',569 X5: '(XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction)',570 X6: '(XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction)',571 X7: '(XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction)',572 X8: '(XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction)'573 }574 },575 /**576 * Lookup90: xcm::v0::junction::Junction577 **/578 XcmV0Junction: {579 _enum: {580 Parent: 'Null',581 Parachain: 'Compact<u32>',582 AccountId32: {583 network: 'XcmV0JunctionNetworkId',584 id: '[u8;32]',585 },586 AccountIndex64: {587 network: 'XcmV0JunctionNetworkId',588 index: 'Compact<u64>',589 },590 AccountKey20: {591 network: 'XcmV0JunctionNetworkId',592 key: '[u8;20]',593 },594 PalletInstance: 'u8',595 GeneralIndex: 'Compact<u128>',596 GeneralKey: 'Bytes',597 OnlyChild: 'Null',598 Plurality: {599 id: 'XcmV0JunctionBodyId',600 part: 'XcmV0JunctionBodyPart'601 }602 }603 },604 /**605 * Lookup91: xcm::v0::junction::NetworkId606 **/607 XcmV0JunctionNetworkId: {608 _enum: {609 Any: 'Null',610 Named: 'Bytes',611 Polkadot: 'Null',612 Kusama: 'Null'613 }614 },615 /**616 * Lookup92: xcm::v0::junction::BodyId617 **/618 XcmV0JunctionBodyId: {619 _enum: {620 Unit: 'Null',621 Named: 'Bytes',622 Index: 'Compact<u32>',623 Executive: 'Null',624 Technical: 'Null',625 Legislative: 'Null',626 Judicial: 'Null'627 }628 },629 /**630 * Lookup93: xcm::v0::junction::BodyPart631 **/632 XcmV0JunctionBodyPart: {633 _enum: {634 Voice: 'Null',635 Members: {636 count: 'Compact<u32>',637 },638 Fraction: {639 nom: 'Compact<u32>',640 denom: 'Compact<u32>',641 },642 AtLeastProportion: {643 nom: 'Compact<u32>',644 denom: 'Compact<u32>',645 },646 MoreThanProportion: {647 nom: 'Compact<u32>',648 denom: 'Compact<u32>'649 }650 }651 },652 /**653 * Lookup94: xcm::v1::multilocation::MultiLocation654 **/655 XcmV1MultiLocation: {656 parents: 'u8',657 interior: 'XcmV1MultilocationJunctions'658 },659 /**660 * Lookup95: xcm::v1::multilocation::Junctions661 **/662 XcmV1MultilocationJunctions: {663 _enum: {664 Here: 'Null',665 X1: 'XcmV1Junction',666 X2: '(XcmV1Junction,XcmV1Junction)',667 X3: '(XcmV1Junction,XcmV1Junction,XcmV1Junction)',668 X4: '(XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction)',669 X5: '(XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction)',670 X6: '(XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction)',671 X7: '(XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction)',672 X8: '(XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction)'673 }674 },675 /**676 * Lookup96: xcm::v1::junction::Junction677 **/678 XcmV1Junction: {679 _enum: {680 Parachain: 'Compact<u32>',681 AccountId32: {682 network: 'XcmV0JunctionNetworkId',683 id: '[u8;32]',684 },685 AccountIndex64: {686 network: 'XcmV0JunctionNetworkId',687 index: 'Compact<u64>',688 },689 AccountKey20: {690 network: 'XcmV0JunctionNetworkId',691 key: '[u8;20]',692 },693 PalletInstance: 'u8',694 GeneralIndex: 'Compact<u128>',695 GeneralKey: 'Bytes',696 OnlyChild: 'Null',697 Plurality: {698 id: 'XcmV0JunctionBodyId',699 part: 'XcmV0JunctionBodyPart'700 }701 }702 },703 /**704 * Lookup97: xcm::VersionedXcm<Call>705 **/706 XcmVersionedXcm: {707 _enum: {708 V0: 'XcmV0Xcm',709 V1: 'XcmV1Xcm',710 V2: 'XcmV2Xcm'711 }712 },713 /**714 * Lookup98: xcm::v0::Xcm<Call>715 **/716 XcmV0Xcm: {717 _enum: {718 WithdrawAsset: {719 assets: 'Vec<XcmV0MultiAsset>',720 effects: 'Vec<XcmV0Order>',721 },722 ReserveAssetDeposit: {723 assets: 'Vec<XcmV0MultiAsset>',724 effects: 'Vec<XcmV0Order>',725 },726 TeleportAsset: {727 assets: 'Vec<XcmV0MultiAsset>',728 effects: 'Vec<XcmV0Order>',729 },730 QueryResponse: {731 queryId: 'Compact<u64>',732 response: 'XcmV0Response',733 },734 TransferAsset: {735 assets: 'Vec<XcmV0MultiAsset>',736 dest: 'XcmV0MultiLocation',737 },738 TransferReserveAsset: {739 assets: 'Vec<XcmV0MultiAsset>',740 dest: 'XcmV0MultiLocation',741 effects: 'Vec<XcmV0Order>',742 },743 Transact: {744 originType: 'XcmV0OriginKind',745 requireWeightAtMost: 'u64',746 call: 'XcmDoubleEncoded',747 },748 HrmpNewChannelOpenRequest: {749 sender: 'Compact<u32>',750 maxMessageSize: 'Compact<u32>',751 maxCapacity: 'Compact<u32>',752 },753 HrmpChannelAccepted: {754 recipient: 'Compact<u32>',755 },756 HrmpChannelClosing: {757 initiator: 'Compact<u32>',758 sender: 'Compact<u32>',759 recipient: 'Compact<u32>',760 },761 RelayedFrom: {762 who: 'XcmV0MultiLocation',763 message: 'XcmV0Xcm'764 }765 }766 },767 /**768 * Lookup100: xcm::v0::multi_asset::MultiAsset769 **/770 XcmV0MultiAsset: {771 _enum: {772 None: 'Null',773 All: 'Null',774 AllFungible: 'Null',775 AllNonFungible: 'Null',776 AllAbstractFungible: {777 id: 'Bytes',778 },779 AllAbstractNonFungible: {780 class: 'Bytes',781 },782 AllConcreteFungible: {783 id: 'XcmV0MultiLocation',784 },785 AllConcreteNonFungible: {786 class: 'XcmV0MultiLocation',787 },788 AbstractFungible: {789 id: 'Bytes',790 amount: 'Compact<u128>',791 },792 AbstractNonFungible: {793 class: 'Bytes',794 instance: 'XcmV1MultiassetAssetInstance',795 },796 ConcreteFungible: {797 id: 'XcmV0MultiLocation',798 amount: 'Compact<u128>',799 },800 ConcreteNonFungible: {801 class: 'XcmV0MultiLocation',802 instance: 'XcmV1MultiassetAssetInstance'803 }804 }805 },806 /**807 * Lookup101: xcm::v1::multiasset::AssetInstance808 **/809 XcmV1MultiassetAssetInstance: {810 _enum: {811 Undefined: 'Null',812 Index: 'Compact<u128>',813 Array4: '[u8;4]',814 Array8: '[u8;8]',815 Array16: '[u8;16]',816 Array32: '[u8;32]',817 Blob: 'Bytes'818 }819 },820 /**821 * Lookup104: xcm::v0::order::Order<Call>822 **/823 XcmV0Order: {824 _enum: {825 Null: 'Null',826 DepositAsset: {827 assets: 'Vec<XcmV0MultiAsset>',828 dest: 'XcmV0MultiLocation',829 },830 DepositReserveAsset: {831 assets: 'Vec<XcmV0MultiAsset>',832 dest: 'XcmV0MultiLocation',833 effects: 'Vec<XcmV0Order>',834 },835 ExchangeAsset: {836 give: 'Vec<XcmV0MultiAsset>',837 receive: 'Vec<XcmV0MultiAsset>',838 },839 InitiateReserveWithdraw: {840 assets: 'Vec<XcmV0MultiAsset>',841 reserve: 'XcmV0MultiLocation',842 effects: 'Vec<XcmV0Order>',843 },844 InitiateTeleport: {845 assets: 'Vec<XcmV0MultiAsset>',846 dest: 'XcmV0MultiLocation',847 effects: 'Vec<XcmV0Order>',848 },849 QueryHolding: {850 queryId: 'Compact<u64>',851 dest: 'XcmV0MultiLocation',852 assets: 'Vec<XcmV0MultiAsset>',853 },854 BuyExecution: {855 fees: 'XcmV0MultiAsset',856 weight: 'u64',857 debt: 'u64',858 haltOnError: 'bool',859 xcm: 'Vec<XcmV0Xcm>'860 }861 }862 },863 /**864 * Lookup106: xcm::v0::Response865 **/866 XcmV0Response: {867 _enum: {868 Assets: 'Vec<XcmV0MultiAsset>'869 }870 },871 /**872 * Lookup107: xcm::v0::OriginKind873 **/874 XcmV0OriginKind: {875 _enum: ['Native', 'SovereignAccount', 'Superuser', 'Xcm']876 },877 /**878 * Lookup108: xcm::double_encoded::DoubleEncoded<T>879 **/880 XcmDoubleEncoded: {881 encoded: 'Bytes'882 },883 /**884 * Lookup109: xcm::v1::Xcm<Call>885 **/886 XcmV1Xcm: {887 _enum: {888 WithdrawAsset: {889 assets: 'XcmV1MultiassetMultiAssets',890 effects: 'Vec<XcmV1Order>',891 },892 ReserveAssetDeposited: {893 assets: 'XcmV1MultiassetMultiAssets',894 effects: 'Vec<XcmV1Order>',895 },896 ReceiveTeleportedAsset: {897 assets: 'XcmV1MultiassetMultiAssets',898 effects: 'Vec<XcmV1Order>',899 },900 QueryResponse: {901 queryId: 'Compact<u64>',902 response: 'XcmV1Response',903 },904 TransferAsset: {905 assets: 'XcmV1MultiassetMultiAssets',906 beneficiary: 'XcmV1MultiLocation',907 },908 TransferReserveAsset: {909 assets: 'XcmV1MultiassetMultiAssets',910 dest: 'XcmV1MultiLocation',911 effects: 'Vec<XcmV1Order>',912 },913 Transact: {914 originType: 'XcmV0OriginKind',915 requireWeightAtMost: 'u64',916 call: 'XcmDoubleEncoded',917 },918 HrmpNewChannelOpenRequest: {919 sender: 'Compact<u32>',920 maxMessageSize: 'Compact<u32>',921 maxCapacity: 'Compact<u32>',922 },923 HrmpChannelAccepted: {924 recipient: 'Compact<u32>',925 },926 HrmpChannelClosing: {927 initiator: 'Compact<u32>',928 sender: 'Compact<u32>',929 recipient: 'Compact<u32>',930 },931 RelayedFrom: {932 who: 'XcmV1MultilocationJunctions',933 message: 'XcmV1Xcm',934 },935 SubscribeVersion: {936 queryId: 'Compact<u64>',937 maxResponseWeight: 'Compact<u64>',938 },939 UnsubscribeVersion: 'Null'940 }941 },942 /**943 * Lookup110: xcm::v1::multiasset::MultiAssets944 **/945 XcmV1MultiassetMultiAssets: 'Vec<XcmV1MultiAsset>',946 /**947 * Lookup112: xcm::v1::multiasset::MultiAsset948 **/949 XcmV1MultiAsset: {950 id: 'XcmV1MultiassetAssetId',951 fun: 'XcmV1MultiassetFungibility'952 },953 /**954 * Lookup113: xcm::v1::multiasset::AssetId955 **/956 XcmV1MultiassetAssetId: {957 _enum: {958 Concrete: 'XcmV1MultiLocation',959 Abstract: 'Bytes'960 }961 },962 /**963 * Lookup114: xcm::v1::multiasset::Fungibility964 **/965 XcmV1MultiassetFungibility: {966 _enum: {967 Fungible: 'Compact<u128>',968 NonFungible: 'XcmV1MultiassetAssetInstance'969 }970 },971 /**972 * Lookup116: xcm::v1::order::Order<Call>973 **/974 XcmV1Order: {975 _enum: {976 Noop: 'Null',977 DepositAsset: {978 assets: 'XcmV1MultiassetMultiAssetFilter',979 maxAssets: 'u32',980 beneficiary: 'XcmV1MultiLocation',981 },982 DepositReserveAsset: {983 assets: 'XcmV1MultiassetMultiAssetFilter',984 maxAssets: 'u32',985 dest: 'XcmV1MultiLocation',986 effects: 'Vec<XcmV1Order>',987 },988 ExchangeAsset: {989 give: 'XcmV1MultiassetMultiAssetFilter',990 receive: 'XcmV1MultiassetMultiAssets',991 },992 InitiateReserveWithdraw: {993 assets: 'XcmV1MultiassetMultiAssetFilter',994 reserve: 'XcmV1MultiLocation',995 effects: 'Vec<XcmV1Order>',996 },997 InitiateTeleport: {998 assets: 'XcmV1MultiassetMultiAssetFilter',999 dest: 'XcmV1MultiLocation',1000 effects: 'Vec<XcmV1Order>',1001 },1002 QueryHolding: {1003 queryId: 'Compact<u64>',1004 dest: 'XcmV1MultiLocation',1005 assets: 'XcmV1MultiassetMultiAssetFilter',1006 },1007 BuyExecution: {1008 fees: 'XcmV1MultiAsset',1009 weight: 'u64',1010 debt: 'u64',1011 haltOnError: 'bool',1012 instructions: 'Vec<XcmV1Xcm>'1013 }1014 }1015 },1016 /**1017 * Lookup117: xcm::v1::multiasset::MultiAssetFilter1018 **/1019 XcmV1MultiassetMultiAssetFilter: {1020 _enum: {1021 Definite: 'XcmV1MultiassetMultiAssets',1022 Wild: 'XcmV1MultiassetWildMultiAsset'1023 }1024 },1025 /**1026 * Lookup118: xcm::v1::multiasset::WildMultiAsset1027 **/1028 XcmV1MultiassetWildMultiAsset: {1029 _enum: {1030 All: 'Null',1031 AllOf: {1032 id: 'XcmV1MultiassetAssetId',1033 fun: 'XcmV1MultiassetWildFungibility'1034 }1035 }1036 },1037 /**1038 * Lookup119: xcm::v1::multiasset::WildFungibility1039 **/1040 XcmV1MultiassetWildFungibility: {1041 _enum: ['Fungible', 'NonFungible']1042 },1043 /**1044 * Lookup121: xcm::v1::Response1045 **/1046 XcmV1Response: {1047 _enum: {1048 Assets: 'XcmV1MultiassetMultiAssets',1049 Version: 'u32'1050 }1051 },1052 /**1053 * Lookup122: xcm::v2::Xcm<Call>1054 **/1055 XcmV2Xcm: 'Vec<XcmV2Instruction>',1056 /**1057 * Lookup124: xcm::v2::Instruction<Call>1058 **/1059 XcmV2Instruction: {1060 _enum: {1061 WithdrawAsset: 'XcmV1MultiassetMultiAssets',1062 ReserveAssetDeposited: 'XcmV1MultiassetMultiAssets',1063 ReceiveTeleportedAsset: 'XcmV1MultiassetMultiAssets',1064 QueryResponse: {1065 queryId: 'Compact<u64>',1066 response: 'XcmV2Response',1067 maxWeight: 'Compact<u64>',1068 },1069 TransferAsset: {1070 assets: 'XcmV1MultiassetMultiAssets',1071 beneficiary: 'XcmV1MultiLocation',1072 },1073 TransferReserveAsset: {1074 assets: 'XcmV1MultiassetMultiAssets',1075 dest: 'XcmV1MultiLocation',1076 xcm: 'XcmV2Xcm',1077 },1078 Transact: {1079 originType: 'XcmV0OriginKind',1080 requireWeightAtMost: 'Compact<u64>',1081 call: 'XcmDoubleEncoded',1082 },1083 HrmpNewChannelOpenRequest: {1084 sender: 'Compact<u32>',1085 maxMessageSize: 'Compact<u32>',1086 maxCapacity: 'Compact<u32>',1087 },1088 HrmpChannelAccepted: {1089 recipient: 'Compact<u32>',1090 },1091 HrmpChannelClosing: {1092 initiator: 'Compact<u32>',1093 sender: 'Compact<u32>',1094 recipient: 'Compact<u32>',1095 },1096 ClearOrigin: 'Null',1097 DescendOrigin: 'XcmV1MultilocationJunctions',1098 ReportError: {1099 queryId: 'Compact<u64>',1100 dest: 'XcmV1MultiLocation',1101 maxResponseWeight: 'Compact<u64>',1102 },1103 DepositAsset: {1104 assets: 'XcmV1MultiassetMultiAssetFilter',1105 maxAssets: 'Compact<u32>',1106 beneficiary: 'XcmV1MultiLocation',1107 },1108 DepositReserveAsset: {1109 assets: 'XcmV1MultiassetMultiAssetFilter',1110 maxAssets: 'Compact<u32>',1111 dest: 'XcmV1MultiLocation',1112 xcm: 'XcmV2Xcm',1113 },1114 ExchangeAsset: {1115 give: 'XcmV1MultiassetMultiAssetFilter',1116 receive: 'XcmV1MultiassetMultiAssets',1117 },1118 InitiateReserveWithdraw: {1119 assets: 'XcmV1MultiassetMultiAssetFilter',1120 reserve: 'XcmV1MultiLocation',1121 xcm: 'XcmV2Xcm',1122 },1123 InitiateTeleport: {1124 assets: 'XcmV1MultiassetMultiAssetFilter',1125 dest: 'XcmV1MultiLocation',1126 xcm: 'XcmV2Xcm',1127 },1128 QueryHolding: {1129 queryId: 'Compact<u64>',1130 dest: 'XcmV1MultiLocation',1131 assets: 'XcmV1MultiassetMultiAssetFilter',1132 maxResponseWeight: 'Compact<u64>',1133 },1134 BuyExecution: {1135 fees: 'XcmV1MultiAsset',1136 weightLimit: 'XcmV2WeightLimit',1137 },1138 RefundSurplus: 'Null',1139 SetErrorHandler: 'XcmV2Xcm',1140 SetAppendix: 'XcmV2Xcm',1141 ClearError: 'Null',1142 ClaimAsset: {1143 assets: 'XcmV1MultiassetMultiAssets',1144 ticket: 'XcmV1MultiLocation',1145 },1146 Trap: 'Compact<u64>',1147 SubscribeVersion: {1148 queryId: 'Compact<u64>',1149 maxResponseWeight: 'Compact<u64>',1150 },1151 UnsubscribeVersion: 'Null'1152 }1153 },1154 /**1155 * Lookup125: xcm::v2::Response1156 **/1157 XcmV2Response: {1158 _enum: {1159 Null: 'Null',1160 Assets: 'XcmV1MultiassetMultiAssets',1161 ExecutionResult: 'Option<(u32,XcmV2TraitsError)>',1162 Version: 'u32'1163 }1164 },1165 /**1166 * Lookup128: xcm::v2::traits::Error1167 **/1168 XcmV2TraitsError: {1169 _enum: {1170 Overflow: 'Null',1171 Unimplemented: 'Null',1172 UntrustedReserveLocation: 'Null',1173 UntrustedTeleportLocation: 'Null',1174 MultiLocationFull: 'Null',1175 MultiLocationNotInvertible: 'Null',1176 BadOrigin: 'Null',1177 InvalidLocation: 'Null',1178 AssetNotFound: 'Null',1179 FailedToTransactAsset: 'Null',1180 NotWithdrawable: 'Null',1181 LocationCannotHold: 'Null',1182 ExceedsMaxMessageSize: 'Null',1183 DestinationUnsupported: 'Null',1184 Transport: 'Null',1185 Unroutable: 'Null',1186 UnknownClaim: 'Null',1187 FailedToDecode: 'Null',1188 MaxWeightInvalid: 'Null',1189 NotHoldingFees: 'Null',1190 TooExpensive: 'Null',1191 Trap: 'u64',1192 UnhandledXcmVersion: 'Null',1193 WeightLimitReached: 'u64',1194 Barrier: 'Null',1195 WeightNotComputable: 'Null'1196 }1197 },1198 /**1199 * Lookup129: xcm::v2::WeightLimit1200 **/1201 XcmV2WeightLimit: {1202 _enum: {1203 Unlimited: 'Null',1204 Limited: 'Compact<u64>'1205 }1206 },1207 /**1208 * Lookup130: xcm::VersionedMultiAssets1209 **/1210 XcmVersionedMultiAssets: {1211 _enum: {1212 V0: 'Vec<XcmV0MultiAsset>',1213 V1: 'XcmV1MultiassetMultiAssets'1214 }1215 },1216 /**1217 * Lookup145: cumulus_pallet_xcm::pallet::Call<T>1218 **/1219 CumulusPalletXcmCall: 'Null',1220 /**1221 * Lookup146: cumulus_pallet_dmp_queue::pallet::Call<T>1222 **/1223 CumulusPalletDmpQueueCall: {1224 _enum: {1225 service_overweight: {1226 index: 'u64',1227 weightLimit: 'u64'1228 }1229 }1230 },1231 /**1232 * Lookup147: pallet_inflation::pallet::Call<T>1233 **/1234 PalletInflationCall: {1235 _enum: {1236 start_inflation: {1237 inflationStartRelayBlock: 'u32'1238 }1239 }1240 },1241 /**1242 * Lookup148: pallet_unique::Call<T>1243 **/1244 PalletUniqueCall: {1245 _enum: {1246 create_collection: {1247 collectionName: 'Vec<u16>',1248 collectionDescription: 'Vec<u16>',1249 tokenPrefix: 'Bytes',1250 mode: 'UpDataStructsCollectionMode',1251 },1252 create_collection_ex: {1253 data: 'UpDataStructsCreateCollectionData',1254 },1255 destroy_collection: {1256 collectionId: 'u32',1257 },1258 add_to_allow_list: {1259 collectionId: 'u32',1260 address: 'PalletEvmAccountBasicCrossAccountIdRepr',1261 },1262 remove_from_allow_list: {1263 collectionId: 'u32',1264 address: 'PalletEvmAccountBasicCrossAccountIdRepr',1265 },1266 change_collection_owner: {1267 collectionId: 'u32',1268 newOwner: 'AccountId32',1269 },1270 add_collection_admin: {1271 collectionId: 'u32',1272 newAdminId: 'PalletEvmAccountBasicCrossAccountIdRepr',1273 },1274 remove_collection_admin: {1275 collectionId: 'u32',1276 accountId: 'PalletEvmAccountBasicCrossAccountIdRepr',1277 },1278 set_collection_sponsor: {1279 collectionId: 'u32',1280 newSponsor: 'AccountId32',1281 },1282 confirm_sponsorship: {1283 collectionId: 'u32',1284 },1285 remove_collection_sponsor: {1286 collectionId: 'u32',1287 },1288 create_item: {1289 collectionId: 'u32',1290 owner: 'PalletEvmAccountBasicCrossAccountIdRepr',1291 data: 'UpDataStructsCreateItemData',1292 },1293 create_multiple_items: {1294 collectionId: 'u32',1295 owner: 'PalletEvmAccountBasicCrossAccountIdRepr',1296 itemsData: 'Vec<UpDataStructsCreateItemData>',1297 },1298 set_collection_properties: {1299 collectionId: 'u32',1300 properties: 'Vec<UpDataStructsProperty>',1301 },1302 delete_collection_properties: {1303 collectionId: 'u32',1304 propertyKeys: 'Vec<Bytes>',1305 },1306 set_token_properties: {1307 collectionId: 'u32',1308 tokenId: 'u32',1309 properties: 'Vec<UpDataStructsProperty>',1310 },1311 delete_token_properties: {1312 collectionId: 'u32',1313 tokenId: 'u32',1314 propertyKeys: 'Vec<Bytes>',1315 },1316 set_token_property_permissions: {1317 collectionId: 'u32',1318 propertyPermissions: 'Vec<UpDataStructsPropertyKeyPermission>',1319 },1320 create_multiple_items_ex: {1321 collectionId: 'u32',1322 data: 'UpDataStructsCreateItemExData',1323 },1324 set_transfers_enabled_flag: {1325 collectionId: 'u32',1326 value: 'bool',1327 },1328 burn_item: {1329 collectionId: 'u32',1330 itemId: 'u32',1331 value: 'u128',1332 },1333 burn_from: {1334 collectionId: 'u32',1335 from: 'PalletEvmAccountBasicCrossAccountIdRepr',1336 itemId: 'u32',1337 value: 'u128',1338 },1339 transfer: {1340 recipient: 'PalletEvmAccountBasicCrossAccountIdRepr',1341 collectionId: 'u32',1342 itemId: 'u32',1343 value: 'u128',1344 },1345 approve: {1346 spender: 'PalletEvmAccountBasicCrossAccountIdRepr',1347 collectionId: 'u32',1348 itemId: 'u32',1349 amount: 'u128',1350 },1351 transfer_from: {1352 from: 'PalletEvmAccountBasicCrossAccountIdRepr',1353 recipient: 'PalletEvmAccountBasicCrossAccountIdRepr',1354 collectionId: 'u32',1355 itemId: 'u32',1356 value: 'u128',1357 },1358 set_collection_limits: {1359 collectionId: 'u32',1360 newLimit: 'UpDataStructsCollectionLimits',1361 },1362 set_collection_permissions: {1363 collectionId: 'u32',1364 newLimit: 'UpDataStructsCollectionPermissions',1365 },1366 repartition: {1367 collectionId: 'u32',1368 token: 'u32',1369 amount: 'u128'1370 }1371 }1372 },1373 /**1374 * Lookup154: up_data_structs::CollectionMode1375 **/1376 UpDataStructsCollectionMode: {1377 _enum: {1378 NFT: 'Null',1379 Fungible: 'u8',1380 ReFungible: 'Null'1381 }1382 },1383 /**1384 * Lookup155: up_data_structs::CreateCollectionData<sp_core::crypto::AccountId32>1385 **/1386 UpDataStructsCreateCollectionData: {1387 mode: 'UpDataStructsCollectionMode',1388 access: 'Option<UpDataStructsAccessMode>',1389 name: 'Vec<u16>',1390 description: 'Vec<u16>',1391 tokenPrefix: 'Bytes',1392 pendingSponsor: 'Option<AccountId32>',1393 limits: 'Option<UpDataStructsCollectionLimits>',1394 permissions: 'Option<UpDataStructsCollectionPermissions>',1395 tokenPropertyPermissions: 'Vec<UpDataStructsPropertyKeyPermission>',1396 properties: 'Vec<UpDataStructsProperty>'1397 },1398 /**1399 * Lookup157: up_data_structs::AccessMode1400 **/1401 UpDataStructsAccessMode: {1402 _enum: ['Normal', 'AllowList']1403 },1404 /**1405 * Lookup160: up_data_structs::CollectionLimits1406 **/1407 UpDataStructsCollectionLimits: {1408 accountTokenOwnershipLimit: 'Option<u32>',1409 sponsoredDataSize: 'Option<u32>',1410 sponsoredDataRateLimit: 'Option<UpDataStructsSponsoringRateLimit>',1411 tokenLimit: 'Option<u32>',1412 sponsorTransferTimeout: 'Option<u32>',1413 sponsorApproveTimeout: 'Option<u32>',1414 ownerCanTransfer: 'Option<bool>',1415 ownerCanDestroy: 'Option<bool>',1416 transfersEnabled: 'Option<bool>'1417 },1418 /**1419 * Lookup162: up_data_structs::SponsoringRateLimit1420 **/1421 UpDataStructsSponsoringRateLimit: {1422 _enum: {1423 SponsoringDisabled: 'Null',1424 Blocks: 'u32'1425 }1426 },1427 /**1428 * Lookup165: up_data_structs::CollectionPermissions1429 **/1430 UpDataStructsCollectionPermissions: {1431 access: 'Option<UpDataStructsAccessMode>',1432 mintMode: 'Option<bool>',1433 nesting: 'Option<UpDataStructsNestingPermissions>'1434 },1435 /**1436 * Lookup167: up_data_structs::NestingPermissions1437 **/1438 UpDataStructsNestingPermissions: {1439 tokenOwner: 'bool',1440 collectionAdmin: 'bool',1441 restricted: 'Option<UpDataStructsOwnerRestrictedSet>'1442 },1443 /**1444 * Lookup169: up_data_structs::OwnerRestrictedSet1445 **/1446 UpDataStructsOwnerRestrictedSet: 'BTreeSet<u32>',1447 /**1448 * Lookup175: up_data_structs::PropertyKeyPermission1449 **/1450 UpDataStructsPropertyKeyPermission: {1451 key: 'Bytes',1452 permission: 'UpDataStructsPropertyPermission'1453 },1454 /**1455 * Lookup177: up_data_structs::PropertyPermission1456 **/1457 UpDataStructsPropertyPermission: {1458 mutable: 'bool',1459 collectionAdmin: 'bool',1460 tokenOwner: 'bool'1461 },1462 /**1463 * Lookup180: up_data_structs::Property1464 **/1465 UpDataStructsProperty: {1466 key: 'Bytes',1467 value: 'Bytes'1468 },1469 /**1470 * Lookup183: pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>1471 **/1472 PalletEvmAccountBasicCrossAccountIdRepr: {1473 _enum: {1474 Substrate: 'AccountId32',1475 Ethereum: 'H160'1476 }1477 },1478 /**1479 * Lookup185: up_data_structs::CreateItemData1480 **/1481 UpDataStructsCreateItemData: {1482 _enum: {1483 NFT: 'UpDataStructsCreateNftData',1484 Fungible: 'UpDataStructsCreateFungibleData',1485 ReFungible: 'UpDataStructsCreateReFungibleData'1486 }1487 },1488 /**1489 * Lookup186: up_data_structs::CreateNftData1490 **/1491 UpDataStructsCreateNftData: {1492 properties: 'Vec<UpDataStructsProperty>'1493 },1494 /**1495 * Lookup187: up_data_structs::CreateFungibleData1496 **/1497 UpDataStructsCreateFungibleData: {1498 value: 'u128'1499 },1500 /**1501 * Lookup188: up_data_structs::CreateReFungibleData1502 **/1503 UpDataStructsCreateReFungibleData: {1504 constData: 'Bytes',1505 pieces: 'u128',1506 properties: 'Vec<UpDataStructsProperty>'1507 },1508 /**1509 * Lookup193: up_data_structs::CreateItemExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>1510 **/1511 UpDataStructsCreateItemExData: {1512 _enum: {1513 NFT: 'Vec<UpDataStructsCreateNftExData>',1514 Fungible: 'BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>',1515 RefungibleMultipleItems: 'Vec<UpDataStructsCreateRefungibleExData>',1516 RefungibleMultipleOwners: 'UpDataStructsCreateRefungibleExData'1517 }1518 },1519 /**1520 * Lookup195: up_data_structs::CreateNftExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>1521 **/1522 UpDataStructsCreateNftExData: {1523 properties: 'Vec<UpDataStructsProperty>',1524 owner: 'PalletEvmAccountBasicCrossAccountIdRepr'1525 },1526 /**1527 * Lookup202: up_data_structs::CreateRefungibleExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>1528 **/1529 UpDataStructsCreateRefungibleExData: {1530 constData: 'Bytes',1531 users: 'BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>',1532 properties: 'Vec<UpDataStructsProperty>'1533 },1534 /**1535 * Lookup204: pallet_unique_scheduler::pallet::Call<T>1536 **/1537 PalletUniqueSchedulerCall: {1538 _enum: {1539 schedule_named: {1540 id: '[u8;16]',1541 when: 'u32',1542 maybePeriodic: 'Option<(u32,u32)>',1543 priority: 'u8',1544 call: 'FrameSupportScheduleMaybeHashed',1545 },1546 cancel_named: {1547 id: '[u8;16]',1548 },1549 schedule_named_after: {1550 id: '[u8;16]',1551 after: 'u32',1552 maybePeriodic: 'Option<(u32,u32)>',1553 priority: 'u8',1554 call: 'FrameSupportScheduleMaybeHashed'1555 }1556 }1557 },1558 /**1559 * Lookup206: frame_support::traits::schedule::MaybeHashed<opal_runtime::Call, primitive_types::H256>1560 **/1561 FrameSupportScheduleMaybeHashed: {1562 _enum: {1563 Value: 'Call',1564 Hash: 'H256'1565 }1566 },1567 /**1568 * Lookup207: pallet_template_transaction_payment::Call<T>1569 **/1570 PalletTemplateTransactionPaymentCall: 'Null',1571 /**1572 * Lookup208: pallet_structure::pallet::Call<T>1573 **/1574 PalletStructureCall: 'Null',1575 /**1576 * Lookup209: pallet_rmrk_core::pallet::Call<T>1577 **/1578 PalletRmrkCoreCall: {1579 _enum: {1580 create_collection: {1581 metadata: 'Bytes',1582 max: 'Option<u32>',1583 symbol: 'Bytes',1584 },1585 destroy_collection: {1586 collectionId: 'u32',1587 },1588 change_collection_issuer: {1589 collectionId: 'u32',1590 newIssuer: 'MultiAddress',1591 },1592 lock_collection: {1593 collectionId: 'u32',1594 },1595 mint_nft: {1596 owner: 'Option<AccountId32>',1597 collectionId: 'u32',1598 recipient: 'Option<AccountId32>',1599 royaltyAmount: 'Option<Permill>',1600 metadata: 'Bytes',1601 transferable: 'bool',1602 resources: 'Option<Vec<RmrkTraitsResourceResourceTypes>>',1603 },1604 burn_nft: {1605 collectionId: 'u32',1606 nftId: 'u32',1607 maxBurns: 'u32',1608 },1609 send: {1610 rmrkCollectionId: 'u32',1611 rmrkNftId: 'u32',1612 newOwner: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',1613 },1614 accept_nft: {1615 rmrkCollectionId: 'u32',1616 rmrkNftId: 'u32',1617 newOwner: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',1618 },1619 reject_nft: {1620 rmrkCollectionId: 'u32',1621 rmrkNftId: 'u32',1622 },1623 accept_resource: {1624 rmrkCollectionId: 'u32',1625 rmrkNftId: 'u32',1626 resourceId: 'u32',1627 },1628 accept_resource_removal: {1629 rmrkCollectionId: 'u32',1630 rmrkNftId: 'u32',1631 resourceId: 'u32',1632 },1633 set_property: {1634 rmrkCollectionId: 'Compact<u32>',1635 maybeNftId: 'Option<u32>',1636 key: 'Bytes',1637 value: 'Bytes',1638 },1639 set_priority: {1640 rmrkCollectionId: 'u32',1641 rmrkNftId: 'u32',1642 priorities: 'Vec<u32>',1643 },1644 add_basic_resource: {1645 rmrkCollectionId: 'u32',1646 nftId: 'u32',1647 resource: 'RmrkTraitsResourceBasicResource',1648 },1649 add_composable_resource: {1650 rmrkCollectionId: 'u32',1651 nftId: 'u32',1652 resource: 'RmrkTraitsResourceComposableResource',1653 },1654 add_slot_resource: {1655 rmrkCollectionId: 'u32',1656 nftId: 'u32',1657 resource: 'RmrkTraitsResourceSlotResource',1658 },1659 remove_resource: {1660 rmrkCollectionId: 'u32',1661 nftId: 'u32',1662 resourceId: 'u32'1663 }1664 }1665 },1666 /**1667 * Lookup215: rmrk_traits::resource::ResourceTypes<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>1668 **/1669 RmrkTraitsResourceResourceTypes: {1670 _enum: {1671 Basic: 'RmrkTraitsResourceBasicResource',1672 Composable: 'RmrkTraitsResourceComposableResource',1673 Slot: 'RmrkTraitsResourceSlotResource'1674 }1675 },1676 /**1677 * Lookup217: rmrk_traits::resource::BasicResource<frame_support::storage::bounded_vec::BoundedVec<T, S>>1678 **/1679 RmrkTraitsResourceBasicResource: {1680 src: 'Option<Bytes>',1681 metadata: 'Option<Bytes>',1682 license: 'Option<Bytes>',1683 thumb: 'Option<Bytes>'1684 },1685 /**1686 * Lookup219: rmrk_traits::resource::ComposableResource<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>1687 **/1688 RmrkTraitsResourceComposableResource: {1689 parts: 'Vec<u32>',1690 base: 'u32',1691 src: 'Option<Bytes>',1692 metadata: 'Option<Bytes>',1693 license: 'Option<Bytes>',1694 thumb: 'Option<Bytes>'1695 },1696 /**1697 * Lookup220: rmrk_traits::resource::SlotResource<frame_support::storage::bounded_vec::BoundedVec<T, S>>1698 **/1699 RmrkTraitsResourceSlotResource: {1700 base: 'u32',1701 src: 'Option<Bytes>',1702 metadata: 'Option<Bytes>',1703 slot: 'u32',1704 license: 'Option<Bytes>',1705 thumb: 'Option<Bytes>'1706 },1707 /**1708 * Lookup222: rmrk_traits::nft::AccountIdOrCollectionNftTuple<sp_core::crypto::AccountId32>1709 **/1710 RmrkTraitsNftAccountIdOrCollectionNftTuple: {1711 _enum: {1712 AccountId: 'AccountId32',1713 CollectionAndNftTuple: '(u32,u32)'1714 }1715 },1716 /**1717 * Lookup226: pallet_rmrk_equip::pallet::Call<T>1718 **/1719 PalletRmrkEquipCall: {1720 _enum: {1721 create_base: {1722 baseType: 'Bytes',1723 symbol: 'Bytes',1724 parts: 'Vec<RmrkTraitsPartPartType>',1725 },1726 theme_add: {1727 baseId: 'u32',1728 theme: 'RmrkTraitsTheme',1729 },1730 equippable: {1731 baseId: 'u32',1732 slotId: 'u32',1733 equippables: 'RmrkTraitsPartEquippableList'1734 }1735 }1736 },1737 /**1738 * Lookup229: rmrk_traits::part::PartType<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>1739 **/1740 RmrkTraitsPartPartType: {1741 _enum: {1742 FixedPart: 'RmrkTraitsPartFixedPart',1743 SlotPart: 'RmrkTraitsPartSlotPart'1744 }1745 },1746 /**1747 * Lookup231: rmrk_traits::part::FixedPart<frame_support::storage::bounded_vec::BoundedVec<T, S>>1748 **/1749 RmrkTraitsPartFixedPart: {1750 id: 'u32',1751 z: 'u32',1752 src: 'Bytes'1753 },1754 /**1755 * Lookup232: rmrk_traits::part::SlotPart<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>1756 **/1757 RmrkTraitsPartSlotPart: {1758 id: 'u32',1759 equippable: 'RmrkTraitsPartEquippableList',1760 src: 'Bytes',1761 z: 'u32'1762 },1763 /**1764 * Lookup233: rmrk_traits::part::EquippableList<frame_support::storage::bounded_vec::BoundedVec<T, S>>1765 **/1766 RmrkTraitsPartEquippableList: {1767 _enum: {1768 All: 'Null',1769 Empty: 'Null',1770 Custom: 'Vec<u32>'1771 }1772 },1773 /**1774 * Lookup235: rmrk_traits::theme::Theme<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<rmrk_traits::theme::ThemeProperty<frame_support::storage::bounded_vec::BoundedVec<T, S>>, S>>1775 **/1776 RmrkTraitsTheme: {1777 name: 'Bytes',1778 properties: 'Vec<RmrkTraitsThemeThemeProperty>',1779 inherit: 'bool'1780 },1781 /**1782 * Lookup237: rmrk_traits::theme::ThemeProperty<frame_support::storage::bounded_vec::BoundedVec<T, S>>1783 **/1784 RmrkTraitsThemeThemeProperty: {1785 key: 'Bytes',1786 value: 'Bytes'1787 },1788 /**1789 * Lookup239: pallet_evm::pallet::Call<T>1790 **/1791 PalletEvmCall: {1792 _enum: {1793 withdraw: {1794 address: 'H160',1795 value: 'u128',1796 },1797 call: {1798 source: 'H160',1799 target: 'H160',1800 input: 'Bytes',1801 value: 'U256',1802 gasLimit: 'u64',1803 maxFeePerGas: 'U256',1804 maxPriorityFeePerGas: 'Option<U256>',1805 nonce: 'Option<U256>',1806 accessList: 'Vec<(H160,Vec<H256>)>',1807 },1808 create: {1809 source: 'H160',1810 init: 'Bytes',1811 value: 'U256',1812 gasLimit: 'u64',1813 maxFeePerGas: 'U256',1814 maxPriorityFeePerGas: 'Option<U256>',1815 nonce: 'Option<U256>',1816 accessList: 'Vec<(H160,Vec<H256>)>',1817 },1818 create2: {1819 source: 'H160',1820 init: 'Bytes',1821 salt: 'H256',1822 value: 'U256',1823 gasLimit: 'u64',1824 maxFeePerGas: 'U256',1825 maxPriorityFeePerGas: 'Option<U256>',1826 nonce: 'Option<U256>',1827 accessList: 'Vec<(H160,Vec<H256>)>'1828 }1829 }1830 },1831 /**1832 * Lookup245: pallet_ethereum::pallet::Call<T>1833 **/1834 PalletEthereumCall: {1835 _enum: {1836 transact: {1837 transaction: 'EthereumTransactionTransactionV2'1838 }1839 }1840 },1841 /**1842 * Lookup246: ethereum::transaction::TransactionV21843 **/1844 EthereumTransactionTransactionV2: {1845 _enum: {1846 Legacy: 'EthereumTransactionLegacyTransaction',1847 EIP2930: 'EthereumTransactionEip2930Transaction',1848 EIP1559: 'EthereumTransactionEip1559Transaction'1849 }1850 },1851 /**1852 * Lookup247: ethereum::transaction::LegacyTransaction1853 **/1854 EthereumTransactionLegacyTransaction: {1855 nonce: 'U256',1856 gasPrice: 'U256',1857 gasLimit: 'U256',1858 action: 'EthereumTransactionTransactionAction',1859 value: 'U256',1860 input: 'Bytes',1861 signature: 'EthereumTransactionTransactionSignature'1862 },1863 /**1864 * Lookup248: ethereum::transaction::TransactionAction1865 **/1866 EthereumTransactionTransactionAction: {1867 _enum: {1868 Call: 'H160',1869 Create: 'Null'1870 }1871 },1872 /**1873 * Lookup249: ethereum::transaction::TransactionSignature1874 **/1875 EthereumTransactionTransactionSignature: {1876 v: 'u64',1877 r: 'H256',1878 s: 'H256'1879 },1880 /**1881 * Lookup251: ethereum::transaction::EIP2930Transaction1882 **/1883 EthereumTransactionEip2930Transaction: {1884 chainId: 'u64',1885 nonce: 'U256',1886 gasPrice: 'U256',1887 gasLimit: 'U256',1888 action: 'EthereumTransactionTransactionAction',1889 value: 'U256',1890 input: 'Bytes',1891 accessList: 'Vec<EthereumTransactionAccessListItem>',1892 oddYParity: 'bool',1893 r: 'H256',1894 s: 'H256'1895 },1896 /**1897 * Lookup253: ethereum::transaction::AccessListItem1898 **/1899 EthereumTransactionAccessListItem: {1900 address: 'H160',1901 storageKeys: 'Vec<H256>'1902 },1903 /**1904 * Lookup254: ethereum::transaction::EIP1559Transaction1905 **/1906 EthereumTransactionEip1559Transaction: {1907 chainId: 'u64',1908 nonce: 'U256',1909 maxPriorityFeePerGas: 'U256',1910 maxFeePerGas: 'U256',1911 gasLimit: 'U256',1912 action: 'EthereumTransactionTransactionAction',1913 value: 'U256',1914 input: 'Bytes',1915 accessList: 'Vec<EthereumTransactionAccessListItem>',1916 oddYParity: 'bool',1917 r: 'H256',1918 s: 'H256'1919 },1920 /**1921 * Lookup255: pallet_evm_migration::pallet::Call<T>1922 **/1923 PalletEvmMigrationCall: {1924 _enum: {1925 begin: {1926 address: 'H160',1927 },1928 set_data: {1929 address: 'H160',1930 data: 'Vec<(H256,H256)>',1931 },1932 finish: {1933 address: 'H160',1934 code: 'Bytes'1935 }1936 }1937 },1938 /**1939 * Lookup258: pallet_sudo::pallet::Event<T>1940 **/1941 PalletSudoEvent: {1942 _enum: {1943 Sudid: {1944 sudoResult: 'Result<Null, SpRuntimeDispatchError>',1945 },1946 KeyChanged: {1947 oldSudoer: 'Option<AccountId32>',1948 },1949 SudoAsDone: {1950 sudoResult: 'Result<Null, SpRuntimeDispatchError>'1951 }1952 }1953 },1954 /**1955 * Lookup260: sp_runtime::DispatchError1956 **/1957 SpRuntimeDispatchError: {1958 _enum: {1959 Other: 'Null',1960 CannotLookup: 'Null',1961 BadOrigin: 'Null',1962 Module: 'SpRuntimeModuleError',1963 ConsumerRemaining: 'Null',1964 NoProviders: 'Null',1965 TooManyConsumers: 'Null',1966 Token: 'SpRuntimeTokenError',1967 Arithmetic: 'SpRuntimeArithmeticError',1968 Transactional: 'SpRuntimeTransactionalError'1969 }1970 },1971 /**1972 * Lookup261: sp_runtime::ModuleError1973 **/1974 SpRuntimeModuleError: {1975 index: 'u8',1976 error: '[u8;4]'1977 },1978 /**1979 * Lookup262: sp_runtime::TokenError1980 **/1981 SpRuntimeTokenError: {1982 _enum: ['NoFunds', 'WouldDie', 'BelowMinimum', 'CannotCreate', 'UnknownAsset', 'Frozen', 'Unsupported']1983 },1984 /**1985 * Lookup263: sp_runtime::ArithmeticError1986 **/1987 SpRuntimeArithmeticError: {1988 _enum: ['Underflow', 'Overflow', 'DivisionByZero']1989 },1990 /**1991 * Lookup264: sp_runtime::TransactionalError1992 **/1993 SpRuntimeTransactionalError: {1994 _enum: ['LimitReached', 'NoLayer']1995 },1996 /**1997 * Lookup265: pallet_sudo::pallet::Error<T>1998 **/1999 PalletSudoError: {2000 _enum: ['RequireSudo']2001 },2002 /**2003 * Lookup266: frame_system::AccountInfo<Index, pallet_balances::AccountData<Balance>>2004 **/2005 FrameSystemAccountInfo: {2006 nonce: 'u32',2007 consumers: 'u32',2008 providers: 'u32',2009 sufficients: 'u32',2010 data: 'PalletBalancesAccountData'2011 },2012 /**2013 * Lookup267: frame_support::weights::PerDispatchClass<T>2014 **/2015 FrameSupportWeightsPerDispatchClassU64: {2016 normal: 'u64',2017 operational: 'u64',2018 mandatory: 'u64'2019 },2020 /**2021 * Lookup268: sp_runtime::generic::digest::Digest2022 **/2023 SpRuntimeDigest: {2024 logs: 'Vec<SpRuntimeDigestDigestItem>'2025 },2026 /**2027 * Lookup270: sp_runtime::generic::digest::DigestItem2028 **/2029 SpRuntimeDigestDigestItem: {2030 _enum: {2031 Other: 'Bytes',2032 __Unused1: 'Null',2033 __Unused2: 'Null',2034 __Unused3: 'Null',2035 Consensus: '([u8;4],Bytes)',2036 Seal: '([u8;4],Bytes)',2037 PreRuntime: '([u8;4],Bytes)',2038 __Unused7: 'Null',2039 RuntimeEnvironmentUpdated: 'Null'2040 }2041 },2042 /**2043 * Lookup272: frame_system::EventRecord<opal_runtime::Event, primitive_types::H256>2044 **/2045 FrameSystemEventRecord: {2046 phase: 'FrameSystemPhase',2047 event: 'Event',2048 topics: 'Vec<H256>'2049 },2050 /**2051 * Lookup274: frame_system::pallet::Event<T>2052 **/2053 FrameSystemEvent: {2054 _enum: {2055 ExtrinsicSuccess: {2056 dispatchInfo: 'FrameSupportWeightsDispatchInfo',2057 },2058 ExtrinsicFailed: {2059 dispatchError: 'SpRuntimeDispatchError',2060 dispatchInfo: 'FrameSupportWeightsDispatchInfo',2061 },2062 CodeUpdated: 'Null',2063 NewAccount: {2064 account: 'AccountId32',2065 },2066 KilledAccount: {2067 account: 'AccountId32',2068 },2069 Remarked: {2070 _alias: {2071 hash_: 'hash',2072 },2073 sender: 'AccountId32',2074 hash_: 'H256'2075 }2076 }2077 },2078 /**2079 * Lookup275: frame_support::weights::DispatchInfo2080 **/2081 FrameSupportWeightsDispatchInfo: {2082 weight: 'u64',2083 class: 'FrameSupportWeightsDispatchClass',2084 paysFee: 'FrameSupportWeightsPays'2085 },2086 /**2087 * Lookup276: frame_support::weights::DispatchClass2088 **/2089 FrameSupportWeightsDispatchClass: {2090 _enum: ['Normal', 'Operational', 'Mandatory']2091 },2092 /**2093 * Lookup277: frame_support::weights::Pays2094 **/2095 FrameSupportWeightsPays: {2096 _enum: ['Yes', 'No']2097 },2098 /**2099 * Lookup278: orml_vesting::module::Event<T>2100 **/2101 OrmlVestingModuleEvent: {2102 _enum: {2103 VestingScheduleAdded: {2104 from: 'AccountId32',2105 to: 'AccountId32',2106 vestingSchedule: 'OrmlVestingVestingSchedule',2107 },2108 Claimed: {2109 who: 'AccountId32',2110 amount: 'u128',2111 },2112 VestingSchedulesUpdated: {2113 who: 'AccountId32'2114 }2115 }2116 },2117 /**2118 * Lookup279: cumulus_pallet_xcmp_queue::pallet::Event<T>2119 **/2120 CumulusPalletXcmpQueueEvent: {2121 _enum: {2122 Success: 'Option<H256>',2123 Fail: '(Option<H256>,XcmV2TraitsError)',2124 BadVersion: 'Option<H256>',2125 BadFormat: 'Option<H256>',2126 UpwardMessageSent: 'Option<H256>',2127 XcmpMessageSent: 'Option<H256>',2128 OverweightEnqueued: '(u32,u32,u64,u64)',2129 OverweightServiced: '(u64,u64)'2130 }2131 },2132 /**2133 * Lookup280: pallet_xcm::pallet::Event<T>2134 **/2135 PalletXcmEvent: {2136 _enum: {2137 Attempted: 'XcmV2TraitsOutcome',2138 Sent: '(XcmV1MultiLocation,XcmV1MultiLocation,XcmV2Xcm)',2139 UnexpectedResponse: '(XcmV1MultiLocation,u64)',2140 ResponseReady: '(u64,XcmV2Response)',2141 Notified: '(u64,u8,u8)',2142 NotifyOverweight: '(u64,u8,u8,u64,u64)',2143 NotifyDispatchError: '(u64,u8,u8)',2144 NotifyDecodeFailed: '(u64,u8,u8)',2145 InvalidResponder: '(XcmV1MultiLocation,u64,Option<XcmV1MultiLocation>)',2146 InvalidResponderVersion: '(XcmV1MultiLocation,u64)',2147 ResponseTaken: 'u64',2148 AssetsTrapped: '(H256,XcmV1MultiLocation,XcmVersionedMultiAssets)',2149 VersionChangeNotified: '(XcmV1MultiLocation,u32)',2150 SupportedVersionChanged: '(XcmV1MultiLocation,u32)',2151 NotifyTargetSendFail: '(XcmV1MultiLocation,u64,XcmV2TraitsError)',2152 NotifyTargetMigrationFail: '(XcmVersionedMultiLocation,u64)'2153 }2154 },2155 /**2156 * Lookup281: xcm::v2::traits::Outcome2157 **/2158 XcmV2TraitsOutcome: {2159 _enum: {2160 Complete: 'u64',2161 Incomplete: '(u64,XcmV2TraitsError)',2162 Error: 'XcmV2TraitsError'2163 }2164 },2165 /**2166 * Lookup283: cumulus_pallet_xcm::pallet::Event<T>2167 **/2168 CumulusPalletXcmEvent: {2169 _enum: {2170 InvalidFormat: '[u8;8]',2171 UnsupportedVersion: '[u8;8]',2172 ExecutedDownward: '([u8;8],XcmV2TraitsOutcome)'2173 }2174 },2175 /**2176 * Lookup284: cumulus_pallet_dmp_queue::pallet::Event<T>2177 **/2178 CumulusPalletDmpQueueEvent: {2179 _enum: {2180 InvalidFormat: {2181 messageId: '[u8;32]',2182 },2183 UnsupportedVersion: {2184 messageId: '[u8;32]',2185 },2186 ExecutedDownward: {2187 messageId: '[u8;32]',2188 outcome: 'XcmV2TraitsOutcome',2189 },2190 WeightExhausted: {2191 messageId: '[u8;32]',2192 remainingWeight: 'u64',2193 requiredWeight: 'u64',2194 },2195 OverweightEnqueued: {2196 messageId: '[u8;32]',2197 overweightIndex: 'u64',2198 requiredWeight: 'u64',2199 },2200 OverweightServiced: {2201 overweightIndex: 'u64',2202 weightUsed: 'u64'2203 }2204 }2205 },2206 /**2207 * Lookup285: pallet_unique::RawEvent<sp_core::crypto::AccountId32, pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2208 **/2209 PalletUniqueRawEvent: {2210 _enum: {2211 CollectionSponsorRemoved: 'u32',2212 CollectionAdminAdded: '(u32,PalletEvmAccountBasicCrossAccountIdRepr)',2213 CollectionOwnedChanged: '(u32,AccountId32)',2214 CollectionSponsorSet: '(u32,AccountId32)',2215 SponsorshipConfirmed: '(u32,AccountId32)',2216 CollectionAdminRemoved: '(u32,PalletEvmAccountBasicCrossAccountIdRepr)',2217 AllowListAddressRemoved: '(u32,PalletEvmAccountBasicCrossAccountIdRepr)',2218 AllowListAddressAdded: '(u32,PalletEvmAccountBasicCrossAccountIdRepr)',2219 CollectionLimitSet: 'u32',2220 CollectionPermissionSet: 'u32'2221 }2222 },2223 /**2224 * Lookup286: pallet_unique_scheduler::pallet::Event<T>2225 **/2226 PalletUniqueSchedulerEvent: {2227 _enum: {2228 Scheduled: {2229 when: 'u32',2230 index: 'u32',2231 },2232 Canceled: {2233 when: 'u32',2234 index: 'u32',2235 },2236 Dispatched: {2237 task: '(u32,u32)',2238 id: 'Option<[u8;16]>',2239 result: 'Result<Null, SpRuntimeDispatchError>',2240 },2241 CallLookupFailed: {2242 task: '(u32,u32)',2243 id: 'Option<[u8;16]>',2244 error: 'FrameSupportScheduleLookupError'2245 }2246 }2247 },2248 /**2249 * Lookup288: frame_support::traits::schedule::LookupError2250 **/2251 FrameSupportScheduleLookupError: {2252 _enum: ['Unknown', 'BadFormat']2253 },2254 /**2255 * Lookup289: pallet_common::pallet::Event<T>2256 **/2257 PalletCommonEvent: {2258 _enum: {2259 CollectionCreated: '(u32,u8,AccountId32)',2260 CollectionDestroyed: 'u32',2261 ItemCreated: '(u32,u32,PalletEvmAccountBasicCrossAccountIdRepr,u128)',2262 ItemDestroyed: '(u32,u32,PalletEvmAccountBasicCrossAccountIdRepr,u128)',2263 Transfer: '(u32,u32,PalletEvmAccountBasicCrossAccountIdRepr,PalletEvmAccountBasicCrossAccountIdRepr,u128)',2264 Approved: '(u32,u32,PalletEvmAccountBasicCrossAccountIdRepr,PalletEvmAccountBasicCrossAccountIdRepr,u128)',2265 CollectionPropertySet: '(u32,Bytes)',2266 CollectionPropertyDeleted: '(u32,Bytes)',2267 TokenPropertySet: '(u32,u32,Bytes)',2268 TokenPropertyDeleted: '(u32,u32,Bytes)',2269 PropertyPermissionSet: '(u32,Bytes)'2270 }2271 },2272 /**2273 * Lookup290: pallet_structure::pallet::Event<T>2274 **/2275 PalletStructureEvent: {2276 _enum: {2277 Executed: 'Result<Null, SpRuntimeDispatchError>'2278 }2279 },2280 /**2281 * Lookup291: pallet_rmrk_core::pallet::Event<T>2282 **/2283 PalletRmrkCoreEvent: {2284 _enum: {2285 CollectionCreated: {2286 issuer: 'AccountId32',2287 collectionId: 'u32',2288 },2289 CollectionDestroyed: {2290 issuer: 'AccountId32',2291 collectionId: 'u32',2292 },2293 IssuerChanged: {2294 oldIssuer: 'AccountId32',2295 newIssuer: 'AccountId32',2296 collectionId: 'u32',2297 },2298 CollectionLocked: {2299 issuer: 'AccountId32',2300 collectionId: 'u32',2301 },2302 NftMinted: {2303 owner: 'AccountId32',2304 collectionId: 'u32',2305 nftId: 'u32',2306 },2307 NFTBurned: {2308 owner: 'AccountId32',2309 nftId: 'u32',2310 },2311 NFTSent: {2312 sender: 'AccountId32',2313 recipient: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',2314 collectionId: 'u32',2315 nftId: 'u32',2316 approvalRequired: 'bool',2317 },2318 NFTAccepted: {2319 sender: 'AccountId32',2320 recipient: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',2321 collectionId: 'u32',2322 nftId: 'u32',2323 },2324 NFTRejected: {2325 sender: 'AccountId32',2326 collectionId: 'u32',2327 nftId: 'u32',2328 },2329 PropertySet: {2330 collectionId: 'u32',2331 maybeNftId: 'Option<u32>',2332 key: 'Bytes',2333 value: 'Bytes',2334 },2335 ResourceAdded: {2336 nftId: 'u32',2337 resourceId: 'u32',2338 },2339 ResourceRemoval: {2340 nftId: 'u32',2341 resourceId: 'u32',2342 },2343 ResourceAccepted: {2344 nftId: 'u32',2345 resourceId: 'u32',2346 },2347 ResourceRemovalAccepted: {2348 nftId: 'u32',2349 resourceId: 'u32',2350 },2351 PrioritySet: {2352 collectionId: 'u32',2353 nftId: 'u32'2354 }2355 }2356 },2357 /**2358 * Lookup292: pallet_rmrk_equip::pallet::Event<T>2359 **/2360 PalletRmrkEquipEvent: {2361 _enum: {2362 BaseCreated: {2363 issuer: 'AccountId32',2364 baseId: 'u32',2365 },2366 EquippablesUpdated: {2367 baseId: 'u32',2368 slotId: 'u32'2369 }2370 }2371 },2372 /**2373 * Lookup293: pallet_evm::pallet::Event<T>2374 **/2375 PalletEvmEvent: {2376 _enum: {2377 Log: 'EthereumLog',2378 Created: 'H160',2379 CreatedFailed: 'H160',2380 Executed: 'H160',2381 ExecutedFailed: 'H160',2382 BalanceDeposit: '(AccountId32,H160,U256)',2383 BalanceWithdraw: '(AccountId32,H160,U256)'2384 }2385 },2386 /**2387 * Lookup294: ethereum::log::Log2388 **/2389 EthereumLog: {2390 address: 'H160',2391 topics: 'Vec<H256>',2392 data: 'Bytes'2393 },2394 /**2395 * Lookup295: pallet_ethereum::pallet::Event2396 **/2397 PalletEthereumEvent: {2398 _enum: {2399 Executed: '(H160,H160,H256,EvmCoreErrorExitReason)'2400 }2401 },2402 /**2403 * Lookup296: evm_core::error::ExitReason2404 **/2405 EvmCoreErrorExitReason: {2406 _enum: {2407 Succeed: 'EvmCoreErrorExitSucceed',2408 Error: 'EvmCoreErrorExitError',2409 Revert: 'EvmCoreErrorExitRevert',2410 Fatal: 'EvmCoreErrorExitFatal'2411 }2412 },2413 /**2414 * Lookup297: evm_core::error::ExitSucceed2415 **/2416 EvmCoreErrorExitSucceed: {2417 _enum: ['Stopped', 'Returned', 'Suicided']2418 },2419 /**2420 * Lookup298: evm_core::error::ExitError2421 **/2422 EvmCoreErrorExitError: {2423 _enum: {2424 StackUnderflow: 'Null',2425 StackOverflow: 'Null',2426 InvalidJump: 'Null',2427 InvalidRange: 'Null',2428 DesignatedInvalid: 'Null',2429 CallTooDeep: 'Null',2430 CreateCollision: 'Null',2431 CreateContractLimit: 'Null',2432 OutOfOffset: 'Null',2433 OutOfGas: 'Null',2434 OutOfFund: 'Null',2435 PCUnderflow: 'Null',2436 CreateEmpty: 'Null',2437 Other: 'Text',2438 InvalidCode: 'Null'2439 }2440 },2441 /**2442 * Lookup301: evm_core::error::ExitRevert2443 **/2444 EvmCoreErrorExitRevert: {2445 _enum: ['Reverted']2446 },2447 /**2448 * Lookup302: evm_core::error::ExitFatal2449 **/2450 EvmCoreErrorExitFatal: {2451 _enum: {2452 NotSupported: 'Null',2453 UnhandledInterrupt: 'Null',2454 CallErrorAsFatal: 'EvmCoreErrorExitError',2455 Other: 'Text'2456 }2457 },2458 /**2459 * Lookup303: frame_system::Phase2460 **/2461 FrameSystemPhase: {2462 _enum: {2463 ApplyExtrinsic: 'u32',2464 Finalization: 'Null',2465 Initialization: 'Null'2466 }2467 },2468 /**2469 * Lookup305: frame_system::LastRuntimeUpgradeInfo2470 **/2471 FrameSystemLastRuntimeUpgradeInfo: {2472 specVersion: 'Compact<u32>',2473 specName: 'Text'2474 },2475 /**2476 * Lookup306: frame_system::limits::BlockWeights2477 **/2478 FrameSystemLimitsBlockWeights: {2479 baseBlock: 'u64',2480 maxBlock: 'u64',2481 perClass: 'FrameSupportWeightsPerDispatchClassWeightsPerClass'2482 },2483 /**2484 * Lookup307: frame_support::weights::PerDispatchClass<frame_system::limits::WeightsPerClass>2485 **/2486 FrameSupportWeightsPerDispatchClassWeightsPerClass: {2487 normal: 'FrameSystemLimitsWeightsPerClass',2488 operational: 'FrameSystemLimitsWeightsPerClass',2489 mandatory: 'FrameSystemLimitsWeightsPerClass'2490 },2491 /**2492 * Lookup308: frame_system::limits::WeightsPerClass2493 **/2494 FrameSystemLimitsWeightsPerClass: {2495 baseExtrinsic: 'u64',2496 maxExtrinsic: 'Option<u64>',2497 maxTotal: 'Option<u64>',2498 reserved: 'Option<u64>'2499 },2500 /**2501 * Lookup310: frame_system::limits::BlockLength2502 **/2503 FrameSystemLimitsBlockLength: {2504 max: 'FrameSupportWeightsPerDispatchClassU32'2505 },2506 /**2507 * Lookup311: frame_support::weights::PerDispatchClass<T>2508 **/2509 FrameSupportWeightsPerDispatchClassU32: {2510 normal: 'u32',2511 operational: 'u32',2512 mandatory: 'u32'2513 },2514 /**2515 * Lookup312: frame_support::weights::RuntimeDbWeight2516 **/2517 FrameSupportWeightsRuntimeDbWeight: {2518 read: 'u64',2519 write: 'u64'2520 },2521 /**2522 * Lookup313: sp_version::RuntimeVersion2523 **/2524 SpVersionRuntimeVersion: {2525 specName: 'Text',2526 implName: 'Text',2527 authoringVersion: 'u32',2528 specVersion: 'u32',2529 implVersion: 'u32',2530 apis: 'Vec<([u8;8],u32)>',2531 transactionVersion: 'u32',2532 stateVersion: 'u8'2533 },2534 /**2535 * Lookup317: frame_system::pallet::Error<T>2536 **/2537 FrameSystemError: {2538 _enum: ['InvalidSpecName', 'SpecVersionNeedsToIncrease', 'FailedToExtractRuntimeVersion', 'NonDefaultComposite', 'NonZeroRefCount', 'CallFiltered']2539 },2540 /**2541 * Lookup319: orml_vesting::module::Error<T>2542 **/2543 OrmlVestingModuleError: {2544 _enum: ['ZeroVestingPeriod', 'ZeroVestingPeriodCount', 'InsufficientBalanceToLock', 'TooManyVestingSchedules', 'AmountLow', 'MaxVestingSchedulesExceeded']2545 },2546 /**2547 * Lookup321: cumulus_pallet_xcmp_queue::InboundChannelDetails2548 **/2549 CumulusPalletXcmpQueueInboundChannelDetails: {2550 sender: 'u32',2551 state: 'CumulusPalletXcmpQueueInboundState',2552 messageMetadata: 'Vec<(u32,PolkadotParachainPrimitivesXcmpMessageFormat)>'2553 },2554 /**2555 * Lookup322: cumulus_pallet_xcmp_queue::InboundState2556 **/2557 CumulusPalletXcmpQueueInboundState: {2558 _enum: ['Ok', 'Suspended']2559 },2560 /**2561 * Lookup325: polkadot_parachain::primitives::XcmpMessageFormat2562 **/2563 PolkadotParachainPrimitivesXcmpMessageFormat: {2564 _enum: ['ConcatenatedVersionedXcm', 'ConcatenatedEncodedBlob', 'Signals']2565 },2566 /**2567 * Lookup328: cumulus_pallet_xcmp_queue::OutboundChannelDetails2568 **/2569 CumulusPalletXcmpQueueOutboundChannelDetails: {2570 recipient: 'u32',2571 state: 'CumulusPalletXcmpQueueOutboundState',2572 signalsExist: 'bool',2573 firstIndex: 'u16',2574 lastIndex: 'u16'2575 },2576 /**2577 * Lookup329: cumulus_pallet_xcmp_queue::OutboundState2578 **/2579 CumulusPalletXcmpQueueOutboundState: {2580 _enum: ['Ok', 'Suspended']2581 },2582 /**2583 * Lookup331: cumulus_pallet_xcmp_queue::QueueConfigData2584 **/2585 CumulusPalletXcmpQueueQueueConfigData: {2586 suspendThreshold: 'u32',2587 dropThreshold: 'u32',2588 resumeThreshold: 'u32',2589 thresholdWeight: 'u64',2590 weightRestrictDecay: 'u64',2591 xcmpMaxIndividualWeight: 'u64'2592 },2593 /**2594 * Lookup333: cumulus_pallet_xcmp_queue::pallet::Error<T>2595 **/2596 CumulusPalletXcmpQueueError: {2597 _enum: ['FailedToSend', 'BadXcmOrigin', 'BadXcm', 'BadOverweightIndex', 'WeightOverLimit']2598 },2599 /**2600 * Lookup334: pallet_xcm::pallet::Error<T>2601 **/2602 PalletXcmError: {2603 _enum: ['Unreachable', 'SendFailure', 'Filtered', 'UnweighableMessage', 'DestinationNotInvertible', 'Empty', 'CannotReanchor', 'TooManyAssets', 'InvalidOrigin', 'BadVersion', 'BadLocation', 'NoSubscription', 'AlreadySubscribed']2604 },2605 /**2606 * Lookup335: cumulus_pallet_xcm::pallet::Error<T>2607 **/2608 CumulusPalletXcmError: 'Null',2609 /**2610 * Lookup336: cumulus_pallet_dmp_queue::ConfigData2611 **/2612 CumulusPalletDmpQueueConfigData: {2613 maxIndividual: 'u64'2614 },2615 /**2616 * Lookup337: cumulus_pallet_dmp_queue::PageIndexData2617 **/2618 CumulusPalletDmpQueuePageIndexData: {2619 beginUsed: 'u32',2620 endUsed: 'u32',2621 overweightCount: 'u64'2622 },2623 /**2624 * Lookup340: cumulus_pallet_dmp_queue::pallet::Error<T>2625 **/2626 CumulusPalletDmpQueueError: {2627 _enum: ['Unknown', 'OverLimit']2628 },2629 /**2630 * Lookup344: pallet_unique::Error<T>2631 **/2632 PalletUniqueError: {2633 _enum: ['CollectionDecimalPointLimitExceeded', 'ConfirmUnsetSponsorFail', 'EmptyArgument', 'RepartitionCalledOnNonRefungibleCollection']2634 },2635 /**2636 * Lookup347: pallet_unique_scheduler::ScheduledV3<frame_support::traits::schedule::MaybeHashed<opal_runtime::Call, primitive_types::H256>, BlockNumber, opal_runtime::OriginCaller, sp_core::crypto::AccountId32>2637 **/2638 PalletUniqueSchedulerScheduledV3: {2639 maybeId: 'Option<[u8;16]>',2640 priority: 'u8',2641 call: 'FrameSupportScheduleMaybeHashed',2642 maybePeriodic: 'Option<(u32,u32)>',2643 origin: 'OpalRuntimeOriginCaller'2644 },2645 /**2646 * Lookup348: opal_runtime::OriginCaller2647 **/2648 OpalRuntimeOriginCaller: {2649 _enum: {2650 __Unused0: 'Null',2651 __Unused1: 'Null',2652 __Unused2: 'Null',2653 __Unused3: 'Null',2654 Void: 'SpCoreVoid',2655 __Unused5: 'Null',2656 __Unused6: 'Null',2657 __Unused7: 'Null',2658 __Unused8: 'Null',2659 __Unused9: 'Null',2660 __Unused10: 'Null',2661 __Unused11: 'Null',2662 __Unused12: 'Null',2663 __Unused13: 'Null',2664 __Unused14: 'Null',2665 __Unused15: 'Null',2666 __Unused16: 'Null',2667 __Unused17: 'Null',2668 __Unused18: 'Null',2669 __Unused19: 'Null',2670 __Unused20: 'Null',2671 __Unused21: 'Null',2672 __Unused22: 'Null',2673 __Unused23: 'Null',2674 __Unused24: 'Null',2675 __Unused25: 'Null',2676 __Unused26: 'Null',2677 __Unused27: 'Null',2678 __Unused28: 'Null',2679 __Unused29: 'Null',2680 __Unused30: 'Null',2681 __Unused31: 'Null',2682 __Unused32: 'Null',2683 __Unused33: 'Null',2684 __Unused34: 'Null',2685 __Unused35: 'Null',2686 system: 'FrameSupportDispatchRawOrigin',2687 __Unused37: 'Null',2688 __Unused38: 'Null',2689 __Unused39: 'Null',2690 __Unused40: 'Null',2691 __Unused41: 'Null',2692 __Unused42: 'Null',2693 __Unused43: 'Null',2694 __Unused44: 'Null',2695 __Unused45: 'Null',2696 __Unused46: 'Null',2697 __Unused47: 'Null',2698 __Unused48: 'Null',2699 __Unused49: 'Null',2700 __Unused50: 'Null',2701 PolkadotXcm: 'PalletXcmOrigin',2702 CumulusXcm: 'CumulusPalletXcmOrigin',2703 __Unused53: 'Null',2704 __Unused54: 'Null',2705 __Unused55: 'Null',2706 __Unused56: 'Null',2707 __Unused57: 'Null',2708 __Unused58: 'Null',2709 __Unused59: 'Null',2710 __Unused60: 'Null',2711 __Unused61: 'Null',2712 __Unused62: 'Null',2713 __Unused63: 'Null',2714 __Unused64: 'Null',2715 __Unused65: 'Null',2716 __Unused66: 'Null',2717 __Unused67: 'Null',2718 __Unused68: 'Null',2719 __Unused69: 'Null',2720 __Unused70: 'Null',2721 __Unused71: 'Null',2722 __Unused72: 'Null',2723 __Unused73: 'Null',2724 __Unused74: 'Null',2725 __Unused75: 'Null',2726 __Unused76: 'Null',2727 __Unused77: 'Null',2728 __Unused78: 'Null',2729 __Unused79: 'Null',2730 __Unused80: 'Null',2731 __Unused81: 'Null',2732 __Unused82: 'Null',2733 __Unused83: 'Null',2734 __Unused84: 'Null',2735 __Unused85: 'Null',2736 __Unused86: 'Null',2737 __Unused87: 'Null',2738 __Unused88: 'Null',2739 __Unused89: 'Null',2740 __Unused90: 'Null',2741 __Unused91: 'Null',2742 __Unused92: 'Null',2743 __Unused93: 'Null',2744 __Unused94: 'Null',2745 __Unused95: 'Null',2746 __Unused96: 'Null',2747 __Unused97: 'Null',2748 __Unused98: 'Null',2749 __Unused99: 'Null',2750 __Unused100: 'Null',2751 Ethereum: 'PalletEthereumRawOrigin'2752 }2753 },2754 /**2755 * Lookup349: frame_support::dispatch::RawOrigin<sp_core::crypto::AccountId32>2756 **/2757 FrameSupportDispatchRawOrigin: {2758 _enum: {2759 Root: 'Null',2760 Signed: 'AccountId32',2761 None: 'Null'2762 }2763 },2764 /**2765 * Lookup350: pallet_xcm::pallet::Origin2766 **/2767 PalletXcmOrigin: {2768 _enum: {2769 Xcm: 'XcmV1MultiLocation',2770 Response: 'XcmV1MultiLocation'2771 }2772 },2773 /**2774 * Lookup351: cumulus_pallet_xcm::pallet::Origin2775 **/2776 CumulusPalletXcmOrigin: {2777 _enum: {2778 Relay: 'Null',2779 SiblingParachain: 'u32'2780 }2781 },2782 /**2783 * Lookup352: pallet_ethereum::RawOrigin2784 **/2785 PalletEthereumRawOrigin: {2786 _enum: {2787 EthereumTransaction: 'H160'2788 }2789 },2790 /**2791 * Lookup353: sp_core::Void2792 **/2793 SpCoreVoid: 'Null',2794 /**2795 * Lookup354: pallet_unique_scheduler::pallet::Error<T>2796 **/2797 PalletUniqueSchedulerError: {2798 _enum: ['FailedToSchedule', 'NotFound', 'TargetBlockNumberInPast', 'RescheduleNoChange']2799 },2800 /**2801 * Lookup355: up_data_structs::Collection<sp_core::crypto::AccountId32>2802 **/2803 UpDataStructsCollection: {2804 owner: 'AccountId32',2805 mode: 'UpDataStructsCollectionMode',2806 name: 'Vec<u16>',2807 description: 'Vec<u16>',2808 tokenPrefix: 'Bytes',2809 sponsorship: 'UpDataStructsSponsorshipState',2810 limits: 'UpDataStructsCollectionLimits',2811 permissions: 'UpDataStructsCollectionPermissions',2812 externalCollection: 'bool'2813 },2814 /**2815 * Lookup356: up_data_structs::SponsorshipState<sp_core::crypto::AccountId32>2816 **/2817 UpDataStructsSponsorshipState: {2818 _enum: {2819 Disabled: 'Null',2820 Unconfirmed: 'AccountId32',2821 Confirmed: 'AccountId32'2822 }2823 },2824 /**2825 * Lookup357: up_data_structs::Properties2826 **/2827 UpDataStructsProperties: {2828 map: 'UpDataStructsPropertiesMapBoundedVec',2829 consumedSpace: 'u32',2830 spaceLimit: 'u32'2831 },2832 /**2833 * Lookup358: up_data_structs::PropertiesMap<frame_support::storage::bounded_vec::BoundedVec<T, S>>2834 **/2835 UpDataStructsPropertiesMapBoundedVec: 'BTreeMap<Bytes, Bytes>',2836 /**2837 * Lookup363: up_data_structs::PropertiesMap<up_data_structs::PropertyPermission>2838 **/2839 UpDataStructsPropertiesMapPropertyPermission: 'BTreeMap<Bytes, UpDataStructsPropertyPermission>',2840 /**2841 * Lookup370: up_data_structs::CollectionStats2842 **/2843 UpDataStructsCollectionStats: {2844 created: 'u32',2845 destroyed: 'u32',2846 alive: 'u32'2847 },2848 /**2849 * Lookup371: up_data_structs::TokenChild2850 **/2851 UpDataStructsTokenChild: {2852 token: 'u32',2853 collection: 'u32'2854 },2855 /**2856 * Lookup372: PhantomType::up_data_structs<T>2857 **/2858 PhantomTypeUpDataStructs: '[(UpDataStructsTokenData,UpDataStructsRpcCollection,RmrkTraitsCollectionCollectionInfo,RmrkTraitsNftNftInfo,RmrkTraitsResourceResourceInfo,RmrkTraitsPropertyPropertyInfo,RmrkTraitsBaseBaseInfo,RmrkTraitsPartPartType,RmrkTraitsTheme,RmrkTraitsNftNftChild);0]',2859 /**2860 * Lookup374: up_data_structs::TokenData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2861 **/2862 UpDataStructsTokenData: {2863 properties: 'Vec<UpDataStructsProperty>',2864 owner: 'Option<PalletEvmAccountBasicCrossAccountIdRepr>',2865 pieces: 'u128'2866 },2867 /**2868 * Lookup376: up_data_structs::RpcCollection<sp_core::crypto::AccountId32>2869 **/2870 UpDataStructsRpcCollection: {2871 owner: 'AccountId32',2872 mode: 'UpDataStructsCollectionMode',2873 name: 'Vec<u16>',2874 description: 'Vec<u16>',2875 tokenPrefix: 'Bytes',2876 sponsorship: 'UpDataStructsSponsorshipState',2877 limits: 'UpDataStructsCollectionLimits',2878 permissions: 'UpDataStructsCollectionPermissions',2879 tokenPropertyPermissions: 'Vec<UpDataStructsPropertyKeyPermission>',2880 properties: 'Vec<UpDataStructsProperty>',2881 readOnly: 'bool'2882 },2883 /**2884 * Lookup377: rmrk_traits::collection::CollectionInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>, sp_core::crypto::AccountId32>2885 **/2886 RmrkTraitsCollectionCollectionInfo: {2887 issuer: 'AccountId32',2888 metadata: 'Bytes',2889 max: 'Option<u32>',2890 symbol: 'Bytes',2891 nftsCount: 'u32'2892 },2893 /**2894 * Lookup378: rmrk_traits::nft::NftInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill, frame_support::storage::bounded_vec::BoundedVec<T, S>>2895 **/2896 RmrkTraitsNftNftInfo: {2897 owner: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',2898 royalty: 'Option<RmrkTraitsNftRoyaltyInfo>',2899 metadata: 'Bytes',2900 equipped: 'bool',2901 pending: 'bool'2902 },2903 /**2904 * Lookup380: rmrk_traits::nft::RoyaltyInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill>2905 **/2906 RmrkTraitsNftRoyaltyInfo: {2907 recipient: 'AccountId32',2908 amount: 'Permill'2909 },2910 /**2911 * Lookup381: rmrk_traits::resource::ResourceInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>2912 **/2913 RmrkTraitsResourceResourceInfo: {2914 id: 'u32',2915 resource: 'RmrkTraitsResourceResourceTypes',2916 pending: 'bool',2917 pendingRemoval: 'bool'2918 },2919 /**2920 * Lookup382: rmrk_traits::property::PropertyInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>2921 **/2922 RmrkTraitsPropertyPropertyInfo: {2923 key: 'Bytes',2924 value: 'Bytes'2925 },2926 /**2927 * Lookup383: rmrk_traits::base::BaseInfo<sp_core::crypto::AccountId32, frame_support::storage::bounded_vec::BoundedVec<T, S>>2928 **/2929 RmrkTraitsBaseBaseInfo: {2930 issuer: 'AccountId32',2931 baseType: 'Bytes',2932 symbol: 'Bytes'2933 },2934 /**2935 * Lookup384: rmrk_traits::nft::NftChild2936 **/2937 RmrkTraitsNftNftChild: {2938 collectionId: 'u32',2939 nftId: 'u32'2940 },2941 /**2942 * Lookup386: pallet_common::pallet::Error<T>2943 **/2944 PalletCommonError: {2945 _enum: ['CollectionNotFound', 'MustBeTokenOwner', 'NoPermission', 'CantDestroyNotEmptyCollection', 'PublicMintingNotAllowed', 'AddressNotInAllowlist', 'CollectionNameLimitExceeded', 'CollectionDescriptionLimitExceeded', 'CollectionTokenPrefixLimitExceeded', 'TotalCollectionsLimitExceeded', 'CollectionAdminCountExceeded', 'CollectionLimitBoundsExceeded', 'OwnerPermissionsCantBeReverted', 'TransferNotAllowed', 'AccountTokenLimitExceeded', 'CollectionTokenLimitExceeded', 'MetadataFlagFrozen', 'TokenNotFound', 'TokenValueTooLow', 'ApprovedValueTooLow', 'CantApproveMoreThanOwned', 'AddressIsZero', 'UnsupportedOperation', 'NotSufficientFounds', 'UserIsNotAllowedToNest', 'SourceCollectionIsNotAllowedToNest', 'CollectionFieldSizeExceeded', 'NoSpaceForProperty', 'PropertyLimitReached', 'PropertyKeyIsTooLong', 'InvalidCharacterInPropertyKey', 'EmptyPropertyKey', 'CollectionIsExternal', 'CollectionIsInternal']2946 },2947 /**2948 * Lookup388: pallet_fungible::pallet::Error<T>2949 **/2950 PalletFungibleError: {2951 _enum: ['NotFungibleDataUsedToMintFungibleCollectionToken', 'FungibleItemsHaveNoId', 'FungibleItemsDontHaveData', 'FungibleDisallowsNesting', 'SettingPropertiesNotAllowed']2952 },2953 /**2954 * Lookup389: pallet_refungible::ItemData2955 **/2956 PalletRefungibleItemData: {2957 constData: 'Bytes'2958 },2959 /**2960 * Lookup393: pallet_refungible::pallet::Error<T>2961 **/2962 PalletRefungibleError: {2963 _enum: ['NotRefungibleDataUsedToMintFungibleCollectionToken', 'WrongRefungiblePieces', 'RepartitionWhileNotOwningAllPieces', 'RefungibleDisallowsNesting', 'SettingPropertiesNotAllowed']2964 },2965 /**2966 * Lookup394: pallet_nonfungible::ItemData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2967 **/2968 PalletNonfungibleItemData: {2969 owner: 'PalletEvmAccountBasicCrossAccountIdRepr'2970 },2971 /**2972 * Lookup396: up_data_structs::PropertyScope2973 **/2974 UpDataStructsPropertyScope: {2975 _enum: ['None', 'Rmrk']2976 },2977 /**2978 * Lookup398: pallet_nonfungible::pallet::Error<T>2979 **/2980 PalletNonfungibleError: {2981 _enum: ['NotNonfungibleDataUsedToMintFungibleCollectionToken', 'NonfungibleItemsHaveNoAmount', 'CantBurnNftWithChildren']2982 },2983 /**2984 * Lookup399: pallet_structure::pallet::Error<T>2985 **/2986 PalletStructureError: {2987 _enum: ['OuroborosDetected', 'DepthLimit', 'BreadthLimit', 'TokenNotFound']2988 },2989 /**2990 * Lookup400: pallet_rmrk_core::pallet::Error<T>2991 **/2992 PalletRmrkCoreError: {2993 _enum: ['CorruptedCollectionType', 'NftTypeEncodeError', 'RmrkPropertyKeyIsTooLong', 'RmrkPropertyValueIsTooLong', 'RmrkPropertyIsNotFound', 'UnableToDecodeRmrkData', 'CollectionNotEmpty', 'NoAvailableCollectionId', 'NoAvailableNftId', 'CollectionUnknown', 'NoPermission', 'NonTransferable', 'CollectionFullOrLocked', 'ResourceDoesntExist', 'CannotSendToDescendentOrSelf', 'CannotAcceptNonOwnedNft', 'CannotRejectNonOwnedNft', 'CannotRejectNonPendingNft', 'ResourceNotPending', 'NoAvailableResourceId']2994 },2995 /**2996 * Lookup402: pallet_rmrk_equip::pallet::Error<T>2997 **/2998 PalletRmrkEquipError: {2999 _enum: ['PermissionError', 'NoAvailableBaseId', 'NoAvailablePartId', 'BaseDoesntExist', 'NeedsDefaultThemeFirst', 'PartDoesntExist', 'NoEquippableOnFixedPart']3000 },3001 /**3002 * Lookup405: pallet_evm::pallet::Error<T>3003 **/3004 PalletEvmError: {3005 _enum: ['BalanceLow', 'FeeOverflow', 'PaymentOverflow', 'WithdrawFailed', 'GasPriceTooLow', 'InvalidNonce']3006 },3007 /**3008 * Lookup408: fp_rpc::TransactionStatus3009 **/3010 FpRpcTransactionStatus: {3011 transactionHash: 'H256',3012 transactionIndex: 'u32',3013 from: 'H160',3014 to: 'Option<H160>',3015 contractAddress: 'Option<H160>',3016 logs: 'Vec<EthereumLog>',3017 logsBloom: 'EthbloomBloom'3018 },3019 /**3020 * Lookup410: ethbloom::Bloom3021 **/3022 EthbloomBloom: '[u8;256]',3023 /**3024 * Lookup412: ethereum::receipt::ReceiptV33025 **/3026 EthereumReceiptReceiptV3: {3027 _enum: {3028 Legacy: 'EthereumReceiptEip658ReceiptData',3029 EIP2930: 'EthereumReceiptEip658ReceiptData',3030 EIP1559: 'EthereumReceiptEip658ReceiptData'3031 }3032 },3033 /**3034 * Lookup413: ethereum::receipt::EIP658ReceiptData3035 **/3036 EthereumReceiptEip658ReceiptData: {3037 statusCode: 'u8',3038 usedGas: 'U256',3039 logsBloom: 'EthbloomBloom',3040 logs: 'Vec<EthereumLog>'3041 },3042 /**3043 * Lookup414: ethereum::block::Block<ethereum::transaction::TransactionV2>3044 **/3045 EthereumBlock: {3046 header: 'EthereumHeader',3047 transactions: 'Vec<EthereumTransactionTransactionV2>',3048 ommers: 'Vec<EthereumHeader>'3049 },3050 /**3051 * Lookup415: ethereum::header::Header3052 **/3053 EthereumHeader: {3054 parentHash: 'H256',3055 ommersHash: 'H256',3056 beneficiary: 'H160',3057 stateRoot: 'H256',3058 transactionsRoot: 'H256',3059 receiptsRoot: 'H256',3060 logsBloom: 'EthbloomBloom',3061 difficulty: 'U256',3062 number: 'U256',3063 gasLimit: 'U256',3064 gasUsed: 'U256',3065 timestamp: 'u64',3066 extraData: 'Bytes',3067 mixHash: 'H256',3068 nonce: 'EthereumTypesHashH64'3069 },3070 /**3071 * Lookup416: ethereum_types::hash::H643072 **/3073 EthereumTypesHashH64: '[u8;8]',3074 /**3075 * Lookup421: pallet_ethereum::pallet::Error<T>3076 **/3077 PalletEthereumError: {3078 _enum: ['InvalidSignature', 'PreLogExists']3079 },3080 /**3081 * Lookup422: pallet_evm_coder_substrate::pallet::Error<T>3082 **/3083 PalletEvmCoderSubstrateError: {3084 _enum: ['OutOfGas', 'OutOfFund']3085 },3086 /**3087 * Lookup423: pallet_evm_contract_helpers::SponsoringModeT3088 **/3089 PalletEvmContractHelpersSponsoringModeT: {3090 _enum: ['Disabled', 'Allowlisted', 'Generous']3091 },3092 /**3093 * Lookup425: pallet_evm_contract_helpers::pallet::Error<T>3094 **/3095 PalletEvmContractHelpersError: {3096 _enum: ['NoPermission']3097 },3098 /**3099 * Lookup426: pallet_evm_migration::pallet::Error<T>3100 **/3101 PalletEvmMigrationError: {3102 _enum: ['AccountNotEmpty', 'AccountIsNotMigrating']3103 },3104 /**3105 * Lookup428: sp_runtime::MultiSignature3106 **/3107 SpRuntimeMultiSignature: {3108 _enum: {3109 Ed25519: 'SpCoreEd25519Signature',3110 Sr25519: 'SpCoreSr25519Signature',3111 Ecdsa: 'SpCoreEcdsaSignature'3112 }3113 },3114 /**3115 * Lookup429: sp_core::ed25519::Signature3116 **/3117 SpCoreEd25519Signature: '[u8;64]',3118 /**3119 * Lookup431: sp_core::sr25519::Signature3120 **/3121 SpCoreSr25519Signature: '[u8;64]',3122 /**3123 * Lookup432: sp_core::ecdsa::Signature3124 **/3125 SpCoreEcdsaSignature: '[u8;65]',3126 /**3127 * Lookup435: frame_system::extensions::check_spec_version::CheckSpecVersion<T>3128 **/3129 FrameSystemExtensionsCheckSpecVersion: 'Null',3130 /**3131 * Lookup436: frame_system::extensions::check_genesis::CheckGenesis<T>3132 **/3133 FrameSystemExtensionsCheckGenesis: 'Null',3134 /**3135 * Lookup439: frame_system::extensions::check_nonce::CheckNonce<T>3136 **/3137 FrameSystemExtensionsCheckNonce: 'Compact<u32>',3138 /**3139 * Lookup440: frame_system::extensions::check_weight::CheckWeight<T>3140 **/3141 FrameSystemExtensionsCheckWeight: 'Null',3142 /**3143 * Lookup441: pallet_template_transaction_payment::ChargeTransactionPayment<opal_runtime::Runtime>3144 **/3145 PalletTemplateTransactionPaymentChargeTransactionPayment: 'Compact<u128>',3146 /**3147 * Lookup442: opal_runtime::Runtime3148 **/3149 OpalRuntimeRuntime: 'Null',3150 /**3151 * Lookup443: pallet_ethereum::FakeTransactionFinalizer<opal_runtime::Runtime>3152 **/3153 PalletEthereumFakeTransactionFinalizer: 'Null'3154};1// Auto-generated via `yarn polkadot-types-from-defs`, do not edit2/* eslint-disable */34/* eslint-disable sort-keys */56export default {7 /**8 * Lookup2: polkadot_primitives::v2::PersistedValidationData<primitive_types::H256, N>9 **/10 PolkadotPrimitivesV2PersistedValidationData: {11 parentHead: 'Bytes',12 relayParentNumber: 'u32',13 relayParentStorageRoot: 'H256',14 maxPovSize: 'u32'15 },16 /**17 * Lookup9: polkadot_primitives::v2::UpgradeRestriction18 **/19 PolkadotPrimitivesV2UpgradeRestriction: {20 _enum: ['Present']21 },22 /**23 * Lookup10: sp_trie::storage_proof::StorageProof24 **/25 SpTrieStorageProof: {26 trieNodes: 'BTreeSet<Bytes>'27 },28 /**29 * Lookup13: cumulus_pallet_parachain_system::relay_state_snapshot::MessagingStateSnapshot30 **/31 CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: {32 dmqMqcHead: 'H256',33 relayDispatchQueueSize: '(u32,u32)',34 ingressChannels: 'Vec<(u32,PolkadotPrimitivesV2AbridgedHrmpChannel)>',35 egressChannels: 'Vec<(u32,PolkadotPrimitivesV2AbridgedHrmpChannel)>'36 },37 /**38 * Lookup18: polkadot_primitives::v2::AbridgedHrmpChannel39 **/40 PolkadotPrimitivesV2AbridgedHrmpChannel: {41 maxCapacity: 'u32',42 maxTotalSize: 'u32',43 maxMessageSize: 'u32',44 msgCount: 'u32',45 totalSize: 'u32',46 mqcHead: 'Option<H256>'47 },48 /**49 * Lookup20: polkadot_primitives::v2::AbridgedHostConfiguration50 **/51 PolkadotPrimitivesV2AbridgedHostConfiguration: {52 maxCodeSize: 'u32',53 maxHeadDataSize: 'u32',54 maxUpwardQueueCount: 'u32',55 maxUpwardQueueSize: 'u32',56 maxUpwardMessageSize: 'u32',57 maxUpwardMessageNumPerCandidate: 'u32',58 hrmpMaxMessageNumPerCandidate: 'u32',59 validationUpgradeCooldown: 'u32',60 validationUpgradeDelay: 'u32'61 },62 /**63 * Lookup26: polkadot_core_primitives::OutboundHrmpMessage<polkadot_parachain::primitives::Id>64 **/65 PolkadotCorePrimitivesOutboundHrmpMessage: {66 recipient: 'u32',67 data: 'Bytes'68 },69 /**70 * Lookup28: cumulus_pallet_parachain_system::pallet::Call<T>71 **/72 CumulusPalletParachainSystemCall: {73 _enum: {74 set_validation_data: {75 data: 'CumulusPrimitivesParachainInherentParachainInherentData',76 },77 sudo_send_upward_message: {78 message: 'Bytes',79 },80 authorize_upgrade: {81 codeHash: 'H256',82 },83 enact_authorized_upgrade: {84 code: 'Bytes'85 }86 }87 },88 /**89 * Lookup29: cumulus_primitives_parachain_inherent::ParachainInherentData90 **/91 CumulusPrimitivesParachainInherentParachainInherentData: {92 validationData: 'PolkadotPrimitivesV2PersistedValidationData',93 relayChainState: 'SpTrieStorageProof',94 downwardMessages: 'Vec<PolkadotCorePrimitivesInboundDownwardMessage>',95 horizontalMessages: 'BTreeMap<u32, Vec<PolkadotCorePrimitivesInboundHrmpMessage>>'96 },97 /**98 * Lookup31: polkadot_core_primitives::InboundDownwardMessage<BlockNumber>99 **/100 PolkadotCorePrimitivesInboundDownwardMessage: {101 sentAt: 'u32',102 msg: 'Bytes'103 },104 /**105 * Lookup34: polkadot_core_primitives::InboundHrmpMessage<BlockNumber>106 **/107 PolkadotCorePrimitivesInboundHrmpMessage: {108 sentAt: 'u32',109 data: 'Bytes'110 },111 /**112 * Lookup37: cumulus_pallet_parachain_system::pallet::Event<T>113 **/114 CumulusPalletParachainSystemEvent: {115 _enum: {116 ValidationFunctionStored: 'Null',117 ValidationFunctionApplied: {118 relayChainBlockNum: 'u32',119 },120 ValidationFunctionDiscarded: 'Null',121 UpgradeAuthorized: {122 codeHash: 'H256',123 },124 DownwardMessagesReceived: {125 count: 'u32',126 },127 DownwardMessagesProcessed: {128 weightUsed: 'u64',129 dmqHead: 'H256'130 }131 }132 },133 /**134 * Lookup38: cumulus_pallet_parachain_system::pallet::Error<T>135 **/136 CumulusPalletParachainSystemError: {137 _enum: ['OverlappingUpgrades', 'ProhibitedByPolkadot', 'TooBig', 'ValidationDataNotAvailable', 'HostConfigurationNotAvailable', 'NotScheduled', 'NothingAuthorized', 'Unauthorized']138 },139 /**140 * Lookup41: pallet_balances::AccountData<Balance>141 **/142 PalletBalancesAccountData: {143 free: 'u128',144 reserved: 'u128',145 miscFrozen: 'u128',146 feeFrozen: 'u128'147 },148 /**149 * Lookup43: pallet_balances::BalanceLock<Balance>150 **/151 PalletBalancesBalanceLock: {152 id: '[u8;8]',153 amount: 'u128',154 reasons: 'PalletBalancesReasons'155 },156 /**157 * Lookup45: pallet_balances::Reasons158 **/159 PalletBalancesReasons: {160 _enum: ['Fee', 'Misc', 'All']161 },162 /**163 * Lookup48: pallet_balances::ReserveData<ReserveIdentifier, Balance>164 **/165 PalletBalancesReserveData: {166 id: '[u8;16]',167 amount: 'u128'168 },169 /**170 * Lookup51: pallet_balances::Releases171 **/172 PalletBalancesReleases: {173 _enum: ['V1_0_0', 'V2_0_0']174 },175 /**176 * Lookup52: pallet_balances::pallet::Call<T, I>177 **/178 PalletBalancesCall: {179 _enum: {180 transfer: {181 dest: 'MultiAddress',182 value: 'Compact<u128>',183 },184 set_balance: {185 who: 'MultiAddress',186 newFree: 'Compact<u128>',187 newReserved: 'Compact<u128>',188 },189 force_transfer: {190 source: 'MultiAddress',191 dest: 'MultiAddress',192 value: 'Compact<u128>',193 },194 transfer_keep_alive: {195 dest: 'MultiAddress',196 value: 'Compact<u128>',197 },198 transfer_all: {199 dest: 'MultiAddress',200 keepAlive: 'bool',201 },202 force_unreserve: {203 who: 'MultiAddress',204 amount: 'u128'205 }206 }207 },208 /**209 * Lookup58: pallet_balances::pallet::Event<T, I>210 **/211 PalletBalancesEvent: {212 _enum: {213 Endowed: {214 account: 'AccountId32',215 freeBalance: 'u128',216 },217 DustLost: {218 account: 'AccountId32',219 amount: 'u128',220 },221 Transfer: {222 from: 'AccountId32',223 to: 'AccountId32',224 amount: 'u128',225 },226 BalanceSet: {227 who: 'AccountId32',228 free: 'u128',229 reserved: 'u128',230 },231 Reserved: {232 who: 'AccountId32',233 amount: 'u128',234 },235 Unreserved: {236 who: 'AccountId32',237 amount: 'u128',238 },239 ReserveRepatriated: {240 from: 'AccountId32',241 to: 'AccountId32',242 amount: 'u128',243 destinationStatus: 'FrameSupportTokensMiscBalanceStatus',244 },245 Deposit: {246 who: 'AccountId32',247 amount: 'u128',248 },249 Withdraw: {250 who: 'AccountId32',251 amount: 'u128',252 },253 Slashed: {254 who: 'AccountId32',255 amount: 'u128'256 }257 }258 },259 /**260 * Lookup59: frame_support::traits::tokens::misc::BalanceStatus261 **/262 FrameSupportTokensMiscBalanceStatus: {263 _enum: ['Free', 'Reserved']264 },265 /**266 * Lookup60: pallet_balances::pallet::Error<T, I>267 **/268 PalletBalancesError: {269 _enum: ['VestingBalance', 'LiquidityRestrictions', 'InsufficientBalance', 'ExistentialDeposit', 'KeepAlive', 'ExistingVestingSchedule', 'DeadAccount', 'TooManyReserves']270 },271 /**272 * Lookup63: pallet_timestamp::pallet::Call<T>273 **/274 PalletTimestampCall: {275 _enum: {276 set: {277 now: 'Compact<u64>'278 }279 }280 },281 /**282 * Lookup66: pallet_transaction_payment::Releases283 **/284 PalletTransactionPaymentReleases: {285 _enum: ['V1Ancient', 'V2']286 },287 /**288 * Lookup67: pallet_treasury::Proposal<sp_core::crypto::AccountId32, Balance>289 **/290 PalletTreasuryProposal: {291 proposer: 'AccountId32',292 value: 'u128',293 beneficiary: 'AccountId32',294 bond: 'u128'295 },296 /**297 * Lookup70: pallet_treasury::pallet::Call<T, I>298 **/299 PalletTreasuryCall: {300 _enum: {301 propose_spend: {302 value: 'Compact<u128>',303 beneficiary: 'MultiAddress',304 },305 reject_proposal: {306 proposalId: 'Compact<u32>',307 },308 approve_proposal: {309 proposalId: 'Compact<u32>',310 },311 remove_approval: {312 proposalId: 'Compact<u32>'313 }314 }315 },316 /**317 * Lookup72: pallet_treasury::pallet::Event<T, I>318 **/319 PalletTreasuryEvent: {320 _enum: {321 Proposed: {322 proposalIndex: 'u32',323 },324 Spending: {325 budgetRemaining: 'u128',326 },327 Awarded: {328 proposalIndex: 'u32',329 award: 'u128',330 account: 'AccountId32',331 },332 Rejected: {333 proposalIndex: 'u32',334 slashed: 'u128',335 },336 Burnt: {337 burntFunds: 'u128',338 },339 Rollover: {340 rolloverBalance: 'u128',341 },342 Deposit: {343 value: 'u128'344 }345 }346 },347 /**348 * Lookup75: frame_support::PalletId349 **/350 FrameSupportPalletId: '[u8;8]',351 /**352 * Lookup76: pallet_treasury::pallet::Error<T, I>353 **/354 PalletTreasuryError: {355 _enum: ['InsufficientProposersBalance', 'InvalidIndex', 'TooManyApprovals', 'ProposalNotApproved']356 },357 /**358 * Lookup77: pallet_sudo::pallet::Call<T>359 **/360 PalletSudoCall: {361 _enum: {362 sudo: {363 call: 'Call',364 },365 sudo_unchecked_weight: {366 call: 'Call',367 weight: 'u64',368 },369 set_key: {370 _alias: {371 new_: 'new',372 },373 new_: 'MultiAddress',374 },375 sudo_as: {376 who: 'MultiAddress',377 call: 'Call'378 }379 }380 },381 /**382 * Lookup79: frame_system::pallet::Call<T>383 **/384 FrameSystemCall: {385 _enum: {386 fill_block: {387 ratio: 'Perbill',388 },389 remark: {390 remark: 'Bytes',391 },392 set_heap_pages: {393 pages: 'u64',394 },395 set_code: {396 code: 'Bytes',397 },398 set_code_without_checks: {399 code: 'Bytes',400 },401 set_storage: {402 items: 'Vec<(Bytes,Bytes)>',403 },404 kill_storage: {405 _alias: {406 keys_: 'keys',407 },408 keys_: 'Vec<Bytes>',409 },410 kill_prefix: {411 prefix: 'Bytes',412 subkeys: 'u32',413 },414 remark_with_event: {415 remark: 'Bytes'416 }417 }418 },419 /**420 * Lookup83: orml_vesting::module::Call<T>421 **/422 OrmlVestingModuleCall: {423 _enum: {424 claim: 'Null',425 vested_transfer: {426 dest: 'MultiAddress',427 schedule: 'OrmlVestingVestingSchedule',428 },429 update_vesting_schedules: {430 who: 'MultiAddress',431 vestingSchedules: 'Vec<OrmlVestingVestingSchedule>',432 },433 claim_for: {434 dest: 'MultiAddress'435 }436 }437 },438 /**439 * Lookup84: orml_vesting::VestingSchedule<BlockNumber, Balance>440 **/441 OrmlVestingVestingSchedule: {442 start: 'u32',443 period: 'u32',444 periodCount: 'u32',445 perPeriod: 'Compact<u128>'446 },447 /**448 * Lookup86: cumulus_pallet_xcmp_queue::pallet::Call<T>449 **/450 CumulusPalletXcmpQueueCall: {451 _enum: {452 service_overweight: {453 index: 'u64',454 weightLimit: 'u64',455 },456 suspend_xcm_execution: 'Null',457 resume_xcm_execution: 'Null',458 update_suspend_threshold: {459 _alias: {460 new_: 'new',461 },462 new_: 'u32',463 },464 update_drop_threshold: {465 _alias: {466 new_: 'new',467 },468 new_: 'u32',469 },470 update_resume_threshold: {471 _alias: {472 new_: 'new',473 },474 new_: 'u32',475 },476 update_threshold_weight: {477 _alias: {478 new_: 'new',479 },480 new_: 'u64',481 },482 update_weight_restrict_decay: {483 _alias: {484 new_: 'new',485 },486 new_: 'u64',487 },488 update_xcmp_max_individual_weight: {489 _alias: {490 new_: 'new',491 },492 new_: 'u64'493 }494 }495 },496 /**497 * Lookup87: pallet_xcm::pallet::Call<T>498 **/499 PalletXcmCall: {500 _enum: {501 send: {502 dest: 'XcmVersionedMultiLocation',503 message: 'XcmVersionedXcm',504 },505 teleport_assets: {506 dest: 'XcmVersionedMultiLocation',507 beneficiary: 'XcmVersionedMultiLocation',508 assets: 'XcmVersionedMultiAssets',509 feeAssetItem: 'u32',510 },511 reserve_transfer_assets: {512 dest: 'XcmVersionedMultiLocation',513 beneficiary: 'XcmVersionedMultiLocation',514 assets: 'XcmVersionedMultiAssets',515 feeAssetItem: 'u32',516 },517 execute: {518 message: 'XcmVersionedXcm',519 maxWeight: 'u64',520 },521 force_xcm_version: {522 location: 'XcmV1MultiLocation',523 xcmVersion: 'u32',524 },525 force_default_xcm_version: {526 maybeXcmVersion: 'Option<u32>',527 },528 force_subscribe_version_notify: {529 location: 'XcmVersionedMultiLocation',530 },531 force_unsubscribe_version_notify: {532 location: 'XcmVersionedMultiLocation',533 },534 limited_reserve_transfer_assets: {535 dest: 'XcmVersionedMultiLocation',536 beneficiary: 'XcmVersionedMultiLocation',537 assets: 'XcmVersionedMultiAssets',538 feeAssetItem: 'u32',539 weightLimit: 'XcmV2WeightLimit',540 },541 limited_teleport_assets: {542 dest: 'XcmVersionedMultiLocation',543 beneficiary: 'XcmVersionedMultiLocation',544 assets: 'XcmVersionedMultiAssets',545 feeAssetItem: 'u32',546 weightLimit: 'XcmV2WeightLimit'547 }548 }549 },550 /**551 * Lookup88: xcm::VersionedMultiLocation552 **/553 XcmVersionedMultiLocation: {554 _enum: {555 V0: 'XcmV0MultiLocation',556 V1: 'XcmV1MultiLocation'557 }558 },559 /**560 * Lookup89: xcm::v0::multi_location::MultiLocation561 **/562 XcmV0MultiLocation: {563 _enum: {564 Null: 'Null',565 X1: 'XcmV0Junction',566 X2: '(XcmV0Junction,XcmV0Junction)',567 X3: '(XcmV0Junction,XcmV0Junction,XcmV0Junction)',568 X4: '(XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction)',569 X5: '(XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction)',570 X6: '(XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction)',571 X7: '(XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction)',572 X8: '(XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction)'573 }574 },575 /**576 * Lookup90: xcm::v0::junction::Junction577 **/578 XcmV0Junction: {579 _enum: {580 Parent: 'Null',581 Parachain: 'Compact<u32>',582 AccountId32: {583 network: 'XcmV0JunctionNetworkId',584 id: '[u8;32]',585 },586 AccountIndex64: {587 network: 'XcmV0JunctionNetworkId',588 index: 'Compact<u64>',589 },590 AccountKey20: {591 network: 'XcmV0JunctionNetworkId',592 key: '[u8;20]',593 },594 PalletInstance: 'u8',595 GeneralIndex: 'Compact<u128>',596 GeneralKey: 'Bytes',597 OnlyChild: 'Null',598 Plurality: {599 id: 'XcmV0JunctionBodyId',600 part: 'XcmV0JunctionBodyPart'601 }602 }603 },604 /**605 * Lookup91: xcm::v0::junction::NetworkId606 **/607 XcmV0JunctionNetworkId: {608 _enum: {609 Any: 'Null',610 Named: 'Bytes',611 Polkadot: 'Null',612 Kusama: 'Null'613 }614 },615 /**616 * Lookup92: xcm::v0::junction::BodyId617 **/618 XcmV0JunctionBodyId: {619 _enum: {620 Unit: 'Null',621 Named: 'Bytes',622 Index: 'Compact<u32>',623 Executive: 'Null',624 Technical: 'Null',625 Legislative: 'Null',626 Judicial: 'Null'627 }628 },629 /**630 * Lookup93: xcm::v0::junction::BodyPart631 **/632 XcmV0JunctionBodyPart: {633 _enum: {634 Voice: 'Null',635 Members: {636 count: 'Compact<u32>',637 },638 Fraction: {639 nom: 'Compact<u32>',640 denom: 'Compact<u32>',641 },642 AtLeastProportion: {643 nom: 'Compact<u32>',644 denom: 'Compact<u32>',645 },646 MoreThanProportion: {647 nom: 'Compact<u32>',648 denom: 'Compact<u32>'649 }650 }651 },652 /**653 * Lookup94: xcm::v1::multilocation::MultiLocation654 **/655 XcmV1MultiLocation: {656 parents: 'u8',657 interior: 'XcmV1MultilocationJunctions'658 },659 /**660 * Lookup95: xcm::v1::multilocation::Junctions661 **/662 XcmV1MultilocationJunctions: {663 _enum: {664 Here: 'Null',665 X1: 'XcmV1Junction',666 X2: '(XcmV1Junction,XcmV1Junction)',667 X3: '(XcmV1Junction,XcmV1Junction,XcmV1Junction)',668 X4: '(XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction)',669 X5: '(XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction)',670 X6: '(XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction)',671 X7: '(XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction)',672 X8: '(XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction)'673 }674 },675 /**676 * Lookup96: xcm::v1::junction::Junction677 **/678 XcmV1Junction: {679 _enum: {680 Parachain: 'Compact<u32>',681 AccountId32: {682 network: 'XcmV0JunctionNetworkId',683 id: '[u8;32]',684 },685 AccountIndex64: {686 network: 'XcmV0JunctionNetworkId',687 index: 'Compact<u64>',688 },689 AccountKey20: {690 network: 'XcmV0JunctionNetworkId',691 key: '[u8;20]',692 },693 PalletInstance: 'u8',694 GeneralIndex: 'Compact<u128>',695 GeneralKey: 'Bytes',696 OnlyChild: 'Null',697 Plurality: {698 id: 'XcmV0JunctionBodyId',699 part: 'XcmV0JunctionBodyPart'700 }701 }702 },703 /**704 * Lookup97: xcm::VersionedXcm<Call>705 **/706 XcmVersionedXcm: {707 _enum: {708 V0: 'XcmV0Xcm',709 V1: 'XcmV1Xcm',710 V2: 'XcmV2Xcm'711 }712 },713 /**714 * Lookup98: xcm::v0::Xcm<Call>715 **/716 XcmV0Xcm: {717 _enum: {718 WithdrawAsset: {719 assets: 'Vec<XcmV0MultiAsset>',720 effects: 'Vec<XcmV0Order>',721 },722 ReserveAssetDeposit: {723 assets: 'Vec<XcmV0MultiAsset>',724 effects: 'Vec<XcmV0Order>',725 },726 TeleportAsset: {727 assets: 'Vec<XcmV0MultiAsset>',728 effects: 'Vec<XcmV0Order>',729 },730 QueryResponse: {731 queryId: 'Compact<u64>',732 response: 'XcmV0Response',733 },734 TransferAsset: {735 assets: 'Vec<XcmV0MultiAsset>',736 dest: 'XcmV0MultiLocation',737 },738 TransferReserveAsset: {739 assets: 'Vec<XcmV0MultiAsset>',740 dest: 'XcmV0MultiLocation',741 effects: 'Vec<XcmV0Order>',742 },743 Transact: {744 originType: 'XcmV0OriginKind',745 requireWeightAtMost: 'u64',746 call: 'XcmDoubleEncoded',747 },748 HrmpNewChannelOpenRequest: {749 sender: 'Compact<u32>',750 maxMessageSize: 'Compact<u32>',751 maxCapacity: 'Compact<u32>',752 },753 HrmpChannelAccepted: {754 recipient: 'Compact<u32>',755 },756 HrmpChannelClosing: {757 initiator: 'Compact<u32>',758 sender: 'Compact<u32>',759 recipient: 'Compact<u32>',760 },761 RelayedFrom: {762 who: 'XcmV0MultiLocation',763 message: 'XcmV0Xcm'764 }765 }766 },767 /**768 * Lookup100: xcm::v0::multi_asset::MultiAsset769 **/770 XcmV0MultiAsset: {771 _enum: {772 None: 'Null',773 All: 'Null',774 AllFungible: 'Null',775 AllNonFungible: 'Null',776 AllAbstractFungible: {777 id: 'Bytes',778 },779 AllAbstractNonFungible: {780 class: 'Bytes',781 },782 AllConcreteFungible: {783 id: 'XcmV0MultiLocation',784 },785 AllConcreteNonFungible: {786 class: 'XcmV0MultiLocation',787 },788 AbstractFungible: {789 id: 'Bytes',790 amount: 'Compact<u128>',791 },792 AbstractNonFungible: {793 class: 'Bytes',794 instance: 'XcmV1MultiassetAssetInstance',795 },796 ConcreteFungible: {797 id: 'XcmV0MultiLocation',798 amount: 'Compact<u128>',799 },800 ConcreteNonFungible: {801 class: 'XcmV0MultiLocation',802 instance: 'XcmV1MultiassetAssetInstance'803 }804 }805 },806 /**807 * Lookup101: xcm::v1::multiasset::AssetInstance808 **/809 XcmV1MultiassetAssetInstance: {810 _enum: {811 Undefined: 'Null',812 Index: 'Compact<u128>',813 Array4: '[u8;4]',814 Array8: '[u8;8]',815 Array16: '[u8;16]',816 Array32: '[u8;32]',817 Blob: 'Bytes'818 }819 },820 /**821 * Lookup104: xcm::v0::order::Order<Call>822 **/823 XcmV0Order: {824 _enum: {825 Null: 'Null',826 DepositAsset: {827 assets: 'Vec<XcmV0MultiAsset>',828 dest: 'XcmV0MultiLocation',829 },830 DepositReserveAsset: {831 assets: 'Vec<XcmV0MultiAsset>',832 dest: 'XcmV0MultiLocation',833 effects: 'Vec<XcmV0Order>',834 },835 ExchangeAsset: {836 give: 'Vec<XcmV0MultiAsset>',837 receive: 'Vec<XcmV0MultiAsset>',838 },839 InitiateReserveWithdraw: {840 assets: 'Vec<XcmV0MultiAsset>',841 reserve: 'XcmV0MultiLocation',842 effects: 'Vec<XcmV0Order>',843 },844 InitiateTeleport: {845 assets: 'Vec<XcmV0MultiAsset>',846 dest: 'XcmV0MultiLocation',847 effects: 'Vec<XcmV0Order>',848 },849 QueryHolding: {850 queryId: 'Compact<u64>',851 dest: 'XcmV0MultiLocation',852 assets: 'Vec<XcmV0MultiAsset>',853 },854 BuyExecution: {855 fees: 'XcmV0MultiAsset',856 weight: 'u64',857 debt: 'u64',858 haltOnError: 'bool',859 xcm: 'Vec<XcmV0Xcm>'860 }861 }862 },863 /**864 * Lookup106: xcm::v0::Response865 **/866 XcmV0Response: {867 _enum: {868 Assets: 'Vec<XcmV0MultiAsset>'869 }870 },871 /**872 * Lookup107: xcm::v0::OriginKind873 **/874 XcmV0OriginKind: {875 _enum: ['Native', 'SovereignAccount', 'Superuser', 'Xcm']876 },877 /**878 * Lookup108: xcm::double_encoded::DoubleEncoded<T>879 **/880 XcmDoubleEncoded: {881 encoded: 'Bytes'882 },883 /**884 * Lookup109: xcm::v1::Xcm<Call>885 **/886 XcmV1Xcm: {887 _enum: {888 WithdrawAsset: {889 assets: 'XcmV1MultiassetMultiAssets',890 effects: 'Vec<XcmV1Order>',891 },892 ReserveAssetDeposited: {893 assets: 'XcmV1MultiassetMultiAssets',894 effects: 'Vec<XcmV1Order>',895 },896 ReceiveTeleportedAsset: {897 assets: 'XcmV1MultiassetMultiAssets',898 effects: 'Vec<XcmV1Order>',899 },900 QueryResponse: {901 queryId: 'Compact<u64>',902 response: 'XcmV1Response',903 },904 TransferAsset: {905 assets: 'XcmV1MultiassetMultiAssets',906 beneficiary: 'XcmV1MultiLocation',907 },908 TransferReserveAsset: {909 assets: 'XcmV1MultiassetMultiAssets',910 dest: 'XcmV1MultiLocation',911 effects: 'Vec<XcmV1Order>',912 },913 Transact: {914 originType: 'XcmV0OriginKind',915 requireWeightAtMost: 'u64',916 call: 'XcmDoubleEncoded',917 },918 HrmpNewChannelOpenRequest: {919 sender: 'Compact<u32>',920 maxMessageSize: 'Compact<u32>',921 maxCapacity: 'Compact<u32>',922 },923 HrmpChannelAccepted: {924 recipient: 'Compact<u32>',925 },926 HrmpChannelClosing: {927 initiator: 'Compact<u32>',928 sender: 'Compact<u32>',929 recipient: 'Compact<u32>',930 },931 RelayedFrom: {932 who: 'XcmV1MultilocationJunctions',933 message: 'XcmV1Xcm',934 },935 SubscribeVersion: {936 queryId: 'Compact<u64>',937 maxResponseWeight: 'Compact<u64>',938 },939 UnsubscribeVersion: 'Null'940 }941 },942 /**943 * Lookup110: xcm::v1::multiasset::MultiAssets944 **/945 XcmV1MultiassetMultiAssets: 'Vec<XcmV1MultiAsset>',946 /**947 * Lookup112: xcm::v1::multiasset::MultiAsset948 **/949 XcmV1MultiAsset: {950 id: 'XcmV1MultiassetAssetId',951 fun: 'XcmV1MultiassetFungibility'952 },953 /**954 * Lookup113: xcm::v1::multiasset::AssetId955 **/956 XcmV1MultiassetAssetId: {957 _enum: {958 Concrete: 'XcmV1MultiLocation',959 Abstract: 'Bytes'960 }961 },962 /**963 * Lookup114: xcm::v1::multiasset::Fungibility964 **/965 XcmV1MultiassetFungibility: {966 _enum: {967 Fungible: 'Compact<u128>',968 NonFungible: 'XcmV1MultiassetAssetInstance'969 }970 },971 /**972 * Lookup116: xcm::v1::order::Order<Call>973 **/974 XcmV1Order: {975 _enum: {976 Noop: 'Null',977 DepositAsset: {978 assets: 'XcmV1MultiassetMultiAssetFilter',979 maxAssets: 'u32',980 beneficiary: 'XcmV1MultiLocation',981 },982 DepositReserveAsset: {983 assets: 'XcmV1MultiassetMultiAssetFilter',984 maxAssets: 'u32',985 dest: 'XcmV1MultiLocation',986 effects: 'Vec<XcmV1Order>',987 },988 ExchangeAsset: {989 give: 'XcmV1MultiassetMultiAssetFilter',990 receive: 'XcmV1MultiassetMultiAssets',991 },992 InitiateReserveWithdraw: {993 assets: 'XcmV1MultiassetMultiAssetFilter',994 reserve: 'XcmV1MultiLocation',995 effects: 'Vec<XcmV1Order>',996 },997 InitiateTeleport: {998 assets: 'XcmV1MultiassetMultiAssetFilter',999 dest: 'XcmV1MultiLocation',1000 effects: 'Vec<XcmV1Order>',1001 },1002 QueryHolding: {1003 queryId: 'Compact<u64>',1004 dest: 'XcmV1MultiLocation',1005 assets: 'XcmV1MultiassetMultiAssetFilter',1006 },1007 BuyExecution: {1008 fees: 'XcmV1MultiAsset',1009 weight: 'u64',1010 debt: 'u64',1011 haltOnError: 'bool',1012 instructions: 'Vec<XcmV1Xcm>'1013 }1014 }1015 },1016 /**1017 * Lookup117: xcm::v1::multiasset::MultiAssetFilter1018 **/1019 XcmV1MultiassetMultiAssetFilter: {1020 _enum: {1021 Definite: 'XcmV1MultiassetMultiAssets',1022 Wild: 'XcmV1MultiassetWildMultiAsset'1023 }1024 },1025 /**1026 * Lookup118: xcm::v1::multiasset::WildMultiAsset1027 **/1028 XcmV1MultiassetWildMultiAsset: {1029 _enum: {1030 All: 'Null',1031 AllOf: {1032 id: 'XcmV1MultiassetAssetId',1033 fun: 'XcmV1MultiassetWildFungibility'1034 }1035 }1036 },1037 /**1038 * Lookup119: xcm::v1::multiasset::WildFungibility1039 **/1040 XcmV1MultiassetWildFungibility: {1041 _enum: ['Fungible', 'NonFungible']1042 },1043 /**1044 * Lookup121: xcm::v1::Response1045 **/1046 XcmV1Response: {1047 _enum: {1048 Assets: 'XcmV1MultiassetMultiAssets',1049 Version: 'u32'1050 }1051 },1052 /**1053 * Lookup122: xcm::v2::Xcm<Call>1054 **/1055 XcmV2Xcm: 'Vec<XcmV2Instruction>',1056 /**1057 * Lookup124: xcm::v2::Instruction<Call>1058 **/1059 XcmV2Instruction: {1060 _enum: {1061 WithdrawAsset: 'XcmV1MultiassetMultiAssets',1062 ReserveAssetDeposited: 'XcmV1MultiassetMultiAssets',1063 ReceiveTeleportedAsset: 'XcmV1MultiassetMultiAssets',1064 QueryResponse: {1065 queryId: 'Compact<u64>',1066 response: 'XcmV2Response',1067 maxWeight: 'Compact<u64>',1068 },1069 TransferAsset: {1070 assets: 'XcmV1MultiassetMultiAssets',1071 beneficiary: 'XcmV1MultiLocation',1072 },1073 TransferReserveAsset: {1074 assets: 'XcmV1MultiassetMultiAssets',1075 dest: 'XcmV1MultiLocation',1076 xcm: 'XcmV2Xcm',1077 },1078 Transact: {1079 originType: 'XcmV0OriginKind',1080 requireWeightAtMost: 'Compact<u64>',1081 call: 'XcmDoubleEncoded',1082 },1083 HrmpNewChannelOpenRequest: {1084 sender: 'Compact<u32>',1085 maxMessageSize: 'Compact<u32>',1086 maxCapacity: 'Compact<u32>',1087 },1088 HrmpChannelAccepted: {1089 recipient: 'Compact<u32>',1090 },1091 HrmpChannelClosing: {1092 initiator: 'Compact<u32>',1093 sender: 'Compact<u32>',1094 recipient: 'Compact<u32>',1095 },1096 ClearOrigin: 'Null',1097 DescendOrigin: 'XcmV1MultilocationJunctions',1098 ReportError: {1099 queryId: 'Compact<u64>',1100 dest: 'XcmV1MultiLocation',1101 maxResponseWeight: 'Compact<u64>',1102 },1103 DepositAsset: {1104 assets: 'XcmV1MultiassetMultiAssetFilter',1105 maxAssets: 'Compact<u32>',1106 beneficiary: 'XcmV1MultiLocation',1107 },1108 DepositReserveAsset: {1109 assets: 'XcmV1MultiassetMultiAssetFilter',1110 maxAssets: 'Compact<u32>',1111 dest: 'XcmV1MultiLocation',1112 xcm: 'XcmV2Xcm',1113 },1114 ExchangeAsset: {1115 give: 'XcmV1MultiassetMultiAssetFilter',1116 receive: 'XcmV1MultiassetMultiAssets',1117 },1118 InitiateReserveWithdraw: {1119 assets: 'XcmV1MultiassetMultiAssetFilter',1120 reserve: 'XcmV1MultiLocation',1121 xcm: 'XcmV2Xcm',1122 },1123 InitiateTeleport: {1124 assets: 'XcmV1MultiassetMultiAssetFilter',1125 dest: 'XcmV1MultiLocation',1126 xcm: 'XcmV2Xcm',1127 },1128 QueryHolding: {1129 queryId: 'Compact<u64>',1130 dest: 'XcmV1MultiLocation',1131 assets: 'XcmV1MultiassetMultiAssetFilter',1132 maxResponseWeight: 'Compact<u64>',1133 },1134 BuyExecution: {1135 fees: 'XcmV1MultiAsset',1136 weightLimit: 'XcmV2WeightLimit',1137 },1138 RefundSurplus: 'Null',1139 SetErrorHandler: 'XcmV2Xcm',1140 SetAppendix: 'XcmV2Xcm',1141 ClearError: 'Null',1142 ClaimAsset: {1143 assets: 'XcmV1MultiassetMultiAssets',1144 ticket: 'XcmV1MultiLocation',1145 },1146 Trap: 'Compact<u64>',1147 SubscribeVersion: {1148 queryId: 'Compact<u64>',1149 maxResponseWeight: 'Compact<u64>',1150 },1151 UnsubscribeVersion: 'Null'1152 }1153 },1154 /**1155 * Lookup125: xcm::v2::Response1156 **/1157 XcmV2Response: {1158 _enum: {1159 Null: 'Null',1160 Assets: 'XcmV1MultiassetMultiAssets',1161 ExecutionResult: 'Option<(u32,XcmV2TraitsError)>',1162 Version: 'u32'1163 }1164 },1165 /**1166 * Lookup128: xcm::v2::traits::Error1167 **/1168 XcmV2TraitsError: {1169 _enum: {1170 Overflow: 'Null',1171 Unimplemented: 'Null',1172 UntrustedReserveLocation: 'Null',1173 UntrustedTeleportLocation: 'Null',1174 MultiLocationFull: 'Null',1175 MultiLocationNotInvertible: 'Null',1176 BadOrigin: 'Null',1177 InvalidLocation: 'Null',1178 AssetNotFound: 'Null',1179 FailedToTransactAsset: 'Null',1180 NotWithdrawable: 'Null',1181 LocationCannotHold: 'Null',1182 ExceedsMaxMessageSize: 'Null',1183 DestinationUnsupported: 'Null',1184 Transport: 'Null',1185 Unroutable: 'Null',1186 UnknownClaim: 'Null',1187 FailedToDecode: 'Null',1188 MaxWeightInvalid: 'Null',1189 NotHoldingFees: 'Null',1190 TooExpensive: 'Null',1191 Trap: 'u64',1192 UnhandledXcmVersion: 'Null',1193 WeightLimitReached: 'u64',1194 Barrier: 'Null',1195 WeightNotComputable: 'Null'1196 }1197 },1198 /**1199 * Lookup129: xcm::v2::WeightLimit1200 **/1201 XcmV2WeightLimit: {1202 _enum: {1203 Unlimited: 'Null',1204 Limited: 'Compact<u64>'1205 }1206 },1207 /**1208 * Lookup130: xcm::VersionedMultiAssets1209 **/1210 XcmVersionedMultiAssets: {1211 _enum: {1212 V0: 'Vec<XcmV0MultiAsset>',1213 V1: 'XcmV1MultiassetMultiAssets'1214 }1215 },1216 /**1217 * Lookup145: cumulus_pallet_xcm::pallet::Call<T>1218 **/1219 CumulusPalletXcmCall: 'Null',1220 /**1221 * Lookup146: cumulus_pallet_dmp_queue::pallet::Call<T>1222 **/1223 CumulusPalletDmpQueueCall: {1224 _enum: {1225 service_overweight: {1226 index: 'u64',1227 weightLimit: 'u64'1228 }1229 }1230 },1231 /**1232 * Lookup147: pallet_inflation::pallet::Call<T>1233 **/1234 PalletInflationCall: {1235 _enum: {1236 start_inflation: {1237 inflationStartRelayBlock: 'u32'1238 }1239 }1240 },1241 /**1242 * Lookup148: pallet_unique::Call<T>1243 **/1244 PalletUniqueCall: {1245 _enum: {1246 create_collection: {1247 collectionName: 'Vec<u16>',1248 collectionDescription: 'Vec<u16>',1249 tokenPrefix: 'Bytes',1250 mode: 'UpDataStructsCollectionMode',1251 },1252 create_collection_ex: {1253 data: 'UpDataStructsCreateCollectionData',1254 },1255 destroy_collection: {1256 collectionId: 'u32',1257 },1258 add_to_allow_list: {1259 collectionId: 'u32',1260 address: 'PalletEvmAccountBasicCrossAccountIdRepr',1261 },1262 remove_from_allow_list: {1263 collectionId: 'u32',1264 address: 'PalletEvmAccountBasicCrossAccountIdRepr',1265 },1266 change_collection_owner: {1267 collectionId: 'u32',1268 newOwner: 'AccountId32',1269 },1270 add_collection_admin: {1271 collectionId: 'u32',1272 newAdmin: 'PalletEvmAccountBasicCrossAccountIdRepr',1273 },1274 remove_collection_admin: {1275 collectionId: 'u32',1276 accountId: 'PalletEvmAccountBasicCrossAccountIdRepr',1277 },1278 set_collection_sponsor: {1279 collectionId: 'u32',1280 newSponsor: 'AccountId32',1281 },1282 confirm_sponsorship: {1283 collectionId: 'u32',1284 },1285 remove_collection_sponsor: {1286 collectionId: 'u32',1287 },1288 create_item: {1289 collectionId: 'u32',1290 owner: 'PalletEvmAccountBasicCrossAccountIdRepr',1291 data: 'UpDataStructsCreateItemData',1292 },1293 create_multiple_items: {1294 collectionId: 'u32',1295 owner: 'PalletEvmAccountBasicCrossAccountIdRepr',1296 itemsData: 'Vec<UpDataStructsCreateItemData>',1297 },1298 set_collection_properties: {1299 collectionId: 'u32',1300 properties: 'Vec<UpDataStructsProperty>',1301 },1302 delete_collection_properties: {1303 collectionId: 'u32',1304 propertyKeys: 'Vec<Bytes>',1305 },1306 set_token_properties: {1307 collectionId: 'u32',1308 tokenId: 'u32',1309 properties: 'Vec<UpDataStructsProperty>',1310 },1311 delete_token_properties: {1312 collectionId: 'u32',1313 tokenId: 'u32',1314 propertyKeys: 'Vec<Bytes>',1315 },1316 set_token_property_permissions: {1317 collectionId: 'u32',1318 propertyPermissions: 'Vec<UpDataStructsPropertyKeyPermission>',1319 },1320 create_multiple_items_ex: {1321 collectionId: 'u32',1322 data: 'UpDataStructsCreateItemExData',1323 },1324 set_transfers_enabled_flag: {1325 collectionId: 'u32',1326 value: 'bool',1327 },1328 burn_item: {1329 collectionId: 'u32',1330 itemId: 'u32',1331 value: 'u128',1332 },1333 burn_from: {1334 collectionId: 'u32',1335 from: 'PalletEvmAccountBasicCrossAccountIdRepr',1336 itemId: 'u32',1337 value: 'u128',1338 },1339 transfer: {1340 recipient: 'PalletEvmAccountBasicCrossAccountIdRepr',1341 collectionId: 'u32',1342 itemId: 'u32',1343 value: 'u128',1344 },1345 approve: {1346 spender: 'PalletEvmAccountBasicCrossAccountIdRepr',1347 collectionId: 'u32',1348 itemId: 'u32',1349 amount: 'u128',1350 },1351 transfer_from: {1352 from: 'PalletEvmAccountBasicCrossAccountIdRepr',1353 recipient: 'PalletEvmAccountBasicCrossAccountIdRepr',1354 collectionId: 'u32',1355 itemId: 'u32',1356 value: 'u128',1357 },1358 set_collection_limits: {1359 collectionId: 'u32',1360 newLimit: 'UpDataStructsCollectionLimits',1361 },1362 set_collection_permissions: {1363 collectionId: 'u32',1364 newPermission: 'UpDataStructsCollectionPermissions',1365 },1366 repartition: {1367 collectionId: 'u32',1368 tokenId: 'u32',1369 amount: 'u128'1370 }1371 }1372 },1373 /**1374 * Lookup154: up_data_structs::CollectionMode1375 **/1376 UpDataStructsCollectionMode: {1377 _enum: {1378 NFT: 'Null',1379 Fungible: 'u8',1380 ReFungible: 'Null'1381 }1382 },1383 /**1384 * Lookup155: up_data_structs::CreateCollectionData<sp_core::crypto::AccountId32>1385 **/1386 UpDataStructsCreateCollectionData: {1387 mode: 'UpDataStructsCollectionMode',1388 access: 'Option<UpDataStructsAccessMode>',1389 name: 'Vec<u16>',1390 description: 'Vec<u16>',1391 tokenPrefix: 'Bytes',1392 pendingSponsor: 'Option<AccountId32>',1393 limits: 'Option<UpDataStructsCollectionLimits>',1394 permissions: 'Option<UpDataStructsCollectionPermissions>',1395 tokenPropertyPermissions: 'Vec<UpDataStructsPropertyKeyPermission>',1396 properties: 'Vec<UpDataStructsProperty>'1397 },1398 /**1399 * Lookup157: up_data_structs::AccessMode1400 **/1401 UpDataStructsAccessMode: {1402 _enum: ['Normal', 'AllowList']1403 },1404 /**1405 * Lookup160: up_data_structs::CollectionLimits1406 **/1407 UpDataStructsCollectionLimits: {1408 accountTokenOwnershipLimit: 'Option<u32>',1409 sponsoredDataSize: 'Option<u32>',1410 sponsoredDataRateLimit: 'Option<UpDataStructsSponsoringRateLimit>',1411 tokenLimit: 'Option<u32>',1412 sponsorTransferTimeout: 'Option<u32>',1413 sponsorApproveTimeout: 'Option<u32>',1414 ownerCanTransfer: 'Option<bool>',1415 ownerCanDestroy: 'Option<bool>',1416 transfersEnabled: 'Option<bool>'1417 },1418 /**1419 * Lookup162: up_data_structs::SponsoringRateLimit1420 **/1421 UpDataStructsSponsoringRateLimit: {1422 _enum: {1423 SponsoringDisabled: 'Null',1424 Blocks: 'u32'1425 }1426 },1427 /**1428 * Lookup165: up_data_structs::CollectionPermissions1429 **/1430 UpDataStructsCollectionPermissions: {1431 access: 'Option<UpDataStructsAccessMode>',1432 mintMode: 'Option<bool>',1433 nesting: 'Option<UpDataStructsNestingPermissions>'1434 },1435 /**1436 * Lookup167: up_data_structs::NestingPermissions1437 **/1438 UpDataStructsNestingPermissions: {1439 tokenOwner: 'bool',1440 collectionAdmin: 'bool',1441 restricted: 'Option<UpDataStructsOwnerRestrictedSet>'1442 },1443 /**1444 * Lookup169: up_data_structs::OwnerRestrictedSet1445 **/1446 UpDataStructsOwnerRestrictedSet: 'BTreeSet<u32>',1447 /**1448 * Lookup175: up_data_structs::PropertyKeyPermission1449 **/1450 UpDataStructsPropertyKeyPermission: {1451 key: 'Bytes',1452 permission: 'UpDataStructsPropertyPermission'1453 },1454 /**1455 * Lookup177: up_data_structs::PropertyPermission1456 **/1457 UpDataStructsPropertyPermission: {1458 mutable: 'bool',1459 collectionAdmin: 'bool',1460 tokenOwner: 'bool'1461 },1462 /**1463 * Lookup180: up_data_structs::Property1464 **/1465 UpDataStructsProperty: {1466 key: 'Bytes',1467 value: 'Bytes'1468 },1469 /**1470 * Lookup183: pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>1471 **/1472 PalletEvmAccountBasicCrossAccountIdRepr: {1473 _enum: {1474 Substrate: 'AccountId32',1475 Ethereum: 'H160'1476 }1477 },1478 /**1479 * Lookup185: up_data_structs::CreateItemData1480 **/1481 UpDataStructsCreateItemData: {1482 _enum: {1483 NFT: 'UpDataStructsCreateNftData',1484 Fungible: 'UpDataStructsCreateFungibleData',1485 ReFungible: 'UpDataStructsCreateReFungibleData'1486 }1487 },1488 /**1489 * Lookup186: up_data_structs::CreateNftData1490 **/1491 UpDataStructsCreateNftData: {1492 properties: 'Vec<UpDataStructsProperty>'1493 },1494 /**1495 * Lookup187: up_data_structs::CreateFungibleData1496 **/1497 UpDataStructsCreateFungibleData: {1498 value: 'u128'1499 },1500 /**1501 * Lookup188: up_data_structs::CreateReFungibleData1502 **/1503 UpDataStructsCreateReFungibleData: {1504 constData: 'Bytes',1505 pieces: 'u128',1506 properties: 'Vec<UpDataStructsProperty>'1507 },1508 /**1509 * Lookup193: up_data_structs::CreateItemExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>1510 **/1511 UpDataStructsCreateItemExData: {1512 _enum: {1513 NFT: 'Vec<UpDataStructsCreateNftExData>',1514 Fungible: 'BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>',1515 RefungibleMultipleItems: 'Vec<UpDataStructsCreateRefungibleExData>',1516 RefungibleMultipleOwners: 'UpDataStructsCreateRefungibleExData'1517 }1518 },1519 /**1520 * Lookup195: up_data_structs::CreateNftExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>1521 **/1522 UpDataStructsCreateNftExData: {1523 properties: 'Vec<UpDataStructsProperty>',1524 owner: 'PalletEvmAccountBasicCrossAccountIdRepr'1525 },1526 /**1527 * Lookup202: up_data_structs::CreateRefungibleExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>1528 **/1529 UpDataStructsCreateRefungibleExData: {1530 constData: 'Bytes',1531 users: 'BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>',1532 properties: 'Vec<UpDataStructsProperty>'1533 },1534 /**1535 * Lookup204: pallet_unique_scheduler::pallet::Call<T>1536 **/1537 PalletUniqueSchedulerCall: {1538 _enum: {1539 schedule_named: {1540 id: '[u8;16]',1541 when: 'u32',1542 maybePeriodic: 'Option<(u32,u32)>',1543 priority: 'u8',1544 call: 'FrameSupportScheduleMaybeHashed',1545 },1546 cancel_named: {1547 id: '[u8;16]',1548 },1549 schedule_named_after: {1550 id: '[u8;16]',1551 after: 'u32',1552 maybePeriodic: 'Option<(u32,u32)>',1553 priority: 'u8',1554 call: 'FrameSupportScheduleMaybeHashed'1555 }1556 }1557 },1558 /**1559 * Lookup206: frame_support::traits::schedule::MaybeHashed<opal_runtime::Call, primitive_types::H256>1560 **/1561 FrameSupportScheduleMaybeHashed: {1562 _enum: {1563 Value: 'Call',1564 Hash: 'H256'1565 }1566 },1567 /**1568 * Lookup207: pallet_template_transaction_payment::Call<T>1569 **/1570 PalletTemplateTransactionPaymentCall: 'Null',1571 /**1572 * Lookup208: pallet_structure::pallet::Call<T>1573 **/1574 PalletStructureCall: 'Null',1575 /**1576 * Lookup209: pallet_rmrk_core::pallet::Call<T>1577 **/1578 PalletRmrkCoreCall: {1579 _enum: {1580 create_collection: {1581 metadata: 'Bytes',1582 max: 'Option<u32>',1583 symbol: 'Bytes',1584 },1585 destroy_collection: {1586 collectionId: 'u32',1587 },1588 change_collection_issuer: {1589 collectionId: 'u32',1590 newIssuer: 'MultiAddress',1591 },1592 lock_collection: {1593 collectionId: 'u32',1594 },1595 mint_nft: {1596 owner: 'Option<AccountId32>',1597 collectionId: 'u32',1598 recipient: 'Option<AccountId32>',1599 royaltyAmount: 'Option<Permill>',1600 metadata: 'Bytes',1601 transferable: 'bool',1602 resources: 'Option<Vec<RmrkTraitsResourceResourceTypes>>',1603 },1604 burn_nft: {1605 collectionId: 'u32',1606 nftId: 'u32',1607 maxBurns: 'u32',1608 },1609 send: {1610 rmrkCollectionId: 'u32',1611 rmrkNftId: 'u32',1612 newOwner: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',1613 },1614 accept_nft: {1615 rmrkCollectionId: 'u32',1616 rmrkNftId: 'u32',1617 newOwner: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',1618 },1619 reject_nft: {1620 rmrkCollectionId: 'u32',1621 rmrkNftId: 'u32',1622 },1623 accept_resource: {1624 rmrkCollectionId: 'u32',1625 rmrkNftId: 'u32',1626 resourceId: 'u32',1627 },1628 accept_resource_removal: {1629 rmrkCollectionId: 'u32',1630 rmrkNftId: 'u32',1631 resourceId: 'u32',1632 },1633 set_property: {1634 rmrkCollectionId: 'Compact<u32>',1635 maybeNftId: 'Option<u32>',1636 key: 'Bytes',1637 value: 'Bytes',1638 },1639 set_priority: {1640 rmrkCollectionId: 'u32',1641 rmrkNftId: 'u32',1642 priorities: 'Vec<u32>',1643 },1644 add_basic_resource: {1645 rmrkCollectionId: 'u32',1646 nftId: 'u32',1647 resource: 'RmrkTraitsResourceBasicResource',1648 },1649 add_composable_resource: {1650 rmrkCollectionId: 'u32',1651 nftId: 'u32',1652 resource: 'RmrkTraitsResourceComposableResource',1653 },1654 add_slot_resource: {1655 rmrkCollectionId: 'u32',1656 nftId: 'u32',1657 resource: 'RmrkTraitsResourceSlotResource',1658 },1659 remove_resource: {1660 rmrkCollectionId: 'u32',1661 nftId: 'u32',1662 resourceId: 'u32'1663 }1664 }1665 },1666 /**1667 * Lookup215: rmrk_traits::resource::ResourceTypes<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>1668 **/1669 RmrkTraitsResourceResourceTypes: {1670 _enum: {1671 Basic: 'RmrkTraitsResourceBasicResource',1672 Composable: 'RmrkTraitsResourceComposableResource',1673 Slot: 'RmrkTraitsResourceSlotResource'1674 }1675 },1676 /**1677 * Lookup217: rmrk_traits::resource::BasicResource<frame_support::storage::bounded_vec::BoundedVec<T, S>>1678 **/1679 RmrkTraitsResourceBasicResource: {1680 src: 'Option<Bytes>',1681 metadata: 'Option<Bytes>',1682 license: 'Option<Bytes>',1683 thumb: 'Option<Bytes>'1684 },1685 /**1686 * Lookup219: rmrk_traits::resource::ComposableResource<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>1687 **/1688 RmrkTraitsResourceComposableResource: {1689 parts: 'Vec<u32>',1690 base: 'u32',1691 src: 'Option<Bytes>',1692 metadata: 'Option<Bytes>',1693 license: 'Option<Bytes>',1694 thumb: 'Option<Bytes>'1695 },1696 /**1697 * Lookup220: rmrk_traits::resource::SlotResource<frame_support::storage::bounded_vec::BoundedVec<T, S>>1698 **/1699 RmrkTraitsResourceSlotResource: {1700 base: 'u32',1701 src: 'Option<Bytes>',1702 metadata: 'Option<Bytes>',1703 slot: 'u32',1704 license: 'Option<Bytes>',1705 thumb: 'Option<Bytes>'1706 },1707 /**1708 * Lookup222: rmrk_traits::nft::AccountIdOrCollectionNftTuple<sp_core::crypto::AccountId32>1709 **/1710 RmrkTraitsNftAccountIdOrCollectionNftTuple: {1711 _enum: {1712 AccountId: 'AccountId32',1713 CollectionAndNftTuple: '(u32,u32)'1714 }1715 },1716 /**1717 * Lookup226: pallet_rmrk_equip::pallet::Call<T>1718 **/1719 PalletRmrkEquipCall: {1720 _enum: {1721 create_base: {1722 baseType: 'Bytes',1723 symbol: 'Bytes',1724 parts: 'Vec<RmrkTraitsPartPartType>',1725 },1726 theme_add: {1727 baseId: 'u32',1728 theme: 'RmrkTraitsTheme',1729 },1730 equippable: {1731 baseId: 'u32',1732 slotId: 'u32',1733 equippables: 'RmrkTraitsPartEquippableList'1734 }1735 }1736 },1737 /**1738 * Lookup229: rmrk_traits::part::PartType<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>1739 **/1740 RmrkTraitsPartPartType: {1741 _enum: {1742 FixedPart: 'RmrkTraitsPartFixedPart',1743 SlotPart: 'RmrkTraitsPartSlotPart'1744 }1745 },1746 /**1747 * Lookup231: rmrk_traits::part::FixedPart<frame_support::storage::bounded_vec::BoundedVec<T, S>>1748 **/1749 RmrkTraitsPartFixedPart: {1750 id: 'u32',1751 z: 'u32',1752 src: 'Bytes'1753 },1754 /**1755 * Lookup232: rmrk_traits::part::SlotPart<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>1756 **/1757 RmrkTraitsPartSlotPart: {1758 id: 'u32',1759 equippable: 'RmrkTraitsPartEquippableList',1760 src: 'Bytes',1761 z: 'u32'1762 },1763 /**1764 * Lookup233: rmrk_traits::part::EquippableList<frame_support::storage::bounded_vec::BoundedVec<T, S>>1765 **/1766 RmrkTraitsPartEquippableList: {1767 _enum: {1768 All: 'Null',1769 Empty: 'Null',1770 Custom: 'Vec<u32>'1771 }1772 },1773 /**1774 * Lookup235: rmrk_traits::theme::Theme<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<rmrk_traits::theme::ThemeProperty<frame_support::storage::bounded_vec::BoundedVec<T, S>>, S>>1775 **/1776 RmrkTraitsTheme: {1777 name: 'Bytes',1778 properties: 'Vec<RmrkTraitsThemeThemeProperty>',1779 inherit: 'bool'1780 },1781 /**1782 * Lookup237: rmrk_traits::theme::ThemeProperty<frame_support::storage::bounded_vec::BoundedVec<T, S>>1783 **/1784 RmrkTraitsThemeThemeProperty: {1785 key: 'Bytes',1786 value: 'Bytes'1787 },1788 /**1789 * Lookup239: pallet_evm::pallet::Call<T>1790 **/1791 PalletEvmCall: {1792 _enum: {1793 withdraw: {1794 address: 'H160',1795 value: 'u128',1796 },1797 call: {1798 source: 'H160',1799 target: 'H160',1800 input: 'Bytes',1801 value: 'U256',1802 gasLimit: 'u64',1803 maxFeePerGas: 'U256',1804 maxPriorityFeePerGas: 'Option<U256>',1805 nonce: 'Option<U256>',1806 accessList: 'Vec<(H160,Vec<H256>)>',1807 },1808 create: {1809 source: 'H160',1810 init: 'Bytes',1811 value: 'U256',1812 gasLimit: 'u64',1813 maxFeePerGas: 'U256',1814 maxPriorityFeePerGas: 'Option<U256>',1815 nonce: 'Option<U256>',1816 accessList: 'Vec<(H160,Vec<H256>)>',1817 },1818 create2: {1819 source: 'H160',1820 init: 'Bytes',1821 salt: 'H256',1822 value: 'U256',1823 gasLimit: 'u64',1824 maxFeePerGas: 'U256',1825 maxPriorityFeePerGas: 'Option<U256>',1826 nonce: 'Option<U256>',1827 accessList: 'Vec<(H160,Vec<H256>)>'1828 }1829 }1830 },1831 /**1832 * Lookup245: pallet_ethereum::pallet::Call<T>1833 **/1834 PalletEthereumCall: {1835 _enum: {1836 transact: {1837 transaction: 'EthereumTransactionTransactionV2'1838 }1839 }1840 },1841 /**1842 * Lookup246: ethereum::transaction::TransactionV21843 **/1844 EthereumTransactionTransactionV2: {1845 _enum: {1846 Legacy: 'EthereumTransactionLegacyTransaction',1847 EIP2930: 'EthereumTransactionEip2930Transaction',1848 EIP1559: 'EthereumTransactionEip1559Transaction'1849 }1850 },1851 /**1852 * Lookup247: ethereum::transaction::LegacyTransaction1853 **/1854 EthereumTransactionLegacyTransaction: {1855 nonce: 'U256',1856 gasPrice: 'U256',1857 gasLimit: 'U256',1858 action: 'EthereumTransactionTransactionAction',1859 value: 'U256',1860 input: 'Bytes',1861 signature: 'EthereumTransactionTransactionSignature'1862 },1863 /**1864 * Lookup248: ethereum::transaction::TransactionAction1865 **/1866 EthereumTransactionTransactionAction: {1867 _enum: {1868 Call: 'H160',1869 Create: 'Null'1870 }1871 },1872 /**1873 * Lookup249: ethereum::transaction::TransactionSignature1874 **/1875 EthereumTransactionTransactionSignature: {1876 v: 'u64',1877 r: 'H256',1878 s: 'H256'1879 },1880 /**1881 * Lookup251: ethereum::transaction::EIP2930Transaction1882 **/1883 EthereumTransactionEip2930Transaction: {1884 chainId: 'u64',1885 nonce: 'U256',1886 gasPrice: 'U256',1887 gasLimit: 'U256',1888 action: 'EthereumTransactionTransactionAction',1889 value: 'U256',1890 input: 'Bytes',1891 accessList: 'Vec<EthereumTransactionAccessListItem>',1892 oddYParity: 'bool',1893 r: 'H256',1894 s: 'H256'1895 },1896 /**1897 * Lookup253: ethereum::transaction::AccessListItem1898 **/1899 EthereumTransactionAccessListItem: {1900 address: 'H160',1901 storageKeys: 'Vec<H256>'1902 },1903 /**1904 * Lookup254: ethereum::transaction::EIP1559Transaction1905 **/1906 EthereumTransactionEip1559Transaction: {1907 chainId: 'u64',1908 nonce: 'U256',1909 maxPriorityFeePerGas: 'U256',1910 maxFeePerGas: 'U256',1911 gasLimit: 'U256',1912 action: 'EthereumTransactionTransactionAction',1913 value: 'U256',1914 input: 'Bytes',1915 accessList: 'Vec<EthereumTransactionAccessListItem>',1916 oddYParity: 'bool',1917 r: 'H256',1918 s: 'H256'1919 },1920 /**1921 * Lookup255: pallet_evm_migration::pallet::Call<T>1922 **/1923 PalletEvmMigrationCall: {1924 _enum: {1925 begin: {1926 address: 'H160',1927 },1928 set_data: {1929 address: 'H160',1930 data: 'Vec<(H256,H256)>',1931 },1932 finish: {1933 address: 'H160',1934 code: 'Bytes'1935 }1936 }1937 },1938 /**1939 * Lookup258: pallet_sudo::pallet::Event<T>1940 **/1941 PalletSudoEvent: {1942 _enum: {1943 Sudid: {1944 sudoResult: 'Result<Null, SpRuntimeDispatchError>',1945 },1946 KeyChanged: {1947 oldSudoer: 'Option<AccountId32>',1948 },1949 SudoAsDone: {1950 sudoResult: 'Result<Null, SpRuntimeDispatchError>'1951 }1952 }1953 },1954 /**1955 * Lookup260: sp_runtime::DispatchError1956 **/1957 SpRuntimeDispatchError: {1958 _enum: {1959 Other: 'Null',1960 CannotLookup: 'Null',1961 BadOrigin: 'Null',1962 Module: 'SpRuntimeModuleError',1963 ConsumerRemaining: 'Null',1964 NoProviders: 'Null',1965 TooManyConsumers: 'Null',1966 Token: 'SpRuntimeTokenError',1967 Arithmetic: 'SpRuntimeArithmeticError',1968 Transactional: 'SpRuntimeTransactionalError'1969 }1970 },1971 /**1972 * Lookup261: sp_runtime::ModuleError1973 **/1974 SpRuntimeModuleError: {1975 index: 'u8',1976 error: '[u8;4]'1977 },1978 /**1979 * Lookup262: sp_runtime::TokenError1980 **/1981 SpRuntimeTokenError: {1982 _enum: ['NoFunds', 'WouldDie', 'BelowMinimum', 'CannotCreate', 'UnknownAsset', 'Frozen', 'Unsupported']1983 },1984 /**1985 * Lookup263: sp_runtime::ArithmeticError1986 **/1987 SpRuntimeArithmeticError: {1988 _enum: ['Underflow', 'Overflow', 'DivisionByZero']1989 },1990 /**1991 * Lookup264: sp_runtime::TransactionalError1992 **/1993 SpRuntimeTransactionalError: {1994 _enum: ['LimitReached', 'NoLayer']1995 },1996 /**1997 * Lookup265: pallet_sudo::pallet::Error<T>1998 **/1999 PalletSudoError: {2000 _enum: ['RequireSudo']2001 },2002 /**2003 * Lookup266: frame_system::AccountInfo<Index, pallet_balances::AccountData<Balance>>2004 **/2005 FrameSystemAccountInfo: {2006 nonce: 'u32',2007 consumers: 'u32',2008 providers: 'u32',2009 sufficients: 'u32',2010 data: 'PalletBalancesAccountData'2011 },2012 /**2013 * Lookup267: frame_support::weights::PerDispatchClass<T>2014 **/2015 FrameSupportWeightsPerDispatchClassU64: {2016 normal: 'u64',2017 operational: 'u64',2018 mandatory: 'u64'2019 },2020 /**2021 * Lookup268: sp_runtime::generic::digest::Digest2022 **/2023 SpRuntimeDigest: {2024 logs: 'Vec<SpRuntimeDigestDigestItem>'2025 },2026 /**2027 * Lookup270: sp_runtime::generic::digest::DigestItem2028 **/2029 SpRuntimeDigestDigestItem: {2030 _enum: {2031 Other: 'Bytes',2032 __Unused1: 'Null',2033 __Unused2: 'Null',2034 __Unused3: 'Null',2035 Consensus: '([u8;4],Bytes)',2036 Seal: '([u8;4],Bytes)',2037 PreRuntime: '([u8;4],Bytes)',2038 __Unused7: 'Null',2039 RuntimeEnvironmentUpdated: 'Null'2040 }2041 },2042 /**2043 * Lookup272: frame_system::EventRecord<opal_runtime::Event, primitive_types::H256>2044 **/2045 FrameSystemEventRecord: {2046 phase: 'FrameSystemPhase',2047 event: 'Event',2048 topics: 'Vec<H256>'2049 },2050 /**2051 * Lookup274: frame_system::pallet::Event<T>2052 **/2053 FrameSystemEvent: {2054 _enum: {2055 ExtrinsicSuccess: {2056 dispatchInfo: 'FrameSupportWeightsDispatchInfo',2057 },2058 ExtrinsicFailed: {2059 dispatchError: 'SpRuntimeDispatchError',2060 dispatchInfo: 'FrameSupportWeightsDispatchInfo',2061 },2062 CodeUpdated: 'Null',2063 NewAccount: {2064 account: 'AccountId32',2065 },2066 KilledAccount: {2067 account: 'AccountId32',2068 },2069 Remarked: {2070 _alias: {2071 hash_: 'hash',2072 },2073 sender: 'AccountId32',2074 hash_: 'H256'2075 }2076 }2077 },2078 /**2079 * Lookup275: frame_support::weights::DispatchInfo2080 **/2081 FrameSupportWeightsDispatchInfo: {2082 weight: 'u64',2083 class: 'FrameSupportWeightsDispatchClass',2084 paysFee: 'FrameSupportWeightsPays'2085 },2086 /**2087 * Lookup276: frame_support::weights::DispatchClass2088 **/2089 FrameSupportWeightsDispatchClass: {2090 _enum: ['Normal', 'Operational', 'Mandatory']2091 },2092 /**2093 * Lookup277: frame_support::weights::Pays2094 **/2095 FrameSupportWeightsPays: {2096 _enum: ['Yes', 'No']2097 },2098 /**2099 * Lookup278: orml_vesting::module::Event<T>2100 **/2101 OrmlVestingModuleEvent: {2102 _enum: {2103 VestingScheduleAdded: {2104 from: 'AccountId32',2105 to: 'AccountId32',2106 vestingSchedule: 'OrmlVestingVestingSchedule',2107 },2108 Claimed: {2109 who: 'AccountId32',2110 amount: 'u128',2111 },2112 VestingSchedulesUpdated: {2113 who: 'AccountId32'2114 }2115 }2116 },2117 /**2118 * Lookup279: cumulus_pallet_xcmp_queue::pallet::Event<T>2119 **/2120 CumulusPalletXcmpQueueEvent: {2121 _enum: {2122 Success: 'Option<H256>',2123 Fail: '(Option<H256>,XcmV2TraitsError)',2124 BadVersion: 'Option<H256>',2125 BadFormat: 'Option<H256>',2126 UpwardMessageSent: 'Option<H256>',2127 XcmpMessageSent: 'Option<H256>',2128 OverweightEnqueued: '(u32,u32,u64,u64)',2129 OverweightServiced: '(u64,u64)'2130 }2131 },2132 /**2133 * Lookup280: pallet_xcm::pallet::Event<T>2134 **/2135 PalletXcmEvent: {2136 _enum: {2137 Attempted: 'XcmV2TraitsOutcome',2138 Sent: '(XcmV1MultiLocation,XcmV1MultiLocation,XcmV2Xcm)',2139 UnexpectedResponse: '(XcmV1MultiLocation,u64)',2140 ResponseReady: '(u64,XcmV2Response)',2141 Notified: '(u64,u8,u8)',2142 NotifyOverweight: '(u64,u8,u8,u64,u64)',2143 NotifyDispatchError: '(u64,u8,u8)',2144 NotifyDecodeFailed: '(u64,u8,u8)',2145 InvalidResponder: '(XcmV1MultiLocation,u64,Option<XcmV1MultiLocation>)',2146 InvalidResponderVersion: '(XcmV1MultiLocation,u64)',2147 ResponseTaken: 'u64',2148 AssetsTrapped: '(H256,XcmV1MultiLocation,XcmVersionedMultiAssets)',2149 VersionChangeNotified: '(XcmV1MultiLocation,u32)',2150 SupportedVersionChanged: '(XcmV1MultiLocation,u32)',2151 NotifyTargetSendFail: '(XcmV1MultiLocation,u64,XcmV2TraitsError)',2152 NotifyTargetMigrationFail: '(XcmVersionedMultiLocation,u64)'2153 }2154 },2155 /**2156 * Lookup281: xcm::v2::traits::Outcome2157 **/2158 XcmV2TraitsOutcome: {2159 _enum: {2160 Complete: 'u64',2161 Incomplete: '(u64,XcmV2TraitsError)',2162 Error: 'XcmV2TraitsError'2163 }2164 },2165 /**2166 * Lookup283: cumulus_pallet_xcm::pallet::Event<T>2167 **/2168 CumulusPalletXcmEvent: {2169 _enum: {2170 InvalidFormat: '[u8;8]',2171 UnsupportedVersion: '[u8;8]',2172 ExecutedDownward: '([u8;8],XcmV2TraitsOutcome)'2173 }2174 },2175 /**2176 * Lookup284: cumulus_pallet_dmp_queue::pallet::Event<T>2177 **/2178 CumulusPalletDmpQueueEvent: {2179 _enum: {2180 InvalidFormat: {2181 messageId: '[u8;32]',2182 },2183 UnsupportedVersion: {2184 messageId: '[u8;32]',2185 },2186 ExecutedDownward: {2187 messageId: '[u8;32]',2188 outcome: 'XcmV2TraitsOutcome',2189 },2190 WeightExhausted: {2191 messageId: '[u8;32]',2192 remainingWeight: 'u64',2193 requiredWeight: 'u64',2194 },2195 OverweightEnqueued: {2196 messageId: '[u8;32]',2197 overweightIndex: 'u64',2198 requiredWeight: 'u64',2199 },2200 OverweightServiced: {2201 overweightIndex: 'u64',2202 weightUsed: 'u64'2203 }2204 }2205 },2206 /**2207 * Lookup285: pallet_unique::RawEvent<sp_core::crypto::AccountId32, pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2208 **/2209 PalletUniqueRawEvent: {2210 _enum: {2211 CollectionSponsorRemoved: 'u32',2212 CollectionAdminAdded: '(u32,PalletEvmAccountBasicCrossAccountIdRepr)',2213 CollectionOwnedChanged: '(u32,AccountId32)',2214 CollectionSponsorSet: '(u32,AccountId32)',2215 SponsorshipConfirmed: '(u32,AccountId32)',2216 CollectionAdminRemoved: '(u32,PalletEvmAccountBasicCrossAccountIdRepr)',2217 AllowListAddressRemoved: '(u32,PalletEvmAccountBasicCrossAccountIdRepr)',2218 AllowListAddressAdded: '(u32,PalletEvmAccountBasicCrossAccountIdRepr)',2219 CollectionLimitSet: 'u32',2220 CollectionPermissionSet: 'u32'2221 }2222 },2223 /**2224 * Lookup286: pallet_unique_scheduler::pallet::Event<T>2225 **/2226 PalletUniqueSchedulerEvent: {2227 _enum: {2228 Scheduled: {2229 when: 'u32',2230 index: 'u32',2231 },2232 Canceled: {2233 when: 'u32',2234 index: 'u32',2235 },2236 Dispatched: {2237 task: '(u32,u32)',2238 id: 'Option<[u8;16]>',2239 result: 'Result<Null, SpRuntimeDispatchError>',2240 },2241 CallLookupFailed: {2242 task: '(u32,u32)',2243 id: 'Option<[u8;16]>',2244 error: 'FrameSupportScheduleLookupError'2245 }2246 }2247 },2248 /**2249 * Lookup288: frame_support::traits::schedule::LookupError2250 **/2251 FrameSupportScheduleLookupError: {2252 _enum: ['Unknown', 'BadFormat']2253 },2254 /**2255 * Lookup289: pallet_common::pallet::Event<T>2256 **/2257 PalletCommonEvent: {2258 _enum: {2259 CollectionCreated: '(u32,u8,AccountId32)',2260 CollectionDestroyed: 'u32',2261 ItemCreated: '(u32,u32,PalletEvmAccountBasicCrossAccountIdRepr,u128)',2262 ItemDestroyed: '(u32,u32,PalletEvmAccountBasicCrossAccountIdRepr,u128)',2263 Transfer: '(u32,u32,PalletEvmAccountBasicCrossAccountIdRepr,PalletEvmAccountBasicCrossAccountIdRepr,u128)',2264 Approved: '(u32,u32,PalletEvmAccountBasicCrossAccountIdRepr,PalletEvmAccountBasicCrossAccountIdRepr,u128)',2265 CollectionPropertySet: '(u32,Bytes)',2266 CollectionPropertyDeleted: '(u32,Bytes)',2267 TokenPropertySet: '(u32,u32,Bytes)',2268 TokenPropertyDeleted: '(u32,u32,Bytes)',2269 PropertyPermissionSet: '(u32,Bytes)'2270 }2271 },2272 /**2273 * Lookup290: pallet_structure::pallet::Event<T>2274 **/2275 PalletStructureEvent: {2276 _enum: {2277 Executed: 'Result<Null, SpRuntimeDispatchError>'2278 }2279 },2280 /**2281 * Lookup291: pallet_rmrk_core::pallet::Event<T>2282 **/2283 PalletRmrkCoreEvent: {2284 _enum: {2285 CollectionCreated: {2286 issuer: 'AccountId32',2287 collectionId: 'u32',2288 },2289 CollectionDestroyed: {2290 issuer: 'AccountId32',2291 collectionId: 'u32',2292 },2293 IssuerChanged: {2294 oldIssuer: 'AccountId32',2295 newIssuer: 'AccountId32',2296 collectionId: 'u32',2297 },2298 CollectionLocked: {2299 issuer: 'AccountId32',2300 collectionId: 'u32',2301 },2302 NftMinted: {2303 owner: 'AccountId32',2304 collectionId: 'u32',2305 nftId: 'u32',2306 },2307 NFTBurned: {2308 owner: 'AccountId32',2309 nftId: 'u32',2310 },2311 NFTSent: {2312 sender: 'AccountId32',2313 recipient: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',2314 collectionId: 'u32',2315 nftId: 'u32',2316 approvalRequired: 'bool',2317 },2318 NFTAccepted: {2319 sender: 'AccountId32',2320 recipient: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',2321 collectionId: 'u32',2322 nftId: 'u32',2323 },2324 NFTRejected: {2325 sender: 'AccountId32',2326 collectionId: 'u32',2327 nftId: 'u32',2328 },2329 PropertySet: {2330 collectionId: 'u32',2331 maybeNftId: 'Option<u32>',2332 key: 'Bytes',2333 value: 'Bytes',2334 },2335 ResourceAdded: {2336 nftId: 'u32',2337 resourceId: 'u32',2338 },2339 ResourceRemoval: {2340 nftId: 'u32',2341 resourceId: 'u32',2342 },2343 ResourceAccepted: {2344 nftId: 'u32',2345 resourceId: 'u32',2346 },2347 ResourceRemovalAccepted: {2348 nftId: 'u32',2349 resourceId: 'u32',2350 },2351 PrioritySet: {2352 collectionId: 'u32',2353 nftId: 'u32'2354 }2355 }2356 },2357 /**2358 * Lookup292: pallet_rmrk_equip::pallet::Event<T>2359 **/2360 PalletRmrkEquipEvent: {2361 _enum: {2362 BaseCreated: {2363 issuer: 'AccountId32',2364 baseId: 'u32',2365 },2366 EquippablesUpdated: {2367 baseId: 'u32',2368 slotId: 'u32'2369 }2370 }2371 },2372 /**2373 * Lookup293: pallet_evm::pallet::Event<T>2374 **/2375 PalletEvmEvent: {2376 _enum: {2377 Log: 'EthereumLog',2378 Created: 'H160',2379 CreatedFailed: 'H160',2380 Executed: 'H160',2381 ExecutedFailed: 'H160',2382 BalanceDeposit: '(AccountId32,H160,U256)',2383 BalanceWithdraw: '(AccountId32,H160,U256)'2384 }2385 },2386 /**2387 * Lookup294: ethereum::log::Log2388 **/2389 EthereumLog: {2390 address: 'H160',2391 topics: 'Vec<H256>',2392 data: 'Bytes'2393 },2394 /**2395 * Lookup295: pallet_ethereum::pallet::Event2396 **/2397 PalletEthereumEvent: {2398 _enum: {2399 Executed: '(H160,H160,H256,EvmCoreErrorExitReason)'2400 }2401 },2402 /**2403 * Lookup296: evm_core::error::ExitReason2404 **/2405 EvmCoreErrorExitReason: {2406 _enum: {2407 Succeed: 'EvmCoreErrorExitSucceed',2408 Error: 'EvmCoreErrorExitError',2409 Revert: 'EvmCoreErrorExitRevert',2410 Fatal: 'EvmCoreErrorExitFatal'2411 }2412 },2413 /**2414 * Lookup297: evm_core::error::ExitSucceed2415 **/2416 EvmCoreErrorExitSucceed: {2417 _enum: ['Stopped', 'Returned', 'Suicided']2418 },2419 /**2420 * Lookup298: evm_core::error::ExitError2421 **/2422 EvmCoreErrorExitError: {2423 _enum: {2424 StackUnderflow: 'Null',2425 StackOverflow: 'Null',2426 InvalidJump: 'Null',2427 InvalidRange: 'Null',2428 DesignatedInvalid: 'Null',2429 CallTooDeep: 'Null',2430 CreateCollision: 'Null',2431 CreateContractLimit: 'Null',2432 OutOfOffset: 'Null',2433 OutOfGas: 'Null',2434 OutOfFund: 'Null',2435 PCUnderflow: 'Null',2436 CreateEmpty: 'Null',2437 Other: 'Text',2438 InvalidCode: 'Null'2439 }2440 },2441 /**2442 * Lookup301: evm_core::error::ExitRevert2443 **/2444 EvmCoreErrorExitRevert: {2445 _enum: ['Reverted']2446 },2447 /**2448 * Lookup302: evm_core::error::ExitFatal2449 **/2450 EvmCoreErrorExitFatal: {2451 _enum: {2452 NotSupported: 'Null',2453 UnhandledInterrupt: 'Null',2454 CallErrorAsFatal: 'EvmCoreErrorExitError',2455 Other: 'Text'2456 }2457 },2458 /**2459 * Lookup303: frame_system::Phase2460 **/2461 FrameSystemPhase: {2462 _enum: {2463 ApplyExtrinsic: 'u32',2464 Finalization: 'Null',2465 Initialization: 'Null'2466 }2467 },2468 /**2469 * Lookup305: frame_system::LastRuntimeUpgradeInfo2470 **/2471 FrameSystemLastRuntimeUpgradeInfo: {2472 specVersion: 'Compact<u32>',2473 specName: 'Text'2474 },2475 /**2476 * Lookup306: frame_system::limits::BlockWeights2477 **/2478 FrameSystemLimitsBlockWeights: {2479 baseBlock: 'u64',2480 maxBlock: 'u64',2481 perClass: 'FrameSupportWeightsPerDispatchClassWeightsPerClass'2482 },2483 /**2484 * Lookup307: frame_support::weights::PerDispatchClass<frame_system::limits::WeightsPerClass>2485 **/2486 FrameSupportWeightsPerDispatchClassWeightsPerClass: {2487 normal: 'FrameSystemLimitsWeightsPerClass',2488 operational: 'FrameSystemLimitsWeightsPerClass',2489 mandatory: 'FrameSystemLimitsWeightsPerClass'2490 },2491 /**2492 * Lookup308: frame_system::limits::WeightsPerClass2493 **/2494 FrameSystemLimitsWeightsPerClass: {2495 baseExtrinsic: 'u64',2496 maxExtrinsic: 'Option<u64>',2497 maxTotal: 'Option<u64>',2498 reserved: 'Option<u64>'2499 },2500 /**2501 * Lookup310: frame_system::limits::BlockLength2502 **/2503 FrameSystemLimitsBlockLength: {2504 max: 'FrameSupportWeightsPerDispatchClassU32'2505 },2506 /**2507 * Lookup311: frame_support::weights::PerDispatchClass<T>2508 **/2509 FrameSupportWeightsPerDispatchClassU32: {2510 normal: 'u32',2511 operational: 'u32',2512 mandatory: 'u32'2513 },2514 /**2515 * Lookup312: frame_support::weights::RuntimeDbWeight2516 **/2517 FrameSupportWeightsRuntimeDbWeight: {2518 read: 'u64',2519 write: 'u64'2520 },2521 /**2522 * Lookup313: sp_version::RuntimeVersion2523 **/2524 SpVersionRuntimeVersion: {2525 specName: 'Text',2526 implName: 'Text',2527 authoringVersion: 'u32',2528 specVersion: 'u32',2529 implVersion: 'u32',2530 apis: 'Vec<([u8;8],u32)>',2531 transactionVersion: 'u32',2532 stateVersion: 'u8'2533 },2534 /**2535 * Lookup317: frame_system::pallet::Error<T>2536 **/2537 FrameSystemError: {2538 _enum: ['InvalidSpecName', 'SpecVersionNeedsToIncrease', 'FailedToExtractRuntimeVersion', 'NonDefaultComposite', 'NonZeroRefCount', 'CallFiltered']2539 },2540 /**2541 * Lookup319: orml_vesting::module::Error<T>2542 **/2543 OrmlVestingModuleError: {2544 _enum: ['ZeroVestingPeriod', 'ZeroVestingPeriodCount', 'InsufficientBalanceToLock', 'TooManyVestingSchedules', 'AmountLow', 'MaxVestingSchedulesExceeded']2545 },2546 /**2547 * Lookup321: cumulus_pallet_xcmp_queue::InboundChannelDetails2548 **/2549 CumulusPalletXcmpQueueInboundChannelDetails: {2550 sender: 'u32',2551 state: 'CumulusPalletXcmpQueueInboundState',2552 messageMetadata: 'Vec<(u32,PolkadotParachainPrimitivesXcmpMessageFormat)>'2553 },2554 /**2555 * Lookup322: cumulus_pallet_xcmp_queue::InboundState2556 **/2557 CumulusPalletXcmpQueueInboundState: {2558 _enum: ['Ok', 'Suspended']2559 },2560 /**2561 * Lookup325: polkadot_parachain::primitives::XcmpMessageFormat2562 **/2563 PolkadotParachainPrimitivesXcmpMessageFormat: {2564 _enum: ['ConcatenatedVersionedXcm', 'ConcatenatedEncodedBlob', 'Signals']2565 },2566 /**2567 * Lookup328: cumulus_pallet_xcmp_queue::OutboundChannelDetails2568 **/2569 CumulusPalletXcmpQueueOutboundChannelDetails: {2570 recipient: 'u32',2571 state: 'CumulusPalletXcmpQueueOutboundState',2572 signalsExist: 'bool',2573 firstIndex: 'u16',2574 lastIndex: 'u16'2575 },2576 /**2577 * Lookup329: cumulus_pallet_xcmp_queue::OutboundState2578 **/2579 CumulusPalletXcmpQueueOutboundState: {2580 _enum: ['Ok', 'Suspended']2581 },2582 /**2583 * Lookup331: cumulus_pallet_xcmp_queue::QueueConfigData2584 **/2585 CumulusPalletXcmpQueueQueueConfigData: {2586 suspendThreshold: 'u32',2587 dropThreshold: 'u32',2588 resumeThreshold: 'u32',2589 thresholdWeight: 'u64',2590 weightRestrictDecay: 'u64',2591 xcmpMaxIndividualWeight: 'u64'2592 },2593 /**2594 * Lookup333: cumulus_pallet_xcmp_queue::pallet::Error<T>2595 **/2596 CumulusPalletXcmpQueueError: {2597 _enum: ['FailedToSend', 'BadXcmOrigin', 'BadXcm', 'BadOverweightIndex', 'WeightOverLimit']2598 },2599 /**2600 * Lookup334: pallet_xcm::pallet::Error<T>2601 **/2602 PalletXcmError: {2603 _enum: ['Unreachable', 'SendFailure', 'Filtered', 'UnweighableMessage', 'DestinationNotInvertible', 'Empty', 'CannotReanchor', 'TooManyAssets', 'InvalidOrigin', 'BadVersion', 'BadLocation', 'NoSubscription', 'AlreadySubscribed']2604 },2605 /**2606 * Lookup335: cumulus_pallet_xcm::pallet::Error<T>2607 **/2608 CumulusPalletXcmError: 'Null',2609 /**2610 * Lookup336: cumulus_pallet_dmp_queue::ConfigData2611 **/2612 CumulusPalletDmpQueueConfigData: {2613 maxIndividual: 'u64'2614 },2615 /**2616 * Lookup337: cumulus_pallet_dmp_queue::PageIndexData2617 **/2618 CumulusPalletDmpQueuePageIndexData: {2619 beginUsed: 'u32',2620 endUsed: 'u32',2621 overweightCount: 'u64'2622 },2623 /**2624 * Lookup340: cumulus_pallet_dmp_queue::pallet::Error<T>2625 **/2626 CumulusPalletDmpQueueError: {2627 _enum: ['Unknown', 'OverLimit']2628 },2629 /**2630 * Lookup344: pallet_unique::Error<T>2631 **/2632 PalletUniqueError: {2633 _enum: ['CollectionDecimalPointLimitExceeded', 'ConfirmUnsetSponsorFail', 'EmptyArgument', 'RepartitionCalledOnNonRefungibleCollection']2634 },2635 /**2636 * Lookup347: pallet_unique_scheduler::ScheduledV3<frame_support::traits::schedule::MaybeHashed<opal_runtime::Call, primitive_types::H256>, BlockNumber, opal_runtime::OriginCaller, sp_core::crypto::AccountId32>2637 **/2638 PalletUniqueSchedulerScheduledV3: {2639 maybeId: 'Option<[u8;16]>',2640 priority: 'u8',2641 call: 'FrameSupportScheduleMaybeHashed',2642 maybePeriodic: 'Option<(u32,u32)>',2643 origin: 'OpalRuntimeOriginCaller'2644 },2645 /**2646 * Lookup348: opal_runtime::OriginCaller2647 **/2648 OpalRuntimeOriginCaller: {2649 _enum: {2650 __Unused0: 'Null',2651 __Unused1: 'Null',2652 __Unused2: 'Null',2653 __Unused3: 'Null',2654 Void: 'SpCoreVoid',2655 __Unused5: 'Null',2656 __Unused6: 'Null',2657 __Unused7: 'Null',2658 __Unused8: 'Null',2659 __Unused9: 'Null',2660 __Unused10: 'Null',2661 __Unused11: 'Null',2662 __Unused12: 'Null',2663 __Unused13: 'Null',2664 __Unused14: 'Null',2665 __Unused15: 'Null',2666 __Unused16: 'Null',2667 __Unused17: 'Null',2668 __Unused18: 'Null',2669 __Unused19: 'Null',2670 __Unused20: 'Null',2671 __Unused21: 'Null',2672 __Unused22: 'Null',2673 __Unused23: 'Null',2674 __Unused24: 'Null',2675 __Unused25: 'Null',2676 __Unused26: 'Null',2677 __Unused27: 'Null',2678 __Unused28: 'Null',2679 __Unused29: 'Null',2680 __Unused30: 'Null',2681 __Unused31: 'Null',2682 __Unused32: 'Null',2683 __Unused33: 'Null',2684 __Unused34: 'Null',2685 __Unused35: 'Null',2686 system: 'FrameSupportDispatchRawOrigin',2687 __Unused37: 'Null',2688 __Unused38: 'Null',2689 __Unused39: 'Null',2690 __Unused40: 'Null',2691 __Unused41: 'Null',2692 __Unused42: 'Null',2693 __Unused43: 'Null',2694 __Unused44: 'Null',2695 __Unused45: 'Null',2696 __Unused46: 'Null',2697 __Unused47: 'Null',2698 __Unused48: 'Null',2699 __Unused49: 'Null',2700 __Unused50: 'Null',2701 PolkadotXcm: 'PalletXcmOrigin',2702 CumulusXcm: 'CumulusPalletXcmOrigin',2703 __Unused53: 'Null',2704 __Unused54: 'Null',2705 __Unused55: 'Null',2706 __Unused56: 'Null',2707 __Unused57: 'Null',2708 __Unused58: 'Null',2709 __Unused59: 'Null',2710 __Unused60: 'Null',2711 __Unused61: 'Null',2712 __Unused62: 'Null',2713 __Unused63: 'Null',2714 __Unused64: 'Null',2715 __Unused65: 'Null',2716 __Unused66: 'Null',2717 __Unused67: 'Null',2718 __Unused68: 'Null',2719 __Unused69: 'Null',2720 __Unused70: 'Null',2721 __Unused71: 'Null',2722 __Unused72: 'Null',2723 __Unused73: 'Null',2724 __Unused74: 'Null',2725 __Unused75: 'Null',2726 __Unused76: 'Null',2727 __Unused77: 'Null',2728 __Unused78: 'Null',2729 __Unused79: 'Null',2730 __Unused80: 'Null',2731 __Unused81: 'Null',2732 __Unused82: 'Null',2733 __Unused83: 'Null',2734 __Unused84: 'Null',2735 __Unused85: 'Null',2736 __Unused86: 'Null',2737 __Unused87: 'Null',2738 __Unused88: 'Null',2739 __Unused89: 'Null',2740 __Unused90: 'Null',2741 __Unused91: 'Null',2742 __Unused92: 'Null',2743 __Unused93: 'Null',2744 __Unused94: 'Null',2745 __Unused95: 'Null',2746 __Unused96: 'Null',2747 __Unused97: 'Null',2748 __Unused98: 'Null',2749 __Unused99: 'Null',2750 __Unused100: 'Null',2751 Ethereum: 'PalletEthereumRawOrigin'2752 }2753 },2754 /**2755 * Lookup349: frame_support::dispatch::RawOrigin<sp_core::crypto::AccountId32>2756 **/2757 FrameSupportDispatchRawOrigin: {2758 _enum: {2759 Root: 'Null',2760 Signed: 'AccountId32',2761 None: 'Null'2762 }2763 },2764 /**2765 * Lookup350: pallet_xcm::pallet::Origin2766 **/2767 PalletXcmOrigin: {2768 _enum: {2769 Xcm: 'XcmV1MultiLocation',2770 Response: 'XcmV1MultiLocation'2771 }2772 },2773 /**2774 * Lookup351: cumulus_pallet_xcm::pallet::Origin2775 **/2776 CumulusPalletXcmOrigin: {2777 _enum: {2778 Relay: 'Null',2779 SiblingParachain: 'u32'2780 }2781 },2782 /**2783 * Lookup352: pallet_ethereum::RawOrigin2784 **/2785 PalletEthereumRawOrigin: {2786 _enum: {2787 EthereumTransaction: 'H160'2788 }2789 },2790 /**2791 * Lookup353: sp_core::Void2792 **/2793 SpCoreVoid: 'Null',2794 /**2795 * Lookup354: pallet_unique_scheduler::pallet::Error<T>2796 **/2797 PalletUniqueSchedulerError: {2798 _enum: ['FailedToSchedule', 'NotFound', 'TargetBlockNumberInPast', 'RescheduleNoChange']2799 },2800 /**2801 * Lookup355: up_data_structs::Collection<sp_core::crypto::AccountId32>2802 **/2803 UpDataStructsCollection: {2804 owner: 'AccountId32',2805 mode: 'UpDataStructsCollectionMode',2806 name: 'Vec<u16>',2807 description: 'Vec<u16>',2808 tokenPrefix: 'Bytes',2809 sponsorship: 'UpDataStructsSponsorshipState',2810 limits: 'UpDataStructsCollectionLimits',2811 permissions: 'UpDataStructsCollectionPermissions',2812 externalCollection: 'bool'2813 },2814 /**2815 * Lookup356: up_data_structs::SponsorshipState<sp_core::crypto::AccountId32>2816 **/2817 UpDataStructsSponsorshipState: {2818 _enum: {2819 Disabled: 'Null',2820 Unconfirmed: 'AccountId32',2821 Confirmed: 'AccountId32'2822 }2823 },2824 /**2825 * Lookup357: up_data_structs::Properties2826 **/2827 UpDataStructsProperties: {2828 map: 'UpDataStructsPropertiesMapBoundedVec',2829 consumedSpace: 'u32',2830 spaceLimit: 'u32'2831 },2832 /**2833 * Lookup358: up_data_structs::PropertiesMap<frame_support::storage::bounded_vec::BoundedVec<T, S>>2834 **/2835 UpDataStructsPropertiesMapBoundedVec: 'BTreeMap<Bytes, Bytes>',2836 /**2837 * Lookup363: up_data_structs::PropertiesMap<up_data_structs::PropertyPermission>2838 **/2839 UpDataStructsPropertiesMapPropertyPermission: 'BTreeMap<Bytes, UpDataStructsPropertyPermission>',2840 /**2841 * Lookup370: up_data_structs::CollectionStats2842 **/2843 UpDataStructsCollectionStats: {2844 created: 'u32',2845 destroyed: 'u32',2846 alive: 'u32'2847 },2848 /**2849 * Lookup371: up_data_structs::TokenChild2850 **/2851 UpDataStructsTokenChild: {2852 token: 'u32',2853 collection: 'u32'2854 },2855 /**2856 * Lookup372: PhantomType::up_data_structs<T>2857 **/2858 PhantomTypeUpDataStructs: '[(UpDataStructsTokenData,UpDataStructsRpcCollection,RmrkTraitsCollectionCollectionInfo,RmrkTraitsNftNftInfo,RmrkTraitsResourceResourceInfo,RmrkTraitsPropertyPropertyInfo,RmrkTraitsBaseBaseInfo,RmrkTraitsPartPartType,RmrkTraitsTheme,RmrkTraitsNftNftChild);0]',2859 /**2860 * Lookup374: up_data_structs::TokenData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2861 **/2862 UpDataStructsTokenData: {2863 properties: 'Vec<UpDataStructsProperty>',2864 owner: 'Option<PalletEvmAccountBasicCrossAccountIdRepr>',2865 pieces: 'u128'2866 },2867 /**2868 * Lookup376: up_data_structs::RpcCollection<sp_core::crypto::AccountId32>2869 **/2870 UpDataStructsRpcCollection: {2871 owner: 'AccountId32',2872 mode: 'UpDataStructsCollectionMode',2873 name: 'Vec<u16>',2874 description: 'Vec<u16>',2875 tokenPrefix: 'Bytes',2876 sponsorship: 'UpDataStructsSponsorshipState',2877 limits: 'UpDataStructsCollectionLimits',2878 permissions: 'UpDataStructsCollectionPermissions',2879 tokenPropertyPermissions: 'Vec<UpDataStructsPropertyKeyPermission>',2880 properties: 'Vec<UpDataStructsProperty>',2881 readOnly: 'bool'2882 },2883 /**2884 * Lookup377: rmrk_traits::collection::CollectionInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>, sp_core::crypto::AccountId32>2885 **/2886 RmrkTraitsCollectionCollectionInfo: {2887 issuer: 'AccountId32',2888 metadata: 'Bytes',2889 max: 'Option<u32>',2890 symbol: 'Bytes',2891 nftsCount: 'u32'2892 },2893 /**2894 * Lookup378: rmrk_traits::nft::NftInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill, frame_support::storage::bounded_vec::BoundedVec<T, S>>2895 **/2896 RmrkTraitsNftNftInfo: {2897 owner: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',2898 royalty: 'Option<RmrkTraitsNftRoyaltyInfo>',2899 metadata: 'Bytes',2900 equipped: 'bool',2901 pending: 'bool'2902 },2903 /**2904 * Lookup380: rmrk_traits::nft::RoyaltyInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill>2905 **/2906 RmrkTraitsNftRoyaltyInfo: {2907 recipient: 'AccountId32',2908 amount: 'Permill'2909 },2910 /**2911 * Lookup381: rmrk_traits::resource::ResourceInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>2912 **/2913 RmrkTraitsResourceResourceInfo: {2914 id: 'u32',2915 resource: 'RmrkTraitsResourceResourceTypes',2916 pending: 'bool',2917 pendingRemoval: 'bool'2918 },2919 /**2920 * Lookup382: rmrk_traits::property::PropertyInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>2921 **/2922 RmrkTraitsPropertyPropertyInfo: {2923 key: 'Bytes',2924 value: 'Bytes'2925 },2926 /**2927 * Lookup383: rmrk_traits::base::BaseInfo<sp_core::crypto::AccountId32, frame_support::storage::bounded_vec::BoundedVec<T, S>>2928 **/2929 RmrkTraitsBaseBaseInfo: {2930 issuer: 'AccountId32',2931 baseType: 'Bytes',2932 symbol: 'Bytes'2933 },2934 /**2935 * Lookup384: rmrk_traits::nft::NftChild2936 **/2937 RmrkTraitsNftNftChild: {2938 collectionId: 'u32',2939 nftId: 'u32'2940 },2941 /**2942 * Lookup386: pallet_common::pallet::Error<T>2943 **/2944 PalletCommonError: {2945 _enum: ['CollectionNotFound', 'MustBeTokenOwner', 'NoPermission', 'CantDestroyNotEmptyCollection', 'PublicMintingNotAllowed', 'AddressNotInAllowlist', 'CollectionNameLimitExceeded', 'CollectionDescriptionLimitExceeded', 'CollectionTokenPrefixLimitExceeded', 'TotalCollectionsLimitExceeded', 'CollectionAdminCountExceeded', 'CollectionLimitBoundsExceeded', 'OwnerPermissionsCantBeReverted', 'TransferNotAllowed', 'AccountTokenLimitExceeded', 'CollectionTokenLimitExceeded', 'MetadataFlagFrozen', 'TokenNotFound', 'TokenValueTooLow', 'ApprovedValueTooLow', 'CantApproveMoreThanOwned', 'AddressIsZero', 'UnsupportedOperation', 'NotSufficientFounds', 'UserIsNotAllowedToNest', 'SourceCollectionIsNotAllowedToNest', 'CollectionFieldSizeExceeded', 'NoSpaceForProperty', 'PropertyLimitReached', 'PropertyKeyIsTooLong', 'InvalidCharacterInPropertyKey', 'EmptyPropertyKey', 'CollectionIsExternal', 'CollectionIsInternal']2946 },2947 /**2948 * Lookup388: pallet_fungible::pallet::Error<T>2949 **/2950 PalletFungibleError: {2951 _enum: ['NotFungibleDataUsedToMintFungibleCollectionToken', 'FungibleItemsHaveNoId', 'FungibleItemsDontHaveData', 'FungibleDisallowsNesting', 'SettingPropertiesNotAllowed']2952 },2953 /**2954 * Lookup389: pallet_refungible::ItemData2955 **/2956 PalletRefungibleItemData: {2957 constData: 'Bytes'2958 },2959 /**2960 * Lookup393: pallet_refungible::pallet::Error<T>2961 **/2962 PalletRefungibleError: {2963 _enum: ['NotRefungibleDataUsedToMintFungibleCollectionToken', 'WrongRefungiblePieces', 'RepartitionWhileNotOwningAllPieces', 'RefungibleDisallowsNesting', 'SettingPropertiesNotAllowed']2964 },2965 /**2966 * Lookup394: pallet_nonfungible::ItemData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2967 **/2968 PalletNonfungibleItemData: {2969 owner: 'PalletEvmAccountBasicCrossAccountIdRepr'2970 },2971 /**2972 * Lookup396: up_data_structs::PropertyScope2973 **/2974 UpDataStructsPropertyScope: {2975 _enum: ['None', 'Rmrk']2976 },2977 /**2978 * Lookup398: pallet_nonfungible::pallet::Error<T>2979 **/2980 PalletNonfungibleError: {2981 _enum: ['NotNonfungibleDataUsedToMintFungibleCollectionToken', 'NonfungibleItemsHaveNoAmount', 'CantBurnNftWithChildren']2982 },2983 /**2984 * Lookup399: pallet_structure::pallet::Error<T>2985 **/2986 PalletStructureError: {2987 _enum: ['OuroborosDetected', 'DepthLimit', 'BreadthLimit', 'TokenNotFound']2988 },2989 /**2990 * Lookup400: pallet_rmrk_core::pallet::Error<T>2991 **/2992 PalletRmrkCoreError: {2993 _enum: ['CorruptedCollectionType', 'NftTypeEncodeError', 'RmrkPropertyKeyIsTooLong', 'RmrkPropertyValueIsTooLong', 'RmrkPropertyIsNotFound', 'UnableToDecodeRmrkData', 'CollectionNotEmpty', 'NoAvailableCollectionId', 'NoAvailableNftId', 'CollectionUnknown', 'NoPermission', 'NonTransferable', 'CollectionFullOrLocked', 'ResourceDoesntExist', 'CannotSendToDescendentOrSelf', 'CannotAcceptNonOwnedNft', 'CannotRejectNonOwnedNft', 'CannotRejectNonPendingNft', 'ResourceNotPending', 'NoAvailableResourceId']2994 },2995 /**2996 * Lookup402: pallet_rmrk_equip::pallet::Error<T>2997 **/2998 PalletRmrkEquipError: {2999 _enum: ['PermissionError', 'NoAvailableBaseId', 'NoAvailablePartId', 'BaseDoesntExist', 'NeedsDefaultThemeFirst', 'PartDoesntExist', 'NoEquippableOnFixedPart']3000 },3001 /**3002 * Lookup405: pallet_evm::pallet::Error<T>3003 **/3004 PalletEvmError: {3005 _enum: ['BalanceLow', 'FeeOverflow', 'PaymentOverflow', 'WithdrawFailed', 'GasPriceTooLow', 'InvalidNonce']3006 },3007 /**3008 * Lookup408: fp_rpc::TransactionStatus3009 **/3010 FpRpcTransactionStatus: {3011 transactionHash: 'H256',3012 transactionIndex: 'u32',3013 from: 'H160',3014 to: 'Option<H160>',3015 contractAddress: 'Option<H160>',3016 logs: 'Vec<EthereumLog>',3017 logsBloom: 'EthbloomBloom'3018 },3019 /**3020 * Lookup410: ethbloom::Bloom3021 **/3022 EthbloomBloom: '[u8;256]',3023 /**3024 * Lookup412: ethereum::receipt::ReceiptV33025 **/3026 EthereumReceiptReceiptV3: {3027 _enum: {3028 Legacy: 'EthereumReceiptEip658ReceiptData',3029 EIP2930: 'EthereumReceiptEip658ReceiptData',3030 EIP1559: 'EthereumReceiptEip658ReceiptData'3031 }3032 },3033 /**3034 * Lookup413: ethereum::receipt::EIP658ReceiptData3035 **/3036 EthereumReceiptEip658ReceiptData: {3037 statusCode: 'u8',3038 usedGas: 'U256',3039 logsBloom: 'EthbloomBloom',3040 logs: 'Vec<EthereumLog>'3041 },3042 /**3043 * Lookup414: ethereum::block::Block<ethereum::transaction::TransactionV2>3044 **/3045 EthereumBlock: {3046 header: 'EthereumHeader',3047 transactions: 'Vec<EthereumTransactionTransactionV2>',3048 ommers: 'Vec<EthereumHeader>'3049 },3050 /**3051 * Lookup415: ethereum::header::Header3052 **/3053 EthereumHeader: {3054 parentHash: 'H256',3055 ommersHash: 'H256',3056 beneficiary: 'H160',3057 stateRoot: 'H256',3058 transactionsRoot: 'H256',3059 receiptsRoot: 'H256',3060 logsBloom: 'EthbloomBloom',3061 difficulty: 'U256',3062 number: 'U256',3063 gasLimit: 'U256',3064 gasUsed: 'U256',3065 timestamp: 'u64',3066 extraData: 'Bytes',3067 mixHash: 'H256',3068 nonce: 'EthereumTypesHashH64'3069 },3070 /**3071 * Lookup416: ethereum_types::hash::H643072 **/3073 EthereumTypesHashH64: '[u8;8]',3074 /**3075 * Lookup421: pallet_ethereum::pallet::Error<T>3076 **/3077 PalletEthereumError: {3078 _enum: ['InvalidSignature', 'PreLogExists']3079 },3080 /**3081 * Lookup422: pallet_evm_coder_substrate::pallet::Error<T>3082 **/3083 PalletEvmCoderSubstrateError: {3084 _enum: ['OutOfGas', 'OutOfFund']3085 },3086 /**3087 * Lookup423: pallet_evm_contract_helpers::SponsoringModeT3088 **/3089 PalletEvmContractHelpersSponsoringModeT: {3090 _enum: ['Disabled', 'Allowlisted', 'Generous']3091 },3092 /**3093 * Lookup425: pallet_evm_contract_helpers::pallet::Error<T>3094 **/3095 PalletEvmContractHelpersError: {3096 _enum: ['NoPermission']3097 },3098 /**3099 * Lookup426: pallet_evm_migration::pallet::Error<T>3100 **/3101 PalletEvmMigrationError: {3102 _enum: ['AccountNotEmpty', 'AccountIsNotMigrating']3103 },3104 /**3105 * Lookup428: sp_runtime::MultiSignature3106 **/3107 SpRuntimeMultiSignature: {3108 _enum: {3109 Ed25519: 'SpCoreEd25519Signature',3110 Sr25519: 'SpCoreSr25519Signature',3111 Ecdsa: 'SpCoreEcdsaSignature'3112 }3113 },3114 /**3115 * Lookup429: sp_core::ed25519::Signature3116 **/3117 SpCoreEd25519Signature: '[u8;64]',3118 /**3119 * Lookup431: sp_core::sr25519::Signature3120 **/3121 SpCoreSr25519Signature: '[u8;64]',3122 /**3123 * Lookup432: sp_core::ecdsa::Signature3124 **/3125 SpCoreEcdsaSignature: '[u8;65]',3126 /**3127 * Lookup435: frame_system::extensions::check_spec_version::CheckSpecVersion<T>3128 **/3129 FrameSystemExtensionsCheckSpecVersion: 'Null',3130 /**3131 * Lookup436: frame_system::extensions::check_genesis::CheckGenesis<T>3132 **/3133 FrameSystemExtensionsCheckGenesis: 'Null',3134 /**3135 * Lookup439: frame_system::extensions::check_nonce::CheckNonce<T>3136 **/3137 FrameSystemExtensionsCheckNonce: 'Compact<u32>',3138 /**3139 * Lookup440: frame_system::extensions::check_weight::CheckWeight<T>3140 **/3141 FrameSystemExtensionsCheckWeight: 'Null',3142 /**3143 * Lookup441: pallet_template_transaction_payment::ChargeTransactionPayment<opal_runtime::Runtime>3144 **/3145 PalletTemplateTransactionPaymentChargeTransactionPayment: 'Compact<u128>',3146 /**3147 * Lookup442: opal_runtime::Runtime3148 **/3149 OpalRuntimeRuntime: 'Null',3150 /**3151 * Lookup443: pallet_ethereum::FakeTransactionFinalizer<opal_runtime::Runtime>3152 **/3153 PalletEthereumFakeTransactionFinalizer: 'Null'3154};tests/src/interfaces/types-lookup.tsdiffbeforeafterboth--- a/tests/src/interfaces/types-lookup.ts
+++ b/tests/src/interfaces/types-lookup.ts
@@ -1385,7 +1385,7 @@
readonly isAddCollectionAdmin: boolean;
readonly asAddCollectionAdmin: {
readonly collectionId: u32;
- readonly newAdminId: PalletEvmAccountBasicCrossAccountIdRepr;
+ readonly newAdmin: PalletEvmAccountBasicCrossAccountIdRepr;
} & Struct;
readonly isRemoveCollectionAdmin: boolean;
readonly asRemoveCollectionAdmin: {
@@ -1497,12 +1497,12 @@
readonly isSetCollectionPermissions: boolean;
readonly asSetCollectionPermissions: {
readonly collectionId: u32;
- readonly newLimit: UpDataStructsCollectionPermissions;
+ readonly newPermission: UpDataStructsCollectionPermissions;
} & Struct;
readonly isRepartition: boolean;
readonly asRepartition: {
readonly collectionId: u32;
- readonly token: u32;
+ readonly tokenId: u32;
readonly amount: u128;
} & Struct;
readonly type: 'CreateCollection' | 'CreateCollectionEx' | 'DestroyCollection' | 'AddToAllowList' | 'RemoveFromAllowList' | 'ChangeCollectionOwner' | 'AddCollectionAdmin' | 'RemoveCollectionAdmin' | 'SetCollectionSponsor' | 'ConfirmSponsorship' | 'RemoveCollectionSponsor' | 'CreateItem' | 'CreateMultipleItems' | 'SetCollectionProperties' | 'DeleteCollectionProperties' | 'SetTokenProperties' | 'DeleteTokenProperties' | 'SetTokenPropertyPermissions' | 'CreateMultipleItemsEx' | 'SetTransfersEnabledFlag' | 'BurnItem' | 'BurnFrom' | 'Transfer' | 'Approve' | 'TransferFrom' | 'SetCollectionLimits' | 'SetCollectionPermissions' | 'Repartition';
tests/src/interfaces/unique/definitions.tsdiffbeforeafterboth--- a/tests/src/interfaces/unique/definitions.ts
+++ b/tests/src/interfaces/unique/definitions.ts
@@ -37,49 +37,143 @@
export default {
types: {},
rpc: {
- adminlist: fun('Get admin list', [collectionParam], 'Vec<PalletEvmAccountBasicCrossAccountIdRepr>'),
- allowlist: fun('Get allowlist', [collectionParam], 'Vec<PalletEvmAccountBasicCrossAccountIdRepr>'),
+ accountTokens: fun(
+ 'Get tokens owned by an account in a collection',
+ [collectionParam, crossAccountParam()],
+ 'Vec<u32>',
+ ),
+ collectionTokens: fun(
+ 'Get tokens contained within a collection',
+ [collectionParam],
+ 'Vec<u32>',
+ ),
+ tokenExists: fun(
+ 'Check if the token exists',
+ [collectionParam, tokenParam],
+ 'bool',
+ ),
- accountTokens: fun('Get tokens owned by account', [collectionParam, crossAccountParam()], 'Vec<u32>'),
- collectionTokens: fun('Get tokens contained in collection', [collectionParam], 'Vec<u32>'),
+ tokenOwner: fun(
+ 'Get the token owner',
+ [collectionParam, tokenParam],
+ `Option<${CROSS_ACCOUNT_ID_TYPE}>`,
+ ),
+ topmostTokenOwner: fun(
+ 'Get the topmost token owner in the hierarchy of a possibly nested token',
+ [collectionParam, tokenParam],
+ `Option<${CROSS_ACCOUNT_ID_TYPE}>`,
+ ),
+ tokenOwners: fun(
+ 'Returns 10 tokens owners in no particular order',
+ [collectionParam, tokenParam],
+ `Vec<${CROSS_ACCOUNT_ID_TYPE}>`,
+ ),
+ tokenChildren: fun(
+ 'Get tokens nested directly into the token',
+ [collectionParam, tokenParam],
+ 'Vec<UpDataStructsTokenChild>',
+ ),
- lastTokenId: fun('Get last token id', [collectionParam], 'u32'),
- totalSupply: fun('Get amount of unique collection tokens', [collectionParam], 'u32'),
- accountBalance: fun('Get amount of different user tokens', [collectionParam, crossAccountParam()], 'u32'),
- balance: fun('Get amount of specific account token', [collectionParam, crossAccountParam(), tokenParam], 'u128'),
- allowance: fun('Get allowed amount', [collectionParam, crossAccountParam('sender'), crossAccountParam('spender'), tokenParam], 'u128'),
- tokenOwner: fun('Get token owner', [collectionParam, tokenParam], `Option<${CROSS_ACCOUNT_ID_TYPE}>`),
- tokenOwners: fun('Returns 10 tokens owners in no particular order', [collectionParam, tokenParam], `Vec<${CROSS_ACCOUNT_ID_TYPE}>`),
- topmostTokenOwner: fun('Get token owner, in case of nested token - find parent recursive', [collectionParam, tokenParam], `Option<${CROSS_ACCOUNT_ID_TYPE}>`),
- tokenChildren: fun('Get tokens nested directly into the token', [collectionParam, tokenParam], 'Vec<UpDataStructsTokenChild>'),
- constMetadata: fun('Get token constant metadata', [collectionParam, tokenParam], 'Vec<u8>'),
- variableMetadata: fun('Get token variable metadata', [collectionParam, tokenParam], 'Vec<u8>'),
collectionProperties: fun(
- 'Get collection properties',
+ 'Get collection properties, optionally limited to the provided keys',
[collectionParam, propertyKeysParam],
'Vec<UpDataStructsProperty>',
),
tokenProperties: fun(
- 'Get token properties',
+ 'Get token properties, optionally limited to the provided keys',
[collectionParam, tokenParam, propertyKeysParam],
'Vec<UpDataStructsProperty>',
),
propertyPermissions: fun(
- 'Get property permissions',
+ 'Get property permissions, optionally limited to the provided keys',
[collectionParam, propertyKeysParam],
'Vec<UpDataStructsPropertyKeyPermission>',
),
+
+ constMetadata: fun(
+ 'Get token constant metadata',
+ [collectionParam, tokenParam],
+ 'Vec<u8>',
+ ),
+ variableMetadata: fun(
+ 'Get token variable metadata',
+ [collectionParam, tokenParam],
+ 'Vec<u8>',
+ ),
+
tokenData: fun(
- 'Get token data',
+ 'Get token data, including properties, optionally limited to the provided keys, and total pieces for an RFT',
[collectionParam, tokenParam, propertyKeysParam],
'UpDataStructsTokenData',
),
- tokenExists: fun('Check if token exists', [collectionParam, tokenParam], 'bool'),
- collectionById: fun('Get collection by specified id', [collectionParam], 'Option<UpDataStructsRpcCollection>'),
- collectionStats: fun('Get collection stats', [], 'UpDataStructsCollectionStats'),
- allowed: fun('Check if user is allowed to use collection', [collectionParam, crossAccountParam()], 'bool'),
- nextSponsored: fun('Get number of blocks when sponsored transaction is available', [collectionParam, crossAccountParam(), tokenParam], 'Option<u64>'),
- effectiveCollectionLimits: fun('Get effective collection limits', [collectionParam], 'Option<UpDataStructsCollectionLimits>'),
- totalPieces: fun('Get total pieces of token', [collectionParam, tokenParam], 'Option<u128>'),
+ totalSupply: fun(
+ 'Get the amount of distinctive tokens present in a collection',
+ [collectionParam],
+ 'u32',
+ ),
+
+ accountBalance: fun(
+ 'Get the amount of any user tokens owned by an account',
+ [collectionParam, crossAccountParam()],
+ 'u32',
+ ),
+ balance: fun(
+ 'Get the amount of a specific token owned by an account',
+ [collectionParam, crossAccountParam(), tokenParam],
+ 'u128',
+ ),
+ allowance: fun(
+ 'Get the amount of currently possible sponsored transactions on a token for the fee to be taken off a sponsor',
+ [collectionParam, crossAccountParam('sender'), crossAccountParam('spender'), tokenParam],
+ 'u128',
+ ),
+
+ adminlist: fun(
+ 'Get the list of admin accounts of a collection',
+ [collectionParam],
+ 'Vec<PalletEvmAccountBasicCrossAccountIdRepr>',
+ ),
+ allowlist: fun(
+ 'Get the list of accounts allowed to operate within a collection',
+ [collectionParam],
+ 'Vec<PalletEvmAccountBasicCrossAccountIdRepr>',
+ ),
+ allowed: fun(
+ 'Check if a user is allowed to operate within a collection',
+ [collectionParam, crossAccountParam()],
+ 'bool',
+ ),
+
+ lastTokenId: fun(
+ 'Get the last token ID created in a collection',
+ [collectionParam],
+ 'u32',
+ ),
+ collectionById: fun(
+ 'Get a collection by the specified ID',
+ [collectionParam],
+ 'Option<UpDataStructsRpcCollection>',
+ ),
+ collectionStats: fun(
+ 'Get chain stats about collections',
+ [],
+ 'UpDataStructsCollectionStats',
+ ),
+
+ nextSponsored: fun(
+ 'Get the number of blocks until sponsoring a transaction is available',
+ [collectionParam, crossAccountParam(), tokenParam],
+ 'Option<u64>',
+ ),
+ effectiveCollectionLimits: fun(
+ 'Get effective collection limits',
+ [collectionParam],
+ 'Option<UpDataStructsCollectionLimits>',
+ ),
+ totalPieces: fun(
+ 'Get the total amount of pieces of an RFT',
+ [collectionParam, tokenParam],
+ 'Option<u128>',
+ ),
},
};