git.delta.rocks / unique-network / refs/commits / 63b9443a2b7f

difftreelog

Merge pull request #383 from UniqueNetwork/test/nesting-admin

ut-akuznetsov2022-06-14parents: #47cbedf #686c4b3.patch.diff
in: master

11 files changed

modifiedpallets/common/src/benchmarking.rsdiffbeforeafterboth
--- a/pallets/common/src/benchmarking.rs
+++ b/pallets/common/src/benchmarking.rs
@@ -96,7 +96,7 @@
 			permissions: Some(CollectionPermissions {
 				nesting: Some(NestingPermissions {
 					token_owner: false,
-					admin: false,
+					collection_admin: false,
 					restricted: None,
 					permissive: true,
 				}),
modifiedpallets/nonfungible/src/lib.rsdiffbeforeafterboth
--- a/pallets/nonfungible/src/lib.rs
+++ b/pallets/nonfungible/src/lib.rs
@@ -1008,7 +1008,7 @@
 				nesting_budget,
 			)? {
 			// Pass
-		} else if nesting.admin && handle.is_owner_or_admin(&sender) {
+		} else if nesting.collection_admin && handle.is_owner_or_admin(&sender) {
 			// Pass
 		} else {
 			fail!(<CommonError<T>>::UserIsNotAllowedToNest);
modifiedpallets/proxy-rmrk-core/src/lib.rsdiffbeforeafterboth
--- a/pallets/proxy-rmrk-core/src/lib.rs
+++ b/pallets/proxy-rmrk-core/src/lib.rs
@@ -199,7 +199,7 @@
 				permissions: Some(CollectionPermissions {
 					nesting: Some(NestingPermissions {
 						token_owner: true,
-						admin: false,
+						collection_admin: false,
 						restricted: None,
 
 						permissive: false,
modifiedprimitives/data-structs/src/lib.rsdiffbeforeafterboth
--- a/primitives/data-structs/src/lib.rs
+++ b/primitives/data-structs/src/lib.rs
@@ -447,7 +447,7 @@
 	pub fn nesting(&self) -> &NestingPermissions {
 		static DEFAULT: NestingPermissions = NestingPermissions {
 			token_owner: false,
-			admin: false,
+			collection_admin: false,
 			restricted: None,
 
 			permissive: false,
@@ -490,7 +490,7 @@
 	/// Owner of token can nest tokens under it
 	pub token_owner: bool,
 	/// Admin of token collection can nest tokens under token
-	pub admin: bool,
+	pub collection_admin: bool,
 	/// If set - only tokens from specified collections can be nested
 	pub restricted: Option<OwnerRestrictedSet>,
 
modifiedtests/src/interfaces/augment-api-errors.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-api-errors.ts
+++ b/tests/src/interfaces/augment-api-errors.ts
@@ -458,6 +458,7 @@
       ResourceNotPending: AugmentedError<ApiType>;
       RmrkPropertyKeyIsTooLong: AugmentedError<ApiType>;
       RmrkPropertyValueIsTooLong: AugmentedError<ApiType>;
+      UnableToDecodeRmrkData: AugmentedError<ApiType>;
       /**
        * Generic error
        **/
modifiedtests/src/interfaces/augment-api-query.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-api-query.ts
+++ b/tests/src/interfaces/augment-api-query.ts
@@ -417,7 +417,6 @@
     };
     rmrkCore: {
       collectionIndex: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;
-      rmrkInernalCollectionId: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u32>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
       uniqueCollectionId: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u32>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
       /**
        * Generic query
modifiedtests/src/interfaces/augment-api-tx.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-api-tx.ts
+++ b/tests/src/interfaces/augment-api-tx.ts
@@ -5,7 +5,7 @@
 import type { Bytes, Compact, Option, U256, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';
 import type { AnyNumber, IMethod, ITuple } from '@polkadot/types-codec/types';
 import type { AccountId32, Call, H160, H256, MultiAddress, Perbill, Permill } from '@polkadot/types/interfaces/runtime';
-import type { CumulusPrimitivesParachainInherentParachainInherentData, EthereumTransactionTransactionV2, FrameSupportScheduleMaybeHashed, OrmlVestingVestingSchedule, PalletEvmAccountBasicCrossAccountIdRepr, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsPartPartType, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCreateCollectionData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, XcmV1MultiLocation, XcmV2WeightLimit, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';
+import type { CumulusPrimitivesParachainInherentParachainInherentData, EthereumTransactionTransactionV2, FrameSupportScheduleMaybeHashed, OrmlVestingVestingSchedule, PalletEvmAccountBasicCrossAccountIdRepr, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsPartPartType, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCreateCollectionData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, XcmV1MultiLocation, XcmV2WeightLimit, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';
 
 declare module '@polkadot/api-base/types/submittable' {
   export interface AugmentedSubmittables<ApiType extends ApiTypes> {
@@ -373,7 +373,7 @@
       /**
        * 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<ApiType>, [u32, u32, Bytes, RmrkTraitsResourceComposableResource]>;
+      addComposableResource: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, resource: RmrkTraitsResourceComposableResource | { parts?: any; base?: any; src?: any; metadata?: any; license?: any; thumb?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, RmrkTraitsResourceComposableResource]>;
       /**
        * Create slot resource
        **/
@@ -381,7 +381,7 @@
       /**
        * burn nft
        **/
-      burnNft: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32]>;
+      burnNft: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, maxBurns: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u32]>;
       /**
        * Change the issuer of a collection
        * 
@@ -415,7 +415,7 @@
        * - `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<AccountId32> | null | object | string | Uint8Array, royaltyAmount: Option<Permill> | null | object | string | Uint8Array, metadata: Bytes | string | Uint8Array, transferable: bool | boolean | Uint8Array) => SubmittableExtrinsic<ApiType>, [AccountId32, u32, Option<AccountId32>, Option<Permill>, Bytes, bool]>;
+      mintNft: AugmentedSubmittable<(owner: AccountId32 | string | Uint8Array, collectionId: u32 | AnyNumber | Uint8Array, recipient: Option<AccountId32> | null | object | string | Uint8Array, royaltyAmount: Option<Permill> | null | object | string | Uint8Array, metadata: Bytes | string | Uint8Array, transferable: bool | boolean | Uint8Array, resources: Option<Vec<RmrkTraitsResourceResourceTypes>> | null | object | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [AccountId32, u32, Option<AccountId32>, Option<Permill>, Bytes, bool, Option<Vec<RmrkTraitsResourceResourceTypes>>]>;
       /**
        * Rejects an NFT sent from another account to self or owned NFT
        * 
modifiedtests/src/interfaces/default/types.tsdiffbeforeafterboth
--- a/tests/src/interfaces/default/types.ts
+++ b/tests/src/interfaces/default/types.ts
@@ -1214,11 +1214,13 @@
     readonly royaltyAmount: Option<Permill>;
     readonly metadata: Bytes;
     readonly transferable: bool;
+    readonly resources: Option<Vec<RmrkTraitsResourceResourceTypes>>;
   } & Struct;
   readonly isBurnNft: boolean;
   readonly asBurnNft: {
     readonly collectionId: u32;
     readonly nftId: u32;
+    readonly maxBurns: u32;
   } & Struct;
   readonly isSend: boolean;
   readonly asSend: {
@@ -1272,7 +1274,6 @@
   readonly asAddComposableResource: {
     readonly rmrkCollectionId: u32;
     readonly nftId: u32;
-    readonly resourceId: Bytes;
     readonly resource: RmrkTraitsResourceComposableResource;
   } & Struct;
   readonly isAddSlotResource: boolean;
@@ -1296,6 +1297,7 @@
   readonly isNftTypeEncodeError: boolean;
   readonly isRmrkPropertyKeyIsTooLong: boolean;
   readonly isRmrkPropertyValueIsTooLong: boolean;
+  readonly isUnableToDecodeRmrkData: boolean;
   readonly isCollectionNotEmpty: boolean;
   readonly isNoAvailableCollectionId: boolean;
   readonly isNoAvailableNftId: boolean;
@@ -1308,7 +1310,7 @@
   readonly isCannotAcceptNonOwnedNft: boolean;
   readonly isCannotRejectNonOwnedNft: boolean;
   readonly isResourceNotPending: boolean;
-  readonly type: 'CorruptedCollectionType' | 'NftTypeEncodeError' | 'RmrkPropertyKeyIsTooLong' | 'RmrkPropertyValueIsTooLong' | 'CollectionNotEmpty' | 'NoAvailableCollectionId' | 'NoAvailableNftId' | 'CollectionUnknown' | 'NoPermission' | 'NonTransferable' | 'CollectionFullOrLocked' | 'ResourceDoesntExist' | 'CannotSendToDescendentOrSelf' | 'CannotAcceptNonOwnedNft' | 'CannotRejectNonOwnedNft' | 'ResourceNotPending';
+  readonly type: 'CorruptedCollectionType' | 'NftTypeEncodeError' | 'RmrkPropertyKeyIsTooLong' | 'RmrkPropertyValueIsTooLong' | 'UnableToDecodeRmrkData' | 'CollectionNotEmpty' | 'NoAvailableCollectionId' | 'NoAvailableNftId' | 'CollectionUnknown' | 'NoPermission' | 'NonTransferable' | 'CollectionFullOrLocked' | 'ResourceDoesntExist' | 'CannotSendToDescendentOrSelf' | 'CannotAcceptNonOwnedNft' | 'CannotRejectNonOwnedNft' | 'ResourceNotPending';
 }
 
 /** @name PalletRmrkCoreEvent */
@@ -2427,7 +2429,7 @@
 /** @name UpDataStructsNestingPermissions */
 export interface UpDataStructsNestingPermissions extends Struct {
   readonly tokenOwner: bool;
-  readonly admin: bool;
+  readonly collectionAdmin: bool;
   readonly restricted: Option<UpDataStructsOwnerRestrictedSet>;
   readonly permissive: bool;
 }
modifiedtests/src/interfaces/lookup.tsdiffbeforeafterboth
1432 **/1432 **/
1433 UpDataStructsNestingPermissions: {1433 UpDataStructsNestingPermissions: {
1434 tokenOwner: 'bool',1434 tokenOwner: 'bool',
1435 admin: 'bool',1435 collectionAdmin: 'bool',
1436 restricted: 'Option<UpDataStructsOwnerRestrictedSet>',1436 restricted: 'Option<UpDataStructsOwnerRestrictedSet>',
1437 permissive: 'bool'1437 permissive: 'bool'
1438 },1438 },
1593 royaltyAmount: 'Option<Permill>',1593 royaltyAmount: 'Option<Permill>',
1594 metadata: 'Bytes',1594 metadata: 'Bytes',
1595 transferable: 'bool',1595 transferable: 'bool',
1596 resources: 'Option<Vec<RmrkTraitsResourceResourceTypes>>',
1596 },1597 },
1597 burn_nft: {1598 burn_nft: {
1598 collectionId: 'u32',1599 collectionId: 'u32',
1599 nftId: 'u32',1600 nftId: 'u32',
1601 maxBurns: 'u32',
1600 },1602 },
1601 send: {1603 send: {
1602 rmrkCollectionId: 'u32',1604 rmrkCollectionId: 'u32',
1641 add_composable_resource: {1643 add_composable_resource: {
1642 rmrkCollectionId: 'u32',1644 rmrkCollectionId: 'u32',
1643 nftId: 'u32',1645 nftId: 'u32',
1644 resourceId: 'Bytes',
1645 resource: 'RmrkTraitsResourceComposableResource',1646 resource: 'RmrkTraitsResourceComposableResource',
1646 },1647 },
1647 add_slot_resource: {1648 add_slot_resource: {
1656 }1657 }
1657 }1658 }
1658 },1659 },
1659 /**1660 /**
1660 * Lookup215: rmrk_traits::nft::AccountIdOrCollectionNftTuple<sp_core::crypto::AccountId32>1661 * Lookup217: rmrk_traits::resource::ResourceTypes<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
1661 **/1662 **/
1662 RmrkTraitsNftAccountIdOrCollectionNftTuple: {1663 RmrkTraitsResourceResourceTypes: {
1663 _enum: {1664 _enum: {
1664 AccountId: 'AccountId32',1665 Basic: 'RmrkTraitsResourceBasicResource',
1666 Composable: 'RmrkTraitsResourceComposableResource',
1665 CollectionAndNftTuple: '(u32,u32)'1667 Slot: 'RmrkTraitsResourceSlotResource'
1666 }1668 }
1667 },1669 },
1668 /**1670 /**
1674 license: 'Option<Bytes>',1676 license: 'Option<Bytes>',
1675 thumb: 'Option<Bytes>'1677 thumb: 'Option<Bytes>'
1676 },1678 },
1677 /**1679 /**
1678 * Lookup222: rmrk_traits::resource::ComposableResource<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>1680 * Lookup221: rmrk_traits::resource::ComposableResource<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
1679 **/1681 **/
1680 RmrkTraitsResourceComposableResource: {1682 RmrkTraitsResourceComposableResource: {
1681 parts: 'Vec<u32>',1683 parts: 'Vec<u32>',
1682 base: 'u32',1684 base: 'u32',
1685 license: 'Option<Bytes>',1687 license: 'Option<Bytes>',
1686 thumb: 'Option<Bytes>'1688 thumb: 'Option<Bytes>'
1687 },1689 },
1688 /**1690 /**
1689 * Lookup224: rmrk_traits::resource::SlotResource<frame_support::storage::bounded_vec::BoundedVec<T, S>>1691 * Lookup222: rmrk_traits::resource::SlotResource<frame_support::storage::bounded_vec::BoundedVec<T, S>>
1690 **/1692 **/
1691 RmrkTraitsResourceSlotResource: {1693 RmrkTraitsResourceSlotResource: {
1692 base: 'u32',1694 base: 'u32',
1693 src: 'Option<Bytes>',1695 src: 'Option<Bytes>',
1696 license: 'Option<Bytes>',1698 license: 'Option<Bytes>',
1697 thumb: 'Option<Bytes>'1699 thumb: 'Option<Bytes>'
1698 },1700 },
1701 /**
1702 * Lookup224: rmrk_traits::nft::AccountIdOrCollectionNftTuple<sp_core::crypto::AccountId32>
1703 **/
1704 RmrkTraitsNftAccountIdOrCollectionNftTuple: {
1705 _enum: {
1706 AccountId: 'AccountId32',
1707 CollectionAndNftTuple: '(u32,u32)'
1708 }
1709 },
1699 /**1710 /**
1700 * Lookup225: pallet_rmrk_equip::pallet::Call<T>1711 * Lookup228: pallet_rmrk_equip::pallet::Call<T>
1701 **/1712 **/
1702 PalletRmrkEquipCall: {1713 PalletRmrkEquipCall: {
1703 _enum: {1714 _enum: {
1704 create_base: {1715 create_base: {
1712 }1723 }
1713 }1724 }
1714 },1725 },
1715 /**1726 /**
1716 * Lookup227: rmrk_traits::part::PartType<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>1727 * Lookup230: rmrk_traits::part::PartType<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
1717 **/1728 **/
1718 RmrkTraitsPartPartType: {1729 RmrkTraitsPartPartType: {
1719 _enum: {1730 _enum: {
1720 FixedPart: 'RmrkTraitsPartFixedPart',1731 FixedPart: 'RmrkTraitsPartFixedPart',
1721 SlotPart: 'RmrkTraitsPartSlotPart'1732 SlotPart: 'RmrkTraitsPartSlotPart'
1722 }1733 }
1723 },1734 },
1724 /**1735 /**
1725 * Lookup229: rmrk_traits::part::FixedPart<frame_support::storage::bounded_vec::BoundedVec<T, S>>1736 * Lookup232: rmrk_traits::part::FixedPart<frame_support::storage::bounded_vec::BoundedVec<T, S>>
1726 **/1737 **/
1727 RmrkTraitsPartFixedPart: {1738 RmrkTraitsPartFixedPart: {
1728 id: 'u32',1739 id: 'u32',
1729 z: 'u32',1740 z: 'u32',
1730 src: 'Bytes'1741 src: 'Bytes'
1731 },1742 },
1732 /**1743 /**
1733 * Lookup230: rmrk_traits::part::SlotPart<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>1744 * Lookup233: rmrk_traits::part::SlotPart<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
1734 **/1745 **/
1735 RmrkTraitsPartSlotPart: {1746 RmrkTraitsPartSlotPart: {
1736 id: 'u32',1747 id: 'u32',
1737 equippable: 'RmrkTraitsPartEquippableList',1748 equippable: 'RmrkTraitsPartEquippableList',
1738 src: 'Bytes',1749 src: 'Bytes',
1739 z: 'u32'1750 z: 'u32'
1740 },1751 },
1741 /**1752 /**
1742 * Lookup231: rmrk_traits::part::EquippableList<frame_support::storage::bounded_vec::BoundedVec<T, S>>1753 * Lookup234: rmrk_traits::part::EquippableList<frame_support::storage::bounded_vec::BoundedVec<T, S>>
1743 **/1754 **/
1744 RmrkTraitsPartEquippableList: {1755 RmrkTraitsPartEquippableList: {
1745 _enum: {1756 _enum: {
1746 All: 'Null',1757 All: 'Null',
1747 Empty: 'Null',1758 Empty: 'Null',
1748 Custom: 'Vec<u32>'1759 Custom: 'Vec<u32>'
1749 }1760 }
1750 },1761 },
1751 /**1762 /**
1752 * Lookup233: rmrk_traits::theme::Theme<frame_support::storage::bounded_vec::BoundedVec<T, S>, PropertyList>1763 * Lookup236: rmrk_traits::theme::Theme<frame_support::storage::bounded_vec::BoundedVec<T, S>, PropertyList>
1753 **/1764 **/
1754 RmrkTraitsTheme: {1765 RmrkTraitsTheme: {
1755 name: 'Bytes',1766 name: 'Bytes',
1756 properties: 'Vec<RmrkTraitsThemeThemeProperty>',1767 properties: 'Vec<RmrkTraitsThemeThemeProperty>',
1757 inherit: 'bool'1768 inherit: 'bool'
1758 },1769 },
1759 /**1770 /**
1760 * Lookup235: rmrk_traits::theme::ThemeProperty<frame_support::storage::bounded_vec::BoundedVec<T, S>>1771 * Lookup238: rmrk_traits::theme::ThemeProperty<frame_support::storage::bounded_vec::BoundedVec<T, S>>
1761 **/1772 **/
1762 RmrkTraitsThemeThemeProperty: {1773 RmrkTraitsThemeThemeProperty: {
1763 key: 'Bytes',1774 key: 'Bytes',
1764 value: 'Bytes'1775 value: 'Bytes'
1765 },1776 },
1766 /**1777 /**
1767 * Lookup236: pallet_evm::pallet::Call<T>1778 * Lookup239: pallet_evm::pallet::Call<T>
1768 **/1779 **/
1769 PalletEvmCall: {1780 PalletEvmCall: {
1770 _enum: {1781 _enum: {
1771 withdraw: {1782 withdraw: {
1806 }1817 }
1807 }1818 }
1808 },1819 },
1809 /**1820 /**
1810 * Lookup242: pallet_ethereum::pallet::Call<T>1821 * Lookup245: pallet_ethereum::pallet::Call<T>
1811 **/1822 **/
1812 PalletEthereumCall: {1823 PalletEthereumCall: {
1813 _enum: {1824 _enum: {
1814 transact: {1825 transact: {
1815 transaction: 'EthereumTransactionTransactionV2'1826 transaction: 'EthereumTransactionTransactionV2'
1816 }1827 }
1817 }1828 }
1818 },1829 },
1819 /**1830 /**
1820 * Lookup243: ethereum::transaction::TransactionV21831 * Lookup246: ethereum::transaction::TransactionV2
1821 **/1832 **/
1822 EthereumTransactionTransactionV2: {1833 EthereumTransactionTransactionV2: {
1823 _enum: {1834 _enum: {
1824 Legacy: 'EthereumTransactionLegacyTransaction',1835 Legacy: 'EthereumTransactionLegacyTransaction',
1825 EIP2930: 'EthereumTransactionEip2930Transaction',1836 EIP2930: 'EthereumTransactionEip2930Transaction',
1826 EIP1559: 'EthereumTransactionEip1559Transaction'1837 EIP1559: 'EthereumTransactionEip1559Transaction'
1827 }1838 }
1828 },1839 },
1829 /**1840 /**
1830 * Lookup244: ethereum::transaction::LegacyTransaction1841 * Lookup247: ethereum::transaction::LegacyTransaction
1831 **/1842 **/
1832 EthereumTransactionLegacyTransaction: {1843 EthereumTransactionLegacyTransaction: {
1833 nonce: 'U256',1844 nonce: 'U256',
1834 gasPrice: 'U256',1845 gasPrice: 'U256',
1838 input: 'Bytes',1849 input: 'Bytes',
1839 signature: 'EthereumTransactionTransactionSignature'1850 signature: 'EthereumTransactionTransactionSignature'
1840 },1851 },
1841 /**1852 /**
1842 * Lookup245: ethereum::transaction::TransactionAction1853 * Lookup248: ethereum::transaction::TransactionAction
1843 **/1854 **/
1844 EthereumTransactionTransactionAction: {1855 EthereumTransactionTransactionAction: {
1845 _enum: {1856 _enum: {
1846 Call: 'H160',1857 Call: 'H160',
1847 Create: 'Null'1858 Create: 'Null'
1848 }1859 }
1849 },1860 },
1850 /**1861 /**
1851 * Lookup246: ethereum::transaction::TransactionSignature1862 * Lookup249: ethereum::transaction::TransactionSignature
1852 **/1863 **/
1853 EthereumTransactionTransactionSignature: {1864 EthereumTransactionTransactionSignature: {
1854 v: 'u64',1865 v: 'u64',
1855 r: 'H256',1866 r: 'H256',
1856 s: 'H256'1867 s: 'H256'
1857 },1868 },
1858 /**1869 /**
1859 * Lookup248: ethereum::transaction::EIP2930Transaction1870 * Lookup251: ethereum::transaction::EIP2930Transaction
1860 **/1871 **/
1861 EthereumTransactionEip2930Transaction: {1872 EthereumTransactionEip2930Transaction: {
1862 chainId: 'u64',1873 chainId: 'u64',
1863 nonce: 'U256',1874 nonce: 'U256',
1871 r: 'H256',1882 r: 'H256',
1872 s: 'H256'1883 s: 'H256'
1873 },1884 },
1874 /**1885 /**
1875 * Lookup250: ethereum::transaction::AccessListItem1886 * Lookup253: ethereum::transaction::AccessListItem
1876 **/1887 **/
1877 EthereumTransactionAccessListItem: {1888 EthereumTransactionAccessListItem: {
1878 address: 'H160',1889 address: 'H160',
1879 storageKeys: 'Vec<H256>'1890 storageKeys: 'Vec<H256>'
1880 },1891 },
1881 /**1892 /**
1882 * Lookup251: ethereum::transaction::EIP1559Transaction1893 * Lookup254: ethereum::transaction::EIP1559Transaction
1883 **/1894 **/
1884 EthereumTransactionEip1559Transaction: {1895 EthereumTransactionEip1559Transaction: {
1885 chainId: 'u64',1896 chainId: 'u64',
1886 nonce: 'U256',1897 nonce: 'U256',
1895 r: 'H256',1906 r: 'H256',
1896 s: 'H256'1907 s: 'H256'
1897 },1908 },
1898 /**1909 /**
1899 * Lookup252: pallet_evm_migration::pallet::Call<T>1910 * Lookup255: pallet_evm_migration::pallet::Call<T>
1900 **/1911 **/
1901 PalletEvmMigrationCall: {1912 PalletEvmMigrationCall: {
1902 _enum: {1913 _enum: {
1903 begin: {1914 begin: {
1913 }1924 }
1914 }1925 }
1915 },1926 },
1916 /**1927 /**
1917 * Lookup255: pallet_sudo::pallet::Event<T>1928 * Lookup258: pallet_sudo::pallet::Event<T>
1918 **/1929 **/
1919 PalletSudoEvent: {1930 PalletSudoEvent: {
1920 _enum: {1931 _enum: {
1921 Sudid: {1932 Sudid: {
1929 }1940 }
1930 }1941 }
1931 },1942 },
1932 /**1943 /**
1933 * Lookup257: sp_runtime::DispatchError1944 * Lookup260: sp_runtime::DispatchError
1934 **/1945 **/
1935 SpRuntimeDispatchError: {1946 SpRuntimeDispatchError: {
1936 _enum: {1947 _enum: {
1937 Other: 'Null',1948 Other: 'Null',
1946 Transactional: 'SpRuntimeTransactionalError'1957 Transactional: 'SpRuntimeTransactionalError'
1947 }1958 }
1948 },1959 },
1949 /**1960 /**
1950 * Lookup258: sp_runtime::ModuleError1961 * Lookup261: sp_runtime::ModuleError
1951 **/1962 **/
1952 SpRuntimeModuleError: {1963 SpRuntimeModuleError: {
1953 index: 'u8',1964 index: 'u8',
1954 error: '[u8;4]'1965 error: '[u8;4]'
1955 },1966 },
1956 /**1967 /**
1957 * Lookup259: sp_runtime::TokenError1968 * Lookup262: sp_runtime::TokenError
1958 **/1969 **/
1959 SpRuntimeTokenError: {1970 SpRuntimeTokenError: {
1960 _enum: ['NoFunds', 'WouldDie', 'BelowMinimum', 'CannotCreate', 'UnknownAsset', 'Frozen', 'Unsupported']1971 _enum: ['NoFunds', 'WouldDie', 'BelowMinimum', 'CannotCreate', 'UnknownAsset', 'Frozen', 'Unsupported']
1961 },1972 },
1962 /**1973 /**
1963 * Lookup260: sp_runtime::ArithmeticError1974 * Lookup263: sp_runtime::ArithmeticError
1964 **/1975 **/
1965 SpRuntimeArithmeticError: {1976 SpRuntimeArithmeticError: {
1966 _enum: ['Underflow', 'Overflow', 'DivisionByZero']1977 _enum: ['Underflow', 'Overflow', 'DivisionByZero']
1967 },1978 },
1968 /**1979 /**
1969 * Lookup261: sp_runtime::TransactionalError1980 * Lookup264: sp_runtime::TransactionalError
1970 **/1981 **/
1971 SpRuntimeTransactionalError: {1982 SpRuntimeTransactionalError: {
1972 _enum: ['LimitReached', 'NoLayer']1983 _enum: ['LimitReached', 'NoLayer']
1973 },1984 },
1974 /**1985 /**
1975 * Lookup262: pallet_sudo::pallet::Error<T>1986 * Lookup265: pallet_sudo::pallet::Error<T>
1976 **/1987 **/
1977 PalletSudoError: {1988 PalletSudoError: {
1978 _enum: ['RequireSudo']1989 _enum: ['RequireSudo']
1979 },1990 },
1980 /**1991 /**
1981 * Lookup263: frame_system::AccountInfo<Index, pallet_balances::AccountData<Balance>>1992 * Lookup266: frame_system::AccountInfo<Index, pallet_balances::AccountData<Balance>>
1982 **/1993 **/
1983 FrameSystemAccountInfo: {1994 FrameSystemAccountInfo: {
1984 nonce: 'u32',1995 nonce: 'u32',
1985 consumers: 'u32',1996 consumers: 'u32',
1986 providers: 'u32',1997 providers: 'u32',
1987 sufficients: 'u32',1998 sufficients: 'u32',
1988 data: 'PalletBalancesAccountData'1999 data: 'PalletBalancesAccountData'
1989 },2000 },
1990 /**2001 /**
1991 * Lookup264: frame_support::weights::PerDispatchClass<T>2002 * Lookup267: frame_support::weights::PerDispatchClass<T>
1992 **/2003 **/
1993 FrameSupportWeightsPerDispatchClassU64: {2004 FrameSupportWeightsPerDispatchClassU64: {
1994 normal: 'u64',2005 normal: 'u64',
1995 operational: 'u64',2006 operational: 'u64',
1996 mandatory: 'u64'2007 mandatory: 'u64'
1997 },2008 },
1998 /**2009 /**
1999 * Lookup265: sp_runtime::generic::digest::Digest2010 * Lookup268: sp_runtime::generic::digest::Digest
2000 **/2011 **/
2001 SpRuntimeDigest: {2012 SpRuntimeDigest: {
2002 logs: 'Vec<SpRuntimeDigestDigestItem>'2013 logs: 'Vec<SpRuntimeDigestDigestItem>'
2003 },2014 },
2004 /**2015 /**
2005 * Lookup267: sp_runtime::generic::digest::DigestItem2016 * Lookup270: sp_runtime::generic::digest::DigestItem
2006 **/2017 **/
2007 SpRuntimeDigestDigestItem: {2018 SpRuntimeDigestDigestItem: {
2008 _enum: {2019 _enum: {
2009 Other: 'Bytes',2020 Other: 'Bytes',
2017 RuntimeEnvironmentUpdated: 'Null'2028 RuntimeEnvironmentUpdated: 'Null'
2018 }2029 }
2019 },2030 },
2020 /**2031 /**
2021 * Lookup269: frame_system::EventRecord<opal_runtime::Event, primitive_types::H256>2032 * Lookup272: frame_system::EventRecord<opal_runtime::Event, primitive_types::H256>
2022 **/2033 **/
2023 FrameSystemEventRecord: {2034 FrameSystemEventRecord: {
2024 phase: 'FrameSystemPhase',2035 phase: 'FrameSystemPhase',
2025 event: 'Event',2036 event: 'Event',
2026 topics: 'Vec<H256>'2037 topics: 'Vec<H256>'
2027 },2038 },
2028 /**2039 /**
2029 * Lookup271: frame_system::pallet::Event<T>2040 * Lookup274: frame_system::pallet::Event<T>
2030 **/2041 **/
2031 FrameSystemEvent: {2042 FrameSystemEvent: {
2032 _enum: {2043 _enum: {
2033 ExtrinsicSuccess: {2044 ExtrinsicSuccess: {
2053 }2064 }
2054 }2065 }
2055 },2066 },
2056 /**2067 /**
2057 * Lookup272: frame_support::weights::DispatchInfo2068 * Lookup275: frame_support::weights::DispatchInfo
2058 **/2069 **/
2059 FrameSupportWeightsDispatchInfo: {2070 FrameSupportWeightsDispatchInfo: {
2060 weight: 'u64',2071 weight: 'u64',
2061 class: 'FrameSupportWeightsDispatchClass',2072 class: 'FrameSupportWeightsDispatchClass',
2062 paysFee: 'FrameSupportWeightsPays'2073 paysFee: 'FrameSupportWeightsPays'
2063 },2074 },
2064 /**2075 /**
2065 * Lookup273: frame_support::weights::DispatchClass2076 * Lookup276: frame_support::weights::DispatchClass
2066 **/2077 **/
2067 FrameSupportWeightsDispatchClass: {2078 FrameSupportWeightsDispatchClass: {
2068 _enum: ['Normal', 'Operational', 'Mandatory']2079 _enum: ['Normal', 'Operational', 'Mandatory']
2069 },2080 },
2070 /**2081 /**
2071 * Lookup274: frame_support::weights::Pays2082 * Lookup277: frame_support::weights::Pays
2072 **/2083 **/
2073 FrameSupportWeightsPays: {2084 FrameSupportWeightsPays: {
2074 _enum: ['Yes', 'No']2085 _enum: ['Yes', 'No']
2075 },2086 },
2076 /**2087 /**
2077 * Lookup275: orml_vesting::module::Event<T>2088 * Lookup278: orml_vesting::module::Event<T>
2078 **/2089 **/
2079 OrmlVestingModuleEvent: {2090 OrmlVestingModuleEvent: {
2080 _enum: {2091 _enum: {
2081 VestingScheduleAdded: {2092 VestingScheduleAdded: {
2092 }2103 }
2093 }2104 }
2094 },2105 },
2095 /**2106 /**
2096 * Lookup276: cumulus_pallet_xcmp_queue::pallet::Event<T>2107 * Lookup279: cumulus_pallet_xcmp_queue::pallet::Event<T>
2097 **/2108 **/
2098 CumulusPalletXcmpQueueEvent: {2109 CumulusPalletXcmpQueueEvent: {
2099 _enum: {2110 _enum: {
2100 Success: 'Option<H256>',2111 Success: 'Option<H256>',
2107 OverweightServiced: '(u64,u64)'2118 OverweightServiced: '(u64,u64)'
2108 }2119 }
2109 },2120 },
2110 /**2121 /**
2111 * Lookup277: pallet_xcm::pallet::Event<T>2122 * Lookup280: pallet_xcm::pallet::Event<T>
2112 **/2123 **/
2113 PalletXcmEvent: {2124 PalletXcmEvent: {
2114 _enum: {2125 _enum: {
2115 Attempted: 'XcmV2TraitsOutcome',2126 Attempted: 'XcmV2TraitsOutcome',
2130 NotifyTargetMigrationFail: '(XcmVersionedMultiLocation,u64)'2141 NotifyTargetMigrationFail: '(XcmVersionedMultiLocation,u64)'
2131 }2142 }
2132 },2143 },
2133 /**2144 /**
2134 * Lookup278: xcm::v2::traits::Outcome2145 * Lookup281: xcm::v2::traits::Outcome
2135 **/2146 **/
2136 XcmV2TraitsOutcome: {2147 XcmV2TraitsOutcome: {
2137 _enum: {2148 _enum: {
2138 Complete: 'u64',2149 Complete: 'u64',
2139 Incomplete: '(u64,XcmV2TraitsError)',2150 Incomplete: '(u64,XcmV2TraitsError)',
2140 Error: 'XcmV2TraitsError'2151 Error: 'XcmV2TraitsError'
2141 }2152 }
2142 },2153 },
2143 /**2154 /**
2144 * Lookup280: cumulus_pallet_xcm::pallet::Event<T>2155 * Lookup283: cumulus_pallet_xcm::pallet::Event<T>
2145 **/2156 **/
2146 CumulusPalletXcmEvent: {2157 CumulusPalletXcmEvent: {
2147 _enum: {2158 _enum: {
2148 InvalidFormat: '[u8;8]',2159 InvalidFormat: '[u8;8]',
2149 UnsupportedVersion: '[u8;8]',2160 UnsupportedVersion: '[u8;8]',
2150 ExecutedDownward: '([u8;8],XcmV2TraitsOutcome)'2161 ExecutedDownward: '([u8;8],XcmV2TraitsOutcome)'
2151 }2162 }
2152 },2163 },
2153 /**2164 /**
2154 * Lookup281: cumulus_pallet_dmp_queue::pallet::Event<T>2165 * Lookup284: cumulus_pallet_dmp_queue::pallet::Event<T>
2155 **/2166 **/
2156 CumulusPalletDmpQueueEvent: {2167 CumulusPalletDmpQueueEvent: {
2157 _enum: {2168 _enum: {
2158 InvalidFormat: '[u8;32]',2169 InvalidFormat: '[u8;32]',
2163 OverweightServiced: '(u64,u64)'2174 OverweightServiced: '(u64,u64)'
2164 }2175 }
2165 },2176 },
2166 /**2177 /**
2167 * Lookup282: pallet_unique::RawEvent<sp_core::crypto::AccountId32, pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2178 * Lookup285: pallet_unique::RawEvent<sp_core::crypto::AccountId32, pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
2168 **/2179 **/
2169 PalletUniqueRawEvent: {2180 PalletUniqueRawEvent: {
2170 _enum: {2181 _enum: {
2171 CollectionSponsorRemoved: 'u32',2182 CollectionSponsorRemoved: 'u32',
2180 CollectionPermissionSet: 'u32'2191 CollectionPermissionSet: 'u32'
2181 }2192 }
2182 },2193 },
2183 /**2194 /**
2184 * Lookup283: pallet_unique_scheduler::pallet::Event<T>2195 * Lookup286: pallet_unique_scheduler::pallet::Event<T>
2185 **/2196 **/
2186 PalletUniqueSchedulerEvent: {2197 PalletUniqueSchedulerEvent: {
2187 _enum: {2198 _enum: {
2188 Scheduled: {2199 Scheduled: {
2205 }2216 }
2206 }2217 }
2207 },2218 },
2208 /**2219 /**
2209 * Lookup285: frame_support::traits::schedule::LookupError2220 * Lookup288: frame_support::traits::schedule::LookupError
2210 **/2221 **/
2211 FrameSupportScheduleLookupError: {2222 FrameSupportScheduleLookupError: {
2212 _enum: ['Unknown', 'BadFormat']2223 _enum: ['Unknown', 'BadFormat']
2213 },2224 },
2214 /**2225 /**
2215 * Lookup286: pallet_common::pallet::Event<T>2226 * Lookup289: pallet_common::pallet::Event<T>
2216 **/2227 **/
2217 PalletCommonEvent: {2228 PalletCommonEvent: {
2218 _enum: {2229 _enum: {
2219 CollectionCreated: '(u32,u8,AccountId32)',2230 CollectionCreated: '(u32,u8,AccountId32)',
2229 PropertyPermissionSet: '(u32,Bytes)'2240 PropertyPermissionSet: '(u32,Bytes)'
2230 }2241 }
2231 },2242 },
2232 /**2243 /**
2233 * Lookup287: pallet_structure::pallet::Event<T>2244 * Lookup290: pallet_structure::pallet::Event<T>
2234 **/2245 **/
2235 PalletStructureEvent: {2246 PalletStructureEvent: {
2236 _enum: {2247 _enum: {
2237 Executed: 'Result<Null, SpRuntimeDispatchError>'2248 Executed: 'Result<Null, SpRuntimeDispatchError>'
2238 }2249 }
2239 },2250 },
2240 /**2251 /**
2241 * Lookup288: pallet_rmrk_core::pallet::Event<T>2252 * Lookup291: pallet_rmrk_core::pallet::Event<T>
2242 **/2253 **/
2243 PalletRmrkCoreEvent: {2254 PalletRmrkCoreEvent: {
2244 _enum: {2255 _enum: {
2245 CollectionCreated: {2256 CollectionCreated: {
2314 }2325 }
2315 }2326 }
2316 },2327 },
2317 /**2328 /**
2318 * Lookup289: pallet_rmrk_equip::pallet::Event<T>2329 * Lookup292: pallet_rmrk_equip::pallet::Event<T>
2319 **/2330 **/
2320 PalletRmrkEquipEvent: {2331 PalletRmrkEquipEvent: {
2321 _enum: {2332 _enum: {
2322 BaseCreated: {2333 BaseCreated: {
2325 }2336 }
2326 }2337 }
2327 },2338 },
2328 /**2339 /**
2329 * Lookup290: pallet_evm::pallet::Event<T>2340 * Lookup293: pallet_evm::pallet::Event<T>
2330 **/2341 **/
2331 PalletEvmEvent: {2342 PalletEvmEvent: {
2332 _enum: {2343 _enum: {
2333 Log: 'EthereumLog',2344 Log: 'EthereumLog',
2339 BalanceWithdraw: '(AccountId32,H160,U256)'2350 BalanceWithdraw: '(AccountId32,H160,U256)'
2340 }2351 }
2341 },2352 },
2342 /**2353 /**
2343 * Lookup291: ethereum::log::Log2354 * Lookup294: ethereum::log::Log
2344 **/2355 **/
2345 EthereumLog: {2356 EthereumLog: {
2346 address: 'H160',2357 address: 'H160',
2347 topics: 'Vec<H256>',2358 topics: 'Vec<H256>',
2348 data: 'Bytes'2359 data: 'Bytes'
2349 },2360 },
2350 /**2361 /**
2351 * Lookup292: pallet_ethereum::pallet::Event2362 * Lookup295: pallet_ethereum::pallet::Event
2352 **/2363 **/
2353 PalletEthereumEvent: {2364 PalletEthereumEvent: {
2354 _enum: {2365 _enum: {
2355 Executed: '(H160,H160,H256,EvmCoreErrorExitReason)'2366 Executed: '(H160,H160,H256,EvmCoreErrorExitReason)'
2356 }2367 }
2357 },2368 },
2358 /**2369 /**
2359 * Lookup293: evm_core::error::ExitReason2370 * Lookup296: evm_core::error::ExitReason
2360 **/2371 **/
2361 EvmCoreErrorExitReason: {2372 EvmCoreErrorExitReason: {
2362 _enum: {2373 _enum: {
2363 Succeed: 'EvmCoreErrorExitSucceed',2374 Succeed: 'EvmCoreErrorExitSucceed',
2366 Fatal: 'EvmCoreErrorExitFatal'2377 Fatal: 'EvmCoreErrorExitFatal'
2367 }2378 }
2368 },2379 },
2369 /**2380 /**
2370 * Lookup294: evm_core::error::ExitSucceed2381 * Lookup297: evm_core::error::ExitSucceed
2371 **/2382 **/
2372 EvmCoreErrorExitSucceed: {2383 EvmCoreErrorExitSucceed: {
2373 _enum: ['Stopped', 'Returned', 'Suicided']2384 _enum: ['Stopped', 'Returned', 'Suicided']
2374 },2385 },
2375 /**2386 /**
2376 * Lookup295: evm_core::error::ExitError2387 * Lookup298: evm_core::error::ExitError
2377 **/2388 **/
2378 EvmCoreErrorExitError: {2389 EvmCoreErrorExitError: {
2379 _enum: {2390 _enum: {
2380 StackUnderflow: 'Null',2391 StackUnderflow: 'Null',
2394 InvalidCode: 'Null'2405 InvalidCode: 'Null'
2395 }2406 }
2396 },2407 },
2397 /**2408 /**
2398 * Lookup298: evm_core::error::ExitRevert2409 * Lookup301: evm_core::error::ExitRevert
2399 **/2410 **/
2400 EvmCoreErrorExitRevert: {2411 EvmCoreErrorExitRevert: {
2401 _enum: ['Reverted']2412 _enum: ['Reverted']
2402 },2413 },
2403 /**2414 /**
2404 * Lookup299: evm_core::error::ExitFatal2415 * Lookup302: evm_core::error::ExitFatal
2405 **/2416 **/
2406 EvmCoreErrorExitFatal: {2417 EvmCoreErrorExitFatal: {
2407 _enum: {2418 _enum: {
2408 NotSupported: 'Null',2419 NotSupported: 'Null',
2411 Other: 'Text'2422 Other: 'Text'
2412 }2423 }
2413 },2424 },
2414 /**2425 /**
2415 * Lookup300: frame_system::Phase2426 * Lookup303: frame_system::Phase
2416 **/2427 **/
2417 FrameSystemPhase: {2428 FrameSystemPhase: {
2418 _enum: {2429 _enum: {
2419 ApplyExtrinsic: 'u32',2430 ApplyExtrinsic: 'u32',
2420 Finalization: 'Null',2431 Finalization: 'Null',
2421 Initialization: 'Null'2432 Initialization: 'Null'
2422 }2433 }
2423 },2434 },
2424 /**2435 /**
2425 * Lookup302: frame_system::LastRuntimeUpgradeInfo2436 * Lookup305: frame_system::LastRuntimeUpgradeInfo
2426 **/2437 **/
2427 FrameSystemLastRuntimeUpgradeInfo: {2438 FrameSystemLastRuntimeUpgradeInfo: {
2428 specVersion: 'Compact<u32>',2439 specVersion: 'Compact<u32>',
2429 specName: 'Text'2440 specName: 'Text'
2430 },2441 },
2431 /**2442 /**
2432 * Lookup303: frame_system::limits::BlockWeights2443 * Lookup306: frame_system::limits::BlockWeights
2433 **/2444 **/
2434 FrameSystemLimitsBlockWeights: {2445 FrameSystemLimitsBlockWeights: {
2435 baseBlock: 'u64',2446 baseBlock: 'u64',
2436 maxBlock: 'u64',2447 maxBlock: 'u64',
2437 perClass: 'FrameSupportWeightsPerDispatchClassWeightsPerClass'2448 perClass: 'FrameSupportWeightsPerDispatchClassWeightsPerClass'
2438 },2449 },
2439 /**2450 /**
2440 * Lookup304: frame_support::weights::PerDispatchClass<frame_system::limits::WeightsPerClass>2451 * Lookup307: frame_support::weights::PerDispatchClass<frame_system::limits::WeightsPerClass>
2441 **/2452 **/
2442 FrameSupportWeightsPerDispatchClassWeightsPerClass: {2453 FrameSupportWeightsPerDispatchClassWeightsPerClass: {
2443 normal: 'FrameSystemLimitsWeightsPerClass',2454 normal: 'FrameSystemLimitsWeightsPerClass',
2444 operational: 'FrameSystemLimitsWeightsPerClass',2455 operational: 'FrameSystemLimitsWeightsPerClass',
2445 mandatory: 'FrameSystemLimitsWeightsPerClass'2456 mandatory: 'FrameSystemLimitsWeightsPerClass'
2446 },2457 },
2447 /**2458 /**
2448 * Lookup305: frame_system::limits::WeightsPerClass2459 * Lookup308: frame_system::limits::WeightsPerClass
2449 **/2460 **/
2450 FrameSystemLimitsWeightsPerClass: {2461 FrameSystemLimitsWeightsPerClass: {
2451 baseExtrinsic: 'u64',2462 baseExtrinsic: 'u64',
2452 maxExtrinsic: 'Option<u64>',2463 maxExtrinsic: 'Option<u64>',
2453 maxTotal: 'Option<u64>',2464 maxTotal: 'Option<u64>',
2454 reserved: 'Option<u64>'2465 reserved: 'Option<u64>'
2455 },2466 },
2456 /**2467 /**
2457 * Lookup307: frame_system::limits::BlockLength2468 * Lookup310: frame_system::limits::BlockLength
2458 **/2469 **/
2459 FrameSystemLimitsBlockLength: {2470 FrameSystemLimitsBlockLength: {
2460 max: 'FrameSupportWeightsPerDispatchClassU32'2471 max: 'FrameSupportWeightsPerDispatchClassU32'
2461 },2472 },
2462 /**2473 /**
2463 * Lookup308: frame_support::weights::PerDispatchClass<T>2474 * Lookup311: frame_support::weights::PerDispatchClass<T>
2464 **/2475 **/
2465 FrameSupportWeightsPerDispatchClassU32: {2476 FrameSupportWeightsPerDispatchClassU32: {
2466 normal: 'u32',2477 normal: 'u32',
2467 operational: 'u32',2478 operational: 'u32',
2468 mandatory: 'u32'2479 mandatory: 'u32'
2469 },2480 },
2470 /**2481 /**
2471 * Lookup309: frame_support::weights::RuntimeDbWeight2482 * Lookup312: frame_support::weights::RuntimeDbWeight
2472 **/2483 **/
2473 FrameSupportWeightsRuntimeDbWeight: {2484 FrameSupportWeightsRuntimeDbWeight: {
2474 read: 'u64',2485 read: 'u64',
2475 write: 'u64'2486 write: 'u64'
2476 },2487 },
2477 /**2488 /**
2478 * Lookup310: sp_version::RuntimeVersion2489 * Lookup313: sp_version::RuntimeVersion
2479 **/2490 **/
2480 SpVersionRuntimeVersion: {2491 SpVersionRuntimeVersion: {
2481 specName: 'Text',2492 specName: 'Text',
2482 implName: 'Text',2493 implName: 'Text',
2487 transactionVersion: 'u32',2498 transactionVersion: 'u32',
2488 stateVersion: 'u8'2499 stateVersion: 'u8'
2489 },2500 },
2490 /**2501 /**
2491 * Lookup314: frame_system::pallet::Error<T>2502 * Lookup317: frame_system::pallet::Error<T>
2492 **/2503 **/
2493 FrameSystemError: {2504 FrameSystemError: {
2494 _enum: ['InvalidSpecName', 'SpecVersionNeedsToIncrease', 'FailedToExtractRuntimeVersion', 'NonDefaultComposite', 'NonZeroRefCount', 'CallFiltered']2505 _enum: ['InvalidSpecName', 'SpecVersionNeedsToIncrease', 'FailedToExtractRuntimeVersion', 'NonDefaultComposite', 'NonZeroRefCount', 'CallFiltered']
2495 },2506 },
2496 /**2507 /**
2497 * Lookup316: orml_vesting::module::Error<T>2508 * Lookup319: orml_vesting::module::Error<T>
2498 **/2509 **/
2499 OrmlVestingModuleError: {2510 OrmlVestingModuleError: {
2500 _enum: ['ZeroVestingPeriod', 'ZeroVestingPeriodCount', 'InsufficientBalanceToLock', 'TooManyVestingSchedules', 'AmountLow', 'MaxVestingSchedulesExceeded']2511 _enum: ['ZeroVestingPeriod', 'ZeroVestingPeriodCount', 'InsufficientBalanceToLock', 'TooManyVestingSchedules', 'AmountLow', 'MaxVestingSchedulesExceeded']
2501 },2512 },
2502 /**2513 /**
2503 * Lookup318: cumulus_pallet_xcmp_queue::InboundChannelDetails2514 * Lookup321: cumulus_pallet_xcmp_queue::InboundChannelDetails
2504 **/2515 **/
2505 CumulusPalletXcmpQueueInboundChannelDetails: {2516 CumulusPalletXcmpQueueInboundChannelDetails: {
2506 sender: 'u32',2517 sender: 'u32',
2507 state: 'CumulusPalletXcmpQueueInboundState',2518 state: 'CumulusPalletXcmpQueueInboundState',
2508 messageMetadata: 'Vec<(u32,PolkadotParachainPrimitivesXcmpMessageFormat)>'2519 messageMetadata: 'Vec<(u32,PolkadotParachainPrimitivesXcmpMessageFormat)>'
2509 },2520 },
2510 /**2521 /**
2511 * Lookup319: cumulus_pallet_xcmp_queue::InboundState2522 * Lookup322: cumulus_pallet_xcmp_queue::InboundState
2512 **/2523 **/
2513 CumulusPalletXcmpQueueInboundState: {2524 CumulusPalletXcmpQueueInboundState: {
2514 _enum: ['Ok', 'Suspended']2525 _enum: ['Ok', 'Suspended']
2515 },2526 },
2516 /**2527 /**
2517 * Lookup322: polkadot_parachain::primitives::XcmpMessageFormat2528 * Lookup325: polkadot_parachain::primitives::XcmpMessageFormat
2518 **/2529 **/
2519 PolkadotParachainPrimitivesXcmpMessageFormat: {2530 PolkadotParachainPrimitivesXcmpMessageFormat: {
2520 _enum: ['ConcatenatedVersionedXcm', 'ConcatenatedEncodedBlob', 'Signals']2531 _enum: ['ConcatenatedVersionedXcm', 'ConcatenatedEncodedBlob', 'Signals']
2521 },2532 },
2522 /**2533 /**
2523 * Lookup325: cumulus_pallet_xcmp_queue::OutboundChannelDetails2534 * Lookup328: cumulus_pallet_xcmp_queue::OutboundChannelDetails
2524 **/2535 **/
2525 CumulusPalletXcmpQueueOutboundChannelDetails: {2536 CumulusPalletXcmpQueueOutboundChannelDetails: {
2526 recipient: 'u32',2537 recipient: 'u32',
2527 state: 'CumulusPalletXcmpQueueOutboundState',2538 state: 'CumulusPalletXcmpQueueOutboundState',
2528 signalsExist: 'bool',2539 signalsExist: 'bool',
2529 firstIndex: 'u16',2540 firstIndex: 'u16',
2530 lastIndex: 'u16'2541 lastIndex: 'u16'
2531 },2542 },
2532 /**2543 /**
2533 * Lookup326: cumulus_pallet_xcmp_queue::OutboundState2544 * Lookup329: cumulus_pallet_xcmp_queue::OutboundState
2534 **/2545 **/
2535 CumulusPalletXcmpQueueOutboundState: {2546 CumulusPalletXcmpQueueOutboundState: {
2536 _enum: ['Ok', 'Suspended']2547 _enum: ['Ok', 'Suspended']
2537 },2548 },
2538 /**2549 /**
2539 * Lookup328: cumulus_pallet_xcmp_queue::QueueConfigData2550 * Lookup331: cumulus_pallet_xcmp_queue::QueueConfigData
2540 **/2551 **/
2541 CumulusPalletXcmpQueueQueueConfigData: {2552 CumulusPalletXcmpQueueQueueConfigData: {
2542 suspendThreshold: 'u32',2553 suspendThreshold: 'u32',
2543 dropThreshold: 'u32',2554 dropThreshold: 'u32',
2546 weightRestrictDecay: 'u64',2557 weightRestrictDecay: 'u64',
2547 xcmpMaxIndividualWeight: 'u64'2558 xcmpMaxIndividualWeight: 'u64'
2548 },2559 },
2549 /**2560 /**
2550 * Lookup330: cumulus_pallet_xcmp_queue::pallet::Error<T>2561 * Lookup333: cumulus_pallet_xcmp_queue::pallet::Error<T>
2551 **/2562 **/
2552 CumulusPalletXcmpQueueError: {2563 CumulusPalletXcmpQueueError: {
2553 _enum: ['FailedToSend', 'BadXcmOrigin', 'BadXcm', 'BadOverweightIndex', 'WeightOverLimit']2564 _enum: ['FailedToSend', 'BadXcmOrigin', 'BadXcm', 'BadOverweightIndex', 'WeightOverLimit']
2554 },2565 },
2555 /**2566 /**
2556 * Lookup331: pallet_xcm::pallet::Error<T>2567 * Lookup334: pallet_xcm::pallet::Error<T>
2557 **/2568 **/
2558 PalletXcmError: {2569 PalletXcmError: {
2559 _enum: ['Unreachable', 'SendFailure', 'Filtered', 'UnweighableMessage', 'DestinationNotInvertible', 'Empty', 'CannotReanchor', 'TooManyAssets', 'InvalidOrigin', 'BadVersion', 'BadLocation', 'NoSubscription', 'AlreadySubscribed']2570 _enum: ['Unreachable', 'SendFailure', 'Filtered', 'UnweighableMessage', 'DestinationNotInvertible', 'Empty', 'CannotReanchor', 'TooManyAssets', 'InvalidOrigin', 'BadVersion', 'BadLocation', 'NoSubscription', 'AlreadySubscribed']
2560 },2571 },
2561 /**2572 /**
2562 * Lookup332: cumulus_pallet_xcm::pallet::Error<T>2573 * Lookup335: cumulus_pallet_xcm::pallet::Error<T>
2563 **/2574 **/
2564 CumulusPalletXcmError: 'Null',2575 CumulusPalletXcmError: 'Null',
2565 /**2576 /**
2566 * Lookup333: cumulus_pallet_dmp_queue::ConfigData2577 * Lookup336: cumulus_pallet_dmp_queue::ConfigData
2567 **/2578 **/
2568 CumulusPalletDmpQueueConfigData: {2579 CumulusPalletDmpQueueConfigData: {
2569 maxIndividual: 'u64'2580 maxIndividual: 'u64'
2570 },2581 },
2571 /**2582 /**
2572 * Lookup334: cumulus_pallet_dmp_queue::PageIndexData2583 * Lookup337: cumulus_pallet_dmp_queue::PageIndexData
2573 **/2584 **/
2574 CumulusPalletDmpQueuePageIndexData: {2585 CumulusPalletDmpQueuePageIndexData: {
2575 beginUsed: 'u32',2586 beginUsed: 'u32',
2576 endUsed: 'u32',2587 endUsed: 'u32',
2577 overweightCount: 'u64'2588 overweightCount: 'u64'
2578 },2589 },
2579 /**2590 /**
2580 * Lookup337: cumulus_pallet_dmp_queue::pallet::Error<T>2591 * Lookup340: cumulus_pallet_dmp_queue::pallet::Error<T>
2581 **/2592 **/
2582 CumulusPalletDmpQueueError: {2593 CumulusPalletDmpQueueError: {
2583 _enum: ['Unknown', 'OverLimit']2594 _enum: ['Unknown', 'OverLimit']
2584 },2595 },
2585 /**2596 /**
2586 * Lookup341: pallet_unique::Error<T>2597 * Lookup344: pallet_unique::Error<T>
2587 **/2598 **/
2588 PalletUniqueError: {2599 PalletUniqueError: {
2589 _enum: ['CollectionDecimalPointLimitExceeded', 'ConfirmUnsetSponsorFail', 'EmptyArgument']2600 _enum: ['CollectionDecimalPointLimitExceeded', 'ConfirmUnsetSponsorFail', 'EmptyArgument']
2590 },2601 },
2591 /**2602 /**
2592 * Lookup344: pallet_unique_scheduler::ScheduledV3<frame_support::traits::schedule::MaybeHashed<opal_runtime::Call, primitive_types::H256>, BlockNumber, opal_runtime::OriginCaller, sp_core::crypto::AccountId32>2603 * Lookup347: pallet_unique_scheduler::ScheduledV3<frame_support::traits::schedule::MaybeHashed<opal_runtime::Call, primitive_types::H256>, BlockNumber, opal_runtime::OriginCaller, sp_core::crypto::AccountId32>
2593 **/2604 **/
2594 PalletUniqueSchedulerScheduledV3: {2605 PalletUniqueSchedulerScheduledV3: {
2595 maybeId: 'Option<[u8;16]>',2606 maybeId: 'Option<[u8;16]>',
2596 priority: 'u8',2607 priority: 'u8',
2597 call: 'FrameSupportScheduleMaybeHashed',2608 call: 'FrameSupportScheduleMaybeHashed',
2598 maybePeriodic: 'Option<(u32,u32)>',2609 maybePeriodic: 'Option<(u32,u32)>',
2599 origin: 'OpalRuntimeOriginCaller'2610 origin: 'OpalRuntimeOriginCaller'
2600 },2611 },
2601 /**2612 /**
2602 * Lookup345: opal_runtime::OriginCaller2613 * Lookup348: opal_runtime::OriginCaller
2603 **/2614 **/
2604 OpalRuntimeOriginCaller: {2615 OpalRuntimeOriginCaller: {
2605 _enum: {2616 _enum: {
2606 __Unused0: 'Null',2617 __Unused0: 'Null',
2707 Ethereum: 'PalletEthereumRawOrigin'2718 Ethereum: 'PalletEthereumRawOrigin'
2708 }2719 }
2709 },2720 },
2710 /**2721 /**
2711 * Lookup346: frame_support::dispatch::RawOrigin<sp_core::crypto::AccountId32>2722 * Lookup349: frame_support::dispatch::RawOrigin<sp_core::crypto::AccountId32>
2712 **/2723 **/
2713 FrameSupportDispatchRawOrigin: {2724 FrameSupportDispatchRawOrigin: {
2714 _enum: {2725 _enum: {
2715 Root: 'Null',2726 Root: 'Null',
2716 Signed: 'AccountId32',2727 Signed: 'AccountId32',
2717 None: 'Null'2728 None: 'Null'
2718 }2729 }
2719 },2730 },
2720 /**2731 /**
2721 * Lookup347: pallet_xcm::pallet::Origin2732 * Lookup350: pallet_xcm::pallet::Origin
2722 **/2733 **/
2723 PalletXcmOrigin: {2734 PalletXcmOrigin: {
2724 _enum: {2735 _enum: {
2725 Xcm: 'XcmV1MultiLocation',2736 Xcm: 'XcmV1MultiLocation',
2726 Response: 'XcmV1MultiLocation'2737 Response: 'XcmV1MultiLocation'
2727 }2738 }
2728 },2739 },
2729 /**2740 /**
2730 * Lookup348: cumulus_pallet_xcm::pallet::Origin2741 * Lookup351: cumulus_pallet_xcm::pallet::Origin
2731 **/2742 **/
2732 CumulusPalletXcmOrigin: {2743 CumulusPalletXcmOrigin: {
2733 _enum: {2744 _enum: {
2734 Relay: 'Null',2745 Relay: 'Null',
2735 SiblingParachain: 'u32'2746 SiblingParachain: 'u32'
2736 }2747 }
2737 },2748 },
2738 /**2749 /**
2739 * Lookup349: pallet_ethereum::RawOrigin2750 * Lookup352: pallet_ethereum::RawOrigin
2740 **/2751 **/
2741 PalletEthereumRawOrigin: {2752 PalletEthereumRawOrigin: {
2742 _enum: {2753 _enum: {
2743 EthereumTransaction: 'H160'2754 EthereumTransaction: 'H160'
2744 }2755 }
2745 },2756 },
2746 /**2757 /**
2747 * Lookup350: sp_core::Void2758 * Lookup353: sp_core::Void
2748 **/2759 **/
2749 SpCoreVoid: 'Null',2760 SpCoreVoid: 'Null',
2750 /**2761 /**
2751 * Lookup351: pallet_unique_scheduler::pallet::Error<T>2762 * Lookup354: pallet_unique_scheduler::pallet::Error<T>
2752 **/2763 **/
2753 PalletUniqueSchedulerError: {2764 PalletUniqueSchedulerError: {
2754 _enum: ['FailedToSchedule', 'NotFound', 'TargetBlockNumberInPast', 'RescheduleNoChange']2765 _enum: ['FailedToSchedule', 'NotFound', 'TargetBlockNumberInPast', 'RescheduleNoChange']
2755 },2766 },
2756 /**2767 /**
2757 * Lookup352: up_data_structs::Collection<sp_core::crypto::AccountId32>2768 * Lookup355: up_data_structs::Collection<sp_core::crypto::AccountId32>
2758 **/2769 **/
2759 UpDataStructsCollection: {2770 UpDataStructsCollection: {
2760 owner: 'AccountId32',2771 owner: 'AccountId32',
2761 mode: 'UpDataStructsCollectionMode',2772 mode: 'UpDataStructsCollectionMode',
2767 permissions: 'UpDataStructsCollectionPermissions',2778 permissions: 'UpDataStructsCollectionPermissions',
2768 externalCollection: 'bool'2779 externalCollection: 'bool'
2769 },2780 },
2770 /**2781 /**
2771 * Lookup353: up_data_structs::SponsorshipState<sp_core::crypto::AccountId32>2782 * Lookup356: up_data_structs::SponsorshipState<sp_core::crypto::AccountId32>
2772 **/2783 **/
2773 UpDataStructsSponsorshipState: {2784 UpDataStructsSponsorshipState: {
2774 _enum: {2785 _enum: {
2775 Disabled: 'Null',2786 Disabled: 'Null',
2776 Unconfirmed: 'AccountId32',2787 Unconfirmed: 'AccountId32',
2777 Confirmed: 'AccountId32'2788 Confirmed: 'AccountId32'
2778 }2789 }
2779 },2790 },
2780 /**2791 /**
2781 * Lookup354: up_data_structs::Properties2792 * Lookup357: up_data_structs::Properties
2782 **/2793 **/
2783 UpDataStructsProperties: {2794 UpDataStructsProperties: {
2784 map: 'UpDataStructsPropertiesMapBoundedVec',2795 map: 'UpDataStructsPropertiesMapBoundedVec',
2785 consumedSpace: 'u32',2796 consumedSpace: 'u32',
2786 spaceLimit: 'u32'2797 spaceLimit: 'u32'
2787 },2798 },
2788 /**2799 /**
2789 * Lookup355: up_data_structs::PropertiesMap<frame_support::storage::bounded_vec::BoundedVec<T, S>>2800 * Lookup358: up_data_structs::PropertiesMap<frame_support::storage::bounded_vec::BoundedVec<T, S>>
2790 **/2801 **/
2791 UpDataStructsPropertiesMapBoundedVec: 'BTreeMap<Bytes, Bytes>',2802 UpDataStructsPropertiesMapBoundedVec: 'BTreeMap<Bytes, Bytes>',
2792 /**2803 /**
2793 * Lookup360: up_data_structs::PropertiesMap<up_data_structs::PropertyPermission>2804 * Lookup363: up_data_structs::PropertiesMap<up_data_structs::PropertyPermission>
2794 **/2805 **/
2795 UpDataStructsPropertiesMapPropertyPermission: 'BTreeMap<Bytes, UpDataStructsPropertyPermission>',2806 UpDataStructsPropertiesMapPropertyPermission: 'BTreeMap<Bytes, UpDataStructsPropertyPermission>',
2796 /**2807 /**
2797 * Lookup367: up_data_structs::CollectionStats2808 * Lookup370: up_data_structs::CollectionStats
2798 **/2809 **/
2799 UpDataStructsCollectionStats: {2810 UpDataStructsCollectionStats: {
2800 created: 'u32',2811 created: 'u32',
2801 destroyed: 'u32',2812 destroyed: 'u32',
2802 alive: 'u32'2813 alive: 'u32'
2803 },2814 },
2804 /**2815 /**
2805 * Lookup368: up_data_structs::TokenChild2816 * Lookup371: up_data_structs::TokenChild
2806 **/2817 **/
2807 UpDataStructsTokenChild: {2818 UpDataStructsTokenChild: {
2808 token: 'u32',2819 token: 'u32',
2809 collection: 'u32'2820 collection: 'u32'
2810 },2821 },
2811 /**2822 /**
2812 * Lookup369: PhantomType::up_data_structs<T>2823 * Lookup372: PhantomType::up_data_structs<T>
2813 **/2824 **/
2814 PhantomTypeUpDataStructs: '[(UpDataStructsTokenData,UpDataStructsRpcCollection,RmrkTraitsCollectionCollectionInfo,RmrkTraitsNftNftInfo,RmrkTraitsResourceResourceInfo,RmrkTraitsPropertyPropertyInfo,RmrkTraitsBaseBaseInfo,RmrkTraitsPartPartType,RmrkTraitsTheme,RmrkTraitsNftNftChild);0]',2825 PhantomTypeUpDataStructs: '[(UpDataStructsTokenData,UpDataStructsRpcCollection,RmrkTraitsCollectionCollectionInfo,RmrkTraitsNftNftInfo,RmrkTraitsResourceResourceInfo,RmrkTraitsPropertyPropertyInfo,RmrkTraitsBaseBaseInfo,RmrkTraitsPartPartType,RmrkTraitsTheme,RmrkTraitsNftNftChild);0]',
2815 /**2826 /**
2816 * Lookup371: up_data_structs::TokenData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2827 * Lookup374: up_data_structs::TokenData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
2817 **/2828 **/
2818 UpDataStructsTokenData: {2829 UpDataStructsTokenData: {
2819 properties: 'Vec<UpDataStructsProperty>',2830 properties: 'Vec<UpDataStructsProperty>',
2820 owner: 'Option<PalletEvmAccountBasicCrossAccountIdRepr>'2831 owner: 'Option<PalletEvmAccountBasicCrossAccountIdRepr>'
2821 },2832 },
2822 /**2833 /**
2823 * Lookup373: up_data_structs::RpcCollection<sp_core::crypto::AccountId32>2834 * Lookup376: up_data_structs::RpcCollection<sp_core::crypto::AccountId32>
2824 **/2835 **/
2825 UpDataStructsRpcCollection: {2836 UpDataStructsRpcCollection: {
2826 owner: 'AccountId32',2837 owner: 'AccountId32',
2827 mode: 'UpDataStructsCollectionMode',2838 mode: 'UpDataStructsCollectionMode',
2835 properties: 'Vec<UpDataStructsProperty>',2846 properties: 'Vec<UpDataStructsProperty>',
2836 readOnly: 'bool'2847 readOnly: 'bool'
2837 },2848 },
2838 /**2849 /**
2839 * Lookup374: rmrk_traits::collection::CollectionInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>, sp_core::crypto::AccountId32>2850 * Lookup377: rmrk_traits::collection::CollectionInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>, sp_core::crypto::AccountId32>
2840 **/2851 **/
2841 RmrkTraitsCollectionCollectionInfo: {2852 RmrkTraitsCollectionCollectionInfo: {
2842 issuer: 'AccountId32',2853 issuer: 'AccountId32',
2843 metadata: 'Bytes',2854 metadata: 'Bytes',
2844 max: 'Option<u32>',2855 max: 'Option<u32>',
2845 symbol: 'Bytes',2856 symbol: 'Bytes',
2846 nftsCount: 'u32'2857 nftsCount: 'u32'
2847 },2858 },
2848 /**2859 /**
2849 * Lookup375: rmrk_traits::nft::NftInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill, frame_support::storage::bounded_vec::BoundedVec<T, S>>2860 * Lookup378: rmrk_traits::nft::NftInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill, frame_support::storage::bounded_vec::BoundedVec<T, S>>
2850 **/2861 **/
2851 RmrkTraitsNftNftInfo: {2862 RmrkTraitsNftNftInfo: {
2852 owner: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',2863 owner: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',
2853 royalty: 'Option<RmrkTraitsNftRoyaltyInfo>',2864 royalty: 'Option<RmrkTraitsNftRoyaltyInfo>',
2854 metadata: 'Bytes',2865 metadata: 'Bytes',
2855 equipped: 'bool',2866 equipped: 'bool',
2856 pending: 'bool'2867 pending: 'bool'
2857 },2868 },
2858 /**2869 /**
2859 * Lookup377: rmrk_traits::nft::RoyaltyInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill>2870 * Lookup380: rmrk_traits::nft::RoyaltyInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill>
2860 **/2871 **/
2861 RmrkTraitsNftRoyaltyInfo: {2872 RmrkTraitsNftRoyaltyInfo: {
2862 recipient: 'AccountId32',2873 recipient: 'AccountId32',
2863 amount: 'Permill'2874 amount: 'Permill'
2864 },2875 },
2865 /**2876 /**
2866 * Lookup378: rmrk_traits::resource::ResourceInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>2877 * Lookup381: rmrk_traits::resource::ResourceInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
2867 **/2878 **/
2868 RmrkTraitsResourceResourceInfo: {2879 RmrkTraitsResourceResourceInfo: {
2869 id: 'u32',2880 id: 'u32',
2870 resource: 'RmrkTraitsResourceResourceTypes',2881 resource: 'RmrkTraitsResourceResourceTypes',
2871 pending: 'bool',2882 pending: 'bool',
2872 pendingRemoval: 'bool'2883 pendingRemoval: 'bool'
2873 },2884 },
2874 /**
2875 * Lookup379: rmrk_traits::resource::ResourceTypes<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
2876 **/
2877 RmrkTraitsResourceResourceTypes: {
2878 _enum: {
2879 Basic: 'RmrkTraitsResourceBasicResource',
2880 Composable: 'RmrkTraitsResourceComposableResource',
2881 Slot: 'RmrkTraitsResourceSlotResource'
2882 }
2883 },
2884 /**2885 /**
2885 * Lookup380: rmrk_traits::property::PropertyInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>2886 * Lookup382: rmrk_traits::property::PropertyInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
2886 **/2887 **/
2887 RmrkTraitsPropertyPropertyInfo: {2888 RmrkTraitsPropertyPropertyInfo: {
2888 key: 'Bytes',2889 key: 'Bytes',
2889 value: 'Bytes'2890 value: 'Bytes'
2890 },2891 },
2891 /**2892 /**
2892 * Lookup381: rmrk_traits::base::BaseInfo<sp_core::crypto::AccountId32, frame_support::storage::bounded_vec::BoundedVec<T, S>>2893 * Lookup383: rmrk_traits::base::BaseInfo<sp_core::crypto::AccountId32, frame_support::storage::bounded_vec::BoundedVec<T, S>>
2893 **/2894 **/
2894 RmrkTraitsBaseBaseInfo: {2895 RmrkTraitsBaseBaseInfo: {
2895 issuer: 'AccountId32',2896 issuer: 'AccountId32',
2896 baseType: 'Bytes',2897 baseType: 'Bytes',
2897 symbol: 'Bytes'2898 symbol: 'Bytes'
2898 },2899 },
2899 /**2900 /**
2900 * Lookup382: rmrk_traits::nft::NftChild2901 * Lookup384: rmrk_traits::nft::NftChild
2901 **/2902 **/
2902 RmrkTraitsNftNftChild: {2903 RmrkTraitsNftNftChild: {
2903 collectionId: 'u32',2904 collectionId: 'u32',
2904 nftId: 'u32'2905 nftId: 'u32'
2905 },2906 },
2906 /**2907 /**
2907 * Lookup384: pallet_common::pallet::Error<T>2908 * Lookup386: pallet_common::pallet::Error<T>
2908 **/2909 **/
2909 PalletCommonError: {2910 PalletCommonError: {
2910 _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']2911 _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']
2911 },2912 },
2912 /**2913 /**
2913 * Lookup386: pallet_fungible::pallet::Error<T>2914 * Lookup388: pallet_fungible::pallet::Error<T>
2914 **/2915 **/
2915 PalletFungibleError: {2916 PalletFungibleError: {
2916 _enum: ['NotFungibleDataUsedToMintFungibleCollectionToken', 'FungibleItemsHaveNoId', 'FungibleItemsDontHaveData', 'FungibleDisallowsNesting', 'SettingPropertiesNotAllowed']2917 _enum: ['NotFungibleDataUsedToMintFungibleCollectionToken', 'FungibleItemsHaveNoId', 'FungibleItemsDontHaveData', 'FungibleDisallowsNesting', 'SettingPropertiesNotAllowed']
2917 },2918 },
2918 /**2919 /**
2919 * Lookup387: pallet_refungible::ItemData2920 * Lookup389: pallet_refungible::ItemData
2920 **/2921 **/
2921 PalletRefungibleItemData: {2922 PalletRefungibleItemData: {
2922 constData: 'Bytes'2923 constData: 'Bytes'
2923 },2924 },
2924 /**2925 /**
2925 * Lookup391: pallet_refungible::pallet::Error<T>2926 * Lookup393: pallet_refungible::pallet::Error<T>
2926 **/2927 **/
2927 PalletRefungibleError: {2928 PalletRefungibleError: {
2928 _enum: ['NotRefungibleDataUsedToMintFungibleCollectionToken', 'WrongRefungiblePieces', 'RefungibleDisallowsNesting', 'SettingPropertiesNotAllowed']2929 _enum: ['NotRefungibleDataUsedToMintFungibleCollectionToken', 'WrongRefungiblePieces', 'RefungibleDisallowsNesting', 'SettingPropertiesNotAllowed']
2929 },2930 },
2930 /**2931 /**
2931 * Lookup392: pallet_nonfungible::ItemData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2932 * Lookup394: pallet_nonfungible::ItemData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
2932 **/2933 **/
2933 PalletNonfungibleItemData: {2934 PalletNonfungibleItemData: {
2934 owner: 'PalletEvmAccountBasicCrossAccountIdRepr'2935 owner: 'PalletEvmAccountBasicCrossAccountIdRepr'
2935 },2936 },
2936 /**2937 /**
2937 * Lookup394: pallet_nonfungible::pallet::Error<T>2938 * Lookup396: pallet_nonfungible::pallet::Error<T>
2938 **/2939 **/
2939 PalletNonfungibleError: {2940 PalletNonfungibleError: {
2940 _enum: ['NotNonfungibleDataUsedToMintFungibleCollectionToken', 'NonfungibleItemsHaveNoAmount', 'CantBurnNftWithChildren']2941 _enum: ['NotNonfungibleDataUsedToMintFungibleCollectionToken', 'NonfungibleItemsHaveNoAmount', 'CantBurnNftWithChildren']
2941 },2942 },
2942 /**2943 /**
2943 * Lookup395: pallet_structure::pallet::Error<T>2944 * Lookup397: pallet_structure::pallet::Error<T>
2944 **/2945 **/
2945 PalletStructureError: {2946 PalletStructureError: {
2946 _enum: ['OuroborosDetected', 'DepthLimit', 'BreadthLimit', 'TokenNotFound']2947 _enum: ['OuroborosDetected', 'DepthLimit', 'BreadthLimit', 'TokenNotFound']
2947 },2948 },
2948 /**2949 /**
2949 * Lookup396: pallet_rmrk_core::pallet::Error<T>2950 * Lookup398: pallet_rmrk_core::pallet::Error<T>
2950 **/2951 **/
2951 PalletRmrkCoreError: {2952 PalletRmrkCoreError: {
2952 _enum: ['CorruptedCollectionType', 'NftTypeEncodeError', 'RmrkPropertyKeyIsTooLong', 'RmrkPropertyValueIsTooLong', 'CollectionNotEmpty', 'NoAvailableCollectionId', 'NoAvailableNftId', 'CollectionUnknown', 'NoPermission', 'NonTransferable', 'CollectionFullOrLocked', 'ResourceDoesntExist', 'CannotSendToDescendentOrSelf', 'CannotAcceptNonOwnedNft', 'CannotRejectNonOwnedNft', 'ResourceNotPending']2953 _enum: ['CorruptedCollectionType', 'NftTypeEncodeError', 'RmrkPropertyKeyIsTooLong', 'RmrkPropertyValueIsTooLong', 'UnableToDecodeRmrkData', 'CollectionNotEmpty', 'NoAvailableCollectionId', 'NoAvailableNftId', 'CollectionUnknown', 'NoPermission', 'NonTransferable', 'CollectionFullOrLocked', 'ResourceDoesntExist', 'CannotSendToDescendentOrSelf', 'CannotAcceptNonOwnedNft', 'CannotRejectNonOwnedNft', 'ResourceNotPending']
2953 },2954 },
2954 /**2955 /**
2955 * Lookup398: pallet_rmrk_equip::pallet::Error<T>2956 * Lookup400: pallet_rmrk_equip::pallet::Error<T>
2956 **/2957 **/
2957 PalletRmrkEquipError: {2958 PalletRmrkEquipError: {
2958 _enum: ['PermissionError', 'NoAvailableBaseId', 'NoAvailablePartId', 'BaseDoesntExist', 'NeedsDefaultThemeFirst']2959 _enum: ['PermissionError', 'NoAvailableBaseId', 'NoAvailablePartId', 'BaseDoesntExist', 'NeedsDefaultThemeFirst']
2959 },2960 },
2960 /**2961 /**
2961 * Lookup401: pallet_evm::pallet::Error<T>2962 * Lookup403: pallet_evm::pallet::Error<T>
2962 **/2963 **/
2963 PalletEvmError: {2964 PalletEvmError: {
2964 _enum: ['BalanceLow', 'FeeOverflow', 'PaymentOverflow', 'WithdrawFailed', 'GasPriceTooLow', 'InvalidNonce']2965 _enum: ['BalanceLow', 'FeeOverflow', 'PaymentOverflow', 'WithdrawFailed', 'GasPriceTooLow', 'InvalidNonce']
2965 },2966 },
2966 /**2967 /**
2967 * Lookup404: fp_rpc::TransactionStatus2968 * Lookup406: fp_rpc::TransactionStatus
2968 **/2969 **/
2969 FpRpcTransactionStatus: {2970 FpRpcTransactionStatus: {
2970 transactionHash: 'H256',2971 transactionHash: 'H256',
2971 transactionIndex: 'u32',2972 transactionIndex: 'u32',
2975 logs: 'Vec<EthereumLog>',2976 logs: 'Vec<EthereumLog>',
2976 logsBloom: 'EthbloomBloom'2977 logsBloom: 'EthbloomBloom'
2977 },2978 },
2978 /**2979 /**
2979 * Lookup406: ethbloom::Bloom2980 * Lookup408: ethbloom::Bloom
2980 **/2981 **/
2981 EthbloomBloom: '[u8;256]',2982 EthbloomBloom: '[u8;256]',
2982 /**2983 /**
2983 * Lookup408: ethereum::receipt::ReceiptV32984 * Lookup410: ethereum::receipt::ReceiptV3
2984 **/2985 **/
2985 EthereumReceiptReceiptV3: {2986 EthereumReceiptReceiptV3: {
2986 _enum: {2987 _enum: {
2987 Legacy: 'EthereumReceiptEip658ReceiptData',2988 Legacy: 'EthereumReceiptEip658ReceiptData',
2988 EIP2930: 'EthereumReceiptEip658ReceiptData',2989 EIP2930: 'EthereumReceiptEip658ReceiptData',
2989 EIP1559: 'EthereumReceiptEip658ReceiptData'2990 EIP1559: 'EthereumReceiptEip658ReceiptData'
2990 }2991 }
2991 },2992 },
2992 /**2993 /**
2993 * Lookup409: ethereum::receipt::EIP658ReceiptData2994 * Lookup411: ethereum::receipt::EIP658ReceiptData
2994 **/2995 **/
2995 EthereumReceiptEip658ReceiptData: {2996 EthereumReceiptEip658ReceiptData: {
2996 statusCode: 'u8',2997 statusCode: 'u8',
2997 usedGas: 'U256',2998 usedGas: 'U256',
2998 logsBloom: 'EthbloomBloom',2999 logsBloom: 'EthbloomBloom',
2999 logs: 'Vec<EthereumLog>'3000 logs: 'Vec<EthereumLog>'
3000 },3001 },
3001 /**3002 /**
3002 * Lookup410: ethereum::block::Block<ethereum::transaction::TransactionV2>3003 * Lookup412: ethereum::block::Block<ethereum::transaction::TransactionV2>
3003 **/3004 **/
3004 EthereumBlock: {3005 EthereumBlock: {
3005 header: 'EthereumHeader',3006 header: 'EthereumHeader',
3006 transactions: 'Vec<EthereumTransactionTransactionV2>',3007 transactions: 'Vec<EthereumTransactionTransactionV2>',
3007 ommers: 'Vec<EthereumHeader>'3008 ommers: 'Vec<EthereumHeader>'
3008 },3009 },
3009 /**3010 /**
3010 * Lookup411: ethereum::header::Header3011 * Lookup413: ethereum::header::Header
3011 **/3012 **/
3012 EthereumHeader: {3013 EthereumHeader: {
3013 parentHash: 'H256',3014 parentHash: 'H256',
3014 ommersHash: 'H256',3015 ommersHash: 'H256',
3026 mixHash: 'H256',3027 mixHash: 'H256',
3027 nonce: 'EthereumTypesHashH64'3028 nonce: 'EthereumTypesHashH64'
3028 },3029 },
3029 /**3030 /**
3030 * Lookup412: ethereum_types::hash::H643031 * Lookup414: ethereum_types::hash::H64
3031 **/3032 **/
3032 EthereumTypesHashH64: '[u8;8]',3033 EthereumTypesHashH64: '[u8;8]',
3033 /**3034 /**
3034 * Lookup417: pallet_ethereum::pallet::Error<T>3035 * Lookup419: pallet_ethereum::pallet::Error<T>
3035 **/3036 **/
3036 PalletEthereumError: {3037 PalletEthereumError: {
3037 _enum: ['InvalidSignature', 'PreLogExists']3038 _enum: ['InvalidSignature', 'PreLogExists']
3038 },3039 },
3039 /**3040 /**
3040 * Lookup418: pallet_evm_coder_substrate::pallet::Error<T>3041 * Lookup420: pallet_evm_coder_substrate::pallet::Error<T>
3041 **/3042 **/
3042 PalletEvmCoderSubstrateError: {3043 PalletEvmCoderSubstrateError: {
3043 _enum: ['OutOfGas', 'OutOfFund']3044 _enum: ['OutOfGas', 'OutOfFund']
3044 },3045 },
3045 /**3046 /**
3046 * Lookup419: pallet_evm_contract_helpers::SponsoringModeT3047 * Lookup421: pallet_evm_contract_helpers::SponsoringModeT
3047 **/3048 **/
3048 PalletEvmContractHelpersSponsoringModeT: {3049 PalletEvmContractHelpersSponsoringModeT: {
3049 _enum: ['Disabled', 'Allowlisted', 'Generous']3050 _enum: ['Disabled', 'Allowlisted', 'Generous']
3050 },3051 },
3051 /**3052 /**
3052 * Lookup421: pallet_evm_contract_helpers::pallet::Error<T>3053 * Lookup423: pallet_evm_contract_helpers::pallet::Error<T>
3053 **/3054 **/
3054 PalletEvmContractHelpersError: {3055 PalletEvmContractHelpersError: {
3055 _enum: ['NoPermission']3056 _enum: ['NoPermission']
3056 },3057 },
3057 /**3058 /**
3058 * Lookup422: pallet_evm_migration::pallet::Error<T>3059 * Lookup424: pallet_evm_migration::pallet::Error<T>
3059 **/3060 **/
3060 PalletEvmMigrationError: {3061 PalletEvmMigrationError: {
3061 _enum: ['AccountNotEmpty', 'AccountIsNotMigrating']3062 _enum: ['AccountNotEmpty', 'AccountIsNotMigrating']
3062 },3063 },
3063 /**3064 /**
3064 * Lookup424: sp_runtime::MultiSignature3065 * Lookup426: sp_runtime::MultiSignature
3065 **/3066 **/
3066 SpRuntimeMultiSignature: {3067 SpRuntimeMultiSignature: {
3067 _enum: {3068 _enum: {
3068 Ed25519: 'SpCoreEd25519Signature',3069 Ed25519: 'SpCoreEd25519Signature',
3069 Sr25519: 'SpCoreSr25519Signature',3070 Sr25519: 'SpCoreSr25519Signature',
3070 Ecdsa: 'SpCoreEcdsaSignature'3071 Ecdsa: 'SpCoreEcdsaSignature'
3071 }3072 }
3072 },3073 },
3073 /**3074 /**
3074 * Lookup425: sp_core::ed25519::Signature3075 * Lookup427: sp_core::ed25519::Signature
3075 **/3076 **/
3076 SpCoreEd25519Signature: '[u8;64]',3077 SpCoreEd25519Signature: '[u8;64]',
3077 /**3078 /**
3078 * Lookup427: sp_core::sr25519::Signature3079 * Lookup429: sp_core::sr25519::Signature
3079 **/3080 **/
3080 SpCoreSr25519Signature: '[u8;64]',3081 SpCoreSr25519Signature: '[u8;64]',
3081 /**3082 /**
3082 * Lookup428: sp_core::ecdsa::Signature3083 * Lookup430: sp_core::ecdsa::Signature
3083 **/3084 **/
3084 SpCoreEcdsaSignature: '[u8;65]',3085 SpCoreEcdsaSignature: '[u8;65]',
3085 /**3086 /**
3086 * Lookup431: frame_system::extensions::check_spec_version::CheckSpecVersion<T>3087 * Lookup433: frame_system::extensions::check_spec_version::CheckSpecVersion<T>
3087 **/3088 **/
3088 FrameSystemExtensionsCheckSpecVersion: 'Null',3089 FrameSystemExtensionsCheckSpecVersion: 'Null',
3089 /**3090 /**
3090 * Lookup432: frame_system::extensions::check_genesis::CheckGenesis<T>3091 * Lookup434: frame_system::extensions::check_genesis::CheckGenesis<T>
3091 **/3092 **/
3092 FrameSystemExtensionsCheckGenesis: 'Null',3093 FrameSystemExtensionsCheckGenesis: 'Null',
3093 /**3094 /**
3094 * Lookup435: frame_system::extensions::check_nonce::CheckNonce<T>3095 * Lookup437: frame_system::extensions::check_nonce::CheckNonce<T>
3095 **/3096 **/
3096 FrameSystemExtensionsCheckNonce: 'Compact<u32>',3097 FrameSystemExtensionsCheckNonce: 'Compact<u32>',
3097 /**3098 /**
3098 * Lookup436: frame_system::extensions::check_weight::CheckWeight<T>3099 * Lookup438: frame_system::extensions::check_weight::CheckWeight<T>
3099 **/3100 **/
3100 FrameSystemExtensionsCheckWeight: 'Null',3101 FrameSystemExtensionsCheckWeight: 'Null',
3101 /**3102 /**
3102 * Lookup437: pallet_template_transaction_payment::ChargeTransactionPayment<opal_runtime::Runtime>3103 * Lookup439: pallet_template_transaction_payment::ChargeTransactionPayment<opal_runtime::Runtime>
3103 **/3104 **/
3104 PalletTemplateTransactionPaymentChargeTransactionPayment: 'Compact<u128>',3105 PalletTemplateTransactionPaymentChargeTransactionPayment: 'Compact<u128>',
3105 /**3106 /**
3106 * Lookup438: opal_runtime::Runtime3107 * Lookup440: opal_runtime::Runtime
3107 **/3108 **/
3108 OpalRuntimeRuntime: 'Null',3109 OpalRuntimeRuntime: 'Null',
3109 /**3110 /**
3110 * Lookup439: pallet_ethereum::FakeTransactionFinalizer<opal_runtime::Runtime>3111 * Lookup441: pallet_ethereum::FakeTransactionFinalizer<opal_runtime::Runtime>
3111 **/3112 **/
3112 PalletEthereumFakeTransactionFinalizer: 'Null'3113 PalletEthereumFakeTransactionFinalizer: 'Null'
3113};3114};
31143115
modifiedtests/src/interfaces/types-lookup.tsdiffbeforeafterboth
--- a/tests/src/interfaces/types-lookup.ts
+++ b/tests/src/interfaces/types-lookup.ts
@@ -1562,7 +1562,7 @@
   /** @name UpDataStructsNestingPermissions (169) */
   export interface UpDataStructsNestingPermissions extends Struct {
     readonly tokenOwner: bool;
-    readonly admin: bool;
+    readonly collectionAdmin: bool;
     readonly restricted: Option<UpDataStructsOwnerRestrictedSet>;
     readonly permissive: bool;
   }
