difftreelog
added the ability to configure pallet `app-promotion` via the `configuration` palette
in: master
14 files changed
Cargo.lockdiffbeforeafterboth--- a/Cargo.lock
+++ b/Cargo.lock
@@ -5524,13 +5524,14 @@
[[package]]
name = "pallet-app-promotion"
-version = "0.1.0"
+version = "0.1.1"
dependencies = [
"frame-benchmarking",
"frame-support",
"frame-system",
"pallet-balances",
"pallet-common",
+ "pallet-configuration",
"pallet-evm",
"pallet-evm-contract-helpers",
"pallet-evm-migration",
@@ -5784,7 +5785,7 @@
[[package]]
name = "pallet-configuration"
-version = "0.1.1"
+version = "0.1.2"
dependencies = [
"fp-evm",
"frame-support",
pallets/app-promotion/CHANGELOG.mddiffbeforeafterboth--- /dev/null
+++ b/pallets/app-promotion/CHANGELOG.md
@@ -0,0 +1,11 @@
+# Change Log
+
+All notable changes to this project will be documented in this file.
+
+<!-- bureaucrate goes here -->
+
+## [0.1.1] - 2022-12-13
+
+### Added
+
+- The ability to configure pallet `app-promotion` via the `configuration` palette
pallets/app-promotion/Cargo.tomldiffbeforeafterboth--- a/pallets/app-promotion/Cargo.toml
+++ b/pallets/app-promotion/Cargo.toml
@@ -9,7 +9,7 @@
license = 'GPLv3'
name = 'pallet-app-promotion'
repository = 'https://github.com/UniqueNetwork/unique-chain'
-version = '0.1.0'
+version = '0.1.1'
[package.metadata.docs.rs]
targets = ['x86_64-unknown-linux-gnu']
@@ -68,6 +68,7 @@
up-data-structs = { default-features = false, path = "../../primitives/data-structs" }
pallet-common = { default-features = false, path = "../common" }
+pallet-configuration = { default-features = false, path = "../configuration" }
pallet-unique = { default-features = false, path = "../unique" }
pallet-evm-contract-helpers = { default-features = false, path = "../evm-contract-helpers" }
pallet-evm-migration = { default-features = false, path = "../evm-migration" }
pallets/app-promotion/src/lib.rsdiffbeforeafterboth--- a/pallets/app-promotion/src/lib.rs
+++ b/pallets/app-promotion/src/lib.rs
@@ -102,7 +102,9 @@
use frame_system::pallet_prelude::*;
#[pallet::config]
- pub trait Config: frame_system::Config + pallet_evm::Config {
+ pub trait Config:
+ frame_system::Config + pallet_evm::Config + pallet_configuration::Config
+ {
/// Type to interact with the native token
type Currency: ExtendedLockableCurrency<Self::AccountId>
+ ReservableCurrency<Self::AccountId>;
@@ -330,6 +332,7 @@
amount >= <BalanceOf<T>>::from(100u128) * T::Nominal::get(),
ArithmeticError::Underflow
);
+ let config = <PalletConfiguration<T>>::get();
let balance =
<<T as Config>::Currency as Currency<T::AccountId>>::free_balance(&staker_id);
@@ -351,7 +354,7 @@
// Calculation of the number of recalculation periods,
// after how much the first interest calculation should be performed for the stake
let recalculate_after_interval: T::BlockNumber =
- if block_number % T::RecalculationInterval::get() == 0u32.into() {
+ if block_number % config.recalculation_interval == 0u32.into() {
1u32.into()
} else {
2u32.into()
@@ -359,9 +362,9 @@
// Сalculation of the number of the relay block
// in which it is necessary to accrue remuneration for the stake.
- let recalc_block = (block_number / T::RecalculationInterval::get()
+ let recalc_block = (block_number / config.recalculation_interval
+ recalculate_after_interval)
- * T::RecalculationInterval::get();
+ * config.recalculation_interval;
<Staked<T>>::insert((&staker_id, block_number), {
let mut balance_and_recalc_block = <Staked<T>>::get((&staker_id, block_number));
@@ -393,9 +396,10 @@
#[pallet::weight(<T as Config>::WeightInfo::unstake())]
pub fn unstake(staker: OriginFor<T>) -> DispatchResultWithPostInfo {
let staker_id = ensure_signed(staker)?;
+ let config = <PalletConfiguration<T>>::get();
// calculate block number where the sum would be free
- let block = <frame_system::Pallet<T>>::block_number() + T::PendingInterval::get();
+ let block = <frame_system::Pallet<T>>::block_number() + config.pending_interval;
let mut pendings = <PendingUnstake<T>>::get(block);
@@ -568,15 +572,25 @@
admin_id == Admin::<T>::get().ok_or(Error::<T>::AdminNotSet)?,
Error::<T>::NoPermission
);
+ let config = <PalletConfiguration<T>>::get();
+ let mut stakers_number = stakers_number.unwrap_or(DEFAULT_NUMBER_PAYOUTS);
+
+ ensure!(
+ stakers_number <= config.max_stakers_per_calculation,
+ Error::<T>::NoPermission
+ );
+
// calculate the number of the current recalculation block,
// this is necessary in order to understand which stakers we should calculate interest
- let current_recalc_block =
- Self::get_current_recalc_block(T::RelayBlockNumberProvider::current_block_number());
+ let current_recalc_block = Self::get_current_recalc_block(
+ T::RelayBlockNumberProvider::current_block_number(),
+ &config,
+ );
// calculate the number of the next recalculation block,
// this value is set for the stakers to whom the recalculation will be performed
- let next_recalc_block = current_recalc_block + T::RecalculationInterval::get();
+ let next_recalc_block = current_recalc_block + config.recalculation_interval;
let mut storage_iterator = Self::get_next_calculated_key()
.map_or(Staked::<T>::iter(), |key| Staked::<T>::iter_from(key));
@@ -584,7 +598,6 @@
NextCalculatedRecord::<T>::set(None);
{
- let mut stakers_number = stakers_number.unwrap_or(20);
let last_id = RefCell::new(None);
let income_acc = RefCell::new(BalanceOf::<T>::default());
let amount_acc = RefCell::new(BalanceOf::<T>::default());
@@ -644,8 +657,8 @@
next_recalc_block,
amount,
((current_recalc_block - next_recalc_block_for_stake)
- / T::RecalculationInterval::get())
- .into() + 1,
+ / config.recalculation_interval)
+ .into() + 1,
&mut *income_acc.borrow_mut(),
);
}
@@ -810,15 +823,19 @@
where
I: EncodeLike<BalanceOf<T>> + Balance,
{
+ let config = <PalletConfiguration<T>>::get();
let mut income = base;
- (0..iters).for_each(|_| income += T::IntervalIncome::get() * income);
+ (0..iters).for_each(|_| income += config.interval_income * income);
income - base
}
- fn get_current_recalc_block(current_relay_block: T::BlockNumber) -> T::BlockNumber {
- (current_relay_block / T::RecalculationInterval::get()) * T::RecalculationInterval::get()
+ fn get_current_recalc_block(
+ current_relay_block: T::BlockNumber,
+ config: &PalletConfiguration<T>,
+ ) -> T::BlockNumber {
+ (current_relay_block / config.recalculation_interval) * config.recalculation_interval
}
fn get_next_calculated_key() -> Option<Vec<u8>> {
pallets/app-promotion/src/types.rsdiffbeforeafterboth--- a/pallets/app-promotion/src/types.rs
+++ b/pallets/app-promotion/src/types.rs
@@ -4,10 +4,15 @@
use pallet_balances::{BalanceLock, Config as BalancesConfig, Pallet as PalletBalances};
use pallet_common::CollectionHandle;
-use sp_runtime::DispatchError;
+use sp_runtime::{DispatchError, Perbill};
use up_data_structs::{CollectionId};
use sp_std::borrow::ToOwned;
use pallet_evm_contract_helpers::{Pallet as EvmHelpersPallet, Config as EvmHelpersConfig};
+use pallet_configuration::{AppPromomotionConfigurationOverride};
+use sp_core::Get;
+
+const MAX_NUMBER_PAYOUTS: u8 = 100;
+pub(crate) const DEFAULT_NUMBER_PAYOUTS: u8 = 20;
/// This trait was defined because `LockableCurrency`
/// has no way to know the state of the lock for an account.
@@ -128,3 +133,24 @@
Ok(Self::get_sponsor(contract_address))
}
}
+pub(crate) struct PalletConfiguration<T: crate::Config> {
+ /// In relay blocks.
+ pub recalculation_interval: T::BlockNumber,
+ /// In parachain blocks.
+ pub pending_interval: T::BlockNumber,
+ /// Value for `RecalculationInterval` based on 0.05% per 24h.
+ pub interval_income: Perbill,
+ /// Maximum allowable number of stakers calculated per call of the `app-promotion::PayoutStakers` extrinsic.
+ pub max_stakers_per_calculation: u8,
+}
+impl<T: crate::Config> PalletConfiguration<T> {
+ pub fn get() -> Self {
+ let config = <AppPromomotionConfigurationOverride<T>>::get().unwrap_or_default();
+ Self {
+ recalculation_interval: config.0.unwrap_or(T::RecalculationInterval::get()),
+ pending_interval: config.2.unwrap_or(T::PendingInterval::get()),
+ interval_income: config.1.unwrap_or(T::IntervalIncome::get()),
+ max_stakers_per_calculation: config.3.unwrap_or(MAX_NUMBER_PAYOUTS),
+ }
+ }
+}
pallets/configuration/CHANGELOG.mddiffbeforeafterboth--- a/pallets/configuration/CHANGELOG.md
+++ b/pallets/configuration/CHANGELOG.md
@@ -1,4 +1,10 @@
<!-- bureaucrate goes here -->
+## [0.1.2] - 2022-12-13
+
+### Added
+
+- The ability to configure pallet `app-promotion` via the `configuration` palette
+
## [v0.1.1] 2022-08-16
### Other changes
pallets/configuration/Cargo.tomldiffbeforeafterboth--- a/pallets/configuration/Cargo.toml
+++ b/pallets/configuration/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "pallet-configuration"
-version = "0.1.1"
+version = "0.1.2"
edition = "2021"
[dependencies]
pallets/configuration/src/lib.rsdiffbeforeafterboth--- a/pallets/configuration/src/lib.rs
+++ b/pallets/configuration/src/lib.rs
@@ -51,6 +51,10 @@
#[pallet::constant]
type MaxOverridedAllowedLocations: Get<u32>;
+ #[pallet::constant]
+ type AppPromotionDailyRate: Get<Perbill>;
+ #[pallet::constant]
+ type DayRelayBlocks: Get<Self::BlockNumber>;
}
#[pallet::storage]
@@ -70,6 +74,17 @@
QueryKind = OptionQuery,
>;
+ #[pallet::storage]
+ pub type AppPromomotionConfigurationOverride<T: Config> = StorageValue<
+ Value = (
+ Option<T::BlockNumber>,
+ Option<Perbill>,
+ Option<T::BlockNumber>,
+ Option<u8>,
+ ),
+ QueryKind = OptionQuery,
+ >;
+
#[pallet::call]
impl<T: Config> Pallet<T> {
#[pallet::weight(T::DbWeight::get().writes(1))]
@@ -109,6 +124,39 @@
<XcmAllowedLocationsOverride<T>>::set(locations);
Ok(())
}
+
+ #[pallet::weight(T::DbWeight::get().writes(1))]
+ pub fn set_app_promotion_configuration_override(
+ origin: OriginFor<T>,
+ recalculation_interval: Option<T::BlockNumber>,
+ pending_interval: Option<T::BlockNumber>,
+ stakers_payout_limit: Option<u8>,
+ ) -> DispatchResult {
+ let _sender = ensure_root(origin)?;
+
+ if recalculation_interval.is_none()
+ && pending_interval.is_none()
+ && stakers_payout_limit.is_none()
+ {
+ <AppPromomotionConfigurationOverride<T>>::kill();
+ } else {
+ let mut current_config =
+ <AppPromomotionConfigurationOverride<T>>::take().unwrap_or_default();
+
+ recalculation_interval.map(|b| {
+ current_config.0 = Some(b);
+ current_config.1 = Some(
+ Perbill::from_rational(b, T::DayRelayBlocks::get())
+ * T::AppPromotionDailyRate::get(),
+ )
+ });
+ pending_interval.map(|b| current_config.2 = Some(b));
+ stakers_payout_limit.map(|p| current_config.3 = Some(p));
+ <AppPromomotionConfigurationOverride<T>>::set(Some(current_config));
+ }
+
+ Ok(())
+ }
}
#[pallet::pallet]
runtime/common/config/pallets/app_promotion.rsdiffbeforeafterboth--- a/runtime/common/config/pallets/app_promotion.rs
+++ b/runtime/common/config/pallets/app_promotion.rs
@@ -26,16 +26,6 @@
types::Balance,
};
-#[cfg(all(not(feature = "unique-runtime"), not(feature = "quartz-runtime")))]
-parameter_types! {
- pub const AppPromotionId: PalletId = PalletId(*b"appstake");
- pub const RecalculationInterval: BlockNumber = 8;
- pub const PendingInterval: BlockNumber = 4;
- pub const Nominal: Balance = UNIQUE;
- pub IntervalIncome: Perbill = Perbill::from_rational(RecalculationInterval::get(), RELAY_DAYS) * Perbill::from_rational(5u32, 10_000);
-}
-
-#[cfg(any(feature = "unique-runtime", feature = "quartz-runtime"))]
parameter_types! {
pub const AppPromotionId: PalletId = PalletId(*b"appstake");
pub const RecalculationInterval: BlockNumber = RELAY_DAYS;
runtime/common/config/pallets/mod.rsdiffbeforeafterboth--- a/runtime/common/config/pallets/mod.rs
+++ b/runtime/common/config/pallets/mod.rs
@@ -33,6 +33,7 @@
use up_data_structs::{
mapping::{EvmTokenAddressMapping, CrossTokenAddressMapping},
};
+use sp_arithmetic::Perbill;
#[cfg(feature = "rmrk")]
pub mod rmrk;
@@ -98,10 +99,16 @@
type RefungibleExtensionsWeightInfo = CommonWeights<Self>;
}
+parameter_types! {
+ pub AppPromotionDailyRate: Perbill = Perbill::from_rational(5u32, 10_000);
+ pub const DayRelayBlocks: BlockNumber = RELAY_DAYS;
+}
impl pallet_configuration::Config for Runtime {
type DefaultWeightToFeeCoefficient = ConstU32<{ up_common::constants::WEIGHT_TO_FEE_COEFF }>;
type DefaultMinGasPrice = ConstU64<{ up_common::constants::MIN_GAS_PRICE }>;
type MaxOverridedAllowedLocations = ConstU32<16>;
+ type AppPromotionDailyRate = AppPromotionDailyRate;
+ type DayRelayBlocks = DayRelayBlocks;
}
impl pallet_maintenance::Config for Runtime {
tests/src/app-promotion.test.tsdiffbeforeafterboth--- a/tests/src/app-promotion.test.ts
+++ b/tests/src/app-promotion.test.ts
@@ -31,11 +31,14 @@
before(async function () {
await usingPlaygrounds(async (helper, privateKey) => {
requirePalletsOrSkip(this, helper, [Pallets.AppPromotion]);
+ const alice = await privateKey('//Alice');
donor = await privateKey({filename: __filename});
palletAddress = helper.arrange.calculatePalletAddress('appstake');
palletAdmin = await privateKey('//PromotionAdmin');
nominal = helper.balance.getOneTokenNominal();
accounts = await helper.arrange.createCrowd(100, 1000n, donor); // create accounts-pool to speed up tests
+ const api = helper.getApi();
+ await helper.signTransaction(alice, api.tx.sudo.sudo(api.tx.configuration.setAppPromotionConfigurationOverride(LOCKING_PERIOD, UNLOCKING_PERIOD, null)));
});
});
tests/src/interfaces/augment-api-consts.tsdiffbeforeafterboth--- a/tests/src/interfaces/augment-api-consts.ts
+++ b/tests/src/interfaces/augment-api-consts.ts
@@ -79,6 +79,8 @@
[key: string]: Codec;
};
configuration: {
+ appPromotionDailyRate: Perbill & AugmentedConst<ApiType>;
+ dayRelayBlocks: u32 & AugmentedConst<ApiType>;
defaultMinGasPrice: u64 & AugmentedConst<ApiType>;
defaultWeightToFeeCoefficient: u32 & AugmentedConst<ApiType>;
maxOverridedAllowedLocations: u32 & AugmentedConst<ApiType>;
tests/src/interfaces/augment-api-query.tsdiffbeforeafterboth1// 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, FrameSupportDispatchPerDispatchClassWeight, FrameSystemAccountInfo, FrameSystemEventRecord, FrameSystemLastRuntimeUpgradeInfo, FrameSystemPhase, OrmlTokensAccountData, OrmlTokensBalanceLock, OrmlTokensReserveData, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesReleases, PalletBalancesReserveData, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmContractHelpersSponsoringModeT, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, PalletNonfungibleItemData, PalletRefungibleItemData, PalletTransactionPaymentReleases, PalletTreasuryProposal, PalletUniqueSchedulerV2BlockAgenda, PhantomTypeUpDataStructs, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, SpRuntimeDigest, SpTrieStorageProof, SpWeightsWeightV2Weight, UpDataStructsCollection, UpDataStructsCollectionStats, UpDataStructsProperties, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsPropertyPermission, UpDataStructsPropertyScope, UpDataStructsSponsorshipStateBasicCrossAccountIdRepr, UpDataStructsTokenChild, XcmV1MultiLocation } 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 appPromotion: {21 /**22 * Stores the `admin` account. Some extrinsics can only be executed if they were signed by `admin`.23 **/24 admin: AugmentedQuery<ApiType, () => Observable<Option<AccountId32>>, []> & QueryableStorageEntry<ApiType, []>;25 /**26 * Stores a key for record for which the next revenue recalculation would be performed.27 * If `None`, then recalculation has not yet been performed or calculations have been completed for all stakers.28 **/29 nextCalculatedRecord: AugmentedQuery<ApiType, () => Observable<Option<ITuple<[AccountId32, u32]>>>, []> & QueryableStorageEntry<ApiType, []>;30 /**31 * Stores amount of stakes for an `Account`.32 * 33 * * **Key** - Staker account.34 * * **Value** - Amount of stakes.35 **/36 pendingUnstake: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<ITuple<[AccountId32, u128]>>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;37 /**38 * Stores the amount of tokens staked by account in the blocknumber.39 * 40 * * **Key1** - Staker account.41 * * **Key2** - Relay block number when the stake was made.42 * * **(Balance, BlockNumber)** - Balance of the stake.43 * The number of the relay block in which we must perform the interest recalculation44 **/45 staked: AugmentedQuery<ApiType, (arg1: AccountId32 | string | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<ITuple<[u128, u32]>>, [AccountId32, u32]> & QueryableStorageEntry<ApiType, [AccountId32, u32]>;46 /**47 * Stores amount of stakes for an `Account`.48 * 49 * * **Key** - Staker account.50 * * **Value** - Amount of stakes.51 **/52 stakesPerAccount: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<u8>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>;53 /**54 * Stores the total staked amount.55 **/56 totalStaked: AugmentedQuery<ApiType, () => Observable<u128>, []> & QueryableStorageEntry<ApiType, []>;57 /**58 * Generic query59 **/60 [key: string]: QueryableStorageEntry<ApiType>;61 };62 balances: {63 /**64 * The Balances pallet example of storing the balance of an account.65 * 66 * # Example67 * 68 * ```nocompile69 * impl pallet_balances::Config for Runtime {70 * type AccountStore = StorageMapShim<Self::Account<Runtime>, frame_system::Provider<Runtime>, AccountId, Self::AccountData<Balance>>71 * }72 * ```73 * 74 * You can also store the balance of an account in the `System` pallet.75 * 76 * # Example77 * 78 * ```nocompile79 * impl pallet_balances::Config for Runtime {80 * type AccountStore = System81 * }82 * ```83 * 84 * But this comes with tradeoffs, storing account balances in the system pallet stores85 * `frame_system` data alongside the account data contrary to storing account balances in the86 * `Balances` pallet, which uses a `StorageMap` to store balances data only.87 * NOTE: This is only used in the case that this pallet is used to store balances.88 **/89 account: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<PalletBalancesAccountData>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>;90 /**91 * Any liquidity locks on some account balances.92 * NOTE: Should only be accessed when setting, changing and freeing a lock.93 **/94 locks: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<Vec<PalletBalancesBalanceLock>>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>;95 /**96 * Named reserves on some account balances.97 **/98 reserves: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<Vec<PalletBalancesReserveData>>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>;99 /**100 * Storage version of the pallet.101 * 102 * This is set to v2.0.0 for new networks.103 **/104 storageVersion: AugmentedQuery<ApiType, () => Observable<PalletBalancesReleases>, []> & QueryableStorageEntry<ApiType, []>;105 /**106 * The total units issued in the system.107 **/108 totalIssuance: AugmentedQuery<ApiType, () => Observable<u128>, []> & QueryableStorageEntry<ApiType, []>;109 /**110 * Generic query111 **/112 [key: string]: QueryableStorageEntry<ApiType>;113 };114 charging: {115 /**116 * Generic query117 **/118 [key: string]: QueryableStorageEntry<ApiType>;119 };120 common: {121 /**122 * Storage of the amount of collection admins.123 **/124 adminAmount: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u32>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;125 /**126 * Allowlisted collection users.127 **/128 allowlist: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<bool>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;129 /**130 * Storage of collection info.131 **/132 collectionById: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<UpDataStructsCollection>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;133 /**134 * Storage of collection properties.135 **/136 collectionProperties: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<UpDataStructsProperties>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;137 /**138 * Storage of token property permissions of a collection.139 **/140 collectionPropertyPermissions: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<BTreeMap<Bytes, UpDataStructsPropertyPermission>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;141 /**142 * Storage of the count of created collections. Essentially contains the last collection ID.143 **/144 createdCollectionCount: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;145 /**146 * Storage of the count of deleted collections.147 **/148 destroyedCollectionCount: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;149 /**150 * Not used by code, exists only to provide some types to metadata.151 **/152 dummyStorageValue: AugmentedQuery<ApiType, () => Observable<Option<ITuple<[UpDataStructsCollectionStats, u32, u32, UpDataStructsTokenChild, PhantomTypeUpDataStructs]>>>, []> & QueryableStorageEntry<ApiType, []>;153 /**154 * List of collection admins.155 **/156 isAdmin: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<bool>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;157 /**158 * Generic query159 **/160 [key: string]: QueryableStorageEntry<ApiType>;161 };162 configuration: {163 minGasPriceOverride: AugmentedQuery<ApiType, () => Observable<u64>, []> & QueryableStorageEntry<ApiType, []>;164 weightToFeeCoefficientOverride: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;165 xcmAllowedLocationsOverride: AugmentedQuery<ApiType, () => Observable<Option<Vec<XcmV1MultiLocation>>>, []> & QueryableStorageEntry<ApiType, []>;166 /**167 * Generic query168 **/169 [key: string]: QueryableStorageEntry<ApiType>;170 };171 dmpQueue: {172 /**173 * The configuration.174 **/175 configuration: AugmentedQuery<ApiType, () => Observable<CumulusPalletDmpQueueConfigData>, []> & QueryableStorageEntry<ApiType, []>;176 /**177 * The overweight messages.178 **/179 overweight: AugmentedQuery<ApiType, (arg: u64 | AnyNumber | Uint8Array) => Observable<Option<ITuple<[u32, Bytes]>>>, [u64]> & QueryableStorageEntry<ApiType, [u64]>;180 /**181 * The page index.182 **/183 pageIndex: AugmentedQuery<ApiType, () => Observable<CumulusPalletDmpQueuePageIndexData>, []> & QueryableStorageEntry<ApiType, []>;184 /**185 * The queue pages.186 **/187 pages: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<ITuple<[u32, Bytes]>>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;188 /**189 * Generic query190 **/191 [key: string]: QueryableStorageEntry<ApiType>;192 };193 ethereum: {194 blockHash: AugmentedQuery<ApiType, (arg: U256 | AnyNumber | Uint8Array) => Observable<H256>, [U256]> & QueryableStorageEntry<ApiType, [U256]>;195 /**196 * The current Ethereum block.197 **/198 currentBlock: AugmentedQuery<ApiType, () => Observable<Option<EthereumBlock>>, []> & QueryableStorageEntry<ApiType, []>;199 /**200 * The current Ethereum receipts.201 **/202 currentReceipts: AugmentedQuery<ApiType, () => Observable<Option<Vec<EthereumReceiptReceiptV3>>>, []> & QueryableStorageEntry<ApiType, []>;203 /**204 * The current transaction statuses.205 **/206 currentTransactionStatuses: AugmentedQuery<ApiType, () => Observable<Option<Vec<FpRpcTransactionStatus>>>, []> & QueryableStorageEntry<ApiType, []>;207 /**208 * Injected transactions should have unique nonce, here we store current209 **/210 injectedNonce: AugmentedQuery<ApiType, () => Observable<U256>, []> & QueryableStorageEntry<ApiType, []>;211 /**212 * Current building block's transactions and receipts.213 **/214 pending: AugmentedQuery<ApiType, () => Observable<Vec<ITuple<[EthereumTransactionTransactionV2, FpRpcTransactionStatus, EthereumReceiptReceiptV3]>>>, []> & QueryableStorageEntry<ApiType, []>;215 /**216 * Generic query217 **/218 [key: string]: QueryableStorageEntry<ApiType>;219 };220 evm: {221 accountCodes: AugmentedQuery<ApiType, (arg: H160 | string | Uint8Array) => Observable<Bytes>, [H160]> & QueryableStorageEntry<ApiType, [H160]>;222 accountStorages: AugmentedQuery<ApiType, (arg1: H160 | string | Uint8Array, arg2: H256 | string | Uint8Array) => Observable<H256>, [H160, H256]> & QueryableStorageEntry<ApiType, [H160, H256]>;223 /**224 * Written on log, reset after transaction225 * Should be empty between transactions226 **/227 currentLogs: AugmentedQuery<ApiType, () => Observable<Vec<EthereumLog>>, []> & QueryableStorageEntry<ApiType, []>;228 /**229 * Generic query230 **/231 [key: string]: QueryableStorageEntry<ApiType>;232 };233 evmCoderSubstrate: {234 /**235 * Generic query236 **/237 [key: string]: QueryableStorageEntry<ApiType>;238 };239 evmContractHelpers: {240 /**241 * Storage for users that allowed for sponsorship.242 * 243 * ### Usage244 * Prefer to delete record from storage if user no more allowed for sponsorship.245 * 246 * * **Key1** - contract address.247 * * **Key2** - user that allowed for sponsorship.248 * * **Value** - allowance for sponsorship.249 **/250 allowlist: AugmentedQuery<ApiType, (arg1: H160 | string | Uint8Array, arg2: H160 | string | Uint8Array) => Observable<bool>, [H160, H160]> & QueryableStorageEntry<ApiType, [H160, H160]>;251 /**252 * Storege for contracts with [`Allowlisted`](SponsoringModeT::Allowlisted) sponsoring mode.253 * 254 * ### Usage255 * Prefer to delete collection from storage if mode chaged to non `Allowlisted`, than set **Value** to **false**.256 * 257 * * **Key** - contract address.258 * * **Value** - is contract in [`Allowlisted`](SponsoringModeT::Allowlisted) mode.259 **/260 allowlistEnabled: AugmentedQuery<ApiType, (arg: H160 | string | Uint8Array) => Observable<bool>, [H160]> & QueryableStorageEntry<ApiType, [H160]>;261 /**262 * Store owner for contract.263 * 264 * * **Key** - contract address.265 * * **Value** - owner for contract.266 **/267 owner: AugmentedQuery<ApiType, (arg: H160 | string | Uint8Array) => Observable<H160>, [H160]> & QueryableStorageEntry<ApiType, [H160]>;268 selfSponsoring: AugmentedQuery<ApiType, (arg: H160 | string | Uint8Array) => Observable<bool>, [H160]> & QueryableStorageEntry<ApiType, [H160]>;269 sponsorBasket: AugmentedQuery<ApiType, (arg1: H160 | string | Uint8Array, arg2: H160 | string | Uint8Array) => Observable<Option<u32>>, [H160, H160]> & QueryableStorageEntry<ApiType, [H160, H160]>;270 /**271 * Store for contract sponsorship state.272 * 273 * * **Key** - contract address.274 * * **Value** - sponsorship state.275 **/276 sponsoring: AugmentedQuery<ApiType, (arg: H160 | string | Uint8Array) => Observable<UpDataStructsSponsorshipStateBasicCrossAccountIdRepr>, [H160]> & QueryableStorageEntry<ApiType, [H160]>;277 /**278 * Storage for last sponsored block.279 * 280 * * **Key1** - contract address.281 * * **Key2** - sponsored user address.282 * * **Value** - last sponsored block number.283 **/284 sponsoringFeeLimit: AugmentedQuery<ApiType, (arg: H160 | string | Uint8Array) => Observable<BTreeMap<u32, U256>>, [H160]> & QueryableStorageEntry<ApiType, [H160]>;285 /**286 * Store for sponsoring mode.287 * 288 * ### Usage289 * Prefer to delete collection from storage if mode chaged to [`Disabled`](SponsoringModeT::Disabled).290 * 291 * * **Key** - contract address.292 * * **Value** - [`sponsoring mode`](SponsoringModeT).293 **/294 sponsoringMode: AugmentedQuery<ApiType, (arg: H160 | string | Uint8Array) => Observable<Option<PalletEvmContractHelpersSponsoringModeT>>, [H160]> & QueryableStorageEntry<ApiType, [H160]>;295 /**296 * Storage for sponsoring rate limit in blocks.297 * 298 * * **Key** - contract address.299 * * **Value** - amount of sponsored blocks.300 **/301 sponsoringRateLimit: AugmentedQuery<ApiType, (arg: H160 | string | Uint8Array) => Observable<u32>, [H160]> & QueryableStorageEntry<ApiType, [H160]>;302 /**303 * Generic query304 **/305 [key: string]: QueryableStorageEntry<ApiType>;306 };307 evmMigration: {308 migrationPending: AugmentedQuery<ApiType, (arg: H160 | string | Uint8Array) => Observable<bool>, [H160]> & QueryableStorageEntry<ApiType, [H160]>;309 /**310 * Generic query311 **/312 [key: string]: QueryableStorageEntry<ApiType>;313 };314 foreignAssets: {315 /**316 * The storages for assets to fungible collection binding317 * 318 **/319 assetBinding: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<u32>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;320 /**321 * The storages for AssetMetadatas.322 * 323 * AssetMetadatas: map AssetIds => Option<AssetMetadata>324 **/325 assetMetadatas: AugmentedQuery<ApiType, (arg: PalletForeignAssetsAssetIds | { ForeignAssetId: any } | { NativeAssetId: any } | string | Uint8Array) => Observable<Option<PalletForeignAssetsModuleAssetMetadata>>, [PalletForeignAssetsAssetIds]> & QueryableStorageEntry<ApiType, [PalletForeignAssetsAssetIds]>;326 /**327 * The storages for MultiLocations.328 * 329 * ForeignAssetLocations: map ForeignAssetId => Option<MultiLocation>330 **/331 foreignAssetLocations: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<XcmV1MultiLocation>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;332 /**333 * The storages for CurrencyIds.334 * 335 * LocationToCurrencyIds: map MultiLocation => Option<ForeignAssetId>336 **/337 locationToCurrencyIds: AugmentedQuery<ApiType, (arg: XcmV1MultiLocation | { parents?: any; interior?: any } | string | Uint8Array) => Observable<Option<u32>>, [XcmV1MultiLocation]> & QueryableStorageEntry<ApiType, [XcmV1MultiLocation]>;338 /**339 * Next available Foreign AssetId ID.340 * 341 * NextForeignAssetId: ForeignAssetId342 **/343 nextForeignAssetId: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;344 /**345 * Generic query346 **/347 [key: string]: QueryableStorageEntry<ApiType>;348 };349 fungible: {350 /**351 * Storage for assets delegated to a limited extent to other users.352 **/353 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]>;354 /**355 * Amount of tokens owned by an account inside a collection.356 **/357 balance: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<u128>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;358 /**359 * Total amount of fungible tokens inside a collection.360 **/361 totalSupply: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u128>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;362 /**363 * Generic query364 **/365 [key: string]: QueryableStorageEntry<ApiType>;366 };367 inflation: {368 /**369 * Current inflation for `InflationBlockInterval` number of blocks370 **/371 blockInflation: AugmentedQuery<ApiType, () => Observable<u128>, []> & QueryableStorageEntry<ApiType, []>;372 /**373 * Next target (relay) block when inflation will be applied374 **/375 nextInflationBlock: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;376 /**377 * Next target (relay) block when inflation is recalculated378 **/379 nextRecalculationBlock: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;380 /**381 * Relay block when inflation has started382 **/383 startBlock: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;384 /**385 * starting year total issuance386 **/387 startingYearTotalIssuance: AugmentedQuery<ApiType, () => Observable<u128>, []> & QueryableStorageEntry<ApiType, []>;388 /**389 * Generic query390 **/391 [key: string]: QueryableStorageEntry<ApiType>;392 };393 maintenance: {394 enabled: AugmentedQuery<ApiType, () => Observable<bool>, []> & QueryableStorageEntry<ApiType, []>;395 /**396 * Generic query397 **/398 [key: string]: QueryableStorageEntry<ApiType>;399 };400 nonfungible: {401 /**402 * Amount of tokens owned by an account in a collection.403 **/404 accountBalance: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<u32>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;405 /**406 * Allowance set by a token owner for another user to perform one of certain transactions on a token.407 **/408 allowance: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<Option<PalletEvmAccountBasicCrossAccountIdRepr>>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;409 /**410 * Operator set by a wallet owner that could perform certain transactions on all tokens in the wallet.411 **/412 collectionAllowance: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, arg3: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<bool>, [u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr]>;413 /**414 * Used to enumerate tokens owned by account.415 **/416 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]>;417 /**418 * Custom data of a token that is serialized to bytes,419 * primarily reserved for on-chain operations,420 * normally obscured from the external users.421 * 422 * Auxiliary properties are slightly different from423 * usual [`TokenProperties`] due to an unlimited number424 * and separately stored and written-to key-value pairs.425 * 426 * Currently used to store RMRK data.427 **/428 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]>;429 /**430 * Used to enumerate token's children.431 **/432 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]>]>;433 /**434 * Token data, used to partially describe a token.435 **/436 tokenData: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<Option<PalletNonfungibleItemData>>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;437 /**438 * Map of key-value pairs, describing the metadata of a token.439 **/440 tokenProperties: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<UpDataStructsProperties>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;441 /**442 * Amount of burnt tokens in a collection.443 **/444 tokensBurnt: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u32>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;445 /**446 * Total amount of minted tokens in a collection.447 **/448 tokensMinted: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u32>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;449 /**450 * Generic query451 **/452 [key: string]: QueryableStorageEntry<ApiType>;453 };454 parachainInfo: {455 parachainId: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;456 /**457 * Generic query458 **/459 [key: string]: QueryableStorageEntry<ApiType>;460 };461 parachainSystem: {462 /**463 * The number of HRMP messages we observed in `on_initialize` and thus used that number for464 * announcing the weight of `on_initialize` and `on_finalize`.465 **/466 announcedHrmpMessagesPerCandidate: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;467 /**468 * The next authorized upgrade, if there is one.469 **/470 authorizedUpgrade: AugmentedQuery<ApiType, () => Observable<Option<H256>>, []> & QueryableStorageEntry<ApiType, []>;471 /**472 * A custom head data that should be returned as result of `validate_block`.473 * 474 * See [`Pallet::set_custom_validation_head_data`] for more information.475 **/476 customValidationHeadData: AugmentedQuery<ApiType, () => Observable<Option<Bytes>>, []> & QueryableStorageEntry<ApiType, []>;477 /**478 * Were the validation data set to notify the relay chain?479 **/480 didSetValidationCode: AugmentedQuery<ApiType, () => Observable<bool>, []> & QueryableStorageEntry<ApiType, []>;481 /**482 * The parachain host configuration that was obtained from the relay parent.483 * 484 * This field is meant to be updated each block with the validation data inherent. Therefore,485 * before processing of the inherent, e.g. in `on_initialize` this data may be stale.486 * 487 * This data is also absent from the genesis.488 **/489 hostConfiguration: AugmentedQuery<ApiType, () => Observable<Option<PolkadotPrimitivesV2AbridgedHostConfiguration>>, []> & QueryableStorageEntry<ApiType, []>;490 /**491 * HRMP messages that were sent in a block.492 * 493 * This will be cleared in `on_initialize` of each new block.494 **/495 hrmpOutboundMessages: AugmentedQuery<ApiType, () => Observable<Vec<PolkadotCorePrimitivesOutboundHrmpMessage>>, []> & QueryableStorageEntry<ApiType, []>;496 /**497 * HRMP watermark that was set in a block.498 * 499 * This will be cleared in `on_initialize` of each new block.500 **/501 hrmpWatermark: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;502 /**503 * The last downward message queue chain head we have observed.504 * 505 * This value is loaded before and saved after processing inbound downward messages carried506 * by the system inherent.507 **/508 lastDmqMqcHead: AugmentedQuery<ApiType, () => Observable<H256>, []> & QueryableStorageEntry<ApiType, []>;509 /**510 * The message queue chain heads we have observed per each channel incoming channel.511 * 512 * This value is loaded before and saved after processing inbound downward messages carried513 * by the system inherent.514 **/515 lastHrmpMqcHeads: AugmentedQuery<ApiType, () => Observable<BTreeMap<u32, H256>>, []> & QueryableStorageEntry<ApiType, []>;516 /**517 * The relay chain block number associated with the last parachain block.518 **/519 lastRelayChainBlockNumber: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;520 /**521 * Validation code that is set by the parachain and is to be communicated to collator and522 * consequently the relay-chain.523 * 524 * This will be cleared in `on_initialize` of each new block if no other pallet already set525 * the value.526 **/527 newValidationCode: AugmentedQuery<ApiType, () => Observable<Option<Bytes>>, []> & QueryableStorageEntry<ApiType, []>;528 /**529 * Upward messages that are still pending and not yet send to the relay chain.530 **/531 pendingUpwardMessages: AugmentedQuery<ApiType, () => Observable<Vec<Bytes>>, []> & QueryableStorageEntry<ApiType, []>;532 /**533 * In case of a scheduled upgrade, this storage field contains the validation code to be applied.534 * 535 * As soon as the relay chain gives us the go-ahead signal, we will overwrite the [`:code`][well_known_keys::CODE]536 * which will result the next block process with the new validation code. This concludes the upgrade process.537 * 538 * [well_known_keys::CODE]: sp_core::storage::well_known_keys::CODE539 **/540 pendingValidationCode: AugmentedQuery<ApiType, () => Observable<Bytes>, []> & QueryableStorageEntry<ApiType, []>;541 /**542 * Number of downward messages processed in a block.543 * 544 * This will be cleared in `on_initialize` of each new block.545 **/546 processedDownwardMessages: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;547 /**548 * The state proof for the last relay parent block.549 * 550 * This field is meant to be updated each block with the validation data inherent. Therefore,551 * before processing of the inherent, e.g. in `on_initialize` this data may be stale.552 * 553 * This data is also absent from the genesis.554 **/555 relayStateProof: AugmentedQuery<ApiType, () => Observable<Option<SpTrieStorageProof>>, []> & QueryableStorageEntry<ApiType, []>;556 /**557 * The snapshot of some state related to messaging relevant to the current parachain as per558 * the relay parent.559 * 560 * This field is meant to be updated each block with the validation data inherent. Therefore,561 * before processing of the inherent, e.g. in `on_initialize` this data may be stale.562 * 563 * This data is also absent from the genesis.564 **/565 relevantMessagingState: AugmentedQuery<ApiType, () => Observable<Option<CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot>>, []> & QueryableStorageEntry<ApiType, []>;566 /**567 * The weight we reserve at the beginning of the block for processing DMP messages. This568 * overrides the amount set in the Config trait.569 **/570 reservedDmpWeightOverride: AugmentedQuery<ApiType, () => Observable<Option<SpWeightsWeightV2Weight>>, []> & QueryableStorageEntry<ApiType, []>;571 /**572 * The weight we reserve at the beginning of the block for processing XCMP messages. This573 * overrides the amount set in the Config trait.574 **/575 reservedXcmpWeightOverride: AugmentedQuery<ApiType, () => Observable<Option<SpWeightsWeightV2Weight>>, []> & QueryableStorageEntry<ApiType, []>;576 /**577 * An option which indicates if the relay-chain restricts signalling a validation code upgrade.578 * In other words, if this is `Some` and [`NewValidationCode`] is `Some` then the produced579 * candidate will be invalid.580 * 581 * This storage item is a mirror of the corresponding value for the current parachain from the582 * relay-chain. This value is ephemeral which means it doesn't hit the storage. This value is583 * set after the inherent.584 **/585 upgradeRestrictionSignal: AugmentedQuery<ApiType, () => Observable<Option<PolkadotPrimitivesV2UpgradeRestriction>>, []> & QueryableStorageEntry<ApiType, []>;586 /**587 * Upward messages that were sent in a block.588 * 589 * This will be cleared in `on_initialize` of each new block.590 **/591 upwardMessages: AugmentedQuery<ApiType, () => Observable<Vec<Bytes>>, []> & QueryableStorageEntry<ApiType, []>;592 /**593 * The [`PersistedValidationData`] set for this block.594 * This value is expected to be set only once per block and it's never stored595 * in the trie.596 **/597 validationData: AugmentedQuery<ApiType, () => Observable<Option<PolkadotPrimitivesV2PersistedValidationData>>, []> & QueryableStorageEntry<ApiType, []>;598 /**599 * Generic query600 **/601 [key: string]: QueryableStorageEntry<ApiType>;602 };603 randomnessCollectiveFlip: {604 /**605 * Series of block headers from the last 81 blocks that acts as random seed material. This606 * is arranged as a ring buffer with `block_number % 81` being the index into the `Vec` of607 * the oldest hash.608 **/609 randomMaterial: AugmentedQuery<ApiType, () => Observable<Vec<H256>>, []> & QueryableStorageEntry<ApiType, []>;610 /**611 * Generic query612 **/613 [key: string]: QueryableStorageEntry<ApiType>;614 };615 refungible: {616 /**617 * Amount of tokens (not pieces) partially owned by an account within a collection.618 **/619 accountBalance: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<u32>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;620 /**621 * Allowance set by a token owner for another user to perform one of certain transactions on a number of pieces of a token.622 **/623 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]>;624 /**625 * Amount of token pieces owned by account.626 **/627 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]>;628 /**629 * Operator set by a wallet owner that could perform certain transactions on all tokens in the wallet.630 **/631 collectionAllowance: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, arg3: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<bool>, [u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr]>;632 /**633 * Used to enumerate tokens owned by account.634 **/635 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]>;636 /**637 * Token data, used to partially describe a token.638 **/639 tokenData: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<PalletRefungibleItemData>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;640 /**641 * Amount of pieces a refungible token is split into.642 **/643 tokenProperties: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<UpDataStructsProperties>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;644 /**645 * Amount of tokens burnt in a collection.646 **/647 tokensBurnt: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u32>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;648 /**649 * Total amount of minted tokens in a collection.650 **/651 tokensMinted: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u32>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;652 /**653 * Total amount of pieces for token654 **/655 totalSupply: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<u128>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;656 /**657 * Generic query658 **/659 [key: string]: QueryableStorageEntry<ApiType>;660 };661 rmrkCore: {662 /**663 * Latest yet-unused collection ID.664 **/665 collectionIndex: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;666 /**667 * Mapping from RMRK collection ID to Unique's.668 **/669 uniqueCollectionId: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u32>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;670 /**671 * Generic query672 **/673 [key: string]: QueryableStorageEntry<ApiType>;674 };675 rmrkEquip: {676 /**677 * Checkmark that a Base has a Theme NFT named "default".678 **/679 baseHasDefaultTheme: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<bool>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;680 /**681 * Map of a Base ID and a Part ID to an NFT in the Base collection serving as the Part.682 **/683 inernalPartId: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<Option<u32>>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;684 /**685 * Generic query686 **/687 [key: string]: QueryableStorageEntry<ApiType>;688 };689 scheduler: {690 /**691 * Items to be executed, indexed by the block number that they should be executed on.692 **/693 agenda: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<PalletUniqueSchedulerV2BlockAgenda>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;694 /**695 * It contains the block number from which we should service tasks.696 * It's used for delaying the servicing of future blocks' agendas if we had overweight tasks.697 **/698 incompleteSince: AugmentedQuery<ApiType, () => Observable<Option<u32>>, []> & QueryableStorageEntry<ApiType, []>;699 /**700 * Lookup from a name to the block number and index of the task.701 **/702 lookup: AugmentedQuery<ApiType, (arg: U8aFixed | string | Uint8Array) => Observable<Option<ITuple<[u32, u32]>>>, [U8aFixed]> & QueryableStorageEntry<ApiType, [U8aFixed]>;703 /**704 * Generic query705 **/706 [key: string]: QueryableStorageEntry<ApiType>;707 };708 structure: {709 /**710 * Generic query711 **/712 [key: string]: QueryableStorageEntry<ApiType>;713 };714 sudo: {715 /**716 * The `AccountId` of the sudo key.717 **/718 key: AugmentedQuery<ApiType, () => Observable<Option<AccountId32>>, []> & QueryableStorageEntry<ApiType, []>;719 /**720 * Generic query721 **/722 [key: string]: QueryableStorageEntry<ApiType>;723 };724 system: {725 /**726 * The full account information for a particular account ID.727 **/728 account: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<FrameSystemAccountInfo>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>;729 /**730 * Total length (in bytes) for all extrinsics put together, for the current block.731 **/732 allExtrinsicsLen: AugmentedQuery<ApiType, () => Observable<Option<u32>>, []> & QueryableStorageEntry<ApiType, []>;733 /**734 * Map of block numbers to block hashes.735 **/736 blockHash: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<H256>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;737 /**738 * The current weight for the block.739 **/740 blockWeight: AugmentedQuery<ApiType, () => Observable<FrameSupportDispatchPerDispatchClassWeight>, []> & QueryableStorageEntry<ApiType, []>;741 /**742 * Digest of the current block, also part of the block header.743 **/744 digest: AugmentedQuery<ApiType, () => Observable<SpRuntimeDigest>, []> & QueryableStorageEntry<ApiType, []>;745 /**746 * The number of events in the `Events<T>` list.747 **/748 eventCount: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;749 /**750 * Events deposited for the current block.751 * 752 * NOTE: The item is unbound and should therefore never be read on chain.753 * It could otherwise inflate the PoV size of a block.754 * 755 * Events have a large in-memory size. Box the events to not go out-of-memory756 * just in case someone still reads them from within the runtime.757 **/758 events: AugmentedQuery<ApiType, () => Observable<Vec<FrameSystemEventRecord>>, []> & QueryableStorageEntry<ApiType, []>;759 /**760 * Mapping between a topic (represented by T::Hash) and a vector of indexes761 * of events in the `<Events<T>>` list.762 * 763 * All topic vectors have deterministic storage locations depending on the topic. This764 * allows light-clients to leverage the changes trie storage tracking mechanism and765 * in case of changes fetch the list of events of interest.766 * 767 * The value has the type `(T::BlockNumber, EventIndex)` because if we used only just768 * the `EventIndex` then in case if the topic has the same contents on the next block769 * no notification will be triggered thus the event might be lost.770 **/771 eventTopics: AugmentedQuery<ApiType, (arg: H256 | string | Uint8Array) => Observable<Vec<ITuple<[u32, u32]>>>, [H256]> & QueryableStorageEntry<ApiType, [H256]>;772 /**773 * The execution phase of the block.774 **/775 executionPhase: AugmentedQuery<ApiType, () => Observable<Option<FrameSystemPhase>>, []> & QueryableStorageEntry<ApiType, []>;776 /**777 * Total extrinsics count for the current block.778 **/779 extrinsicCount: AugmentedQuery<ApiType, () => Observable<Option<u32>>, []> & QueryableStorageEntry<ApiType, []>;780 /**781 * Extrinsics data for the current block (maps an extrinsic's index to its data).782 **/783 extrinsicData: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Bytes>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;784 /**785 * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened.786 **/787 lastRuntimeUpgrade: AugmentedQuery<ApiType, () => Observable<Option<FrameSystemLastRuntimeUpgradeInfo>>, []> & QueryableStorageEntry<ApiType, []>;788 /**789 * The current block number being processed. Set by `execute_block`.790 **/791 number: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;792 /**793 * Hash of the previous block.794 **/795 parentHash: AugmentedQuery<ApiType, () => Observable<H256>, []> & QueryableStorageEntry<ApiType, []>;796 /**797 * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False798 * (default) if not.799 **/800 upgradedToTripleRefCount: AugmentedQuery<ApiType, () => Observable<bool>, []> & QueryableStorageEntry<ApiType, []>;801 /**802 * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not.803 **/804 upgradedToU32RefCount: AugmentedQuery<ApiType, () => Observable<bool>, []> & QueryableStorageEntry<ApiType, []>;805 /**806 * Generic query807 **/808 [key: string]: QueryableStorageEntry<ApiType>;809 };810 testUtils: {811 enabled: AugmentedQuery<ApiType, () => Observable<bool>, []> & QueryableStorageEntry<ApiType, []>;812 testValue: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;813 /**814 * Generic query815 **/816 [key: string]: QueryableStorageEntry<ApiType>;817 };818 timestamp: {819 /**820 * Did the timestamp get updated in this block?821 **/822 didUpdate: AugmentedQuery<ApiType, () => Observable<bool>, []> & QueryableStorageEntry<ApiType, []>;823 /**824 * Current time for the current block.825 **/826 now: AugmentedQuery<ApiType, () => Observable<u64>, []> & QueryableStorageEntry<ApiType, []>;827 /**828 * Generic query829 **/830 [key: string]: QueryableStorageEntry<ApiType>;831 };832 tokens: {833 /**834 * The balance of a token type under an account.835 * 836 * NOTE: If the total is ever zero, decrease account ref account.837 * 838 * NOTE: This is only used in the case that this module is used to store839 * balances.840 **/841 accounts: AugmentedQuery<ApiType, (arg1: AccountId32 | string | Uint8Array, arg2: PalletForeignAssetsAssetIds | { ForeignAssetId: any } | { NativeAssetId: any } | string | Uint8Array) => Observable<OrmlTokensAccountData>, [AccountId32, PalletForeignAssetsAssetIds]> & QueryableStorageEntry<ApiType, [AccountId32, PalletForeignAssetsAssetIds]>;842 /**843 * Any liquidity locks of a token type under an account.844 * NOTE: Should only be accessed when setting, changing and freeing a lock.845 **/846 locks: AugmentedQuery<ApiType, (arg1: AccountId32 | string | Uint8Array, arg2: PalletForeignAssetsAssetIds | { ForeignAssetId: any } | { NativeAssetId: any } | string | Uint8Array) => Observable<Vec<OrmlTokensBalanceLock>>, [AccountId32, PalletForeignAssetsAssetIds]> & QueryableStorageEntry<ApiType, [AccountId32, PalletForeignAssetsAssetIds]>;847 /**848 * Named reserves on some account balances.849 **/850 reserves: AugmentedQuery<ApiType, (arg1: AccountId32 | string | Uint8Array, arg2: PalletForeignAssetsAssetIds | { ForeignAssetId: any } | { NativeAssetId: any } | string | Uint8Array) => Observable<Vec<OrmlTokensReserveData>>, [AccountId32, PalletForeignAssetsAssetIds]> & QueryableStorageEntry<ApiType, [AccountId32, PalletForeignAssetsAssetIds]>;851 /**852 * The total issuance of a token type.853 **/854 totalIssuance: AugmentedQuery<ApiType, (arg: PalletForeignAssetsAssetIds | { ForeignAssetId: any } | { NativeAssetId: any } | string | Uint8Array) => Observable<u128>, [PalletForeignAssetsAssetIds]> & QueryableStorageEntry<ApiType, [PalletForeignAssetsAssetIds]>;855 /**856 * Generic query857 **/858 [key: string]: QueryableStorageEntry<ApiType>;859 };860 transactionPayment: {861 nextFeeMultiplier: AugmentedQuery<ApiType, () => Observable<u128>, []> & QueryableStorageEntry<ApiType, []>;862 storageVersion: AugmentedQuery<ApiType, () => Observable<PalletTransactionPaymentReleases>, []> & QueryableStorageEntry<ApiType, []>;863 /**864 * Generic query865 **/866 [key: string]: QueryableStorageEntry<ApiType>;867 };868 treasury: {869 /**870 * Proposal indices that have been approved but not yet awarded.871 **/872 approvals: AugmentedQuery<ApiType, () => Observable<Vec<u32>>, []> & QueryableStorageEntry<ApiType, []>;873 /**874 * Number of proposals that have been made.875 **/876 proposalCount: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;877 /**878 * Proposals that have been made.879 **/880 proposals: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<PalletTreasuryProposal>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;881 /**882 * Generic query883 **/884 [key: string]: QueryableStorageEntry<ApiType>;885 };886 unique: {887 /**888 * Used for migrations889 **/890 chainVersion: AugmentedQuery<ApiType, () => Observable<u64>, []> & QueryableStorageEntry<ApiType, []>;891 /**892 * (Collection id (controlled?2), who created (real))893 * TODO: Off chain worker should remove from this map when collection gets removed894 **/895 createItemBasket: AugmentedQuery<ApiType, (arg: ITuple<[u32, AccountId32]> | [u32 | AnyNumber | Uint8Array, AccountId32 | string | Uint8Array]) => Observable<Option<u32>>, [ITuple<[u32, AccountId32]>]> & QueryableStorageEntry<ApiType, [ITuple<[u32, AccountId32]>]>;896 /**897 * Last sponsoring of fungible tokens approval in a collection898 **/899 fungibleApproveBasket: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: AccountId32 | string | Uint8Array) => Observable<Option<u32>>, [u32, AccountId32]> & QueryableStorageEntry<ApiType, [u32, AccountId32]>;900 /**901 * Collection id (controlled?2), owning user (real)902 **/903 fungibleTransferBasket: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: AccountId32 | string | Uint8Array) => Observable<Option<u32>>, [u32, AccountId32]> & QueryableStorageEntry<ApiType, [u32, AccountId32]>;904 /**905 * Last sponsoring of NFT approval in a collection906 **/907 nftApproveBasket: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<Option<u32>>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;908 /**909 * Collection id (controlled?2), token id (controlled?2)910 **/911 nftTransferBasket: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<Option<u32>>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;912 /**913 * Last sponsoring of RFT approval in a collection914 **/915 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]>;916 /**917 * Collection id (controlled?2), token id (controlled?2)918 **/919 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]>;920 /**921 * Last sponsoring of token property setting // todo:doc rephrase this and the following922 **/923 tokenPropertyBasket: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<Option<u32>>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;924 /**925 * Variable metadata sponsoring926 * Collection id (controlled?2), token id (controlled?2)927 **/928 variableMetaDataBasket: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<Option<u32>>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;929 /**930 * Generic query931 **/932 [key: string]: QueryableStorageEntry<ApiType>;933 };934 vesting: {935 /**936 * Vesting schedules of an account.937 * 938 * VestingSchedules: map AccountId => Vec<VestingSchedule>939 **/940 vestingSchedules: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<Vec<OrmlVestingVestingSchedule>>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>;941 /**942 * Generic query943 **/944 [key: string]: QueryableStorageEntry<ApiType>;945 };946 xcmpQueue: {947 /**948 * Inbound aggregate XCMP messages. It can only be one per ParaId/block.949 **/950 inboundXcmpMessages: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<Bytes>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;951 /**952 * Status of the inbound XCMP channels.953 **/954 inboundXcmpStatus: AugmentedQuery<ApiType, () => Observable<Vec<CumulusPalletXcmpQueueInboundChannelDetails>>, []> & QueryableStorageEntry<ApiType, []>;955 /**956 * The messages outbound in a given XCMP channel.957 **/958 outboundXcmpMessages: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u16 | AnyNumber | Uint8Array) => Observable<Bytes>, [u32, u16]> & QueryableStorageEntry<ApiType, [u32, u16]>;959 /**960 * The non-empty XCMP channels in order of becoming non-empty, and the index of the first961 * and last outbound message. If the two indices are equal, then it indicates an empty962 * queue and there must be a non-`Ok` `OutboundStatus`. We assume queues grow no greater963 * than 65535 items. Queue indices for normal messages begin at one; zero is reserved in964 * case of the need to send a high-priority signal message this block.965 * The bool is true if there is a signal message waiting to be sent.966 **/967 outboundXcmpStatus: AugmentedQuery<ApiType, () => Observable<Vec<CumulusPalletXcmpQueueOutboundChannelDetails>>, []> & QueryableStorageEntry<ApiType, []>;968 /**969 * The messages that exceeded max individual message weight budget.970 * 971 * These message stay in this storage map until they are manually dispatched via972 * `service_overweight`.973 **/974 overweight: AugmentedQuery<ApiType, (arg: u64 | AnyNumber | Uint8Array) => Observable<Option<ITuple<[u32, u32, Bytes]>>>, [u64]> & QueryableStorageEntry<ApiType, [u64]>;975 /**976 * The number of overweight messages ever recorded in `Overweight`. Also doubles as the next977 * available free overweight index.978 **/979 overweightCount: AugmentedQuery<ApiType, () => Observable<u64>, []> & QueryableStorageEntry<ApiType, []>;980 /**981 * The configuration which controls the dynamics of the outbound queue.982 **/983 queueConfig: AugmentedQuery<ApiType, () => Observable<CumulusPalletXcmpQueueQueueConfigData>, []> & QueryableStorageEntry<ApiType, []>;984 /**985 * Whether or not the XCMP queue is suspended from executing incoming XCMs or not.986 **/987 queueSuspended: AugmentedQuery<ApiType, () => Observable<bool>, []> & QueryableStorageEntry<ApiType, []>;988 /**989 * Any signal messages waiting to be sent.990 **/991 signalMessages: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Bytes>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;992 /**993 * Generic query994 **/995 [key: string]: QueryableStorageEntry<ApiType>;996 };997 } // AugmentedQueries998} // declare moduletests/src/interfaces/augment-api-tx.tsdiffbeforeafterboth--- a/tests/src/interfaces/augment-api-tx.ts
+++ b/tests/src/interfaces/augment-api-tx.ts
@@ -215,6 +215,7 @@
[key: string]: SubmittableExtrinsicFunction<ApiType>;
};
configuration: {
+ setAppPromotionConfigurationOverride: AugmentedSubmittable<(recalculationInterval: Option<u32> | null | Uint8Array | u32 | AnyNumber, pendingInterval: Option<u32> | null | Uint8Array | u32 | AnyNumber, stakersPayoutLimit: Option<u8> | null | Uint8Array | u8 | AnyNumber) => SubmittableExtrinsic<ApiType>, [Option<u32>, Option<u32>, Option<u8>]>;
setMinGasPriceOverride: AugmentedSubmittable<(coeff: Option<u64> | null | Uint8Array | u64 | AnyNumber) => SubmittableExtrinsic<ApiType>, [Option<u64>]>;
setWeightToFeeCoefficientOverride: AugmentedSubmittable<(coeff: Option<u32> | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic<ApiType>, [Option<u32>]>;
setXcmAllowedLocations: AugmentedSubmittable<(locations: Option<Vec<XcmV1MultiLocation>> | null | Uint8Array | Vec<XcmV1MultiLocation> | (XcmV1MultiLocation | { parents?: any; interior?: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [Option<Vec<XcmV1MultiLocation>>]>;