git.delta.rocks / unique-network / refs/commits / 5b36ad8fb241

difftreelog

fix untstake

PraetorP2022-09-02parents: #de3cc29 #1021988.patch.diff
in: master

4 files changed

modifiedclient/rpc/src/lib.rsdiffbeforeafterboth
--- a/client/rpc/src/lib.rs
+++ b/client/rpc/src/lib.rs
@@ -418,47 +418,27 @@
 	}
 }
 
-pub struct Unique<C, P> {
-	client: Arc<C>,
-	_marker: std::marker::PhantomData<P>,
-}
-
-impl<C, P> Unique<C, P> {
-	pub fn new(client: Arc<C>) -> Self {
-		Self {
-			client,
-			_marker: Default::default(),
+macro_rules! define_struct_for_server_api {
+	($name:ident) => {
+		pub struct $name<C, P> {
+			client: Arc<C>,
+			_marker: std::marker::PhantomData<P>,
 		}
-	}
-}
-
-pub struct AppPromotion<C, P> {
-	client: Arc<C>,
-	_marker: std::marker::PhantomData<P>,
-}
-
-impl<C, P> AppPromotion<C, P> {
-	pub fn new(client: Arc<C>) -> Self {
-		Self {
-			client,
-			_marker: Default::default(),
+		
+		impl<C, P> $name<C, P> {
+			pub fn new(client: Arc<C>) -> Self {
+				Self {
+					client,
+					_marker: Default::default(),
+				}
+			}
 		}
-	}
-}
-
-pub struct Rmrk<C, P> {
-	client: Arc<C>,
-	_marker: std::marker::PhantomData<P>,
+	};
 }
 
-impl<C, P> Rmrk<C, P> {
-	pub fn new(client: Arc<C>) -> Self {
-		Self {
-			client,
-			_marker: Default::default(),
-		}
-	}
-}
+define_struct_for_server_api!(Unique);
+define_struct_for_server_api!(AppPromotion);
+define_struct_for_server_api!(Rmrk);
 
 macro_rules! pass_method {
 	(
@@ -615,14 +595,14 @@
 		|v| v
 		.into_iter()
 		.map(|(b, a)| (b, a.to_string()))
-		.collect::<Vec<_>>(), unique_api);
-	pass_method!(total_staking_locked(staker: CrossAccountId) -> String => |v| v.to_string(), unique_api);
-	pass_method!(pending_unstake(staker: Option<CrossAccountId>) -> String => |v| v.to_string(), unique_api);
+		.collect::<Vec<_>>(), app_promotion_api);
+	pass_method!(total_staking_locked(staker: CrossAccountId) -> String => |v| v.to_string(), app_promotion_api);
+	pass_method!(pending_unstake(staker: Option<CrossAccountId>) -> String => |v| v.to_string(), app_promotion_api);
 	pass_method!(pending_unstake_per_block(staker: CrossAccountId) -> Vec<(BlockNumber, String)> =>
 		|v| v
 		.into_iter()
 		.map(|(b, a)| (b, a.to_string()))
-		.collect::<Vec<_>>(), unique_api);
+		.collect::<Vec<_>>(), app_promotion_api);
 }
 
 #[allow(deprecated)]
modifiednode/rpc/src/lib.rsdiffbeforeafterboth
--- a/node/rpc/src/lib.rs
+++ b/node/rpc/src/lib.rs
@@ -38,7 +38,6 @@
 use sp_block_builder::BlockBuilder;
 use sp_blockchain::{Error as BlockChainError, HeaderBackend, HeaderMetadata};
 use sc_service::TransactionPool;
-use uc_rpc::AppPromotion;
 use std::{collections::BTreeMap, sync::Arc};
 
 use up_common::types::opaque::{Hash, AccountId, RuntimeInstance, Index, Block, BlockNumber, Balance};
@@ -237,7 +236,7 @@
 
 	io.merge(Unique::new(client.clone()).into_rpc())?;
 
-	// #[cfg(not(feature = "unique-runtime"))]
+	#[cfg(not(any(feature = "unique-runtime", feature = "quartz-runtime")))]
 	io.merge(AppPromotion::new(client.clone()).into_rpc())?;
 
 	#[cfg(not(feature = "unique-runtime"))]
modifiedtests/src/app-promotion.test.tsdiffbeforeafterboth
--- a/tests/src/app-promotion.test.ts
+++ b/tests/src/app-promotion.test.ts
@@ -35,7 +35,6 @@
 let alice: IKeyringPair;
 let palletAdmin: IKeyringPair;
 let nominal: bigint;
-let promotionStartBlock: number | null = null;
 const palletAddress = calculatePalleteAddress('appstake');
 let accounts: IKeyringPair[] = [];
 
@@ -51,6 +50,7 @@
     if (!promotionStartBlock) {
       promotionStartBlock = (await helper.api!.query.parachainSystem.lastRelayChainBlockNumber()).toNumber();
     }
+    await helper.signTransaction(alice, helper.api!.tx.sudo.sudo(helper.api!.tx.promotion.startAppPromotion(promotionStartBlock!)));
     accounts = await helper.arrange.createCrowd(100, 1000n, alice); // create accounts-pool to speed up tests
   });
 });
@@ -89,16 +89,24 @@
     });
   });
 
-  it('should allow to stake with nonce', async () => {
+  it('should allow to create maximum 10 stakes for account', async () => {
     await usingPlaygrounds(async (helper) => {
-      const staker = accounts.pop()!;
-      const transactions = [];
-      for (let nonce = 0; nonce < 9; nonce++) {
-        transactions.push(helper.signTransaction(staker, helper.api?.tx.promotion.stake(100n * nominal), 'Staker stakes with nonce', {nonce}));
+      const [staker] = await helper.arrange.createAccounts([2000n], alice);
+      console.log(staker.address);
+      for (let i = 0; i < 10; i++) {
+        await helper.staking.stake(staker, 100n * nominal);
       }
-      await Promise.allSettled(transactions);
 
-      expect(await helper.staking.getTotalStaked({Substrate: staker.address})).to.be.equal(900n * nominal);
+      // can have 10 stakes
+      expect(await helper.staking.getTotalStaked({Substrate: staker.address})).to.be.equal(1000n * nominal);
+      expect(await helper.staking.getTotalStakedPerBlock({Substrate: staker.address})).to.have.length(10);
+
+      await expect(helper.staking.stake(staker, 100n * nominal)).to.be.rejected;
+
+      // After unstake can stake again
+      await helper.staking.unstake(staker);
+      await helper.staking.stake(staker, 100n * nominal);
+      expect(await helper.staking.getTotalStaked({Substrate: staker.address})).to.equal(100n * nominal);
     });
   });
   
@@ -127,10 +135,6 @@
       expect(crowdStakes).to.deep.equal([100n * nominal, 100n * nominal, 100n * nominal, 100n * nominal]);
     });
   });
-
-  it('should allow to create maximum 10 stakes for account', async () => {
-
-  });
 });
 
 describe('unstake balance extrinsic', () => {  
@@ -151,7 +155,8 @@
     });
   });
 