@@ -1719,11 +1719,13 @@
       readonly royaltyAmount: Option<Permill>;
       readonly metadata: Bytes;
       readonly transferable: bool;
+      readonly resources: Option<Vec<RmrkTraitsResourceResourceTypes>>;
     } & Struct;
     readonly isBurnNft: boolean;
     readonly asBurnNft: {
       readonly collectionId: u32;
       readonly nftId: u32;
+      readonly maxBurns: u32;
     } & Struct;
     readonly isSend: boolean;
     readonly asSend: {
@@ -1777,7 +1779,6 @@
     readonly asAddComposableResource: {
       readonly rmrkCollectionId: u32;
       readonly nftId: u32;
-      readonly resourceId: Bytes;
       readonly resource: RmrkTraitsResourceComposableResource;
     } & Struct;
     readonly isAddSlotResource: boolean;
@@ -1795,13 +1796,15 @@
     readonly type: 'CreateCollection' | 'DestroyCollection' | 'ChangeCollectionIssuer' | 'LockCollection' | 'MintNft' | 'BurnNft' | 'Send' | 'AcceptNft' | 'RejectNft' | 'AcceptResource' | 'AcceptResourceRemoval' | 'SetProperty' | 'SetPriority' | 'AddBasicResource' | 'AddComposableResource' | 'AddSlotResource' | 'RemoveResource';
   }
 
