From 504df77ef385df7032fc3eb709cf08d84a2c651c Mon Sep 17 00:00:00 2001 From: Yaroslav Bolyukin Date: Fri, 10 Jun 2022 09:59:38 +0000 Subject: [PATCH] refactor: nesting permission structure --- --- a/pallets/common/src/benchmarking.rs +++ b/pallets/common/src/benchmarking.rs @@ -20,7 +20,7 @@ use frame_benchmarking::{benchmarks, account}; use up_data_structs::{ CollectionMode, CreateCollectionData, CollectionId, Property, PropertyKey, PropertyValue, - CollectionPermissions, NestingRule, MAX_COLLECTION_NAME_LENGTH, + CollectionPermissions, NestingPermissions, MAX_COLLECTION_NAME_LENGTH, MAX_COLLECTION_DESCRIPTION_LENGTH, MAX_TOKEN_PREFIX_LENGTH, MAX_PROPERTIES_PER_ITEM, }; use frame_support::{ @@ -94,7 +94,12 @@ description, token_prefix, permissions: Some(CollectionPermissions { - nesting: Some(NestingRule::Permissive), + nesting: Some(NestingPermissions { + token_owner: false, + admin: false, + restricted: None, + permissive: true, + }), ..Default::default() }), ..Default::default() --- a/pallets/common/src/erc.rs +++ b/pallets/common/src/erc.rs @@ -22,7 +22,7 @@ pub use pallet_evm::{PrecompileOutput, PrecompileResult, PrecompileHandle, account::CrossAccountId}; use pallet_evm_coder_substrate::dispatch_to_evm; use sp_std::vec::Vec; -use up_data_structs::{Property, SponsoringRateLimit, NestingRule, OwnerRestrictedSet, AccessMode}; +use up_data_structs::{Property, SponsoringRateLimit, OwnerRestrictedSet, AccessMode}; use alloc::format; use crate::{Pallet, CollectionHandle, Config, CollectionProperties}; @@ -215,12 +215,21 @@ let caller = T::CrossAccountId::from_eth(caller); self.check_is_owner_or_admin(&caller) .map_err(dispatch_to_evm::)?; - self.collection.permissions.nesting = Some(match enable { - false => NestingRule::Disabled, - true => NestingRule::Owner, - }); - save(self)?; - Ok(()) + + let mut permissions = self.collection.permissions.clone(); + let mut nesting = permissions.nesting().clone(); + nesting.token_owner = enable; + nesting.restricted = None; + permissions.nesting = Some(nesting); + + self.collection.permissions = >::clamp_permissions( + self.collection.mode.clone(), + &self.collection.permissions, + permissions, + ) + .map_err(dispatch_to_evm::)?; + + save(self) } #[solidity(rename_selector = "setCollectionNesting")] @@ -233,31 +242,41 @@ if collections.is_empty() { return Err("No addresses provided".into()); } - if collections.len() >= OwnerRestrictedSet::bound() { - return Err(Error::Revert(format!( - "Out of bound: {} >= {}", - collections.len(), - OwnerRestrictedSet::bound() - ))); - } let caller = T::CrossAccountId::from_eth(caller); self.check_is_owner_or_admin(&caller) .map_err(dispatch_to_evm::)?; - self.collection.permissions.nesting = Some(match enable { - false => NestingRule::Disabled, + + let mut permissions = self.collection.permissions.clone(); + match enable { + false => { + let mut nesting = permissions.nesting().clone(); + nesting.token_owner = false; + nesting.restricted = None; + permissions.nesting = Some(nesting); + } true => { let mut bv = OwnerRestrictedSet::new(); for i in collections { bv.try_insert(crate::eth::map_eth_to_id(&i).ok_or(Error::Revert( "Can't convert address into collection id".into(), ))?) - .map_err(|e| Error::Revert(format!("{:?}", e)))?; + .map_err(|_| "too many collections")?; } - NestingRule::OwnerRestricted(bv) + let mut nesting = permissions.nesting().clone(); + nesting.token_owner = true; + nesting.restricted = Some(bv); + permissions.nesting = Some(nesting); } - }); - save(self)?; - Ok(()) + }; + + self.collection.permissions = >::clamp_permissions( + self.collection.mode.clone(), + &self.collection.permissions, + permissions, + ) + .map_err(dispatch_to_evm::)?; + + save(self) } fn set_collection_access(&mut self, caller: caller, mode: uint8) -> Result { --- a/pallets/common/src/lib.rs +++ b/pallets/common/src/lib.rs @@ -430,10 +430,8 @@ /// Not sufficient funds to perform action NotSufficientFounds, - /// Collection has nesting disabled - NestingIsDisabled, - /// Only owner may nest tokens under this collection - OnlyOwnerAllowedToNest, + /// User not passed nesting rule + UserIsNotAllowedToNest, /// Only tokens from specific collections may nest tokens under this SourceCollectionIsNotAllowedToNest, @@ -1212,7 +1210,11 @@ limit_default_clone!(old_limit, new_limit, access => {}, mint_mode => {}, - nesting => {}, + nesting => ensure!( + // Permissive is only allowed for tests and internal usage of chain for now + old_limit.permissive || !new_limit.permissive, + >::NoPermission, + ), ); Ok(new_limit) } --- a/pallets/nonfungible/src/lib.rs +++ b/pallets/nonfungible/src/lib.rs @@ -27,8 +27,8 @@ }; use up_data_structs::{ AccessMode, CollectionId, CustomDataLimit, TokenId, CreateCollectionData, CreateNftExData, - mapping::TokenAddressMapping, NestingRule, budget::Budget, Property, PropertyPermission, - PropertyKey, PropertyKeyPermission, Properties, PropertyScope, TrySetProperty, TokenChild, + mapping::TokenAddressMapping, budget::Budget, Property, PropertyPermission, PropertyKey, + PropertyKeyPermission, Properties, PropertyScope, TrySetProperty, TokenChild, }; use pallet_evm::{account::CrossAccountId, Pallet as PalletEvm}; use pallet_common::{ @@ -996,38 +996,29 @@ under: TokenId, nesting_budget: &dyn Budget, ) -> DispatchResult { - fn ensure_sender_allowed( - collection: CollectionId, - token: TokenId, - for_nest: (CollectionId, TokenId), - sender: T::CrossAccountId, - budget: &dyn Budget, - ) -> DispatchResult { + let nesting = handle.permissions.nesting(); + if nesting.permissive { + // Pass + } else if nesting.token_owner + && >::check_indirectly_owned( + sender.clone(), + handle.id, + under, + Some(from), + nesting_budget, + )? { + // Pass + } else if nesting.admin && handle.is_owner_or_admin(&sender) { + // Pass + } else { + fail!(>::UserIsNotAllowedToNest); + } + + if let Some(whitelist) = &nesting.restricted { ensure!( - >::check_indirectly_owned( - sender, - collection, - token, - Some(for_nest), - budget - )?, - >::OnlyOwnerAllowedToNest, + whitelist.contains(&from.0), + >::SourceCollectionIsNotAllowedToNest ); - Ok(()) - } - match handle.permissions.nesting() { - NestingRule::Disabled => fail!(>::NestingIsDisabled), - NestingRule::Owner => { - ensure_sender_allowed::(handle.id, under, from, sender, nesting_budget)? - } - NestingRule::OwnerRestricted(whitelist) => { - ensure!( - whitelist.contains(&from.0), - >::SourceCollectionIsNotAllowedToNest - ); - ensure_sender_allowed::(handle.id, under, from, sender, nesting_budget)? - } - NestingRule::Permissive => {} } Ok(()) } --- a/pallets/proxy-rmrk-core/src/lib.rs +++ b/pallets/proxy-rmrk-core/src/lib.rs @@ -200,7 +200,13 @@ .try_into() .map_err(|_| >::CollectionTokenPrefixLimitExceeded)?, permissions: Some(CollectionPermissions { - nesting: Some(NestingRule::Owner), + nesting: Some(NestingPermissions { + token_owner: true, + admin: false, + restricted: None, + + permissive: false, + }), ..Default::default() }), ..Default::default() @@ -600,7 +606,7 @@ &budget, ) .map_err(|err| { - if err == >::OnlyOwnerAllowedToNest.into() { + if err == >::UserIsNotAllowedToNest.into() { >::CannotAcceptNonOwnedNft.into() } else { Self::map_unique_err_to_proxy(err) --- a/primitives/data-structs/src/lib.rs +++ b/primitives/data-structs/src/lib.rs @@ -441,7 +441,7 @@ pub struct CollectionPermissions { pub access: Option, pub mint_mode: Option, - pub nesting: Option, + pub nesting: Option, } impl CollectionPermissions { @@ -451,30 +451,58 @@ pub fn mint_mode(&self) -> bool { self.mint_mode.unwrap_or(false) } - pub fn nesting(&self) -> &NestingRule { - static DEFAULT: NestingRule = NestingRule::Disabled; + pub fn nesting(&self) -> &NestingPermissions { + static DEFAULT: NestingPermissions = NestingPermissions { + token_owner: false, + admin: false, + restricted: None, + + permissive: false, + }; self.nesting.as_ref().unwrap_or(&DEFAULT) } } -pub type OwnerRestrictedSet = BoundedBTreeSet>; +type OwnerRestrictedSetInner = BoundedBTreeSet>; + +#[derive(Encode, Decode, Clone, PartialEq, TypeInfo, MaxEncodedLen, Derivative)] +#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))] +#[derivative(Debug)] +pub struct OwnerRestrictedSet( + #[cfg_attr(feature = "serde1", serde(with = "bounded::set_serde"))] + #[derivative(Debug(format_with = "bounded::set_debug"))] + pub OwnerRestrictedSetInner, +); +impl OwnerRestrictedSet { + pub fn new() -> Self { + Self(Default::default()) + } +} +impl core::ops::Deref for OwnerRestrictedSet { + type Target = OwnerRestrictedSetInner; + fn deref(&self) -> &Self::Target { + &self.0 + } +} +impl core::ops::DerefMut for OwnerRestrictedSet { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } +} #[derive(Encode, Decode, Clone, PartialEq, TypeInfo, MaxEncodedLen, Derivative)] #[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))] #[derivative(Debug)] -pub enum NestingRule { - /// No one can nest tokens - Disabled, - /// Owner can nest any tokens - Owner, - /// Owner can nest tokens from specified collections - OwnerRestricted( - #[cfg_attr(feature = "serde1", serde(with = "bounded::set_serde"))] - #[derivative(Debug(format_with = "bounded::set_debug"))] - OwnerRestrictedSet, - ), - /// Used for tests - Permissive, +pub struct NestingPermissions { + /// Owner of token can nest tokens under it + pub token_owner: bool, + /// Admin of token collection can nest tokens under token + pub admin: bool, + /// If set - only tokens from specified collections can be nested + pub restricted: Option, + + /// Anyone can nest tokens, mutually exclusive with `token_owner`, `admin` + pub permissive: bool, } #[derive(Encode, Decode, Debug, Clone, Copy, PartialEq, TypeInfo, MaxEncodedLen)] --- a/tests/package.json +++ b/tests/package.json @@ -5,7 +5,7 @@ "main": "", "devDependencies": { "@polkadot/ts": "0.4.22", - "@polkadot/typegen": "8.7.2-11", + "@polkadot/typegen": "8.7.2-15", "@types/chai": "^4.3.1", "@types/chai-as-promised": "^7.1.5", "@types/mocha": "^9.1.1", @@ -86,8 +86,8 @@ "license": "SEE LICENSE IN ../LICENSE", "homepage": "", "dependencies": { - "@polkadot/api": "8.7.2-11", - "@polkadot/api-contract": "8.7.2-11", + "@polkadot/api": "8.7.2-15", + "@polkadot/api-contract": "8.7.2-15", "@polkadot/util-crypto": "9.4.1", "bignumber.js": "^9.0.2", "chai-as-promised": "^7.1.1", --- a/tests/src/interfaces/augment-api-errors.ts +++ b/tests/src/interfaces/augment-api-errors.ts @@ -125,10 +125,6 @@ **/ MustBeTokenOwner: AugmentedError; /** - * Collection has nesting disabled - **/ - NestingIsDisabled: AugmentedError; - /** * No permission to perform action **/ NoPermission: AugmentedError; @@ -137,13 +133,9 @@ **/ NoSpaceForProperty: AugmentedError; /** - * Not sufficient founds to perform action + * Not sufficient funds to perform action **/ NotSufficientFounds: AugmentedError; - /** - * Only owner may nest tokens under this collection - **/ - OnlyOwnerAllowedToNest: AugmentedError; /** * Tried to enable permissions which are only permitted to be disabled **/ @@ -185,6 +177,10 @@ **/ UnsupportedOperation: AugmentedError; /** + * User not passed nesting rule + **/ + UserIsNotAllowedToNest: AugmentedError; + /** * Generic error **/ [key: string]: AugmentedError; @@ -502,6 +498,10 @@ }; structure: { /** + * While iterating over children, encountered breadth limit + **/ + BreadthLimit: AugmentedError; + /** * While searched for owner, encountered depth limit **/ DepthLimit: AugmentedError; --- a/tests/src/interfaces/augment-api-events.ts +++ b/tests/src/interfaces/augment-api-events.ts @@ -13,45 +13,45 @@ /** * A balance was set by root. **/ - BalanceSet: AugmentedEvent; + BalanceSet: AugmentedEvent; /** * Some amount was deposited (e.g. for transaction fees). **/ - Deposit: AugmentedEvent; + Deposit: AugmentedEvent; /** * An account was removed whose balance was non-zero but below ExistentialDeposit, * resulting in an outright loss. **/ - DustLost: AugmentedEvent; + DustLost: AugmentedEvent; /** * An account was created with some free balance. **/ - Endowed: AugmentedEvent; + Endowed: AugmentedEvent; /** * Some balance was reserved (moved from free to reserved). **/ - Reserved: AugmentedEvent; + Reserved: AugmentedEvent; /** * Some balance was moved from the reserve of the first account to the second account. * Final argument indicates the destination balance type. **/ - ReserveRepatriated: AugmentedEvent; + ReserveRepatriated: AugmentedEvent; /** * Some amount was removed from the account (e.g. for misbehavior). **/ - Slashed: AugmentedEvent; + Slashed: AugmentedEvent; /** * Transfer succeeded. **/ - Transfer: AugmentedEvent; + Transfer: AugmentedEvent; /** * Some balance was unreserved (moved from reserved to free). **/ - Unreserved: AugmentedEvent; + Unreserved: AugmentedEvent; /** * Some amount was withdrawn from the account (e.g. for transaction fees). **/ - Withdraw: AugmentedEvent; + Withdraw: AugmentedEvent; /** * Generic event **/ @@ -398,28 +398,28 @@ [key: string]: AugmentedEvent; }; rmrkCore: { - CollectionCreated: AugmentedEvent; - CollectionDestroyed: AugmentedEvent; - CollectionLocked: AugmentedEvent; - IssuerChanged: AugmentedEvent; - NFTAccepted: AugmentedEvent; - NFTBurned: AugmentedEvent; - NftMinted: AugmentedEvent; - NFTRejected: AugmentedEvent; - NFTSent: AugmentedEvent; - PrioritySet: AugmentedEvent; - PropertySet: AugmentedEvent, Bytes, Bytes]>; - ResourceAccepted: AugmentedEvent; - ResourceAdded: AugmentedEvent; - ResourceRemoval: AugmentedEvent; - ResourceRemovalAccepted: AugmentedEvent; + CollectionCreated: AugmentedEvent; + CollectionDestroyed: AugmentedEvent; + CollectionLocked: AugmentedEvent; + IssuerChanged: AugmentedEvent; + NFTAccepted: AugmentedEvent; + NFTBurned: AugmentedEvent; + NftMinted: AugmentedEvent; + NFTRejected: AugmentedEvent; + NFTSent: AugmentedEvent; + PrioritySet: AugmentedEvent; + PropertySet: AugmentedEvent, key: Bytes, value: Bytes], { collectionId: u32, maybeNftId: Option, key: Bytes, value: Bytes }>; + ResourceAccepted: AugmentedEvent; + ResourceAdded: AugmentedEvent; + ResourceRemoval: AugmentedEvent; + ResourceRemovalAccepted: AugmentedEvent; /** * Generic event **/ [key: string]: AugmentedEvent; }; rmrkEquip: { - BaseCreated: AugmentedEvent; + BaseCreated: AugmentedEvent; /** * Generic event **/ @@ -429,19 +429,19 @@ /** * The call for the provided hash was not found so the task has been aborted. **/ - CallLookupFailed: AugmentedEvent, Option, FrameSupportScheduleLookupError]>; + CallLookupFailed: AugmentedEvent, id: Option, error: FrameSupportScheduleLookupError], { task: ITuple<[u32, u32]>, id: Option, error: FrameSupportScheduleLookupError }>; /** * Canceled some task. **/ - Canceled: AugmentedEvent; + Canceled: AugmentedEvent; /** * Dispatched some task. **/ - Dispatched: AugmentedEvent, Option, Result]>; + Dispatched: AugmentedEvent, id: Option, result: Result], { task: ITuple<[u32, u32]>, id: Option, result: Result }>; /** * Scheduled some task. **/ - Scheduled: AugmentedEvent; + Scheduled: AugmentedEvent; /** * Generic event **/ @@ -461,15 +461,15 @@ /** * The \[sudoer\] just switched identity; the old key is supplied if one existed. **/ - KeyChanged: AugmentedEvent]>; + KeyChanged: AugmentedEvent], { oldSudoer: Option }>; /** * A sudo just took place. \[result\] **/ - Sudid: AugmentedEvent]>; + Sudid: AugmentedEvent], { sudoResult: Result }>; /** * A sudo just took place. \[result\] **/ - SudoAsDone: AugmentedEvent]>; + SudoAsDone: AugmentedEvent], { sudoResult: Result }>; /** * Generic event **/ @@ -483,23 +483,23 @@ /** * An extrinsic failed. **/ - ExtrinsicFailed: AugmentedEvent; + ExtrinsicFailed: AugmentedEvent; /** * An extrinsic completed successfully. **/ - ExtrinsicSuccess: AugmentedEvent; + ExtrinsicSuccess: AugmentedEvent; /** * An account was reaped. **/ - KilledAccount: AugmentedEvent; + KilledAccount: AugmentedEvent; /** * A new account was created. **/ - NewAccount: AugmentedEvent; + NewAccount: AugmentedEvent; /** * On on-chain remark happened. **/ - Remarked: AugmentedEvent; + Remarked: AugmentedEvent; /** * Generic event **/ @@ -509,31 +509,31 @@ /** * Some funds have been allocated. **/ - Awarded: AugmentedEvent; + Awarded: AugmentedEvent; /** * Some of our funds have been burnt. **/ - Burnt: AugmentedEvent; + Burnt: AugmentedEvent; /** * Some funds have been deposited. **/ - Deposit: AugmentedEvent; + Deposit: AugmentedEvent; /** * New proposal. **/ - Proposed: AugmentedEvent; + Proposed: AugmentedEvent; /** * A proposal was rejected; funds were slashed. **/ - Rejected: AugmentedEvent; + Rejected: AugmentedEvent; /** * Spending has finished; this is the amount that rolls over until next spend. **/ - Rollover: AugmentedEvent; + Rollover: AugmentedEvent; /** * We have ended a spend period and will now allocate funds. **/ - Spending: AugmentedEvent; + Spending: AugmentedEvent; /** * Generic event **/ @@ -636,15 +636,15 @@ /** * Claimed vesting. **/ - Claimed: AugmentedEvent; + Claimed: AugmentedEvent; /** * Added new vesting schedule. **/ - VestingScheduleAdded: AugmentedEvent; + VestingScheduleAdded: AugmentedEvent; /** * Updated vesting schedules. **/ - VestingSchedulesUpdated: AugmentedEvent; + VestingSchedulesUpdated: AugmentedEvent; /** * Generic event **/ --- a/tests/src/interfaces/augment-api-tx.ts +++ b/tests/src/interfaces/augment-api-tx.ts @@ -347,22 +347,105 @@ [key: string]: SubmittableExtrinsicFunction; }; rmrkCore: { + /** + * Accepts an NFT sent from another account to self or owned NFT + * + * Parameters: + * - `origin`: sender of the transaction + * - `rmrk_collection_id`: collection id of the nft to be accepted + * - `rmrk_nft_id`: nft id of the nft to be accepted + * - `new_owner`: either origin's account ID or origin-owned NFT, whichever the NFT was + * sent to + **/ acceptNft: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, newOwner: RmrkTraitsNftAccountIdOrCollectionNftTuple | { AccountId: any } | { CollectionAndNftTuple: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, u32, RmrkTraitsNftAccountIdOrCollectionNftTuple]>; + /** + * accept the addition of a new resource to an existing NFT + **/ acceptResource: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, rmrkResourceId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32, u32]>; + /** + * accept the removal of a resource of an existing NFT + **/ acceptResourceRemoval: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, rmrkResourceId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32, u32]>; + /** + * Create basic resource + **/ addBasicResource: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, resource: RmrkTraitsResourceBasicResource | { src?: any; metadata?: any; license?: any; thumb?: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, u32, RmrkTraitsResourceBasicResource]>; + /** + * Create composable resource + **/ addComposableResource: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, resourceId: Bytes | string | Uint8Array, resource: RmrkTraitsResourceComposableResource | { parts?: any; base?: any; src?: any; metadata?: any; license?: any; thumb?: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, u32, Bytes, RmrkTraitsResourceComposableResource]>; + /** + * Create slot resource + **/ addSlotResource: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, resource: RmrkTraitsResourceSlotResource | { base?: any; src?: any; metadata?: any; slot?: any; license?: any; thumb?: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, u32, RmrkTraitsResourceSlotResource]>; + /** + * burn nft + **/ burnNft: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Change the issuer of a collection + * + * Parameters: + * - `origin`: sender of the transaction + * - `collection_id`: collection id of the nft to change issuer of + * - `new_issuer`: Collection's new issuer + **/ changeCollectionIssuer: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newIssuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress]>; + /** + * Create a collection + **/ createCollection: AugmentedSubmittable<(metadata: Bytes | string | Uint8Array, max: Option | null | object | string | Uint8Array, symbol: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes, Option, Bytes]>; + /** + * destroy collection + **/ destroyCollection: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * lock collection + **/ lockCollection: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Mints an NFT in the specified collection + * Sets metadata and the royalty attribute + * + * Parameters: + * - `collection_id`: The class of the asset to be minted. + * - `nft_id`: The nft value of the asset to be minted. + * - `recipient`: Receiver of the royalty + * - `royalty`: Permillage reward from each trade for the Recipient + * - `metadata`: Arbitrary data about an nft, e.g. IPFS hash + * - `transferable`: Ability to transfer this NFT + **/ mintNft: AugmentedSubmittable<(owner: AccountId32 | string | Uint8Array, collectionId: u32 | AnyNumber | Uint8Array, recipient: Option | null | object | string | Uint8Array, royaltyAmount: Option | null | object | string | Uint8Array, metadata: Bytes | string | Uint8Array, transferable: bool | boolean | Uint8Array) => SubmittableExtrinsic, [AccountId32, u32, Option, Option, Bytes, bool]>; + /** + * Rejects an NFT sent from another account to self or owned NFT + * + * Parameters: + * - `origin`: sender of the transaction + * - `rmrk_collection_id`: collection id of the nft to be accepted + * - `rmrk_nft_id`: nft id of the nft to be accepted + **/ rejectNft: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * remove resource + **/ removeResource: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, resourceId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32, u32]>; + /** + * Transfers a NFT from an Account or NFT A to another Account or NFT B + * + * Parameters: + * - `origin`: sender of the transaction + * - `rmrk_collection_id`: collection id of the nft to be transferred + * - `rmrk_nft_id`: nft id of the nft to be transferred + * - `new_owner`: new owner of the nft which can be either an account or a NFT + **/ send: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, newOwner: RmrkTraitsNftAccountIdOrCollectionNftTuple | { AccountId: any } | { CollectionAndNftTuple: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, u32, RmrkTraitsNftAccountIdOrCollectionNftTuple]>; + /** + * set a different order of resource priority + **/ setPriority: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, priorities: Vec | (u32 | AnyNumber | Uint8Array)[]) => SubmittableExtrinsic, [u32, u32, Vec]>; + /** + * set a custom value on an NFT + **/ setProperty: AugmentedSubmittable<(rmrkCollectionId: Compact | AnyNumber | Uint8Array, maybeNftId: Option | null | object | string | Uint8Array, key: Bytes | string | Uint8Array, value: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Compact, Option, Bytes, Bytes]>; /** * Generic tx @@ -370,7 +453,33 @@ [key: string]: SubmittableExtrinsicFunction; }; rmrkEquip: { + /** + * Creates a new Base. + * Modeled after [base interaction](https://github.com/rmrk-team/rmrk-spec/blob/master/standards/rmrk2.0.0/interactions/base.md) + * + * Parameters: + * - origin: Caller, will be assigned as the issuer of the Base + * - base_type: media type, e.g. "svg" + * - symbol: arbitrary client-chosen symbol + * - parts: array of Fixed and Slot parts composing the base, confined in length by + * RmrkPartsLimit + **/ createBase: AugmentedSubmittable<(baseType: Bytes | string | Uint8Array, symbol: Bytes | string | Uint8Array, parts: Vec | (RmrkTraitsPartPartType | { FixedPart: any } | { SlotPart: any } | string | Uint8Array)[]) => SubmittableExtrinsic, [Bytes, Bytes, Vec]>; + /** + * Adds a Theme to a Base. + * Modeled after [themeadd interaction](https://github.com/rmrk-team/rmrk-spec/blob/master/standards/rmrk2.0.0/interactions/themeadd.md) + * Themes are stored in the Themes storage + * A Theme named "default" is required prior to adding other Themes. + * + * Parameters: + * - origin: The caller of the function, must be issuer of the base + * - base_id: The Base containing the Theme to be updated + * - theme: The Theme to add to the Base. A Theme has a name and properties, which are an + * array of [key, value, inherit]. + * - key: arbitrary BoundedString, defined by client + * - value: arbitrary BoundedString, defined by client + * - inherit: optional bool + **/ themeAdd: AugmentedSubmittable<(baseId: u32 | AnyNumber | Uint8Array, theme: RmrkTraitsTheme | { name?: any; properties?: any; inherit?: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, RmrkTraitsTheme]>; /** * Generic tx --- a/tests/src/interfaces/augment-types.ts +++ b/tests/src/interfaces/augment-types.ts @@ -1,7 +1,7 @@ // Auto-generated via `yarn polkadot-types-from-defs`, do not edit /* eslint-disable */ -import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmOrigin, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportDispatchRawOrigin, FrameSupportPalletId, FrameSupportScheduleLookupError, FrameSupportScheduleMaybeHashed, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchClass, FrameSupportWeightsDispatchInfo, FrameSupportWeightsPays, FrameSupportWeightsPerDispatchClassU32, FrameSupportWeightsPerDispatchClassU64, FrameSupportWeightsPerDispatchClassWeightsPerClass, FrameSupportWeightsRuntimeDbWeight, FrameSupportWeightsWeightToFeeCoefficient, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeOriginCaller, OpalRuntimeRuntime, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEthereumRawOrigin, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletFungibleError, PalletInflationCall, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletRmrkCoreCall, PalletRmrkCoreError, PalletRmrkCoreEvent, PalletRmrkEquipCall, PalletRmrkEquipError, PalletRmrkEquipEvent, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTimestampCall, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletUnqSchedulerCall, PalletUnqSchedulerError, PalletUnqSchedulerEvent, PalletUnqSchedulerScheduledV3, PalletXcmCall, PalletXcmError, PalletXcmEvent, PalletXcmOrigin, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsNftRoyaltyInfo, RmrkTraitsPartEquippableList, RmrkTraitsPartFixedPart, RmrkTraitsPartPartType, RmrkTraitsPartSlotPart, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceInfo, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, RmrkTraitsThemeThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpCoreVoid, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExData, UpDataStructsNestingRule, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsRpcCollection, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipState, UpDataStructsTokenChild, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from './default'; +import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmOrigin, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportDispatchRawOrigin, FrameSupportPalletId, FrameSupportScheduleLookupError, FrameSupportScheduleMaybeHashed, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchClass, FrameSupportWeightsDispatchInfo, FrameSupportWeightsPays, FrameSupportWeightsPerDispatchClassU32, FrameSupportWeightsPerDispatchClassU64, FrameSupportWeightsPerDispatchClassWeightsPerClass, FrameSupportWeightsRuntimeDbWeight, FrameSupportWeightsWeightToFeeCoefficient, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeOriginCaller, OpalRuntimeRuntime, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEthereumRawOrigin, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletFungibleError, PalletInflationCall, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletRmrkCoreCall, PalletRmrkCoreError, PalletRmrkCoreEvent, PalletRmrkEquipCall, PalletRmrkEquipError, PalletRmrkEquipEvent, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTimestampCall, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletUnqSchedulerCall, PalletUnqSchedulerError, PalletUnqSchedulerEvent, PalletUnqSchedulerScheduledV3, PalletXcmCall, PalletXcmError, PalletXcmEvent, PalletXcmOrigin, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsNftRoyaltyInfo, RmrkTraitsPartEquippableList, RmrkTraitsPartFixedPart, RmrkTraitsPartPartType, RmrkTraitsPartSlotPart, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceInfo, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, RmrkTraitsThemeThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpCoreVoid, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExData, UpDataStructsNestingPermissions, UpDataStructsOwnerRestrictedSet, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsRpcCollection, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipState, UpDataStructsTokenChild, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from './default'; import type { Data, StorageKey } from '@polkadot/types'; import type { BitVec, Bool, Bytes, I128, I16, I256, I32, I64, I8, Json, Null, OptionBool, Raw, Text, Type, U128, U16, U256, U32, U64, U8, USize, bool, i128, i16, i256, i32, i64, i8, u128, u16, u256, u32, u64, u8, usize } from '@polkadot/types-codec'; import type { AssetApproval, AssetApprovalKey, AssetBalance, AssetDestroyWitness, AssetDetails, AssetMetadata, TAssetBalance, TAssetDepositBalance } from '@polkadot/types/interfaces/assets'; @@ -1218,7 +1218,8 @@ UpDataStructsCreateNftExData: UpDataStructsCreateNftExData; UpDataStructsCreateReFungibleData: UpDataStructsCreateReFungibleData; UpDataStructsCreateRefungibleExData: UpDataStructsCreateRefungibleExData; - UpDataStructsNestingRule: UpDataStructsNestingRule; + UpDataStructsNestingPermissions: UpDataStructsNestingPermissions; + UpDataStructsOwnerRestrictedSet: UpDataStructsOwnerRestrictedSet; UpDataStructsProperties: UpDataStructsProperties; UpDataStructsPropertiesMapBoundedVec: UpDataStructsPropertiesMapBoundedVec; UpDataStructsPropertiesMapPropertyPermission: UpDataStructsPropertiesMapPropertyPermission; --- a/tests/src/interfaces/default/types.ts +++ b/tests/src/interfaces/default/types.ts @@ -935,8 +935,7 @@ readonly isAddressIsZero: boolean; readonly isUnsupportedOperation: boolean; readonly isNotSufficientFounds: boolean; - readonly isNestingIsDisabled: boolean; - readonly isOnlyOwnerAllowedToNest: boolean; + readonly isUserIsNotAllowedToNest: boolean; readonly isSourceCollectionIsNotAllowedToNest: boolean; readonly isCollectionFieldSizeExceeded: boolean; readonly isNoSpaceForProperty: boolean; @@ -946,7 +945,7 @@ readonly isEmptyPropertyKey: boolean; readonly isCollectionIsExternal: boolean; readonly isCollectionIsInternal: boolean; - readonly type: 'CollectionNotFound' | 'MustBeTokenOwner' | 'NoPermission' | 'CantDestroyNotEmptyCollection' | 'PublicMintingNotAllowed' | 'AddressNotInAllowlist' | 'CollectionNameLimitExceeded' | 'CollectionDescriptionLimitExceeded' | 'CollectionTokenPrefixLimitExceeded' | 'TotalCollectionsLimitExceeded' | 'CollectionAdminCountExceeded' | 'CollectionLimitBoundsExceeded' | 'OwnerPermissionsCantBeReverted' | 'TransferNotAllowed' | 'AccountTokenLimitExceeded' | 'CollectionTokenLimitExceeded' | 'MetadataFlagFrozen' | 'TokenNotFound' | 'TokenValueTooLow' | 'ApprovedValueTooLow' | 'CantApproveMoreThanOwned' | 'AddressIsZero' | 'UnsupportedOperation' | 'NotSufficientFounds' | 'NestingIsDisabled' | 'OnlyOwnerAllowedToNest' | 'SourceCollectionIsNotAllowedToNest' | 'CollectionFieldSizeExceeded' | 'NoSpaceForProperty' | 'PropertyLimitReached' | 'PropertyKeyIsTooLong' | 'InvalidCharacterInPropertyKey' | 'EmptyPropertyKey' | 'CollectionIsExternal' | 'CollectionIsInternal'; + readonly type: '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'; } /** @name PalletCommonEvent */ @@ -1445,8 +1444,9 @@ export interface PalletStructureError extends Enum { readonly isOuroborosDetected: boolean; readonly isDepthLimit: boolean; + readonly isBreadthLimit: boolean; readonly isTokenNotFound: boolean; - readonly type: 'OuroborosDetected' | 'DepthLimit' | 'TokenNotFound'; + readonly type: 'OuroborosDetected' | 'DepthLimit' | 'BreadthLimit' | 'TokenNotFound'; } /** @name PalletStructureEvent */ @@ -2348,7 +2348,7 @@ export interface UpDataStructsCollectionPermissions extends Struct { readonly access: Option; readonly mintMode: Option; - readonly nesting: Option; + readonly nesting: Option; } /** @name UpDataStructsCollectionStats */ @@ -2424,15 +2424,17 @@ readonly users: BTreeMap; } -/** @name UpDataStructsNestingRule */ -export interface UpDataStructsNestingRule extends Enum { - readonly isDisabled: boolean; - readonly isOwner: boolean; - readonly isOwnerRestricted: boolean; - readonly asOwnerRestricted: BTreeSet; - readonly type: 'Disabled' | 'Owner' | 'OwnerRestricted'; +/** @name UpDataStructsNestingPermissions */ +export interface UpDataStructsNestingPermissions extends Struct { + readonly tokenOwner: bool; + readonly admin: bool; + readonly restricted: Option; + readonly permissive: bool; } +/** @name UpDataStructsOwnerRestrictedSet */ +export interface UpDataStructsOwnerRestrictedSet extends BTreeSet {} + /** @name UpDataStructsProperties */ export interface UpDataStructsProperties extends Struct { readonly map: UpDataStructsPropertiesMapBoundedVec; --- a/tests/src/interfaces/lookup.ts +++ b/tests/src/interfaces/lookup.ts @@ -1425,27 +1425,30 @@ UpDataStructsCollectionPermissions: { access: 'Option', mintMode: 'Option', - nesting: 'Option' + nesting: 'Option' }, /** - * Lookup169: up_data_structs::NestingRule + * Lookup169: up_data_structs::NestingPermissions **/ - UpDataStructsNestingRule: { - _enum: { - Disabled: 'Null', - Owner: 'Null', - OwnerRestricted: 'BTreeSet' - } + UpDataStructsNestingPermissions: { + tokenOwner: 'bool', + admin: 'bool', + restricted: 'Option', + permissive: 'bool' }, /** - * Lookup175: up_data_structs::PropertyKeyPermission + * Lookup171: up_data_structs::OwnerRestrictedSet **/ + UpDataStructsOwnerRestrictedSet: 'BTreeSet', + /** + * Lookup177: up_data_structs::PropertyKeyPermission + **/ UpDataStructsPropertyKeyPermission: { key: 'Bytes', permission: 'UpDataStructsPropertyPermission' }, /** - * Lookup177: up_data_structs::PropertyPermission + * Lookup179: up_data_structs::PropertyPermission **/ UpDataStructsPropertyPermission: { mutable: 'bool', @@ -1453,14 +1456,14 @@ tokenOwner: 'bool' }, /** - * Lookup180: up_data_structs::Property + * Lookup182: up_data_structs::Property **/ UpDataStructsProperty: { key: 'Bytes', value: 'Bytes' }, /** - * Lookup183: pallet_evm::account::BasicCrossAccountIdRepr + * Lookup185: pallet_evm::account::BasicCrossAccountIdRepr **/ PalletEvmAccountBasicCrossAccountIdRepr: { _enum: { @@ -1469,7 +1472,7 @@ } }, /** - * Lookup185: up_data_structs::CreateItemData + * Lookup187: up_data_structs::CreateItemData **/ UpDataStructsCreateItemData: { _enum: { @@ -1479,26 +1482,26 @@ } }, /** - * Lookup186: up_data_structs::CreateNftData + * Lookup188: up_data_structs::CreateNftData **/ UpDataStructsCreateNftData: { properties: 'Vec' }, /** - * Lookup187: up_data_structs::CreateFungibleData + * Lookup189: up_data_structs::CreateFungibleData **/ UpDataStructsCreateFungibleData: { value: 'u128' }, /** - * Lookup188: up_data_structs::CreateReFungibleData + * Lookup190: up_data_structs::CreateReFungibleData **/ UpDataStructsCreateReFungibleData: { constData: 'Bytes', pieces: 'u128' }, /** - * Lookup193: up_data_structs::CreateItemExData> + * Lookup195: up_data_structs::CreateItemExData> **/ UpDataStructsCreateItemExData: { _enum: { @@ -1509,21 +1512,21 @@ } }, /** - * Lookup195: up_data_structs::CreateNftExData> + * Lookup197: up_data_structs::CreateNftExData> **/ UpDataStructsCreateNftExData: { properties: 'Vec', owner: 'PalletEvmAccountBasicCrossAccountIdRepr' }, /** - * Lookup202: up_data_structs::CreateRefungibleExData> + * Lookup204: up_data_structs::CreateRefungibleExData> **/ UpDataStructsCreateRefungibleExData: { constData: 'Bytes', users: 'BTreeMap' }, /** - * Lookup204: pallet_unq_scheduler::pallet::Call + * Lookup206: pallet_unq_scheduler::pallet::Call **/ PalletUnqSchedulerCall: { _enum: { @@ -1547,7 +1550,7 @@ } }, /** - * Lookup206: frame_support::traits::schedule::MaybeHashed + * Lookup208: frame_support::traits::schedule::MaybeHashed **/ FrameSupportScheduleMaybeHashed: { _enum: { @@ -1556,15 +1559,15 @@ } }, /** - * Lookup207: pallet_template_transaction_payment::Call + * Lookup209: pallet_template_transaction_payment::Call **/ PalletTemplateTransactionPaymentCall: 'Null', /** - * Lookup208: pallet_structure::pallet::Call + * Lookup210: pallet_structure::pallet::Call **/ PalletStructureCall: 'Null', /** - * Lookup209: pallet_rmrk_core::pallet::Call + * Lookup211: pallet_rmrk_core::pallet::Call **/ PalletRmrkCoreCall: { _enum: { @@ -1654,7 +1657,7 @@ } }, /** - * Lookup213: rmrk_traits::nft::AccountIdOrCollectionNftTuple + * Lookup215: rmrk_traits::nft::AccountIdOrCollectionNftTuple **/ RmrkTraitsNftAccountIdOrCollectionNftTuple: { _enum: { @@ -1663,7 +1666,7 @@ } }, /** - * Lookup217: rmrk_traits::resource::BasicResource> + * Lookup219: rmrk_traits::resource::BasicResource> **/ RmrkTraitsResourceBasicResource: { src: 'Option', @@ -1672,7 +1675,7 @@ thumb: 'Option' }, /** - * Lookup220: rmrk_traits::resource::ComposableResource, frame_support::storage::bounded_vec::BoundedVec> + * Lookup222: rmrk_traits::resource::ComposableResource, frame_support::storage::bounded_vec::BoundedVec> **/ RmrkTraitsResourceComposableResource: { parts: 'Vec', @@ -1683,7 +1686,7 @@ thumb: 'Option' }, /** - * Lookup222: rmrk_traits::resource::SlotResource> + * Lookup224: rmrk_traits::resource::SlotResource> **/ RmrkTraitsResourceSlotResource: { base: 'u32', @@ -1694,7 +1697,7 @@ thumb: 'Option' }, /** - * Lookup223: pallet_rmrk_equip::pallet::Call + * Lookup225: pallet_rmrk_equip::pallet::Call **/ PalletRmrkEquipCall: { _enum: { @@ -1710,7 +1713,7 @@ } }, /** - * Lookup225: rmrk_traits::part::PartType, frame_support::storage::bounded_vec::BoundedVec> + * Lookup227: rmrk_traits::part::PartType, frame_support::storage::bounded_vec::BoundedVec> **/ RmrkTraitsPartPartType: { _enum: { @@ -1719,7 +1722,7 @@ } }, /** - * Lookup227: rmrk_traits::part::FixedPart> + * Lookup229: rmrk_traits::part::FixedPart> **/ RmrkTraitsPartFixedPart: { id: 'u32', @@ -1727,7 +1730,7 @@ src: 'Bytes' }, /** - * Lookup228: rmrk_traits::part::SlotPart, frame_support::storage::bounded_vec::BoundedVec> + * Lookup230: rmrk_traits::part::SlotPart, frame_support::storage::bounded_vec::BoundedVec> **/ RmrkTraitsPartSlotPart: { id: 'u32', @@ -1736,7 +1739,7 @@ z: 'u32' }, /** - * Lookup229: rmrk_traits::part::EquippableList> + * Lookup231: rmrk_traits::part::EquippableList> **/ RmrkTraitsPartEquippableList: { _enum: { @@ -1746,7 +1749,7 @@ } }, /** - * Lookup231: rmrk_traits::theme::Theme, PropertyList> + * Lookup233: rmrk_traits::theme::Theme, PropertyList> **/ RmrkTraitsTheme: { name: 'Bytes', @@ -1754,14 +1757,14 @@ inherit: 'bool' }, /** - * Lookup233: rmrk_traits::theme::ThemeProperty> + * Lookup235: rmrk_traits::theme::ThemeProperty> **/ RmrkTraitsThemeThemeProperty: { key: 'Bytes', value: 'Bytes' }, /** - * Lookup234: pallet_evm::pallet::Call + * Lookup236: pallet_evm::pallet::Call **/ PalletEvmCall: { _enum: { @@ -1804,7 +1807,7 @@ } }, /** - * Lookup240: pallet_ethereum::pallet::Call + * Lookup242: pallet_ethereum::pallet::Call **/ PalletEthereumCall: { _enum: { @@ -1814,7 +1817,7 @@ } }, /** - * Lookup241: ethereum::transaction::TransactionV2 + * Lookup243: ethereum::transaction::TransactionV2 **/ EthereumTransactionTransactionV2: { _enum: { @@ -1824,7 +1827,7 @@ } }, /** - * Lookup242: ethereum::transaction::LegacyTransaction + * Lookup244: ethereum::transaction::LegacyTransaction **/ EthereumTransactionLegacyTransaction: { nonce: 'U256', @@ -1836,7 +1839,7 @@ signature: 'EthereumTransactionTransactionSignature' }, /** - * Lookup243: ethereum::transaction::TransactionAction + * Lookup245: ethereum::transaction::TransactionAction **/ EthereumTransactionTransactionAction: { _enum: { @@ -1845,7 +1848,7 @@ } }, /** - * Lookup244: ethereum::transaction::TransactionSignature + * Lookup246: ethereum::transaction::TransactionSignature **/ EthereumTransactionTransactionSignature: { v: 'u64', @@ -1853,7 +1856,7 @@ s: 'H256' }, /** - * Lookup246: ethereum::transaction::EIP2930Transaction + * Lookup248: ethereum::transaction::EIP2930Transaction **/ EthereumTransactionEip2930Transaction: { chainId: 'u64', @@ -1869,14 +1872,14 @@ s: 'H256' }, /** - * Lookup248: ethereum::transaction::AccessListItem + * Lookup250: ethereum::transaction::AccessListItem **/ EthereumTransactionAccessListItem: { address: 'H160', storageKeys: 'Vec' }, /** - * Lookup249: ethereum::transaction::EIP1559Transaction + * Lookup251: ethereum::transaction::EIP1559Transaction **/ EthereumTransactionEip1559Transaction: { chainId: 'u64', @@ -1893,7 +1896,7 @@ s: 'H256' }, /** - * Lookup250: pallet_evm_migration::pallet::Call + * Lookup252: pallet_evm_migration::pallet::Call **/ PalletEvmMigrationCall: { _enum: { @@ -1911,7 +1914,7 @@ } }, /** - * Lookup253: pallet_sudo::pallet::Event + * Lookup255: pallet_sudo::pallet::Event **/ PalletSudoEvent: { _enum: { @@ -1927,7 +1930,7 @@ } }, /** - * Lookup255: sp_runtime::DispatchError + * Lookup257: sp_runtime::DispatchError **/ SpRuntimeDispatchError: { _enum: { @@ -1944,38 +1947,38 @@ } }, /** - * Lookup256: sp_runtime::ModuleError + * Lookup258: sp_runtime::ModuleError **/ SpRuntimeModuleError: { index: 'u8', error: '[u8;4]' }, /** - * Lookup257: sp_runtime::TokenError + * Lookup259: sp_runtime::TokenError **/ SpRuntimeTokenError: { _enum: ['NoFunds', 'WouldDie', 'BelowMinimum', 'CannotCreate', 'UnknownAsset', 'Frozen', 'Unsupported'] }, /** - * Lookup258: sp_runtime::ArithmeticError + * Lookup260: sp_runtime::ArithmeticError **/ SpRuntimeArithmeticError: { _enum: ['Underflow', 'Overflow', 'DivisionByZero'] }, /** - * Lookup259: sp_runtime::TransactionalError + * Lookup261: sp_runtime::TransactionalError **/ SpRuntimeTransactionalError: { _enum: ['LimitReached', 'NoLayer'] }, /** - * Lookup260: pallet_sudo::pallet::Error + * Lookup262: pallet_sudo::pallet::Error **/ PalletSudoError: { _enum: ['RequireSudo'] }, /** - * Lookup261: frame_system::AccountInfo> + * Lookup263: frame_system::AccountInfo> **/ FrameSystemAccountInfo: { nonce: 'u32', @@ -1985,7 +1988,7 @@ data: 'PalletBalancesAccountData' }, /** - * Lookup262: frame_support::weights::PerDispatchClass + * Lookup264: frame_support::weights::PerDispatchClass **/ FrameSupportWeightsPerDispatchClassU64: { normal: 'u64', @@ -1993,13 +1996,13 @@ mandatory: 'u64' }, /** - * Lookup263: sp_runtime::generic::digest::Digest + * Lookup265: sp_runtime::generic::digest::Digest **/ SpRuntimeDigest: { logs: 'Vec' }, /** - * Lookup265: sp_runtime::generic::digest::DigestItem + * Lookup267: sp_runtime::generic::digest::DigestItem **/ SpRuntimeDigestDigestItem: { _enum: { @@ -2015,7 +2018,7 @@ } }, /** - * Lookup267: frame_system::EventRecord + * Lookup269: frame_system::EventRecord **/ FrameSystemEventRecord: { phase: 'FrameSystemPhase', @@ -2023,7 +2026,7 @@ topics: 'Vec' }, /** - * Lookup269: frame_system::pallet::Event + * Lookup271: frame_system::pallet::Event **/ FrameSystemEvent: { _enum: { @@ -2051,7 +2054,7 @@ } }, /** - * Lookup270: frame_support::weights::DispatchInfo + * Lookup272: frame_support::weights::DispatchInfo **/ FrameSupportWeightsDispatchInfo: { weight: 'u64', @@ -2059,19 +2062,19 @@ paysFee: 'FrameSupportWeightsPays' }, /** - * Lookup271: frame_support::weights::DispatchClass + * Lookup273: frame_support::weights::DispatchClass **/ FrameSupportWeightsDispatchClass: { _enum: ['Normal', 'Operational', 'Mandatory'] }, /** - * Lookup272: frame_support::weights::Pays + * Lookup274: frame_support::weights::Pays **/ FrameSupportWeightsPays: { _enum: ['Yes', 'No'] }, /** - * Lookup273: orml_vesting::module::Event + * Lookup275: orml_vesting::module::Event **/ OrmlVestingModuleEvent: { _enum: { @@ -2090,7 +2093,7 @@ } }, /** - * Lookup274: cumulus_pallet_xcmp_queue::pallet::Event + * Lookup276: cumulus_pallet_xcmp_queue::pallet::Event **/ CumulusPalletXcmpQueueEvent: { _enum: { @@ -2105,7 +2108,7 @@ } }, /** - * Lookup275: pallet_xcm::pallet::Event + * Lookup277: pallet_xcm::pallet::Event **/ PalletXcmEvent: { _enum: { @@ -2128,7 +2131,7 @@ } }, /** - * Lookup276: xcm::v2::traits::Outcome + * Lookup278: xcm::v2::traits::Outcome **/ XcmV2TraitsOutcome: { _enum: { @@ -2138,7 +2141,7 @@ } }, /** - * Lookup278: cumulus_pallet_xcm::pallet::Event + * Lookup280: cumulus_pallet_xcm::pallet::Event **/ CumulusPalletXcmEvent: { _enum: { @@ -2148,7 +2151,7 @@ } }, /** - * Lookup279: cumulus_pallet_dmp_queue::pallet::Event + * Lookup281: cumulus_pallet_dmp_queue::pallet::Event **/ CumulusPalletDmpQueueEvent: { _enum: { @@ -2161,7 +2164,7 @@ } }, /** - * Lookup280: pallet_unique::RawEvent> + * Lookup282: pallet_unique::RawEvent> **/ PalletUniqueRawEvent: { _enum: { @@ -2178,7 +2181,7 @@ } }, /** - * Lookup281: pallet_unq_scheduler::pallet::Event + * Lookup283: pallet_unq_scheduler::pallet::Event **/ PalletUnqSchedulerEvent: { _enum: { @@ -2203,13 +2206,13 @@ } }, /** - * Lookup283: frame_support::traits::schedule::LookupError + * Lookup285: frame_support::traits::schedule::LookupError **/ FrameSupportScheduleLookupError: { _enum: ['Unknown', 'BadFormat'] }, /** - * Lookup284: pallet_common::pallet::Event + * Lookup286: pallet_common::pallet::Event **/ PalletCommonEvent: { _enum: { @@ -2227,7 +2230,7 @@ } }, /** - * Lookup285: pallet_structure::pallet::Event + * Lookup287: pallet_structure::pallet::Event **/ PalletStructureEvent: { _enum: { @@ -2235,7 +2238,7 @@ } }, /** - * Lookup286: pallet_rmrk_core::pallet::Event + * Lookup288: pallet_rmrk_core::pallet::Event **/ PalletRmrkCoreEvent: { _enum: { @@ -2312,7 +2315,7 @@ } }, /** - * Lookup287: pallet_rmrk_equip::pallet::Event + * Lookup289: pallet_rmrk_equip::pallet::Event **/ PalletRmrkEquipEvent: { _enum: { @@ -2323,7 +2326,7 @@ } }, /** - * Lookup288: pallet_evm::pallet::Event + * Lookup290: pallet_evm::pallet::Event **/ PalletEvmEvent: { _enum: { @@ -2337,7 +2340,7 @@ } }, /** - * Lookup289: ethereum::log::Log + * Lookup291: ethereum::log::Log **/ EthereumLog: { address: 'H160', @@ -2345,7 +2348,7 @@ data: 'Bytes' }, /** - * Lookup290: pallet_ethereum::pallet::Event + * Lookup292: pallet_ethereum::pallet::Event **/ PalletEthereumEvent: { _enum: { @@ -2353,7 +2356,7 @@ } }, /** - * Lookup291: evm_core::error::ExitReason + * Lookup293: evm_core::error::ExitReason **/ EvmCoreErrorExitReason: { _enum: { @@ -2364,13 +2367,13 @@ } }, /** - * Lookup292: evm_core::error::ExitSucceed + * Lookup294: evm_core::error::ExitSucceed **/ EvmCoreErrorExitSucceed: { _enum: ['Stopped', 'Returned', 'Suicided'] }, /** - * Lookup293: evm_core::error::ExitError + * Lookup295: evm_core::error::ExitError **/ EvmCoreErrorExitError: { _enum: { @@ -2392,13 +2395,13 @@ } }, /** - * Lookup296: evm_core::error::ExitRevert + * Lookup298: evm_core::error::ExitRevert **/ EvmCoreErrorExitRevert: { _enum: ['Reverted'] }, /** - * Lookup297: evm_core::error::ExitFatal + * Lookup299: evm_core::error::ExitFatal **/ EvmCoreErrorExitFatal: { _enum: { @@ -2409,7 +2412,7 @@ } }, /** - * Lookup298: frame_system::Phase + * Lookup300: frame_system::Phase **/ FrameSystemPhase: { _enum: { @@ -2419,14 +2422,14 @@ } }, /** - * Lookup300: frame_system::LastRuntimeUpgradeInfo + * Lookup302: frame_system::LastRuntimeUpgradeInfo **/ FrameSystemLastRuntimeUpgradeInfo: { specVersion: 'Compact', specName: 'Text' }, /** - * Lookup301: frame_system::limits::BlockWeights + * Lookup303: frame_system::limits::BlockWeights **/ FrameSystemLimitsBlockWeights: { baseBlock: 'u64', @@ -2434,7 +2437,7 @@ perClass: 'FrameSupportWeightsPerDispatchClassWeightsPerClass' }, /** - * Lookup302: frame_support::weights::PerDispatchClass + * Lookup304: frame_support::weights::PerDispatchClass **/ FrameSupportWeightsPerDispatchClassWeightsPerClass: { normal: 'FrameSystemLimitsWeightsPerClass', @@ -2442,7 +2445,7 @@ mandatory: 'FrameSystemLimitsWeightsPerClass' }, /** - * Lookup303: frame_system::limits::WeightsPerClass + * Lookup305: frame_system::limits::WeightsPerClass **/ FrameSystemLimitsWeightsPerClass: { baseExtrinsic: 'u64', @@ -2451,13 +2454,13 @@ reserved: 'Option' }, /** - * Lookup305: frame_system::limits::BlockLength + * Lookup307: frame_system::limits::BlockLength **/ FrameSystemLimitsBlockLength: { max: 'FrameSupportWeightsPerDispatchClassU32' }, /** - * Lookup306: frame_support::weights::PerDispatchClass + * Lookup308: frame_support::weights::PerDispatchClass **/ FrameSupportWeightsPerDispatchClassU32: { normal: 'u32', @@ -2465,14 +2468,14 @@ mandatory: 'u32' }, /** - * Lookup307: frame_support::weights::RuntimeDbWeight + * Lookup309: frame_support::weights::RuntimeDbWeight **/ FrameSupportWeightsRuntimeDbWeight: { read: 'u64', write: 'u64' }, /** - * Lookup308: sp_version::RuntimeVersion + * Lookup310: sp_version::RuntimeVersion **/ SpVersionRuntimeVersion: { specName: 'Text', @@ -2485,19 +2488,19 @@ stateVersion: 'u8' }, /** - * Lookup312: frame_system::pallet::Error + * Lookup314: frame_system::pallet::Error **/ FrameSystemError: { _enum: ['InvalidSpecName', 'SpecVersionNeedsToIncrease', 'FailedToExtractRuntimeVersion', 'NonDefaultComposite', 'NonZeroRefCount', 'CallFiltered'] }, /** - * Lookup314: orml_vesting::module::Error + * Lookup316: orml_vesting::module::Error **/ OrmlVestingModuleError: { _enum: ['ZeroVestingPeriod', 'ZeroVestingPeriodCount', 'InsufficientBalanceToLock', 'TooManyVestingSchedules', 'AmountLow', 'MaxVestingSchedulesExceeded'] }, /** - * Lookup316: cumulus_pallet_xcmp_queue::InboundChannelDetails + * Lookup318: cumulus_pallet_xcmp_queue::InboundChannelDetails **/ CumulusPalletXcmpQueueInboundChannelDetails: { sender: 'u32', @@ -2505,19 +2508,19 @@ messageMetadata: 'Vec<(u32,PolkadotParachainPrimitivesXcmpMessageFormat)>' }, /** - * Lookup317: cumulus_pallet_xcmp_queue::InboundState + * Lookup319: cumulus_pallet_xcmp_queue::InboundState **/ CumulusPalletXcmpQueueInboundState: { _enum: ['Ok', 'Suspended'] }, /** - * Lookup320: polkadot_parachain::primitives::XcmpMessageFormat + * Lookup322: polkadot_parachain::primitives::XcmpMessageFormat **/ PolkadotParachainPrimitivesXcmpMessageFormat: { _enum: ['ConcatenatedVersionedXcm', 'ConcatenatedEncodedBlob', 'Signals'] }, /** - * Lookup323: cumulus_pallet_xcmp_queue::OutboundChannelDetails + * Lookup325: cumulus_pallet_xcmp_queue::OutboundChannelDetails **/ CumulusPalletXcmpQueueOutboundChannelDetails: { recipient: 'u32', @@ -2527,13 +2530,13 @@ lastIndex: 'u16' }, /** - * Lookup324: cumulus_pallet_xcmp_queue::OutboundState + * Lookup326: cumulus_pallet_xcmp_queue::OutboundState **/ CumulusPalletXcmpQueueOutboundState: { _enum: ['Ok', 'Suspended'] }, /** - * Lookup326: cumulus_pallet_xcmp_queue::QueueConfigData + * Lookup328: cumulus_pallet_xcmp_queue::QueueConfigData **/ CumulusPalletXcmpQueueQueueConfigData: { suspendThreshold: 'u32', @@ -2544,29 +2547,29 @@ xcmpMaxIndividualWeight: 'u64' }, /** - * Lookup328: cumulus_pallet_xcmp_queue::pallet::Error + * Lookup330: cumulus_pallet_xcmp_queue::pallet::Error **/ CumulusPalletXcmpQueueError: { _enum: ['FailedToSend', 'BadXcmOrigin', 'BadXcm', 'BadOverweightIndex', 'WeightOverLimit'] }, /** - * Lookup329: pallet_xcm::pallet::Error + * Lookup331: pallet_xcm::pallet::Error **/ PalletXcmError: { _enum: ['Unreachable', 'SendFailure', 'Filtered', 'UnweighableMessage', 'DestinationNotInvertible', 'Empty', 'CannotReanchor', 'TooManyAssets', 'InvalidOrigin', 'BadVersion', 'BadLocation', 'NoSubscription', 'AlreadySubscribed'] }, /** - * Lookup330: cumulus_pallet_xcm::pallet::Error + * Lookup332: cumulus_pallet_xcm::pallet::Error **/ CumulusPalletXcmError: 'Null', /** - * Lookup331: cumulus_pallet_dmp_queue::ConfigData + * Lookup333: cumulus_pallet_dmp_queue::ConfigData **/ CumulusPalletDmpQueueConfigData: { maxIndividual: 'u64' }, /** - * Lookup332: cumulus_pallet_dmp_queue::PageIndexData + * Lookup334: cumulus_pallet_dmp_queue::PageIndexData **/ CumulusPalletDmpQueuePageIndexData: { beginUsed: 'u32', @@ -2574,19 +2577,19 @@ overweightCount: 'u64' }, /** - * Lookup335: cumulus_pallet_dmp_queue::pallet::Error + * Lookup337: cumulus_pallet_dmp_queue::pallet::Error **/ CumulusPalletDmpQueueError: { _enum: ['Unknown', 'OverLimit'] }, /** - * Lookup339: pallet_unique::Error + * Lookup341: pallet_unique::Error **/ PalletUniqueError: { _enum: ['CollectionDecimalPointLimitExceeded', 'ConfirmUnsetSponsorFail', 'EmptyArgument'] }, /** - * Lookup342: pallet_unq_scheduler::ScheduledV3, BlockNumber, opal_runtime::OriginCaller, sp_core::crypto::AccountId32> + * Lookup344: pallet_unq_scheduler::ScheduledV3, BlockNumber, opal_runtime::OriginCaller, sp_core::crypto::AccountId32> **/ PalletUnqSchedulerScheduledV3: { maybeId: 'Option<[u8;16]>', @@ -2596,7 +2599,7 @@ origin: 'OpalRuntimeOriginCaller' }, /** - * Lookup343: opal_runtime::OriginCaller + * Lookup345: opal_runtime::OriginCaller **/ OpalRuntimeOriginCaller: { _enum: { @@ -2705,7 +2708,7 @@ } }, /** - * Lookup344: frame_support::dispatch::RawOrigin + * Lookup346: frame_support::dispatch::RawOrigin **/ FrameSupportDispatchRawOrigin: { _enum: { @@ -2715,7 +2718,7 @@ } }, /** - * Lookup345: pallet_xcm::pallet::Origin + * Lookup347: pallet_xcm::pallet::Origin **/ PalletXcmOrigin: { _enum: { @@ -2724,7 +2727,7 @@ } }, /** - * Lookup346: cumulus_pallet_xcm::pallet::Origin + * Lookup348: cumulus_pallet_xcm::pallet::Origin **/ CumulusPalletXcmOrigin: { _enum: { @@ -2733,7 +2736,7 @@ } }, /** - * Lookup347: pallet_ethereum::RawOrigin + * Lookup349: pallet_ethereum::RawOrigin **/ PalletEthereumRawOrigin: { _enum: { @@ -2741,17 +2744,17 @@ } }, /** - * Lookup348: sp_core::Void + * Lookup350: sp_core::Void **/ SpCoreVoid: 'Null', /** - * Lookup349: pallet_unq_scheduler::pallet::Error + * Lookup351: pallet_unq_scheduler::pallet::Error **/ PalletUnqSchedulerError: { _enum: ['FailedToSchedule', 'NotFound', 'TargetBlockNumberInPast', 'RescheduleNoChange'] }, /** - * Lookup350: up_data_structs::Collection + * Lookup352: up_data_structs::Collection **/ UpDataStructsCollection: { owner: 'AccountId32', @@ -2765,7 +2768,7 @@ externalCollection: 'bool' }, /** - * Lookup351: up_data_structs::SponsorshipState + * Lookup353: up_data_structs::SponsorshipState **/ UpDataStructsSponsorshipState: { _enum: { @@ -2775,7 +2778,7 @@ } }, /** - * Lookup352: up_data_structs::Properties + * Lookup354: up_data_structs::Properties **/ UpDataStructsProperties: { map: 'UpDataStructsPropertiesMapBoundedVec', @@ -2783,15 +2786,15 @@ spaceLimit: 'u32' }, /** - * Lookup353: up_data_structs::PropertiesMap> + * Lookup355: up_data_structs::PropertiesMap> **/ UpDataStructsPropertiesMapBoundedVec: 'BTreeMap', /** - * Lookup358: up_data_structs::PropertiesMap + * Lookup360: up_data_structs::PropertiesMap **/ UpDataStructsPropertiesMapPropertyPermission: 'BTreeMap', /** - * Lookup365: up_data_structs::CollectionStats + * Lookup367: up_data_structs::CollectionStats **/ UpDataStructsCollectionStats: { created: 'u32', @@ -2799,25 +2802,25 @@ alive: 'u32' }, /** - * Lookup366: up_data_structs::TokenChild + * Lookup368: up_data_structs::TokenChild **/ UpDataStructsTokenChild: { token: 'u32', collection: 'u32' }, /** - * Lookup367: PhantomType::up_data_structs + * Lookup369: PhantomType::up_data_structs **/ PhantomTypeUpDataStructs: '[(UpDataStructsTokenData,UpDataStructsRpcCollection,RmrkTraitsCollectionCollectionInfo,RmrkTraitsNftNftInfo,RmrkTraitsResourceResourceInfo,RmrkTraitsPropertyPropertyInfo,RmrkTraitsBaseBaseInfo,RmrkTraitsPartPartType,RmrkTraitsTheme,RmrkTraitsNftNftChild);0]', /** - * Lookup369: up_data_structs::TokenData> + * Lookup371: up_data_structs::TokenData> **/ UpDataStructsTokenData: { properties: 'Vec', owner: 'Option' }, /** - * Lookup371: up_data_structs::RpcCollection + * Lookup373: up_data_structs::RpcCollection **/ UpDataStructsRpcCollection: { owner: 'AccountId32', @@ -2833,7 +2836,7 @@ readOnly: 'bool' }, /** - * Lookup372: rmrk_traits::collection::CollectionInfo, frame_support::storage::bounded_vec::BoundedVec, sp_core::crypto::AccountId32> + * Lookup374: rmrk_traits::collection::CollectionInfo, frame_support::storage::bounded_vec::BoundedVec, sp_core::crypto::AccountId32> **/ RmrkTraitsCollectionCollectionInfo: { issuer: 'AccountId32', @@ -2843,7 +2846,7 @@ nftsCount: 'u32' }, /** - * Lookup373: rmrk_traits::nft::NftInfo> + * Lookup375: rmrk_traits::nft::NftInfo> **/ RmrkTraitsNftNftInfo: { owner: 'RmrkTraitsNftAccountIdOrCollectionNftTuple', @@ -2853,14 +2856,14 @@ pending: 'bool' }, /** - * Lookup375: rmrk_traits::nft::RoyaltyInfo + * Lookup377: rmrk_traits::nft::RoyaltyInfo **/ RmrkTraitsNftRoyaltyInfo: { recipient: 'AccountId32', amount: 'Permill' }, /** - * Lookup376: rmrk_traits::resource::ResourceInfo, frame_support::storage::bounded_vec::BoundedVec> + * Lookup378: rmrk_traits::resource::ResourceInfo, frame_support::storage::bounded_vec::BoundedVec> **/ RmrkTraitsResourceResourceInfo: { id: 'u32', @@ -2869,7 +2872,7 @@ pendingRemoval: 'bool' }, /** - * Lookup377: rmrk_traits::resource::ResourceTypes, frame_support::storage::bounded_vec::BoundedVec> + * Lookup379: rmrk_traits::resource::ResourceTypes, frame_support::storage::bounded_vec::BoundedVec> **/ RmrkTraitsResourceResourceTypes: { _enum: { @@ -2879,14 +2882,14 @@ } }, /** - * Lookup378: rmrk_traits::property::PropertyInfo, frame_support::storage::bounded_vec::BoundedVec> + * Lookup380: rmrk_traits::property::PropertyInfo, frame_support::storage::bounded_vec::BoundedVec> **/ RmrkTraitsPropertyPropertyInfo: { key: 'Bytes', value: 'Bytes' }, /** - * Lookup379: rmrk_traits::base::BaseInfo> + * Lookup381: rmrk_traits::base::BaseInfo> **/ RmrkTraitsBaseBaseInfo: { issuer: 'AccountId32', @@ -2894,74 +2897,74 @@ symbol: 'Bytes' }, /** - * Lookup380: rmrk_traits::nft::NftChild + * Lookup382: rmrk_traits::nft::NftChild **/ RmrkTraitsNftNftChild: { collectionId: 'u32', nftId: 'u32' }, /** - * Lookup382: pallet_common::pallet::Error + * Lookup384: pallet_common::pallet::Error **/ PalletCommonError: { - _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', 'NestingIsDisabled', 'OnlyOwnerAllowedToNest', 'SourceCollectionIsNotAllowedToNest', 'CollectionFieldSizeExceeded', 'NoSpaceForProperty', 'PropertyLimitReached', 'PropertyKeyIsTooLong', 'InvalidCharacterInPropertyKey', 'EmptyPropertyKey', 'CollectionIsExternal', 'CollectionIsInternal'] + _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'] }, /** - * Lookup384: pallet_fungible::pallet::Error + * Lookup386: pallet_fungible::pallet::Error **/ PalletFungibleError: { _enum: ['NotFungibleDataUsedToMintFungibleCollectionToken', 'FungibleItemsHaveNoId', 'FungibleItemsDontHaveData', 'FungibleDisallowsNesting', 'SettingPropertiesNotAllowed'] }, /** - * Lookup385: pallet_refungible::ItemData + * Lookup387: pallet_refungible::ItemData **/ PalletRefungibleItemData: { constData: 'Bytes' }, /** - * Lookup389: pallet_refungible::pallet::Error + * Lookup391: pallet_refungible::pallet::Error **/ PalletRefungibleError: { _enum: ['NotRefungibleDataUsedToMintFungibleCollectionToken', 'WrongRefungiblePieces', 'RefungibleDisallowsNesting', 'SettingPropertiesNotAllowed'] }, /** - * Lookup390: pallet_nonfungible::ItemData> + * Lookup392: pallet_nonfungible::ItemData> **/ PalletNonfungibleItemData: { owner: 'PalletEvmAccountBasicCrossAccountIdRepr' }, /** - * Lookup392: pallet_nonfungible::pallet::Error + * Lookup394: pallet_nonfungible::pallet::Error **/ PalletNonfungibleError: { _enum: ['NotNonfungibleDataUsedToMintFungibleCollectionToken', 'NonfungibleItemsHaveNoAmount', 'CantBurnNftWithChildren'] }, /** - * Lookup393: pallet_structure::pallet::Error + * Lookup395: pallet_structure::pallet::Error **/ PalletStructureError: { - _enum: ['OuroborosDetected', 'DepthLimit', 'TokenNotFound'] + _enum: ['OuroborosDetected', 'DepthLimit', 'BreadthLimit', 'TokenNotFound'] }, /** - * Lookup394: pallet_rmrk_core::pallet::Error + * Lookup396: pallet_rmrk_core::pallet::Error **/ PalletRmrkCoreError: { _enum: ['CorruptedCollectionType', 'NftTypeEncodeError', 'RmrkPropertyKeyIsTooLong', 'RmrkPropertyValueIsTooLong', 'CollectionNotEmpty', 'NoAvailableCollectionId', 'NoAvailableNftId', 'CollectionUnknown', 'NoPermission', 'NonTransferable', 'CollectionFullOrLocked', 'ResourceDoesntExist', 'CannotSendToDescendentOrSelf', 'CannotAcceptNonOwnedNft', 'CannotRejectNonOwnedNft', 'ResourceNotPending'] }, /** - * Lookup396: pallet_rmrk_equip::pallet::Error + * Lookup398: pallet_rmrk_equip::pallet::Error **/ PalletRmrkEquipError: { _enum: ['PermissionError', 'NoAvailableBaseId', 'NoAvailablePartId', 'BaseDoesntExist', 'NeedsDefaultThemeFirst'] }, /** - * Lookup399: pallet_evm::pallet::Error + * Lookup401: pallet_evm::pallet::Error **/ PalletEvmError: { _enum: ['BalanceLow', 'FeeOverflow', 'PaymentOverflow', 'WithdrawFailed', 'GasPriceTooLow', 'InvalidNonce'] }, /** - * Lookup402: fp_rpc::TransactionStatus + * Lookup404: fp_rpc::TransactionStatus **/ FpRpcTransactionStatus: { transactionHash: 'H256', @@ -2973,11 +2976,11 @@ logsBloom: 'EthbloomBloom' }, /** - * Lookup404: ethbloom::Bloom + * Lookup406: ethbloom::Bloom **/ EthbloomBloom: '[u8;256]', /** - * Lookup406: ethereum::receipt::ReceiptV3 + * Lookup408: ethereum::receipt::ReceiptV3 **/ EthereumReceiptReceiptV3: { _enum: { @@ -2987,7 +2990,7 @@ } }, /** - * Lookup407: ethereum::receipt::EIP658ReceiptData + * Lookup409: ethereum::receipt::EIP658ReceiptData **/ EthereumReceiptEip658ReceiptData: { statusCode: 'u8', @@ -2996,7 +2999,7 @@ logs: 'Vec' }, /** - * Lookup408: ethereum::block::Block + * Lookup410: ethereum::block::Block **/ EthereumBlock: { header: 'EthereumHeader', @@ -3004,7 +3007,7 @@ ommers: 'Vec' }, /** - * Lookup409: ethereum::header::Header + * Lookup411: ethereum::header::Header **/ EthereumHeader: { parentHash: 'H256', @@ -3024,41 +3027,41 @@ nonce: 'EthereumTypesHashH64' }, /** - * Lookup410: ethereum_types::hash::H64 + * Lookup412: ethereum_types::hash::H64 **/ EthereumTypesHashH64: '[u8;8]', /** - * Lookup415: pallet_ethereum::pallet::Error + * Lookup417: pallet_ethereum::pallet::Error **/ PalletEthereumError: { _enum: ['InvalidSignature', 'PreLogExists'] }, /** - * Lookup416: pallet_evm_coder_substrate::pallet::Error + * Lookup418: pallet_evm_coder_substrate::pallet::Error **/ PalletEvmCoderSubstrateError: { _enum: ['OutOfGas', 'OutOfFund'] }, /** - * Lookup417: pallet_evm_contract_helpers::SponsoringModeT + * Lookup419: pallet_evm_contract_helpers::SponsoringModeT **/ PalletEvmContractHelpersSponsoringModeT: { _enum: ['Disabled', 'Allowlisted', 'Generous'] }, /** - * Lookup419: pallet_evm_contract_helpers::pallet::Error + * Lookup421: pallet_evm_contract_helpers::pallet::Error **/ PalletEvmContractHelpersError: { _enum: ['NoPermission'] }, /** - * Lookup420: pallet_evm_migration::pallet::Error + * Lookup422: pallet_evm_migration::pallet::Error **/ PalletEvmMigrationError: { _enum: ['AccountNotEmpty', 'AccountIsNotMigrating'] }, /** - * Lookup422: sp_runtime::MultiSignature + * Lookup424: sp_runtime::MultiSignature **/ SpRuntimeMultiSignature: { _enum: { @@ -3068,43 +3071,43 @@ } }, /** - * Lookup423: sp_core::ed25519::Signature + * Lookup425: sp_core::ed25519::Signature **/ SpCoreEd25519Signature: '[u8;64]', /** - * Lookup425: sp_core::sr25519::Signature + * Lookup427: sp_core::sr25519::Signature **/ SpCoreSr25519Signature: '[u8;64]', /** - * Lookup426: sp_core::ecdsa::Signature + * Lookup428: sp_core::ecdsa::Signature **/ SpCoreEcdsaSignature: '[u8;65]', /** - * Lookup429: frame_system::extensions::check_spec_version::CheckSpecVersion + * Lookup431: frame_system::extensions::check_spec_version::CheckSpecVersion **/ FrameSystemExtensionsCheckSpecVersion: 'Null', /** - * Lookup430: frame_system::extensions::check_genesis::CheckGenesis + * Lookup432: frame_system::extensions::check_genesis::CheckGenesis **/ FrameSystemExtensionsCheckGenesis: 'Null', /** - * Lookup433: frame_system::extensions::check_nonce::CheckNonce + * Lookup435: frame_system::extensions::check_nonce::CheckNonce **/ FrameSystemExtensionsCheckNonce: 'Compact', /** - * Lookup434: frame_system::extensions::check_weight::CheckWeight + * Lookup436: frame_system::extensions::check_weight::CheckWeight **/ FrameSystemExtensionsCheckWeight: 'Null', /** - * Lookup435: pallet_template_transaction_payment::ChargeTransactionPayment + * Lookup437: pallet_template_transaction_payment::ChargeTransactionPayment **/ PalletTemplateTransactionPaymentChargeTransactionPayment: 'Compact', /** - * Lookup436: opal_runtime::Runtime + * Lookup438: opal_runtime::Runtime **/ OpalRuntimeRuntime: 'Null', /** - * Lookup437: pallet_ethereum::FakeTransactionFinalizer + * Lookup439: pallet_ethereum::FakeTransactionFinalizer **/ PalletEthereumFakeTransactionFinalizer: 'Null' }; --- a/tests/src/interfaces/registry.ts +++ b/tests/src/interfaces/registry.ts @@ -1,7 +1,7 @@ // Auto-generated via `yarn polkadot-types-from-defs`, do not edit /* eslint-disable */ -import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmOrigin, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportDispatchRawOrigin, FrameSupportPalletId, FrameSupportScheduleLookupError, FrameSupportScheduleMaybeHashed, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchClass, FrameSupportWeightsDispatchInfo, FrameSupportWeightsPays, FrameSupportWeightsPerDispatchClassU32, FrameSupportWeightsPerDispatchClassU64, FrameSupportWeightsPerDispatchClassWeightsPerClass, FrameSupportWeightsRuntimeDbWeight, FrameSupportWeightsWeightToFeeCoefficient, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeOriginCaller, OpalRuntimeRuntime, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEthereumRawOrigin, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletFungibleError, PalletInflationCall, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletRmrkCoreCall, PalletRmrkCoreError, PalletRmrkCoreEvent, PalletRmrkEquipCall, PalletRmrkEquipError, PalletRmrkEquipEvent, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTimestampCall, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletUnqSchedulerCall, PalletUnqSchedulerError, PalletUnqSchedulerEvent, PalletUnqSchedulerScheduledV3, PalletXcmCall, PalletXcmError, PalletXcmEvent, PalletXcmOrigin, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsNftRoyaltyInfo, RmrkTraitsPartEquippableList, RmrkTraitsPartFixedPart, RmrkTraitsPartPartType, RmrkTraitsPartSlotPart, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceInfo, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, RmrkTraitsThemeThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpCoreVoid, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExData, UpDataStructsNestingRule, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsRpcCollection, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipState, UpDataStructsTokenChild, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup'; +import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmOrigin, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportDispatchRawOrigin, FrameSupportPalletId, FrameSupportScheduleLookupError, FrameSupportScheduleMaybeHashed, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchClass, FrameSupportWeightsDispatchInfo, FrameSupportWeightsPays, FrameSupportWeightsPerDispatchClassU32, FrameSupportWeightsPerDispatchClassU64, FrameSupportWeightsPerDispatchClassWeightsPerClass, FrameSupportWeightsRuntimeDbWeight, FrameSupportWeightsWeightToFeeCoefficient, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeOriginCaller, OpalRuntimeRuntime, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEthereumRawOrigin, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletFungibleError, PalletInflationCall, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletRmrkCoreCall, PalletRmrkCoreError, PalletRmrkCoreEvent, PalletRmrkEquipCall, PalletRmrkEquipError, PalletRmrkEquipEvent, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTimestampCall, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletUnqSchedulerCall, PalletUnqSchedulerError, PalletUnqSchedulerEvent, PalletUnqSchedulerScheduledV3, PalletXcmCall, PalletXcmError, PalletXcmEvent, PalletXcmOrigin, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsNftRoyaltyInfo, RmrkTraitsPartEquippableList, RmrkTraitsPartFixedPart, RmrkTraitsPartPartType, RmrkTraitsPartSlotPart, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceInfo, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, RmrkTraitsThemeThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpCoreVoid, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExData, UpDataStructsNestingPermissions, UpDataStructsOwnerRestrictedSet, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsRpcCollection, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipState, UpDataStructsTokenChild, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup'; declare module '@polkadot/types/types/registry' { export interface InterfaceTypes { @@ -196,7 +196,8 @@ UpDataStructsCreateNftExData: UpDataStructsCreateNftExData; UpDataStructsCreateReFungibleData: UpDataStructsCreateReFungibleData; UpDataStructsCreateRefungibleExData: UpDataStructsCreateRefungibleExData; - UpDataStructsNestingRule: UpDataStructsNestingRule; + UpDataStructsNestingPermissions: UpDataStructsNestingPermissions; + UpDataStructsOwnerRestrictedSet: UpDataStructsOwnerRestrictedSet; UpDataStructsProperties: UpDataStructsProperties; UpDataStructsPropertiesMapBoundedVec: UpDataStructsPropertiesMapBoundedVec; UpDataStructsPropertiesMapPropertyPermission: UpDataStructsPropertiesMapPropertyPermission; --- a/tests/src/interfaces/types-lookup.ts +++ b/tests/src/interfaces/types-lookup.ts @@ -1556,38 +1556,40 @@ export interface UpDataStructsCollectionPermissions extends Struct { readonly access: Option; readonly mintMode: Option; - readonly nesting: Option; + readonly nesting: Option; } - /** @name UpDataStructsNestingRule (169) */ - export interface UpDataStructsNestingRule extends Enum { - readonly isDisabled: boolean; - readonly isOwner: boolean; - readonly isOwnerRestricted: boolean; - readonly asOwnerRestricted: BTreeSet; - readonly type: 'Disabled' | 'Owner' | 'OwnerRestricted'; + /** @name UpDataStructsNestingPermissions (169) */ + export interface UpDataStructsNestingPermissions extends Struct { + readonly tokenOwner: bool; + readonly admin: bool; + readonly restricted: Option; + readonly permissive: bool; } - /** @name UpDataStructsPropertyKeyPermission (175) */ + /** @name UpDataStructsOwnerRestrictedSet (171) */ + export interface UpDataStructsOwnerRestrictedSet extends BTreeSet {} + + /** @name UpDataStructsPropertyKeyPermission (177) */ export interface UpDataStructsPropertyKeyPermission extends Struct { readonly key: Bytes; readonly permission: UpDataStructsPropertyPermission; } - /** @name UpDataStructsPropertyPermission (177) */ + /** @name UpDataStructsPropertyPermission (179) */ export interface UpDataStructsPropertyPermission extends Struct { readonly mutable: bool; readonly collectionAdmin: bool; readonly tokenOwner: bool; } - /** @name UpDataStructsProperty (180) */ + /** @name UpDataStructsProperty (182) */ export interface UpDataStructsProperty extends Struct { readonly key: Bytes; readonly value: Bytes; } - /** @name PalletEvmAccountBasicCrossAccountIdRepr (183) */ + /** @name PalletEvmAccountBasicCrossAccountIdRepr (185) */ export interface PalletEvmAccountBasicCrossAccountIdRepr extends Enum { readonly isSubstrate: boolean; readonly asSubstrate: AccountId32; @@ -1596,7 +1598,7 @@ readonly type: 'Substrate' | 'Ethereum'; } - /** @name UpDataStructsCreateItemData (185) */ + /** @name UpDataStructsCreateItemData (187) */ export interface UpDataStructsCreateItemData extends Enum { readonly isNft: boolean; readonly asNft: UpDataStructsCreateNftData; @@ -1607,23 +1609,23 @@ readonly type: 'Nft' | 'Fungible' | 'ReFungible'; } - /** @name UpDataStructsCreateNftData (186) */ + /** @name UpDataStructsCreateNftData (188) */ export interface UpDataStructsCreateNftData extends Struct { readonly properties: Vec; } - /** @name UpDataStructsCreateFungibleData (187) */ + /** @name UpDataStructsCreateFungibleData (189) */ export interface UpDataStructsCreateFungibleData extends Struct { readonly value: u128; } - /** @name UpDataStructsCreateReFungibleData (188) */ + /** @name UpDataStructsCreateReFungibleData (190) */ export interface UpDataStructsCreateReFungibleData extends Struct { readonly constData: Bytes; readonly pieces: u128; } - /** @name UpDataStructsCreateItemExData (193) */ + /** @name UpDataStructsCreateItemExData (195) */ export interface UpDataStructsCreateItemExData extends Enum { readonly isNft: boolean; readonly asNft: Vec; @@ -1636,19 +1638,19 @@ readonly type: 'Nft' | 'Fungible' | 'RefungibleMultipleItems' | 'RefungibleMultipleOwners'; } - /** @name UpDataStructsCreateNftExData (195) */ + /** @name UpDataStructsCreateNftExData (197) */ export interface UpDataStructsCreateNftExData extends Struct { readonly properties: Vec; readonly owner: PalletEvmAccountBasicCrossAccountIdRepr; } - /** @name UpDataStructsCreateRefungibleExData (202) */ + /** @name UpDataStructsCreateRefungibleExData (204) */ export interface UpDataStructsCreateRefungibleExData extends Struct { readonly constData: Bytes; readonly users: BTreeMap; } - /** @name PalletUnqSchedulerCall (204) */ + /** @name PalletUnqSchedulerCall (206) */ export interface PalletUnqSchedulerCall extends Enum { readonly isScheduleNamed: boolean; readonly asScheduleNamed: { @@ -1673,7 +1675,7 @@ readonly type: 'ScheduleNamed' | 'CancelNamed' | 'ScheduleNamedAfter'; } - /** @name FrameSupportScheduleMaybeHashed (206) */ + /** @name FrameSupportScheduleMaybeHashed (208) */ export interface FrameSupportScheduleMaybeHashed extends Enum { readonly isValue: boolean; readonly asValue: Call; @@ -1682,13 +1684,13 @@ readonly type: 'Value' | 'Hash'; } - /** @name PalletTemplateTransactionPaymentCall (207) */ + /** @name PalletTemplateTransactionPaymentCall (209) */ export type PalletTemplateTransactionPaymentCall = Null; - /** @name PalletStructureCall (208) */ + /** @name PalletStructureCall (210) */ export type PalletStructureCall = Null; - /** @name PalletRmrkCoreCall (209) */ + /** @name PalletRmrkCoreCall (211) */ export interface PalletRmrkCoreCall extends Enum { readonly isCreateCollection: boolean; readonly asCreateCollection: { @@ -1793,7 +1795,7 @@ readonly type: 'CreateCollection' | 'DestroyCollection' | 'ChangeCollectionIssuer' | 'LockCollection' | 'MintNft' | 'BurnNft' | 'Send' | 'AcceptNft' | 'RejectNft' | 'AcceptResource' | 'AcceptResourceRemoval' | 'SetProperty' | 'SetPriority' | 'AddBasicResource' | 'AddComposableResource' | 'AddSlotResource' | 'RemoveResource'; } - /** @name RmrkTraitsNftAccountIdOrCollectionNftTuple (213) */ + /** @name RmrkTraitsNftAccountIdOrCollectionNftTuple (215) */ export interface RmrkTraitsNftAccountIdOrCollectionNftTuple extends Enum { readonly isAccountId: boolean; readonly asAccountId: AccountId32; @@ -1802,7 +1804,7 @@ readonly type: 'AccountId' | 'CollectionAndNftTuple'; } - /** @name RmrkTraitsResourceBasicResource (217) */ + /** @name RmrkTraitsResourceBasicResource (219) */ export interface RmrkTraitsResourceBasicResource extends Struct { readonly src: Option; readonly metadata: Option; @@ -1810,7 +1812,7 @@ readonly thumb: Option; } - /** @name RmrkTraitsResourceComposableResource (220) */ + /** @name RmrkTraitsResourceComposableResource (222) */ export interface RmrkTraitsResourceComposableResource extends Struct { readonly parts: Vec; readonly base: u32; @@ -1820,7 +1822,7 @@ readonly thumb: Option; } - /** @name RmrkTraitsResourceSlotResource (222) */ + /** @name RmrkTraitsResourceSlotResource (224) */ export interface RmrkTraitsResourceSlotResource extends Struct { readonly base: u32; readonly src: Option; @@ -1830,7 +1832,7 @@ readonly thumb: Option; } - /** @name PalletRmrkEquipCall (223) */ + /** @name PalletRmrkEquipCall (225) */ export interface PalletRmrkEquipCall extends Enum { readonly isCreateBase: boolean; readonly asCreateBase: { @@ -1846,7 +1848,7 @@ readonly type: 'CreateBase' | 'ThemeAdd'; } - /** @name RmrkTraitsPartPartType (225) */ + /** @name RmrkTraitsPartPartType (227) */ export interface RmrkTraitsPartPartType extends Enum { readonly isFixedPart: boolean; readonly asFixedPart: RmrkTraitsPartFixedPart; @@ -1855,14 +1857,14 @@ readonly type: 'FixedPart' | 'SlotPart'; } - /** @name RmrkTraitsPartFixedPart (227) */ + /** @name RmrkTraitsPartFixedPart (229) */ export interface RmrkTraitsPartFixedPart extends Struct { readonly id: u32; readonly z: u32; readonly src: Bytes; } - /** @name RmrkTraitsPartSlotPart (228) */ + /** @name RmrkTraitsPartSlotPart (230) */ export interface RmrkTraitsPartSlotPart extends Struct { readonly id: u32; readonly equippable: RmrkTraitsPartEquippableList; @@ -1870,7 +1872,7 @@ readonly z: u32; } - /** @name RmrkTraitsPartEquippableList (229) */ + /** @name RmrkTraitsPartEquippableList (231) */ export interface RmrkTraitsPartEquippableList extends Enum { readonly isAll: boolean; readonly isEmpty: boolean; @@ -1879,20 +1881,20 @@ readonly type: 'All' | 'Empty' | 'Custom'; } - /** @name RmrkTraitsTheme (231) */ + /** @name RmrkTraitsTheme (233) */ export interface RmrkTraitsTheme extends Struct { readonly name: Bytes; readonly properties: Vec; readonly inherit: bool; } - /** @name RmrkTraitsThemeThemeProperty (233) */ + /** @name RmrkTraitsThemeThemeProperty (235) */ export interface RmrkTraitsThemeThemeProperty extends Struct { readonly key: Bytes; readonly value: Bytes; } - /** @name PalletEvmCall (234) */ + /** @name PalletEvmCall (236) */ export interface PalletEvmCall extends Enum { readonly isWithdraw: boolean; readonly asWithdraw: { @@ -1937,7 +1939,7 @@ readonly type: 'Withdraw' | 'Call' | 'Create' | 'Create2'; } - /** @name PalletEthereumCall (240) */ + /** @name PalletEthereumCall (242) */ export interface PalletEthereumCall extends Enum { readonly isTransact: boolean; readonly asTransact: { @@ -1946,7 +1948,7 @@ readonly type: 'Transact'; } - /** @name EthereumTransactionTransactionV2 (241) */ + /** @name EthereumTransactionTransactionV2 (243) */ export interface EthereumTransactionTransactionV2 extends Enum { readonly isLegacy: boolean; readonly asLegacy: EthereumTransactionLegacyTransaction; @@ -1957,7 +1959,7 @@ readonly type: 'Legacy' | 'Eip2930' | 'Eip1559'; } - /** @name EthereumTransactionLegacyTransaction (242) */ + /** @name EthereumTransactionLegacyTransaction (244) */ export interface EthereumTransactionLegacyTransaction extends Struct { readonly nonce: U256; readonly gasPrice: U256; @@ -1968,7 +1970,7 @@ readonly signature: EthereumTransactionTransactionSignature; } - /** @name EthereumTransactionTransactionAction (243) */ + /** @name EthereumTransactionTransactionAction (245) */ export interface EthereumTransactionTransactionAction extends Enum { readonly isCall: boolean; readonly asCall: H160; @@ -1976,14 +1978,14 @@ readonly type: 'Call' | 'Create'; } - /** @name EthereumTransactionTransactionSignature (244) */ + /** @name EthereumTransactionTransactionSignature (246) */ export interface EthereumTransactionTransactionSignature extends Struct { readonly v: u64; readonly r: H256; readonly s: H256; } - /** @name EthereumTransactionEip2930Transaction (246) */ + /** @name EthereumTransactionEip2930Transaction (248) */ export interface EthereumTransactionEip2930Transaction extends Struct { readonly chainId: u64; readonly nonce: U256; @@ -1998,13 +2000,13 @@ readonly s: H256; } - /** @name EthereumTransactionAccessListItem (248) */ + /** @name EthereumTransactionAccessListItem (250) */ export interface EthereumTransactionAccessListItem extends Struct { readonly address: H160; readonly storageKeys: Vec; } - /** @name EthereumTransactionEip1559Transaction (249) */ + /** @name EthereumTransactionEip1559Transaction (251) */ export interface EthereumTransactionEip1559Transaction extends Struct { readonly chainId: u64; readonly nonce: U256; @@ -2020,7 +2022,7 @@ readonly s: H256; } - /** @name PalletEvmMigrationCall (250) */ + /** @name PalletEvmMigrationCall (252) */ export interface PalletEvmMigrationCall extends Enum { readonly isBegin: boolean; readonly asBegin: { @@ -2039,7 +2041,7 @@ readonly type: 'Begin' | 'SetData' | 'Finish'; } - /** @name PalletSudoEvent (253) */ + /** @name PalletSudoEvent (255) */ export interface PalletSudoEvent extends Enum { readonly isSudid: boolean; readonly asSudid: { @@ -2056,7 +2058,7 @@ readonly type: 'Sudid' | 'KeyChanged' | 'SudoAsDone'; } - /** @name SpRuntimeDispatchError (255) */ + /** @name SpRuntimeDispatchError (257) */ export interface SpRuntimeDispatchError extends Enum { readonly isOther: boolean; readonly isCannotLookup: boolean; @@ -2075,13 +2077,13 @@ readonly type: 'Other' | 'CannotLookup' | 'BadOrigin' | 'Module' | 'ConsumerRemaining' | 'NoProviders' | 'TooManyConsumers' | 'Token' | 'Arithmetic' | 'Transactional'; } - /** @name SpRuntimeModuleError (256) */ + /** @name SpRuntimeModuleError (258) */ export interface SpRuntimeModuleError extends Struct { readonly index: u8; readonly error: U8aFixed; } - /** @name SpRuntimeTokenError (257) */ + /** @name SpRuntimeTokenError (259) */ export interface SpRuntimeTokenError extends Enum { readonly isNoFunds: boolean; readonly isWouldDie: boolean; @@ -2093,7 +2095,7 @@ readonly type: 'NoFunds' | 'WouldDie' | 'BelowMinimum' | 'CannotCreate' | 'UnknownAsset' | 'Frozen' | 'Unsupported'; } - /** @name SpRuntimeArithmeticError (258) */ + /** @name SpRuntimeArithmeticError (260) */ export interface SpRuntimeArithmeticError extends Enum { readonly isUnderflow: boolean; readonly isOverflow: boolean; @@ -2101,20 +2103,20 @@ readonly type: 'Underflow' | 'Overflow' | 'DivisionByZero'; } - /** @name SpRuntimeTransactionalError (259) */ + /** @name SpRuntimeTransactionalError (261) */ export interface SpRuntimeTransactionalError extends Enum { readonly isLimitReached: boolean; readonly isNoLayer: boolean; readonly type: 'LimitReached' | 'NoLayer'; } - /** @name PalletSudoError (260) */ + /** @name PalletSudoError (262) */ export interface PalletSudoError extends Enum { readonly isRequireSudo: boolean; readonly type: 'RequireSudo'; } - /** @name FrameSystemAccountInfo (261) */ + /** @name FrameSystemAccountInfo (263) */ export interface FrameSystemAccountInfo extends Struct { readonly nonce: u32; readonly consumers: u32; @@ -2123,19 +2125,19 @@ readonly data: PalletBalancesAccountData; } - /** @name FrameSupportWeightsPerDispatchClassU64 (262) */ + /** @name FrameSupportWeightsPerDispatchClassU64 (264) */ export interface FrameSupportWeightsPerDispatchClassU64 extends Struct { readonly normal: u64; readonly operational: u64; readonly mandatory: u64; } - /** @name SpRuntimeDigest (263) */ + /** @name SpRuntimeDigest (265) */ export interface SpRuntimeDigest extends Struct { readonly logs: Vec; } - /** @name SpRuntimeDigestDigestItem (265) */ + /** @name SpRuntimeDigestDigestItem (267) */ export interface SpRuntimeDigestDigestItem extends Enum { readonly isOther: boolean; readonly asOther: Bytes; @@ -2149,14 +2151,14 @@ readonly type: 'Other' | 'Consensus' | 'Seal' | 'PreRuntime' | 'RuntimeEnvironmentUpdated'; } - /** @name FrameSystemEventRecord (267) */ + /** @name FrameSystemEventRecord (269) */ export interface FrameSystemEventRecord extends Struct { readonly phase: FrameSystemPhase; readonly event: Event; readonly topics: Vec; } - /** @name FrameSystemEvent (269) */ + /** @name FrameSystemEvent (271) */ export interface FrameSystemEvent extends Enum { readonly isExtrinsicSuccess: boolean; readonly asExtrinsicSuccess: { @@ -2184,14 +2186,14 @@ readonly type: 'ExtrinsicSuccess' | 'ExtrinsicFailed' | 'CodeUpdated' | 'NewAccount' | 'KilledAccount' | 'Remarked'; } - /** @name FrameSupportWeightsDispatchInfo (270) */ + /** @name FrameSupportWeightsDispatchInfo (272) */ export interface FrameSupportWeightsDispatchInfo extends Struct { readonly weight: u64; readonly class: FrameSupportWeightsDispatchClass; readonly paysFee: FrameSupportWeightsPays; } - /** @name FrameSupportWeightsDispatchClass (271) */ + /** @name FrameSupportWeightsDispatchClass (273) */ export interface FrameSupportWeightsDispatchClass extends Enum { readonly isNormal: boolean; readonly isOperational: boolean; @@ -2199,14 +2201,14 @@ readonly type: 'Normal' | 'Operational' | 'Mandatory'; } - /** @name FrameSupportWeightsPays (272) */ + /** @name FrameSupportWeightsPays (274) */ export interface FrameSupportWeightsPays extends Enum { readonly isYes: boolean; readonly isNo: boolean; readonly type: 'Yes' | 'No'; } - /** @name OrmlVestingModuleEvent (273) */ + /** @name OrmlVestingModuleEvent (275) */ export interface OrmlVestingModuleEvent extends Enum { readonly isVestingScheduleAdded: boolean; readonly asVestingScheduleAdded: { @@ -2226,7 +2228,7 @@ readonly type: 'VestingScheduleAdded' | 'Claimed' | 'VestingSchedulesUpdated'; } - /** @name CumulusPalletXcmpQueueEvent (274) */ + /** @name CumulusPalletXcmpQueueEvent (276) */ export interface CumulusPalletXcmpQueueEvent extends Enum { readonly isSuccess: boolean; readonly asSuccess: Option; @@ -2247,7 +2249,7 @@ readonly type: 'Success' | 'Fail' | 'BadVersion' | 'BadFormat' | 'UpwardMessageSent' | 'XcmpMessageSent' | 'OverweightEnqueued' | 'OverweightServiced'; } - /** @name PalletXcmEvent (275) */ + /** @name PalletXcmEvent (277) */ export interface PalletXcmEvent extends Enum { readonly isAttempted: boolean; readonly asAttempted: XcmV2TraitsOutcome; @@ -2284,7 +2286,7 @@ readonly type: 'Attempted' | 'Sent' | 'UnexpectedResponse' | 'ResponseReady' | 'Notified' | 'NotifyOverweight' | 'NotifyDispatchError' | 'NotifyDecodeFailed' | 'InvalidResponder' | 'InvalidResponderVersion' | 'ResponseTaken' | 'AssetsTrapped' | 'VersionChangeNotified' | 'SupportedVersionChanged' | 'NotifyTargetSendFail' | 'NotifyTargetMigrationFail'; } - /** @name XcmV2TraitsOutcome (276) */ + /** @name XcmV2TraitsOutcome (278) */ export interface XcmV2TraitsOutcome extends Enum { readonly isComplete: boolean; readonly asComplete: u64; @@ -2295,7 +2297,7 @@ readonly type: 'Complete' | 'Incomplete' | 'Error'; } - /** @name CumulusPalletXcmEvent (278) */ + /** @name CumulusPalletXcmEvent (280) */ export interface CumulusPalletXcmEvent extends Enum { readonly isInvalidFormat: boolean; readonly asInvalidFormat: U8aFixed; @@ -2306,7 +2308,7 @@ readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward'; } - /** @name CumulusPalletDmpQueueEvent (279) */ + /** @name CumulusPalletDmpQueueEvent (281) */ export interface CumulusPalletDmpQueueEvent extends Enum { readonly isInvalidFormat: boolean; readonly asInvalidFormat: U8aFixed; @@ -2323,7 +2325,7 @@ readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward' | 'WeightExhausted' | 'OverweightEnqueued' | 'OverweightServiced'; } - /** @name PalletUniqueRawEvent (280) */ + /** @name PalletUniqueRawEvent (282) */ export interface PalletUniqueRawEvent extends Enum { readonly isCollectionSponsorRemoved: boolean; readonly asCollectionSponsorRemoved: u32; @@ -2348,7 +2350,7 @@ readonly type: 'CollectionSponsorRemoved' | 'CollectionAdminAdded' | 'CollectionOwnedChanged' | 'CollectionSponsorSet' | 'SponsorshipConfirmed' | 'CollectionAdminRemoved' | 'AllowListAddressRemoved' | 'AllowListAddressAdded' | 'CollectionLimitSet' | 'CollectionPermissionSet'; } - /** @name PalletUnqSchedulerEvent (281) */ + /** @name PalletUnqSchedulerEvent (283) */ export interface PalletUnqSchedulerEvent extends Enum { readonly isScheduled: boolean; readonly asScheduled: { @@ -2375,14 +2377,14 @@ readonly type: 'Scheduled' | 'Canceled' | 'Dispatched' | 'CallLookupFailed'; } - /** @name FrameSupportScheduleLookupError (283) */ + /** @name FrameSupportScheduleLookupError (285) */ export interface FrameSupportScheduleLookupError extends Enum { readonly isUnknown: boolean; readonly isBadFormat: boolean; readonly type: 'Unknown' | 'BadFormat'; } - /** @name PalletCommonEvent (284) */ + /** @name PalletCommonEvent (286) */ export interface PalletCommonEvent extends Enum { readonly isCollectionCreated: boolean; readonly asCollectionCreated: ITuple<[u32, u8, AccountId32]>; @@ -2409,14 +2411,14 @@ readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'ItemCreated' | 'ItemDestroyed' | 'Transfer' | 'Approved' | 'CollectionPropertySet' | 'CollectionPropertyDeleted' | 'TokenPropertySet' | 'TokenPropertyDeleted' | 'PropertyPermissionSet'; } - /** @name PalletStructureEvent (285) */ + /** @name PalletStructureEvent (287) */ export interface PalletStructureEvent extends Enum { readonly isExecuted: boolean; readonly asExecuted: Result; readonly type: 'Executed'; } - /** @name PalletRmrkCoreEvent (286) */ + /** @name PalletRmrkCoreEvent (288) */ export interface PalletRmrkCoreEvent extends Enum { readonly isCollectionCreated: boolean; readonly asCollectionCreated: { @@ -2506,7 +2508,7 @@ readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'IssuerChanged' | 'CollectionLocked' | 'NftMinted' | 'NftBurned' | 'NftSent' | 'NftAccepted' | 'NftRejected' | 'PropertySet' | 'ResourceAdded' | 'ResourceRemoval' | 'ResourceAccepted' | 'ResourceRemovalAccepted' | 'PrioritySet'; } - /** @name PalletRmrkEquipEvent (287) */ + /** @name PalletRmrkEquipEvent (289) */ export interface PalletRmrkEquipEvent extends Enum { readonly isBaseCreated: boolean; readonly asBaseCreated: { @@ -2516,7 +2518,7 @@ readonly type: 'BaseCreated'; } - /** @name PalletEvmEvent (288) */ + /** @name PalletEvmEvent (290) */ export interface PalletEvmEvent extends Enum { readonly isLog: boolean; readonly asLog: EthereumLog; @@ -2535,21 +2537,21 @@ readonly type: 'Log' | 'Created' | 'CreatedFailed' | 'Executed' | 'ExecutedFailed' | 'BalanceDeposit' | 'BalanceWithdraw'; } - /** @name EthereumLog (289) */ + /** @name EthereumLog (291) */ export interface EthereumLog extends Struct { readonly address: H160; readonly topics: Vec; readonly data: Bytes; } - /** @name PalletEthereumEvent (290) */ + /** @name PalletEthereumEvent (292) */ export interface PalletEthereumEvent extends Enum { readonly isExecuted: boolean; readonly asExecuted: ITuple<[H160, H160, H256, EvmCoreErrorExitReason]>; readonly type: 'Executed'; } - /** @name EvmCoreErrorExitReason (291) */ + /** @name EvmCoreErrorExitReason (293) */ export interface EvmCoreErrorExitReason extends Enum { readonly isSucceed: boolean; readonly asSucceed: EvmCoreErrorExitSucceed; @@ -2562,7 +2564,7 @@ readonly type: 'Succeed' | 'Error' | 'Revert' | 'Fatal'; } - /** @name EvmCoreErrorExitSucceed (292) */ + /** @name EvmCoreErrorExitSucceed (294) */ export interface EvmCoreErrorExitSucceed extends Enum { readonly isStopped: boolean; readonly isReturned: boolean; @@ -2570,7 +2572,7 @@ readonly type: 'Stopped' | 'Returned' | 'Suicided'; } - /** @name EvmCoreErrorExitError (293) */ + /** @name EvmCoreErrorExitError (295) */ export interface EvmCoreErrorExitError extends Enum { readonly isStackUnderflow: boolean; readonly isStackOverflow: boolean; @@ -2591,13 +2593,13 @@ readonly type: 'StackUnderflow' | 'StackOverflow' | 'InvalidJump' | 'InvalidRange' | 'DesignatedInvalid' | 'CallTooDeep' | 'CreateCollision' | 'CreateContractLimit' | 'OutOfOffset' | 'OutOfGas' | 'OutOfFund' | 'PcUnderflow' | 'CreateEmpty' | 'Other' | 'InvalidCode'; } - /** @name EvmCoreErrorExitRevert (296) */ + /** @name EvmCoreErrorExitRevert (298) */ export interface EvmCoreErrorExitRevert extends Enum { readonly isReverted: boolean; readonly type: 'Reverted'; } - /** @name EvmCoreErrorExitFatal (297) */ + /** @name EvmCoreErrorExitFatal (299) */ export interface EvmCoreErrorExitFatal extends Enum { readonly isNotSupported: boolean; readonly isUnhandledInterrupt: boolean; @@ -2608,7 +2610,7 @@ readonly type: 'NotSupported' | 'UnhandledInterrupt' | 'CallErrorAsFatal' | 'Other'; } - /** @name FrameSystemPhase (298) */ + /** @name FrameSystemPhase (300) */ export interface FrameSystemPhase extends Enum { readonly isApplyExtrinsic: boolean; readonly asApplyExtrinsic: u32; @@ -2617,27 +2619,27 @@ readonly type: 'ApplyExtrinsic' | 'Finalization' | 'Initialization'; } - /** @name FrameSystemLastRuntimeUpgradeInfo (300) */ + /** @name FrameSystemLastRuntimeUpgradeInfo (302) */ export interface FrameSystemLastRuntimeUpgradeInfo extends Struct { readonly specVersion: Compact; readonly specName: Text; } - /** @name FrameSystemLimitsBlockWeights (301) */ + /** @name FrameSystemLimitsBlockWeights (303) */ export interface FrameSystemLimitsBlockWeights extends Struct { readonly baseBlock: u64; readonly maxBlock: u64; readonly perClass: FrameSupportWeightsPerDispatchClassWeightsPerClass; } - /** @name FrameSupportWeightsPerDispatchClassWeightsPerClass (302) */ + /** @name FrameSupportWeightsPerDispatchClassWeightsPerClass (304) */ export interface FrameSupportWeightsPerDispatchClassWeightsPerClass extends Struct { readonly normal: FrameSystemLimitsWeightsPerClass; readonly operational: FrameSystemLimitsWeightsPerClass; readonly mandatory: FrameSystemLimitsWeightsPerClass; } - /** @name FrameSystemLimitsWeightsPerClass (303) */ + /** @name FrameSystemLimitsWeightsPerClass (305) */ export interface FrameSystemLimitsWeightsPerClass extends Struct { readonly baseExtrinsic: u64; readonly maxExtrinsic: Option; @@ -2645,25 +2647,25 @@ readonly reserved: Option; } - /** @name FrameSystemLimitsBlockLength (305) */ + /** @name FrameSystemLimitsBlockLength (307) */ export interface FrameSystemLimitsBlockLength extends Struct { readonly max: FrameSupportWeightsPerDispatchClassU32; } - /** @name FrameSupportWeightsPerDispatchClassU32 (306) */ + /** @name FrameSupportWeightsPerDispatchClassU32 (308) */ export interface FrameSupportWeightsPerDispatchClassU32 extends Struct { readonly normal: u32; readonly operational: u32; readonly mandatory: u32; } - /** @name FrameSupportWeightsRuntimeDbWeight (307) */ + /** @name FrameSupportWeightsRuntimeDbWeight (309) */ export interface FrameSupportWeightsRuntimeDbWeight extends Struct { readonly read: u64; readonly write: u64; } - /** @name SpVersionRuntimeVersion (308) */ + /** @name SpVersionRuntimeVersion (310) */ export interface SpVersionRuntimeVersion extends Struct { readonly specName: Text; readonly implName: Text; @@ -2675,7 +2677,7 @@ readonly stateVersion: u8; } - /** @name FrameSystemError (312) */ + /** @name FrameSystemError (314) */ export interface FrameSystemError extends Enum { readonly isInvalidSpecName: boolean; readonly isSpecVersionNeedsToIncrease: boolean; @@ -2686,7 +2688,7 @@ readonly type: 'InvalidSpecName' | 'SpecVersionNeedsToIncrease' | 'FailedToExtractRuntimeVersion' | 'NonDefaultComposite' | 'NonZeroRefCount' | 'CallFiltered'; } - /** @name OrmlVestingModuleError (314) */ + /** @name OrmlVestingModuleError (316) */ export interface OrmlVestingModuleError extends Enum { readonly isZeroVestingPeriod: boolean; readonly isZeroVestingPeriodCount: boolean; @@ -2697,21 +2699,21 @@ readonly type: 'ZeroVestingPeriod' | 'ZeroVestingPeriodCount' | 'InsufficientBalanceToLock' | 'TooManyVestingSchedules' | 'AmountLow' | 'MaxVestingSchedulesExceeded'; } - /** @name CumulusPalletXcmpQueueInboundChannelDetails (316) */ + /** @name CumulusPalletXcmpQueueInboundChannelDetails (318) */ export interface CumulusPalletXcmpQueueInboundChannelDetails extends Struct { readonly sender: u32; readonly state: CumulusPalletXcmpQueueInboundState; readonly messageMetadata: Vec>; } - /** @name CumulusPalletXcmpQueueInboundState (317) */ + /** @name CumulusPalletXcmpQueueInboundState (319) */ export interface CumulusPalletXcmpQueueInboundState extends Enum { readonly isOk: boolean; readonly isSuspended: boolean; readonly type: 'Ok' | 'Suspended'; } - /** @name PolkadotParachainPrimitivesXcmpMessageFormat (320) */ + /** @name PolkadotParachainPrimitivesXcmpMessageFormat (322) */ export interface PolkadotParachainPrimitivesXcmpMessageFormat extends Enum { readonly isConcatenatedVersionedXcm: boolean; readonly isConcatenatedEncodedBlob: boolean; @@ -2719,7 +2721,7 @@ readonly type: 'ConcatenatedVersionedXcm' | 'ConcatenatedEncodedBlob' | 'Signals'; } - /** @name CumulusPalletXcmpQueueOutboundChannelDetails (323) */ + /** @name CumulusPalletXcmpQueueOutboundChannelDetails (325) */ export interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct { readonly recipient: u32; readonly state: CumulusPalletXcmpQueueOutboundState; @@ -2728,14 +2730,14 @@ readonly lastIndex: u16; } - /** @name CumulusPalletXcmpQueueOutboundState (324) */ + /** @name CumulusPalletXcmpQueueOutboundState (326) */ export interface CumulusPalletXcmpQueueOutboundState extends Enum { readonly isOk: boolean; readonly isSuspended: boolean; readonly type: 'Ok' | 'Suspended'; } - /** @name CumulusPalletXcmpQueueQueueConfigData (326) */ + /** @name CumulusPalletXcmpQueueQueueConfigData (328) */ export interface CumulusPalletXcmpQueueQueueConfigData extends Struct { readonly suspendThreshold: u32; readonly dropThreshold: u32; @@ -2745,7 +2747,7 @@ readonly xcmpMaxIndividualWeight: u64; } - /** @name CumulusPalletXcmpQueueError (328) */ + /** @name CumulusPalletXcmpQueueError (330) */ export interface CumulusPalletXcmpQueueError extends Enum { readonly isFailedToSend: boolean; readonly isBadXcmOrigin: boolean; @@ -2755,7 +2757,7 @@ readonly type: 'FailedToSend' | 'BadXcmOrigin' | 'BadXcm' | 'BadOverweightIndex' | 'WeightOverLimit'; } - /** @name PalletXcmError (329) */ + /** @name PalletXcmError (331) */ export interface PalletXcmError extends Enum { readonly isUnreachable: boolean; readonly isSendFailure: boolean; @@ -2773,29 +2775,29 @@ readonly type: 'Unreachable' | 'SendFailure' | 'Filtered' | 'UnweighableMessage' | 'DestinationNotInvertible' | 'Empty' | 'CannotReanchor' | 'TooManyAssets' | 'InvalidOrigin' | 'BadVersion' | 'BadLocation' | 'NoSubscription' | 'AlreadySubscribed'; } - /** @name CumulusPalletXcmError (330) */ + /** @name CumulusPalletXcmError (332) */ export type CumulusPalletXcmError = Null; - /** @name CumulusPalletDmpQueueConfigData (331) */ + /** @name CumulusPalletDmpQueueConfigData (333) */ export interface CumulusPalletDmpQueueConfigData extends Struct { readonly maxIndividual: u64; } - /** @name CumulusPalletDmpQueuePageIndexData (332) */ + /** @name CumulusPalletDmpQueuePageIndexData (334) */ export interface CumulusPalletDmpQueuePageIndexData extends Struct { readonly beginUsed: u32; readonly endUsed: u32; readonly overweightCount: u64; } - /** @name CumulusPalletDmpQueueError (335) */ + /** @name CumulusPalletDmpQueueError (337) */ export interface CumulusPalletDmpQueueError extends Enum { readonly isUnknown: boolean; readonly isOverLimit: boolean; readonly type: 'Unknown' | 'OverLimit'; } - /** @name PalletUniqueError (339) */ + /** @name PalletUniqueError (341) */ export interface PalletUniqueError extends Enum { readonly isCollectionDecimalPointLimitExceeded: boolean; readonly isConfirmUnsetSponsorFail: boolean; @@ -2803,7 +2805,7 @@ readonly type: 'CollectionDecimalPointLimitExceeded' | 'ConfirmUnsetSponsorFail' | 'EmptyArgument'; } - /** @name PalletUnqSchedulerScheduledV3 (342) */ + /** @name PalletUnqSchedulerScheduledV3 (344) */ export interface PalletUnqSchedulerScheduledV3 extends Struct { readonly maybeId: Option; readonly priority: u8; @@ -2812,7 +2814,7 @@ readonly origin: OpalRuntimeOriginCaller; } - /** @name OpalRuntimeOriginCaller (343) */ + /** @name OpalRuntimeOriginCaller (345) */ export interface OpalRuntimeOriginCaller extends Enum { readonly isVoid: boolean; readonly isSystem: boolean; @@ -2826,7 +2828,7 @@ readonly type: 'Void' | 'System' | 'PolkadotXcm' | 'CumulusXcm' | 'Ethereum'; } - /** @name FrameSupportDispatchRawOrigin (344) */ + /** @name FrameSupportDispatchRawOrigin (346) */ export interface FrameSupportDispatchRawOrigin extends Enum { readonly isRoot: boolean; readonly isSigned: boolean; @@ -2835,7 +2837,7 @@ readonly type: 'Root' | 'Signed' | 'None'; } - /** @name PalletXcmOrigin (345) */ + /** @name PalletXcmOrigin (347) */ export interface PalletXcmOrigin extends Enum { readonly isXcm: boolean; readonly asXcm: XcmV1MultiLocation; @@ -2844,7 +2846,7 @@ readonly type: 'Xcm' | 'Response'; } - /** @name CumulusPalletXcmOrigin (346) */ + /** @name CumulusPalletXcmOrigin (348) */ export interface CumulusPalletXcmOrigin extends Enum { readonly isRelay: boolean; readonly isSiblingParachain: boolean; @@ -2852,17 +2854,17 @@ readonly type: 'Relay' | 'SiblingParachain'; } - /** @name PalletEthereumRawOrigin (347) */ + /** @name PalletEthereumRawOrigin (349) */ export interface PalletEthereumRawOrigin extends Enum { readonly isEthereumTransaction: boolean; readonly asEthereumTransaction: H160; readonly type: 'EthereumTransaction'; } - /** @name SpCoreVoid (348) */ + /** @name SpCoreVoid (350) */ export type SpCoreVoid = Null; - /** @name PalletUnqSchedulerError (349) */ + /** @name PalletUnqSchedulerError (351) */ export interface PalletUnqSchedulerError extends Enum { readonly isFailedToSchedule: boolean; readonly isNotFound: boolean; @@ -2871,7 +2873,7 @@ readonly type: 'FailedToSchedule' | 'NotFound' | 'TargetBlockNumberInPast' | 'RescheduleNoChange'; } - /** @name UpDataStructsCollection (350) */ + /** @name UpDataStructsCollection (352) */ export interface UpDataStructsCollection extends Struct { readonly owner: AccountId32; readonly mode: UpDataStructsCollectionMode; @@ -2884,7 +2886,7 @@ readonly externalCollection: bool; } - /** @name UpDataStructsSponsorshipState (351) */ + /** @name UpDataStructsSponsorshipState (353) */ export interface UpDataStructsSponsorshipState extends Enum { readonly isDisabled: boolean; readonly isUnconfirmed: boolean; @@ -2894,42 +2896,42 @@ readonly type: 'Disabled' | 'Unconfirmed' | 'Confirmed'; } - /** @name UpDataStructsProperties (352) */ + /** @name UpDataStructsProperties (354) */ export interface UpDataStructsProperties extends Struct { readonly map: UpDataStructsPropertiesMapBoundedVec; readonly consumedSpace: u32; readonly spaceLimit: u32; } - /** @name UpDataStructsPropertiesMapBoundedVec (353) */ + /** @name UpDataStructsPropertiesMapBoundedVec (355) */ export interface UpDataStructsPropertiesMapBoundedVec extends BTreeMap {} - /** @name UpDataStructsPropertiesMapPropertyPermission (358) */ + /** @name UpDataStructsPropertiesMapPropertyPermission (360) */ export interface UpDataStructsPropertiesMapPropertyPermission extends BTreeMap {} - /** @name UpDataStructsCollectionStats (365) */ + /** @name UpDataStructsCollectionStats (367) */ export interface UpDataStructsCollectionStats extends Struct { readonly created: u32; readonly destroyed: u32; readonly alive: u32; } - /** @name UpDataStructsTokenChild (366) */ + /** @name UpDataStructsTokenChild (368) */ export interface UpDataStructsTokenChild extends Struct { readonly token: u32; readonly collection: u32; } - /** @name PhantomTypeUpDataStructs (367) */ + /** @name PhantomTypeUpDataStructs (369) */ export interface PhantomTypeUpDataStructs extends Vec> {} - /** @name UpDataStructsTokenData (369) */ + /** @name UpDataStructsTokenData (371) */ export interface UpDataStructsTokenData extends Struct { readonly properties: Vec; readonly owner: Option; } - /** @name UpDataStructsRpcCollection (371) */ + /** @name UpDataStructsRpcCollection (373) */ export interface UpDataStructsRpcCollection extends Struct { readonly owner: AccountId32; readonly mode: UpDataStructsCollectionMode; @@ -2944,7 +2946,7 @@ readonly readOnly: bool; } - /** @name RmrkTraitsCollectionCollectionInfo (372) */ + /** @name RmrkTraitsCollectionCollectionInfo (374) */ export interface RmrkTraitsCollectionCollectionInfo extends Struct { readonly issuer: AccountId32; readonly metadata: Bytes; @@ -2953,7 +2955,7 @@ readonly nftsCount: u32; } - /** @name RmrkTraitsNftNftInfo (373) */ + /** @name RmrkTraitsNftNftInfo (375) */ export interface RmrkTraitsNftNftInfo extends Struct { readonly owner: RmrkTraitsNftAccountIdOrCollectionNftTuple; readonly royalty: Option; @@ -2962,13 +2964,13 @@ readonly pending: bool; } - /** @name RmrkTraitsNftRoyaltyInfo (375) */ + /** @name RmrkTraitsNftRoyaltyInfo (377) */ export interface RmrkTraitsNftRoyaltyInfo extends Struct { readonly recipient: AccountId32; readonly amount: Permill; } - /** @name RmrkTraitsResourceResourceInfo (376) */ + /** @name RmrkTraitsResourceResourceInfo (378) */ export interface RmrkTraitsResourceResourceInfo extends Struct { readonly id: u32; readonly resource: RmrkTraitsResourceResourceTypes; @@ -2976,7 +2978,7 @@ readonly pendingRemoval: bool; } - /** @name RmrkTraitsResourceResourceTypes (377) */ + /** @name RmrkTraitsResourceResourceTypes (379) */ export interface RmrkTraitsResourceResourceTypes extends Enum { readonly isBasic: boolean; readonly asBasic: RmrkTraitsResourceBasicResource; @@ -2987,26 +2989,26 @@ readonly type: 'Basic' | 'Composable' | 'Slot'; } - /** @name RmrkTraitsPropertyPropertyInfo (378) */ + /** @name RmrkTraitsPropertyPropertyInfo (380) */ export interface RmrkTraitsPropertyPropertyInfo extends Struct { readonly key: Bytes; readonly value: Bytes; } - /** @name RmrkTraitsBaseBaseInfo (379) */ + /** @name RmrkTraitsBaseBaseInfo (381) */ export interface RmrkTraitsBaseBaseInfo extends Struct { readonly issuer: AccountId32; readonly baseType: Bytes; readonly symbol: Bytes; } - /** @name RmrkTraitsNftNftChild (380) */ + /** @name RmrkTraitsNftNftChild (382) */ export interface RmrkTraitsNftNftChild extends Struct { readonly collectionId: u32; readonly nftId: u32; } - /** @name PalletCommonError (382) */ + /** @name PalletCommonError (384) */ export interface PalletCommonError extends Enum { readonly isCollectionNotFound: boolean; readonly isMustBeTokenOwner: boolean; @@ -3032,8 +3034,7 @@ readonly isAddressIsZero: boolean; readonly isUnsupportedOperation: boolean; readonly isNotSufficientFounds: boolean; - readonly isNestingIsDisabled: boolean; - readonly isOnlyOwnerAllowedToNest: boolean; + readonly isUserIsNotAllowedToNest: boolean; readonly isSourceCollectionIsNotAllowedToNest: boolean; readonly isCollectionFieldSizeExceeded: boolean; readonly isNoSpaceForProperty: boolean; @@ -3043,10 +3044,10 @@ readonly isEmptyPropertyKey: boolean; readonly isCollectionIsExternal: boolean; readonly isCollectionIsInternal: boolean; - readonly type: 'CollectionNotFound' | 'MustBeTokenOwner' | 'NoPermission' | 'CantDestroyNotEmptyCollection' | 'PublicMintingNotAllowed' | 'AddressNotInAllowlist' | 'CollectionNameLimitExceeded' | 'CollectionDescriptionLimitExceeded' | 'CollectionTokenPrefixLimitExceeded' | 'TotalCollectionsLimitExceeded' | 'CollectionAdminCountExceeded' | 'CollectionLimitBoundsExceeded' | 'OwnerPermissionsCantBeReverted' | 'TransferNotAllowed' | 'AccountTokenLimitExceeded' | 'CollectionTokenLimitExceeded' | 'MetadataFlagFrozen' | 'TokenNotFound' | 'TokenValueTooLow' | 'ApprovedValueTooLow' | 'CantApproveMoreThanOwned' | 'AddressIsZero' | 'UnsupportedOperation' | 'NotSufficientFounds' | 'NestingIsDisabled' | 'OnlyOwnerAllowedToNest' | 'SourceCollectionIsNotAllowedToNest' | 'CollectionFieldSizeExceeded' | 'NoSpaceForProperty' | 'PropertyLimitReached' | 'PropertyKeyIsTooLong' | 'InvalidCharacterInPropertyKey' | 'EmptyPropertyKey' | 'CollectionIsExternal' | 'CollectionIsInternal'; + readonly type: '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'; } - /** @name PalletFungibleError (384) */ + /** @name PalletFungibleError (386) */ export interface PalletFungibleError extends Enum { readonly isNotFungibleDataUsedToMintFungibleCollectionToken: boolean; readonly isFungibleItemsHaveNoId: boolean; @@ -3056,12 +3057,12 @@ readonly type: 'NotFungibleDataUsedToMintFungibleCollectionToken' | 'FungibleItemsHaveNoId' | 'FungibleItemsDontHaveData' | 'FungibleDisallowsNesting' | 'SettingPropertiesNotAllowed'; } - /** @name PalletRefungibleItemData (385) */ + /** @name PalletRefungibleItemData (387) */ export interface PalletRefungibleItemData extends Struct { readonly constData: Bytes; } - /** @name PalletRefungibleError (389) */ + /** @name PalletRefungibleError (391) */ export interface PalletRefungibleError extends Enum { readonly isNotRefungibleDataUsedToMintFungibleCollectionToken: boolean; readonly isWrongRefungiblePieces: boolean; @@ -3070,12 +3071,12 @@ readonly type: 'NotRefungibleDataUsedToMintFungibleCollectionToken' | 'WrongRefungiblePieces' | 'RefungibleDisallowsNesting' | 'SettingPropertiesNotAllowed'; } - /** @name PalletNonfungibleItemData (390) */ + /** @name PalletNonfungibleItemData (392) */ export interface PalletNonfungibleItemData extends Struct { readonly owner: PalletEvmAccountBasicCrossAccountIdRepr; } - /** @name PalletNonfungibleError (392) */ + /** @name PalletNonfungibleError (394) */ export interface PalletNonfungibleError extends Enum { readonly isNotNonfungibleDataUsedToMintFungibleCollectionToken: boolean; readonly isNonfungibleItemsHaveNoAmount: boolean; @@ -3083,15 +3084,16 @@ readonly type: 'NotNonfungibleDataUsedToMintFungibleCollectionToken' | 'NonfungibleItemsHaveNoAmount' | 'CantBurnNftWithChildren'; } - /** @name PalletStructureError (393) */ + /** @name PalletStructureError (395) */ export interface PalletStructureError extends Enum { readonly isOuroborosDetected: boolean; readonly isDepthLimit: boolean; + readonly isBreadthLimit: boolean; readonly isTokenNotFound: boolean; - readonly type: 'OuroborosDetected' | 'DepthLimit' | 'TokenNotFound'; + readonly type: 'OuroborosDetected' | 'DepthLimit' | 'BreadthLimit' | 'TokenNotFound'; } - /** @name PalletRmrkCoreError (394) */ + /** @name PalletRmrkCoreError (396) */ export interface PalletRmrkCoreError extends Enum { readonly isCorruptedCollectionType: boolean; readonly isNftTypeEncodeError: boolean; @@ -3112,7 +3114,7 @@ readonly type: 'CorruptedCollectionType' | 'NftTypeEncodeError' | 'RmrkPropertyKeyIsTooLong' | 'RmrkPropertyValueIsTooLong' | 'CollectionNotEmpty' | 'NoAvailableCollectionId' | 'NoAvailableNftId' | 'CollectionUnknown' | 'NoPermission' | 'NonTransferable' | 'CollectionFullOrLocked' | 'ResourceDoesntExist' | 'CannotSendToDescendentOrSelf' | 'CannotAcceptNonOwnedNft' | 'CannotRejectNonOwnedNft' | 'ResourceNotPending'; } - /** @name PalletRmrkEquipError (396) */ + /** @name PalletRmrkEquipError (398) */ export interface PalletRmrkEquipError extends Enum { readonly isPermissionError: boolean; readonly isNoAvailableBaseId: boolean; @@ -3122,7 +3124,7 @@ readonly type: 'PermissionError' | 'NoAvailableBaseId' | 'NoAvailablePartId' | 'BaseDoesntExist' | 'NeedsDefaultThemeFirst'; } - /** @name PalletEvmError (399) */ + /** @name PalletEvmError (401) */ export interface PalletEvmError extends Enum { readonly isBalanceLow: boolean; readonly isFeeOverflow: boolean; @@ -3133,7 +3135,7 @@ readonly type: 'BalanceLow' | 'FeeOverflow' | 'PaymentOverflow' | 'WithdrawFailed' | 'GasPriceTooLow' | 'InvalidNonce'; } - /** @name FpRpcTransactionStatus (402) */ + /** @name FpRpcTransactionStatus (404) */ export interface FpRpcTransactionStatus extends Struct { readonly transactionHash: H256; readonly transactionIndex: u32; @@ -3144,10 +3146,10 @@ readonly logsBloom: EthbloomBloom; } - /** @name EthbloomBloom (404) */ + /** @name EthbloomBloom (406) */ export interface EthbloomBloom extends U8aFixed {} - /** @name EthereumReceiptReceiptV3 (406) */ + /** @name EthereumReceiptReceiptV3 (408) */ export interface EthereumReceiptReceiptV3 extends Enum { readonly isLegacy: boolean; readonly asLegacy: EthereumReceiptEip658ReceiptData; @@ -3158,7 +3160,7 @@ readonly type: 'Legacy' | 'Eip2930' | 'Eip1559'; } - /** @name EthereumReceiptEip658ReceiptData (407) */ + /** @name EthereumReceiptEip658ReceiptData (409) */ export interface EthereumReceiptEip658ReceiptData extends Struct { readonly statusCode: u8; readonly usedGas: U256; @@ -3166,14 +3168,14 @@ readonly logs: Vec; } - /** @name EthereumBlock (408) */ + /** @name EthereumBlock (410) */ export interface EthereumBlock extends Struct { readonly header: EthereumHeader; readonly transactions: Vec; readonly ommers: Vec; } - /** @name EthereumHeader (409) */ + /** @name EthereumHeader (411) */ export interface EthereumHeader extends Struct { readonly parentHash: H256; readonly ommersHash: H256; @@ -3192,24 +3194,24 @@ readonly nonce: EthereumTypesHashH64; } - /** @name EthereumTypesHashH64 (410) */ + /** @name EthereumTypesHashH64 (412) */ export interface EthereumTypesHashH64 extends U8aFixed {} - /** @name PalletEthereumError (415) */ + /** @name PalletEthereumError (417) */ export interface PalletEthereumError extends Enum { readonly isInvalidSignature: boolean; readonly isPreLogExists: boolean; readonly type: 'InvalidSignature' | 'PreLogExists'; } - /** @name PalletEvmCoderSubstrateError (416) */ + /** @name PalletEvmCoderSubstrateError (418) */ export interface PalletEvmCoderSubstrateError extends Enum { readonly isOutOfGas: boolean; readonly isOutOfFund: boolean; readonly type: 'OutOfGas' | 'OutOfFund'; } - /** @name PalletEvmContractHelpersSponsoringModeT (417) */ + /** @name PalletEvmContractHelpersSponsoringModeT (419) */ export interface PalletEvmContractHelpersSponsoringModeT extends Enum { readonly isDisabled: boolean; readonly isAllowlisted: boolean; @@ -3217,20 +3219,20 @@ readonly type: 'Disabled' | 'Allowlisted' | 'Generous'; } - /** @name PalletEvmContractHelpersError (419) */ + /** @name PalletEvmContractHelpersError (421) */ export interface PalletEvmContractHelpersError extends Enum { readonly isNoPermission: boolean; readonly type: 'NoPermission'; } - /** @name PalletEvmMigrationError (420) */ + /** @name PalletEvmMigrationError (422) */ export interface PalletEvmMigrationError extends Enum { readonly isAccountNotEmpty: boolean; readonly isAccountIsNotMigrating: boolean; readonly type: 'AccountNotEmpty' | 'AccountIsNotMigrating'; } - /** @name SpRuntimeMultiSignature (422) */ + /** @name SpRuntimeMultiSignature (424) */ export interface SpRuntimeMultiSignature extends Enum { readonly isEd25519: boolean; readonly asEd25519: SpCoreEd25519Signature; @@ -3241,34 +3243,34 @@ readonly type: 'Ed25519' | 'Sr25519' | 'Ecdsa'; } - /** @name SpCoreEd25519Signature (423) */ + /** @name SpCoreEd25519Signature (425) */ export interface SpCoreEd25519Signature extends U8aFixed {} - /** @name SpCoreSr25519Signature (425) */ + /** @name SpCoreSr25519Signature (427) */ export interface SpCoreSr25519Signature extends U8aFixed {} - /** @name SpCoreEcdsaSignature (426) */ + /** @name SpCoreEcdsaSignature (428) */ export interface SpCoreEcdsaSignature extends U8aFixed {} - /** @name FrameSystemExtensionsCheckSpecVersion (429) */ + /** @name FrameSystemExtensionsCheckSpecVersion (431) */ export type FrameSystemExtensionsCheckSpecVersion = Null; - /** @name FrameSystemExtensionsCheckGenesis (430) */ + /** @name FrameSystemExtensionsCheckGenesis (432) */ export type FrameSystemExtensionsCheckGenesis = Null; - /** @name FrameSystemExtensionsCheckNonce (433) */ + /** @name FrameSystemExtensionsCheckNonce (435) */ export interface FrameSystemExtensionsCheckNonce extends Compact {} - /** @name FrameSystemExtensionsCheckWeight (434) */ + /** @name FrameSystemExtensionsCheckWeight (436) */ export type FrameSystemExtensionsCheckWeight = Null; - /** @name PalletTemplateTransactionPaymentChargeTransactionPayment (435) */ + /** @name PalletTemplateTransactionPaymentChargeTransactionPayment (437) */ export interface PalletTemplateTransactionPaymentChargeTransactionPayment extends Compact {} - /** @name OpalRuntimeRuntime (436) */ + /** @name OpalRuntimeRuntime (438) */ export type OpalRuntimeRuntime = Null; - /** @name PalletEthereumFakeTransactionFinalizer (437) */ + /** @name PalletEthereumFakeTransactionFinalizer (439) */ export type PalletEthereumFakeTransactionFinalizer = Null; } // declare module --- a/tests/src/nesting/nest.test.ts +++ b/tests/src/nesting/nest.test.ts @@ -32,7 +32,7 @@ it('Performs the full suite: bundles a token, transfers, and unnests', async () => { await usingApi(async api => { const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}}); - await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: 'Owner'}); + await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {tokenOwner: true}}); const targetToken = await createItemExpectSuccess(alice, collection, 'NFT'); // Create a nested token @@ -62,7 +62,7 @@ it('Transfers an already bundled token', async () => { await usingApi(async api => { const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}}); - await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: 'Owner'}); + await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {tokenOwner: true}}); const tokenA = await createItemExpectSuccess(alice, collection, 'NFT'); const tokenB = await createItemExpectSuccess(alice, collection, 'NFT'); @@ -92,7 +92,7 @@ it('Checks token children', async () => { await usingApi(async api => { const collectionA = await createCollectionExpectSuccess({mode: {type: 'NFT'}}); - await setCollectionPermissionsExpectSuccess(alice, collectionA, {nesting: 'Owner'}); + await setCollectionPermissionsExpectSuccess(alice, collectionA, {nesting: {tokenOwner: true}}); const collectionB = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}}); const targetToken = await createItemExpectSuccess(alice, collectionA, 'NFT'); @@ -151,7 +151,7 @@ it('NFT: allows an Owner to nest/unnest their token', async () => { await usingApi(async api => { const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}}); - await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: 'Owner'}); + await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {tokenOwner: true}}); const targetToken = await createItemExpectSuccess(alice, collection, 'NFT'); // Create a nested token @@ -170,7 +170,7 @@ it('NFT: allows an Owner to nest/unnest their token (Restricted nesting)', async () => { await usingApi(async api => { const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}}); - await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {OwnerRestricted:[collection]}}); + await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {tokenOwner: true, restricted:[collection]}}); const targetToken = await createItemExpectSuccess(alice, collection, 'NFT'); // Create a nested token @@ -191,7 +191,7 @@ it('Fungible: allows an Owner to nest/unnest their token', async () => { await usingApi(async api => { const collectionNFT = await createCollectionExpectSuccess({mode: {type: 'NFT'}}); - await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: 'Owner'}); + await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: {tokenOwner: true}}); const targetToken = await createItemExpectSuccess(alice, collectionNFT, 'NFT', {Substrate: alice.address}); const targetAddress = {Ethereum: tokenIdToAddress(collectionNFT, targetToken)}; @@ -218,7 +218,7 @@ const collectionFT = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}}); - await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: {OwnerRestricted: [collectionFT]}}); + await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: {tokenOwner: true, restricted: [collectionFT]}}); // Create a nested token await expect(executeTransaction(api, alice, api.tx.unique.createItem( @@ -238,7 +238,7 @@ it('ReFungible: allows an Owner to nest/unnest their token', async () => { await usingApi(async api => { const collectionNFT = await createCollectionExpectSuccess({mode: {type: 'NFT'}}); - await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: 'Owner'}); + await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: {tokenOwner: true}}); const targetToken = await createItemExpectSuccess(alice, collectionNFT, 'NFT', {Substrate: alice.address}); const targetAddress = {Ethereum: tokenIdToAddress(collectionNFT, targetToken)}; @@ -265,7 +265,7 @@ const collectionRFT = await createCollectionExpectSuccess({mode: {type: 'ReFungible'}}); - await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: {OwnerRestricted:[collectionRFT]}}); + await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: {tokenOwner: true, restricted:[collectionRFT]}}); // Create a nested token await expect(executeTransaction(api, alice, api.tx.unique.createItem( @@ -292,7 +292,7 @@ it('Disallows excessive token nesting', async () => { await usingApi(async api => { const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}}); - await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: 'Owner'}); + await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {tokenOwner: true}}); const targetToken = await createItemExpectSuccess(alice, collection, 'NFT'); const maxNestingLevel = 5; @@ -326,7 +326,7 @@ it('NFT: disallows to nest token if nesting is disabled', async () => { await usingApi(async api => { const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}}); - await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: 'Disabled'}); + await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {}}); const targetToken = await createItemExpectSuccess(alice, collection, 'NFT'); // Try to create a nested token @@ -334,12 +334,12 @@ collection, {Ethereum: tokenIdToAddress(collection, targetToken)}, {nft: {const_data: [], variable_data: []}} as any, - )), 'while creating nested token').to.be.rejectedWith(/^common\.NestingIsDisabled$/); + )), 'while creating nested token').to.be.rejectedWith(/^common\.UserIsNotAllowedToNest$/); // Create a token to be nested const newToken = await createItemExpectSuccess(alice, collection, 'NFT'); // Try to nest - await expect(executeTransaction(api, alice, api.tx.unique.transfer({Ethereum: tokenIdToAddress(collection, targetToken)}, collection, newToken, 1)), 'while nesting new token').to.be.rejectedWith(/common\.NestingIsDisabled/); + await expect(executeTransaction(api, alice, api.tx.unique.transfer({Ethereum: tokenIdToAddress(collection, targetToken)}, collection, newToken, 1)), 'while nesting new token').to.be.rejectedWith(/common\.UserIsNotAllowedToNest/); expect(await getTopmostTokenOwner(api, collection, newToken)).to.be.deep.equal({Substrate: alice.address}); expect(await getTokenOwner(api, collection, newToken)).to.be.deep.equal({Substrate: alice.address}); }); @@ -348,7 +348,7 @@ it('NFT: disallows a non-Owner to nest someone else\'s token', async () => { await usingApi(async api => { const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}}); - await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: 'Owner'}); + await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {tokenOwner: true}}); await addToAllowListExpectSuccess(alice, collection, bob.address); await enableAllowListExpectSuccess(alice, collection); @@ -362,7 +362,7 @@ collection, {Ethereum: tokenIdToAddress(collection, targetToken)}, {nft: {const_data: [], variable_data: []}} as any, - )), 'while creating nested token').to.be.rejectedWith(/common\.OnlyOwnerAllowedToNest/); + )), 'while creating nested token').to.be.rejectedWith(/common\.UserIsNotAllowedToNest/); // Try to create and nest a token in the wrong collection const newToken = await createItemExpectSuccess(alice, collection, 'NFT'); @@ -374,7 +374,7 @@ it('NFT: disallows a non-Owner to nest someone else\'s token (Restricted nesting)', async () => { await usingApi(async api => { const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}}); - await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {OwnerRestricted:[collection]}}); + await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {tokenOwner: true, restricted:[collection]}}); await addToAllowListExpectSuccess(alice, collection, bob.address); await enableAllowListExpectSuccess(alice, collection); @@ -388,7 +388,7 @@ collection, {Ethereum: tokenIdToAddress(collection, targetToken)}, {nft: {const_data: [], variable_data: []}} as any, - )), 'while creating nested token').to.be.rejectedWith(/common\.OnlyOwnerAllowedToNest/); + )), 'while creating nested token').to.be.rejectedWith(/common\.UserIsNotAllowedToNest/); // Try to create and nest a token in the wrong collection const newToken = await createItemExpectSuccess(alice, collection, 'NFT'); @@ -400,7 +400,7 @@ it('NFT: disallows to nest token in an unlisted collection', async () => { await usingApi(async api => { const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}}); - await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {OwnerRestricted:[]}}); + await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {tokenOwner: true, restricted:[]}}); // Create a token to attempt to be nested into const targetToken = await createItemExpectSuccess(alice, collection, 'NFT'); @@ -424,7 +424,7 @@ it('Fungible: disallows to nest token if nesting is disabled', async () => { await usingApi(async api => { const collectionNFT = await createCollectionExpectSuccess({mode: {type: 'NFT'}}); - await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: 'Disabled'}); + await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: {}}); const targetToken = await createItemExpectSuccess(alice, collectionNFT, 'NFT'); const targetAddress = {Ethereum: tokenIdToAddress(collectionNFT, targetToken)}; @@ -435,12 +435,12 @@ collectionFT, targetAddress, {Fungible: {Value: 10}}, - )), 'while creating nested token').to.be.rejectedWith(/^common\.NestingIsDisabled$/); + )), 'while creating nested token').to.be.rejectedWith(/^common\.UserIsNotAllowedToNest$/); // Create a token to be nested const newToken = await createItemExpectSuccess(alice, collectionFT, 'Fungible'); // Try to nest - await expect(executeTransaction(api, alice, api.tx.unique.transfer(targetAddress, collectionFT, newToken, 1)), 'while nesting new token').to.be.rejectedWith(/common\.NestingIsDisabled/); + await expect(executeTransaction(api, alice, api.tx.unique.transfer(targetAddress, collectionFT, newToken, 1)), 'while nesting new token').to.be.rejectedWith(/common\.UserIsNotAllowedToNest/); // Create another token to be nested const newToken2 = await createItemExpectSuccess(alice, collectionFT, 'Fungible'); @@ -452,7 +452,7 @@ it('Fungible: disallows a non-Owner to nest someone else\'s token', async () => { await usingApi(async api => { const collectionNFT = await createCollectionExpectSuccess({mode: {type: 'NFT'}}); - await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: 'Owner'}); + await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: {tokenOwner: true}}); await addToAllowListExpectSuccess(alice, collectionNFT, bob.address); await enableAllowListExpectSuccess(alice, collectionNFT); @@ -469,11 +469,11 @@ collectionFT, targetAddress, {Fungible: {Value: 10}}, - )), 'while creating nested token').to.be.rejectedWith(/common\.OnlyOwnerAllowedToNest/); + )), 'while creating nested token').to.be.rejectedWith(/common\.UserIsNotAllowedToNest/); // Try to create and nest a token in the wrong collection const newToken = await createItemExpectSuccess(alice, collectionFT, 'Fungible'); - await expect(executeTransaction(api, alice, api.tx.unique.transfer(targetAddress, collectionFT, newToken, 1)), 'while nesting new token').to.be.rejectedWith(/common\.OnlyOwnerAllowedToNest/); + await expect(executeTransaction(api, alice, api.tx.unique.transfer(targetAddress, collectionFT, newToken, 1)), 'while nesting new token').to.be.rejectedWith(/common\.UserIsNotAllowedToNest/); }); }); @@ -489,25 +489,25 @@ const targetAddress = {Ethereum: tokenIdToAddress(collectionNFT, targetToken)}; const collectionFT = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}}); - await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: {OwnerRestricted:[collectionFT]}}); + await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: {tokenOwner: true, restricted:[collectionFT]}}); // Try to create a nested token in the wrong collection await expect(executeTransaction(api, alice, api.tx.unique.createItem( collectionFT, targetAddress, {Fungible: {Value: 10}}, - )), 'while creating nested token').to.be.rejectedWith(/common\.OnlyOwnerAllowedToNest/); + )), 'while creating nested token').to.be.rejectedWith(/common\.UserIsNotAllowedToNest/); // Try to create and nest a token in the wrong collection const newToken = await createItemExpectSuccess(alice, collectionFT, 'Fungible'); - await expect(executeTransaction(api, alice, api.tx.unique.transfer(targetAddress, collectionFT, newToken, 1)), 'while nesting new token').to.be.rejectedWith(/common\.OnlyOwnerAllowedToNest/); + await expect(executeTransaction(api, alice, api.tx.unique.transfer(targetAddress, collectionFT, newToken, 1)), 'while nesting new token').to.be.rejectedWith(/common\.UserIsNotAllowedToNest/); }); }); it('Fungible: disallows to nest token in an unlisted collection', async () => { await usingApi(async api => { const collectionNFT = await createCollectionExpectSuccess({mode: {type: 'NFT'}}); - await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: {OwnerRestricted:[]}}); + await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: {tokenOwner: true, restricted:[]}}); // Create a token to attempt to be nested into const targetToken = await createItemExpectSuccess(alice, collectionNFT, 'NFT'); @@ -533,7 +533,7 @@ it('ReFungible: disallows to nest token if nesting is disabled', async () => { await usingApi(async api => { const collectionNFT = await createCollectionExpectSuccess({mode: {type: 'NFT'}}); - await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: 'Disabled'}); + await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: {}}); const targetToken = await createItemExpectSuccess(alice, collectionNFT, 'NFT'); const targetAddress = {Ethereum: tokenIdToAddress(collectionNFT, targetToken)}; @@ -544,14 +544,14 @@ collectionRFT, targetAddress, {ReFungible: {const_data: [], pieces: 100}}, - )), 'while creating a nested token').to.be.rejectedWith(/^common\.NestingIsDisabled$/); + )), 'while creating a nested token').to.be.rejectedWith(/^common\.UserIsNotAllowedToNest$/); // Create a token to be nested const newToken = await createItemExpectSuccess(alice, collectionRFT, 'ReFungible'); // Try to nest await transferExpectFailure(collectionRFT, newToken, alice, targetAddress, 100); // Try to nest - await expect(executeTransaction(api, alice, api.tx.unique.transfer(targetAddress, collectionRFT, newToken, 1)), 'while nesting new token').to.be.rejectedWith(/common\.NestingIsDisabled/); + await expect(executeTransaction(api, alice, api.tx.unique.transfer(targetAddress, collectionRFT, newToken, 1)), 'while nesting new token').to.be.rejectedWith(/common\.UserIsNotAllowedToNest/); // Create another token to be nested const newToken2 = await createItemExpectSuccess(alice, collectionRFT, 'ReFungible'); @@ -563,7 +563,7 @@ it('ReFungible: disallows a non-Owner to nest someone else\'s token', async () => { await usingApi(async api => { const collectionNFT = await createCollectionExpectSuccess({mode: {type: 'NFT'}}); - await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: 'Owner'}); + await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: {tokenOwner: true}}); await addToAllowListExpectSuccess(alice, collectionNFT, bob.address); await enableAllowListExpectSuccess(alice, collectionNFT); @@ -580,11 +580,11 @@ collectionRFT, targetAddress, {ReFungible: {const_data: [], pieces: 100}}, - )), 'while creating a nested token').to.be.rejectedWith(/common\.OnlyOwnerAllowedToNest/); + )), 'while creating a nested token').to.be.rejectedWith(/common\.UserIsNotAllowedToNest/); // Try to create and nest a token in the wrong collection const newToken = await createItemExpectSuccess(alice, collectionRFT, 'ReFungible'); - await expect(executeTransaction(api, alice, api.tx.unique.transfer(targetAddress, collectionRFT, newToken, 1)), 'while nesting new token').to.be.rejectedWith(/common\.OnlyOwnerAllowedToNest/); + await expect(executeTransaction(api, alice, api.tx.unique.transfer(targetAddress, collectionRFT, newToken, 1)), 'while nesting new token').to.be.rejectedWith(/common\.UserIsNotAllowedToNest/); }); }); @@ -600,25 +600,25 @@ const targetAddress = {Ethereum: tokenIdToAddress(collectionNFT, targetToken)}; const collectionRFT = await createCollectionExpectSuccess({mode: {type: 'ReFungible'}}); - await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: {OwnerRestricted:[collectionRFT]}}); + await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: {tokenOwner: true, restricted:[collectionRFT]}}); // Try to create a nested token in the wrong collection await expect(executeTransaction(api, alice, api.tx.unique.createItem( collectionRFT, targetAddress, {ReFungible: {const_data: [], pieces: 100}}, - )), 'while creating a nested token').to.be.rejectedWith(/common\.OnlyOwnerAllowedToNest/); + )), 'while creating a nested token').to.be.rejectedWith(/common\.UserIsNotAllowedToNest/); // Try to create and nest a token in the wrong collection const newToken = await createItemExpectSuccess(alice, collectionRFT, 'ReFungible'); - await expect(executeTransaction(api, alice, api.tx.unique.transfer(targetAddress, collectionRFT, newToken, 1)), 'while nesting new token').to.be.rejectedWith(/common\.OnlyOwnerAllowedToNest/); + await expect(executeTransaction(api, alice, api.tx.unique.transfer(targetAddress, collectionRFT, newToken, 1)), 'while nesting new token').to.be.rejectedWith(/common\.UserIsNotAllowedToNest/); }); }); it('ReFungible: disallows to nest token to an unlisted collection', async () => { await usingApi(async api => { const collectionNFT = await createCollectionExpectSuccess({mode: {type: 'NFT'}}); - await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: {OwnerRestricted:[]}}); + await setCollectionPermissionsExpectSuccess(alice, collectionNFT, {nesting: {tokenOwner: true, restricted:[]}}); // Create a token to attempt to be nested into const targetToken = await createItemExpectSuccess(alice, collectionNFT, 'NFT'); --- a/tests/src/nesting/rules-smoke.test.ts +++ b/tests/src/nesting/rules-smoke.test.ts @@ -14,7 +14,7 @@ const events = await executeTransaction(api, alice, api.tx.unique.createCollectionEx({ mode: 'NFT', permissions: { - nesting: {OwnerRestricted: []}, + nesting: {tokenOwner: true, restricted: []}, }, })); const collection = getCreateCollectionResult(events).collectionId; --- a/tests/src/nesting/unnest.test.ts +++ b/tests/src/nesting/unnest.test.ts @@ -27,7 +27,7 @@ it('NFT: allows the owner to successfully unnest a token', async () => { await usingApi(async api => { const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}}); - await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: 'Owner'}); + await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {tokenOwner: true}}); const targetToken = await createItemExpectSuccess(alice, collection, 'NFT'); const targetAddress = {Ethereum: tokenIdToAddress(collection, targetToken)}; @@ -56,7 +56,7 @@ it('Fungible: allows the owner to successfully unnest a token', async () => { await usingApi(async api => { const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}}); - await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: 'Owner'}); + await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {tokenOwner: true}}); const targetToken = await createItemExpectSuccess(alice, collection, 'NFT'); const targetAddress = {Ethereum: tokenIdToAddress(collection, targetToken)}; @@ -83,7 +83,7 @@ it('ReFungible: allows the owner to successfully unnest a token', async () => { await usingApi(async api => { const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}}); - await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: 'Owner'}); + await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {tokenOwner: true}}); const targetToken = await createItemExpectSuccess(alice, collection, 'NFT'); const targetAddress = {Ethereum: tokenIdToAddress(collection, targetToken)}; @@ -118,7 +118,7 @@ it('Disallows a non-owner to unnest/burn a token', async () => { await usingApi(async api => { const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}}); - await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: 'Owner'}); + await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {tokenOwner: true}}); const targetToken = await createItemExpectSuccess(alice, collection, 'NFT'); const targetAddress = {Ethereum: tokenIdToAddress(collection, targetToken)}; @@ -148,7 +148,7 @@ // Recursive nesting it('Prevents Ouroboros creation', async () => { const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}}); - await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: 'Owner'}); + await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {tokenOwner: true}}); const targetToken = await createItemExpectSuccess(alice, collection, 'NFT'); // Create a nested token ouroboros --- a/tests/src/util/helpers.ts +++ b/tests/src/util/helpers.ts @@ -193,7 +193,7 @@ if (method === 'ExtrinsicSuccess') { success = true; } else if ((expectSection == section) && (expectMethod == method)) { - successData = extractAction!(data); + successData = extractAction!(data as any); } }); @@ -547,7 +547,7 @@ }); } -export const setCollectionPermissionsExpectSuccess = async (sender: IKeyringPair, collectionId: number, permissions: {mintMode?: boolean, access?: 'Normal' | 'AllowList', nesting?: 'Disabled' | 'Owner' | {OwnerRestricted: number[]}}) => { +export const setCollectionPermissionsExpectSuccess = async (sender: IKeyringPair, collectionId: number, permissions: any) => { await usingApi(async(api) => { const tx = api.tx.unique.setCollectionPermissions(collectionId, permissions); const events = await submitTransactionAsync(sender, tx); --- a/tests/yarn.lock +++ b/tests/yarn.lock @@ -508,78 +508,78 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@polkadot/api-augment@8.7.2-11": - version "8.7.2-11" - resolved "https://registry.yarnpkg.com/@polkadot/api-augment/-/api-augment-8.7.2-11.tgz#7f174f830c181d82863eb41f48e24fd6bbde3065" - integrity sha512-yKsuxjez1ArwSEZJ+g8mausm38CgOtaWBG5ob5cmO9M2v45HBXy3Kmviqr8Dputtu23deT85p7m/8RFLlAnzSA== +"@polkadot/api-augment@8.7.2-15": + version "8.7.2-15" + resolved "https://registry.yarnpkg.com/@polkadot/api-augment/-/api-augment-8.7.2-15.tgz#a141d3cd595a39e7e2965330268b5eb92bdd5849" + integrity sha512-QGXosX6p0RFYNhWepZCIaRiyCvHnVt5Pb6U7/77UxIszgGRHfHFDsYr4v5bGiaRTOj/E8moc2Ufi/+VgOiG9sw== dependencies: "@babel/runtime" "^7.18.3" - "@polkadot/api-base" "8.7.2-11" - "@polkadot/rpc-augment" "8.7.2-11" - "@polkadot/types" "8.7.2-11" - "@polkadot/types-augment" "8.7.2-11" - "@polkadot/types-codec" "8.7.2-11" + "@polkadot/api-base" "8.7.2-15" + "@polkadot/rpc-augment" "8.7.2-15" + "@polkadot/types" "8.7.2-15" + "@polkadot/types-augment" "8.7.2-15" + "@polkadot/types-codec" "8.7.2-15" "@polkadot/util" "^9.4.1" -"@polkadot/api-base@8.7.2-11": - version "8.7.2-11" - resolved "https://registry.yarnpkg.com/@polkadot/api-base/-/api-base-8.7.2-11.tgz#7e297a0ca283a58bc9d8d11c1edb099bc61da9f1" - integrity sha512-WQE5uvb7W7AKSfy4ekW2i6mJJzZYLMS/eNPNXYpURW/cRPt9NhT9lNz2Ae2d7gaWgWil+jNLecXTHTUzxobRbA== +"@polkadot/api-base@8.7.2-15": + version "8.7.2-15" + resolved "https://registry.yarnpkg.com/@polkadot/api-base/-/api-base-8.7.2-15.tgz#c909d3bf0fbfb3cc46ca7067199e36e72b959bdb" + integrity sha512-HXdtaqbpnfFbOazjI9CPSYM37S4mzhxUs8hLMKrWqpHL//at4tiMa5dRyev9VSKeE6gqeqCT9JTBvEAZ9eNR6Q== dependencies: "@babel/runtime" "^7.18.3" - "@polkadot/rpc-core" "8.7.2-11" - "@polkadot/types" "8.7.2-11" + "@polkadot/rpc-core" "8.7.2-15" + "@polkadot/types" "8.7.2-15" "@polkadot/util" "^9.4.1" rxjs "^7.5.5" -"@polkadot/api-contract@8.7.2-11": - version "8.7.2-11" - resolved "https://registry.yarnpkg.com/@polkadot/api-contract/-/api-contract-8.7.2-11.tgz#9487394286e536a7b1edfb6296529722fa63a43a" - integrity sha512-vOi4FX33ttkotJDzSum0nFUworWJ2+yfDejZkC33mM8zb+ne0Quggfz2nQqiKS2lgkj2z4YwJbsf/9paRQeS3w== +"@polkadot/api-contract@8.7.2-15": + version "8.7.2-15" + resolved "https://registry.yarnpkg.com/@polkadot/api-contract/-/api-contract-8.7.2-15.tgz#687706fb4bd33c4a88187db3a269292f6e559892" + integrity sha512-Pr1Nm5zBpW9foCKm/Q6hIT5KHCeFVE8EFSfHBgjbitYpFOGnz19kduEpa0vxIcfq2WVXcVPTQ2eqjGtHoThNqA== dependencies: "@babel/runtime" "^7.18.3" - "@polkadot/api" "8.7.2-11" - "@polkadot/types" "8.7.2-11" - "@polkadot/types-codec" "8.7.2-11" - "@polkadot/types-create" "8.7.2-11" + "@polkadot/api" "8.7.2-15" + "@polkadot/types" "8.7.2-15" + "@polkadot/types-codec" "8.7.2-15" + "@polkadot/types-create" "8.7.2-15" "@polkadot/util" "^9.4.1" "@polkadot/util-crypto" "^9.4.1" rxjs "^7.5.5" -"@polkadot/api-derive@8.7.2-11": - version "8.7.2-11" - resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-8.7.2-11.tgz#21e315d554a8cd31bb1f3b10077960e35391a311" - integrity sha512-8fkYidDgNjJcWHtiRfJQaI4H386uGZh5Ie0t21KG4sSC5R+Lbnm0CJwIX4scJvQ/U+38gCyQW07b+Pxt9oDwvg== +"@polkadot/api-derive@8.7.2-15": + version "8.7.2-15" + resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-8.7.2-15.tgz#b29f24d435c036c9bf5624d18a9d93196cf2c4f4" + integrity sha512-0R3M9LFKoQ0d7elIDQjPKuV5EAHTtkU/72Lgxw2GYStsOqcnfFNomfLoLMuk8Xy4ETUAp/Kq1eMJpvsY6hSTtA== dependencies: "@babel/runtime" "^7.18.3" - "@polkadot/api" "8.7.2-11" - "@polkadot/api-augment" "8.7.2-11" - "@polkadot/api-base" "8.7.2-11" - "@polkadot/rpc-core" "8.7.2-11" - "@polkadot/types" "8.7.2-11" - "@polkadot/types-codec" "8.7.2-11" + "@polkadot/api" "8.7.2-15" + "@polkadot/api-augment" "8.7.2-15" + "@polkadot/api-base" "8.7.2-15" + "@polkadot/rpc-core" "8.7.2-15" + "@polkadot/types" "8.7.2-15" + "@polkadot/types-codec" "8.7.2-15" "@polkadot/util" "^9.4.1" "@polkadot/util-crypto" "^9.4.1" rxjs "^7.5.5" -"@polkadot/api@8.7.2-11": - version "8.7.2-11" - resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-8.7.2-11.tgz#d76ad24f96fc9eba49825c11277105d12bf5e05c" - integrity sha512-eFQtZOJOVK5IbNSjvrk1JrOZJrtZRjaecMAhnQiglMPoIfQJiRbnXhUslGbXsgFoJsfWW6DAVY5aJi/PjuF9OQ== +"@polkadot/api@8.7.2-15": + version "8.7.2-15" + resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-8.7.2-15.tgz#c7ede416e4d277c227fc93fdfdc4d27634935d08" + integrity sha512-tzEUWsXIPzPbnpn/3LTGtJ7SXzMgCJ/da5d9q0UH3vsx1gDEjuZEWXOeSYLHgbqQSgwPukvMVuGtRjcC+A/WZQ== dependencies: "@babel/runtime" "^7.18.3" - "@polkadot/api-augment" "8.7.2-11" - "@polkadot/api-base" "8.7.2-11" - "@polkadot/api-derive" "8.7.2-11" + "@polkadot/api-augment" "8.7.2-15" + "@polkadot/api-base" "8.7.2-15" + "@polkadot/api-derive" "8.7.2-15" "@polkadot/keyring" "^9.4.1" - "@polkadot/rpc-augment" "8.7.2-11" - "@polkadot/rpc-core" "8.7.2-11" - "@polkadot/rpc-provider" "8.7.2-11" - "@polkadot/types" "8.7.2-11" - "@polkadot/types-augment" "8.7.2-11" - "@polkadot/types-codec" "8.7.2-11" - "@polkadot/types-create" "8.7.2-11" - "@polkadot/types-known" "8.7.2-11" + "@polkadot/rpc-augment" "8.7.2-15" + "@polkadot/rpc-core" "8.7.2-15" + "@polkadot/rpc-provider" "8.7.2-15" + "@polkadot/types" "8.7.2-15" + "@polkadot/types-augment" "8.7.2-15" + "@polkadot/types-codec" "8.7.2-15" + "@polkadot/types-create" "8.7.2-15" + "@polkadot/types-known" "8.7.2-15" "@polkadot/util" "^9.4.1" "@polkadot/util-crypto" "^9.4.1" eventemitter3 "^4.0.7" @@ -603,38 +603,38 @@ "@polkadot/util" "9.4.1" "@substrate/ss58-registry" "^1.22.0" -"@polkadot/rpc-augment@8.7.2-11": - version "8.7.2-11" - resolved "https://registry.yarnpkg.com/@polkadot/rpc-augment/-/rpc-augment-8.7.2-11.tgz#b118303653fb6f80688c62600fde2ed489e1c974" - integrity sha512-/h50Kzz/UZwhsV+g7bwGWf0fkVvlWIQ/zaA7H9xtuE4VGvmZRE4Uu06011ToVWNyAwM5xQfXBx1gUznRhem+pg== +"@polkadot/rpc-augment@8.7.2-15": + version "8.7.2-15" + resolved "https://registry.yarnpkg.com/@polkadot/rpc-augment/-/rpc-augment-8.7.2-15.tgz#6175126968dfb79ba5549b03cac8c3860666e72b" + integrity sha512-IgfkR9CHT8jDuGYkb75DBFu+yJNW32+vOt3oS0sf57VqkHketSq9rD3mtZD37V/21Q4a17yrqKQOte7mMl9kcg== dependencies: "@babel/runtime" "^7.18.3" - "@polkadot/rpc-core" "8.7.2-11" - "@polkadot/types" "8.7.2-11" - "@polkadot/types-codec" "8.7.2-11" + "@polkadot/rpc-core" "8.7.2-15" + "@polkadot/types" "8.7.2-15" + "@polkadot/types-codec" "8.7.2-15" "@polkadot/util" "^9.4.1" -"@polkadot/rpc-core@8.7.2-11": - version "8.7.2-11" - resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-8.7.2-11.tgz#9c31a34bc2f70e4dab40f9ba08ca9b89c8f3e5c0" - integrity sha512-DyHYgzBusMFfsDJ/2VBaVTNHRwZ2cf/woaeJA/ijJbxK2Ke/sg9UW6zr+3Ip8T62GnSNnJoSHMOaMdqvebkNVQ== +"@polkadot/rpc-core@8.7.2-15": + version "8.7.2-15" + resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-8.7.2-15.tgz#827a31adf833fb866cb5f39dbd86c5f0b44d63a4" + integrity sha512-yGmpESOmGyzY7+D3yUxbKToz/eP/q8vDyOGajLnHn12TcnjgbAfMdc4xdU6cQex+mSsPwS0YQFuPrPXGloCOHA== dependencies: "@babel/runtime" "^7.18.3" - "@polkadot/rpc-augment" "8.7.2-11" - "@polkadot/rpc-provider" "8.7.2-11" - "@polkadot/types" "8.7.2-11" + "@polkadot/rpc-augment" "8.7.2-15" + "@polkadot/rpc-provider" "8.7.2-15" + "@polkadot/types" "8.7.2-15" "@polkadot/util" "^9.4.1" rxjs "^7.5.5" -"@polkadot/rpc-provider@8.7.2-11": - version "8.7.2-11" - resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-8.7.2-11.tgz#1f4ef542aee83e0c4e1b2a126ed00ade7c818660" - integrity sha512-LE5kKEMxL4mZ+dLbU8lOPG2GuPYliYtX1SnXv509zAgUjSCWW9fkdeMBF3tFCjSJJcUmle3mlxG8kYuAqNUScA== +"@polkadot/rpc-provider@8.7.2-15": + version "8.7.2-15" + resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-8.7.2-15.tgz#99dd30085284442265225e0f12aef3849b7bfe44" + integrity sha512-EwgBnUIpGhEfSanDXVviQQ784HYD3DWUPdv9pIvn9qnCZPk7o+MGPvKW73A+XbQpPV9j8tAGnVsSnbDuoSVp1g== dependencies: "@babel/runtime" "^7.18.3" "@polkadot/keyring" "^9.4.1" - "@polkadot/types" "8.7.2-11" - "@polkadot/types-support" "8.7.2-11" + "@polkadot/types" "8.7.2-15" + "@polkadot/types-support" "8.7.2-15" "@polkadot/util" "^9.4.1" "@polkadot/util-crypto" "^9.4.1" "@polkadot/x-fetch" "^9.4.1" @@ -652,86 +652,86 @@ dependencies: "@types/chrome" "^0.0.171" -"@polkadot/typegen@8.7.2-11": - version "8.7.2-11" - resolved "https://registry.yarnpkg.com/@polkadot/typegen/-/typegen-8.7.2-11.tgz#047c3c91f4b34f0188853bed606fd12f6a0fbf4d" - integrity sha512-YZpyT8LJFm3akFurrxHpRWxZU50yKvrfdgyZpJh+JJOhSIIDtkx58JNj2+lv0QvhUFOUkd4IWap9bbCPmeLf6w== +"@polkadot/typegen@8.7.2-15": + version "8.7.2-15" + resolved "https://registry.yarnpkg.com/@polkadot/typegen/-/typegen-8.7.2-15.tgz#06e9d054db1c63d9862186429a8017b2b80bce2a" + integrity sha512-NC8Ticirh20k1Co17D8cqQawIJ8W9HWDuq6oDyEMT4XkeBbZ1hQRO9JBO14neWDJmYJBhlUotP65jgjs8D5bMw== dependencies: "@babel/core" "^7.18.2" "@babel/register" "^7.17.7" "@babel/runtime" "^7.18.3" - "@polkadot/api" "8.7.2-11" - "@polkadot/api-augment" "8.7.2-11" - "@polkadot/rpc-augment" "8.7.2-11" - "@polkadot/rpc-provider" "8.7.2-11" - "@polkadot/types" "8.7.2-11" - "@polkadot/types-augment" "8.7.2-11" - "@polkadot/types-codec" "8.7.2-11" - "@polkadot/types-create" "8.7.2-11" - "@polkadot/types-support" "8.7.2-11" + "@polkadot/api" "8.7.2-15" + "@polkadot/api-augment" "8.7.2-15" + "@polkadot/rpc-augment" "8.7.2-15" + "@polkadot/rpc-provider" "8.7.2-15" + "@polkadot/types" "8.7.2-15" + "@polkadot/types-augment" "8.7.2-15" + "@polkadot/types-codec" "8.7.2-15" + "@polkadot/types-create" "8.7.2-15" + "@polkadot/types-support" "8.7.2-15" "@polkadot/util" "^9.4.1" "@polkadot/x-ws" "^9.4.1" handlebars "^4.7.7" websocket "^1.0.34" yargs "^17.5.1" -"@polkadot/types-augment@8.7.2-11": - version "8.7.2-11" - resolved "https://registry.yarnpkg.com/@polkadot/types-augment/-/types-augment-8.7.2-11.tgz#c63105c76f8d85f7e642f8e81e16c3ffc3b3e7c4" - integrity sha512-1meIbpS0Synfdz+Jo90jc/utxwbwl9XQiH5WoFCUYLlbtE/H/yQcIoeme5o6gr/q7BalFQMYYwGBfctGT/KGjA== +"@polkadot/types-augment@8.7.2-15": + version "8.7.2-15" + resolved "https://registry.yarnpkg.com/@polkadot/types-augment/-/types-augment-8.7.2-15.tgz#7ab077a1a31190ad17183196efb1da065c0d0bcd" + integrity sha512-th1jVBDqpyQVB2gCNzo/HV0dIeNinjyPla01BFdhQ5mDKYXJ8fugsLCk5oKUPpItBrj+5NWCgynVvCwm0YJw3g== dependencies: "@babel/runtime" "^7.18.3" - "@polkadot/types" "8.7.2-11" - "@polkadot/types-codec" "8.7.2-11" + "@polkadot/types" "8.7.2-15" + "@polkadot/types-codec" "8.7.2-15" "@polkadot/util" "^9.4.1" -"@polkadot/types-codec@8.7.2-11": - version "8.7.2-11" - resolved "https://registry.yarnpkg.com/@polkadot/types-codec/-/types-codec-8.7.2-11.tgz#a852d3493062ee1052f7a837d07cce4146f2c67e" - integrity sha512-ZvRBiVo5IwZ+vcbKIMv6l0kRG2bVpBmU+pCPdWV9zGtKpgumz1FTvxBmjXoNo6OJVX23fKNMF8qBD/DEiC9ZwA== +"@polkadot/types-codec@8.7.2-15": + version "8.7.2-15" + resolved "https://registry.yarnpkg.com/@polkadot/types-codec/-/types-codec-8.7.2-15.tgz#6afa4ff45dc7afb9250f283f70a40be641367941" + integrity sha512-k8t7/Ern7sY4ZKQc5cYY3h1bg7/GAEaTPmKz094DhPJmEhi3NNgeJ4uyeB/JYCo5GbxXQG6W2M021s582urjMw== dependencies: "@babel/runtime" "^7.18.3" "@polkadot/util" "^9.4.1" -"@polkadot/types-create@8.7.2-11": - version "8.7.2-11" - resolved "https://registry.yarnpkg.com/@polkadot/types-create/-/types-create-8.7.2-11.tgz#2489409155d55c941a322349d740e9f8f8325147" - integrity sha512-489UaZP7JKfZ2Fn0oDQ32setAiV7vv9Q3Kg4a+j4m2TGEEXAVeiNE4Uvijmsw3ayLTtzO9hL0WtMpFWa8GlIMg== +"@polkadot/types-create@8.7.2-15": + version "8.7.2-15" + resolved "https://registry.yarnpkg.com/@polkadot/types-create/-/types-create-8.7.2-15.tgz#106a11eb71dc2743b140d8640a3b3e7fc5ccf10e" + integrity sha512-xB9jAJ3XQh/U05b+X77m5TPh4N9oBwwpePkAmLhovTSOSeobj7qeUKrZqccs0BSxJnJPlLwrwuusjeTtTfZCHw== dependencies: "@babel/runtime" "^7.18.3" - "@polkadot/types-codec" "8.7.2-11" + "@polkadot/types-codec" "8.7.2-15" "@polkadot/util" "^9.4.1" -"@polkadot/types-known@8.7.2-11": - version "8.7.2-11" - resolved "https://registry.yarnpkg.com/@polkadot/types-known/-/types-known-8.7.2-11.tgz#89cb0cdea197ed3887b30948a560b0cd13b39c23" - integrity sha512-ulPQCmwJTJ/MGJGVJZfjWEGq28HGl7D4sOrigbfLOlo6/KyFl2p5H4GUFeF/s+/lGfUQsxfu4Q6QgXDZAOkB1A== +"@polkadot/types-known@8.7.2-15": + version "8.7.2-15" + resolved "https://registry.yarnpkg.com/@polkadot/types-known/-/types-known-8.7.2-15.tgz#171b8d3963a5c38d46f98a7c14be59033f9a4da8" + integrity sha512-c5YuuauPCu70chDnV7Fphh7SbAQl8JWj+PoY37I5BACCNFxtUx5KnP93BChiD0QxcHs2QqD6RdjW6O7cVRUKfA== dependencies: "@babel/runtime" "^7.18.3" "@polkadot/networks" "^9.4.1" - "@polkadot/types" "8.7.2-11" - "@polkadot/types-codec" "8.7.2-11" - "@polkadot/types-create" "8.7.2-11" + "@polkadot/types" "8.7.2-15" + "@polkadot/types-codec" "8.7.2-15" + "@polkadot/types-create" "8.7.2-15" "@polkadot/util" "^9.4.1" -"@polkadot/types-support@8.7.2-11": - version "8.7.2-11" - resolved "https://registry.yarnpkg.com/@polkadot/types-support/-/types-support-8.7.2-11.tgz#ed08331ba1faf7a803e35aafa0692eefd28baa90" - integrity sha512-oflUi0eahFMoS3Sxz6EKjZKNl7GMRnd91kClEV0FzR1wEha+3CL1BCXTGV3n8YoJtfztUUNInVHPQTvMW78WvQ== +"@polkadot/types-support@8.7.2-15": + version "8.7.2-15" + resolved "https://registry.yarnpkg.com/@polkadot/types-support/-/types-support-8.7.2-15.tgz#2d726e3d5615383ca97db3f32ee21e2aad077fcb" + integrity sha512-Tl6xm9r/uqrKQK1OUdi5X9MaTgplBYPj3tY9677ZPV7QGYWt0Uz912u9fC2v0PGNReDXtzvrlgvk0aoErwzF5Q== dependencies: "@babel/runtime" "^7.18.3" "@polkadot/util" "^9.4.1" -"@polkadot/types@8.7.2-11": - version "8.7.2-11" - resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-8.7.2-11.tgz#84b1dca2896fec4af23d4096fa810b59f44071ac" - integrity sha512-PSreCXr/csWpMVqtByEj7Pk5j+JEqxOiipsP+PdtOJaRnWtBMFpMqs7Fj2uULVYqFJKKPyp+JofnRDRcH1YDYg== +"@polkadot/types@8.7.2-15": + version "8.7.2-15" + resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-8.7.2-15.tgz#5b25b6b76c916637a1d15133b5880a73079e65bc" + integrity sha512-KfJKzk6/Ta8vZVJH8+xYYPvd9SD+4fdl4coGgKuPGYZFsjDGnYvAX4ls6/WKby51JK5s24sqaUP3vZisIgh4wA== dependencies: "@babel/runtime" "^7.18.3" "@polkadot/keyring" "^9.4.1" - "@polkadot/types-augment" "8.7.2-11" - "@polkadot/types-codec" "8.7.2-11" - "@polkadot/types-create" "8.7.2-11" + "@polkadot/types-augment" "8.7.2-15" + "@polkadot/types-codec" "8.7.2-15" + "@polkadot/types-create" "8.7.2-15" "@polkadot/util" "^9.4.1" "@polkadot/util-crypto" "^9.4.1" rxjs "^7.5.5" -- gitstuff