difftreelog
Merge remote-tracking branch 'origin/feature/fractionalizer-contract' into develop
in: master
50 files changed
pallets/common/src/erc.rsdiffbeforeafterboth--- a/pallets/common/src/erc.rs
+++ b/pallets/common/src/erc.rs
@@ -25,7 +25,8 @@
use pallet_evm_coder_substrate::dispatch_to_evm;
use sp_std::vec::Vec;
use up_data_structs::{
- Property, SponsoringRateLimit, OwnerRestrictedSet, AccessMode, CollectionPermissions,
+ AccessMode, CollectionMode, CollectionPermissions, OwnerRestrictedSet, Property,
+ SponsoringRateLimit,
};
use alloc::format;
@@ -408,6 +409,28 @@
save(self)
}
+
+ /// Check that account is the owner or admin of the collection
+ ///
+ /// @param user account to verify
+ /// @return "true" if account is the owner or admin
+ fn verify_owner_or_admin(&self, user: address) -> Result<bool> {
+ Ok(check_is_owner_or_admin(user, self)
+ .map(|_| true)
+ .unwrap_or(false))
+ }
+
+ /// Returns collection type
+ ///
+ /// @return `Fungible` or `NFT` or `ReFungible`
+ fn unique_collection_type(&mut self) -> Result<string> {
+ let mode = match self.collection.mode {
+ CollectionMode::Fungible(_) => "Fungible",
+ CollectionMode::NFT => "NFT",
+ CollectionMode::ReFungible => "ReFungible",
+ };
+ Ok(mode.into())
+ }
}
fn check_is_owner_or_admin<T: Config>(
@@ -462,6 +485,11 @@
pub fn suffix() -> up_data_structs::PropertyKey {
property_key_from_bytes(b"suffix").expect(EXPECT_CONVERT_ERROR)
}
+
+ /// Key "parentNft".
+ pub fn parent_nft() -> up_data_structs::PropertyKey {
+ property_key_from_bytes(b"parentNft").expect(EXPECT_CONVERT_ERROR)
+ }
}
/// Values.
pallets/common/src/lib.rsdiffbeforeafterboth--- a/pallets/common/src/lib.rs
+++ b/pallets/common/src/lib.rs
@@ -1113,6 +1113,26 @@
sender: &T::CrossAccountId,
property_permission: PropertyKeyPermission,
) -> DispatchResult {
+ Self::set_scoped_property_permission(
+ collection,
+ sender,
+ PropertyScope::None,
+ property_permission,
+ )
+ }
+
+ /// Set collection property permission with scope.
+ ///
+ /// * `collection` - Collection handler.
+ /// * `sender` - The owner or administrator of the collection.
+ /// * `scope` - Property scope.
+ /// * `property_permission` - Property permission.
+ pub fn set_scoped_property_permission(
+ collection: &CollectionHandle<T>,
+ sender: &T::CrossAccountId,
+ scope: PropertyScope,
+ property_permission: PropertyKeyPermission,
+ ) -> DispatchResult {
collection.check_is_owner_or_admin(sender)?;
let all_permissions = CollectionPropertyPermissions::<T>::get(collection.id);
@@ -1126,7 +1146,11 @@
CollectionPropertyPermissions::<T>::try_mutate(collection.id, |permissions| {
let property_permission = property_permission.clone();
- permissions.try_set(property_permission.key, property_permission.permission)
+ permissions.try_scoped_set(
+ scope,
+ property_permission.key,
+ property_permission.permission,
+ )
})
.map_err(<Error<T>>::from)?;
@@ -1149,8 +1173,29 @@
sender: &T::CrossAccountId,
property_permissions: Vec<PropertyKeyPermission>,
) -> DispatchResult {
+ Self::set_scoped_token_property_permissions(
+ collection,
+ sender,
+ PropertyScope::None,
+ property_permissions,
+ )
+ }
+
+ /// Set token property permission with scope.
+ ///
+ /// * `collection` - Collection handler.
+ /// * `sender` - The owner or administrator of the collection.
+ /// * `scope` - Property scope.
+ /// * `property_permissions` - Property permissions.
+ #[transactional]
+ pub fn set_scoped_token_property_permissions(
+ collection: &CollectionHandle<T>,
+ sender: &T::CrossAccountId,
+ scope: PropertyScope,
+ property_permissions: Vec<PropertyKeyPermission>,
+ ) -> DispatchResult {
for prop_pemission in property_permissions {
- Self::set_property_permission(collection, sender, prop_pemission)?;
+ Self::set_scoped_property_permission(collection, sender, scope, prop_pemission)?;
}
Ok(())
@@ -1430,6 +1475,9 @@
.saturating_mul(max_selfs.max(1) as u64)
.saturating_add(Self::burn_recursively_breadth_raw(max_breadth))
}
+
+ /// The price of retrieving token owner
+ fn token_owner() -> Weight;
}
/// Weight info extension trait for refungible pallet.
@@ -1568,7 +1616,7 @@
///
/// * `sender` - Must be either the owner of the token or its admin.
/// * `token_id` - The token for which the properties are being set.
- /// * `properties` - Properties to be set.
+ /// * `property_permissions` - Property permissions to be set.
/// * `budget` - Budget for setting properties.
fn set_token_property_permissions(
&self,
pallets/fungible/src/common.rsdiffbeforeafterboth--- a/pallets/fungible/src/common.rs
+++ b/pallets/fungible/src/common.rs
@@ -103,6 +103,10 @@
// Fungible tokens can't have children
0
}
+
+ fn token_owner() -> Weight {
+ 0
+ }
}
/// Implementation of `CommonCollectionOperations` for `FungibleHandle`. It wraps FungibleHandle Pallete
pallets/fungible/src/stubs/UniqueFungible.rawdiffbeforeafterbothbinary blob — no preview
pallets/fungible/src/stubs/UniqueFungible.soldiffbeforeafterboth--- a/pallets/fungible/src/stubs/UniqueFungible.sol
+++ b/pallets/fungible/src/stubs/UniqueFungible.sol
@@ -31,19 +31,7 @@
);
}
-// Selector: 79cc6790
-contract ERC20UniqueExtensions is Dummy, ERC165 {
- // Selector: burnFrom(address,uint256) 79cc6790
- function burnFrom(address from, uint256 amount) public returns (bool) {
- require(false, stub_error);
- from;
- amount;
- dummy = 0;
- return false;
- }
-}
-
-// Selector: 7d9262e6
+// Selector: 6cf113cd
contract Collection is Dummy, ERC165 {
// Set collection property.
//
@@ -268,6 +256,42 @@
mode;
dummy = 0;
}
+
+ // Check that account is the owner or admin of the collection
+ //
+ // @param user account to verify
+ // @return "true" if account is the owner or admin
+ //
+ // Selector: verifyOwnerOrAdmin(address) c2282493
+ function verifyOwnerOrAdmin(address user) public view returns (bool) {
+ require(false, stub_error);
+ user;
+ dummy;
+ return false;
+ }
+
+ // Returns collection type
+ //
+ // @return `Fungible` or `NFT` or `ReFungible`
+ //
+ // Selector: uniqueCollectionType() d34b55b8
+ function uniqueCollectionType() public returns (string memory) {
+ require(false, stub_error);
+ dummy = 0;
+ return "";
+ }
+}
+
+// Selector: 79cc6790
+contract ERC20UniqueExtensions is Dummy, ERC165 {
+ // Selector: burnFrom(address,uint256) 79cc6790
+ function burnFrom(address from, uint256 amount) public returns (bool) {
+ require(false, stub_error);
+ from;
+ amount;
+ dummy = 0;
+ return false;
+ }
}
// Selector: 942e8b22
pallets/nonfungible/src/benchmarking.rsdiffbeforeafterboth--- a/pallets/nonfungible/src/benchmarking.rs
+++ b/pallets/nonfungible/src/benchmarking.rs
@@ -17,11 +17,14 @@
use super::*;
use crate::{Pallet, Config, NonfungibleHandle};
-use sp_std::prelude::*;
-use pallet_common::benchmarking::{create_collection_raw, property_key, property_value};
use frame_benchmarking::{benchmarks, account};
+use pallet_common::{
+ bench_init,
+ benchmarking::{create_collection_raw, property_key, property_value},
+ CommonCollectionOperations,
+};
+use sp_std::prelude::*;
use up_data_structs::{CollectionMode, MAX_ITEMS_PER_BATCH, MAX_PROPERTIES_PER_ITEM, budget::Unlimited};
-use pallet_common::bench_init;
const SEED: u32 = 1;
@@ -208,4 +211,13 @@
<Pallet<T>>::set_token_properties(&collection, &owner, item, props.into_iter(), false, &Unlimited)?;
let to_delete = (0..b).map(|k| property_key(k as usize)).collect::<Vec<_>>();
}: {<Pallet<T>>::delete_token_properties(&collection, &owner, item, to_delete.into_iter(), &Unlimited)?}
+
+ token_owner {
+ bench_init!{
+ owner: sub; collection: collection(owner);
+ owner: cross_from_sub;
+ };
+ let item = create_max_item(&collection, &owner, owner.clone())?;
+
+ }: {collection.token_owner(item)}
}
pallets/nonfungible/src/common.rsdiffbeforeafterboth--- a/pallets/nonfungible/src/common.rs
+++ b/pallets/nonfungible/src/common.rs
@@ -118,6 +118,10 @@
<SelfWeightOf<T>>::burn_recursively_breadth_plus_self_plus_self_per_each_raw(amount)
.saturating_sub(Self::burn_recursively_self_raw().saturating_mul(amount as u64 + 1))
}
+
+ fn token_owner() -> Weight {
+ <SelfWeightOf<T>>::token_owner()
+ }
}
fn map_create_data<T: Config>(
pallets/nonfungible/src/lib.rsdiffbeforeafterboth--- a/pallets/nonfungible/src/lib.rs
+++ b/pallets/nonfungible/src/lib.rs
@@ -784,6 +784,23 @@
<PalletCommon<T>>::set_token_property_permissions(collection, sender, property_permissions)
}
+ /// Set property permissions for the token with scope.
+ ///
+ /// Sender should be the owner or admin of token's collection.
+ pub fn set_scoped_token_property_permissions(
+ collection: &CollectionHandle<T>,
+ sender: &T::CrossAccountId,
+ scope: PropertyScope,
+ property_permissions: Vec<PropertyKeyPermission>,
+ ) -> DispatchResult {
+ <PalletCommon<T>>::set_scoped_token_property_permissions(
+ collection,
+ sender,
+ scope,
+ property_permissions,
+ )
+ }
+
/// Set property permissions for the collection.
///
/// Sender should be the owner or admin of the collection.
pallets/nonfungible/src/stubs/UniqueNFT.rawdiffbeforeafterbothbinary blob — no preview
pallets/nonfungible/src/stubs/UniqueNFT.soldiffbeforeafterboth--- a/pallets/nonfungible/src/stubs/UniqueNFT.sol
+++ b/pallets/nonfungible/src/stubs/UniqueNFT.sol
@@ -373,49 +373,7 @@
}
}
-// Selector: 780e9d63
-contract ERC721Enumerable is Dummy, ERC165 {
- // @notice Enumerate valid NFTs
- // @param index A counter less than `totalSupply()`
- // @return The token identifier for the `index`th NFT,
- // (sort order not specified)
- //
- // Selector: tokenByIndex(uint256) 4f6ccce7
- function tokenByIndex(uint256 index) public view returns (uint256) {
- require(false, stub_error);
- index;
- dummy;
- return 0;
- }
-
- // @dev Not implemented
- //
- // Selector: tokenOfOwnerByIndex(address,uint256) 2f745c59
- function tokenOfOwnerByIndex(address owner, uint256 index)
- public
- view
- returns (uint256)
- {
- require(false, stub_error);
- owner;
- index;
- dummy;
- return 0;
- }
-
- // @notice Count NFTs tracked by this contract
- // @return A count of valid NFTs tracked by this contract, where each one of
- // them has an assigned and queryable owner not equal to the zero address
- //
- // Selector: totalSupply() 18160ddd
- function totalSupply() public view returns (uint256) {
- require(false, stub_error);
- dummy;
- return 0;
- }
-}
-
-// Selector: 7d9262e6
+// Selector: 6cf113cd
contract Collection is Dummy, ERC165 {
// Set collection property.
//
@@ -640,6 +598,72 @@
mode;
dummy = 0;
}
+
+ // Check that account is the owner or admin of the collection
+ //
+ // @param user account to verify
+ // @return "true" if account is the owner or admin
+ //
+ // Selector: verifyOwnerOrAdmin(address) c2282493
+ function verifyOwnerOrAdmin(address user) public view returns (bool) {
+ require(false, stub_error);
+ user;
+ dummy;
+ return false;
+ }
+
+ // Returns collection type
+ //
+ // @return `Fungible` or `NFT` or `ReFungible`
+ //
+ // Selector: uniqueCollectionType() d34b55b8
+ function uniqueCollectionType() public returns (string memory) {
+ require(false, stub_error);
+ dummy = 0;
+ return "";
+ }
+}
+
+// Selector: 780e9d63
+contract ERC721Enumerable is Dummy, ERC165 {
+ // @notice Enumerate valid NFTs
+ // @param index A counter less than `totalSupply()`
+ // @return The token identifier for the `index`th NFT,
+ // (sort order not specified)
+ //
+ // Selector: tokenByIndex(uint256) 4f6ccce7
+ function tokenByIndex(uint256 index) public view returns (uint256) {
+ require(false, stub_error);
+ index;
+ dummy;
+ return 0;
+ }
+
+ // @dev Not implemented
+ //
+ // Selector: tokenOfOwnerByIndex(address,uint256) 2f745c59
+ function tokenOfOwnerByIndex(address owner, uint256 index)
+ public
+ view
+ returns (uint256)
+ {
+ require(false, stub_error);
+ owner;
+ index;
+ dummy;
+ return 0;
+ }
+
+ // @notice Count NFTs tracked by this contract
+ // @return A count of valid NFTs tracked by this contract, where each one of
+ // them has an assigned and queryable owner not equal to the zero address
+ //
+ // Selector: totalSupply() 18160ddd
+ function totalSupply() public view returns (uint256) {
+ require(false, stub_error);
+ dummy;
+ return 0;
+ }
}
// Selector: d74d154f
pallets/nonfungible/src/weights.rsdiffbeforeafterboth--- a/pallets/nonfungible/src/weights.rs
+++ b/pallets/nonfungible/src/weights.rs
@@ -3,7 +3,7 @@
//! Autogenerated weights for pallet_nonfungible
//!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2022-07-20, STEPS: `50`, REPEAT: 80, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2022-08-01, STEPS: `50`, REPEAT: 80, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: None, DB CACHE: 1024
// Executed Command:
@@ -46,6 +46,7 @@
fn set_token_property_permissions(b: u32, ) -> Weight;
fn set_token_properties(b: u32, ) -> Weight;
fn delete_token_properties(b: u32, ) -> Weight;
+ fn token_owner() -> Weight;
}
/// Weights for pallet_nonfungible using the Substrate node and recommended hardware.
@@ -56,7 +57,7 @@
// Storage: Nonfungible TokenData (r:0 w:1)
// Storage: Nonfungible Owned (r:0 w:1)
fn create_item() -> Weight {
- (20_328_000 as Weight)
+ (20_909_000 as Weight)
.saturating_add(T::DbWeight::get().reads(2 as Weight))
.saturating_add(T::DbWeight::get().writes(4 as Weight))
}
@@ -65,9 +66,9 @@
// Storage: Nonfungible TokenData (r:0 w:4)
// Storage: Nonfungible Owned (r:0 w:4)
fn create_multiple_items(b: u32, ) -> Weight {
- (10_134_000 as Weight)
- // Standard Error: 3_000
- .saturating_add((4_927_000 as Weight).saturating_mul(b as Weight))
+ (12_601_000 as Weight)
+ // Standard Error: 1_000
+ .saturating_add((4_920_000 as Weight).saturating_mul(b as Weight))
.saturating_add(T::DbWeight::get().reads(2 as Weight))
.saturating_add(T::DbWeight::get().writes(2 as Weight))
.saturating_add(T::DbWeight::get().writes((2 as Weight).saturating_mul(b as Weight)))
@@ -77,9 +78,9 @@
// Storage: Nonfungible TokenData (r:0 w:4)
// Storage: Nonfungible Owned (r:0 w:4)
fn create_multiple_items_ex(b: u32, ) -> Weight {
- (5_710_000 as Weight)
- // Standard Error: 4_000
- .saturating_add((7_578_000 as Weight).saturating_mul(b as Weight))
+ (0 as Weight)
+ // Standard Error: 3_000
+ .saturating_add((7_734_000 as Weight).saturating_mul(b as Weight))
.saturating_add(T::DbWeight::get().reads(1 as Weight))
.saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(b as Weight)))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
@@ -93,7 +94,7 @@
// Storage: Nonfungible Owned (r:0 w:1)
// Storage: Nonfungible TokenProperties (r:0 w:1)
fn burn_item() -> Weight {
- (28_433_000 as Weight)
+ (29_746_000 as Weight)
.saturating_add(T::DbWeight::get().reads(5 as Weight))
.saturating_add(T::DbWeight::get().writes(5 as Weight))
}
@@ -105,7 +106,7 @@
// Storage: Nonfungible Owned (r:0 w:1)
// Storage: Nonfungible TokenProperties (r:0 w:1)
fn burn_recursively_self_raw() -> Weight {
- (34_435_000 as Weight)
+ (36_077_000 as Weight)
.saturating_add(T::DbWeight::get().reads(5 as Weight))
.saturating_add(T::DbWeight::get().writes(5 as Weight))
}
@@ -119,8 +120,8 @@
// Storage: Common CollectionById (r:1 w:0)
fn burn_recursively_breadth_plus_self_plus_self_per_each_raw(b: u32, ) -> Weight {
(0 as Weight)
- // Standard Error: 1_539_000
- .saturating_add((304_456_000 as Weight).saturating_mul(b as Weight))
+ // Standard Error: 1_605_000
+ .saturating_add((312_391_000 as Weight).saturating_mul(b as Weight))
.saturating_add(T::DbWeight::get().reads(7 as Weight))
.saturating_add(T::DbWeight::get().reads((4 as Weight).saturating_mul(b as Weight)))
.saturating_add(T::DbWeight::get().writes(6 as Weight))
@@ -131,14 +132,14 @@
// Storage: Nonfungible Allowance (r:1 w:0)
// Storage: Nonfungible Owned (r:0 w:2)
fn transfer() -> Weight {
- (24_376_000 as Weight)
+ (25_248_000 as Weight)
.saturating_add(T::DbWeight::get().reads(4 as Weight))
.saturating_add(T::DbWeight::get().writes(5 as Weight))
}
// Storage: Nonfungible TokenData (r:1 w:0)
// Storage: Nonfungible Allowance (r:1 w:1)
fn approve() -> Weight {
- (15_890_000 as Weight)
+ (16_321_000 as Weight)
.saturating_add(T::DbWeight::get().reads(2 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
@@ -147,7 +148,7 @@
// Storage: Nonfungible AccountBalance (r:2 w:2)
// Storage: Nonfungible Owned (r:0 w:2)
fn transfer_from() -> Weight {
- (28_634_000 as Weight)
+ (29_325_000 as Weight)
.saturating_add(T::DbWeight::get().reads(4 as Weight))
.saturating_add(T::DbWeight::get().writes(6 as Weight))
}
@@ -159,15 +160,15 @@
// Storage: Nonfungible Owned (r:0 w:1)
// Storage: Nonfungible TokenProperties (r:0 w:1)
fn burn_from() -> Weight {
- (32_201_000 as Weight)
+ (33_323_000 as Weight)
.saturating_add(T::DbWeight::get().reads(5 as Weight))
.saturating_add(T::DbWeight::get().writes(6 as Weight))
}
// Storage: Common CollectionPropertyPermissions (r:1 w:1)
fn set_token_property_permissions(b: u32, ) -> Weight {
(0 as Weight)
- // Standard Error: 57_000
- .saturating_add((15_232_000 as Weight).saturating_mul(b as Weight))
+ // Standard Error: 62_000
+ .saturating_add((16_222_000 as Weight).saturating_mul(b as Weight))
.saturating_add(T::DbWeight::get().reads(1 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
@@ -175,8 +176,8 @@
// Storage: Nonfungible TokenProperties (r:1 w:1)
fn set_token_properties(b: u32, ) -> Weight {
(0 as Weight)
- // Standard Error: 1_648_000
- .saturating_add((288_654_000 as Weight).saturating_mul(b as Weight))
+ // Standard Error: 1_750_000
+ .saturating_add((304_476_000 as Weight).saturating_mul(b as Weight))
.saturating_add(T::DbWeight::get().reads(2 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
@@ -184,11 +185,16 @@
// Storage: Nonfungible TokenProperties (r:1 w:1)
fn delete_token_properties(b: u32, ) -> Weight {
(0 as Weight)
- // Standard Error: 1_632_000
- .saturating_add((289_190_000 as Weight).saturating_mul(b as Weight))
+ // Standard Error: 1_638_000
+ .saturating_add((294_096_000 as Weight).saturating_mul(b as Weight))
.saturating_add(T::DbWeight::get().reads(2 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
+ // Storage: Nonfungible TokenData (r:1 w:0)
+ fn token_owner() -> Weight {
+ (2_986_000 as Weight)
+ .saturating_add(T::DbWeight::get().reads(1 as Weight))
+ }
}
// For backwards compatibility and tests
@@ -198,7 +204,7 @@
// Storage: Nonfungible TokenData (r:0 w:1)
// Storage: Nonfungible Owned (r:0 w:1)
fn create_item() -> Weight {
- (20_328_000 as Weight)
+ (20_909_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(2 as Weight))
.saturating_add(RocksDbWeight::get().writes(4 as Weight))
}
@@ -207,9 +213,9 @@
// Storage: Nonfungible TokenData (r:0 w:4)
// Storage: Nonfungible Owned (r:0 w:4)
fn create_multiple_items(b: u32, ) -> Weight {
- (10_134_000 as Weight)
- // Standard Error: 3_000
- .saturating_add((4_927_000 as Weight).saturating_mul(b as Weight))
+ (12_601_000 as Weight)
+ // Standard Error: 1_000
+ .saturating_add((4_920_000 as Weight).saturating_mul(b as Weight))
.saturating_add(RocksDbWeight::get().reads(2 as Weight))
.saturating_add(RocksDbWeight::get().writes(2 as Weight))
.saturating_add(RocksDbWeight::get().writes((2 as Weight).saturating_mul(b as Weight)))
@@ -219,9 +225,9 @@
// Storage: Nonfungible TokenData (r:0 w:4)
// Storage: Nonfungible Owned (r:0 w:4)
fn create_multiple_items_ex(b: u32, ) -> Weight {
- (5_710_000 as Weight)
- // Standard Error: 4_000
- .saturating_add((7_578_000 as Weight).saturating_mul(b as Weight))
+ (0 as Weight)
+ // Standard Error: 3_000
+ .saturating_add((7_734_000 as Weight).saturating_mul(b as Weight))
.saturating_add(RocksDbWeight::get().reads(1 as Weight))
.saturating_add(RocksDbWeight::get().reads((1 as Weight).saturating_mul(b as Weight)))
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
@@ -235,7 +241,7 @@
// Storage: Nonfungible Owned (r:0 w:1)
// Storage: Nonfungible TokenProperties (r:0 w:1)
fn burn_item() -> Weight {
- (28_433_000 as Weight)
+ (29_746_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(5 as Weight))
.saturating_add(RocksDbWeight::get().writes(5 as Weight))
}
@@ -247,7 +253,7 @@
// Storage: Nonfungible Owned (r:0 w:1)
// Storage: Nonfungible TokenProperties (r:0 w:1)
fn burn_recursively_self_raw() -> Weight {
- (34_435_000 as Weight)
+ (36_077_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(5 as Weight))
.saturating_add(RocksDbWeight::get().writes(5 as Weight))
}
@@ -261,8 +267,8 @@
// Storage: Common CollectionById (r:1 w:0)
fn burn_recursively_breadth_plus_self_plus_self_per_each_raw(b: u32, ) -> Weight {
(0 as Weight)
- // Standard Error: 1_539_000
- .saturating_add((304_456_000 as Weight).saturating_mul(b as Weight))
+ // Standard Error: 1_605_000
+ .saturating_add((312_391_000 as Weight).saturating_mul(b as Weight))
.saturating_add(RocksDbWeight::get().reads(7 as Weight))
.saturating_add(RocksDbWeight::get().reads((4 as Weight).saturating_mul(b as Weight)))
.saturating_add(RocksDbWeight::get().writes(6 as Weight))
@@ -273,14 +279,14 @@
// Storage: Nonfungible Allowance (r:1 w:0)
// Storage: Nonfungible Owned (r:0 w:2)
fn transfer() -> Weight {
- (24_376_000 as Weight)
+ (25_248_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(4 as Weight))
.saturating_add(RocksDbWeight::get().writes(5 as Weight))
}
// Storage: Nonfungible TokenData (r:1 w:0)
// Storage: Nonfungible Allowance (r:1 w:1)
fn approve() -> Weight {
- (15_890_000 as Weight)
+ (16_321_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(2 as Weight))
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
}
@@ -289,7 +295,7 @@
// Storage: Nonfungible AccountBalance (r:2 w:2)
// Storage: Nonfungible Owned (r:0 w:2)
fn transfer_from() -> Weight {
- (28_634_000 as Weight)
+ (29_325_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(4 as Weight))
.saturating_add(RocksDbWeight::get().writes(6 as Weight))
}
@@ -301,15 +307,15 @@
// Storage: Nonfungible Owned (r:0 w:1)
// Storage: Nonfungible TokenProperties (r:0 w:1)
fn burn_from() -> Weight {
- (32_201_000 as Weight)
+ (33_323_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(5 as Weight))
.saturating_add(RocksDbWeight::get().writes(6 as Weight))
}
// Storage: Common CollectionPropertyPermissions (r:1 w:1)
fn set_token_property_permissions(b: u32, ) -> Weight {
(0 as Weight)
- // Standard Error: 57_000
- .saturating_add((15_232_000 as Weight).saturating_mul(b as Weight))
+ // Standard Error: 62_000
+ .saturating_add((16_222_000 as Weight).saturating_mul(b as Weight))
.saturating_add(RocksDbWeight::get().reads(1 as Weight))
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
}
@@ -317,8 +323,8 @@
// Storage: Nonfungible TokenProperties (r:1 w:1)
fn set_token_properties(b: u32, ) -> Weight {
(0 as Weight)
- // Standard Error: 1_648_000
- .saturating_add((288_654_000 as Weight).saturating_mul(b as Weight))
+ // Standard Error: 1_750_000
+ .saturating_add((304_476_000 as Weight).saturating_mul(b as Weight))
.saturating_add(RocksDbWeight::get().reads(2 as Weight))
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
}
@@ -326,9 +332,14 @@
// Storage: Nonfungible TokenProperties (r:1 w:1)
fn delete_token_properties(b: u32, ) -> Weight {
(0 as Weight)
- // Standard Error: 1_632_000
- .saturating_add((289_190_000 as Weight).saturating_mul(b as Weight))
+ // Standard Error: 1_638_000
+ .saturating_add((294_096_000 as Weight).saturating_mul(b as Weight))
.saturating_add(RocksDbWeight::get().reads(2 as Weight))
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
}
+ // Storage: Nonfungible TokenData (r:1 w:0)
+ fn token_owner() -> Weight {
+ (2_986_000 as Weight)
+ .saturating_add(RocksDbWeight::get().reads(1 as Weight))
+ }
}
pallets/refungible/src/benchmarking.rsdiffbeforeafterboth--- a/pallets/refungible/src/benchmarking.rs
+++ b/pallets/refungible/src/benchmarking.rs
@@ -17,25 +17,26 @@
use super::*;
use crate::{Pallet, Config, RefungibleHandle};
+use core::convert::TryInto;
+use core::iter::IntoIterator;
+use frame_benchmarking::{benchmarks, account};
+use pallet_common::{
+ bench_init,
+ benchmarking::{create_collection_raw, property_key, property_value, create_data},
+};
+use sp_core::H160;
use sp_std::prelude::*;
-use pallet_common::benchmarking::{create_collection_raw, property_key, property_value, create_data};
-use frame_benchmarking::{benchmarks, account};
use up_data_structs::{
CollectionMode, MAX_ITEMS_PER_BATCH, MAX_PROPERTIES_PER_ITEM, CUSTOM_DATA_LIMIT,
budget::Unlimited,
};
-use pallet_common::bench_init;
-use core::convert::TryInto;
-use core::iter::IntoIterator;
const SEED: u32 = 1;
fn create_max_item_data<CrossAccountId: Ord>(
users: impl IntoIterator<Item = (CrossAccountId, u128)>,
) -> CreateRefungibleExData<CrossAccountId> {
- let const_data = create_data::<CUSTOM_DATA_LIMIT>();
CreateRefungibleExData {
- const_data,
users: users
.into_iter()
.collect::<BTreeMap<_, _>>()
@@ -44,6 +45,7 @@
properties: Default::default(),
}
}
+
fn create_max_item<T: Config>(
collection: &RefungibleHandle<T>,
sender: &T::CrossAccountId,
@@ -59,11 +61,12 @@
) -> Result<RefungibleHandle<T>, DispatchError> {
create_collection_raw(
owner,
- CollectionMode::NFT,
+ CollectionMode::ReFungible,
<Pallet<T>>::init_collection,
RefungibleHandle::cast,
)
}
+
benchmarks! {
create_item {
bench_init!{
@@ -277,4 +280,21 @@
};
let item = create_max_item(&collection, &sender, [(owner.clone(), 100)])?;
}: {<Pallet<T>>::repartition(&collection, &owner, item, 200)?}
+
+ set_parent_nft_unchecked {
+ bench_init!{
+ owner: sub; collection: collection(owner);
+ sender: cross_from_sub(owner); owner: cross_sub;
+ };
+ let item = create_max_item(&collection, &sender, [(owner.clone(), 100)])?;
+
+ }: {<Pallet<T>>::set_parent_nft_unchecked(&collection, item, owner, T::CrossAccountId::from_eth(H160::default()))?}
+
+ token_owner {
+ bench_init!{
+ owner: sub; collection: collection(owner);
+ sender: cross_from_sub(owner); owner: cross_sub;
+ };
+ let item = create_max_item(&collection, &sender, [(owner.clone(), 100)])?;
+ }: {<Pallet<T>>::token_owner(collection.id, item)}
}
pallets/refungible/src/common.rsdiffbeforeafterboth--- a/pallets/refungible/src/common.rs
+++ b/pallets/refungible/src/common.rs
@@ -148,6 +148,10 @@
// Refungible token can't have children
0
}
+
+ fn token_owner() -> Weight {
+ <SelfWeightOf<T>>::token_owner()
+ }
}
fn map_create_data<T: Config>(
pallets/refungible/src/erc.rsdiffbeforeafterboth--- a/pallets/refungible/src/erc.rs
+++ b/pallets/refungible/src/erc.rs
@@ -41,8 +41,8 @@
use sp_core::H160;
use sp_std::{collections::btree_map::BTreeMap, vec::Vec, vec};
use up_data_structs::{
- CollectionId, CollectionPropertiesVec, Property, PropertyKey, PropertyKeyPermission,
- PropertyPermission, TokenId,
+ CollectionId, CollectionPropertiesVec, mapping::TokenAddressMapping, Property, PropertyKey,
+ PropertyKeyPermission, PropertyPermission, TokenId,
};
use crate::{
@@ -413,7 +413,7 @@
}
/// Returns amount of pieces of `token` that `owner` have
-fn balance<T: Config>(
+pub fn balance<T: Config>(
collection: &RefungibleHandle<T>,
token: TokenId,
owner: &T::CrossAccountId,
@@ -424,7 +424,7 @@
}
/// Throws if `owner_balance` is lower than total amount of `token` pieces
-fn ensure_single_owner<T: Config>(
+pub fn ensure_single_owner<T: Config>(
collection: &RefungibleHandle<T>,
token: TokenId,
owner_balance: u128,
@@ -788,6 +788,16 @@
.map_err(dispatch_to_evm::<T>)?;
Ok(true)
}
+
+ /// Returns EVM address for refungible token
+ ///
+ /// @param token ID of the token
+ fn token_contract_address(&self, token: uint256) -> Result<address> {
+ Ok(T::EvmTokenAddressMapping::token_to_address(
+ self.id,
+ token.try_into().map_err(|_| "token id overflow")?,
+ ))
+ }
}
#[solidity_interface(
pallets/refungible/src/erc_token.rsdiffbeforeafterboth--- a/pallets/refungible/src/erc_token.rs
+++ b/pallets/refungible/src/erc_token.rs
@@ -20,29 +20,95 @@
//! Method implementations are mostly doing parameter conversion and calling Nonfungible Pallet methods.
extern crate alloc;
+
+#[cfg(not(feature = "std"))]
+use alloc::format;
+
use core::{
char::{REPLACEMENT_CHARACTER, decode_utf16},
convert::TryInto,
ops::Deref,
};
-use evm_coder::{ToLog, execution::*, generate_stubgen, solidity_interface, types::*, weight};
+use evm_coder::{ToLog, execution::*, generate_stubgen, solidity, solidity_interface, types::*, weight};
use pallet_common::{
CommonWeightInfo,
- erc::{CommonEvmHandler, PrecompileResult},
+ erc::{CommonEvmHandler, PrecompileResult, static_property::key},
+ eth::map_eth_to_id,
};
use pallet_evm::{account::CrossAccountId, PrecompileHandle};
use pallet_evm_coder_substrate::{call, dispatch_to_evm, WithRecorder};
use pallet_structure::{SelfWeightOf as StructureWeight, weights::WeightInfo as _};
+use sp_core::H160;
use sp_std::vec::Vec;
-use up_data_structs::TokenId;
+use up_data_structs::{mapping::TokenAddressMapping, PropertyScope, TokenId};
use crate::{
Allowance, Balance, common::CommonWeights, Config, Pallet, RefungibleHandle, SelfWeightOf,
- weights::WeightInfo, TotalSupply,
+ TokenProperties, TotalSupply, weights::WeightInfo,
};
pub struct RefungibleTokenHandle<T: Config>(pub RefungibleHandle<T>, pub TokenId);
+#[solidity_interface(name = "ERC1633")]
+impl<T: Config> RefungibleTokenHandle<T> {
+ fn parent_token(&self) -> Result<address> {
+ self.consume_store_reads(2)?;
+ let props = <TokenProperties<T>>::get((self.id, self.1));
+ let key = key::parent_nft();
+
+ let key_scoped = PropertyScope::Eth
+ .apply(key)
+ .expect("property key shouldn't exceed length limit");
+ if let Some(value) = props.get(&key_scoped) {
+ Ok(H160::from_slice(value.as_slice()))
+ } else {
+ Ok(*T::CrossTokenAddressMapping::token_to_address(self.id, self.1).as_eth())
+ }
+ }
+
+ fn parent_token_id(&self) -> Result<uint256> {
+ self.consume_store_reads(2)?;
+ let props = <TokenProperties<T>>::get((self.id, self.1));
+ let key = key::parent_nft();
+
+ let key_scoped = PropertyScope::Eth
+ .apply(key)
+ .expect("property key shouldn't exceed length limit");
+ if let Some(value) = props.get(&key_scoped) {
+ let nft_token_address = H160::from_slice(value.as_slice());
+ let nft_token_account = T::CrossAccountId::from_eth(nft_token_address);
+ let (_, token_id) = T::CrossTokenAddressMapping::address_to_token(&nft_token_account)
+ .ok_or("parent NFT should contain NFT token address")?;
+
+ Ok(token_id.into())
+ } else {
+ Ok(self.1.into())
+ }
+ }
+}
+
+#[solidity_interface(name = "ERC1633UniqueExtensions")]
+impl<T: Config> RefungibleTokenHandle<T> {
+ #[solidity(rename_selector = "setParentNFT")]
+ #[weight(<CommonWeights<T>>::token_owner() + <SelfWeightOf<T>>::set_parent_nft_unchecked())]
+ fn set_parent_nft(
+ &mut self,
+ caller: caller,
+ collection: address,
+ nft_id: uint256,
+ ) -> Result<bool> {
+ self.consume_store_reads(1)?;
+ let caller = T::CrossAccountId::from_eth(caller);
+ let nft_collection = map_eth_to_id(&collection).ok_or("collection not found")?;
+ let nft_token = nft_id.try_into()?;
+
+ <Pallet<T>>::set_parent_nft(&self.0, self.1, caller, nft_collection, nft_token)
+ .map_err(dispatch_to_evm::<T>)?;
+
+ Ok(true)
+ }
+}
+
#[derive(ToLog)]
pub enum ERC20Events {
/// @dev This event is emitted when the amount of tokens (value) is sent
@@ -120,7 +186,7 @@
.weight_calls_budget(<StructureWeight<T>>::find_parent());
<Pallet<T>>::transfer(self, &caller, &to, self.1, amount, &budget)
- .map_err(|_| "transfer error")?;
+ .map_err(dispatch_to_evm::<T>)?;
Ok(true)
}
@@ -239,7 +305,10 @@
}
}
-#[solidity_interface(name = "UniqueRefungibleToken", is(ERC20, ERC20UniqueExtensions,))]
+#[solidity_interface(
+ name = "UniqueRefungibleToken",
+ is(ERC20, ERC20UniqueExtensions, ERC1633, ERC1633UniqueExtensions)
+)]
impl<T: Config> RefungibleTokenHandle<T> where T::AccountId: From<[u8; 32]> {}
generate_stubgen!(gen_impl, UniqueRefungibleTokenCall<()>, true);
pallets/refungible/src/lib.rsdiffbeforeafterboth--- a/pallets/refungible/src/lib.rs
+++ b/pallets/refungible/src/lib.rs
@@ -99,8 +99,12 @@
use pallet_evm::{account::CrossAccountId, Pallet as PalletEvm};
use pallet_evm_coder_substrate::WithRecorder;
use pallet_common::{
- CommonCollectionOperations, Error as CommonError, Event as CommonEvent,
- eth::collection_id_to_address, Pallet as PalletCommon,
+ CollectionHandle, CommonCollectionOperations,
+ dispatch::CollectionDispatch,
+ erc::static_property::{key, property_value_from_bytes},
+ Error as CommonError,
+ eth::collection_id_to_address,
+ Event as CommonEvent, Pallet as PalletCommon,
};
use pallet_structure::Pallet as PalletStructure;
use scale_info::TypeInfo;
@@ -108,10 +112,10 @@
use sp_runtime::{ArithmeticError, DispatchError, DispatchResult, TransactionOutcome};
use sp_std::{vec::Vec, vec, collections::btree_map::BTreeMap};
use up_data_structs::{
- AccessMode, budget::Budget, CollectionId, CreateCollectionData, CustomDataLimit,
- mapping::TokenAddressMapping, MAX_REFUNGIBLE_PIECES, MAX_ITEMS_PER_BATCH, TokenId, Property,
- PropertyKey, PropertyKeyPermission, PropertyPermission, PropertyScope, PropertyValue,
- TrySetProperty, CollectionPropertiesVec,
+ AccessMode, budget::Budget, CollectionId, CollectionMode, CollectionPropertiesVec,
+ CreateCollectionData, CustomDataLimit, mapping::TokenAddressMapping, MAX_ITEMS_PER_BATCH,
+ MAX_REFUNGIBLE_PIECES, Property, PropertyKey, PropertyKeyPermission, PropertyPermission,
+ PropertyScope, PropertyValue, TokenId, TrySetProperty,
};
use frame_support::BoundedBTreeMap;
use derivative::Derivative;
@@ -1341,6 +1345,20 @@
<PalletCommon<T>>::set_token_property_permissions(collection, sender, property_permissions)
}
+ pub fn set_scoped_token_property_permissions(
+ collection: &RefungibleHandle<T>,
+ sender: &T::CrossAccountId,
+ scope: PropertyScope,
+ property_permissions: Vec<PropertyKeyPermission>,
+ ) -> DispatchResult {
+ <PalletCommon<T>>::set_scoped_token_property_permissions(
+ collection,
+ sender,
+ scope,
+ property_permissions,
+ )
+ }
+
/// Returns 10 token in no particular order.
///
/// There is no direct way to get token holders in ascending order,
@@ -1362,4 +1380,68 @@
Some(res)
}
}
+
+ /// Sets the NFT token as a parent for the RFT token
+ ///
+ /// Throws if `sender` is not the owner of the NFT token.
+ /// Throws if `sender` is not the owner of all of the RFT token pieces.
+ pub fn set_parent_nft(
+ collection: &RefungibleHandle<T>,
+ rft_token_id: TokenId,
+ sender: T::CrossAccountId,
+ nft_collection: CollectionId,
+ nft_token: TokenId,
+ ) -> DispatchResult {
+ let handle = <CollectionHandle<T>>::try_get(nft_collection)?;
+ if handle.mode != CollectionMode::NFT {
+ return Err("Only NFT token could be parent to RFT".into());
+ }
+ let dispatch = T::CollectionDispatch::dispatch(handle);
+ let dispatch = dispatch.as_dyn();
+
+ let owner = dispatch.token_owner(nft_token).ok_or("owner not found")?;
+ if owner != sender {
+ return Err("Only owned token could be set as parent".into());
+ }
+
+ let nft_token_address =
+ T::CrossTokenAddressMapping::token_to_address(nft_collection, nft_token);
+
+ Self::set_parent_nft_unchecked(collection, rft_token_id, sender, nft_token_address)
+ }
+
+ /// Sets the NFT token as a parent for the RFT token
+ ///
+ /// `sender` should be the owner of the NFT token.
+ /// Throws if `sender` is not the owner of all of the RFT token pieces.
+ pub fn set_parent_nft_unchecked(
+ collection: &RefungibleHandle<T>,
+ rft_token_id: TokenId,
+ sender: T::CrossAccountId,
+ nft_token_address: T::CrossAccountId,
+ ) -> DispatchResult {
+ let owner_balance = <Balance<T>>::get((collection.id, rft_token_id, &sender));
+ let total_supply = <TotalSupply<T>>::get((collection.id, rft_token_id));
+ if total_supply != owner_balance {
+ return Err("token has multiple owners".into());
+ }
+
+ let parent_nft_property_key = key::parent_nft();
+
+ let parent_nft_property_value =
+ property_value_from_bytes(&nft_token_address.as_eth().to_fixed_bytes())
+ .expect("address should fit in value length limit");
+
+ <Pallet<T>>::set_scoped_token_property(
+ collection.id,
+ rft_token_id,
+ PropertyScope::Eth,
+ Property {
+ key: parent_nft_property_key,
+ value: parent_nft_property_value,
+ },
+ )?;
+
+ Ok(())
+ }
}
pallets/refungible/src/stubs/UniqueRefungible.rawdiffbeforeafterbothbinary blob — no preview
pallets/refungible/src/stubs/UniqueRefungible.soldiffbeforeafterboth--- a/pallets/refungible/src/stubs/UniqueRefungible.sol
+++ b/pallets/refungible/src/stubs/UniqueRefungible.sol
@@ -371,49 +371,7 @@
}
}
-// Selector: 780e9d63
-contract ERC721Enumerable is Dummy, ERC165 {
- // @notice Enumerate valid RFTs
- // @param index A counter less than `totalSupply()`
- // @return The token identifier for the `index`th NFT,
- // (sort order not specified)
- //
- // Selector: tokenByIndex(uint256) 4f6ccce7
- function tokenByIndex(uint256 index) public view returns (uint256) {
- require(false, stub_error);
- index;
- dummy;
- return 0;
- }
-
- // Not implemented
- //
- // Selector: tokenOfOwnerByIndex(address,uint256) 2f745c59
- function tokenOfOwnerByIndex(address owner, uint256 index)
- public
- view
- returns (uint256)
- {
- require(false, stub_error);
- owner;
- index;
- dummy;
- return 0;
- }
-
- // @notice Count RFTs tracked by this contract
- // @return A count of valid RFTs tracked by this contract, where each one of
- // them has an assigned and queryable owner not equal to the zero address
- //
- // Selector: totalSupply() 18160ddd
- function totalSupply() public view returns (uint256) {
- require(false, stub_error);
- dummy;
- return 0;
- }
-}
-
-// Selector: 7d9262e6
+// Selector: 6cf113cd
contract Collection is Dummy, ERC165 {
// Set collection property.
//
@@ -638,9 +596,75 @@
mode;
dummy = 0;
}
+
+ // Check that account is the owner or admin of the collection
+ //
+ // @param user account to verify
+ // @return "true" if account is the owner or admin
+ //
+ // Selector: verifyOwnerOrAdmin(address) c2282493
+ function verifyOwnerOrAdmin(address user) public view returns (bool) {
+ require(false, stub_error);
+ user;
+ dummy;
+ return false;
+ }
+
+ // Returns collection type
+ //
+ // @return `Fungible` or `NFT` or `ReFungible`
+ //
+ // Selector: uniqueCollectionType() d34b55b8
+ function uniqueCollectionType() public returns (string memory) {
+ require(false, stub_error);
+ dummy = 0;
+ return "";
+ }
+}
+
+// Selector: 780e9d63
+contract ERC721Enumerable is Dummy, ERC165 {
+ // @notice Enumerate valid RFTs
+ // @param index A counter less than `totalSupply()`
+ // @return The token identifier for the `index`th NFT,
+ // (sort order not specified)
+ //
+ // Selector: tokenByIndex(uint256) 4f6ccce7
+ function tokenByIndex(uint256 index) public view returns (uint256) {
+ require(false, stub_error);
+ index;
+ dummy;
+ return 0;
+ }
+
+ // Not implemented
+ //
+ // Selector: tokenOfOwnerByIndex(address,uint256) 2f745c59
+ function tokenOfOwnerByIndex(address owner, uint256 index)
+ public
+ view
+ returns (uint256)
+ {
+ require(false, stub_error);
+ owner;
+ index;
+ dummy;
+ return 0;
+ }
+
+ // @notice Count RFTs tracked by this contract
+ // @return A count of valid RFTs tracked by this contract, where each one of
+ // them has an assigned and queryable owner not equal to the zero address
+ //
+ // Selector: totalSupply() 18160ddd
+ function totalSupply() public view returns (uint256) {
+ require(false, stub_error);
+ dummy;
+ return 0;
+ }
}
-// Selector: d74d154f
+// Selector: 7c3bef89
contract ERC721UniqueExtensions is Dummy, ERC165 {
// @notice Transfer ownership of an RFT
// @dev Throws unless `msg.sender` is the current owner. Throws if `to`
@@ -719,6 +743,18 @@
dummy = 0;
return false;
}
+
+ // Returns EVM address for refungible token
+ //
+ // @param token ID of the token
+ //
+ // Selector: tokenContractAddress(uint256) ab76fac6
+ function tokenContractAddress(uint256 token) public view returns (address) {
+ require(false, stub_error);
+ token;
+ dummy;
+ return 0x0000000000000000000000000000000000000000;
+ }
}
contract UniqueRefungible is
pallets/refungible/src/stubs/UniqueRefungibleToken.rawdiffbeforeafterbothbinary blob — no preview
pallets/refungible/src/stubs/UniqueRefungibleToken.soldiffbeforeafterboth--- a/pallets/refungible/src/stubs/UniqueRefungibleToken.sol
+++ b/pallets/refungible/src/stubs/UniqueRefungibleToken.sol
@@ -31,6 +31,38 @@
);
}
+// Selector: 042f1106
+contract ERC1633UniqueExtensions is Dummy, ERC165 {
+ // Selector: setParentNFT(address,uint256) 042f1106
+ function setParentNFT(address collection, uint256 nftId)
+ public
+ returns (bool)
+ {
+ require(false, stub_error);
+ collection;
+ nftId;
+ dummy = 0;
+ return false;
+ }
+}
+
+// Selector: 5755c3f2
+contract ERC1633 is Dummy, ERC165 {
+ // Selector: parentToken() 80a54001
+ function parentToken() public view returns (address) {
+ require(false, stub_error);
+ dummy;
+ return 0x0000000000000000000000000000000000000000;
+ }
+
+ // Selector: parentTokenId() d7f083f3
+ function parentTokenId() public view returns (uint256) {
+ require(false, stub_error);
+ dummy;
+ return 0;
+ }
+}
+
// Selector: 942e8b22
contract ERC20 is Dummy, ERC165, ERC20Events {
// @return the name of the token.
@@ -178,4 +210,11 @@
}
}
-contract UniqueRefungibleToken is Dummy, ERC165, ERC20, ERC20UniqueExtensions {}
+contract UniqueRefungibleToken is
+ Dummy,
+ ERC165,
+ ERC20,
+ ERC20UniqueExtensions,
+ ERC1633,
+ ERC1633UniqueExtensions
+{}
pallets/refungible/src/weights.rsdiffbeforeafterboth--- a/pallets/refungible/src/weights.rs
+++ b/pallets/refungible/src/weights.rs
@@ -3,7 +3,7 @@
//! Autogenerated weights for pallet_refungible
//!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2022-07-20, STEPS: `50`, REPEAT: 80, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2022-08-01, STEPS: `50`, REPEAT: 80, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: None, DB CACHE: 1024
// Executed Command:
@@ -53,6 +53,8 @@
fn set_token_properties(b: u32, ) -> Weight;
fn delete_token_properties(b: u32, ) -> Weight;
fn repartition_item() -> Weight;
+ fn set_parent_nft_unchecked() -> Weight;
+ fn token_owner() -> Weight;
}
/// Weights for pallet_refungible using the Substrate node and recommended hardware.
@@ -65,7 +67,7 @@
// Storage: Refungible TokenData (r:0 w:1)
// Storage: Refungible Owned (r:0 w:1)
fn create_item() -> Weight {
- (21_310_000 as Weight)
+ (25_197_000 as Weight)
.saturating_add(T::DbWeight::get().reads(2 as Weight))
.saturating_add(T::DbWeight::get().writes(6 as Weight))
}
@@ -76,9 +78,9 @@
// Storage: Refungible TokenData (r:0 w:4)
// Storage: Refungible Owned (r:0 w:4)
fn create_multiple_items(b: u32, ) -> Weight {
- (9_552_000 as Weight)
+ (10_852_000 as Weight)
// Standard Error: 2_000
- .saturating_add((7_056_000 as Weight).saturating_mul(b as Weight))
+ .saturating_add((8_087_000 as Weight).saturating_mul(b as Weight))
.saturating_add(T::DbWeight::get().reads(2 as Weight))
.saturating_add(T::DbWeight::get().writes(2 as Weight))
.saturating_add(T::DbWeight::get().writes((4 as Weight).saturating_mul(b as Weight)))
@@ -90,9 +92,9 @@
// Storage: Refungible TokenData (r:0 w:4)
// Storage: Refungible Owned (r:0 w:4)
fn create_multiple_items_ex_multiple_items(b: u32, ) -> Weight {
- (4_857_000 as Weight)
+ (9_978_000 as Weight)
// Standard Error: 2_000
- .saturating_add((9_838_000 as Weight).saturating_mul(b as Weight))
+ .saturating_add((10_848_000 as Weight).saturating_mul(b as Weight))
.saturating_add(T::DbWeight::get().reads(1 as Weight))
.saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(b as Weight)))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
@@ -105,9 +107,9 @@
// Storage: Refungible Balance (r:0 w:4)
// Storage: Refungible Owned (r:0 w:4)
fn create_multiple_items_ex_multiple_owners(b: u32, ) -> Weight {
- (11_335_000 as Weight)
+ (15_419_000 as Weight)
// Standard Error: 2_000
- .saturating_add((6_784_000 as Weight).saturating_mul(b as Weight))
+ .saturating_add((7_813_000 as Weight).saturating_mul(b as Weight))
.saturating_add(T::DbWeight::get().reads(1 as Weight))
.saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(b as Weight)))
.saturating_add(T::DbWeight::get().writes(3 as Weight))
@@ -118,7 +120,7 @@
// Storage: Refungible AccountBalance (r:1 w:1)
// Storage: Refungible Owned (r:0 w:1)
fn burn_item_partial() -> Weight {
- (21_239_000 as Weight)
+ (25_578_000 as Weight)
.saturating_add(T::DbWeight::get().reads(3 as Weight))
.saturating_add(T::DbWeight::get().writes(4 as Weight))
}
@@ -130,13 +132,13 @@
// Storage: Refungible Owned (r:0 w:1)
// Storage: Refungible TokenProperties (r:0 w:1)
fn burn_item_fully() -> Weight {
- (29_426_000 as Weight)
+ (33_593_000 as Weight)
.saturating_add(T::DbWeight::get().reads(4 as Weight))
.saturating_add(T::DbWeight::get().writes(7 as Weight))
}
// Storage: Refungible Balance (r:2 w:2)
fn transfer_normal() -> Weight {
- (17_743_000 as Weight)
+ (21_049_000 as Weight)
.saturating_add(T::DbWeight::get().reads(2 as Weight))
.saturating_add(T::DbWeight::get().writes(2 as Weight))
}
@@ -144,7 +146,7 @@
// Storage: Refungible AccountBalance (r:1 w:1)
// Storage: Refungible Owned (r:0 w:1)
fn transfer_creating() -> Weight {
- (20_699_000 as Weight)
+ (24_646_000 as Weight)
.saturating_add(T::DbWeight::get().reads(3 as Weight))
.saturating_add(T::DbWeight::get().writes(4 as Weight))
}
@@ -152,7 +154,7 @@
// Storage: Refungible AccountBalance (r:1 w:1)
// Storage: Refungible Owned (r:0 w:1)
fn transfer_removing() -> Weight {
- (22_833_000 as Weight)
+ (26_570_000 as Weight)
.saturating_add(T::DbWeight::get().reads(3 as Weight))
.saturating_add(T::DbWeight::get().writes(4 as Weight))
}
@@ -160,21 +162,21 @@
// Storage: Refungible AccountBalance (r:2 w:2)
// Storage: Refungible Owned (r:0 w:2)
fn transfer_creating_removing() -> Weight {
- (24_936_000 as Weight)
+ (28_906_000 as Weight)
.saturating_add(T::DbWeight::get().reads(4 as Weight))
.saturating_add(T::DbWeight::get().writes(6 as Weight))
}
// Storage: Refungible Balance (r:1 w:0)
// Storage: Refungible Allowance (r:0 w:1)
fn approve() -> Weight {
- (13_446_000 as Weight)
+ (16_451_000 as Weight)
.saturating_add(T::DbWeight::get().reads(1 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
// Storage: Refungible Allowance (r:1 w:1)
// Storage: Refungible Balance (r:2 w:2)
fn transfer_from_normal() -> Weight {
- (24_777_000 as Weight)
+ (29_545_000 as Weight)
.saturating_add(T::DbWeight::get().reads(3 as Weight))
.saturating_add(T::DbWeight::get().writes(3 as Weight))
}
@@ -183,7 +185,7 @@
// Storage: Refungible AccountBalance (r:1 w:1)
// Storage: Refungible Owned (r:0 w:1)
fn transfer_from_creating() -> Weight {
- (28_483_000 as Weight)
+ (33_392_000 as Weight)
.saturating_add(T::DbWeight::get().reads(4 as Weight))
.saturating_add(T::DbWeight::get().writes(5 as Weight))
}
@@ -192,7 +194,7 @@
// Storage: Refungible AccountBalance (r:1 w:1)
// Storage: Refungible Owned (r:0 w:1)
fn transfer_from_removing() -> Weight {
- (29_896_000 as Weight)
+ (35_446_000 as Weight)
.saturating_add(T::DbWeight::get().reads(4 as Weight))
.saturating_add(T::DbWeight::get().writes(5 as Weight))
}
@@ -201,7 +203,7 @@
// Storage: Refungible AccountBalance (r:2 w:2)
// Storage: Refungible Owned (r:0 w:2)
fn transfer_from_creating_removing() -> Weight {
- (32_070_000 as Weight)
+ (37_762_000 as Weight)
.saturating_add(T::DbWeight::get().reads(5 as Weight))
.saturating_add(T::DbWeight::get().writes(7 as Weight))
}
@@ -214,15 +216,15 @@
// Storage: Refungible Owned (r:0 w:1)
// Storage: Refungible TokenProperties (r:0 w:1)
fn burn_from() -> Weight {
- (36_789_000 as Weight)
+ (42_620_000 as Weight)
.saturating_add(T::DbWeight::get().reads(5 as Weight))
.saturating_add(T::DbWeight::get().writes(8 as Weight))
}
// Storage: Common CollectionPropertyPermissions (r:1 w:1)
fn set_token_property_permissions(b: u32, ) -> Weight {
(0 as Weight)
- // Standard Error: 62_000
- .saturating_add((15_803_000 as Weight).saturating_mul(b as Weight))
+ // Standard Error: 65_000
+ .saturating_add((16_513_000 as Weight).saturating_mul(b as Weight))
.saturating_add(T::DbWeight::get().reads(1 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
@@ -230,8 +232,8 @@
// Storage: Refungible TokenProperties (r:1 w:1)
fn set_token_properties(b: u32, ) -> Weight {
(0 as Weight)
- // Standard Error: 1_668_000
- .saturating_add((302_308_000 as Weight).saturating_mul(b as Weight))
+ // Standard Error: 1_583_000
+ .saturating_add((291_392_000 as Weight).saturating_mul(b as Weight))
.saturating_add(T::DbWeight::get().reads(2 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
@@ -239,18 +241,31 @@
// Storage: Refungible TokenProperties (r:1 w:1)
fn delete_token_properties(b: u32, ) -> Weight {
(0 as Weight)
- // Standard Error: 1_619_000
- .saturating_add((294_574_000 as Weight).saturating_mul(b as Weight))
+ // Standard Error: 1_699_000
+ .saturating_add((293_270_000 as Weight).saturating_mul(b as Weight))
.saturating_add(T::DbWeight::get().reads(2 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
// Storage: Refungible TotalSupply (r:1 w:1)
// Storage: Refungible Balance (r:1 w:1)
fn repartition_item() -> Weight {
- (8_325_000 as Weight)
+ (19_206_000 as Weight)
.saturating_add(T::DbWeight::get().reads(2 as Weight))
.saturating_add(T::DbWeight::get().writes(2 as Weight))
}
+ // Storage: Refungible Balance (r:1 w:0)
+ // Storage: Refungible TotalSupply (r:1 w:0)
+ // Storage: Refungible TokenProperties (r:1 w:1)
+ fn set_parent_nft_unchecked() -> Weight {
+ (10_189_000 as Weight)
+ .saturating_add(T::DbWeight::get().reads(3 as Weight))
+ .saturating_add(T::DbWeight::get().writes(1 as Weight))
+ }
+ // Storage: Refungible Balance (r:2 w:0)
+ fn token_owner() -> Weight {
+ (8_205_000 as Weight)
+ .saturating_add(T::DbWeight::get().reads(2 as Weight))
+ }
}
// For backwards compatibility and tests
@@ -262,7 +277,7 @@
// Storage: Refungible TokenData (r:0 w:1)
// Storage: Refungible Owned (r:0 w:1)
fn create_item() -> Weight {
- (21_310_000 as Weight)
+ (25_197_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(2 as Weight))
.saturating_add(RocksDbWeight::get().writes(6 as Weight))
}
@@ -273,9 +288,9 @@
// Storage: Refungible TokenData (r:0 w:4)
// Storage: Refungible Owned (r:0 w:4)
fn create_multiple_items(b: u32, ) -> Weight {
- (9_552_000 as Weight)
+ (10_852_000 as Weight)
// Standard Error: 2_000
- .saturating_add((7_056_000 as Weight).saturating_mul(b as Weight))
+ .saturating_add((8_087_000 as Weight).saturating_mul(b as Weight))
.saturating_add(RocksDbWeight::get().reads(2 as Weight))
.saturating_add(RocksDbWeight::get().writes(2 as Weight))
.saturating_add(RocksDbWeight::get().writes((4 as Weight).saturating_mul(b as Weight)))
@@ -287,9 +302,9 @@
// Storage: Refungible TokenData (r:0 w:4)
// Storage: Refungible Owned (r:0 w:4)
fn create_multiple_items_ex_multiple_items(b: u32, ) -> Weight {
- (4_857_000 as Weight)
+ (9_978_000 as Weight)
// Standard Error: 2_000
- .saturating_add((9_838_000 as Weight).saturating_mul(b as Weight))
+ .saturating_add((10_848_000 as Weight).saturating_mul(b as Weight))
.saturating_add(RocksDbWeight::get().reads(1 as Weight))
.saturating_add(RocksDbWeight::get().reads((1 as Weight).saturating_mul(b as Weight)))
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
@@ -302,9 +317,9 @@
// Storage: Refungible Balance (r:0 w:4)
// Storage: Refungible Owned (r:0 w:4)
fn create_multiple_items_ex_multiple_owners(b: u32, ) -> Weight {
- (11_335_000 as Weight)
+ (15_419_000 as Weight)
// Standard Error: 2_000
- .saturating_add((6_784_000 as Weight).saturating_mul(b as Weight))
+ .saturating_add((7_813_000 as Weight).saturating_mul(b as Weight))
.saturating_add(RocksDbWeight::get().reads(1 as Weight))
.saturating_add(RocksDbWeight::get().reads((1 as Weight).saturating_mul(b as Weight)))
.saturating_add(RocksDbWeight::get().writes(3 as Weight))
@@ -315,7 +330,7 @@
// Storage: Refungible AccountBalance (r:1 w:1)
// Storage: Refungible Owned (r:0 w:1)
fn burn_item_partial() -> Weight {
- (21_239_000 as Weight)
+ (25_578_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(3 as Weight))
.saturating_add(RocksDbWeight::get().writes(4 as Weight))
}
@@ -327,13 +342,13 @@
// Storage: Refungible Owned (r:0 w:1)
// Storage: Refungible TokenProperties (r:0 w:1)
fn burn_item_fully() -> Weight {
- (29_426_000 as Weight)
+ (33_593_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(4 as Weight))
.saturating_add(RocksDbWeight::get().writes(7 as Weight))
}
// Storage: Refungible Balance (r:2 w:2)
fn transfer_normal() -> Weight {
- (17_743_000 as Weight)
+ (21_049_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(2 as Weight))
.saturating_add(RocksDbWeight::get().writes(2 as Weight))
}
@@ -341,7 +356,7 @@
// Storage: Refungible AccountBalance (r:1 w:1)
// Storage: Refungible Owned (r:0 w:1)
fn transfer_creating() -> Weight {
- (20_699_000 as Weight)
+ (24_646_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(3 as Weight))
.saturating_add(RocksDbWeight::get().writes(4 as Weight))
}
@@ -349,7 +364,7 @@
// Storage: Refungible AccountBalance (r:1 w:1)
// Storage: Refungible Owned (r:0 w:1)
fn transfer_removing() -> Weight {
- (22_833_000 as Weight)
+ (26_570_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(3 as Weight))
.saturating_add(RocksDbWeight::get().writes(4 as Weight))
}
@@ -357,21 +372,21 @@
// Storage: Refungible AccountBalance (r:2 w:2)
// Storage: Refungible Owned (r:0 w:2)
fn transfer_creating_removing() -> Weight {
- (24_936_000 as Weight)
+ (28_906_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(4 as Weight))
.saturating_add(RocksDbWeight::get().writes(6 as Weight))
}
// Storage: Refungible Balance (r:1 w:0)
// Storage: Refungible Allowance (r:0 w:1)
fn approve() -> Weight {
- (13_446_000 as Weight)
+ (16_451_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(1 as Weight))
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
}
// Storage: Refungible Allowance (r:1 w:1)
// Storage: Refungible Balance (r:2 w:2)
fn transfer_from_normal() -> Weight {
- (24_777_000 as Weight)
+ (29_545_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(3 as Weight))
.saturating_add(RocksDbWeight::get().writes(3 as Weight))
}
@@ -380,7 +395,7 @@
// Storage: Refungible AccountBalance (r:1 w:1)
// Storage: Refungible Owned (r:0 w:1)
fn transfer_from_creating() -> Weight {
- (28_483_000 as Weight)
+ (33_392_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(4 as Weight))
.saturating_add(RocksDbWeight::get().writes(5 as Weight))
}
@@ -389,7 +404,7 @@
// Storage: Refungible AccountBalance (r:1 w:1)
// Storage: Refungible Owned (r:0 w:1)
fn transfer_from_removing() -> Weight {
- (29_896_000 as Weight)
+ (35_446_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(4 as Weight))
.saturating_add(RocksDbWeight::get().writes(5 as Weight))
}
@@ -398,7 +413,7 @@
// Storage: Refungible AccountBalance (r:2 w:2)
// Storage: Refungible Owned (r:0 w:2)
fn transfer_from_creating_removing() -> Weight {
- (32_070_000 as Weight)
+ (37_762_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(5 as Weight))
.saturating_add(RocksDbWeight::get().writes(7 as Weight))
}
@@ -411,15 +426,15 @@
// Storage: Refungible Owned (r:0 w:1)
// Storage: Refungible TokenProperties (r:0 w:1)
fn burn_from() -> Weight {
- (36_789_000 as Weight)
+ (42_620_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(5 as Weight))
.saturating_add(RocksDbWeight::get().writes(8 as Weight))
}
// Storage: Common CollectionPropertyPermissions (r:1 w:1)
fn set_token_property_permissions(b: u32, ) -> Weight {
(0 as Weight)
- // Standard Error: 62_000
- .saturating_add((15_803_000 as Weight).saturating_mul(b as Weight))
+ // Standard Error: 65_000
+ .saturating_add((16_513_000 as Weight).saturating_mul(b as Weight))
.saturating_add(RocksDbWeight::get().reads(1 as Weight))
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
}
@@ -427,8 +442,8 @@
// Storage: Refungible TokenProperties (r:1 w:1)
fn set_token_properties(b: u32, ) -> Weight {
(0 as Weight)
- // Standard Error: 1_668_000
- .saturating_add((302_308_000 as Weight).saturating_mul(b as Weight))
+ // Standard Error: 1_583_000
+ .saturating_add((291_392_000 as Weight).saturating_mul(b as Weight))
.saturating_add(RocksDbWeight::get().reads(2 as Weight))
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
}
@@ -436,16 +451,29 @@
// Storage: Refungible TokenProperties (r:1 w:1)
fn delete_token_properties(b: u32, ) -> Weight {
(0 as Weight)
- // Standard Error: 1_619_000
- .saturating_add((294_574_000 as Weight).saturating_mul(b as Weight))
+ // Standard Error: 1_699_000
+ .saturating_add((293_270_000 as Weight).saturating_mul(b as Weight))
.saturating_add(RocksDbWeight::get().reads(2 as Weight))
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
}
// Storage: Refungible TotalSupply (r:1 w:1)
// Storage: Refungible Balance (r:1 w:1)
fn repartition_item() -> Weight {
- (8_325_000 as Weight)
+ (19_206_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(2 as Weight))
.saturating_add(RocksDbWeight::get().writes(2 as Weight))
}
+ // Storage: Refungible Balance (r:1 w:0)
+ // Storage: Refungible TotalSupply (r:1 w:0)
+ // Storage: Refungible TokenProperties (r:1 w:1)
+ fn set_parent_nft_unchecked() -> Weight {
+ (10_189_000 as Weight)
+ .saturating_add(RocksDbWeight::get().reads(3 as Weight))
+ .saturating_add(RocksDbWeight::get().writes(1 as Weight))
+ }
+ // Storage: Refungible Balance (r:2 w:0)
+ fn token_owner() -> Weight {
+ (8_205_000 as Weight)
+ .saturating_add(RocksDbWeight::get().reads(2 as Weight))
+ }
}
pallets/unique/src/eth/mod.rsdiffbeforeafterboth--- a/pallets/unique/src/eth/mod.rs
+++ b/pallets/unique/src/eth/mod.rs
@@ -17,26 +17,29 @@
//! Implementation of CollectionHelpers contract.
use core::marker::PhantomData;
-use evm_coder::{execution::*, generate_stubgen, solidity_interface, solidity, weight, types::*};
use ethereum as _;
-use pallet_evm_coder_substrate::{SubstrateRecorder, WithRecorder};
-use pallet_evm::{OnMethodCall, PrecompileResult, account::CrossAccountId, PrecompileHandle};
-use up_data_structs::{
- CollectionName, CollectionDescription, CollectionTokenPrefix, CreateCollectionData,
- CollectionMode, PropertyValue,
-};
+use evm_coder::{execution::*, generate_stubgen, solidity_interface, solidity, weight, types::*};
use frame_support::traits::Get;
use pallet_common::{
- CollectionById,
+ CollectionById, CollectionHandle,
+ dispatch::CollectionDispatch,
erc::{
+ CollectionHelpersEvents,
static_property::{key, value as property_value},
- CollectionHelpersEvents,
},
- dispatch::CollectionDispatch,
+ Pallet as PalletCommon,
};
-use crate::{SelfWeightOf, Config, weights::WeightInfo};
+use pallet_evm_coder_substrate::{SubstrateRecorder, WithRecorder};
+use pallet_evm::{account::CrossAccountId, OnMethodCall, PrecompileHandle, PrecompileResult};
+use pallet_evm_coder_substrate::dispatch_to_evm;
+use up_data_structs::{
+ CollectionName, CollectionDescription, CollectionTokenPrefix, CreateCollectionData,
+ CollectionMode, PropertyKeyPermission, PropertyPermission, PropertyScope, PropertyValue,
+};
+
+use crate::{Config, SelfWeightOf, weights::WeightInfo};
-use sp_std::vec::Vec;
+use sp_std::{vec, vec::Vec};
use alloc::format;
/// See [`CollectionHelpersCall`]
@@ -151,6 +154,54 @@
Ok(data)
}
+fn parent_nft_property_permissions() -> PropertyKeyPermission {
+ PropertyKeyPermission {
+ key: key::parent_nft(),
+ permission: PropertyPermission {
+ mutable: false,
+ collection_admin: false,
+ token_owner: true,
+ },
+ }
+}
+
+fn create_refungible_collection_internal<
+ T: Config + pallet_nonfungible::Config + pallet_refungible::Config,
+>(
+ caller: caller,
+ name: string,
+ description: string,
+ token_prefix: string,
+ base_uri: string,
+ add_properties: bool,
+) -> Result<address> {
+ let (caller, name, description, token_prefix, base_uri_value) =
+ convert_data::<T>(caller, name, description, token_prefix, base_uri)?;
+ let data = make_data::<T>(
+ name,
+ CollectionMode::ReFungible,
+ description,
+ token_prefix,
+ base_uri_value,
+ add_properties,
+ )?;
+
+ let collection_id = T::CollectionDispatch::create(caller.clone(), data)
+ .map_err(pallet_evm_coder_substrate::dispatch_to_evm::<T>)?;
+
+ let handle = <CollectionHandle<T>>::try_get(collection_id).map_err(dispatch_to_evm::<T>)?;
+ <PalletCommon<T>>::set_scoped_token_property_permissions(
+ &handle,
+ &caller,
+ PropertyScope::Eth,
+ vec![parent_nft_property_permissions()],
+ )
+ .map_err(dispatch_to_evm::<T>)?;
+
+ let address = pallet_common::eth::collection_id_to_address(collection_id);
+ Ok(address)
+}
+
/// @title Contract, which allows users to operate with collections
#[solidity_interface(name = "CollectionHelpers", events(CollectionHelpersEvents))]
impl<T> EvmCollectionHelpers<T>
@@ -216,27 +267,20 @@
#[weight(<SelfWeightOf<T>>::create_collection())]
fn create_refungible_collection(
- &self,
+ &mut self,
caller: caller,
name: string,
description: string,
token_prefix: string,
) -> Result<address> {
- let (caller, name, description, token_prefix, _base_uri) =
- convert_data::<T>(caller, name, description, token_prefix, "".into())?;
- let data = make_data::<T>(
+ create_refungible_collection_internal::<T>(
+ caller,
name,
- CollectionMode::ReFungible,
description,
token_prefix,
Default::default(),
false,
- )?;
- let collection_id = T::CollectionDispatch::create(caller, data)
- .map_err(pallet_evm_coder_substrate::dispatch_to_evm::<T>)?;
-
- let address = pallet_common::eth::collection_id_to_address(collection_id);
- Ok(address)
+ )
}
#[weight(<SelfWeightOf<T>>::create_collection())]
@@ -249,21 +293,14 @@
token_prefix: string,
base_uri: string,
) -> Result<address> {
- let (caller, name, description, token_prefix, base_uri_value) =
- convert_data::<T>(caller, name, description, token_prefix, base_uri)?;
- let data = make_data::<T>(
+ create_refungible_collection_internal::<T>(
+ caller,
name,
- CollectionMode::NFT,
description,
token_prefix,
- base_uri_value,
+ base_uri,
true,
- )?;
- let collection_id = T::CollectionDispatch::create(caller, data)
- .map_err(pallet_evm_coder_substrate::dispatch_to_evm::<T>)?;
-
- let address = pallet_common::eth::collection_id_to_address(collection_id);
- Ok(address)
+ )
}
/// Check if a collection exists
pallets/unique/src/eth/stubs/CollectionHelpers.rawdiffbeforeafterbothbinary blob — no preview
pallets/unique/src/eth/stubs/CollectionHelpers.soldiffbeforeafterboth--- a/pallets/unique/src/eth/stubs/CollectionHelpers.sol
+++ b/pallets/unique/src/eth/stubs/CollectionHelpers.sol
@@ -72,12 +72,12 @@
string memory name,
string memory description,
string memory tokenPrefix
- ) public view returns (address) {
+ ) public returns (address) {
require(false, stub_error);
name;
description;
tokenPrefix;
- dummy;
+ dummy = 0;
return 0x0000000000000000000000000000000000000000;
}
primitives/data-structs/src/lib.rsdiffbeforeafterboth--- a/primitives/data-structs/src/lib.rs
+++ b/primitives/data-structs/src/lib.rs
@@ -1050,6 +1050,7 @@
pub enum PropertyScope {
None,
Rmrk,
+ Eth,
}
impl PropertyScope {
@@ -1058,6 +1059,7 @@
let scope_str: &[u8] = match self {
Self::None => return Ok(key),
Self::Rmrk => b"rmrk",
+ Self::Eth => b"eth",
};
[scope_str, b":", key.as_slice()]
runtime/common/weights.rsdiffbeforeafterboth--- a/runtime/common/weights.rs
+++ b/runtime/common/weights.rs
@@ -116,6 +116,10 @@
fn burn_recursively_breadth_raw(amount: u32) -> Weight {
max_weight_of!(burn_recursively_breadth_raw(amount))
}
+
+ fn token_owner() -> Weight {
+ max_weight_of!(token_owner())
+ }
}
#[cfg(feature = "refungible")]
tests/package.jsondiffbeforeafterboth--- a/tests/package.json
+++ b/tests/package.json
@@ -8,6 +8,7 @@
"@polkadot/typegen": "8.7.2-15",
"@types/chai": "^4.3.1",
"@types/chai-as-promised": "^7.1.5",
+ "@types/chai-like": "^1.1.1",
"@types/mocha": "^9.1.1",
"@types/node": "^17.0.35",
"@typescript-eslint/eslint-plugin": "^5.26.0",
@@ -96,6 +97,7 @@
"@polkadot/util-crypto": "9.4.1",
"bignumber.js": "^9.0.2",
"chai-as-promised": "^7.1.1",
+ "chai-like": "^1.1.1",
"find-process": "^1.4.7",
"solc": "0.8.14-fixed",
"web3": "^1.7.3"
tests/src/eth/api/CollectionHelpers.soldiffbeforeafterboth--- a/tests/src/eth/api/CollectionHelpers.sol
+++ b/tests/src/eth/api/CollectionHelpers.sol
@@ -48,7 +48,7 @@
string memory name,
string memory description,
string memory tokenPrefix
- ) external view returns (address);
+ ) external returns (address);
// Selector: createERC721MetadataCompatibleRFTCollection(string,string,string,string) a5596388
function createERC721MetadataCompatibleRFTCollection(
tests/src/eth/api/UniqueFungible.soldiffbeforeafterboth--- a/tests/src/eth/api/UniqueFungible.sol
+++ b/tests/src/eth/api/UniqueFungible.sol
@@ -22,13 +22,7 @@
);
}
-// Selector: 79cc6790
-interface ERC20UniqueExtensions is Dummy, ERC165 {
- // Selector: burnFrom(address,uint256) 79cc6790
- function burnFrom(address from, uint256 amount) external returns (bool);
-}
-
-// Selector: 7d9262e6
+// Selector: 6cf113cd
interface Collection is Dummy, ERC165 {
// Set collection property.
//
@@ -174,6 +168,27 @@
//
// Selector: setCollectionMintMode(bool) 00018e84
function setCollectionMintMode(bool mode) external;
+
+ // Check that account is the owner or admin of the collection
+ //
+ // @param user account to verify
+ // @return "true" if account is the owner or admin
+ //
+ // Selector: verifyOwnerOrAdmin(address) c2282493
+ function verifyOwnerOrAdmin(address user) external view returns (bool);
+
+ // Returns collection type
+ //
+ // @return `Fungible` or `NFT` or `ReFungible`
+ //
+ // Selector: uniqueCollectionType() d34b55b8
+ function uniqueCollectionType() external returns (string memory);
+}
+
+// Selector: 79cc6790
+interface ERC20UniqueExtensions is Dummy, ERC165 {
+ // Selector: burnFrom(address,uint256) 79cc6790
+ function burnFrom(address from, uint256 amount) external returns (bool);
}
// Selector: 942e8b22
tests/src/eth/api/UniqueNFT.soldiffbeforeafterboth--- a/tests/src/eth/api/UniqueNFT.sol
+++ b/tests/src/eth/api/UniqueNFT.sol
@@ -250,33 +250,7 @@
function finishMinting() external returns (bool);
}
-// Selector: 780e9d63
-interface ERC721Enumerable is Dummy, ERC165 {
- // @notice Enumerate valid NFTs
- // @param index A counter less than `totalSupply()`
- // @return The token identifier for the `index`th NFT,
- // (sort order not specified)
- //
- // Selector: tokenByIndex(uint256) 4f6ccce7
- function tokenByIndex(uint256 index) external view returns (uint256);
-
- // @dev Not implemented
- //
- // Selector: tokenOfOwnerByIndex(address,uint256) 2f745c59
- function tokenOfOwnerByIndex(address owner, uint256 index)
- external
- view
- returns (uint256);
-
- // @notice Count NFTs tracked by this contract
- // @return A count of valid NFTs tracked by this contract, where each one of
- // them has an assigned and queryable owner not equal to the zero address
- //
- // Selector: totalSupply() 18160ddd
- function totalSupply() external view returns (uint256);
-}
-
-// Selector: 7d9262e6
+// Selector: 6cf113cd
interface Collection is Dummy, ERC165 {
// Set collection property.
//
@@ -422,6 +396,47 @@
//
// Selector: setCollectionMintMode(bool) 00018e84
function setCollectionMintMode(bool mode) external;
+
+ // Check that account is the owner or admin of the collection
+ //
+ // @param user account to verify
+ // @return "true" if account is the owner or admin
+ //
+ // Selector: verifyOwnerOrAdmin(address) c2282493
+ function verifyOwnerOrAdmin(address user) external view returns (bool);
+
+ // Returns collection type
+ //
+ // @return `Fungible` or `NFT` or `ReFungible`
+ //
+ // Selector: uniqueCollectionType() d34b55b8
+ function uniqueCollectionType() external returns (string memory);
+}
+
+// Selector: 780e9d63
+interface ERC721Enumerable is Dummy, ERC165 {
+ // @notice Enumerate valid NFTs
+ // @param index A counter less than `totalSupply()`
+ // @return The token identifier for the `index`th NFT,
+ // (sort order not specified)
+ //
+ // Selector: tokenByIndex(uint256) 4f6ccce7
+ function tokenByIndex(uint256 index) external view returns (uint256);
+
+ // @dev Not implemented
+ //
+ // Selector: tokenOfOwnerByIndex(address,uint256) 2f745c59
+ function tokenOfOwnerByIndex(address owner, uint256 index)
+ external
+ view
+ returns (uint256);
+
+ // @notice Count NFTs tracked by this contract
+ // @return A count of valid NFTs tracked by this contract, where each one of
+ // them has an assigned and queryable owner not equal to the zero address
+ //
+ // Selector: totalSupply() 18160ddd
+ function totalSupply() external view returns (uint256);
}
// Selector: d74d154f
tests/src/eth/api/UniqueRefungible.soldiffbeforeafterboth--- a/tests/src/eth/api/UniqueRefungible.sol
+++ b/tests/src/eth/api/UniqueRefungible.sol
@@ -248,33 +248,7 @@
function finishMinting() external returns (bool);
}
-// Selector: 780e9d63
-interface ERC721Enumerable is Dummy, ERC165 {
- // @notice Enumerate valid RFTs
- // @param index A counter less than `totalSupply()`
- // @return The token identifier for the `index`th NFT,
- // (sort order not specified)
- //
- // Selector: tokenByIndex(uint256) 4f6ccce7
- function tokenByIndex(uint256 index) external view returns (uint256);
-
- // Not implemented
- //
- // Selector: tokenOfOwnerByIndex(address,uint256) 2f745c59
- function tokenOfOwnerByIndex(address owner, uint256 index)
- external
- view
- returns (uint256);
-
- // @notice Count RFTs tracked by this contract
- // @return A count of valid RFTs tracked by this contract, where each one of
- // them has an assigned and queryable owner not equal to the zero address
- //
- // Selector: totalSupply() 18160ddd
- function totalSupply() external view returns (uint256);
-}
-
-// Selector: 7d9262e6
+// Selector: 6cf113cd
interface Collection is Dummy, ERC165 {
// Set collection property.
//
@@ -420,9 +394,50 @@
//
// Selector: setCollectionMintMode(bool) 00018e84
function setCollectionMintMode(bool mode) external;
+
+ // Check that account is the owner or admin of the collection
+ //
+ // @param user account to verify
+ // @return "true" if account is the owner or admin
+ //
+ // Selector: verifyOwnerOrAdmin(address) c2282493
+ function verifyOwnerOrAdmin(address user) external view returns (bool);
+
+ // Returns collection type
+ //
+ // @return `Fungible` or `NFT` or `ReFungible`
+ //
+ // Selector: uniqueCollectionType() d34b55b8
+ function uniqueCollectionType() external returns (string memory);
+}
+
+// Selector: 780e9d63
+interface ERC721Enumerable is Dummy, ERC165 {
+ // @notice Enumerate valid RFTs
+ // @param index A counter less than `totalSupply()`
+ // @return The token identifier for the `index`th NFT,
+ // (sort order not specified)
+ //
+ // Selector: tokenByIndex(uint256) 4f6ccce7
+ function tokenByIndex(uint256 index) external view returns (uint256);
+
+ // Not implemented
+ //
+ // Selector: tokenOfOwnerByIndex(address,uint256) 2f745c59
+ function tokenOfOwnerByIndex(address owner, uint256 index)
+ external
+ view
+ returns (uint256);
+
+ // @notice Count RFTs tracked by this contract
+ // @return A count of valid RFTs tracked by this contract, where each one of
+ // them has an assigned and queryable owner not equal to the zero address
+ //
+ // Selector: totalSupply() 18160ddd
+ function totalSupply() external view returns (uint256);
}
-// Selector: d74d154f
+// Selector: 7c3bef89
interface ERC721UniqueExtensions is Dummy, ERC165 {
// @notice Transfer ownership of an RFT
// @dev Throws unless `msg.sender` is the current owner. Throws if `to`
@@ -473,6 +488,16 @@
function mintBulkWithTokenURI(address to, Tuple0[] memory tokens)
external
returns (bool);
+
+ // Returns EVM address for refungible token
+ //
+ // @param token ID of the token
+ //
+ // Selector: tokenContractAddress(uint256) ab76fac6
+ function tokenContractAddress(uint256 token)
+ external
+ view
+ returns (address);
}
interface UniqueRefungible is
tests/src/eth/api/UniqueRefungibleToken.soldiffbeforeafterboth--- a/tests/src/eth/api/UniqueRefungibleToken.sol
+++ b/tests/src/eth/api/UniqueRefungibleToken.sol
@@ -22,6 +22,23 @@
);
}
+// Selector: 042f1106
+interface ERC1633UniqueExtensions is Dummy, ERC165 {
+ // Selector: setParentNFT(address,uint256) 042f1106
+ function setParentNFT(address collection, uint256 nftId)
+ external
+ returns (bool);
+}
+
+// Selector: 5755c3f2
+interface ERC1633 is Dummy, ERC165 {
+ // Selector: parentToken() 80a54001
+ function parentToken() external view returns (address);
+
+ // Selector: parentTokenId() d7f083f3
+ function parentTokenId() external view returns (uint256);
+}
+
// Selector: 942e8b22
interface ERC20 is Dummy, ERC165, ERC20Events {
// @return the name of the token.
@@ -115,5 +132,7 @@
Dummy,
ERC165,
ERC20,
- ERC20UniqueExtensions
+ ERC20UniqueExtensions,
+ ERC1633,
+ ERC1633UniqueExtensions
{}
tests/src/eth/collectionAdmin.test.tsdiffbeforeafterboth--- a/tests/src/eth/collectionAdmin.test.ts
+++ b/tests/src/eth/collectionAdmin.test.ts
@@ -59,6 +59,22 @@
expect(adminList[0].asSubstrate.toString().toLocaleLowerCase())
.to.be.eq(newAdmin.address.toLocaleLowerCase());
});
+
+ itWeb3('Verify owner or admin', async ({api, web3, privateKeyWrapper}) => {
+ const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+ const collectionHelper = evmCollectionHelpers(web3, owner);
+
+ const result = await collectionHelper.methods
+ .createNonfungibleCollection('A', 'B', 'C')
+ .send();
+ const {collectionIdAddress} = await getCollectionAddressFromResult(api, result);
+
+ const newAdmin = createEthAccount(web3);
+ const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
+ expect(await collectionEvm.methods.verifyOwnerOrAdmin(newAdmin).call()).to.be.false;
+ await collectionEvm.methods.addCollectionAdmin(newAdmin).send();
+ expect(await collectionEvm.methods.verifyOwnerOrAdmin(newAdmin).call()).to.be.true;
+ });
itWeb3('(!negative tests!) Add admin by ADMIN is not allowed', async ({api, web3, privateKeyWrapper}) => {
const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
tests/src/eth/collectionHelpersAbi.jsondiffbeforeafterboth--- a/tests/src/eth/collectionHelpersAbi.json
+++ b/tests/src/eth/collectionHelpersAbi.json
@@ -61,7 +61,7 @@
],
"name": "createRefungibleCollection",
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
- "stateMutability": "view",
+ "stateMutability": "nonpayable",
"type": "function"
},
{
tests/src/eth/fractionalizer/Fractionalizer.bindiffbeforeafterboth--- /dev/null
+++ b/tests/src/eth/fractionalizer/Fractionalizer.bin
@@ -0,0 +1 @@
+60c0604052600a60805269526546756e6769626c6560b01b60a0527fcdb72fd4e1d0d6d4eebd7ab142113ec2b4b06ddb24324db5c287ef01ab484d6b60055534801561004a57600080fd5b50600480546001600160a01b0319163317905561137a8061006c6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063115091401461005c5780631b191ea214610071578063d470e60f14610084578063dbc38ad214610097578063eb292412146100aa575b600080fd5b61006f61006a366004610f85565b6100bd565b005b61006f61007f366004610ff2565b61035b565b61006f61009236600461108c565b6104c0565b61006f6100a53660046110b8565b61089d565b61006f6100b8366004611114565b610ee0565b6004546001600160a01b031633146100f05760405162461bcd60e51b81526004016100e79061114d565b60405180910390fd5b6000546001600160a01b0316156101495760405162461bcd60e51b815260206004820152601d60248201527f52465420636f6c6c656374696f6e20697320616c72656164792073657400000060448201526064016100e7565b60008190506000816001600160a01b031663d34b55b86040518163ffffffff1660e01b81526004016000604051808303816000875af1158015610190573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101b8919081019061118b565b905060055481805190602001201461022f5760405162461bcd60e51b815260206004820152603460248201527f57726f6e6720636f6c6c656374696f6e20747970652e20436f6c6c656374696f604482015273371034b9903737ba103932b33ab733b4b136329760611b60648201526084016100e7565b816001600160a01b03166304a460536040518163ffffffff1660e01b81526004016020604051808303816000875af115801561026f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610293919061125b565b6103055760405162461bcd60e51b815260206004820152603c60248201527f4672616374696f6e616c697a657220636f6e74726163742073686f756c64206260448201527f6520616e2061646d696e206f662074686520636f6c6c656374696f6e0000000060648201526084016100e7565b600080546001600160a01b0319166001600160a01b0385169081179091556040519081527f7186a599bf2297b1f4c8957d30b0965291eee0021a5f9a0aeb54dcbd1ffdceef9060200160405180910390a1505050565b6004546001600160a01b031633146103855760405162461bcd60e51b81526004016100e79061114d565b6000546001600160a01b0316156103de5760405162461bcd60e51b815260206004820152601d60248201527f52465420636f6c6c656374696f6e20697320616c72656164792073657400000060448201526064016100e7565b6040516344a68ad560e01b8152736c4e9fe1ae37a41e93cee429e8e1881abdcbb54f9081906344a68ad590610421908a908a908a908a908a908a906004016112a1565b6020604051808303816000875af1158015610440573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061046491906112ea565b600080546001600160a01b0319166001600160a01b039290921691821790556040519081527f7186a599bf2297b1f4c8957d30b0965291eee0021a5f9a0aeb54dcbd1ffdceef906020015b60405180910390a150505050505050565b6000546001600160a01b03166105145760405162461bcd60e51b81526020600482015260196024820152781491950818dbdb1b1958dd1a5bdb881a5cc81b9bdd081cd95d603a1b60448201526064016100e7565b6000546001600160a01b038381169116146105685760405162461bcd60e51b81526020600482015260146024820152732bb937b7339029232a1031b7b63632b1ba34b7b760611b60448201526064016100e7565b600080546040516355bb7d6360e11b8152600481018490526001600160a01b039091169190829063ab76fac690602401602060405180830381865afa1580156105b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d991906112ea565b6001600160a01b03808216600090815260036020908152604091829020825180840190935280549093168083526001909301549082015291925061065f5760405162461bcd60e51b815260206004820181905260248201527f4e6f20636f72726573706f6e64696e67204e465420746f6b656e20666f756e6460448201526064016100e7565b6000829050806001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c69190611307565b6040516370a0823160e01b81523360048201526001600160a01b038316906370a0823190602401602060405180830381865afa15801561070a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061072e9190611307565b1461078a5760405162461bcd60e51b815260206004820152602660248201527f4e6f7420616c6c2070696563657320617265206f776e6564206279207468652060448201526531b0b63632b960d11b60648201526084016100e7565b6040516323b872dd60e01b81526001600160a01b038516906323b872dd906107ba90339030908a90600401611320565b600060405180830381600087803b1580156107d457600080fd5b505af11580156107e8573d6000803e3d6000fd5b5050835160208501516040516323b872dd60e01b81526001600160a01b0390921693506323b872dd92506108229130913391600401611320565b600060405180830381600087803b15801561083c57600080fd5b505af1158015610850573d6000803e3d6000fd5b5050835160208501516040517fe9e9808d24ff79ccc3b1ecf48be7b2d11591adccc452150d0d7947cb48eb0d53945061088d935087929190611320565b60405180910390a1505050505050565b6000546001600160a01b03166108f15760405162461bcd60e51b81526020600482015260196024820152781491950818dbdb1b1958dd1a5bdb881a5cc81b9bdd081cd95d603a1b60448201526064016100e7565b600080546001600160a01b0385811683526001602081905260409093205491169160ff90911615151461098c5760405162461bcd60e51b815260206004820152603c60248201527f4672616374696f6e616c697a6174696f6e206f66207468697320636f6c6c656360448201527f74696f6e206973206e6f7420616c6c6f7765642062792061646d696e0000000060648201526084016100e7565b6040516331a9108f60e11b81526004810184905233906001600160a01b03861690636352211e90602401602060405180830381865afa1580156109d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f791906112ea565b6001600160a01b031614610a5d5760405162461bcd60e51b815260206004820152602760248201527f4f6e6c7920746f6b656e206f776e657220636f756c64206672616374696f6e616044820152661b1a5e99481a5d60ca1b60648201526084016100e7565b6040516323b872dd60e01b81526001600160a01b038516906323b872dd90610a8d90339030908890600401611320565b600060405180830381600087803b158015610aa757600080fd5b505af1158015610abb573d6000803e3d6000fd5b505050506001600160a01b0384166000908152600260209081526040808320868452909152812054819081908103610d0757836001600160a01b03166375794a3c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4f9190611307565b6040516340c10f1960e01b8152306004820152602481018290529093506001600160a01b038516906340c10f19906044016020604051808303816000875af1158015610b9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc3919061125b565b506040516355bb7d6360e11b8152600481018490526001600160a01b0385169063ab76fac690602401602060405180830381865afa158015610c09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2d91906112ea565b6001600160a01b0388811660008181526002602090815260408083208c84528252808320899055805180820182528481528083018d8152878716808652600390945293829020905181546001600160a01b0319169616959095178555915160019094019390935551630217888360e11b81526004810191909152602481018990529193508392509063042f1106906044016020604051808303816000875af1158015610cdd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d01919061125b565b50610d98565b6001600160a01b0387811660009081526002602090815260408083208a8452909152908190205490516355bb7d6360e11b8152600481018290529094509085169063ab76fac690602401602060405180830381865afa158015610d6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9291906112ea565b91508190505b60405163d2418ca760e01b81526001600160801b03861660048201526001600160a01b0382169063d2418ca7906024016020604051808303816000875af1158015610de7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0b919061125b565b5060405163a9059cbb60e01b81523360048201526001600160801b03861660248201526001600160a01b0382169063a9059cbb906044016020604051808303816000875af1158015610e61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e85919061125b565b50604080516001600160a01b03808a168252602082018990528416918101919091526001600160801b03861660608201527f29f372538523984f33874da1b50e596ce0f180a6eb04d7ff22bb2ce80e1576b6906080016104af565b6004546001600160a01b03163314610f0a5760405162461bcd60e51b81526004016100e79061114d565b6001600160a01b038216600081815260016020908152604091829020805460ff19168515159081179091558251938452908301527f6dad0aed33f4b7f07095619b668698e17943fd9f4c83e7cfcc7f6dd880a11588910160405180910390a15050565b6001600160a01b0381168114610f8257600080fd5b50565b600060208284031215610f9757600080fd5b8135610fa281610f6d565b9392505050565b60008083601f840112610fbb57600080fd5b50813567ffffffffffffffff811115610fd357600080fd5b602083019150836020828501011115610feb57600080fd5b9250929050565b6000806000806000806060878903121561100b57600080fd5b863567ffffffffffffffff8082111561102357600080fd5b61102f8a838b01610fa9565b9098509650602089013591508082111561104857600080fd5b6110548a838b01610fa9565b9096509450604089013591508082111561106d57600080fd5b5061107a89828a01610fa9565b979a9699509497509295939492505050565b6000806040838503121561109f57600080fd5b82356110aa81610f6d565b946020939093013593505050565b6000806000606084860312156110cd57600080fd5b83356110d881610f6d565b92506020840135915060408401356001600160801b03811681146110fb57600080fd5b809150509250925092565b8015158114610f8257600080fd5b6000806040838503121561112757600080fd5b823561113281610f6d565b9150602083013561114281611106565b809150509250929050565b6020808252600e908201526d27b7363c9037bbb732b91031b0b760911b604082015260600190565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561119e57600080fd5b825167ffffffffffffffff808211156111b657600080fd5b818501915085601f8301126111ca57600080fd5b8151818111156111dc576111dc611175565b604051601f8201601f19908116603f0116810190838211818310171561120457611204611175565b81604052828152888684870101111561121c57600080fd5b600093505b8284101561123e5784840186015181850187015292850192611221565b8284111561124f5760008684830101525b98975050505050505050565b60006020828403121561126d57600080fd5b8151610fa281611106565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006112b560608301888a611278565b82810360208401526112c8818789611278565b905082810360408401526112dd818587611278565b9998505050505050505050565b6000602082840312156112fc57600080fd5b8151610fa281610f6d565b60006020828403121561131957600080fd5b5051919050565b6001600160a01b03938416815291909216602082015260408101919091526060019056fea2646970667358221220a118fe8c3b83b3933baa7bfe084ed165a014ec509367252e5c99e1a3332d000364736f6c634300080f0033
\ No newline at end of file
tests/src/eth/fractionalizer/Fractionalizer.soldiffbeforeafterboth--- /dev/null
+++ b/tests/src/eth/fractionalizer/Fractionalizer.sol
@@ -0,0 +1,189 @@
+// SPDX-License-Identifier: Apache License
+pragma solidity >=0.8.0;
+import {CollectionHelpers} from "../api/CollectionHelpers.sol";
+import {ContractHelpers} from "../api/ContractHelpers.sol";
+import {UniqueRefungibleToken} from "../api/UniqueRefungibleToken.sol";
+import {UniqueRefungible} from "../api/UniqueRefungible.sol";
+import {UniqueNFT} from "../api/UniqueNFT.sol";
+
+/// @dev Fractionalization contract. It stores mappings between NFT and RFT tokens,
+/// stores allowlist of NFT tokens available for fractionalization, has methods
+/// for fractionalization and defractionalization of NFT tokens.
+contract Fractionalizer {
+ struct Token {
+ address _collection;
+ uint256 _tokenId;
+ }
+ address rftCollection;
+ mapping(address => bool) nftCollectionAllowList;
+ mapping(address => mapping(uint256 => uint256)) nft2rftMapping;
+ mapping(address => Token) rft2nftMapping;
+ bytes32 refungibleCollectionType = keccak256(bytes("ReFungible"));
+
+ receive() external payable onlyOwner {}
+
+ /// @dev Method modifier to only allow contract owner to call it.
+ modifier onlyOwner() {
+ address contracthelpersAddress = 0x842899ECF380553E8a4de75bF534cdf6fBF64049;
+ ContractHelpers contractHelpers = ContractHelpers(contracthelpersAddress);
+ address contractOwner = contractHelpers.contractOwner(address(this));
+ require(msg.sender == contractOwner, "Only owner can");
+ _;
+ }
+
+ /// @dev This emits when RFT collection setting is changed.
+ event RFTCollectionSet(address _collection);
+
+ /// @dev This emits when NFT collection is allowed or disallowed.
+ event AllowListSet(address _collection, bool _status);
+
+ /// @dev This emits when NFT token is fractionalized by contract.
+ event Fractionalized(address _collection, uint256 _tokenId, address _rftToken, uint128 _amount);
+
+ /// @dev This emits when NFT token is defractionalized by contract.
+ event Defractionalized(address _rftToken, address _nftCollection, uint256 _nftTokenId);
+
+ /// Set RFT collection that contract will work with. RFT tokens for fractionalized NFT tokens
+ /// would be created in this collection.
+ /// @dev Throws if RFT collection is already configured for this contract.
+ /// Throws if collection of wrong type (NFT, Fungible) is provided instead
+ /// of RFT collection.
+ /// Throws if `msg.sender` is not owner or admin of provided RFT collection.
+ /// Can only be called by contract owner.
+ /// @param _collection address of RFT collection.
+ function setRFTCollection(address _collection) public onlyOwner {
+ require(
+ rftCollection == address(0),
+ "RFT collection is already set"
+ );
+ UniqueRefungible refungibleContract = UniqueRefungible(_collection);
+ string memory collectionType = refungibleContract.uniqueCollectionType();
+
+ require(
+ keccak256(bytes(collectionType)) == refungibleCollectionType,
+ "Wrong collection type. Collection is not refungible."
+ );
+ require(
+ refungibleContract.verifyOwnerOrAdmin(address(this)),
+ "Fractionalizer contract should be an admin of the collection"
+ );
+ rftCollection = _collection;
+ emit RFTCollectionSet(rftCollection);
+ }
+
+ /// Creates and sets RFT collection that contract will work with. RFT tokens for fractionalized NFT tokens
+ /// would be created in this collection.
+ /// @dev Throws if RFT collection is already configured for this contract.
+ /// Can only be called by contract owner.
+ /// @param _name name for created RFT collection.
+ /// @param _description description for created RFT collection.
+ /// @param _tokenPrefix token prefix for created RFT collection.
+ function createAndSetRFTCollection(string calldata _name, string calldata _description, string calldata _tokenPrefix) public onlyOwner {
+ require(
+ rftCollection == address(0),
+ "RFT collection is already set"
+ );
+ address collectionHelpers = 0x6C4E9fE1AE37a41E93CEE429e8E1881aBdcbb54F;
+ rftCollection = CollectionHelpers(collectionHelpers).createRefungibleCollection(_name, _description, _tokenPrefix);
+ emit RFTCollectionSet(rftCollection);
+ }
+
+ /// Allow or disallow NFT collection tokens from being fractionalized by this contract.
+ /// @dev Can only be called by contract owner.
+ /// @param collection NFT token address.
+ /// @param status `true` to allow and `false` to disallow NFT token.
+ function setNftCollectionIsAllowed(address collection, bool status) public onlyOwner {
+ nftCollectionAllowList[collection] = status;
+ emit AllowListSet(collection, status);
+ }
+
+ /// Fractionilize NFT token.
+ /// @dev Takes NFT token from `msg.sender` and transfers RFT token to `msg.sender`
+ /// instead. Creates new RFT token if provided NFT token never was fractionalized
+ /// by this contract or existing RFT token if it was.
+ /// Throws if RFT collection isn't configured for this contract.
+ /// Throws if fractionalization of provided NFT token is not allowed
+ /// Throws if `msg.sender` is not owner of provided NFT token
+ /// @param _collection NFT collection address
+ /// @param _token id of NFT token to be fractionalized
+ /// @param _pieces number of pieces new RFT token would have
+ function nft2rft(address _collection, uint256 _token, uint128 _pieces) public {
+ require(
+ rftCollection != address(0),
+ "RFT collection is not set"
+ );
+ UniqueRefungible rftCollectionContract = UniqueRefungible(rftCollection);
+ require(
+ nftCollectionAllowList[_collection] == true,
+ "Fractionalization of this collection is not allowed by admin"
+ );
+ require(
+ UniqueNFT(_collection).ownerOf(_token) == msg.sender,
+ "Only token owner could fractionalize it"
+ );
+ UniqueNFT(_collection).transferFrom(
+ msg.sender,
+ address(this),
+ _token
+ );
+ uint256 rftTokenId;
+ address rftTokenAddress;
+ UniqueRefungibleToken rftTokenContract;
+ if (nft2rftMapping[_collection][_token] == 0) {
+ rftTokenId = rftCollectionContract.nextTokenId();
+ rftCollectionContract.mint(address(this), rftTokenId);
+ rftTokenAddress = rftCollectionContract.tokenContractAddress(rftTokenId);
+ nft2rftMapping[_collection][_token] = rftTokenId;
+ rft2nftMapping[rftTokenAddress] = Token(_collection, _token);
+
+ rftTokenContract = UniqueRefungibleToken(rftTokenAddress);
+ rftTokenContract.setParentNFT(_collection, _token);
+ } else {
+ rftTokenId = nft2rftMapping[_collection][_token];
+ rftTokenAddress = rftCollectionContract.tokenContractAddress(rftTokenId);
+ rftTokenContract = UniqueRefungibleToken(rftTokenAddress);
+ }
+ rftTokenContract.repartition(_pieces);
+ rftTokenContract.transfer(msg.sender, _pieces);
+ emit Fractionalized(_collection, _token, rftTokenAddress, _pieces);
+ }
+
+ /// Defrationalize NFT token.
+ /// @dev Takes RFT token from `msg.sender` and transfers corresponding NFT token
+ /// to `msg.sender` instead.
+ /// Throws if RFT collection isn't configured for this contract.
+ /// Throws if provided RFT token is no from configured RFT collection.
+ /// Throws if RFT token was not created by this contract.
+ /// Throws if `msg.sender` isn't owner of all RFT token pieces.
+ /// @param _collection RFT collection address
+ /// @param _token id of RFT token
+ function rft2nft(address _collection, uint256 _token) public {
+ require(
+ rftCollection != address(0),
+ "RFT collection is not set"
+ );
+ require(
+ rftCollection == _collection,
+ "Wrong RFT collection"
+ );
+ UniqueRefungible rftCollectionContract = UniqueRefungible(rftCollection);
+ address rftTokenAddress = rftCollectionContract.tokenContractAddress(_token);
+ Token memory nftToken = rft2nftMapping[rftTokenAddress];
+ require(
+ nftToken._collection != address(0),
+ "No corresponding NFT token found"
+ );
+ UniqueRefungibleToken rftTokenContract = UniqueRefungibleToken(rftTokenAddress);
+ require(
+ rftTokenContract.balanceOf(msg.sender) == rftTokenContract.totalSupply(),
+ "Not all pieces are owned by the caller"
+ );
+ rftCollectionContract.transferFrom(msg.sender, address(this), _token);
+ UniqueNFT(nftToken._collection).transferFrom(
+ address(this),
+ msg.sender,
+ nftToken._tokenId
+ );
+ emit Defractionalized(rftTokenAddress, nftToken._collection, nftToken._tokenId);
+ }
+}
\ No newline at end of file
tests/src/eth/fractionalizer/FractionalizerAbi.jsondiffbeforeafterboth--- /dev/null
+++ b/tests/src/eth/fractionalizer/FractionalizerAbi.json
@@ -0,0 +1,142 @@
+[
+ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_collection",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "_status",
+ "type": "bool"
+ }
+ ],
+ "name": "AllowListSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_rftToken",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_nftCollection",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "_nftTokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Defractionalized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_collection",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "_tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_rftToken",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint128",
+ "name": "_amount",
+ "type": "uint128"
+ }
+ ],
+ "name": "Fractionalized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_collection",
+ "type": "address"
+ }
+ ],
+ "name": "RFTCollectionSet",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ { "internalType": "string", "name": "_name", "type": "string" },
+ { "internalType": "string", "name": "_description", "type": "string" },
+ { "internalType": "string", "name": "_tokenPrefix", "type": "string" }
+ ],
+ "name": "createAndSetRFTCollection",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "_collection", "type": "address" },
+ { "internalType": "uint256", "name": "_token", "type": "uint256" },
+ { "internalType": "uint128", "name": "_pieces", "type": "uint128" }
+ ],
+ "name": "nft2rft",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "_collection", "type": "address" },
+ { "internalType": "uint256", "name": "_token", "type": "uint256" }
+ ],
+ "name": "rft2nft",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "collection", "type": "address" },
+ { "internalType": "bool", "name": "status", "type": "bool" }
+ ],
+ "name": "setNftCollectionIsAllowed",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "_collection", "type": "address" }
+ ],
+ "name": "setRFTCollection",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+]
tests/src/eth/fractionalizer/fractionalizer.test.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/eth/fractionalizer/fractionalizer.test.ts
@@ -0,0 +1,470 @@
+// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.
+// This file is part of Unique Network.
+
+// Unique Network is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Unique Network is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
+
+
+import Web3 from 'web3';
+import {ApiPromise} from '@polkadot/api';
+import {evmToAddress} from '@polkadot/util-crypto';
+import {readFile} from 'fs/promises';
+import {executeTransaction, submitTransactionAsync} from '../../substrate/substrate-api';
+import {getCreateCollectionResult, getCreateItemResult, UNIQUE} from '../../util/helpers';
+import {collectionIdToAddress, CompiledContract, createEthAccountWithBalance, createNonfungibleCollection, createRefungibleCollection, GAS_ARGS, itWeb3, tokenIdFromAddress, uniqueNFT, uniqueRefungible, uniqueRefungibleToken} from '../util/helpers';
+import {Contract} from 'web3-eth-contract';
+import * as solc from 'solc';
+
+import chai from 'chai';
+import chaiLike from 'chai-like';
+import {IKeyringPair} from '@polkadot/types/types';
+chai.use(chaiLike);
+const expect = chai.expect;
+let fractionalizer: CompiledContract;
+
+async function compileFractionalizer() {
+ if (!fractionalizer) {
+ const input = {
+ language: 'Solidity',
+ sources: {
+ ['Fractionalizer.sol']: {
+ content: (await readFile(`${__dirname}/Fractionalizer.sol`)).toString(),
+ },
+ },
+ settings: {
+ outputSelection: {
+ '*': {
+ '*': ['*'],
+ },
+ },
+ },
+ };
+ const json = JSON.parse(solc.compile(JSON.stringify(input), {import: await findImports()}));
+ const out = json.contracts['Fractionalizer.sol']['Fractionalizer'];
+
+ fractionalizer = {
+ abi: out.abi,
+ object: '0x' + out.evm.bytecode.object,
+ };
+ }
+ return fractionalizer;
+}
+
+async function findImports() {
+ const collectionHelpers = (await readFile(`${__dirname}/../api/CollectionHelpers.sol`)).toString();
+ const contractHelpers = (await readFile(`${__dirname}/../api/ContractHelpers.sol`)).toString();
+ const uniqueRefungibleToken = (await readFile(`${__dirname}/../api/UniqueRefungibleToken.sol`)).toString();
+ const uniqueRefungible = (await readFile(`${__dirname}/../api/UniqueRefungible.sol`)).toString();
+ const uniqueNFT = (await readFile(`${__dirname}/../api/UniqueNFT.sol`)).toString();
+
+ return function(path: string) {
+ switch (path) {
+ case 'api/CollectionHelpers.sol': return {contents: `${collectionHelpers}`};
+ case 'api/ContractHelpers.sol': return {contents: `${contractHelpers}`};
+ case 'api/UniqueRefungibleToken.sol': return {contents: `${uniqueRefungibleToken}`};
+ case 'api/UniqueRefungible.sol': return {contents: `${uniqueRefungible}`};
+ case 'api/UniqueNFT.sol': return {contents: `${uniqueNFT}`};
+ default: return {error: 'File not found'};
+ }
+ };
+}
+
+async function deployFractionalizer(web3: Web3, owner: string) {
+ const compiled = await compileFractionalizer();
+ const fractionalizerContract = new web3.eth.Contract(compiled.abi, undefined, {
+ data: compiled.object,
+ from: owner,
+ ...GAS_ARGS,
+ });
+ return await fractionalizerContract.deploy({data: compiled.object}).send({from: owner});
+}
+
+async function initFractionalizer(api: ApiPromise, web3: Web3, privateKeyWrapper: (account: string) => IKeyringPair, owner: string) {
+ const fractionalizer = await deployFractionalizer(web3, owner);
+ const amount = 10n * UNIQUE;
+ await web3.eth.sendTransaction({from: owner, to: fractionalizer.options.address, value: `${amount}`, ...GAS_ARGS});
+ const result = await fractionalizer.methods.createAndSetRFTCollection('A', 'B', 'C').send();
+ const rftCollectionAddress = result.events.RFTCollectionSet.returnValues._collection;
+ return {fractionalizer, rftCollectionAddress};
+}
+
+async function createRFTToken(api: ApiPromise, web3: Web3, owner: string, fractionalizer: Contract, amount: bigint) {
+ const {collectionIdAddress: nftCollectionAddress} = await createNonfungibleCollection(api, web3, owner);
+ const nftContract = uniqueNFT(web3, nftCollectionAddress, owner);
+ const nftTokenId = await nftContract.methods.nextTokenId().call();
+ await nftContract.methods.mint(owner, nftTokenId).send();
+
+ await fractionalizer.methods.setNftCollectionIsAllowed(nftCollectionAddress, true).send();
+ await nftContract.methods.approve(fractionalizer.options.address, nftTokenId).send();
+ const result = await fractionalizer.methods.nft2rft(nftCollectionAddress, nftTokenId, amount).send();
+ const {_collection, _tokenId, _rftToken} = result.events.Fractionalized.returnValues;
+ return {
+ nftCollectionAddress: _collection,
+ nftTokenId: _tokenId,
+ rftTokenAddress: _rftToken,
+ };
+}
+
+describe('Fractionalizer contract usage', () => {
+ itWeb3('Set RFT collection', async ({api, web3, privateKeyWrapper}) => {
+ const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+ const fractionalizer = await deployFractionalizer(web3, owner);
+ const {collectionIdAddress} = await createRefungibleCollection(api, web3, owner);
+ const refungibleContract = uniqueRefungible(web3, collectionIdAddress, owner);
+ await refungibleContract.methods.addCollectionAdmin(fractionalizer.options.address).send();
+ const result = await fractionalizer.methods.setRFTCollection(collectionIdAddress).send();
+ expect(result.events).to.be.like({
+ RFTCollectionSet: {
+ returnValues: {
+ _collection: collectionIdAddress,
+ },
+ },
+ });
+ });
+
+ itWeb3('Mint RFT collection', async ({api, web3, privateKeyWrapper}) => {
+ const alice = privateKeyWrapper('//Alice');
+ const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+ const fractionalizer = await deployFractionalizer(web3, owner);
+ const tx = api.tx.balances.transfer(evmToAddress(fractionalizer.options.address), 10n * UNIQUE);
+ await submitTransactionAsync(alice, tx);
+
+ const result = await fractionalizer.methods.createAndSetRFTCollection('A', 'B', 'C').send({from: owner});
+ expect(result.events).to.be.like({
+ RFTCollectionSet: {},
+ });
+ expect(result.events.RFTCollectionSet.returnValues._collection).to.be.ok;
+ });
+
+ itWeb3('Set Allowlist', async ({api, web3, privateKeyWrapper}) => {
+ const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+ const {fractionalizer} = await initFractionalizer(api, web3, privateKeyWrapper, owner);
+ const {collectionIdAddress: nftCollectionAddress} = await createNonfungibleCollection(api, web3, owner);
+ const result1 = await fractionalizer.methods.setNftCollectionIsAllowed(nftCollectionAddress, true).send({from: owner});
+ expect(result1.events).to.be.like({
+ AllowListSet: {
+ returnValues: {
+ _collection: nftCollectionAddress,
+ _status: true,
+ },
+ },
+ });
+ const result2 = await fractionalizer.methods.setNftCollectionIsAllowed(nftCollectionAddress, false).send({from: owner});
+ expect(result2.events).to.be.like({
+ AllowListSet: {
+ returnValues: {
+ _collection: nftCollectionAddress,
+ _status: false,
+ },
+ },
+ });
+ });
+
+ itWeb3('NFT to RFT', async ({api, web3, privateKeyWrapper}) => {
+ const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+
+ const {collectionIdAddress: nftCollectionAddress} = await createNonfungibleCollection(api, web3, owner);
+ const nftContract = uniqueNFT(web3, nftCollectionAddress, owner);
+ const nftTokenId = await nftContract.methods.nextTokenId().call();
+ await nftContract.methods.mint(owner, nftTokenId).send();
+
+ const {fractionalizer} = await initFractionalizer(api, web3, privateKeyWrapper, owner);
+
+ await fractionalizer.methods.setNftCollectionIsAllowed(nftCollectionAddress, true).send();
+ await nftContract.methods.approve(fractionalizer.options.address, nftTokenId).send();
+ const result = await fractionalizer.methods.nft2rft(nftCollectionAddress, nftTokenId, 100).send();
+ expect(result.events).to.be.like({
+ Fractionalized: {
+ returnValues: {
+ _collection: nftCollectionAddress,
+ _tokenId: nftTokenId,
+ _amount: '100',
+ },
+ },
+ });
+ const rftTokenAddress = result.events.Fractionalized.returnValues._rftToken;
+ const rftTokenContract = uniqueRefungibleToken(web3, rftTokenAddress, owner);
+ expect(await rftTokenContract.methods.balanceOf(owner).call()).to.equal('100');
+ });
+
+ itWeb3('RFT to NFT', async ({api, web3, privateKeyWrapper}) => {
+ const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+
+ const {fractionalizer, rftCollectionAddress} = await initFractionalizer(api, web3, privateKeyWrapper, owner);
+ const {rftTokenAddress, nftCollectionAddress, nftTokenId} = await createRFTToken(api, web3, owner, fractionalizer, 100n);
+
+ const {collectionId, tokenId} = tokenIdFromAddress(rftTokenAddress);
+ const refungibleAddress = collectionIdToAddress(collectionId);
+ expect(rftCollectionAddress).to.be.equal(refungibleAddress);
+ const refungibleTokenContract = uniqueRefungibleToken(web3, rftTokenAddress, owner);
+ await refungibleTokenContract.methods.approve(fractionalizer.options.address, 100).send();
+ const result = await fractionalizer.methods.rft2nft(refungibleAddress, tokenId).send();
+ expect(result.events).to.be.like({
+ Defractionalized: {
+ returnValues: {
+ _rftToken: rftTokenAddress,
+ _nftCollection: nftCollectionAddress,
+ _nftTokenId: nftTokenId,
+ },
+ },
+ });
+ });
+});
+
+
+
+describe('Negative Integration Tests for fractionalizer', () => {
+ itWeb3('call setRFTCollection twice', async ({api, web3, privateKeyWrapper}) => {
+ const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+ const {collectionIdAddress} = await createRefungibleCollection(api, web3, owner);
+ const refungibleContract = uniqueRefungible(web3, collectionIdAddress, owner);
+
+ const fractionalizer = await deployFractionalizer(web3, owner);
+ await refungibleContract.methods.addCollectionAdmin(fractionalizer.options.address).send();
+ await fractionalizer.methods.setRFTCollection(collectionIdAddress).send();
+
+ await expect(fractionalizer.methods.setRFTCollection(collectionIdAddress).call())
+ .to.be.rejectedWith(/RFT collection is already set$/g);
+ });
+
+ itWeb3('call setRFTCollection with NFT collection', async ({api, web3, privateKeyWrapper}) => {
+ const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+ const {collectionIdAddress} = await createNonfungibleCollection(api, web3, owner);
+ const nftContract = uniqueNFT(web3, collectionIdAddress, owner);
+
+ const fractionalizer = await deployFractionalizer(web3, owner);
+ await nftContract.methods.addCollectionAdmin(fractionalizer.options.address).send();
+
+ await expect(fractionalizer.methods.setRFTCollection(collectionIdAddress).call())
+ .to.be.rejectedWith(/Wrong collection type. Collection is not refungible.$/g);
+ });
+
+ itWeb3('call setRFTCollection while not collection admin', async ({api, web3, privateKeyWrapper}) => {
+ const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+ const fractionalizer = await deployFractionalizer(web3, owner);
+ const {collectionIdAddress} = await createRefungibleCollection(api, web3, owner);
+
+ await expect(fractionalizer.methods.setRFTCollection(collectionIdAddress).call())
+ .to.be.rejectedWith(/Fractionalizer contract should be an admin of the collection$/g);
+ });
+
+ itWeb3('call setRFTCollection after createAndSetRFTCollection', async ({api, web3, privateKeyWrapper}) => {
+ const alice = privateKeyWrapper('//Alice');
+ const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+ const fractionalizer = await deployFractionalizer(web3, owner);
+ const tx = api.tx.balances.transfer(evmToAddress(fractionalizer.options.address), 10n * UNIQUE);
+ await submitTransactionAsync(alice, tx);
+
+ const result = await fractionalizer.methods.createAndSetRFTCollection('A', 'B', 'C').send({from: owner});
+ const collectionIdAddress = result.events.RFTCollectionSet.returnValues._collection;
+
+ await expect(fractionalizer.methods.setRFTCollection(collectionIdAddress).call())
+ .to.be.rejectedWith(/RFT collection is already set$/g);
+ });
+
+ itWeb3('call nft2rft without setting RFT collection for contract', async ({api, web3, privateKeyWrapper}) => {
+ const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+
+ const {collectionIdAddress: nftCollectionAddress} = await createNonfungibleCollection(api, web3, owner);
+ const nftContract = uniqueNFT(web3, nftCollectionAddress, owner);
+ const nftTokenId = await nftContract.methods.nextTokenId().call();
+ await nftContract.methods.mint(owner, nftTokenId).send();
+
+ const fractionalizer = await deployFractionalizer(web3, owner);
+
+ await expect(fractionalizer.methods.nft2rft(nftCollectionAddress, nftTokenId, 100).call())
+ .to.be.rejectedWith(/RFT collection is not set$/g);
+ });
+
+ itWeb3('call nft2rft while not owner of NFT token', async ({api, web3, privateKeyWrapper}) => {
+ const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+ const nftOwner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+
+ const {collectionIdAddress: nftCollectionAddress} = await createNonfungibleCollection(api, web3, owner);
+ const nftContract = uniqueNFT(web3, nftCollectionAddress, owner);
+ const nftTokenId = await nftContract.methods.nextTokenId().call();
+ await nftContract.methods.mint(owner, nftTokenId).send();
+ await nftContract.methods.transfer(nftOwner, 1).send();
+
+
+ const {fractionalizer} = await initFractionalizer(api, web3, privateKeyWrapper, owner);
+ await fractionalizer.methods.setNftCollectionIsAllowed(nftCollectionAddress, true).send();
+
+ await expect(fractionalizer.methods.nft2rft(nftCollectionAddress, nftTokenId, 100).call())
+ .to.be.rejectedWith(/Only token owner could fractionalize it$/g);
+ });
+
+ itWeb3('call nft2rft while not in list of allowed accounts', async ({api, web3, privateKeyWrapper}) => {
+ const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+
+ const {collectionIdAddress: nftCollectionAddress} = await createNonfungibleCollection(api, web3, owner);
+ const nftContract = uniqueNFT(web3, nftCollectionAddress, owner);
+ const nftTokenId = await nftContract.methods.nextTokenId().call();
+ await nftContract.methods.mint(owner, nftTokenId).send();
+
+ const {fractionalizer} = await initFractionalizer(api, web3, privateKeyWrapper, owner);
+
+ await nftContract.methods.approve(fractionalizer.options.address, nftTokenId).send();
+ await expect(fractionalizer.methods.nft2rft(nftCollectionAddress, nftTokenId, 100).call())
+ .to.be.rejectedWith(/Fractionalization of this collection is not allowed by admin$/g);
+ });
+
+ itWeb3('call nft2rft while fractionalizer doesnt have approval for nft token', async ({api, web3, privateKeyWrapper}) => {
+ const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+
+ const {collectionIdAddress: nftCollectionAddress} = await createNonfungibleCollection(api, web3, owner);
+ const nftContract = uniqueNFT(web3, nftCollectionAddress, owner);
+ const nftTokenId = await nftContract.methods.nextTokenId().call();
+ await nftContract.methods.mint(owner, nftTokenId).send();
+
+ const {fractionalizer} = await initFractionalizer(api, web3, privateKeyWrapper, owner);
+
+ await fractionalizer.methods.setNftCollectionIsAllowed(nftCollectionAddress, true).send();
+ await expect(fractionalizer.methods.nft2rft(nftCollectionAddress, nftTokenId, 100).call())
+ .to.be.rejectedWith(/ApprovedValueTooLow$/g);
+ });
+
+ itWeb3('call rft2nft without setting RFT collection for contract', async ({api, web3, privateKeyWrapper}) => {
+ const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+
+ const fractionalizer = await deployFractionalizer(web3, owner);
+ const {collectionIdAddress: rftCollectionAddress} = await createRefungibleCollection(api, web3, owner);
+ const refungibleContract = uniqueRefungible(web3, rftCollectionAddress, owner);
+ const rftTokenId = await refungibleContract.methods.nextTokenId().call();
+ await refungibleContract.methods.mint(owner, rftTokenId).send();
+
+ await expect(fractionalizer.methods.rft2nft(rftCollectionAddress, rftTokenId).call())
+ .to.be.rejectedWith(/RFT collection is not set$/g);
+ });
+
+ itWeb3('call rft2nft for RFT token that is not from configured RFT collection', async ({api, web3, privateKeyWrapper}) => {
+ const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+
+ const {fractionalizer} = await initFractionalizer(api, web3, privateKeyWrapper, owner);
+ const {collectionIdAddress: rftCollectionAddress} = await createRefungibleCollection(api, web3, owner);
+ const refungibleContract = uniqueRefungible(web3, rftCollectionAddress, owner);
+ const rftTokenId = await refungibleContract.methods.nextTokenId().call();
+ await refungibleContract.methods.mint(owner, rftTokenId).send();
+
+ await expect(fractionalizer.methods.rft2nft(rftCollectionAddress, rftTokenId).call())
+ .to.be.rejectedWith(/Wrong RFT collection$/g);
+ });
+
+ itWeb3('call rft2nft for RFT token that was not minted by fractionalizer contract', async ({api, web3, privateKeyWrapper}) => {
+ const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+ const {collectionIdAddress: rftCollectionAddress} = await createRefungibleCollection(api, web3, owner);
+
+ const fractionalizer = await deployFractionalizer(web3, owner);
+ const refungibleContract = uniqueRefungible(web3, rftCollectionAddress, owner);
+
+ await refungibleContract.methods.addCollectionAdmin(fractionalizer.options.address).send();
+ await fractionalizer.methods.setRFTCollection(rftCollectionAddress).send();
+
+ const rftTokenId = await refungibleContract.methods.nextTokenId().call();
+ await refungibleContract.methods.mint(owner, rftTokenId).send();
+
+ await expect(fractionalizer.methods.rft2nft(rftCollectionAddress, rftTokenId).call())
+ .to.be.rejectedWith(/No corresponding NFT token found$/g);
+ });
+
+ itWeb3('call rft2nft without owning all RFT pieces', async ({api, web3, privateKeyWrapper}) => {
+ const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+ const receiver = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+
+ const {fractionalizer, rftCollectionAddress} = await initFractionalizer(api, web3, privateKeyWrapper, owner);
+ const {rftTokenAddress} = await createRFTToken(api, web3, owner, fractionalizer, 100n);
+
+ const {tokenId} = tokenIdFromAddress(rftTokenAddress);
+ const refungibleTokenContract = uniqueRefungibleToken(web3, rftTokenAddress, owner);
+ await refungibleTokenContract.methods.transfer(receiver, 50).send();
+ await refungibleTokenContract.methods.approve(fractionalizer.options.address, 50).send();
+ await expect(fractionalizer.methods.rft2nft(rftCollectionAddress, tokenId).call())
+ .to.be.rejectedWith(/Not all pieces are owned by the caller$/g);
+ });
+
+ itWeb3('send QTZ/UNQ to contract from non owner', async ({api, web3, privateKeyWrapper}) => {
+ const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+ const payer = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+
+ const fractionalizer = await deployFractionalizer(web3, owner);
+ const amount = 10n * UNIQUE;
+ await expect(web3.eth.sendTransaction({from: payer, to: fractionalizer.options.address, value: `${amount}`, ...GAS_ARGS})).to.be.rejected;
+ });
+
+ itWeb3('fractionalize NFT with NFT transfers disallowed', async ({api, web3, privateKeyWrapper}) => {
+ const alice = privateKeyWrapper('//Alice');
+ let collectionId;
+ {
+ const tx = api.tx.unique.createCollectionEx({name: 'A', description: 'B', tokenPrefix: 'C', mode: 'NFT'});
+ const events = await submitTransactionAsync(alice, tx);
+ const result = getCreateCollectionResult(events);
+ collectionId = result.collectionId;
+ }
+ const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+ let nftTokenId;
+ {
+ const createData = {nft: {}};
+ const tx = api.tx.unique.createItem(collectionId, {Ethereum: owner}, createData as any);
+ const events = await executeTransaction(api, alice, tx);
+ const result = getCreateItemResult(events);
+ nftTokenId = result.itemId;
+ }
+ {
+ const tx = api.tx.unique.setTransfersEnabledFlag(collectionId, false);
+ await executeTransaction(api, alice, tx);
+ }
+ const nftCollectionAddress = collectionIdToAddress(collectionId);
+ const {fractionalizer} = await initFractionalizer(api, web3, privateKeyWrapper, owner);
+ await fractionalizer.methods.setNftCollectionIsAllowed(nftCollectionAddress, true).send();
+
+ const nftContract = uniqueNFT(web3, nftCollectionAddress, owner);
+ await nftContract.methods.approve(fractionalizer.options.address, nftTokenId).send();
+ await expect(fractionalizer.methods.nft2rft(nftCollectionAddress, nftTokenId, 100).call())
+ .to.be.rejectedWith(/TransferNotAllowed$/g);
+ });
+
+ itWeb3('fractionalize NFT with RFT transfers disallowed', async ({api, web3, privateKeyWrapper}) => {
+ const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+ const alice = privateKeyWrapper('//Alice');
+
+ let collectionId;
+ {
+ const tx = api.tx.unique.createCollectionEx({name: 'A', description: 'B', tokenPrefix: 'C', mode: 'ReFungible'});
+ const events = await submitTransactionAsync(alice, tx);
+ const result = getCreateCollectionResult(events);
+ collectionId = result.collectionId;
+ }
+ const rftCollectionAddress = collectionIdToAddress(collectionId);
+ const fractionalizer = await deployFractionalizer(web3, owner);
+ {
+ const changeAdminTx = api.tx.unique.addCollectionAdmin(collectionId, {Ethereum: fractionalizer.options.address});
+ await submitTransactionAsync(alice, changeAdminTx);
+ }
+ await fractionalizer.methods.setRFTCollection(rftCollectionAddress).send();
+ {
+ const tx = api.tx.unique.setTransfersEnabledFlag(collectionId, false);
+ await executeTransaction(api, alice, tx);
+ }
+
+ const {collectionIdAddress: nftCollectionAddress} = await createNonfungibleCollection(api, web3, owner);
+ const nftContract = uniqueNFT(web3, nftCollectionAddress, owner);
+ const nftTokenId = await nftContract.methods.nextTokenId().call();
+ await nftContract.methods.mint(owner, nftTokenId).send();
+
+ await fractionalizer.methods.setNftCollectionIsAllowed(nftCollectionAddress, true).send();
+ await nftContract.methods.approve(fractionalizer.options.address, nftTokenId).send();
+
+ await expect(fractionalizer.methods.nft2rft(nftCollectionAddress, nftTokenId, 100n).call())
+ .to.be.rejectedWith(/TransferNotAllowed$/g);
+ });
+});
\ No newline at end of file
tests/src/eth/fungibleAbi.jsondiffbeforeafterboth--- a/tests/src/eth/fungibleAbi.json
+++ b/tests/src/eth/fungibleAbi.json
@@ -301,5 +301,21 @@
"outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
"stateMutability": "nonpayable",
"type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "uniqueCollectionType",
+ "outputs": [{ "internalType": "string", "name": "", "type": "string" }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "user", "type": "address" }
+ ],
+ "name": "verifyOwnerOrAdmin",
+ "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
+ "stateMutability": "view",
+ "type": "function"
}
]
tests/src/eth/nonFungibleAbi.jsondiffbeforeafterboth--- a/tests/src/eth/nonFungibleAbi.json
+++ b/tests/src/eth/nonFungibleAbi.json
@@ -526,5 +526,21 @@
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "uniqueCollectionType",
+ "outputs": [{ "internalType": "string", "name": "", "type": "string" }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "user", "type": "address" }
+ ],
+ "name": "verifyOwnerOrAdmin",
+ "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
+ "stateMutability": "view",
+ "type": "function"
}
]
tests/src/eth/reFungible.test.tsdiffbeforeafterboth--- a/tests/src/eth/reFungible.test.ts
+++ b/tests/src/eth/reFungible.test.ts
@@ -15,8 +15,7 @@
// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
import {createCollectionExpectSuccess, UNIQUE, requirePallets, Pallets} from '../util/helpers';
-import {collectionIdToAddress, createEthAccount, createEthAccountWithBalance, evmCollection, evmCollectionHelpers, GAS_ARGS, getCollectionAddressFromResult, itWeb3, normalizeEvents, recordEthFee, recordEvents, tokenIdToAddress} from './util/helpers';
-import reFungibleTokenAbi from './reFungibleTokenAbi.json';
+import {collectionIdToAddress, createEthAccount, createEthAccountWithBalance, evmCollection, evmCollectionHelpers, getCollectionAddressFromResult, itWeb3, normalizeEvents, recordEthFee, recordEvents, tokenIdToAddress, uniqueRefungibleToken} from './util/helpers';
import {expect} from 'chai';
describe('Refungible: Information getting', () => {
@@ -88,7 +87,7 @@
await contract.methods.mint(caller, tokenId).send();
const tokenAddress = tokenIdToAddress(collectionId, tokenId);
- const tokenContract = new web3.eth.Contract(reFungibleTokenAbi as any, tokenAddress, {from: caller, ...GAS_ARGS});
+ const tokenContract = uniqueRefungibleToken(web3, tokenAddress, caller);
await tokenContract.methods.repartition(2).send();
await tokenContract.methods.transfer(receiver, 1).send();
@@ -112,7 +111,7 @@
await contract.methods.mint(caller, tokenId).send();
const tokenAddress = tokenIdToAddress(collectionId, tokenId);
- const tokenContract = new web3.eth.Contract(reFungibleTokenAbi as any, tokenAddress, {from: caller, ...GAS_ARGS});
+ const tokenContract = uniqueRefungibleToken(web3, tokenAddress, caller);
await tokenContract.methods.repartition(2).send();
await tokenContract.methods.transfer(receiver, 1).send();
@@ -258,7 +257,7 @@
await contract.methods.mint(caller, tokenId).send();
const address = tokenIdToAddress(collectionId, tokenId);
- const tokenContract = new web3.eth.Contract(reFungibleTokenAbi as any, address, {from: caller, ...GAS_ARGS});
+ const tokenContract = uniqueRefungibleToken(web3, address, caller);
await tokenContract.methods.repartition(15).send();
{
@@ -277,7 +276,7 @@
},
]);
});
-
+
expect(erc20Events).to.include.deep.members([
{
address,
@@ -353,12 +352,12 @@
await contract.methods.mint(caller, tokenId).send();
const tokenAddress = tokenIdToAddress(collectionId, tokenId);
- const tokenContract = new web3.eth.Contract(reFungibleTokenAbi as any, tokenAddress, {from: caller, ...GAS_ARGS});
+ const tokenContract = uniqueRefungibleToken(web3, tokenAddress, caller);
await tokenContract.methods.repartition(2).send();
await tokenContract.methods.transfer(receiver, 1).send();
- const events = await recordEvents(contract, async () =>
+ const events = await recordEvents(contract, async () =>
await tokenContract.methods.transfer(receiver, 1).send());
expect(events).to.deep.equal([
{
@@ -385,13 +384,13 @@
await contract.methods.mint(caller, tokenId).send();
const tokenAddress = tokenIdToAddress(collectionId, tokenId);
- const tokenContract = new web3.eth.Contract(reFungibleTokenAbi as any, tokenAddress, {from: caller, ...GAS_ARGS});
+ const tokenContract = uniqueRefungibleToken(web3, tokenAddress, caller);
await tokenContract.methods.repartition(2).send();
-
- const events = await recordEvents(contract, async () =>
+
+ const events = await recordEvents(contract, async () =>
await tokenContract.methods.transfer(receiver, 1).send());
-
+
expect(events).to.deep.equal([
{
address: collectionIdAddress,
tests/src/eth/reFungibleAbi.jsondiffbeforeafterboth--- a/tests/src/eth/reFungibleAbi.json
+++ b/tests/src/eth/reFungibleAbi.json
@@ -482,6 +482,15 @@
},
{
"inputs": [
+ { "internalType": "uint256", "name": "token", "type": "uint256" }
+ ],
+ "name": "tokenContractAddress",
+ "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
{ "internalType": "address", "name": "owner", "type": "address" },
{ "internalType": "uint256", "name": "index", "type": "uint256" }
],
@@ -526,5 +535,21 @@
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "uniqueCollectionType",
+ "outputs": [{ "internalType": "string", "name": "", "type": "string" }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "user", "type": "address" }
+ ],
+ "name": "verifyOwnerOrAdmin",
+ "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
+ "stateMutability": "view",
+ "type": "function"
}
]
tests/src/eth/reFungibleToken.test.tsdiffbeforeafterboth--- a/tests/src/eth/reFungibleToken.test.ts
+++ b/tests/src/eth/reFungibleToken.test.ts
@@ -15,8 +15,7 @@
// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
import {approve, createCollection, createRefungibleToken, transfer, transferFrom, UNIQUE, requirePallets, Pallets} from '../util/helpers';
-import {collectionIdToAddress, createEthAccount, createEthAccountWithBalance, evmCollection, evmCollectionHelpers, GAS_ARGS, getCollectionAddressFromResult, itWeb3, normalizeEvents, recordEthFee, recordEvents, subToEth, tokenIdToAddress, transferBalanceToEth} from './util/helpers';
-import reFungibleTokenAbi from './reFungibleTokenAbi.json';
+import {collectionIdFromAddress, collectionIdToAddress, createEthAccount, createEthAccountWithBalance, createNonfungibleCollection, createRefungibleCollection, evmCollection, evmCollectionHelpers, getCollectionAddressFromResult, itWeb3, normalizeEvents, recordEthFee, recordEvents, subToEth, tokenIdToAddress, transferBalanceToEth, uniqueNFT, uniqueRefungible, uniqueRefungibleToken} from './util/helpers';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
@@ -38,7 +37,7 @@
const tokenId = (await createRefungibleToken(api, alice, collectionId, 200n, {Ethereum: caller})).itemId;
const address = tokenIdToAddress(collectionId, tokenId);
- const contract = new web3.eth.Contract(reFungibleTokenAbi as any, address, {from: caller, ...GAS_ARGS});
+ const contract = uniqueRefungibleToken(web3, address, caller);
const totalSupply = await contract.methods.totalSupply().call();
expect(totalSupply).to.equal('200');
@@ -54,7 +53,7 @@
const tokenId = (await createRefungibleToken(api, alice, collectionId, 200n, {Ethereum: caller})).itemId;
const address = tokenIdToAddress(collectionId, tokenId);
- const contract = new web3.eth.Contract(reFungibleTokenAbi as any, address, {from: caller, ...GAS_ARGS});
+ const contract = uniqueRefungibleToken(web3, address, caller);
const balance = await contract.methods.balanceOf(caller).call();
expect(balance).to.equal('200');
@@ -70,7 +69,7 @@
const tokenId = (await createRefungibleToken(api, alice, collectionId, 200n, {Ethereum: caller})).itemId;
const address = tokenIdToAddress(collectionId, tokenId);
- const contract = new web3.eth.Contract(reFungibleTokenAbi as any, address, {from: caller, ...GAS_ARGS});
+ const contract = uniqueRefungibleToken(web3, address, caller);
const decimals = await contract.methods.decimals().call();
expect(decimals).to.equal('0');
@@ -90,7 +89,7 @@
const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
const receiver = createEthAccount(web3);
const contract = evmCollection(web3, owner, collectionIdAddress, {type: 'ReFungible'});
-
+
const nextTokenId = await contract.methods.nextTokenId().call();
expect(nextTokenId).to.be.equal('1');
result = await contract.methods.mint(
@@ -123,17 +122,17 @@
const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
const receiver = createEthAccount(web3);
const contract = evmCollection(web3, owner, collectionIdAddress, {type: 'ReFungible'});
-
+
const nextTokenId = await contract.methods.nextTokenId().call();
expect(nextTokenId).to.be.equal('1');
result = await contract.methods.mint(
receiver,
nextTokenId,
).send();
-
+
// Set URL
await contract.methods.setProperty(nextTokenId, 'url', Buffer.from('Token URI')).send();
-
+
const events = normalizeEvents(result.events);
const address = collectionIdToAddress(collectionId);
@@ -159,14 +158,14 @@
const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
const receiver = createEthAccount(web3);
const contract = evmCollection(web3, owner, collectionIdAddress, {type: 'ReFungible'});
-
+
const nextTokenId = await contract.methods.nextTokenId().call();
expect(nextTokenId).to.be.equal('1');
result = await contract.methods.mint(
receiver,
nextTokenId,
).send();
-
+
const events = normalizeEvents(result.events);
const address = collectionIdToAddress(collectionId);
@@ -192,14 +191,14 @@
const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
const receiver = createEthAccount(web3);
const contract = evmCollection(web3, owner, collectionIdAddress, {type: 'ReFungible'});
-
+
const nextTokenId = await contract.methods.nextTokenId().call();
expect(nextTokenId).to.be.equal('1');
result = await contract.methods.mint(
receiver,
nextTokenId,
).send();
-
+
// Set suffix
const suffix = '/some/suffix';
await contract.methods.setProperty(nextTokenId, 'suffix', Buffer.from(suffix)).send();
@@ -241,7 +240,7 @@
const spender = createEthAccount(web3);
- const contract = new web3.eth.Contract(reFungibleTokenAbi as any, address, {from: owner, ...GAS_ARGS});
+ const contract = uniqueRefungibleToken(web3, address, owner);
{
const result = await contract.methods.approve(spender, 100).send({from: owner});
@@ -282,7 +281,7 @@
const receiver = createEthAccount(web3);
const address = tokenIdToAddress(collectionId, tokenId);
- const contract = new web3.eth.Contract(reFungibleTokenAbi as any, address, {from: owner, ...GAS_ARGS});
+ const contract = uniqueRefungibleToken(web3, address, owner);
await contract.methods.approve(spender, 100).send();
@@ -336,7 +335,7 @@
await transferBalanceToEth(api, alice, receiver);
const address = tokenIdToAddress(collectionId, tokenId);
- const contract = new web3.eth.Contract(reFungibleTokenAbi as any, address, {from: owner, ...GAS_ARGS});
+ const contract = uniqueRefungibleToken(web3, address, owner);
{
const result = await contract.methods.transfer(receiver, 50).send({from: owner});
@@ -379,14 +378,14 @@
const tokenId = (await createRefungibleToken(api, alice, collectionId, 100n, {Ethereum: owner})).itemId;
const address = tokenIdToAddress(collectionId, tokenId);
- const contract = new web3.eth.Contract(reFungibleTokenAbi as any, address, {from: owner, ...GAS_ARGS});
+ const contract = uniqueRefungibleToken(web3, address, owner);
await contract.methods.repartition(200).send({from: owner});
expect(+await contract.methods.balanceOf(owner).call()).to.be.equal(200);
await contract.methods.transfer(receiver, 110).send({from: owner});
expect(+await contract.methods.balanceOf(owner).call()).to.be.equal(90);
expect(+await contract.methods.balanceOf(receiver).call()).to.be.equal(110);
-
+
await expect(contract.methods.repartition(80).send({from: owner})).to.eventually.be.rejected;
await contract.methods.transfer(receiver, 90).send({from: owner});
@@ -409,7 +408,7 @@
const tokenId = (await createRefungibleToken(api, alice, collectionId, 100n, {Ethereum: owner})).itemId;
const address = tokenIdToAddress(collectionId, tokenId);
- const contract = new web3.eth.Contract(reFungibleTokenAbi as any, address, {from: owner, ...GAS_ARGS});
+ const contract = uniqueRefungibleToken(web3, address, owner);
const result = await contract.methods.repartition(200).send();
const events = normalizeEvents(result.events);
@@ -438,7 +437,7 @@
const tokenId = (await createRefungibleToken(api, alice, collectionId, 100n, {Ethereum: owner})).itemId;
const address = tokenIdToAddress(collectionId, tokenId);
- const contract = new web3.eth.Contract(reFungibleTokenAbi as any, address, {from: owner, ...GAS_ARGS});
+ const contract = uniqueRefungibleToken(web3, address, owner);
const result = await contract.methods.repartition(50).send();
const events = normalizeEvents(result.events);
@@ -468,11 +467,11 @@
const address = tokenIdToAddress(collectionId, tokenId);
- const tokenContract = new web3.eth.Contract(reFungibleTokenAbi as any, address, {from: caller, ...GAS_ARGS});
+ const tokenContract = uniqueRefungibleToken(web3, address, caller);
await tokenContract.methods.repartition(2).send();
await tokenContract.methods.transfer(receiver, 1).send();
- const events = await recordEvents(contract, async () =>
+ const events = await recordEvents(contract, async () =>
await tokenContract.methods.burnFrom(caller, 1).send());
expect(events).to.deep.equal([
{
@@ -504,7 +503,7 @@
const tokenId = (await createRefungibleToken(api, alice, collectionId, 200n, {Ethereum: owner})).itemId;
const address = tokenIdToAddress(collectionId, tokenId);
- const contract = new web3.eth.Contract(reFungibleTokenAbi as any, address, {from: owner, ...GAS_ARGS});
+ const contract = uniqueRefungibleToken(web3, address, owner);
const cost = await recordEthFee(api, owner, () => contract.methods.approve(spender, 100).send({from: owner}));
expect(cost < BigInt(0.2 * Number(UNIQUE)));
@@ -521,7 +520,7 @@
const tokenId = (await createRefungibleToken(api, alice, collectionId, 200n, {Ethereum: owner})).itemId;
const address = tokenIdToAddress(collectionId, tokenId);
- const contract = new web3.eth.Contract(reFungibleTokenAbi as any, address, {from: owner, ...GAS_ARGS});
+ const contract = uniqueRefungibleToken(web3, address, owner);
await contract.methods.approve(spender, 100).send({from: owner});
@@ -540,7 +539,7 @@
const tokenId = (await createRefungibleToken(api, alice, collectionId, 200n, {Ethereum: owner})).itemId;
const address = tokenIdToAddress(collectionId, tokenId);
- const contract = new web3.eth.Contract(reFungibleTokenAbi as any, address, {from: owner, ...GAS_ARGS});
+ const contract = uniqueRefungibleToken(web3, address, owner);
const cost = await recordEthFee(api, owner, () => contract.methods.transfer(receiver, 100).send({from: owner}));
expect(cost < BigInt(0.2 * Number(UNIQUE)));
@@ -562,7 +561,7 @@
const tokenId = (await createRefungibleToken(api, alice, collectionId, 200n)).itemId;
const address = tokenIdToAddress(collectionId, tokenId);
- const contract = new web3.eth.Contract(reFungibleTokenAbi as any, address);
+ const contract = uniqueRefungibleToken(web3, address);
const events = await recordEvents(contract, async () => {
expect(await approve(api, collectionId, tokenId, alice, {Ethereum: receiver}, 100n)).to.be.true;
@@ -593,7 +592,7 @@
expect(await approve(api, collectionId, tokenId, alice, bob.address, 100n)).to.be.true;
const address = tokenIdToAddress(collectionId, tokenId);
- const contract = new web3.eth.Contract(reFungibleTokenAbi as any, address);
+ const contract = uniqueRefungibleToken(web3, address);
const events = await recordEvents(contract, async () => {
expect(await transferFrom(api, collectionId, tokenId, bob, alice, {Ethereum: receiver}, 51n)).to.be.true;
@@ -631,7 +630,7 @@
const tokenId = (await createRefungibleToken(api, alice, collectionId, 200n)).itemId;
const address = tokenIdToAddress(collectionId, tokenId);
- const contract = new web3.eth.Contract(reFungibleTokenAbi as any, address);
+ const contract = uniqueRefungibleToken(web3, address);
const events = await recordEvents(contract, async () => {
expect(await transfer(api, collectionId, tokenId, alice, {Ethereum: receiver}, 51n)).to.be.true;
@@ -650,3 +649,47 @@
]);
});
});
+
+describe('ERC 1633 implementation', () => {
+ itWeb3('Parent NFT token address and id', async ({api, web3, privateKeyWrapper}) => {
+ const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+
+ const {collectionIdAddress: nftCollectionAddress} = await createNonfungibleCollection(api, web3, owner);
+ const nftContract = uniqueNFT(web3, nftCollectionAddress, owner);
+ const nftTokenId = await nftContract.methods.nextTokenId().call();
+ await nftContract.methods.mint(owner, nftTokenId).send();
+ const nftCollectionId = collectionIdFromAddress(nftCollectionAddress);
+
+ const {collectionIdAddress, collectionId} = await createRefungibleCollection(api, web3, owner);
+ const refungibleContract = uniqueRefungible(web3, collectionIdAddress, owner);
+ const refungibleTokenId = await refungibleContract.methods.nextTokenId().call();
+ await refungibleContract.methods.mint(owner, refungibleTokenId).send();
+
+ const rftTokenAddress = tokenIdToAddress(collectionId, refungibleTokenId);
+ const refungibleTokenContract = uniqueRefungibleToken(web3, rftTokenAddress, owner);
+ await refungibleTokenContract.methods.setParentNFT(nftCollectionAddress, nftTokenId).send();
+
+ const tokenAddress = await refungibleTokenContract.methods.parentToken().call();
+ const tokenId = await refungibleTokenContract.methods.parentTokenId().call();
+ const nftTokenAddress = tokenIdToAddress(nftCollectionId, nftTokenId);
+ expect(tokenAddress).to.be.equal(nftTokenAddress);
+ expect(tokenId).to.be.equal(nftTokenId);
+ });
+
+ itWeb3('Default parent token address and id', async ({api, web3, privateKeyWrapper}) => {
+ const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+
+ const {collectionIdAddress, collectionId} = await createRefungibleCollection(api, web3, owner);
+ const refungibleContract = uniqueRefungible(web3, collectionIdAddress, owner);
+ const refungibleTokenId = await refungibleContract.methods.nextTokenId().call();
+ await refungibleContract.methods.mint(owner, refungibleTokenId).send();
+
+ const rftTokenAddress = tokenIdToAddress(collectionId, refungibleTokenId);
+ const refungibleTokenContract = uniqueRefungibleToken(web3, rftTokenAddress, owner);
+
+ const tokenAddress = await refungibleTokenContract.methods.parentToken().call();
+ const tokenId = await refungibleTokenContract.methods.parentTokenId().call();
+ expect(tokenAddress).to.be.equal(rftTokenAddress);
+ expect(tokenId).to.be.equal(refungibleTokenId);
+ });
+});
tests/src/eth/reFungibleTokenAbi.jsondiffbeforeafterboth--- a/tests/src/eth/reFungibleTokenAbi.json
+++ b/tests/src/eth/reFungibleTokenAbi.json
@@ -103,6 +103,20 @@
"type": "function"
},
{
+ "inputs": [],
+ "name": "parentToken",
+ "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "parentTokenId",
+ "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
"inputs": [
{ "internalType": "uint256", "name": "amount", "type": "uint256" }
],
@@ -113,6 +127,16 @@
},
{
"inputs": [
+ { "internalType": "address", "name": "collection", "type": "address" },
+ { "internalType": "uint256", "name": "nftId", "type": "uint256" }
+ ],
+ "name": "setParentNFT",
+ "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
{ "internalType": "bytes4", "name": "interfaceID", "type": "bytes4" }
],
"name": "supportsInterface",
tests/src/eth/util/helpers.tsdiffbeforeafterboth--- a/tests/src/eth/util/helpers.ts
+++ b/tests/src/eth/util/helpers.ts
@@ -32,6 +32,7 @@
import fungibleAbi from '../fungibleAbi.json';
import nonFungibleAbi from '../nonFungibleAbi.json';
import refungibleAbi from '../reFungibleAbi.json';
+import refungibleTokenAbi from '../reFungibleTokenAbi.json';
import contractHelpersAbi from './contractHelpersAbi.json';
export const GAS_ARGS = {gas: 2500000};
@@ -101,6 +102,18 @@
]);
return Web3.utils.toChecksumAddress('0x' + buf.toString('hex'));
}
+
+export function tokenIdFromAddress(address: string) {
+ if (!address.startsWith('0x'))
+ throw 'address not starts with "0x"';
+ if (address.length > 42)
+ throw 'address length is more than 20 bytes';
+ return {
+ collectionId: Number('0x' + address.substring(address.length - 16, address.length - 8)),
+ tokenId: Number('0x' + address.substring(address.length - 8)),
+ };
+}
+
export function tokenIdToCross(collection: number, token: number): CrossAccountId {
return {
Ethereum: tokenIdToAddress(collection, token),
@@ -128,6 +141,44 @@
expect(result.success).to.be.true;
}
+export async function createRefungibleCollection(api: ApiPromise, web3: Web3, owner: string) {
+ const collectionHelper = evmCollectionHelpers(web3, owner);
+ const result = await collectionHelper.methods
+ .createRefungibleCollection('A', 'B', 'C')
+ .send();
+ return await getCollectionAddressFromResult(api, result);
+}
+
+
+export async function createNonfungibleCollection(api: ApiPromise, web3: Web3, owner: string) {
+ const collectionHelper = evmCollectionHelpers(web3, owner);
+ const result = await collectionHelper.methods
+ .createNonfungibleCollection('A', 'B', 'C')
+ .send();
+ return await getCollectionAddressFromResult(api, result);
+}
+
+export function uniqueNFT(web3: Web3, address: string, owner: string) {
+ return new web3.eth.Contract(nonFungibleAbi as any, address, {
+ from: owner,
+ ...GAS_ARGS,
+ });
+}
+
+export function uniqueRefungible(web3: Web3, collectionAddress: string, owner: string) {
+ return new web3.eth.Contract(refungibleAbi as any, collectionAddress, {
+ from: owner,
+ ...GAS_ARGS,
+ });
+}
+
+export function uniqueRefungibleToken(web3: Web3, tokenAddress: string, owner: string | undefined = undefined) {
+ return new web3.eth.Contract(refungibleTokenAbi as any, tokenAddress, {
+ from: owner,
+ ...GAS_ARGS,
+ });
+}
+
export async function itWeb3(name: string, cb: (apis: { web3: Web3, api: ApiPromise, privateKeyWrapper: (account: string) => IKeyringPair }) => any, opts: { only?: boolean, skip?: boolean } = {}) {
let i: any = it;
if (opts.only) i = i.only;
@@ -199,7 +250,12 @@
return Web3.utils.toChecksumAddress(subToEthLowercase(eth));
}
-export function compileContract(name: string, src: string) {
+export interface CompiledContract {
+ abi: any,
+ object: string,
+}
+
+export function compileContract(name: string, src: string) : CompiledContract {
const out = JSON.parse(solc.compile(JSON.stringify({
language: 'Solidity',
sources: {
tests/src/interfaces/augment-api-query.tsdiffbeforeafterboth--- a/tests/src/interfaces/augment-api-query.ts
+++ b/tests/src/interfaces/augment-api-query.ts
@@ -266,7 +266,7 @@
*
* Currently used to store RMRK data.
**/
- tokenAuxProperties: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array, arg3: UpDataStructsPropertyScope | 'None' | 'Rmrk' | number | Uint8Array, arg4: Bytes | string | Uint8Array) => Observable<Option<Bytes>>, [u32, u32, UpDataStructsPropertyScope, Bytes]> & QueryableStorageEntry<ApiType, [u32, u32, UpDataStructsPropertyScope, Bytes]>;
+ tokenAuxProperties: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array, arg3: UpDataStructsPropertyScope | 'None' | 'Rmrk' | 'Eth' | number | Uint8Array, arg4: Bytes | string | Uint8Array) => Observable<Option<Bytes>>, [u32, u32, UpDataStructsPropertyScope, Bytes]> & QueryableStorageEntry<ApiType, [u32, u32, UpDataStructsPropertyScope, Bytes]>;
/**
* Used to enumerate token's children.
**/
tests/src/interfaces/default/types.tsdiffbeforeafterboth--- a/tests/src/interfaces/default/types.ts
+++ b/tests/src/interfaces/default/types.ts
@@ -2521,7 +2521,8 @@
export interface UpDataStructsPropertyScope extends Enum {
readonly isNone: boolean;
readonly isRmrk: boolean;
- readonly type: 'None' | 'Rmrk';
+ readonly isEth: boolean;
+ readonly type: 'None' | 'Rmrk' | 'Eth';
}
/** @name UpDataStructsRpcCollection */
tests/src/interfaces/lookup.tsdiffbeforeafterboth--- a/tests/src/interfaces/lookup.ts
+++ b/tests/src/interfaces/lookup.ts
@@ -2978,7 +2978,7 @@
* Lookup397: up_data_structs::PropertyScope
**/
UpDataStructsPropertyScope: {
- _enum: ['None', 'Rmrk']
+ _enum: ['None', 'Rmrk', 'Eth']
},
/**
* Lookup399: pallet_nonfungible::pallet::Error<T>
tests/src/interfaces/types-lookup.tsdiffbeforeafterboth1// Auto-generated via `yarn polkadot-types-from-defs`, do not edit2/* eslint-disable */34declare module '@polkadot/types/lookup' {5 import type { BTreeMap, BTreeSet, Bytes, Compact, Enum, Null, Option, Result, Struct, Text, U256, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';6 import type { ITuple } from '@polkadot/types-codec/types';7 import type { AccountId32, Call, H160, H256, MultiAddress, Perbill, Permill } from '@polkadot/types/interfaces/runtime';8 import type { Event } from '@polkadot/types/interfaces/system';910 /** @name PolkadotPrimitivesV2PersistedValidationData (2) */11 export interface PolkadotPrimitivesV2PersistedValidationData extends Struct {12 readonly parentHead: Bytes;13 readonly relayParentNumber: u32;14 readonly relayParentStorageRoot: H256;15 readonly maxPovSize: u32;16 }1718 /** @name PolkadotPrimitivesV2UpgradeRestriction (9) */19 export interface PolkadotPrimitivesV2UpgradeRestriction extends Enum {20 readonly isPresent: boolean;21 readonly type: 'Present';22 }2324 /** @name SpTrieStorageProof (10) */25 export interface SpTrieStorageProof extends Struct {26 readonly trieNodes: BTreeSet<Bytes>;27 }2829 /** @name CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot (13) */30 export interface CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot extends Struct {31 readonly dmqMqcHead: H256;32 readonly relayDispatchQueueSize: ITuple<[u32, u32]>;33 readonly ingressChannels: Vec<ITuple<[u32, PolkadotPrimitivesV2AbridgedHrmpChannel]>>;34 readonly egressChannels: Vec<ITuple<[u32, PolkadotPrimitivesV2AbridgedHrmpChannel]>>;35 }3637 /** @name PolkadotPrimitivesV2AbridgedHrmpChannel (18) */38 export interface PolkadotPrimitivesV2AbridgedHrmpChannel extends Struct {39 readonly maxCapacity: u32;40 readonly maxTotalSize: u32;41 readonly maxMessageSize: u32;42 readonly msgCount: u32;43 readonly totalSize: u32;44 readonly mqcHead: Option<H256>;45 }4647 /** @name PolkadotPrimitivesV2AbridgedHostConfiguration (20) */48 export interface PolkadotPrimitivesV2AbridgedHostConfiguration extends Struct {49 readonly maxCodeSize: u32;50 readonly maxHeadDataSize: u32;51 readonly maxUpwardQueueCount: u32;52 readonly maxUpwardQueueSize: u32;53 readonly maxUpwardMessageSize: u32;54 readonly maxUpwardMessageNumPerCandidate: u32;55 readonly hrmpMaxMessageNumPerCandidate: u32;56 readonly validationUpgradeCooldown: u32;57 readonly validationUpgradeDelay: u32;58 }5960 /** @name PolkadotCorePrimitivesOutboundHrmpMessage (26) */61 export interface PolkadotCorePrimitivesOutboundHrmpMessage extends Struct {62 readonly recipient: u32;63 readonly data: Bytes;64 }6566 /** @name CumulusPalletParachainSystemCall (28) */67 export interface CumulusPalletParachainSystemCall extends Enum {68 readonly isSetValidationData: boolean;69 readonly asSetValidationData: {70 readonly data: CumulusPrimitivesParachainInherentParachainInherentData;71 } & Struct;72 readonly isSudoSendUpwardMessage: boolean;73 readonly asSudoSendUpwardMessage: {74 readonly message: Bytes;75 } & Struct;76 readonly isAuthorizeUpgrade: boolean;77 readonly asAuthorizeUpgrade: {78 readonly codeHash: H256;79 } & Struct;80 readonly isEnactAuthorizedUpgrade: boolean;81 readonly asEnactAuthorizedUpgrade: {82 readonly code: Bytes;83 } & Struct;84 readonly type: 'SetValidationData' | 'SudoSendUpwardMessage' | 'AuthorizeUpgrade' | 'EnactAuthorizedUpgrade';85 }8687 /** @name CumulusPrimitivesParachainInherentParachainInherentData (29) */88 export interface CumulusPrimitivesParachainInherentParachainInherentData extends Struct {89 readonly validationData: PolkadotPrimitivesV2PersistedValidationData;90 readonly relayChainState: SpTrieStorageProof;91 readonly downwardMessages: Vec<PolkadotCorePrimitivesInboundDownwardMessage>;92 readonly horizontalMessages: BTreeMap<u32, Vec<PolkadotCorePrimitivesInboundHrmpMessage>>;93 }9495 /** @name PolkadotCorePrimitivesInboundDownwardMessage (31) */96 export interface PolkadotCorePrimitivesInboundDownwardMessage extends Struct {97 readonly sentAt: u32;98 readonly msg: Bytes;99 }100101 /** @name PolkadotCorePrimitivesInboundHrmpMessage (34) */102 export interface PolkadotCorePrimitivesInboundHrmpMessage extends Struct {103 readonly sentAt: u32;104 readonly data: Bytes;105 }106107 /** @name CumulusPalletParachainSystemEvent (37) */108 export interface CumulusPalletParachainSystemEvent extends Enum {109 readonly isValidationFunctionStored: boolean;110 readonly isValidationFunctionApplied: boolean;111 readonly asValidationFunctionApplied: {112 readonly relayChainBlockNum: u32;113 } & Struct;114 readonly isValidationFunctionDiscarded: boolean;115 readonly isUpgradeAuthorized: boolean;116 readonly asUpgradeAuthorized: {117 readonly codeHash: H256;118 } & Struct;119 readonly isDownwardMessagesReceived: boolean;120 readonly asDownwardMessagesReceived: {121 readonly count: u32;122 } & Struct;123 readonly isDownwardMessagesProcessed: boolean;124 readonly asDownwardMessagesProcessed: {125 readonly weightUsed: u64;126 readonly dmqHead: H256;127 } & Struct;128 readonly type: 'ValidationFunctionStored' | 'ValidationFunctionApplied' | 'ValidationFunctionDiscarded' | 'UpgradeAuthorized' | 'DownwardMessagesReceived' | 'DownwardMessagesProcessed';129 }130131 /** @name CumulusPalletParachainSystemError (38) */132 export interface CumulusPalletParachainSystemError extends Enum {133 readonly isOverlappingUpgrades: boolean;134 readonly isProhibitedByPolkadot: boolean;135 readonly isTooBig: boolean;136 readonly isValidationDataNotAvailable: boolean;137 readonly isHostConfigurationNotAvailable: boolean;138 readonly isNotScheduled: boolean;139 readonly isNothingAuthorized: boolean;140 readonly isUnauthorized: boolean;141 readonly type: 'OverlappingUpgrades' | 'ProhibitedByPolkadot' | 'TooBig' | 'ValidationDataNotAvailable' | 'HostConfigurationNotAvailable' | 'NotScheduled' | 'NothingAuthorized' | 'Unauthorized';142 }143144 /** @name PalletBalancesAccountData (41) */145 export interface PalletBalancesAccountData extends Struct {146 readonly free: u128;147 readonly reserved: u128;148 readonly miscFrozen: u128;149 readonly feeFrozen: u128;150 }151152 /** @name PalletBalancesBalanceLock (43) */153 export interface PalletBalancesBalanceLock extends Struct {154 readonly id: U8aFixed;155 readonly amount: u128;156 readonly reasons: PalletBalancesReasons;157 }158159 /** @name PalletBalancesReasons (45) */160 export interface PalletBalancesReasons extends Enum {161 readonly isFee: boolean;162 readonly isMisc: boolean;163 readonly isAll: boolean;164 readonly type: 'Fee' | 'Misc' | 'All';165 }166167 /** @name PalletBalancesReserveData (48) */168 export interface PalletBalancesReserveData extends Struct {169 readonly id: U8aFixed;170 readonly amount: u128;171 }172173 /** @name PalletBalancesReleases (51) */174 export interface PalletBalancesReleases extends Enum {175 readonly isV100: boolean;176 readonly isV200: boolean;177 readonly type: 'V100' | 'V200';178 }179180 /** @name PalletBalancesCall (52) */181 export interface PalletBalancesCall extends Enum {182 readonly isTransfer: boolean;183 readonly asTransfer: {184 readonly dest: MultiAddress;185 readonly value: Compact<u128>;186 } & Struct;187 readonly isSetBalance: boolean;188 readonly asSetBalance: {189 readonly who: MultiAddress;190 readonly newFree: Compact<u128>;191 readonly newReserved: Compact<u128>;192 } & Struct;193 readonly isForceTransfer: boolean;194 readonly asForceTransfer: {195 readonly source: MultiAddress;196 readonly dest: MultiAddress;197 readonly value: Compact<u128>;198 } & Struct;199 readonly isTransferKeepAlive: boolean;200 readonly asTransferKeepAlive: {201 readonly dest: MultiAddress;202 readonly value: Compact<u128>;203 } & Struct;204 readonly isTransferAll: boolean;205 readonly asTransferAll: {206 readonly dest: MultiAddress;207 readonly keepAlive: bool;208 } & Struct;209 readonly isForceUnreserve: boolean;210 readonly asForceUnreserve: {211 readonly who: MultiAddress;212 readonly amount: u128;213 } & Struct;214 readonly type: 'Transfer' | 'SetBalance' | 'ForceTransfer' | 'TransferKeepAlive' | 'TransferAll' | 'ForceUnreserve';215 }216217 /** @name PalletBalancesEvent (58) */218 export interface PalletBalancesEvent extends Enum {219 readonly isEndowed: boolean;220 readonly asEndowed: {221 readonly account: AccountId32;222 readonly freeBalance: u128;223 } & Struct;224 readonly isDustLost: boolean;225 readonly asDustLost: {226 readonly account: AccountId32;227 readonly amount: u128;228 } & Struct;229 readonly isTransfer: boolean;230 readonly asTransfer: {231 readonly from: AccountId32;232 readonly to: AccountId32;233 readonly amount: u128;234 } & Struct;235 readonly isBalanceSet: boolean;236 readonly asBalanceSet: {237 readonly who: AccountId32;238 readonly free: u128;239 readonly reserved: u128;240 } & Struct;241 readonly isReserved: boolean;242 readonly asReserved: {243 readonly who: AccountId32;244 readonly amount: u128;245 } & Struct;246 readonly isUnreserved: boolean;247 readonly asUnreserved: {248 readonly who: AccountId32;249 readonly amount: u128;250 } & Struct;251 readonly isReserveRepatriated: boolean;252 readonly asReserveRepatriated: {253 readonly from: AccountId32;254 readonly to: AccountId32;255 readonly amount: u128;256 readonly destinationStatus: FrameSupportTokensMiscBalanceStatus;257 } & Struct;258 readonly isDeposit: boolean;259 readonly asDeposit: {260 readonly who: AccountId32;261 readonly amount: u128;262 } & Struct;263 readonly isWithdraw: boolean;264 readonly asWithdraw: {265 readonly who: AccountId32;266 readonly amount: u128;267 } & Struct;268 readonly isSlashed: boolean;269 readonly asSlashed: {270 readonly who: AccountId32;271 readonly amount: u128;272 } & Struct;273 readonly type: 'Endowed' | 'DustLost' | 'Transfer' | 'BalanceSet' | 'Reserved' | 'Unreserved' | 'ReserveRepatriated' | 'Deposit' | 'Withdraw' | 'Slashed';274 }275276 /** @name FrameSupportTokensMiscBalanceStatus (59) */277 export interface FrameSupportTokensMiscBalanceStatus extends Enum {278 readonly isFree: boolean;279 readonly isReserved: boolean;280 readonly type: 'Free' | 'Reserved';281 }282283 /** @name PalletBalancesError (60) */284 export interface PalletBalancesError extends Enum {285 readonly isVestingBalance: boolean;286 readonly isLiquidityRestrictions: boolean;287 readonly isInsufficientBalance: boolean;288 readonly isExistentialDeposit: boolean;289 readonly isKeepAlive: boolean;290 readonly isExistingVestingSchedule: boolean;291 readonly isDeadAccount: boolean;292 readonly isTooManyReserves: boolean;293 readonly type: 'VestingBalance' | 'LiquidityRestrictions' | 'InsufficientBalance' | 'ExistentialDeposit' | 'KeepAlive' | 'ExistingVestingSchedule' | 'DeadAccount' | 'TooManyReserves';294 }295296 /** @name PalletTimestampCall (63) */297 export interface PalletTimestampCall extends Enum {298 readonly isSet: boolean;299 readonly asSet: {300 readonly now: Compact<u64>;301 } & Struct;302 readonly type: 'Set';303 }304305 /** @name PalletTransactionPaymentReleases (66) */306 export interface PalletTransactionPaymentReleases extends Enum {307 readonly isV1Ancient: boolean;308 readonly isV2: boolean;309 readonly type: 'V1Ancient' | 'V2';310 }311312 /** @name PalletTreasuryProposal (67) */313 export interface PalletTreasuryProposal extends Struct {314 readonly proposer: AccountId32;315 readonly value: u128;316 readonly beneficiary: AccountId32;317 readonly bond: u128;318 }319320 /** @name PalletTreasuryCall (70) */321 export interface PalletTreasuryCall extends Enum {322 readonly isProposeSpend: boolean;323 readonly asProposeSpend: {324 readonly value: Compact<u128>;325 readonly beneficiary: MultiAddress;326 } & Struct;327 readonly isRejectProposal: boolean;328 readonly asRejectProposal: {329 readonly proposalId: Compact<u32>;330 } & Struct;331 readonly isApproveProposal: boolean;332 readonly asApproveProposal: {333 readonly proposalId: Compact<u32>;334 } & Struct;335 readonly isRemoveApproval: boolean;336 readonly asRemoveApproval: {337 readonly proposalId: Compact<u32>;338 } & Struct;339 readonly type: 'ProposeSpend' | 'RejectProposal' | 'ApproveProposal' | 'RemoveApproval';340 }341342 /** @name PalletTreasuryEvent (72) */343 export interface PalletTreasuryEvent extends Enum {344 readonly isProposed: boolean;345 readonly asProposed: {346 readonly proposalIndex: u32;347 } & Struct;348 readonly isSpending: boolean;349 readonly asSpending: {350 readonly budgetRemaining: u128;351 } & Struct;352 readonly isAwarded: boolean;353 readonly asAwarded: {354 readonly proposalIndex: u32;355 readonly award: u128;356 readonly account: AccountId32;357 } & Struct;358 readonly isRejected: boolean;359 readonly asRejected: {360 readonly proposalIndex: u32;361 readonly slashed: u128;362 } & Struct;363 readonly isBurnt: boolean;364 readonly asBurnt: {365 readonly burntFunds: u128;366 } & Struct;367 readonly isRollover: boolean;368 readonly asRollover: {369 readonly rolloverBalance: u128;370 } & Struct;371 readonly isDeposit: boolean;372 readonly asDeposit: {373 readonly value: u128;374 } & Struct;375 readonly type: 'Proposed' | 'Spending' | 'Awarded' | 'Rejected' | 'Burnt' | 'Rollover' | 'Deposit';376 }377378 /** @name FrameSupportPalletId (75) */379 export interface FrameSupportPalletId extends U8aFixed {}380381 /** @name PalletTreasuryError (76) */382 export interface PalletTreasuryError extends Enum {383 readonly isInsufficientProposersBalance: boolean;384 readonly isInvalidIndex: boolean;385 readonly isTooManyApprovals: boolean;386 readonly isProposalNotApproved: boolean;387 readonly type: 'InsufficientProposersBalance' | 'InvalidIndex' | 'TooManyApprovals' | 'ProposalNotApproved';388 }389390 /** @name PalletSudoCall (77) */391 export interface PalletSudoCall extends Enum {392 readonly isSudo: boolean;393 readonly asSudo: {394 readonly call: Call;395 } & Struct;396 readonly isSudoUncheckedWeight: boolean;397 readonly asSudoUncheckedWeight: {398 readonly call: Call;399 readonly weight: u64;400 } & Struct;401 readonly isSetKey: boolean;402 readonly asSetKey: {403 readonly new_: MultiAddress;404 } & Struct;405 readonly isSudoAs: boolean;406 readonly asSudoAs: {407 readonly who: MultiAddress;408 readonly call: Call;409 } & Struct;410 readonly type: 'Sudo' | 'SudoUncheckedWeight' | 'SetKey' | 'SudoAs';411 }412413 /** @name FrameSystemCall (79) */414 export interface FrameSystemCall extends Enum {415 readonly isFillBlock: boolean;416 readonly asFillBlock: {417 readonly ratio: Perbill;418 } & Struct;419 readonly isRemark: boolean;420 readonly asRemark: {421 readonly remark: Bytes;422 } & Struct;423 readonly isSetHeapPages: boolean;424 readonly asSetHeapPages: {425 readonly pages: u64;426 } & Struct;427 readonly isSetCode: boolean;428 readonly asSetCode: {429 readonly code: Bytes;430 } & Struct;431 readonly isSetCodeWithoutChecks: boolean;432 readonly asSetCodeWithoutChecks: {433 readonly code: Bytes;434 } & Struct;435 readonly isSetStorage: boolean;436 readonly asSetStorage: {437 readonly items: Vec<ITuple<[Bytes, Bytes]>>;438 } & Struct;439 readonly isKillStorage: boolean;440 readonly asKillStorage: {441 readonly keys_: Vec<Bytes>;442 } & Struct;443 readonly isKillPrefix: boolean;444 readonly asKillPrefix: {445 readonly prefix: Bytes;446 readonly subkeys: u32;447 } & Struct;448 readonly isRemarkWithEvent: boolean;449 readonly asRemarkWithEvent: {450 readonly remark: Bytes;451 } & Struct;452 readonly type: 'FillBlock' | 'Remark' | 'SetHeapPages' | 'SetCode' | 'SetCodeWithoutChecks' | 'SetStorage' | 'KillStorage' | 'KillPrefix' | 'RemarkWithEvent';453 }454455 /** @name OrmlVestingModuleCall (83) */456 export interface OrmlVestingModuleCall extends Enum {457 readonly isClaim: boolean;458 readonly isVestedTransfer: boolean;459 readonly asVestedTransfer: {460 readonly dest: MultiAddress;461 readonly schedule: OrmlVestingVestingSchedule;462 } & Struct;463 readonly isUpdateVestingSchedules: boolean;464 readonly asUpdateVestingSchedules: {465 readonly who: MultiAddress;466 readonly vestingSchedules: Vec<OrmlVestingVestingSchedule>;467 } & Struct;468 readonly isClaimFor: boolean;469 readonly asClaimFor: {470 readonly dest: MultiAddress;471 } & Struct;472 readonly type: 'Claim' | 'VestedTransfer' | 'UpdateVestingSchedules' | 'ClaimFor';473 }474475 /** @name OrmlVestingVestingSchedule (84) */476 export interface OrmlVestingVestingSchedule extends Struct {477 readonly start: u32;478 readonly period: u32;479 readonly periodCount: u32;480 readonly perPeriod: Compact<u128>;481 }482483 /** @name CumulusPalletXcmpQueueCall (86) */484 export interface CumulusPalletXcmpQueueCall extends Enum {485 readonly isServiceOverweight: boolean;486 readonly asServiceOverweight: {487 readonly index: u64;488 readonly weightLimit: u64;489 } & Struct;490 readonly isSuspendXcmExecution: boolean;491 readonly isResumeXcmExecution: boolean;492 readonly isUpdateSuspendThreshold: boolean;493 readonly asUpdateSuspendThreshold: {494 readonly new_: u32;495 } & Struct;496 readonly isUpdateDropThreshold: boolean;497 readonly asUpdateDropThreshold: {498 readonly new_: u32;499 } & Struct;500 readonly isUpdateResumeThreshold: boolean;501 readonly asUpdateResumeThreshold: {502 readonly new_: u32;503 } & Struct;504 readonly isUpdateThresholdWeight: boolean;505 readonly asUpdateThresholdWeight: {506 readonly new_: u64;507 } & Struct;508 readonly isUpdateWeightRestrictDecay: boolean;509 readonly asUpdateWeightRestrictDecay: {510 readonly new_: u64;511 } & Struct;512 readonly isUpdateXcmpMaxIndividualWeight: boolean;513 readonly asUpdateXcmpMaxIndividualWeight: {514 readonly new_: u64;515 } & Struct;516 readonly type: 'ServiceOverweight' | 'SuspendXcmExecution' | 'ResumeXcmExecution' | 'UpdateSuspendThreshold' | 'UpdateDropThreshold' | 'UpdateResumeThreshold' | 'UpdateThresholdWeight' | 'UpdateWeightRestrictDecay' | 'UpdateXcmpMaxIndividualWeight';517 }518519 /** @name PalletXcmCall (87) */520 export interface PalletXcmCall extends Enum {521 readonly isSend: boolean;522 readonly asSend: {523 readonly dest: XcmVersionedMultiLocation;524 readonly message: XcmVersionedXcm;525 } & Struct;526 readonly isTeleportAssets: boolean;527 readonly asTeleportAssets: {528 readonly dest: XcmVersionedMultiLocation;529 readonly beneficiary: XcmVersionedMultiLocation;530 readonly assets: XcmVersionedMultiAssets;531 readonly feeAssetItem: u32;532 } & Struct;533 readonly isReserveTransferAssets: boolean;534 readonly asReserveTransferAssets: {535 readonly dest: XcmVersionedMultiLocation;536 readonly beneficiary: XcmVersionedMultiLocation;537 readonly assets: XcmVersionedMultiAssets;538 readonly feeAssetItem: u32;539 } & Struct;540 readonly isExecute: boolean;541 readonly asExecute: {542 readonly message: XcmVersionedXcm;543 readonly maxWeight: u64;544 } & Struct;545 readonly isForceXcmVersion: boolean;546 readonly asForceXcmVersion: {547 readonly location: XcmV1MultiLocation;548 readonly xcmVersion: u32;549 } & Struct;550 readonly isForceDefaultXcmVersion: boolean;551 readonly asForceDefaultXcmVersion: {552 readonly maybeXcmVersion: Option<u32>;553 } & Struct;554 readonly isForceSubscribeVersionNotify: boolean;555 readonly asForceSubscribeVersionNotify: {556 readonly location: XcmVersionedMultiLocation;557 } & Struct;558 readonly isForceUnsubscribeVersionNotify: boolean;559 readonly asForceUnsubscribeVersionNotify: {560 readonly location: XcmVersionedMultiLocation;561 } & Struct;562 readonly isLimitedReserveTransferAssets: boolean;563 readonly asLimitedReserveTransferAssets: {564 readonly dest: XcmVersionedMultiLocation;565 readonly beneficiary: XcmVersionedMultiLocation;566 readonly assets: XcmVersionedMultiAssets;567 readonly feeAssetItem: u32;568 readonly weightLimit: XcmV2WeightLimit;569 } & Struct;570 readonly isLimitedTeleportAssets: boolean;571 readonly asLimitedTeleportAssets: {572 readonly dest: XcmVersionedMultiLocation;573 readonly beneficiary: XcmVersionedMultiLocation;574 readonly assets: XcmVersionedMultiAssets;575 readonly feeAssetItem: u32;576 readonly weightLimit: XcmV2WeightLimit;577 } & Struct;578 readonly type: 'Send' | 'TeleportAssets' | 'ReserveTransferAssets' | 'Execute' | 'ForceXcmVersion' | 'ForceDefaultXcmVersion' | 'ForceSubscribeVersionNotify' | 'ForceUnsubscribeVersionNotify' | 'LimitedReserveTransferAssets' | 'LimitedTeleportAssets';579 }580581 /** @name XcmVersionedMultiLocation (88) */582 export interface XcmVersionedMultiLocation extends Enum {583 readonly isV0: boolean;584 readonly asV0: XcmV0MultiLocation;585 readonly isV1: boolean;586 readonly asV1: XcmV1MultiLocation;587 readonly type: 'V0' | 'V1';588 }589590 /** @name XcmV0MultiLocation (89) */591 export interface XcmV0MultiLocation extends Enum {592 readonly isNull: boolean;593 readonly isX1: boolean;594 readonly asX1: XcmV0Junction;595 readonly isX2: boolean;596 readonly asX2: ITuple<[XcmV0Junction, XcmV0Junction]>;597 readonly isX3: boolean;598 readonly asX3: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction]>;599 readonly isX4: boolean;600 readonly asX4: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;601 readonly isX5: boolean;602 readonly asX5: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;603 readonly isX6: boolean;604 readonly asX6: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;605 readonly isX7: boolean;606 readonly asX7: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;607 readonly isX8: boolean;608 readonly asX8: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;609 readonly type: 'Null' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8';610 }611612 /** @name XcmV0Junction (90) */613 export interface XcmV0Junction extends Enum {614 readonly isParent: boolean;615 readonly isParachain: boolean;616 readonly asParachain: Compact<u32>;617 readonly isAccountId32: boolean;618 readonly asAccountId32: {619 readonly network: XcmV0JunctionNetworkId;620 readonly id: U8aFixed;621 } & Struct;622 readonly isAccountIndex64: boolean;623 readonly asAccountIndex64: {624 readonly network: XcmV0JunctionNetworkId;625 readonly index: Compact<u64>;626 } & Struct;627 readonly isAccountKey20: boolean;628 readonly asAccountKey20: {629 readonly network: XcmV0JunctionNetworkId;630 readonly key: U8aFixed;631 } & Struct;632 readonly isPalletInstance: boolean;633 readonly asPalletInstance: u8;634 readonly isGeneralIndex: boolean;635 readonly asGeneralIndex: Compact<u128>;636 readonly isGeneralKey: boolean;637 readonly asGeneralKey: Bytes;638 readonly isOnlyChild: boolean;639 readonly isPlurality: boolean;640 readonly asPlurality: {641 readonly id: XcmV0JunctionBodyId;642 readonly part: XcmV0JunctionBodyPart;643 } & Struct;644 readonly type: 'Parent' | 'Parachain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality';645 }646647 /** @name XcmV0JunctionNetworkId (91) */648 export interface XcmV0JunctionNetworkId extends Enum {649 readonly isAny: boolean;650 readonly isNamed: boolean;651 readonly asNamed: Bytes;652 readonly isPolkadot: boolean;653 readonly isKusama: boolean;654 readonly type: 'Any' | 'Named' | 'Polkadot' | 'Kusama';655 }656657 /** @name XcmV0JunctionBodyId (92) */658 export interface XcmV0JunctionBodyId extends Enum {659 readonly isUnit: boolean;660 readonly isNamed: boolean;661 readonly asNamed: Bytes;662 readonly isIndex: boolean;663 readonly asIndex: Compact<u32>;664 readonly isExecutive: boolean;665 readonly isTechnical: boolean;666 readonly isLegislative: boolean;667 readonly isJudicial: boolean;668 readonly type: 'Unit' | 'Named' | 'Index' | 'Executive' | 'Technical' | 'Legislative' | 'Judicial';669 }670671 /** @name XcmV0JunctionBodyPart (93) */672 export interface XcmV0JunctionBodyPart extends Enum {673 readonly isVoice: boolean;674 readonly isMembers: boolean;675 readonly asMembers: {676 readonly count: Compact<u32>;677 } & Struct;678 readonly isFraction: boolean;679 readonly asFraction: {680 readonly nom: Compact<u32>;681 readonly denom: Compact<u32>;682 } & Struct;683 readonly isAtLeastProportion: boolean;684 readonly asAtLeastProportion: {685 readonly nom: Compact<u32>;686 readonly denom: Compact<u32>;687 } & Struct;688 readonly isMoreThanProportion: boolean;689 readonly asMoreThanProportion: {690 readonly nom: Compact<u32>;691 readonly denom: Compact<u32>;692 } & Struct;693 readonly type: 'Voice' | 'Members' | 'Fraction' | 'AtLeastProportion' | 'MoreThanProportion';694 }695696 /** @name XcmV1MultiLocation (94) */697 export interface XcmV1MultiLocation extends Struct {698 readonly parents: u8;699 readonly interior: XcmV1MultilocationJunctions;700 }701702 /** @name XcmV1MultilocationJunctions (95) */703 export interface XcmV1MultilocationJunctions extends Enum {704 readonly isHere: boolean;705 readonly isX1: boolean;706 readonly asX1: XcmV1Junction;707 readonly isX2: boolean;708 readonly asX2: ITuple<[XcmV1Junction, XcmV1Junction]>;709 readonly isX3: boolean;710 readonly asX3: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction]>;711 readonly isX4: boolean;712 readonly asX4: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;713 readonly isX5: boolean;714 readonly asX5: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;715 readonly isX6: boolean;716 readonly asX6: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;717 readonly isX7: boolean;718 readonly asX7: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;719 readonly isX8: boolean;720 readonly asX8: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;721 readonly type: 'Here' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8';722 }723724 /** @name XcmV1Junction (96) */725 export interface XcmV1Junction extends Enum {726 readonly isParachain: boolean;727 readonly asParachain: Compact<u32>;728 readonly isAccountId32: boolean;729 readonly asAccountId32: {730 readonly network: XcmV0JunctionNetworkId;731 readonly id: U8aFixed;732 } & Struct;733 readonly isAccountIndex64: boolean;734 readonly asAccountIndex64: {735 readonly network: XcmV0JunctionNetworkId;736 readonly index: Compact<u64>;737 } & Struct;738 readonly isAccountKey20: boolean;739 readonly asAccountKey20: {740 readonly network: XcmV0JunctionNetworkId;741 readonly key: U8aFixed;742 } & Struct;743 readonly isPalletInstance: boolean;744 readonly asPalletInstance: u8;745 readonly isGeneralIndex: boolean;746 readonly asGeneralIndex: Compact<u128>;747 readonly isGeneralKey: boolean;748 readonly asGeneralKey: Bytes;749 readonly isOnlyChild: boolean;750 readonly isPlurality: boolean;751 readonly asPlurality: {752 readonly id: XcmV0JunctionBodyId;753 readonly part: XcmV0JunctionBodyPart;754 } & Struct;755 readonly type: 'Parachain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality';756 }757758 /** @name XcmVersionedXcm (97) */759 export interface XcmVersionedXcm extends Enum {760 readonly isV0: boolean;761 readonly asV0: XcmV0Xcm;762 readonly isV1: boolean;763 readonly asV1: XcmV1Xcm;764 readonly isV2: boolean;765 readonly asV2: XcmV2Xcm;766 readonly type: 'V0' | 'V1' | 'V2';767 }768769 /** @name XcmV0Xcm (98) */770 export interface XcmV0Xcm extends Enum {771 readonly isWithdrawAsset: boolean;772 readonly asWithdrawAsset: {773 readonly assets: Vec<XcmV0MultiAsset>;774 readonly effects: Vec<XcmV0Order>;775 } & Struct;776 readonly isReserveAssetDeposit: boolean;777 readonly asReserveAssetDeposit: {778 readonly assets: Vec<XcmV0MultiAsset>;779 readonly effects: Vec<XcmV0Order>;780 } & Struct;781 readonly isTeleportAsset: boolean;782 readonly asTeleportAsset: {783 readonly assets: Vec<XcmV0MultiAsset>;784 readonly effects: Vec<XcmV0Order>;785 } & Struct;786 readonly isQueryResponse: boolean;787 readonly asQueryResponse: {788 readonly queryId: Compact<u64>;789 readonly response: XcmV0Response;790 } & Struct;791 readonly isTransferAsset: boolean;792 readonly asTransferAsset: {793 readonly assets: Vec<XcmV0MultiAsset>;794 readonly dest: XcmV0MultiLocation;795 } & Struct;796 readonly isTransferReserveAsset: boolean;797 readonly asTransferReserveAsset: {798 readonly assets: Vec<XcmV0MultiAsset>;799 readonly dest: XcmV0MultiLocation;800 readonly effects: Vec<XcmV0Order>;801 } & Struct;802 readonly isTransact: boolean;803 readonly asTransact: {804 readonly originType: XcmV0OriginKind;805 readonly requireWeightAtMost: u64;806 readonly call: XcmDoubleEncoded;807 } & Struct;808 readonly isHrmpNewChannelOpenRequest: boolean;809 readonly asHrmpNewChannelOpenRequest: {810 readonly sender: Compact<u32>;811 readonly maxMessageSize: Compact<u32>;812 readonly maxCapacity: Compact<u32>;813 } & Struct;814 readonly isHrmpChannelAccepted: boolean;815 readonly asHrmpChannelAccepted: {816 readonly recipient: Compact<u32>;817 } & Struct;818 readonly isHrmpChannelClosing: boolean;819 readonly asHrmpChannelClosing: {820 readonly initiator: Compact<u32>;821 readonly sender: Compact<u32>;822 readonly recipient: Compact<u32>;823 } & Struct;824 readonly isRelayedFrom: boolean;825 readonly asRelayedFrom: {826 readonly who: XcmV0MultiLocation;827 readonly message: XcmV0Xcm;828 } & Struct;829 readonly type: 'WithdrawAsset' | 'ReserveAssetDeposit' | 'TeleportAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'RelayedFrom';830 }831832 /** @name XcmV0MultiAsset (100) */833 export interface XcmV0MultiAsset extends Enum {834 readonly isNone: boolean;835 readonly isAll: boolean;836 readonly isAllFungible: boolean;837 readonly isAllNonFungible: boolean;838 readonly isAllAbstractFungible: boolean;839 readonly asAllAbstractFungible: {840 readonly id: Bytes;841 } & Struct;842 readonly isAllAbstractNonFungible: boolean;843 readonly asAllAbstractNonFungible: {844 readonly class: Bytes;845 } & Struct;846 readonly isAllConcreteFungible: boolean;847 readonly asAllConcreteFungible: {848 readonly id: XcmV0MultiLocation;849 } & Struct;850 readonly isAllConcreteNonFungible: boolean;851 readonly asAllConcreteNonFungible: {852 readonly class: XcmV0MultiLocation;853 } & Struct;854 readonly isAbstractFungible: boolean;855 readonly asAbstractFungible: {856 readonly id: Bytes;857 readonly amount: Compact<u128>;858 } & Struct;859 readonly isAbstractNonFungible: boolean;860 readonly asAbstractNonFungible: {861 readonly class: Bytes;862 readonly instance: XcmV1MultiassetAssetInstance;863 } & Struct;864 readonly isConcreteFungible: boolean;865 readonly asConcreteFungible: {866 readonly id: XcmV0MultiLocation;867 readonly amount: Compact<u128>;868 } & Struct;869 readonly isConcreteNonFungible: boolean;870 readonly asConcreteNonFungible: {871 readonly class: XcmV0MultiLocation;872 readonly instance: XcmV1MultiassetAssetInstance;873 } & Struct;874 readonly type: 'None' | 'All' | 'AllFungible' | 'AllNonFungible' | 'AllAbstractFungible' | 'AllAbstractNonFungible' | 'AllConcreteFungible' | 'AllConcreteNonFungible' | 'AbstractFungible' | 'AbstractNonFungible' | 'ConcreteFungible' | 'ConcreteNonFungible';875 }876877 /** @name XcmV1MultiassetAssetInstance (101) */878 export interface XcmV1MultiassetAssetInstance extends Enum {879 readonly isUndefined: boolean;880 readonly isIndex: boolean;881 readonly asIndex: Compact<u128>;882 readonly isArray4: boolean;883 readonly asArray4: U8aFixed;884 readonly isArray8: boolean;885 readonly asArray8: U8aFixed;886 readonly isArray16: boolean;887 readonly asArray16: U8aFixed;888 readonly isArray32: boolean;889 readonly asArray32: U8aFixed;890 readonly isBlob: boolean;891 readonly asBlob: Bytes;892 readonly type: 'Undefined' | 'Index' | 'Array4' | 'Array8' | 'Array16' | 'Array32' | 'Blob';893 }894895 /** @name XcmV0Order (104) */896 export interface XcmV0Order extends Enum {897 readonly isNull: boolean;898 readonly isDepositAsset: boolean;899 readonly asDepositAsset: {900 readonly assets: Vec<XcmV0MultiAsset>;901 readonly dest: XcmV0MultiLocation;902 } & Struct;903 readonly isDepositReserveAsset: boolean;904 readonly asDepositReserveAsset: {905 readonly assets: Vec<XcmV0MultiAsset>;906 readonly dest: XcmV0MultiLocation;907 readonly effects: Vec<XcmV0Order>;908 } & Struct;909 readonly isExchangeAsset: boolean;910 readonly asExchangeAsset: {911 readonly give: Vec<XcmV0MultiAsset>;912 readonly receive: Vec<XcmV0MultiAsset>;913 } & Struct;914 readonly isInitiateReserveWithdraw: boolean;915 readonly asInitiateReserveWithdraw: {916 readonly assets: Vec<XcmV0MultiAsset>;917 readonly reserve: XcmV0MultiLocation;918 readonly effects: Vec<XcmV0Order>;919 } & Struct;920 readonly isInitiateTeleport: boolean;921 readonly asInitiateTeleport: {922 readonly assets: Vec<XcmV0MultiAsset>;923 readonly dest: XcmV0MultiLocation;924 readonly effects: Vec<XcmV0Order>;925 } & Struct;926 readonly isQueryHolding: boolean;927 readonly asQueryHolding: {928 readonly queryId: Compact<u64>;929 readonly dest: XcmV0MultiLocation;930 readonly assets: Vec<XcmV0MultiAsset>;931 } & Struct;932 readonly isBuyExecution: boolean;933 readonly asBuyExecution: {934 readonly fees: XcmV0MultiAsset;935 readonly weight: u64;936 readonly debt: u64;937 readonly haltOnError: bool;938 readonly xcm: Vec<XcmV0Xcm>;939 } & Struct;940 readonly type: 'Null' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution';941 }942943 /** @name XcmV0Response (106) */944 export interface XcmV0Response extends Enum {945 readonly isAssets: boolean;946 readonly asAssets: Vec<XcmV0MultiAsset>;947 readonly type: 'Assets';948 }949950 /** @name XcmV0OriginKind (107) */951 export interface XcmV0OriginKind extends Enum {952 readonly isNative: boolean;953 readonly isSovereignAccount: boolean;954 readonly isSuperuser: boolean;955 readonly isXcm: boolean;956 readonly type: 'Native' | 'SovereignAccount' | 'Superuser' | 'Xcm';957 }958959 /** @name XcmDoubleEncoded (108) */960 export interface XcmDoubleEncoded extends Struct {961 readonly encoded: Bytes;962 }963964 /** @name XcmV1Xcm (109) */965 export interface XcmV1Xcm extends Enum {966 readonly isWithdrawAsset: boolean;967 readonly asWithdrawAsset: {968 readonly assets: XcmV1MultiassetMultiAssets;969 readonly effects: Vec<XcmV1Order>;970 } & Struct;971 readonly isReserveAssetDeposited: boolean;972 readonly asReserveAssetDeposited: {973 readonly assets: XcmV1MultiassetMultiAssets;974 readonly effects: Vec<XcmV1Order>;975 } & Struct;976 readonly isReceiveTeleportedAsset: boolean;977 readonly asReceiveTeleportedAsset: {978 readonly assets: XcmV1MultiassetMultiAssets;979 readonly effects: Vec<XcmV1Order>;980 } & Struct;981 readonly isQueryResponse: boolean;982 readonly asQueryResponse: {983 readonly queryId: Compact<u64>;984 readonly response: XcmV1Response;985 } & Struct;986 readonly isTransferAsset: boolean;987 readonly asTransferAsset: {988 readonly assets: XcmV1MultiassetMultiAssets;989 readonly beneficiary: XcmV1MultiLocation;990 } & Struct;991 readonly isTransferReserveAsset: boolean;992 readonly asTransferReserveAsset: {993 readonly assets: XcmV1MultiassetMultiAssets;994 readonly dest: XcmV1MultiLocation;995 readonly effects: Vec<XcmV1Order>;996 } & Struct;997 readonly isTransact: boolean;998 readonly asTransact: {999 readonly originType: XcmV0OriginKind;1000 readonly requireWeightAtMost: u64;1001 readonly call: XcmDoubleEncoded;1002 } & Struct;1003 readonly isHrmpNewChannelOpenRequest: boolean;1004 readonly asHrmpNewChannelOpenRequest: {1005 readonly sender: Compact<u32>;1006 readonly maxMessageSize: Compact<u32>;1007 readonly maxCapacity: Compact<u32>;1008 } & Struct;1009 readonly isHrmpChannelAccepted: boolean;1010 readonly asHrmpChannelAccepted: {1011 readonly recipient: Compact<u32>;1012 } & Struct;1013 readonly isHrmpChannelClosing: boolean;1014 readonly asHrmpChannelClosing: {1015 readonly initiator: Compact<u32>;1016 readonly sender: Compact<u32>;1017 readonly recipient: Compact<u32>;1018 } & Struct;1019 readonly isRelayedFrom: boolean;1020 readonly asRelayedFrom: {1021 readonly who: XcmV1MultilocationJunctions;1022 readonly message: XcmV1Xcm;1023 } & Struct;1024 readonly isSubscribeVersion: boolean;1025 readonly asSubscribeVersion: {1026 readonly queryId: Compact<u64>;1027 readonly maxResponseWeight: Compact<u64>;1028 } & Struct;1029 readonly isUnsubscribeVersion: boolean;1030 readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'RelayedFrom' | 'SubscribeVersion' | 'UnsubscribeVersion';1031 }10321033 /** @name XcmV1MultiassetMultiAssets (110) */1034 export interface XcmV1MultiassetMultiAssets extends Vec<XcmV1MultiAsset> {}10351036 /** @name XcmV1MultiAsset (112) */1037 export interface XcmV1MultiAsset extends Struct {1038 readonly id: XcmV1MultiassetAssetId;1039 readonly fun: XcmV1MultiassetFungibility;1040 }10411042 /** @name XcmV1MultiassetAssetId (113) */1043 export interface XcmV1MultiassetAssetId extends Enum {1044 readonly isConcrete: boolean;1045 readonly asConcrete: XcmV1MultiLocation;1046 readonly isAbstract: boolean;1047 readonly asAbstract: Bytes;1048 readonly type: 'Concrete' | 'Abstract';1049 }10501051 /** @name XcmV1MultiassetFungibility (114) */1052 export interface XcmV1MultiassetFungibility extends Enum {1053 readonly isFungible: boolean;1054 readonly asFungible: Compact<u128>;1055 readonly isNonFungible: boolean;1056 readonly asNonFungible: XcmV1MultiassetAssetInstance;1057 readonly type: 'Fungible' | 'NonFungible';1058 }10591060 /** @name XcmV1Order (116) */1061 export interface XcmV1Order extends Enum {1062 readonly isNoop: boolean;1063 readonly isDepositAsset: boolean;1064 readonly asDepositAsset: {1065 readonly assets: XcmV1MultiassetMultiAssetFilter;1066 readonly maxAssets: u32;1067 readonly beneficiary: XcmV1MultiLocation;1068 } & Struct;1069 readonly isDepositReserveAsset: boolean;1070 readonly asDepositReserveAsset: {1071 readonly assets: XcmV1MultiassetMultiAssetFilter;1072 readonly maxAssets: u32;1073 readonly dest: XcmV1MultiLocation;1074 readonly effects: Vec<XcmV1Order>;1075 } & Struct;1076 readonly isExchangeAsset: boolean;1077 readonly asExchangeAsset: {1078 readonly give: XcmV1MultiassetMultiAssetFilter;1079 readonly receive: XcmV1MultiassetMultiAssets;1080 } & Struct;1081 readonly isInitiateReserveWithdraw: boolean;1082 readonly asInitiateReserveWithdraw: {1083 readonly assets: XcmV1MultiassetMultiAssetFilter;1084 readonly reserve: XcmV1MultiLocation;1085 readonly effects: Vec<XcmV1Order>;1086 } & Struct;1087 readonly isInitiateTeleport: boolean;1088 readonly asInitiateTeleport: {1089 readonly assets: XcmV1MultiassetMultiAssetFilter;1090 readonly dest: XcmV1MultiLocation;1091 readonly effects: Vec<XcmV1Order>;1092 } & Struct;1093 readonly isQueryHolding: boolean;1094 readonly asQueryHolding: {1095 readonly queryId: Compact<u64>;1096 readonly dest: XcmV1MultiLocation;1097 readonly assets: XcmV1MultiassetMultiAssetFilter;1098 } & Struct;1099 readonly isBuyExecution: boolean;1100 readonly asBuyExecution: {1101 readonly fees: XcmV1MultiAsset;1102 readonly weight: u64;1103 readonly debt: u64;1104 readonly haltOnError: bool;1105 readonly instructions: Vec<XcmV1Xcm>;1106 } & Struct;1107 readonly type: 'Noop' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution';1108 }11091110 /** @name XcmV1MultiassetMultiAssetFilter (117) */1111 export interface XcmV1MultiassetMultiAssetFilter extends Enum {1112 readonly isDefinite: boolean;1113 readonly asDefinite: XcmV1MultiassetMultiAssets;1114 readonly isWild: boolean;1115 readonly asWild: XcmV1MultiassetWildMultiAsset;1116 readonly type: 'Definite' | 'Wild';1117 }11181119 /** @name XcmV1MultiassetWildMultiAsset (118) */1120 export interface XcmV1MultiassetWildMultiAsset extends Enum {1121 readonly isAll: boolean;1122 readonly isAllOf: boolean;1123 readonly asAllOf: {1124 readonly id: XcmV1MultiassetAssetId;1125 readonly fun: XcmV1MultiassetWildFungibility;1126 } & Struct;1127 readonly type: 'All' | 'AllOf';1128 }11291130 /** @name XcmV1MultiassetWildFungibility (119) */1131 export interface XcmV1MultiassetWildFungibility extends Enum {1132 readonly isFungible: boolean;1133 readonly isNonFungible: boolean;1134 readonly type: 'Fungible' | 'NonFungible';1135 }11361137 /** @name XcmV1Response (121) */1138 export interface XcmV1Response extends Enum {1139 readonly isAssets: boolean;1140 readonly asAssets: XcmV1MultiassetMultiAssets;1141 readonly isVersion: boolean;1142 readonly asVersion: u32;1143 readonly type: 'Assets' | 'Version';1144 }11451146 /** @name XcmV2Xcm (122) */1147 export interface XcmV2Xcm extends Vec<XcmV2Instruction> {}11481149 /** @name XcmV2Instruction (124) */1150 export interface XcmV2Instruction extends Enum {1151 readonly isWithdrawAsset: boolean;1152 readonly asWithdrawAsset: XcmV1MultiassetMultiAssets;1153 readonly isReserveAssetDeposited: boolean;1154 readonly asReserveAssetDeposited: XcmV1MultiassetMultiAssets;1155 readonly isReceiveTeleportedAsset: boolean;1156 readonly asReceiveTeleportedAsset: XcmV1MultiassetMultiAssets;1157 readonly isQueryResponse: boolean;1158 readonly asQueryResponse: {1159 readonly queryId: Compact<u64>;1160 readonly response: XcmV2Response;1161 readonly maxWeight: Compact<u64>;1162 } & Struct;1163 readonly isTransferAsset: boolean;1164 readonly asTransferAsset: {1165 readonly assets: XcmV1MultiassetMultiAssets;1166 readonly beneficiary: XcmV1MultiLocation;1167 } & Struct;1168 readonly isTransferReserveAsset: boolean;1169 readonly asTransferReserveAsset: {1170 readonly assets: XcmV1MultiassetMultiAssets;1171 readonly dest: XcmV1MultiLocation;1172 readonly xcm: XcmV2Xcm;1173 } & Struct;1174 readonly isTransact: boolean;1175 readonly asTransact: {1176 readonly originType: XcmV0OriginKind;1177 readonly requireWeightAtMost: Compact<u64>;1178 readonly call: XcmDoubleEncoded;1179 } & Struct;1180 readonly isHrmpNewChannelOpenRequest: boolean;1181 readonly asHrmpNewChannelOpenRequest: {1182 readonly sender: Compact<u32>;1183 readonly maxMessageSize: Compact<u32>;1184 readonly maxCapacity: Compact<u32>;1185 } & Struct;1186 readonly isHrmpChannelAccepted: boolean;1187 readonly asHrmpChannelAccepted: {1188 readonly recipient: Compact<u32>;1189 } & Struct;1190 readonly isHrmpChannelClosing: boolean;1191 readonly asHrmpChannelClosing: {1192 readonly initiator: Compact<u32>;1193 readonly sender: Compact<u32>;1194 readonly recipient: Compact<u32>;1195 } & Struct;1196 readonly isClearOrigin: boolean;1197 readonly isDescendOrigin: boolean;1198 readonly asDescendOrigin: XcmV1MultilocationJunctions;1199 readonly isReportError: boolean;1200 readonly asReportError: {1201 readonly queryId: Compact<u64>;1202 readonly dest: XcmV1MultiLocation;1203 readonly maxResponseWeight: Compact<u64>;1204 } & Struct;1205 readonly isDepositAsset: boolean;1206 readonly asDepositAsset: {1207 readonly assets: XcmV1MultiassetMultiAssetFilter;1208 readonly maxAssets: Compact<u32>;1209 readonly beneficiary: XcmV1MultiLocation;1210 } & Struct;1211 readonly isDepositReserveAsset: boolean;1212 readonly asDepositReserveAsset: {1213 readonly assets: XcmV1MultiassetMultiAssetFilter;1214 readonly maxAssets: Compact<u32>;1215 readonly dest: XcmV1MultiLocation;1216 readonly xcm: XcmV2Xcm;1217 } & Struct;1218 readonly isExchangeAsset: boolean;1219 readonly asExchangeAsset: {1220 readonly give: XcmV1MultiassetMultiAssetFilter;1221 readonly receive: XcmV1MultiassetMultiAssets;1222 } & Struct;1223 readonly isInitiateReserveWithdraw: boolean;1224 readonly asInitiateReserveWithdraw: {1225 readonly assets: XcmV1MultiassetMultiAssetFilter;1226 readonly reserve: XcmV1MultiLocation;1227 readonly xcm: XcmV2Xcm;1228 } & Struct;1229 readonly isInitiateTeleport: boolean;1230 readonly asInitiateTeleport: {1231 readonly assets: XcmV1MultiassetMultiAssetFilter;1232 readonly dest: XcmV1MultiLocation;1233 readonly xcm: XcmV2Xcm;1234 } & Struct;1235 readonly isQueryHolding: boolean;1236 readonly asQueryHolding: {1237 readonly queryId: Compact<u64>;1238 readonly dest: XcmV1MultiLocation;1239 readonly assets: XcmV1MultiassetMultiAssetFilter;1240 readonly maxResponseWeight: Compact<u64>;1241 } & Struct;1242 readonly isBuyExecution: boolean;1243 readonly asBuyExecution: {1244 readonly fees: XcmV1MultiAsset;1245 readonly weightLimit: XcmV2WeightLimit;1246 } & Struct;1247 readonly isRefundSurplus: boolean;1248 readonly isSetErrorHandler: boolean;1249 readonly asSetErrorHandler: XcmV2Xcm;1250 readonly isSetAppendix: boolean;1251 readonly asSetAppendix: XcmV2Xcm;1252 readonly isClearError: boolean;1253 readonly isClaimAsset: boolean;1254 readonly asClaimAsset: {1255 readonly assets: XcmV1MultiassetMultiAssets;1256 readonly ticket: XcmV1MultiLocation;1257 } & Struct;1258 readonly isTrap: boolean;1259 readonly asTrap: Compact<u64>;1260 readonly isSubscribeVersion: boolean;1261 readonly asSubscribeVersion: {1262 readonly queryId: Compact<u64>;1263 readonly maxResponseWeight: Compact<u64>;1264 } & Struct;1265 readonly isUnsubscribeVersion: boolean;1266 readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'ClearOrigin' | 'DescendOrigin' | 'ReportError' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution' | 'RefundSurplus' | 'SetErrorHandler' | 'SetAppendix' | 'ClearError' | 'ClaimAsset' | 'Trap' | 'SubscribeVersion' | 'UnsubscribeVersion';1267 }12681269 /** @name XcmV2Response (125) */1270 export interface XcmV2Response extends Enum {1271 readonly isNull: boolean;1272 readonly isAssets: boolean;1273 readonly asAssets: XcmV1MultiassetMultiAssets;1274 readonly isExecutionResult: boolean;1275 readonly asExecutionResult: Option<ITuple<[u32, XcmV2TraitsError]>>;1276 readonly isVersion: boolean;1277 readonly asVersion: u32;1278 readonly type: 'Null' | 'Assets' | 'ExecutionResult' | 'Version';1279 }12801281 /** @name XcmV2TraitsError (128) */1282 export interface XcmV2TraitsError extends Enum {1283 readonly isOverflow: boolean;1284 readonly isUnimplemented: boolean;1285 readonly isUntrustedReserveLocation: boolean;1286 readonly isUntrustedTeleportLocation: boolean;1287 readonly isMultiLocationFull: boolean;1288 readonly isMultiLocationNotInvertible: boolean;1289 readonly isBadOrigin: boolean;1290 readonly isInvalidLocation: boolean;1291 readonly isAssetNotFound: boolean;1292 readonly isFailedToTransactAsset: boolean;1293 readonly isNotWithdrawable: boolean;1294 readonly isLocationCannotHold: boolean;1295 readonly isExceedsMaxMessageSize: boolean;1296 readonly isDestinationUnsupported: boolean;1297 readonly isTransport: boolean;1298 readonly isUnroutable: boolean;1299 readonly isUnknownClaim: boolean;1300 readonly isFailedToDecode: boolean;1301 readonly isMaxWeightInvalid: boolean;1302 readonly isNotHoldingFees: boolean;1303 readonly isTooExpensive: boolean;1304 readonly isTrap: boolean;1305 readonly asTrap: u64;1306 readonly isUnhandledXcmVersion: boolean;1307 readonly isWeightLimitReached: boolean;1308 readonly asWeightLimitReached: u64;1309 readonly isBarrier: boolean;1310 readonly isWeightNotComputable: boolean;1311 readonly type: 'Overflow' | 'Unimplemented' | 'UntrustedReserveLocation' | 'UntrustedTeleportLocation' | 'MultiLocationFull' | 'MultiLocationNotInvertible' | 'BadOrigin' | 'InvalidLocation' | 'AssetNotFound' | 'FailedToTransactAsset' | 'NotWithdrawable' | 'LocationCannotHold' | 'ExceedsMaxMessageSize' | 'DestinationUnsupported' | 'Transport' | 'Unroutable' | 'UnknownClaim' | 'FailedToDecode' | 'MaxWeightInvalid' | 'NotHoldingFees' | 'TooExpensive' | 'Trap' | 'UnhandledXcmVersion' | 'WeightLimitReached' | 'Barrier' | 'WeightNotComputable';1312 }13131314 /** @name XcmV2WeightLimit (129) */1315 export interface XcmV2WeightLimit extends Enum {1316 readonly isUnlimited: boolean;1317 readonly isLimited: boolean;1318 readonly asLimited: Compact<u64>;1319 readonly type: 'Unlimited' | 'Limited';1320 }13211322 /** @name XcmVersionedMultiAssets (130) */1323 export interface XcmVersionedMultiAssets extends Enum {1324 readonly isV0: boolean;1325 readonly asV0: Vec<XcmV0MultiAsset>;1326 readonly isV1: boolean;1327 readonly asV1: XcmV1MultiassetMultiAssets;1328 readonly type: 'V0' | 'V1';1329 }13301331 /** @name CumulusPalletXcmCall (145) */1332 export type CumulusPalletXcmCall = Null;13331334 /** @name CumulusPalletDmpQueueCall (146) */1335 export interface CumulusPalletDmpQueueCall extends Enum {1336 readonly isServiceOverweight: boolean;1337 readonly asServiceOverweight: {1338 readonly index: u64;1339 readonly weightLimit: u64;1340 } & Struct;1341 readonly type: 'ServiceOverweight';1342 }13431344 /** @name PalletInflationCall (147) */1345 export interface PalletInflationCall extends Enum {1346 readonly isStartInflation: boolean;1347 readonly asStartInflation: {1348 readonly inflationStartRelayBlock: u32;1349 } & Struct;1350 readonly type: 'StartInflation';1351 }13521353 /** @name PalletUniqueCall (148) */1354 export interface PalletUniqueCall extends Enum {1355 readonly isCreateCollection: boolean;1356 readonly asCreateCollection: {1357 readonly collectionName: Vec<u16>;1358 readonly collectionDescription: Vec<u16>;1359 readonly tokenPrefix: Bytes;1360 readonly mode: UpDataStructsCollectionMode;1361 } & Struct;1362 readonly isCreateCollectionEx: boolean;1363 readonly asCreateCollectionEx: {1364 readonly data: UpDataStructsCreateCollectionData;1365 } & Struct;1366 readonly isDestroyCollection: boolean;1367 readonly asDestroyCollection: {1368 readonly collectionId: u32;1369 } & Struct;1370 readonly isAddToAllowList: boolean;1371 readonly asAddToAllowList: {1372 readonly collectionId: u32;1373 readonly address: PalletEvmAccountBasicCrossAccountIdRepr;1374 } & Struct;1375 readonly isRemoveFromAllowList: boolean;1376 readonly asRemoveFromAllowList: {1377 readonly collectionId: u32;1378 readonly address: PalletEvmAccountBasicCrossAccountIdRepr;1379 } & Struct;1380 readonly isChangeCollectionOwner: boolean;1381 readonly asChangeCollectionOwner: {1382 readonly collectionId: u32;1383 readonly newOwner: AccountId32;1384 } & Struct;1385 readonly isAddCollectionAdmin: boolean;1386 readonly asAddCollectionAdmin: {1387 readonly collectionId: u32;1388 readonly newAdmin: PalletEvmAccountBasicCrossAccountIdRepr;1389 } & Struct;1390 readonly isRemoveCollectionAdmin: boolean;1391 readonly asRemoveCollectionAdmin: {1392 readonly collectionId: u32;1393 readonly accountId: PalletEvmAccountBasicCrossAccountIdRepr;1394 } & Struct;1395 readonly isSetCollectionSponsor: boolean;1396 readonly asSetCollectionSponsor: {1397 readonly collectionId: u32;1398 readonly newSponsor: AccountId32;1399 } & Struct;1400 readonly isConfirmSponsorship: boolean;1401 readonly asConfirmSponsorship: {1402 readonly collectionId: u32;1403 } & Struct;1404 readonly isRemoveCollectionSponsor: boolean;1405 readonly asRemoveCollectionSponsor: {1406 readonly collectionId: u32;1407 } & Struct;1408 readonly isCreateItem: boolean;1409 readonly asCreateItem: {1410 readonly collectionId: u32;1411 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;1412 readonly data: UpDataStructsCreateItemData;1413 } & Struct;1414 readonly isCreateMultipleItems: boolean;1415 readonly asCreateMultipleItems: {1416 readonly collectionId: u32;1417 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;1418 readonly itemsData: Vec<UpDataStructsCreateItemData>;1419 } & Struct;1420 readonly isSetCollectionProperties: boolean;1421 readonly asSetCollectionProperties: {1422 readonly collectionId: u32;1423 readonly properties: Vec<UpDataStructsProperty>;1424 } & Struct;1425 readonly isDeleteCollectionProperties: boolean;1426 readonly asDeleteCollectionProperties: {1427 readonly collectionId: u32;1428 readonly propertyKeys: Vec<Bytes>;1429 } & Struct;1430 readonly isSetTokenProperties: boolean;1431 readonly asSetTokenProperties: {1432 readonly collectionId: u32;1433 readonly tokenId: u32;1434 readonly properties: Vec<UpDataStructsProperty>;1435 } & Struct;1436 readonly isDeleteTokenProperties: boolean;1437 readonly asDeleteTokenProperties: {1438 readonly collectionId: u32;1439 readonly tokenId: u32;1440 readonly propertyKeys: Vec<Bytes>;1441 } & Struct;1442 readonly isSetTokenPropertyPermissions: boolean;1443 readonly asSetTokenPropertyPermissions: {1444 readonly collectionId: u32;1445 readonly propertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;1446 } & Struct;1447 readonly isCreateMultipleItemsEx: boolean;1448 readonly asCreateMultipleItemsEx: {1449 readonly collectionId: u32;1450 readonly data: UpDataStructsCreateItemExData;1451 } & Struct;1452 readonly isSetTransfersEnabledFlag: boolean;1453 readonly asSetTransfersEnabledFlag: {1454 readonly collectionId: u32;1455 readonly value: bool;1456 } & Struct;1457 readonly isBurnItem: boolean;1458 readonly asBurnItem: {1459 readonly collectionId: u32;1460 readonly itemId: u32;1461 readonly value: u128;1462 } & Struct;1463 readonly isBurnFrom: boolean;1464 readonly asBurnFrom: {1465 readonly collectionId: u32;1466 readonly from: PalletEvmAccountBasicCrossAccountIdRepr;1467 readonly itemId: u32;1468 readonly value: u128;1469 } & Struct;1470 readonly isTransfer: boolean;1471 readonly asTransfer: {1472 readonly recipient: PalletEvmAccountBasicCrossAccountIdRepr;1473 readonly collectionId: u32;1474 readonly itemId: u32;1475 readonly value: u128;1476 } & Struct;1477 readonly isApprove: boolean;1478 readonly asApprove: {1479 readonly spender: PalletEvmAccountBasicCrossAccountIdRepr;1480 readonly collectionId: u32;1481 readonly itemId: u32;1482 readonly amount: u128;1483 } & Struct;1484 readonly isTransferFrom: boolean;1485 readonly asTransferFrom: {1486 readonly from: PalletEvmAccountBasicCrossAccountIdRepr;1487 readonly recipient: PalletEvmAccountBasicCrossAccountIdRepr;1488 readonly collectionId: u32;1489 readonly itemId: u32;1490 readonly value: u128;1491 } & Struct;1492 readonly isSetCollectionLimits: boolean;1493 readonly asSetCollectionLimits: {1494 readonly collectionId: u32;1495 readonly newLimit: UpDataStructsCollectionLimits;1496 } & Struct;1497 readonly isSetCollectionPermissions: boolean;1498 readonly asSetCollectionPermissions: {1499 readonly collectionId: u32;1500 readonly newPermission: UpDataStructsCollectionPermissions;1501 } & Struct;1502 readonly isRepartition: boolean;1503 readonly asRepartition: {1504 readonly collectionId: u32;1505 readonly tokenId: u32;1506 readonly amount: u128;1507 } & Struct;1508 readonly type: 'CreateCollection' | 'CreateCollectionEx' | 'DestroyCollection' | 'AddToAllowList' | 'RemoveFromAllowList' | 'ChangeCollectionOwner' | 'AddCollectionAdmin' | 'RemoveCollectionAdmin' | 'SetCollectionSponsor' | 'ConfirmSponsorship' | 'RemoveCollectionSponsor' | 'CreateItem' | 'CreateMultipleItems' | 'SetCollectionProperties' | 'DeleteCollectionProperties' | 'SetTokenProperties' | 'DeleteTokenProperties' | 'SetTokenPropertyPermissions' | 'CreateMultipleItemsEx' | 'SetTransfersEnabledFlag' | 'BurnItem' | 'BurnFrom' | 'Transfer' | 'Approve' | 'TransferFrom' | 'SetCollectionLimits' | 'SetCollectionPermissions' | 'Repartition';1509 }15101511 /** @name UpDataStructsCollectionMode (154) */1512 export interface UpDataStructsCollectionMode extends Enum {1513 readonly isNft: boolean;1514 readonly isFungible: boolean;1515 readonly asFungible: u8;1516 readonly isReFungible: boolean;1517 readonly type: 'Nft' | 'Fungible' | 'ReFungible';1518 }15191520 /** @name UpDataStructsCreateCollectionData (155) */1521 export interface UpDataStructsCreateCollectionData extends Struct {1522 readonly mode: UpDataStructsCollectionMode;1523 readonly access: Option<UpDataStructsAccessMode>;1524 readonly name: Vec<u16>;1525 readonly description: Vec<u16>;1526 readonly tokenPrefix: Bytes;1527 readonly pendingSponsor: Option<AccountId32>;1528 readonly limits: Option<UpDataStructsCollectionLimits>;1529 readonly permissions: Option<UpDataStructsCollectionPermissions>;1530 readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;1531 readonly properties: Vec<UpDataStructsProperty>;1532 }15331534 /** @name UpDataStructsAccessMode (157) */1535 export interface UpDataStructsAccessMode extends Enum {1536 readonly isNormal: boolean;1537 readonly isAllowList: boolean;1538 readonly type: 'Normal' | 'AllowList';1539 }15401541 /** @name UpDataStructsCollectionLimits (160) */1542 export interface UpDataStructsCollectionLimits extends Struct {1543 readonly accountTokenOwnershipLimit: Option<u32>;1544 readonly sponsoredDataSize: Option<u32>;1545 readonly sponsoredDataRateLimit: Option<UpDataStructsSponsoringRateLimit>;1546 readonly tokenLimit: Option<u32>;1547 readonly sponsorTransferTimeout: Option<u32>;1548 readonly sponsorApproveTimeout: Option<u32>;1549 readonly ownerCanTransfer: Option<bool>;1550 readonly ownerCanDestroy: Option<bool>;1551 readonly transfersEnabled: Option<bool>;1552 }15531554 /** @name UpDataStructsSponsoringRateLimit (162) */1555 export interface UpDataStructsSponsoringRateLimit extends Enum {1556 readonly isSponsoringDisabled: boolean;1557 readonly isBlocks: boolean;1558 readonly asBlocks: u32;1559 readonly type: 'SponsoringDisabled' | 'Blocks';1560 }15611562 /** @name UpDataStructsCollectionPermissions (165) */1563 export interface UpDataStructsCollectionPermissions extends Struct {1564 readonly access: Option<UpDataStructsAccessMode>;1565 readonly mintMode: Option<bool>;1566 readonly nesting: Option<UpDataStructsNestingPermissions>;1567 }15681569 /** @name UpDataStructsNestingPermissions (167) */1570 export interface UpDataStructsNestingPermissions extends Struct {1571 readonly tokenOwner: bool;1572 readonly collectionAdmin: bool;1573 readonly restricted: Option<UpDataStructsOwnerRestrictedSet>;1574 }15751576 /** @name UpDataStructsOwnerRestrictedSet (169) */1577 export interface UpDataStructsOwnerRestrictedSet extends BTreeSet<u32> {}15781579 /** @name UpDataStructsPropertyKeyPermission (175) */1580 export interface UpDataStructsPropertyKeyPermission extends Struct {1581 readonly key: Bytes;1582 readonly permission: UpDataStructsPropertyPermission;1583 }15841585 /** @name UpDataStructsPropertyPermission (177) */1586 export interface UpDataStructsPropertyPermission extends Struct {1587 readonly mutable: bool;1588 readonly collectionAdmin: bool;1589 readonly tokenOwner: bool;1590 }15911592 /** @name UpDataStructsProperty (180) */1593 export interface UpDataStructsProperty extends Struct {1594 readonly key: Bytes;1595 readonly value: Bytes;1596 }15971598 /** @name PalletEvmAccountBasicCrossAccountIdRepr (183) */1599 export interface PalletEvmAccountBasicCrossAccountIdRepr extends Enum {1600 readonly isSubstrate: boolean;1601 readonly asSubstrate: AccountId32;1602 readonly isEthereum: boolean;1603 readonly asEthereum: H160;1604 readonly type: 'Substrate' | 'Ethereum';1605 }16061607 /** @name UpDataStructsCreateItemData (185) */1608 export interface UpDataStructsCreateItemData extends Enum {1609 readonly isNft: boolean;1610 readonly asNft: UpDataStructsCreateNftData;1611 readonly isFungible: boolean;1612 readonly asFungible: UpDataStructsCreateFungibleData;1613 readonly isReFungible: boolean;1614 readonly asReFungible: UpDataStructsCreateReFungibleData;1615 readonly type: 'Nft' | 'Fungible' | 'ReFungible';1616 }16171618 /** @name UpDataStructsCreateNftData (186) */1619 export interface UpDataStructsCreateNftData extends Struct {1620 readonly properties: Vec<UpDataStructsProperty>;1621 }16221623 /** @name UpDataStructsCreateFungibleData (187) */1624 export interface UpDataStructsCreateFungibleData extends Struct {1625 readonly value: u128;1626 }16271628 /** @name UpDataStructsCreateReFungibleData (188) */1629 export interface UpDataStructsCreateReFungibleData extends Struct {1630 readonly pieces: u128;1631 readonly properties: Vec<UpDataStructsProperty>;1632 }16331634 /** @name UpDataStructsCreateItemExData (192) */1635 export interface UpDataStructsCreateItemExData extends Enum {1636 readonly isNft: boolean;1637 readonly asNft: Vec<UpDataStructsCreateNftExData>;1638 readonly isFungible: boolean;1639 readonly asFungible: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>;1640 readonly isRefungibleMultipleItems: boolean;1641 readonly asRefungibleMultipleItems: Vec<UpDataStructsCreateRefungibleExSingleOwner>;1642 readonly isRefungibleMultipleOwners: boolean;1643 readonly asRefungibleMultipleOwners: UpDataStructsCreateRefungibleExMultipleOwners;1644 readonly type: 'Nft' | 'Fungible' | 'RefungibleMultipleItems' | 'RefungibleMultipleOwners';1645 }16461647 /** @name UpDataStructsCreateNftExData (194) */1648 export interface UpDataStructsCreateNftExData extends Struct {1649 readonly properties: Vec<UpDataStructsProperty>;1650 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;1651 }16521653 /** @name UpDataStructsCreateRefungibleExSingleOwner (201) */1654 export interface UpDataStructsCreateRefungibleExSingleOwner extends Struct {1655 readonly user: PalletEvmAccountBasicCrossAccountIdRepr;1656 readonly pieces: u128;1657 readonly properties: Vec<UpDataStructsProperty>;1658 }16591660 /** @name UpDataStructsCreateRefungibleExMultipleOwners (203) */1661 export interface UpDataStructsCreateRefungibleExMultipleOwners extends Struct {1662 readonly users: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>;1663 readonly properties: Vec<UpDataStructsProperty>;1664 }16651666 /** @name PalletUniqueSchedulerCall (204) */1667 export interface PalletUniqueSchedulerCall extends Enum {1668 readonly isScheduleNamed: boolean;1669 readonly asScheduleNamed: {1670 readonly id: U8aFixed;1671 readonly when: u32;1672 readonly maybePeriodic: Option<ITuple<[u32, u32]>>;1673 readonly priority: u8;1674 readonly call: FrameSupportScheduleMaybeHashed;1675 } & Struct;1676 readonly isCancelNamed: boolean;1677 readonly asCancelNamed: {1678 readonly id: U8aFixed;1679 } & Struct;1680 readonly isScheduleNamedAfter: boolean;1681 readonly asScheduleNamedAfter: {1682 readonly id: U8aFixed;1683 readonly after: u32;1684 readonly maybePeriodic: Option<ITuple<[u32, u32]>>;1685 readonly priority: u8;1686 readonly call: FrameSupportScheduleMaybeHashed;1687 } & Struct;1688 readonly type: 'ScheduleNamed' | 'CancelNamed' | 'ScheduleNamedAfter';1689 }16901691 /** @name FrameSupportScheduleMaybeHashed (206) */1692 export interface FrameSupportScheduleMaybeHashed extends Enum {1693 readonly isValue: boolean;1694 readonly asValue: Call;1695 readonly isHash: boolean;1696 readonly asHash: H256;1697 readonly type: 'Value' | 'Hash';1698 }16991700 /** @name PalletTemplateTransactionPaymentCall (207) */1701 export type PalletTemplateTransactionPaymentCall = Null;17021703 /** @name PalletStructureCall (208) */1704 export type PalletStructureCall = Null;17051706 /** @name PalletRmrkCoreCall (209) */1707 export interface PalletRmrkCoreCall extends Enum {1708 readonly isCreateCollection: boolean;1709 readonly asCreateCollection: {1710 readonly metadata: Bytes;1711 readonly max: Option<u32>;1712 readonly symbol: Bytes;1713 } & Struct;1714 readonly isDestroyCollection: boolean;1715 readonly asDestroyCollection: {1716 readonly collectionId: u32;1717 } & Struct;1718 readonly isChangeCollectionIssuer: boolean;1719 readonly asChangeCollectionIssuer: {1720 readonly collectionId: u32;1721 readonly newIssuer: MultiAddress;1722 } & Struct;1723 readonly isLockCollection: boolean;1724 readonly asLockCollection: {1725 readonly collectionId: u32;1726 } & Struct;1727 readonly isMintNft: boolean;1728 readonly asMintNft: {1729 readonly owner: Option<AccountId32>;1730 readonly collectionId: u32;1731 readonly recipient: Option<AccountId32>;1732 readonly royaltyAmount: Option<Permill>;1733 readonly metadata: Bytes;1734 readonly transferable: bool;1735 readonly resources: Option<Vec<RmrkTraitsResourceResourceTypes>>;1736 } & Struct;1737 readonly isBurnNft: boolean;1738 readonly asBurnNft: {1739 readonly collectionId: u32;1740 readonly nftId: u32;1741 readonly maxBurns: u32;1742 } & Struct;1743 readonly isSend: boolean;1744 readonly asSend: {1745 readonly rmrkCollectionId: u32;1746 readonly rmrkNftId: u32;1747 readonly newOwner: RmrkTraitsNftAccountIdOrCollectionNftTuple;1748 } & Struct;1749 readonly isAcceptNft: boolean;1750 readonly asAcceptNft: {1751 readonly rmrkCollectionId: u32;1752 readonly rmrkNftId: u32;1753 readonly newOwner: RmrkTraitsNftAccountIdOrCollectionNftTuple;1754 } & Struct;1755 readonly isRejectNft: boolean;1756 readonly asRejectNft: {1757 readonly rmrkCollectionId: u32;1758 readonly rmrkNftId: u32;1759 } & Struct;1760 readonly isAcceptResource: boolean;1761 readonly asAcceptResource: {1762 readonly rmrkCollectionId: u32;1763 readonly rmrkNftId: u32;1764 readonly resourceId: u32;1765 } & Struct;1766 readonly isAcceptResourceRemoval: boolean;1767 readonly asAcceptResourceRemoval: {1768 readonly rmrkCollectionId: u32;1769 readonly rmrkNftId: u32;1770 readonly resourceId: u32;1771 } & Struct;1772 readonly isSetProperty: boolean;1773 readonly asSetProperty: {1774 readonly rmrkCollectionId: Compact<u32>;1775 readonly maybeNftId: Option<u32>;1776 readonly key: Bytes;1777 readonly value: Bytes;1778 } & Struct;1779 readonly isSetPriority: boolean;1780 readonly asSetPriority: {1781 readonly rmrkCollectionId: u32;1782 readonly rmrkNftId: u32;1783 readonly priorities: Vec<u32>;1784 } & Struct;1785 readonly isAddBasicResource: boolean;1786 readonly asAddBasicResource: {1787 readonly rmrkCollectionId: u32;1788 readonly nftId: u32;1789 readonly resource: RmrkTraitsResourceBasicResource;1790 } & Struct;1791 readonly isAddComposableResource: boolean;1792 readonly asAddComposableResource: {1793 readonly rmrkCollectionId: u32;1794 readonly nftId: u32;1795 readonly resource: RmrkTraitsResourceComposableResource;1796 } & Struct;1797 readonly isAddSlotResource: boolean;1798 readonly asAddSlotResource: {1799 readonly rmrkCollectionId: u32;1800 readonly nftId: u32;1801 readonly resource: RmrkTraitsResourceSlotResource;1802 } & Struct;1803 readonly isRemoveResource: boolean;1804 readonly asRemoveResource: {1805 readonly rmrkCollectionId: u32;1806 readonly nftId: u32;1807 readonly resourceId: u32;1808 } & Struct;1809 readonly type: 'CreateCollection' | 'DestroyCollection' | 'ChangeCollectionIssuer' | 'LockCollection' | 'MintNft' | 'BurnNft' | 'Send' | 'AcceptNft' | 'RejectNft' | 'AcceptResource' | 'AcceptResourceRemoval' | 'SetProperty' | 'SetPriority' | 'AddBasicResource' | 'AddComposableResource' | 'AddSlotResource' | 'RemoveResource';1810 }18111812 /** @name RmrkTraitsResourceResourceTypes (215) */1813 export interface RmrkTraitsResourceResourceTypes extends Enum {1814 readonly isBasic: boolean;1815 readonly asBasic: RmrkTraitsResourceBasicResource;1816 readonly isComposable: boolean;1817 readonly asComposable: RmrkTraitsResourceComposableResource;1818 readonly isSlot: boolean;1819 readonly asSlot: RmrkTraitsResourceSlotResource;1820 readonly type: 'Basic' | 'Composable' | 'Slot';1821 }18221823 /** @name RmrkTraitsResourceBasicResource (217) */1824 export interface RmrkTraitsResourceBasicResource extends Struct {1825 readonly src: Option<Bytes>;1826 readonly metadata: Option<Bytes>;1827 readonly license: Option<Bytes>;1828 readonly thumb: Option<Bytes>;1829 }18301831 /** @name RmrkTraitsResourceComposableResource (219) */1832 export interface RmrkTraitsResourceComposableResource extends Struct {1833 readonly parts: Vec<u32>;1834 readonly base: u32;1835 readonly src: Option<Bytes>;1836 readonly metadata: Option<Bytes>;1837 readonly license: Option<Bytes>;1838 readonly thumb: Option<Bytes>;1839 }18401841 /** @name RmrkTraitsResourceSlotResource (220) */1842 export interface RmrkTraitsResourceSlotResource extends Struct {1843 readonly base: u32;1844 readonly src: Option<Bytes>;1845 readonly metadata: Option<Bytes>;1846 readonly slot: u32;1847 readonly license: Option<Bytes>;1848 readonly thumb: Option<Bytes>;1849 }18501851 /** @name RmrkTraitsNftAccountIdOrCollectionNftTuple (222) */1852 export interface RmrkTraitsNftAccountIdOrCollectionNftTuple extends Enum {1853 readonly isAccountId: boolean;1854 readonly asAccountId: AccountId32;1855 readonly isCollectionAndNftTuple: boolean;1856 readonly asCollectionAndNftTuple: ITuple<[u32, u32]>;1857 readonly type: 'AccountId' | 'CollectionAndNftTuple';1858 }18591860 /** @name PalletRmrkEquipCall (226) */1861 export interface PalletRmrkEquipCall extends Enum {1862 readonly isCreateBase: boolean;1863 readonly asCreateBase: {1864 readonly baseType: Bytes;1865 readonly symbol: Bytes;1866 readonly parts: Vec<RmrkTraitsPartPartType>;1867 } & Struct;1868 readonly isThemeAdd: boolean;1869 readonly asThemeAdd: {1870 readonly baseId: u32;1871 readonly theme: RmrkTraitsTheme;1872 } & Struct;1873 readonly isEquippable: boolean;1874 readonly asEquippable: {1875 readonly baseId: u32;1876 readonly slotId: u32;1877 readonly equippables: RmrkTraitsPartEquippableList;1878 } & Struct;1879 readonly type: 'CreateBase' | 'ThemeAdd' | 'Equippable';1880 }18811882 /** @name RmrkTraitsPartPartType (229) */1883 export interface RmrkTraitsPartPartType extends Enum {1884 readonly isFixedPart: boolean;1885 readonly asFixedPart: RmrkTraitsPartFixedPart;1886 readonly isSlotPart: boolean;1887 readonly asSlotPart: RmrkTraitsPartSlotPart;1888 readonly type: 'FixedPart' | 'SlotPart';1889 }18901891 /** @name RmrkTraitsPartFixedPart (231) */1892 export interface RmrkTraitsPartFixedPart extends Struct {1893 readonly id: u32;1894 readonly z: u32;1895 readonly src: Bytes;1896 }18971898 /** @name RmrkTraitsPartSlotPart (232) */1899 export interface RmrkTraitsPartSlotPart extends Struct {1900 readonly id: u32;1901 readonly equippable: RmrkTraitsPartEquippableList;1902 readonly src: Bytes;1903 readonly z: u32;1904 }19051906 /** @name RmrkTraitsPartEquippableList (233) */1907 export interface RmrkTraitsPartEquippableList extends Enum {1908 readonly isAll: boolean;1909 readonly isEmpty: boolean;1910 readonly isCustom: boolean;1911 readonly asCustom: Vec<u32>;1912 readonly type: 'All' | 'Empty' | 'Custom';1913 }19141915 /** @name RmrkTraitsTheme (235) */1916 export interface RmrkTraitsTheme extends Struct {1917 readonly name: Bytes;1918 readonly properties: Vec<RmrkTraitsThemeThemeProperty>;1919 readonly inherit: bool;1920 }19211922 /** @name RmrkTraitsThemeThemeProperty (237) */1923 export interface RmrkTraitsThemeThemeProperty extends Struct {1924 readonly key: Bytes;1925 readonly value: Bytes;1926 }19271928 /** @name PalletEvmCall (239) */1929 export interface PalletEvmCall extends Enum {1930 readonly isWithdraw: boolean;1931 readonly asWithdraw: {1932 readonly address: H160;1933 readonly value: u128;1934 } & Struct;1935 readonly isCall: boolean;1936 readonly asCall: {1937 readonly source: H160;1938 readonly target: H160;1939 readonly input: Bytes;1940 readonly value: U256;1941 readonly gasLimit: u64;1942 readonly maxFeePerGas: U256;1943 readonly maxPriorityFeePerGas: Option<U256>;1944 readonly nonce: Option<U256>;1945 readonly accessList: Vec<ITuple<[H160, Vec<H256>]>>;1946 } & Struct;1947 readonly isCreate: boolean;1948 readonly asCreate: {1949 readonly source: H160;1950 readonly init: Bytes;1951 readonly value: U256;1952 readonly gasLimit: u64;1953 readonly maxFeePerGas: U256;1954 readonly maxPriorityFeePerGas: Option<U256>;1955 readonly nonce: Option<U256>;1956 readonly accessList: Vec<ITuple<[H160, Vec<H256>]>>;1957 } & Struct;1958 readonly isCreate2: boolean;1959 readonly asCreate2: {1960 readonly source: H160;1961 readonly init: Bytes;1962 readonly salt: H256;1963 readonly value: U256;1964 readonly gasLimit: u64;1965 readonly maxFeePerGas: U256;1966 readonly maxPriorityFeePerGas: Option<U256>;1967 readonly nonce: Option<U256>;1968 readonly accessList: Vec<ITuple<[H160, Vec<H256>]>>;1969 } & Struct;1970 readonly type: 'Withdraw' | 'Call' | 'Create' | 'Create2';1971 }19721973 /** @name PalletEthereumCall (245) */1974 export interface PalletEthereumCall extends Enum {1975 readonly isTransact: boolean;1976 readonly asTransact: {1977 readonly transaction: EthereumTransactionTransactionV2;1978 } & Struct;1979 readonly type: 'Transact';1980 }19811982 /** @name EthereumTransactionTransactionV2 (246) */1983 export interface EthereumTransactionTransactionV2 extends Enum {1984 readonly isLegacy: boolean;1985 readonly asLegacy: EthereumTransactionLegacyTransaction;1986 readonly isEip2930: boolean;1987 readonly asEip2930: EthereumTransactionEip2930Transaction;1988 readonly isEip1559: boolean;1989 readonly asEip1559: EthereumTransactionEip1559Transaction;1990 readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';1991 }19921993 /** @name EthereumTransactionLegacyTransaction (247) */1994 export interface EthereumTransactionLegacyTransaction extends Struct {1995 readonly nonce: U256;1996 readonly gasPrice: U256;1997 readonly gasLimit: U256;1998 readonly action: EthereumTransactionTransactionAction;1999 readonly value: U256;2000 readonly input: Bytes;2001 readonly signature: EthereumTransactionTransactionSignature;2002 }20032004 /** @name EthereumTransactionTransactionAction (248) */2005 export interface EthereumTransactionTransactionAction extends Enum {2006 readonly isCall: boolean;2007 readonly asCall: H160;2008 readonly isCreate: boolean;2009 readonly type: 'Call' | 'Create';2010 }20112012 /** @name EthereumTransactionTransactionSignature (249) */2013 export interface EthereumTransactionTransactionSignature extends Struct {2014 readonly v: u64;2015 readonly r: H256;2016 readonly s: H256;2017 }20182019 /** @name EthereumTransactionEip2930Transaction (251) */2020 export interface EthereumTransactionEip2930Transaction extends Struct {2021 readonly chainId: u64;2022 readonly nonce: U256;2023 readonly gasPrice: U256;2024 readonly gasLimit: U256;2025 readonly action: EthereumTransactionTransactionAction;2026 readonly value: U256;2027 readonly input: Bytes;2028 readonly accessList: Vec<EthereumTransactionAccessListItem>;2029 readonly oddYParity: bool;2030 readonly r: H256;2031 readonly s: H256;2032 }20332034 /** @name EthereumTransactionAccessListItem (253) */2035 export interface EthereumTransactionAccessListItem extends Struct {2036 readonly address: H160;2037 readonly storageKeys: Vec<H256>;2038 }20392040 /** @name EthereumTransactionEip1559Transaction (254) */2041 export interface EthereumTransactionEip1559Transaction extends Struct {2042 readonly chainId: u64;2043 readonly nonce: U256;2044 readonly maxPriorityFeePerGas: U256;2045 readonly maxFeePerGas: U256;2046 readonly gasLimit: U256;2047 readonly action: EthereumTransactionTransactionAction;2048 readonly value: U256;2049 readonly input: Bytes;2050 readonly accessList: Vec<EthereumTransactionAccessListItem>;2051 readonly oddYParity: bool;2052 readonly r: H256;2053 readonly s: H256;2054 }20552056 /** @name PalletEvmMigrationCall (255) */2057 export interface PalletEvmMigrationCall extends Enum {2058 readonly isBegin: boolean;2059 readonly asBegin: {2060 readonly address: H160;2061 } & Struct;2062 readonly isSetData: boolean;2063 readonly asSetData: {2064 readonly address: H160;2065 readonly data: Vec<ITuple<[H256, H256]>>;2066 } & Struct;2067 readonly isFinish: boolean;2068 readonly asFinish: {2069 readonly address: H160;2070 readonly code: Bytes;2071 } & Struct;2072 readonly type: 'Begin' | 'SetData' | 'Finish';2073 }20742075 /** @name PalletSudoEvent (258) */2076 export interface PalletSudoEvent extends Enum {2077 readonly isSudid: boolean;2078 readonly asSudid: {2079 readonly sudoResult: Result<Null, SpRuntimeDispatchError>;2080 } & Struct;2081 readonly isKeyChanged: boolean;2082 readonly asKeyChanged: {2083 readonly oldSudoer: Option<AccountId32>;2084 } & Struct;2085 readonly isSudoAsDone: boolean;2086 readonly asSudoAsDone: {2087 readonly sudoResult: Result<Null, SpRuntimeDispatchError>;2088 } & Struct;2089 readonly type: 'Sudid' | 'KeyChanged' | 'SudoAsDone';2090 }20912092 /** @name SpRuntimeDispatchError (260) */2093 export interface SpRuntimeDispatchError extends Enum {2094 readonly isOther: boolean;2095 readonly isCannotLookup: boolean;2096 readonly isBadOrigin: boolean;2097 readonly isModule: boolean;2098 readonly asModule: SpRuntimeModuleError;2099 readonly isConsumerRemaining: boolean;2100 readonly isNoProviders: boolean;2101 readonly isTooManyConsumers: boolean;2102 readonly isToken: boolean;2103 readonly asToken: SpRuntimeTokenError;2104 readonly isArithmetic: boolean;2105 readonly asArithmetic: SpRuntimeArithmeticError;2106 readonly isTransactional: boolean;2107 readonly asTransactional: SpRuntimeTransactionalError;2108 readonly type: 'Other' | 'CannotLookup' | 'BadOrigin' | 'Module' | 'ConsumerRemaining' | 'NoProviders' | 'TooManyConsumers' | 'Token' | 'Arithmetic' | 'Transactional';2109 }21102111 /** @name SpRuntimeModuleError (261) */2112 export interface SpRuntimeModuleError extends Struct {2113 readonly index: u8;2114 readonly error: U8aFixed;2115 }21162117 /** @name SpRuntimeTokenError (262) */2118 export interface SpRuntimeTokenError extends Enum {2119 readonly isNoFunds: boolean;2120 readonly isWouldDie: boolean;2121 readonly isBelowMinimum: boolean;2122 readonly isCannotCreate: boolean;2123 readonly isUnknownAsset: boolean;2124 readonly isFrozen: boolean;2125 readonly isUnsupported: boolean;2126 readonly type: 'NoFunds' | 'WouldDie' | 'BelowMinimum' | 'CannotCreate' | 'UnknownAsset' | 'Frozen' | 'Unsupported';2127 }21282129 /** @name SpRuntimeArithmeticError (263) */2130 export interface SpRuntimeArithmeticError extends Enum {2131 readonly isUnderflow: boolean;2132 readonly isOverflow: boolean;2133 readonly isDivisionByZero: boolean;2134 readonly type: 'Underflow' | 'Overflow' | 'DivisionByZero';2135 }21362137 /** @name SpRuntimeTransactionalError (264) */2138 export interface SpRuntimeTransactionalError extends Enum {2139 readonly isLimitReached: boolean;2140 readonly isNoLayer: boolean;2141 readonly type: 'LimitReached' | 'NoLayer';2142 }21432144 /** @name PalletSudoError (265) */2145 export interface PalletSudoError extends Enum {2146 readonly isRequireSudo: boolean;2147 readonly type: 'RequireSudo';2148 }21492150 /** @name FrameSystemAccountInfo (266) */2151 export interface FrameSystemAccountInfo extends Struct {2152 readonly nonce: u32;2153 readonly consumers: u32;2154 readonly providers: u32;2155 readonly sufficients: u32;2156 readonly data: PalletBalancesAccountData;2157 }21582159 /** @name FrameSupportWeightsPerDispatchClassU64 (267) */2160 export interface FrameSupportWeightsPerDispatchClassU64 extends Struct {2161 readonly normal: u64;2162 readonly operational: u64;2163 readonly mandatory: u64;2164 }21652166 /** @name SpRuntimeDigest (268) */2167 export interface SpRuntimeDigest extends Struct {2168 readonly logs: Vec<SpRuntimeDigestDigestItem>;2169 }21702171 /** @name SpRuntimeDigestDigestItem (270) */2172 export interface SpRuntimeDigestDigestItem extends Enum {2173 readonly isOther: boolean;2174 readonly asOther: Bytes;2175 readonly isConsensus: boolean;2176 readonly asConsensus: ITuple<[U8aFixed, Bytes]>;2177 readonly isSeal: boolean;2178 readonly asSeal: ITuple<[U8aFixed, Bytes]>;2179 readonly isPreRuntime: boolean;2180 readonly asPreRuntime: ITuple<[U8aFixed, Bytes]>;2181 readonly isRuntimeEnvironmentUpdated: boolean;2182 readonly type: 'Other' | 'Consensus' | 'Seal' | 'PreRuntime' | 'RuntimeEnvironmentUpdated';2183 }21842185 /** @name FrameSystemEventRecord (272) */2186 export interface FrameSystemEventRecord extends Struct {2187 readonly phase: FrameSystemPhase;2188 readonly event: Event;2189 readonly topics: Vec<H256>;2190 }21912192 /** @name FrameSystemEvent (274) */2193 export interface FrameSystemEvent extends Enum {2194 readonly isExtrinsicSuccess: boolean;2195 readonly asExtrinsicSuccess: {2196 readonly dispatchInfo: FrameSupportWeightsDispatchInfo;2197 } & Struct;2198 readonly isExtrinsicFailed: boolean;2199 readonly asExtrinsicFailed: {2200 readonly dispatchError: SpRuntimeDispatchError;2201 readonly dispatchInfo: FrameSupportWeightsDispatchInfo;2202 } & Struct;2203 readonly isCodeUpdated: boolean;2204 readonly isNewAccount: boolean;2205 readonly asNewAccount: {2206 readonly account: AccountId32;2207 } & Struct;2208 readonly isKilledAccount: boolean;2209 readonly asKilledAccount: {2210 readonly account: AccountId32;2211 } & Struct;2212 readonly isRemarked: boolean;2213 readonly asRemarked: {2214 readonly sender: AccountId32;2215 readonly hash_: H256;2216 } & Struct;2217 readonly type: 'ExtrinsicSuccess' | 'ExtrinsicFailed' | 'CodeUpdated' | 'NewAccount' | 'KilledAccount' | 'Remarked';2218 }22192220 /** @name FrameSupportWeightsDispatchInfo (275) */2221 export interface FrameSupportWeightsDispatchInfo extends Struct {2222 readonly weight: u64;2223 readonly class: FrameSupportWeightsDispatchClass;2224 readonly paysFee: FrameSupportWeightsPays;2225 }22262227 /** @name FrameSupportWeightsDispatchClass (276) */2228 export interface FrameSupportWeightsDispatchClass extends Enum {2229 readonly isNormal: boolean;2230 readonly isOperational: boolean;2231 readonly isMandatory: boolean;2232 readonly type: 'Normal' | 'Operational' | 'Mandatory';2233 }22342235 /** @name FrameSupportWeightsPays (277) */2236 export interface FrameSupportWeightsPays extends Enum {2237 readonly isYes: boolean;2238 readonly isNo: boolean;2239 readonly type: 'Yes' | 'No';2240 }22412242 /** @name OrmlVestingModuleEvent (278) */2243 export interface OrmlVestingModuleEvent extends Enum {2244 readonly isVestingScheduleAdded: boolean;2245 readonly asVestingScheduleAdded: {2246 readonly from: AccountId32;2247 readonly to: AccountId32;2248 readonly vestingSchedule: OrmlVestingVestingSchedule;2249 } & Struct;2250 readonly isClaimed: boolean;2251 readonly asClaimed: {2252 readonly who: AccountId32;2253 readonly amount: u128;2254 } & Struct;2255 readonly isVestingSchedulesUpdated: boolean;2256 readonly asVestingSchedulesUpdated: {2257 readonly who: AccountId32;2258 } & Struct;2259 readonly type: 'VestingScheduleAdded' | 'Claimed' | 'VestingSchedulesUpdated';2260 }22612262 /** @name CumulusPalletXcmpQueueEvent (279) */2263 export interface CumulusPalletXcmpQueueEvent extends Enum {2264 readonly isSuccess: boolean;2265 readonly asSuccess: Option<H256>;2266 readonly isFail: boolean;2267 readonly asFail: ITuple<[Option<H256>, XcmV2TraitsError]>;2268 readonly isBadVersion: boolean;2269 readonly asBadVersion: Option<H256>;2270 readonly isBadFormat: boolean;2271 readonly asBadFormat: Option<H256>;2272 readonly isUpwardMessageSent: boolean;2273 readonly asUpwardMessageSent: Option<H256>;2274 readonly isXcmpMessageSent: boolean;2275 readonly asXcmpMessageSent: Option<H256>;2276 readonly isOverweightEnqueued: boolean;2277 readonly asOverweightEnqueued: ITuple<[u32, u32, u64, u64]>;2278 readonly isOverweightServiced: boolean;2279 readonly asOverweightServiced: ITuple<[u64, u64]>;2280 readonly type: 'Success' | 'Fail' | 'BadVersion' | 'BadFormat' | 'UpwardMessageSent' | 'XcmpMessageSent' | 'OverweightEnqueued' | 'OverweightServiced';2281 }22822283 /** @name PalletXcmEvent (280) */2284 export interface PalletXcmEvent extends Enum {2285 readonly isAttempted: boolean;2286 readonly asAttempted: XcmV2TraitsOutcome;2287 readonly isSent: boolean;2288 readonly asSent: ITuple<[XcmV1MultiLocation, XcmV1MultiLocation, XcmV2Xcm]>;2289 readonly isUnexpectedResponse: boolean;2290 readonly asUnexpectedResponse: ITuple<[XcmV1MultiLocation, u64]>;2291 readonly isResponseReady: boolean;2292 readonly asResponseReady: ITuple<[u64, XcmV2Response]>;2293 readonly isNotified: boolean;2294 readonly asNotified: ITuple<[u64, u8, u8]>;2295 readonly isNotifyOverweight: boolean;2296 readonly asNotifyOverweight: ITuple<[u64, u8, u8, u64, u64]>;2297 readonly isNotifyDispatchError: boolean;2298 readonly asNotifyDispatchError: ITuple<[u64, u8, u8]>;2299 readonly isNotifyDecodeFailed: boolean;2300 readonly asNotifyDecodeFailed: ITuple<[u64, u8, u8]>;2301 readonly isInvalidResponder: boolean;2302 readonly asInvalidResponder: ITuple<[XcmV1MultiLocation, u64, Option<XcmV1MultiLocation>]>;2303 readonly isInvalidResponderVersion: boolean;2304 readonly asInvalidResponderVersion: ITuple<[XcmV1MultiLocation, u64]>;2305 readonly isResponseTaken: boolean;2306 readonly asResponseTaken: u64;2307 readonly isAssetsTrapped: boolean;2308 readonly asAssetsTrapped: ITuple<[H256, XcmV1MultiLocation, XcmVersionedMultiAssets]>;2309 readonly isVersionChangeNotified: boolean;2310 readonly asVersionChangeNotified: ITuple<[XcmV1MultiLocation, u32]>;2311 readonly isSupportedVersionChanged: boolean;2312 readonly asSupportedVersionChanged: ITuple<[XcmV1MultiLocation, u32]>;2313 readonly isNotifyTargetSendFail: boolean;2314 readonly asNotifyTargetSendFail: ITuple<[XcmV1MultiLocation, u64, XcmV2TraitsError]>;2315 readonly isNotifyTargetMigrationFail: boolean;2316 readonly asNotifyTargetMigrationFail: ITuple<[XcmVersionedMultiLocation, u64]>;2317 readonly type: 'Attempted' | 'Sent' | 'UnexpectedResponse' | 'ResponseReady' | 'Notified' | 'NotifyOverweight' | 'NotifyDispatchError' | 'NotifyDecodeFailed' | 'InvalidResponder' | 'InvalidResponderVersion' | 'ResponseTaken' | 'AssetsTrapped' | 'VersionChangeNotified' | 'SupportedVersionChanged' | 'NotifyTargetSendFail' | 'NotifyTargetMigrationFail';2318 }23192320 /** @name XcmV2TraitsOutcome (281) */2321 export interface XcmV2TraitsOutcome extends Enum {2322 readonly isComplete: boolean;2323 readonly asComplete: u64;2324 readonly isIncomplete: boolean;2325 readonly asIncomplete: ITuple<[u64, XcmV2TraitsError]>;2326 readonly isError: boolean;2327 readonly asError: XcmV2TraitsError;2328 readonly type: 'Complete' | 'Incomplete' | 'Error';2329 }23302331 /** @name CumulusPalletXcmEvent (283) */2332 export interface CumulusPalletXcmEvent extends Enum {2333 readonly isInvalidFormat: boolean;2334 readonly asInvalidFormat: U8aFixed;2335 readonly isUnsupportedVersion: boolean;2336 readonly asUnsupportedVersion: U8aFixed;2337 readonly isExecutedDownward: boolean;2338 readonly asExecutedDownward: ITuple<[U8aFixed, XcmV2TraitsOutcome]>;2339 readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward';2340 }23412342 /** @name CumulusPalletDmpQueueEvent (284) */2343 export interface CumulusPalletDmpQueueEvent extends Enum {2344 readonly isInvalidFormat: boolean;2345 readonly asInvalidFormat: {2346 readonly messageId: U8aFixed;2347 } & Struct;2348 readonly isUnsupportedVersion: boolean;2349 readonly asUnsupportedVersion: {2350 readonly messageId: U8aFixed;2351 } & Struct;2352 readonly isExecutedDownward: boolean;2353 readonly asExecutedDownward: {2354 readonly messageId: U8aFixed;2355 readonly outcome: XcmV2TraitsOutcome;2356 } & Struct;2357 readonly isWeightExhausted: boolean;2358 readonly asWeightExhausted: {2359 readonly messageId: U8aFixed;2360 readonly remainingWeight: u64;2361 readonly requiredWeight: u64;2362 } & Struct;2363 readonly isOverweightEnqueued: boolean;2364 readonly asOverweightEnqueued: {2365 readonly messageId: U8aFixed;2366 readonly overweightIndex: u64;2367 readonly requiredWeight: u64;2368 } & Struct;2369 readonly isOverweightServiced: boolean;2370 readonly asOverweightServiced: {2371 readonly overweightIndex: u64;2372 readonly weightUsed: u64;2373 } & Struct;2374 readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward' | 'WeightExhausted' | 'OverweightEnqueued' | 'OverweightServiced';2375 }23762377 /** @name PalletUniqueRawEvent (285) */2378 export interface PalletUniqueRawEvent extends Enum {2379 readonly isCollectionSponsorRemoved: boolean;2380 readonly asCollectionSponsorRemoved: u32;2381 readonly isCollectionAdminAdded: boolean;2382 readonly asCollectionAdminAdded: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;2383 readonly isCollectionOwnedChanged: boolean;2384 readonly asCollectionOwnedChanged: ITuple<[u32, AccountId32]>;2385 readonly isCollectionSponsorSet: boolean;2386 readonly asCollectionSponsorSet: ITuple<[u32, AccountId32]>;2387 readonly isSponsorshipConfirmed: boolean;2388 readonly asSponsorshipConfirmed: ITuple<[u32, AccountId32]>;2389 readonly isCollectionAdminRemoved: boolean;2390 readonly asCollectionAdminRemoved: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;2391 readonly isAllowListAddressRemoved: boolean;2392 readonly asAllowListAddressRemoved: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;2393 readonly isAllowListAddressAdded: boolean;2394 readonly asAllowListAddressAdded: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;2395 readonly isCollectionLimitSet: boolean;2396 readonly asCollectionLimitSet: u32;2397 readonly isCollectionPermissionSet: boolean;2398 readonly asCollectionPermissionSet: u32;2399 readonly type: 'CollectionSponsorRemoved' | 'CollectionAdminAdded' | 'CollectionOwnedChanged' | 'CollectionSponsorSet' | 'SponsorshipConfirmed' | 'CollectionAdminRemoved' | 'AllowListAddressRemoved' | 'AllowListAddressAdded' | 'CollectionLimitSet' | 'CollectionPermissionSet';2400 }24012402 /** @name PalletUniqueSchedulerEvent (286) */2403 export interface PalletUniqueSchedulerEvent extends Enum {2404 readonly isScheduled: boolean;2405 readonly asScheduled: {2406 readonly when: u32;2407 readonly index: u32;2408 } & Struct;2409 readonly isCanceled: boolean;2410 readonly asCanceled: {2411 readonly when: u32;2412 readonly index: u32;2413 } & Struct;2414 readonly isDispatched: boolean;2415 readonly asDispatched: {2416 readonly task: ITuple<[u32, u32]>;2417 readonly id: Option<U8aFixed>;2418 readonly result: Result<Null, SpRuntimeDispatchError>;2419 } & Struct;2420 readonly isCallLookupFailed: boolean;2421 readonly asCallLookupFailed: {2422 readonly task: ITuple<[u32, u32]>;2423 readonly id: Option<U8aFixed>;2424 readonly error: FrameSupportScheduleLookupError;2425 } & Struct;2426 readonly type: 'Scheduled' | 'Canceled' | 'Dispatched' | 'CallLookupFailed';2427 }24282429 /** @name FrameSupportScheduleLookupError (288) */2430 export interface FrameSupportScheduleLookupError extends Enum {2431 readonly isUnknown: boolean;2432 readonly isBadFormat: boolean;2433 readonly type: 'Unknown' | 'BadFormat';2434 }24352436 /** @name PalletCommonEvent (289) */2437 export interface PalletCommonEvent extends Enum {2438 readonly isCollectionCreated: boolean;2439 readonly asCollectionCreated: ITuple<[u32, u8, AccountId32]>;2440 readonly isCollectionDestroyed: boolean;2441 readonly asCollectionDestroyed: u32;2442 readonly isItemCreated: boolean;2443 readonly asItemCreated: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;2444 readonly isItemDestroyed: boolean;2445 readonly asItemDestroyed: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;2446 readonly isTransfer: boolean;2447 readonly asTransfer: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;2448 readonly isApproved: boolean;2449 readonly asApproved: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;2450 readonly isCollectionPropertySet: boolean;2451 readonly asCollectionPropertySet: ITuple<[u32, Bytes]>;2452 readonly isCollectionPropertyDeleted: boolean;2453 readonly asCollectionPropertyDeleted: ITuple<[u32, Bytes]>;2454 readonly isTokenPropertySet: boolean;2455 readonly asTokenPropertySet: ITuple<[u32, u32, Bytes]>;2456 readonly isTokenPropertyDeleted: boolean;2457 readonly asTokenPropertyDeleted: ITuple<[u32, u32, Bytes]>;2458 readonly isPropertyPermissionSet: boolean;2459 readonly asPropertyPermissionSet: ITuple<[u32, Bytes]>;2460 readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'ItemCreated' | 'ItemDestroyed' | 'Transfer' | 'Approved' | 'CollectionPropertySet' | 'CollectionPropertyDeleted' | 'TokenPropertySet' | 'TokenPropertyDeleted' | 'PropertyPermissionSet';2461 }24622463 /** @name PalletStructureEvent (290) */2464 export interface PalletStructureEvent extends Enum {2465 readonly isExecuted: boolean;2466 readonly asExecuted: Result<Null, SpRuntimeDispatchError>;2467 readonly type: 'Executed';2468 }24692470 /** @name PalletRmrkCoreEvent (291) */2471 export interface PalletRmrkCoreEvent extends Enum {2472 readonly isCollectionCreated: boolean;2473 readonly asCollectionCreated: {2474 readonly issuer: AccountId32;2475 readonly collectionId: u32;2476 } & Struct;2477 readonly isCollectionDestroyed: boolean;2478 readonly asCollectionDestroyed: {2479 readonly issuer: AccountId32;2480 readonly collectionId: u32;2481 } & Struct;2482 readonly isIssuerChanged: boolean;2483 readonly asIssuerChanged: {2484 readonly oldIssuer: AccountId32;2485 readonly newIssuer: AccountId32;2486 readonly collectionId: u32;2487 } & Struct;2488 readonly isCollectionLocked: boolean;2489 readonly asCollectionLocked: {2490 readonly issuer: AccountId32;2491 readonly collectionId: u32;2492 } & Struct;2493 readonly isNftMinted: boolean;2494 readonly asNftMinted: {2495 readonly owner: AccountId32;2496 readonly collectionId: u32;2497 readonly nftId: u32;2498 } & Struct;2499 readonly isNftBurned: boolean;2500 readonly asNftBurned: {2501 readonly owner: AccountId32;2502 readonly nftId: u32;2503 } & Struct;2504 readonly isNftSent: boolean;2505 readonly asNftSent: {2506 readonly sender: AccountId32;2507 readonly recipient: RmrkTraitsNftAccountIdOrCollectionNftTuple;2508 readonly collectionId: u32;2509 readonly nftId: u32;2510 readonly approvalRequired: bool;2511 } & Struct;2512 readonly isNftAccepted: boolean;2513 readonly asNftAccepted: {2514 readonly sender: AccountId32;2515 readonly recipient: RmrkTraitsNftAccountIdOrCollectionNftTuple;2516 readonly collectionId: u32;2517 readonly nftId: u32;2518 } & Struct;2519 readonly isNftRejected: boolean;2520 readonly asNftRejected: {2521 readonly sender: AccountId32;2522 readonly collectionId: u32;2523 readonly nftId: u32;2524 } & Struct;2525 readonly isPropertySet: boolean;2526 readonly asPropertySet: {2527 readonly collectionId: u32;2528 readonly maybeNftId: Option<u32>;2529 readonly key: Bytes;2530 readonly value: Bytes;2531 } & Struct;2532 readonly isResourceAdded: boolean;2533 readonly asResourceAdded: {2534 readonly nftId: u32;2535 readonly resourceId: u32;2536 } & Struct;2537 readonly isResourceRemoval: boolean;2538 readonly asResourceRemoval: {2539 readonly nftId: u32;2540 readonly resourceId: u32;2541 } & Struct;2542 readonly isResourceAccepted: boolean;2543 readonly asResourceAccepted: {2544 readonly nftId: u32;2545 readonly resourceId: u32;2546 } & Struct;2547 readonly isResourceRemovalAccepted: boolean;2548 readonly asResourceRemovalAccepted: {2549 readonly nftId: u32;2550 readonly resourceId: u32;2551 } & Struct;2552 readonly isPrioritySet: boolean;2553 readonly asPrioritySet: {2554 readonly collectionId: u32;2555 readonly nftId: u32;2556 } & Struct;2557 readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'IssuerChanged' | 'CollectionLocked' | 'NftMinted' | 'NftBurned' | 'NftSent' | 'NftAccepted' | 'NftRejected' | 'PropertySet' | 'ResourceAdded' | 'ResourceRemoval' | 'ResourceAccepted' | 'ResourceRemovalAccepted' | 'PrioritySet';2558 }25592560 /** @name PalletRmrkEquipEvent (292) */2561 export interface PalletRmrkEquipEvent extends Enum {2562 readonly isBaseCreated: boolean;2563 readonly asBaseCreated: {2564 readonly issuer: AccountId32;2565 readonly baseId: u32;2566 } & Struct;2567 readonly isEquippablesUpdated: boolean;2568 readonly asEquippablesUpdated: {2569 readonly baseId: u32;2570 readonly slotId: u32;2571 } & Struct;2572 readonly type: 'BaseCreated' | 'EquippablesUpdated';2573 }25742575 /** @name PalletEvmEvent (293) */2576 export interface PalletEvmEvent extends Enum {2577 readonly isLog: boolean;2578 readonly asLog: EthereumLog;2579 readonly isCreated: boolean;2580 readonly asCreated: H160;2581 readonly isCreatedFailed: boolean;2582 readonly asCreatedFailed: H160;2583 readonly isExecuted: boolean;2584 readonly asExecuted: H160;2585 readonly isExecutedFailed: boolean;2586 readonly asExecutedFailed: H160;2587 readonly isBalanceDeposit: boolean;2588 readonly asBalanceDeposit: ITuple<[AccountId32, H160, U256]>;2589 readonly isBalanceWithdraw: boolean;2590 readonly asBalanceWithdraw: ITuple<[AccountId32, H160, U256]>;2591 readonly type: 'Log' | 'Created' | 'CreatedFailed' | 'Executed' | 'ExecutedFailed' | 'BalanceDeposit' | 'BalanceWithdraw';2592 }25932594 /** @name EthereumLog (294) */2595 export interface EthereumLog extends Struct {2596 readonly address: H160;2597 readonly topics: Vec<H256>;2598 readonly data: Bytes;2599 }26002601 /** @name PalletEthereumEvent (295) */2602 export interface PalletEthereumEvent extends Enum {2603 readonly isExecuted: boolean;2604 readonly asExecuted: ITuple<[H160, H160, H256, EvmCoreErrorExitReason]>;2605 readonly type: 'Executed';2606 }26072608 /** @name EvmCoreErrorExitReason (296) */2609 export interface EvmCoreErrorExitReason extends Enum {2610 readonly isSucceed: boolean;2611 readonly asSucceed: EvmCoreErrorExitSucceed;2612 readonly isError: boolean;2613 readonly asError: EvmCoreErrorExitError;2614 readonly isRevert: boolean;2615 readonly asRevert: EvmCoreErrorExitRevert;2616 readonly isFatal: boolean;2617 readonly asFatal: EvmCoreErrorExitFatal;2618 readonly type: 'Succeed' | 'Error' | 'Revert' | 'Fatal';2619 }26202621 /** @name EvmCoreErrorExitSucceed (297) */2622 export interface EvmCoreErrorExitSucceed extends Enum {2623 readonly isStopped: boolean;2624 readonly isReturned: boolean;2625 readonly isSuicided: boolean;2626 readonly type: 'Stopped' | 'Returned' | 'Suicided';2627 }26282629 /** @name EvmCoreErrorExitError (298) */2630 export interface EvmCoreErrorExitError extends Enum {2631 readonly isStackUnderflow: boolean;2632 readonly isStackOverflow: boolean;2633 readonly isInvalidJump: boolean;2634 readonly isInvalidRange: boolean;2635 readonly isDesignatedInvalid: boolean;2636 readonly isCallTooDeep: boolean;2637 readonly isCreateCollision: boolean;2638 readonly isCreateContractLimit: boolean;2639 readonly isOutOfOffset: boolean;2640 readonly isOutOfGas: boolean;2641 readonly isOutOfFund: boolean;2642 readonly isPcUnderflow: boolean;2643 readonly isCreateEmpty: boolean;2644 readonly isOther: boolean;2645 readonly asOther: Text;2646 readonly isInvalidCode: boolean;2647 readonly type: 'StackUnderflow' | 'StackOverflow' | 'InvalidJump' | 'InvalidRange' | 'DesignatedInvalid' | 'CallTooDeep' | 'CreateCollision' | 'CreateContractLimit' | 'OutOfOffset' | 'OutOfGas' | 'OutOfFund' | 'PcUnderflow' | 'CreateEmpty' | 'Other' | 'InvalidCode';2648 }26492650 /** @name EvmCoreErrorExitRevert (301) */2651 export interface EvmCoreErrorExitRevert extends Enum {2652 readonly isReverted: boolean;2653 readonly type: 'Reverted';2654 }26552656 /** @name EvmCoreErrorExitFatal (302) */2657 export interface EvmCoreErrorExitFatal extends Enum {2658 readonly isNotSupported: boolean;2659 readonly isUnhandledInterrupt: boolean;2660 readonly isCallErrorAsFatal: boolean;2661 readonly asCallErrorAsFatal: EvmCoreErrorExitError;2662 readonly isOther: boolean;2663 readonly asOther: Text;2664 readonly type: 'NotSupported' | 'UnhandledInterrupt' | 'CallErrorAsFatal' | 'Other';2665 }26662667 /** @name FrameSystemPhase (303) */2668 export interface FrameSystemPhase extends Enum {2669 readonly isApplyExtrinsic: boolean;2670 readonly asApplyExtrinsic: u32;2671 readonly isFinalization: boolean;2672 readonly isInitialization: boolean;2673 readonly type: 'ApplyExtrinsic' | 'Finalization' | 'Initialization';2674 }26752676 /** @name FrameSystemLastRuntimeUpgradeInfo (305) */2677 export interface FrameSystemLastRuntimeUpgradeInfo extends Struct {2678 readonly specVersion: Compact<u32>;2679 readonly specName: Text;2680 }26812682 /** @name FrameSystemLimitsBlockWeights (306) */2683 export interface FrameSystemLimitsBlockWeights extends Struct {2684 readonly baseBlock: u64;2685 readonly maxBlock: u64;2686 readonly perClass: FrameSupportWeightsPerDispatchClassWeightsPerClass;2687 }26882689 /** @name FrameSupportWeightsPerDispatchClassWeightsPerClass (307) */2690 export interface FrameSupportWeightsPerDispatchClassWeightsPerClass extends Struct {2691 readonly normal: FrameSystemLimitsWeightsPerClass;2692 readonly operational: FrameSystemLimitsWeightsPerClass;2693 readonly mandatory: FrameSystemLimitsWeightsPerClass;2694 }26952696 /** @name FrameSystemLimitsWeightsPerClass (308) */2697 export interface FrameSystemLimitsWeightsPerClass extends Struct {2698 readonly baseExtrinsic: u64;2699 readonly maxExtrinsic: Option<u64>;2700 readonly maxTotal: Option<u64>;2701 readonly reserved: Option<u64>;2702 }27032704 /** @name FrameSystemLimitsBlockLength (310) */2705 export interface FrameSystemLimitsBlockLength extends Struct {2706 readonly max: FrameSupportWeightsPerDispatchClassU32;2707 }27082709 /** @name FrameSupportWeightsPerDispatchClassU32 (311) */2710 export interface FrameSupportWeightsPerDispatchClassU32 extends Struct {2711 readonly normal: u32;2712 readonly operational: u32;2713 readonly mandatory: u32;2714 }27152716 /** @name FrameSupportWeightsRuntimeDbWeight (312) */2717 export interface FrameSupportWeightsRuntimeDbWeight extends Struct {2718 readonly read: u64;2719 readonly write: u64;2720 }27212722 /** @name SpVersionRuntimeVersion (313) */2723 export interface SpVersionRuntimeVersion extends Struct {2724 readonly specName: Text;2725 readonly implName: Text;2726 readonly authoringVersion: u32;2727 readonly specVersion: u32;2728 readonly implVersion: u32;2729 readonly apis: Vec<ITuple<[U8aFixed, u32]>>;2730 readonly transactionVersion: u32;2731 readonly stateVersion: u8;2732 }27332734 /** @name FrameSystemError (317) */2735 export interface FrameSystemError extends Enum {2736 readonly isInvalidSpecName: boolean;2737 readonly isSpecVersionNeedsToIncrease: boolean;2738 readonly isFailedToExtractRuntimeVersion: boolean;2739 readonly isNonDefaultComposite: boolean;2740 readonly isNonZeroRefCount: boolean;2741 readonly isCallFiltered: boolean;2742 readonly type: 'InvalidSpecName' | 'SpecVersionNeedsToIncrease' | 'FailedToExtractRuntimeVersion' | 'NonDefaultComposite' | 'NonZeroRefCount' | 'CallFiltered';2743 }27442745 /** @name OrmlVestingModuleError (319) */2746 export interface OrmlVestingModuleError extends Enum {2747 readonly isZeroVestingPeriod: boolean;2748 readonly isZeroVestingPeriodCount: boolean;2749 readonly isInsufficientBalanceToLock: boolean;2750 readonly isTooManyVestingSchedules: boolean;2751 readonly isAmountLow: boolean;2752 readonly isMaxVestingSchedulesExceeded: boolean;2753 readonly type: 'ZeroVestingPeriod' | 'ZeroVestingPeriodCount' | 'InsufficientBalanceToLock' | 'TooManyVestingSchedules' | 'AmountLow' | 'MaxVestingSchedulesExceeded';2754 }27552756 /** @name CumulusPalletXcmpQueueInboundChannelDetails (321) */2757 export interface CumulusPalletXcmpQueueInboundChannelDetails extends Struct {2758 readonly sender: u32;2759 readonly state: CumulusPalletXcmpQueueInboundState;2760 readonly messageMetadata: Vec<ITuple<[u32, PolkadotParachainPrimitivesXcmpMessageFormat]>>;2761 }27622763 /** @name CumulusPalletXcmpQueueInboundState (322) */2764 export interface CumulusPalletXcmpQueueInboundState extends Enum {2765 readonly isOk: boolean;2766 readonly isSuspended: boolean;2767 readonly type: 'Ok' | 'Suspended';2768 }27692770 /** @name PolkadotParachainPrimitivesXcmpMessageFormat (325) */2771 export interface PolkadotParachainPrimitivesXcmpMessageFormat extends Enum {2772 readonly isConcatenatedVersionedXcm: boolean;2773 readonly isConcatenatedEncodedBlob: boolean;2774 readonly isSignals: boolean;2775 readonly type: 'ConcatenatedVersionedXcm' | 'ConcatenatedEncodedBlob' | 'Signals';2776 }27772778 /** @name CumulusPalletXcmpQueueOutboundChannelDetails (328) */2779 export interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct {2780 readonly recipient: u32;2781 readonly state: CumulusPalletXcmpQueueOutboundState;2782 readonly signalsExist: bool;2783 readonly firstIndex: u16;2784 readonly lastIndex: u16;2785 }27862787 /** @name CumulusPalletXcmpQueueOutboundState (329) */2788 export interface CumulusPalletXcmpQueueOutboundState extends Enum {2789 readonly isOk: boolean;2790 readonly isSuspended: boolean;2791 readonly type: 'Ok' | 'Suspended';2792 }27932794 /** @name CumulusPalletXcmpQueueQueueConfigData (331) */2795 export interface CumulusPalletXcmpQueueQueueConfigData extends Struct {2796 readonly suspendThreshold: u32;2797 readonly dropThreshold: u32;2798 readonly resumeThreshold: u32;2799 readonly thresholdWeight: u64;2800 readonly weightRestrictDecay: u64;2801 readonly xcmpMaxIndividualWeight: u64;2802 }28032804 /** @name CumulusPalletXcmpQueueError (333) */2805 export interface CumulusPalletXcmpQueueError extends Enum {2806 readonly isFailedToSend: boolean;2807 readonly isBadXcmOrigin: boolean;2808 readonly isBadXcm: boolean;2809 readonly isBadOverweightIndex: boolean;2810 readonly isWeightOverLimit: boolean;2811 readonly type: 'FailedToSend' | 'BadXcmOrigin' | 'BadXcm' | 'BadOverweightIndex' | 'WeightOverLimit';2812 }28132814 /** @name PalletXcmError (334) */2815 export interface PalletXcmError extends Enum {2816 readonly isUnreachable: boolean;2817 readonly isSendFailure: boolean;2818 readonly isFiltered: boolean;2819 readonly isUnweighableMessage: boolean;2820 readonly isDestinationNotInvertible: boolean;2821 readonly isEmpty: boolean;2822 readonly isCannotReanchor: boolean;2823 readonly isTooManyAssets: boolean;2824 readonly isInvalidOrigin: boolean;2825 readonly isBadVersion: boolean;2826 readonly isBadLocation: boolean;2827 readonly isNoSubscription: boolean;2828 readonly isAlreadySubscribed: boolean;2829 readonly type: 'Unreachable' | 'SendFailure' | 'Filtered' | 'UnweighableMessage' | 'DestinationNotInvertible' | 'Empty' | 'CannotReanchor' | 'TooManyAssets' | 'InvalidOrigin' | 'BadVersion' | 'BadLocation' | 'NoSubscription' | 'AlreadySubscribed';2830 }28312832 /** @name CumulusPalletXcmError (335) */2833 export type CumulusPalletXcmError = Null;28342835 /** @name CumulusPalletDmpQueueConfigData (336) */2836 export interface CumulusPalletDmpQueueConfigData extends Struct {2837 readonly maxIndividual: u64;2838 }28392840 /** @name CumulusPalletDmpQueuePageIndexData (337) */2841 export interface CumulusPalletDmpQueuePageIndexData extends Struct {2842 readonly beginUsed: u32;2843 readonly endUsed: u32;2844 readonly overweightCount: u64;2845 }28462847 /** @name CumulusPalletDmpQueueError (340) */2848 export interface CumulusPalletDmpQueueError extends Enum {2849 readonly isUnknown: boolean;2850 readonly isOverLimit: boolean;2851 readonly type: 'Unknown' | 'OverLimit';2852 }28532854 /** @name PalletUniqueError (344) */2855 export interface PalletUniqueError extends Enum {2856 readonly isCollectionDecimalPointLimitExceeded: boolean;2857 readonly isConfirmUnsetSponsorFail: boolean;2858 readonly isEmptyArgument: boolean;2859 readonly isRepartitionCalledOnNonRefungibleCollection: boolean;2860 readonly type: 'CollectionDecimalPointLimitExceeded' | 'ConfirmUnsetSponsorFail' | 'EmptyArgument' | 'RepartitionCalledOnNonRefungibleCollection';2861 }28622863 /** @name PalletUniqueSchedulerScheduledV3 (347) */2864 export interface PalletUniqueSchedulerScheduledV3 extends Struct {2865 readonly maybeId: Option<U8aFixed>;2866 readonly priority: u8;2867 readonly call: FrameSupportScheduleMaybeHashed;2868 readonly maybePeriodic: Option<ITuple<[u32, u32]>>;2869 readonly origin: OpalRuntimeOriginCaller;2870 }28712872 /** @name OpalRuntimeOriginCaller (348) */2873 export interface OpalRuntimeOriginCaller extends Enum {2874 readonly isVoid: boolean;2875 readonly isSystem: boolean;2876 readonly asSystem: FrameSupportDispatchRawOrigin;2877 readonly isPolkadotXcm: boolean;2878 readonly asPolkadotXcm: PalletXcmOrigin;2879 readonly isCumulusXcm: boolean;2880 readonly asCumulusXcm: CumulusPalletXcmOrigin;2881 readonly isEthereum: boolean;2882 readonly asEthereum: PalletEthereumRawOrigin;2883 readonly type: 'Void' | 'System' | 'PolkadotXcm' | 'CumulusXcm' | 'Ethereum';2884 }28852886 /** @name FrameSupportDispatchRawOrigin (349) */2887 export interface FrameSupportDispatchRawOrigin extends Enum {2888 readonly isRoot: boolean;2889 readonly isSigned: boolean;2890 readonly asSigned: AccountId32;2891 readonly isNone: boolean;2892 readonly type: 'Root' | 'Signed' | 'None';2893 }28942895 /** @name PalletXcmOrigin (350) */2896 export interface PalletXcmOrigin extends Enum {2897 readonly isXcm: boolean;2898 readonly asXcm: XcmV1MultiLocation;2899 readonly isResponse: boolean;2900 readonly asResponse: XcmV1MultiLocation;2901 readonly type: 'Xcm' | 'Response';2902 }29032904 /** @name CumulusPalletXcmOrigin (351) */2905 export interface CumulusPalletXcmOrigin extends Enum {2906 readonly isRelay: boolean;2907 readonly isSiblingParachain: boolean;2908 readonly asSiblingParachain: u32;2909 readonly type: 'Relay' | 'SiblingParachain';2910 }29112912 /** @name PalletEthereumRawOrigin (352) */2913 export interface PalletEthereumRawOrigin extends Enum {2914 readonly isEthereumTransaction: boolean;2915 readonly asEthereumTransaction: H160;2916 readonly type: 'EthereumTransaction';2917 }29182919 /** @name SpCoreVoid (353) */2920 export type SpCoreVoid = Null;29212922 /** @name PalletUniqueSchedulerError (354) */2923 export interface PalletUniqueSchedulerError extends Enum {2924 readonly isFailedToSchedule: boolean;2925 readonly isNotFound: boolean;2926 readonly isTargetBlockNumberInPast: boolean;2927 readonly isRescheduleNoChange: boolean;2928 readonly type: 'FailedToSchedule' | 'NotFound' | 'TargetBlockNumberInPast' | 'RescheduleNoChange';2929 }29302931 /** @name UpDataStructsCollection (355) */2932 export interface UpDataStructsCollection extends Struct {2933 readonly owner: AccountId32;2934 readonly mode: UpDataStructsCollectionMode;2935 readonly name: Vec<u16>;2936 readonly description: Vec<u16>;2937 readonly tokenPrefix: Bytes;2938 readonly sponsorship: UpDataStructsSponsorshipState;2939 readonly limits: UpDataStructsCollectionLimits;2940 readonly permissions: UpDataStructsCollectionPermissions;2941 readonly externalCollection: bool;2942 }29432944 /** @name UpDataStructsSponsorshipState (356) */2945 export interface UpDataStructsSponsorshipState extends Enum {2946 readonly isDisabled: boolean;2947 readonly isUnconfirmed: boolean;2948 readonly asUnconfirmed: AccountId32;2949 readonly isConfirmed: boolean;2950 readonly asConfirmed: AccountId32;2951 readonly type: 'Disabled' | 'Unconfirmed' | 'Confirmed';2952 }29532954 /** @name UpDataStructsProperties (357) */2955 export interface UpDataStructsProperties extends Struct {2956 readonly map: UpDataStructsPropertiesMapBoundedVec;2957 readonly consumedSpace: u32;2958 readonly spaceLimit: u32;2959 }29602961 /** @name UpDataStructsPropertiesMapBoundedVec (358) */2962 export interface UpDataStructsPropertiesMapBoundedVec extends BTreeMap<Bytes, Bytes> {}29632964 /** @name UpDataStructsPropertiesMapPropertyPermission (363) */2965 export interface UpDataStructsPropertiesMapPropertyPermission extends BTreeMap<Bytes, UpDataStructsPropertyPermission> {}29662967 /** @name UpDataStructsCollectionStats (370) */2968 export interface UpDataStructsCollectionStats extends Struct {2969 readonly created: u32;2970 readonly destroyed: u32;2971 readonly alive: u32;2972 }29732974 /** @name UpDataStructsTokenChild (371) */2975 export interface UpDataStructsTokenChild extends Struct {2976 readonly token: u32;2977 readonly collection: u32;2978 }29792980 /** @name PhantomTypeUpDataStructs (372) */2981 export interface PhantomTypeUpDataStructs extends Vec<ITuple<[UpDataStructsTokenData, UpDataStructsRpcCollection, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftNftInfo, RmrkTraitsResourceResourceInfo, RmrkTraitsPropertyPropertyInfo, RmrkTraitsBaseBaseInfo, RmrkTraitsPartPartType, RmrkTraitsTheme, RmrkTraitsNftNftChild]>> {}29822983 /** @name UpDataStructsTokenData (374) */2984 export interface UpDataStructsTokenData extends Struct {2985 readonly properties: Vec<UpDataStructsProperty>;2986 readonly owner: Option<PalletEvmAccountBasicCrossAccountIdRepr>;2987 readonly pieces: u128;2988 }29892990 /** @name UpDataStructsRpcCollection (376) */2991 export interface UpDataStructsRpcCollection extends Struct {2992 readonly owner: AccountId32;2993 readonly mode: UpDataStructsCollectionMode;2994 readonly name: Vec<u16>;2995 readonly description: Vec<u16>;2996 readonly tokenPrefix: Bytes;2997 readonly sponsorship: UpDataStructsSponsorshipState;2998 readonly limits: UpDataStructsCollectionLimits;2999 readonly permissions: UpDataStructsCollectionPermissions;3000 readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;3001 readonly properties: Vec<UpDataStructsProperty>;3002 readonly readOnly: bool;3003 }30043005 /** @name RmrkTraitsCollectionCollectionInfo (377) */3006 export interface RmrkTraitsCollectionCollectionInfo extends Struct {3007 readonly issuer: AccountId32;3008 readonly metadata: Bytes;3009 readonly max: Option<u32>;3010 readonly symbol: Bytes;3011 readonly nftsCount: u32;3012 }30133014 /** @name RmrkTraitsNftNftInfo (378) */3015 export interface RmrkTraitsNftNftInfo extends Struct {3016 readonly owner: RmrkTraitsNftAccountIdOrCollectionNftTuple;3017 readonly royalty: Option<RmrkTraitsNftRoyaltyInfo>;3018 readonly metadata: Bytes;3019 readonly equipped: bool;3020 readonly pending: bool;3021 }30223023 /** @name RmrkTraitsNftRoyaltyInfo (380) */3024 export interface RmrkTraitsNftRoyaltyInfo extends Struct {3025 readonly recipient: AccountId32;3026 readonly amount: Permill;3027 }30283029 /** @name RmrkTraitsResourceResourceInfo (381) */3030 export interface RmrkTraitsResourceResourceInfo extends Struct {3031 readonly id: u32;3032 readonly resource: RmrkTraitsResourceResourceTypes;3033 readonly pending: bool;3034 readonly pendingRemoval: bool;3035 }30363037 /** @name RmrkTraitsPropertyPropertyInfo (382) */3038 export interface RmrkTraitsPropertyPropertyInfo extends Struct {3039 readonly key: Bytes;3040 readonly value: Bytes;3041 }30423043 /** @name RmrkTraitsBaseBaseInfo (383) */3044 export interface RmrkTraitsBaseBaseInfo extends Struct {3045 readonly issuer: AccountId32;3046 readonly baseType: Bytes;3047 readonly symbol: Bytes;3048 }30493050 /** @name RmrkTraitsNftNftChild (384) */3051 export interface RmrkTraitsNftNftChild extends Struct {3052 readonly collectionId: u32;3053 readonly nftId: u32;3054 }30553056 /** @name PalletCommonError (386) */3057 export interface PalletCommonError extends Enum {3058 readonly isCollectionNotFound: boolean;3059 readonly isMustBeTokenOwner: boolean;3060 readonly isNoPermission: boolean;3061 readonly isCantDestroyNotEmptyCollection: boolean;3062 readonly isPublicMintingNotAllowed: boolean;3063 readonly isAddressNotInAllowlist: boolean;3064 readonly isCollectionNameLimitExceeded: boolean;3065 readonly isCollectionDescriptionLimitExceeded: boolean;3066 readonly isCollectionTokenPrefixLimitExceeded: boolean;3067 readonly isTotalCollectionsLimitExceeded: boolean;3068 readonly isCollectionAdminCountExceeded: boolean;3069 readonly isCollectionLimitBoundsExceeded: boolean;3070 readonly isOwnerPermissionsCantBeReverted: boolean;3071 readonly isTransferNotAllowed: boolean;3072 readonly isAccountTokenLimitExceeded: boolean;3073 readonly isCollectionTokenLimitExceeded: boolean;3074 readonly isMetadataFlagFrozen: boolean;3075 readonly isTokenNotFound: boolean;3076 readonly isTokenValueTooLow: boolean;3077 readonly isApprovedValueTooLow: boolean;3078 readonly isCantApproveMoreThanOwned: boolean;3079 readonly isAddressIsZero: boolean;3080 readonly isUnsupportedOperation: boolean;3081 readonly isNotSufficientFounds: boolean;3082 readonly isUserIsNotAllowedToNest: boolean;3083 readonly isSourceCollectionIsNotAllowedToNest: boolean;3084 readonly isCollectionFieldSizeExceeded: boolean;3085 readonly isNoSpaceForProperty: boolean;3086 readonly isPropertyLimitReached: boolean;3087 readonly isPropertyKeyIsTooLong: boolean;3088 readonly isInvalidCharacterInPropertyKey: boolean;3089 readonly isEmptyPropertyKey: boolean;3090 readonly isCollectionIsExternal: boolean;3091 readonly isCollectionIsInternal: boolean;3092 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';3093 }30943095 /** @name PalletFungibleError (388) */3096 export interface PalletFungibleError extends Enum {3097 readonly isNotFungibleDataUsedToMintFungibleCollectionToken: boolean;3098 readonly isFungibleItemsHaveNoId: boolean;3099 readonly isFungibleItemsDontHaveData: boolean;3100 readonly isFungibleDisallowsNesting: boolean;3101 readonly isSettingPropertiesNotAllowed: boolean;3102 readonly type: 'NotFungibleDataUsedToMintFungibleCollectionToken' | 'FungibleItemsHaveNoId' | 'FungibleItemsDontHaveData' | 'FungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';3103 }31043105 /** @name PalletRefungibleItemData (389) */3106 export interface PalletRefungibleItemData extends Struct {3107 readonly constData: Bytes;3108 }31093110 /** @name PalletRefungibleError (394) */3111 export interface PalletRefungibleError extends Enum {3112 readonly isNotRefungibleDataUsedToMintFungibleCollectionToken: boolean;3113 readonly isWrongRefungiblePieces: boolean;3114 readonly isRepartitionWhileNotOwningAllPieces: boolean;3115 readonly isRefungibleDisallowsNesting: boolean;3116 readonly isSettingPropertiesNotAllowed: boolean;3117 readonly type: 'NotRefungibleDataUsedToMintFungibleCollectionToken' | 'WrongRefungiblePieces' | 'RepartitionWhileNotOwningAllPieces' | 'RefungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';3118 }31193120 /** @name PalletNonfungibleItemData (395) */3121 export interface PalletNonfungibleItemData extends Struct {3122 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;3123 }31243125 /** @name UpDataStructsPropertyScope (397) */3126 export interface UpDataStructsPropertyScope extends Enum {3127 readonly isNone: boolean;3128 readonly isRmrk: boolean;3129 readonly type: 'None' | 'Rmrk';3130 }31313132 /** @name PalletNonfungibleError (399) */3133 export interface PalletNonfungibleError extends Enum {3134 readonly isNotNonfungibleDataUsedToMintFungibleCollectionToken: boolean;3135 readonly isNonfungibleItemsHaveNoAmount: boolean;3136 readonly isCantBurnNftWithChildren: boolean;3137 readonly type: 'NotNonfungibleDataUsedToMintFungibleCollectionToken' | 'NonfungibleItemsHaveNoAmount' | 'CantBurnNftWithChildren';3138 }31393140 /** @name PalletStructureError (400) */3141 export interface PalletStructureError extends Enum {3142 readonly isOuroborosDetected: boolean;3143 readonly isDepthLimit: boolean;3144 readonly isBreadthLimit: boolean;3145 readonly isTokenNotFound: boolean;3146 readonly type: 'OuroborosDetected' | 'DepthLimit' | 'BreadthLimit' | 'TokenNotFound';3147 }31483149 /** @name PalletRmrkCoreError (401) */3150 export interface PalletRmrkCoreError extends Enum {3151 readonly isCorruptedCollectionType: boolean;3152 readonly isRmrkPropertyKeyIsTooLong: boolean;3153 readonly isRmrkPropertyValueIsTooLong: boolean;3154 readonly isRmrkPropertyIsNotFound: boolean;3155 readonly isUnableToDecodeRmrkData: boolean;3156 readonly isCollectionNotEmpty: boolean;3157 readonly isNoAvailableCollectionId: boolean;3158 readonly isNoAvailableNftId: boolean;3159 readonly isCollectionUnknown: boolean;3160 readonly isNoPermission: boolean;3161 readonly isNonTransferable: boolean;3162 readonly isCollectionFullOrLocked: boolean;3163 readonly isResourceDoesntExist: boolean;3164 readonly isCannotSendToDescendentOrSelf: boolean;3165 readonly isCannotAcceptNonOwnedNft: boolean;3166 readonly isCannotRejectNonOwnedNft: boolean;3167 readonly isCannotRejectNonPendingNft: boolean;3168 readonly isResourceNotPending: boolean;3169 readonly isNoAvailableResourceId: boolean;3170 readonly type: 'CorruptedCollectionType' | 'RmrkPropertyKeyIsTooLong' | 'RmrkPropertyValueIsTooLong' | 'RmrkPropertyIsNotFound' | 'UnableToDecodeRmrkData' | 'CollectionNotEmpty' | 'NoAvailableCollectionId' | 'NoAvailableNftId' | 'CollectionUnknown' | 'NoPermission' | 'NonTransferable' | 'CollectionFullOrLocked' | 'ResourceDoesntExist' | 'CannotSendToDescendentOrSelf' | 'CannotAcceptNonOwnedNft' | 'CannotRejectNonOwnedNft' | 'CannotRejectNonPendingNft' | 'ResourceNotPending' | 'NoAvailableResourceId';3171 }31723173 /** @name PalletRmrkEquipError (403) */3174 export interface PalletRmrkEquipError extends Enum {3175 readonly isPermissionError: boolean;3176 readonly isNoAvailableBaseId: boolean;3177 readonly isNoAvailablePartId: boolean;3178 readonly isBaseDoesntExist: boolean;3179 readonly isNeedsDefaultThemeFirst: boolean;3180 readonly isPartDoesntExist: boolean;3181 readonly isNoEquippableOnFixedPart: boolean;3182 readonly type: 'PermissionError' | 'NoAvailableBaseId' | 'NoAvailablePartId' | 'BaseDoesntExist' | 'NeedsDefaultThemeFirst' | 'PartDoesntExist' | 'NoEquippableOnFixedPart';3183 }31843185 /** @name PalletEvmError (406) */3186 export interface PalletEvmError extends Enum {3187 readonly isBalanceLow: boolean;3188 readonly isFeeOverflow: boolean;3189 readonly isPaymentOverflow: boolean;3190 readonly isWithdrawFailed: boolean;3191 readonly isGasPriceTooLow: boolean;3192 readonly isInvalidNonce: boolean;3193 readonly type: 'BalanceLow' | 'FeeOverflow' | 'PaymentOverflow' | 'WithdrawFailed' | 'GasPriceTooLow' | 'InvalidNonce';3194 }31953196 /** @name FpRpcTransactionStatus (409) */3197 export interface FpRpcTransactionStatus extends Struct {3198 readonly transactionHash: H256;3199 readonly transactionIndex: u32;3200 readonly from: H160;3201 readonly to: Option<H160>;3202 readonly contractAddress: Option<H160>;3203 readonly logs: Vec<EthereumLog>;3204 readonly logsBloom: EthbloomBloom;3205 }32063207 /** @name EthbloomBloom (411) */3208 export interface EthbloomBloom extends U8aFixed {}32093210 /** @name EthereumReceiptReceiptV3 (413) */3211 export interface EthereumReceiptReceiptV3 extends Enum {3212 readonly isLegacy: boolean;3213 readonly asLegacy: EthereumReceiptEip658ReceiptData;3214 readonly isEip2930: boolean;3215 readonly asEip2930: EthereumReceiptEip658ReceiptData;3216 readonly isEip1559: boolean;3217 readonly asEip1559: EthereumReceiptEip658ReceiptData;3218 readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';3219 }32203221 /** @name EthereumReceiptEip658ReceiptData (414) */3222 export interface EthereumReceiptEip658ReceiptData extends Struct {3223 readonly statusCode: u8;3224 readonly usedGas: U256;3225 readonly logsBloom: EthbloomBloom;3226 readonly logs: Vec<EthereumLog>;3227 }32283229 /** @name EthereumBlock (415) */3230 export interface EthereumBlock extends Struct {3231 readonly header: EthereumHeader;3232 readonly transactions: Vec<EthereumTransactionTransactionV2>;3233 readonly ommers: Vec<EthereumHeader>;3234 }32353236 /** @name EthereumHeader (416) */3237 export interface EthereumHeader extends Struct {3238 readonly parentHash: H256;3239 readonly ommersHash: H256;3240 readonly beneficiary: H160;3241 readonly stateRoot: H256;3242 readonly transactionsRoot: H256;3243 readonly receiptsRoot: H256;3244 readonly logsBloom: EthbloomBloom;3245 readonly difficulty: U256;3246 readonly number: U256;3247 readonly gasLimit: U256;3248 readonly gasUsed: U256;3249 readonly timestamp: u64;3250 readonly extraData: Bytes;3251 readonly mixHash: H256;3252 readonly nonce: EthereumTypesHashH64;3253 }32543255 /** @name EthereumTypesHashH64 (417) */3256 export interface EthereumTypesHashH64 extends U8aFixed {}32573258 /** @name PalletEthereumError (422) */3259 export interface PalletEthereumError extends Enum {3260 readonly isInvalidSignature: boolean;3261 readonly isPreLogExists: boolean;3262 readonly type: 'InvalidSignature' | 'PreLogExists';3263 }32643265 /** @name PalletEvmCoderSubstrateError (423) */3266 export interface PalletEvmCoderSubstrateError extends Enum {3267 readonly isOutOfGas: boolean;3268 readonly isOutOfFund: boolean;3269 readonly type: 'OutOfGas' | 'OutOfFund';3270 }32713272 /** @name PalletEvmContractHelpersSponsoringModeT (424) */3273 export interface PalletEvmContractHelpersSponsoringModeT extends Enum {3274 readonly isDisabled: boolean;3275 readonly isAllowlisted: boolean;3276 readonly isGenerous: boolean;3277 readonly type: 'Disabled' | 'Allowlisted' | 'Generous';3278 }32793280 /** @name PalletEvmContractHelpersError (426) */3281 export interface PalletEvmContractHelpersError extends Enum {3282 readonly isNoPermission: boolean;3283 readonly type: 'NoPermission';3284 }32853286 /** @name PalletEvmMigrationError (427) */3287 export interface PalletEvmMigrationError extends Enum {3288 readonly isAccountNotEmpty: boolean;3289 readonly isAccountIsNotMigrating: boolean;3290 readonly type: 'AccountNotEmpty' | 'AccountIsNotMigrating';3291 }32923293 /** @name SpRuntimeMultiSignature (429) */3294 export interface SpRuntimeMultiSignature extends Enum {3295 readonly isEd25519: boolean;3296 readonly asEd25519: SpCoreEd25519Signature;3297 readonly isSr25519: boolean;3298 readonly asSr25519: SpCoreSr25519Signature;3299 readonly isEcdsa: boolean;3300 readonly asEcdsa: SpCoreEcdsaSignature;3301 readonly type: 'Ed25519' | 'Sr25519' | 'Ecdsa';3302 }33033304 /** @name SpCoreEd25519Signature (430) */3305 export interface SpCoreEd25519Signature extends U8aFixed {}33063307 /** @name SpCoreSr25519Signature (432) */3308 export interface SpCoreSr25519Signature extends U8aFixed {}33093310 /** @name SpCoreEcdsaSignature (433) */3311 export interface SpCoreEcdsaSignature extends U8aFixed {}33123313 /** @name FrameSystemExtensionsCheckSpecVersion (436) */3314 export type FrameSystemExtensionsCheckSpecVersion = Null;33153316 /** @name FrameSystemExtensionsCheckGenesis (437) */3317 export type FrameSystemExtensionsCheckGenesis = Null;33183319 /** @name FrameSystemExtensionsCheckNonce (440) */3320 export interface FrameSystemExtensionsCheckNonce extends Compact<u32> {}33213322 /** @name FrameSystemExtensionsCheckWeight (441) */3323 export type FrameSystemExtensionsCheckWeight = Null;33243325 /** @name PalletTemplateTransactionPaymentChargeTransactionPayment (442) */3326 export interface PalletTemplateTransactionPaymentChargeTransactionPayment extends Compact<u128> {}33273328 /** @name OpalRuntimeRuntime (443) */3329 export type OpalRuntimeRuntime = Null;33303331 /** @name PalletEthereumFakeTransactionFinalizer (444) */3332 export type PalletEthereumFakeTransactionFinalizer = Null;33333334} // declare module1// Auto-generated via `yarn polkadot-types-from-defs`, do not edit2/* eslint-disable */34declare module '@polkadot/types/lookup' {5 import type { BTreeMap, BTreeSet, Bytes, Compact, Enum, Null, Option, Result, Struct, Text, U256, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';6 import type { ITuple } from '@polkadot/types-codec/types';7 import type { AccountId32, Call, H160, H256, MultiAddress, Perbill, Permill } from '@polkadot/types/interfaces/runtime';8 import type { Event } from '@polkadot/types/interfaces/system';910 /** @name PolkadotPrimitivesV2PersistedValidationData (2) */11 export interface PolkadotPrimitivesV2PersistedValidationData extends Struct {12 readonly parentHead: Bytes;13 readonly relayParentNumber: u32;14 readonly relayParentStorageRoot: H256;15 readonly maxPovSize: u32;16 }1718 /** @name PolkadotPrimitivesV2UpgradeRestriction (9) */19 export interface PolkadotPrimitivesV2UpgradeRestriction extends Enum {20 readonly isPresent: boolean;21 readonly type: 'Present';22 }2324 /** @name SpTrieStorageProof (10) */25 export interface SpTrieStorageProof extends Struct {26 readonly trieNodes: BTreeSet<Bytes>;27 }2829 /** @name CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot (13) */30 export interface CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot extends Struct {31 readonly dmqMqcHead: H256;32 readonly relayDispatchQueueSize: ITuple<[u32, u32]>;33 readonly ingressChannels: Vec<ITuple<[u32, PolkadotPrimitivesV2AbridgedHrmpChannel]>>;34 readonly egressChannels: Vec<ITuple<[u32, PolkadotPrimitivesV2AbridgedHrmpChannel]>>;35 }3637 /** @name PolkadotPrimitivesV2AbridgedHrmpChannel (18) */38 export interface PolkadotPrimitivesV2AbridgedHrmpChannel extends Struct {39 readonly maxCapacity: u32;40 readonly maxTotalSize: u32;41 readonly maxMessageSize: u32;42 readonly msgCount: u32;43 readonly totalSize: u32;44 readonly mqcHead: Option<H256>;45 }4647 /** @name PolkadotPrimitivesV2AbridgedHostConfiguration (20) */48 export interface PolkadotPrimitivesV2AbridgedHostConfiguration extends Struct {49 readonly maxCodeSize: u32;50 readonly maxHeadDataSize: u32;51 readonly maxUpwardQueueCount: u32;52 readonly maxUpwardQueueSize: u32;53 readonly maxUpwardMessageSize: u32;54 readonly maxUpwardMessageNumPerCandidate: u32;55 readonly hrmpMaxMessageNumPerCandidate: u32;56 readonly validationUpgradeCooldown: u32;57 readonly validationUpgradeDelay: u32;58 }5960 /** @name PolkadotCorePrimitivesOutboundHrmpMessage (26) */61 export interface PolkadotCorePrimitivesOutboundHrmpMessage extends Struct {62 readonly recipient: u32;63 readonly data: Bytes;64 }6566 /** @name CumulusPalletParachainSystemCall (28) */67 export interface CumulusPalletParachainSystemCall extends Enum {68 readonly isSetValidationData: boolean;69 readonly asSetValidationData: {70 readonly data: CumulusPrimitivesParachainInherentParachainInherentData;71 } & Struct;72 readonly isSudoSendUpwardMessage: boolean;73 readonly asSudoSendUpwardMessage: {74 readonly message: Bytes;75 } & Struct;76 readonly isAuthorizeUpgrade: boolean;77 readonly asAuthorizeUpgrade: {78 readonly codeHash: H256;79 } & Struct;80 readonly isEnactAuthorizedUpgrade: boolean;81 readonly asEnactAuthorizedUpgrade: {82 readonly code: Bytes;83 } & Struct;84 readonly type: 'SetValidationData' | 'SudoSendUpwardMessage' | 'AuthorizeUpgrade' | 'EnactAuthorizedUpgrade';85 }8687 /** @name CumulusPrimitivesParachainInherentParachainInherentData (29) */88 export interface CumulusPrimitivesParachainInherentParachainInherentData extends Struct {89 readonly validationData: PolkadotPrimitivesV2PersistedValidationData;90 readonly relayChainState: SpTrieStorageProof;91 readonly downwardMessages: Vec<PolkadotCorePrimitivesInboundDownwardMessage>;92 readonly horizontalMessages: BTreeMap<u32, Vec<PolkadotCorePrimitivesInboundHrmpMessage>>;93 }9495 /** @name PolkadotCorePrimitivesInboundDownwardMessage (31) */96 export interface PolkadotCorePrimitivesInboundDownwardMessage extends Struct {97 readonly sentAt: u32;98 readonly msg: Bytes;99 }100101 /** @name PolkadotCorePrimitivesInboundHrmpMessage (34) */102 export interface PolkadotCorePrimitivesInboundHrmpMessage extends Struct {103 readonly sentAt: u32;104 readonly data: Bytes;105 }106107 /** @name CumulusPalletParachainSystemEvent (37) */108 export interface CumulusPalletParachainSystemEvent extends Enum {109 readonly isValidationFunctionStored: boolean;110 readonly isValidationFunctionApplied: boolean;111 readonly asValidationFunctionApplied: {112 readonly relayChainBlockNum: u32;113 } & Struct;114 readonly isValidationFunctionDiscarded: boolean;115 readonly isUpgradeAuthorized: boolean;116 readonly asUpgradeAuthorized: {117 readonly codeHash: H256;118 } & Struct;119 readonly isDownwardMessagesReceived: boolean;120 readonly asDownwardMessagesReceived: {121 readonly count: u32;122 } & Struct;123 readonly isDownwardMessagesProcessed: boolean;124 readonly asDownwardMessagesProcessed: {125 readonly weightUsed: u64;126 readonly dmqHead: H256;127 } & Struct;128 readonly type: 'ValidationFunctionStored' | 'ValidationFunctionApplied' | 'ValidationFunctionDiscarded' | 'UpgradeAuthorized' | 'DownwardMessagesReceived' | 'DownwardMessagesProcessed';129 }130131 /** @name CumulusPalletParachainSystemError (38) */132 export interface CumulusPalletParachainSystemError extends Enum {133 readonly isOverlappingUpgrades: boolean;134 readonly isProhibitedByPolkadot: boolean;135 readonly isTooBig: boolean;136 readonly isValidationDataNotAvailable: boolean;137 readonly isHostConfigurationNotAvailable: boolean;138 readonly isNotScheduled: boolean;139 readonly isNothingAuthorized: boolean;140 readonly isUnauthorized: boolean;141 readonly type: 'OverlappingUpgrades' | 'ProhibitedByPolkadot' | 'TooBig' | 'ValidationDataNotAvailable' | 'HostConfigurationNotAvailable' | 'NotScheduled' | 'NothingAuthorized' | 'Unauthorized';142 }143144 /** @name PalletBalancesAccountData (41) */145 export interface PalletBalancesAccountData extends Struct {146 readonly free: u128;147 readonly reserved: u128;148 readonly miscFrozen: u128;149 readonly feeFrozen: u128;150 }151152 /** @name PalletBalancesBalanceLock (43) */153 export interface PalletBalancesBalanceLock extends Struct {154 readonly id: U8aFixed;155 readonly amount: u128;156 readonly reasons: PalletBalancesReasons;157 }158159 /** @name PalletBalancesReasons (45) */160 export interface PalletBalancesReasons extends Enum {161 readonly isFee: boolean;162 readonly isMisc: boolean;163 readonly isAll: boolean;164 readonly type: 'Fee' | 'Misc' | 'All';165 }166167 /** @name PalletBalancesReserveData (48) */168 export interface PalletBalancesReserveData extends Struct {169 readonly id: U8aFixed;170 readonly amount: u128;171 }172173 /** @name PalletBalancesReleases (51) */174 export interface PalletBalancesReleases extends Enum {175 readonly isV100: boolean;176 readonly isV200: boolean;177 readonly type: 'V100' | 'V200';178 }179180 /** @name PalletBalancesCall (52) */181 export interface PalletBalancesCall extends Enum {182 readonly isTransfer: boolean;183 readonly asTransfer: {184 readonly dest: MultiAddress;185 readonly value: Compact<u128>;186 } & Struct;187 readonly isSetBalance: boolean;188 readonly asSetBalance: {189 readonly who: MultiAddress;190 readonly newFree: Compact<u128>;191 readonly newReserved: Compact<u128>;192 } & Struct;193 readonly isForceTransfer: boolean;194 readonly asForceTransfer: {195 readonly source: MultiAddress;196 readonly dest: MultiAddress;197 readonly value: Compact<u128>;198 } & Struct;199 readonly isTransferKeepAlive: boolean;200 readonly asTransferKeepAlive: {201 readonly dest: MultiAddress;202 readonly value: Compact<u128>;203 } & Struct;204 readonly isTransferAll: boolean;205 readonly asTransferAll: {206 readonly dest: MultiAddress;207 readonly keepAlive: bool;208 } & Struct;209 readonly isForceUnreserve: boolean;210 readonly asForceUnreserve: {211 readonly who: MultiAddress;212 readonly amount: u128;213 } & Struct;214 readonly type: 'Transfer' | 'SetBalance' | 'ForceTransfer' | 'TransferKeepAlive' | 'TransferAll' | 'ForceUnreserve';215 }216217 /** @name PalletBalancesEvent (58) */218 export interface PalletBalancesEvent extends Enum {219 readonly isEndowed: boolean;220 readonly asEndowed: {221 readonly account: AccountId32;222 readonly freeBalance: u128;223 } & Struct;224 readonly isDustLost: boolean;225 readonly asDustLost: {226 readonly account: AccountId32;227 readonly amount: u128;228 } & Struct;229 readonly isTransfer: boolean;230 readonly asTransfer: {231 readonly from: AccountId32;232 readonly to: AccountId32;233 readonly amount: u128;234 } & Struct;235 readonly isBalanceSet: boolean;236 readonly asBalanceSet: {237 readonly who: AccountId32;238 readonly free: u128;239 readonly reserved: u128;240 } & Struct;241 readonly isReserved: boolean;242 readonly asReserved: {243 readonly who: AccountId32;244 readonly amount: u128;245 } & Struct;246 readonly isUnreserved: boolean;247 readonly asUnreserved: {248 readonly who: AccountId32;249 readonly amount: u128;250 } & Struct;251 readonly isReserveRepatriated: boolean;252 readonly asReserveRepatriated: {253 readonly from: AccountId32;254 readonly to: AccountId32;255 readonly amount: u128;256 readonly destinationStatus: FrameSupportTokensMiscBalanceStatus;257 } & Struct;258 readonly isDeposit: boolean;259 readonly asDeposit: {260 readonly who: AccountId32;261 readonly amount: u128;262 } & Struct;263 readonly isWithdraw: boolean;264 readonly asWithdraw: {265 readonly who: AccountId32;266 readonly amount: u128;267 } & Struct;268 readonly isSlashed: boolean;269 readonly asSlashed: {270 readonly who: AccountId32;271 readonly amount: u128;272 } & Struct;273 readonly type: 'Endowed' | 'DustLost' | 'Transfer' | 'BalanceSet' | 'Reserved' | 'Unreserved' | 'ReserveRepatriated' | 'Deposit' | 'Withdraw' | 'Slashed';274 }275276 /** @name FrameSupportTokensMiscBalanceStatus (59) */277 export interface FrameSupportTokensMiscBalanceStatus extends Enum {278 readonly isFree: boolean;279 readonly isReserved: boolean;280 readonly type: 'Free' | 'Reserved';281 }282283 /** @name PalletBalancesError (60) */284 export interface PalletBalancesError extends Enum {285 readonly isVestingBalance: boolean;286 readonly isLiquidityRestrictions: boolean;287 readonly isInsufficientBalance: boolean;288 readonly isExistentialDeposit: boolean;289 readonly isKeepAlive: boolean;290 readonly isExistingVestingSchedule: boolean;291 readonly isDeadAccount: boolean;292 readonly isTooManyReserves: boolean;293 readonly type: 'VestingBalance' | 'LiquidityRestrictions' | 'InsufficientBalance' | 'ExistentialDeposit' | 'KeepAlive' | 'ExistingVestingSchedule' | 'DeadAccount' | 'TooManyReserves';294 }295296 /** @name PalletTimestampCall (63) */297 export interface PalletTimestampCall extends Enum {298 readonly isSet: boolean;299 readonly asSet: {300 readonly now: Compact<u64>;301 } & Struct;302 readonly type: 'Set';303 }304305 /** @name PalletTransactionPaymentReleases (66) */306 export interface PalletTransactionPaymentReleases extends Enum {307 readonly isV1Ancient: boolean;308 readonly isV2: boolean;309 readonly type: 'V1Ancient' | 'V2';310 }311312 /** @name PalletTreasuryProposal (67) */313 export interface PalletTreasuryProposal extends Struct {314 readonly proposer: AccountId32;315 readonly value: u128;316 readonly beneficiary: AccountId32;317 readonly bond: u128;318 }319320 /** @name PalletTreasuryCall (70) */321 export interface PalletTreasuryCall extends Enum {322 readonly isProposeSpend: boolean;323 readonly asProposeSpend: {324 readonly value: Compact<u128>;325 readonly beneficiary: MultiAddress;326 } & Struct;327 readonly isRejectProposal: boolean;328 readonly asRejectProposal: {329 readonly proposalId: Compact<u32>;330 } & Struct;331 readonly isApproveProposal: boolean;332 readonly asApproveProposal: {333 readonly proposalId: Compact<u32>;334 } & Struct;335 readonly isRemoveApproval: boolean;336 readonly asRemoveApproval: {337 readonly proposalId: Compact<u32>;338 } & Struct;339 readonly type: 'ProposeSpend' | 'RejectProposal' | 'ApproveProposal' | 'RemoveApproval';340 }341342 /** @name PalletTreasuryEvent (72) */343 export interface PalletTreasuryEvent extends Enum {344 readonly isProposed: boolean;345 readonly asProposed: {346 readonly proposalIndex: u32;347 } & Struct;348 readonly isSpending: boolean;349 readonly asSpending: {350 readonly budgetRemaining: u128;351 } & Struct;352 readonly isAwarded: boolean;353 readonly asAwarded: {354 readonly proposalIndex: u32;355 readonly award: u128;356 readonly account: AccountId32;357 } & Struct;358 readonly isRejected: boolean;359 readonly asRejected: {360 readonly proposalIndex: u32;361 readonly slashed: u128;362 } & Struct;363 readonly isBurnt: boolean;364 readonly asBurnt: {365 readonly burntFunds: u128;366 } & Struct;367 readonly isRollover: boolean;368 readonly asRollover: {369 readonly rolloverBalance: u128;370 } & Struct;371 readonly isDeposit: boolean;372 readonly asDeposit: {373 readonly value: u128;374 } & Struct;375 readonly type: 'Proposed' | 'Spending' | 'Awarded' | 'Rejected' | 'Burnt' | 'Rollover' | 'Deposit';376 }377378 /** @name FrameSupportPalletId (75) */379 export interface FrameSupportPalletId extends U8aFixed {}380381 /** @name PalletTreasuryError (76) */382 export interface PalletTreasuryError extends Enum {383 readonly isInsufficientProposersBalance: boolean;384 readonly isInvalidIndex: boolean;385 readonly isTooManyApprovals: boolean;386 readonly isProposalNotApproved: boolean;387 readonly type: 'InsufficientProposersBalance' | 'InvalidIndex' | 'TooManyApprovals' | 'ProposalNotApproved';388 }389390 /** @name PalletSudoCall (77) */391 export interface PalletSudoCall extends Enum {392 readonly isSudo: boolean;393 readonly asSudo: {394 readonly call: Call;395 } & Struct;396 readonly isSudoUncheckedWeight: boolean;397 readonly asSudoUncheckedWeight: {398 readonly call: Call;399 readonly weight: u64;400 } & Struct;401 readonly isSetKey: boolean;402 readonly asSetKey: {403 readonly new_: MultiAddress;404 } & Struct;405 readonly isSudoAs: boolean;406 readonly asSudoAs: {407 readonly who: MultiAddress;408 readonly call: Call;409 } & Struct;410 readonly type: 'Sudo' | 'SudoUncheckedWeight' | 'SetKey' | 'SudoAs';411 }412413 /** @name FrameSystemCall (79) */414 export interface FrameSystemCall extends Enum {415 readonly isFillBlock: boolean;416 readonly asFillBlock: {417 readonly ratio: Perbill;418 } & Struct;419 readonly isRemark: boolean;420 readonly asRemark: {421 readonly remark: Bytes;422 } & Struct;423 readonly isSetHeapPages: boolean;424 readonly asSetHeapPages: {425 readonly pages: u64;426 } & Struct;427 readonly isSetCode: boolean;428 readonly asSetCode: {429 readonly code: Bytes;430 } & Struct;431 readonly isSetCodeWithoutChecks: boolean;432 readonly asSetCodeWithoutChecks: {433 readonly code: Bytes;434 } & Struct;435 readonly isSetStorage: boolean;436 readonly asSetStorage: {437 readonly items: Vec<ITuple<[Bytes, Bytes]>>;438 } & Struct;439 readonly isKillStorage: boolean;440 readonly asKillStorage: {441 readonly keys_: Vec<Bytes>;442 } & Struct;443 readonly isKillPrefix: boolean;444 readonly asKillPrefix: {445 readonly prefix: Bytes;446 readonly subkeys: u32;447 } & Struct;448 readonly isRemarkWithEvent: boolean;449 readonly asRemarkWithEvent: {450 readonly remark: Bytes;451 } & Struct;452 readonly type: 'FillBlock' | 'Remark' | 'SetHeapPages' | 'SetCode' | 'SetCodeWithoutChecks' | 'SetStorage' | 'KillStorage' | 'KillPrefix' | 'RemarkWithEvent';453 }454455 /** @name OrmlVestingModuleCall (83) */456 export interface OrmlVestingModuleCall extends Enum {457 readonly isClaim: boolean;458 readonly isVestedTransfer: boolean;459 readonly asVestedTransfer: {460 readonly dest: MultiAddress;461 readonly schedule: OrmlVestingVestingSchedule;462 } & Struct;463 readonly isUpdateVestingSchedules: boolean;464 readonly asUpdateVestingSchedules: {465 readonly who: MultiAddress;466 readonly vestingSchedules: Vec<OrmlVestingVestingSchedule>;467 } & Struct;468 readonly isClaimFor: boolean;469 readonly asClaimFor: {470 readonly dest: MultiAddress;471 } & Struct;472 readonly type: 'Claim' | 'VestedTransfer' | 'UpdateVestingSchedules' | 'ClaimFor';473 }474475 /** @name OrmlVestingVestingSchedule (84) */476 export interface OrmlVestingVestingSchedule extends Struct {477 readonly start: u32;478 readonly period: u32;479 readonly periodCount: u32;480 readonly perPeriod: Compact<u128>;481 }482483 /** @name CumulusPalletXcmpQueueCall (86) */484 export interface CumulusPalletXcmpQueueCall extends Enum {485 readonly isServiceOverweight: boolean;486 readonly asServiceOverweight: {487 readonly index: u64;488 readonly weightLimit: u64;489 } & Struct;490 readonly isSuspendXcmExecution: boolean;491 readonly isResumeXcmExecution: boolean;492 readonly isUpdateSuspendThreshold: boolean;493 readonly asUpdateSuspendThreshold: {494 readonly new_: u32;495 } & Struct;496 readonly isUpdateDropThreshold: boolean;497 readonly asUpdateDropThreshold: {498 readonly new_: u32;499 } & Struct;500 readonly isUpdateResumeThreshold: boolean;501 readonly asUpdateResumeThreshold: {502 readonly new_: u32;503 } & Struct;504 readonly isUpdateThresholdWeight: boolean;505 readonly asUpdateThresholdWeight: {506 readonly new_: u64;507 } & Struct;508 readonly isUpdateWeightRestrictDecay: boolean;509 readonly asUpdateWeightRestrictDecay: {510 readonly new_: u64;511 } & Struct;512 readonly isUpdateXcmpMaxIndividualWeight: boolean;513 readonly asUpdateXcmpMaxIndividualWeight: {514 readonly new_: u64;515 } & Struct;516 readonly type: 'ServiceOverweight' | 'SuspendXcmExecution' | 'ResumeXcmExecution' | 'UpdateSuspendThreshold' | 'UpdateDropThreshold' | 'UpdateResumeThreshold' | 'UpdateThresholdWeight' | 'UpdateWeightRestrictDecay' | 'UpdateXcmpMaxIndividualWeight';517 }518519 /** @name PalletXcmCall (87) */520 export interface PalletXcmCall extends Enum {521 readonly isSend: boolean;522 readonly asSend: {523 readonly dest: XcmVersionedMultiLocation;524 readonly message: XcmVersionedXcm;525 } & Struct;526 readonly isTeleportAssets: boolean;527 readonly asTeleportAssets: {528 readonly dest: XcmVersionedMultiLocation;529 readonly beneficiary: XcmVersionedMultiLocation;530 readonly assets: XcmVersionedMultiAssets;531 readonly feeAssetItem: u32;532 } & Struct;533 readonly isReserveTransferAssets: boolean;534 readonly asReserveTransferAssets: {535 readonly dest: XcmVersionedMultiLocation;536 readonly beneficiary: XcmVersionedMultiLocation;537 readonly assets: XcmVersionedMultiAssets;538 readonly feeAssetItem: u32;539 } & Struct;540 readonly isExecute: boolean;541 readonly asExecute: {542 readonly message: XcmVersionedXcm;543 readonly maxWeight: u64;544 } & Struct;545 readonly isForceXcmVersion: boolean;546 readonly asForceXcmVersion: {547 readonly location: XcmV1MultiLocation;548 readonly xcmVersion: u32;549 } & Struct;550 readonly isForceDefaultXcmVersion: boolean;551 readonly asForceDefaultXcmVersion: {552 readonly maybeXcmVersion: Option<u32>;553 } & Struct;554 readonly isForceSubscribeVersionNotify: boolean;555 readonly asForceSubscribeVersionNotify: {556 readonly location: XcmVersionedMultiLocation;557 } & Struct;558 readonly isForceUnsubscribeVersionNotify: boolean;559 readonly asForceUnsubscribeVersionNotify: {560 readonly location: XcmVersionedMultiLocation;561 } & Struct;562 readonly isLimitedReserveTransferAssets: boolean;563 readonly asLimitedReserveTransferAssets: {564 readonly dest: XcmVersionedMultiLocation;565 readonly beneficiary: XcmVersionedMultiLocation;566 readonly assets: XcmVersionedMultiAssets;567 readonly feeAssetItem: u32;568 readonly weightLimit: XcmV2WeightLimit;569 } & Struct;570 readonly isLimitedTeleportAssets: boolean;571 readonly asLimitedTeleportAssets: {572 readonly dest: XcmVersionedMultiLocation;573 readonly beneficiary: XcmVersionedMultiLocation;574 readonly assets: XcmVersionedMultiAssets;575 readonly feeAssetItem: u32;576 readonly weightLimit: XcmV2WeightLimit;577 } & Struct;578 readonly type: 'Send' | 'TeleportAssets' | 'ReserveTransferAssets' | 'Execute' | 'ForceXcmVersion' | 'ForceDefaultXcmVersion' | 'ForceSubscribeVersionNotify' | 'ForceUnsubscribeVersionNotify' | 'LimitedReserveTransferAssets' | 'LimitedTeleportAssets';579 }580581 /** @name XcmVersionedMultiLocation (88) */582 export interface XcmVersionedMultiLocation extends Enum {583 readonly isV0: boolean;584 readonly asV0: XcmV0MultiLocation;585 readonly isV1: boolean;586 readonly asV1: XcmV1MultiLocation;587 readonly type: 'V0' | 'V1';588 }589590 /** @name XcmV0MultiLocation (89) */591 export interface XcmV0MultiLocation extends Enum {592 readonly isNull: boolean;593 readonly isX1: boolean;594 readonly asX1: XcmV0Junction;595 readonly isX2: boolean;596 readonly asX2: ITuple<[XcmV0Junction, XcmV0Junction]>;597 readonly isX3: boolean;598 readonly asX3: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction]>;599 readonly isX4: boolean;600 readonly asX4: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;601 readonly isX5: boolean;602 readonly asX5: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;603 readonly isX6: boolean;604 readonly asX6: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;605 readonly isX7: boolean;606 readonly asX7: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;607 readonly isX8: boolean;608 readonly asX8: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;609 readonly type: 'Null' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8';610 }611612 /** @name XcmV0Junction (90) */613 export interface XcmV0Junction extends Enum {614 readonly isParent: boolean;615 readonly isParachain: boolean;616 readonly asParachain: Compact<u32>;617 readonly isAccountId32: boolean;618 readonly asAccountId32: {619 readonly network: XcmV0JunctionNetworkId;620 readonly id: U8aFixed;621 } & Struct;622 readonly isAccountIndex64: boolean;623 readonly asAccountIndex64: {624 readonly network: XcmV0JunctionNetworkId;625 readonly index: Compact<u64>;626 } & Struct;627 readonly isAccountKey20: boolean;628 readonly asAccountKey20: {629 readonly network: XcmV0JunctionNetworkId;630 readonly key: U8aFixed;631 } & Struct;632 readonly isPalletInstance: boolean;633 readonly asPalletInstance: u8;634 readonly isGeneralIndex: boolean;635 readonly asGeneralIndex: Compact<u128>;636 readonly isGeneralKey: boolean;637 readonly asGeneralKey: Bytes;638 readonly isOnlyChild: boolean;639 readonly isPlurality: boolean;640 readonly asPlurality: {641 readonly id: XcmV0JunctionBodyId;642 readonly part: XcmV0JunctionBodyPart;643 } & Struct;644 readonly type: 'Parent' | 'Parachain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality';645 }646647 /** @name XcmV0JunctionNetworkId (91) */648 export interface XcmV0JunctionNetworkId extends Enum {649 readonly isAny: boolean;650 readonly isNamed: boolean;651 readonly asNamed: Bytes;652 readonly isPolkadot: boolean;653 readonly isKusama: boolean;654 readonly type: 'Any' | 'Named' | 'Polkadot' | 'Kusama';655 }656657 /** @name XcmV0JunctionBodyId (92) */658 export interface XcmV0JunctionBodyId extends Enum {659 readonly isUnit: boolean;660 readonly isNamed: boolean;661 readonly asNamed: Bytes;662 readonly isIndex: boolean;663 readonly asIndex: Compact<u32>;664 readonly isExecutive: boolean;665 readonly isTechnical: boolean;666 readonly isLegislative: boolean;667 readonly isJudicial: boolean;668 readonly type: 'Unit' | 'Named' | 'Index' | 'Executive' | 'Technical' | 'Legislative' | 'Judicial';669 }670671 /** @name XcmV0JunctionBodyPart (93) */672 export interface XcmV0JunctionBodyPart extends Enum {673 readonly isVoice: boolean;674 readonly isMembers: boolean;675 readonly asMembers: {676 readonly count: Compact<u32>;677 } & Struct;678 readonly isFraction: boolean;679 readonly asFraction: {680 readonly nom: Compact<u32>;681 readonly denom: Compact<u32>;682 } & Struct;683 readonly isAtLeastProportion: boolean;684 readonly asAtLeastProportion: {685 readonly nom: Compact<u32>;686 readonly denom: Compact<u32>;687 } & Struct;688 readonly isMoreThanProportion: boolean;689 readonly asMoreThanProportion: {690 readonly nom: Compact<u32>;691 readonly denom: Compact<u32>;692 } & Struct;693 readonly type: 'Voice' | 'Members' | 'Fraction' | 'AtLeastProportion' | 'MoreThanProportion';694 }695696 /** @name XcmV1MultiLocation (94) */697 export interface XcmV1MultiLocation extends Struct {698 readonly parents: u8;699 readonly interior: XcmV1MultilocationJunctions;700 }701702 /** @name XcmV1MultilocationJunctions (95) */703 export interface XcmV1MultilocationJunctions extends Enum {704 readonly isHere: boolean;705 readonly isX1: boolean;706 readonly asX1: XcmV1Junction;707 readonly isX2: boolean;708 readonly asX2: ITuple<[XcmV1Junction, XcmV1Junction]>;709 readonly isX3: boolean;710 readonly asX3: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction]>;711 readonly isX4: boolean;712 readonly asX4: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;713 readonly isX5: boolean;714 readonly asX5: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;715 readonly isX6: boolean;716 readonly asX6: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;717 readonly isX7: boolean;718 readonly asX7: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;719 readonly isX8: boolean;720 readonly asX8: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;721 readonly type: 'Here' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8';722 }723724 /** @name XcmV1Junction (96) */725 export interface XcmV1Junction extends Enum {726 readonly isParachain: boolean;727 readonly asParachain: Compact<u32>;728 readonly isAccountId32: boolean;729 readonly asAccountId32: {730 readonly network: XcmV0JunctionNetworkId;731 readonly id: U8aFixed;732 } & Struct;733 readonly isAccountIndex64: boolean;734 readonly asAccountIndex64: {735 readonly network: XcmV0JunctionNetworkId;736 readonly index: Compact<u64>;737 } & Struct;738 readonly isAccountKey20: boolean;739 readonly asAccountKey20: {740 readonly network: XcmV0JunctionNetworkId;741 readonly key: U8aFixed;742 } & Struct;743 readonly isPalletInstance: boolean;744 readonly asPalletInstance: u8;745 readonly isGeneralIndex: boolean;746 readonly asGeneralIndex: Compact<u128>;747 readonly isGeneralKey: boolean;748 readonly asGeneralKey: Bytes;749 readonly isOnlyChild: boolean;750 readonly isPlurality: boolean;751 readonly asPlurality: {752 readonly id: XcmV0JunctionBodyId;753 readonly part: XcmV0JunctionBodyPart;754 } & Struct;755 readonly type: 'Parachain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality';756 }757758 /** @name XcmVersionedXcm (97) */759 export interface XcmVersionedXcm extends Enum {760 readonly isV0: boolean;761 readonly asV0: XcmV0Xcm;762 readonly isV1: boolean;763 readonly asV1: XcmV1Xcm;764 readonly isV2: boolean;765 readonly asV2: XcmV2Xcm;766 readonly type: 'V0' | 'V1' | 'V2';767 }768769 /** @name XcmV0Xcm (98) */770 export interface XcmV0Xcm extends Enum {771 readonly isWithdrawAsset: boolean;772 readonly asWithdrawAsset: {773 readonly assets: Vec<XcmV0MultiAsset>;774 readonly effects: Vec<XcmV0Order>;775 } & Struct;776 readonly isReserveAssetDeposit: boolean;777 readonly asReserveAssetDeposit: {778 readonly assets: Vec<XcmV0MultiAsset>;779 readonly effects: Vec<XcmV0Order>;780 } & Struct;781 readonly isTeleportAsset: boolean;782 readonly asTeleportAsset: {783 readonly assets: Vec<XcmV0MultiAsset>;784 readonly effects: Vec<XcmV0Order>;785 } & Struct;786 readonly isQueryResponse: boolean;787 readonly asQueryResponse: {788 readonly queryId: Compact<u64>;789 readonly response: XcmV0Response;790 } & Struct;791 readonly isTransferAsset: boolean;792 readonly asTransferAsset: {793 readonly assets: Vec<XcmV0MultiAsset>;794 readonly dest: XcmV0MultiLocation;795 } & Struct;796 readonly isTransferReserveAsset: boolean;797 readonly asTransferReserveAsset: {798 readonly assets: Vec<XcmV0MultiAsset>;799 readonly dest: XcmV0MultiLocation;800 readonly effects: Vec<XcmV0Order>;801 } & Struct;802 readonly isTransact: boolean;803 readonly asTransact: {804 readonly originType: XcmV0OriginKind;805 readonly requireWeightAtMost: u64;806 readonly call: XcmDoubleEncoded;807 } & Struct;808 readonly isHrmpNewChannelOpenRequest: boolean;809 readonly asHrmpNewChannelOpenRequest: {810 readonly sender: Compact<u32>;811 readonly maxMessageSize: Compact<u32>;812 readonly maxCapacity: Compact<u32>;813 } & Struct;814 readonly isHrmpChannelAccepted: boolean;815 readonly asHrmpChannelAccepted: {816 readonly recipient: Compact<u32>;817 } & Struct;818 readonly isHrmpChannelClosing: boolean;819 readonly asHrmpChannelClosing: {820 readonly initiator: Compact<u32>;821 readonly sender: Compact<u32>;822 readonly recipient: Compact<u32>;823 } & Struct;824 readonly isRelayedFrom: boolean;825 readonly asRelayedFrom: {826 readonly who: XcmV0MultiLocation;827 readonly message: XcmV0Xcm;828 } & Struct;829 readonly type: 'WithdrawAsset' | 'ReserveAssetDeposit' | 'TeleportAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'RelayedFrom';830 }831832 /** @name XcmV0MultiAsset (100) */833 export interface XcmV0MultiAsset extends Enum {834 readonly isNone: boolean;835 readonly isAll: boolean;836 readonly isAllFungible: boolean;837 readonly isAllNonFungible: boolean;838 readonly isAllAbstractFungible: boolean;839 readonly asAllAbstractFungible: {840 readonly id: Bytes;841 } & Struct;842 readonly isAllAbstractNonFungible: boolean;843 readonly asAllAbstractNonFungible: {844 readonly class: Bytes;845 } & Struct;846 readonly isAllConcreteFungible: boolean;847 readonly asAllConcreteFungible: {848 readonly id: XcmV0MultiLocation;849 } & Struct;850 readonly isAllConcreteNonFungible: boolean;851 readonly asAllConcreteNonFungible: {852 readonly class: XcmV0MultiLocation;853 } & Struct;854 readonly isAbstractFungible: boolean;855 readonly asAbstractFungible: {856 readonly id: Bytes;857 readonly amount: Compact<u128>;858 } & Struct;859 readonly isAbstractNonFungible: boolean;860 readonly asAbstractNonFungible: {861 readonly class: Bytes;862 readonly instance: XcmV1MultiassetAssetInstance;863 } & Struct;864 readonly isConcreteFungible: boolean;865 readonly asConcreteFungible: {866 readonly id: XcmV0MultiLocation;867 readonly amount: Compact<u128>;868 } & Struct;869 readonly isConcreteNonFungible: boolean;870 readonly asConcreteNonFungible: {871 readonly class: XcmV0MultiLocation;872 readonly instance: XcmV1MultiassetAssetInstance;873 } & Struct;874 readonly type: 'None' | 'All' | 'AllFungible' | 'AllNonFungible' | 'AllAbstractFungible' | 'AllAbstractNonFungible' | 'AllConcreteFungible' | 'AllConcreteNonFungible' | 'AbstractFungible' | 'AbstractNonFungible' | 'ConcreteFungible' | 'ConcreteNonFungible';875 }876877 /** @name XcmV1MultiassetAssetInstance (101) */878 export interface XcmV1MultiassetAssetInstance extends Enum {879 readonly isUndefined: boolean;880 readonly isIndex: boolean;881 readonly asIndex: Compact<u128>;882 readonly isArray4: boolean;883 readonly asArray4: U8aFixed;884 readonly isArray8: boolean;885 readonly asArray8: U8aFixed;886 readonly isArray16: boolean;887 readonly asArray16: U8aFixed;888 readonly isArray32: boolean;889 readonly asArray32: U8aFixed;890 readonly isBlob: boolean;891 readonly asBlob: Bytes;892 readonly type: 'Undefined' | 'Index' | 'Array4' | 'Array8' | 'Array16' | 'Array32' | 'Blob';893 }894895 /** @name XcmV0Order (104) */896 export interface XcmV0Order extends Enum {897 readonly isNull: boolean;898 readonly isDepositAsset: boolean;899 readonly asDepositAsset: {900 readonly assets: Vec<XcmV0MultiAsset>;901 readonly dest: XcmV0MultiLocation;902 } & Struct;903 readonly isDepositReserveAsset: boolean;904 readonly asDepositReserveAsset: {905 readonly assets: Vec<XcmV0MultiAsset>;906 readonly dest: XcmV0MultiLocation;907 readonly effects: Vec<XcmV0Order>;908 } & Struct;909 readonly isExchangeAsset: boolean;910 readonly asExchangeAsset: {911 readonly give: Vec<XcmV0MultiAsset>;912 readonly receive: Vec<XcmV0MultiAsset>;913 } & Struct;914 readonly isInitiateReserveWithdraw: boolean;915 readonly asInitiateReserveWithdraw: {916 readonly assets: Vec<XcmV0MultiAsset>;917 readonly reserve: XcmV0MultiLocation;918 readonly effects: Vec<XcmV0Order>;919 } & Struct;920 readonly isInitiateTeleport: boolean;921 readonly asInitiateTeleport: {922 readonly assets: Vec<XcmV0MultiAsset>;923 readonly dest: XcmV0MultiLocation;924 readonly effects: Vec<XcmV0Order>;925 } & Struct;926 readonly isQueryHolding: boolean;927 readonly asQueryHolding: {928 readonly queryId: Compact<u64>;929 readonly dest: XcmV0MultiLocation;930 readonly assets: Vec<XcmV0MultiAsset>;931 } & Struct;932 readonly isBuyExecution: boolean;933 readonly asBuyExecution: {934 readonly fees: XcmV0MultiAsset;935 readonly weight: u64;936 readonly debt: u64;937 readonly haltOnError: bool;938 readonly xcm: Vec<XcmV0Xcm>;939 } & Struct;940 readonly type: 'Null' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution';941 }942943 /** @name XcmV0Response (106) */944 export interface XcmV0Response extends Enum {945 readonly isAssets: boolean;946 readonly asAssets: Vec<XcmV0MultiAsset>;947 readonly type: 'Assets';948 }949950 /** @name XcmV0OriginKind (107) */951 export interface XcmV0OriginKind extends Enum {952 readonly isNative: boolean;953 readonly isSovereignAccount: boolean;954 readonly isSuperuser: boolean;955 readonly isXcm: boolean;956 readonly type: 'Native' | 'SovereignAccount' | 'Superuser' | 'Xcm';957 }958959 /** @name XcmDoubleEncoded (108) */960 export interface XcmDoubleEncoded extends Struct {961 readonly encoded: Bytes;962 }963964 /** @name XcmV1Xcm (109) */965 export interface XcmV1Xcm extends Enum {966 readonly isWithdrawAsset: boolean;967 readonly asWithdrawAsset: {968 readonly assets: XcmV1MultiassetMultiAssets;969 readonly effects: Vec<XcmV1Order>;970 } & Struct;971 readonly isReserveAssetDeposited: boolean;972 readonly asReserveAssetDeposited: {973 readonly assets: XcmV1MultiassetMultiAssets;974 readonly effects: Vec<XcmV1Order>;975 } & Struct;976 readonly isReceiveTeleportedAsset: boolean;977 readonly asReceiveTeleportedAsset: {978 readonly assets: XcmV1MultiassetMultiAssets;979 readonly effects: Vec<XcmV1Order>;980 } & Struct;981 readonly isQueryResponse: boolean;982 readonly asQueryResponse: {983 readonly queryId: Compact<u64>;984 readonly response: XcmV1Response;985 } & Struct;986 readonly isTransferAsset: boolean;987 readonly asTransferAsset: {988 readonly assets: XcmV1MultiassetMultiAssets;989 readonly beneficiary: XcmV1MultiLocation;990 } & Struct;991 readonly isTransferReserveAsset: boolean;992 readonly asTransferReserveAsset: {993 readonly assets: XcmV1MultiassetMultiAssets;994 readonly dest: XcmV1MultiLocation;995 readonly effects: Vec<XcmV1Order>;996 } & Struct;997 readonly isTransact: boolean;998 readonly asTransact: {999 readonly originType: XcmV0OriginKind;1000 readonly requireWeightAtMost: u64;1001 readonly call: XcmDoubleEncoded;1002 } & Struct;1003 readonly isHrmpNewChannelOpenRequest: boolean;1004 readonly asHrmpNewChannelOpenRequest: {1005 readonly sender: Compact<u32>;1006 readonly maxMessageSize: Compact<u32>;1007 readonly maxCapacity: Compact<u32>;1008 } & Struct;1009 readonly isHrmpChannelAccepted: boolean;1010 readonly asHrmpChannelAccepted: {1011 readonly recipient: Compact<u32>;1012 } & Struct;1013 readonly isHrmpChannelClosing: boolean;1014 readonly asHrmpChannelClosing: {1015 readonly initiator: Compact<u32>;1016 readonly sender: Compact<u32>;1017 readonly recipient: Compact<u32>;1018 } & Struct;1019 readonly isRelayedFrom: boolean;1020 readonly asRelayedFrom: {1021 readonly who: XcmV1MultilocationJunctions;1022 readonly message: XcmV1Xcm;1023 } & Struct;1024 readonly isSubscribeVersion: boolean;1025 readonly asSubscribeVersion: {1026 readonly queryId: Compact<u64>;1027 readonly maxResponseWeight: Compact<u64>;1028 } & Struct;1029 readonly isUnsubscribeVersion: boolean;1030 readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'RelayedFrom' | 'SubscribeVersion' | 'UnsubscribeVersion';1031 }10321033 /** @name XcmV1MultiassetMultiAssets (110) */1034 export interface XcmV1MultiassetMultiAssets extends Vec<XcmV1MultiAsset> {}10351036 /** @name XcmV1MultiAsset (112) */1037 export interface XcmV1MultiAsset extends Struct {1038 readonly id: XcmV1MultiassetAssetId;1039 readonly fun: XcmV1MultiassetFungibility;1040 }10411042 /** @name XcmV1MultiassetAssetId (113) */1043 export interface XcmV1MultiassetAssetId extends Enum {1044 readonly isConcrete: boolean;1045 readonly asConcrete: XcmV1MultiLocation;1046 readonly isAbstract: boolean;1047 readonly asAbstract: Bytes;1048 readonly type: 'Concrete' | 'Abstract';1049 }10501051 /** @name XcmV1MultiassetFungibility (114) */1052 export interface XcmV1MultiassetFungibility extends Enum {1053 readonly isFungible: boolean;1054 readonly asFungible: Compact<u128>;1055 readonly isNonFungible: boolean;1056 readonly asNonFungible: XcmV1MultiassetAssetInstance;1057 readonly type: 'Fungible' | 'NonFungible';1058 }10591060 /** @name XcmV1Order (116) */1061 export interface XcmV1Order extends Enum {1062 readonly isNoop: boolean;1063 readonly isDepositAsset: boolean;1064 readonly asDepositAsset: {1065 readonly assets: XcmV1MultiassetMultiAssetFilter;1066 readonly maxAssets: u32;1067 readonly beneficiary: XcmV1MultiLocation;1068 } & Struct;1069 readonly isDepositReserveAsset: boolean;1070 readonly asDepositReserveAsset: {1071 readonly assets: XcmV1MultiassetMultiAssetFilter;1072 readonly maxAssets: u32;1073 readonly dest: XcmV1MultiLocation;1074 readonly effects: Vec<XcmV1Order>;1075 } & Struct;1076 readonly isExchangeAsset: boolean;1077 readonly asExchangeAsset: {1078 readonly give: XcmV1MultiassetMultiAssetFilter;1079 readonly receive: XcmV1MultiassetMultiAssets;1080 } & Struct;1081 readonly isInitiateReserveWithdraw: boolean;1082 readonly asInitiateReserveWithdraw: {1083 readonly assets: XcmV1MultiassetMultiAssetFilter;1084 readonly reserve: XcmV1MultiLocation;1085 readonly effects: Vec<XcmV1Order>;1086 } & Struct;1087 readonly isInitiateTeleport: boolean;1088 readonly asInitiateTeleport: {1089 readonly assets: XcmV1MultiassetMultiAssetFilter;1090 readonly dest: XcmV1MultiLocation;1091 readonly effects: Vec<XcmV1Order>;1092 } & Struct;1093 readonly isQueryHolding: boolean;1094 readonly asQueryHolding: {1095 readonly queryId: Compact<u64>;1096 readonly dest: XcmV1MultiLocation;1097 readonly assets: XcmV1MultiassetMultiAssetFilter;1098 } & Struct;1099 readonly isBuyExecution: boolean;1100 readonly asBuyExecution: {1101 readonly fees: XcmV1MultiAsset;1102 readonly weight: u64;1103 readonly debt: u64;1104 readonly haltOnError: bool;1105 readonly instructions: Vec<XcmV1Xcm>;1106 } & Struct;1107 readonly type: 'Noop' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution';1108 }11091110 /** @name XcmV1MultiassetMultiAssetFilter (117) */1111 export interface XcmV1MultiassetMultiAssetFilter extends Enum {1112 readonly isDefinite: boolean;1113 readonly asDefinite: XcmV1MultiassetMultiAssets;1114 readonly isWild: boolean;1115 readonly asWild: XcmV1MultiassetWildMultiAsset;1116 readonly type: 'Definite' | 'Wild';1117 }11181119 /** @name XcmV1MultiassetWildMultiAsset (118) */1120 export interface XcmV1MultiassetWildMultiAsset extends Enum {1121 readonly isAll: boolean;1122 readonly isAllOf: boolean;1123 readonly asAllOf: {1124 readonly id: XcmV1MultiassetAssetId;1125 readonly fun: XcmV1MultiassetWildFungibility;1126 } & Struct;1127 readonly type: 'All' | 'AllOf';1128 }11291130 /** @name XcmV1MultiassetWildFungibility (119) */1131 export interface XcmV1MultiassetWildFungibility extends Enum {1132 readonly isFungible: boolean;1133 readonly isNonFungible: boolean;1134 readonly type: 'Fungible' | 'NonFungible';1135 }11361137 /** @name XcmV1Response (121) */1138 export interface XcmV1Response extends Enum {1139 readonly isAssets: boolean;1140 readonly asAssets: XcmV1MultiassetMultiAssets;1141 readonly isVersion: boolean;1142 readonly asVersion: u32;1143 readonly type: 'Assets' | 'Version';1144 }11451146 /** @name XcmV2Xcm (122) */1147 export interface XcmV2Xcm extends Vec<XcmV2Instruction> {}11481149 /** @name XcmV2Instruction (124) */1150 export interface XcmV2Instruction extends Enum {1151 readonly isWithdrawAsset: boolean;1152 readonly asWithdrawAsset: XcmV1MultiassetMultiAssets;1153 readonly isReserveAssetDeposited: boolean;1154 readonly asReserveAssetDeposited: XcmV1MultiassetMultiAssets;1155 readonly isReceiveTeleportedAsset: boolean;1156 readonly asReceiveTeleportedAsset: XcmV1MultiassetMultiAssets;1157 readonly isQueryResponse: boolean;1158 readonly asQueryResponse: {1159 readonly queryId: Compact<u64>;1160 readonly response: XcmV2Response;1161 readonly maxWeight: Compact<u64>;1162 } & Struct;1163 readonly isTransferAsset: boolean;1164 readonly asTransferAsset: {1165 readonly assets: XcmV1MultiassetMultiAssets;1166 readonly beneficiary: XcmV1MultiLocation;1167 } & Struct;1168 readonly isTransferReserveAsset: boolean;1169 readonly asTransferReserveAsset: {1170 readonly assets: XcmV1MultiassetMultiAssets;1171 readonly dest: XcmV1MultiLocation;1172 readonly xcm: XcmV2Xcm;1173 } & Struct;1174 readonly isTransact: boolean;1175 readonly asTransact: {1176 readonly originType: XcmV0OriginKind;1177 readonly requireWeightAtMost: Compact<u64>;1178 readonly call: XcmDoubleEncoded;1179 } & Struct;1180 readonly isHrmpNewChannelOpenRequest: boolean;1181 readonly asHrmpNewChannelOpenRequest: {1182 readonly sender: Compact<u32>;1183 readonly maxMessageSize: Compact<u32>;1184 readonly maxCapacity: Compact<u32>;1185 } & Struct;1186 readonly isHrmpChannelAccepted: boolean;1187 readonly asHrmpChannelAccepted: {1188 readonly recipient: Compact<u32>;1189 } & Struct;1190 readonly isHrmpChannelClosing: boolean;1191 readonly asHrmpChannelClosing: {1192 readonly initiator: Compact<u32>;1193 readonly sender: Compact<u32>;1194 readonly recipient: Compact<u32>;1195 } & Struct;1196 readonly isClearOrigin: boolean;1197 readonly isDescendOrigin: boolean;1198 readonly asDescendOrigin: XcmV1MultilocationJunctions;1199 readonly isReportError: boolean;1200 readonly asReportError: {1201 readonly queryId: Compact<u64>;1202 readonly dest: XcmV1MultiLocation;1203 readonly maxResponseWeight: Compact<u64>;1204 } & Struct;1205 readonly isDepositAsset: boolean;1206 readonly asDepositAsset: {1207 readonly assets: XcmV1MultiassetMultiAssetFilter;1208 readonly maxAssets: Compact<u32>;1209 readonly beneficiary: XcmV1MultiLocation;1210 } & Struct;1211 readonly isDepositReserveAsset: boolean;1212 readonly asDepositReserveAsset: {1213 readonly assets: XcmV1MultiassetMultiAssetFilter;1214 readonly maxAssets: Compact<u32>;1215 readonly dest: XcmV1MultiLocation;1216 readonly xcm: XcmV2Xcm;1217 } & Struct;1218 readonly isExchangeAsset: boolean;1219 readonly asExchangeAsset: {1220 readonly give: XcmV1MultiassetMultiAssetFilter;1221 readonly receive: XcmV1MultiassetMultiAssets;1222 } & Struct;1223 readonly isInitiateReserveWithdraw: boolean;1224 readonly asInitiateReserveWithdraw: {1225 readonly assets: XcmV1MultiassetMultiAssetFilter;1226 readonly reserve: XcmV1MultiLocation;1227 readonly xcm: XcmV2Xcm;1228 } & Struct;1229 readonly isInitiateTeleport: boolean;1230 readonly asInitiateTeleport: {1231 readonly assets: XcmV1MultiassetMultiAssetFilter;1232 readonly dest: XcmV1MultiLocation;1233 readonly xcm: XcmV2Xcm;1234 } & Struct;1235 readonly isQueryHolding: boolean;1236 readonly asQueryHolding: {1237 readonly queryId: Compact<u64>;1238 readonly dest: XcmV1MultiLocation;1239 readonly assets: XcmV1MultiassetMultiAssetFilter;1240 readonly maxResponseWeight: Compact<u64>;1241 } & Struct;1242 readonly isBuyExecution: boolean;1243 readonly asBuyExecution: {1244 readonly fees: XcmV1MultiAsset;1245 readonly weightLimit: XcmV2WeightLimit;1246 } & Struct;1247 readonly isRefundSurplus: boolean;1248 readonly isSetErrorHandler: boolean;1249 readonly asSetErrorHandler: XcmV2Xcm;1250 readonly isSetAppendix: boolean;1251 readonly asSetAppendix: XcmV2Xcm;1252 readonly isClearError: boolean;1253 readonly isClaimAsset: boolean;1254 readonly asClaimAsset: {1255 readonly assets: XcmV1MultiassetMultiAssets;1256 readonly ticket: XcmV1MultiLocation;1257 } & Struct;1258 readonly isTrap: boolean;1259 readonly asTrap: Compact<u64>;1260 readonly isSubscribeVersion: boolean;1261 readonly asSubscribeVersion: {1262 readonly queryId: Compact<u64>;1263 readonly maxResponseWeight: Compact<u64>;1264 } & Struct;1265 readonly isUnsubscribeVersion: boolean;1266 readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'ClearOrigin' | 'DescendOrigin' | 'ReportError' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution' | 'RefundSurplus' | 'SetErrorHandler' | 'SetAppendix' | 'ClearError' | 'ClaimAsset' | 'Trap' | 'SubscribeVersion' | 'UnsubscribeVersion';1267 }12681269 /** @name XcmV2Response (125) */1270 export interface XcmV2Response extends Enum {1271 readonly isNull: boolean;1272 readonly isAssets: boolean;1273 readonly asAssets: XcmV1MultiassetMultiAssets;1274 readonly isExecutionResult: boolean;1275 readonly asExecutionResult: Option<ITuple<[u32, XcmV2TraitsError]>>;1276 readonly isVersion: boolean;1277 readonly asVersion: u32;1278 readonly type: 'Null' | 'Assets' | 'ExecutionResult' | 'Version';1279 }12801281 /** @name XcmV2TraitsError (128) */1282 export interface XcmV2TraitsError extends Enum {1283 readonly isOverflow: boolean;1284 readonly isUnimplemented: boolean;1285 readonly isUntrustedReserveLocation: boolean;1286 readonly isUntrustedTeleportLocation: boolean;1287 readonly isMultiLocationFull: boolean;1288 readonly isMultiLocationNotInvertible: boolean;1289 readonly isBadOrigin: boolean;1290 readonly isInvalidLocation: boolean;1291 readonly isAssetNotFound: boolean;1292 readonly isFailedToTransactAsset: boolean;1293 readonly isNotWithdrawable: boolean;1294 readonly isLocationCannotHold: boolean;1295 readonly isExceedsMaxMessageSize: boolean;1296 readonly isDestinationUnsupported: boolean;1297 readonly isTransport: boolean;1298 readonly isUnroutable: boolean;1299 readonly isUnknownClaim: boolean;1300 readonly isFailedToDecode: boolean;1301 readonly isMaxWeightInvalid: boolean;1302 readonly isNotHoldingFees: boolean;1303 readonly isTooExpensive: boolean;1304 readonly isTrap: boolean;1305 readonly asTrap: u64;1306 readonly isUnhandledXcmVersion: boolean;1307 readonly isWeightLimitReached: boolean;1308 readonly asWeightLimitReached: u64;1309 readonly isBarrier: boolean;1310 readonly isWeightNotComputable: boolean;1311 readonly type: 'Overflow' | 'Unimplemented' | 'UntrustedReserveLocation' | 'UntrustedTeleportLocation' | 'MultiLocationFull' | 'MultiLocationNotInvertible' | 'BadOrigin' | 'InvalidLocation' | 'AssetNotFound' | 'FailedToTransactAsset' | 'NotWithdrawable' | 'LocationCannotHold' | 'ExceedsMaxMessageSize' | 'DestinationUnsupported' | 'Transport' | 'Unroutable' | 'UnknownClaim' | 'FailedToDecode' | 'MaxWeightInvalid' | 'NotHoldingFees' | 'TooExpensive' | 'Trap' | 'UnhandledXcmVersion' | 'WeightLimitReached' | 'Barrier' | 'WeightNotComputable';1312 }13131314 /** @name XcmV2WeightLimit (129) */1315 export interface XcmV2WeightLimit extends Enum {1316 readonly isUnlimited: boolean;1317 readonly isLimited: boolean;1318 readonly asLimited: Compact<u64>;1319 readonly type: 'Unlimited' | 'Limited';1320 }13211322 /** @name XcmVersionedMultiAssets (130) */1323 export interface XcmVersionedMultiAssets extends Enum {1324 readonly isV0: boolean;1325 readonly asV0: Vec<XcmV0MultiAsset>;1326 readonly isV1: boolean;1327 readonly asV1: XcmV1MultiassetMultiAssets;1328 readonly type: 'V0' | 'V1';1329 }13301331 /** @name CumulusPalletXcmCall (145) */1332 export type CumulusPalletXcmCall = Null;13331334 /** @name CumulusPalletDmpQueueCall (146) */1335 export interface CumulusPalletDmpQueueCall extends Enum {1336 readonly isServiceOverweight: boolean;1337 readonly asServiceOverweight: {1338 readonly index: u64;1339 readonly weightLimit: u64;1340 } & Struct;1341 readonly type: 'ServiceOverweight';1342 }13431344 /** @name PalletInflationCall (147) */1345 export interface PalletInflationCall extends Enum {1346 readonly isStartInflation: boolean;1347 readonly asStartInflation: {1348 readonly inflationStartRelayBlock: u32;1349 } & Struct;1350 readonly type: 'StartInflation';1351 }13521353 /** @name PalletUniqueCall (148) */1354 export interface PalletUniqueCall extends Enum {1355 readonly isCreateCollection: boolean;1356 readonly asCreateCollection: {1357 readonly collectionName: Vec<u16>;1358 readonly collectionDescription: Vec<u16>;1359 readonly tokenPrefix: Bytes;1360 readonly mode: UpDataStructsCollectionMode;1361 } & Struct;1362 readonly isCreateCollectionEx: boolean;1363 readonly asCreateCollectionEx: {1364 readonly data: UpDataStructsCreateCollectionData;1365 } & Struct;1366 readonly isDestroyCollection: boolean;1367 readonly asDestroyCollection: {1368 readonly collectionId: u32;1369 } & Struct;1370 readonly isAddToAllowList: boolean;1371 readonly asAddToAllowList: {1372 readonly collectionId: u32;1373 readonly address: PalletEvmAccountBasicCrossAccountIdRepr;1374 } & Struct;1375 readonly isRemoveFromAllowList: boolean;1376 readonly asRemoveFromAllowList: {1377 readonly collectionId: u32;1378 readonly address: PalletEvmAccountBasicCrossAccountIdRepr;1379 } & Struct;1380 readonly isChangeCollectionOwner: boolean;1381 readonly asChangeCollectionOwner: {1382 readonly collectionId: u32;1383 readonly newOwner: AccountId32;1384 } & Struct;1385 readonly isAddCollectionAdmin: boolean;1386 readonly asAddCollectionAdmin: {1387 readonly collectionId: u32;1388 readonly newAdmin: PalletEvmAccountBasicCrossAccountIdRepr;1389 } & Struct;1390 readonly isRemoveCollectionAdmin: boolean;1391 readonly asRemoveCollectionAdmin: {1392 readonly collectionId: u32;1393 readonly accountId: PalletEvmAccountBasicCrossAccountIdRepr;1394 } & Struct;1395 readonly isSetCollectionSponsor: boolean;1396 readonly asSetCollectionSponsor: {1397 readonly collectionId: u32;1398 readonly newSponsor: AccountId32;1399 } & Struct;1400 readonly isConfirmSponsorship: boolean;1401 readonly asConfirmSponsorship: {1402 readonly collectionId: u32;1403 } & Struct;1404 readonly isRemoveCollectionSponsor: boolean;1405 readonly asRemoveCollectionSponsor: {1406 readonly collectionId: u32;1407 } & Struct;1408 readonly isCreateItem: boolean;1409 readonly asCreateItem: {1410 readonly collectionId: u32;1411 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;1412 readonly data: UpDataStructsCreateItemData;1413 } & Struct;1414 readonly isCreateMultipleItems: boolean;1415 readonly asCreateMultipleItems: {1416 readonly collectionId: u32;1417 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;1418 readonly itemsData: Vec<UpDataStructsCreateItemData>;1419 } & Struct;1420 readonly isSetCollectionProperties: boolean;1421 readonly asSetCollectionProperties: {1422 readonly collectionId: u32;1423 readonly properties: Vec<UpDataStructsProperty>;1424 } & Struct;1425 readonly isDeleteCollectionProperties: boolean;1426 readonly asDeleteCollectionProperties: {1427 readonly collectionId: u32;1428 readonly propertyKeys: Vec<Bytes>;1429 } & Struct;1430 readonly isSetTokenProperties: boolean;1431 readonly asSetTokenProperties: {1432 readonly collectionId: u32;1433 readonly tokenId: u32;1434 readonly properties: Vec<UpDataStructsProperty>;1435 } & Struct;1436 readonly isDeleteTokenProperties: boolean;1437 readonly asDeleteTokenProperties: {1438 readonly collectionId: u32;1439 readonly tokenId: u32;1440 readonly propertyKeys: Vec<Bytes>;1441 } & Struct;1442 readonly isSetTokenPropertyPermissions: boolean;1443 readonly asSetTokenPropertyPermissions: {1444 readonly collectionId: u32;1445 readonly propertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;1446 } & Struct;1447 readonly isCreateMultipleItemsEx: boolean;1448 readonly asCreateMultipleItemsEx: {1449 readonly collectionId: u32;1450 readonly data: UpDataStructsCreateItemExData;1451 } & Struct;1452 readonly isSetTransfersEnabledFlag: boolean;1453 readonly asSetTransfersEnabledFlag: {1454 readonly collectionId: u32;1455 readonly value: bool;1456 } & Struct;1457 readonly isBurnItem: boolean;1458 readonly asBurnItem: {1459 readonly collectionId: u32;1460 readonly itemId: u32;1461 readonly value: u128;1462 } & Struct;1463 readonly isBurnFrom: boolean;1464 readonly asBurnFrom: {1465 readonly collectionId: u32;1466 readonly from: PalletEvmAccountBasicCrossAccountIdRepr;1467 readonly itemId: u32;1468 readonly value: u128;1469 } & Struct;1470 readonly isTransfer: boolean;1471 readonly asTransfer: {1472 readonly recipient: PalletEvmAccountBasicCrossAccountIdRepr;1473 readonly collectionId: u32;1474 readonly itemId: u32;1475 readonly value: u128;1476 } & Struct;1477 readonly isApprove: boolean;1478 readonly asApprove: {1479 readonly spender: PalletEvmAccountBasicCrossAccountIdRepr;1480 readonly collectionId: u32;1481 readonly itemId: u32;1482 readonly amount: u128;1483 } & Struct;1484 readonly isTransferFrom: boolean;1485 readonly asTransferFrom: {1486 readonly from: PalletEvmAccountBasicCrossAccountIdRepr;1487 readonly recipient: PalletEvmAccountBasicCrossAccountIdRepr;1488 readonly collectionId: u32;1489 readonly itemId: u32;1490 readonly value: u128;1491 } & Struct;1492 readonly isSetCollectionLimits: boolean;1493 readonly asSetCollectionLimits: {1494 readonly collectionId: u32;1495 readonly newLimit: UpDataStructsCollectionLimits;1496 } & Struct;1497 readonly isSetCollectionPermissions: boolean;1498 readonly asSetCollectionPermissions: {1499 readonly collectionId: u32;1500 readonly newPermission: UpDataStructsCollectionPermissions;1501 } & Struct;1502 readonly isRepartition: boolean;1503 readonly asRepartition: {1504 readonly collectionId: u32;1505 readonly tokenId: u32;1506 readonly amount: u128;1507 } & Struct;1508 readonly type: 'CreateCollection' | 'CreateCollectionEx' | 'DestroyCollection' | 'AddToAllowList' | 'RemoveFromAllowList' | 'ChangeCollectionOwner' | 'AddCollectionAdmin' | 'RemoveCollectionAdmin' | 'SetCollectionSponsor' | 'ConfirmSponsorship' | 'RemoveCollectionSponsor' | 'CreateItem' | 'CreateMultipleItems' | 'SetCollectionProperties' | 'DeleteCollectionProperties' | 'SetTokenProperties' | 'DeleteTokenProperties' | 'SetTokenPropertyPermissions' | 'CreateMultipleItemsEx' | 'SetTransfersEnabledFlag' | 'BurnItem' | 'BurnFrom' | 'Transfer' | 'Approve' | 'TransferFrom' | 'SetCollectionLimits' | 'SetCollectionPermissions' | 'Repartition';1509 }15101511 /** @name UpDataStructsCollectionMode (154) */1512 export interface UpDataStructsCollectionMode extends Enum {1513 readonly isNft: boolean;1514 readonly isFungible: boolean;1515 readonly asFungible: u8;1516 readonly isReFungible: boolean;1517 readonly type: 'Nft' | 'Fungible' | 'ReFungible';1518 }15191520 /** @name UpDataStructsCreateCollectionData (155) */1521 export interface UpDataStructsCreateCollectionData extends Struct {1522 readonly mode: UpDataStructsCollectionMode;1523 readonly access: Option<UpDataStructsAccessMode>;1524 readonly name: Vec<u16>;1525 readonly description: Vec<u16>;1526 readonly tokenPrefix: Bytes;1527 readonly pendingSponsor: Option<AccountId32>;1528 readonly limits: Option<UpDataStructsCollectionLimits>;1529 readonly permissions: Option<UpDataStructsCollectionPermissions>;1530 readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;1531 readonly properties: Vec<UpDataStructsProperty>;1532 }15331534 /** @name UpDataStructsAccessMode (157) */1535 export interface UpDataStructsAccessMode extends Enum {1536 readonly isNormal: boolean;1537 readonly isAllowList: boolean;1538 readonly type: 'Normal' | 'AllowList';1539 }15401541 /** @name UpDataStructsCollectionLimits (160) */1542 export interface UpDataStructsCollectionLimits extends Struct {1543 readonly accountTokenOwnershipLimit: Option<u32>;1544 readonly sponsoredDataSize: Option<u32>;1545 readonly sponsoredDataRateLimit: Option<UpDataStructsSponsoringRateLimit>;1546 readonly tokenLimit: Option<u32>;1547 readonly sponsorTransferTimeout: Option<u32>;1548 readonly sponsorApproveTimeout: Option<u32>;1549 readonly ownerCanTransfer: Option<bool>;1550 readonly ownerCanDestroy: Option<bool>;1551 readonly transfersEnabled: Option<bool>;1552 }15531554 /** @name UpDataStructsSponsoringRateLimit (162) */1555 export interface UpDataStructsSponsoringRateLimit extends Enum {1556 readonly isSponsoringDisabled: boolean;1557 readonly isBlocks: boolean;1558 readonly asBlocks: u32;1559 readonly type: 'SponsoringDisabled' | 'Blocks';1560 }15611562 /** @name UpDataStructsCollectionPermissions (165) */1563 export interface UpDataStructsCollectionPermissions extends Struct {1564 readonly access: Option<UpDataStructsAccessMode>;1565 readonly mintMode: Option<bool>;1566 readonly nesting: Option<UpDataStructsNestingPermissions>;1567 }15681569 /** @name UpDataStructsNestingPermissions (167) */1570 export interface UpDataStructsNestingPermissions extends Struct {1571 readonly tokenOwner: bool;1572 readonly collectionAdmin: bool;1573 readonly restricted: Option<UpDataStructsOwnerRestrictedSet>;1574 }15751576 /** @name UpDataStructsOwnerRestrictedSet (169) */1577 export interface UpDataStructsOwnerRestrictedSet extends BTreeSet<u32> {}15781579 /** @name UpDataStructsPropertyKeyPermission (175) */1580 export interface UpDataStructsPropertyKeyPermission extends Struct {1581 readonly key: Bytes;1582 readonly permission: UpDataStructsPropertyPermission;1583 }15841585 /** @name UpDataStructsPropertyPermission (177) */1586 export interface UpDataStructsPropertyPermission extends Struct {1587 readonly mutable: bool;1588 readonly collectionAdmin: bool;1589 readonly tokenOwner: bool;1590 }15911592 /** @name UpDataStructsProperty (180) */1593 export interface UpDataStructsProperty extends Struct {1594 readonly key: Bytes;1595 readonly value: Bytes;1596 }15971598 /** @name PalletEvmAccountBasicCrossAccountIdRepr (183) */1599 export interface PalletEvmAccountBasicCrossAccountIdRepr extends Enum {1600 readonly isSubstrate: boolean;1601 readonly asSubstrate: AccountId32;1602 readonly isEthereum: boolean;1603 readonly asEthereum: H160;1604 readonly type: 'Substrate' | 'Ethereum';1605 }16061607 /** @name UpDataStructsCreateItemData (185) */1608 export interface UpDataStructsCreateItemData extends Enum {1609 readonly isNft: boolean;1610 readonly asNft: UpDataStructsCreateNftData;1611 readonly isFungible: boolean;1612 readonly asFungible: UpDataStructsCreateFungibleData;1613 readonly isReFungible: boolean;1614 readonly asReFungible: UpDataStructsCreateReFungibleData;1615 readonly type: 'Nft' | 'Fungible' | 'ReFungible';1616 }16171618 /** @name UpDataStructsCreateNftData (186) */1619 export interface UpDataStructsCreateNftData extends Struct {1620 readonly properties: Vec<UpDataStructsProperty>;1621 }16221623 /** @name UpDataStructsCreateFungibleData (187) */1624 export interface UpDataStructsCreateFungibleData extends Struct {1625 readonly value: u128;1626 }16271628 /** @name UpDataStructsCreateReFungibleData (188) */1629 export interface UpDataStructsCreateReFungibleData extends Struct {1630 readonly pieces: u128;1631 readonly properties: Vec<UpDataStructsProperty>;1632 }16331634 /** @name UpDataStructsCreateItemExData (192) */1635 export interface UpDataStructsCreateItemExData extends Enum {1636 readonly isNft: boolean;1637 readonly asNft: Vec<UpDataStructsCreateNftExData>;1638 readonly isFungible: boolean;1639 readonly asFungible: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>;1640 readonly isRefungibleMultipleItems: boolean;1641 readonly asRefungibleMultipleItems: Vec<UpDataStructsCreateRefungibleExSingleOwner>;1642 readonly isRefungibleMultipleOwners: boolean;1643 readonly asRefungibleMultipleOwners: UpDataStructsCreateRefungibleExMultipleOwners;1644 readonly type: 'Nft' | 'Fungible' | 'RefungibleMultipleItems' | 'RefungibleMultipleOwners';1645 }16461647 /** @name UpDataStructsCreateNftExData (194) */1648 export interface UpDataStructsCreateNftExData extends Struct {1649 readonly properties: Vec<UpDataStructsProperty>;1650 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;1651 }16521653 /** @name UpDataStructsCreateRefungibleExSingleOwner (201) */1654 export interface UpDataStructsCreateRefungibleExSingleOwner extends Struct {1655 readonly user: PalletEvmAccountBasicCrossAccountIdRepr;1656 readonly pieces: u128;1657 readonly properties: Vec<UpDataStructsProperty>;1658 }16591660 /** @name UpDataStructsCreateRefungibleExMultipleOwners (203) */1661 export interface UpDataStructsCreateRefungibleExMultipleOwners extends Struct {1662 readonly users: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>;1663 readonly properties: Vec<UpDataStructsProperty>;1664 }16651666 /** @name PalletUniqueSchedulerCall (204) */1667 export interface PalletUniqueSchedulerCall extends Enum {1668 readonly isScheduleNamed: boolean;1669 readonly asScheduleNamed: {1670 readonly id: U8aFixed;1671 readonly when: u32;1672 readonly maybePeriodic: Option<ITuple<[u32, u32]>>;1673 readonly priority: u8;1674 readonly call: FrameSupportScheduleMaybeHashed;1675 } & Struct;1676 readonly isCancelNamed: boolean;1677 readonly asCancelNamed: {1678 readonly id: U8aFixed;1679 } & Struct;1680 readonly isScheduleNamedAfter: boolean;1681 readonly asScheduleNamedAfter: {1682 readonly id: U8aFixed;1683 readonly after: u32;1684 readonly maybePeriodic: Option<ITuple<[u32, u32]>>;1685 readonly priority: u8;1686 readonly call: FrameSupportScheduleMaybeHashed;1687 } & Struct;1688 readonly type: 'ScheduleNamed' | 'CancelNamed' | 'ScheduleNamedAfter';1689 }16901691 /** @name FrameSupportScheduleMaybeHashed (206) */1692 export interface FrameSupportScheduleMaybeHashed extends Enum {1693 readonly isValue: boolean;1694 readonly asValue: Call;1695 readonly isHash: boolean;1696 readonly asHash: H256;1697 readonly type: 'Value' | 'Hash';1698 }16991700 /** @name PalletTemplateTransactionPaymentCall (207) */1701 export type PalletTemplateTransactionPaymentCall = Null;17021703 /** @name PalletStructureCall (208) */1704 export type PalletStructureCall = Null;17051706 /** @name PalletRmrkCoreCall (209) */1707 export interface PalletRmrkCoreCall extends Enum {1708 readonly isCreateCollection: boolean;1709 readonly asCreateCollection: {1710 readonly metadata: Bytes;1711 readonly max: Option<u32>;1712 readonly symbol: Bytes;1713 } & Struct;1714 readonly isDestroyCollection: boolean;1715 readonly asDestroyCollection: {1716 readonly collectionId: u32;1717 } & Struct;1718 readonly isChangeCollectionIssuer: boolean;1719 readonly asChangeCollectionIssuer: {1720 readonly collectionId: u32;1721 readonly newIssuer: MultiAddress;1722 } & Struct;1723 readonly isLockCollection: boolean;1724 readonly asLockCollection: {1725 readonly collectionId: u32;1726 } & Struct;1727 readonly isMintNft: boolean;1728 readonly asMintNft: {1729 readonly owner: Option<AccountId32>;1730 readonly collectionId: u32;1731 readonly recipient: Option<AccountId32>;1732 readonly royaltyAmount: Option<Permill>;1733 readonly metadata: Bytes;1734 readonly transferable: bool;1735 readonly resources: Option<Vec<RmrkTraitsResourceResourceTypes>>;1736 } & Struct;1737 readonly isBurnNft: boolean;1738 readonly asBurnNft: {1739 readonly collectionId: u32;1740 readonly nftId: u32;1741 readonly maxBurns: u32;1742 } & Struct;1743 readonly isSend: boolean;1744 readonly asSend: {1745 readonly rmrkCollectionId: u32;1746 readonly rmrkNftId: u32;1747 readonly newOwner: RmrkTraitsNftAccountIdOrCollectionNftTuple;1748 } & Struct;1749 readonly isAcceptNft: boolean;1750 readonly asAcceptNft: {1751 readonly rmrkCollectionId: u32;1752 readonly rmrkNftId: u32;1753 readonly newOwner: RmrkTraitsNftAccountIdOrCollectionNftTuple;1754 } & Struct;1755 readonly isRejectNft: boolean;1756 readonly asRejectNft: {1757 readonly rmrkCollectionId: u32;1758 readonly rmrkNftId: u32;1759 } & Struct;1760 readonly isAcceptResource: boolean;1761 readonly asAcceptResource: {1762 readonly rmrkCollectionId: u32;1763 readonly rmrkNftId: u32;1764 readonly resourceId: u32;1765 } & Struct;1766 readonly isAcceptResourceRemoval: boolean;1767 readonly asAcceptResourceRemoval: {1768 readonly rmrkCollectionId: u32;1769 readonly rmrkNftId: u32;1770 readonly resourceId: u32;1771 } & Struct;1772 readonly isSetProperty: boolean;1773 readonly asSetProperty: {1774 readonly rmrkCollectionId: Compact<u32>;1775 readonly maybeNftId: Option<u32>;1776 readonly key: Bytes;1777 readonly value: Bytes;1778 } & Struct;1779 readonly isSetPriority: boolean;1780 readonly asSetPriority: {1781 readonly rmrkCollectionId: u32;1782 readonly rmrkNftId: u32;1783 readonly priorities: Vec<u32>;1784 } & Struct;1785 readonly isAddBasicResource: boolean;1786 readonly asAddBasicResource: {1787 readonly rmrkCollectionId: u32;1788 readonly nftId: u32;1789 readonly resource: RmrkTraitsResourceBasicResource;1790 } & Struct;1791 readonly isAddComposableResource: boolean;1792 readonly asAddComposableResource: {1793 readonly rmrkCollectionId: u32;1794 readonly nftId: u32;1795 readonly resource: RmrkTraitsResourceComposableResource;1796 } & Struct;1797 readonly isAddSlotResource: boolean;1798 readonly asAddSlotResource: {1799 readonly rmrkCollectionId: u32;1800 readonly nftId: u32;1801 readonly resource: RmrkTraitsResourceSlotResource;1802 } & Struct;1803 readonly isRemoveResource: boolean;1804 readonly asRemoveResource: {1805 readonly rmrkCollectionId: u32;1806 readonly nftId: u32;1807 readonly resourceId: u32;1808 } & Struct;1809 readonly type: 'CreateCollection' | 'DestroyCollection' | 'ChangeCollectionIssuer' | 'LockCollection' | 'MintNft' | 'BurnNft' | 'Send' | 'AcceptNft' | 'RejectNft' | 'AcceptResource' | 'AcceptResourceRemoval' | 'SetProperty' | 'SetPriority' | 'AddBasicResource' | 'AddComposableResource' | 'AddSlotResource' | 'RemoveResource';1810 }18111812 /** @name RmrkTraitsResourceResourceTypes (215) */1813 export interface RmrkTraitsResourceResourceTypes extends Enum {1814 readonly isBasic: boolean;1815 readonly asBasic: RmrkTraitsResourceBasicResource;1816 readonly isComposable: boolean;1817 readonly asComposable: RmrkTraitsResourceComposableResource;1818 readonly isSlot: boolean;1819 readonly asSlot: RmrkTraitsResourceSlotResource;1820 readonly type: 'Basic' | 'Composable' | 'Slot';1821 }18221823 /** @name RmrkTraitsResourceBasicResource (217) */1824 export interface RmrkTraitsResourceBasicResource extends Struct {1825 readonly src: Option<Bytes>;1826 readonly metadata: Option<Bytes>;1827 readonly license: Option<Bytes>;1828 readonly thumb: Option<Bytes>;1829 }18301831 /** @name RmrkTraitsResourceComposableResource (219) */1832 export interface RmrkTraitsResourceComposableResource extends Struct {1833 readonly parts: Vec<u32>;1834 readonly base: u32;1835 readonly src: Option<Bytes>;1836 readonly metadata: Option<Bytes>;1837 readonly license: Option<Bytes>;1838 readonly thumb: Option<Bytes>;1839 }18401841 /** @name RmrkTraitsResourceSlotResource (220) */1842 export interface RmrkTraitsResourceSlotResource extends Struct {1843 readonly base: u32;1844 readonly src: Option<Bytes>;1845 readonly metadata: Option<Bytes>;1846 readonly slot: u32;1847 readonly license: Option<Bytes>;1848 readonly thumb: Option<Bytes>;1849 }18501851 /** @name RmrkTraitsNftAccountIdOrCollectionNftTuple (222) */1852 export interface RmrkTraitsNftAccountIdOrCollectionNftTuple extends Enum {1853 readonly isAccountId: boolean;1854 readonly asAccountId: AccountId32;1855 readonly isCollectionAndNftTuple: boolean;1856 readonly asCollectionAndNftTuple: ITuple<[u32, u32]>;1857 readonly type: 'AccountId' | 'CollectionAndNftTuple';1858 }18591860 /** @name PalletRmrkEquipCall (226) */1861 export interface PalletRmrkEquipCall extends Enum {1862 readonly isCreateBase: boolean;1863 readonly asCreateBase: {1864 readonly baseType: Bytes;1865 readonly symbol: Bytes;1866 readonly parts: Vec<RmrkTraitsPartPartType>;1867 } & Struct;1868 readonly isThemeAdd: boolean;1869 readonly asThemeAdd: {1870 readonly baseId: u32;1871 readonly theme: RmrkTraitsTheme;1872 } & Struct;1873 readonly isEquippable: boolean;1874 readonly asEquippable: {1875 readonly baseId: u32;1876 readonly slotId: u32;1877 readonly equippables: RmrkTraitsPartEquippableList;1878 } & Struct;1879 readonly type: 'CreateBase' | 'ThemeAdd' | 'Equippable';1880 }18811882 /** @name RmrkTraitsPartPartType (229) */1883 export interface RmrkTraitsPartPartType extends Enum {1884 readonly isFixedPart: boolean;1885 readonly asFixedPart: RmrkTraitsPartFixedPart;1886 readonly isSlotPart: boolean;1887 readonly asSlotPart: RmrkTraitsPartSlotPart;1888 readonly type: 'FixedPart' | 'SlotPart';1889 }18901891 /** @name RmrkTraitsPartFixedPart (231) */1892 export interface RmrkTraitsPartFixedPart extends Struct {1893 readonly id: u32;1894 readonly z: u32;1895 readonly src: Bytes;1896 }18971898 /** @name RmrkTraitsPartSlotPart (232) */1899 export interface RmrkTraitsPartSlotPart extends Struct {1900 readonly id: u32;1901 readonly equippable: RmrkTraitsPartEquippableList;1902 readonly src: Bytes;1903 readonly z: u32;1904 }19051906 /** @name RmrkTraitsPartEquippableList (233) */1907 export interface RmrkTraitsPartEquippableList extends Enum {1908 readonly isAll: boolean;1909 readonly isEmpty: boolean;1910 readonly isCustom: boolean;1911 readonly asCustom: Vec<u32>;1912 readonly type: 'All' | 'Empty' | 'Custom';1913 }19141915 /** @name RmrkTraitsTheme (235) */1916 export interface RmrkTraitsTheme extends Struct {1917 readonly name: Bytes;1918 readonly properties: Vec<RmrkTraitsThemeThemeProperty>;1919 readonly inherit: bool;1920 }19211922 /** @name RmrkTraitsThemeThemeProperty (237) */1923 export interface RmrkTraitsThemeThemeProperty extends Struct {1924 readonly key: Bytes;1925 readonly value: Bytes;1926 }19271928 /** @name PalletEvmCall (239) */1929 export interface PalletEvmCall extends Enum {1930 readonly isWithdraw: boolean;1931 readonly asWithdraw: {1932 readonly address: H160;1933 readonly value: u128;1934 } & Struct;1935 readonly isCall: boolean;1936 readonly asCall: {1937 readonly source: H160;1938 readonly target: H160;1939 readonly input: Bytes;1940 readonly value: U256;1941 readonly gasLimit: u64;1942 readonly maxFeePerGas: U256;1943 readonly maxPriorityFeePerGas: Option<U256>;1944 readonly nonce: Option<U256>;1945 readonly accessList: Vec<ITuple<[H160, Vec<H256>]>>;1946 } & Struct;1947 readonly isCreate: boolean;1948 readonly asCreate: {1949 readonly source: H160;1950 readonly init: Bytes;1951 readonly value: U256;1952 readonly gasLimit: u64;1953 readonly maxFeePerGas: U256;1954 readonly maxPriorityFeePerGas: Option<U256>;1955 readonly nonce: Option<U256>;1956 readonly accessList: Vec<ITuple<[H160, Vec<H256>]>>;1957 } & Struct;1958 readonly isCreate2: boolean;1959 readonly asCreate2: {1960 readonly source: H160;1961 readonly init: Bytes;1962 readonly salt: H256;1963 readonly value: U256;1964 readonly gasLimit: u64;1965 readonly maxFeePerGas: U256;1966 readonly maxPriorityFeePerGas: Option<U256>;1967 readonly nonce: Option<U256>;1968 readonly accessList: Vec<ITuple<[H160, Vec<H256>]>>;1969 } & Struct;1970 readonly type: 'Withdraw' | 'Call' | 'Create' | 'Create2';1971 }19721973 /** @name PalletEthereumCall (245) */1974 export interface PalletEthereumCall extends Enum {1975 readonly isTransact: boolean;1976 readonly asTransact: {1977 readonly transaction: EthereumTransactionTransactionV2;1978 } & Struct;1979 readonly type: 'Transact';1980 }19811982 /** @name EthereumTransactionTransactionV2 (246) */1983 export interface EthereumTransactionTransactionV2 extends Enum {1984 readonly isLegacy: boolean;1985 readonly asLegacy: EthereumTransactionLegacyTransaction;1986 readonly isEip2930: boolean;1987 readonly asEip2930: EthereumTransactionEip2930Transaction;1988 readonly isEip1559: boolean;1989 readonly asEip1559: EthereumTransactionEip1559Transaction;1990 readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';1991 }19921993 /** @name EthereumTransactionLegacyTransaction (247) */1994 export interface EthereumTransactionLegacyTransaction extends Struct {1995 readonly nonce: U256;1996 readonly gasPrice: U256;1997 readonly gasLimit: U256;1998 readonly action: EthereumTransactionTransactionAction;1999 readonly value: U256;2000 readonly input: Bytes;2001 readonly signature: EthereumTransactionTransactionSignature;2002 }20032004 /** @name EthereumTransactionTransactionAction (248) */2005 export interface EthereumTransactionTransactionAction extends Enum {2006 readonly isCall: boolean;2007 readonly asCall: H160;2008 readonly isCreate: boolean;2009 readonly type: 'Call' | 'Create';2010 }20112012 /** @name EthereumTransactionTransactionSignature (249) */2013 export interface EthereumTransactionTransactionSignature extends Struct {2014 readonly v: u64;2015 readonly r: H256;2016 readonly s: H256;2017 }20182019 /** @name EthereumTransactionEip2930Transaction (251) */2020 export interface EthereumTransactionEip2930Transaction extends Struct {2021 readonly chainId: u64;2022 readonly nonce: U256;2023 readonly gasPrice: U256;2024 readonly gasLimit: U256;2025 readonly action: EthereumTransactionTransactionAction;2026 readonly value: U256;2027 readonly input: Bytes;2028 readonly accessList: Vec<EthereumTransactionAccessListItem>;2029 readonly oddYParity: bool;2030 readonly r: H256;2031 readonly s: H256;2032 }20332034 /** @name EthereumTransactionAccessListItem (253) */2035 export interface EthereumTransactionAccessListItem extends Struct {2036 readonly address: H160;2037 readonly storageKeys: Vec<H256>;2038 }20392040 /** @name EthereumTransactionEip1559Transaction (254) */2041 export interface EthereumTransactionEip1559Transaction extends Struct {2042 readonly chainId: u64;2043 readonly nonce: U256;2044 readonly maxPriorityFeePerGas: U256;2045 readonly maxFeePerGas: U256;2046 readonly gasLimit: U256;2047 readonly action: EthereumTransactionTransactionAction;2048 readonly value: U256;2049 readonly input: Bytes;2050 readonly accessList: Vec<EthereumTransactionAccessListItem>;2051 readonly oddYParity: bool;2052 readonly r: H256;2053 readonly s: H256;2054 }20552056 /** @name PalletEvmMigrationCall (255) */2057 export interface PalletEvmMigrationCall extends Enum {2058 readonly isBegin: boolean;2059 readonly asBegin: {2060 readonly address: H160;2061 } & Struct;2062 readonly isSetData: boolean;2063 readonly asSetData: {2064 readonly address: H160;2065 readonly data: Vec<ITuple<[H256, H256]>>;2066 } & Struct;2067 readonly isFinish: boolean;2068 readonly asFinish: {2069 readonly address: H160;2070 readonly code: Bytes;2071 } & Struct;2072 readonly type: 'Begin' | 'SetData' | 'Finish';2073 }20742075 /** @name PalletSudoEvent (258) */2076 export interface PalletSudoEvent extends Enum {2077 readonly isSudid: boolean;2078 readonly asSudid: {2079 readonly sudoResult: Result<Null, SpRuntimeDispatchError>;2080 } & Struct;2081 readonly isKeyChanged: boolean;2082 readonly asKeyChanged: {2083 readonly oldSudoer: Option<AccountId32>;2084 } & Struct;2085 readonly isSudoAsDone: boolean;2086 readonly asSudoAsDone: {2087 readonly sudoResult: Result<Null, SpRuntimeDispatchError>;2088 } & Struct;2089 readonly type: 'Sudid' | 'KeyChanged' | 'SudoAsDone';2090 }20912092 /** @name SpRuntimeDispatchError (260) */2093 export interface SpRuntimeDispatchError extends Enum {2094 readonly isOther: boolean;2095 readonly isCannotLookup: boolean;2096 readonly isBadOrigin: boolean;2097 readonly isModule: boolean;2098 readonly asModule: SpRuntimeModuleError;2099 readonly isConsumerRemaining: boolean;2100 readonly isNoProviders: boolean;2101 readonly isTooManyConsumers: boolean;2102 readonly isToken: boolean;2103 readonly asToken: SpRuntimeTokenError;2104 readonly isArithmetic: boolean;2105 readonly asArithmetic: SpRuntimeArithmeticError;2106 readonly isTransactional: boolean;2107 readonly asTransactional: SpRuntimeTransactionalError;2108 readonly type: 'Other' | 'CannotLookup' | 'BadOrigin' | 'Module' | 'ConsumerRemaining' | 'NoProviders' | 'TooManyConsumers' | 'Token' | 'Arithmetic' | 'Transactional';2109 }21102111 /** @name SpRuntimeModuleError (261) */2112 export interface SpRuntimeModuleError extends Struct {2113 readonly index: u8;2114 readonly error: U8aFixed;2115 }21162117 /** @name SpRuntimeTokenError (262) */2118 export interface SpRuntimeTokenError extends Enum {2119 readonly isNoFunds: boolean;2120 readonly isWouldDie: boolean;2121 readonly isBelowMinimum: boolean;2122 readonly isCannotCreate: boolean;2123 readonly isUnknownAsset: boolean;2124 readonly isFrozen: boolean;2125 readonly isUnsupported: boolean;2126 readonly type: 'NoFunds' | 'WouldDie' | 'BelowMinimum' | 'CannotCreate' | 'UnknownAsset' | 'Frozen' | 'Unsupported';2127 }21282129 /** @name SpRuntimeArithmeticError (263) */2130 export interface SpRuntimeArithmeticError extends Enum {2131 readonly isUnderflow: boolean;2132 readonly isOverflow: boolean;2133 readonly isDivisionByZero: boolean;2134 readonly type: 'Underflow' | 'Overflow' | 'DivisionByZero';2135 }21362137 /** @name SpRuntimeTransactionalError (264) */2138 export interface SpRuntimeTransactionalError extends Enum {2139 readonly isLimitReached: boolean;2140 readonly isNoLayer: boolean;2141 readonly type: 'LimitReached' | 'NoLayer';2142 }21432144 /** @name PalletSudoError (265) */2145 export interface PalletSudoError extends Enum {2146 readonly isRequireSudo: boolean;2147 readonly type: 'RequireSudo';2148 }21492150 /** @name FrameSystemAccountInfo (266) */2151 export interface FrameSystemAccountInfo extends Struct {2152 readonly nonce: u32;2153 readonly consumers: u32;2154 readonly providers: u32;2155 readonly sufficients: u32;2156 readonly data: PalletBalancesAccountData;2157 }21582159 /** @name FrameSupportWeightsPerDispatchClassU64 (267) */2160 export interface FrameSupportWeightsPerDispatchClassU64 extends Struct {2161 readonly normal: u64;2162 readonly operational: u64;2163 readonly mandatory: u64;2164 }21652166 /** @name SpRuntimeDigest (268) */2167 export interface SpRuntimeDigest extends Struct {2168 readonly logs: Vec<SpRuntimeDigestDigestItem>;2169 }21702171 /** @name SpRuntimeDigestDigestItem (270) */2172 export interface SpRuntimeDigestDigestItem extends Enum {2173 readonly isOther: boolean;2174 readonly asOther: Bytes;2175 readonly isConsensus: boolean;2176 readonly asConsensus: ITuple<[U8aFixed, Bytes]>;2177 readonly isSeal: boolean;2178 readonly asSeal: ITuple<[U8aFixed, Bytes]>;2179 readonly isPreRuntime: boolean;2180 readonly asPreRuntime: ITuple<[U8aFixed, Bytes]>;2181 readonly isRuntimeEnvironmentUpdated: boolean;2182 readonly type: 'Other' | 'Consensus' | 'Seal' | 'PreRuntime' | 'RuntimeEnvironmentUpdated';2183 }21842185 /** @name FrameSystemEventRecord (272) */2186 export interface FrameSystemEventRecord extends Struct {2187 readonly phase: FrameSystemPhase;2188 readonly event: Event;2189 readonly topics: Vec<H256>;2190 }21912192 /** @name FrameSystemEvent (274) */2193 export interface FrameSystemEvent extends Enum {2194 readonly isExtrinsicSuccess: boolean;2195 readonly asExtrinsicSuccess: {2196 readonly dispatchInfo: FrameSupportWeightsDispatchInfo;2197 } & Struct;2198 readonly isExtrinsicFailed: boolean;2199 readonly asExtrinsicFailed: {2200 readonly dispatchError: SpRuntimeDispatchError;2201 readonly dispatchInfo: FrameSupportWeightsDispatchInfo;2202 } & Struct;2203 readonly isCodeUpdated: boolean;2204 readonly isNewAccount: boolean;2205 readonly asNewAccount: {2206 readonly account: AccountId32;2207 } & Struct;2208 readonly isKilledAccount: boolean;2209 readonly asKilledAccount: {2210 readonly account: AccountId32;2211 } & Struct;2212 readonly isRemarked: boolean;2213 readonly asRemarked: {2214 readonly sender: AccountId32;2215 readonly hash_: H256;2216 } & Struct;2217 readonly type: 'ExtrinsicSuccess' | 'ExtrinsicFailed' | 'CodeUpdated' | 'NewAccount' | 'KilledAccount' | 'Remarked';2218 }22192220 /** @name FrameSupportWeightsDispatchInfo (275) */2221 export interface FrameSupportWeightsDispatchInfo extends Struct {2222 readonly weight: u64;2223 readonly class: FrameSupportWeightsDispatchClass;2224 readonly paysFee: FrameSupportWeightsPays;2225 }22262227 /** @name FrameSupportWeightsDispatchClass (276) */2228 export interface FrameSupportWeightsDispatchClass extends Enum {2229 readonly isNormal: boolean;2230 readonly isOperational: boolean;2231 readonly isMandatory: boolean;2232 readonly type: 'Normal' | 'Operational' | 'Mandatory';2233 }22342235 /** @name FrameSupportWeightsPays (277) */2236 export interface FrameSupportWeightsPays extends Enum {2237 readonly isYes: boolean;2238 readonly isNo: boolean;2239 readonly type: 'Yes' | 'No';2240 }22412242 /** @name OrmlVestingModuleEvent (278) */2243 export interface OrmlVestingModuleEvent extends Enum {2244 readonly isVestingScheduleAdded: boolean;2245 readonly asVestingScheduleAdded: {2246 readonly from: AccountId32;2247 readonly to: AccountId32;2248 readonly vestingSchedule: OrmlVestingVestingSchedule;2249 } & Struct;2250 readonly isClaimed: boolean;2251 readonly asClaimed: {2252 readonly who: AccountId32;2253 readonly amount: u128;2254 } & Struct;2255 readonly isVestingSchedulesUpdated: boolean;2256 readonly asVestingSchedulesUpdated: {2257 readonly who: AccountId32;2258 } & Struct;2259 readonly type: 'VestingScheduleAdded' | 'Claimed' | 'VestingSchedulesUpdated';2260 }22612262 /** @name CumulusPalletXcmpQueueEvent (279) */2263 export interface CumulusPalletXcmpQueueEvent extends Enum {2264 readonly isSuccess: boolean;2265 readonly asSuccess: Option<H256>;2266 readonly isFail: boolean;2267 readonly asFail: ITuple<[Option<H256>, XcmV2TraitsError]>;2268 readonly isBadVersion: boolean;2269 readonly asBadVersion: Option<H256>;2270 readonly isBadFormat: boolean;2271 readonly asBadFormat: Option<H256>;2272 readonly isUpwardMessageSent: boolean;2273 readonly asUpwardMessageSent: Option<H256>;2274 readonly isXcmpMessageSent: boolean;2275 readonly asXcmpMessageSent: Option<H256>;2276 readonly isOverweightEnqueued: boolean;2277 readonly asOverweightEnqueued: ITuple<[u32, u32, u64, u64]>;2278 readonly isOverweightServiced: boolean;2279 readonly asOverweightServiced: ITuple<[u64, u64]>;2280 readonly type: 'Success' | 'Fail' | 'BadVersion' | 'BadFormat' | 'UpwardMessageSent' | 'XcmpMessageSent' | 'OverweightEnqueued' | 'OverweightServiced';2281 }22822283 /** @name PalletXcmEvent (280) */2284 export interface PalletXcmEvent extends Enum {2285 readonly isAttempted: boolean;2286 readonly asAttempted: XcmV2TraitsOutcome;2287 readonly isSent: boolean;2288 readonly asSent: ITuple<[XcmV1MultiLocation, XcmV1MultiLocation, XcmV2Xcm]>;2289 readonly isUnexpectedResponse: boolean;2290 readonly asUnexpectedResponse: ITuple<[XcmV1MultiLocation, u64]>;2291 readonly isResponseReady: boolean;2292 readonly asResponseReady: ITuple<[u64, XcmV2Response]>;2293 readonly isNotified: boolean;2294 readonly asNotified: ITuple<[u64, u8, u8]>;2295 readonly isNotifyOverweight: boolean;2296 readonly asNotifyOverweight: ITuple<[u64, u8, u8, u64, u64]>;2297 readonly isNotifyDispatchError: boolean;2298 readonly asNotifyDispatchError: ITuple<[u64, u8, u8]>;2299 readonly isNotifyDecodeFailed: boolean;2300 readonly asNotifyDecodeFailed: ITuple<[u64, u8, u8]>;2301 readonly isInvalidResponder: boolean;2302 readonly asInvalidResponder: ITuple<[XcmV1MultiLocation, u64, Option<XcmV1MultiLocation>]>;2303 readonly isInvalidResponderVersion: boolean;2304 readonly asInvalidResponderVersion: ITuple<[XcmV1MultiLocation, u64]>;2305 readonly isResponseTaken: boolean;2306 readonly asResponseTaken: u64;2307 readonly isAssetsTrapped: boolean;2308 readonly asAssetsTrapped: ITuple<[H256, XcmV1MultiLocation, XcmVersionedMultiAssets]>;2309 readonly isVersionChangeNotified: boolean;2310 readonly asVersionChangeNotified: ITuple<[XcmV1MultiLocation, u32]>;2311 readonly isSupportedVersionChanged: boolean;2312 readonly asSupportedVersionChanged: ITuple<[XcmV1MultiLocation, u32]>;2313 readonly isNotifyTargetSendFail: boolean;2314 readonly asNotifyTargetSendFail: ITuple<[XcmV1MultiLocation, u64, XcmV2TraitsError]>;2315 readonly isNotifyTargetMigrationFail: boolean;2316 readonly asNotifyTargetMigrationFail: ITuple<[XcmVersionedMultiLocation, u64]>;2317 readonly type: 'Attempted' | 'Sent' | 'UnexpectedResponse' | 'ResponseReady' | 'Notified' | 'NotifyOverweight' | 'NotifyDispatchError' | 'NotifyDecodeFailed' | 'InvalidResponder' | 'InvalidResponderVersion' | 'ResponseTaken' | 'AssetsTrapped' | 'VersionChangeNotified' | 'SupportedVersionChanged' | 'NotifyTargetSendFail' | 'NotifyTargetMigrationFail';2318 }23192320 /** @name XcmV2TraitsOutcome (281) */2321 export interface XcmV2TraitsOutcome extends Enum {2322 readonly isComplete: boolean;2323 readonly asComplete: u64;2324 readonly isIncomplete: boolean;2325 readonly asIncomplete: ITuple<[u64, XcmV2TraitsError]>;2326 readonly isError: boolean;2327 readonly asError: XcmV2TraitsError;2328 readonly type: 'Complete' | 'Incomplete' | 'Error';2329 }23302331 /** @name CumulusPalletXcmEvent (283) */2332 export interface CumulusPalletXcmEvent extends Enum {2333 readonly isInvalidFormat: boolean;2334 readonly asInvalidFormat: U8aFixed;2335 readonly isUnsupportedVersion: boolean;2336 readonly asUnsupportedVersion: U8aFixed;2337 readonly isExecutedDownward: boolean;2338 readonly asExecutedDownward: ITuple<[U8aFixed, XcmV2TraitsOutcome]>;2339 readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward';2340 }23412342 /** @name CumulusPalletDmpQueueEvent (284) */2343 export interface CumulusPalletDmpQueueEvent extends Enum {2344 readonly isInvalidFormat: boolean;2345 readonly asInvalidFormat: {2346 readonly messageId: U8aFixed;2347 } & Struct;2348 readonly isUnsupportedVersion: boolean;2349 readonly asUnsupportedVersion: {2350 readonly messageId: U8aFixed;2351 } & Struct;2352 readonly isExecutedDownward: boolean;2353 readonly asExecutedDownward: {2354 readonly messageId: U8aFixed;2355 readonly outcome: XcmV2TraitsOutcome;2356 } & Struct;2357 readonly isWeightExhausted: boolean;2358 readonly asWeightExhausted: {2359 readonly messageId: U8aFixed;2360 readonly remainingWeight: u64;2361 readonly requiredWeight: u64;2362 } & Struct;2363 readonly isOverweightEnqueued: boolean;2364 readonly asOverweightEnqueued: {2365 readonly messageId: U8aFixed;2366 readonly overweightIndex: u64;2367 readonly requiredWeight: u64;2368 } & Struct;2369 readonly isOverweightServiced: boolean;2370 readonly asOverweightServiced: {2371 readonly overweightIndex: u64;2372 readonly weightUsed: u64;2373 } & Struct;2374 readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward' | 'WeightExhausted' | 'OverweightEnqueued' | 'OverweightServiced';2375 }23762377 /** @name PalletUniqueRawEvent (285) */2378 export interface PalletUniqueRawEvent extends Enum {2379 readonly isCollectionSponsorRemoved: boolean;2380 readonly asCollectionSponsorRemoved: u32;2381 readonly isCollectionAdminAdded: boolean;2382 readonly asCollectionAdminAdded: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;2383 readonly isCollectionOwnedChanged: boolean;2384 readonly asCollectionOwnedChanged: ITuple<[u32, AccountId32]>;2385 readonly isCollectionSponsorSet: boolean;2386 readonly asCollectionSponsorSet: ITuple<[u32, AccountId32]>;2387 readonly isSponsorshipConfirmed: boolean;2388 readonly asSponsorshipConfirmed: ITuple<[u32, AccountId32]>;2389 readonly isCollectionAdminRemoved: boolean;2390 readonly asCollectionAdminRemoved: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;2391 readonly isAllowListAddressRemoved: boolean;2392 readonly asAllowListAddressRemoved: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;2393 readonly isAllowListAddressAdded: boolean;2394 readonly asAllowListAddressAdded: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;2395 readonly isCollectionLimitSet: boolean;2396 readonly asCollectionLimitSet: u32;2397 readonly isCollectionPermissionSet: boolean;2398 readonly asCollectionPermissionSet: u32;2399 readonly type: 'CollectionSponsorRemoved' | 'CollectionAdminAdded' | 'CollectionOwnedChanged' | 'CollectionSponsorSet' | 'SponsorshipConfirmed' | 'CollectionAdminRemoved' | 'AllowListAddressRemoved' | 'AllowListAddressAdded' | 'CollectionLimitSet' | 'CollectionPermissionSet';2400 }24012402 /** @name PalletUniqueSchedulerEvent (286) */2403 export interface PalletUniqueSchedulerEvent extends Enum {2404 readonly isScheduled: boolean;2405 readonly asScheduled: {2406 readonly when: u32;2407 readonly index: u32;2408 } & Struct;2409 readonly isCanceled: boolean;2410 readonly asCanceled: {2411 readonly when: u32;2412 readonly index: u32;2413 } & Struct;2414 readonly isDispatched: boolean;2415 readonly asDispatched: {2416 readonly task: ITuple<[u32, u32]>;2417 readonly id: Option<U8aFixed>;2418 readonly result: Result<Null, SpRuntimeDispatchError>;2419 } & Struct;2420 readonly isCallLookupFailed: boolean;2421 readonly asCallLookupFailed: {2422 readonly task: ITuple<[u32, u32]>;2423 readonly id: Option<U8aFixed>;2424 readonly error: FrameSupportScheduleLookupError;2425 } & Struct;2426 readonly type: 'Scheduled' | 'Canceled' | 'Dispatched' | 'CallLookupFailed';2427 }24282429 /** @name FrameSupportScheduleLookupError (288) */2430 export interface FrameSupportScheduleLookupError extends Enum {2431 readonly isUnknown: boolean;2432 readonly isBadFormat: boolean;2433 readonly type: 'Unknown' | 'BadFormat';2434 }24352436 /** @name PalletCommonEvent (289) */2437 export interface PalletCommonEvent extends Enum {2438 readonly isCollectionCreated: boolean;2439 readonly asCollectionCreated: ITuple<[u32, u8, AccountId32]>;2440 readonly isCollectionDestroyed: boolean;2441 readonly asCollectionDestroyed: u32;2442 readonly isItemCreated: boolean;2443 readonly asItemCreated: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;2444 readonly isItemDestroyed: boolean;2445 readonly asItemDestroyed: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;2446 readonly isTransfer: boolean;2447 readonly asTransfer: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;2448 readonly isApproved: boolean;2449 readonly asApproved: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;2450 readonly isCollectionPropertySet: boolean;2451 readonly asCollectionPropertySet: ITuple<[u32, Bytes]>;2452 readonly isCollectionPropertyDeleted: boolean;2453 readonly asCollectionPropertyDeleted: ITuple<[u32, Bytes]>;2454 readonly isTokenPropertySet: boolean;2455 readonly asTokenPropertySet: ITuple<[u32, u32, Bytes]>;2456 readonly isTokenPropertyDeleted: boolean;2457 readonly asTokenPropertyDeleted: ITuple<[u32, u32, Bytes]>;2458 readonly isPropertyPermissionSet: boolean;2459 readonly asPropertyPermissionSet: ITuple<[u32, Bytes]>;2460 readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'ItemCreated' | 'ItemDestroyed' | 'Transfer' | 'Approved' | 'CollectionPropertySet' | 'CollectionPropertyDeleted' | 'TokenPropertySet' | 'TokenPropertyDeleted' | 'PropertyPermissionSet';2461 }24622463 /** @name PalletStructureEvent (290) */2464 export interface PalletStructureEvent extends Enum {2465 readonly isExecuted: boolean;2466 readonly asExecuted: Result<Null, SpRuntimeDispatchError>;2467 readonly type: 'Executed';2468 }24692470 /** @name PalletRmrkCoreEvent (291) */2471 export interface PalletRmrkCoreEvent extends Enum {2472 readonly isCollectionCreated: boolean;2473 readonly asCollectionCreated: {2474 readonly issuer: AccountId32;2475 readonly collectionId: u32;2476 } & Struct;2477 readonly isCollectionDestroyed: boolean;2478 readonly asCollectionDestroyed: {2479 readonly issuer: AccountId32;2480 readonly collectionId: u32;2481 } & Struct;2482 readonly isIssuerChanged: boolean;2483 readonly asIssuerChanged: {2484 readonly oldIssuer: AccountId32;2485 readonly newIssuer: AccountId32;2486 readonly collectionId: u32;2487 } & Struct;2488 readonly isCollectionLocked: boolean;2489 readonly asCollectionLocked: {2490 readonly issuer: AccountId32;2491 readonly collectionId: u32;2492 } & Struct;2493 readonly isNftMinted: boolean;2494 readonly asNftMinted: {2495 readonly owner: AccountId32;2496 readonly collectionId: u32;2497 readonly nftId: u32;2498 } & Struct;2499 readonly isNftBurned: boolean;2500 readonly asNftBurned: {2501 readonly owner: AccountId32;2502 readonly nftId: u32;2503 } & Struct;2504 readonly isNftSent: boolean;2505 readonly asNftSent: {2506 readonly sender: AccountId32;2507 readonly recipient: RmrkTraitsNftAccountIdOrCollectionNftTuple;2508 readonly collectionId: u32;2509 readonly nftId: u32;2510 readonly approvalRequired: bool;2511 } & Struct;2512 readonly isNftAccepted: boolean;2513 readonly asNftAccepted: {2514 readonly sender: AccountId32;2515 readonly recipient: RmrkTraitsNftAccountIdOrCollectionNftTuple;2516 readonly collectionId: u32;2517 readonly nftId: u32;2518 } & Struct;2519 readonly isNftRejected: boolean;2520 readonly asNftRejected: {2521 readonly sender: AccountId32;2522 readonly collectionId: u32;2523 readonly nftId: u32;2524 } & Struct;2525 readonly isPropertySet: boolean;2526 readonly asPropertySet: {2527 readonly collectionId: u32;2528 readonly maybeNftId: Option<u32>;2529 readonly key: Bytes;2530 readonly value: Bytes;2531 } & Struct;2532 readonly isResourceAdded: boolean;2533 readonly asResourceAdded: {2534 readonly nftId: u32;2535 readonly resourceId: u32;2536 } & Struct;2537 readonly isResourceRemoval: boolean;2538 readonly asResourceRemoval: {2539 readonly nftId: u32;2540 readonly resourceId: u32;2541 } & Struct;2542 readonly isResourceAccepted: boolean;2543 readonly asResourceAccepted: {2544 readonly nftId: u32;2545 readonly resourceId: u32;2546 } & Struct;2547 readonly isResourceRemovalAccepted: boolean;2548 readonly asResourceRemovalAccepted: {2549 readonly nftId: u32;2550 readonly resourceId: u32;2551 } & Struct;2552 readonly isPrioritySet: boolean;2553 readonly asPrioritySet: {2554 readonly collectionId: u32;2555 readonly nftId: u32;2556 } & Struct;2557 readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'IssuerChanged' | 'CollectionLocked' | 'NftMinted' | 'NftBurned' | 'NftSent' | 'NftAccepted' | 'NftRejected' | 'PropertySet' | 'ResourceAdded' | 'ResourceRemoval' | 'ResourceAccepted' | 'ResourceRemovalAccepted' | 'PrioritySet';2558 }25592560 /** @name PalletRmrkEquipEvent (292) */2561 export interface PalletRmrkEquipEvent extends Enum {2562 readonly isBaseCreated: boolean;2563 readonly asBaseCreated: {2564 readonly issuer: AccountId32;2565 readonly baseId: u32;2566 } & Struct;2567 readonly isEquippablesUpdated: boolean;2568 readonly asEquippablesUpdated: {2569 readonly baseId: u32;2570 readonly slotId: u32;2571 } & Struct;2572 readonly type: 'BaseCreated' | 'EquippablesUpdated';2573 }25742575 /** @name PalletEvmEvent (293) */2576 export interface PalletEvmEvent extends Enum {2577 readonly isLog: boolean;2578 readonly asLog: EthereumLog;2579 readonly isCreated: boolean;2580 readonly asCreated: H160;2581 readonly isCreatedFailed: boolean;2582 readonly asCreatedFailed: H160;2583 readonly isExecuted: boolean;2584 readonly asExecuted: H160;2585 readonly isExecutedFailed: boolean;2586 readonly asExecutedFailed: H160;2587 readonly isBalanceDeposit: boolean;2588 readonly asBalanceDeposit: ITuple<[AccountId32, H160, U256]>;2589 readonly isBalanceWithdraw: boolean;2590 readonly asBalanceWithdraw: ITuple<[AccountId32, H160, U256]>;2591 readonly type: 'Log' | 'Created' | 'CreatedFailed' | 'Executed' | 'ExecutedFailed' | 'BalanceDeposit' | 'BalanceWithdraw';2592 }25932594 /** @name EthereumLog (294) */2595 export interface EthereumLog extends Struct {2596 readonly address: H160;2597 readonly topics: Vec<H256>;2598 readonly data: Bytes;2599 }26002601 /** @name PalletEthereumEvent (295) */2602 export interface PalletEthereumEvent extends Enum {2603 readonly isExecuted: boolean;2604 readonly asExecuted: ITuple<[H160, H160, H256, EvmCoreErrorExitReason]>;2605 readonly type: 'Executed';2606 }26072608 /** @name EvmCoreErrorExitReason (296) */2609 export interface EvmCoreErrorExitReason extends Enum {2610 readonly isSucceed: boolean;2611 readonly asSucceed: EvmCoreErrorExitSucceed;2612 readonly isError: boolean;2613 readonly asError: EvmCoreErrorExitError;2614 readonly isRevert: boolean;2615 readonly asRevert: EvmCoreErrorExitRevert;2616 readonly isFatal: boolean;2617 readonly asFatal: EvmCoreErrorExitFatal;2618 readonly type: 'Succeed' | 'Error' | 'Revert' | 'Fatal';2619 }26202621 /** @name EvmCoreErrorExitSucceed (297) */2622 export interface EvmCoreErrorExitSucceed extends Enum {2623 readonly isStopped: boolean;2624 readonly isReturned: boolean;2625 readonly isSuicided: boolean;2626 readonly type: 'Stopped' | 'Returned' | 'Suicided';2627 }26282629 /** @name EvmCoreErrorExitError (298) */2630 export interface EvmCoreErrorExitError extends Enum {2631 readonly isStackUnderflow: boolean;2632 readonly isStackOverflow: boolean;2633 readonly isInvalidJump: boolean;2634 readonly isInvalidRange: boolean;2635 readonly isDesignatedInvalid: boolean;2636 readonly isCallTooDeep: boolean;2637 readonly isCreateCollision: boolean;2638 readonly isCreateContractLimit: boolean;2639 readonly isOutOfOffset: boolean;2640 readonly isOutOfGas: boolean;2641 readonly isOutOfFund: boolean;2642 readonly isPcUnderflow: boolean;2643 readonly isCreateEmpty: boolean;2644 readonly isOther: boolean;2645 readonly asOther: Text;2646 readonly isInvalidCode: boolean;2647 readonly type: 'StackUnderflow' | 'StackOverflow' | 'InvalidJump' | 'InvalidRange' | 'DesignatedInvalid' | 'CallTooDeep' | 'CreateCollision' | 'CreateContractLimit' | 'OutOfOffset' | 'OutOfGas' | 'OutOfFund' | 'PcUnderflow' | 'CreateEmpty' | 'Other' | 'InvalidCode';2648 }26492650 /** @name EvmCoreErrorExitRevert (301) */2651 export interface EvmCoreErrorExitRevert extends Enum {2652 readonly isReverted: boolean;2653 readonly type: 'Reverted';2654 }26552656 /** @name EvmCoreErrorExitFatal (302) */2657 export interface EvmCoreErrorExitFatal extends Enum {2658 readonly isNotSupported: boolean;2659 readonly isUnhandledInterrupt: boolean;2660 readonly isCallErrorAsFatal: boolean;2661 readonly asCallErrorAsFatal: EvmCoreErrorExitError;2662 readonly isOther: boolean;2663 readonly asOther: Text;2664 readonly type: 'NotSupported' | 'UnhandledInterrupt' | 'CallErrorAsFatal' | 'Other';2665 }26662667 /** @name FrameSystemPhase (303) */2668 export interface FrameSystemPhase extends Enum {2669 readonly isApplyExtrinsic: boolean;2670 readonly asApplyExtrinsic: u32;2671 readonly isFinalization: boolean;2672 readonly isInitialization: boolean;2673 readonly type: 'ApplyExtrinsic' | 'Finalization' | 'Initialization';2674 }26752676 /** @name FrameSystemLastRuntimeUpgradeInfo (305) */2677 export interface FrameSystemLastRuntimeUpgradeInfo extends Struct {2678 readonly specVersion: Compact<u32>;2679 readonly specName: Text;2680 }26812682 /** @name FrameSystemLimitsBlockWeights (306) */2683 export interface FrameSystemLimitsBlockWeights extends Struct {2684 readonly baseBlock: u64;2685 readonly maxBlock: u64;2686 readonly perClass: FrameSupportWeightsPerDispatchClassWeightsPerClass;2687 }26882689 /** @name FrameSupportWeightsPerDispatchClassWeightsPerClass (307) */2690 export interface FrameSupportWeightsPerDispatchClassWeightsPerClass extends Struct {2691 readonly normal: FrameSystemLimitsWeightsPerClass;2692 readonly operational: FrameSystemLimitsWeightsPerClass;2693 readonly mandatory: FrameSystemLimitsWeightsPerClass;2694 }26952696 /** @name FrameSystemLimitsWeightsPerClass (308) */2697 export interface FrameSystemLimitsWeightsPerClass extends Struct {2698 readonly baseExtrinsic: u64;2699 readonly maxExtrinsic: Option<u64>;2700 readonly maxTotal: Option<u64>;2701 readonly reserved: Option<u64>;2702 }27032704 /** @name FrameSystemLimitsBlockLength (310) */2705 export interface FrameSystemLimitsBlockLength extends Struct {2706 readonly max: FrameSupportWeightsPerDispatchClassU32;2707 }27082709 /** @name FrameSupportWeightsPerDispatchClassU32 (311) */2710 export interface FrameSupportWeightsPerDispatchClassU32 extends Struct {2711 readonly normal: u32;2712 readonly operational: u32;2713 readonly mandatory: u32;2714 }27152716 /** @name FrameSupportWeightsRuntimeDbWeight (312) */2717 export interface FrameSupportWeightsRuntimeDbWeight extends Struct {2718 readonly read: u64;2719 readonly write: u64;2720 }27212722 /** @name SpVersionRuntimeVersion (313) */2723 export interface SpVersionRuntimeVersion extends Struct {2724 readonly specName: Text;2725 readonly implName: Text;2726 readonly authoringVersion: u32;2727 readonly specVersion: u32;2728 readonly implVersion: u32;2729 readonly apis: Vec<ITuple<[U8aFixed, u32]>>;2730 readonly transactionVersion: u32;2731 readonly stateVersion: u8;2732 }27332734 /** @name FrameSystemError (317) */2735 export interface FrameSystemError extends Enum {2736 readonly isInvalidSpecName: boolean;2737 readonly isSpecVersionNeedsToIncrease: boolean;2738 readonly isFailedToExtractRuntimeVersion: boolean;2739 readonly isNonDefaultComposite: boolean;2740 readonly isNonZeroRefCount: boolean;2741 readonly isCallFiltered: boolean;2742 readonly type: 'InvalidSpecName' | 'SpecVersionNeedsToIncrease' | 'FailedToExtractRuntimeVersion' | 'NonDefaultComposite' | 'NonZeroRefCount' | 'CallFiltered';2743 }27442745 /** @name OrmlVestingModuleError (319) */2746 export interface OrmlVestingModuleError extends Enum {2747 readonly isZeroVestingPeriod: boolean;2748 readonly isZeroVestingPeriodCount: boolean;2749 readonly isInsufficientBalanceToLock: boolean;2750 readonly isTooManyVestingSchedules: boolean;2751 readonly isAmountLow: boolean;2752 readonly isMaxVestingSchedulesExceeded: boolean;2753 readonly type: 'ZeroVestingPeriod' | 'ZeroVestingPeriodCount' | 'InsufficientBalanceToLock' | 'TooManyVestingSchedules' | 'AmountLow' | 'MaxVestingSchedulesExceeded';2754 }27552756 /** @name CumulusPalletXcmpQueueInboundChannelDetails (321) */2757 export interface CumulusPalletXcmpQueueInboundChannelDetails extends Struct {2758 readonly sender: u32;2759 readonly state: CumulusPalletXcmpQueueInboundState;2760 readonly messageMetadata: Vec<ITuple<[u32, PolkadotParachainPrimitivesXcmpMessageFormat]>>;2761 }27622763 /** @name CumulusPalletXcmpQueueInboundState (322) */2764 export interface CumulusPalletXcmpQueueInboundState extends Enum {2765 readonly isOk: boolean;2766 readonly isSuspended: boolean;2767 readonly type: 'Ok' | 'Suspended';2768 }27692770 /** @name PolkadotParachainPrimitivesXcmpMessageFormat (325) */2771 export interface PolkadotParachainPrimitivesXcmpMessageFormat extends Enum {2772 readonly isConcatenatedVersionedXcm: boolean;2773 readonly isConcatenatedEncodedBlob: boolean;2774 readonly isSignals: boolean;2775 readonly type: 'ConcatenatedVersionedXcm' | 'ConcatenatedEncodedBlob' | 'Signals';2776 }27772778 /** @name CumulusPalletXcmpQueueOutboundChannelDetails (328) */2779 export interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct {2780 readonly recipient: u32;2781 readonly state: CumulusPalletXcmpQueueOutboundState;2782 readonly signalsExist: bool;2783 readonly firstIndex: u16;2784 readonly lastIndex: u16;2785 }27862787 /** @name CumulusPalletXcmpQueueOutboundState (329) */2788 export interface CumulusPalletXcmpQueueOutboundState extends Enum {2789 readonly isOk: boolean;2790 readonly isSuspended: boolean;2791 readonly type: 'Ok' | 'Suspended';2792 }27932794 /** @name CumulusPalletXcmpQueueQueueConfigData (331) */2795 export interface CumulusPalletXcmpQueueQueueConfigData extends Struct {2796 readonly suspendThreshold: u32;2797 readonly dropThreshold: u32;2798 readonly resumeThreshold: u32;2799 readonly thresholdWeight: u64;2800 readonly weightRestrictDecay: u64;2801 readonly xcmpMaxIndividualWeight: u64;2802 }28032804 /** @name CumulusPalletXcmpQueueError (333) */2805 export interface CumulusPalletXcmpQueueError extends Enum {2806 readonly isFailedToSend: boolean;2807 readonly isBadXcmOrigin: boolean;2808 readonly isBadXcm: boolean;2809 readonly isBadOverweightIndex: boolean;2810 readonly isWeightOverLimit: boolean;2811 readonly type: 'FailedToSend' | 'BadXcmOrigin' | 'BadXcm' | 'BadOverweightIndex' | 'WeightOverLimit';2812 }28132814 /** @name PalletXcmError (334) */2815 export interface PalletXcmError extends Enum {2816 readonly isUnreachable: boolean;2817 readonly isSendFailure: boolean;2818 readonly isFiltered: boolean;2819 readonly isUnweighableMessage: boolean;2820 readonly isDestinationNotInvertible: boolean;2821 readonly isEmpty: boolean;2822 readonly isCannotReanchor: boolean;2823 readonly isTooManyAssets: boolean;2824 readonly isInvalidOrigin: boolean;2825 readonly isBadVersion: boolean;2826 readonly isBadLocation: boolean;2827 readonly isNoSubscription: boolean;2828 readonly isAlreadySubscribed: boolean;2829 readonly type: 'Unreachable' | 'SendFailure' | 'Filtered' | 'UnweighableMessage' | 'DestinationNotInvertible' | 'Empty' | 'CannotReanchor' | 'TooManyAssets' | 'InvalidOrigin' | 'BadVersion' | 'BadLocation' | 'NoSubscription' | 'AlreadySubscribed';2830 }28312832 /** @name CumulusPalletXcmError (335) */2833 export type CumulusPalletXcmError = Null;28342835 /** @name CumulusPalletDmpQueueConfigData (336) */2836 export interface CumulusPalletDmpQueueConfigData extends Struct {2837 readonly maxIndividual: u64;2838 }28392840 /** @name CumulusPalletDmpQueuePageIndexData (337) */2841 export interface CumulusPalletDmpQueuePageIndexData extends Struct {2842 readonly beginUsed: u32;2843 readonly endUsed: u32;2844 readonly overweightCount: u64;2845 }28462847 /** @name CumulusPalletDmpQueueError (340) */2848 export interface CumulusPalletDmpQueueError extends Enum {2849 readonly isUnknown: boolean;2850 readonly isOverLimit: boolean;2851 readonly type: 'Unknown' | 'OverLimit';2852 }28532854 /** @name PalletUniqueError (344) */2855 export interface PalletUniqueError extends Enum {2856 readonly isCollectionDecimalPointLimitExceeded: boolean;2857 readonly isConfirmUnsetSponsorFail: boolean;2858 readonly isEmptyArgument: boolean;2859 readonly isRepartitionCalledOnNonRefungibleCollection: boolean;2860 readonly type: 'CollectionDecimalPointLimitExceeded' | 'ConfirmUnsetSponsorFail' | 'EmptyArgument' | 'RepartitionCalledOnNonRefungibleCollection';2861 }28622863 /** @name PalletUniqueSchedulerScheduledV3 (347) */2864 export interface PalletUniqueSchedulerScheduledV3 extends Struct {2865 readonly maybeId: Option<U8aFixed>;2866 readonly priority: u8;2867 readonly call: FrameSupportScheduleMaybeHashed;2868 readonly maybePeriodic: Option<ITuple<[u32, u32]>>;2869 readonly origin: OpalRuntimeOriginCaller;2870 }28712872 /** @name OpalRuntimeOriginCaller (348) */2873 export interface OpalRuntimeOriginCaller extends Enum {2874 readonly isVoid: boolean;2875 readonly isSystem: boolean;2876 readonly asSystem: FrameSupportDispatchRawOrigin;2877 readonly isPolkadotXcm: boolean;2878 readonly asPolkadotXcm: PalletXcmOrigin;2879 readonly isCumulusXcm: boolean;2880 readonly asCumulusXcm: CumulusPalletXcmOrigin;2881 readonly isEthereum: boolean;2882 readonly asEthereum: PalletEthereumRawOrigin;2883 readonly type: 'Void' | 'System' | 'PolkadotXcm' | 'CumulusXcm' | 'Ethereum';2884 }28852886 /** @name FrameSupportDispatchRawOrigin (349) */2887 export interface FrameSupportDispatchRawOrigin extends Enum {2888 readonly isRoot: boolean;2889 readonly isSigned: boolean;2890 readonly asSigned: AccountId32;2891 readonly isNone: boolean;2892 readonly type: 'Root' | 'Signed' | 'None';2893 }28942895 /** @name PalletXcmOrigin (350) */2896 export interface PalletXcmOrigin extends Enum {2897 readonly isXcm: boolean;2898 readonly asXcm: XcmV1MultiLocation;2899 readonly isResponse: boolean;2900 readonly asResponse: XcmV1MultiLocation;2901 readonly type: 'Xcm' | 'Response';2902 }29032904 /** @name CumulusPalletXcmOrigin (351) */2905 export interface CumulusPalletXcmOrigin extends Enum {2906 readonly isRelay: boolean;2907 readonly isSiblingParachain: boolean;2908 readonly asSiblingParachain: u32;2909 readonly type: 'Relay' | 'SiblingParachain';2910 }29112912 /** @name PalletEthereumRawOrigin (352) */2913 export interface PalletEthereumRawOrigin extends Enum {2914 readonly isEthereumTransaction: boolean;2915 readonly asEthereumTransaction: H160;2916 readonly type: 'EthereumTransaction';2917 }29182919 /** @name SpCoreVoid (353) */2920 export type SpCoreVoid = Null;29212922 /** @name PalletUniqueSchedulerError (354) */2923 export interface PalletUniqueSchedulerError extends Enum {2924 readonly isFailedToSchedule: boolean;2925 readonly isNotFound: boolean;2926 readonly isTargetBlockNumberInPast: boolean;2927 readonly isRescheduleNoChange: boolean;2928 readonly type: 'FailedToSchedule' | 'NotFound' | 'TargetBlockNumberInPast' | 'RescheduleNoChange';2929 }29302931 /** @name UpDataStructsCollection (355) */2932 export interface UpDataStructsCollection extends Struct {2933 readonly owner: AccountId32;2934 readonly mode: UpDataStructsCollectionMode;2935 readonly name: Vec<u16>;2936 readonly description: Vec<u16>;2937 readonly tokenPrefix: Bytes;2938 readonly sponsorship: UpDataStructsSponsorshipState;2939 readonly limits: UpDataStructsCollectionLimits;2940 readonly permissions: UpDataStructsCollectionPermissions;2941 readonly externalCollection: bool;2942 }29432944 /** @name UpDataStructsSponsorshipState (356) */2945 export interface UpDataStructsSponsorshipState extends Enum {2946 readonly isDisabled: boolean;2947 readonly isUnconfirmed: boolean;2948 readonly asUnconfirmed: AccountId32;2949 readonly isConfirmed: boolean;2950 readonly asConfirmed: AccountId32;2951 readonly type: 'Disabled' | 'Unconfirmed' | 'Confirmed';2952 }29532954 /** @name UpDataStructsProperties (357) */2955 export interface UpDataStructsProperties extends Struct {2956 readonly map: UpDataStructsPropertiesMapBoundedVec;2957 readonly consumedSpace: u32;2958 readonly spaceLimit: u32;2959 }29602961 /** @name UpDataStructsPropertiesMapBoundedVec (358) */2962 export interface UpDataStructsPropertiesMapBoundedVec extends BTreeMap<Bytes, Bytes> {}29632964 /** @name UpDataStructsPropertiesMapPropertyPermission (363) */2965 export interface UpDataStructsPropertiesMapPropertyPermission extends BTreeMap<Bytes, UpDataStructsPropertyPermission> {}29662967 /** @name UpDataStructsCollectionStats (370) */2968 export interface UpDataStructsCollectionStats extends Struct {2969 readonly created: u32;2970 readonly destroyed: u32;2971 readonly alive: u32;2972 }29732974 /** @name UpDataStructsTokenChild (371) */2975 export interface UpDataStructsTokenChild extends Struct {2976 readonly token: u32;2977 readonly collection: u32;2978 }29792980 /** @name PhantomTypeUpDataStructs (372) */2981 export interface PhantomTypeUpDataStructs extends Vec<ITuple<[UpDataStructsTokenData, UpDataStructsRpcCollection, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftNftInfo, RmrkTraitsResourceResourceInfo, RmrkTraitsPropertyPropertyInfo, RmrkTraitsBaseBaseInfo, RmrkTraitsPartPartType, RmrkTraitsTheme, RmrkTraitsNftNftChild]>> {}29822983 /** @name UpDataStructsTokenData (374) */2984 export interface UpDataStructsTokenData extends Struct {2985 readonly properties: Vec<UpDataStructsProperty>;2986 readonly owner: Option<PalletEvmAccountBasicCrossAccountIdRepr>;2987 readonly pieces: u128;2988 }29892990 /** @name UpDataStructsRpcCollection (376) */2991 export interface UpDataStructsRpcCollection extends Struct {2992 readonly owner: AccountId32;2993 readonly mode: UpDataStructsCollectionMode;2994 readonly name: Vec<u16>;2995 readonly description: Vec<u16>;2996 readonly tokenPrefix: Bytes;2997 readonly sponsorship: UpDataStructsSponsorshipState;2998 readonly limits: UpDataStructsCollectionLimits;2999 readonly permissions: UpDataStructsCollectionPermissions;3000 readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;3001 readonly properties: Vec<UpDataStructsProperty>;3002 readonly readOnly: bool;3003 }30043005 /** @name RmrkTraitsCollectionCollectionInfo (377) */3006 export interface RmrkTraitsCollectionCollectionInfo extends Struct {3007 readonly issuer: AccountId32;3008 readonly metadata: Bytes;3009 readonly max: Option<u32>;3010 readonly symbol: Bytes;3011 readonly nftsCount: u32;3012 }30133014 /** @name RmrkTraitsNftNftInfo (378) */3015 export interface RmrkTraitsNftNftInfo extends Struct {3016 readonly owner: RmrkTraitsNftAccountIdOrCollectionNftTuple;3017 readonly royalty: Option<RmrkTraitsNftRoyaltyInfo>;3018 readonly metadata: Bytes;3019 readonly equipped: bool;3020 readonly pending: bool;3021 }30223023 /** @name RmrkTraitsNftRoyaltyInfo (380) */3024 export interface RmrkTraitsNftRoyaltyInfo extends Struct {3025 readonly recipient: AccountId32;3026 readonly amount: Permill;3027 }30283029 /** @name RmrkTraitsResourceResourceInfo (381) */3030 export interface RmrkTraitsResourceResourceInfo extends Struct {3031 readonly id: u32;3032 readonly resource: RmrkTraitsResourceResourceTypes;3033 readonly pending: bool;3034 readonly pendingRemoval: bool;3035 }30363037 /** @name RmrkTraitsPropertyPropertyInfo (382) */3038 export interface RmrkTraitsPropertyPropertyInfo extends Struct {3039 readonly key: Bytes;3040 readonly value: Bytes;3041 }30423043 /** @name RmrkTraitsBaseBaseInfo (383) */3044 export interface RmrkTraitsBaseBaseInfo extends Struct {3045 readonly issuer: AccountId32;3046 readonly baseType: Bytes;3047 readonly symbol: Bytes;3048 }30493050 /** @name RmrkTraitsNftNftChild (384) */3051 export interface RmrkTraitsNftNftChild extends Struct {3052 readonly collectionId: u32;3053 readonly nftId: u32;3054 }30553056 /** @name PalletCommonError (386) */3057 export interface PalletCommonError extends Enum {3058 readonly isCollectionNotFound: boolean;3059 readonly isMustBeTokenOwner: boolean;3060 readonly isNoPermission: boolean;3061 readonly isCantDestroyNotEmptyCollection: boolean;3062 readonly isPublicMintingNotAllowed: boolean;3063 readonly isAddressNotInAllowlist: boolean;3064 readonly isCollectionNameLimitExceeded: boolean;3065 readonly isCollectionDescriptionLimitExceeded: boolean;3066 readonly isCollectionTokenPrefixLimitExceeded: boolean;3067 readonly isTotalCollectionsLimitExceeded: boolean;3068 readonly isCollectionAdminCountExceeded: boolean;3069 readonly isCollectionLimitBoundsExceeded: boolean;3070 readonly isOwnerPermissionsCantBeReverted: boolean;3071 readonly isTransferNotAllowed: boolean;3072 readonly isAccountTokenLimitExceeded: boolean;3073 readonly isCollectionTokenLimitExceeded: boolean;3074 readonly isMetadataFlagFrozen: boolean;3075 readonly isTokenNotFound: boolean;3076 readonly isTokenValueTooLow: boolean;3077 readonly isApprovedValueTooLow: boolean;3078 readonly isCantApproveMoreThanOwned: boolean;3079 readonly isAddressIsZero: boolean;3080 readonly isUnsupportedOperation: boolean;3081 readonly isNotSufficientFounds: boolean;3082 readonly isUserIsNotAllowedToNest: boolean;3083 readonly isSourceCollectionIsNotAllowedToNest: boolean;3084 readonly isCollectionFieldSizeExceeded: boolean;3085 readonly isNoSpaceForProperty: boolean;3086 readonly isPropertyLimitReached: boolean;3087 readonly isPropertyKeyIsTooLong: boolean;3088 readonly isInvalidCharacterInPropertyKey: boolean;3089 readonly isEmptyPropertyKey: boolean;3090 readonly isCollectionIsExternal: boolean;3091 readonly isCollectionIsInternal: boolean;3092 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';3093 }30943095 /** @name PalletFungibleError (388) */3096 export interface PalletFungibleError extends Enum {3097 readonly isNotFungibleDataUsedToMintFungibleCollectionToken: boolean;3098 readonly isFungibleItemsHaveNoId: boolean;3099 readonly isFungibleItemsDontHaveData: boolean;3100 readonly isFungibleDisallowsNesting: boolean;3101 readonly isSettingPropertiesNotAllowed: boolean;3102 readonly type: 'NotFungibleDataUsedToMintFungibleCollectionToken' | 'FungibleItemsHaveNoId' | 'FungibleItemsDontHaveData' | 'FungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';3103 }31043105 /** @name PalletRefungibleItemData (389) */3106 export interface PalletRefungibleItemData extends Struct {3107 readonly constData: Bytes;3108 }31093110 /** @name PalletRefungibleError (394) */3111 export interface PalletRefungibleError extends Enum {3112 readonly isNotRefungibleDataUsedToMintFungibleCollectionToken: boolean;3113 readonly isWrongRefungiblePieces: boolean;3114 readonly isRepartitionWhileNotOwningAllPieces: boolean;3115 readonly isRefungibleDisallowsNesting: boolean;3116 readonly isSettingPropertiesNotAllowed: boolean;3117 readonly type: 'NotRefungibleDataUsedToMintFungibleCollectionToken' | 'WrongRefungiblePieces' | 'RepartitionWhileNotOwningAllPieces' | 'RefungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';3118 }31193120 /** @name PalletNonfungibleItemData (395) */3121 export interface PalletNonfungibleItemData extends Struct {3122 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;3123 }31243125 /** @name UpDataStructsPropertyScope (397) */3126 export interface UpDataStructsPropertyScope extends Enum {3127 readonly isNone: boolean;3128 readonly isRmrk: boolean;3129 readonly isEth: boolean;3130 readonly type: 'None' | 'Rmrk' | 'Eth';3131 }31323133 /** @name PalletNonfungibleError (399) */3134 export interface PalletNonfungibleError extends Enum {3135 readonly isNotNonfungibleDataUsedToMintFungibleCollectionToken: boolean;3136 readonly isNonfungibleItemsHaveNoAmount: boolean;3137 readonly isCantBurnNftWithChildren: boolean;3138 readonly type: 'NotNonfungibleDataUsedToMintFungibleCollectionToken' | 'NonfungibleItemsHaveNoAmount' | 'CantBurnNftWithChildren';3139 }31403141 /** @name PalletStructureError (400) */3142 export interface PalletStructureError extends Enum {3143 readonly isOuroborosDetected: boolean;3144 readonly isDepthLimit: boolean;3145 readonly isBreadthLimit: boolean;3146 readonly isTokenNotFound: boolean;3147 readonly type: 'OuroborosDetected' | 'DepthLimit' | 'BreadthLimit' | 'TokenNotFound';3148 }31493150 /** @name PalletRmrkCoreError (401) */3151 export interface PalletRmrkCoreError extends Enum {3152 readonly isCorruptedCollectionType: boolean;3153 readonly isRmrkPropertyKeyIsTooLong: boolean;3154 readonly isRmrkPropertyValueIsTooLong: boolean;3155 readonly isRmrkPropertyIsNotFound: boolean;3156 readonly isUnableToDecodeRmrkData: boolean;3157 readonly isCollectionNotEmpty: boolean;3158 readonly isNoAvailableCollectionId: boolean;3159 readonly isNoAvailableNftId: boolean;3160 readonly isCollectionUnknown: boolean;3161 readonly isNoPermission: boolean;3162 readonly isNonTransferable: boolean;3163 readonly isCollectionFullOrLocked: boolean;3164 readonly isResourceDoesntExist: boolean;3165 readonly isCannotSendToDescendentOrSelf: boolean;3166 readonly isCannotAcceptNonOwnedNft: boolean;3167 readonly isCannotRejectNonOwnedNft: boolean;3168 readonly isCannotRejectNonPendingNft: boolean;3169 readonly isResourceNotPending: boolean;3170 readonly isNoAvailableResourceId: boolean;3171 readonly type: 'CorruptedCollectionType' | 'RmrkPropertyKeyIsTooLong' | 'RmrkPropertyValueIsTooLong' | 'RmrkPropertyIsNotFound' | 'UnableToDecodeRmrkData' | 'CollectionNotEmpty' | 'NoAvailableCollectionId' | 'NoAvailableNftId' | 'CollectionUnknown' | 'NoPermission' | 'NonTransferable' | 'CollectionFullOrLocked' | 'ResourceDoesntExist' | 'CannotSendToDescendentOrSelf' | 'CannotAcceptNonOwnedNft' | 'CannotRejectNonOwnedNft' | 'CannotRejectNonPendingNft' | 'ResourceNotPending' | 'NoAvailableResourceId';3172 }31733174 /** @name PalletRmrkEquipError (403) */3175 export interface PalletRmrkEquipError extends Enum {3176 readonly isPermissionError: boolean;3177 readonly isNoAvailableBaseId: boolean;3178 readonly isNoAvailablePartId: boolean;3179 readonly isBaseDoesntExist: boolean;3180 readonly isNeedsDefaultThemeFirst: boolean;3181 readonly isPartDoesntExist: boolean;3182 readonly isNoEquippableOnFixedPart: boolean;3183 readonly type: 'PermissionError' | 'NoAvailableBaseId' | 'NoAvailablePartId' | 'BaseDoesntExist' | 'NeedsDefaultThemeFirst' | 'PartDoesntExist' | 'NoEquippableOnFixedPart';3184 }31853186 /** @name PalletEvmError (406) */3187 export interface PalletEvmError extends Enum {3188 readonly isBalanceLow: boolean;3189 readonly isFeeOverflow: boolean;3190 readonly isPaymentOverflow: boolean;3191 readonly isWithdrawFailed: boolean;3192 readonly isGasPriceTooLow: boolean;3193 readonly isInvalidNonce: boolean;3194 readonly type: 'BalanceLow' | 'FeeOverflow' | 'PaymentOverflow' | 'WithdrawFailed' | 'GasPriceTooLow' | 'InvalidNonce';3195 }31963197 /** @name FpRpcTransactionStatus (409) */3198 export interface FpRpcTransactionStatus extends Struct {3199 readonly transactionHash: H256;3200 readonly transactionIndex: u32;3201 readonly from: H160;3202 readonly to: Option<H160>;3203 readonly contractAddress: Option<H160>;3204 readonly logs: Vec<EthereumLog>;3205 readonly logsBloom: EthbloomBloom;3206 }32073208 /** @name EthbloomBloom (411) */3209 export interface EthbloomBloom extends U8aFixed {}32103211 /** @name EthereumReceiptReceiptV3 (413) */3212 export interface EthereumReceiptReceiptV3 extends Enum {3213 readonly isLegacy: boolean;3214 readonly asLegacy: EthereumReceiptEip658ReceiptData;3215 readonly isEip2930: boolean;3216 readonly asEip2930: EthereumReceiptEip658ReceiptData;3217 readonly isEip1559: boolean;3218 readonly asEip1559: EthereumReceiptEip658ReceiptData;3219 readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';3220 }32213222 /** @name EthereumReceiptEip658ReceiptData (414) */3223 export interface EthereumReceiptEip658ReceiptData extends Struct {3224 readonly statusCode: u8;3225 readonly usedGas: U256;3226 readonly logsBloom: EthbloomBloom;3227 readonly logs: Vec<EthereumLog>;3228 }32293230 /** @name EthereumBlock (415) */3231 export interface EthereumBlock extends Struct {3232 readonly header: EthereumHeader;3233 readonly transactions: Vec<EthereumTransactionTransactionV2>;3234 readonly ommers: Vec<EthereumHeader>;3235 }32363237 /** @name EthereumHeader (416) */3238 export interface EthereumHeader extends Struct {3239 readonly parentHash: H256;3240 readonly ommersHash: H256;3241 readonly beneficiary: H160;3242 readonly stateRoot: H256;3243 readonly transactionsRoot: H256;3244 readonly receiptsRoot: H256;3245 readonly logsBloom: EthbloomBloom;3246 readonly difficulty: U256;3247 readonly number: U256;3248 readonly gasLimit: U256;3249 readonly gasUsed: U256;3250 readonly timestamp: u64;3251 readonly extraData: Bytes;3252 readonly mixHash: H256;3253 readonly nonce: EthereumTypesHashH64;3254 }32553256 /** @name EthereumTypesHashH64 (417) */3257 export interface EthereumTypesHashH64 extends U8aFixed {}32583259 /** @name PalletEthereumError (422) */3260 export interface PalletEthereumError extends Enum {3261 readonly isInvalidSignature: boolean;3262 readonly isPreLogExists: boolean;3263 readonly type: 'InvalidSignature' | 'PreLogExists';3264 }32653266 /** @name PalletEvmCoderSubstrateError (423) */3267 export interface PalletEvmCoderSubstrateError extends Enum {3268 readonly isOutOfGas: boolean;3269 readonly isOutOfFund: boolean;3270 readonly type: 'OutOfGas' | 'OutOfFund';3271 }32723273 /** @name PalletEvmContractHelpersSponsoringModeT (424) */3274 export interface PalletEvmContractHelpersSponsoringModeT extends Enum {3275 readonly isDisabled: boolean;3276 readonly isAllowlisted: boolean;3277 readonly isGenerous: boolean;3278 readonly type: 'Disabled' | 'Allowlisted' | 'Generous';3279 }32803281 /** @name PalletEvmContractHelpersError (426) */3282 export interface PalletEvmContractHelpersError extends Enum {3283 readonly isNoPermission: boolean;3284 readonly type: 'NoPermission';3285 }32863287 /** @name PalletEvmMigrationError (427) */3288 export interface PalletEvmMigrationError extends Enum {3289 readonly isAccountNotEmpty: boolean;3290 readonly isAccountIsNotMigrating: boolean;3291 readonly type: 'AccountNotEmpty' | 'AccountIsNotMigrating';3292 }32933294 /** @name SpRuntimeMultiSignature (429) */3295 export interface SpRuntimeMultiSignature extends Enum {3296 readonly isEd25519: boolean;3297 readonly asEd25519: SpCoreEd25519Signature;3298 readonly isSr25519: boolean;3299 readonly asSr25519: SpCoreSr25519Signature;3300 readonly isEcdsa: boolean;3301 readonly asEcdsa: SpCoreEcdsaSignature;3302 readonly type: 'Ed25519' | 'Sr25519' | 'Ecdsa';3303 }33043305 /** @name SpCoreEd25519Signature (430) */3306 export interface SpCoreEd25519Signature extends U8aFixed {}33073308 /** @name SpCoreSr25519Signature (432) */3309 export interface SpCoreSr25519Signature extends U8aFixed {}33103311 /** @name SpCoreEcdsaSignature (433) */3312 export interface SpCoreEcdsaSignature extends U8aFixed {}33133314 /** @name FrameSystemExtensionsCheckSpecVersion (436) */3315 export type FrameSystemExtensionsCheckSpecVersion = Null;33163317 /** @name FrameSystemExtensionsCheckGenesis (437) */3318 export type FrameSystemExtensionsCheckGenesis = Null;33193320 /** @name FrameSystemExtensionsCheckNonce (440) */3321 export interface FrameSystemExtensionsCheckNonce extends Compact<u32> {}33223323 /** @name FrameSystemExtensionsCheckWeight (441) */3324 export type FrameSystemExtensionsCheckWeight = Null;33253326 /** @name PalletTemplateTransactionPaymentChargeTransactionPayment (442) */3327 export interface PalletTemplateTransactionPaymentChargeTransactionPayment extends Compact<u128> {}33283329 /** @name OpalRuntimeRuntime (443) */3330 export type OpalRuntimeRuntime = Null;33313332 /** @name PalletEthereumFakeTransactionFinalizer (444) */3333 export type PalletEthereumFakeTransactionFinalizer = Null;33343335} // declare moduletests/yarn.lockdiffbeforeafterboth--- a/tests/yarn.lock
+++ b/tests/yarn.lock
@@ -963,6 +963,20 @@
dependencies:
"@types/chai" "*"
+"@types/chai-like@^1.1.1":
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/@types/chai-like/-/chai-like-1.1.1.tgz#c454039b0a2f92664fb5b7b7a2a66c3358783ae7"
+ integrity sha512-s46EZsupBuVhLn66DbRee5B0SELLmL4nFXVrBiV29BxLGm9Sh7Bful623j3AfiQRu2zAP4cnlZ3ETWB3eWc4bA==
+ dependencies:
+ "@types/chai" "*"
+
+"@types/chai-things@^0.0.35":
+ version "0.0.35"
+ resolved "https://registry.yarnpkg.com/@types/chai-things/-/chai-things-0.0.35.tgz#4b5d9ec032067faa62b3bf7bb40dc0bec941945f"
+ integrity sha512-BC8FwMf9FHj87XT4dgTwbdb8dNRilGqYWGmwLPdJ54YNk6K2PlcFTt68NGHjgPDnms8zIYcOtmPePd0mPNTo/Q==
+ dependencies:
+ "@types/chai" "*"
+
"@types/chai@*", "@types/chai@^4.3.1":
version "4.3.1"
resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.1.tgz#e2c6e73e0bdeb2521d00756d099218e9f5d90a04"
@@ -1545,6 +1559,16 @@
dependencies:
check-error "^1.0.2"
+chai-like@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/chai-like/-/chai-like-1.1.1.tgz#8c558a414c34514e814d497c772547ceb7958f64"
+ integrity sha512-VKa9z/SnhXhkT1zIjtPACFWSoWsqVoaz1Vg+ecrKo5DCKVlgL30F/pEyEvXPBOVwCgLZcWUleCM/C1okaKdTTA==
+
+chai-things@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/chai-things/-/chai-things-0.2.0.tgz#c55128378f9bb399e994f00052151984ed6ebe70"
+ integrity sha512-6ns0SU21xdRCoEXVKH3HGbwnsgfVMXQ+sU5V8PI9rfxaITos8lss1vUxbF1FAcJKjfqmmmLVlr/z3sLes00w+A==
+
chai@^4.3.6:
version "4.3.6"
resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.6.tgz#ffe4ba2d9fa9d6680cc0b370adae709ec9011e9c"