-  /** @name RmrkTraitsNftAccountIdOrCollectionNftTuple (215) */
-  export interface RmrkTraitsNftAccountIdOrCollectionNftTuple extends Enum {
-    readonly isAccountId: boolean;
-    readonly asAccountId: AccountId32;
-    readonly isCollectionAndNftTuple: boolean;
-    readonly asCollectionAndNftTuple: ITuple<[u32, u32]>;
-    readonly type: 'AccountId' | 'CollectionAndNftTuple';
+  /** @name RmrkTraitsResourceResourceTypes (217) */
+  export interface RmrkTraitsResourceResourceTypes extends Enum {
+    readonly isBasic: boolean;
+    readonly asBasic: RmrkTraitsResourceBasicResource;
+    readonly isComposable: boolean;
+    readonly asComposable: RmrkTraitsResourceComposableResource;
+    readonly isSlot: boolean;
+    readonly asSlot: RmrkTraitsResourceSlotResource;
+    readonly type: 'Basic' | 'Composable' | 'Slot';
   }
 
   /** @name RmrkTraitsResourceBasicResource (219) */
@@ -1812,7 +1815,7 @@
     readonly thumb: Option<Bytes>;
   }
 
-  /** @name RmrkTraitsResourceComposableResource (222) */
+  /** @name RmrkTraitsResourceComposableResource (221) */
   export interface RmrkTraitsResourceComposableResource extends Struct {
     readonly parts: Vec<u32>;
     readonly base: u32;
@@ -1822,7 +1825,7 @@
     readonly thumb: Option<Bytes>;
   }
 
