difftreelog
Merge pull request #343 from UniqueNetwork/feature/CORE-302
in: master
Feature/core 302
49 files changed
.maintain/scripts/generate_abi.shdiffbeforeafterboth--- /dev/null
+++ b/.maintain/scripts/generate_abi.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+set -eu
+
+dir=$PWD
+
+tmp=$(mktemp -d)
+cd $tmp
+cp $dir/$INPUT input.sol
+solcjs --abi -p input.sol
+
+NAME=input_sol_$(basename $INPUT .sol)
+mv $NAME.abi $NAME.json
+prettier $NAME.json > $dir/$OUTPUT
.maintain/scripts/generate_api.shdiffbeforeafterboth--- a/.maintain/scripts/generate_api.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-set -eu
-
-tmp=$(mktemp)
-cargo test --package $PACKAGE -- $NAME --exact --nocapture --ignored | tee $tmp
-raw=$(mktemp --suffix .sol)
-sed -n '/=== SNIP START ===/, /=== SNIP END ===/{ /=== SNIP START ===/! { /=== SNIP END ===/! p } }' $tmp > $raw
-formatted=$(mktemp)
-prettier --use-tabs $raw > $formatted
-
-mv $formatted $OUTPUT
.maintain/scripts/generate_sol.shdiffbeforeafterboth--- /dev/null
+++ b/.maintain/scripts/generate_sol.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+set -eu
+
+tmp=$(mktemp)
+cargo test --package $PACKAGE -- $NAME --exact --nocapture --ignored | tee $tmp
+raw=$(mktemp --suffix .sol)
+sed -n '/=== SNIP START ===/, /=== SNIP END ===/{ /=== SNIP START ===/! { /=== SNIP END ===/! p } }' $tmp > $raw
+formatted=$(mktemp)
+prettier --use-tabs $raw > $formatted
+
+mv $formatted $OUTPUT
Cargo.lockdiffbeforeafterboth--- a/Cargo.lock
+++ b/Cargo.lock
@@ -4290,6 +4290,9 @@
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+dependencies = [
+ "spin",
+]
[[package]]
name = "lazycell"
@@ -5467,9 +5470,9 @@
[[package]]
name = "once_cell"
-version = "1.11.0"
+version = "1.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b10983b38c53aebdf33f542c6275b0f58a238129d00c4ae0e6fb59738d783ca"
+checksum = "7709cef83f0c1f58f666e746a08b21e0085f7440fa6a29cc194d68aac97a4225"
[[package]]
name = "opal-runtime"
@@ -5917,6 +5920,7 @@
"frame-benchmarking",
"frame-support",
"frame-system",
+ "lazy_static",
"pallet-evm",
"pallet-evm-coder-substrate",
"parity-scale-codec 3.1.2",
@@ -6083,6 +6087,7 @@
"frame-support",
"frame-system",
"log",
+ "pallet-common",
"pallet-evm",
"pallet-evm-coder-substrate",
"parity-scale-codec 3.1.2",
@@ -6090,6 +6095,7 @@
"sp-core",
"sp-runtime",
"sp-std",
+ "up-data-structs",
"up-sponsorship",
]
@@ -6814,13 +6820,18 @@
name = "pallet-unique"
version = "0.1.0"
dependencies = [
+ "ethereum",
+ "evm-coder",
"frame-benchmarking",
"frame-support",
"frame-system",
"pallet-common",
"pallet-evm",
+ "pallet-evm-coder-substrate",
+ "pallet-nonfungible",
"parity-scale-codec 3.1.2",
"scale-info",
+ "serde",
"sp-core",
"sp-io",
"sp-runtime",
@@ -12005,9 +12016,9 @@
[[package]]
name = "target-lexicon"
-version = "0.12.3"
+version = "0.12.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7fa7e55043acb85fca6b3c01485a2eeb6b69c5d21002e273c79e465f43b7ac1"
+checksum = "c02424087780c9b71cc96799eaeddff35af2bc513278cda5c99fc1f5d026d3c1"
[[package]]
name = "tempfile"
Makefilediffbeforeafterboth--- a/Makefile
+++ b/Makefile
@@ -1,33 +1,61 @@
.PHONY: _help
_help:
@echo "regenerate_solidity - generate stubs/interfaces for contracts defined in native (via evm-coder)"
- @echo "evm_stubs - recompile contract stubs"
+ @echo "evm_stubs - recompile contract stubs and ABI"
@echo "bench - run frame-benchmarking"
@echo " bench-evm-migration"
@echo " bench-unique"
+FUNGIBLE_EVM_STUBS=./pallets/fungible/src/stubs
+FUNGIBLE_EVM_ABI=./tests/src/eth/fungibleAbi.json
+
+NONFUNGIBLE_EVM_STUBS=./pallets/nonfungible/src/stubs
+NONFUNGIBLE_EVM_ABI=./tests/src/eth/nonFungibleAbi.json
+
+CONTRACT_HELPERS_STUBS=./pallets/evm-contract-helpers/src/stubs/
+CONTRACT_HELPERS_ABI=./tests/src/eth/util/contractHelpersAbi.json
+
+COLLECTION_HELPER_STUBS=./pallets/unique/src/eth/stubs/
+COLLECTION_HELPER_ABI=./tests/src/eth/collectionHelperAbi.json
+
+TESTS_API=./tests/src/eth/api/
+
.PHONY: regenerate_solidity
-regenerate_solidity:
- PACKAGE=pallet-fungible NAME=erc::gen_iface OUTPUT=./tests/src/eth/api/UniqueFungible.sol ./.maintain/scripts/generate_api.sh
- PACKAGE=pallet-nonfungible NAME=erc::gen_iface OUTPUT=./tests/src/eth/api/UniqueNFT.sol ./.maintain/scripts/generate_api.sh
- PACKAGE=pallet-evm-contract-helpers NAME=eth::contract_helpers_iface OUTPUT=./tests/src/eth/api/ContractHelpers.sol ./.maintain/scripts/generate_api.sh
+regenerate_solidity: UniqueFungible.sol UniqueNFT.sol ContractHelpers.sol CollectionHelper.sol
+
+UniqueFungible.sol:
+ PACKAGE=pallet-fungible NAME=erc::gen_iface OUTPUT=$(TESTS_API)/$@ ./.maintain/scripts/generate_sol.sh
+ PACKAGE=pallet-fungible NAME=erc::gen_impl OUTPUT=$(FUNGIBLE_EVM_STUBS)/$@ ./.maintain/scripts/generate_sol.sh
+
+UniqueNFT.sol:
+ PACKAGE=pallet-nonfungible NAME=erc::gen_iface OUTPUT=$(TESTS_API)/$@ ./.maintain/scripts/generate_sol.sh
+ PACKAGE=pallet-nonfungible NAME=erc::gen_impl OUTPUT=$(NONFUNGIBLE_EVM_STUBS)/$@ ./.maintain/scripts/generate_sol.sh
+
+ContractHelpers.sol:
+ PACKAGE=pallet-evm-contract-helpers NAME=eth::contract_helpers_iface OUTPUT=$(TESTS_API)/$@ ./.maintain/scripts/generate_sol.sh
+ PACKAGE=pallet-evm-contract-helpers NAME=eth::contract_helpers_impl OUTPUT=$(CONTRACT_HELPERS_STUBS)/$@ ./.maintain/scripts/generate_sol.sh
+
+CollectionHelper.sol:
+ PACKAGE=pallet-unique NAME=eth::collection_helper_iface OUTPUT=$(TESTS_API)/$@ ./.maintain/scripts/generate_sol.sh
+ PACKAGE=pallet-unique NAME=eth::collection_helper_impl OUTPUT=$(COLLECTION_HELPER_STUBS)/$@ ./.maintain/scripts/generate_sol.sh
+
+UniqueFungible: UniqueFungible.sol
+ INPUT=$(FUNGIBLE_EVM_STUBS)/$< OUTPUT=$(FUNGIBLE_EVM_STUBS)/UniqueFungible.raw ./.maintain/scripts/compile_stub.sh
+ INPUT=$(FUNGIBLE_EVM_STUBS)/$< OUTPUT=$(FUNGIBLE_EVM_ABI) ./.maintain/scripts/generate_abi.sh
- PACKAGE=pallet-fungible NAME=erc::gen_impl OUTPUT=./pallets/fungible/src/stubs/UniqueFungible.sol ./.maintain/scripts/generate_api.sh
- PACKAGE=pallet-nonfungible NAME=erc::gen_impl OUTPUT=./pallets/nonfungible/src/stubs/UniqueNFT.sol ./.maintain/scripts/generate_api.sh
- PACKAGE=pallet-evm-contract-helpers NAME=eth::contract_helpers_impl OUTPUT=./pallets/evm-contract-helpers/src/stubs/ContractHelpers.sol ./.maintain/scripts/generate_api.sh
+UniqueNFT: UniqueNFT.sol
+ INPUT=$(NONFUNGIBLE_EVM_STUBS)/$< OUTPUT=$(NONFUNGIBLE_EVM_STUBS)/UniqueNFT.raw ./.maintain/scripts/compile_stub.sh
+ INPUT=$(NONFUNGIBLE_EVM_STUBS)/$< OUTPUT=$(NONFUNGIBLE_EVM_ABI) ./.maintain/scripts/generate_abi.sh
-FUNGIBLE_EVM_STUBS=./pallets/fungible/src/stubs
-NONFUNGIBLE_EVM_STUBS=./pallets/nonfungible/src/stubs
-CONTRACT_HELPERS_STUBS=./pallets/evm-contract-helpers/src/stubs/
+ContractHelpers: ContractHelpers.sol
+ INPUT=$(CONTRACT_HELPERS_STUBS)/$< OUTPUT=$(CONTRACT_HELPERS_STUBS)/ContractHelpers.raw ./.maintain/scripts/compile_stub.sh
+ INPUT=$(CONTRACT_HELPERS_STUBS)/$< OUTPUT=$(CONTRACT_HELPERS_ABI) ./.maintain/scripts/generate_abi.sh
-$(FUNGIBLE_EVM_STUBS)/UniqueFungible.raw: $(FUNGIBLE_EVM_STUBS)/UniqueFungible.sol
- INPUT=$< OUTPUT=$@ ./.maintain/scripts/compile_stub.sh
-$(NONFUNGIBLE_EVM_STUBS)/UniqueNFT.raw: $(NONFUNGIBLE_EVM_STUBS)/UniqueNFT.sol
- INPUT=$< OUTPUT=$@ ./.maintain/scripts/compile_stub.sh
-$(CONTRACT_HELPERS_STUBS)/ContractHelpers.raw: $(CONTRACT_HELPERS_STUBS)/ContractHelpers.sol
- INPUT=$< OUTPUT=$@ ./.maintain/scripts/compile_stub.sh
+CollectionHelper: CollectionHelper.sol
+ INPUT=$(COLLECTION_HELPER_STUBS)/$< OUTPUT=$(COLLECTION_HELPER_STUBS)/CollectionHelper.raw ./.maintain/scripts/compile_stub.sh
+ INPUT=$(COLLECTION_HELPER_STUBS)/$< OUTPUT=$(COLLECTION_HELPER_ABI) ./.maintain/scripts/generate_abi.sh
-evm_stubs: $(FUNGIBLE_EVM_STUBS)/UniqueFungible.raw $(NONFUNGIBLE_EVM_STUBS)/UniqueNFT.raw $(CONTRACT_HELPERS_STUBS)/ContractHelpers.raw
+evm_stubs: UniqueFungible UniqueNFT ContractHelpers CollectionHelper
.PHONY: _bench
_bench:
crates/evm-coder/src/solidity.rsdiffbeforeafterboth--- a/crates/evm-coder/src/solidity.rs
+++ b/crates/evm-coder/src/solidity.rs
@@ -327,7 +327,7 @@
}
}
-#[impl_for_tuples(1, 5)]
+#[impl_for_tuples(1, 12)]
impl SolidityArguments for Tuple {
for_tuples!( where #( Tuple: SolidityArguments ),* );
pallets/common/Cargo.tomldiffbeforeafterboth--- a/pallets/common/Cargo.toml
+++ b/pallets/common/Cargo.toml
@@ -16,16 +16,18 @@
sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.21" }
sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.21" }
sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.21" }
+frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.21" }
fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.21-logs" }
up-data-structs = { default-features = false, path = '../../primitives/data-structs' }
pallet-evm-coder-substrate = { default-features = false, path = '../../pallets/evm-coder-substrate' }
evm-coder = { default-features = false, path = '../../crates/evm-coder' }
pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.21-logs" }
+
serde = { version = "1.0.130", default-features = false }
scale-info = { version = "2.0.1", default-features = false, features = [
"derive",
] }
-frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.21" }
+lazy_static = { version = "1.4.0", default-features = false, features = ["spin_no_std"] }
[features]
default = ["std"]
pallets/common/src/erc.rsdiffbeforeafterboth--- a/pallets/common/src/erc.rs
+++ b/pallets/common/src/erc.rs
@@ -14,12 +14,17 @@
// You should have received a copy of the GNU General Public License
// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
-use evm_coder::{solidity_interface, types::*, execution::Result};
+use evm_coder::{
+ solidity_interface,
+ types::*,
+ execution::{Result, Error},
+};
pub use pallet_evm::{PrecompileOutput, PrecompileResult, account::CrossAccountId};
use pallet_evm_coder_substrate::dispatch_to_evm;
use sp_core::{H160, U256};
use sp_std::vec::Vec;
-use up_data_structs::Property;
+use up_data_structs::{Property, SponsoringRateLimit};
+use alloc::format;
use crate::{Pallet, CollectionHandle, Config, CollectionProperties};
@@ -31,7 +36,7 @@
fn call(self, source: &H160, input: &[u8], value: U256) -> Option<PrecompileResult>;
}
-#[solidity_interface(name = "CollectionProperties")]
+#[solidity_interface(name = "Collection")]
impl<T: Config> CollectionHandle<T> {
fn set_collection_property(&mut self, caller: caller, key: string, value: bytes) -> Result<()> {
let caller = T::CrossAccountId::from_eth(caller);
@@ -64,4 +69,93 @@
Ok(prop.to_vec())
}
+
+ fn eth_set_sponsor(&mut self, caller: caller, sponsor: address) -> Result<void> {
+ check_is_owner(caller, self)?;
+
+ let sponsor = T::CrossAccountId::from_eth(sponsor);
+ self.set_sponsor(sponsor.as_sub().clone());
+ save(self);
+ Ok(())
+ }
+
+ fn eth_confirm_sponsorship(&mut self, caller: caller) -> Result<void> {
+ let caller = T::CrossAccountId::from_eth(caller);
+ if !self.confirm_sponsorship(caller.as_sub()) {
+ return Err(Error::Revert("Caller is not set as sponsor".into()));
+ }
+ save(self);
+ Ok(())
+ }
+
+ fn set_limit(&mut self, caller: caller, limit: string, value: string) -> Result<void> {
+ check_is_owner(caller, self)?;
+ let mut limits = self.limits.clone();
+
+ match limit.as_str() {
+ "accountTokenOwnershipLimit" => {
+ limits.account_token_ownership_limit = parse_int(value)?;
+ }
+ "sponsoredDataSize" => {
+ limits.sponsored_data_size = parse_int(value)?;
+ }
+ "sponsoredDataRateLimit" => {
+ limits.sponsored_data_rate_limit =
+ Some(SponsoringRateLimit::Blocks(parse_int(value)?.unwrap()));
+ }
+ "tokenLimit" => {
+ limits.token_limit = parse_int(value)?;
+ }
+ "sponsorTransferTimeout" => {
+ limits.sponsor_transfer_timeout = parse_int(value)?;
+ }
+ "sponsorApproveTimeout" => {
+ limits.sponsor_approve_timeout = parse_int(value)?;
+ }
+ "ownerCanTransfer" => {
+ limits.owner_can_transfer = parse_bool(value)?;
+ }
+ "ownerCanDestroy" => {
+ limits.owner_can_destroy = parse_bool(value)?;
+ }
+ "transfersEnabled" => {
+ limits.transfers_enabled = parse_bool(value)?;
+ }
+ _ => return Err(Error::Revert(format!("Unknown limit \"{}\"", limit))),
+ }
+ self.limits = <Pallet<T>>::clamp_limits(self.mode.clone(), &self.limits, limits)
+ .map_err(dispatch_to_evm::<T>)?;
+ save(self);
+ Ok(())
+ }
+
+ fn contract_address(&self, _caller: caller) -> Result<address> {
+ Ok(crate::eth::collection_id_to_address(self.id))
+ }
+}
+
+fn check_is_owner<T: Config>(caller: caller, collection: &CollectionHandle<T>) -> Result<()> {
+ let caller = T::CrossAccountId::from_eth(caller);
+ collection
+ .check_is_owner(&caller)
+ .map_err(pallet_evm_coder_substrate::dispatch_to_evm::<T>)?;
+ Ok(())
+}
+
+fn save<T: Config>(collection: &CollectionHandle<T>) {
+ <crate::CollectionById<T>>::insert(collection.id, collection.collection.clone());
+}
+
+fn parse_int(value: string) -> Result<Option<u32>> {
+ value
+ .parse::<u32>()
+ .map_err(|e| Error::Revert(format!("Int value \"{}\" parse error: {}", value, e)))
+ .map(|value| Some(value))
+}
+
+fn parse_bool(value: string) -> Result<Option<bool>> {
+ value
+ .parse::<bool>()
+ .map_err(|e| Error::Revert(format!("Bool value \"{}\" parse error: {}", value, e)))
+ .map(|value| Some(value))
}
pallets/common/src/eth.rsdiffbeforeafterboth--- a/pallets/common/src/eth.rs
+++ b/pallets/common/src/eth.rs
@@ -17,6 +17,14 @@
use up_data_structs::CollectionId;
use sp_core::H160;
+lazy_static::lazy_static! {
+ pub static ref KEY_TOKEN_URI: up_data_structs::PropertyKey = {
+ let key: evm_coder::types::string = "tokenURI".into(); //TODO: make static
+ let key: up_data_structs::PropertyKey = key.into_bytes().try_into().expect("Can't create \"tokenURI\" key");
+ key
+ };
+}
+
// 0x17c4e6453Cc49AAAaEACA894e6D9683e00000001 - collection 1
// TODO: Unhardcode prefix
const ETH_COLLECTION_PREFIX: [u8; 16] = [
@@ -37,3 +45,7 @@
out[16..20].copy_from_slice(&u32::to_be_bytes(id.0));
H160(out)
}
+
+pub fn is_collection(address: &H160) -> bool {
+ address[0..16] == ETH_COLLECTION_PREFIX
+}
pallets/common/src/lib.rsdiffbeforeafterboth--- a/pallets/common/src/lib.rs
+++ b/pallets/common/src/lib.rs
@@ -114,6 +114,15 @@
recorder: SubstrateRecorder::new(gas_limit),
})
}
+
+ pub fn new_with_recorder(id: CollectionId, recorder: SubstrateRecorder<T>) -> Option<Self> {
+ <CollectionById<T>>::get(id).map(|collection| Self {
+ id,
+ collection,
+ recorder,
+ })
+ }
+
pub fn new(id: CollectionId) -> Option<Self> {
Self::new_with_gas_limit(id, u64::MAX)
}
@@ -140,6 +149,19 @@
<CollectionById<T>>::insert(self.id, self.collection);
Ok(())
}
+
+ pub fn set_sponsor(&mut self, sponsor: T::AccountId) {
+ self.collection.sponsorship = SponsorshipState::Unconfirmed(sponsor);
+ }
+
+ pub fn confirm_sponsorship(&mut self, sender: &T::AccountId) -> bool {
+ if self.collection.sponsorship.pending_sponsor() != Some(sender) {
+ return false;
+ };
+
+ self.collection.sponsorship = SponsorshipState::Confirmed(sender.clone());
+ true
+ }
}
impl<T: Config> Deref for CollectionHandle<T> {
type Target = Collection<T::AccountId>;
pallets/evm-contract-helpers/Cargo.tomldiffbeforeafterboth--- a/pallets/evm-contract-helpers/Cargo.toml
+++ b/pallets/evm-contract-helpers/Cargo.toml
@@ -8,18 +8,26 @@
scale-info = { version = "2.0.1", default-features = false, features = [
"derive",
] }
-frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.21" }
-frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.21" }
-sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.21" }
-sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.21" }
-sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.21" }
-evm-coder = { default-features = false, path = '../../crates/evm-coder' }
-pallet-evm-coder-substrate = { default-features = false, path = '../../pallets/evm-coder-substrate' }
+log = { default-features = false, version = "0.4.14" }
+
+# Substrate
+frame-support = { default-features = false, git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.21' }
+frame-system = { default-features = false, git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.21' }
+sp-runtime = { default-features = false, git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.21' }
+sp-std = { default-features = false, git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.21' }
+sp-core = { default-features = false, git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.21' }
+
+# Unique
pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.21-logs" }
fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.21-logs" }
up-sponsorship = { version = "0.1.0", default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.21" }
-log = "0.4.14"
+# Locals
+evm-coder = { default-features = false, path = '../../crates/evm-coder' }
+pallet-common = { default-features = false, path = '../../pallets/common' }
+pallet-evm-coder-substrate = { default-features = false, path = '../../pallets/evm-coder-substrate' }
+up-data-structs = { default-features = false, path = '../../primitives/data-structs', features = ['serde1'] }
+
[dependencies.codec]
default-features = false
features = ['derive']
pallets/fungible/src/erc.rsdiffbeforeafterboth--- a/pallets/fungible/src/erc.rs
+++ b/pallets/fungible/src/erc.rs
@@ -24,7 +24,7 @@
use pallet_evm::account::CrossAccountId;
use pallet_evm_coder_substrate::{call, dispatch_to_evm};
use pallet_structure::{SelfWeightOf as StructureWeight, weights::WeightInfo as _};
-use pallet_common::{CollectionHandle, erc::CollectionPropertiesCall};
+use pallet_common::{CollectionHandle, erc::CollectionCall};
use crate::{
Allowance, Balance, Config, FungibleHandle, Pallet, SelfWeightOf, TotalSupply,
@@ -150,7 +150,7 @@
is(
ERC20,
ERC20UniqueExtensions,
- via("CollectionHandle<T>", common_mut, CollectionProperties)
+ via("CollectionHandle<T>", common_mut, Collection)
)
)]
impl<T: Config> FungibleHandle<T> {}
pallets/fungible/src/lib.rsdiffbeforeafterboth--- a/pallets/fungible/src/lib.rs
+++ b/pallets/fungible/src/lib.rs
@@ -33,7 +33,7 @@
use pallet_evm_coder_substrate::WithRecorder;
use sp_core::H160;
use sp_runtime::{ArithmeticError, DispatchError, DispatchResult};
-use sp_std::collections::btree_map::BTreeMap;
+use sp_std::{collections::btree_map::BTreeMap};
pub use pallet::*;
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
@@ -127,8 +127,8 @@
}
}
-// Selector: 9b5e29c5
-contract CollectionProperties is Dummy, ERC165 {
+// Selector: f5652829
+contract Collection is Dummy, ERC165 {
// Selector: setCollectionProperty(string,bytes) 2f073f66
function setCollectionProperty(string memory key, bytes memory value)
public
@@ -159,6 +159,34 @@
dummy;
return hex"";
}
+
+ // Selector: ethSetSponsor(address) 8f9af356
+ function ethSetSponsor(address sponsor) public {
+ require(false, stub_error);
+ sponsor;
+ dummy = 0;
+ }
+
+ // Selector: ethConfirmSponsorship() a8580d1a
+ function ethConfirmSponsorship() public {
+ require(false, stub_error);
+ dummy = 0;
+ }
+
+ // Selector: setLimit(string,string) bf4d2014
+ function setLimit(string memory limit, string memory value) public {
+ require(false, stub_error);
+ limit;
+ value;
+ dummy = 0;
+ }
+
+ // Selector: contractAddress() f6b4dfb4
+ function contractAddress() public view returns (address) {
+ require(false, stub_error);
+ dummy;
+ return 0x0000000000000000000000000000000000000000;
+ }
}
contract UniqueFungible is
@@ -166,5 +194,5 @@
ERC165,
ERC20,
ERC20UniqueExtensions,
- CollectionProperties
+ Collection
{}
pallets/nonfungible/src/common.rsdiffbeforeafterboth--- a/pallets/nonfungible/src/common.rs
+++ b/pallets/nonfungible/src/common.rs
@@ -22,7 +22,7 @@
PropertyKeyPermission, PropertyValue,
};
use pallet_common::{
- CommonCollectionOperations, CommonWeightInfo, with_weight, weights::WeightInfo as _,
+ CommonCollectionOperations, CommonWeightInfo, with_weight, weights::WeightInfo as _
};
use sp_runtime::DispatchError;
use sp_std::vec::Vec;
pallets/nonfungible/src/erc.rsdiffbeforeafterboth--- a/pallets/nonfungible/src/erc.rs
+++ b/pallets/nonfungible/src/erc.rs
@@ -21,13 +21,16 @@
};
use evm_coder::{ToLog, execution::*, generate_stubgen, solidity, solidity_interface, types::*, weight};
use frame_support::BoundedVec;
-use up_data_structs::{TokenId, SchemaVersion, PropertyPermission, PropertyKeyPermission, Property};
+use up_data_structs::{
+ TokenId, SchemaVersion, PropertyPermission, PropertyKeyPermission, Property, CollectionId,
+ PropertyKey, CollectionPropertiesVec,
+};
use pallet_evm_coder_substrate::dispatch_to_evm;
use sp_core::{H160, U256};
use sp_std::vec::Vec;
use pallet_common::{
- erc::{CommonEvmHandler, PrecompileResult, CollectionPropertiesCall},
- CollectionHandle,
+ erc::{CommonEvmHandler, PrecompileResult, CollectionCall},
+ CollectionHandle, CollectionPropertyPermissions,
};
use pallet_evm::account::CrossAccountId;
use pallet_evm_coder_substrate::call;
@@ -158,12 +161,21 @@
/// Returns token's const_metadata
#[solidity(rename_selector = "tokenURI")]
fn token_uri(&self, token_id: uint256) -> Result<string> {
+ let key = pallet_common::eth::KEY_TOKEN_URI.clone();
+ if !has_token_permission::<T>(self.id, &key) {
+ return Err("No tokenURI permission".into());
+ }
+
self.consume_store_reads(1)?;
- let _token_id: u32 = token_id.try_into().map_err(|_| "token id overflow")?;
- Ok(string::from_utf8_lossy(
- todo!()
- )
- .into())
+ let token_id: u32 = token_id.try_into().map_err(|_| "token id overflow")?;
+
+ let properties = <TokenProperties<T>>::try_get((self.id, token_id))
+ .map_err(|_| Error::Revert("Token properties not found".into()))?;
+ if let Some(property) = properties.get(&key) {
+ return Ok(string::from_utf8_lossy(property).into());
+ }
+
+ Err("Property tokenURI not found".into())
}
}
@@ -350,6 +362,12 @@
token_id: uint256,
token_uri: string,
) -> Result<bool> {
+ let key = pallet_common::eth::KEY_TOKEN_URI.clone();
+ let permission = get_token_permission::<T>(self.id, &key)?;
+ if !permission.collection_admin {
+ return Err("Operation is not allowed".into());
+ }
+
let caller = T::CrossAccountId::from_eth(caller);
let to = T::CrossAccountId::from_eth(to);
let token_id: u32 = token_id.try_into().map_err(|_| "amount overflow")?;
@@ -365,13 +383,22 @@
return Err("item id should be next".into());
}
- todo!("token uri");
+ let mut properties = CollectionPropertiesVec::default();
+ properties
+ .try_push(Property {
+ key,
+ value: token_uri
+ .into_bytes()
+ .try_into()
+ .map_err(|_| "token uri is too long")?,
+ })
+ .map_err(|e| Error::Revert(alloc::format!("Can't add property: {:?}", e)))?;
<Pallet<T>>::create_item(
self,
&caller,
CreateItemData::<T> {
- properties: BoundedVec::default(),
+ properties,
owner: to,
},
&budget,
@@ -386,6 +413,30 @@
}
}
+fn get_token_permission<T: Config>(
+ collection_id: CollectionId,
+ key: &PropertyKey,
+) -> Result<PropertyPermission> {
+ let token_property_permissions = CollectionPropertyPermissions::<T>::try_get(collection_id)
+ .map_err(|_| Error::Revert("No permissions for collection".into()))?;
+ let a = token_property_permissions
+ .get(key)
+ .map(|p| p.clone())
+ .ok_or_else(|| Error::Revert("No permission".into()))?;
+ Ok(a)
+}
+
+fn has_token_permission<T: Config>(
+ collection_id: CollectionId,
+ key: &PropertyKey,
+) -> bool {
+ if let Ok(token_property_permissions) = CollectionPropertyPermissions::<T>::try_get(collection_id) {
+ return token_property_permissions.contains_key(key);
+ }
+
+ false
+}
+
#[solidity_interface(name = "ERC721UniqueExtensions")]
impl<T: Config> NonfungibleHandle<T> {
#[weight(<SelfWeightOf<T>>::transfer())]
@@ -491,7 +542,6 @@
}
expected_index = expected_index.checked_add(1).ok_or("item id overflow")?;
- todo!("token uri");
data.push(CreateItemData::<T> {
properties: BoundedVec::default(),
owner: to.clone(),
@@ -513,7 +563,7 @@
ERC721UniqueExtensions,
ERC721Mintable,
ERC721Burnable,
- via("CollectionHandle<T>", common_mut, CollectionProperties),
+ via("CollectionHandle<T>", common_mut, Collection),
TokenProperties,
)
)]
pallets/nonfungible/src/lib.rsdiffbeforeafterboth--- a/pallets/nonfungible/src/lib.rs
+++ b/pallets/nonfungible/src/lib.rs
@@ -33,9 +33,8 @@
use pallet_evm_coder_substrate::{SubstrateRecorder, WithRecorder};
use sp_core::H160;
use sp_runtime::{ArithmeticError, DispatchError, DispatchResult, TransactionOutcome};
-use sp_std::{vec::Vec, vec, collections::btree_set::BTreeSet};
+use sp_std::{vec::Vec, vec, collections::btree_map::BTreeMap, collections::btree_set::BTreeSet};
use core::ops::Deref;
-use sp_std::collections::btree_map::BTreeMap;
use codec::{Encode, Decode, MaxEncodedLen};
use scale_info::TypeInfo;
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
@@ -330,40 +330,6 @@
}
}
-// Selector: 9b5e29c5
-contract CollectionProperties is Dummy, ERC165 {
- // Selector: setCollectionProperty(string,bytes) 2f073f66
- function setCollectionProperty(string memory key, bytes memory value)
- public
- {
- require(false, stub_error);
- key;
- value;
- dummy = 0;
- }
-
- // Selector: deleteCollectionProperty(string) 7b7debce
- function deleteCollectionProperty(string memory key) public {
- require(false, stub_error);
- key;
- dummy = 0;
- }
-
- // Throws error if key not found
- //
- // Selector: collectionProperty(string) cf24fd6d
- function collectionProperty(string memory key)
- public
- view
- returns (bytes memory)
- {
- require(false, stub_error);
- key;
- dummy;
- return hex"";
- }
-}
-
// Selector: d74d154f
contract ERC721UniqueExtensions is Dummy, ERC165 {
// Selector: transfer(address,uint256) a9059cbb
@@ -414,6 +380,68 @@
}
}
+// Selector: f5652829
+contract Collection is Dummy, ERC165 {
+ // Selector: setCollectionProperty(string,bytes) 2f073f66
+ function setCollectionProperty(string memory key, bytes memory value)
+ public
+ {
+ require(false, stub_error);
+ key;
+ value;
+ dummy = 0;
+ }
+
+ // Selector: deleteCollectionProperty(string) 7b7debce
+ function deleteCollectionProperty(string memory key) public {
+ require(false, stub_error);
+ key;
+ dummy = 0;
+ }
+
+ // Throws error if key not found
+ //
+ // Selector: collectionProperty(string) cf24fd6d
+ function collectionProperty(string memory key)
+ public
+ view
+ returns (bytes memory)
+ {
+ require(false, stub_error);
+ key;
+ dummy;
+ return hex"";
+ }
+
+ // Selector: ethSetSponsor(address) 8f9af356
+ function ethSetSponsor(address sponsor) public {
+ require(false, stub_error);
+ sponsor;
+ dummy = 0;
+ }
+
+ // Selector: ethConfirmSponsorship() a8580d1a
+ function ethConfirmSponsorship() public {
+ require(false, stub_error);
+ dummy = 0;
+ }
+
+ // Selector: setLimit(string,string) bf4d2014
+ function setLimit(string memory limit, string memory value) public {
+ require(false, stub_error);
+ limit;
+ value;
+ dummy = 0;
+ }
+
+ // Selector: contractAddress() f6b4dfb4
+ function contractAddress() public view returns (address) {
+ require(false, stub_error);
+ dummy;
+ return 0x0000000000000000000000000000000000000000;
+ }
+}
+
contract UniqueNFT is
Dummy,
ERC165,
@@ -423,6 +451,6 @@
ERC721UniqueExtensions,
ERC721Mintable,
ERC721Burnable,
- CollectionProperties,
+ Collection,
TokenProperties
{}
pallets/unique/Cargo.tomldiffbeforeafterboth--- a/pallets/unique/Cargo.toml
+++ b/pallets/unique/Cargo.toml
@@ -19,6 +19,7 @@
runtime-benchmarks = ['frame-benchmarking', 'pallet-common/runtime-benchmarks']
std = [
'codec/std',
+ 'serde/std',
'frame-support/std',
'frame-system/std',
'pallet-evm/std',
@@ -27,10 +28,25 @@
'sp-std/std',
'sp-runtime/std',
'frame-benchmarking/std',
+ 'evm-coder/std',
+ 'pallet-evm-coder-substrate/std',
+ 'pallet-nonfungible/std',
]
limit-testing = ["up-data-structs/limit-testing"]
################################################################################
+# Standart Dependencies
+
+[dependencies.serde]
+default-features = false
+features = ['derive']
+version = '1.0.130'
+
+[dependencies.ethereum]
+version = "0.12.0"
+default-features = false
+
+################################################################################
# Substrate Dependencies
[dependencies.codec]
@@ -74,7 +90,6 @@
default-features = false
git = "https://github.com/paritytech/substrate"
branch = "polkadot-v0.9.21"
-
################################################################################
# Local Dependencies
@@ -85,3 +100,6 @@
] }
pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.21-logs" }
pallet-common = { default-features = false, path = "../common" }
+evm-coder = { default-features = false, path = '../../crates/evm-coder' }
+pallet-evm-coder-substrate = { default-features = false, path = '../../pallets/evm-coder-substrate' }
+pallet-nonfungible = { default-features = false, path = '../../pallets/nonfungible' }
pallets/unique/src/eth/mod.rsdiffbeforeafterboth--- /dev/null
+++ b/pallets/unique/src/eth/mod.rs
@@ -0,0 +1,171 @@
+// 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/>.
+
+use core::marker::PhantomData;
+use evm_coder::{execution::*, generate_stubgen, solidity_interface, types::*, ToLog};
+use ethereum as _;
+use pallet_evm_coder_substrate::{SubstrateRecorder, WithRecorder};
+use pallet_evm::{OnMethodCall, PrecompileResult, account::CrossAccountId, Pallet as PalletEvm};
+use up_data_structs::{
+ CreateCollectionData, MAX_COLLECTION_DESCRIPTION_LENGTH, MAX_TOKEN_PREFIX_LENGTH,
+ MAX_COLLECTION_NAME_LENGTH,
+};
+use frame_support::traits::Get;
+use sp_core::H160;
+use pallet_common::CollectionById;
+
+use sp_std::vec::Vec;
+use alloc::format;
+
+pub trait Config:
+ frame_system::Config
+ + pallet_evm_coder_substrate::Config
+ + pallet_evm::account::Config
+ + pallet_nonfungible::Config
+{
+ type ContractAddress: Get<H160>;
+}
+
+struct EvmCollectionHelper<T: Config>(SubstrateRecorder<T>);
+impl<T: Config> WithRecorder<T> for EvmCollectionHelper<T> {
+ fn recorder(&self) -> &SubstrateRecorder<T> {
+ &self.0
+ }
+
+ fn into_recorder(self) -> SubstrateRecorder<T> {
+ self.0
+ }
+}
+
+#[solidity_interface(name = "CollectionHelper")]
+impl<T: Config> EvmCollectionHelper<T> {
+ fn create_721_collection(
+ &self,
+ caller: caller,
+ name: string,
+ description: string,
+ token_prefix: string,
+ ) -> Result<address> {
+ let caller = T::CrossAccountId::from_eth(caller);
+ let name = name
+ .encode_utf16()
+ .collect::<Vec<u16>>()
+ .try_into()
+ .map_err(|_| error_feild_too_long(stringify!(name), MAX_COLLECTION_NAME_LENGTH))?;
+ let description = description
+ .encode_utf16()
+ .collect::<Vec<u16>>()
+ .try_into()
+ .map_err(|_| {
+ error_feild_too_long(stringify!(description), MAX_COLLECTION_DESCRIPTION_LENGTH)
+ })?;
+ let token_prefix = token_prefix
+ .into_bytes()
+ .try_into()
+ .map_err(|_| error_feild_too_long(stringify!(token_prefix), MAX_TOKEN_PREFIX_LENGTH))?;
+
+ let key = pallet_common::eth::KEY_TOKEN_URI.clone();
+ let permission = up_data_structs::PropertyPermission {
+ mutable: true,
+ collection_admin: true,
+ token_owner: false,
+ };
+ let mut token_property_permissions =
+ up_data_structs::CollectionPropertiesPermissionsVec::default();
+ token_property_permissions
+ .try_push(up_data_structs::PropertyKeyPermission { key, permission })
+ .map_err(|e| Error::Revert(format!("{:?}", e)))?;
+
+ let data = CreateCollectionData {
+ name,
+ description,
+ token_prefix,
+ token_property_permissions,
+ ..Default::default()
+ };
+
+ let collection_id =
+ <pallet_nonfungible::Pallet<T>>::init_collection(caller.as_sub().clone(), data)
+ .map_err(pallet_evm_coder_substrate::dispatch_to_evm::<T>)?;
+
+ let address = pallet_common::eth::collection_id_to_address(collection_id);
+ <PalletEvm<T>>::deposit_log(
+ EthCollectionEvent::CollectionCreated {
+ owner: *caller.as_eth(),
+ collection_id: address,
+ }
+ .to_log(address),
+ );
+ Ok(address)
+ }
+
+ fn is_collection_exist(&self, _caller: caller, collection_address: address) -> Result<bool> {
+ if let Some(id) = pallet_common::eth::map_eth_to_id(&collection_address) {
+ let collection_id = id;
+ return Ok(<CollectionById<T>>::contains_key(collection_id));
+ }
+
+ Ok(false)
+ }
+}
+
+#[derive(ToLog)]
+pub enum EthCollectionEvent {
+ CollectionCreated {
+ #[indexed]
+ owner: address,
+ #[indexed]
+ collection_id: address,
+ },
+}
+
+pub struct CollectionHelperOnMethodCall<T: Config>(PhantomData<*const T>);
+impl<T: Config> OnMethodCall<T> for CollectionHelperOnMethodCall<T> {
+ fn is_reserved(contract: &sp_core::H160) -> bool {
+ contract == &T::ContractAddress::get()
+ }
+
+ fn is_used(contract: &sp_core::H160) -> bool {
+ contract == &T::ContractAddress::get()
+ }
+
+ fn call(
+ source: &sp_core::H160,
+ target: &sp_core::H160,
+ gas_left: u64,
+ input: &[u8],
+ value: sp_core::U256,
+ ) -> Option<PrecompileResult> {
+ if target != &T::ContractAddress::get() {
+ return None;
+ }
+
+ let helpers = EvmCollectionHelper::<T>(SubstrateRecorder::<T>::new(gas_left));
+ pallet_evm_coder_substrate::call(*source, helpers, value, input)
+ }
+
+ fn get_code(contract: &sp_core::H160) -> Option<Vec<u8>> {
+ (contract == &T::ContractAddress::get())
+ .then(|| include_bytes!("./stubs/CollectionHelper.raw").to_vec())
+ }
+}
+
+generate_stubgen!(collection_helper_impl, CollectionHelperCall<()>, true);
+generate_stubgen!(collection_helper_iface, CollectionHelperCall<()>, false);
+
+fn error_feild_too_long(feild: &str, bound: u32) -> Error {
+ Error::Revert(format!("{} is too long. Max length is {}.", feild, bound))
+}
pallets/unique/src/eth/stubs/CollectionHelper.rawdiffbeforeafterbothbinary blob — no preview
pallets/unique/src/eth/stubs/CollectionHelper.soldiffbeforeafterboth--- /dev/null
+++ b/pallets/unique/src/eth/stubs/CollectionHelper.sol
@@ -0,0 +1,51 @@
+// SPDX-License-Identifier: OTHER
+// This code is automatically generated
+
+pragma solidity >=0.8.0 <0.9.0;
+
+// Common stubs holder
+contract Dummy {
+ uint8 dummy;
+ string stub_error = "this contract is implemented in native";
+}
+
+contract ERC165 is Dummy {
+ function supportsInterface(bytes4 interfaceID)
+ external
+ view
+ returns (bool)
+ {
+ require(false, stub_error);
+ interfaceID;
+ return true;
+ }
+}
+
+// Selector: 56c215c5
+contract CollectionHelper is Dummy, ERC165 {
+ // Selector: create721Collection(string,string,string) 951c0151
+ function create721Collection(
+ string memory name,
+ string memory description,
+ string memory tokenPrefix
+ ) public view returns (address) {
+ require(false, stub_error);
+ name;
+ description;
+ tokenPrefix;
+ dummy;
+ return 0x0000000000000000000000000000000000000000;
+ }
+
+ // Selector: isCollectionExist(address) c3de1494
+ function isCollectionExist(address collectionAddress)
+ public
+ view
+ returns (bool)
+ {
+ require(false, stub_error);
+ collectionAddress;
+ dummy;
+ return false;
+ }
+}
pallets/unique/src/lib.rsdiffbeforeafterboth--- a/pallets/unique/src/lib.rs
+++ b/pallets/unique/src/lib.rs
@@ -22,6 +22,8 @@
clippy::unused_unit
)]
+extern crate alloc;
+
use frame_support::{
decl_module, decl_storage, decl_error, decl_event,
dispatch::DispatchResult,
@@ -46,6 +48,7 @@
CollectionHandle, Pallet as PalletCommon, CommonWeightInfo, dispatch::dispatch_call,
dispatch::CollectionDispatch,
};
+pub mod eth;
#[cfg(feature = "runtime-benchmarks")]
mod benchmarking;
@@ -520,7 +523,7 @@
let mut target_collection = <CollectionHandle<T>>::try_get(collection_id)?;
target_collection.check_is_owner(&sender)?;
- target_collection.sponsorship = SponsorshipState::Unconfirmed(new_sponsor.clone());
+ target_collection.set_sponsor(new_sponsor.clone());
<Pallet<T>>::deposit_event(Event::<T>::CollectionSponsorSet(
collection_id,
@@ -544,11 +547,9 @@
let mut target_collection = <CollectionHandle<T>>::try_get(collection_id)?;
ensure!(
- target_collection.sponsorship.pending_sponsor() == Some(&sender),
+ target_collection.confirm_sponsorship(&sender),
Error::<T>::ConfirmUnsetSponsorFail
);
-
- target_collection.sponsorship = SponsorshipState::Confirmed(sender.clone());
<Pallet<T>>::deposit_event(Event::<T>::SponsorshipConfirmed(
collection_id,
primitives/data-structs/Cargo.tomldiffbeforeafterboth--- a/primitives/data-structs/Cargo.toml
+++ b/primitives/data-structs/Cargo.toml
@@ -40,6 +40,6 @@
"sp-std/std",
"pallet-evm/std",
]
-serde1 = ["serde"]
+serde1 = ["serde/alloc"]
limit-testing = []
runtime-benchmarks = []
\ No newline at end of file
primitives/data-structs/src/lib.rsdiffbeforeafterboth--- a/primitives/data-structs/src/lib.rs
+++ b/primitives/data-structs/src/lib.rs
@@ -506,6 +506,7 @@
}
#[derive(Encode, Decode, Debug, Clone, PartialEq, TypeInfo, MaxEncodedLen)]
+#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
pub enum MetaUpdatePermission {
ItemOwner,
Admin,
@@ -760,6 +761,10 @@
self.0.get(key)
}
+ pub fn contains_key(&self, key: &PropertyKey) -> bool {
+ self.0.contains_key(key)
+ }
+
fn check_property_key(key: &PropertyKey) -> Result<(), PropertiesError> {
if key.is_empty() {
return Err(PropertiesError::EmptyPropertyKey);
runtime/opal/src/lib.rsdiffbeforeafterboth--- a/runtime/opal/src/lib.rs
+++ b/runtime/opal/src/lib.rs
@@ -50,6 +50,7 @@
pub use pallet_balances::Call as BalancesCall;
pub use pallet_evm::{
EnsureAddressTruncated, HashedAddressMapping, Runner, account::CrossAccountId as _,
+ OnMethodCall, Account as EVMAccount, FeeCalculator, GasWeightMapping,
};
pub use frame_support::{
construct_runtime, match_types,
@@ -79,7 +80,6 @@
};
use smallvec::smallvec;
use codec::{Encode, Decode};
-use pallet_evm::{Account as EVMAccount, FeeCalculator, GasWeightMapping};
use fp_rpc::TransactionStatus;
use sp_runtime::{
traits::{BlockNumberProvider, Dispatchable, PostDispatchInfoOf, Saturating},
@@ -306,6 +306,7 @@
pallet_evm_migration::OnMethodCall<Self>,
pallet_evm_contract_helpers::HelpersOnMethodCall<Self>,
CollectionDispatchT<Self>,
+ pallet_unique::eth::CollectionHelperOnMethodCall<Self>,
);
type OnCreate = pallet_evm_contract_helpers::HelpersOnCreate<Self>;
type ChainId = ChainId;
@@ -974,6 +975,11 @@
pub const HelpersContractAddress: H160 = H160([
0x84, 0x28, 0x99, 0xec, 0xf3, 0x80, 0x55, 0x3e, 0x8a, 0x4d, 0xe7, 0x5b, 0xf5, 0x34, 0xcd, 0xf6, 0xfb, 0xf6, 0x40, 0x49,
]);
+
+ // 0x6c4e9fe1ae37a41e93cee429e8e1881abdcbb54f
+ pub const EvmCollectionHelperAddress: H160 = H160([
+ 0x6c, 0x4e, 0x9f, 0xe1, 0xae, 0x37, 0xa4, 0x1e, 0x93, 0xce, 0xe4, 0x29, 0xe8, 0xe1, 0x88, 0x1a, 0xbd, 0xcb, 0xb5, 0x4f,
+ ]);
}
impl pallet_evm_contract_helpers::Config for Runtime {
@@ -981,6 +987,10 @@
type DefaultSponsoringRateLimit = DefaultSponsoringRateLimit;
}
+impl pallet_unique::eth::Config for Runtime {
+ type ContractAddress = EvmCollectionHelperAddress;
+}
+
construct_runtime!(
pub enum Runtime where
Block = Block,
runtime/quartz/src/lib.rsdiffbeforeafterboth--- a/runtime/quartz/src/lib.rs
+++ b/runtime/quartz/src/lib.rs
@@ -66,7 +66,6 @@
WeightToFeePolynomial, WeightToFeeCoefficient, WeightToFeeCoefficients, ConstantMultiplier,
},
};
-use unique_runtime_common::dispatch::{CollectionDispatchT, CollectionDispatch};
use up_data_structs::*;
// use pallet_contracts::weights::WeightInfo;
// #[cfg(any(feature = "std", test))]
@@ -116,7 +115,15 @@
//use xcm_executor::traits::MatchesFungible;
use sp_runtime::traits::CheckedConversion;
-use unique_runtime_common::{impl_common_runtime_apis, types::*, constants::*};
+use unique_runtime_common::{
+ impl_common_runtime_apis,
+ types::*,
+ constants::*,
+ dispatch::{CollectionDispatchT, CollectionDispatch},
+ sponsoring::UniqueSponsorshipHandler,
+ eth_sponsoring::UniqueEthSponsorshipHandler,
+ weights::CommonWeights,
+};
pub const RUNTIME_NAME: &str = "quartz";
pub const TOKEN_SYMBOL: &str = "QTZ";
@@ -278,6 +285,7 @@
pallet_evm_migration::OnMethodCall<Self>,
pallet_evm_contract_helpers::HelpersOnMethodCall<Self>,
CollectionDispatchT<Self>,
+ pallet_unique::eth::CollectionHelperOnMethodCall<Self>,
);
type OnCreate = pallet_evm_contract_helpers::HelpersOnCreate<Self>;
type ChainId = ChainId;
@@ -891,6 +899,7 @@
impl pallet_unique::Config for Runtime {
type Event = Event;
type WeightInfo = pallet_unique::weights::SubstrateWeight<Self>;
+ type CommonWeightInfo = CommonWeights<Self>;
}
parameter_types! {
@@ -912,11 +921,11 @@
// }
type EvmSponsorshipHandler = (
- pallet_unique::UniqueEthSponsorshipHandler<Runtime>,
+ UniqueEthSponsorshipHandler<Runtime>,
pallet_evm_contract_helpers::HelpersContractSponsoring<Runtime>,
);
type SponsorshipHandler = (
- pallet_unique::UniqueSponsorshipHandler<Runtime>,
+ UniqueSponsorshipHandler<Runtime>,
//pallet_contract_helpers::ContractSponsorshipHandler<Runtime>,
pallet_evm_transaction_payment::BridgeSponsorshipHandler<Runtime>,
);
@@ -951,6 +960,11 @@
pub const HelpersContractAddress: H160 = H160([
0x84, 0x28, 0x99, 0xec, 0xf3, 0x80, 0x55, 0x3e, 0x8a, 0x4d, 0xe7, 0x5b, 0xf5, 0x34, 0xcd, 0xf6, 0xfb, 0xf6, 0x40, 0x49,
]);
+
+ // 0x6c4e9fe1ae37a41e93cee429e8e1881abdcbb54f
+ pub const EvmCollectionHelperAddress: H160 = H160([
+ 0x6c, 0x4e, 0x9f, 0xe1, 0xae, 0x37, 0xa4, 0x1e, 0x93, 0xce, 0xe4, 0x29, 0xe8, 0xe1, 0x88, 0x1a, 0xbd, 0xcb, 0xb5, 0x4f,
+ ]);
}
impl pallet_evm_contract_helpers::Config for Runtime {
@@ -958,6 +972,10 @@
type DefaultSponsoringRateLimit = DefaultSponsoringRateLimit;
}
+impl pallet_unique::eth::Config for Runtime {
+ type ContractAddress = EvmCollectionHelperAddress;
+}
+
construct_runtime!(
pub enum Runtime where
Block = Block,
runtime/unique/src/lib.rsdiffbeforeafterboth--- a/runtime/unique/src/lib.rs
+++ b/runtime/unique/src/lib.rs
@@ -49,7 +49,8 @@
// A few exports that help ease life for downstream crates.
pub use pallet_balances::Call as BalancesCall;
pub use pallet_evm::{
- EnsureAddressTruncated, HashedAddressMapping, Runner, account::CrossAccountId as _,
+ EnsureAddressTruncated, HashedAddressMapping, Runner, account::CrossAccountId as _, OnMethodCall,
+ Account as EVMAccount, FeeCalculator, GasWeightMapping,
};
pub use frame_support::{
construct_runtime, match_types,
@@ -84,7 +85,6 @@
};
use smallvec::smallvec;
use codec::{Encode, Decode};
-use pallet_evm::{Account as EVMAccount, FeeCalculator, GasWeightMapping};
use fp_rpc::TransactionStatus;
use sp_runtime::{
traits::{BlockNumberProvider, Dispatchable, PostDispatchInfoOf, Saturating},
@@ -120,7 +120,15 @@
//use xcm_executor::traits::MatchesFungible;
use sp_runtime::traits::CheckedConversion;
-use unique_runtime_common::{impl_common_runtime_apis, types::*, constants::*};
+use unique_runtime_common::{
+ impl_common_runtime_apis,
+ types::*,
+ constants::*,
+ dispatch::{CollectionDispatchT, CollectionDispatch},
+ sponsoring::UniqueSponsorshipHandler,
+ eth_sponsoring::UniqueEthSponsorshipHandler,
+ weights::CommonWeights,
+};
pub const RUNTIME_NAME: &str = "unique";
pub const TOKEN_SYMBOL: &str = "UNQ";
@@ -282,6 +290,7 @@
pallet_evm_migration::OnMethodCall<Self>,
pallet_evm_contract_helpers::HelpersOnMethodCall<Self>,
CollectionDispatchT<Self>,
+ pallet_unique::eth::CollectionHelperOnMethodCall<Self>,
);
type OnCreate = pallet_evm_contract_helpers::HelpersOnCreate<Self>;
type ChainId = ChainId;
@@ -956,6 +965,11 @@
pub const HelpersContractAddress: H160 = H160([
0x84, 0x28, 0x99, 0xec, 0xf3, 0x80, 0x55, 0x3e, 0x8a, 0x4d, 0xe7, 0x5b, 0xf5, 0x34, 0xcd, 0xf6, 0xfb, 0xf6, 0x40, 0x49,
]);
+
+ // 0x6c4e9fe1ae37a41e93cee429e8e1881abdcbb54f
+ pub const EvmCollectionHelperAddress: H160 = H160([
+ 0x6c, 0x4e, 0x9f, 0xe1, 0xae, 0x37, 0xa4, 0x1e, 0x93, 0xce, 0xe4, 0x29, 0xe8, 0xe1, 0x88, 0x1a, 0xbd, 0xcb, 0xb5, 0x4f,
+ ]);
}
impl pallet_evm_contract_helpers::Config for Runtime {
@@ -963,6 +977,10 @@
type DefaultSponsoringRateLimit = DefaultSponsoringRateLimit;
}
+impl pallet_unique::eth::Config for Runtime {
+ type ContractAddress = EvmCollectionHelperAddress;
+}
+
construct_runtime!(
pub enum Runtime where
Block = Block,
tests/package.jsondiffbeforeafterboth--- a/tests/package.json
+++ b/tests/package.json
@@ -73,6 +73,7 @@
"testBlockProduction": "mocha --timeout 9999999 -r ts-node/register ./**/block-production.test.ts",
"testEnableDisableTransfers": "mocha --timeout 9999999 -r ts-node/register ./**/enableDisableTransfer.test.ts",
"testLimits": "mocha --timeout 9999999 -r ts-node/register ./**/limits.test.ts",
+ "testEthCreateCollection": "mocha --timeout 9999999 -r ts-node/register ./**/eth/createCollection.test.ts",
"polkadot-types-fetch-metadata": "curl -H 'Content-Type: application/json' -d '{\"id\":\"1\", \"jsonrpc\":\"2.0\", \"method\": \"state_getMetadata\", \"params\":[]}' http://localhost:9933 > src/interfaces/metadata.json",
"polkadot-types-from-defs": "ts-node ./node_modules/.bin/polkadot-types-from-defs --endpoint src/interfaces/metadata.json --input src/interfaces/ --package .",
"polkadot-types-from-chain": "ts-node ./node_modules/.bin/polkadot-types-from-chain --endpoint src/interfaces/metadata.json --output src/interfaces/ --package .",
@@ -88,7 +89,7 @@
"bignumber.js": "^9.0.2",
"chai-as-promised": "^7.1.1",
"find-process": "^1.4.7",
- "solc": "^0.8.13",
+ "solc": "0.8.13",
"web3": "^1.7.3"
},
"standard": {
tests/src/eth/api/CollectionHelper.soldiffbeforeafterboth--- /dev/null
+++ b/tests/src/eth/api/CollectionHelper.sol
@@ -0,0 +1,29 @@
+// SPDX-License-Identifier: OTHER
+// This code is automatically generated
+
+pragma solidity >=0.8.0 <0.9.0;
+
+// Common stubs holder
+interface Dummy {
+
+}
+
+interface ERC165 is Dummy {
+ function supportsInterface(bytes4 interfaceID) external view returns (bool);
+}
+
+// Selector: 56c215c5
+interface CollectionHelper is Dummy, ERC165 {
+ // Selector: create721Collection(string,string,string) 951c0151
+ function create721Collection(
+ string memory name,
+ string memory description,
+ string memory tokenPrefix
+ ) external view returns (address);
+
+ // Selector: isCollectionExist(address) c3de1494
+ function isCollectionExist(address collectionAddress)
+ external
+ view
+ returns (bool);
+}
tests/src/eth/api/UniqueFungible.soldiffbeforeafterboth--- a/tests/src/eth/api/UniqueFungible.sol
+++ b/tests/src/eth/api/UniqueFungible.sol
@@ -65,8 +65,8 @@
returns (uint256);
}
-// Selector: 9b5e29c5
-interface CollectionProperties is Dummy, ERC165 {
+// Selector: f5652829
+interface Collection is Dummy, ERC165 {
// Selector: setCollectionProperty(string,bytes) 2f073f66
function setCollectionProperty(string memory key, bytes memory value)
external;
@@ -81,6 +81,18 @@
external
view
returns (bytes memory);
+
+ // Selector: ethSetSponsor(address) 8f9af356
+ function ethSetSponsor(address sponsor) external;
+
+ // Selector: ethConfirmSponsorship() a8580d1a
+ function ethConfirmSponsorship() external;
+
+ // Selector: setLimit(string,string) bf4d2014
+ function setLimit(string memory limit, string memory value) external;
+
+ // Selector: contractAddress() f6b4dfb4
+ function contractAddress() external view returns (address);
}
interface UniqueFungible is
@@ -88,5 +100,5 @@
ERC165,
ERC20,
ERC20UniqueExtensions,
- CollectionProperties
+ Collection
{}
tests/src/eth/api/UniqueNFT.soldiffbeforeafterboth--- a/tests/src/eth/api/UniqueNFT.sol
+++ b/tests/src/eth/api/UniqueNFT.sol
@@ -191,24 +191,6 @@
function totalSupply() external view returns (uint256);
}
-// Selector: 9b5e29c5
-interface CollectionProperties is Dummy, ERC165 {
- // Selector: setCollectionProperty(string,bytes) 2f073f66
- function setCollectionProperty(string memory key, bytes memory value)
- external;
-
- // Selector: deleteCollectionProperty(string) 7b7debce
- function deleteCollectionProperty(string memory key) external;
-
- // Throws error if key not found
- //
- // Selector: collectionProperty(string) cf24fd6d
- function collectionProperty(string memory key)
- external
- view
- returns (bytes memory);
-}
-
// Selector: d74d154f
interface ERC721UniqueExtensions is Dummy, ERC165 {
// Selector: transfer(address,uint256) a9059cbb
@@ -231,6 +213,36 @@
returns (bool);
}
+// Selector: f5652829
+interface Collection is Dummy, ERC165 {
+ // Selector: setCollectionProperty(string,bytes) 2f073f66
+ function setCollectionProperty(string memory key, bytes memory value)
+ external;
+
+ // Selector: deleteCollectionProperty(string) 7b7debce
+ function deleteCollectionProperty(string memory key) external;
+
+ // Throws error if key not found
+ //
+ // Selector: collectionProperty(string) cf24fd6d
+ function collectionProperty(string memory key)
+ external
+ view
+ returns (bytes memory);
+
+ // Selector: ethSetSponsor(address) 8f9af356
+ function ethSetSponsor(address sponsor) external;
+
+ // Selector: ethConfirmSponsorship() a8580d1a
+ function ethConfirmSponsorship() external;
+
+ // Selector: setLimit(string,string) bf4d2014
+ function setLimit(string memory limit, string memory value) external;
+
+ // Selector: contractAddress() f6b4dfb4
+ function contractAddress() external view returns (address);
+}
+
interface UniqueNFT is
Dummy,
ERC165,
@@ -240,6 +252,6 @@
ERC721UniqueExtensions,
ERC721Mintable,
ERC721Burnable,
- CollectionProperties,
+ Collection,
TokenProperties
{}
tests/src/eth/base.test.tsdiffbeforeafterboth--- a/tests/src/eth/base.test.ts
+++ b/tests/src/eth/base.test.ts
@@ -14,7 +14,17 @@
// 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 {collectionIdToAddress, createEthAccount, createEthAccountWithBalance, deployFlipper, ethBalanceViaSub, GAS_ARGS, itWeb3, recordEthFee, usingWeb3} from './util/helpers';
+import {
+ collectionIdToAddress,
+ createEthAccount,
+ createEthAccountWithBalance,
+ deployFlipper,
+ ethBalanceViaSub,
+ GAS_ARGS,
+ itWeb3,
+ recordEthFee,
+ usingWeb3,
+} from './util/helpers';
import {expect} from 'chai';
import {createCollectionExpectSuccess, createItemExpectSuccess, UNIQUE} from '../util/helpers';
import nonFungibleAbi from './nonFungibleAbi.json';
tests/src/eth/collectionHelperAbi.jsondiffbeforeafterboth--- /dev/null
+++ b/tests/src/eth/collectionHelperAbi.json
@@ -0,0 +1,35 @@
+[
+ {
+ "inputs": [
+ { "internalType": "string", "name": "name", "type": "string" },
+ { "internalType": "string", "name": "description", "type": "string" },
+ { "internalType": "string", "name": "tokenPrefix", "type": "string" }
+ ],
+ "name": "create721Collection",
+ "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "collectionAddress",
+ "type": "address"
+ }
+ ],
+ "name": "isCollectionExist",
+ "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "bytes4", "name": "interfaceID", "type": "bytes4" }
+ ],
+ "name": "supportsInterface",
+ "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
+ "stateMutability": "view",
+ "type": "function"
+ }
+]
tests/src/eth/contractSponsoring.test.tsdiffbeforeafterboth--- a/tests/src/eth/contractSponsoring.test.ts
+++ b/tests/src/eth/contractSponsoring.test.ts
@@ -29,19 +29,19 @@
normalizeEvents,
subToEth,
executeEthTxOnSub,
+ evmCollectionHelper,
+ getCollectionAddressFromResult,
+ evmCollection,
} from './util/helpers';
import {
addCollectionAdminExpectSuccess,
createCollectionExpectSuccess,
- getCreateCollectionResult,
+ getDetailedCollectionInfo,
transferBalanceTo,
} from '../util/helpers';
import nonFungibleAbi from './nonFungibleAbi.json';
-import {
- submitTransactionAsync,
-} from '../substrate/substrate-api';
import getBalance from '../substrate/get-balance';
-import {alicesPublicKey} from '../accounts';
+import {evmToAddress} from '@polkadot/util-crypto';
describe('Sponsoring EVM contracts', () => {
itWeb3('Sponsoring can be set by the address that has deployed the contract', async ({api, web3}) => {
@@ -221,89 +221,87 @@
expect(await helpers.methods.getSponsoringRateLimit(flipper.options.address).call()).to.be.equals('7200');
});
- itWeb3('Sponsoring evm address from substrate collection', async ({api, web3}) => {
- const owner = privateKey('//Alice');
- const userEth = createEthAccount(web3);
- const collectionId = await createCollectionExpectSuccess();
+ //TODO: CORE-302 add eth methods
+ itWeb3.skip('Sponsoring evm address from substrate collection', async ({api, web3}) => {
+ const owner = await createEthAccountWithBalance(api, web3);
+ const collectionHelper = evmCollectionHelper(web3, owner);
+ let result = await collectionHelper.methods.create721Collection('Sponsor collection', '1', '1').send();
+ const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
+ const sponsor = await createEthAccountWithBalance(api, web3);
+ const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
+ result = await collectionEvm.methods.ethSetSponsor(sponsor).send();
+ let collectionSub = (await getDetailedCollectionInfo(api, collectionId))!;
+ expect(collectionSub.sponsorship.isUnconfirmed).to.be.true;
+ expect(collectionSub.sponsorship.asUnconfirmed.toHuman()).to.be.eq(evmToAddress(sponsor));
+ await expect(collectionEvm.methods.ethConfirmSponsorship().call()).to.be.rejectedWith('Caller is not set as sponsor');
- {
- const tx = api.tx.unique.setCollectionSponsor(collectionId, owner.address);
- const events = await submitTransactionAsync(owner, tx);
- const result = getCreateCollectionResult(events);
- expect(result.success).to.be.true;
- }
- {
- const tx = api.tx.unique.confirmSponsorship(collectionId);
- const events = await submitTransactionAsync(owner, tx);
- const result = getCreateCollectionResult(events);
- expect(result.success).to.be.true;
- }
+ const sponsorCollection = evmCollection(web3, sponsor, collectionIdAddress);
+ await sponsorCollection.methods.ethConfirmSponsorship().send();
+ collectionSub = (await getDetailedCollectionInfo(api, collectionId))!;
+ expect(collectionSub.sponsorship.isConfirmed).to.be.true;
+ expect(collectionSub.sponsorship.asConfirmed.toHuman()).to.be.eq(evmToAddress(sponsor));
- const address = collectionIdToAddress(collectionId);
- const contract = new web3.eth.Contract(nonFungibleAbi as any, address, {from: userEth, ...GAS_ARGS});
+ const user = createEthAccount(web3);
+ const userContract = evmCollection(web3, user, collectionIdAddress);
+ const nextTokenId = await userContract.methods.nextTokenId().call();
- { // This part should fail, because user not in access list and user have no money
- const nextTokenId = await contract.methods.nextTokenId().call();
- expect(nextTokenId).to.be.equal('1');
- await expect(contract.methods.mintWithTokenURI(
- userEth,
- nextTokenId,
- 'Test URI',
- ).call({from: userEth})).to.be.rejectedWith(/PublicMintingNotAllowed/);
- }
-
- {
- const tx = api.tx.unique.setPublicAccessMode(collectionId, 'AllowList');
- const events = await submitTransactionAsync(owner, tx);
- const result = getCreateCollectionResult(events);
- expect(result.success).to.be.true;
- }
- {
- const tx = api.tx.unique.addToAllowList(collectionId, {Ethereum: userEth});
- const events = await submitTransactionAsync(owner, tx);
- const result = getCreateCollectionResult(events);
- expect(result.success).to.be.true;
- }
- {
- const tx = api.tx.unique.setMintPermission(collectionId, true);
- const events = await submitTransactionAsync(owner, tx);
- const result = getCreateCollectionResult(events);
- expect(result.success).to.be.true;
- }
+ expect(nextTokenId).to.be.equal('1');
+ await expect(userContract.methods.mintWithTokenURI(
+ user,
+ nextTokenId,
+ 'Test URI',
+ ).call()).to.be.rejectedWith('PublicMintingNotAllowed');
+
+ // TODO: add this methods to eth
+ // {
+ // const tx = api.tx.unique.setPublicAccessMode(collectionId, 'AllowList');
+ // const events = await submitTransactionAsync(owner, tx);
+ // const result = getCreateCollectionResult(events);
+ // expect(result.success).to.be.true;
+ // }
+ // {
+ // const tx = api.tx.unique.addToAllowList(collectionId, {Ethereum: userEth});
+ // const events = await submitTransactionAsync(owner, tx);
+ // const result = getCreateCollectionResult(events);
+ // expect(result.success).to.be.true;
+ // }
+ // {
+ // const tx = api.tx.unique.setMintPermission(collectionId, true);
+ // const events = await submitTransactionAsync(owner, tx);
+ // const result = getCreateCollectionResult(events);
+ // expect(result.success).to.be.true;
+ // }
- const [alicesBalanceBefore] = await getBalance(api, [alicesPublicKey]);
+ // const [alicesBalanceBefore] = await getBalance(api, [alicesPublicKey]);
{
- const nextTokenId = await contract.methods.nextTokenId().call();
+ const nextTokenId = await userContract.methods.nextTokenId().call();
expect(nextTokenId).to.be.equal('1');
- const result = await contract.methods.mintWithTokenURI(
- userEth,
+ const result = await userContract.methods.mintWithTokenURI(
+ user,
nextTokenId,
'Test URI',
- ).send({from: userEth});
+ ).send();
const events = normalizeEvents(result.events);
expect(events).to.be.deep.equal([
{
- address,
+ collectionIdAddress,
event: 'Transfer',
args: {
from: '0x0000000000000000000000000000000000000000',
- to: userEth,
+ to: user,
tokenId: nextTokenId,
},
},
]);
- expect(await contract.methods.tokenURI(nextTokenId).call()).to.be.equal('Test URI');
+ expect(await userContract.methods.tokenURI(nextTokenId).call()).to.be.equal('Test URI');
}
-
- const [alicesBalanceAfter] = await getBalance(api, [alicesPublicKey]);
- expect(alicesBalanceAfter < alicesBalanceBefore).to.be.true;
});
-
- itWeb3('Check that transaction via EVM spend money from substrate address', async ({api, web3}) => {
+ //TODO: CORE-302 add eth methods
+ itWeb3.skip('Check that transaction via EVM spend money from substrate address', async ({api, web3}) => {
const owner = privateKey('//Alice');
const user = privateKey(`//User/${Date.now()}`);
const userEth = subToEth(user.address);
tests/src/eth/createCollection.test.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/eth/createCollection.test.ts
@@ -0,0 +1,236 @@
+// 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 {evmToAddress} from '@polkadot/util-crypto';
+import {expect} from 'chai';
+import {getCreatedCollectionCount, getDetailedCollectionInfo} from '../util/helpers';
+import {
+ evmCollectionHelper,
+ collectionIdToAddress,
+ createEthAccount,
+ createEthAccountWithBalance,
+ evmCollection,
+ itWeb3,
+ getCollectionAddressFromResult,
+} from './util/helpers';
+
+describe('Create collection from EVM', () => {
+ itWeb3('Create collection', async ({api, web3}) => {
+ const owner = await createEthAccountWithBalance(api, web3);
+ const helper = evmCollectionHelper(web3, owner);
+ const collectionName = 'CollectionEVM';
+ const description = 'Some description';
+ const tokenPrefix = 'token prefix';
+
+ const collectionCountBefore = await getCreatedCollectionCount(api);
+ const result = await helper.methods
+ .create721Collection(collectionName, description, tokenPrefix)
+ .send();
+ const collectionCountAfter = await getCreatedCollectionCount(api);
+
+ const {collectionId, collection} = await getCollectionAddressFromResult(api, result);
+ expect(collectionCountAfter - collectionCountBefore).to.be.eq(1);
+ expect(collectionId).to.be.eq(collectionCountAfter);
+ expect(collection.name.map(v => String.fromCharCode(v.toNumber())).join('')).to.be.eq(collectionName);
+ expect(collection.description.map(v => String.fromCharCode(v.toNumber())).join('')).to.be.eq(description);
+ expect(collection.tokenPrefix.toHuman()).to.be.eq(tokenPrefix);
+ expect(collection.schemaVersion.type).to.be.eq('ImageURL');
+ });
+
+ itWeb3('Check collection address exist', async ({api, web3}) => {
+ const owner = await createEthAccountWithBalance(api, web3);
+ const collectionHelper = evmCollectionHelper(web3, owner);
+
+ const expectedCollectionId = await getCreatedCollectionCount(api) + 1;
+ const expectedCollectionAddress = collectionIdToAddress(expectedCollectionId);
+ expect(await collectionHelper.methods
+ .isCollectionExist(expectedCollectionAddress)
+ .call()).to.be.false;
+
+ await collectionHelper.methods
+ .create721Collection('A', 'A', 'A')
+ .send();
+
+ expect(await collectionHelper.methods
+ .isCollectionExist(expectedCollectionAddress)
+ .call()).to.be.true;
+ });
+
+ itWeb3('Set sponsorship', async ({api, web3}) => {
+ const owner = await createEthAccountWithBalance(api, web3);
+ const collectionHelper = evmCollectionHelper(web3, owner);
+ let result = await collectionHelper.methods.create721Collection('Sponsor collection', '1', '1').send();
+ const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
+ const sponsor = await createEthAccountWithBalance(api, web3);
+ const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
+ result = await collectionEvm.methods.ethSetSponsor(sponsor).send();
+ let collectionSub = (await getDetailedCollectionInfo(api, collectionId))!;
+ expect(collectionSub.sponsorship.isUnconfirmed).to.be.true;
+ expect(collectionSub.sponsorship.asUnconfirmed.toHuman()).to.be.eq(evmToAddress(sponsor));
+ await expect(collectionEvm.methods.ethConfirmSponsorship().call()).to.be.rejectedWith('Caller is not set as sponsor');
+ const sponsorCollection = evmCollection(web3, sponsor, collectionIdAddress);
+ await sponsorCollection.methods.ethConfirmSponsorship().send();
+ collectionSub = (await getDetailedCollectionInfo(api, collectionId))!;
+ expect(collectionSub.sponsorship.isConfirmed).to.be.true;
+ expect(collectionSub.sponsorship.asConfirmed.toHuman()).to.be.eq(evmToAddress(sponsor));
+ });
+
+ itWeb3('Set limits', async ({api, web3}) => {
+ const owner = await createEthAccountWithBalance(api, web3);
+ const collectionHelper = evmCollectionHelper(web3, owner);
+ const result = await collectionHelper.methods.create721Collection('Const collection', '5', '5').send();
+ const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
+ const limits = {
+ accountTokenOwnershipLimit: 1000,
+ sponsoredDataSize: 1024,
+ sponsoredDataRateLimit: 30,
+ tokenLimit: 1000000,
+ sponsorTransferTimeout: 6,
+ sponsorApproveTimeout: 6,
+ ownerCanTransfer: false,
+ ownerCanDestroy: false,
+ transfersEnabled: false,
+ };
+
+ const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
+ await collectionEvm.methods.setLimit('accountTokenOwnershipLimit', limits.accountTokenOwnershipLimit.toString()).send();
+ await collectionEvm.methods.setLimit('sponsoredDataSize', limits.sponsoredDataSize.toString()).send();
+ await collectionEvm.methods.setLimit('sponsoredDataRateLimit', limits.sponsoredDataRateLimit.toString()).send();
+ await collectionEvm.methods.setLimit('tokenLimit', limits.tokenLimit.toString()).send();
+ await collectionEvm.methods.setLimit('sponsorTransferTimeout', limits.sponsorTransferTimeout.toString()).send();
+ await collectionEvm.methods.setLimit('sponsorApproveTimeout', limits.sponsorApproveTimeout.toString()).send();
+ await collectionEvm.methods.setLimit('ownerCanTransfer', limits.ownerCanTransfer.toString()).send();
+ await collectionEvm.methods.setLimit('ownerCanDestroy', limits.ownerCanDestroy.toString()).send();
+ await collectionEvm.methods.setLimit('transfersEnabled', limits.transfersEnabled.toString()).send();
+
+ const collectionSub = (await getDetailedCollectionInfo(api, collectionId))!;
+ expect(collectionSub.limits.accountTokenOwnershipLimit.unwrap().toNumber()).to.be.eq(limits.accountTokenOwnershipLimit);
+ expect(collectionSub.limits.sponsoredDataSize.unwrap().toNumber()).to.be.eq(limits.sponsoredDataSize);
+ expect(collectionSub.limits.sponsoredDataRateLimit.unwrap().asBlocks.toNumber()).to.be.eq(limits.sponsoredDataRateLimit);
+ expect(collectionSub.limits.tokenLimit.unwrap().toNumber()).to.be.eq(limits.tokenLimit);
+ expect(collectionSub.limits.sponsorTransferTimeout.unwrap().toNumber()).to.be.eq(limits.sponsorTransferTimeout);
+ expect(collectionSub.limits.sponsorApproveTimeout.unwrap().toNumber()).to.be.eq(limits.sponsorApproveTimeout);
+ expect(collectionSub.limits.ownerCanTransfer.toHuman()).to.be.eq(limits.ownerCanTransfer);
+ expect(collectionSub.limits.ownerCanDestroy.toHuman()).to.be.eq(limits.ownerCanDestroy);
+ expect(collectionSub.limits.transfersEnabled.toHuman()).to.be.eq(limits.transfersEnabled);
+ });
+
+ itWeb3('Collection address exist', async ({api, web3}) => {
+ const owner = await createEthAccountWithBalance(api, web3);
+ const collectionAddressForNonexistentCollection = '0x17C4E6453CC49AAAAEACA894E6D9683E00112233';
+ const collectionHelper = evmCollectionHelper(web3, owner);
+ expect(await collectionHelper.methods
+ .isCollectionExist(collectionAddressForNonexistentCollection).call())
+ .to.be.false;
+
+ const result = await collectionHelper.methods.create721Collection('Collection address exist', '7', '7').send();
+ const {collectionIdAddress} = await getCollectionAddressFromResult(api, result);
+ expect(await collectionHelper.methods
+ .isCollectionExist(collectionIdAddress).call())
+ .to.be.true;
+ });
+});
+
+describe('(!negative tests!) Create collection from EVM', () => {
+ itWeb3('(!negative test!) Create collection (bad lengths)', async ({api, web3}) => {
+ const owner = await createEthAccountWithBalance(api, web3);
+ const helper = evmCollectionHelper(web3, owner);
+ {
+ const MAX_NAME_LENGHT = 64;
+ const collectionName = 'A'.repeat(MAX_NAME_LENGHT + 1);
+ const description = 'A';
+ const tokenPrefix = 'A';
+
+ await expect(helper.methods
+ .create721Collection(collectionName, description, tokenPrefix)
+ .call()).to.be.rejectedWith('name is too long. Max length is ' + MAX_NAME_LENGHT);
+
+ }
+ {
+ const MAX_DESCRIPTION_LENGHT = 256;
+ const collectionName = 'A';
+ const description = 'A'.repeat(MAX_DESCRIPTION_LENGHT + 1);
+ const tokenPrefix = 'A';
+ await expect(helper.methods
+ .create721Collection(collectionName, description, tokenPrefix)
+ .call()).to.be.rejectedWith('description is too long. Max length is ' + MAX_DESCRIPTION_LENGHT);
+ }
+ {
+ const MAX_TOKEN_PREFIX_LENGHT = 16;
+ const collectionName = 'A';
+ const description = 'A';
+ const tokenPrefix = 'A'.repeat(MAX_TOKEN_PREFIX_LENGHT + 1);
+ await expect(helper.methods
+ .create721Collection(collectionName, description, tokenPrefix)
+ .call()).to.be.rejectedWith('token_prefix is too long. Max length is ' + MAX_TOKEN_PREFIX_LENGHT);
+ }
+ });
+
+ itWeb3('(!negative test!) Create collection (no funds)', async ({web3}) => {
+ const owner = await createEthAccount(web3);
+ const helper = evmCollectionHelper(web3, owner);
+ const collectionName = 'A';
+ const description = 'A';
+ const tokenPrefix = 'A';
+
+ await expect(helper.methods
+ .create721Collection(collectionName, description, tokenPrefix)
+ .call()).to.be.rejectedWith('NotSufficientFounds');
+ });
+
+ itWeb3('(!negative test!) Check owner', async ({api, web3}) => {
+ const owner = await createEthAccountWithBalance(api, web3);
+ const notOwner = await createEthAccount(web3);
+ const collectionHelper = evmCollectionHelper(web3, owner);
+ const result = await collectionHelper.methods.create721Collection('A', 'A', 'A').send();
+ const {collectionIdAddress} = await getCollectionAddressFromResult(api, result);
+ const contractEvmFromNotOwner = evmCollection(web3, notOwner, collectionIdAddress);
+ const EXPECTED_ERROR = 'NoPermission';
+ {
+ const sponsor = await createEthAccountWithBalance(api, web3);
+ await expect(contractEvmFromNotOwner.methods
+ .ethSetSponsor(sponsor)
+ .call()).to.be.rejectedWith(EXPECTED_ERROR);
+
+ const sponsorCollection = evmCollection(web3, sponsor, collectionIdAddress);
+ await expect(sponsorCollection.methods
+ .ethConfirmSponsorship()
+ .call()).to.be.rejectedWith('Caller is not set as sponsor');
+ }
+ {
+ await expect(contractEvmFromNotOwner.methods
+ .setLimit('account_token_ownership_limit', '1000')
+ .call()).to.be.rejectedWith(EXPECTED_ERROR);
+ }
+ });
+
+ itWeb3('(!negative test!) Set limits', async ({api, web3}) => {
+ const owner = await createEthAccountWithBalance(api, web3);
+ const collectionHelper = evmCollectionHelper(web3, owner);
+ const result = await collectionHelper.methods.create721Collection('Schema collection', 'A', 'A').send();
+ const {collectionIdAddress} = await getCollectionAddressFromResult(api, result);
+ const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
+ await expect(collectionEvm.methods
+ .setLimit('badLimit', 'true')
+ .call()).to.be.rejectedWith('Unknown limit "badLimit"');
+ await expect(collectionEvm.methods
+ .setLimit('sponsoredDataSize', 'badValue')
+ .call()).to.be.rejectedWith('Int value "badValue" parse error:');
+ await expect(collectionEvm.methods
+ .setLimit('ownerCanTransfer', 'badValue')
+ .call()).to.be.rejectedWith('Bool value "badValue" parse error:');
+ });
+});
\ No newline at end of file
tests/src/eth/fungibleAbi.jsondiffbeforeafterboth--- a/tests/src/eth/fungibleAbi.json
+++ b/tests/src/eth/fungibleAbi.json
@@ -1,175 +1,206 @@
[
- {
- "constant": false,
- "inputs": [
- {
- "name": "_spender",
- "type": "address"
- },
- {
- "name": "_value",
- "type": "uint256"
- }
- ],
- "name": "approve",
- "outputs": [
- {
- "name": "",
- "type": "bool"
- }
- ],
- "payable": false,
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "constant": true,
- "inputs": [],
- "name": "totalSupply",
- "outputs": [
- {
- "name": "",
- "type": "uint256"
- }
- ],
- "payable": false,
- "stateMutability": "view",
- "type": "function"
- },
- {
- "constant": false,
- "inputs": [
- {
- "name": "_from",
- "type": "address"
- },
- {
- "name": "_to",
- "type": "address"
- },
- {
- "name": "_value",
- "type": "uint256"
- }
- ],
- "name": "transferFrom",
- "outputs": [
- {
- "name": "",
- "type": "bool"
- }
- ],
- "payable": false,
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "constant": true,
- "inputs": [
- {
- "name": "_owner",
- "type": "address"
- }
- ],
- "name": "balanceOf",
- "outputs": [
- {
- "name": "balance",
- "type": "uint256"
- }
- ],
- "payable": false,
- "stateMutability": "view",
- "type": "function"
- },
- {
- "constant": false,
- "inputs": [
- {
- "name": "_to",
- "type": "address"
- },
- {
- "name": "_value",
- "type": "uint256"
- }
- ],
- "name": "transfer",
- "outputs": [
- {
- "name": "",
- "type": "bool"
- }
- ],
- "payable": false,
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "constant": true,
- "inputs": [
- {
- "name": "_owner",
- "type": "address"
- },
- {
- "name": "_spender",
- "type": "address"
- }
- ],
- "name": "allowance",
- "outputs": [
- {
- "name": "",
- "type": "uint256"
- }
- ],
- "payable": false,
- "stateMutability": "view",
- "type": "function"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "name": "owner",
- "type": "address"
- },
- {
- "indexed": true,
- "name": "spender",
- "type": "address"
- },
- {
- "indexed": false,
- "name": "value",
- "type": "uint256"
- }
- ],
- "name": "Approval",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "name": "from",
- "type": "address"
- },
- {
- "indexed": true,
- "name": "to",
- "type": "address"
- },
- {
- "indexed": false,
- "name": "value",
- "type": "uint256"
- }
- ],
- "name": "Transfer",
- "type": "event"
- }
-]
\ No newline at end of file
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "owner", "type": "address" },
+ { "internalType": "address", "name": "spender", "type": "address" }
+ ],
+ "name": "allowance",
+ "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "spender", "type": "address" },
+ { "internalType": "uint256", "name": "amount", "type": "uint256" }
+ ],
+ "name": "approve",
+ "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "owner", "type": "address" }
+ ],
+ "name": "balanceOf",
+ "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "from", "type": "address" },
+ { "internalType": "uint256", "name": "amount", "type": "uint256" }
+ ],
+ "name": "burnFrom",
+ "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{ "internalType": "string", "name": "key", "type": "string" }],
+ "name": "collectionProperty",
+ "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractAddress",
+ "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [{ "internalType": "uint8", "name": "", "type": "uint8" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{ "internalType": "string", "name": "key", "type": "string" }],
+ "name": "deleteCollectionProperty",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "ethConfirmSponsorship",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "sponsor", "type": "address" }
+ ],
+ "name": "ethSetSponsor",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [{ "internalType": "string", "name": "", "type": "string" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "string", "name": "key", "type": "string" },
+ { "internalType": "bytes", "name": "value", "type": "bytes" }
+ ],
+ "name": "setCollectionProperty",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "string", "name": "limit", "type": "string" },
+ { "internalType": "string", "name": "value", "type": "string" }
+ ],
+ "name": "setLimit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "bytes4", "name": "interfaceID", "type": "bytes4" }
+ ],
+ "name": "supportsInterface",
+ "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [{ "internalType": "string", "name": "", "type": "string" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "to", "type": "address" },
+ { "internalType": "uint256", "name": "amount", "type": "uint256" }
+ ],
+ "name": "transfer",
+ "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "from", "type": "address" },
+ { "internalType": "address", "name": "to", "type": "address" },
+ { "internalType": "uint256", "name": "amount", "type": "uint256" }
+ ],
+ "name": "transferFrom",
+ "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+]
tests/src/eth/fungibleMetadataAbi.jsondiffbeforeafterboth--- a/tests/src/eth/fungibleMetadataAbi.json
+++ /dev/null
@@ -1,41 +0,0 @@
-[
- {
- "inputs": [],
- "name": "name",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "symbol",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "decimals",
- "outputs": [
- {
- "internalType": "uint8",
- "name": "",
- "type": "uint8"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- }
-]
\ No newline at end of file
tests/src/eth/metadata.test.tsdiffbeforeafterboth--- a/tests/src/eth/metadata.test.ts
+++ /dev/null
@@ -1,210 +0,0 @@
-// 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 {expect} from 'chai';
-import {createCollectionExpectSuccess} from '../util/helpers';
-import {collectionIdToAddress, createEthAccount, createEthAccountWithBalance, GAS_ARGS, itWeb3, normalizeEvents} from './util/helpers';
-import fungibleMetadataAbi from './fungibleMetadataAbi.json';
-import privateKey from '../substrate/privateKey';
-import {submitTransactionAsync} from '../substrate/substrate-api';
-import nonFungibleAbi from './nonFungibleAbi.json';
-
-describe('Common metadata', () => {
- itWeb3('Returns collection name', async ({api, web3}) => {
- const collection = await createCollectionExpectSuccess({
- name: 'token name',
- mode: {type: 'NFT'},
- });
- const caller = await createEthAccountWithBalance(api, web3);
-
- const address = collectionIdToAddress(collection);
- const contract = new web3.eth.Contract(fungibleMetadataAbi as any, address, {from: caller, ...GAS_ARGS});
- const name = await contract.methods.name().call();
-
- expect(name).to.equal('token name');
- });
-
- itWeb3('Returns symbol name', async ({api, web3}) => {
- const collection = await createCollectionExpectSuccess({
- tokenPrefix: 'TOK',
- mode: {type: 'NFT'},
- });
- const caller = await createEthAccountWithBalance(api, web3);
-
- const address = collectionIdToAddress(collection);
- const contract = new web3.eth.Contract(fungibleMetadataAbi as any, address, {from: caller, ...GAS_ARGS});
- const symbol = await contract.methods.symbol().call();
-
- expect(symbol).to.equal('TOK');
- });
-});
-
-describe('Fungible metadata', () => {
- itWeb3('Returns fungible decimals', async ({api, web3}) => {
- const collection = await createCollectionExpectSuccess({
- mode: {type: 'Fungible', decimalPoints: 6},
- });
- const caller = await createEthAccountWithBalance(api, web3);
-
- const address = collectionIdToAddress(collection);
- const contract = new web3.eth.Contract(fungibleMetadataAbi as any, address, {from: caller, ...GAS_ARGS});
- const decimals = await contract.methods.decimals().call();
-
- expect(+decimals).to.equal(6);
- });
-});
-
-describe('Support ERC721Metadata', () => {
- itWeb3('Check unsupport ERC721Metadata SchemaVersion::Unique', async ({web3, api}) => {
- const collectionId = await createCollectionExpectSuccess({
- mode: {type: 'NFT'},
- schemaVersion: 'Unique',
- name: 'some_name',
- tokenPrefix: 'some_prefix',
- });
- const collection = await api.rpc.unique.collectionById(collectionId);
- expect(collection.isSome).to.be.true;
- expect(collection.unwrap().schemaVersion.toHuman()).to.be.eq('Unique');
-
- const alice = privateKey('//Alice');
-
- const caller = await createEthAccountWithBalance(api, web3);
- const changeAdminTx = api.tx.unique.addCollectionAdmin(collectionId, {Ethereum: caller});
- await submitTransactionAsync(alice, changeAdminTx);
-
- const address = collectionIdToAddress(collectionId);
- const contract = new web3.eth.Contract(nonFungibleAbi as any, address, {from: caller, ...GAS_ARGS});
-
- expect(await contract.methods.name().call()).to.be.eq('some_name');
- expect(await contract.methods.symbol().call()).to.be.eq('some_prefix');
-
- const receiver = createEthAccount(web3);
- const nextTokenId = await contract.methods.nextTokenId().call();
- expect(nextTokenId).to.be.equal('1');
- await expect(contract.methods.mintWithTokenURI(
- receiver,
- nextTokenId,
- 'Test URI',
- ).call({from: caller})).to.be.rejectedWith('Unsupported schema version! Support only ImageURL');
-
- await expect(contract.methods.mintBulkWithTokenURI(
- receiver,
- [
- [nextTokenId, 'Test URI 0'],
- [+nextTokenId + 1, 'Test URI 1'],
- [+nextTokenId + 2, 'Test URI 2'],
- ],
- ).call({from: caller})).to.be.rejectedWith('Unsupported schema version! Support only ImageURL');
- });
-
- itWeb3('Check support ERC721Metadata for SchemaVersion::ImageURL', async ({web3, api}) => {
- const collectionId = await createCollectionExpectSuccess({
- mode: {type: 'NFT'},
- name: 'some_name',
- tokenPrefix: 'some_prefix',
- });
- const collection = await api.rpc.unique.collectionById(collectionId);
- expect(collection.isSome).to.be.true;
- expect(collection.unwrap().schemaVersion.toHuman()).to.be.eq('ImageURL');
-
- const alice = privateKey('//Alice');
-
- const caller = await createEthAccountWithBalance(api, web3);
- const changeAdminTx = api.tx.unique.addCollectionAdmin(collectionId, {Ethereum: caller});
- await submitTransactionAsync(alice, changeAdminTx);
-
- const address = collectionIdToAddress(collectionId);
- const contract = new web3.eth.Contract(nonFungibleAbi as any, address, {from: caller, ...GAS_ARGS});
-
- expect(await contract.methods.name().call()).to.be.eq('some_name');
- expect(await contract.methods.symbol().call()).to.be.eq('some_prefix');
-
- const receiver = createEthAccount(web3);
- { // mintWithTokenURI
- const nextTokenId = await contract.methods.nextTokenId().call();
- expect(nextTokenId).to.be.equal('1');
- const result = await contract.methods.mintWithTokenURI(
- receiver,
- nextTokenId,
- 'Test URI',
- ).send({from: caller});
- const events = normalizeEvents(result.events);
-
- expect(events).to.be.deep.equal([
- {
- address,
- event: 'Transfer',
- args: {
- from: '0x0000000000000000000000000000000000000000',
- to: receiver,
- tokenId: nextTokenId,
- },
- },
- ]);
-
- expect(await contract.methods.tokenURI(nextTokenId).call()).to.be.equal('Test URI');
- }
-
- { // mintBulkWithTokenURI
- const nextTokenId = await contract.methods.nextTokenId().call();
- expect(nextTokenId).to.be.equal('2');
- const result = await contract.methods.mintBulkWithTokenURI(
- receiver,
- [
- [nextTokenId, 'Test URI 0'],
- [+nextTokenId + 1, 'Test URI 1'],
- [+nextTokenId + 2, 'Test URI 2'],
- ],
- ).send({from: caller});
- const events = normalizeEvents(result.events);
-
- expect(events).to.be.deep.equal([
- {
- address,
- event: 'Transfer',
- args: {
- from: '0x0000000000000000000000000000000000000000',
- to: receiver,
- tokenId: nextTokenId,
- },
- },
- {
- address,
- event: 'Transfer',
- args: {
- from: '0x0000000000000000000000000000000000000000',
- to: receiver,
- tokenId: String(+nextTokenId + 1),
- },
- },
- {
- address,
- event: 'Transfer',
- args: {
- from: '0x0000000000000000000000000000000000000000',
- to: receiver,
- tokenId: String(+nextTokenId + 2),
- },
- },
- ]);
-
- expect(await contract.methods.tokenURI(nextTokenId).call()).to.be.equal('Test URI 0');
- expect(await contract.methods.tokenURI(+nextTokenId + 1).call()).to.be.equal('Test URI 1');
- expect(await contract.methods.tokenURI(+nextTokenId + 2).call()).to.be.equal('Test URI 2');
- }
- });
-});
-
tests/src/eth/nonFungible.test.tsdiffbeforeafterboth--- a/tests/src/eth/nonFungible.test.ts
+++ b/tests/src/eth/nonFungible.test.ts
@@ -16,7 +16,7 @@
import privateKey from '../substrate/privateKey';
import {approveExpectSuccess, burnItemExpectSuccess, createCollectionExpectSuccess, createItemExpectSuccess, transferExpectSuccess, transferFromExpectSuccess, UNIQUE} from '../util/helpers';
-import {collectionIdToAddress, createEthAccount, createEthAccountWithBalance, GAS_ARGS, itWeb3, normalizeEvents, recordEthFee, recordEvents, subToEth, transferBalanceToEth} from './util/helpers';
+import {collectionIdToAddress, createEthAccount, createEthAccountWithBalance, evmCollection, evmCollectionHelper, GAS_ARGS, getCollectionAddressFromResult, itWeb3, normalizeEvents, recordEthFee, recordEvents, subToEth, transferBalanceToEth} from './util/helpers';
import nonFungibleAbi from './nonFungibleAbi.json';
import {expect} from 'chai';
import {submitTransactionAsync} from '../substrate/substrate-api';
@@ -75,45 +75,46 @@
describe('NFT: Plain calls', () => {
itWeb3('Can perform mint()', async ({web3, api}) => {
- const collection = await createCollectionExpectSuccess({
- mode: {type: 'NFT'},
- });
- const alice = privateKey('//Alice');
-
- const caller = await createEthAccountWithBalance(api, web3);
- const changeAdminTx = api.tx.unique.addCollectionAdmin(collection, {Ethereum: caller});
- await submitTransactionAsync(alice, changeAdminTx);
+ const owner = await createEthAccountWithBalance(api, web3);
+ const helper = evmCollectionHelper(web3, owner);
+ let result = await helper.methods.create721Collection('Mint collection', '6', '6').send();
+ const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
const receiver = createEthAccount(web3);
+ const contract = evmCollection(web3, owner, collectionIdAddress);
+ const nextTokenId = await contract.methods.nextTokenId().call();
- const address = collectionIdToAddress(collection);
- const contract = new web3.eth.Contract(nonFungibleAbi as any, address, {from: caller, ...GAS_ARGS});
+ expect(nextTokenId).to.be.equal('1');
+ result = await contract.methods.mintWithTokenURI(
+ receiver,
+ nextTokenId,
+ 'Test URI',
+ ).send();
- {
- const nextTokenId = await contract.methods.nextTokenId().call();
- expect(nextTokenId).to.be.equal('1');
- const result = await contract.methods.mintWithTokenURI(
- receiver,
- nextTokenId,
- 'Test URI',
- ).send({from: caller});
- const events = normalizeEvents(result.events);
+ const events = normalizeEvents(result.events);
+ const address = collectionIdToAddress(collectionId);
- expect(events).to.be.deep.equal([
- {
- address,
- event: 'Transfer',
- args: {
- from: '0x0000000000000000000000000000000000000000',
- to: receiver,
- tokenId: nextTokenId,
- },
+ expect(events).to.be.deep.equal([
+ {
+ address,
+ event: 'Transfer',
+ args: {
+ from: '0x0000000000000000000000000000000000000000',
+ to: receiver,
+ tokenId: nextTokenId,
},
- ]);
+ },
+ ]);
+
+ expect(await contract.methods.tokenURI(nextTokenId).call()).to.be.equal('Test URI');
- expect(await contract.methods.tokenURI(nextTokenId).call()).to.be.equal('Test URI');
- }
+ // TODO: this wont work right now, need release 919000 first
+ // await helper.methods.setOffchainSchema(collectionIdAddress, 'https://offchain-service.local/token-info/{id}').send();
+ // const tokenUri = await contract.methods.tokenURI(nextTokenId).call();
+ // expect(tokenUri).to.be.equal(`https://offchain-service.local/token-info/${nextTokenId}`);
});
- itWeb3('Can perform mintBulk()', async ({web3, api}) => {
+
+ //TODO: CORE-302 add eth methods
+ itWeb3.skip('Can perform mintBulk()', async ({web3, api}) => {
const collection = await createCollectionExpectSuccess({
mode: {type: 'NFT'},
});
@@ -539,3 +540,33 @@
]);
});
});
+
+describe('Common metadata', () => {
+ itWeb3('Returns collection name', async ({api, web3}) => {
+ const collection = await createCollectionExpectSuccess({
+ name: 'token name',
+ mode: {type: 'NFT'},
+ });
+ const caller = await createEthAccountWithBalance(api, web3);
+
+ const address = collectionIdToAddress(collection);
+ const contract = new web3.eth.Contract(nonFungibleAbi as any, address, {from: caller, ...GAS_ARGS});
+ const name = await contract.methods.name().call();
+
+ expect(name).to.equal('token name');
+ });
+
+ itWeb3('Returns symbol name', async ({api, web3}) => {
+ const collection = await createCollectionExpectSuccess({
+ tokenPrefix: 'TOK',
+ mode: {type: 'NFT'},
+ });
+ const caller = await createEthAccountWithBalance(api, web3);
+
+ const address = collectionIdToAddress(collection);
+ const contract = new web3.eth.Contract(nonFungibleAbi as any, address, {from: caller, ...GAS_ARGS});
+ const symbol = await contract.methods.symbol().call();
+
+ expect(symbol).to.equal('TOK');
+ });
+});
\ No newline at end of file
tests/src/eth/nonFungibleAbi.jsondiffbeforeafterboth--- a/tests/src/eth/nonFungibleAbi.json
+++ b/tests/src/eth/nonFungibleAbi.json
@@ -1,738 +1,431 @@
[
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "owner",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "approved",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "Approval",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "owner",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "operator",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "bool",
- "name": "approved",
- "type": "bool"
- }
- ],
- "name": "ApprovalForAll",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [],
- "name": "MintingFinished",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "Transfer",
- "type": "event"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "approved",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "approve",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "owner",
- "type": "address"
- }
- ],
- "name": "balanceOf",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "burn",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "burnFrom",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "string",
- "name": "key",
- "type": "string"
- }
- ],
- "name": "collectionProperty",
- "outputs": [
- {
- "internalType": "bytes",
- "name": "",
- "type": "bytes"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "string",
- "name": "key",
- "type": "string"
- }
- ],
- "name": "deleteCollectionProperty",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- },
- {
- "internalType": "string",
- "name": "key",
- "type": "string"
- }
- ],
- "name": "deleteProperty",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "finishMinting",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "getApproved",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "owner",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "operator",
- "type": "address"
- }
- ],
- "name": "isApprovedForAll",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "mint",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "internalType": "uint256[]",
- "name": "tokenIds",
- "type": "uint256[]"
- }
- ],
- "name": "mintBulk",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "components": [
- {
- "internalType": "uint256",
- "name": "field_0",
- "type": "uint256"
- },
- {
- "internalType": "string",
- "name": "field_1",
- "type": "string"
- }
- ],
- "internalType": "struct Tuple0[]",
- "name": "tokens",
- "type": "tuple[]"
- }
- ],
- "name": "mintBulkWithTokenURI",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- },
- {
- "internalType": "string",
- "name": "tokenUri",
- "type": "string"
- }
- ],
- "name": "mintWithTokenURI",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "mintingFinished",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "name",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "nextTokenId",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "ownerOf",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- },
- {
- "internalType": "string",
- "name": "key",
- "type": "string"
- }
- ],
- "name": "property",
- "outputs": [
- {
- "internalType": "bytes",
- "name": "",
- "type": "bytes"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "safeTransferFrom",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- },
- {
- "internalType": "bytes",
- "name": "data",
- "type": "bytes"
- }
- ],
- "name": "safeTransferFromWithData",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "operator",
- "type": "address"
- },
- {
- "internalType": "bool",
- "name": "approved",
- "type": "bool"
- }
- ],
- "name": "setApprovalForAll",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "string",
- "name": "key",
- "type": "string"
- },
- {
- "internalType": "bytes",
- "name": "value",
- "type": "bytes"
- }
- ],
- "name": "setCollectionProperty",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- },
- {
- "internalType": "string",
- "name": "key",
- "type": "string"
- },
- {
- "internalType": "bytes",
- "name": "value",
- "type": "bytes"
- }
- ],
- "name": "setProperty",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "string",
- "name": "key",
- "type": "string"
- },
- {
- "internalType": "bool",
- "name": "isMutable",
- "type": "bool"
- },
- {
- "internalType": "bool",
- "name": "collectionAdmin",
- "type": "bool"
- },
- {
- "internalType": "bool",
- "name": "tokenOwner",
- "type": "bool"
- }
- ],
- "name": "setTokenPropertyPermission",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bytes4",
- "name": "interfaceID",
- "type": "bytes4"
- }
- ],
- "name": "supportsInterface",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "symbol",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "index",
- "type": "uint256"
- }
- ],
- "name": "tokenByIndex",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "owner",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "index",
- "type": "uint256"
- }
- ],
- "name": "tokenOfOwnerByIndex",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "tokenURI",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "totalSupply",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "transfer",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "transferFrom",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- }
-]
\ No newline at end of file
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [],
+ "name": "MintingFinished",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "approved", "type": "address" },
+ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "owner", "type": "address" }
+ ],
+ "name": "balanceOf",
+ "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "from", "type": "address" },
+ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }
+ ],
+ "name": "burnFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [{ "internalType": "string", "name": "key", "type": "string" }],
+ "name": "collectionProperty",
+ "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractAddress",
+ "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [{ "internalType": "string", "name": "key", "type": "string" }],
+ "name": "deleteCollectionProperty",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "uint256", "name": "tokenId", "type": "uint256" },
+ { "internalType": "string", "name": "key", "type": "string" }
+ ],
+ "name": "deleteProperty",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "ethConfirmSponsorship",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "sponsor", "type": "address" }
+ ],
+ "name": "ethSetSponsor",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "finishMinting",
+ "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }
+ ],
+ "name": "getApproved",
+ "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "owner", "type": "address" },
+ { "internalType": "address", "name": "operator", "type": "address" }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "to", "type": "address" },
+ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }
+ ],
+ "name": "mint",
+ "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "to", "type": "address" },
+ { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" }
+ ],
+ "name": "mintBulk",
+ "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "to", "type": "address" },
+ {
+ "components": [
+ { "internalType": "uint256", "name": "field_0", "type": "uint256" },
+ { "internalType": "string", "name": "field_1", "type": "string" }
+ ],
+ "internalType": "struct Tuple0[]",
+ "name": "tokens",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "mintBulkWithTokenURI",
+ "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "to", "type": "address" },
+ { "internalType": "uint256", "name": "tokenId", "type": "uint256" },
+ { "internalType": "string", "name": "tokenUri", "type": "string" }
+ ],
+ "name": "mintWithTokenURI",
+ "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "mintingFinished",
+ "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [{ "internalType": "string", "name": "", "type": "string" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "nextTokenId",
+ "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }
+ ],
+ "name": "ownerOf",
+ "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "uint256", "name": "tokenId", "type": "uint256" },
+ { "internalType": "string", "name": "key", "type": "string" }
+ ],
+ "name": "property",
+ "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "from", "type": "address" },
+ { "internalType": "address", "name": "to", "type": "address" },
+ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "from", "type": "address" },
+ { "internalType": "address", "name": "to", "type": "address" },
+ { "internalType": "uint256", "name": "tokenId", "type": "uint256" },
+ { "internalType": "bytes", "name": "data", "type": "bytes" }
+ ],
+ "name": "safeTransferFromWithData",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "operator", "type": "address" },
+ { "internalType": "bool", "name": "approved", "type": "bool" }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "string", "name": "key", "type": "string" },
+ { "internalType": "bytes", "name": "value", "type": "bytes" }
+ ],
+ "name": "setCollectionProperty",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "string", "name": "limit", "type": "string" },
+ { "internalType": "string", "name": "value", "type": "string" }
+ ],
+ "name": "setLimit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "uint256", "name": "tokenId", "type": "uint256" },
+ { "internalType": "string", "name": "key", "type": "string" },
+ { "internalType": "bytes", "name": "value", "type": "bytes" }
+ ],
+ "name": "setProperty",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "string", "name": "key", "type": "string" },
+ { "internalType": "bool", "name": "isMutable", "type": "bool" },
+ { "internalType": "bool", "name": "collectionAdmin", "type": "bool" },
+ { "internalType": "bool", "name": "tokenOwner", "type": "bool" }
+ ],
+ "name": "setTokenPropertyPermission",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "bytes4", "name": "interfaceID", "type": "bytes4" }
+ ],
+ "name": "supportsInterface",
+ "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [{ "internalType": "string", "name": "", "type": "string" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "uint256", "name": "index", "type": "uint256" }
+ ],
+ "name": "tokenByIndex",
+ "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "owner", "type": "address" },
+ { "internalType": "uint256", "name": "index", "type": "uint256" }
+ ],
+ "name": "tokenOfOwnerByIndex",
+ "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }
+ ],
+ "name": "tokenURI",
+ "outputs": [{ "internalType": "string", "name": "", "type": "string" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "to", "type": "address" },
+ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }
+ ],
+ "name": "transfer",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "from", "type": "address" },
+ { "internalType": "address", "name": "to", "type": "address" },
+ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+]
tests/src/eth/proxy/nonFungibleProxy.test.tsdiffbeforeafterboth--- a/tests/src/eth/proxy/nonFungibleProxy.test.ts
+++ b/tests/src/eth/proxy/nonFungibleProxy.test.ts
@@ -88,7 +88,8 @@
});
describe('NFT (Via EVM proxy): Plain calls', () => {
- itWeb3('Can perform mint()', async ({web3, api}) => {
+ //TODO: CORE-302 add eth methods
+ itWeb3.skip('Can perform mint()', async ({web3, api}) => {
const collection = await createCollectionExpectSuccess({
mode: {type: 'NFT'},
});
@@ -127,7 +128,9 @@
expect(await contract.methods.tokenURI(nextTokenId).call()).to.be.equal('Test URI');
}
});
- itWeb3('Can perform mintBulk()', async ({web3, api}) => {
+
+ //TODO: CORE-302 add eth methods
+ itWeb3.skip('Can perform mintBulk()', async ({web3, api}) => {
const collection = await createCollectionExpectSuccess({
mode: {type: 'NFT'},
});
tests/src/eth/util/contractHelpersAbi.jsondiffbeforeafterboth--- a/tests/src/eth/util/contractHelpersAbi.json
+++ b/tests/src/eth/util/contractHelpersAbi.json
@@ -1,216 +1,161 @@
[
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "contract",
- "type": "address"
- }
- ],
- "name": "allowlistEnabled",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "target",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "caller",
- "type": "address"
- }
- ],
- "name": "allowed",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "target",
- "type": "address"
- }
- ],
- "name": "contractOwner",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "target",
- "type": "address"
- }
- ],
- "name": "sponsoringEnabled",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "target",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "user",
- "type": "address"
- },
- {
- "internalType": "bool",
- "name": "isAllowed",
- "type": "bool"
- }
- ],
- "name": "toggleAllowed",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "target",
- "type": "address"
- },
- {
- "internalType": "bool",
- "name": "enabled",
- "type": "bool"
- }
- ],
- "name": "toggleAllowlist",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "target",
- "type": "address"
- },
- {
- "internalType": "bool",
- "name": "enabled",
- "type": "bool"
- }
- ],
- "name": "toggleSponsoring",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "target",
- "type": "address"
- },
- {
- "internalType": "uint8",
- "name": "mode",
- "type": "uint8"
- }
- ],
- "name": "setSponsoringMode",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "target",
- "type": "address"
- }
- ],
- "name": "sponsoringMode",
- "outputs": [
- {
- "internalType": "uint8",
- "name": "",
- "type": "uint8"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "target",
- "type": "address"
- },
- {
- "internalType": "uint32",
- "name": "limit",
- "type": "uint32"
- }
- ],
- "name": "setSponsoringRateLimit",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "contractAddress",
- "type": "address"
- }
- ],
- "name": "getSponsoringRateLimit",
- "outputs": [
- {
- "internalType": "uint32",
- "name": "",
- "type": "uint32"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- }
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "contractAddress",
+ "type": "address"
+ },
+ { "internalType": "address", "name": "user", "type": "address" }
+ ],
+ "name": "allowed",
+ "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "contractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "allowlistEnabled",
+ "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "contractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "contractOwner",
+ "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "contractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "getSponsoringRateLimit",
+ "outputs": [{ "internalType": "uint32", "name": "", "type": "uint32" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "contractAddress",
+ "type": "address"
+ },
+ { "internalType": "uint8", "name": "mode", "type": "uint8" }
+ ],
+ "name": "setSponsoringMode",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "contractAddress",
+ "type": "address"
+ },
+ { "internalType": "uint32", "name": "rateLimit", "type": "uint32" }
+ ],
+ "name": "setSponsoringRateLimit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "contractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "sponsoringEnabled",
+ "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "contractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "sponsoringMode",
+ "outputs": [{ "internalType": "uint8", "name": "", "type": "uint8" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "bytes4", "name": "interfaceID", "type": "bytes4" }
+ ],
+ "name": "supportsInterface",
+ "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "contractAddress",
+ "type": "address"
+ },
+ { "internalType": "address", "name": "user", "type": "address" },
+ { "internalType": "bool", "name": "allowed", "type": "bool" }
+ ],
+ "name": "toggleAllowed",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "contractAddress",
+ "type": "address"
+ },
+ { "internalType": "bool", "name": "enabled", "type": "bool" }
+ ],
+ "name": "toggleAllowlist",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "contractAddress",
+ "type": "address"
+ },
+ { "internalType": "bool", "name": "enabled", "type": "bool" }
+ ],
+ "name": "toggleSponsoring",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
]
tests/src/eth/util/helpers.tsdiffbeforeafterboth--- a/tests/src/eth/util/helpers.ts
+++ b/tests/src/eth/util/helpers.ts
@@ -23,11 +23,13 @@
import usingApi, {submitTransactionAsync} from '../../substrate/substrate-api';
import {IKeyringPair} from '@polkadot/types/types';
import {expect} from 'chai';
-import {CrossAccountId, getGenericResult, UNIQUE} from '../../util/helpers';
+import {CrossAccountId, getDetailedCollectionInfo, getGenericResult, UNIQUE} from '../../util/helpers';
import * as solc from 'solc';
import config from '../../config';
import privateKey from '../../substrate/privateKey';
import contractHelpersAbi from './contractHelpersAbi.json';
+import nonFungibleAbi from '../nonFungibleAbi.json';
+import collectionHelperAbi from '../collectionHelperAbi.json';
import getBalance from '../../substrate/get-balance';
import waitNewBlocks from '../../substrate/wait-new-blocks';
@@ -66,12 +68,30 @@
];
}
+export async function getCollectionAddressFromResult(api: ApiPromise, result: any) {
+ const collectionIdAddress = normalizeAddress(result.events[0].raw.topics[2]);
+ const collectionId = collectionIdFromAddress(collectionIdAddress);
+ const collection = (await getDetailedCollectionInfo(api, collectionId))!;
+ return {collectionIdAddress, collectionId, collection};
+}
+
export function collectionIdToAddress(collection: number): string {
const buf = Buffer.from([0x17, 0xc4, 0xe6, 0x45, 0x3c, 0xc4, 0x9a, 0xaa, 0xae, 0xac, 0xa8, 0x94, 0xe6, 0xd9, 0x68, 0x3e,
...encodeIntBE(collection),
]);
return Web3.utils.toChecksumAddress('0x' + buf.toString('hex'));
}
+export function collectionIdFromAddress(address: string): number {
+ if (!address.startsWith('0x'))
+ throw 'address not starts with "0x"';
+ if (address.length > 42)
+ throw 'address length is more than 20 bytes';
+ return Number('0x' + address.substring(address.length - 8));
+}
+
+export function normalizeAddress(address: string): string {
+ return '0x' + address.substring(address.length - 40);
+}
export function tokenIdToAddress(collection: number, token: number): string {
const buf = Buffer.from([0xf8, 0x23, 0x8c, 0xcf, 0xff, 0x8e, 0xd8, 0x87, 0x46, 0x3f, 0xd5, 0xe0,
@@ -271,6 +291,26 @@
return new web3.eth.Contract(contractHelpersAbi as any, '0x842899ECF380553E8a4de75bF534cdf6fBF64049', {from: caller, ...GAS_ARGS});
}
+/**
+ * evm collection helper
+ * @param web3
+ * @param caller - eth address
+ * @returns
+ */
+export function evmCollectionHelper(web3: Web3, caller: string) {
+ return new web3.eth.Contract(collectionHelperAbi as any, '0x6c4e9fe1ae37a41e93cee429e8e1881abdcbb54f', {from: caller, ...GAS_ARGS});
+}
+
+/**
+ * evm collection
+ * @param web3
+ * @param caller - eth address
+ * @returns
+ */
+export function evmCollection(web3: Web3, caller: string, collection: string) {
+ return new web3.eth.Contract(nonFungibleAbi as any, collection, {from: caller, ...GAS_ARGS});
+}
+
/**
* Execute ethereum method call using substrate account
* @param to target contract
tests/src/interfaces/augment-types.tsdiffbeforeafterboth1// Auto-generated via `yarn polkadot-types-from-defs`, do not edit2/* eslint-disable */34import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportPalletId, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchClass, FrameSupportWeightsDispatchInfo, FrameSupportWeightsPays, FrameSupportWeightsPerDispatchClassU32, FrameSupportWeightsPerDispatchClassU64, FrameSupportWeightsPerDispatchClassWeightsPerClass, FrameSupportWeightsRuntimeDbWeight, FrameSupportWeightsWeightToFeeCoefficient, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeRuntime, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletFungibleError, PalletInflationCall, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletRmrkCoreCall, PalletRmrkCoreError, PalletRmrkCoreEvent, PalletRmrkEquipCall, PalletRmrkEquipError, PalletRmrkEquipEvent, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTimestampCall, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletXcmCall, PalletXcmError, PalletXcmEvent, PhantomTypeUpDataStructsBaseInfo, PhantomTypeUpDataStructsCollectionInfo, PhantomTypeUpDataStructsNftChild, PhantomTypeUpDataStructsNftInfo, PhantomTypeUpDataStructsPartType, PhantomTypeUpDataStructsPropertyInfo, PhantomTypeUpDataStructsResourceInfo, PhantomTypeUpDataStructsRpcCollection, PhantomTypeUpDataStructsTheme, PhantomTypeUpDataStructsTokenData, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionField, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExData, UpDataStructsNestingRule, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsRmrkAccountIdOrCollectionNftTuple, UpDataStructsRmrkBaseInfo, UpDataStructsRmrkBasicResource, UpDataStructsRmrkCollectionInfo, UpDataStructsRmrkComposableResource, UpDataStructsRmrkEquippableList, UpDataStructsRmrkFixedPart, UpDataStructsRmrkNftChild, UpDataStructsRmrkNftInfo, UpDataStructsRmrkPartType, UpDataStructsRmrkPropertyInfo, UpDataStructsRmrkResourceInfo, UpDataStructsRmrkResourceTypes, UpDataStructsRmrkRoyaltyInfo, UpDataStructsRmrkSlotPart, UpDataStructsRmrkSlotResource, UpDataStructsRmrkTheme, UpDataStructsRmrkThemeProperty, UpDataStructsRpcCollection, UpDataStructsSchemaVersion, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipState, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from './unique';5import type { Data, StorageKey } from '@polkadot/types';6import type { BitVec, Bool, Bytes, I128, I16, I256, I32, I64, I8, Json, Null, Raw, Text, Type, U128, U16, U256, U32, U64, U8, USize, bool, i128, i16, i256, i32, i64, i8, u128, u16, u256, u32, u64, u8, usize } from '@polkadot/types-codec';7import type { AssetApproval, AssetApprovalKey, AssetBalance, AssetDestroyWitness, AssetDetails, AssetMetadata, TAssetBalance, TAssetDepositBalance } from '@polkadot/types/interfaces/assets';8import type { BlockAttestations, IncludedBlocks, MoreAttestations } from '@polkadot/types/interfaces/attestations';9import type { RawAuraPreDigest } from '@polkadot/types/interfaces/aura';10import type { ExtrinsicOrHash, ExtrinsicStatus } from '@polkadot/types/interfaces/author';11import type { UncleEntryItem } from '@polkadot/types/interfaces/authorship';12import type { AllowedSlots, BabeAuthorityWeight, BabeBlockWeight, BabeEpochConfiguration, BabeEquivocationProof, BabeWeight, EpochAuthorship, MaybeRandomness, MaybeVrf, NextConfigDescriptor, NextConfigDescriptorV1, Randomness, RawBabePreDigest, RawBabePreDigestCompat, RawBabePreDigestPrimary, RawBabePreDigestPrimaryTo159, RawBabePreDigestSecondaryPlain, RawBabePreDigestSecondaryTo159, RawBabePreDigestSecondaryVRF, RawBabePreDigestTo159, SlotNumber, VrfData, VrfOutput, VrfProof } from '@polkadot/types/interfaces/babe';13import type { AccountData, BalanceLock, BalanceLockTo212, BalanceStatus, Reasons, ReserveData, ReserveIdentifier, VestingSchedule, WithdrawReasons } from '@polkadot/types/interfaces/balances';14import type { BeefyCommitment, BeefyId, BeefyNextAuthoritySet, BeefyPayload, BeefySignedCommitment, MmrRootHash, ValidatorSetId } from '@polkadot/types/interfaces/beefy';15import type { BridgeMessageId, BridgedBlockHash, BridgedBlockNumber, BridgedHeader, CallOrigin, ChainId, DeliveredMessages, DispatchFeePayment, InboundLaneData, InboundRelayer, InitializationData, LaneId, MessageData, MessageKey, MessageNonce, MessagesDeliveryProofOf, MessagesProofOf, OperatingMode, OutboundLaneData, OutboundMessageFee, OutboundPayload, Parameter, RelayerId, UnrewardedRelayer, UnrewardedRelayersState } from '@polkadot/types/interfaces/bridges';16import type { BlockHash } from '@polkadot/types/interfaces/chain';17import type { PrefixedStorageKey } from '@polkadot/types/interfaces/childstate';18import type { StatementKind } from '@polkadot/types/interfaces/claims';19import type { CollectiveOrigin, MemberCount, ProposalIndex, Votes, VotesTo230 } from '@polkadot/types/interfaces/collective';20import type { AuthorityId, RawVRFOutput } from '@polkadot/types/interfaces/consensus';21import type { AliveContractInfo, CodeHash, CodeSource, CodeUploadRequest, CodeUploadResult, CodeUploadResultValue, ContractCallFlags, ContractCallRequest, ContractExecResult, ContractExecResultErr, ContractExecResultErrModule, ContractExecResultOk, ContractExecResultResult, ContractExecResultSuccessTo255, ContractExecResultSuccessTo260, ContractExecResultTo255, ContractExecResultTo260, ContractExecResultTo267, ContractInfo, ContractInstantiateResult, ContractInstantiateResultTo267, ContractInstantiateResultTo299, ContractReturnFlags, ContractStorageKey, DeletedContract, ExecReturnValue, Gas, HostFnWeights, HostFnWeightsTo264, InstantiateRequest, InstantiateRequestV1, InstantiateRequestV2, InstantiateReturnValue, InstantiateReturnValueOk, InstantiateReturnValueTo267, InstructionWeights, Limits, LimitsTo264, PrefabWasmModule, RentProjection, Schedule, ScheduleTo212, ScheduleTo258, ScheduleTo264, SeedOf, StorageDeposit, TombstoneContractInfo, TrieId } from '@polkadot/types/interfaces/contracts';22import type { ContractConstructorSpecLatest, ContractConstructorSpecV0, ContractConstructorSpecV1, ContractConstructorSpecV2, ContractConstructorSpecV3, ContractContractSpecV0, ContractContractSpecV1, ContractContractSpecV2, ContractContractSpecV3, ContractCryptoHasher, ContractDiscriminant, ContractDisplayName, ContractEventParamSpecLatest, ContractEventParamSpecV0, ContractEventParamSpecV2, ContractEventSpecLatest, ContractEventSpecV0, ContractEventSpecV1, ContractEventSpecV2, ContractLayoutArray, ContractLayoutCell, ContractLayoutEnum, ContractLayoutHash, ContractLayoutHashingStrategy, ContractLayoutKey, ContractLayoutStruct, ContractLayoutStructField, ContractMessageParamSpecLatest, ContractMessageParamSpecV0, ContractMessageParamSpecV2, ContractMessageSpecLatest, ContractMessageSpecV0, ContractMessageSpecV1, ContractMessageSpecV2, ContractMetadata, ContractMetadataLatest, ContractMetadataV0, ContractMetadataV1, ContractMetadataV2, ContractMetadataV3, ContractProject, ContractProjectContract, ContractProjectInfo, ContractProjectSource, ContractProjectV0, ContractSelector, ContractStorageLayout, ContractTypeSpec } from '@polkadot/types/interfaces/contractsAbi';23import type { FundIndex, FundInfo, LastContribution, TrieIndex } from '@polkadot/types/interfaces/crowdloan';24import type { ConfigData, MessageId, OverweightIndex, PageCounter, PageIndexData } from '@polkadot/types/interfaces/cumulus';25import type { AccountVote, AccountVoteSplit, AccountVoteStandard, Conviction, Delegations, PreimageStatus, PreimageStatusAvailable, PriorLock, PropIndex, Proposal, ProxyState, ReferendumIndex, ReferendumInfo, ReferendumInfoFinished, ReferendumInfoTo239, ReferendumStatus, Tally, Voting, VotingDelegating, VotingDirect, VotingDirectVote } from '@polkadot/types/interfaces/democracy';26import type { BlockStats } from '@polkadot/types/interfaces/dev';27import type { ApprovalFlag, DefunctVoter, Renouncing, SetIndex, Vote, VoteIndex, VoteThreshold, VoterInfo } from '@polkadot/types/interfaces/elections';28import type { CreatedBlock, ImportedAux } from '@polkadot/types/interfaces/engine';29import type { BlockV0, BlockV1, BlockV2, EIP1559Transaction, EIP2930Transaction, EthAccessList, EthAccessListItem, EthAccount, EthAddress, EthBlock, EthBloom, EthCallRequest, EthFilter, EthFilterAddress, EthFilterChanges, EthFilterTopic, EthFilterTopicEntry, EthFilterTopicInner, EthHeader, EthLog, EthReceipt, EthRichBlock, EthRichHeader, EthStorageProof, EthSubKind, EthSubParams, EthSubResult, EthSyncInfo, EthSyncStatus, EthTransaction, EthTransactionAction, EthTransactionCondition, EthTransactionRequest, EthTransactionSignature, EthTransactionStatus, EthWork, EthereumAccountId, EthereumAddress, EthereumLookupSource, EthereumSignature, LegacyTransaction, TransactionV0, TransactionV1, TransactionV2 } from '@polkadot/types/interfaces/eth';30import type { EvmAccount, EvmLog, EvmVicinity, ExitError, ExitFatal, ExitReason, ExitRevert, ExitSucceed } from '@polkadot/types/interfaces/evm';31import type { AnySignature, EcdsaSignature, Ed25519Signature, Era, Extrinsic, ExtrinsicEra, ExtrinsicPayload, ExtrinsicPayloadUnknown, ExtrinsicPayloadV4, ExtrinsicSignature, ExtrinsicSignatureV4, ExtrinsicUnknown, ExtrinsicV4, ImmortalEra, MortalEra, MultiSignature, Signature, SignerPayload, Sr25519Signature } from '@polkadot/types/interfaces/extrinsics';32import type { AssetOptions, Owner, PermissionLatest, PermissionVersions, PermissionsV1 } from '@polkadot/types/interfaces/genericAsset';33import type { ActiveGilt, ActiveGiltsTotal, ActiveIndex, GiltBid } from '@polkadot/types/interfaces/gilt';34import type { AuthorityIndex, AuthorityList, AuthoritySet, AuthoritySetChange, AuthoritySetChanges, AuthorityWeight, DelayKind, DelayKindBest, EncodedFinalityProofs, ForkTreePendingChange, ForkTreePendingChangeNode, GrandpaCommit, GrandpaEquivocation, GrandpaEquivocationProof, GrandpaEquivocationValue, GrandpaJustification, GrandpaPrecommit, GrandpaPrevote, GrandpaSignedPrecommit, JustificationNotification, KeyOwnerProof, NextAuthority, PendingChange, PendingPause, PendingResume, Precommits, Prevotes, ReportedRoundStates, RoundState, SetId, StoredPendingChange, StoredState } from '@polkadot/types/interfaces/grandpa';35import type { IdentityFields, IdentityInfo, IdentityInfoAdditional, IdentityInfoTo198, IdentityJudgement, RegistrarIndex, RegistrarInfo, Registration, RegistrationJudgement, RegistrationTo198 } from '@polkadot/types/interfaces/identity';36import type { AuthIndex, AuthoritySignature, Heartbeat, HeartbeatTo244, OpaqueMultiaddr, OpaqueNetworkState, OpaquePeerId } from '@polkadot/types/interfaces/imOnline';37import type { CallIndex, LotteryConfig } from '@polkadot/types/interfaces/lottery';38import type { ErrorMetadataLatest, ErrorMetadataV10, ErrorMetadataV11, ErrorMetadataV12, ErrorMetadataV13, ErrorMetadataV14, ErrorMetadataV9, EventMetadataLatest, EventMetadataV10, EventMetadataV11, EventMetadataV12, EventMetadataV13, EventMetadataV14, EventMetadataV9, ExtrinsicMetadataLatest, ExtrinsicMetadataV11, ExtrinsicMetadataV12, ExtrinsicMetadataV13, ExtrinsicMetadataV14, FunctionArgumentMetadataLatest, FunctionArgumentMetadataV10, FunctionArgumentMetadataV11, FunctionArgumentMetadataV12, FunctionArgumentMetadataV13, FunctionArgumentMetadataV14, FunctionArgumentMetadataV9, FunctionMetadataLatest, FunctionMetadataV10, FunctionMetadataV11, FunctionMetadataV12, FunctionMetadataV13, FunctionMetadataV14, FunctionMetadataV9, MetadataAll, MetadataLatest, MetadataV10, MetadataV11, MetadataV12, MetadataV13, MetadataV14, MetadataV9, ModuleConstantMetadataV10, ModuleConstantMetadataV11, ModuleConstantMetadataV12, ModuleConstantMetadataV13, ModuleConstantMetadataV9, ModuleMetadataV10, ModuleMetadataV11, ModuleMetadataV12, ModuleMetadataV13, ModuleMetadataV9, PalletCallMetadataLatest, PalletCallMetadataV14, PalletConstantMetadataLatest, PalletConstantMetadataV14, PalletErrorMetadataLatest, PalletErrorMetadataV14, PalletEventMetadataLatest, PalletEventMetadataV14, PalletMetadataLatest, PalletMetadataV14, PalletStorageMetadataLatest, PalletStorageMetadataV14, PortableType, PortableTypeV14, SignedExtensionMetadataLatest, SignedExtensionMetadataV14, StorageEntryMetadataLatest, StorageEntryMetadataV10, StorageEntryMetadataV11, StorageEntryMetadataV12, StorageEntryMetadataV13, StorageEntryMetadataV14, StorageEntryMetadataV9, StorageEntryModifierLatest, StorageEntryModifierV10, StorageEntryModifierV11, StorageEntryModifierV12, StorageEntryModifierV13, StorageEntryModifierV14, StorageEntryModifierV9, StorageEntryTypeLatest, StorageEntryTypeV10, StorageEntryTypeV11, StorageEntryTypeV12, StorageEntryTypeV13, StorageEntryTypeV14, StorageEntryTypeV9, StorageHasher, StorageHasherV10, StorageHasherV11, StorageHasherV12, StorageHasherV13, StorageHasherV14, StorageHasherV9, StorageMetadataV10, StorageMetadataV11, StorageMetadataV12, StorageMetadataV13, StorageMetadataV9 } from '@polkadot/types/interfaces/metadata';39import type { MmrLeafProof } from '@polkadot/types/interfaces/mmr';40import type { StorageKind } from '@polkadot/types/interfaces/offchain';41import type { DeferredOffenceOf, Kind, OffenceDetails, Offender, OpaqueTimeSlot, ReportIdOf, Reporter } from '@polkadot/types/interfaces/offences';42import type { AbridgedCandidateReceipt, AbridgedHostConfiguration, AbridgedHrmpChannel, AssignmentId, AssignmentKind, AttestedCandidate, AuctionIndex, AuthorityDiscoveryId, AvailabilityBitfield, AvailabilityBitfieldRecord, BackedCandidate, Bidder, BufferedSessionChange, CandidateCommitments, CandidateDescriptor, CandidateHash, CandidateInfo, CandidatePendingAvailability, CandidateReceipt, CollatorId, CollatorSignature, CommittedCandidateReceipt, CoreAssignment, CoreIndex, CoreOccupied, DisputeLocation, DisputeResult, DisputeState, DisputeStatement, DisputeStatementSet, DoubleVoteReport, DownwardMessage, ExplicitDisputeStatement, GlobalValidationData, GlobalValidationSchedule, GroupIndex, HeadData, HostConfiguration, HrmpChannel, HrmpChannelId, HrmpOpenChannelRequest, InboundDownwardMessage, InboundHrmpMessage, InboundHrmpMessages, IncomingParachain, IncomingParachainDeploy, IncomingParachainFixed, InvalidDisputeStatementKind, LeasePeriod, LeasePeriodOf, LocalValidationData, MessageIngestionType, MessageQueueChain, MessagingStateSnapshot, MessagingStateSnapshotEgressEntry, MultiDisputeStatementSet, NewBidder, OutboundHrmpMessage, ParaGenesisArgs, ParaId, ParaInfo, ParaLifecycle, ParaPastCodeMeta, ParaScheduling, ParaValidatorIndex, ParachainDispatchOrigin, ParachainInherentData, ParachainProposal, ParachainsInherentData, ParathreadClaim, ParathreadClaimQueue, ParathreadEntry, PersistedValidationData, QueuedParathread, RegisteredParachainInfo, RelayBlockNumber, RelayChainBlockNumber, RelayChainHash, RelayHash, Remark, ReplacementTimes, Retriable, Scheduling, ServiceQuality, SessionInfo, SessionInfoValidatorGroup, SignedAvailabilityBitfield, SignedAvailabilityBitfields, SigningContext, SlotRange, SlotRange10, Statement, SubId, SystemInherentData, TransientValidationData, UpgradeGoAhead, UpgradeRestriction, UpwardMessage, ValidDisputeStatementKind, ValidationCode, ValidationCodeHash, ValidationData, ValidationDataType, ValidationFunctionParams, ValidatorSignature, ValidityAttestation, VecInboundHrmpMessage, WinnersData, WinnersData10, WinnersDataTuple, WinnersDataTuple10, WinningData, WinningData10, WinningDataEntry } from '@polkadot/types/interfaces/parachains';43import type { FeeDetails, InclusionFee, RuntimeDispatchInfo } from '@polkadot/types/interfaces/payment';44import type { Approvals } from '@polkadot/types/interfaces/poll';45import type { ProxyAnnouncement, ProxyDefinition, ProxyType } from '@polkadot/types/interfaces/proxy';46import type { AccountStatus, AccountValidity } from '@polkadot/types/interfaces/purchase';47import type { ActiveRecovery, RecoveryConfig } from '@polkadot/types/interfaces/recovery';48import type { RpcMethods } from '@polkadot/types/interfaces/rpc';49import type { AccountId, AccountId20, AccountId32, AccountIdOf, AccountIndex, Address, AssetId, Balance, BalanceOf, Block, BlockNumber, BlockNumberFor, BlockNumberOf, Call, CallHash, CallHashOf, ChangesTrieConfiguration, ChangesTrieSignal, CodecHash, Consensus, ConsensusEngineId, CrateVersion, Digest, DigestItem, EncodedJustification, ExtrinsicsWeight, Fixed128, Fixed64, FixedI128, FixedI64, FixedU128, FixedU64, H1024, H128, H160, H2048, H256, H32, H512, H64, Hash, Header, HeaderPartial, I32F32, Index, IndicesLookupSource, Justification, Justifications, KeyTypeId, KeyValue, LockIdentifier, LookupSource, LookupTarget, ModuleId, Moment, MultiAddress, MultiSigner, OpaqueCall, Origin, OriginCaller, PalletId, PalletVersion, PalletsOrigin, Pays, PerU16, Perbill, Percent, Permill, Perquintill, Phantom, PhantomData, PreRuntime, Releases, RuntimeDbWeight, Seal, SealV0, SignedBlock, SignedBlockWithJustification, SignedBlockWithJustifications, Slot, StorageData, StorageProof, TransactionInfo, TransactionPriority, TransactionStorageProof, U32F32, ValidatorId, ValidatorIdOf, Weight, WeightMultiplier } from '@polkadot/types/interfaces/runtime';50import type { Si0Field, Si0LookupTypeId, Si0Path, Si0Type, Si0TypeDef, Si0TypeDefArray, Si0TypeDefBitSequence, Si0TypeDefCompact, Si0TypeDefComposite, Si0TypeDefPhantom, Si0TypeDefPrimitive, Si0TypeDefSequence, Si0TypeDefTuple, Si0TypeDefVariant, Si0TypeParameter, Si0Variant, Si1Field, Si1LookupTypeId, Si1Path, Si1Type, Si1TypeDef, Si1TypeDefArray, Si1TypeDefBitSequence, Si1TypeDefCompact, Si1TypeDefComposite, Si1TypeDefPrimitive, Si1TypeDefSequence, Si1TypeDefTuple, Si1TypeDefVariant, Si1TypeParameter, Si1Variant, SiField, SiLookupTypeId, SiPath, SiType, SiTypeDef, SiTypeDefArray, SiTypeDefBitSequence, SiTypeDefCompact, SiTypeDefComposite, SiTypeDefPrimitive, SiTypeDefSequence, SiTypeDefTuple, SiTypeDefVariant, SiTypeParameter, SiVariant } from '@polkadot/types/interfaces/scaleInfo';51import type { Period, Priority, SchedulePeriod, SchedulePriority, Scheduled, ScheduledTo254, TaskAddress } from '@polkadot/types/interfaces/scheduler';52import type { BeefyKey, FullIdentification, IdentificationTuple, Keys, MembershipProof, SessionIndex, SessionKeys1, SessionKeys10, SessionKeys10B, SessionKeys2, SessionKeys3, SessionKeys4, SessionKeys5, SessionKeys6, SessionKeys6B, SessionKeys7, SessionKeys7B, SessionKeys8, SessionKeys8B, SessionKeys9, SessionKeys9B, ValidatorCount } from '@polkadot/types/interfaces/session';53import type { Bid, BidKind, SocietyJudgement, SocietyVote, StrikeCount, VouchingStatus } from '@polkadot/types/interfaces/society';54import type { ActiveEraInfo, CompactAssignments, CompactAssignmentsTo257, CompactAssignmentsTo265, CompactAssignmentsWith16, CompactAssignmentsWith24, CompactScore, CompactScoreCompact, ElectionCompute, ElectionPhase, ElectionResult, ElectionScore, ElectionSize, ElectionStatus, EraIndex, EraPoints, EraRewardPoints, EraRewards, Exposure, ExtendedBalance, Forcing, IndividualExposure, KeyType, MomentOf, Nominations, NominatorIndex, NominatorIndexCompact, OffchainAccuracy, OffchainAccuracyCompact, PhragmenScore, Points, RawSolution, RawSolutionTo265, RawSolutionWith16, RawSolutionWith24, ReadySolution, RewardDestination, RewardPoint, RoundSnapshot, SeatHolder, SignedSubmission, SignedSubmissionOf, SignedSubmissionTo276, SlashJournalEntry, SlashingSpans, SlashingSpansTo204, SolutionOrSnapshotSize, SolutionSupport, SolutionSupports, SpanIndex, SpanRecord, StakingLedger, StakingLedgerTo223, StakingLedgerTo240, SubmissionIndicesOf, Supports, UnappliedSlash, UnappliedSlashOther, UnlockChunk, ValidatorIndex, ValidatorIndexCompact, ValidatorPrefs, ValidatorPrefsTo145, ValidatorPrefsTo196, ValidatorPrefsWithBlocked, ValidatorPrefsWithCommission, VoteWeight, Voter } from '@polkadot/types/interfaces/staking';55import type { ApiId, BlockTrace, BlockTraceEvent, BlockTraceEventData, BlockTraceSpan, KeyValueOption, MigrationStatusResult, ReadProof, RuntimeVersion, RuntimeVersionApi, RuntimeVersionPartial, SpecVersion, StorageChangeSet, TraceBlockResponse, TraceError } from '@polkadot/types/interfaces/state';56import type { WeightToFeeCoefficient } from '@polkadot/types/interfaces/support';57import type { AccountInfo, AccountInfoWithDualRefCount, AccountInfoWithProviders, AccountInfoWithRefCount, AccountInfoWithRefCountU8, AccountInfoWithTripleRefCount, ApplyExtrinsicResult, ArithmeticError, BlockLength, BlockWeights, ChainProperties, ChainType, ConsumedWeight, DigestOf, DispatchClass, DispatchError, DispatchErrorModule, DispatchErrorModuleU8a, DispatchErrorTo198, DispatchInfo, DispatchInfoTo190, DispatchInfoTo244, DispatchOutcome, DispatchResult, DispatchResultOf, DispatchResultTo198, Event, EventId, EventIndex, EventRecord, Health, InvalidTransaction, Key, LastRuntimeUpgradeInfo, NetworkState, NetworkStatePeerset, NetworkStatePeersetInfo, NodeRole, NotConnectedPeer, Peer, PeerEndpoint, PeerEndpointAddr, PeerInfo, PeerPing, PerDispatchClassU32, PerDispatchClassWeight, PerDispatchClassWeightsPerClass, Phase, RawOrigin, RefCount, RefCountTo259, SyncState, SystemOrigin, TokenError, TransactionValidityError, UnknownTransaction, WeightPerClass } from '@polkadot/types/interfaces/system';58import type { Bounty, BountyIndex, BountyStatus, BountyStatusActive, BountyStatusCuratorProposed, BountyStatusPendingPayout, OpenTip, OpenTipFinderTo225, OpenTipTip, OpenTipTo225, TreasuryProposal } from '@polkadot/types/interfaces/treasury';59import type { Multiplier } from '@polkadot/types/interfaces/txpayment';60import type { ClassDetails, ClassId, ClassMetadata, DepositBalance, DepositBalanceOf, DestroyWitness, InstanceDetails, InstanceId, InstanceMetadata } from '@polkadot/types/interfaces/uniques';61import type { Multisig, Timepoint } from '@polkadot/types/interfaces/utility';62import type { VestingInfo } from '@polkadot/types/interfaces/vesting';63import type { AssetInstance, AssetInstanceV0, AssetInstanceV1, AssetInstanceV2, BodyId, BodyPart, DoubleEncodedCall, Fungibility, FungibilityV0, FungibilityV1, FungibilityV2, InboundStatus, InstructionV2, InteriorMultiLocation, Junction, JunctionV0, JunctionV1, JunctionV2, Junctions, JunctionsV1, JunctionsV2, MultiAsset, MultiAssetFilter, MultiAssetFilterV1, MultiAssetFilterV2, MultiAssetV0, MultiAssetV1, MultiAssetV2, MultiAssets, MultiAssetsV1, MultiAssetsV2, MultiLocation, MultiLocationV0, MultiLocationV1, MultiLocationV2, NetworkId, OriginKindV0, OriginKindV1, OriginKindV2, OutboundStatus, Outcome, QueryId, QueryStatus, QueueConfigData, Response, ResponseV0, ResponseV1, ResponseV2, ResponseV2Error, ResponseV2Result, VersionMigrationStage, VersionedMultiAsset, VersionedMultiAssets, VersionedMultiLocation, VersionedResponse, VersionedXcm, WeightLimitV2, WildFungibility, WildFungibilityV0, WildFungibilityV1, WildFungibilityV2, WildMultiAsset, WildMultiAssetV1, WildMultiAssetV2, Xcm, XcmAssetId, XcmError, XcmErrorV0, XcmErrorV1, XcmErrorV2, XcmOrder, XcmOrderV0, XcmOrderV1, XcmOrderV2, XcmOrigin, XcmOriginKind, XcmV0, XcmV1, XcmV2, XcmVersion, XcmpMessageFormat } from '@polkadot/types/interfaces/xcm';6465declare module '@polkadot/types/types/registry' {66 export interface InterfaceTypes {67 AbridgedCandidateReceipt: AbridgedCandidateReceipt;68 AbridgedHostConfiguration: AbridgedHostConfiguration;69 AbridgedHrmpChannel: AbridgedHrmpChannel;70 AccountData: AccountData;71 AccountId: AccountId;72 AccountId20: AccountId20;73 AccountId32: AccountId32;74 AccountIdOf: AccountIdOf;75 AccountIndex: AccountIndex;76 AccountInfo: AccountInfo;77 AccountInfoWithDualRefCount: AccountInfoWithDualRefCount;78 AccountInfoWithProviders: AccountInfoWithProviders;79 AccountInfoWithRefCount: AccountInfoWithRefCount;80 AccountInfoWithRefCountU8: AccountInfoWithRefCountU8;81 AccountInfoWithTripleRefCount: AccountInfoWithTripleRefCount;82 AccountStatus: AccountStatus;83 AccountValidity: AccountValidity;84 AccountVote: AccountVote;85 AccountVoteSplit: AccountVoteSplit;86 AccountVoteStandard: AccountVoteStandard;87 ActiveEraInfo: ActiveEraInfo;88 ActiveGilt: ActiveGilt;89 ActiveGiltsTotal: ActiveGiltsTotal;90 ActiveIndex: ActiveIndex;91 ActiveRecovery: ActiveRecovery;92 Address: Address;93 AliveContractInfo: AliveContractInfo;94 AllowedSlots: AllowedSlots;95 AnySignature: AnySignature;96 ApiId: ApiId;97 ApplyExtrinsicResult: ApplyExtrinsicResult;98 ApprovalFlag: ApprovalFlag;99 Approvals: Approvals;100 ArithmeticError: ArithmeticError;101 AssetApproval: AssetApproval;102 AssetApprovalKey: AssetApprovalKey;103 AssetBalance: AssetBalance;104 AssetDestroyWitness: AssetDestroyWitness;105 AssetDetails: AssetDetails;106 AssetId: AssetId;107 AssetInstance: AssetInstance;108 AssetInstanceV0: AssetInstanceV0;109 AssetInstanceV1: AssetInstanceV1;110 AssetInstanceV2: AssetInstanceV2;111 AssetMetadata: AssetMetadata;112 AssetOptions: AssetOptions;113 AssignmentId: AssignmentId;114 AssignmentKind: AssignmentKind;115 AttestedCandidate: AttestedCandidate;116 AuctionIndex: AuctionIndex;117 AuthIndex: AuthIndex;118 AuthorityDiscoveryId: AuthorityDiscoveryId;119 AuthorityId: AuthorityId;120 AuthorityIndex: AuthorityIndex;121 AuthorityList: AuthorityList;122 AuthoritySet: AuthoritySet;123 AuthoritySetChange: AuthoritySetChange;124 AuthoritySetChanges: AuthoritySetChanges;125 AuthoritySignature: AuthoritySignature;126 AuthorityWeight: AuthorityWeight;127 AvailabilityBitfield: AvailabilityBitfield;128 AvailabilityBitfieldRecord: AvailabilityBitfieldRecord;129 BabeAuthorityWeight: BabeAuthorityWeight;130 BabeBlockWeight: BabeBlockWeight;131 BabeEpochConfiguration: BabeEpochConfiguration;132 BabeEquivocationProof: BabeEquivocationProof;133 BabeWeight: BabeWeight;134 BackedCandidate: BackedCandidate;135 Balance: Balance;136 BalanceLock: BalanceLock;137 BalanceLockTo212: BalanceLockTo212;138 BalanceOf: BalanceOf;139 BalanceStatus: BalanceStatus;140 BeefyCommitment: BeefyCommitment;141 BeefyId: BeefyId;142 BeefyKey: BeefyKey;143 BeefyNextAuthoritySet: BeefyNextAuthoritySet;144 BeefyPayload: BeefyPayload;145 BeefySignedCommitment: BeefySignedCommitment;146 Bid: Bid;147 Bidder: Bidder;148 BidKind: BidKind;149 BitVec: BitVec;150 Block: Block;151 BlockAttestations: BlockAttestations;152 BlockHash: BlockHash;153 BlockLength: BlockLength;154 BlockNumber: BlockNumber;155 BlockNumberFor: BlockNumberFor;156 BlockNumberOf: BlockNumberOf;157 BlockStats: BlockStats;158 BlockTrace: BlockTrace;159 BlockTraceEvent: BlockTraceEvent;160 BlockTraceEventData: BlockTraceEventData;161 BlockTraceSpan: BlockTraceSpan;162 BlockV0: BlockV0;163 BlockV1: BlockV1;164 BlockV2: BlockV2;165 BlockWeights: BlockWeights;166 BodyId: BodyId;167 BodyPart: BodyPart;168 bool: bool;169 Bool: Bool;170 Bounty: Bounty;171 BountyIndex: BountyIndex;172 BountyStatus: BountyStatus;173 BountyStatusActive: BountyStatusActive;174 BountyStatusCuratorProposed: BountyStatusCuratorProposed;175 BountyStatusPendingPayout: BountyStatusPendingPayout;176 BridgedBlockHash: BridgedBlockHash;177 BridgedBlockNumber: BridgedBlockNumber;178 BridgedHeader: BridgedHeader;179 BridgeMessageId: BridgeMessageId;180 BufferedSessionChange: BufferedSessionChange;181 Bytes: Bytes;182 Call: Call;183 CallHash: CallHash;184 CallHashOf: CallHashOf;185 CallIndex: CallIndex;186 CallOrigin: CallOrigin;187 CandidateCommitments: CandidateCommitments;188 CandidateDescriptor: CandidateDescriptor;189 CandidateHash: CandidateHash;190 CandidateInfo: CandidateInfo;191 CandidatePendingAvailability: CandidatePendingAvailability;192 CandidateReceipt: CandidateReceipt;193 ChainId: ChainId;194 ChainProperties: ChainProperties;195 ChainType: ChainType;196 ChangesTrieConfiguration: ChangesTrieConfiguration;197 ChangesTrieSignal: ChangesTrieSignal;198 ClassDetails: ClassDetails;199 ClassId: ClassId;200 ClassMetadata: ClassMetadata;201 CodecHash: CodecHash;202 CodeHash: CodeHash;203 CodeSource: CodeSource;204 CodeUploadRequest: CodeUploadRequest;205 CodeUploadResult: CodeUploadResult;206 CodeUploadResultValue: CodeUploadResultValue;207 CollatorId: CollatorId;208 CollatorSignature: CollatorSignature;209 CollectiveOrigin: CollectiveOrigin;210 CommittedCandidateReceipt: CommittedCandidateReceipt;211 CompactAssignments: CompactAssignments;212 CompactAssignmentsTo257: CompactAssignmentsTo257;213 CompactAssignmentsTo265: CompactAssignmentsTo265;214 CompactAssignmentsWith16: CompactAssignmentsWith16;215 CompactAssignmentsWith24: CompactAssignmentsWith24;216 CompactScore: CompactScore;217 CompactScoreCompact: CompactScoreCompact;218 ConfigData: ConfigData;219 Consensus: Consensus;220 ConsensusEngineId: ConsensusEngineId;221 ConsumedWeight: ConsumedWeight;222 ContractCallFlags: ContractCallFlags;223 ContractCallRequest: ContractCallRequest;224 ContractConstructorSpecLatest: ContractConstructorSpecLatest;225 ContractConstructorSpecV0: ContractConstructorSpecV0;226 ContractConstructorSpecV1: ContractConstructorSpecV1;227 ContractConstructorSpecV2: ContractConstructorSpecV2;228 ContractConstructorSpecV3: ContractConstructorSpecV3;229 ContractContractSpecV0: ContractContractSpecV0;230 ContractContractSpecV1: ContractContractSpecV1;231 ContractContractSpecV2: ContractContractSpecV2;232 ContractContractSpecV3: ContractContractSpecV3;233 ContractCryptoHasher: ContractCryptoHasher;234 ContractDiscriminant: ContractDiscriminant;235 ContractDisplayName: ContractDisplayName;236 ContractEventParamSpecLatest: ContractEventParamSpecLatest;237 ContractEventParamSpecV0: ContractEventParamSpecV0;238 ContractEventParamSpecV2: ContractEventParamSpecV2;239 ContractEventSpecLatest: ContractEventSpecLatest;240 ContractEventSpecV0: ContractEventSpecV0;241 ContractEventSpecV1: ContractEventSpecV1;242 ContractEventSpecV2: ContractEventSpecV2;243 ContractExecResult: ContractExecResult;244 ContractExecResultErr: ContractExecResultErr;245 ContractExecResultErrModule: ContractExecResultErrModule;246 ContractExecResultOk: ContractExecResultOk;247 ContractExecResultResult: ContractExecResultResult;248 ContractExecResultSuccessTo255: ContractExecResultSuccessTo255;249 ContractExecResultSuccessTo260: ContractExecResultSuccessTo260;250 ContractExecResultTo255: ContractExecResultTo255;251 ContractExecResultTo260: ContractExecResultTo260;252 ContractExecResultTo267: ContractExecResultTo267;253 ContractInfo: ContractInfo;254 ContractInstantiateResult: ContractInstantiateResult;255 ContractInstantiateResultTo267: ContractInstantiateResultTo267;256 ContractInstantiateResultTo299: ContractInstantiateResultTo299;257 ContractLayoutArray: ContractLayoutArray;258 ContractLayoutCell: ContractLayoutCell;259 ContractLayoutEnum: ContractLayoutEnum;260 ContractLayoutHash: ContractLayoutHash;261 ContractLayoutHashingStrategy: ContractLayoutHashingStrategy;262 ContractLayoutKey: ContractLayoutKey;263 ContractLayoutStruct: ContractLayoutStruct;264 ContractLayoutStructField: ContractLayoutStructField;265 ContractMessageParamSpecLatest: ContractMessageParamSpecLatest;266 ContractMessageParamSpecV0: ContractMessageParamSpecV0;267 ContractMessageParamSpecV2: ContractMessageParamSpecV2;268 ContractMessageSpecLatest: ContractMessageSpecLatest;269 ContractMessageSpecV0: ContractMessageSpecV0;270 ContractMessageSpecV1: ContractMessageSpecV1;271 ContractMessageSpecV2: ContractMessageSpecV2;272 ContractMetadata: ContractMetadata;273 ContractMetadataLatest: ContractMetadataLatest;274 ContractMetadataV0: ContractMetadataV0;275 ContractMetadataV1: ContractMetadataV1;276 ContractMetadataV2: ContractMetadataV2;277 ContractMetadataV3: ContractMetadataV3;278 ContractProject: ContractProject;279 ContractProjectContract: ContractProjectContract;280 ContractProjectInfo: ContractProjectInfo;281 ContractProjectSource: ContractProjectSource;282 ContractProjectV0: ContractProjectV0;283 ContractReturnFlags: ContractReturnFlags;284 ContractSelector: ContractSelector;285 ContractStorageKey: ContractStorageKey;286 ContractStorageLayout: ContractStorageLayout;287 ContractTypeSpec: ContractTypeSpec;288 Conviction: Conviction;289 CoreAssignment: CoreAssignment;290 CoreIndex: CoreIndex;291 CoreOccupied: CoreOccupied;292 CrateVersion: CrateVersion;293 CreatedBlock: CreatedBlock;294 CumulusPalletDmpQueueCall: CumulusPalletDmpQueueCall;295 CumulusPalletDmpQueueConfigData: CumulusPalletDmpQueueConfigData;296 CumulusPalletDmpQueueError: CumulusPalletDmpQueueError;297 CumulusPalletDmpQueueEvent: CumulusPalletDmpQueueEvent;298 CumulusPalletDmpQueuePageIndexData: CumulusPalletDmpQueuePageIndexData;299 CumulusPalletParachainSystemCall: CumulusPalletParachainSystemCall;300 CumulusPalletParachainSystemError: CumulusPalletParachainSystemError;301 CumulusPalletParachainSystemEvent: CumulusPalletParachainSystemEvent;302 CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot;303 CumulusPalletXcmCall: CumulusPalletXcmCall;304 CumulusPalletXcmError: CumulusPalletXcmError;305 CumulusPalletXcmEvent: CumulusPalletXcmEvent;306 CumulusPalletXcmpQueueCall: CumulusPalletXcmpQueueCall;307 CumulusPalletXcmpQueueError: CumulusPalletXcmpQueueError;308 CumulusPalletXcmpQueueEvent: CumulusPalletXcmpQueueEvent;309 CumulusPalletXcmpQueueInboundChannelDetails: CumulusPalletXcmpQueueInboundChannelDetails;310 CumulusPalletXcmpQueueInboundState: CumulusPalletXcmpQueueInboundState;311 CumulusPalletXcmpQueueOutboundChannelDetails: CumulusPalletXcmpQueueOutboundChannelDetails;312 CumulusPalletXcmpQueueOutboundState: CumulusPalletXcmpQueueOutboundState;313 CumulusPalletXcmpQueueQueueConfigData: CumulusPalletXcmpQueueQueueConfigData;314 CumulusPrimitivesParachainInherentParachainInherentData: CumulusPrimitivesParachainInherentParachainInherentData;315 Data: Data;316 DeferredOffenceOf: DeferredOffenceOf;317 DefunctVoter: DefunctVoter;318 DelayKind: DelayKind;319 DelayKindBest: DelayKindBest;320 Delegations: Delegations;321 DeletedContract: DeletedContract;322 DeliveredMessages: DeliveredMessages;323 DepositBalance: DepositBalance;324 DepositBalanceOf: DepositBalanceOf;325 DestroyWitness: DestroyWitness;326 Digest: Digest;327 DigestItem: DigestItem;328 DigestOf: DigestOf;329 DispatchClass: DispatchClass;330 DispatchError: DispatchError;331 DispatchErrorModule: DispatchErrorModule;332 DispatchErrorModuleU8a: DispatchErrorModuleU8a;333 DispatchErrorTo198: DispatchErrorTo198;334 DispatchFeePayment: DispatchFeePayment;335 DispatchInfo: DispatchInfo;336 DispatchInfoTo190: DispatchInfoTo190;337 DispatchInfoTo244: DispatchInfoTo244;338 DispatchOutcome: DispatchOutcome;339 DispatchResult: DispatchResult;340 DispatchResultOf: DispatchResultOf;341 DispatchResultTo198: DispatchResultTo198;342 DisputeLocation: DisputeLocation;343 DisputeResult: DisputeResult;344 DisputeState: DisputeState;345 DisputeStatement: DisputeStatement;346 DisputeStatementSet: DisputeStatementSet;347 DoubleEncodedCall: DoubleEncodedCall;348 DoubleVoteReport: DoubleVoteReport;349 DownwardMessage: DownwardMessage;350 EcdsaSignature: EcdsaSignature;351 Ed25519Signature: Ed25519Signature;352 EIP1559Transaction: EIP1559Transaction;353 EIP2930Transaction: EIP2930Transaction;354 ElectionCompute: ElectionCompute;355 ElectionPhase: ElectionPhase;356 ElectionResult: ElectionResult;357 ElectionScore: ElectionScore;358 ElectionSize: ElectionSize;359 ElectionStatus: ElectionStatus;360 EncodedFinalityProofs: EncodedFinalityProofs;361 EncodedJustification: EncodedJustification;362 EpochAuthorship: EpochAuthorship;363 Era: Era;364 EraIndex: EraIndex;365 EraPoints: EraPoints;366 EraRewardPoints: EraRewardPoints;367 EraRewards: EraRewards;368 ErrorMetadataLatest: ErrorMetadataLatest;369 ErrorMetadataV10: ErrorMetadataV10;370 ErrorMetadataV11: ErrorMetadataV11;371 ErrorMetadataV12: ErrorMetadataV12;372 ErrorMetadataV13: ErrorMetadataV13;373 ErrorMetadataV14: ErrorMetadataV14;374 ErrorMetadataV9: ErrorMetadataV9;375 EthAccessList: EthAccessList;376 EthAccessListItem: EthAccessListItem;377 EthAccount: EthAccount;378 EthAddress: EthAddress;379 EthBlock: EthBlock;380 EthBloom: EthBloom;381 EthbloomBloom: EthbloomBloom;382 EthCallRequest: EthCallRequest;383 EthereumAccountId: EthereumAccountId;384 EthereumAddress: EthereumAddress;385 EthereumBlock: EthereumBlock;386 EthereumHeader: EthereumHeader;387 EthereumLog: EthereumLog;388 EthereumLookupSource: EthereumLookupSource;389 EthereumReceiptEip658ReceiptData: EthereumReceiptEip658ReceiptData;390 EthereumReceiptReceiptV3: EthereumReceiptReceiptV3;391 EthereumSignature: EthereumSignature;392 EthereumTransactionAccessListItem: EthereumTransactionAccessListItem;393 EthereumTransactionEip1559Transaction: EthereumTransactionEip1559Transaction;394 EthereumTransactionEip2930Transaction: EthereumTransactionEip2930Transaction;395 EthereumTransactionLegacyTransaction: EthereumTransactionLegacyTransaction;396 EthereumTransactionTransactionAction: EthereumTransactionTransactionAction;397 EthereumTransactionTransactionSignature: EthereumTransactionTransactionSignature;398 EthereumTransactionTransactionV2: EthereumTransactionTransactionV2;399 EthereumTypesHashH64: EthereumTypesHashH64;400 EthFilter: EthFilter;401 EthFilterAddress: EthFilterAddress;402 EthFilterChanges: EthFilterChanges;403 EthFilterTopic: EthFilterTopic;404 EthFilterTopicEntry: EthFilterTopicEntry;405 EthFilterTopicInner: EthFilterTopicInner;406 EthHeader: EthHeader;407 EthLog: EthLog;408 EthReceipt: EthReceipt;409 EthRichBlock: EthRichBlock;410 EthRichHeader: EthRichHeader;411 EthStorageProof: EthStorageProof;412 EthSubKind: EthSubKind;413 EthSubParams: EthSubParams;414 EthSubResult: EthSubResult;415 EthSyncInfo: EthSyncInfo;416 EthSyncStatus: EthSyncStatus;417 EthTransaction: EthTransaction;418 EthTransactionAction: EthTransactionAction;419 EthTransactionCondition: EthTransactionCondition;420 EthTransactionRequest: EthTransactionRequest;421 EthTransactionSignature: EthTransactionSignature;422 EthTransactionStatus: EthTransactionStatus;423 EthWork: EthWork;424 Event: Event;425 EventId: EventId;426 EventIndex: EventIndex;427 EventMetadataLatest: EventMetadataLatest;428 EventMetadataV10: EventMetadataV10;429 EventMetadataV11: EventMetadataV11;430 EventMetadataV12: EventMetadataV12;431 EventMetadataV13: EventMetadataV13;432 EventMetadataV14: EventMetadataV14;433 EventMetadataV9: EventMetadataV9;434 EventRecord: EventRecord;435 EvmAccount: EvmAccount;436 EvmCoreErrorExitError: EvmCoreErrorExitError;437 EvmCoreErrorExitFatal: EvmCoreErrorExitFatal;438 EvmCoreErrorExitReason: EvmCoreErrorExitReason;439 EvmCoreErrorExitRevert: EvmCoreErrorExitRevert;440 EvmCoreErrorExitSucceed: EvmCoreErrorExitSucceed;441 EvmLog: EvmLog;442 EvmVicinity: EvmVicinity;443 ExecReturnValue: ExecReturnValue;444 ExitError: ExitError;445 ExitFatal: ExitFatal;446 ExitReason: ExitReason;447 ExitRevert: ExitRevert;448 ExitSucceed: ExitSucceed;449 ExplicitDisputeStatement: ExplicitDisputeStatement;450 Exposure: Exposure;451 ExtendedBalance: ExtendedBalance;452 Extrinsic: Extrinsic;453 ExtrinsicEra: ExtrinsicEra;454 ExtrinsicMetadataLatest: ExtrinsicMetadataLatest;455 ExtrinsicMetadataV11: ExtrinsicMetadataV11;456 ExtrinsicMetadataV12: ExtrinsicMetadataV12;457 ExtrinsicMetadataV13: ExtrinsicMetadataV13;458 ExtrinsicMetadataV14: ExtrinsicMetadataV14;459 ExtrinsicOrHash: ExtrinsicOrHash;460 ExtrinsicPayload: ExtrinsicPayload;461 ExtrinsicPayloadUnknown: ExtrinsicPayloadUnknown;462 ExtrinsicPayloadV4: ExtrinsicPayloadV4;463 ExtrinsicSignature: ExtrinsicSignature;464 ExtrinsicSignatureV4: ExtrinsicSignatureV4;465 ExtrinsicStatus: ExtrinsicStatus;466 ExtrinsicsWeight: ExtrinsicsWeight;467 ExtrinsicUnknown: ExtrinsicUnknown;468 ExtrinsicV4: ExtrinsicV4;469 FeeDetails: FeeDetails;470 Fixed128: Fixed128;471 Fixed64: Fixed64;472 FixedI128: FixedI128;473 FixedI64: FixedI64;474 FixedU128: FixedU128;475 FixedU64: FixedU64;476 Forcing: Forcing;477 ForkTreePendingChange: ForkTreePendingChange;478 ForkTreePendingChangeNode: ForkTreePendingChangeNode;479 FpRpcTransactionStatus: FpRpcTransactionStatus;480 FrameSupportPalletId: FrameSupportPalletId;481 FrameSupportTokensMiscBalanceStatus: FrameSupportTokensMiscBalanceStatus;482 FrameSupportWeightsDispatchClass: FrameSupportWeightsDispatchClass;483 FrameSupportWeightsDispatchInfo: FrameSupportWeightsDispatchInfo;484 FrameSupportWeightsPays: FrameSupportWeightsPays;485 FrameSupportWeightsPerDispatchClassU32: FrameSupportWeightsPerDispatchClassU32;486 FrameSupportWeightsPerDispatchClassU64: FrameSupportWeightsPerDispatchClassU64;487 FrameSupportWeightsPerDispatchClassWeightsPerClass: FrameSupportWeightsPerDispatchClassWeightsPerClass;488 FrameSupportWeightsRuntimeDbWeight: FrameSupportWeightsRuntimeDbWeight;489 FrameSupportWeightsWeightToFeeCoefficient: FrameSupportWeightsWeightToFeeCoefficient;490 FrameSystemAccountInfo: FrameSystemAccountInfo;491 FrameSystemCall: FrameSystemCall;492 FrameSystemError: FrameSystemError;493 FrameSystemEvent: FrameSystemEvent;494 FrameSystemEventRecord: FrameSystemEventRecord;495 FrameSystemExtensionsCheckGenesis: FrameSystemExtensionsCheckGenesis;496 FrameSystemExtensionsCheckNonce: FrameSystemExtensionsCheckNonce;497 FrameSystemExtensionsCheckSpecVersion: FrameSystemExtensionsCheckSpecVersion;498 FrameSystemExtensionsCheckWeight: FrameSystemExtensionsCheckWeight;499 FrameSystemLastRuntimeUpgradeInfo: FrameSystemLastRuntimeUpgradeInfo;500 FrameSystemLimitsBlockLength: FrameSystemLimitsBlockLength;501 FrameSystemLimitsBlockWeights: FrameSystemLimitsBlockWeights;502 FrameSystemLimitsWeightsPerClass: FrameSystemLimitsWeightsPerClass;503 FrameSystemPhase: FrameSystemPhase;504 FullIdentification: FullIdentification;505 FunctionArgumentMetadataLatest: FunctionArgumentMetadataLatest;506 FunctionArgumentMetadataV10: FunctionArgumentMetadataV10;507 FunctionArgumentMetadataV11: FunctionArgumentMetadataV11;508 FunctionArgumentMetadataV12: FunctionArgumentMetadataV12;509 FunctionArgumentMetadataV13: FunctionArgumentMetadataV13;510 FunctionArgumentMetadataV14: FunctionArgumentMetadataV14;511 FunctionArgumentMetadataV9: FunctionArgumentMetadataV9;512 FunctionMetadataLatest: FunctionMetadataLatest;513 FunctionMetadataV10: FunctionMetadataV10;514 FunctionMetadataV11: FunctionMetadataV11;515 FunctionMetadataV12: FunctionMetadataV12;516 FunctionMetadataV13: FunctionMetadataV13;517 FunctionMetadataV14: FunctionMetadataV14;518 FunctionMetadataV9: FunctionMetadataV9;519 FundIndex: FundIndex;520 FundInfo: FundInfo;521 Fungibility: Fungibility;522 FungibilityV0: FungibilityV0;523 FungibilityV1: FungibilityV1;524 FungibilityV2: FungibilityV2;525 Gas: Gas;526 GiltBid: GiltBid;527 GlobalValidationData: GlobalValidationData;528 GlobalValidationSchedule: GlobalValidationSchedule;529 GrandpaCommit: GrandpaCommit;530 GrandpaEquivocation: GrandpaEquivocation;531 GrandpaEquivocationProof: GrandpaEquivocationProof;532 GrandpaEquivocationValue: GrandpaEquivocationValue;533 GrandpaJustification: GrandpaJustification;534 GrandpaPrecommit: GrandpaPrecommit;535 GrandpaPrevote: GrandpaPrevote;536 GrandpaSignedPrecommit: GrandpaSignedPrecommit;537 GroupIndex: GroupIndex;538 H1024: H1024;539 H128: H128;540 H160: H160;541 H2048: H2048;542 H256: H256;543 H32: H32;544 H512: H512;545 H64: H64;546 Hash: Hash;547 HeadData: HeadData;548 Header: Header;549 HeaderPartial: HeaderPartial;550 Health: Health;551 Heartbeat: Heartbeat;552 HeartbeatTo244: HeartbeatTo244;553 HostConfiguration: HostConfiguration;554 HostFnWeights: HostFnWeights;555 HostFnWeightsTo264: HostFnWeightsTo264;556 HrmpChannel: HrmpChannel;557 HrmpChannelId: HrmpChannelId;558 HrmpOpenChannelRequest: HrmpOpenChannelRequest;559 i128: i128;560 I128: I128;561 i16: i16;562 I16: I16;563 i256: i256;564 I256: I256;565 i32: i32;566 I32: I32;567 I32F32: I32F32;568 i64: i64;569 I64: I64;570 i8: i8;571 I8: I8;572 IdentificationTuple: IdentificationTuple;573 IdentityFields: IdentityFields;574 IdentityInfo: IdentityInfo;575 IdentityInfoAdditional: IdentityInfoAdditional;576 IdentityInfoTo198: IdentityInfoTo198;577 IdentityJudgement: IdentityJudgement;578 ImmortalEra: ImmortalEra;579 ImportedAux: ImportedAux;580 InboundDownwardMessage: InboundDownwardMessage;581 InboundHrmpMessage: InboundHrmpMessage;582 InboundHrmpMessages: InboundHrmpMessages;583 InboundLaneData: InboundLaneData;584 InboundRelayer: InboundRelayer;585 InboundStatus: InboundStatus;586 IncludedBlocks: IncludedBlocks;587 InclusionFee: InclusionFee;588 IncomingParachain: IncomingParachain;589 IncomingParachainDeploy: IncomingParachainDeploy;590 IncomingParachainFixed: IncomingParachainFixed;591 Index: Index;592 IndicesLookupSource: IndicesLookupSource;593 IndividualExposure: IndividualExposure;594 InitializationData: InitializationData;595 InstanceDetails: InstanceDetails;596 InstanceId: InstanceId;597 InstanceMetadata: InstanceMetadata;598 InstantiateRequest: InstantiateRequest;599 InstantiateRequestV1: InstantiateRequestV1;600 InstantiateRequestV2: InstantiateRequestV2;601 InstantiateReturnValue: InstantiateReturnValue;602 InstantiateReturnValueOk: InstantiateReturnValueOk;603 InstantiateReturnValueTo267: InstantiateReturnValueTo267;604 InstructionV2: InstructionV2;605 InstructionWeights: InstructionWeights;606 InteriorMultiLocation: InteriorMultiLocation;607 InvalidDisputeStatementKind: InvalidDisputeStatementKind;608 InvalidTransaction: InvalidTransaction;609 Json: Json;610 Junction: Junction;611 Junctions: Junctions;612 JunctionsV1: JunctionsV1;613 JunctionsV2: JunctionsV2;614 JunctionV0: JunctionV0;615 JunctionV1: JunctionV1;616 JunctionV2: JunctionV2;617 Justification: Justification;618 JustificationNotification: JustificationNotification;619 Justifications: Justifications;620 Key: Key;621 KeyOwnerProof: KeyOwnerProof;622 Keys: Keys;623 KeyType: KeyType;624 KeyTypeId: KeyTypeId;625 KeyValue: KeyValue;626 KeyValueOption: KeyValueOption;627 Kind: Kind;628 LaneId: LaneId;629 LastContribution: LastContribution;630 LastRuntimeUpgradeInfo: LastRuntimeUpgradeInfo;631 LeasePeriod: LeasePeriod;632 LeasePeriodOf: LeasePeriodOf;633 LegacyTransaction: LegacyTransaction;634 Limits: Limits;635 LimitsTo264: LimitsTo264;636 LocalValidationData: LocalValidationData;637 LockIdentifier: LockIdentifier;638 LookupSource: LookupSource;639 LookupTarget: LookupTarget;640 LotteryConfig: LotteryConfig;641 MaybeRandomness: MaybeRandomness;642 MaybeVrf: MaybeVrf;643 MemberCount: MemberCount;644 MembershipProof: MembershipProof;645 MessageData: MessageData;646 MessageId: MessageId;647 MessageIngestionType: MessageIngestionType;648 MessageKey: MessageKey;649 MessageNonce: MessageNonce;650 MessageQueueChain: MessageQueueChain;651 MessagesDeliveryProofOf: MessagesDeliveryProofOf;652 MessagesProofOf: MessagesProofOf;653 MessagingStateSnapshot: MessagingStateSnapshot;654 MessagingStateSnapshotEgressEntry: MessagingStateSnapshotEgressEntry;655 MetadataAll: MetadataAll;656 MetadataLatest: MetadataLatest;657 MetadataV10: MetadataV10;658 MetadataV11: MetadataV11;659 MetadataV12: MetadataV12;660 MetadataV13: MetadataV13;661 MetadataV14: MetadataV14;662 MetadataV9: MetadataV9;663 MigrationStatusResult: MigrationStatusResult;664 MmrLeafProof: MmrLeafProof;665 MmrRootHash: MmrRootHash;666 ModuleConstantMetadataV10: ModuleConstantMetadataV10;667 ModuleConstantMetadataV11: ModuleConstantMetadataV11;668 ModuleConstantMetadataV12: ModuleConstantMetadataV12;669 ModuleConstantMetadataV13: ModuleConstantMetadataV13;670 ModuleConstantMetadataV9: ModuleConstantMetadataV9;671 ModuleId: ModuleId;672 ModuleMetadataV10: ModuleMetadataV10;673 ModuleMetadataV11: ModuleMetadataV11;674 ModuleMetadataV12: ModuleMetadataV12;675 ModuleMetadataV13: ModuleMetadataV13;676 ModuleMetadataV9: ModuleMetadataV9;677 Moment: Moment;678 MomentOf: MomentOf;679 MoreAttestations: MoreAttestations;680 MortalEra: MortalEra;681 MultiAddress: MultiAddress;682 MultiAsset: MultiAsset;683 MultiAssetFilter: MultiAssetFilter;684 MultiAssetFilterV1: MultiAssetFilterV1;685 MultiAssetFilterV2: MultiAssetFilterV2;686 MultiAssets: MultiAssets;687 MultiAssetsV1: MultiAssetsV1;688 MultiAssetsV2: MultiAssetsV2;689 MultiAssetV0: MultiAssetV0;690 MultiAssetV1: MultiAssetV1;691 MultiAssetV2: MultiAssetV2;692 MultiDisputeStatementSet: MultiDisputeStatementSet;693 MultiLocation: MultiLocation;694 MultiLocationV0: MultiLocationV0;695 MultiLocationV1: MultiLocationV1;696 MultiLocationV2: MultiLocationV2;697 Multiplier: Multiplier;698 Multisig: Multisig;699 MultiSignature: MultiSignature;700 MultiSigner: MultiSigner;701 NetworkId: NetworkId;702 NetworkState: NetworkState;703 NetworkStatePeerset: NetworkStatePeerset;704 NetworkStatePeersetInfo: NetworkStatePeersetInfo;705 NewBidder: NewBidder;706 NextAuthority: NextAuthority;707 NextConfigDescriptor: NextConfigDescriptor;708 NextConfigDescriptorV1: NextConfigDescriptorV1;709 NodeRole: NodeRole;710 Nominations: Nominations;711 NominatorIndex: NominatorIndex;712 NominatorIndexCompact: NominatorIndexCompact;713 NotConnectedPeer: NotConnectedPeer;714 Null: Null;715 OffchainAccuracy: OffchainAccuracy;716 OffchainAccuracyCompact: OffchainAccuracyCompact;717 OffenceDetails: OffenceDetails;718 Offender: Offender;719 OpalRuntimeRuntime: OpalRuntimeRuntime;720 OpaqueCall: OpaqueCall;721 OpaqueMultiaddr: OpaqueMultiaddr;722 OpaqueNetworkState: OpaqueNetworkState;723 OpaquePeerId: OpaquePeerId;724 OpaqueTimeSlot: OpaqueTimeSlot;725 OpenTip: OpenTip;726 OpenTipFinderTo225: OpenTipFinderTo225;727 OpenTipTip: OpenTipTip;728 OpenTipTo225: OpenTipTo225;729 OperatingMode: OperatingMode;730 Origin: Origin;731 OriginCaller: OriginCaller;732 OriginKindV0: OriginKindV0;733 OriginKindV1: OriginKindV1;734 OriginKindV2: OriginKindV2;735 OrmlVestingModuleCall: OrmlVestingModuleCall;736 OrmlVestingModuleError: OrmlVestingModuleError;737 OrmlVestingModuleEvent: OrmlVestingModuleEvent;738 OrmlVestingVestingSchedule: OrmlVestingVestingSchedule;739 OutboundHrmpMessage: OutboundHrmpMessage;740 OutboundLaneData: OutboundLaneData;741 OutboundMessageFee: OutboundMessageFee;742 OutboundPayload: OutboundPayload;743 OutboundStatus: OutboundStatus;744 Outcome: Outcome;745 OverweightIndex: OverweightIndex;746 Owner: Owner;747 PageCounter: PageCounter;748 PageIndexData: PageIndexData;749 PalletBalancesAccountData: PalletBalancesAccountData;750 PalletBalancesBalanceLock: PalletBalancesBalanceLock;751 PalletBalancesCall: PalletBalancesCall;752 PalletBalancesError: PalletBalancesError;753 PalletBalancesEvent: PalletBalancesEvent;754 PalletBalancesReasons: PalletBalancesReasons;755 PalletBalancesReleases: PalletBalancesReleases;756 PalletBalancesReserveData: PalletBalancesReserveData;757 PalletCallMetadataLatest: PalletCallMetadataLatest;758 PalletCallMetadataV14: PalletCallMetadataV14;759 PalletCommonError: PalletCommonError;760 PalletCommonEvent: PalletCommonEvent;761 PalletConstantMetadataLatest: PalletConstantMetadataLatest;762 PalletConstantMetadataV14: PalletConstantMetadataV14;763 PalletErrorMetadataLatest: PalletErrorMetadataLatest;764 PalletErrorMetadataV14: PalletErrorMetadataV14;765 PalletEthereumCall: PalletEthereumCall;766 PalletEthereumError: PalletEthereumError;767 PalletEthereumEvent: PalletEthereumEvent;768 PalletEthereumFakeTransactionFinalizer: PalletEthereumFakeTransactionFinalizer;769 PalletEventMetadataLatest: PalletEventMetadataLatest;770 PalletEventMetadataV14: PalletEventMetadataV14;771 PalletEvmAccountBasicCrossAccountIdRepr: PalletEvmAccountBasicCrossAccountIdRepr;772 PalletEvmCall: PalletEvmCall;773 PalletEvmCoderSubstrateError: PalletEvmCoderSubstrateError;774 PalletEvmContractHelpersError: PalletEvmContractHelpersError;775 PalletEvmContractHelpersSponsoringModeT: PalletEvmContractHelpersSponsoringModeT;776 PalletEvmError: PalletEvmError;777 PalletEvmEvent: PalletEvmEvent;778 PalletEvmMigrationCall: PalletEvmMigrationCall;779 PalletEvmMigrationError: PalletEvmMigrationError;780 PalletFungibleError: PalletFungibleError;781 PalletId: PalletId;782 PalletInflationCall: PalletInflationCall;783 PalletMetadataLatest: PalletMetadataLatest;784 PalletMetadataV14: PalletMetadataV14;785 PalletNonfungibleError: PalletNonfungibleError;786 PalletNonfungibleItemData: PalletNonfungibleItemData;787 PalletRefungibleError: PalletRefungibleError;788 PalletRefungibleItemData: PalletRefungibleItemData;789 PalletRmrkCoreCall: PalletRmrkCoreCall;790 PalletRmrkCoreError: PalletRmrkCoreError;791 PalletRmrkCoreEvent: PalletRmrkCoreEvent;792 PalletRmrkEquipCall: PalletRmrkEquipCall;793 PalletRmrkEquipError: PalletRmrkEquipError;794 PalletRmrkEquipEvent: PalletRmrkEquipEvent;795 PalletsOrigin: PalletsOrigin;796 PalletStorageMetadataLatest: PalletStorageMetadataLatest;797 PalletStorageMetadataV14: PalletStorageMetadataV14;798 PalletStructureCall: PalletStructureCall;799 PalletStructureError: PalletStructureError;800 PalletStructureEvent: PalletStructureEvent;801 PalletSudoCall: PalletSudoCall;802 PalletSudoError: PalletSudoError;803 PalletSudoEvent: PalletSudoEvent;804 PalletTemplateTransactionPaymentCall: PalletTemplateTransactionPaymentCall;805 PalletTemplateTransactionPaymentChargeTransactionPayment: PalletTemplateTransactionPaymentChargeTransactionPayment;806 PalletTimestampCall: PalletTimestampCall;807 PalletTransactionPaymentReleases: PalletTransactionPaymentReleases;808 PalletTreasuryCall: PalletTreasuryCall;809 PalletTreasuryError: PalletTreasuryError;810 PalletTreasuryEvent: PalletTreasuryEvent;811 PalletTreasuryProposal: PalletTreasuryProposal;812 PalletUniqueCall: PalletUniqueCall;813 PalletUniqueError: PalletUniqueError;814 PalletUniqueRawEvent: PalletUniqueRawEvent;815 PalletVersion: PalletVersion;816 PalletXcmCall: PalletXcmCall;817 PalletXcmError: PalletXcmError;818 PalletXcmEvent: PalletXcmEvent;819 ParachainDispatchOrigin: ParachainDispatchOrigin;820 ParachainInherentData: ParachainInherentData;821 ParachainProposal: ParachainProposal;822 ParachainsInherentData: ParachainsInherentData;823 ParaGenesisArgs: ParaGenesisArgs;824 ParaId: ParaId;825 ParaInfo: ParaInfo;826 ParaLifecycle: ParaLifecycle;827 Parameter: Parameter;828 ParaPastCodeMeta: ParaPastCodeMeta;829 ParaScheduling: ParaScheduling;830 ParathreadClaim: ParathreadClaim;831 ParathreadClaimQueue: ParathreadClaimQueue;832 ParathreadEntry: ParathreadEntry;833 ParaValidatorIndex: ParaValidatorIndex;834 Pays: Pays;835 Peer: Peer;836 PeerEndpoint: PeerEndpoint;837 PeerEndpointAddr: PeerEndpointAddr;838 PeerInfo: PeerInfo;839 PeerPing: PeerPing;840 PendingChange: PendingChange;841 PendingPause: PendingPause;842 PendingResume: PendingResume;843 Perbill: Perbill;844 Percent: Percent;845 PerDispatchClassU32: PerDispatchClassU32;846 PerDispatchClassWeight: PerDispatchClassWeight;847 PerDispatchClassWeightsPerClass: PerDispatchClassWeightsPerClass;848 Period: Period;849 Permill: Permill;850 PermissionLatest: PermissionLatest;851 PermissionsV1: PermissionsV1;852 PermissionVersions: PermissionVersions;853 Perquintill: Perquintill;854 PersistedValidationData: PersistedValidationData;855 PerU16: PerU16;856 Phantom: Phantom;857 PhantomData: PhantomData;858 PhantomTypeUpDataStructsBaseInfo: PhantomTypeUpDataStructsBaseInfo;859 PhantomTypeUpDataStructsCollectionInfo: PhantomTypeUpDataStructsCollectionInfo;860 PhantomTypeUpDataStructsNftChild: PhantomTypeUpDataStructsNftChild;861 PhantomTypeUpDataStructsNftInfo: PhantomTypeUpDataStructsNftInfo;862 PhantomTypeUpDataStructsPartType: PhantomTypeUpDataStructsPartType;863 PhantomTypeUpDataStructsPropertyInfo: PhantomTypeUpDataStructsPropertyInfo;864 PhantomTypeUpDataStructsResourceInfo: PhantomTypeUpDataStructsResourceInfo;865 PhantomTypeUpDataStructsRpcCollection: PhantomTypeUpDataStructsRpcCollection;866 PhantomTypeUpDataStructsTheme: PhantomTypeUpDataStructsTheme;867 PhantomTypeUpDataStructsTokenData: PhantomTypeUpDataStructsTokenData;868 Phase: Phase;869 PhragmenScore: PhragmenScore;870 Points: Points;871 PolkadotCorePrimitivesInboundDownwardMessage: PolkadotCorePrimitivesInboundDownwardMessage;872 PolkadotCorePrimitivesInboundHrmpMessage: PolkadotCorePrimitivesInboundHrmpMessage;873 PolkadotCorePrimitivesOutboundHrmpMessage: PolkadotCorePrimitivesOutboundHrmpMessage;874 PolkadotParachainPrimitivesXcmpMessageFormat: PolkadotParachainPrimitivesXcmpMessageFormat;875 PolkadotPrimitivesV2AbridgedHostConfiguration: PolkadotPrimitivesV2AbridgedHostConfiguration;876 PolkadotPrimitivesV2AbridgedHrmpChannel: PolkadotPrimitivesV2AbridgedHrmpChannel;877 PolkadotPrimitivesV2PersistedValidationData: PolkadotPrimitivesV2PersistedValidationData;878 PolkadotPrimitivesV2UpgradeRestriction: PolkadotPrimitivesV2UpgradeRestriction;879 PortableType: PortableType;880 PortableTypeV14: PortableTypeV14;881 Precommits: Precommits;882 PrefabWasmModule: PrefabWasmModule;883 PrefixedStorageKey: PrefixedStorageKey;884 PreimageStatus: PreimageStatus;885 PreimageStatusAvailable: PreimageStatusAvailable;886 PreRuntime: PreRuntime;887 Prevotes: Prevotes;888 Priority: Priority;889 PriorLock: PriorLock;890 PropIndex: PropIndex;891 Proposal: Proposal;892 ProposalIndex: ProposalIndex;893 ProxyAnnouncement: ProxyAnnouncement;894 ProxyDefinition: ProxyDefinition;895 ProxyState: ProxyState;896 ProxyType: ProxyType;897 QueryId: QueryId;898 QueryStatus: QueryStatus;899 QueueConfigData: QueueConfigData;900 QueuedParathread: QueuedParathread;901 Randomness: Randomness;902 Raw: Raw;903 RawAuraPreDigest: RawAuraPreDigest;904 RawBabePreDigest: RawBabePreDigest;905 RawBabePreDigestCompat: RawBabePreDigestCompat;906 RawBabePreDigestPrimary: RawBabePreDigestPrimary;907 RawBabePreDigestPrimaryTo159: RawBabePreDigestPrimaryTo159;908 RawBabePreDigestSecondaryPlain: RawBabePreDigestSecondaryPlain;909 RawBabePreDigestSecondaryTo159: RawBabePreDigestSecondaryTo159;910 RawBabePreDigestSecondaryVRF: RawBabePreDigestSecondaryVRF;911 RawBabePreDigestTo159: RawBabePreDigestTo159;912 RawOrigin: RawOrigin;913 RawSolution: RawSolution;914 RawSolutionTo265: RawSolutionTo265;915 RawSolutionWith16: RawSolutionWith16;916 RawSolutionWith24: RawSolutionWith24;917 RawVRFOutput: RawVRFOutput;918 ReadProof: ReadProof;919 ReadySolution: ReadySolution;920 Reasons: Reasons;921 RecoveryConfig: RecoveryConfig;922 RefCount: RefCount;923 RefCountTo259: RefCountTo259;924 ReferendumIndex: ReferendumIndex;925 ReferendumInfo: ReferendumInfo;926 ReferendumInfoFinished: ReferendumInfoFinished;927 ReferendumInfoTo239: ReferendumInfoTo239;928 ReferendumStatus: ReferendumStatus;929 RegisteredParachainInfo: RegisteredParachainInfo;930 RegistrarIndex: RegistrarIndex;931 RegistrarInfo: RegistrarInfo;932 Registration: Registration;933 RegistrationJudgement: RegistrationJudgement;934 RegistrationTo198: RegistrationTo198;935 RelayBlockNumber: RelayBlockNumber;936 RelayChainBlockNumber: RelayChainBlockNumber;937 RelayChainHash: RelayChainHash;938 RelayerId: RelayerId;939 RelayHash: RelayHash;940 Releases: Releases;941 Remark: Remark;942 Renouncing: Renouncing;943 RentProjection: RentProjection;944 ReplacementTimes: ReplacementTimes;945 ReportedRoundStates: ReportedRoundStates;946 Reporter: Reporter;947 ReportIdOf: ReportIdOf;948 ReserveData: ReserveData;949 ReserveIdentifier: ReserveIdentifier;950 Response: Response;951 ResponseV0: ResponseV0;952 ResponseV1: ResponseV1;953 ResponseV2: ResponseV2;954 ResponseV2Error: ResponseV2Error;955 ResponseV2Result: ResponseV2Result;956 Retriable: Retriable;957 RewardDestination: RewardDestination;958 RewardPoint: RewardPoint;959 RoundSnapshot: RoundSnapshot;960 RoundState: RoundState;961 RpcMethods: RpcMethods;962 RuntimeDbWeight: RuntimeDbWeight;963 RuntimeDispatchInfo: RuntimeDispatchInfo;964 RuntimeVersion: RuntimeVersion;965 RuntimeVersionApi: RuntimeVersionApi;966 RuntimeVersionPartial: RuntimeVersionPartial;967 Schedule: Schedule;968 Scheduled: Scheduled;969 ScheduledTo254: ScheduledTo254;970 SchedulePeriod: SchedulePeriod;971 SchedulePriority: SchedulePriority;972 ScheduleTo212: ScheduleTo212;973 ScheduleTo258: ScheduleTo258;974 ScheduleTo264: ScheduleTo264;975 Scheduling: Scheduling;976 Seal: Seal;977 SealV0: SealV0;978 SeatHolder: SeatHolder;979 SeedOf: SeedOf;980 ServiceQuality: ServiceQuality;981 SessionIndex: SessionIndex;982 SessionInfo: SessionInfo;983 SessionInfoValidatorGroup: SessionInfoValidatorGroup;984 SessionKeys1: SessionKeys1;985 SessionKeys10: SessionKeys10;986 SessionKeys10B: SessionKeys10B;987 SessionKeys2: SessionKeys2;988 SessionKeys3: SessionKeys3;989 SessionKeys4: SessionKeys4;990 SessionKeys5: SessionKeys5;991 SessionKeys6: SessionKeys6;992 SessionKeys6B: SessionKeys6B;993 SessionKeys7: SessionKeys7;994 SessionKeys7B: SessionKeys7B;995 SessionKeys8: SessionKeys8;996 SessionKeys8B: SessionKeys8B;997 SessionKeys9: SessionKeys9;998 SessionKeys9B: SessionKeys9B;999 SetId: SetId;1000 SetIndex: SetIndex;1001 Si0Field: Si0Field;1002 Si0LookupTypeId: Si0LookupTypeId;1003 Si0Path: Si0Path;1004 Si0Type: Si0Type;1005 Si0TypeDef: Si0TypeDef;1006 Si0TypeDefArray: Si0TypeDefArray;1007 Si0TypeDefBitSequence: Si0TypeDefBitSequence;1008 Si0TypeDefCompact: Si0TypeDefCompact;1009 Si0TypeDefComposite: Si0TypeDefComposite;1010 Si0TypeDefPhantom: Si0TypeDefPhantom;1011 Si0TypeDefPrimitive: Si0TypeDefPrimitive;1012 Si0TypeDefSequence: Si0TypeDefSequence;1013 Si0TypeDefTuple: Si0TypeDefTuple;1014 Si0TypeDefVariant: Si0TypeDefVariant;1015 Si0TypeParameter: Si0TypeParameter;1016 Si0Variant: Si0Variant;1017 Si1Field: Si1Field;1018 Si1LookupTypeId: Si1LookupTypeId;1019 Si1Path: Si1Path;1020 Si1Type: Si1Type;1021 Si1TypeDef: Si1TypeDef;1022 Si1TypeDefArray: Si1TypeDefArray;1023 Si1TypeDefBitSequence: Si1TypeDefBitSequence;1024 Si1TypeDefCompact: Si1TypeDefCompact;1025 Si1TypeDefComposite: Si1TypeDefComposite;1026 Si1TypeDefPrimitive: Si1TypeDefPrimitive;1027 Si1TypeDefSequence: Si1TypeDefSequence;1028 Si1TypeDefTuple: Si1TypeDefTuple;1029 Si1TypeDefVariant: Si1TypeDefVariant;1030 Si1TypeParameter: Si1TypeParameter;1031 Si1Variant: Si1Variant;1032 SiField: SiField;1033 Signature: Signature;1034 SignedAvailabilityBitfield: SignedAvailabilityBitfield;1035 SignedAvailabilityBitfields: SignedAvailabilityBitfields;1036 SignedBlock: SignedBlock;1037 SignedBlockWithJustification: SignedBlockWithJustification;1038 SignedBlockWithJustifications: SignedBlockWithJustifications;1039 SignedExtensionMetadataLatest: SignedExtensionMetadataLatest;1040 SignedExtensionMetadataV14: SignedExtensionMetadataV14;1041 SignedSubmission: SignedSubmission;1042 SignedSubmissionOf: SignedSubmissionOf;1043 SignedSubmissionTo276: SignedSubmissionTo276;1044 SignerPayload: SignerPayload;1045 SigningContext: SigningContext;1046 SiLookupTypeId: SiLookupTypeId;1047 SiPath: SiPath;1048 SiType: SiType;1049 SiTypeDef: SiTypeDef;1050 SiTypeDefArray: SiTypeDefArray;1051 SiTypeDefBitSequence: SiTypeDefBitSequence;1052 SiTypeDefCompact: SiTypeDefCompact;1053 SiTypeDefComposite: SiTypeDefComposite;1054 SiTypeDefPrimitive: SiTypeDefPrimitive;1055 SiTypeDefSequence: SiTypeDefSequence;1056 SiTypeDefTuple: SiTypeDefTuple;1057 SiTypeDefVariant: SiTypeDefVariant;1058 SiTypeParameter: SiTypeParameter;1059 SiVariant: SiVariant;1060 SlashingSpans: SlashingSpans;1061 SlashingSpansTo204: SlashingSpansTo204;1062 SlashJournalEntry: SlashJournalEntry;1063 Slot: Slot;1064 SlotNumber: SlotNumber;1065 SlotRange: SlotRange;1066 SlotRange10: SlotRange10;1067 SocietyJudgement: SocietyJudgement;1068 SocietyVote: SocietyVote;1069 SolutionOrSnapshotSize: SolutionOrSnapshotSize;1070 SolutionSupport: SolutionSupport;1071 SolutionSupports: SolutionSupports;1072 SpanIndex: SpanIndex;1073 SpanRecord: SpanRecord;1074 SpCoreEcdsaSignature: SpCoreEcdsaSignature;1075 SpCoreEd25519Signature: SpCoreEd25519Signature;1076 SpCoreSr25519Signature: SpCoreSr25519Signature;1077 SpecVersion: SpecVersion;1078 SpRuntimeArithmeticError: SpRuntimeArithmeticError;1079 SpRuntimeDigest: SpRuntimeDigest;1080 SpRuntimeDigestDigestItem: SpRuntimeDigestDigestItem;1081 SpRuntimeDispatchError: SpRuntimeDispatchError;1082 SpRuntimeModuleError: SpRuntimeModuleError;1083 SpRuntimeMultiSignature: SpRuntimeMultiSignature;1084 SpRuntimeTokenError: SpRuntimeTokenError;1085 SpRuntimeTransactionalError: SpRuntimeTransactionalError;1086 SpTrieStorageProof: SpTrieStorageProof;1087 SpVersionRuntimeVersion: SpVersionRuntimeVersion;1088 Sr25519Signature: Sr25519Signature;1089 StakingLedger: StakingLedger;1090 StakingLedgerTo223: StakingLedgerTo223;1091 StakingLedgerTo240: StakingLedgerTo240;1092 Statement: Statement;1093 StatementKind: StatementKind;1094 StorageChangeSet: StorageChangeSet;1095 StorageData: StorageData;1096 StorageDeposit: StorageDeposit;1097 StorageEntryMetadataLatest: StorageEntryMetadataLatest;1098 StorageEntryMetadataV10: StorageEntryMetadataV10;1099 StorageEntryMetadataV11: StorageEntryMetadataV11;1100 StorageEntryMetadataV12: StorageEntryMetadataV12;1101 StorageEntryMetadataV13: StorageEntryMetadataV13;1102 StorageEntryMetadataV14: StorageEntryMetadataV14;1103 StorageEntryMetadataV9: StorageEntryMetadataV9;1104 StorageEntryModifierLatest: StorageEntryModifierLatest;1105 StorageEntryModifierV10: StorageEntryModifierV10;1106 StorageEntryModifierV11: StorageEntryModifierV11;1107 StorageEntryModifierV12: StorageEntryModifierV12;1108 StorageEntryModifierV13: StorageEntryModifierV13;1109 StorageEntryModifierV14: StorageEntryModifierV14;1110 StorageEntryModifierV9: StorageEntryModifierV9;1111 StorageEntryTypeLatest: StorageEntryTypeLatest;1112 StorageEntryTypeV10: StorageEntryTypeV10;1113 StorageEntryTypeV11: StorageEntryTypeV11;1114 StorageEntryTypeV12: StorageEntryTypeV12;1115 StorageEntryTypeV13: StorageEntryTypeV13;1116 StorageEntryTypeV14: StorageEntryTypeV14;1117 StorageEntryTypeV9: StorageEntryTypeV9;1118 StorageHasher: StorageHasher;1119 StorageHasherV10: StorageHasherV10;1120 StorageHasherV11: StorageHasherV11;1121 StorageHasherV12: StorageHasherV12;1122 StorageHasherV13: StorageHasherV13;1123 StorageHasherV14: StorageHasherV14;1124 StorageHasherV9: StorageHasherV9;1125 StorageKey: StorageKey;1126 StorageKind: StorageKind;1127 StorageMetadataV10: StorageMetadataV10;1128 StorageMetadataV11: StorageMetadataV11;1129 StorageMetadataV12: StorageMetadataV12;1130 StorageMetadataV13: StorageMetadataV13;1131 StorageMetadataV9: StorageMetadataV9;1132 StorageProof: StorageProof;1133 StoredPendingChange: StoredPendingChange;1134 StoredState: StoredState;1135 StrikeCount: StrikeCount;1136 SubId: SubId;1137 SubmissionIndicesOf: SubmissionIndicesOf;1138 Supports: Supports;1139 SyncState: SyncState;1140 SystemInherentData: SystemInherentData;1141 SystemOrigin: SystemOrigin;1142 Tally: Tally;1143 TaskAddress: TaskAddress;1144 TAssetBalance: TAssetBalance;1145 TAssetDepositBalance: TAssetDepositBalance;1146 Text: Text;1147 Timepoint: Timepoint;1148 TokenError: TokenError;1149 TombstoneContractInfo: TombstoneContractInfo;1150 TraceBlockResponse: TraceBlockResponse;1151 TraceError: TraceError;1152 TransactionInfo: TransactionInfo;1153 TransactionPriority: TransactionPriority;1154 TransactionStorageProof: TransactionStorageProof;1155 TransactionV0: TransactionV0;1156 TransactionV1: TransactionV1;1157 TransactionV2: TransactionV2;1158 TransactionValidityError: TransactionValidityError;1159 TransientValidationData: TransientValidationData;1160 TreasuryProposal: TreasuryProposal;1161 TrieId: TrieId;1162 TrieIndex: TrieIndex;1163 Type: Type;1164 u128: u128;1165 U128: U128;1166 u16: u16;1167 U16: U16;1168 u256: u256;1169 U256: U256;1170 u32: u32;1171 U32: U32;1172 U32F32: U32F32;1173 u64: u64;1174 U64: U64;1175 u8: u8;1176 U8: U8;1177 UnappliedSlash: UnappliedSlash;1178 UnappliedSlashOther: UnappliedSlashOther;1179 UncleEntryItem: UncleEntryItem;1180 UnknownTransaction: UnknownTransaction;1181 UnlockChunk: UnlockChunk;1182 UnrewardedRelayer: UnrewardedRelayer;1183 UnrewardedRelayersState: UnrewardedRelayersState;1184 UpDataStructsAccessMode: UpDataStructsAccessMode;1185 UpDataStructsCollection: UpDataStructsCollection;1186 UpDataStructsCollectionField: UpDataStructsCollectionField;1187 UpDataStructsCollectionLimits: UpDataStructsCollectionLimits;1188 UpDataStructsCollectionMode: UpDataStructsCollectionMode;1189 UpDataStructsCollectionStats: UpDataStructsCollectionStats;1190 UpDataStructsCreateCollectionData: UpDataStructsCreateCollectionData;1191 UpDataStructsCreateFungibleData: UpDataStructsCreateFungibleData;1192 UpDataStructsCreateItemData: UpDataStructsCreateItemData;1193 UpDataStructsCreateItemExData: UpDataStructsCreateItemExData;1194 UpDataStructsCreateNftData: UpDataStructsCreateNftData;1195 UpDataStructsCreateNftExData: UpDataStructsCreateNftExData;1196 UpDataStructsCreateReFungibleData: UpDataStructsCreateReFungibleData;1197 UpDataStructsCreateRefungibleExData: UpDataStructsCreateRefungibleExData;1198 UpDataStructsNestingRule: UpDataStructsNestingRule;1199 UpDataStructsProperties: UpDataStructsProperties;1200 UpDataStructsPropertiesMapBoundedVec: UpDataStructsPropertiesMapBoundedVec;1201 UpDataStructsPropertiesMapPropertyPermission: UpDataStructsPropertiesMapPropertyPermission;1202 UpDataStructsProperty: UpDataStructsProperty;1203 UpDataStructsPropertyKeyPermission: UpDataStructsPropertyKeyPermission;1204 UpDataStructsPropertyPermission: UpDataStructsPropertyPermission;1205 UpDataStructsRmrkAccountIdOrCollectionNftTuple: UpDataStructsRmrkAccountIdOrCollectionNftTuple;1206 UpDataStructsRmrkBaseInfo: UpDataStructsRmrkBaseInfo;1207 UpDataStructsRmrkBasicResource: UpDataStructsRmrkBasicResource;1208 UpDataStructsRmrkCollectionInfo: UpDataStructsRmrkCollectionInfo;1209 UpDataStructsRmrkComposableResource: UpDataStructsRmrkComposableResource;1210 UpDataStructsRmrkEquippableList: UpDataStructsRmrkEquippableList;1211 UpDataStructsRmrkFixedPart: UpDataStructsRmrkFixedPart;1212 UpDataStructsRmrkNftChild: UpDataStructsRmrkNftChild;1213 UpDataStructsRmrkNftInfo: UpDataStructsRmrkNftInfo;1214 UpDataStructsRmrkPartType: UpDataStructsRmrkPartType;1215 UpDataStructsRmrkPropertyInfo: UpDataStructsRmrkPropertyInfo;1216 UpDataStructsRmrkResourceInfo: UpDataStructsRmrkResourceInfo;1217 UpDataStructsRmrkResourceTypes: UpDataStructsRmrkResourceTypes;1218 UpDataStructsRmrkRoyaltyInfo: UpDataStructsRmrkRoyaltyInfo;1219 UpDataStructsRmrkSlotPart: UpDataStructsRmrkSlotPart;1220 UpDataStructsRmrkSlotResource: UpDataStructsRmrkSlotResource;1221 UpDataStructsRmrkTheme: UpDataStructsRmrkTheme;1222 UpDataStructsRmrkThemeProperty: UpDataStructsRmrkThemeProperty;1223 UpDataStructsRpcCollection: UpDataStructsRpcCollection;1224 UpDataStructsSchemaVersion: UpDataStructsSchemaVersion;1225 UpDataStructsSponsoringRateLimit: UpDataStructsSponsoringRateLimit;1226 UpDataStructsSponsorshipState: UpDataStructsSponsorshipState;1227 UpDataStructsTokenData: UpDataStructsTokenData;1228 UpgradeGoAhead: UpgradeGoAhead;1229 UpgradeRestriction: UpgradeRestriction;1230 UpwardMessage: UpwardMessage;1231 usize: usize;1232 USize: USize;1233 ValidationCode: ValidationCode;1234 ValidationCodeHash: ValidationCodeHash;1235 ValidationData: ValidationData;1236 ValidationDataType: ValidationDataType;1237 ValidationFunctionParams: ValidationFunctionParams;1238 ValidatorCount: ValidatorCount;1239 ValidatorId: ValidatorId;1240 ValidatorIdOf: ValidatorIdOf;1241 ValidatorIndex: ValidatorIndex;1242 ValidatorIndexCompact: ValidatorIndexCompact;1243 ValidatorPrefs: ValidatorPrefs;1244 ValidatorPrefsTo145: ValidatorPrefsTo145;1245 ValidatorPrefsTo196: ValidatorPrefsTo196;1246 ValidatorPrefsWithBlocked: ValidatorPrefsWithBlocked;1247 ValidatorPrefsWithCommission: ValidatorPrefsWithCommission;1248 ValidatorSetId: ValidatorSetId;1249 ValidatorSignature: ValidatorSignature;1250 ValidDisputeStatementKind: ValidDisputeStatementKind;1251 ValidityAttestation: ValidityAttestation;1252 VecInboundHrmpMessage: VecInboundHrmpMessage;1253 VersionedMultiAsset: VersionedMultiAsset;1254 VersionedMultiAssets: VersionedMultiAssets;1255 VersionedMultiLocation: VersionedMultiLocation;1256 VersionedResponse: VersionedResponse;1257 VersionedXcm: VersionedXcm;1258 VersionMigrationStage: VersionMigrationStage;1259 VestingInfo: VestingInfo;1260 VestingSchedule: VestingSchedule;1261 Vote: Vote;1262 VoteIndex: VoteIndex;1263 Voter: Voter;1264 VoterInfo: VoterInfo;1265 Votes: Votes;1266 VotesTo230: VotesTo230;1267 VoteThreshold: VoteThreshold;1268 VoteWeight: VoteWeight;1269 Voting: Voting;1270 VotingDelegating: VotingDelegating;1271 VotingDirect: VotingDirect;1272 VotingDirectVote: VotingDirectVote;1273 VouchingStatus: VouchingStatus;1274 VrfData: VrfData;1275 VrfOutput: VrfOutput;1276 VrfProof: VrfProof;1277 Weight: Weight;1278 WeightLimitV2: WeightLimitV2;1279 WeightMultiplier: WeightMultiplier;1280 WeightPerClass: WeightPerClass;1281 WeightToFeeCoefficient: WeightToFeeCoefficient;1282 WildFungibility: WildFungibility;1283 WildFungibilityV0: WildFungibilityV0;1284 WildFungibilityV1: WildFungibilityV1;1285 WildFungibilityV2: WildFungibilityV2;1286 WildMultiAsset: WildMultiAsset;1287 WildMultiAssetV1: WildMultiAssetV1;1288 WildMultiAssetV2: WildMultiAssetV2;1289 WinnersData: WinnersData;1290 WinnersData10: WinnersData10;1291 WinnersDataTuple: WinnersDataTuple;1292 WinnersDataTuple10: WinnersDataTuple10;1293 WinningData: WinningData;1294 WinningData10: WinningData10;1295 WinningDataEntry: WinningDataEntry;1296 WithdrawReasons: WithdrawReasons;1297 Xcm: Xcm;1298 XcmAssetId: XcmAssetId;1299 XcmDoubleEncoded: XcmDoubleEncoded;1300 XcmError: XcmError;1301 XcmErrorV0: XcmErrorV0;1302 XcmErrorV1: XcmErrorV1;1303 XcmErrorV2: XcmErrorV2;1304 XcmOrder: XcmOrder;1305 XcmOrderV0: XcmOrderV0;1306 XcmOrderV1: XcmOrderV1;1307 XcmOrderV2: XcmOrderV2;1308 XcmOrigin: XcmOrigin;1309 XcmOriginKind: XcmOriginKind;1310 XcmpMessageFormat: XcmpMessageFormat;1311 XcmV0: XcmV0;1312 XcmV0Junction: XcmV0Junction;1313 XcmV0JunctionBodyId: XcmV0JunctionBodyId;1314 XcmV0JunctionBodyPart: XcmV0JunctionBodyPart;1315 XcmV0JunctionNetworkId: XcmV0JunctionNetworkId;1316 XcmV0MultiAsset: XcmV0MultiAsset;1317 XcmV0MultiLocation: XcmV0MultiLocation;1318 XcmV0Order: XcmV0Order;1319 XcmV0OriginKind: XcmV0OriginKind;1320 XcmV0Response: XcmV0Response;1321 XcmV0Xcm: XcmV0Xcm;1322 XcmV1: XcmV1;1323 XcmV1Junction: XcmV1Junction;1324 XcmV1MultiAsset: XcmV1MultiAsset;1325 XcmV1MultiassetAssetId: XcmV1MultiassetAssetId;1326 XcmV1MultiassetAssetInstance: XcmV1MultiassetAssetInstance;1327 XcmV1MultiassetFungibility: XcmV1MultiassetFungibility;1328 XcmV1MultiassetMultiAssetFilter: XcmV1MultiassetMultiAssetFilter;1329 XcmV1MultiassetMultiAssets: XcmV1MultiassetMultiAssets;1330 XcmV1MultiassetWildFungibility: XcmV1MultiassetWildFungibility;1331 XcmV1MultiassetWildMultiAsset: XcmV1MultiassetWildMultiAsset;1332 XcmV1MultiLocation: XcmV1MultiLocation;1333 XcmV1MultilocationJunctions: XcmV1MultilocationJunctions;1334 XcmV1Order: XcmV1Order;1335 XcmV1Response: XcmV1Response;1336 XcmV1Xcm: XcmV1Xcm;1337 XcmV2: XcmV2;1338 XcmV2Instruction: XcmV2Instruction;1339 XcmV2Response: XcmV2Response;1340 XcmV2TraitsError: XcmV2TraitsError;1341 XcmV2TraitsOutcome: XcmV2TraitsOutcome;1342 XcmV2WeightLimit: XcmV2WeightLimit;1343 XcmV2Xcm: XcmV2Xcm;1344 XcmVersion: XcmVersion;1345 XcmVersionedMultiAssets: XcmVersionedMultiAssets;1346 XcmVersionedMultiLocation: XcmVersionedMultiLocation;1347 XcmVersionedXcm: XcmVersionedXcm;1348 } // InterfaceTypes1349} // declare module1// Auto-generated via `yarn polkadot-types-from-defs`, do not edit2/* eslint-disable */34import type { Data, StorageKey } from '@polkadot/types';5import type { BitVec, Bool, Bytes, I128, I16, I256, I32, I64, I8, Json, Null, Raw, Text, Type, U128, U16, U256, U32, U64, U8, USize, bool, i128, i16, i256, i32, i64, i8, u128, u16, u256, u32, u64, u8, usize } from '@polkadot/types-codec';6import type { AssetApproval, AssetApprovalKey, AssetBalance, AssetDestroyWitness, AssetDetails, AssetMetadata, TAssetBalance, TAssetDepositBalance } from '@polkadot/types/interfaces/assets';7import type { BlockAttestations, IncludedBlocks, MoreAttestations } from '@polkadot/types/interfaces/attestations';8import type { RawAuraPreDigest } from '@polkadot/types/interfaces/aura';9import type { ExtrinsicOrHash, ExtrinsicStatus } from '@polkadot/types/interfaces/author';10import type { UncleEntryItem } from '@polkadot/types/interfaces/authorship';11import type { AllowedSlots, BabeAuthorityWeight, BabeBlockWeight, BabeEpochConfiguration, BabeEquivocationProof, BabeWeight, EpochAuthorship, MaybeRandomness, MaybeVrf, NextConfigDescriptor, NextConfigDescriptorV1, Randomness, RawBabePreDigest, RawBabePreDigestCompat, RawBabePreDigestPrimary, RawBabePreDigestPrimaryTo159, RawBabePreDigestSecondaryPlain, RawBabePreDigestSecondaryTo159, RawBabePreDigestSecondaryVRF, RawBabePreDigestTo159, SlotNumber, VrfData, VrfOutput, VrfProof } from '@polkadot/types/interfaces/babe';12import type { AccountData, BalanceLock, BalanceLockTo212, BalanceStatus, Reasons, ReserveData, ReserveIdentifier, VestingSchedule, WithdrawReasons } from '@polkadot/types/interfaces/balances';13import type { BeefyCommitment, BeefyId, BeefyNextAuthoritySet, BeefyPayload, BeefySignedCommitment, MmrRootHash, ValidatorSetId } from '@polkadot/types/interfaces/beefy';14import type { BridgeMessageId, BridgedBlockHash, BridgedBlockNumber, BridgedHeader, CallOrigin, ChainId, DeliveredMessages, DispatchFeePayment, InboundLaneData, InboundRelayer, InitializationData, LaneId, MessageData, MessageKey, MessageNonce, MessagesDeliveryProofOf, MessagesProofOf, OperatingMode, OutboundLaneData, OutboundMessageFee, OutboundPayload, Parameter, RelayerId, UnrewardedRelayer, UnrewardedRelayersState } from '@polkadot/types/interfaces/bridges';15import type { BlockHash } from '@polkadot/types/interfaces/chain';16import type { PrefixedStorageKey } from '@polkadot/types/interfaces/childstate';17import type { StatementKind } from '@polkadot/types/interfaces/claims';18import type { CollectiveOrigin, MemberCount, ProposalIndex, Votes, VotesTo230 } from '@polkadot/types/interfaces/collective';19import type { AuthorityId, RawVRFOutput } from '@polkadot/types/interfaces/consensus';20import type { AliveContractInfo, CodeHash, CodeSource, CodeUploadRequest, CodeUploadResult, CodeUploadResultValue, ContractCallFlags, ContractCallRequest, ContractExecResult, ContractExecResultErr, ContractExecResultErrModule, ContractExecResultOk, ContractExecResultResult, ContractExecResultSuccessTo255, ContractExecResultSuccessTo260, ContractExecResultTo255, ContractExecResultTo260, ContractExecResultTo267, ContractInfo, ContractInstantiateResult, ContractInstantiateResultTo267, ContractInstantiateResultTo299, ContractReturnFlags, ContractStorageKey, DeletedContract, ExecReturnValue, Gas, HostFnWeights, HostFnWeightsTo264, InstantiateRequest, InstantiateRequestV1, InstantiateRequestV2, InstantiateReturnValue, InstantiateReturnValueOk, InstantiateReturnValueTo267, InstructionWeights, Limits, LimitsTo264, PrefabWasmModule, RentProjection, Schedule, ScheduleTo212, ScheduleTo258, ScheduleTo264, SeedOf, StorageDeposit, TombstoneContractInfo, TrieId } from '@polkadot/types/interfaces/contracts';21import type { ContractConstructorSpecLatest, ContractConstructorSpecV0, ContractConstructorSpecV1, ContractConstructorSpecV2, ContractConstructorSpecV3, ContractContractSpecV0, ContractContractSpecV1, ContractContractSpecV2, ContractContractSpecV3, ContractCryptoHasher, ContractDiscriminant, ContractDisplayName, ContractEventParamSpecLatest, ContractEventParamSpecV0, ContractEventParamSpecV2, ContractEventSpecLatest, ContractEventSpecV0, ContractEventSpecV1, ContractEventSpecV2, ContractLayoutArray, ContractLayoutCell, ContractLayoutEnum, ContractLayoutHash, ContractLayoutHashingStrategy, ContractLayoutKey, ContractLayoutStruct, ContractLayoutStructField, ContractMessageParamSpecLatest, ContractMessageParamSpecV0, ContractMessageParamSpecV2, ContractMessageSpecLatest, ContractMessageSpecV0, ContractMessageSpecV1, ContractMessageSpecV2, ContractMetadata, ContractMetadataLatest, ContractMetadataV0, ContractMetadataV1, ContractMetadataV2, ContractMetadataV3, ContractProject, ContractProjectContract, ContractProjectInfo, ContractProjectSource, ContractProjectV0, ContractSelector, ContractStorageLayout, ContractTypeSpec } from '@polkadot/types/interfaces/contractsAbi';22import type { FundIndex, FundInfo, LastContribution, TrieIndex } from '@polkadot/types/interfaces/crowdloan';23import type { ConfigData, MessageId, OverweightIndex, PageCounter, PageIndexData } from '@polkadot/types/interfaces/cumulus';24import type { AccountVote, AccountVoteSplit, AccountVoteStandard, Conviction, Delegations, PreimageStatus, PreimageStatusAvailable, PriorLock, PropIndex, Proposal, ProxyState, ReferendumIndex, ReferendumInfo, ReferendumInfoFinished, ReferendumInfoTo239, ReferendumStatus, Tally, Voting, VotingDelegating, VotingDirect, VotingDirectVote } from '@polkadot/types/interfaces/democracy';25import type { BlockStats } from '@polkadot/types/interfaces/dev';26import type { ApprovalFlag, DefunctVoter, Renouncing, SetIndex, Vote, VoteIndex, VoteThreshold, VoterInfo } from '@polkadot/types/interfaces/elections';27import type { CreatedBlock, ImportedAux } from '@polkadot/types/interfaces/engine';28import type { BlockV0, BlockV1, BlockV2, EIP1559Transaction, EIP2930Transaction, EthAccessList, EthAccessListItem, EthAccount, EthAddress, EthBlock, EthBloom, EthCallRequest, EthFilter, EthFilterAddress, EthFilterChanges, EthFilterTopic, EthFilterTopicEntry, EthFilterTopicInner, EthHeader, EthLog, EthReceipt, EthRichBlock, EthRichHeader, EthStorageProof, EthSubKind, EthSubParams, EthSubResult, EthSyncInfo, EthSyncStatus, EthTransaction, EthTransactionAction, EthTransactionCondition, EthTransactionRequest, EthTransactionSignature, EthTransactionStatus, EthWork, EthereumAccountId, EthereumAddress, EthereumLookupSource, EthereumSignature, LegacyTransaction, TransactionV0, TransactionV1, TransactionV2 } from '@polkadot/types/interfaces/eth';29import type { EvmAccount, EvmLog, EvmVicinity, ExitError, ExitFatal, ExitReason, ExitRevert, ExitSucceed } from '@polkadot/types/interfaces/evm';30import type { AnySignature, EcdsaSignature, Ed25519Signature, Era, Extrinsic, ExtrinsicEra, ExtrinsicPayload, ExtrinsicPayloadUnknown, ExtrinsicPayloadV4, ExtrinsicSignature, ExtrinsicSignatureV4, ExtrinsicUnknown, ExtrinsicV4, ImmortalEra, MortalEra, MultiSignature, Signature, SignerPayload, Sr25519Signature } from '@polkadot/types/interfaces/extrinsics';31import type { AssetOptions, Owner, PermissionLatest, PermissionVersions, PermissionsV1 } from '@polkadot/types/interfaces/genericAsset';32import type { ActiveGilt, ActiveGiltsTotal, ActiveIndex, GiltBid } from '@polkadot/types/interfaces/gilt';33import type { AuthorityIndex, AuthorityList, AuthoritySet, AuthoritySetChange, AuthoritySetChanges, AuthorityWeight, DelayKind, DelayKindBest, EncodedFinalityProofs, ForkTreePendingChange, ForkTreePendingChangeNode, GrandpaCommit, GrandpaEquivocation, GrandpaEquivocationProof, GrandpaEquivocationValue, GrandpaJustification, GrandpaPrecommit, GrandpaPrevote, GrandpaSignedPrecommit, JustificationNotification, KeyOwnerProof, NextAuthority, PendingChange, PendingPause, PendingResume, Precommits, Prevotes, ReportedRoundStates, RoundState, SetId, StoredPendingChange, StoredState } from '@polkadot/types/interfaces/grandpa';34import type { IdentityFields, IdentityInfo, IdentityInfoAdditional, IdentityInfoTo198, IdentityJudgement, RegistrarIndex, RegistrarInfo, Registration, RegistrationJudgement, RegistrationTo198 } from '@polkadot/types/interfaces/identity';35import type { AuthIndex, AuthoritySignature, Heartbeat, HeartbeatTo244, OpaqueMultiaddr, OpaqueNetworkState, OpaquePeerId } from '@polkadot/types/interfaces/imOnline';36import type { CallIndex, LotteryConfig } from '@polkadot/types/interfaces/lottery';37import type { ErrorMetadataLatest, ErrorMetadataV10, ErrorMetadataV11, ErrorMetadataV12, ErrorMetadataV13, ErrorMetadataV14, ErrorMetadataV9, EventMetadataLatest, EventMetadataV10, EventMetadataV11, EventMetadataV12, EventMetadataV13, EventMetadataV14, EventMetadataV9, ExtrinsicMetadataLatest, ExtrinsicMetadataV11, ExtrinsicMetadataV12, ExtrinsicMetadataV13, ExtrinsicMetadataV14, FunctionArgumentMetadataLatest, FunctionArgumentMetadataV10, FunctionArgumentMetadataV11, FunctionArgumentMetadataV12, FunctionArgumentMetadataV13, FunctionArgumentMetadataV14, FunctionArgumentMetadataV9, FunctionMetadataLatest, FunctionMetadataV10, FunctionMetadataV11, FunctionMetadataV12, FunctionMetadataV13, FunctionMetadataV14, FunctionMetadataV9, MetadataAll, MetadataLatest, MetadataV10, MetadataV11, MetadataV12, MetadataV13, MetadataV14, MetadataV9, ModuleConstantMetadataV10, ModuleConstantMetadataV11, ModuleConstantMetadataV12, ModuleConstantMetadataV13, ModuleConstantMetadataV9, ModuleMetadataV10, ModuleMetadataV11, ModuleMetadataV12, ModuleMetadataV13, ModuleMetadataV9, PalletCallMetadataLatest, PalletCallMetadataV14, PalletConstantMetadataLatest, PalletConstantMetadataV14, PalletErrorMetadataLatest, PalletErrorMetadataV14, PalletEventMetadataLatest, PalletEventMetadataV14, PalletMetadataLatest, PalletMetadataV14, PalletStorageMetadataLatest, PalletStorageMetadataV14, PortableType, PortableTypeV14, SignedExtensionMetadataLatest, SignedExtensionMetadataV14, StorageEntryMetadataLatest, StorageEntryMetadataV10, StorageEntryMetadataV11, StorageEntryMetadataV12, StorageEntryMetadataV13, StorageEntryMetadataV14, StorageEntryMetadataV9, StorageEntryModifierLatest, StorageEntryModifierV10, StorageEntryModifierV11, StorageEntryModifierV12, StorageEntryModifierV13, StorageEntryModifierV14, StorageEntryModifierV9, StorageEntryTypeLatest, StorageEntryTypeV10, StorageEntryTypeV11, StorageEntryTypeV12, StorageEntryTypeV13, StorageEntryTypeV14, StorageEntryTypeV9, StorageHasher, StorageHasherV10, StorageHasherV11, StorageHasherV12, StorageHasherV13, StorageHasherV14, StorageHasherV9, StorageMetadataV10, StorageMetadataV11, StorageMetadataV12, StorageMetadataV13, StorageMetadataV9 } from '@polkadot/types/interfaces/metadata';38import type { MmrLeafProof } from '@polkadot/types/interfaces/mmr';39import type { StorageKind } from '@polkadot/types/interfaces/offchain';40import type { DeferredOffenceOf, Kind, OffenceDetails, Offender, OpaqueTimeSlot, ReportIdOf, Reporter } from '@polkadot/types/interfaces/offences';41import type { AbridgedCandidateReceipt, AbridgedHostConfiguration, AbridgedHrmpChannel, AssignmentId, AssignmentKind, AttestedCandidate, AuctionIndex, AuthorityDiscoveryId, AvailabilityBitfield, AvailabilityBitfieldRecord, BackedCandidate, Bidder, BufferedSessionChange, CandidateCommitments, CandidateDescriptor, CandidateHash, CandidateInfo, CandidatePendingAvailability, CandidateReceipt, CollatorId, CollatorSignature, CommittedCandidateReceipt, CoreAssignment, CoreIndex, CoreOccupied, DisputeLocation, DisputeResult, DisputeState, DisputeStatement, DisputeStatementSet, DoubleVoteReport, DownwardMessage, ExplicitDisputeStatement, GlobalValidationData, GlobalValidationSchedule, GroupIndex, HeadData, HostConfiguration, HrmpChannel, HrmpChannelId, HrmpOpenChannelRequest, InboundDownwardMessage, InboundHrmpMessage, InboundHrmpMessages, IncomingParachain, IncomingParachainDeploy, IncomingParachainFixed, InvalidDisputeStatementKind, LeasePeriod, LeasePeriodOf, LocalValidationData, MessageIngestionType, MessageQueueChain, MessagingStateSnapshot, MessagingStateSnapshotEgressEntry, MultiDisputeStatementSet, NewBidder, OutboundHrmpMessage, ParaGenesisArgs, ParaId, ParaInfo, ParaLifecycle, ParaPastCodeMeta, ParaScheduling, ParaValidatorIndex, ParachainDispatchOrigin, ParachainInherentData, ParachainProposal, ParachainsInherentData, ParathreadClaim, ParathreadClaimQueue, ParathreadEntry, PersistedValidationData, QueuedParathread, RegisteredParachainInfo, RelayBlockNumber, RelayChainBlockNumber, RelayChainHash, RelayHash, Remark, ReplacementTimes, Retriable, Scheduling, ServiceQuality, SessionInfo, SessionInfoValidatorGroup, SignedAvailabilityBitfield, SignedAvailabilityBitfields, SigningContext, SlotRange, SlotRange10, Statement, SubId, SystemInherentData, TransientValidationData, UpgradeGoAhead, UpgradeRestriction, UpwardMessage, ValidDisputeStatementKind, ValidationCode, ValidationCodeHash, ValidationData, ValidationDataType, ValidationFunctionParams, ValidatorSignature, ValidityAttestation, VecInboundHrmpMessage, WinnersData, WinnersData10, WinnersDataTuple, WinnersDataTuple10, WinningData, WinningData10, WinningDataEntry } from '@polkadot/types/interfaces/parachains';42import type { FeeDetails, InclusionFee, RuntimeDispatchInfo } from '@polkadot/types/interfaces/payment';43import type { Approvals } from '@polkadot/types/interfaces/poll';44import type { ProxyAnnouncement, ProxyDefinition, ProxyType } from '@polkadot/types/interfaces/proxy';45import type { AccountStatus, AccountValidity } from '@polkadot/types/interfaces/purchase';46import type { ActiveRecovery, RecoveryConfig } from '@polkadot/types/interfaces/recovery';47import type { RpcMethods } from '@polkadot/types/interfaces/rpc';48import type { AccountId, AccountId20, AccountId32, AccountIdOf, AccountIndex, Address, AssetId, Balance, BalanceOf, Block, BlockNumber, BlockNumberFor, BlockNumberOf, Call, CallHash, CallHashOf, ChangesTrieConfiguration, ChangesTrieSignal, CodecHash, Consensus, ConsensusEngineId, CrateVersion, Digest, DigestItem, EncodedJustification, ExtrinsicsWeight, Fixed128, Fixed64, FixedI128, FixedI64, FixedU128, FixedU64, H1024, H128, H160, H2048, H256, H32, H512, H64, Hash, Header, HeaderPartial, I32F32, Index, IndicesLookupSource, Justification, Justifications, KeyTypeId, KeyValue, LockIdentifier, LookupSource, LookupTarget, ModuleId, Moment, MultiAddress, MultiSigner, OpaqueCall, Origin, OriginCaller, PalletId, PalletVersion, PalletsOrigin, Pays, PerU16, Perbill, Percent, Permill, Perquintill, Phantom, PhantomData, PreRuntime, Releases, RuntimeDbWeight, Seal, SealV0, SignedBlock, SignedBlockWithJustification, SignedBlockWithJustifications, Slot, StorageData, StorageProof, TransactionInfo, TransactionPriority, TransactionStorageProof, U32F32, ValidatorId, ValidatorIdOf, Weight, WeightMultiplier } from '@polkadot/types/interfaces/runtime';49import type { Si0Field, Si0LookupTypeId, Si0Path, Si0Type, Si0TypeDef, Si0TypeDefArray, Si0TypeDefBitSequence, Si0TypeDefCompact, Si0TypeDefComposite, Si0TypeDefPhantom, Si0TypeDefPrimitive, Si0TypeDefSequence, Si0TypeDefTuple, Si0TypeDefVariant, Si0TypeParameter, Si0Variant, Si1Field, Si1LookupTypeId, Si1Path, Si1Type, Si1TypeDef, Si1TypeDefArray, Si1TypeDefBitSequence, Si1TypeDefCompact, Si1TypeDefComposite, Si1TypeDefPrimitive, Si1TypeDefSequence, Si1TypeDefTuple, Si1TypeDefVariant, Si1TypeParameter, Si1Variant, SiField, SiLookupTypeId, SiPath, SiType, SiTypeDef, SiTypeDefArray, SiTypeDefBitSequence, SiTypeDefCompact, SiTypeDefComposite, SiTypeDefPrimitive, SiTypeDefSequence, SiTypeDefTuple, SiTypeDefVariant, SiTypeParameter, SiVariant } from '@polkadot/types/interfaces/scaleInfo';50import type { Period, Priority, SchedulePeriod, SchedulePriority, Scheduled, ScheduledTo254, TaskAddress } from '@polkadot/types/interfaces/scheduler';51import type { BeefyKey, FullIdentification, IdentificationTuple, Keys, MembershipProof, SessionIndex, SessionKeys1, SessionKeys10, SessionKeys10B, SessionKeys2, SessionKeys3, SessionKeys4, SessionKeys5, SessionKeys6, SessionKeys6B, SessionKeys7, SessionKeys7B, SessionKeys8, SessionKeys8B, SessionKeys9, SessionKeys9B, ValidatorCount } from '@polkadot/types/interfaces/session';52import type { Bid, BidKind, SocietyJudgement, SocietyVote, StrikeCount, VouchingStatus } from '@polkadot/types/interfaces/society';53import type { ActiveEraInfo, CompactAssignments, CompactAssignmentsTo257, CompactAssignmentsTo265, CompactAssignmentsWith16, CompactAssignmentsWith24, CompactScore, CompactScoreCompact, ElectionCompute, ElectionPhase, ElectionResult, ElectionScore, ElectionSize, ElectionStatus, EraIndex, EraPoints, EraRewardPoints, EraRewards, Exposure, ExtendedBalance, Forcing, IndividualExposure, KeyType, MomentOf, Nominations, NominatorIndex, NominatorIndexCompact, OffchainAccuracy, OffchainAccuracyCompact, PhragmenScore, Points, RawSolution, RawSolutionTo265, RawSolutionWith16, RawSolutionWith24, ReadySolution, RewardDestination, RewardPoint, RoundSnapshot, SeatHolder, SignedSubmission, SignedSubmissionOf, SignedSubmissionTo276, SlashJournalEntry, SlashingSpans, SlashingSpansTo204, SolutionOrSnapshotSize, SolutionSupport, SolutionSupports, SpanIndex, SpanRecord, StakingLedger, StakingLedgerTo223, StakingLedgerTo240, SubmissionIndicesOf, Supports, UnappliedSlash, UnappliedSlashOther, UnlockChunk, ValidatorIndex, ValidatorIndexCompact, ValidatorPrefs, ValidatorPrefsTo145, ValidatorPrefsTo196, ValidatorPrefsWithBlocked, ValidatorPrefsWithCommission, VoteWeight, Voter } from '@polkadot/types/interfaces/staking';54import type { ApiId, BlockTrace, BlockTraceEvent, BlockTraceEventData, BlockTraceSpan, KeyValueOption, MigrationStatusResult, ReadProof, RuntimeVersion, RuntimeVersionApi, RuntimeVersionPartial, SpecVersion, StorageChangeSet, TraceBlockResponse, TraceError } from '@polkadot/types/interfaces/state';55import type { WeightToFeeCoefficient } from '@polkadot/types/interfaces/support';56import type { AccountInfo, AccountInfoWithDualRefCount, AccountInfoWithProviders, AccountInfoWithRefCount, AccountInfoWithRefCountU8, AccountInfoWithTripleRefCount, ApplyExtrinsicResult, ArithmeticError, BlockLength, BlockWeights, ChainProperties, ChainType, ConsumedWeight, DigestOf, DispatchClass, DispatchError, DispatchErrorModule, DispatchErrorModuleU8a, DispatchErrorTo198, DispatchInfo, DispatchInfoTo190, DispatchInfoTo244, DispatchOutcome, DispatchResult, DispatchResultOf, DispatchResultTo198, Event, EventId, EventIndex, EventRecord, Health, InvalidTransaction, Key, LastRuntimeUpgradeInfo, NetworkState, NetworkStatePeerset, NetworkStatePeersetInfo, NodeRole, NotConnectedPeer, Peer, PeerEndpoint, PeerEndpointAddr, PeerInfo, PeerPing, PerDispatchClassU32, PerDispatchClassWeight, PerDispatchClassWeightsPerClass, Phase, RawOrigin, RefCount, RefCountTo259, SyncState, SystemOrigin, TokenError, TransactionValidityError, UnknownTransaction, WeightPerClass } from '@polkadot/types/interfaces/system';57import type { Bounty, BountyIndex, BountyStatus, BountyStatusActive, BountyStatusCuratorProposed, BountyStatusPendingPayout, OpenTip, OpenTipFinderTo225, OpenTipTip, OpenTipTo225, TreasuryProposal } from '@polkadot/types/interfaces/treasury';58import type { Multiplier } from '@polkadot/types/interfaces/txpayment';59import type { ClassDetails, ClassId, ClassMetadata, DepositBalance, DepositBalanceOf, DestroyWitness, InstanceDetails, InstanceId, InstanceMetadata } from '@polkadot/types/interfaces/uniques';60import type { Multisig, Timepoint } from '@polkadot/types/interfaces/utility';61import type { VestingInfo } from '@polkadot/types/interfaces/vesting';62import type { AssetInstance, AssetInstanceV0, AssetInstanceV1, AssetInstanceV2, BodyId, BodyPart, DoubleEncodedCall, Fungibility, FungibilityV0, FungibilityV1, FungibilityV2, InboundStatus, InstructionV2, InteriorMultiLocation, Junction, JunctionV0, JunctionV1, JunctionV2, Junctions, JunctionsV1, JunctionsV2, MultiAsset, MultiAssetFilter, MultiAssetFilterV1, MultiAssetFilterV2, MultiAssetV0, MultiAssetV1, MultiAssetV2, MultiAssets, MultiAssetsV1, MultiAssetsV2, MultiLocation, MultiLocationV0, MultiLocationV1, MultiLocationV2, NetworkId, OriginKindV0, OriginKindV1, OriginKindV2, OutboundStatus, Outcome, QueryId, QueryStatus, QueueConfigData, Response, ResponseV0, ResponseV1, ResponseV2, ResponseV2Error, ResponseV2Result, VersionMigrationStage, VersionedMultiAsset, VersionedMultiAssets, VersionedMultiLocation, VersionedResponse, VersionedXcm, WeightLimitV2, WildFungibility, WildFungibilityV0, WildFungibilityV1, WildFungibilityV2, WildMultiAsset, WildMultiAssetV1, WildMultiAssetV2, Xcm, XcmAssetId, XcmError, XcmErrorV0, XcmErrorV1, XcmErrorV2, XcmOrder, XcmOrderV0, XcmOrderV1, XcmOrderV2, XcmOrigin, XcmOriginKind, XcmV0, XcmV1, XcmV2, XcmVersion, XcmpMessageFormat } from '@polkadot/types/interfaces/xcm';6364declare module '@polkadot/types/types/registry' {65 export interface InterfaceTypes {66 AbridgedCandidateReceipt: AbridgedCandidateReceipt;67 AbridgedHostConfiguration: AbridgedHostConfiguration;68 AbridgedHrmpChannel: AbridgedHrmpChannel;69 AccountData: AccountData;70 AccountId: AccountId;71 AccountId20: AccountId20;72 AccountId32: AccountId32;73 AccountIdOf: AccountIdOf;74 AccountIndex: AccountIndex;75 AccountInfo: AccountInfo;76 AccountInfoWithDualRefCount: AccountInfoWithDualRefCount;77 AccountInfoWithProviders: AccountInfoWithProviders;78 AccountInfoWithRefCount: AccountInfoWithRefCount;79 AccountInfoWithRefCountU8: AccountInfoWithRefCountU8;80 AccountInfoWithTripleRefCount: AccountInfoWithTripleRefCount;81 AccountStatus: AccountStatus;82 AccountValidity: AccountValidity;83 AccountVote: AccountVote;84 AccountVoteSplit: AccountVoteSplit;85 AccountVoteStandard: AccountVoteStandard;86 ActiveEraInfo: ActiveEraInfo;87 ActiveGilt: ActiveGilt;88 ActiveGiltsTotal: ActiveGiltsTotal;89 ActiveIndex: ActiveIndex;90 ActiveRecovery: ActiveRecovery;91 Address: Address;92 AliveContractInfo: AliveContractInfo;93 AllowedSlots: AllowedSlots;94 AnySignature: AnySignature;95 ApiId: ApiId;96 ApplyExtrinsicResult: ApplyExtrinsicResult;97 ApprovalFlag: ApprovalFlag;98 Approvals: Approvals;99 ArithmeticError: ArithmeticError;100 AssetApproval: AssetApproval;101 AssetApprovalKey: AssetApprovalKey;102 AssetBalance: AssetBalance;103 AssetDestroyWitness: AssetDestroyWitness;104 AssetDetails: AssetDetails;105 AssetId: AssetId;106 AssetInstance: AssetInstance;107 AssetInstanceV0: AssetInstanceV0;108 AssetInstanceV1: AssetInstanceV1;109 AssetInstanceV2: AssetInstanceV2;110 AssetMetadata: AssetMetadata;111 AssetOptions: AssetOptions;112 AssignmentId: AssignmentId;113 AssignmentKind: AssignmentKind;114 AttestedCandidate: AttestedCandidate;115 AuctionIndex: AuctionIndex;116 AuthIndex: AuthIndex;117 AuthorityDiscoveryId: AuthorityDiscoveryId;118 AuthorityId: AuthorityId;119 AuthorityIndex: AuthorityIndex;120 AuthorityList: AuthorityList;121 AuthoritySet: AuthoritySet;122 AuthoritySetChange: AuthoritySetChange;123 AuthoritySetChanges: AuthoritySetChanges;124 AuthoritySignature: AuthoritySignature;125 AuthorityWeight: AuthorityWeight;126 AvailabilityBitfield: AvailabilityBitfield;127 AvailabilityBitfieldRecord: AvailabilityBitfieldRecord;128 BabeAuthorityWeight: BabeAuthorityWeight;129 BabeBlockWeight: BabeBlockWeight;130 BabeEpochConfiguration: BabeEpochConfiguration;131 BabeEquivocationProof: BabeEquivocationProof;132 BabeWeight: BabeWeight;133 BackedCandidate: BackedCandidate;134 Balance: Balance;135 BalanceLock: BalanceLock;136 BalanceLockTo212: BalanceLockTo212;137 BalanceOf: BalanceOf;138 BalanceStatus: BalanceStatus;139 BeefyCommitment: BeefyCommitment;140 BeefyId: BeefyId;141 BeefyKey: BeefyKey;142 BeefyNextAuthoritySet: BeefyNextAuthoritySet;143 BeefyPayload: BeefyPayload;144 BeefySignedCommitment: BeefySignedCommitment;145 Bid: Bid;146 Bidder: Bidder;147 BidKind: BidKind;148 BitVec: BitVec;149 Block: Block;150 BlockAttestations: BlockAttestations;151 BlockHash: BlockHash;152 BlockLength: BlockLength;153 BlockNumber: BlockNumber;154 BlockNumberFor: BlockNumberFor;155 BlockNumberOf: BlockNumberOf;156 BlockStats: BlockStats;157 BlockTrace: BlockTrace;158 BlockTraceEvent: BlockTraceEvent;159 BlockTraceEventData: BlockTraceEventData;160 BlockTraceSpan: BlockTraceSpan;161 BlockV0: BlockV0;162 BlockV1: BlockV1;163 BlockV2: BlockV2;164 BlockWeights: BlockWeights;165 BodyId: BodyId;166 BodyPart: BodyPart;167 bool: bool;168 Bool: Bool;169 Bounty: Bounty;170 BountyIndex: BountyIndex;171 BountyStatus: BountyStatus;172 BountyStatusActive: BountyStatusActive;173 BountyStatusCuratorProposed: BountyStatusCuratorProposed;174 BountyStatusPendingPayout: BountyStatusPendingPayout;175 BridgedBlockHash: BridgedBlockHash;176 BridgedBlockNumber: BridgedBlockNumber;177 BridgedHeader: BridgedHeader;178 BridgeMessageId: BridgeMessageId;179 BufferedSessionChange: BufferedSessionChange;180 Bytes: Bytes;181 Call: Call;182 CallHash: CallHash;183 CallHashOf: CallHashOf;184 CallIndex: CallIndex;185 CallOrigin: CallOrigin;186 CandidateCommitments: CandidateCommitments;187 CandidateDescriptor: CandidateDescriptor;188 CandidateHash: CandidateHash;189 CandidateInfo: CandidateInfo;190 CandidatePendingAvailability: CandidatePendingAvailability;191 CandidateReceipt: CandidateReceipt;192 ChainId: ChainId;193 ChainProperties: ChainProperties;194 ChainType: ChainType;195 ChangesTrieConfiguration: ChangesTrieConfiguration;196 ChangesTrieSignal: ChangesTrieSignal;197 ClassDetails: ClassDetails;198 ClassId: ClassId;199 ClassMetadata: ClassMetadata;200 CodecHash: CodecHash;201 CodeHash: CodeHash;202 CodeSource: CodeSource;203 CodeUploadRequest: CodeUploadRequest;204 CodeUploadResult: CodeUploadResult;205 CodeUploadResultValue: CodeUploadResultValue;206 CollatorId: CollatorId;207 CollatorSignature: CollatorSignature;208 CollectiveOrigin: CollectiveOrigin;209 CommittedCandidateReceipt: CommittedCandidateReceipt;210 CompactAssignments: CompactAssignments;211 CompactAssignmentsTo257: CompactAssignmentsTo257;212 CompactAssignmentsTo265: CompactAssignmentsTo265;213 CompactAssignmentsWith16: CompactAssignmentsWith16;214 CompactAssignmentsWith24: CompactAssignmentsWith24;215 CompactScore: CompactScore;216 CompactScoreCompact: CompactScoreCompact;217 ConfigData: ConfigData;218 Consensus: Consensus;219 ConsensusEngineId: ConsensusEngineId;220 ConsumedWeight: ConsumedWeight;221 ContractCallFlags: ContractCallFlags;222 ContractCallRequest: ContractCallRequest;223 ContractConstructorSpecLatest: ContractConstructorSpecLatest;224 ContractConstructorSpecV0: ContractConstructorSpecV0;225 ContractConstructorSpecV1: ContractConstructorSpecV1;226 ContractConstructorSpecV2: ContractConstructorSpecV2;227 ContractConstructorSpecV3: ContractConstructorSpecV3;228 ContractContractSpecV0: ContractContractSpecV0;229 ContractContractSpecV1: ContractContractSpecV1;230 ContractContractSpecV2: ContractContractSpecV2;231 ContractContractSpecV3: ContractContractSpecV3;232 ContractCryptoHasher: ContractCryptoHasher;233 ContractDiscriminant: ContractDiscriminant;234 ContractDisplayName: ContractDisplayName;235 ContractEventParamSpecLatest: ContractEventParamSpecLatest;236 ContractEventParamSpecV0: ContractEventParamSpecV0;237 ContractEventParamSpecV2: ContractEventParamSpecV2;238 ContractEventSpecLatest: ContractEventSpecLatest;239 ContractEventSpecV0: ContractEventSpecV0;240 ContractEventSpecV1: ContractEventSpecV1;241 ContractEventSpecV2: ContractEventSpecV2;242 ContractExecResult: ContractExecResult;243 ContractExecResultErr: ContractExecResultErr;244 ContractExecResultErrModule: ContractExecResultErrModule;245 ContractExecResultOk: ContractExecResultOk;246 ContractExecResultResult: ContractExecResultResult;247 ContractExecResultSuccessTo255: ContractExecResultSuccessTo255;248 ContractExecResultSuccessTo260: ContractExecResultSuccessTo260;249 ContractExecResultTo255: ContractExecResultTo255;250 ContractExecResultTo260: ContractExecResultTo260;251 ContractExecResultTo267: ContractExecResultTo267;252 ContractInfo: ContractInfo;253 ContractInstantiateResult: ContractInstantiateResult;254 ContractInstantiateResultTo267: ContractInstantiateResultTo267;255 ContractInstantiateResultTo299: ContractInstantiateResultTo299;256 ContractLayoutArray: ContractLayoutArray;257 ContractLayoutCell: ContractLayoutCell;258 ContractLayoutEnum: ContractLayoutEnum;259 ContractLayoutHash: ContractLayoutHash;260 ContractLayoutHashingStrategy: ContractLayoutHashingStrategy;261 ContractLayoutKey: ContractLayoutKey;262 ContractLayoutStruct: ContractLayoutStruct;263 ContractLayoutStructField: ContractLayoutStructField;264 ContractMessageParamSpecLatest: ContractMessageParamSpecLatest;265 ContractMessageParamSpecV0: ContractMessageParamSpecV0;266 ContractMessageParamSpecV2: ContractMessageParamSpecV2;267 ContractMessageSpecLatest: ContractMessageSpecLatest;268 ContractMessageSpecV0: ContractMessageSpecV0;269 ContractMessageSpecV1: ContractMessageSpecV1;270 ContractMessageSpecV2: ContractMessageSpecV2;271 ContractMetadata: ContractMetadata;272 ContractMetadataLatest: ContractMetadataLatest;273 ContractMetadataV0: ContractMetadataV0;274 ContractMetadataV1: ContractMetadataV1;275 ContractMetadataV2: ContractMetadataV2;276 ContractMetadataV3: ContractMetadataV3;277 ContractProject: ContractProject;278 ContractProjectContract: ContractProjectContract;279 ContractProjectInfo: ContractProjectInfo;280 ContractProjectSource: ContractProjectSource;281 ContractProjectV0: ContractProjectV0;282 ContractReturnFlags: ContractReturnFlags;283 ContractSelector: ContractSelector;284 ContractStorageKey: ContractStorageKey;285 ContractStorageLayout: ContractStorageLayout;286 ContractTypeSpec: ContractTypeSpec;287 Conviction: Conviction;288 CoreAssignment: CoreAssignment;289 CoreIndex: CoreIndex;290 CoreOccupied: CoreOccupied;291 CrateVersion: CrateVersion;292 CreatedBlock: CreatedBlock;293 Data: Data;294 DeferredOffenceOf: DeferredOffenceOf;295 DefunctVoter: DefunctVoter;296 DelayKind: DelayKind;297 DelayKindBest: DelayKindBest;298 Delegations: Delegations;299 DeletedContract: DeletedContract;300 DeliveredMessages: DeliveredMessages;301 DepositBalance: DepositBalance;302 DepositBalanceOf: DepositBalanceOf;303 DestroyWitness: DestroyWitness;304 Digest: Digest;305 DigestItem: DigestItem;306 DigestOf: DigestOf;307 DispatchClass: DispatchClass;308 DispatchError: DispatchError;309 DispatchErrorModule: DispatchErrorModule;310 DispatchErrorModuleU8a: DispatchErrorModuleU8a;311 DispatchErrorTo198: DispatchErrorTo198;312 DispatchFeePayment: DispatchFeePayment;313 DispatchInfo: DispatchInfo;314 DispatchInfoTo190: DispatchInfoTo190;315 DispatchInfoTo244: DispatchInfoTo244;316 DispatchOutcome: DispatchOutcome;317 DispatchResult: DispatchResult;318 DispatchResultOf: DispatchResultOf;319 DispatchResultTo198: DispatchResultTo198;320 DisputeLocation: DisputeLocation;321 DisputeResult: DisputeResult;322 DisputeState: DisputeState;323 DisputeStatement: DisputeStatement;324 DisputeStatementSet: DisputeStatementSet;325 DoubleEncodedCall: DoubleEncodedCall;326 DoubleVoteReport: DoubleVoteReport;327 DownwardMessage: DownwardMessage;328 EcdsaSignature: EcdsaSignature;329 Ed25519Signature: Ed25519Signature;330 EIP1559Transaction: EIP1559Transaction;331 EIP2930Transaction: EIP2930Transaction;332 ElectionCompute: ElectionCompute;333 ElectionPhase: ElectionPhase;334 ElectionResult: ElectionResult;335 ElectionScore: ElectionScore;336 ElectionSize: ElectionSize;337 ElectionStatus: ElectionStatus;338 EncodedFinalityProofs: EncodedFinalityProofs;339 EncodedJustification: EncodedJustification;340 EpochAuthorship: EpochAuthorship;341 Era: Era;342 EraIndex: EraIndex;343 EraPoints: EraPoints;344 EraRewardPoints: EraRewardPoints;345 EraRewards: EraRewards;346 ErrorMetadataLatest: ErrorMetadataLatest;347 ErrorMetadataV10: ErrorMetadataV10;348 ErrorMetadataV11: ErrorMetadataV11;349 ErrorMetadataV12: ErrorMetadataV12;350 ErrorMetadataV13: ErrorMetadataV13;351 ErrorMetadataV14: ErrorMetadataV14;352 ErrorMetadataV9: ErrorMetadataV9;353 EthAccessList: EthAccessList;354 EthAccessListItem: EthAccessListItem;355 EthAccount: EthAccount;356 EthAddress: EthAddress;357 EthBlock: EthBlock;358 EthBloom: EthBloom;359 EthCallRequest: EthCallRequest;360 EthereumAccountId: EthereumAccountId;361 EthereumAddress: EthereumAddress;362 EthereumLookupSource: EthereumLookupSource;363 EthereumSignature: EthereumSignature;364 EthFilter: EthFilter;365 EthFilterAddress: EthFilterAddress;366 EthFilterChanges: EthFilterChanges;367 EthFilterTopic: EthFilterTopic;368 EthFilterTopicEntry: EthFilterTopicEntry;369 EthFilterTopicInner: EthFilterTopicInner;370 EthHeader: EthHeader;371 EthLog: EthLog;372 EthReceipt: EthReceipt;373 EthRichBlock: EthRichBlock;374 EthRichHeader: EthRichHeader;375 EthStorageProof: EthStorageProof;376 EthSubKind: EthSubKind;377 EthSubParams: EthSubParams;378 EthSubResult: EthSubResult;379 EthSyncInfo: EthSyncInfo;380 EthSyncStatus: EthSyncStatus;381 EthTransaction: EthTransaction;382 EthTransactionAction: EthTransactionAction;383 EthTransactionCondition: EthTransactionCondition;384 EthTransactionRequest: EthTransactionRequest;385 EthTransactionSignature: EthTransactionSignature;386 EthTransactionStatus: EthTransactionStatus;387 EthWork: EthWork;388 Event: Event;389 EventId: EventId;390 EventIndex: EventIndex;391 EventMetadataLatest: EventMetadataLatest;392 EventMetadataV10: EventMetadataV10;393 EventMetadataV11: EventMetadataV11;394 EventMetadataV12: EventMetadataV12;395 EventMetadataV13: EventMetadataV13;396 EventMetadataV14: EventMetadataV14;397 EventMetadataV9: EventMetadataV9;398 EventRecord: EventRecord;399 EvmAccount: EvmAccount;400 EvmLog: EvmLog;401 EvmVicinity: EvmVicinity;402 ExecReturnValue: ExecReturnValue;403 ExitError: ExitError;404 ExitFatal: ExitFatal;405 ExitReason: ExitReason;406 ExitRevert: ExitRevert;407 ExitSucceed: ExitSucceed;408 ExplicitDisputeStatement: ExplicitDisputeStatement;409 Exposure: Exposure;410 ExtendedBalance: ExtendedBalance;411 Extrinsic: Extrinsic;412 ExtrinsicEra: ExtrinsicEra;413 ExtrinsicMetadataLatest: ExtrinsicMetadataLatest;414 ExtrinsicMetadataV11: ExtrinsicMetadataV11;415 ExtrinsicMetadataV12: ExtrinsicMetadataV12;416 ExtrinsicMetadataV13: ExtrinsicMetadataV13;417 ExtrinsicMetadataV14: ExtrinsicMetadataV14;418 ExtrinsicOrHash: ExtrinsicOrHash;419 ExtrinsicPayload: ExtrinsicPayload;420 ExtrinsicPayloadUnknown: ExtrinsicPayloadUnknown;421 ExtrinsicPayloadV4: ExtrinsicPayloadV4;422 ExtrinsicSignature: ExtrinsicSignature;423 ExtrinsicSignatureV4: ExtrinsicSignatureV4;424 ExtrinsicStatus: ExtrinsicStatus;425 ExtrinsicsWeight: ExtrinsicsWeight;426 ExtrinsicUnknown: ExtrinsicUnknown;427 ExtrinsicV4: ExtrinsicV4;428 FeeDetails: FeeDetails;429 Fixed128: Fixed128;430 Fixed64: Fixed64;431 FixedI128: FixedI128;432 FixedI64: FixedI64;433 FixedU128: FixedU128;434 FixedU64: FixedU64;435 Forcing: Forcing;436 ForkTreePendingChange: ForkTreePendingChange;437 ForkTreePendingChangeNode: ForkTreePendingChangeNode;438 FullIdentification: FullIdentification;439 FunctionArgumentMetadataLatest: FunctionArgumentMetadataLatest;440 FunctionArgumentMetadataV10: FunctionArgumentMetadataV10;441 FunctionArgumentMetadataV11: FunctionArgumentMetadataV11;442 FunctionArgumentMetadataV12: FunctionArgumentMetadataV12;443 FunctionArgumentMetadataV13: FunctionArgumentMetadataV13;444 FunctionArgumentMetadataV14: FunctionArgumentMetadataV14;445 FunctionArgumentMetadataV9: FunctionArgumentMetadataV9;446 FunctionMetadataLatest: FunctionMetadataLatest;447 FunctionMetadataV10: FunctionMetadataV10;448 FunctionMetadataV11: FunctionMetadataV11;449 FunctionMetadataV12: FunctionMetadataV12;450 FunctionMetadataV13: FunctionMetadataV13;451 FunctionMetadataV14: FunctionMetadataV14;452 FunctionMetadataV9: FunctionMetadataV9;453 FundIndex: FundIndex;454 FundInfo: FundInfo;455 Fungibility: Fungibility;456 FungibilityV0: FungibilityV0;457 FungibilityV1: FungibilityV1;458 FungibilityV2: FungibilityV2;459 Gas: Gas;460 GiltBid: GiltBid;461 GlobalValidationData: GlobalValidationData;462 GlobalValidationSchedule: GlobalValidationSchedule;463 GrandpaCommit: GrandpaCommit;464 GrandpaEquivocation: GrandpaEquivocation;465 GrandpaEquivocationProof: GrandpaEquivocationProof;466 GrandpaEquivocationValue: GrandpaEquivocationValue;467 GrandpaJustification: GrandpaJustification;468 GrandpaPrecommit: GrandpaPrecommit;469 GrandpaPrevote: GrandpaPrevote;470 GrandpaSignedPrecommit: GrandpaSignedPrecommit;471 GroupIndex: GroupIndex;472 H1024: H1024;473 H128: H128;474 H160: H160;475 H2048: H2048;476 H256: H256;477 H32: H32;478 H512: H512;479 H64: H64;480 Hash: Hash;481 HeadData: HeadData;482 Header: Header;483 HeaderPartial: HeaderPartial;484 Health: Health;485 Heartbeat: Heartbeat;486 HeartbeatTo244: HeartbeatTo244;487 HostConfiguration: HostConfiguration;488 HostFnWeights: HostFnWeights;489 HostFnWeightsTo264: HostFnWeightsTo264;490 HrmpChannel: HrmpChannel;491 HrmpChannelId: HrmpChannelId;492 HrmpOpenChannelRequest: HrmpOpenChannelRequest;493 i128: i128;494 I128: I128;495 i16: i16;496 I16: I16;497 i256: i256;498 I256: I256;499 i32: i32;500 I32: I32;501 I32F32: I32F32;502 i64: i64;503 I64: I64;504 i8: i8;505 I8: I8;506 IdentificationTuple: IdentificationTuple;507 IdentityFields: IdentityFields;508 IdentityInfo: IdentityInfo;509 IdentityInfoAdditional: IdentityInfoAdditional;510 IdentityInfoTo198: IdentityInfoTo198;511 IdentityJudgement: IdentityJudgement;512 ImmortalEra: ImmortalEra;513 ImportedAux: ImportedAux;514 InboundDownwardMessage: InboundDownwardMessage;515 InboundHrmpMessage: InboundHrmpMessage;516 InboundHrmpMessages: InboundHrmpMessages;517 InboundLaneData: InboundLaneData;518 InboundRelayer: InboundRelayer;519 InboundStatus: InboundStatus;520 IncludedBlocks: IncludedBlocks;521 InclusionFee: InclusionFee;522 IncomingParachain: IncomingParachain;523 IncomingParachainDeploy: IncomingParachainDeploy;524 IncomingParachainFixed: IncomingParachainFixed;525 Index: Index;526 IndicesLookupSource: IndicesLookupSource;527 IndividualExposure: IndividualExposure;528 InitializationData: InitializationData;529 InstanceDetails: InstanceDetails;530 InstanceId: InstanceId;531 InstanceMetadata: InstanceMetadata;532 InstantiateRequest: InstantiateRequest;533 InstantiateRequestV1: InstantiateRequestV1;534 InstantiateRequestV2: InstantiateRequestV2;535 InstantiateReturnValue: InstantiateReturnValue;536 InstantiateReturnValueOk: InstantiateReturnValueOk;537 InstantiateReturnValueTo267: InstantiateReturnValueTo267;538 InstructionV2: InstructionV2;539 InstructionWeights: InstructionWeights;540 InteriorMultiLocation: InteriorMultiLocation;541 InvalidDisputeStatementKind: InvalidDisputeStatementKind;542 InvalidTransaction: InvalidTransaction;543 Json: Json;544 Junction: Junction;545 Junctions: Junctions;546 JunctionsV1: JunctionsV1;547 JunctionsV2: JunctionsV2;548 JunctionV0: JunctionV0;549 JunctionV1: JunctionV1;550 JunctionV2: JunctionV2;551 Justification: Justification;552 JustificationNotification: JustificationNotification;553 Justifications: Justifications;554 Key: Key;555 KeyOwnerProof: KeyOwnerProof;556 Keys: Keys;557 KeyType: KeyType;558 KeyTypeId: KeyTypeId;559 KeyValue: KeyValue;560 KeyValueOption: KeyValueOption;561 Kind: Kind;562 LaneId: LaneId;563 LastContribution: LastContribution;564 LastRuntimeUpgradeInfo: LastRuntimeUpgradeInfo;565 LeasePeriod: LeasePeriod;566 LeasePeriodOf: LeasePeriodOf;567 LegacyTransaction: LegacyTransaction;568 Limits: Limits;569 LimitsTo264: LimitsTo264;570 LocalValidationData: LocalValidationData;571 LockIdentifier: LockIdentifier;572 LookupSource: LookupSource;573 LookupTarget: LookupTarget;574 LotteryConfig: LotteryConfig;575 MaybeRandomness: MaybeRandomness;576 MaybeVrf: MaybeVrf;577 MemberCount: MemberCount;578 MembershipProof: MembershipProof;579 MessageData: MessageData;580 MessageId: MessageId;581 MessageIngestionType: MessageIngestionType;582 MessageKey: MessageKey;583 MessageNonce: MessageNonce;584 MessageQueueChain: MessageQueueChain;585 MessagesDeliveryProofOf: MessagesDeliveryProofOf;586 MessagesProofOf: MessagesProofOf;587 MessagingStateSnapshot: MessagingStateSnapshot;588 MessagingStateSnapshotEgressEntry: MessagingStateSnapshotEgressEntry;589 MetadataAll: MetadataAll;590 MetadataLatest: MetadataLatest;591 MetadataV10: MetadataV10;592 MetadataV11: MetadataV11;593 MetadataV12: MetadataV12;594 MetadataV13: MetadataV13;595 MetadataV14: MetadataV14;596 MetadataV9: MetadataV9;597 MigrationStatusResult: MigrationStatusResult;598 MmrLeafProof: MmrLeafProof;599 MmrRootHash: MmrRootHash;600 ModuleConstantMetadataV10: ModuleConstantMetadataV10;601 ModuleConstantMetadataV11: ModuleConstantMetadataV11;602 ModuleConstantMetadataV12: ModuleConstantMetadataV12;603 ModuleConstantMetadataV13: ModuleConstantMetadataV13;604 ModuleConstantMetadataV9: ModuleConstantMetadataV9;605 ModuleId: ModuleId;606 ModuleMetadataV10: ModuleMetadataV10;607 ModuleMetadataV11: ModuleMetadataV11;608 ModuleMetadataV12: ModuleMetadataV12;609 ModuleMetadataV13: ModuleMetadataV13;610 ModuleMetadataV9: ModuleMetadataV9;611 Moment: Moment;612 MomentOf: MomentOf;613 MoreAttestations: MoreAttestations;614 MortalEra: MortalEra;615 MultiAddress: MultiAddress;616 MultiAsset: MultiAsset;617 MultiAssetFilter: MultiAssetFilter;618 MultiAssetFilterV1: MultiAssetFilterV1;619 MultiAssetFilterV2: MultiAssetFilterV2;620 MultiAssets: MultiAssets;621 MultiAssetsV1: MultiAssetsV1;622 MultiAssetsV2: MultiAssetsV2;623 MultiAssetV0: MultiAssetV0;624 MultiAssetV1: MultiAssetV1;625 MultiAssetV2: MultiAssetV2;626 MultiDisputeStatementSet: MultiDisputeStatementSet;627 MultiLocation: MultiLocation;628 MultiLocationV0: MultiLocationV0;629 MultiLocationV1: MultiLocationV1;630 MultiLocationV2: MultiLocationV2;631 Multiplier: Multiplier;632 Multisig: Multisig;633 MultiSignature: MultiSignature;634 MultiSigner: MultiSigner;635 NetworkId: NetworkId;636 NetworkState: NetworkState;637 NetworkStatePeerset: NetworkStatePeerset;638 NetworkStatePeersetInfo: NetworkStatePeersetInfo;639 NewBidder: NewBidder;640 NextAuthority: NextAuthority;641 NextConfigDescriptor: NextConfigDescriptor;642 NextConfigDescriptorV1: NextConfigDescriptorV1;643 NodeRole: NodeRole;644 Nominations: Nominations;645 NominatorIndex: NominatorIndex;646 NominatorIndexCompact: NominatorIndexCompact;647 NotConnectedPeer: NotConnectedPeer;648 Null: Null;649 OffchainAccuracy: OffchainAccuracy;650 OffchainAccuracyCompact: OffchainAccuracyCompact;651 OffenceDetails: OffenceDetails;652 Offender: Offender;653 OpaqueCall: OpaqueCall;654 OpaqueMultiaddr: OpaqueMultiaddr;655 OpaqueNetworkState: OpaqueNetworkState;656 OpaquePeerId: OpaquePeerId;657 OpaqueTimeSlot: OpaqueTimeSlot;658 OpenTip: OpenTip;659 OpenTipFinderTo225: OpenTipFinderTo225;660 OpenTipTip: OpenTipTip;661 OpenTipTo225: OpenTipTo225;662 OperatingMode: OperatingMode;663 Origin: Origin;664 OriginCaller: OriginCaller;665 OriginKindV0: OriginKindV0;666 OriginKindV1: OriginKindV1;667 OriginKindV2: OriginKindV2;668 OutboundHrmpMessage: OutboundHrmpMessage;669 OutboundLaneData: OutboundLaneData;670 OutboundMessageFee: OutboundMessageFee;671 OutboundPayload: OutboundPayload;672 OutboundStatus: OutboundStatus;673 Outcome: Outcome;674 OverweightIndex: OverweightIndex;675 Owner: Owner;676 PageCounter: PageCounter;677 PageIndexData: PageIndexData;678 PalletCallMetadataLatest: PalletCallMetadataLatest;679 PalletCallMetadataV14: PalletCallMetadataV14;680 PalletConstantMetadataLatest: PalletConstantMetadataLatest;681 PalletConstantMetadataV14: PalletConstantMetadataV14;682 PalletErrorMetadataLatest: PalletErrorMetadataLatest;683 PalletErrorMetadataV14: PalletErrorMetadataV14;684 PalletEventMetadataLatest: PalletEventMetadataLatest;685 PalletEventMetadataV14: PalletEventMetadataV14;686 PalletId: PalletId;687 PalletMetadataLatest: PalletMetadataLatest;688 PalletMetadataV14: PalletMetadataV14;689 PalletsOrigin: PalletsOrigin;690 PalletStorageMetadataLatest: PalletStorageMetadataLatest;691 PalletStorageMetadataV14: PalletStorageMetadataV14;692 PalletVersion: PalletVersion;693 ParachainDispatchOrigin: ParachainDispatchOrigin;694 ParachainInherentData: ParachainInherentData;695 ParachainProposal: ParachainProposal;696 ParachainsInherentData: ParachainsInherentData;697 ParaGenesisArgs: ParaGenesisArgs;698 ParaId: ParaId;699 ParaInfo: ParaInfo;700 ParaLifecycle: ParaLifecycle;701 Parameter: Parameter;702 ParaPastCodeMeta: ParaPastCodeMeta;703 ParaScheduling: ParaScheduling;704 ParathreadClaim: ParathreadClaim;705 ParathreadClaimQueue: ParathreadClaimQueue;706 ParathreadEntry: ParathreadEntry;707 ParaValidatorIndex: ParaValidatorIndex;708 Pays: Pays;709 Peer: Peer;710 PeerEndpoint: PeerEndpoint;711 PeerEndpointAddr: PeerEndpointAddr;712 PeerInfo: PeerInfo;713 PeerPing: PeerPing;714 PendingChange: PendingChange;715 PendingPause: PendingPause;716 PendingResume: PendingResume;717 Perbill: Perbill;718 Percent: Percent;719 PerDispatchClassU32: PerDispatchClassU32;720 PerDispatchClassWeight: PerDispatchClassWeight;721 PerDispatchClassWeightsPerClass: PerDispatchClassWeightsPerClass;722 Period: Period;723 Permill: Permill;724 PermissionLatest: PermissionLatest;725 PermissionsV1: PermissionsV1;726 PermissionVersions: PermissionVersions;727 Perquintill: Perquintill;728 PersistedValidationData: PersistedValidationData;729 PerU16: PerU16;730 Phantom: Phantom;731 PhantomData: PhantomData;732 Phase: Phase;733 PhragmenScore: PhragmenScore;734 Points: Points;735 PortableType: PortableType;736 PortableTypeV14: PortableTypeV14;737 Precommits: Precommits;738 PrefabWasmModule: PrefabWasmModule;739 PrefixedStorageKey: PrefixedStorageKey;740 PreimageStatus: PreimageStatus;741 PreimageStatusAvailable: PreimageStatusAvailable;742 PreRuntime: PreRuntime;743 Prevotes: Prevotes;744 Priority: Priority;745 PriorLock: PriorLock;746 PropIndex: PropIndex;747 Proposal: Proposal;748 ProposalIndex: ProposalIndex;749 ProxyAnnouncement: ProxyAnnouncement;750 ProxyDefinition: ProxyDefinition;751 ProxyState: ProxyState;752 ProxyType: ProxyType;753 QueryId: QueryId;754 QueryStatus: QueryStatus;755 QueueConfigData: QueueConfigData;756 QueuedParathread: QueuedParathread;757 Randomness: Randomness;758 Raw: Raw;759 RawAuraPreDigest: RawAuraPreDigest;760 RawBabePreDigest: RawBabePreDigest;761 RawBabePreDigestCompat: RawBabePreDigestCompat;762 RawBabePreDigestPrimary: RawBabePreDigestPrimary;763 RawBabePreDigestPrimaryTo159: RawBabePreDigestPrimaryTo159;764 RawBabePreDigestSecondaryPlain: RawBabePreDigestSecondaryPlain;765 RawBabePreDigestSecondaryTo159: RawBabePreDigestSecondaryTo159;766 RawBabePreDigestSecondaryVRF: RawBabePreDigestSecondaryVRF;767 RawBabePreDigestTo159: RawBabePreDigestTo159;768 RawOrigin: RawOrigin;769 RawSolution: RawSolution;770 RawSolutionTo265: RawSolutionTo265;771 RawSolutionWith16: RawSolutionWith16;772 RawSolutionWith24: RawSolutionWith24;773 RawVRFOutput: RawVRFOutput;774 ReadProof: ReadProof;775 ReadySolution: ReadySolution;776 Reasons: Reasons;777 RecoveryConfig: RecoveryConfig;778 RefCount: RefCount;779 RefCountTo259: RefCountTo259;780 ReferendumIndex: ReferendumIndex;781 ReferendumInfo: ReferendumInfo;782 ReferendumInfoFinished: ReferendumInfoFinished;783 ReferendumInfoTo239: ReferendumInfoTo239;784 ReferendumStatus: ReferendumStatus;785 RegisteredParachainInfo: RegisteredParachainInfo;786 RegistrarIndex: RegistrarIndex;787 RegistrarInfo: RegistrarInfo;788 Registration: Registration;789 RegistrationJudgement: RegistrationJudgement;790 RegistrationTo198: RegistrationTo198;791 RelayBlockNumber: RelayBlockNumber;792 RelayChainBlockNumber: RelayChainBlockNumber;793 RelayChainHash: RelayChainHash;794 RelayerId: RelayerId;795 RelayHash: RelayHash;796 Releases: Releases;797 Remark: Remark;798 Renouncing: Renouncing;799 RentProjection: RentProjection;800 ReplacementTimes: ReplacementTimes;801 ReportedRoundStates: ReportedRoundStates;802 Reporter: Reporter;803 ReportIdOf: ReportIdOf;804 ReserveData: ReserveData;805 ReserveIdentifier: ReserveIdentifier;806 Response: Response;807 ResponseV0: ResponseV0;808 ResponseV1: ResponseV1;809 ResponseV2: ResponseV2;810 ResponseV2Error: ResponseV2Error;811 ResponseV2Result: ResponseV2Result;812 Retriable: Retriable;813 RewardDestination: RewardDestination;814 RewardPoint: RewardPoint;815 RoundSnapshot: RoundSnapshot;816 RoundState: RoundState;817 RpcMethods: RpcMethods;818 RuntimeDbWeight: RuntimeDbWeight;819 RuntimeDispatchInfo: RuntimeDispatchInfo;820 RuntimeVersion: RuntimeVersion;821 RuntimeVersionApi: RuntimeVersionApi;822 RuntimeVersionPartial: RuntimeVersionPartial;823 Schedule: Schedule;824 Scheduled: Scheduled;825 ScheduledTo254: ScheduledTo254;826 SchedulePeriod: SchedulePeriod;827 SchedulePriority: SchedulePriority;828 ScheduleTo212: ScheduleTo212;829 ScheduleTo258: ScheduleTo258;830 ScheduleTo264: ScheduleTo264;831 Scheduling: Scheduling;832 Seal: Seal;833 SealV0: SealV0;834 SeatHolder: SeatHolder;835 SeedOf: SeedOf;836 ServiceQuality: ServiceQuality;837 SessionIndex: SessionIndex;838 SessionInfo: SessionInfo;839 SessionInfoValidatorGroup: SessionInfoValidatorGroup;840 SessionKeys1: SessionKeys1;841 SessionKeys10: SessionKeys10;842 SessionKeys10B: SessionKeys10B;843 SessionKeys2: SessionKeys2;844 SessionKeys3: SessionKeys3;845 SessionKeys4: SessionKeys4;846 SessionKeys5: SessionKeys5;847 SessionKeys6: SessionKeys6;848 SessionKeys6B: SessionKeys6B;849 SessionKeys7: SessionKeys7;850 SessionKeys7B: SessionKeys7B;851 SessionKeys8: SessionKeys8;852 SessionKeys8B: SessionKeys8B;853 SessionKeys9: SessionKeys9;854 SessionKeys9B: SessionKeys9B;855 SetId: SetId;856 SetIndex: SetIndex;857 Si0Field: Si0Field;858 Si0LookupTypeId: Si0LookupTypeId;859 Si0Path: Si0Path;860 Si0Type: Si0Type;861 Si0TypeDef: Si0TypeDef;862 Si0TypeDefArray: Si0TypeDefArray;863 Si0TypeDefBitSequence: Si0TypeDefBitSequence;864 Si0TypeDefCompact: Si0TypeDefCompact;865 Si0TypeDefComposite: Si0TypeDefComposite;866 Si0TypeDefPhantom: Si0TypeDefPhantom;867 Si0TypeDefPrimitive: Si0TypeDefPrimitive;868 Si0TypeDefSequence: Si0TypeDefSequence;869 Si0TypeDefTuple: Si0TypeDefTuple;870 Si0TypeDefVariant: Si0TypeDefVariant;871 Si0TypeParameter: Si0TypeParameter;872 Si0Variant: Si0Variant;873 Si1Field: Si1Field;874 Si1LookupTypeId: Si1LookupTypeId;875 Si1Path: Si1Path;876 Si1Type: Si1Type;877 Si1TypeDef: Si1TypeDef;878 Si1TypeDefArray: Si1TypeDefArray;879 Si1TypeDefBitSequence: Si1TypeDefBitSequence;880 Si1TypeDefCompact: Si1TypeDefCompact;881 Si1TypeDefComposite: Si1TypeDefComposite;882 Si1TypeDefPrimitive: Si1TypeDefPrimitive;883 Si1TypeDefSequence: Si1TypeDefSequence;884 Si1TypeDefTuple: Si1TypeDefTuple;885 Si1TypeDefVariant: Si1TypeDefVariant;886 Si1TypeParameter: Si1TypeParameter;887 Si1Variant: Si1Variant;888 SiField: SiField;889 Signature: Signature;890 SignedAvailabilityBitfield: SignedAvailabilityBitfield;891 SignedAvailabilityBitfields: SignedAvailabilityBitfields;892 SignedBlock: SignedBlock;893 SignedBlockWithJustification: SignedBlockWithJustification;894 SignedBlockWithJustifications: SignedBlockWithJustifications;895 SignedExtensionMetadataLatest: SignedExtensionMetadataLatest;896 SignedExtensionMetadataV14: SignedExtensionMetadataV14;897 SignedSubmission: SignedSubmission;898 SignedSubmissionOf: SignedSubmissionOf;899 SignedSubmissionTo276: SignedSubmissionTo276;900 SignerPayload: SignerPayload;901 SigningContext: SigningContext;902 SiLookupTypeId: SiLookupTypeId;903 SiPath: SiPath;904 SiType: SiType;905 SiTypeDef: SiTypeDef;906 SiTypeDefArray: SiTypeDefArray;907 SiTypeDefBitSequence: SiTypeDefBitSequence;908 SiTypeDefCompact: SiTypeDefCompact;909 SiTypeDefComposite: SiTypeDefComposite;910 SiTypeDefPrimitive: SiTypeDefPrimitive;911 SiTypeDefSequence: SiTypeDefSequence;912 SiTypeDefTuple: SiTypeDefTuple;913 SiTypeDefVariant: SiTypeDefVariant;914 SiTypeParameter: SiTypeParameter;915 SiVariant: SiVariant;916 SlashingSpans: SlashingSpans;917 SlashingSpansTo204: SlashingSpansTo204;918 SlashJournalEntry: SlashJournalEntry;919 Slot: Slot;920 SlotNumber: SlotNumber;921 SlotRange: SlotRange;922 SlotRange10: SlotRange10;923 SocietyJudgement: SocietyJudgement;924 SocietyVote: SocietyVote;925 SolutionOrSnapshotSize: SolutionOrSnapshotSize;926 SolutionSupport: SolutionSupport;927 SolutionSupports: SolutionSupports;928 SpanIndex: SpanIndex;929 SpanRecord: SpanRecord;930 SpecVersion: SpecVersion;931 Sr25519Signature: Sr25519Signature;932 StakingLedger: StakingLedger;933 StakingLedgerTo223: StakingLedgerTo223;934 StakingLedgerTo240: StakingLedgerTo240;935 Statement: Statement;936 StatementKind: StatementKind;937 StorageChangeSet: StorageChangeSet;938 StorageData: StorageData;939 StorageDeposit: StorageDeposit;940 StorageEntryMetadataLatest: StorageEntryMetadataLatest;941 StorageEntryMetadataV10: StorageEntryMetadataV10;942 StorageEntryMetadataV11: StorageEntryMetadataV11;943 StorageEntryMetadataV12: StorageEntryMetadataV12;944 StorageEntryMetadataV13: StorageEntryMetadataV13;945 StorageEntryMetadataV14: StorageEntryMetadataV14;946 StorageEntryMetadataV9: StorageEntryMetadataV9;947 StorageEntryModifierLatest: StorageEntryModifierLatest;948 StorageEntryModifierV10: StorageEntryModifierV10;949 StorageEntryModifierV11: StorageEntryModifierV11;950 StorageEntryModifierV12: StorageEntryModifierV12;951 StorageEntryModifierV13: StorageEntryModifierV13;952 StorageEntryModifierV14: StorageEntryModifierV14;953 StorageEntryModifierV9: StorageEntryModifierV9;954 StorageEntryTypeLatest: StorageEntryTypeLatest;955 StorageEntryTypeV10: StorageEntryTypeV10;956 StorageEntryTypeV11: StorageEntryTypeV11;957 StorageEntryTypeV12: StorageEntryTypeV12;958 StorageEntryTypeV13: StorageEntryTypeV13;959 StorageEntryTypeV14: StorageEntryTypeV14;960 StorageEntryTypeV9: StorageEntryTypeV9;961 StorageHasher: StorageHasher;962 StorageHasherV10: StorageHasherV10;963 StorageHasherV11: StorageHasherV11;964 StorageHasherV12: StorageHasherV12;965 StorageHasherV13: StorageHasherV13;966 StorageHasherV14: StorageHasherV14;967 StorageHasherV9: StorageHasherV9;968 StorageKey: StorageKey;969 StorageKind: StorageKind;970 StorageMetadataV10: StorageMetadataV10;971 StorageMetadataV11: StorageMetadataV11;972 StorageMetadataV12: StorageMetadataV12;973 StorageMetadataV13: StorageMetadataV13;974 StorageMetadataV9: StorageMetadataV9;975 StorageProof: StorageProof;976 StoredPendingChange: StoredPendingChange;977 StoredState: StoredState;978 StrikeCount: StrikeCount;979 SubId: SubId;980 SubmissionIndicesOf: SubmissionIndicesOf;981 Supports: Supports;982 SyncState: SyncState;983 SystemInherentData: SystemInherentData;984 SystemOrigin: SystemOrigin;985 Tally: Tally;986 TaskAddress: TaskAddress;987 TAssetBalance: TAssetBalance;988 TAssetDepositBalance: TAssetDepositBalance;989 Text: Text;990 Timepoint: Timepoint;991 TokenError: TokenError;992 TombstoneContractInfo: TombstoneContractInfo;993 TraceBlockResponse: TraceBlockResponse;994 TraceError: TraceError;995 TransactionInfo: TransactionInfo;996 TransactionPriority: TransactionPriority;997 TransactionStorageProof: TransactionStorageProof;998 TransactionV0: TransactionV0;999 TransactionV1: TransactionV1;1000 TransactionV2: TransactionV2;1001 TransactionValidityError: TransactionValidityError;1002 TransientValidationData: TransientValidationData;1003 TreasuryProposal: TreasuryProposal;1004 TrieId: TrieId;1005 TrieIndex: TrieIndex;1006 Type: Type;1007 u128: u128;1008 U128: U128;1009 u16: u16;1010 U16: U16;1011 u256: u256;1012 U256: U256;1013 u32: u32;1014 U32: U32;1015 U32F32: U32F32;1016 u64: u64;1017 U64: U64;1018 u8: u8;1019 U8: U8;1020 UnappliedSlash: UnappliedSlash;1021 UnappliedSlashOther: UnappliedSlashOther;1022 UncleEntryItem: UncleEntryItem;1023 UnknownTransaction: UnknownTransaction;1024 UnlockChunk: UnlockChunk;1025 UnrewardedRelayer: UnrewardedRelayer;1026 UnrewardedRelayersState: UnrewardedRelayersState;1027 UpgradeGoAhead: UpgradeGoAhead;1028 UpgradeRestriction: UpgradeRestriction;1029 UpwardMessage: UpwardMessage;1030 usize: usize;1031 USize: USize;1032 ValidationCode: ValidationCode;1033 ValidationCodeHash: ValidationCodeHash;1034 ValidationData: ValidationData;1035 ValidationDataType: ValidationDataType;1036 ValidationFunctionParams: ValidationFunctionParams;1037 ValidatorCount: ValidatorCount;1038 ValidatorId: ValidatorId;1039 ValidatorIdOf: ValidatorIdOf;1040 ValidatorIndex: ValidatorIndex;1041 ValidatorIndexCompact: ValidatorIndexCompact;1042 ValidatorPrefs: ValidatorPrefs;1043 ValidatorPrefsTo145: ValidatorPrefsTo145;1044 ValidatorPrefsTo196: ValidatorPrefsTo196;1045 ValidatorPrefsWithBlocked: ValidatorPrefsWithBlocked;1046 ValidatorPrefsWithCommission: ValidatorPrefsWithCommission;1047 ValidatorSetId: ValidatorSetId;1048 ValidatorSignature: ValidatorSignature;1049 ValidDisputeStatementKind: ValidDisputeStatementKind;1050 ValidityAttestation: ValidityAttestation;1051 VecInboundHrmpMessage: VecInboundHrmpMessage;1052 VersionedMultiAsset: VersionedMultiAsset;1053 VersionedMultiAssets: VersionedMultiAssets;1054 VersionedMultiLocation: VersionedMultiLocation;1055 VersionedResponse: VersionedResponse;1056 VersionedXcm: VersionedXcm;1057 VersionMigrationStage: VersionMigrationStage;1058 VestingInfo: VestingInfo;1059 VestingSchedule: VestingSchedule;1060 Vote: Vote;1061 VoteIndex: VoteIndex;1062 Voter: Voter;1063 VoterInfo: VoterInfo;1064 Votes: Votes;1065 VotesTo230: VotesTo230;1066 VoteThreshold: VoteThreshold;1067 VoteWeight: VoteWeight;1068 Voting: Voting;1069 VotingDelegating: VotingDelegating;1070 VotingDirect: VotingDirect;1071 VotingDirectVote: VotingDirectVote;1072 VouchingStatus: VouchingStatus;1073 VrfData: VrfData;1074 VrfOutput: VrfOutput;1075 VrfProof: VrfProof;1076 Weight: Weight;1077 WeightLimitV2: WeightLimitV2;1078 WeightMultiplier: WeightMultiplier;1079 WeightPerClass: WeightPerClass;1080 WeightToFeeCoefficient: WeightToFeeCoefficient;1081 WildFungibility: WildFungibility;1082 WildFungibilityV0: WildFungibilityV0;1083 WildFungibilityV1: WildFungibilityV1;1084 WildFungibilityV2: WildFungibilityV2;1085 WildMultiAsset: WildMultiAsset;1086 WildMultiAssetV1: WildMultiAssetV1;1087 WildMultiAssetV2: WildMultiAssetV2;1088 WinnersData: WinnersData;1089 WinnersData10: WinnersData10;1090 WinnersDataTuple: WinnersDataTuple;1091 WinnersDataTuple10: WinnersDataTuple10;1092 WinningData: WinningData;1093 WinningData10: WinningData10;1094 WinningDataEntry: WinningDataEntry;1095 WithdrawReasons: WithdrawReasons;1096 Xcm: Xcm;1097 XcmAssetId: XcmAssetId;1098 XcmError: XcmError;1099 XcmErrorV0: XcmErrorV0;1100 XcmErrorV1: XcmErrorV1;1101 XcmErrorV2: XcmErrorV2;1102 XcmOrder: XcmOrder;1103 XcmOrderV0: XcmOrderV0;1104 XcmOrderV1: XcmOrderV1;1105 XcmOrderV2: XcmOrderV2;1106 XcmOrigin: XcmOrigin;1107 XcmOriginKind: XcmOriginKind;1108 XcmpMessageFormat: XcmpMessageFormat;1109 XcmV0: XcmV0;1110 XcmV1: XcmV1;1111 XcmV2: XcmV2;1112 XcmVersion: XcmVersion;1113 } // InterfaceTypes1114} // declare moduletests/src/interfaces/types.tsdiffbeforeafterboth--- a/tests/src/interfaces/types.ts
+++ b/tests/src/interfaces/types.ts
@@ -1,5 +1,3 @@
// Auto-generated via `yarn polkadot-types-from-defs`, do not edit
/* eslint-disable */
-export * from './unique/types';
-export * from './rmrk/types';
tests/yarn.lockdiffbeforeafterboth--- a/tests/yarn.lock
+++ b/tests/yarn.lock
@@ -8615,7 +8615,7 @@
resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
-solc@^0.8.13:
+solc@0.8.13:
version "0.8.13"
resolved "https://registry.yarnpkg.com/solc/-/solc-0.8.13.tgz#bafc7fcc11a627e2281e489076b80497123bb704"
integrity sha512-C0yTN+rjEOGO6uVOXI8+EKa75SFMuZpQ2tryex4QxWIg0HRWZvCHKfVPuLZ5wx06Sb6GBp6uQA5yqQyXZnXOJw==