-  it('should unlock balance after unlocking period ends and subtract it from "pendingUnstake"', async () => {
+  it('should unlock balance after unlocking period ends and remove it from "pendingUnstake"', async () => {
+    // TODO Flaky test
     await usingPlaygrounds(async (helper) => {
       const staker = accounts.pop()!;
       await helper.staking.stake(staker, 100n * nominal);
@@ -159,7 +164,7 @@
 
       // Wait for unstaking period. Balance now free ~1000; reserved, frozen, miscFrozeb: 0n
       await waitForRelayBlock(helper.api!, 20);
-      expect(await helper.balance.getSubstrateFull(staker.address)).to.deep.contain({reserved: 0n * nominal, miscFrozen: 0n, feeFrozen: 0n});
+      expect(await helper.balance.getSubstrateFull(staker.address)).to.deep.contain({reserved: 0n, miscFrozen: 0n, feeFrozen: 0n});
       expect(await helper.balance.getSubstrate(staker.address) / nominal).to.be.equal(999n);
 
       // staker can transfer:
@@ -192,7 +197,7 @@
       expect(stakedPerBlock).to.be.deep.equal([]);
       expect(unstakedPerBlock).to.be.deep.equal([600n * nominal]);
 
-      expect (await helper.balance.getSubstrateFull(staker.address)).to.deep.contain({reserved: 0n, feeFrozen: 600n * nominal, miscFrozen: 600n * nominal});
+      expect (await helper.balance.getSubstrateFull(staker.address)).to.deep.contain({reserved: 600n * nominal, feeFrozen: 0n, miscFrozen: 0n});
       await waitForRelayBlock(helper.api!, 20);
       expect (await helper.balance.getSubstrateFull(staker.address)).to.deep.contain({reserved: 0n, feeFrozen: 0n, miscFrozen: 0n});
       expect (await helper.balance.getSubstrate(staker.address) / nominal).to.be.equal(999n);
@@ -635,7 +640,7 @@
   it('can not be called by non admin', async () => {
     await usingPlaygrounds(async (helper) => {
       const nonAdmin = accounts.pop()!;
-      await expect(helper.signTransaction(nonAdmin, helper.api!.tx.promotion.payoutStakers(50))).to.be.rejected;
+      await expect(helper.signTransaction(nonAdmin, helper.api!.tx.promotion.payoutStakers(100))).to.be.rejected;
     });
   });
 
@@ -647,7 +652,7 @@
       await helper.staking.stake(staker, 100n * nominal);
       await helper.staking.stake(staker, 200n * nominal);
       await waitForRelayBlock(helper.api!, 30);
-      await helper.signTransaction(palletAdmin, helper.api!.tx.promotion.payoutStakers(50));
+      await helper.signTransaction(palletAdmin, helper.api!.tx.promotion.payoutStakers(100));
 
       const totalStakedPerBlock = (await helper.staking.getTotalStakedPerBlock({Substrate: staker.address})).map(s => s[1]);
       expect(totalStakedPerBlock).to.be.deep.equal([calculateIncome(100n * nominal, 10n), calculateIncome(200n * nominal, 10n)]);
@@ -655,6 +660,7 @@
   });
 
   it('shoud be paid for more than one period if payments was missed', async () => {
+    // TODO flaky test
     await usingPlaygrounds(async (helper) => {
       const staker = accounts.pop()!;
 
@@ -662,7 +668,7 @@
       await helper.staking.stake(staker, 200n * nominal);
 
       await waitForRelayBlock(helper.api!, 55);
-      await helper.signTransaction(palletAdmin, helper.api!.tx.promotion.payoutStakers(50));
+      await helper.signTransaction(palletAdmin, helper.api!.tx.promotion.payoutStakers(100));
       const stakedPerBlock = await helper.staking.getTotalStakedPerBlock({Substrate: staker.address});
       expect(stakedPerBlock[0][1]).to.be.equal(calculateIncome(100n * nominal, 10n, 2));
       expect(stakedPerBlock[1][1]).to.be.equal(calculateIncome(200n * nominal, 10n, 2));
@@ -675,9 +681,19 @@
   });
   
   it('should not be credited for unstaked (reserved) balance', async () => {
-    expect.fail('Test not implemented');
     await usingPlaygrounds(async helper => {
+      // staker unstakes before rewards has been initialized
       const staker = accounts.pop()!;
+      await helper.staking.stake(staker, 100n * nominal);
+      await waitForRelayBlock(helper.api!, 40);
+      await helper.staking.unstake(staker);
+      
+      // so he did not receive any rewards
+      const totalBalanceBefore = await helper.balance.getSubstrate(staker.address);
+      await helper.signTransaction(palletAdmin, helper.api!.tx.promotion.payoutStakers(100));
+      const totalBalanceAfter = await helper.balance.getSubstrate(staker.address);
+
+      expect(totalBalanceBefore).to.be.equal(totalBalanceAfter);
     });
   });
   
@@ -691,12 +707,12 @@
       await helper.staking.stake(staker, 300n * nominal);
       
       await waitForRelayBlock(helper.api!, 34);
-      await helper.signTransaction(palletAdmin, helper.api!.tx.promotion.payoutStakers(50));
+      await helper.signTransaction(palletAdmin, helper.api!.tx.promotion.payoutStakers(100));
       let totalStakedPerBlock = (await helper.staking.getTotalStakedPerBlock({Substrate: staker.address})).map(s => s[1]);
       expect(totalStakedPerBlock).to.deep.equal([calculateIncome(100n * nominal, 10n), calculateIncome(200n * nominal, 10n), calculateIncome(300n * nominal, 10n)]);
       
       await waitForRelayBlock(helper.api!, 20);
-      await helper.signTransaction(palletAdmin, helper.api!.tx.promotion.payoutStakers(50));
+      await helper.signTransaction(palletAdmin, helper.api!.tx.promotion.payoutStakers(100));
       totalStakedPerBlock = (await helper.staking.getTotalStakedPerBlock({Substrate: staker.address})).map(s => s[1]);
       expect(totalStakedPerBlock).to.deep.equal([calculateIncome(100n * nominal, 10n, 2), calculateIncome(200n * nominal, 10n, 2), calculateIncome(300n * nominal, 10n, 2)]);      
     });
modifiedtests/src/interfaces/augment-api-query.tsdiffbeforeafterboth
before · tests/src/interfaces/augment-api-query.ts
1// Auto-generated via `yarn polkadot-types-from-chain`, do not edit2/* eslint-disable */34// import type lookup before we augment - in some environments5// this is required to allow for ambient/previous definitions6import '@polkadot/api-base/types/storage';78import type { ApiTypes, AugmentedQuery, QueryableStorageEntry } from '@polkadot/api-base/types';9import type { BTreeMap, Bytes, Option, U256, U8aFixed, Vec, bool, u128, u16, u32, u64 } from '@polkadot/types-codec';10import type { AnyNumber, ITuple } from '@polkadot/types-codec/types';11import type { AccountId32, H160, H256 } from '@polkadot/types/interfaces/runtime';12import type { CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueQueueConfigData, EthereumBlock, EthereumLog, EthereumReceiptReceiptV3, EthereumTransactionTransactionV2, FpRpcTransactionStatus, FrameSupportWeightsPerDispatchClassU64, FrameSystemAccountInfo, FrameSystemEventRecord, FrameSystemLastRuntimeUpgradeInfo, FrameSystemPhase, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesReleases, PalletBalancesReserveData, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmContractHelpersSponsoringModeT, PalletNonfungibleItemData, PalletRefungibleItemData, PalletTransactionPaymentReleases, PalletTreasuryProposal, PalletUniqueSchedulerScheduledV3, PhantomTypeUpDataStructs, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, SpRuntimeDigest, SpTrieStorageProof, UpDataStructsCollection, UpDataStructsCollectionStats, UpDataStructsProperties, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsPropertyPermission, UpDataStructsPropertyScope, UpDataStructsSponsorshipStateBasicCrossAccountIdRepr, UpDataStructsTokenChild } from '@polkadot/types/lookup';13import type { Observable } from '@polkadot/types/types';1415export type __AugmentedQuery<ApiType extends ApiTypes> = AugmentedQuery<ApiType, () => unknown>;16export type __QueryableStorageEntry<ApiType extends ApiTypes> = QueryableStorageEntry<ApiType>;1718declare module '@polkadot/api-base/types/storage' {19  interface AugmentedQueries<ApiType extends ApiTypes> {20    balances: {21      /**22       * The Balances pallet example of storing the balance of an account.23       * 24       * # Example25       * 26       * ```nocompile27       * impl pallet_balances::Config for Runtime {28       * type AccountStore = StorageMapShim<Self::Account<Runtime>, frame_system::Provider<Runtime>, AccountId, Self::AccountData<Balance>>29       * }30       * ```31       * 32       * You can also store the balance of an account in the `System` pallet.33       * 34       * # Example35       * 36       * ```nocompile37       * impl pallet_balances::Config for Runtime {38       * type AccountStore = System39       * }40       * ```41       * 42       * But this comes with tradeoffs, storing account balances in the system pallet stores43       * `frame_system` data alongside the account data contrary to storing account balances in the44       * `Balances` pallet, which uses a `StorageMap` to store balances data only.45       * NOTE: This is only used in the case that this pallet is used to store balances.46       **/47      account: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<PalletBalancesAccountData>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>;48      /**49       * Any liquidity locks on some account balances.50       * NOTE: Should only be accessed when setting, changing and freeing a lock.51       **/52      locks: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<Vec<PalletBalancesBalanceLock>>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>;53      /**54       * Named reserves on some account balances.55       **/56      reserves: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<Vec<PalletBalancesReserveData>>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>;57      /**58       * Storage version of the pallet.59       * 60       * This is set to v2.0.0 for new networks.61       **/62      storageVersion: AugmentedQuery<ApiType, () => Observable<PalletBalancesReleases>, []> & QueryableStorageEntry<ApiType, []>;63      /**64       * The total units issued in the system.65       **/66      totalIssuance: AugmentedQuery<ApiType, () => Observable<u128>, []> & QueryableStorageEntry<ApiType, []>;67      /**68       * Generic query69       **/70      [key: string]: QueryableStorageEntry<ApiType>;71    };72    charging: {73      /**74       * Generic query75       **/76      [key: string]: QueryableStorageEntry<ApiType>;77    };78    common: {79      /**80       * Storage of the amount of collection admins.81       **/82      adminAmount: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u32>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;83      /**84       * Allowlisted collection users.85       **/86      allowlist: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<bool>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;87      /**88       * Storage of collection info.89       **/90      collectionById: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<UpDataStructsCollection>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;91      /**92       * Storage of collection properties.93       **/94      collectionProperties: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<UpDataStructsProperties>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;95      /**96       * Storage of token property permissions of a collection.97       **/98      collectionPropertyPermissions: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<BTreeMap<Bytes, UpDataStructsPropertyPermission>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;99      /**100       * Storage of the count of created collections. Essentially contains the last collection ID.101       **/102      createdCollectionCount: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;103      /**104       * Storage of the count of deleted collections.105       **/106      destroyedCollectionCount: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;107      /**108       * Not used by code, exists only to provide some types to metadata.109       **/110      dummyStorageValue: AugmentedQuery<ApiType, () => Observable<Option<ITuple<[UpDataStructsCollectionStats, u32, u32, UpDataStructsTokenChild, PhantomTypeUpDataStructs]>>>, []> & QueryableStorageEntry<ApiType, []>;111      /**112       * List of collection admins.113       **/114      isAdmin: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<bool>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;115      /**116       * Generic query117       **/118      [key: string]: QueryableStorageEntry<ApiType>;119    };120    configuration: {121      minGasPriceOverride: AugmentedQuery<ApiType, () => Observable<u64>, []> & QueryableStorageEntry<ApiType, []>;122      weightToFeeCoefficientOverride: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;123      /**124       * Generic query125       **/126      [key: string]: QueryableStorageEntry<ApiType>;127    };128    dmpQueue: {129      /**130       * The configuration.131       **/132      configuration: AugmentedQuery<ApiType, () => Observable<CumulusPalletDmpQueueConfigData>, []> & QueryableStorageEntry<ApiType, []>;133      /**134       * The overweight messages.135       **/136      overweight: AugmentedQuery<ApiType, (arg: u64 | AnyNumber | Uint8Array) => Observable<Option<ITuple<[u32, Bytes]>>>, [u64]> & QueryableStorageEntry<ApiType, [u64]>;137      /**138       * The page index.139       **/140      pageIndex: AugmentedQuery<ApiType, () => Observable<CumulusPalletDmpQueuePageIndexData>, []> & QueryableStorageEntry<ApiType, []>;141      /**142       * The queue pages.143       **/144      pages: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<ITuple<[u32, Bytes]>>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;145      /**146       * Generic query147       **/148      [key: string]: QueryableStorageEntry<ApiType>;149    };150    ethereum: {151      blockHash: AugmentedQuery<ApiType, (arg: U256 | AnyNumber | Uint8Array) => Observable<H256>, [U256]> & QueryableStorageEntry<ApiType, [U256]>;152      /**153       * The current Ethereum block.154       **/155      currentBlock: AugmentedQuery<ApiType, () => Observable<Option<EthereumBlock>>, []> & QueryableStorageEntry<ApiType, []>;156      /**157       * The current Ethereum receipts.158       **/159      currentReceipts: AugmentedQuery<ApiType, () => Observable<Option<Vec<EthereumReceiptReceiptV3>>>, []> & QueryableStorageEntry<ApiType, []>;160      /**161       * The current transaction statuses.162       **/163      currentTransactionStatuses: AugmentedQuery<ApiType, () => Observable<Option<Vec<FpRpcTransactionStatus>>>, []> & QueryableStorageEntry<ApiType, []>;164      /**165       * Injected transactions should have unique nonce, here we store current166       **/167      injectedNonce: AugmentedQuery<ApiType, () => Observable<U256>, []> & QueryableStorageEntry<ApiType, []>;168      /**169       * Current building block's transactions and receipts.170       **/171      pending: AugmentedQuery<ApiType, () => Observable<Vec<ITuple<[EthereumTransactionTransactionV2, FpRpcTransactionStatus, EthereumReceiptReceiptV3]>>>, []> & QueryableStorageEntry<ApiType, []>;172      /**173       * Generic query174       **/175      [key: string]: QueryableStorageEntry<ApiType>;176    };177    evm: {178      accountCodes: AugmentedQuery<ApiType, (arg: H160 | string | Uint8Array) => Observable<Bytes>, [H160]> & QueryableStorageEntry<ApiType, [H160]>;179      accountStorages: AugmentedQuery<ApiType, (arg1: H160 | string | Uint8Array, arg2: H256 | string | Uint8Array) => Observable<H256>, [H160, H256]> & QueryableStorageEntry<ApiType, [H160, H256]>;180      /**181       * Written on log, reset after transaction182       * Should be empty between transactions183       **/184      currentLogs: AugmentedQuery<ApiType, () => Observable<Vec<EthereumLog>>, []> & QueryableStorageEntry<ApiType, []>;185      /**186       * Generic query187       **/188      [key: string]: QueryableStorageEntry<ApiType>;189    };190    evmCoderSubstrate: {191      /**192       * Generic query193       **/194      [key: string]: QueryableStorageEntry<ApiType>;195    };196    evmContractHelpers: {197      /**198       * Storage for users that allowed for sponsorship.199       * 200       * ### Usage201       * Prefer to delete record from storage if user no more allowed for sponsorship.202       * 203       * * **Key1** - contract address.204       * * **Key2** - user that allowed for sponsorship.205       * * **Value** - allowance for sponsorship.206       **/207      allowlist: AugmentedQuery<ApiType, (arg1: H160 | string | Uint8Array, arg2: H160 | string | Uint8Array) => Observable<bool>, [H160, H160]> & QueryableStorageEntry<ApiType, [H160, H160]>;208      /**209       * Storege for contracts with [`Allowlisted`](SponsoringModeT::Allowlisted) sponsoring mode.210       * 211       * ### Usage212       * Prefer to delete collection from storage if mode chaged to non `Allowlisted`, than set **Value** to **false**.213       * 214       * * **Key** - contract address.215       * * **Value** - is contract in [`Allowlisted`](SponsoringModeT::Allowlisted) mode.216       **/217      allowlistEnabled: AugmentedQuery<ApiType, (arg: H160 | string | Uint8Array) => Observable<bool>, [H160]> & QueryableStorageEntry<ApiType, [H160]>;218      /**219       * Store owner for contract.220       * 221       * * **Key** - contract address.222       * * **Value** - owner for contract.223       **/224      owner: AugmentedQuery<ApiType, (arg: H160 | string | Uint8Array) => Observable<H160>, [H160]> & QueryableStorageEntry<ApiType, [H160]>;225      selfSponsoring: AugmentedQuery<ApiType, (arg: H160 | string | Uint8Array) => Observable<bool>, [H160]> & QueryableStorageEntry<ApiType, [H160]>;226      /**227       * Storage for last sponsored block.228       * 229       * * **Key1** - contract address.230       * * **Key2** - sponsored user address.231       * * **Value** - last sponsored block number.232       **/233      sponsorBasket: AugmentedQuery<ApiType, (arg1: H160 | string | Uint8Array, arg2: H160 | string | Uint8Array) => Observable<Option<u32>>, [H160, H160]> & QueryableStorageEntry<ApiType, [H160, H160]>;234      /**235       * Store for contract sponsorship state.236       * 237       * * **Key** - contract address.238       * * **Value** - sponsorship state.239       **/240      sponsoring: AugmentedQuery<ApiType, (arg: H160 | string | Uint8Array) => Observable<UpDataStructsSponsorshipStateBasicCrossAccountIdRepr>, [H160]> & QueryableStorageEntry<ApiType, [H160]>;241      /**242       * Store for sponsoring mode.243       * 244       * ### Usage245       * Prefer to delete collection from storage if mode chaged to [`Disabled`](SponsoringModeT::Disabled).246       * 247       * * **Key** - contract address.248       * * **Value** - [`sponsoring mode`](SponsoringModeT).249       **/250      sponsoringMode: AugmentedQuery<ApiType, (arg: H160 | string | Uint8Array) => Observable<Option<PalletEvmContractHelpersSponsoringModeT>>, [H160]> & QueryableStorageEntry<ApiType, [H160]>;251      /**252       * Storage for sponsoring rate limit in blocks.253       * 254       * * **Key** - contract address.255       * * **Value** - amount of sponsored blocks.256       **/257      sponsoringRateLimit: AugmentedQuery<ApiType, (arg: H160 | string | Uint8Array) => Observable<u32>, [H160]> & QueryableStorageEntry<ApiType, [H160]>;258      /**259       * Generic query260       **/261      [key: string]: QueryableStorageEntry<ApiType>;262    };263    evmMigration: {264      migrationPending: AugmentedQuery<ApiType, (arg: H160 | string | Uint8Array) => Observable<bool>, [H160]> & QueryableStorageEntry<ApiType, [H160]>;265      /**266       * Generic query267       **/268      [key: string]: QueryableStorageEntry<ApiType>;269    };270    fungible: {271      /**272       * Storage for assets delegated to a limited extent to other users.273       **/274      allowance: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, arg3: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<u128>, [u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr]>;275      /**276       * Amount of tokens owned by an account inside a collection.277       **/278      balance: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<u128>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;279      /**280       * Total amount of fungible tokens inside a collection.281       **/282      totalSupply: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u128>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;283      /**284       * Generic query285       **/286      [key: string]: QueryableStorageEntry<ApiType>;287    };288    inflation: {289      /**290       * Current inflation for `InflationBlockInterval` number of blocks291       **/292      blockInflation: AugmentedQuery<ApiType, () => Observable<u128>, []> & QueryableStorageEntry<ApiType, []>;293      /**294       * Next target (relay) block when inflation will be applied295       **/296      nextInflationBlock: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;297      /**298       * Next target (relay) block when inflation is recalculated299       **/300      nextRecalculationBlock: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;301      /**302       * Relay block when inflation has started303       **/304      startBlock: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;305      /**306       * starting year total issuance307       **/308      startingYearTotalIssuance: AugmentedQuery<ApiType, () => Observable<u128>, []> & QueryableStorageEntry<ApiType, []>;309      /**310       * Generic query311       **/312      [key: string]: QueryableStorageEntry<ApiType>;313    };314    nonfungible: {315      /**316       * Amount of tokens owned by an account in a collection.317       **/318      accountBalance: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<u32>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;319      /**320       * Allowance set by a token owner for another user to perform one of certain transactions on a token.321       **/322      allowance: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<Option<PalletEvmAccountBasicCrossAccountIdRepr>>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;323      /**324       * Used to enumerate tokens owned by account.325       **/326      owned: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, arg3: u32 | AnyNumber | Uint8Array) => Observable<bool>, [u32, PalletEvmAccountBasicCrossAccountIdRepr, u32]> & QueryableStorageEntry<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr, u32]>;327      /**328       * Custom data of a token that is serialized to bytes,329       * primarily reserved for on-chain operations,330       * normally obscured from the external users.331       * 332       * Auxiliary properties are slightly different from333       * usual [`TokenProperties`] due to an unlimited number334       * and separately stored and written-to key-value pairs.335       * 336       * Currently used to store RMRK data.337       **/338      tokenAuxProperties: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array, arg3: UpDataStructsPropertyScope | 'None' | 'Rmrk' | number | Uint8Array, arg4: Bytes | string | Uint8Array) => Observable<Option<Bytes>>, [u32, u32, UpDataStructsPropertyScope, Bytes]> & QueryableStorageEntry<ApiType, [u32, u32, UpDataStructsPropertyScope, Bytes]>;339      /**340       * Used to enumerate token's children.341       **/342      tokenChildren: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array, arg3: ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array]) => Observable<bool>, [u32, u32, ITuple<[u32, u32]>]> & QueryableStorageEntry<ApiType, [u32, u32, ITuple<[u32, u32]>]>;343      /**344       * Token data, used to partially describe a token.345       **/346      tokenData: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<Option<PalletNonfungibleItemData>>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;347      /**348       * Map of key-value pairs, describing the metadata of a token.349       **/350      tokenProperties: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<UpDataStructsProperties>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;351      /**352       * Amount of burnt tokens in a collection.353       **/354      tokensBurnt: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u32>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;355      /**356       * Total amount of minted tokens in a collection.357       **/358      tokensMinted: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u32>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;359      /**360       * Generic query361       **/362      [key: string]: QueryableStorageEntry<ApiType>;363    };364    parachainInfo: {365      parachainId: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;366      /**367       * Generic query368       **/369      [key: string]: QueryableStorageEntry<ApiType>;370    };371    parachainSystem: {372      /**373       * The number of HRMP messages we observed in `on_initialize` and thus used that number for374       * announcing the weight of `on_initialize` and `on_finalize`.375       **/376      announcedHrmpMessagesPerCandidate: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;377      /**378       * The next authorized upgrade, if there is one.379       **/380      authorizedUpgrade: AugmentedQuery<ApiType, () => Observable<Option<H256>>, []> & QueryableStorageEntry<ApiType, []>;381      /**382       * A custom head data that should be returned as result of `validate_block`.383       * 384       * See [`Pallet::set_custom_validation_head_data`] for more information.385       **/386      customValidationHeadData: AugmentedQuery<ApiType, () => Observable<Option<Bytes>>, []> & QueryableStorageEntry<ApiType, []>;387      /**388       * Were the validation data set to notify the relay chain?389       **/390      didSetValidationCode: AugmentedQuery<ApiType, () => Observable<bool>, []> & QueryableStorageEntry<ApiType, []>;391      /**392       * The parachain host configuration that was obtained from the relay parent.393       * 394       * This field is meant to be updated each block with the validation data inherent. Therefore,395       * before processing of the inherent, e.g. in `on_initialize` this data may be stale.396       * 397       * This data is also absent from the genesis.398       **/399      hostConfiguration: AugmentedQuery<ApiType, () => Observable<Option<PolkadotPrimitivesV2AbridgedHostConfiguration>>, []> & QueryableStorageEntry<ApiType, []>;400      /**401       * HRMP messages that were sent in a block.402       * 403       * This will be cleared in `on_initialize` of each new block.404       **/405      hrmpOutboundMessages: AugmentedQuery<ApiType, () => Observable<Vec<PolkadotCorePrimitivesOutboundHrmpMessage>>, []> & QueryableStorageEntry<ApiType, []>;406      /**407       * HRMP watermark that was set in a block.408       * 409       * This will be cleared in `on_initialize` of each new block.410       **/411      hrmpWatermark: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;412      /**413       * The last downward message queue chain head we have observed.414       * 415       * This value is loaded before and saved after processing inbound downward messages carried416       * by the system inherent.417       **/418      lastDmqMqcHead: AugmentedQuery<ApiType, () => Observable<H256>, []> & QueryableStorageEntry<ApiType, []>;419      /**420       * The message queue chain heads we have observed per each channel incoming channel.421       * 422       * This value is loaded before and saved after processing inbound downward messages carried423       * by the system inherent.424       **/425      lastHrmpMqcHeads: AugmentedQuery<ApiType, () => Observable<BTreeMap<u32, H256>>, []> & QueryableStorageEntry<ApiType, []>;426      /**427       * The relay chain block number associated with the last parachain block.428       **/429      lastRelayChainBlockNumber: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;430      /**431       * Validation code that is set by the parachain and is to be communicated to collator and432       * consequently the relay-chain.433       * 434       * This will be cleared in `on_initialize` of each new block if no other pallet already set435       * the value.436       **/437      newValidationCode: AugmentedQuery<ApiType, () => Observable<Option<Bytes>>, []> & QueryableStorageEntry<ApiType, []>;438      /**439       * Upward messages that are still pending and not yet send to the relay chain.440       **/441      pendingUpwardMessages: AugmentedQuery<ApiType, () => Observable<Vec<Bytes>>, []> & QueryableStorageEntry<ApiType, []>;442      /**443       * In case of a scheduled upgrade, this storage field contains the validation code to be applied.444       * 445       * As soon as the relay chain gives us the go-ahead signal, we will overwrite the [`:code`][well_known_keys::CODE]446       * which will result the next block process with the new validation code. This concludes the upgrade process.447       * 448       * [well_known_keys::CODE]: sp_core::storage::well_known_keys::CODE449       **/450      pendingValidationCode: AugmentedQuery<ApiType, () => Observable<Bytes>, []> & QueryableStorageEntry<ApiType, []>;451      /**452       * Number of downward messages processed in a block.453       * 454       * This will be cleared in `on_initialize` of each new block.455       **/456      processedDownwardMessages: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;457      /**458       * The state proof for the last relay parent block.459       * 460       * This field is meant to be updated each block with the validation data inherent. Therefore,461       * before processing of the inherent, e.g. in `on_initialize` this data may be stale.462       * 463       * This data is also absent from the genesis.464       **/465      relayStateProof: AugmentedQuery<ApiType, () => Observable<Option<SpTrieStorageProof>>, []> & QueryableStorageEntry<ApiType, []>;466      /**467       * The snapshot of some state related to messaging relevant to the current parachain as per468       * the relay parent.469       * 470       * This field is meant to be updated each block with the validation data inherent. Therefore,471       * before processing of the inherent, e.g. in `on_initialize` this data may be stale.472       * 473       * This data is also absent from the genesis.474       **/475      relevantMessagingState: AugmentedQuery<ApiType, () => Observable<Option<CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot>>, []> & QueryableStorageEntry<ApiType, []>;476      /**477       * The weight we reserve at the beginning of the block for processing DMP messages. This478       * overrides the amount set in the Config trait.479       **/480      reservedDmpWeightOverride: AugmentedQuery<ApiType, () => Observable<Option<u64>>, []> & QueryableStorageEntry<ApiType, []>;481      /**482       * The weight we reserve at the beginning of the block for processing XCMP messages. This483       * overrides the amount set in the Config trait.484       **/485      reservedXcmpWeightOverride: AugmentedQuery<ApiType, () => Observable<Option<u64>>, []> & QueryableStorageEntry<ApiType, []>;486      /**487       * An option which indicates if the relay-chain restricts signalling a validation code upgrade.488       * In other words, if this is `Some` and [`NewValidationCode`] is `Some` then the produced489       * candidate will be invalid.490       * 491       * This storage item is a mirror of the corresponding value for the current parachain from the492       * relay-chain. This value is ephemeral which means it doesn't hit the storage. This value is493       * set after the inherent.494       **/495      upgradeRestrictionSignal: AugmentedQuery<ApiType, () => Observable<Option<PolkadotPrimitivesV2UpgradeRestriction>>, []> & QueryableStorageEntry<ApiType, []>;496      /**497       * Upward messages that were sent in a block.498       * 499       * This will be cleared in `on_initialize` of each new block.500       **/501      upwardMessages: AugmentedQuery<ApiType, () => Observable<Vec<Bytes>>, []> & QueryableStorageEntry<ApiType, []>;502      /**503       * The [`PersistedValidationData`] set for this block.504       * This value is expected to be set only once per block and it's never stored505       * in the trie.506       **/507      validationData: AugmentedQuery<ApiType, () => Observable<Option<PolkadotPrimitivesV2PersistedValidationData>>, []> & QueryableStorageEntry<ApiType, []>;508      /**509       * Generic query510       **/511      [key: string]: QueryableStorageEntry<ApiType>;512    };513    promotion: {514      admin: AugmentedQuery<ApiType, () => Observable<Option<AccountId32>>, []> & QueryableStorageEntry<ApiType, []>;515      /**516       * Stores the address of the staker for which the last revenue recalculation was performed.517       * If `None`, then recalculation has not yet been performed or calculations have been completed for all stakers.518       **/519      lastCalcucaltedStaker: AugmentedQuery<ApiType, () => Observable<Option<AccountId32>>, []> & QueryableStorageEntry<ApiType, []>;520      /**521       * Next target block when interest is recalculated522       **/523      nextInterestBlock: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;524      /**525       * Amount of tokens pending unstake per user per block.526       **/527      pendingUnstake: AugmentedQuery<ApiType, (arg1: AccountId32 | string | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<u128>, [AccountId32, u32]> & QueryableStorageEntry<ApiType, [AccountId32, u32]>;528      /**529       * Amount of tokens staked by account in the blocknumber.530       **/531      staked: AugmentedQuery<ApiType, (arg1: AccountId32 | string | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<ITuple<[u128, u32]>>, [AccountId32, u32]> & QueryableStorageEntry<ApiType, [AccountId32, u32]>;532      /**533       * A block when app-promotion has started .I think this is redundant, because we only need `NextInterestBlock`.534       **/535      startBlock: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;536      totalStaked: AugmentedQuery<ApiType, () => Observable<u128>, []> & QueryableStorageEntry<ApiType, []>;537      /**538       * Generic query539       **/540      [key: string]: QueryableStorageEntry<ApiType>;541    };542    randomnessCollectiveFlip: {543      /**544       * Series of block headers from the last 81 blocks that acts as random seed material. This545       * is arranged as a ring buffer with `block_number % 81` being the index into the `Vec` of546       * the oldest hash.547       **/548      randomMaterial: AugmentedQuery<ApiType, () => Observable<Vec<H256>>, []> & QueryableStorageEntry<ApiType, []>;549      /**550       * Generic query551       **/552      [key: string]: QueryableStorageEntry<ApiType>;553    };554    refungible: {555      /**556       * Amount of tokens (not pieces) partially owned by an account within a collection.557       **/558      accountBalance: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<u32>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;559      /**560       * Allowance set by a token owner for another user to perform one of certain transactions on a number of pieces of a token.561       **/562      allowance: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array, arg3: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, arg4: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<u128>, [u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr]>;563      /**564       * Amount of token pieces owned by account.565       **/566      balance: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array, arg3: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<u128>, [u32, u32, PalletEvmAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, u32, PalletEvmAccountBasicCrossAccountIdRepr]>;567      /**568       * Used to enumerate tokens owned by account.569       **/570      owned: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, arg3: u32 | AnyNumber | Uint8Array) => Observable<bool>, [u32, PalletEvmAccountBasicCrossAccountIdRepr, u32]> & QueryableStorageEntry<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr, u32]>;571      /**572       * Token data, used to partially describe a token.573       **/574      tokenData: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<PalletRefungibleItemData>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;575      /**576       * Amount of pieces a refungible token is split into.577       **/578      tokenProperties: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<UpDataStructsProperties>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;579      /**580       * Amount of tokens burnt in a collection.581       **/582      tokensBurnt: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u32>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;583      /**584       * Total amount of minted tokens in a collection.585       **/586      tokensMinted: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u32>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;587      /**588       * Total amount of pieces for token589       **/590      totalSupply: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<u128>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;591      /**592       * Generic query593       **/594      [key: string]: QueryableStorageEntry<ApiType>;595    };596    rmrkCore: {597      /**598       * Latest yet-unused collection ID.599       **/600      collectionIndex: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;601      /**602       * Mapping from RMRK collection ID to Unique's.603       **/604      uniqueCollectionId: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u32>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;605      /**606       * Generic query607       **/608      [key: string]: QueryableStorageEntry<ApiType>;609    };610    rmrkEquip: {611      /**612       * Checkmark that a Base has a Theme NFT named "default".613       **/614      baseHasDefaultTheme: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<bool>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;615      /**616       * Map of a Base ID and a Part ID to an NFT in the Base collection serving as the Part.617       **/618      inernalPartId: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<Option<u32>>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;619      /**620       * Generic query621       **/622      [key: string]: QueryableStorageEntry<ApiType>;623    };624    scheduler: {625      /**626       * Items to be executed, indexed by the block number that they should be executed on.627       **/628      agenda: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<Option<PalletUniqueSchedulerScheduledV3>>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;629      /**630       * Lookup from identity to the block number and index of the task.631       **/632      lookup: AugmentedQuery<ApiType, (arg: U8aFixed | string | Uint8Array) => Observable<Option<ITuple<[u32, u32]>>>, [U8aFixed]> & QueryableStorageEntry<ApiType, [U8aFixed]>;633      /**634       * Generic query635       **/636      [key: string]: QueryableStorageEntry<ApiType>;637    };638    structure: {639      /**640       * Generic query641       **/642      [key: string]: QueryableStorageEntry<ApiType>;643    };644    sudo: {645      /**646       * The `AccountId` of the sudo key.647       **/648      key: AugmentedQuery<ApiType, () => Observable<Option<AccountId32>>, []> & QueryableStorageEntry<ApiType, []>;649      /**650       * Generic query651       **/652      [key: string]: QueryableStorageEntry<ApiType>;653    };654    system: {655      /**656       * The full account information for a particular account ID.657       **/658      account: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<FrameSystemAccountInfo>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>;659      /**660       * Total length (in bytes) for all extrinsics put together, for the current block.661       **/662      allExtrinsicsLen: AugmentedQuery<ApiType, () => Observable<Option<u32>>, []> & QueryableStorageEntry<ApiType, []>;663      /**664       * Map of block numbers to block hashes.665       **/666      blockHash: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<H256>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;667      /**668       * The current weight for the block.669       **/670      blockWeight: AugmentedQuery<ApiType, () => Observable<FrameSupportWeightsPerDispatchClassU64>, []> & QueryableStorageEntry<ApiType, []>;671      /**672       * Digest of the current block, also part of the block header.673       **/674      digest: AugmentedQuery<ApiType, () => Observable<SpRuntimeDigest>, []> & QueryableStorageEntry<ApiType, []>;675      /**676       * The number of events in the `Events<T>` list.677       **/678      eventCount: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;679      /**680       * Events deposited for the current block.681       * 682       * NOTE: The item is unbound and should therefore never be read on chain.683       * It could otherwise inflate the PoV size of a block.684       * 685       * Events have a large in-memory size. Box the events to not go out-of-memory686       * just in case someone still reads them from within the runtime.687       **/688      events: AugmentedQuery<ApiType, () => Observable<Vec<FrameSystemEventRecord>>, []> & QueryableStorageEntry<ApiType, []>;689      /**690       * Mapping between a topic (represented by T::Hash) and a vector of indexes691       * of events in the `<Events<T>>` list.692       * 693       * All topic vectors have deterministic storage locations depending on the topic. This694       * allows light-clients to leverage the changes trie storage tracking mechanism and695       * in case of changes fetch the list of events of interest.696       * 697       * The value has the type `(T::BlockNumber, EventIndex)` because if we used only just698       * the `EventIndex` then in case if the topic has the same contents on the next block699       * no notification will be triggered thus the event might be lost.700       **/701      eventTopics: AugmentedQuery<ApiType, (arg: H256 | string | Uint8Array) => Observable<Vec<ITuple<[u32, u32]>>>, [H256]> & QueryableStorageEntry<ApiType, [H256]>;702      /**703       * The execution phase of the block.704       **/705      executionPhase: AugmentedQuery<ApiType, () => Observable<Option<FrameSystemPhase>>, []> & QueryableStorageEntry<ApiType, []>;706      /**707       * Total extrinsics count for the current block.708       **/709      extrinsicCount: AugmentedQuery<ApiType, () => Observable<Option<u32>>, []> & QueryableStorageEntry<ApiType, []>;710      /**711       * Extrinsics data for the current block (maps an extrinsic's index to its data).712       **/713      extrinsicData: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Bytes>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;714      /**715       * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened.716       **/717      lastRuntimeUpgrade: AugmentedQuery<ApiType, () => Observable<Option<FrameSystemLastRuntimeUpgradeInfo>>, []> & QueryableStorageEntry<ApiType, []>;718      /**719       * The current block number being processed. Set by `execute_block`.720       **/721      number: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;722      /**723       * Hash of the previous block.724       **/725      parentHash: AugmentedQuery<ApiType, () => Observable<H256>, []> & QueryableStorageEntry<ApiType, []>;726      /**727       * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False728       * (default) if not.729       **/730      upgradedToTripleRefCount: AugmentedQuery<ApiType, () => Observable<bool>, []> & QueryableStorageEntry<ApiType, []>;731      /**732       * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not.733       **/734      upgradedToU32RefCount: AugmentedQuery<ApiType, () => Observable<bool>, []> & QueryableStorageEntry<ApiType, []>;735      /**736       * Generic query737       **/738      [key: string]: QueryableStorageEntry<ApiType>;739    };740    timestamp: {741      /**742       * Did the timestamp get updated in this block?743       **/744      didUpdate: AugmentedQuery<ApiType, () => Observable<bool>, []> & QueryableStorageEntry<ApiType, []>;745      /**746       * Current time for the current block.747       **/748      now: AugmentedQuery<ApiType, () => Observable<u64>, []> & QueryableStorageEntry<ApiType, []>;749      /**750       * Generic query751       **/752      [key: string]: QueryableStorageEntry<ApiType>;753    };754    transactionPayment: {755      nextFeeMultiplier: AugmentedQuery<ApiType, () => Observable<u128>, []> & QueryableStorageEntry<ApiType, []>;756      storageVersion: AugmentedQuery<ApiType, () => Observable<PalletTransactionPaymentReleases>, []> & QueryableStorageEntry<ApiType, []>;757      /**758       * Generic query759       **/760      [key: string]: QueryableStorageEntry<ApiType>;761    };762    treasury: {763      /**764       * Proposal indices that have been approved but not yet awarded.765       **/766      approvals: AugmentedQuery<ApiType, () => Observable<Vec<u32>>, []> & QueryableStorageEntry<ApiType, []>;767      /**768       * Number of proposals that have been made.769       **/770      proposalCount: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;771      /**772       * Proposals that have been made.773       **/774      proposals: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<PalletTreasuryProposal>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;775      /**776       * Generic query777       **/778      [key: string]: QueryableStorageEntry<ApiType>;779    };780    unique: {781      /**782       * Used for migrations783       **/784      chainVersion: AugmentedQuery<ApiType, () => Observable<u64>, []> & QueryableStorageEntry<ApiType, []>;785      /**786       * (Collection id (controlled?2), who created (real))787       * TODO: Off chain worker should remove from this map when collection gets removed788       **/789      createItemBasket: AugmentedQuery<ApiType, (arg: ITuple<[u32, AccountId32]> | [u32 | AnyNumber | Uint8Array, AccountId32 | string | Uint8Array]) => Observable<Option<u32>>, [ITuple<[u32, AccountId32]>]> & QueryableStorageEntry<ApiType, [ITuple<[u32, AccountId32]>]>;790      /**791       * Last sponsoring of fungible tokens approval in a collection792       **/793      fungibleApproveBasket: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: AccountId32 | string | Uint8Array) => Observable<Option<u32>>, [u32, AccountId32]> & QueryableStorageEntry<ApiType, [u32, AccountId32]>;794      /**795       * Collection id (controlled?2), owning user (real)796       **/797      fungibleTransferBasket: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: AccountId32 | string | Uint8Array) => Observable<Option<u32>>, [u32, AccountId32]> & QueryableStorageEntry<ApiType, [u32, AccountId32]>;798      /**799       * Last sponsoring of NFT approval in a collection800       **/801      nftApproveBasket: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<Option<u32>>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;802      /**803       * Collection id (controlled?2), token id (controlled?2)804       **/805      nftTransferBasket: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<Option<u32>>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;806      /**807       * Last sponsoring of RFT approval in a collection808       **/809      refungibleApproveBasket: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array, arg3: AccountId32 | string | Uint8Array) => Observable<Option<u32>>, [u32, u32, AccountId32]> & QueryableStorageEntry<ApiType, [u32, u32, AccountId32]>;810      /**811       * Collection id (controlled?2), token id (controlled?2)812       **/813      reFungibleTransferBasket: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array, arg3: AccountId32 | string | Uint8Array) => Observable<Option<u32>>, [u32, u32, AccountId32]> & QueryableStorageEntry<ApiType, [u32, u32, AccountId32]>;814      /**815       * Last sponsoring of token property setting // todo:doc rephrase this and the following816       **/817      tokenPropertyBasket: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<Option<u32>>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;818      /**819       * Variable metadata sponsoring820       * Collection id (controlled?2), token id (controlled?2)821       **/822      variableMetaDataBasket: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<Option<u32>>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;823      /**824       * Generic query825       **/826      [key: string]: QueryableStorageEntry<ApiType>;827    };828    vesting: {829      /**830       * Vesting schedules of an account.831       * 832       * VestingSchedules: map AccountId => Vec<VestingSchedule>833       **/834      vestingSchedules: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<Vec<OrmlVestingVestingSchedule>>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>;835      /**836       * Generic query837       **/838      [key: string]: QueryableStorageEntry<ApiType>;839    };840    xcmpQueue: {841      /**842       * Inbound aggregate XCMP messages. It can only be one per ParaId/block.843       **/844      inboundXcmpMessages: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<Bytes>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;845      /**846       * Status of the inbound XCMP channels.847       **/848      inboundXcmpStatus: AugmentedQuery<ApiType, () => Observable<Vec<CumulusPalletXcmpQueueInboundChannelDetails>>, []> & QueryableStorageEntry<ApiType, []>;849      /**850       * The messages outbound in a given XCMP channel.851       **/852      outboundXcmpMessages: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u16 | AnyNumber | Uint8Array) => Observable<Bytes>, [u32, u16]> & QueryableStorageEntry<ApiType, [u32, u16]>;853      /**854       * The non-empty XCMP channels in order of becoming non-empty, and the index of the first855       * and last outbound message. If the two indices are equal, then it indicates an empty856       * queue and there must be a non-`Ok` `OutboundStatus`. We assume queues grow no greater857       * than 65535 items. Queue indices for normal messages begin at one; zero is reserved in858       * case of the need to send a high-priority signal message this block.859       * The bool is true if there is a signal message waiting to be sent.860       **/861      outboundXcmpStatus: AugmentedQuery<ApiType, () => Observable<Vec<CumulusPalletXcmpQueueOutboundChannelDetails>>, []> & QueryableStorageEntry<ApiType, []>;862      /**863       * The messages that exceeded max individual message weight budget.864       * 865       * These message stay in this storage map until they are manually dispatched via866       * `service_overweight`.867       **/868      overweight: AugmentedQuery<ApiType, (arg: u64 | AnyNumber | Uint8Array) => Observable<Option<ITuple<[u32, u32, Bytes]>>>, [u64]> & QueryableStorageEntry<ApiType, [u64]>;869      /**870       * The number of overweight messages ever recorded in `Overweight`. Also doubles as the next871       * available free overweight index.872       **/873      overweightCount: AugmentedQuery<ApiType, () => Observable<u64>, []> & QueryableStorageEntry<ApiType, []>;874      /**875       * The configuration which controls the dynamics of the outbound queue.876       **/877      queueConfig: AugmentedQuery<ApiType, () => Observable<CumulusPalletXcmpQueueQueueConfigData>, []> & QueryableStorageEntry<ApiType, []>;878      /**879       * Whether or not the XCMP queue is suspended from executing incoming XCMs or not.880       **/881      queueSuspended: AugmentedQuery<ApiType, () => Observable<bool>, []> & QueryableStorageEntry<ApiType, []>;882      /**883       * Any signal messages waiting to be sent.884       **/885      signalMessages: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Bytes>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;886      /**887       * Generic query888       **/889      [key: string]: QueryableStorageEntry<ApiType>;890    };891  } // AugmentedQueries892} // declare module
after · tests/src/interfaces/augment-api-query.ts
1// Auto-generated via `yarn polkadot-types-from-chain`, do not edit2/* eslint-disable */34// import type lookup before we augment - in some environments5// this is required to allow for ambient/previous definitions6import '@polkadot/api-base/types/storage';78import type { ApiTypes, AugmentedQuery, QueryableStorageEntry } from '@polkadot/api-base/types';9import type { BTreeMap, Bytes, Option, U256, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';10import type { AnyNumber, ITuple } from '@polkadot/types-codec/types';11import type { AccountId32, H160, H256 } from '@polkadot/types/interfaces/runtime';12import type { CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueQueueConfigData, EthereumBlock, EthereumLog, EthereumReceiptReceiptV3, EthereumTransactionTransactionV2, FpRpcTransactionStatus, FrameSupportWeightsPerDispatchClassU64, FrameSystemAccountInfo, FrameSystemEventRecord, FrameSystemLastRuntimeUpgradeInfo, FrameSystemPhase, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesReleases, PalletBalancesReserveData, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmContractHelpersSponsoringModeT, PalletNonfungibleItemData, PalletRefungibleItemData, PalletTransactionPaymentReleases, PalletTreasuryProposal, PalletUniqueSchedulerScheduledV3, PhantomTypeUpDataStructs, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, SpRuntimeDigest, SpTrieStorageProof, UpDataStructsCollection, UpDataStructsCollectionStats, UpDataStructsProperties, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsPropertyPermission, UpDataStructsPropertyScope, UpDataStructsSponsorshipStateBasicCrossAccountIdRepr, UpDataStructsTokenChild } from '@polkadot/types/lookup';13import type { Observable } from '@polkadot/types/types';1415export type __AugmentedQuery<ApiType extends ApiTypes> = AugmentedQuery<ApiType, () => unknown>;16export type __QueryableStorageEntry<ApiType extends ApiTypes> = QueryableStorageEntry<ApiType>;1718declare module '@polkadot/api-base/types/storage' {19  interface AugmentedQueries<ApiType extends ApiTypes> {20    balances: {21      /**22       * The Balances pallet example of storing the balance of an account.23       * 24       * # Example25       * 26       * ```nocompile27       * impl pallet_balances::Config for Runtime {28       * type AccountStore = StorageMapShim<Self::Account<Runtime>, frame_system::Provider<Runtime>, AccountId, Self::AccountData<Balance>>29       * }30       * ```31       * 32       * You can also store the balance of an account in the `System` pallet.33       * 34       * # Example35       * 36       * ```nocompile37       * impl pallet_balances::Config for Runtime {38       * type AccountStore = System39       * }40       * ```41       * 42       * But this comes with tradeoffs, storing account balances in the system pallet stores43       * `frame_system` data alongside the account data contrary to storing account balances in the44       * `Balances` pallet, which uses a `StorageMap` to store balances data only.45       * NOTE: This is only used in the case that this pallet is used to store balances.46       **/47      account: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<PalletBalancesAccountData>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>;48      /**49       * Any liquidity locks on some account balances.50       * NOTE: Should only be accessed when setting, changing and freeing a lock.51       **/52      locks: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<Vec<PalletBalancesBalanceLock>>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>;53      /**54       * Named reserves on some account balances.55       **/56      reserves: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<Vec<PalletBalancesReserveData>>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>;57      /**58       * Storage version of the pallet.59       * 60       * This is set to v2.0.0 for new networks.61       **/62      storageVersion: AugmentedQuery<ApiType, () => Observable<PalletBalancesReleases>, []> & QueryableStorageEntry<ApiType, []>;63      /**64       * The total units issued in the system.65       **/66      totalIssuance: AugmentedQuery<ApiType, () => Observable<u128>, []> & QueryableStorageEntry<ApiType, []>;67      /**68       * Generic query69       **/70      [key: string]: QueryableStorageEntry<ApiType>;71    };72    charging: {73      /**74       * Generic query75       **/76      [key: string]: QueryableStorageEntry<ApiType>;77    };78    common: {79      /**80       * Storage of the amount of collection admins.81       **/82      adminAmount: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u32>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;83      /**84       * Allowlisted collection users.85       **/86      allowlist: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<bool>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;87      /**88       * Storage of collection info.89       **/90      collectionById: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<UpDataStructsCollection>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;91      /**92       * Storage of collection properties.93       **/94      collectionProperties: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<UpDataStructsProperties>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;95      /**96       * Storage of token property permissions of a collection.97       **/98      collectionPropertyPermissions: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<BTreeMap<Bytes, UpDataStructsPropertyPermission>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;99      /**100       * Storage of the count of created collections. Essentially contains the last collection ID.101       **/102      createdCollectionCount: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;103      /**104       * Storage of the count of deleted collections.105       **/106      destroyedCollectionCount: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;107      /**108       * Not used by code, exists only to provide some types to metadata.109       **/110      dummyStorageValue: AugmentedQuery<ApiType, () => Observable<Option<ITuple<[UpDataStructsCollectionStats, u32, u32, UpDataStructsTokenChild, PhantomTypeUpDataStructs]>>>, []> & QueryableStorageEntry<ApiType, []>;111      /**112       * List of collection admins.113       **/114      isAdmin: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<bool>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;115      /**116       * Generic query117       **/118      [key: string]: QueryableStorageEntry<ApiType>;119    };120    configuration: {121      minGasPriceOverride: AugmentedQuery<ApiType, () => Observable<u64>, []> & QueryableStorageEntry<ApiType, []>;122      weightToFeeCoefficientOverride: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;123      /**124       * Generic query125       **/126      [key: string]: QueryableStorageEntry<ApiType>;127    };128    dmpQueue: {129      /**130       * The configuration.131       **/132      configuration: AugmentedQuery<ApiType, () => Observable<CumulusPalletDmpQueueConfigData>, []> & QueryableStorageEntry<ApiType, []>;133      /**134       * The overweight messages.135       **/136      overweight: AugmentedQuery<ApiType, (arg: u64 | AnyNumber | Uint8Array) => Observable<Option<ITuple<[u32, Bytes]>>>, [u64]> & QueryableStorageEntry<ApiType, [u64]>;137      /**138       * The page index.139       **/140      pageIndex: AugmentedQuery<ApiType, () => Observable<CumulusPalletDmpQueuePageIndexData>, []> & QueryableStorageEntry<ApiType, []>;141      /**142       * The queue pages.143       **/144      pages: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<ITuple<[u32, Bytes]>>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;145      /**146       * Generic query147       **/148      [key: string]: QueryableStorageEntry<ApiType>;149    };150    ethereum: {151      blockHash: AugmentedQuery<ApiType, (arg: U256 | AnyNumber | Uint8Array) => Observable<H256>, [U256]> & QueryableStorageEntry<ApiType, [U256]>;152      /**153       * The current Ethereum block.154       **/155      currentBlock: AugmentedQuery<ApiType, () => Observable<Option<EthereumBlock>>, []> & QueryableStorageEntry<ApiType, []>;156      /**157       * The current Ethereum receipts.158       **/159      currentReceipts: AugmentedQuery<ApiType, () => Observable<Option<Vec<EthereumReceiptReceiptV3>>>, []> & QueryableStorageEntry<ApiType, []>;160      /**161       * The current transaction statuses.162       **/163      currentTransactionStatuses: AugmentedQuery<ApiType, () => Observable<Option<Vec<FpRpcTransactionStatus>>>, []> & QueryableStorageEntry<ApiType, []>;164      /**165       * Injected transactions should have unique nonce, here we store current166       **/167      injectedNonce: AugmentedQuery<ApiType, () => Observable<U256>, []> & QueryableStorageEntry<ApiType, []>;168      /**169       * Current building block's transactions and receipts.170       **/171      pending: AugmentedQuery<ApiType, () => Observable<Vec<ITuple<[EthereumTransactionTransactionV2, FpRpcTransactionStatus, EthereumReceiptReceiptV3]>>>, []> & QueryableStorageEntry<ApiType, []>;172      /**173       * Generic query174       **/175      [key: string]: QueryableStorageEntry<ApiType>;176    };177    evm: {178      accountCodes: AugmentedQuery<ApiType, (arg: H160 | string | Uint8Array) => Observable<Bytes>, [H160]> & QueryableStorageEntry<ApiType, [H160]>;179      accountStorages: AugmentedQuery<ApiType, (arg1: H160 | string | Uint8Array, arg2: H256 | string | Uint8Array) => Observable<H256>, [H160, H256]> & QueryableStorageEntry<ApiType, [H160, H256]>;180      /**181       * Written on log, reset after transaction182       * Should be empty between transactions183       **/184      currentLogs: AugmentedQuery<ApiType, () => Observable<Vec<EthereumLog>>, []> & QueryableStorageEntry<ApiType, []>;185      /**186       * Generic query187       **/188      [key: string]: QueryableStorageEntry<ApiType>;189    };190    evmCoderSubstrate: {191      /**192       * Generic query193       **/194      [key: string]: QueryableStorageEntry<ApiType>;195    };196    evmContractHelpers: {197      /**198       * Storage for users that allowed for sponsorship.199       * 200       * ### Usage201       * Prefer to delete record from storage if user no more allowed for sponsorship.202       * 203       * * **Key1** - contract address.204       * * **Key2** - user that allowed for sponsorship.205       * * **Value** - allowance for sponsorship.206       **/207      allowlist: AugmentedQuery<ApiType, (arg1: H160 | string | Uint8Array, arg2: H160 | string | Uint8Array) => Observable<bool>, [H160, H160]> & QueryableStorageEntry<ApiType, [H160, H160]>;208      /**209       * Storege for contracts with [`Allowlisted`](SponsoringModeT::Allowlisted) sponsoring mode.210       * 211       * ### Usage212       * Prefer to delete collection from storage if mode chaged to non `Allowlisted`, than set **Value** to **false**.213       * 214       * * **Key** - contract address.215       * * **Value** - is contract in [`Allowlisted`](SponsoringModeT::Allowlisted) mode.216       **/217      allowlistEnabled: AugmentedQuery<ApiType, (arg: H160 | string | Uint8Array) => Observable<bool>, [H160]> & QueryableStorageEntry<ApiType, [H160]>;218      /**219       * Store owner for contract.220       * 221       * * **Key** - contract address.222       * * **Value** - owner for contract.223       **/224      owner: AugmentedQuery<ApiType, (arg: H160 | string | Uint8Array) => Observable<H160>, [H160]> & QueryableStorageEntry<ApiType, [H160]>;225      selfSponsoring: AugmentedQuery<ApiType, (arg: H160 | string | Uint8Array) => Observable<bool>, [H160]> & QueryableStorageEntry<ApiType, [H160]>;226      /**227       * Storage for last sponsored block.228       * 229       * * **Key1** - contract address.230       * * **Key2** - sponsored user address.231       * * **Value** - last sponsored block number.232       **/233      sponsorBasket: AugmentedQuery<ApiType, (arg1: H160 | string | Uint8Array, arg2: H160 | string | Uint8Array) => Observable<Option<u32>>, [H160, H160]> & QueryableStorageEntry<ApiType, [H160, H160]>;234      /**235       * Store for contract sponsorship state.236       * 237       * * **Key** - contract address.238       * * **Value** - sponsorship state.239       **/240      sponsoring: AugmentedQuery<ApiType, (arg: H160 | string | Uint8Array) => Observable<UpDataStructsSponsorshipStateBasicCrossAccountIdRepr>, [H160]> & QueryableStorageEntry<ApiType, [H160]>;241      /**242       * Store for sponsoring mode.243       * 244       * ### Usage245       * Prefer to delete collection from storage if mode chaged to [`Disabled`](SponsoringModeT::Disabled).246       * 247       * * **Key** - contract address.248       * * **Value** - [`sponsoring mode`](SponsoringModeT).249       **/250      sponsoringMode: AugmentedQuery<ApiType, (arg: H160 | string | Uint8Array) => Observable<Option<PalletEvmContractHelpersSponsoringModeT>>, [H160]> & QueryableStorageEntry<ApiType, [H160]>;251      /**252       * Storage for sponsoring rate limit in blocks.253       * 254       * * **Key** - contract address.255       * * **Value** - amount of sponsored blocks.256       **/257      sponsoringRateLimit: AugmentedQuery<ApiType, (arg: H160 | string | Uint8Array) => Observable<u32>, [H160]> & QueryableStorageEntry<ApiType, [H160]>;258      /**259       * Generic query260       **/261      [key: string]: QueryableStorageEntry<ApiType>;262    };263    evmMigration: {264      migrationPending: AugmentedQuery<ApiType, (arg: H160 | string | Uint8Array) => Observable<bool>, [H160]> & QueryableStorageEntry<ApiType, [H160]>;265      /**266       * Generic query267       **/268      [key: string]: QueryableStorageEntry<ApiType>;269    };270    fungible: {271      /**272       * Storage for assets delegated to a limited extent to other users.273       **/274      allowance: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, arg3: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<u128>, [u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr]>;275      /**276       * Amount of tokens owned by an account inside a collection.277       **/278      balance: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<u128>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;279      /**280       * Total amount of fungible tokens inside a collection.281       **/282      totalSupply: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u128>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;283      /**284       * Generic query285       **/286      [key: string]: QueryableStorageEntry<ApiType>;287    };288    inflation: {289      /**290       * Current inflation for `InflationBlockInterval` number of blocks291       **/292      blockInflation: AugmentedQuery<ApiType, () => Observable<u128>, []> & QueryableStorageEntry<ApiType, []>;293      /**294       * Next target (relay) block when inflation will be applied295       **/296      nextInflationBlock: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;297      /**298       * Next target (relay) block when inflation is recalculated299       **/300      nextRecalculationBlock: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;301      /**302       * Relay block when inflation has started303       **/304      startBlock: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;305      /**306       * starting year total issuance307       **/308      startingYearTotalIssuance: AugmentedQuery<ApiType, () => Observable<u128>, []> & QueryableStorageEntry<ApiType, []>;309      /**310       * Generic query311       **/312      [key: string]: QueryableStorageEntry<ApiType>;313    };314    nonfungible: {315      /**316       * Amount of tokens owned by an account in a collection.317       **/318      accountBalance: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<u32>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;319      /**320       * Allowance set by a token owner for another user to perform one of certain transactions on a token.321       **/322      allowance: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<Option<PalletEvmAccountBasicCrossAccountIdRepr>>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;323      /**324       * Used to enumerate tokens owned by account.325       **/326      owned: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, arg3: u32 | AnyNumber | Uint8Array) => Observable<bool>, [u32, PalletEvmAccountBasicCrossAccountIdRepr, u32]> & QueryableStorageEntry<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr, u32]>;327      /**328       * Custom data of a token that is serialized to bytes,329       * primarily reserved for on-chain operations,330       * normally obscured from the external users.331       * 332       * Auxiliary properties are slightly different from333       * usual [`TokenProperties`] due to an unlimited number334       * and separately stored and written-to key-value pairs.335       * 336       * Currently used to store RMRK data.337       **/338      tokenAuxProperties: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array, arg3: UpDataStructsPropertyScope | 'None' | 'Rmrk' | number | Uint8Array, arg4: Bytes | string | Uint8Array) => Observable<Option<Bytes>>, [u32, u32, UpDataStructsPropertyScope, Bytes]> & QueryableStorageEntry<ApiType, [u32, u32, UpDataStructsPropertyScope, Bytes]>;339      /**340       * Used to enumerate token's children.341       **/342      tokenChildren: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array, arg3: ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array]) => Observable<bool>, [u32, u32, ITuple<[u32, u32]>]> & QueryableStorageEntry<ApiType, [u32, u32, ITuple<[u32, u32]>]>;343      /**344       * Token data, used to partially describe a token.345       **/346      tokenData: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<Option<PalletNonfungibleItemData>>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;347      /**348       * Map of key-value pairs, describing the metadata of a token.349       **/350      tokenProperties: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<UpDataStructsProperties>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;351      /**352       * Amount of burnt tokens in a collection.353       **/354      tokensBurnt: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u32>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;355      /**356       * Total amount of minted tokens in a collection.357       **/358      tokensMinted: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u32>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;359      /**360       * Generic query361       **/362      [key: string]: QueryableStorageEntry<ApiType>;363    };364    parachainInfo: {365      parachainId: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;366      /**367       * Generic query368       **/369      [key: string]: QueryableStorageEntry<ApiType>;370    };371    parachainSystem: {372      /**373       * The number of HRMP messages we observed in `on_initialize` and thus used that number for374       * announcing the weight of `on_initialize` and `on_finalize`.375       **/376      announcedHrmpMessagesPerCandidate: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;377      /**378       * The next authorized upgrade, if there is one.379       **/380      authorizedUpgrade: AugmentedQuery<ApiType, () => Observable<Option<H256>>, []> & QueryableStorageEntry<ApiType, []>;381      /**382       * A custom head data that should be returned as result of `validate_block`.383       * 384       * See [`Pallet::set_custom_validation_head_data`] for more information.385       **/386      customValidationHeadData: AugmentedQuery<ApiType, () => Observable<Option<Bytes>>, []> & QueryableStorageEntry<ApiType, []>;387      /**388       * Were the validation data set to notify the relay chain?389       **/390      didSetValidationCode: AugmentedQuery<ApiType, () => Observable<bool>, []> & QueryableStorageEntry<ApiType, []>;391      /**392       * The parachain host configuration that was obtained from the relay parent.393       * 394       * This field is meant to be updated each block with the validation data inherent. Therefore,395       * before processing of the inherent, e.g. in `on_initialize` this data may be stale.396       * 397       * This data is also absent from the genesis.398       **/399      hostConfiguration: AugmentedQuery<ApiType, () => Observable<Option<PolkadotPrimitivesV2AbridgedHostConfiguration>>, []> & QueryableStorageEntry<ApiType, []>;400      /**401       * HRMP messages that were sent in a block.402       * 403       * This will be cleared in `on_initialize` of each new block.404       **/405      hrmpOutboundMessages: AugmentedQuery<ApiType, () => Observable<Vec<PolkadotCorePrimitivesOutboundHrmpMessage>>, []> & QueryableStorageEntry<ApiType, []>;406      /**407       * HRMP watermark that was set in a block.408       * 409       * This will be cleared in `on_initialize` of each new block.410       **/411      hrmpWatermark: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;412      /**413       * The last downward message queue chain head we have observed.414       * 415       * This value is loaded before and saved after processing inbound downward messages carried416       * by the system inherent.417       **/418      lastDmqMqcHead: AugmentedQuery<ApiType, () => Observable<H256>, []> & QueryableStorageEntry<ApiType, []>;419      /**420       * The message queue chain heads we have observed per each channel incoming channel.421       * 422       * This value is loaded before and saved after processing inbound downward messages carried423       * by the system inherent.424       **/425      lastHrmpMqcHeads: AugmentedQuery<ApiType, () => Observable<BTreeMap<u32, H256>>, []> & QueryableStorageEntry<ApiType, []>;426      /**427       * The relay chain block number associated with the last parachain block.428       **/429      lastRelayChainBlockNumber: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;430      /**431       * Validation code that is set by the parachain and is to be communicated to collator and432       * consequently the relay-chain.433       * 434       * This will be cleared in `on_initialize` of each new block if no other pallet already set435       * the value.436       **/437      newValidationCode: AugmentedQuery<ApiType, () => Observable<Option<Bytes>>, []> & QueryableStorageEntry<ApiType, []>;438      /**439       * Upward messages that are still pending and not yet send to the relay chain.440       **/441      pendingUpwardMessages: AugmentedQuery<ApiType, () => Observable<Vec<Bytes>>, []> & QueryableStorageEntry<ApiType, []>;442      /**443       * In case of a scheduled upgrade, this storage field contains the validation code to be applied.444       * 445       * As soon as the relay chain gives us the go-ahead signal, we will overwrite the [`:code`][well_known_keys::CODE]446       * which will result the next block process with the new validation code. This concludes the upgrade process.447       * 448       * [well_known_keys::CODE]: sp_core::storage::well_known_keys::CODE449       **/450      pendingValidationCode: AugmentedQuery<ApiType, () => Observable<Bytes>, []> & QueryableStorageEntry<ApiType, []>;451      /**452       * Number of downward messages processed in a block.453       * 454       * This will be cleared in `on_initialize` of each new block.455       **/456      processedDownwardMessages: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;457      /**458       * The state proof for the last relay parent block.459       * 460       * This field is meant to be updated each block with the validation data inherent. Therefore,461       * before processing of the inherent, e.g. in `on_initialize` this data may be stale.462       * 463       * This data is also absent from the genesis.464       **/465      relayStateProof: AugmentedQuery<ApiType, () => Observable<Option<SpTrieStorageProof>>, []> & QueryableStorageEntry<ApiType, []>;466      /**467       * The snapshot of some state related to messaging relevant to the current parachain as per468       * the relay parent.469       * 470       * This field is meant to be updated each block with the validation data inherent. Therefore,471       * before processing of the inherent, e.g. in `on_initialize` this data may be stale.472       * 473       * This data is also absent from the genesis.474       **/475      relevantMessagingState: AugmentedQuery<ApiType, () => Observable<Option<CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot>>, []> & QueryableStorageEntry<ApiType, []>;476      /**477       * The weight we reserve at the beginning of the block for processing DMP messages. This478       * overrides the amount set in the Config trait.479       **/480      reservedDmpWeightOverride: AugmentedQuery<ApiType, () => Observable<Option<u64>>, []> & QueryableStorageEntry<ApiType, []>;481      /**482       * The weight we reserve at the beginning of the block for processing XCMP messages. This483       * overrides the amount set in the Config trait.484       **/485      reservedXcmpWeightOverride: AugmentedQuery<ApiType, () => Observable<Option<u64>>, []> & QueryableStorageEntry<ApiType, []>;486      /**487       * An option which indicates if the relay-chain restricts signalling a validation code upgrade.488       * In other words, if this is `Some` and [`NewValidationCode`] is `Some` then the produced489       * candidate will be invalid.490       * 491       * This storage item is a mirror of the corresponding value for the current parachain from the492       * relay-chain. This value is ephemeral which means it doesn't hit the storage. This value is493       * set after the inherent.494       **/495      upgradeRestrictionSignal: AugmentedQuery<ApiType, () => Observable<Option<PolkadotPrimitivesV2UpgradeRestriction>>, []> & QueryableStorageEntry<ApiType, []>;496      /**497       * Upward messages that were sent in a block.498       * 499       * This will be cleared in `on_initialize` of each new block.500       **/501      upwardMessages: AugmentedQuery<ApiType, () => Observable<Vec<Bytes>>, []> & QueryableStorageEntry<ApiType, []>;502      /**503       * The [`PersistedValidationData`] set for this block.504       * This value is expected to be set only once per block and it's never stored505       * in the trie.506       **/507      validationData: AugmentedQuery<ApiType, () => Observable<Option<PolkadotPrimitivesV2PersistedValidationData>>, []> & QueryableStorageEntry<ApiType, []>;508      /**509       * Generic query510       **/511      [key: string]: QueryableStorageEntry<ApiType>;512    };513    promotion: {514      admin: AugmentedQuery<ApiType, () => Observable<Option<AccountId32>>, []> & QueryableStorageEntry<ApiType, []>;515      /**516       * Stores hash a record for which the last revenue recalculation was performed.517       * If `None`, then recalculation has not yet been performed or calculations have been completed for all stakers.518       **/519      nextCalculatedRecord: AugmentedQuery<ApiType, () => Observable<Option<ITuple<[AccountId32, u32]>>>, []> & QueryableStorageEntry<ApiType, []>;520      /**521       * Next target block when interest is recalculated522       **/523      nextInterestBlock: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;524      /**525       * Amount of tokens pending unstake per user per block.526       **/527      pendingUnstake: AugmentedQuery<ApiType, (arg1: AccountId32 | string | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<u128>, [AccountId32, u32]> & QueryableStorageEntry<ApiType, [AccountId32, u32]>;528      /**529       * Amount of tokens staked by account in the blocknumber.530       **/531      staked: AugmentedQuery<ApiType, (arg1: AccountId32 | string | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<ITuple<[u128, u32]>>, [AccountId32, u32]> & QueryableStorageEntry<ApiType, [AccountId32, u32]>;532      /**533       * Amount of stakes for an Account534       **/535      stakesPerAccount: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<u8>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>;536      /**537       * A block when app-promotion has started .I think this is redundant, because we only need `NextInterestBlock`.538       **/539      startBlock: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;540      totalStaked: AugmentedQuery<ApiType, () => Observable<u128>, []> & QueryableStorageEntry<ApiType, []>;541      /**542       * Generic query543       **/544      [key: string]: QueryableStorageEntry<ApiType>;545    };546    randomnessCollectiveFlip: {547      /**548       * Series of block headers from the last 81 blocks that acts as random seed material. This549       * is arranged as a ring buffer with `block_number % 81` being the index into the `Vec` of550       * the oldest hash.551       **/552      randomMaterial: AugmentedQuery<ApiType, () => Observable<Vec<H256>>, []> & QueryableStorageEntry<ApiType, []>;553      /**554       * Generic query555       **/556      [key: string]: QueryableStorageEntry<ApiType>;557    };558    refungible: {559      /**560       * Amount of tokens (not pieces) partially owned by an account within a collection.561       **/562      accountBalance: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<u32>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;563      /**564       * Allowance set by a token owner for another user to perform one of certain transactions on a number of pieces of a token.565       **/566      allowance: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array, arg3: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, arg4: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<u128>, [u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr]>;567      /**568       * Amount of token pieces owned by account.569       **/570      balance: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array, arg3: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<u128>, [u32, u32, PalletEvmAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, u32, PalletEvmAccountBasicCrossAccountIdRepr]>;571      /**572       * Used to enumerate tokens owned by account.573       **/574      owned: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, arg3: u32 | AnyNumber | Uint8Array) => Observable<bool>, [u32, PalletEvmAccountBasicCrossAccountIdRepr, u32]> & QueryableStorageEntry<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr, u32]>;575      /**576       * Token data, used to partially describe a token.577       **/578      tokenData: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<PalletRefungibleItemData>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;579      /**580       * Amount of pieces a refungible token is split into.581       **/582      tokenProperties: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<UpDataStructsProperties>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;583      /**584       * Amount of tokens burnt in a collection.585       **/586      tokensBurnt: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u32>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;587      /**588       * Total amount of minted tokens in a collection.589       **/590      tokensMinted: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u32>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;591      /**592       * Total amount of pieces for token593       **/594      totalSupply: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<u128>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;595      /**596       * Generic query597       **/598      [key: string]: QueryableStorageEntry<ApiType>;599    };600    rmrkCore: {601      /**602       * Latest yet-unused collection ID.603       **/604      collectionIndex: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;605      /**606       * Mapping from RMRK collection ID to Unique's.607       **/608      uniqueCollectionId: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u32>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;609      /**610       * Generic query611       **/612      [key: string]: QueryableStorageEntry<ApiType>;613    };614    rmrkEquip: {615      /**616       * Checkmark that a Base has a Theme NFT named "default".617       **/618      baseHasDefaultTheme: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<bool>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;619      /**620       * Map of a Base ID and a Part ID to an NFT in the Base collection serving as the Part.621       **/622      inernalPartId: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<Option<u32>>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;623      /**624       * Generic query625       **/626      [key: string]: QueryableStorageEntry<ApiType>;627    };628    scheduler: {629      /**630       * Items to be executed, indexed by the block number that they should be executed on.631       **/632      agenda: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<Option<PalletUniqueSchedulerScheduledV3>>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;633      /**634       * Lookup from identity to the block number and index of the task.635       **/636      lookup: AugmentedQuery<ApiType, (arg: U8aFixed | string | Uint8Array) => Observable<Option<ITuple<[u32, u32]>>>, [U8aFixed]> & QueryableStorageEntry<ApiType, [U8aFixed]>;637      /**638       * Generic query639       **/640      [key: string]: QueryableStorageEntry<ApiType>;641    };642    structure: {643      /**644       * Generic query645       **/646      [key: string]: QueryableStorageEntry<ApiType>;647    };648    sudo: {649      /**650       * The `AccountId` of the sudo key.651       **/652      key: AugmentedQuery<ApiType, () => Observable<Option<AccountId32>>, []> & QueryableStorageEntry<ApiType, []>;653      /**654       * Generic query655       **/656      [key: string]: QueryableStorageEntry<ApiType>;657    };658    system: {659      /**660       * The full account information for a particular account ID.661       **/662      account: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<FrameSystemAccountInfo>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>;663      /**664       * Total length (in bytes) for all extrinsics put together, for the current block.665       **/666      allExtrinsicsLen: AugmentedQuery<ApiType, () => Observable<Option<u32>>, []> & QueryableStorageEntry<ApiType, []>;667      /**668       * Map of block numbers to block hashes.669       **/670      blockHash: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<H256>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;671      /**672       * The current weight for the block.673       **/674      blockWeight: AugmentedQuery<ApiType, () => Observable<FrameSupportWeightsPerDispatchClassU64>, []> & QueryableStorageEntry<ApiType, []>;675      /**676       * Digest of the current block, also part of the block header.677       **/678      digest: AugmentedQuery<ApiType, () => Observable<SpRuntimeDigest>, []> & QueryableStorageEntry<ApiType, []>;679      /**680       * The number of events in the `Events<T>` list.681       **/682      eventCount: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;683      /**684       * Events deposited for the current block.685       * 686       * NOTE: The item is unbound and should therefore never be read on chain.687       * It could otherwise inflate the PoV size of a block.688       * 689       * Events have a large in-memory size. Box the events to not go out-of-memory690       * just in case someone still reads them from within the runtime.691       **/692      events: AugmentedQuery<ApiType, () => Observable<Vec<FrameSystemEventRecord>>, []> & QueryableStorageEntry<ApiType, []>;693      /**694       * Mapping between a topic (represented by T::Hash) and a vector of indexes695       * of events in the `<Events<T>>` list.696       * 697       * All topic vectors have deterministic storage locations depending on the topic. This698       * allows light-clients to leverage the changes trie storage tracking mechanism and699       * in case of changes fetch the list of events of interest.700       * 701       * The value has the type `(T::BlockNumber, EventIndex)` because if we used only just702       * the `EventIndex` then in case if the topic has the same contents on the next block703       * no notification will be triggered thus the event might be lost.704       **/705      eventTopics: AugmentedQuery<ApiType, (arg: H256 | string | Uint8Array) => Observable<Vec<ITuple<[u32, u32]>>>, [H256]> & QueryableStorageEntry<ApiType, [H256]>;706      /**707       * The execution phase of the block.708       **/709      executionPhase: AugmentedQuery<ApiType, () => Observable<Option<FrameSystemPhase>>, []> & QueryableStorageEntry<ApiType, []>;710      /**711       * Total extrinsics count for the current block.712       **/713      extrinsicCount: AugmentedQuery<ApiType, () => Observable<Option<u32>>, []> & QueryableStorageEntry<ApiType, []>;714      /**715       * Extrinsics data for the current block (maps an extrinsic's index to its data).716       **/717      extrinsicData: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Bytes>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;718      /**719       * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened.720       **/721      lastRuntimeUpgrade: AugmentedQuery<ApiType, () => Observable<Option<FrameSystemLastRuntimeUpgradeInfo>>, []> & QueryableStorageEntry<ApiType, []>;722      /**723       * The current block number being processed. Set by `execute_block`.724       **/725      number: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;726      /**727       * Hash of the previous block.728       **/729      parentHash: AugmentedQuery<ApiType, () => Observable<H256>, []> & QueryableStorageEntry<ApiType, []>;730      /**731       * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False732       * (default) if not.733       **/734      upgradedToTripleRefCount: AugmentedQuery<ApiType, () => Observable<bool>, []> & QueryableStorageEntry<ApiType, []>;735      /**736       * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not.737       **/738      upgradedToU32RefCount: AugmentedQuery<ApiType, () => Observable<bool>, []> & QueryableStorageEntry<ApiType, []>;739      /**740       * Generic query741       **/742      [key: string]: QueryableStorageEntry<ApiType>;743    };744    timestamp: {745      /**746       * Did the timestamp get updated in this block?747       **/748      didUpdate: AugmentedQuery<ApiType, () => Observable<bool>, []> & QueryableStorageEntry<ApiType, []>;749      /**750       * Current time for the current block.751       **/752      now: AugmentedQuery<ApiType, () => Observable<u64>, []> & QueryableStorageEntry<ApiType, []>;753      /**754       * Generic query755       **/756      [key: string]: QueryableStorageEntry<ApiType>;757    };758    transactionPayment: {759      nextFeeMultiplier: AugmentedQuery<ApiType, () => Observable<u128>, []> & QueryableStorageEntry<ApiType, []>;760      storageVersion: AugmentedQuery<ApiType, () => Observable<PalletTransactionPaymentReleases>, []> & QueryableStorageEntry<ApiType, []>;761      /**762       * Generic query763       **/764      [key: string]: QueryableStorageEntry<ApiType>;765    };766    treasury: {767      /**768       * Proposal indices that have been approved but not yet awarded.769       **/770      approvals: AugmentedQuery<ApiType, () => Observable<Vec<u32>>, []> & QueryableStorageEntry<ApiType, []>;771      /**772       * Number of proposals that have been made.773       **/774      proposalCount: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;775      /**776       * Proposals that have been made.777       **/778      proposals: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<PalletTreasuryProposal>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;779      /**780       * Generic query781       **/782      [key: string]: QueryableStorageEntry<ApiType>;783    };784    unique: {785      /**786       * Used for migrations787       **/788      chainVersion: AugmentedQuery<ApiType, () => Observable<u64>, []> & QueryableStorageEntry<ApiType, []>;789      /**790       * (Collection id (controlled?2), who created (real))791       * TODO: Off chain worker should remove from this map when collection gets removed792       **/793      createItemBasket: AugmentedQuery<ApiType, (arg: ITuple<[u32, AccountId32]> | [u32 | AnyNumber | Uint8Array, AccountId32 | string | Uint8Array]) => Observable<Option<u32>>, [ITuple<[u32, AccountId32]>]> & QueryableStorageEntry<ApiType, [ITuple<[u32, AccountId32]>]>;794      /**795       * Last sponsoring of fungible tokens approval in a collection796       **/797      fungibleApproveBasket: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: AccountId32 | string | Uint8Array) => Observable<Option<u32>>, [u32, AccountId32]> & QueryableStorageEntry<ApiType, [u32, AccountId32]>;798      /**799       * Collection id (controlled?2), owning user (real)800       **/801      fungibleTransferBasket: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: AccountId32 | string | Uint8Array) => Observable<Option<u32>>, [u32, AccountId32]> & QueryableStorageEntry<ApiType, [u32, AccountId32]>;802      /**803       * Last sponsoring of NFT approval in a collection804       **/805      nftApproveBasket: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<Option<u32>>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;806      /**807       * Collection id (controlled?2), token id (controlled?2)808       **/809      nftTransferBasket: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<Option<u32>>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;810      /**811       * Last sponsoring of RFT approval in a collection812       **/813      refungibleApproveBasket: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array, arg3: AccountId32 | string | Uint8Array) => Observable<Option<u32>>, [u32, u32, AccountId32]> & QueryableStorageEntry<ApiType, [u32, u32, AccountId32]>;814      /**815       * Collection id (controlled?2), token id (controlled?2)816       **/817      reFungibleTransferBasket: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array, arg3: AccountId32 | string | Uint8Array) => Observable<Option<u32>>, [u32, u32, AccountId32]> & QueryableStorageEntry<ApiType, [u32, u32, AccountId32]>;818      /**819       * Last sponsoring of token property setting // todo:doc rephrase this and the following820       **/821      tokenPropertyBasket: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<Option<u32>>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;822      /**823       * Variable metadata sponsoring824       * Collection id (controlled?2), token id (controlled?2)825       **/826      variableMetaDataBasket: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<Option<u32>>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;827      /**828       * Generic query829       **/830      [key: string]: QueryableStorageEntry<ApiType>;831    };832    vesting: {833      /**834       * Vesting schedules of an account.835       * 836       * VestingSchedules: map AccountId => Vec<VestingSchedule>837       **/838      vestingSchedules: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<Vec<OrmlVestingVestingSchedule>>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>;839      /**840       * Generic query841       **/842      [key: string]: QueryableStorageEntry<ApiType>;843    };844    xcmpQueue: {845      /**846       * Inbound aggregate XCMP messages. It can only be one per ParaId/block.847       **/848      inboundXcmpMessages: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<Bytes>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;849      /**850       * Status of the inbound XCMP channels.851       **/852      inboundXcmpStatus: AugmentedQuery<ApiType, () => Observable<Vec<CumulusPalletXcmpQueueInboundChannelDetails>>, []> & QueryableStorageEntry<ApiType, []>;853      /**854       * The messages outbound in a given XCMP channel.855       **/856      outboundXcmpMessages: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u16 | AnyNumber | Uint8Array) => Observable<Bytes>, [u32, u16]> & QueryableStorageEntry<ApiType, [u32, u16]>;857      /**858       * The non-empty XCMP channels in order of becoming non-empty, and the index of the first859       * and last outbound message. If the two indices are equal, then it indicates an empty860       * queue and there must be a non-`Ok` `OutboundStatus`. We assume queues grow no greater861       * than 65535 items. Queue indices for normal messages begin at one; zero is reserved in862       * case of the need to send a high-priority signal message this block.863       * The bool is true if there is a signal message waiting to be sent.864       **/865      outboundXcmpStatus: AugmentedQuery<ApiType, () => Observable<Vec<CumulusPalletXcmpQueueOutboundChannelDetails>>, []> & QueryableStorageEntry<ApiType, []>;866      /**867       * The messages that exceeded max individual message weight budget.868       * 869       * These message stay in this storage map until they are manually dispatched via870       * `service_overweight`.871       **/872      overweight: AugmentedQuery<ApiType, (arg: u64 | AnyNumber | Uint8Array) => Observable<Option<ITuple<[u32, u32, Bytes]>>>, [u64]> & QueryableStorageEntry<ApiType, [u64]>;873      /**874       * The number of overweight messages ever recorded in `Overweight`. Also doubles as the next875       * available free overweight index.876       **/877      overweightCount: AugmentedQuery<ApiType, () => Observable<u64>, []> & QueryableStorageEntry<ApiType, []>;878      /**879       * The configuration which controls the dynamics of the outbound queue.880       **/881      queueConfig: AugmentedQuery<ApiType, () => Observable<CumulusPalletXcmpQueueQueueConfigData>, []> & QueryableStorageEntry<ApiType, []>;882      /**883       * Whether or not the XCMP queue is suspended from executing incoming XCMs or not.884       **/885      queueSuspended: AugmentedQuery<ApiType, () => Observable<bool>, []> & QueryableStorageEntry<ApiType, []>;886      /**887       * Any signal messages waiting to be sent.888       **/889      signalMessages: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Bytes>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;890      /**891       * Generic query892       **/893      [key: string]: QueryableStorageEntry<ApiType>;894    };895  } // AugmentedQueries896} // declare module