-  /** @name RmrkTraitsResourceSlotResource (224) */
+  /** @name RmrkTraitsResourceSlotResource (222) */
   export interface RmrkTraitsResourceSlotResource extends Struct {
     readonly base: u32;
     readonly src: Option<Bytes>;
@@ -1832,7 +1835,16 @@
     readonly thumb: Option<Bytes>;
   }
 
-  /** @name PalletRmrkEquipCall (225) */
+  /** @name RmrkTraitsNftAccountIdOrCollectionNftTuple (224) */
+  export interface RmrkTraitsNftAccountIdOrCollectionNftTuple extends Enum {
+    readonly isAccountId: boolean;
+    readonly asAccountId: AccountId32;
+    readonly isCollectionAndNftTuple: boolean;
+    readonly asCollectionAndNftTuple: ITuple<[u32, u32]>;
+    readonly type: 'AccountId' | 'CollectionAndNftTuple';
+  }
+
+  /** @name PalletRmrkEquipCall (228) */
   export interface PalletRmrkEquipCall extends Enum {
     readonly isCreateBase: boolean;
     readonly asCreateBase: {
@@ -1848,7 +1860,7 @@
     readonly type: 'CreateBase' | 'ThemeAdd';
   }
 
-  /** @name RmrkTraitsPartPartType (227) */
+  /** @name RmrkTraitsPartPartType (230) */
   export interface RmrkTraitsPartPartType extends Enum {
     readonly isFixedPart: boolean;
     readonly asFixedPart: RmrkTraitsPartFixedPart;
@@ -1857,14 +1869,14 @@
     readonly type: 'FixedPart' | 'SlotPart';
   }
 
-  /** @name RmrkTraitsPartFixedPart (229) */
+  /** @name RmrkTraitsPartFixedPart (232) */
   export interface RmrkTraitsPartFixedPart extends Struct {
     readonly id: u32;
     readonly z: u32;
     readonly src: Bytes;
   }
 
-  /** @name RmrkTraitsPartSlotPart (230) */
+  /** @name RmrkTraitsPartSlotPart (233) */
   export interface RmrkTraitsPartSlotPart extends Struct {
     readonly id: u32;
     readonly equippable: RmrkTraitsPartEquippableList;
@@ -1872,7 +1884,7 @@
     readonly z: u32;
   }
 
-  /** @name RmrkTraitsPartEquippableList (231) */
+  /** @name RmrkTraitsPartEquippableList (234) */
   export interface RmrkTraitsPartEquippableList extends Enum {
     readonly isAll: boolean;
     readonly isEmpty: boolean;
@@ -1881,20 +1893,20 @@
     readonly type: 'All' | 'Empty' | 'Custom';
   }
 
-  /** @name RmrkTraitsTheme (233) */
+  /** @name RmrkTraitsTheme (236) */
   export interface RmrkTraitsTheme extends Struct {
     readonly name: Bytes;
     readonly properties: Vec<RmrkTraitsThemeThemeProperty>;
     readonly inherit: bool;
   }
 
-  /** @name RmrkTraitsThemeThemeProperty (235) */
+  /** @name RmrkTraitsThemeThemeProperty (238) */
   export interface RmrkTraitsThemeThemeProperty extends Struct {
     readonly key: Bytes;
     readonly value: Bytes;
   }
 
-  /** @name PalletEvmCall (236) */
+  /** @name PalletEvmCall (239) */
   export interface PalletEvmCall extends Enum {
     readonly isWithdraw: boolean;
     readonly asWithdraw: {
@@ -1939,7 +1951,7 @@
     readonly type: 'Withdraw' | 'Call' | 'Create' | 'Create2';
   }
 
-  /** @name PalletEthereumCall (242) */
+  /** @name PalletEthereumCall (245) */
   export interface PalletEthereumCall extends Enum {
     readonly isTransact: boolean;
     readonly asTransact: {
@@ -1948,7 +1960,7 @@
     readonly type: 'Transact';
   }
 
-  /** @name EthereumTransactionTransactionV2 (243) */
+  /** @name EthereumTransactionTransactionV2 (246) */
   export interface EthereumTransactionTransactionV2 extends Enum {
     readonly isLegacy: boolean;
     readonly asLegacy: EthereumTransactionLegacyTransaction;
@@ -1959,7 +1971,7 @@
     readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';
   }
 
-  /** @name EthereumTransactionLegacyTransaction (244) */
+  /** @name EthereumTransactionLegacyTransaction (247) */
   export interface EthereumTransactionLegacyTransaction extends Struct {
     readonly nonce: U256;
     readonly gasPrice: U256;
@@ -1970,7 +1982,7 @@
     readonly signature: EthereumTransactionTransactionSignature;
   }
 
-  /** @name EthereumTransactionTransactionAction (245) */
+  /** @name EthereumTransactionTransactionAction (248) */
   export interface EthereumTransactionTransactionAction extends Enum {
     readonly isCall: boolean;
     readonly asCall: H160;
@@ -1978,14 +1990,14 @@
     readonly type: 'Call' | 'Create';
   }
 
-  /** @name EthereumTransactionTransactionSignature (246) */
+  /** @name EthereumTransactionTransactionSignature (249) */
   export interface EthereumTransactionTransactionSignature extends Struct {
     readonly v: u64;
     readonly r: H256;
     readonly s: H256;
   }
 
-  /** @name EthereumTransactionEip2930Transaction (248) */
+  /** @name EthereumTransactionEip2930Transaction (251) */
   export interface EthereumTransactionEip2930Transaction extends Struct {
     readonly chainId: u64;
     readonly nonce: U256;
@@ -2000,13 +2012,13 @@
     readonly s: H256;
   }
 
-  /** @name EthereumTransactionAccessListItem (250) */
+  /** @name EthereumTransactionAccessListItem (253) */
   export interface EthereumTransactionAccessListItem extends Struct {
     readonly address: H160;
     readonly storageKeys: Vec<H256>;
   }
 
-  /** @name EthereumTransactionEip1559Transaction (251) */
+  /** @name EthereumTransactionEip1559Transaction (254) */
   export interface EthereumTransactionEip1559Transaction extends Struct {
     readonly chainId: u64;
     readonly nonce: U256;
@@ -2022,7 +2034,7 @@
     readonly s: H256;
   }
 
-  /** @name PalletEvmMigrationCall (252) */
+  /** @name PalletEvmMigrationCall (255) */
   export interface PalletEvmMigrationCall extends Enum {
     readonly isBegin: boolean;
     readonly asBegin: {
@@ -2041,7 +2053,7 @@
     readonly type: 'Begin' | 'SetData' | 'Finish';
   }
 
-  /** @name PalletSudoEvent (255) */
+  /** @name PalletSudoEvent (258) */
   export interface PalletSudoEvent extends Enum {
     readonly isSudid: boolean;
     readonly asSudid: {
@@ -2058,7 +2070,7 @@
     readonly type: 'Sudid' | 'KeyChanged' | 'SudoAsDone';
   }
 
-  /** @name SpRuntimeDispatchError (257) */
+  /** @name SpRuntimeDispatchError (260) */
   export interface SpRuntimeDispatchError extends Enum {
     readonly isOther: boolean;
     readonly isCannotLookup: boolean;
@@ -2077,13 +2089,13 @@
     readonly type: 'Other' | 'CannotLookup' | 'BadOrigin' | 'Module' | 'ConsumerRemaining' | 'NoProviders' | 'TooManyConsumers' | 'Token' | 'Arithmetic' | 'Transactional';
   }
 
-  /** @name SpRuntimeModuleError (258) */
+  /** @name SpRuntimeModuleError (261) */
   export interface SpRuntimeModuleError extends Struct {
     readonly index: u8;
     readonly error: U8aFixed;
   }
 
-  /** @name SpRuntimeTokenError (259) */
+  /** @name SpRuntimeTokenError (262) */
   export interface SpRuntimeTokenError extends Enum {
     readonly isNoFunds: boolean;
     readonly isWouldDie: boolean;
@@ -2095,7 +2107,7 @@
     readonly type: 'NoFunds' | 'WouldDie' | 'BelowMinimum' | 'CannotCreate' | 'UnknownAsset' | 'Frozen' | 'Unsupported';
   }
 
-  /** @name SpRuntimeArithmeticError (260) */
+  /** @name SpRuntimeArithmeticError (263) */
   export interface SpRuntimeArithmeticError extends Enum {
     readonly isUnderflow: boolean;
     readonly isOverflow: boolean;
@@ -2103,20 +2115,20 @@
     readonly type: 'Underflow' | 'Overflow' | 'DivisionByZero';
   }
 
-  /** @name SpRuntimeTransactionalError (261) */
+  /** @name SpRuntimeTransactionalError (264) */
   export interface SpRuntimeTransactionalError extends Enum {
     readonly isLimitReached: boolean;
     readonly isNoLayer: boolean;
     readonly type: 'LimitReached' | 'NoLayer';
   }
 
-  /** @name PalletSudoError (262) */
+  /** @name PalletSudoError (265) */
   export interface PalletSudoError extends Enum {
     readonly isRequireSudo: boolean;
     readonly type: 'RequireSudo';
   }
 
-  /** @name FrameSystemAccountInfo (263) */
+  /** @name FrameSystemAccountInfo (266) */
   export interface FrameSystemAccountInfo extends Struct {
     readonly nonce: u32;
     readonly consumers: u32;
@@ -2125,19 +2137,19 @@
     readonly data: PalletBalancesAccountData;
   }
 
-  /** @name FrameSupportWeightsPerDispatchClassU64 (264) */
+  /** @name FrameSupportWeightsPerDispatchClassU64 (267) */
   export interface FrameSupportWeightsPerDispatchClassU64 extends Struct {
     readonly normal: u64;
     readonly operational: u64;
     readonly mandatory: u64;
   }
 
-  /** @name SpRuntimeDigest (265) */
+  /** @name SpRuntimeDigest (268) */
   export interface SpRuntimeDigest extends Struct {
     readonly logs: Vec<SpRuntimeDigestDigestItem>;
   }
 
-  /** @name SpRuntimeDigestDigestItem (267) */
+  /** @name SpRuntimeDigestDigestItem (270) */
   export interface SpRuntimeDigestDigestItem extends Enum {
     readonly isOther: boolean;
     readonly asOther: Bytes;
@@ -2151,14 +2163,14 @@
     readonly type: 'Other' | 'Consensus' | 'Seal' | 'PreRuntime' | 'RuntimeEnvironmentUpdated';
   }
 
-  /** @name FrameSystemEventRecord (269) */
+  /** @name FrameSystemEventRecord (272) */
   export interface FrameSystemEventRecord extends Struct {
     readonly phase: FrameSystemPhase;
     readonly event: Event;
     readonly topics: Vec<H256>;
   }
 
-  /** @name FrameSystemEvent (271) */
+  /** @name FrameSystemEvent (274) */
   export interface FrameSystemEvent extends Enum {
     readonly isExtrinsicSuccess: boolean;
     readonly asExtrinsicSuccess: {
@@ -2186,14 +2198,14 @@
     readonly type: 'ExtrinsicSuccess' | 'ExtrinsicFailed' | 'CodeUpdated' | 'NewAccount' | 'KilledAccount' | 'Remarked';
   }
 
-  /** @name FrameSupportWeightsDispatchInfo (272) */
+  /** @name FrameSupportWeightsDispatchInfo (275) */
   export interface FrameSupportWeightsDispatchInfo extends Struct {
     readonly weight: u64;
     readonly class: FrameSupportWeightsDispatchClass;
     readonly paysFee: FrameSupportWeightsPays;
   }
 
-  /** @name FrameSupportWeightsDispatchClass (273) */
+  /** @name FrameSupportWeightsDispatchClass (276) */
   export interface FrameSupportWeightsDispatchClass extends Enum {
     readonly isNormal: boolean;
     readonly isOperational: boolean;
@@ -2201,14 +2213,14 @@
     readonly type: 'Normal' | 'Operational' | 'Mandatory';
   }
 
-  /** @name FrameSupportWeightsPays (274) */
+  /** @name FrameSupportWeightsPays (277) */
   export interface FrameSupportWeightsPays extends Enum {
     readonly isYes: boolean;
     readonly isNo: boolean;
     readonly type: 'Yes' | 'No';
   }
 
-  /** @name OrmlVestingModuleEvent (275) */
+  /** @name OrmlVestingModuleEvent (278) */
   export interface OrmlVestingModuleEvent extends Enum {
     readonly isVestingScheduleAdded: boolean;
     readonly asVestingScheduleAdded: {
@@ -2228,7 +2240,7 @@
     readonly type: 'VestingScheduleAdded' | 'Claimed' | 'VestingSchedulesUpdated';
   }
 
-  /** @name CumulusPalletXcmpQueueEvent (276) */
+  /** @name CumulusPalletXcmpQueueEvent (279) */
   export interface CumulusPalletXcmpQueueEvent extends Enum {
     readonly isSuccess: boolean;
     readonly asSuccess: Option<H256>;
@@ -2249,7 +2261,7 @@
     readonly type: 'Success' | 'Fail' | 'BadVersion' | 'BadFormat' | 'UpwardMessageSent' | 'XcmpMessageSent' | 'OverweightEnqueued' | 'OverweightServiced';
   }
 
-  /** @name PalletXcmEvent (277) */
+  /** @name PalletXcmEvent (280) */
   export interface PalletXcmEvent extends Enum {
     readonly isAttempted: boolean;
     readonly asAttempted: XcmV2TraitsOutcome;
@@ -2286,7 +2298,7 @@
     readonly type: 'Attempted' | 'Sent' | 'UnexpectedResponse' | 'ResponseReady' | 'Notified' | 'NotifyOverweight' | 'NotifyDispatchError' | 'NotifyDecodeFailed' | 'InvalidResponder' | 'InvalidResponderVersion' | 'ResponseTaken' | 'AssetsTrapped' | 'VersionChangeNotified' | 'SupportedVersionChanged' | 'NotifyTargetSendFail' | 'NotifyTargetMigrationFail';
   }
 
-  /** @name XcmV2TraitsOutcome (278) */
+  /** @name XcmV2TraitsOutcome (281) */
   export interface XcmV2TraitsOutcome extends Enum {
     readonly isComplete: boolean;
     readonly asComplete: u64;
@@ -2297,7 +2309,7 @@
     readonly type: 'Complete' | 'Incomplete' | 'Error';
   }
 
-  /** @name CumulusPalletXcmEvent (280) */
+  /** @name CumulusPalletXcmEvent (283) */
   export interface CumulusPalletXcmEvent extends Enum {
     readonly isInvalidFormat: boolean;
     readonly asInvalidFormat: U8aFixed;
@@ -2308,7 +2320,7 @@
     readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward';
   }
 
-  /** @name CumulusPalletDmpQueueEvent (281) */
+  /** @name CumulusPalletDmpQueueEvent (284) */
   export interface CumulusPalletDmpQueueEvent extends Enum {
     readonly isInvalidFormat: boolean;
     readonly asInvalidFormat: U8aFixed;
@@ -2325,7 +2337,7 @@
     readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward' | 'WeightExhausted' | 'OverweightEnqueued' | 'OverweightServiced';
   }
 
-  /** @name PalletUniqueRawEvent (282) */
+  /** @name PalletUniqueRawEvent (285) */
   export interface PalletUniqueRawEvent extends Enum {
     readonly isCollectionSponsorRemoved: boolean;
     readonly asCollectionSponsorRemoved: u32;
@@ -2350,7 +2362,7 @@
     readonly type: 'CollectionSponsorRemoved' | 'CollectionAdminAdded' | 'CollectionOwnedChanged' | 'CollectionSponsorSet' | 'SponsorshipConfirmed' | 'CollectionAdminRemoved' | 'AllowListAddressRemoved' | 'AllowListAddressAdded' | 'CollectionLimitSet' | 'CollectionPermissionSet';
   }
 
-  /** @name PalletUniqueSchedulerEvent (283) */
+  /** @name PalletUniqueSchedulerEvent (286) */
   export interface PalletUniqueSchedulerEvent extends Enum {
     readonly isScheduled: boolean;
     readonly asScheduled: {
@@ -2377,14 +2389,14 @@
     readonly type: 'Scheduled' | 'Canceled' | 'Dispatched' | 'CallLookupFailed';
   }
 
-  /** @name FrameSupportScheduleLookupError (285) */
+  /** @name FrameSupportScheduleLookupError (288) */
   export interface FrameSupportScheduleLookupError extends Enum {
     readonly isUnknown: boolean;
     readonly isBadFormat: boolean;
     readonly type: 'Unknown' | 'BadFormat';
   }
 
-  /** @name PalletCommonEvent (286) */
+  /** @name PalletCommonEvent (289) */
   export interface PalletCommonEvent extends Enum {
     readonly isCollectionCreated: boolean;
     readonly asCollectionCreated: ITuple<[u32, u8, AccountId32]>;
@@ -2411,14 +2423,14 @@
     readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'ItemCreated' | 'ItemDestroyed' | 'Transfer' | 'Approved' | 'CollectionPropertySet' | 'CollectionPropertyDeleted' | 'TokenPropertySet' | 'TokenPropertyDeleted' | 'PropertyPermissionSet';
   }
 
-  /** @name PalletStructureEvent (287) */
+  /** @name PalletStructureEvent (290) */
   export interface PalletStructureEvent extends Enum {
     readonly isExecuted: boolean;
     readonly asExecuted: Result<Null, SpRuntimeDispatchError>;
     readonly type: 'Executed';
   }
 
-  /** @name PalletRmrkCoreEvent (288) */
+  /** @name PalletRmrkCoreEvent (291) */
   export interface PalletRmrkCoreEvent extends Enum {
     readonly isCollectionCreated: boolean;
     readonly asCollectionCreated: {
@@ -2508,7 +2520,7 @@
     readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'IssuerChanged' | 'CollectionLocked' | 'NftMinted' | 'NftBurned' | 'NftSent' | 'NftAccepted' | 'NftRejected' | 'PropertySet' | 'ResourceAdded' | 'ResourceRemoval' | 'ResourceAccepted' | 'ResourceRemovalAccepted' | 'PrioritySet';
   }
 
-  /** @name PalletRmrkEquipEvent (289) */
+  /** @name PalletRmrkEquipEvent (292) */
   export interface PalletRmrkEquipEvent extends Enum {
     readonly isBaseCreated: boolean;
     readonly asBaseCreated: {
@@ -2518,7 +2530,7 @@
     readonly type: 'BaseCreated';
   }
 
-  /** @name PalletEvmEvent (290) */
+  /** @name PalletEvmEvent (293) */
   export interface PalletEvmEvent extends Enum {
     readonly isLog: boolean;
     readonly asLog: EthereumLog;
@@ -2537,21 +2549,21 @@
     readonly type: 'Log' | 'Created' | 'CreatedFailed' | 'Executed' | 'ExecutedFailed' | 'BalanceDeposit' | 'BalanceWithdraw';
   }
 
-  /** @name EthereumLog (291) */
+  /** @name EthereumLog (294) */
   export interface EthereumLog extends Struct {
     readonly address: H160;
     readonly topics: Vec<H256>;
     readonly data: Bytes;
   }
 
-  /** @name PalletEthereumEvent (292) */
+  /** @name PalletEthereumEvent (295) */
   export interface PalletEthereumEvent extends Enum {
     readonly isExecuted: boolean;
     readonly asExecuted: ITuple<[H160, H160, H256, EvmCoreErrorExitReason]>;
     readonly type: 'Executed';
   }
 
-  /** @name EvmCoreErrorExitReason (293) */
+  /** @name EvmCoreErrorExitReason (296) */
   export interface EvmCoreErrorExitReason extends Enum {
     readonly isSucceed: boolean;
     readonly asSucceed: EvmCoreErrorExitSucceed;
@@ -2564,7 +2576,7 @@
     readonly type: 'Succeed' | 'Error' | 'Revert' | 'Fatal';
   }
 
-  /** @name EvmCoreErrorExitSucceed (294) */
+  /** @name EvmCoreErrorExitSucceed (297) */
   export interface EvmCoreErrorExitSucceed extends Enum {
     readonly isStopped: boolean;
     readonly isReturned: boolean;
@@ -2572,7 +2584,7 @@
     readonly type: 'Stopped' | 'Returned' | 'Suicided';
   }
 
-  /** @name EvmCoreErrorExitError (295) */
+  /** @name EvmCoreErrorExitError (298) */
   export interface EvmCoreErrorExitError extends Enum {
     readonly isStackUnderflow: boolean;
     readonly isStackOverflow: boolean;
@@ -2593,13 +2605,13 @@
     readonly type: 'StackUnderflow' | 'StackOverflow' | 'InvalidJump' | 'InvalidRange' | 'DesignatedInvalid' | 'CallTooDeep' | 'CreateCollision' | 'CreateContractLimit' | 'OutOfOffset' | 'OutOfGas' | 'OutOfFund' | 'PcUnderflow' | 'CreateEmpty' | 'Other' | 'InvalidCode';
   }
 
-  /** @name EvmCoreErrorExitRevert (298) */
+  /** @name EvmCoreErrorExitRevert (301) */
   export interface EvmCoreErrorExitRevert extends Enum {
     readonly isReverted: boolean;
     readonly type: 'Reverted';
   }
 
-  /** @name EvmCoreErrorExitFatal (299) */
+  /** @name EvmCoreErrorExitFatal (302) */
   export interface EvmCoreErrorExitFatal extends Enum {
     readonly isNotSupported: boolean;
     readonly isUnhandledInterrupt: boolean;
@@ -2610,7 +2622,7 @@
     readonly type: 'NotSupported' | 'UnhandledInterrupt' | 'CallErrorAsFatal' | 'Other';
   }
 
-  /** @name FrameSystemPhase (300) */
+  /** @name FrameSystemPhase (303) */
   export interface FrameSystemPhase extends Enum {
     readonly isApplyExtrinsic: boolean;
     readonly asApplyExtrinsic: u32;
@@ -2619,27 +2631,27 @@
     readonly type: 'ApplyExtrinsic' | 'Finalization' | 'Initialization';
   }
 
-  /** @name FrameSystemLastRuntimeUpgradeInfo (302) */
+  /** @name FrameSystemLastRuntimeUpgradeInfo (305) */
   export interface FrameSystemLastRuntimeUpgradeInfo extends Struct {
     readonly specVersion: Compact<u32>;
     readonly specName: Text;
   }
 
-  /** @name FrameSystemLimitsBlockWeights (303) */
+  /** @name FrameSystemLimitsBlockWeights (306) */
   export interface FrameSystemLimitsBlockWeights extends Struct {
     readonly baseBlock: u64;
     readonly maxBlock: u64;
     readonly perClass: FrameSupportWeightsPerDispatchClassWeightsPerClass;
   }
 
-  /** @name FrameSupportWeightsPerDispatchClassWeightsPerClass (304) */
+  /** @name FrameSupportWeightsPerDispatchClassWeightsPerClass (307) */
   export interface FrameSupportWeightsPerDispatchClassWeightsPerClass extends Struct {
     readonly normal: FrameSystemLimitsWeightsPerClass;
     readonly operational: FrameSystemLimitsWeightsPerClass;
     readonly mandatory: FrameSystemLimitsWeightsPerClass;
   }
 
-  /** @name FrameSystemLimitsWeightsPerClass (305) */
+  /** @name FrameSystemLimitsWeightsPerClass (308) */
   export interface FrameSystemLimitsWeightsPerClass extends Struct {
     readonly baseExtrinsic: u64;
     readonly maxExtrinsic: Option<u64>;
@@ -2647,25 +2659,25 @@
     readonly reserved: Option<u64>;
   }
 
-  /** @name FrameSystemLimitsBlockLength (307) */
+  /** @name FrameSystemLimitsBlockLength (310) */
   export interface FrameSystemLimitsBlockLength extends Struct {
     readonly max: FrameSupportWeightsPerDispatchClassU32;
   }
 
-  /** @name FrameSupportWeightsPerDispatchClassU32 (308) */
+  /** @name FrameSupportWeightsPerDispatchClassU32 (311) */
   export interface FrameSupportWeightsPerDispatchClassU32 extends Struct {
     readonly normal: u32;
     readonly operational: u32;
     readonly mandatory: u32;
   }
 
-  /** @name FrameSupportWeightsRuntimeDbWeight (309) */
+  /** @name FrameSupportWeightsRuntimeDbWeight (312) */
   export interface FrameSupportWeightsRuntimeDbWeight extends Struct {
     readonly read: u64;
     readonly write: u64;
   }
 
-  /** @name SpVersionRuntimeVersion (310) */
+  /** @name SpVersionRuntimeVersion (313) */
   export interface SpVersionRuntimeVersion extends Struct {
     readonly specName: Text;
     readonly implName: Text;
@@ -2677,7 +2689,7 @@
     readonly stateVersion: u8;
   }
 
-  /** @name FrameSystemError (314) */
+  /** @name FrameSystemError (317) */
   export interface FrameSystemError extends Enum {
     readonly isInvalidSpecName: boolean;
     readonly isSpecVersionNeedsToIncrease: boolean;
@@ -2688,7 +2700,7 @@
     readonly type: 'InvalidSpecName' | 'SpecVersionNeedsToIncrease' | 'FailedToExtractRuntimeVersion' | 'NonDefaultComposite' | 'NonZeroRefCount' | 'CallFiltered';
   }
 
-  /** @name OrmlVestingModuleError (316) */
+  /** @name OrmlVestingModuleError (319) */
   export interface OrmlVestingModuleError extends Enum {
     readonly isZeroVestingPeriod: boolean;
     readonly isZeroVestingPeriodCount: boolean;
@@ -2699,21 +2711,21 @@
     readonly type: 'ZeroVestingPeriod' | 'ZeroVestingPeriodCount' | 'InsufficientBalanceToLock' | 'TooManyVestingSchedules' | 'AmountLow' | 'MaxVestingSchedulesExceeded';
   }
 
-  /** @name CumulusPalletXcmpQueueInboundChannelDetails (318) */
+  /** @name CumulusPalletXcmpQueueInboundChannelDetails (321) */
   export interface CumulusPalletXcmpQueueInboundChannelDetails extends Struct {
     readonly sender: u32;
     readonly state: CumulusPalletXcmpQueueInboundState;
     readonly messageMetadata: Vec<ITuple<[u32, PolkadotParachainPrimitivesXcmpMessageFormat]>>;
   }
 
-  /** @name CumulusPalletXcmpQueueInboundState (319) */
+  /** @name CumulusPalletXcmpQueueInboundState (322) */
   export interface CumulusPalletXcmpQueueInboundState extends Enum {
     readonly isOk: boolean;
     readonly isSuspended: boolean;
     readonly type: 'Ok' | 'Suspended';
   }
 
-  /** @name PolkadotParachainPrimitivesXcmpMessageFormat (322) */
+  /** @name PolkadotParachainPrimitivesXcmpMessageFormat (325) */
   export interface PolkadotParachainPrimitivesXcmpMessageFormat extends Enum {
     readonly isConcatenatedVersionedXcm: boolean;
     readonly isConcatenatedEncodedBlob: boolean;
@@ -2721,7 +2733,7 @@
     readonly type: 'ConcatenatedVersionedXcm' | 'ConcatenatedEncodedBlob' | 'Signals';
   }
 
-  /** @name CumulusPalletXcmpQueueOutboundChannelDetails (325) */
+  /** @name CumulusPalletXcmpQueueOutboundChannelDetails (328) */
   export interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct {
     readonly recipient: u32;
     readonly state: CumulusPalletXcmpQueueOutboundState;
@@ -2730,14 +2742,14 @@
     readonly lastIndex: u16;
   }
 
-  /** @name CumulusPalletXcmpQueueOutboundState (326) */
+  /** @name CumulusPalletXcmpQueueOutboundState (329) */
   export interface CumulusPalletXcmpQueueOutboundState extends Enum {
     readonly isOk: boolean;
     readonly isSuspended: boolean;
     readonly type: 'Ok' | 'Suspended';
   }
 
-  /** @name CumulusPalletXcmpQueueQueueConfigData (328) */
+  /** @name CumulusPalletXcmpQueueQueueConfigData (331) */
   export interface CumulusPalletXcmpQueueQueueConfigData extends Struct {
     readonly suspendThreshold: u32;
     readonly dropThreshold: u32;
@@ -2747,7 +2759,7 @@
     readonly xcmpMaxIndividualWeight: u64;
   }
 
-  /** @name CumulusPalletXcmpQueueError (330) */
+  /** @name CumulusPalletXcmpQueueError (333) */
   export interface CumulusPalletXcmpQueueError extends Enum {
     readonly isFailedToSend: boolean;
     readonly isBadXcmOrigin: boolean;
@@ -2757,7 +2769,7 @@
     readonly type: 'FailedToSend' | 'BadXcmOrigin' | 'BadXcm' | 'BadOverweightIndex' | 'WeightOverLimit';
   }
 
-  /** @name PalletXcmError (331) */
+  /** @name PalletXcmError (334) */
   export interface PalletXcmError extends Enum {
     readonly isUnreachable: boolean;
     readonly isSendFailure: boolean;
@@ -2775,29 +2787,29 @@
     readonly type: 'Unreachable' | 'SendFailure' | 'Filtered' | 'UnweighableMessage' | 'DestinationNotInvertible' | 'Empty' | 'CannotReanchor' | 'TooManyAssets' | 'InvalidOrigin' | 'BadVersion' | 'BadLocation' | 'NoSubscription' | 'AlreadySubscribed';
   }
 
-  /** @name CumulusPalletXcmError (332) */
+  /** @name CumulusPalletXcmError (335) */
   export type CumulusPalletXcmError = Null;
 
-  /** @name CumulusPalletDmpQueueConfigData (333) */
+  /** @name CumulusPalletDmpQueueConfigData (336) */
   export interface CumulusPalletDmpQueueConfigData extends Struct {
     readonly maxIndividual: u64;
   }
 
-  /** @name CumulusPalletDmpQueuePageIndexData (334) */
+  /** @name CumulusPalletDmpQueuePageIndexData (337) */
   export interface CumulusPalletDmpQueuePageIndexData extends Struct {
     readonly beginUsed: u32;
     readonly endUsed: u32;
     readonly overweightCount: u64;
   }
 
-  /** @name CumulusPalletDmpQueueError (337) */
+  /** @name CumulusPalletDmpQueueError (340) */
   export interface CumulusPalletDmpQueueError extends Enum {
     readonly isUnknown: boolean;
     readonly isOverLimit: boolean;
     readonly type: 'Unknown' | 'OverLimit';
   }
 
-  /** @name PalletUniqueError (341) */
+  /** @name PalletUniqueError (344) */
   export interface PalletUniqueError extends Enum {
     readonly isCollectionDecimalPointLimitExceeded: boolean;
     readonly isConfirmUnsetSponsorFail: boolean;
@@ -2805,7 +2817,7 @@
     readonly type: 'CollectionDecimalPointLimitExceeded' | 'ConfirmUnsetSponsorFail' | 'EmptyArgument';
   }
 
-  /** @name PalletUniqueSchedulerScheduledV3 (344) */
+  /** @name PalletUniqueSchedulerScheduledV3 (347) */
   export interface PalletUniqueSchedulerScheduledV3 extends Struct {
     readonly maybeId: Option<U8aFixed>;
     readonly priority: u8;
@@ -2814,7 +2826,7 @@
     readonly origin: OpalRuntimeOriginCaller;
   }
 
-  /** @name OpalRuntimeOriginCaller (345) */
+  /** @name OpalRuntimeOriginCaller (348) */
   export interface OpalRuntimeOriginCaller extends Enum {
     readonly isVoid: boolean;
     readonly isSystem: boolean;
@@ -2828,7 +2840,7 @@
     readonly type: 'Void' | 'System' | 'PolkadotXcm' | 'CumulusXcm' | 'Ethereum';
   }
 
-  /** @name FrameSupportDispatchRawOrigin (346) */
+  /** @name FrameSupportDispatchRawOrigin (349) */
   export interface FrameSupportDispatchRawOrigin extends Enum {
     readonly isRoot: boolean;
     readonly isSigned: boolean;
@@ -2837,7 +2849,7 @@
     readonly type: 'Root' | 'Signed' | 'None';
   }
 
-  /** @name PalletXcmOrigin (347) */
+  /** @name PalletXcmOrigin (350) */
   export interface PalletXcmOrigin extends Enum {
     readonly isXcm: boolean;
     readonly asXcm: XcmV1MultiLocation;
@@ -2846,7 +2858,7 @@
     readonly type: 'Xcm' | 'Response';
   }
 
-  /** @name CumulusPalletXcmOrigin (348) */
+  /** @name CumulusPalletXcmOrigin (351) */
   export interface CumulusPalletXcmOrigin extends Enum {
     readonly isRelay: boolean;
     readonly isSiblingParachain: boolean;
@@ -2854,17 +2866,17 @@
     readonly type: 'Relay' | 'SiblingParachain';
   }
 
-  /** @name PalletEthereumRawOrigin (349) */
+  /** @name PalletEthereumRawOrigin (352) */
   export interface PalletEthereumRawOrigin extends Enum {
     readonly isEthereumTransaction: boolean;
     readonly asEthereumTransaction: H160;
     readonly type: 'EthereumTransaction';
   }
 
-  /** @name SpCoreVoid (350) */
+  /** @name SpCoreVoid (353) */
   export type SpCoreVoid = Null;
 
-  /** @name PalletUniqueSchedulerError (351) */
+  /** @name PalletUniqueSchedulerError (354) */
   export interface PalletUniqueSchedulerError extends Enum {
     readonly isFailedToSchedule: boolean;
     readonly isNotFound: boolean;
@@ -2873,7 +2885,7 @@
     readonly type: 'FailedToSchedule' | 'NotFound' | 'TargetBlockNumberInPast' | 'RescheduleNoChange';
   }
 
-  /** @name UpDataStructsCollection (352) */
+  /** @name UpDataStructsCollection (355) */
   export interface UpDataStructsCollection extends Struct {
     readonly owner: AccountId32;
     readonly mode: UpDataStructsCollectionMode;
@@ -2886,7 +2898,7 @@
     readonly externalCollection: bool;
   }
 
-  /** @name UpDataStructsSponsorshipState (353) */
+  /** @name UpDataStructsSponsorshipState (356) */
   export interface UpDataStructsSponsorshipState extends Enum {
     readonly isDisabled: boolean;
     readonly isUnconfirmed: boolean;
@@ -2896,42 +2908,42 @@
     readonly type: 'Disabled' | 'Unconfirmed' | 'Confirmed';
   }
 
-  /** @name UpDataStructsProperties (354) */
+  /** @name UpDataStructsProperties (357) */
   export interface UpDataStructsProperties extends Struct {
     readonly map: UpDataStructsPropertiesMapBoundedVec;
     readonly consumedSpace: u32;
     readonly spaceLimit: u32;
   }
 
-  /** @name UpDataStructsPropertiesMapBoundedVec (355) */
+  /** @name UpDataStructsPropertiesMapBoundedVec (358) */
   export interface UpDataStructsPropertiesMapBoundedVec extends BTreeMap<Bytes, Bytes> {}
 
-  /** @name UpDataStructsPropertiesMapPropertyPermission (360) */
+  /** @name UpDataStructsPropertiesMapPropertyPermission (363) */
   export interface UpDataStructsPropertiesMapPropertyPermission extends BTreeMap<Bytes, UpDataStructsPropertyPermission> {}
 
-  /** @name UpDataStructsCollectionStats (367) */
+  /** @name UpDataStructsCollectionStats (370) */
   export interface UpDataStructsCollectionStats extends Struct {
     readonly created: u32;
     readonly destroyed: u32;
     readonly alive: u32;
   }
 
-  /** @name UpDataStructsTokenChild (368) */
+  /** @name UpDataStructsTokenChild (371) */
   export interface UpDataStructsTokenChild extends Struct {
     readonly token: u32;
     readonly collection: u32;
   }
 
-  /** @name PhantomTypeUpDataStructs (369) */
+  /** @name PhantomTypeUpDataStructs (372) */
   export interface PhantomTypeUpDataStructs extends Vec<ITuple<[UpDataStructsTokenData, UpDataStructsRpcCollection, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftNftInfo, RmrkTraitsResourceResourceInfo, RmrkTraitsPropertyPropertyInfo, RmrkTraitsBaseBaseInfo, RmrkTraitsPartPartType, RmrkTraitsTheme, RmrkTraitsNftNftChild]>> {}
 
-  /** @name UpDataStructsTokenData (371) */
+  /** @name UpDataStructsTokenData (374) */
   export interface UpDataStructsTokenData extends Struct {
     readonly properties: Vec<UpDataStructsProperty>;
     readonly owner: Option<PalletEvmAccountBasicCrossAccountIdRepr>;
   }
 
-  /** @name UpDataStructsRpcCollection (373) */
+  /** @name UpDataStructsRpcCollection (376) */
   export interface UpDataStructsRpcCollection extends Struct {
     readonly owner: AccountId32;
     readonly mode: UpDataStructsCollectionMode;
@@ -2946,7 +2958,7 @@
     readonly readOnly: bool;
   }
 
-  /** @name RmrkTraitsCollectionCollectionInfo (374) */
+  /** @name RmrkTraitsCollectionCollectionInfo (377) */
   export interface RmrkTraitsCollectionCollectionInfo extends Struct {
     readonly issuer: AccountId32;
     readonly metadata: Bytes;
@@ -2955,7 +2967,7 @@
     readonly nftsCount: u32;
   }
 
-  /** @name RmrkTraitsNftNftInfo (375) */
+  /** @name RmrkTraitsNftNftInfo (378) */
   export interface RmrkTraitsNftNftInfo extends Struct {
     readonly owner: RmrkTraitsNftAccountIdOrCollectionNftTuple;
     readonly royalty: Option<RmrkTraitsNftRoyaltyInfo>;
@@ -2964,13 +2976,13 @@
     readonly pending: bool;
   }
 
-  /** @name RmrkTraitsNftRoyaltyInfo (377) */
+  /** @name RmrkTraitsNftRoyaltyInfo (380) */
   export interface RmrkTraitsNftRoyaltyInfo extends Struct {
     readonly recipient: AccountId32;
     readonly amount: Permill;
   }
 
-  /** @name RmrkTraitsResourceResourceInfo (378) */
+  /** @name RmrkTraitsResourceResourceInfo (381) */
   export interface RmrkTraitsResourceResourceInfo extends Struct {
     readonly id: u32;
     readonly resource: RmrkTraitsResourceResourceTypes;
@@ -2978,37 +2990,26 @@
     readonly pendingRemoval: bool;
   }
 
-  /** @name RmrkTraitsResourceResourceTypes (379) */
-  export interface RmrkTraitsResourceResourceTypes extends Enum {
-    readonly isBasic: boolean;
-    readonly asBasic: RmrkTraitsResourceBasicResource;
-    readonly isComposable: boolean;
-    readonly asComposable: RmrkTraitsResourceComposableResource;
-    readonly isSlot: boolean;
-    readonly asSlot: RmrkTraitsResourceSlotResource;
-    readonly type: 'Basic' | 'Composable' | 'Slot';
-  }
-
-  /** @name RmrkTraitsPropertyPropertyInfo (380) */
+  /** @name RmrkTraitsPropertyPropertyInfo (382) */
   export interface RmrkTraitsPropertyPropertyInfo extends Struct {
     readonly key: Bytes;
     readonly value: Bytes;
   }
 
-  /** @name RmrkTraitsBaseBaseInfo (381) */
+  /** @name RmrkTraitsBaseBaseInfo (383) */
   export interface RmrkTraitsBaseBaseInfo extends Struct {
     readonly issuer: AccountId32;
     readonly baseType: Bytes;
     readonly symbol: Bytes;
   }
 
-  /** @name RmrkTraitsNftNftChild (382) */
+  /** @name RmrkTraitsNftNftChild (384) */
   export interface RmrkTraitsNftNftChild extends Struct {
     readonly collectionId: u32;
     readonly nftId: u32;
   }
 
-  /** @name PalletCommonError (384) */
+  /** @name PalletCommonError (386) */
   export interface PalletCommonError extends Enum {
     readonly isCollectionNotFound: boolean;
     readonly isMustBeTokenOwner: boolean;
@@ -3047,7 +3048,7 @@
     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 (386) */
+  /** @name PalletFungibleError (388) */
   export interface PalletFungibleError extends Enum {
     readonly isNotFungibleDataUsedToMintFungibleCollectionToken: boolean;
     readonly isFungibleItemsHaveNoId: boolean;
@@ -3057,12 +3058,12 @@
     readonly type: 'NotFungibleDataUsedToMintFungibleCollectionToken' | 'FungibleItemsHaveNoId' | 'FungibleItemsDontHaveData' | 'FungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';
   }
 
-  /** @name PalletRefungibleItemData (387) */
+  /** @name PalletRefungibleItemData (389) */
   export interface PalletRefungibleItemData extends Struct {
     readonly constData: Bytes;
   }
 
-  /** @name PalletRefungibleError (391) */
+  /** @name PalletRefungibleError (393) */
   export interface PalletRefungibleError extends Enum {
     readonly isNotRefungibleDataUsedToMintFungibleCollectionToken: boolean;
     readonly isWrongRefungiblePieces: boolean;
@@ -3071,12 +3072,12 @@
     readonly type: 'NotRefungibleDataUsedToMintFungibleCollectionToken' | 'WrongRefungiblePieces' | 'RefungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';
   }
 
-  /** @name PalletNonfungibleItemData (392) */
+  /** @name PalletNonfungibleItemData (394) */
   export interface PalletNonfungibleItemData extends Struct {
     readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;
   }
 
-  /** @name PalletNonfungibleError (394) */
+  /** @name PalletNonfungibleError (396) */
   export interface PalletNonfungibleError extends Enum {
     readonly isNotNonfungibleDataUsedToMintFungibleCollectionToken: boolean;
     readonly isNonfungibleItemsHaveNoAmount: boolean;
@@ -3084,7 +3085,7 @@
     readonly type: 'NotNonfungibleDataUsedToMintFungibleCollectionToken' | 'NonfungibleItemsHaveNoAmount' | 'CantBurnNftWithChildren';
   }
 
-  /** @name PalletStructureError (395) */
+  /** @name PalletStructureError (397) */
   export interface PalletStructureError extends Enum {
     readonly isOuroborosDetected: boolean;
     readonly isDepthLimit: boolean;
@@ -3093,12 +3094,13 @@
     readonly type: 'OuroborosDetected' | 'DepthLimit' | 'BreadthLimit' | 'TokenNotFound';
   }
 
-  /** @name PalletRmrkCoreError (396) */
+  /** @name PalletRmrkCoreError (398) */
   export interface PalletRmrkCoreError extends Enum {
     readonly isCorruptedCollectionType: boolean;
     readonly isNftTypeEncodeError: boolean;
     readonly isRmrkPropertyKeyIsTooLong: boolean;
     readonly isRmrkPropertyValueIsTooLong: boolean;
+    readonly isUnableToDecodeRmrkData: boolean;
     readonly isCollectionNotEmpty: boolean;
     readonly isNoAvailableCollectionId: boolean;
     readonly isNoAvailableNftId: boolean;
@@ -3111,10 +3113,10 @@
     readonly isCannotAcceptNonOwnedNft: boolean;
     readonly isCannotRejectNonOwnedNft: boolean;
     readonly isResourceNotPending: boolean;
-    readonly type: 'CorruptedCollectionType' | 'NftTypeEncodeError' | 'RmrkPropertyKeyIsTooLong' | 'RmrkPropertyValueIsTooLong' | 'CollectionNotEmpty' | 'NoAvailableCollectionId' | 'NoAvailableNftId' | 'CollectionUnknown' | 'NoPermission' | 'NonTransferable' | 'CollectionFullOrLocked' | 'ResourceDoesntExist' | 'CannotSendToDescendentOrSelf' | 'CannotAcceptNonOwnedNft' | 'CannotRejectNonOwnedNft' | 'ResourceNotPending';
+    readonly type: 'CorruptedCollectionType' | 'NftTypeEncodeError' | 'RmrkPropertyKeyIsTooLong' | 'RmrkPropertyValueIsTooLong' | 'UnableToDecodeRmrkData' | 'CollectionNotEmpty' | 'NoAvailableCollectionId' | 'NoAvailableNftId' | 'CollectionUnknown' | 'NoPermission' | 'NonTransferable' | 'CollectionFullOrLocked' | 'ResourceDoesntExist' | 'CannotSendToDescendentOrSelf' | 'CannotAcceptNonOwnedNft' | 'CannotRejectNonOwnedNft' | 'ResourceNotPending';
   }
 
-  /** @name PalletRmrkEquipError (398) */
+  /** @name PalletRmrkEquipError (400) */
   export interface PalletRmrkEquipError extends Enum {
     readonly isPermissionError: boolean;
     readonly isNoAvailableBaseId: boolean;
@@ -3124,7 +3126,7 @@
     readonly type: 'PermissionError' | 'NoAvailableBaseId' | 'NoAvailablePartId' | 'BaseDoesntExist' | 'NeedsDefaultThemeFirst';
   }
 
-  /** @name PalletEvmError (401) */
+  /** @name PalletEvmError (403) */
   export interface PalletEvmError extends Enum {
     readonly isBalanceLow: boolean;
     readonly isFeeOverflow: boolean;
@@ -3135,7 +3137,7 @@
     readonly type: 'BalanceLow' | 'FeeOverflow' | 'PaymentOverflow' | 'WithdrawFailed' | 'GasPriceTooLow' | 'InvalidNonce';
   }
 
-  /** @name FpRpcTransactionStatus (404) */
+  /** @name FpRpcTransactionStatus (406) */
   export interface FpRpcTransactionStatus extends Struct {
     readonly transactionHash: H256;
     readonly transactionIndex: u32;
@@ -3146,10 +3148,10 @@
     readonly logsBloom: EthbloomBloom;
   }
 
-  /** @name EthbloomBloom (406) */
+  /** @name EthbloomBloom (408) */
   export interface EthbloomBloom extends U8aFixed {}
 
-  /** @name EthereumReceiptReceiptV3 (408) */
+  /** @name EthereumReceiptReceiptV3 (410) */
   export interface EthereumReceiptReceiptV3 extends Enum {
     readonly isLegacy: boolean;
     readonly asLegacy: EthereumReceiptEip658ReceiptData;
@@ -3160,7 +3162,7 @@
     readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';
   }
 
-  /** @name EthereumReceiptEip658ReceiptData (409) */
+  /** @name EthereumReceiptEip658ReceiptData (411) */
   export interface EthereumReceiptEip658ReceiptData extends Struct {
     readonly statusCode: u8;
     readonly usedGas: U256;
@@ -3168,14 +3170,14 @@
     readonly logs: Vec<EthereumLog>;
   }
 
-  /** @name EthereumBlock (410) */
+  /** @name EthereumBlock (412) */
   export interface EthereumBlock extends Struct {
     readonly header: EthereumHeader;
     readonly transactions: Vec<EthereumTransactionTransactionV2>;
     readonly ommers: Vec<EthereumHeader>;
   }
 
-  /** @name EthereumHeader (411) */
+  /** @name EthereumHeader (413) */
   export interface EthereumHeader extends Struct {
     readonly parentHash: H256;
     readonly ommersHash: H256;
@@ -3194,24 +3196,24 @@
     readonly nonce: EthereumTypesHashH64;
   }
 
-  /** @name EthereumTypesHashH64 (412) */
+  /** @name EthereumTypesHashH64 (414) */
   export interface EthereumTypesHashH64 extends U8aFixed {}
 
-  /** @name PalletEthereumError (417) */
+  /** @name PalletEthereumError (419) */
   export interface PalletEthereumError extends Enum {
     readonly isInvalidSignature: boolean;
     readonly isPreLogExists: boolean;
     readonly type: 'InvalidSignature' | 'PreLogExists';
   }
 
-  /** @name PalletEvmCoderSubstrateError (418) */
+  /** @name PalletEvmCoderSubstrateError (420) */
   export interface PalletEvmCoderSubstrateError extends Enum {
     readonly isOutOfGas: boolean;
     readonly isOutOfFund: boolean;
     readonly type: 'OutOfGas' | 'OutOfFund';
   }
 
-  /** @name PalletEvmContractHelpersSponsoringModeT (419) */
+  /** @name PalletEvmContractHelpersSponsoringModeT (421) */
   export interface PalletEvmContractHelpersSponsoringModeT extends Enum {
     readonly isDisabled: boolean;
     readonly isAllowlisted: boolean;
@@ -3219,20 +3221,20 @@
     readonly type: 'Disabled' | 'Allowlisted' | 'Generous';
   }
 
-  /** @name PalletEvmContractHelpersError (421) */
+  /** @name PalletEvmContractHelpersError (423) */
   export interface PalletEvmContractHelpersError extends Enum {
     readonly isNoPermission: boolean;
     readonly type: 'NoPermission';
   }
 
-  /** @name PalletEvmMigrationError (422) */
+  /** @name PalletEvmMigrationError (424) */
   export interface PalletEvmMigrationError extends Enum {
     readonly isAccountNotEmpty: boolean;
     readonly isAccountIsNotMigrating: boolean;
     readonly type: 'AccountNotEmpty' | 'AccountIsNotMigrating';
   }
 
-  /** @name SpRuntimeMultiSignature (424) */
+  /** @name SpRuntimeMultiSignature (426) */
   export interface SpRuntimeMultiSignature extends Enum {
     readonly isEd25519: boolean;
     readonly asEd25519: SpCoreEd25519Signature;
@@ -3243,34 +3245,34 @@
     readonly type: 'Ed25519' | 'Sr25519' | 'Ecdsa';
   }
 
-  /** @name SpCoreEd25519Signature (425) */
+  /** @name SpCoreEd25519Signature (427) */
   export interface SpCoreEd25519Signature extends U8aFixed {}
 
-  /** @name SpCoreSr25519Signature (427) */
+  /** @name SpCoreSr25519Signature (429) */
   export interface SpCoreSr25519Signature extends U8aFixed {}
 
-  /** @name SpCoreEcdsaSignature (428) */
+  /** @name SpCoreEcdsaSignature (430) */
   export interface SpCoreEcdsaSignature extends U8aFixed {}
 
-  /** @name FrameSystemExtensionsCheckSpecVersion (431) */
+  /** @name FrameSystemExtensionsCheckSpecVersion (433) */
   export type FrameSystemExtensionsCheckSpecVersion = Null;
 
-  /** @name FrameSystemExtensionsCheckGenesis (432) */
+  /** @name FrameSystemExtensionsCheckGenesis (434) */
   export type FrameSystemExtensionsCheckGenesis = Null;
 
-  /** @name FrameSystemExtensionsCheckNonce (435) */
+  /** @name FrameSystemExtensionsCheckNonce (437) */
   export interface FrameSystemExtensionsCheckNonce extends Compact<u32> {}
 
-  /** @name FrameSystemExtensionsCheckWeight (436) */
+  /** @name FrameSystemExtensionsCheckWeight (438) */
   export type FrameSystemExtensionsCheckWeight = Null;
 
-  /** @name PalletTemplateTransactionPaymentChargeTransactionPayment (437) */
+  /** @name PalletTemplateTransactionPaymentChargeTransactionPayment (439) */
   export interface PalletTemplateTransactionPaymentChargeTransactionPayment extends Compact<u128> {}
 
-  /** @name OpalRuntimeRuntime (438) */
+  /** @name OpalRuntimeRuntime (440) */
   export type OpalRuntimeRuntime = Null;
 
-  /** @name PalletEthereumFakeTransactionFinalizer (439) */
+  /** @name PalletEthereumFakeTransactionFinalizer (441) */
   export type PalletEthereumFakeTransactionFinalizer = Null;
 
 } // declare module
modifiedtests/src/nesting/nest.test.tsdiffbeforeafterboth
--- a/tests/src/nesting/nest.test.ts
+++ b/tests/src/nesting/nest.test.ts
@@ -2,6 +2,7 @@
 import {tokenIdToAddress} from '../eth/util/helpers';
 import usingApi, {executeTransaction} from '../substrate/substrate-api';
 import {
+  addCollectionAdminExpectSuccess,
   addToAllowListExpectSuccess,
   createCollectionExpectSuccess,
   createItemExpectSuccess,
@@ -20,10 +21,11 @@
 
 let alice: IKeyringPair;
 let bob: IKeyringPair;
+let charlie: IKeyringPair;
 
-describe('Integration Test: Nesting', () => {
+describe('Integration Test: Composite nesting tests', () => {
   before(async () => {
-    await usingApi(async (api, privateKeyWrapper) => {
+    await usingApi(async (_, privateKeyWrapper) => {
       alice = privateKeyWrapper('//Alice');
       bob = privateKeyWrapper('//Bob');
     });
@@ -145,7 +147,79 @@
       ], 'Children contents check at deeper nesting');
     });
   });
+});
 
+describe('Integration Test: Various token type nesting', async () => {
+  before(async () => {
+    await usingApi(async (_, privateKeyWrapper) => {
+      alice = privateKeyWrapper('//Alice');
+      bob = privateKeyWrapper('//Bob');
+      charlie = privateKeyWrapper('//Charlie');
+    });
+  });
+
+  it('Admin (NFT): allows an Admin to nest a token', async () => {
+    await usingApi(async api => {
+      const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
+      await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {collectionAdmin: true}});
+      await addCollectionAdminExpectSuccess(alice, collection, bob.address);
+      const targetToken = await createItemExpectSuccess(alice, collection, 'NFT', charlie.address);
+
+      // Create a nested token
+      const nestedToken = await createItemExpectSuccess(bob, collection, 'NFT', {Ethereum: tokenIdToAddress(collection, targetToken)});
+      expect(await getTopmostTokenOwner(api, collection, nestedToken)).to.be.deep.equal({Substrate: charlie.address});
+      expect(await getTokenOwner(api, collection, nestedToken)).to.be.deep.equal({Ethereum: tokenIdToAddress(collection, targetToken).toLowerCase()});
+
+      // Create a token to be nested and nest
+      const newToken = await createItemExpectSuccess(bob, collection, 'NFT');
+      await transferExpectSuccess(collection, newToken, bob, {Ethereum: tokenIdToAddress(collection, targetToken)});
+      expect(await getTopmostTokenOwner(api, collection, newToken)).to.be.deep.equal({Substrate: charlie.address});
+      expect(await getTokenOwner(api, collection, newToken)).to.be.deep.equal({Ethereum: tokenIdToAddress(collection, targetToken).toLowerCase()});
+    });
+  });
+
+  it('Admin (NFT): Admin and Token Owner can operate together', async () => {
+    await usingApi(async api => {
+      const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
+      await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {tokenOwner: true, collectionAdmin: true}});
+      await addCollectionAdminExpectSuccess(alice, collection, bob.address);
+      const targetToken = await createItemExpectSuccess(alice, collection, 'NFT', charlie.address);
+
+      // Create a nested token by an administrator
+      const nestedToken = await createItemExpectSuccess(bob, collection, 'NFT', {Ethereum: tokenIdToAddress(collection, targetToken)});
+      expect(await getTopmostTokenOwner(api, collection, nestedToken)).to.be.deep.equal({Substrate: charlie.address});
+      expect(await getTokenOwner(api, collection, nestedToken)).to.be.deep.equal({Ethereum: tokenIdToAddress(collection, targetToken).toLowerCase()});
+
+      // Create a token and allow the owner to nest too
+      const newToken = await createItemExpectSuccess(alice, collection, 'NFT', charlie.address);
+      await transferExpectSuccess(collection, newToken, charlie, {Ethereum: tokenIdToAddress(collection, nestedToken)});
+      expect(await getTopmostTokenOwner(api, collection, newToken)).to.be.deep.equal({Substrate: charlie.address});
+      expect(await getTokenOwner(api, collection, newToken)).to.be.deep.equal({Ethereum: tokenIdToAddress(collection, nestedToken).toLowerCase()});
+    });
+  });
+
+  it('Admin (NFT): allows an Admin to nest a token (Restricted nesting)', async () => {
+    await usingApi(async api => {
+      const collectionA = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
+      await addCollectionAdminExpectSuccess(alice, collectionA, bob.address);
+      const collectionB = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
+      await addCollectionAdminExpectSuccess(alice, collectionB, bob.address);
+      await setCollectionPermissionsExpectSuccess(alice, collectionA, {nesting: {collectionAdmin: true, restricted:[collectionA, collectionB]}});
+      const targetToken = await createItemExpectSuccess(alice, collectionA, 'NFT', charlie.address);
+
+      // Create a nested token
+      const nestedToken = await createItemExpectSuccess(bob, collectionB, 'NFT', {Ethereum: tokenIdToAddress(collectionA, targetToken)});
+      expect(await getTopmostTokenOwner(api, collectionB, nestedToken)).to.be.deep.equal({Substrate: charlie.address});
+      expect(await getTokenOwner(api, collectionB, nestedToken)).to.be.deep.equal({Ethereum: tokenIdToAddress(collectionA, targetToken).toLowerCase()});
+
+      // Create a token to be nested and nest
+      const newToken = await createItemExpectSuccess(bob, collectionB, 'NFT');
+      await transferExpectSuccess(collectionB, newToken, bob, {Ethereum: tokenIdToAddress(collectionA, targetToken)});
+      expect(await getTopmostTokenOwner(api, collectionB, newToken)).to.be.deep.equal({Substrate: charlie.address});
+      expect(await getTokenOwner(api, collectionB, newToken)).to.be.deep.equal({Ethereum: tokenIdToAddress(collectionA, targetToken).toLowerCase()});
+    });
+  });
+
   // ---------- Non-Fungible ----------
 
   it('NFT: allows an Owner to nest/unnest their token', async () => {
@@ -248,7 +322,7 @@
       await expect(executeTransaction(api, alice, api.tx.unique.createItem(
         collectionRFT,
         targetAddress,
-        {ReFungible: {const_data: [], pieces: 100}},
+        {ReFungible: {pieces: 100}},
       ))).to.not.be.rejected;
 
       // Nest a new token
@@ -271,7 +345,7 @@
       await expect(executeTransaction(api, alice, api.tx.unique.createItem(
         collectionRFT,
         targetAddress,
-        {ReFungible: {const_data: [], pieces: 100}},
+        {ReFungible: {pieces: 100}},
       ))).to.not.be.rejected;
 
       // Nest a new token
@@ -283,7 +357,7 @@
 
 describe('Negative Test: Nesting', async() => {
   before(async () => {
-    await usingApi(async (api, privateKeyWrapper) => {
+    await usingApi(async (_, privateKeyWrapper) => {
       alice = privateKeyWrapper('//Alice');
       bob = privateKeyWrapper('//Bob');
     });
@@ -314,13 +388,121 @@
       await expect(executeTransaction(api, alice, api.tx.unique.createItem(
         collection,
         {Ethereum: tokenIdToAddress(collection, prevToken)},
-          {nft: {const_data: [], variable_data: []}} as any,
+          {nft: {}} as any,
       )), 'while creating nested token').to.be.rejectedWith(/^structure\.DepthLimit$/);
 
       expect(await getTopmostTokenOwner(api, collection, prevToken)).to.be.deep.equal({Substrate: alice.address});
     });
   });
 
+  // ---------- Admin ------------
+
+  it('Admin (NFT): disallows an Admin to operate nesting when only TokenOwner is allowed', async () => {
+    await usingApi(async api => {
+      const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
+      await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {tokenOwner: true}});
+      await addCollectionAdminExpectSuccess(alice, collection, bob.address);
+      const targetToken = await createItemExpectSuccess(alice, collection, 'NFT');
+
+      // Try to create a nested token as collection admin when it's disallowed
+      await expect(executeTransaction(api, bob, api.tx.unique.createItem(
+        collection,
+        {Ethereum: tokenIdToAddress(collection, targetToken)},
+          {nft: {}} as any,
+      )), 'while creating nested token').to.be.rejectedWith(/common\.UserIsNotAllowedToNest/);
+
+      // Try to create and nest a token in the wrong collection
+      const newToken = await createItemExpectSuccess(bob, collection, 'NFT');
+      await expect(executeTransaction(
+        api, 
+        bob, 
+        api.tx.unique.transfer({Ethereum: tokenIdToAddress(collection, targetToken)}, collection, newToken, 1),
+      ), 'while nesting new token').to.be.rejectedWith(/common\.UserIsNotAllowedToNest/);
+      expect(await getTokenOwner(api, collection, newToken)).to.be.deep.equal({Substrate: bob.address});
+    });
+  });
+
+  it('Admin (NFT): disallows a Token Owner to operate nesting when only Admin is allowed', async () => {
+    await usingApi(async api => {
+      const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
+      await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {collectionAdmin: true}});
+      await addToAllowListExpectSuccess(alice, collection, bob.address);
+      await enableAllowListExpectSuccess(alice, collection);
+      await enablePublicMintingExpectSuccess(alice, collection);
+      const targetToken = await createItemExpectSuccess(alice, collection, 'NFT');
+
+      // Try to create a nested token as collection admin when it's disallowed
+      await expect(executeTransaction(api, bob, api.tx.unique.createItem(
+        collection,
+        {Ethereum: tokenIdToAddress(collection, targetToken)},
+          {nft: {}} as any,
+      )), 'while creating nested token').to.be.rejectedWith(/common\.AddressNotInAllowlist/); 
+
+      // Try to create and nest a token in the wrong collection
+      const newToken = await createItemExpectSuccess(bob, collection, 'NFT');
+      await expect(executeTransaction(
+        api, 
+        bob, 
+        api.tx.unique.transfer({Ethereum: tokenIdToAddress(collection, targetToken)}, collection, newToken, 1),
+      ), 'while nesting new token').to.be.rejectedWith(/common\.AddressNotInAllowlist/);
+      expect(await getTokenOwner(api, collection, newToken)).to.be.deep.equal({Substrate: bob.address});
+    });
+  });
+
+  it('Admin (NFT): disallows an Admin to nest and unnest someone else\'s token', async () => {
+    await usingApi(async api => {
+      const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
+      await setCollectionPermissionsExpectSuccess(alice, collection, {nesting: {collectionAdmin: true}});
+
+      await addToAllowListExpectSuccess(alice, collection, bob.address);
+      await enableAllowListExpectSuccess(alice, collection);
+      await enablePublicMintingExpectSuccess(alice, collection);
+
+      // Create a token to attempt to be nested into
+      const targetToken = await createItemExpectSuccess(bob, collection, 'NFT');
+      const targetAddress = {Ethereum: tokenIdToAddress(collection, targetToken).toLowerCase()};
+
+      // Try to nest somebody else's token
+      const newToken = await createItemExpectSuccess(bob, collection, 'NFT');
+      await expect(executeTransaction(
+        api, 
+        alice, 
+        api.tx.unique.transfer(targetAddress, collection, newToken, 1),
+      ), 'while nesting another\'s token token').to.be.rejectedWith(/common\.AddressNotInAllowlist/);
+      expect(await getTokenOwner(api, collection, newToken)).to.be.deep.equal({Substrate: bob.address});
+
+      // Nest a token as admin and try to unnest it, now belonging to someone else
+      const nestedToken = await createItemExpectSuccess(alice, collection, 'NFT', targetAddress);
+      await expect(executeTransaction(
+        api, 
+        alice, 
+        api.tx.unique.transferFrom(targetAddress, normalizeAccountId(alice), collection, nestedToken, 1),
+      ), 'while unnesting another\'s token').to.be.rejectedWith(/common\.AddressNotInAllowlist/);
+      expect(await getTokenOwner(api, collection, nestedToken)).to.be.deep.equal(targetAddress);
+      expect(await getTopmostTokenOwner(api, collection, nestedToken)).to.be.deep.equal({Substrate: bob.address});
+    });
+  });
+
+  it('Admin (NFT): disallows an Admin to nest a token from an unlisted collection (Restricted nesting)', async () => {
+    await usingApi(async api => {
+      const collectionA = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
+      const collectionB = await createCollectionExpectSuccess({mode: {type: 'NFT'}});
+      await setCollectionPermissionsExpectSuccess(alice, collectionA, {nesting: {collectionAdmin: true, restricted:[collectionA]}});
+
+      // Create a token to attempt to be nested into
+      const targetToken = await createItemExpectSuccess(alice, collectionA, 'NFT');
+
+      // Try to create and nest a token in the wrong collection
+      const newToken = await createItemExpectSuccess(alice, collectionB, 'NFT');
+      await expect(executeTransaction(
+        api, 
+        alice, 
+        api.tx.unique.transfer({Ethereum: tokenIdToAddress(collectionA, targetToken)}, collectionB, newToken, 1),
+      ), 'while nesting a foreign token').to.be.rejectedWith(/common\.SourceCollectionIsNotAllowedToNest/);
+      expect(await getTokenOwner(api, collectionB, newToken)).to.be.deep.equal({Substrate: alice.address});
+    });
+  });
+
   // ---------- Non-Fungible ----------
 
   it('NFT: disallows to nest token if nesting is disabled', async () => {
@@ -333,7 +515,7 @@
       await expect(executeTransaction(api, alice, api.tx.unique.createItem(
         collection,
         {Ethereum: tokenIdToAddress(collection, targetToken)},
-          {nft: {const_data: [], variable_data: []}} as any,
+          {nft: {}} as any,
       )), 'while creating nested token').to.be.rejectedWith(/^common\.UserIsNotAllowedToNest$/);
 
       // Create a token to be nested
@@ -361,7 +543,7 @@
       await expect(executeTransaction(api, alice, api.tx.unique.createItem(
         collection,
         {Ethereum: tokenIdToAddress(collection, targetToken)},
-          {nft: {const_data: [], variable_data: []}} as any,
+          {nft: {}} as any,
       )), 'while creating nested token').to.be.rejectedWith(/common\.UserIsNotAllowedToNest/);
 
       // Try to create and nest a token in the wrong collection
@@ -387,7 +569,7 @@
       await expect(executeTransaction(api, alice, api.tx.unique.createItem(
         collection,
         {Ethereum: tokenIdToAddress(collection, targetToken)},
-          {nft: {const_data: [], variable_data: []}} as any,
+          {nft: {}} as any,
       )), 'while creating nested token').to.be.rejectedWith(/common\.UserIsNotAllowedToNest/);
 
       // Try to create and nest a token in the wrong collection
@@ -409,7 +591,7 @@
       await expect(executeTransaction(api, alice, api.tx.unique.createItem(
         collection,
         {Ethereum: tokenIdToAddress(collection, targetToken)},
-          {nft: {const_data: [], variable_data: []}} as any,
+          {nft: {}} as any,
       )), 'while creating nested token').to.be.rejectedWith(/common\.SourceCollectionIsNotAllowedToNest/);
 
       // Try to create and nest a token in the wrong collection
@@ -543,7 +725,7 @@
       await expect(executeTransaction(api, alice, api.tx.unique.createItem(
         collectionRFT,
         targetAddress,
-        {ReFungible: {const_data: [], pieces: 100}},
+        {ReFungible: {pieces: 100}},
       )), 'while creating a nested token').to.be.rejectedWith(/^common\.UserIsNotAllowedToNest$/);
 
       // Create a token to be nested
@@ -579,7 +761,7 @@
       await expect(executeTransaction(api, alice, api.tx.unique.createItem(
         collectionRFT,
         targetAddress,
-        {ReFungible: {const_data: [], pieces: 100}},
+        {ReFungible: {pieces: 100}},
       )), 'while creating a nested token').to.be.rejectedWith(/common\.UserIsNotAllowedToNest/);
 
       // Try to create and nest a token in the wrong collection
@@ -606,7 +788,7 @@
       await expect(executeTransaction(api, alice, api.tx.unique.createItem(
         collectionRFT,
         targetAddress,
-        {ReFungible: {const_data: [], pieces: 100}},
+        {ReFungible: {pieces: 100}},
       )), 'while creating a nested token').to.be.rejectedWith(/common\.UserIsNotAllowedToNest/);
 
       // Try to create and nest a token in the wrong collection
@@ -630,7 +812,7 @@
       await expect(executeTransaction(api, alice, api.tx.unique.createItem(
         collectionRFT,
         targetAddress,
-        {ReFungible: {const_data: [], pieces: 100}},
+        {ReFungible: {pieces: 100}},
       )), 'while creating a nested token').to.be.rejectedWith(/common\.SourceCollectionIsNotAllowedToNest/);
 
       // Try to create and nest a token in the wrong collection