difftreelog
Merge pull request #577 from UniqueNetwork/fix/fee-multiplier-update
in: master
16 files changed
pallets/configuration/src/lib.rsdiffbeforeafterboth--- a/pallets/configuration/src/lib.rs
+++ b/pallets/configuration/src/lib.rs
@@ -25,12 +25,14 @@
};
use parity_scale_codec::{Decode, Encode, MaxEncodedLen};
use scale_info::TypeInfo;
-use sp_arithmetic::traits::{BaseArithmetic, Unsigned};
+use sp_arithmetic::{
+ per_things::{Perbill, PerThing},
+ traits::{BaseArithmetic, Unsigned},
+};
use smallvec::smallvec;
pub use pallet::*;
use sp_core::U256;
-use sp_runtime::Perbill;
#[pallet]
mod pallet {
@@ -46,8 +48,7 @@
#[pallet::config]
pub trait Config: frame_system::Config {
#[pallet::constant]
- type DefaultWeightToFeeCoefficient: Get<u32>;
-
+ type DefaultWeightToFeeCoefficient: Get<u64>;
#[pallet::constant]
type DefaultMinGasPrice: Get<u64>;
@@ -66,7 +67,7 @@
#[pallet::storage]
pub type WeightToFeeCoefficientOverride<T: Config> = StorageValue<
- Value = u32,
+ Value = u64,
QueryKind = ValueQuery,
OnEmpty = T::DefaultWeightToFeeCoefficient,
>;
@@ -90,7 +91,7 @@
#[pallet::weight(T::DbWeight::get().writes(1))]
pub fn set_weight_to_fee_coefficient_override(
origin: OriginFor<T>,
- coeff: Option<u32>,
+ coeff: Option<u64>,
) -> DispatchResult {
ensure_root(origin)?;
if let Some(coeff) = coeff {
@@ -156,14 +157,17 @@
impl<T, B> WeightToFeePolynomial for WeightToFee<T, B>
where
T: Config,
- B: BaseArithmetic + From<u32> + Copy + Unsigned,
+ B: BaseArithmetic + From<u32> + From<u64> + Copy + Unsigned,
{
type Balance = B;
fn polynomial() -> WeightToFeeCoefficients<Self::Balance> {
smallvec!(WeightToFeeCoefficient {
- coeff_integer: <WeightToFeeCoefficientOverride<T>>::get().into(),
- coeff_frac: Perbill::zero(),
+ coeff_integer: (<WeightToFeeCoefficientOverride<T>>::get() / Perbill::ACCURACY as u64)
+ .into(),
+ coeff_frac: Perbill::from_parts(
+ (<WeightToFeeCoefficientOverride<T>>::get() % Perbill::ACCURACY as u64) as u32
+ ),
negative: false,
degree: 1,
})
primitives/common/src/constants.rsdiffbeforeafterboth--- a/primitives/common/src/constants.rs
+++ b/primitives/common/src/constants.rs
@@ -43,10 +43,10 @@
pub const UNIQUE: Balance = 100 * CENTIUNIQUE;
// Targeting 0.1 UNQ per transfer
-pub const WEIGHT_TO_FEE_COEFF: u32 = /*<weight2fee>*/175_199_920/*</weight2fee>*/;
+pub const WEIGHT_TO_FEE_COEFF: u64 = /*<weight2fee>*/77_083_524_944_487_510/*</weight2fee>*/;
// Targeting 0.15 UNQ per transfer via ETH
-pub const MIN_GAS_PRICE: u64 = /*<mingasprice>*/1_014_919_410_810/*</mingasprice>*/;
+pub const MIN_GAS_PRICE: u64 = /*<mingasprice>*/1_014_919_313_914/*</mingasprice>*/;
/// We assume that ~10% of the block weight is consumed by `on_initalize` handlers.
/// This is used to limit the maximal weight of a single extrinsic.
@@ -60,5 +60,5 @@
.set_proof_size(MAX_POV_SIZE as u64);
parameter_types! {
- pub const TransactionByteFee: Balance = 501 * MICROUNIQUE;
+ pub const TransactionByteFee: Balance = 501 * MICROUNIQUE / 2;
}
runtime/common/config/pallets/mod.rsdiffbeforeafterboth--- a/runtime/common/config/pallets/mod.rs
+++ b/runtime/common/config/pallets/mod.rs
@@ -104,7 +104,7 @@
pub const DayRelayBlocks: BlockNumber = RELAY_DAYS;
}
impl pallet_configuration::Config for Runtime {
- type DefaultWeightToFeeCoefficient = ConstU32<{ up_common::constants::WEIGHT_TO_FEE_COEFF }>;
+ type DefaultWeightToFeeCoefficient = ConstU64<{ up_common::constants::WEIGHT_TO_FEE_COEFF }>;
type DefaultMinGasPrice = ConstU64<{ up_common::constants::MIN_GAS_PRICE }>;
type MaxXcmAllowedLocations = ConstU32<16>;
type AppPromotionDailyRate = AppPromotionDailyRate;
runtime/common/config/substrate.rsdiffbeforeafterboth--- a/runtime/common/config/substrate.rs
+++ b/runtime/common/config/substrate.rs
@@ -28,10 +28,12 @@
traits::{BlakeTwo256, AccountIdLookup},
Perbill, Permill, Percent,
};
+use sp_arithmetic::traits::One;
use frame_system::{
limits::{BlockLength, BlockWeights},
EnsureRoot,
};
+use pallet_transaction_payment::{Multiplier, ConstFeeMultiplier};
use crate::{
runtime_common::DealWithFees, Runtime, RuntimeEvent, RuntimeCall, RuntimeOrigin, PalletInfo,
System, Balances, Treasury, SS58Prefix, Version,
@@ -152,6 +154,8 @@
/// This value increases the priority of `Operational` transactions by adding
/// a "virtual tip" that's equal to the `OperationalFeeMultiplier * final_fee`.
pub const OperationalFeeMultiplier: u8 = 5;
+
+ pub FeeMultiplier: Multiplier = Multiplier::one();
}
impl pallet_transaction_payment::Config for Runtime {
@@ -160,7 +164,7 @@
type LengthToFee = ConstantMultiplier<Balance, TransactionByteFee>;
type OperationalFeeMultiplier = OperationalFeeMultiplier;
type WeightToFee = pallet_configuration::WeightToFee<Self, Balance>;
- type FeeMultiplierUpdate = ();
+ type FeeMultiplierUpdate = ConstFeeMultiplier<FeeMultiplier>;
}
parameter_types! {
tests/src/calibrate.tsdiffbeforeafterboth--- a/tests/src/calibrate.ts
+++ b/tests/src/calibrate.ts
@@ -1,59 +1,186 @@
import {IKeyringPair} from '@polkadot/types/types';
-
import {usingEthPlaygrounds, EthUniqueHelper} from './eth/util';
+class Fract {
+ static ZERO = new Fract(0n);
+ constructor(public readonly a: bigint, public readonly b: bigint = 1n) {
+ if (b === 0n) throw new Error('division by zero');
+ if (b < 0n) throw new Error('missing normalization');
+ }
-function linearRegression(points: { x: bigint, y: bigint }[]) {
- let sumxy = 0n;
- let sumx = 0n;
- let sumy = 0n;
- let sumx2 = 0n;
- const n = points.length;
- for (let i = 0; i < n; i++) {
- const p = points[i];
- sumxy += p.x * p.y;
- sumx += p.x;
- sumy += p.y;
- sumx2 += p.x * p.x;
+ mul(other: Fract) {
+ return new Fract(this.a * other.a, this.b * other.b).optimize();
}
- const nb = BigInt(n);
+ div(other: Fract) {
+ return this.mul(other.inv());
+ }
- const a = (nb * sumxy - sumx * sumy) / (nb * sumx2 - sumx * sumx);
- const b = (sumy - a * sumx) / nb;
+ plus(other: Fract) {
+ if (this.b === other.b) {
+ return new Fract(this.a + other.a, this.b);
+ }
+ return new Fract(this.a * other.b + other.a * this.b, this.b * other.b).optimize();
+ }
- return {a, b};
-}
+ minus(other: Fract) {
+ return this.plus(other.neg());
+ }
-// JS has no builtin function to calculate sqrt of bigint
-// https://stackoverflow.com/a/53684036/6190169
-function sqrt(value: bigint) {
- if (value < 0n) {
- throw 'square root of negative numbers is not supported';
+ neg() {
+ return new Fract(-this.a, this.b);
+ }
+ inv() {
+ if (this.a < 0) {
+ return new Fract(-this.b, -this.a);
+ } else {
+ return new Fract(this.b, this.a);
+ }
}
- if (value < 2n) {
- return value;
+ optimize() {
+ function gcd(x: bigint, y: bigint) {
+ if (x < 0n)
+ x = -x;
+ if (y < 0n)
+ y = -y;
+ while(y) {
+ const t = y;
+ y = x % y;
+ x = t;
+ }
+ return x;
+ }
+ const v = gcd(this.a, this.b);
+ return new Fract(this.a / v, this.b / v);
+ }
+
+ toBigInt() {
+ return this.a / this.b;
+ }
+ toNumber() {
+ const v = this.optimize();
+ return Number(v.a) / Number(v.b);
+ }
+ toString() {
+ const v = this.optimize();
+ return `${v.a} / ${v.b}`;
}
- function newtonIteration(n: bigint, x0: bigint): bigint {
- const x1 = ((n / x0) + x0) >> 1n;
- if (x0 === x1 || x0 === (x1 - 1n)) {
- return x0;
+ lt(other: Fract) {
+ return this.a * other.b < other.a * this.b;
+ }
+ eq(other: Fract) {
+ return this.a * other.b === other.a * this.b;
+ }
+
+ sqrt() {
+ if (this.a < 0n) {
+ throw 'square root of negative numbers is not supported';
+ }
+
+ if (this.lt(new Fract(2n))) {
+ return this;
+ }
+
+ function newtonIteration(n: Fract, x0: Fract): Fract {
+ const x1 = rpn(n, x0, '/', x0, '+', new Fract(2n), '/');
+ if (x0.eq(x1) || x0.eq(x1.minus(new Fract(1n)))) {
+ return x0;
+ }
+ return newtonIteration(n, x1);
}
- return newtonIteration(n, x1);
+
+ return newtonIteration(this, new Fract(1n));
}
+}
- return newtonIteration(value, 1n);
+type Op = Fract | '+' | '-' | '*' | '/' | 'dup' | Op[];
+function rpn(...ops: (Op)[]) {
+ const stack: Fract[] = [];
+ for (const op of ops) {
+ if (op instanceof Fract) {
+ stack.push(op);
+ } else if (op === '+') {
+ if (stack.length < 2)
+ throw new Error('stack underflow');
+ const b = stack.pop()!;
+ const a = stack.pop()!;
+ stack.push(a.plus(b));
+ } else if (op === '*') {
+ if (stack.length < 2)
+ throw new Error('stack underflow');
+ const b = stack.pop()!;
+ const a = stack.pop()!;
+ stack.push(a.mul(b));
+ } else if (op === '-') {
+ if (stack.length < 2)
+ throw new Error('stack underflow');
+ const b = stack.pop()!;
+ const a = stack.pop()!;
+ stack.push(a.minus(b));
+ } else if (op === '/') {
+ if (stack.length < 2)
+ throw new Error('stack underflow');
+ const b = stack.pop()!;
+ const a = stack.pop()!;
+ stack.push(a.div(b));
+ } else if (op === 'dup') {
+ if (stack.length < 1)
+ throw new Error('stack underflow');
+ const a = stack.pop()!;
+ stack.push(a);
+ stack.push(a);
+ } else if (Array.isArray(op)) {
+ stack.push(rpn(...op));
+ } else {
+ throw new Error(`unknown operand: ${op}`);
+ }
+ }
+ if (stack.length != 1)
+ throw new Error('one element should be left on stack');
+ return stack[0]!;
+}
+
+function linearRegression(points: { x: Fract, y: Fract }[]) {
+ let sumxy = Fract.ZERO;
+ let sumx = Fract.ZERO;
+ let sumy = Fract.ZERO;
+ let sumx2 = Fract.ZERO;
+ const n = points.length;
+ for (let i = 0; i < n; i++) {
+ const p = points[i];
+ sumxy = rpn(p.x, p.y, '*', sumxy, '+');
+ sumx = sumx.plus(p.x);
+ sumy = sumy.plus(p.y);
+ sumx2 = rpn(p.x, p.x, '*', sumx2, '+');
+ }
+
+ const nb = new Fract(BigInt(n));
+
+ const a = rpn(
+ [nb, sumxy, '*', sumx, sumy, '*', '-'],
+ [nb, sumx2, '*', sumx, sumx, '*', '-'],
+ '/',
+ );
+ const b = rpn(
+ [sumy, a, sumx, '*', '-'],
+ nb,
+ '/',
+ );
+
+ return {a, b};
}
-function _error(points: { x: bigint, y: bigint }[], hypothesis: (a: bigint) => bigint) {
- return sqrt(points.map(p => {
+const hypothesisLinear = (a: Fract, b: Fract) => (x: Fract) => rpn(x, a, '*', b, '+');
+
+function _error(points: { x: Fract, y: Fract }[], hypothesis: (a: Fract) => Fract) {
+ return points.map(p => {
const v = hypothesis(p.x);
const vv = p.y;
- return (v - vv) ** 2n;
- }).reduce((a, b) => a + b, 0n) / BigInt(points.length));
+ return rpn(v, vv, '-', 'dup', '*');
+ }).reduce((a, b) => a.plus(b), Fract.ZERO).sqrt().div(new Fract(BigInt(points.length)));
}
async function calibrateWeightToFee(helper: EthUniqueHelper, privateKey: (account: string) => Promise<IKeyringPair>) {
@@ -68,15 +195,15 @@
await token.transfer(alice, {Substrate: bob.address});
const aliceBalanceAfter = await helper.balance.getSubstrate(alice.address);
- console.log(`Original price: ${Number(aliceBalanceBefore - aliceBalanceAfter) / Number(helper.balance.getOneTokenNominal())} UNQ`);
+ console.log(`\t[NFT transfer] Original price: ${Number(aliceBalanceBefore - aliceBalanceAfter) / Number(helper.balance.getOneTokenNominal())} UNQ`);
}
const api = helper.getApi();
- const defaultCoeff = (api.consts.configuration.defaultWeightToFeeCoefficient as any).toBigInt();
+ const base = (await api.query.configuration.weightToFeeCoefficientOverride() as any).toBigInt();
for (let i = -5; i < 5; i++) {
- await helper.signTransaction(alice, api.tx.sudo.sudo(api.tx.configuration.setWeightToFeeCoefficientOverride(defaultCoeff + defaultCoeff / 1000n * BigInt(i))));
+ await helper.signTransaction(alice, api.tx.sudo.sudo(api.tx.configuration.setWeightToFeeCoefficientOverride(base + base / 1000n * BigInt(i))));
- const coefficient = (await api.query.configuration.weightToFeeCoefficientOverride() as any).toBigInt();
+ const coefficient = new Fract((await api.query.configuration.weightToFeeCoefficientOverride() as any).toBigInt());
const collection = await helper.nft.mintCollection(alice, {name: 'New', description: 'New collection', tokenPrefix: 'NEW'});
const token = await collection.mintToken(alice, {Substrate: alice.address});
@@ -84,16 +211,18 @@
await token.transfer(alice, {Substrate: bob.address});
const aliceBalanceAfter = await helper.balance.getSubstrate(alice.address);
- const transferPrice = aliceBalanceBefore - aliceBalanceAfter;
+ const transferPrice = new Fract(aliceBalanceBefore - aliceBalanceAfter);
dataPoints.push({x: transferPrice, y: coefficient});
}
const {a, b} = linearRegression(dataPoints);
- // console.log(`Error: ${error(dataPoints, x => a*x+b)}`);
+ const hyp = hypothesisLinear(a, b);
+ // console.log(`\t[NFT transfer] Error: ${_error(dataPoints, hyp).toNumber()}`);
- const perfectValue = a * helper.balance.getOneTokenNominal() / 10n + b;
- await helper.signTransaction(alice, api.tx.sudo.sudo(api.tx.configuration.setWeightToFeeCoefficientOverride(perfectValue.toString())));
+ // 0.1 UNQ
+ const perfectValue = hyp(rpn(new Fract(helper.balance.getOneTokenNominal()), new Fract(1n, 10n), '*'));
+ await helper.signTransaction(alice, api.tx.sudo.sudo(api.tx.configuration.setWeightToFeeCoefficientOverride(perfectValue.toBigInt())));
{
const collection = await helper.nft.mintCollection(alice, {name: 'New', description: 'New collection', tokenPrefix: 'NEW'});
@@ -102,7 +231,7 @@
await token.transfer(alice, {Substrate: bob.address});
const aliceBalanceAfter = await helper.balance.getSubstrate(alice.address);
- console.log(`Calibrated price: ${Number(aliceBalanceBefore - aliceBalanceAfter) / Number(helper.balance.getOneTokenNominal())} UNQ`);
+ console.log(`\t[NFT transfer] Calibrated price: ${Number(aliceBalanceBefore - aliceBalanceAfter) / Number(helper.balance.getOneTokenNominal())} UNQ`);
}
}
@@ -121,35 +250,37 @@
const cost = await helper.eth.calculateFee({Ethereum: caller}, () => contract.methods.transfer(receiver, token.tokenId).send({from: caller, gas: helper.eth.DEFAULT_GAS}));
- console.log(`Original price: ${Number(cost) / Number(helper.balance.getOneTokenNominal())} UNQ`);
+ console.log(`\t[ETH NFT transfer] Original price: ${Number(cost) / Number(helper.balance.getOneTokenNominal())} UNQ`);
}
const api = helper.getApi();
- const defaultCoeff = (api.consts.configuration.defaultMinGasPrice as any).toBigInt();
+ // const defaultCoeff = (api.consts.configuration.defaultMinGasPrice as any).toBigInt();
+ const base = (await api.query.configuration.minGasPriceOverride() as any).toBigInt();
for (let i = -8; i < 8; i++) {
- const gasPrice = defaultCoeff + defaultCoeff / 100000n * BigInt(i);
+ const gasPrice = base + base / 100000n * BigInt(i);
const gasPriceStr = '0x' + gasPrice.toString(16);
await helper.signTransaction(alice, api.tx.sudo.sudo(api.tx.configuration.setMinGasPriceOverride(gasPrice)));
- const coefficient = (await api.query.configuration.minGasPriceOverride() as any).toBigInt();
+ const coefficient = new Fract((await api.query.configuration.minGasPriceOverride() as any).toBigInt());
const collection = await helper.nft.mintCollection(alice, {name: 'New', description: 'New collection', tokenPrefix: 'NEW'});
const token = await collection.mintToken(alice, {Ethereum: caller});
const address = helper.ethAddress.fromCollectionId(collection.collectionId);
const contract = helper.ethNativeContract.collection(address, 'nft', caller);
- const transferPrice = await helper.eth.calculateFee({Ethereum: caller}, () => contract.methods.transfer(receiver, token.tokenId).send({from: caller, gasPrice: gasPriceStr, gas: helper.eth.DEFAULT_GAS}));
+ const transferPrice = new Fract(await helper.eth.calculateFee({Ethereum: caller}, () => contract.methods.transfer(receiver, token.tokenId).send({from: caller, gasPrice: gasPriceStr, gas: helper.eth.DEFAULT_GAS})));
dataPoints.push({x: transferPrice, y: coefficient});
}
const {a, b} = linearRegression(dataPoints);
- // console.log(`Error: ${error(dataPoints, x => a*x+b)}`);
+ const hyp = hypothesisLinear(a, b);
+ // console.log(`\t[ETH NFT transfer] Error: ${_error(dataPoints, hyp).toNumber()}`);
- // * 0.15 = * 10000 / 66666
- const perfectValue = a * helper.balance.getOneTokenNominal() * 1000000n / 6666666n + b;
- await helper.signTransaction(alice, api.tx.sudo.sudo(api.tx.configuration.setMinGasPriceOverride(perfectValue.toString())));
+ // 0.15 UNQ
+ const perfectValue = hyp(rpn(new Fract(helper.balance.getOneTokenNominal()), new Fract(15n, 100n), '*'));
+ await helper.signTransaction(alice, api.tx.sudo.sudo(api.tx.configuration.setMinGasPriceOverride(perfectValue.toBigInt())));
{
const collection = await helper.nft.mintCollection(alice, {name: 'New', description: 'New collection', tokenPrefix: 'NEW'});
@@ -160,18 +291,26 @@
const cost = await helper.eth.calculateFee({Ethereum: caller}, () => contract.methods.transfer(receiver, token.tokenId).send({from: caller, gas: helper.eth.DEFAULT_GAS}));
- console.log(`Calibrated price: ${Number(cost) / Number(helper.balance.getOneTokenNominal())} UNQ`);
+ console.log(`\t[ETH NFT transfer] Calibrated price: ${Number(cost) / Number(helper.balance.getOneTokenNominal())} UNQ`);
}
}
(async () => {
await usingEthPlaygrounds(async (helper: EthUniqueHelper, privateKey) => {
- // Second run slightly reduces error sometimes, as price line is not actually straight, this is a curve
+ // Subsequent runs reduce error, as price line is not actually straight, this is a curve
+
+ const iterations = 3;
+
+ console.log('[Calibrate WeightToFee]');
+ for (let i = 0; i < iterations; i++) {
+ await calibrateWeightToFee(helper, privateKey);
+ }
- await calibrateWeightToFee(helper, privateKey);
- await calibrateWeightToFee(helper, privateKey);
+ console.log();
- await calibrateMinGasPrice(helper, privateKey);
- await calibrateMinGasPrice(helper, privateKey);
+ console.log('[Calibrate MinGasPrice]');
+ for (let i = 0; i < iterations; i++) {
+ await calibrateMinGasPrice(helper, privateKey);
+ }
});
})();
tests/src/eth/ethFeesAreCorrect.test.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/eth/ethFeesAreCorrect.test.ts
@@ -0,0 +1,66 @@
+// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.
+// This file is part of Unique Network.
+
+// Unique Network is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Unique Network is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Unique Network. If not, see <http://witww.gnu.org/licenses/>.
+
+import {IKeyringPair} from '@polkadot/types/types';
+import {itEth, usingEthPlaygrounds, expect} from './util';
+
+describe('Eth fees are correct', () => {
+ let donor: IKeyringPair;
+ let minter: IKeyringPair;
+ let alice: IKeyringPair;
+
+ before(async () => {
+ await usingEthPlaygrounds(async (helper, privateKey) => {
+ donor = await privateKey({filename: __filename});
+ [minter, alice] = await helper.arrange.createAccounts([100n, 200n], donor);
+ });
+ });
+
+
+ itEth('web3 fees are the same as evm.call fees', async ({helper}) => {
+ const collection = await helper.nft.mintCollection(minter, {});
+
+ const owner = await helper.eth.createAccountWithBalance(donor);
+ const receiver = await helper.eth.createAccountWithBalance(donor);
+ const aliceEth = helper.address.substrateToEth(alice.address);
+
+ const {tokenId: tokenA} = await collection.mintToken(minter, {Ethereum: owner});
+ const {tokenId: tokenB} = await collection.mintToken(minter, {Ethereum: aliceEth});
+
+ const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);
+ const contract = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);
+
+ const balanceBeforeWeb3Transfer = await helper.balance.getEthereum(owner);
+ await contract.methods.transfer(receiver, tokenA).send({from: owner});
+ const balanceAfterWeb3Transfer = await helper.balance.getEthereum(owner);
+ const web3Diff = balanceBeforeWeb3Transfer - balanceAfterWeb3Transfer;
+
+ const encodedCall = contract.methods.transfer(receiver, tokenB)
+ .encodeABI();
+
+ const balanceBeforeEvmCall = await helper.balance.getSubstrate(alice.address);
+ await helper.eth.sendEVM(
+ alice,
+ collectionAddress,
+ encodedCall,
+ '0',
+ );
+ const balanceAfterEvmCall = await helper.balance.getSubstrate(alice.address);
+ const evmCallDiff = balanceBeforeEvmCall - balanceAfterEvmCall;
+
+ expect(web3Diff).to.be.equal(evmCallDiff);
+ });
+});
tests/src/interfaces/augment-api-consts.tsdiffbeforeafterboth--- a/tests/src/interfaces/augment-api-consts.ts
+++ b/tests/src/interfaces/augment-api-consts.ts
@@ -82,7 +82,7 @@
appPromotionDailyRate: Perbill & AugmentedConst<ApiType>;
dayRelayBlocks: u32 & AugmentedConst<ApiType>;
defaultMinGasPrice: u64 & AugmentedConst<ApiType>;
- defaultWeightToFeeCoefficient: u32 & AugmentedConst<ApiType>;
+ defaultWeightToFeeCoefficient: u64 & AugmentedConst<ApiType>;
maxXcmAllowedLocations: u32 & AugmentedConst<ApiType>;
/**
* Generic const
tests/src/interfaces/augment-api-query.tsdiffbeforeafterboth--- a/tests/src/interfaces/augment-api-query.ts
+++ b/tests/src/interfaces/augment-api-query.ts
@@ -162,7 +162,7 @@
configuration: {
appPromomotionConfigurationOverride: AugmentedQuery<ApiType, () => Observable<PalletConfigurationAppPromotionConfiguration>, []> & QueryableStorageEntry<ApiType, []>;
minGasPriceOverride: AugmentedQuery<ApiType, () => Observable<u64>, []> & QueryableStorageEntry<ApiType, []>;
- weightToFeeCoefficientOverride: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;
+ weightToFeeCoefficientOverride: AugmentedQuery<ApiType, () => Observable<u64>, []> & QueryableStorageEntry<ApiType, []>;
xcmAllowedLocationsOverride: AugmentedQuery<ApiType, () => Observable<Option<Vec<XcmV1MultiLocation>>>, []> & QueryableStorageEntry<ApiType, []>;
/**
* Generic query
tests/src/interfaces/augment-api-rpc.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/rpc-core/types/jsonrpc';78import type { PalletEvmAccountBasicCrossAccountIdRepr, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsPartPartType, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceResourceInfo, RmrkTraitsTheme, UpDataStructsCollectionLimits, UpDataStructsCollectionStats, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsRpcCollection, UpDataStructsTokenChild, UpDataStructsTokenData } from './default';9import type { AugmentedRpc } from '@polkadot/rpc-core/types';10import type { Metadata, StorageKey } from '@polkadot/types';11import type { Bytes, HashMap, Json, Null, Option, Text, U256, U64, Vec, bool, f64, u128, u32, u64 } from '@polkadot/types-codec';12import type { AnyNumber, Codec, ITuple } from '@polkadot/types-codec/types';13import type { ExtrinsicOrHash, ExtrinsicStatus } from '@polkadot/types/interfaces/author';14import type { EpochAuthorship } from '@polkadot/types/interfaces/babe';15import type { BeefySignedCommitment } from '@polkadot/types/interfaces/beefy';16import type { BlockHash } from '@polkadot/types/interfaces/chain';17import type { PrefixedStorageKey } from '@polkadot/types/interfaces/childstate';18import type { AuthorityId } from '@polkadot/types/interfaces/consensus';19import type { CodeUploadRequest, CodeUploadResult, ContractCallRequest, ContractExecResult, ContractInstantiateResult, InstantiateRequest } from '@polkadot/types/interfaces/contracts';20import type { BlockStats } from '@polkadot/types/interfaces/dev';21import type { CreatedBlock } from '@polkadot/types/interfaces/engine';22import type { EthAccount, EthCallRequest, EthFeeHistory, EthFilter, EthFilterChanges, EthLog, EthReceipt, EthRichBlock, EthSubKind, EthSubParams, EthSyncStatus, EthTransaction, EthTransactionRequest, EthWork } from '@polkadot/types/interfaces/eth';23import type { Extrinsic } from '@polkadot/types/interfaces/extrinsics';24import type { EncodedFinalityProofs, JustificationNotification, ReportedRoundStates } from '@polkadot/types/interfaces/grandpa';25import type { MmrLeafBatchProof, MmrLeafProof } from '@polkadot/types/interfaces/mmr';26import type { StorageKind } from '@polkadot/types/interfaces/offchain';27import type { FeeDetails, RuntimeDispatchInfo } from '@polkadot/types/interfaces/payment';28import type { RpcMethods } from '@polkadot/types/interfaces/rpc';29import type { AccountId, AccountId32, BlockNumber, H160, H256, H64, Hash, Header, Index, Justification, KeyValue, SignedBlock, StorageData } from '@polkadot/types/interfaces/runtime';30import type { MigrationStatusResult, ReadProof, RuntimeVersion, TraceBlockResponse } from '@polkadot/types/interfaces/state';31import type { ApplyExtrinsicResult, ChainProperties, ChainType, Health, NetworkState, NodeRole, PeerInfo, SyncState } from '@polkadot/types/interfaces/system';32import type { IExtrinsic, Observable } from '@polkadot/types/types';3334export type __AugmentedRpc = AugmentedRpc<() => unknown>;3536declare module '@polkadot/rpc-core/types/jsonrpc' {37 interface RpcInterface {38 appPromotion: {39 /**40 * Returns the total amount of unstaked tokens41 **/42 pendingUnstake: AugmentedRpc<(staker?: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, at?: Hash | string | Uint8Array) => Observable<u128>>;43 /**44 * Returns the total amount of unstaked tokens per block45 **/46 pendingUnstakePerBlock: AugmentedRpc<(staker: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<ITuple<[u32, u128]>>>>;47 /**48 * Returns the total amount of staked tokens49 **/50 totalStaked: AugmentedRpc<(staker?: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, at?: Hash | string | Uint8Array) => Observable<u128>>;51 /**52 * Returns the total amount of staked tokens per block when staked53 **/54 totalStakedPerBlock: AugmentedRpc<(staker: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<ITuple<[u32, u128]>>>>;55 };56 author: {57 /**58 * Returns true if the keystore has private keys for the given public key and key type.59 **/60 hasKey: AugmentedRpc<(publicKey: Bytes | string | Uint8Array, keyType: Text | string) => Observable<bool>>;61 /**62 * Returns true if the keystore has private keys for the given session public keys.63 **/64 hasSessionKeys: AugmentedRpc<(sessionKeys: Bytes | string | Uint8Array) => Observable<bool>>;65 /**66 * Insert a key into the keystore.67 **/68 insertKey: AugmentedRpc<(keyType: Text | string, suri: Text | string, publicKey: Bytes | string | Uint8Array) => Observable<Bytes>>;69 /**70 * Returns all pending extrinsics, potentially grouped by sender71 **/72 pendingExtrinsics: AugmentedRpc<() => Observable<Vec<Extrinsic>>>;73 /**74 * Remove given extrinsic from the pool and temporarily ban it to prevent reimporting75 **/76 removeExtrinsic: AugmentedRpc<(bytesOrHash: Vec<ExtrinsicOrHash> | (ExtrinsicOrHash | { Hash: any } | { Extrinsic: any } | string | Uint8Array)[]) => Observable<Vec<Hash>>>;77 /**78 * Generate new session keys and returns the corresponding public keys79 **/80 rotateKeys: AugmentedRpc<() => Observable<Bytes>>;81 /**82 * Submit and subscribe to watch an extrinsic until unsubscribed83 **/84 submitAndWatchExtrinsic: AugmentedRpc<(extrinsic: Extrinsic | IExtrinsic | string | Uint8Array) => Observable<ExtrinsicStatus>>;85 /**86 * Submit a fully formatted extrinsic for block inclusion87 **/88 submitExtrinsic: AugmentedRpc<(extrinsic: Extrinsic | IExtrinsic | string | Uint8Array) => Observable<Hash>>;89 };90 babe: {91 /**92 * Returns data about which slots (primary or secondary) can be claimed in the current epoch with the keys in the keystore93 **/94 epochAuthorship: AugmentedRpc<() => Observable<HashMap<AuthorityId, EpochAuthorship>>>;95 };96 beefy: {97 /**98 * Returns hash of the latest BEEFY finalized block as seen by this client.99 **/100 getFinalizedHead: AugmentedRpc<() => Observable<H256>>;101 /**102 * Returns the block most recently finalized by BEEFY, alongside side its justification.103 **/104 subscribeJustifications: AugmentedRpc<() => Observable<BeefySignedCommitment>>;105 };106 chain: {107 /**108 * Get header and body of a relay chain block109 **/110 getBlock: AugmentedRpc<(hash?: BlockHash | string | Uint8Array) => Observable<SignedBlock>>;111 /**112 * Get the block hash for a specific block113 **/114 getBlockHash: AugmentedRpc<(blockNumber?: BlockNumber | AnyNumber | Uint8Array) => Observable<BlockHash>>;115 /**116 * Get hash of the last finalized block in the canon chain117 **/118 getFinalizedHead: AugmentedRpc<() => Observable<BlockHash>>;119 /**120 * Retrieves the header for a specific block121 **/122 getHeader: AugmentedRpc<(hash?: BlockHash | string | Uint8Array) => Observable<Header>>;123 /**124 * Retrieves the newest header via subscription125 **/126 subscribeAllHeads: AugmentedRpc<() => Observable<Header>>;127 /**128 * Retrieves the best finalized header via subscription129 **/130 subscribeFinalizedHeads: AugmentedRpc<() => Observable<Header>>;131 /**132 * Retrieves the best header via subscription133 **/134 subscribeNewHeads: AugmentedRpc<() => Observable<Header>>;135 };136 childstate: {137 /**138 * Returns the keys with prefix from a child storage, leave empty to get all the keys139 **/140 getKeys: AugmentedRpc<(childKey: PrefixedStorageKey | string | Uint8Array, prefix: StorageKey | string | Uint8Array | any, at?: Hash | string | Uint8Array) => Observable<Vec<StorageKey>>>;141 /**142 * Returns the keys with prefix from a child storage with pagination support143 **/144 getKeysPaged: AugmentedRpc<(childKey: PrefixedStorageKey | string | Uint8Array, prefix: StorageKey | string | Uint8Array | any, count: u32 | AnyNumber | Uint8Array, startKey?: StorageKey | string | Uint8Array | any, at?: Hash | string | Uint8Array) => Observable<Vec<StorageKey>>>;145 /**146 * Returns a child storage entry at a specific block state147 **/148 getStorage: AugmentedRpc<(childKey: PrefixedStorageKey | string | Uint8Array, key: StorageKey | string | Uint8Array | any, at?: Hash | string | Uint8Array) => Observable<Option<StorageData>>>;149 /**150 * Returns child storage entries for multiple keys at a specific block state151 **/152 getStorageEntries: AugmentedRpc<(childKey: PrefixedStorageKey | string | Uint8Array, keys: Vec<StorageKey> | (StorageKey | string | Uint8Array | any)[], at?: Hash | string | Uint8Array) => Observable<Vec<Option<StorageData>>>>;153 /**154 * Returns the hash of a child storage entry at a block state155 **/156 getStorageHash: AugmentedRpc<(childKey: PrefixedStorageKey | string | Uint8Array, key: StorageKey | string | Uint8Array | any, at?: Hash | string | Uint8Array) => Observable<Option<Hash>>>;157 /**158 * Returns the size of a child storage entry at a block state159 **/160 getStorageSize: AugmentedRpc<(childKey: PrefixedStorageKey | string | Uint8Array, key: StorageKey | string | Uint8Array | any, at?: Hash | string | Uint8Array) => Observable<Option<u64>>>;161 };162 contracts: {163 /**164 * @deprecated Use the runtime interface `api.call.contractsApi.call` instead165 * Executes a call to a contract166 **/167 call: AugmentedRpc<(callRequest: ContractCallRequest | { origin?: any; dest?: any; value?: any; gasLimit?: any; storageDepositLimit?: any; inputData?: any } | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<ContractExecResult>>;168 /**169 * @deprecated Use the runtime interface `api.call.contractsApi.getStorage` instead170 * Returns the value under a specified storage key in a contract171 **/172 getStorage: AugmentedRpc<(address: AccountId | string | Uint8Array, key: H256 | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<Option<Bytes>>>;173 /**174 * @deprecated Use the runtime interface `api.call.contractsApi.instantiate` instead175 * Instantiate a new contract176 **/177 instantiate: AugmentedRpc<(request: InstantiateRequest | { origin?: any; value?: any; gasLimit?: any; storageDepositLimit?: any; code?: any; data?: any; salt?: any } | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<ContractInstantiateResult>>;178 /**179 * @deprecated Not available in newer versions of the contracts interfaces180 * Returns the projected time a given contract will be able to sustain paying its rent181 **/182 rentProjection: AugmentedRpc<(address: AccountId | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<Option<BlockNumber>>>;183 /**184 * @deprecated Use the runtime interface `api.call.contractsApi.uploadCode` instead185 * Upload new code without instantiating a contract from it186 **/187 uploadCode: AugmentedRpc<(uploadRequest: CodeUploadRequest | { origin?: any; code?: any; storageDepositLimit?: any } | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<CodeUploadResult>>;188 };189 dev: {190 /**191 * Reexecute the specified `block_hash` and gather statistics while doing so192 **/193 getBlockStats: AugmentedRpc<(at: Hash | string | Uint8Array) => Observable<Option<BlockStats>>>;194 };195 engine: {196 /**197 * Instructs the manual-seal authorship task to create a new block198 **/199 createBlock: AugmentedRpc<(createEmpty: bool | boolean | Uint8Array, finalize: bool | boolean | Uint8Array, parentHash?: BlockHash | string | Uint8Array) => Observable<CreatedBlock>>;200 /**201 * Instructs the manual-seal authorship task to finalize a block202 **/203 finalizeBlock: AugmentedRpc<(hash: BlockHash | string | Uint8Array, justification?: Justification) => Observable<bool>>;204 };205 eth: {206 /**207 * Returns accounts list.208 **/209 accounts: AugmentedRpc<() => Observable<Vec<H160>>>;210 /**211 * Returns the blockNumber212 **/213 blockNumber: AugmentedRpc<() => Observable<U256>>;214 /**215 * Call contract, returning the output data.216 **/217 call: AugmentedRpc<(request: EthCallRequest | { from?: any; to?: any; gasPrice?: any; gas?: any; value?: any; data?: any; nonce?: any } | string | Uint8Array, number?: BlockNumber | AnyNumber | Uint8Array) => Observable<Bytes>>;218 /**219 * Returns the chain ID used for transaction signing at the current best block. None is returned if not available.220 **/221 chainId: AugmentedRpc<() => Observable<U64>>;222 /**223 * Returns block author.224 **/225 coinbase: AugmentedRpc<() => Observable<H160>>;226 /**227 * Estimate gas needed for execution of given contract.228 **/229 estimateGas: AugmentedRpc<(request: EthCallRequest | { from?: any; to?: any; gasPrice?: any; gas?: any; value?: any; data?: any; nonce?: any } | string | Uint8Array, number?: BlockNumber | AnyNumber | Uint8Array) => Observable<U256>>;230 /**231 * Returns fee history for given block count & reward percentiles232 **/233 feeHistory: AugmentedRpc<(blockCount: U256 | AnyNumber | Uint8Array, newestBlock: BlockNumber | AnyNumber | Uint8Array, rewardPercentiles: Option<Vec<f64>> | null | Uint8Array | Vec<f64> | (f64)[]) => Observable<EthFeeHistory>>;234 /**235 * Returns current gas price.236 **/237 gasPrice: AugmentedRpc<() => Observable<U256>>;238 /**239 * Returns balance of the given account.240 **/241 getBalance: AugmentedRpc<(address: H160 | string | Uint8Array, number?: BlockNumber | AnyNumber | Uint8Array) => Observable<U256>>;242 /**243 * Returns block with given hash.244 **/245 getBlockByHash: AugmentedRpc<(hash: H256 | string | Uint8Array, full: bool | boolean | Uint8Array) => Observable<Option<EthRichBlock>>>;246 /**247 * Returns block with given number.248 **/249 getBlockByNumber: AugmentedRpc<(block: BlockNumber | AnyNumber | Uint8Array, full: bool | boolean | Uint8Array) => Observable<Option<EthRichBlock>>>;250 /**251 * Returns the number of transactions in a block with given hash.252 **/253 getBlockTransactionCountByHash: AugmentedRpc<(hash: H256 | string | Uint8Array) => Observable<U256>>;254 /**255 * Returns the number of transactions in a block with given block number.256 **/257 getBlockTransactionCountByNumber: AugmentedRpc<(block: BlockNumber | AnyNumber | Uint8Array) => Observable<U256>>;258 /**259 * Returns the code at given address at given time (block number).260 **/261 getCode: AugmentedRpc<(address: H160 | string | Uint8Array, number?: BlockNumber | AnyNumber | Uint8Array) => Observable<Bytes>>;262 /**263 * Returns filter changes since last poll.264 **/265 getFilterChanges: AugmentedRpc<(index: U256 | AnyNumber | Uint8Array) => Observable<EthFilterChanges>>;266 /**267 * Returns all logs matching given filter (in a range 'from' - 'to').268 **/269 getFilterLogs: AugmentedRpc<(index: U256 | AnyNumber | Uint8Array) => Observable<Vec<EthLog>>>;270 /**271 * Returns logs matching given filter object.272 **/273 getLogs: AugmentedRpc<(filter: EthFilter | { fromBlock?: any; toBlock?: any; blockHash?: any; address?: any; topics?: any } | string | Uint8Array) => Observable<Vec<EthLog>>>;274 /**275 * Returns proof for account and storage.276 **/277 getProof: AugmentedRpc<(address: H160 | string | Uint8Array, storageKeys: Vec<H256> | (H256 | string | Uint8Array)[], number: BlockNumber | AnyNumber | Uint8Array) => Observable<EthAccount>>;278 /**279 * Returns content of the storage at given address.280 **/281 getStorageAt: AugmentedRpc<(address: H160 | string | Uint8Array, index: U256 | AnyNumber | Uint8Array, number?: BlockNumber | AnyNumber | Uint8Array) => Observable<H256>>;282 /**283 * Returns transaction at given block hash and index.284 **/285 getTransactionByBlockHashAndIndex: AugmentedRpc<(hash: H256 | string | Uint8Array, index: U256 | AnyNumber | Uint8Array) => Observable<EthTransaction>>;286 /**287 * Returns transaction by given block number and index.288 **/289 getTransactionByBlockNumberAndIndex: AugmentedRpc<(number: BlockNumber | AnyNumber | Uint8Array, index: U256 | AnyNumber | Uint8Array) => Observable<EthTransaction>>;290 /**291 * Get transaction by its hash.292 **/293 getTransactionByHash: AugmentedRpc<(hash: H256 | string | Uint8Array) => Observable<EthTransaction>>;294 /**295 * Returns the number of transactions sent from given address at given time (block number).296 **/297 getTransactionCount: AugmentedRpc<(hash: H256 | string | Uint8Array, number?: BlockNumber | AnyNumber | Uint8Array) => Observable<U256>>;298 /**299 * Returns transaction receipt by transaction hash.300 **/301 getTransactionReceipt: AugmentedRpc<(hash: H256 | string | Uint8Array) => Observable<EthReceipt>>;302 /**303 * Returns an uncles at given block and index.304 **/305 getUncleByBlockHashAndIndex: AugmentedRpc<(hash: H256 | string | Uint8Array, index: U256 | AnyNumber | Uint8Array) => Observable<EthRichBlock>>;306 /**307 * Returns an uncles at given block and index.308 **/309 getUncleByBlockNumberAndIndex: AugmentedRpc<(number: BlockNumber | AnyNumber | Uint8Array, index: U256 | AnyNumber | Uint8Array) => Observable<EthRichBlock>>;310 /**311 * Returns the number of uncles in a block with given hash.312 **/313 getUncleCountByBlockHash: AugmentedRpc<(hash: H256 | string | Uint8Array) => Observable<U256>>;314 /**315 * Returns the number of uncles in a block with given block number.316 **/317 getUncleCountByBlockNumber: AugmentedRpc<(number: BlockNumber | AnyNumber | Uint8Array) => Observable<U256>>;318 /**319 * Returns the hash of the current block, the seedHash, and the boundary condition to be met.320 **/321 getWork: AugmentedRpc<() => Observable<EthWork>>;322 /**323 * Returns the number of hashes per second that the node is mining with.324 **/325 hashrate: AugmentedRpc<() => Observable<U256>>;326 /**327 * Returns max priority fee per gas328 **/329 maxPriorityFeePerGas: AugmentedRpc<() => Observable<U256>>;330 /**331 * Returns true if client is actively mining new blocks.332 **/333 mining: AugmentedRpc<() => Observable<bool>>;334 /**335 * Returns id of new block filter.336 **/337 newBlockFilter: AugmentedRpc<() => Observable<U256>>;338 /**339 * Returns id of new filter.340 **/341 newFilter: AugmentedRpc<(filter: EthFilter | { fromBlock?: any; toBlock?: any; blockHash?: any; address?: any; topics?: any } | string | Uint8Array) => Observable<U256>>;342 /**343 * Returns id of new block filter.344 **/345 newPendingTransactionFilter: AugmentedRpc<() => Observable<U256>>;346 /**347 * Returns protocol version encoded as a string (quotes are necessary).348 **/349 protocolVersion: AugmentedRpc<() => Observable<u64>>;350 /**351 * Sends signed transaction, returning its hash.352 **/353 sendRawTransaction: AugmentedRpc<(bytes: Bytes | string | Uint8Array) => Observable<H256>>;354 /**355 * Sends transaction; will block waiting for signer to return the transaction hash356 **/357 sendTransaction: AugmentedRpc<(tx: EthTransactionRequest | { from?: any; to?: any; gasPrice?: any; gas?: any; value?: any; data?: any; nonce?: any } | string | Uint8Array) => Observable<H256>>;358 /**359 * Used for submitting mining hashrate.360 **/361 submitHashrate: AugmentedRpc<(index: U256 | AnyNumber | Uint8Array, hash: H256 | string | Uint8Array) => Observable<bool>>;362 /**363 * Used for submitting a proof-of-work solution.364 **/365 submitWork: AugmentedRpc<(nonce: H64 | string | Uint8Array, headerHash: H256 | string | Uint8Array, mixDigest: H256 | string | Uint8Array) => Observable<bool>>;366 /**367 * Subscribe to Eth subscription.368 **/369 subscribe: AugmentedRpc<(kind: EthSubKind | 'newHeads' | 'logs' | 'newPendingTransactions' | 'syncing' | number | Uint8Array, params?: EthSubParams | { None: any } | { Logs: any } | string | Uint8Array) => Observable<Null>>;370 /**371 * Returns an object with data about the sync status or false.372 **/373 syncing: AugmentedRpc<() => Observable<EthSyncStatus>>;374 /**375 * Uninstalls filter.376 **/377 uninstallFilter: AugmentedRpc<(index: U256 | AnyNumber | Uint8Array) => Observable<bool>>;378 };379 grandpa: {380 /**381 * Prove finality for the given block number, returning the Justification for the last block in the set.382 **/383 proveFinality: AugmentedRpc<(blockNumber: BlockNumber | AnyNumber | Uint8Array) => Observable<Option<EncodedFinalityProofs>>>;384 /**385 * Returns the state of the current best round state as well as the ongoing background rounds386 **/387 roundState: AugmentedRpc<() => Observable<ReportedRoundStates>>;388 /**389 * Subscribes to grandpa justifications390 **/391 subscribeJustifications: AugmentedRpc<() => Observable<JustificationNotification>>;392 };393 mmr: {394 /**395 * Generate MMR proof for the given leaf indices.396 **/397 generateBatchProof: AugmentedRpc<(leafIndices: Vec<u64> | (u64 | AnyNumber | Uint8Array)[], at?: BlockHash | string | Uint8Array) => Observable<MmrLeafProof>>;398 /**399 * Generate MMR proof for given leaf index.400 **/401 generateProof: AugmentedRpc<(leafIndex: u64 | AnyNumber | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<MmrLeafBatchProof>>;402 };403 net: {404 /**405 * Returns true if client is actively listening for network connections. Otherwise false.406 **/407 listening: AugmentedRpc<() => Observable<bool>>;408 /**409 * Returns number of peers connected to node.410 **/411 peerCount: AugmentedRpc<() => Observable<Text>>;412 /**413 * Returns protocol version.414 **/415 version: AugmentedRpc<() => Observable<Text>>;416 };417 offchain: {418 /**419 * Get offchain local storage under given key and prefix420 **/421 localStorageGet: AugmentedRpc<(kind: StorageKind | 'PERSISTENT' | 'LOCAL' | number | Uint8Array, key: Bytes | string | Uint8Array) => Observable<Option<Bytes>>>;422 /**423 * Set offchain local storage under given key and prefix424 **/425 localStorageSet: AugmentedRpc<(kind: StorageKind | 'PERSISTENT' | 'LOCAL' | number | Uint8Array, key: Bytes | string | Uint8Array, value: Bytes | string | Uint8Array) => Observable<Null>>;426 };427 payment: {428 /**429 * Query the detailed fee of a given encoded extrinsic430 **/431 queryFeeDetails: AugmentedRpc<(extrinsic: Bytes | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<FeeDetails>>;432 /**433 * Retrieves the fee information for an encoded extrinsic434 **/435 queryInfo: AugmentedRpc<(extrinsic: Bytes | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<RuntimeDispatchInfo>>;436 };437 rmrk: {438 /**439 * Get tokens owned by an account in a collection440 **/441 accountTokens: AugmentedRpc<(accountId: AccountId32 | string | Uint8Array, collectionId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<u32>>>;442 /**443 * Get base info444 **/445 base: AugmentedRpc<(baseId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<RmrkTraitsBaseBaseInfo>>>;446 /**447 * Get all Base's parts448 **/449 baseParts: AugmentedRpc<(baseId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<RmrkTraitsPartPartType>>>;450 /**451 * Get collection by id452 **/453 collectionById: AugmentedRpc<(id: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<RmrkTraitsCollectionCollectionInfo>>>;454 /**455 * Get collection properties456 **/457 collectionProperties: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, filterKeys?: Vec<Text> | (Text | string)[], at?: Hash | string | Uint8Array) => Observable<Vec<RmrkTraitsPropertyPropertyInfo>>>;458 /**459 * Get the latest created collection id460 **/461 lastCollectionIdx: AugmentedRpc<(at?: Hash | string | Uint8Array) => Observable<u32>>;462 /**463 * Get NFT by collection id and NFT id464 **/465 nftById: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<RmrkTraitsNftNftInfo>>>;466 /**467 * Get NFT children468 **/469 nftChildren: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<RmrkTraitsNftNftChild>>>;470 /**471 * Get NFT properties472 **/473 nftProperties: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, filterKeys?: Vec<Text> | (Text | string)[], at?: Hash | string | Uint8Array) => Observable<Vec<RmrkTraitsPropertyPropertyInfo>>>;474 /**475 * Get NFT resource priorities476 **/477 nftResourcePriority: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, resourceId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<u32>>>;478 /**479 * Get NFT resources480 **/481 nftResources: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<RmrkTraitsResourceResourceInfo>>>;482 /**483 * Get Base's theme names484 **/485 themeNames: AugmentedRpc<(baseId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<Bytes>>>;486 /**487 * Get Theme's keys values488 **/489 themes: AugmentedRpc<(baseId: u32 | AnyNumber | Uint8Array, themeName: Text | string, keys: Option<Vec<Text>> | null | Uint8Array | Vec<Text> | (Text | string)[], at?: Hash | string | Uint8Array) => Observable<Option<RmrkTraitsTheme>>>;490 };491 rpc: {492 /**493 * Retrieves the list of RPC methods that are exposed by the node494 **/495 methods: AugmentedRpc<() => Observable<RpcMethods>>;496 };497 state: {498 /**499 * Perform a call to a builtin on the chain500 **/501 call: AugmentedRpc<(method: Text | string, data: Bytes | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<Bytes>>;502 /**503 * Retrieves the keys with prefix of a specific child storage504 **/505 getChildKeys: AugmentedRpc<(childStorageKey: StorageKey | string | Uint8Array | any, childDefinition: StorageKey | string | Uint8Array | any, childType: u32 | AnyNumber | Uint8Array, key: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable<Vec<StorageKey>>>;506 /**507 * Returns proof of storage for child key entries at a specific block state.508 **/509 getChildReadProof: AugmentedRpc<(childStorageKey: PrefixedStorageKey | string | Uint8Array, keys: Vec<StorageKey> | (StorageKey | string | Uint8Array | any)[], at?: BlockHash | string | Uint8Array) => Observable<ReadProof>>;510 /**511 * Retrieves the child storage for a key512 **/513 getChildStorage: AugmentedRpc<(childStorageKey: StorageKey | string | Uint8Array | any, childDefinition: StorageKey | string | Uint8Array | any, childType: u32 | AnyNumber | Uint8Array, key: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable<StorageData>>;514 /**515 * Retrieves the child storage hash516 **/517 getChildStorageHash: AugmentedRpc<(childStorageKey: StorageKey | string | Uint8Array | any, childDefinition: StorageKey | string | Uint8Array | any, childType: u32 | AnyNumber | Uint8Array, key: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable<Hash>>;518 /**519 * Retrieves the child storage size520 **/521 getChildStorageSize: AugmentedRpc<(childStorageKey: StorageKey | string | Uint8Array | any, childDefinition: StorageKey | string | Uint8Array | any, childType: u32 | AnyNumber | Uint8Array, key: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable<u64>>;522 /**523 * @deprecated Use `api.rpc.state.getKeysPaged` to retrieve keys524 * Retrieves the keys with a certain prefix525 **/526 getKeys: AugmentedRpc<(key: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable<Vec<StorageKey>>>;527 /**528 * Returns the keys with prefix with pagination support.529 **/530 getKeysPaged: AugmentedRpc<(key: StorageKey | string | Uint8Array | any, count: u32 | AnyNumber | Uint8Array, startKey?: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable<Vec<StorageKey>>>;531 /**532 * Returns the runtime metadata533 **/534 getMetadata: AugmentedRpc<(at?: BlockHash | string | Uint8Array) => Observable<Metadata>>;535 /**536 * @deprecated Use `api.rpc.state.getKeysPaged` to retrieve keys537 * Returns the keys with prefix, leave empty to get all the keys (deprecated: Use getKeysPaged)538 **/539 getPairs: AugmentedRpc<(prefix: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable<Vec<KeyValue>>>;540 /**541 * Returns proof of storage entries at a specific block state542 **/543 getReadProof: AugmentedRpc<(keys: Vec<StorageKey> | (StorageKey | string | Uint8Array | any)[], at?: BlockHash | string | Uint8Array) => Observable<ReadProof>>;544 /**545 * Get the runtime version546 **/547 getRuntimeVersion: AugmentedRpc<(at?: BlockHash | string | Uint8Array) => Observable<RuntimeVersion>>;548 /**549 * Retrieves the storage for a key550 **/551 getStorage: AugmentedRpc<<T = Codec>(key: StorageKey | string | Uint8Array | any, block?: Hash | Uint8Array | string) => Observable<T>>;552 /**553 * Retrieves the storage hash554 **/555 getStorageHash: AugmentedRpc<(key: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable<Hash>>;556 /**557 * Retrieves the storage size558 **/559 getStorageSize: AugmentedRpc<(key: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable<u64>>;560 /**561 * Query historical storage entries (by key) starting from a start block562 **/563 queryStorage: AugmentedRpc<<T = Codec[]>(keys: Vec<StorageKey> | (StorageKey | string | Uint8Array | any)[], fromBlock?: Hash | Uint8Array | string, toBlock?: Hash | Uint8Array | string) => Observable<[Hash, T][]>>;564 /**565 * Query storage entries (by key) starting at block hash given as the second parameter566 **/567 queryStorageAt: AugmentedRpc<<T = Codec[]>(keys: Vec<StorageKey> | (StorageKey | string | Uint8Array | any)[], at?: Hash | Uint8Array | string) => Observable<T>>;568 /**569 * Retrieves the runtime version via subscription570 **/571 subscribeRuntimeVersion: AugmentedRpc<() => Observable<RuntimeVersion>>;572 /**573 * Subscribes to storage changes for the provided keys574 **/575 subscribeStorage: AugmentedRpc<<T = Codec[]>(keys?: Vec<StorageKey> | (StorageKey | string | Uint8Array | any)[]) => Observable<T>>;576 /**577 * Provides a way to trace the re-execution of a single block578 **/579 traceBlock: AugmentedRpc<(block: Hash | string | Uint8Array, targets: Option<Text> | null | Uint8Array | Text | string, storageKeys: Option<Text> | null | Uint8Array | Text | string, methods: Option<Text> | null | Uint8Array | Text | string) => Observable<TraceBlockResponse>>;580 /**581 * Check current migration state582 **/583 trieMigrationStatus: AugmentedRpc<(at?: BlockHash | string | Uint8Array) => Observable<MigrationStatusResult>>;584 };585 syncstate: {586 /**587 * Returns the json-serialized chainspec running the node, with a sync state.588 **/589 genSyncSpec: AugmentedRpc<(raw: bool | boolean | Uint8Array) => Observable<Json>>;590 };591 system: {592 /**593 * Retrieves the next accountIndex as available on the node594 **/595 accountNextIndex: AugmentedRpc<(accountId: AccountId | string | Uint8Array) => Observable<Index>>;596 /**597 * Adds the supplied directives to the current log filter598 **/599 addLogFilter: AugmentedRpc<(directives: Text | string) => Observable<Null>>;600 /**601 * Adds a reserved peer602 **/603 addReservedPeer: AugmentedRpc<(peer: Text | string) => Observable<Text>>;604 /**605 * Retrieves the chain606 **/607 chain: AugmentedRpc<() => Observable<Text>>;608 /**609 * Retrieves the chain type610 **/611 chainType: AugmentedRpc<() => Observable<ChainType>>;612 /**613 * Dry run an extrinsic at a given block614 **/615 dryRun: AugmentedRpc<(extrinsic: Bytes | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<ApplyExtrinsicResult>>;616 /**617 * Return health status of the node618 **/619 health: AugmentedRpc<() => Observable<Health>>;620 /**621 * The addresses include a trailing /p2p/ with the local PeerId, and are thus suitable to be passed to addReservedPeer or as a bootnode address for example622 **/623 localListenAddresses: AugmentedRpc<() => Observable<Vec<Text>>>;624 /**625 * Returns the base58-encoded PeerId of the node626 **/627 localPeerId: AugmentedRpc<() => Observable<Text>>;628 /**629 * Retrieves the node name630 **/631 name: AugmentedRpc<() => Observable<Text>>;632 /**633 * Returns current state of the network634 **/635 networkState: AugmentedRpc<() => Observable<NetworkState>>;636 /**637 * Returns the roles the node is running as638 **/639 nodeRoles: AugmentedRpc<() => Observable<Vec<NodeRole>>>;640 /**641 * Returns the currently connected peers642 **/643 peers: AugmentedRpc<() => Observable<Vec<PeerInfo>>>;644 /**645 * Get a custom set of properties as a JSON object, defined in the chain spec646 **/647 properties: AugmentedRpc<() => Observable<ChainProperties>>;648 /**649 * Remove a reserved peer650 **/651 removeReservedPeer: AugmentedRpc<(peerId: Text | string) => Observable<Text>>;652 /**653 * Returns the list of reserved peers654 **/655 reservedPeers: AugmentedRpc<() => Observable<Vec<Text>>>;656 /**657 * Resets the log filter to Substrate defaults658 **/659 resetLogFilter: AugmentedRpc<() => Observable<Null>>;660 /**661 * Returns the state of the syncing of the node662 **/663 syncState: AugmentedRpc<() => Observable<SyncState>>;664 /**665 * Retrieves the version of the node666 **/667 version: AugmentedRpc<() => Observable<Text>>;668 };669 unique: {670 /**671 * Get the amount of any user tokens owned by an account672 **/673 accountBalance: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, account: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, at?: Hash | string | Uint8Array) => Observable<u32>>;674 /**675 * Get tokens owned by an account in a collection676 **/677 accountTokens: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, account: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<u32>>>;678 /**679 * Get the list of admin accounts of a collection680 **/681 adminlist: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<PalletEvmAccountBasicCrossAccountIdRepr>>>;682 /**683 * Get the amount of currently possible sponsored transactions on a token for the fee to be taken off a sponsor684 **/685 allowance: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, sender: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, spender: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<u128>>;686 /**687 * Tells whether the given `owner` approves the `operator`.688 **/689 allowanceForAll: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, owner: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, operator: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<bool>>>;690 /**691 * Check if a user is allowed to operate within a collection692 **/693 allowed: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, account: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, at?: Hash | string | Uint8Array) => Observable<bool>>;694 /**695 * Get the list of accounts allowed to operate within a collection696 **/697 allowlist: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<PalletEvmAccountBasicCrossAccountIdRepr>>>;698 /**699 * Get the amount of a specific token owned by an account700 **/701 balance: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, account: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<u128>>;702 /**703 * Get a collection by the specified ID704 **/705 collectionById: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<UpDataStructsRpcCollection>>>;706 /**707 * Get collection properties, optionally limited to the provided keys708 **/709 collectionProperties: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, propertyKeys?: Option<Vec<Text>> | null | Uint8Array | Vec<Text> | (Text | string)[], at?: Hash | string | Uint8Array) => Observable<Vec<UpDataStructsProperty>>>;710 /**711 * Get chain stats about collections712 **/713 collectionStats: AugmentedRpc<(at?: Hash | string | Uint8Array) => Observable<UpDataStructsCollectionStats>>;714 /**715 * Get tokens contained within a collection716 **/717 collectionTokens: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<u32>>>;718 /**719 * Get token constant metadata720 **/721 constMetadata: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Bytes>>;722 /**723 * Get effective collection limits724 **/725 effectiveCollectionLimits: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<UpDataStructsCollectionLimits>>>;726 /**727 * Get the last token ID created in a collection728 **/729 lastTokenId: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<u32>>;730 /**731 * Get the number of blocks until sponsoring a transaction is available732 **/733 nextSponsored: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, account: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<u64>>>;734 /**735 * Get property permissions, optionally limited to the provided keys736 **/737 propertyPermissions: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, propertyKeys?: Option<Vec<Text>> | null | Uint8Array | Vec<Text> | (Text | string)[], at?: Hash | string | Uint8Array) => Observable<Vec<UpDataStructsPropertyKeyPermission>>>;738 /**739 * Get tokens nested directly into the token740 **/741 tokenChildren: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<UpDataStructsTokenChild>>>;742 /**743 * Get token data, including properties, optionally limited to the provided keys, and total pieces for an RFT744 **/745 tokenData: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, propertyKeys?: Option<Vec<Text>> | null | Uint8Array | Vec<Text> | (Text | string)[], at?: Hash | string | Uint8Array) => Observable<UpDataStructsTokenData>>;746 /**747 * Check if the token exists748 **/749 tokenExists: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<bool>>;750 /**751 * Get the token owner752 **/753 tokenOwner: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<PalletEvmAccountBasicCrossAccountIdRepr>>>;754 /**755 * Returns 10 tokens owners in no particular order756 **/757 tokenOwners: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<PalletEvmAccountBasicCrossAccountIdRepr>>>;758 /**759 * Get token properties, optionally limited to the provided keys760 **/761 tokenProperties: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, propertyKeys?: Option<Vec<Text>> | null | Uint8Array | Vec<Text> | (Text | string)[], at?: Hash | string | Uint8Array) => Observable<Vec<UpDataStructsProperty>>>;762 /**763 * Get the topmost token owner in the hierarchy of a possibly nested token764 **/765 topmostTokenOwner: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<PalletEvmAccountBasicCrossAccountIdRepr>>>;766 /**767 * Get the total amount of pieces of an RFT768 **/769 totalPieces: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<u128>>>;770 /**771 * Get the amount of distinctive tokens present in a collection772 **/773 totalSupply: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<u32>>;774 /**775 * Get token variable metadata776 **/777 variableMetadata: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Bytes>>;778 };779 web3: {780 /**781 * Returns current client version.782 **/783 clientVersion: AugmentedRpc<() => Observable<Text>>;784 /**785 * Returns sha3 of the given data786 **/787 sha3: AugmentedRpc<(data: Bytes | string | Uint8Array) => Observable<H256>>;788 };789 } // RpcInterface790} // declare module1// 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/rpc-core/types/jsonrpc';78import type { PalletEvmAccountBasicCrossAccountIdRepr, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsPartPartType, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceResourceInfo, RmrkTraitsTheme, UpDataStructsCollectionLimits, UpDataStructsCollectionStats, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsRpcCollection, UpDataStructsTokenChild, UpDataStructsTokenData } from './default';9import type { AugmentedRpc } from '@polkadot/rpc-core/types';10import type { Metadata, StorageKey } from '@polkadot/types';11import type { Bytes, HashMap, Json, Null, Option, Text, U256, U64, Vec, bool, f64, u128, u32, u64 } from '@polkadot/types-codec';12import type { AnyNumber, Codec, ITuple } from '@polkadot/types-codec/types';13import type { ExtrinsicOrHash, ExtrinsicStatus } from '@polkadot/types/interfaces/author';14import type { EpochAuthorship } from '@polkadot/types/interfaces/babe';15import type { BeefySignedCommitment } from '@polkadot/types/interfaces/beefy';16import type { BlockHash } from '@polkadot/types/interfaces/chain';17import type { PrefixedStorageKey } from '@polkadot/types/interfaces/childstate';18import type { AuthorityId } from '@polkadot/types/interfaces/consensus';19import type { CodeUploadRequest, CodeUploadResult, ContractCallRequest, ContractExecResult, ContractInstantiateResult, InstantiateRequestV1 } from '@polkadot/types/interfaces/contracts';20import type { BlockStats } from '@polkadot/types/interfaces/dev';21import type { CreatedBlock } from '@polkadot/types/interfaces/engine';22import type { EthAccount, EthCallRequest, EthFeeHistory, EthFilter, EthFilterChanges, EthLog, EthReceipt, EthRichBlock, EthSubKind, EthSubParams, EthSyncStatus, EthTransaction, EthTransactionRequest, EthWork } from '@polkadot/types/interfaces/eth';23import type { Extrinsic } from '@polkadot/types/interfaces/extrinsics';24import type { EncodedFinalityProofs, JustificationNotification, ReportedRoundStates } from '@polkadot/types/interfaces/grandpa';25import type { MmrLeafBatchProof, MmrLeafProof } from '@polkadot/types/interfaces/mmr';26import type { StorageKind } from '@polkadot/types/interfaces/offchain';27import type { FeeDetails, RuntimeDispatchInfoV1 } from '@polkadot/types/interfaces/payment';28import type { RpcMethods } from '@polkadot/types/interfaces/rpc';29import type { AccountId, AccountId32, BlockNumber, H160, H256, H64, Hash, Header, Index, Justification, KeyValue, SignedBlock, StorageData } from '@polkadot/types/interfaces/runtime';30import type { MigrationStatusResult, ReadProof, RuntimeVersion, TraceBlockResponse } from '@polkadot/types/interfaces/state';31import type { ApplyExtrinsicResult, ChainProperties, ChainType, Health, NetworkState, NodeRole, PeerInfo, SyncState } from '@polkadot/types/interfaces/system';32import type { IExtrinsic, Observable } from '@polkadot/types/types';3334export type __AugmentedRpc = AugmentedRpc<() => unknown>;3536declare module '@polkadot/rpc-core/types/jsonrpc' {37 interface RpcInterface {38 appPromotion: {39 /**40 * Returns the total amount of unstaked tokens41 **/42 pendingUnstake: AugmentedRpc<(staker?: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, at?: Hash | string | Uint8Array) => Observable<u128>>;43 /**44 * Returns the total amount of unstaked tokens per block45 **/46 pendingUnstakePerBlock: AugmentedRpc<(staker: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<ITuple<[u32, u128]>>>>;47 /**48 * Returns the total amount of staked tokens49 **/50 totalStaked: AugmentedRpc<(staker?: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, at?: Hash | string | Uint8Array) => Observable<u128>>;51 /**52 * Returns the total amount of staked tokens per block when staked53 **/54 totalStakedPerBlock: AugmentedRpc<(staker: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<ITuple<[u32, u128]>>>>;55 };56 author: {57 /**58 * Returns true if the keystore has private keys for the given public key and key type.59 **/60 hasKey: AugmentedRpc<(publicKey: Bytes | string | Uint8Array, keyType: Text | string) => Observable<bool>>;61 /**62 * Returns true if the keystore has private keys for the given session public keys.63 **/64 hasSessionKeys: AugmentedRpc<(sessionKeys: Bytes | string | Uint8Array) => Observable<bool>>;65 /**66 * Insert a key into the keystore.67 **/68 insertKey: AugmentedRpc<(keyType: Text | string, suri: Text | string, publicKey: Bytes | string | Uint8Array) => Observable<Bytes>>;69 /**70 * Returns all pending extrinsics, potentially grouped by sender71 **/72 pendingExtrinsics: AugmentedRpc<() => Observable<Vec<Extrinsic>>>;73 /**74 * Remove given extrinsic from the pool and temporarily ban it to prevent reimporting75 **/76 removeExtrinsic: AugmentedRpc<(bytesOrHash: Vec<ExtrinsicOrHash> | (ExtrinsicOrHash | { Hash: any } | { Extrinsic: any } | string | Uint8Array)[]) => Observable<Vec<Hash>>>;77 /**78 * Generate new session keys and returns the corresponding public keys79 **/80 rotateKeys: AugmentedRpc<() => Observable<Bytes>>;81 /**82 * Submit and subscribe to watch an extrinsic until unsubscribed83 **/84 submitAndWatchExtrinsic: AugmentedRpc<(extrinsic: Extrinsic | IExtrinsic | string | Uint8Array) => Observable<ExtrinsicStatus>>;85 /**86 * Submit a fully formatted extrinsic for block inclusion87 **/88 submitExtrinsic: AugmentedRpc<(extrinsic: Extrinsic | IExtrinsic | string | Uint8Array) => Observable<Hash>>;89 };90 babe: {91 /**92 * Returns data about which slots (primary or secondary) can be claimed in the current epoch with the keys in the keystore93 **/94 epochAuthorship: AugmentedRpc<() => Observable<HashMap<AuthorityId, EpochAuthorship>>>;95 };96 beefy: {97 /**98 * Returns hash of the latest BEEFY finalized block as seen by this client.99 **/100 getFinalizedHead: AugmentedRpc<() => Observable<H256>>;101 /**102 * Returns the block most recently finalized by BEEFY, alongside side its justification.103 **/104 subscribeJustifications: AugmentedRpc<() => Observable<BeefySignedCommitment>>;105 };106 chain: {107 /**108 * Get header and body of a relay chain block109 **/110 getBlock: AugmentedRpc<(hash?: BlockHash | string | Uint8Array) => Observable<SignedBlock>>;111 /**112 * Get the block hash for a specific block113 **/114 getBlockHash: AugmentedRpc<(blockNumber?: BlockNumber | AnyNumber | Uint8Array) => Observable<BlockHash>>;115 /**116 * Get hash of the last finalized block in the canon chain117 **/118 getFinalizedHead: AugmentedRpc<() => Observable<BlockHash>>;119 /**120 * Retrieves the header for a specific block121 **/122 getHeader: AugmentedRpc<(hash?: BlockHash | string | Uint8Array) => Observable<Header>>;123 /**124 * Retrieves the newest header via subscription125 **/126 subscribeAllHeads: AugmentedRpc<() => Observable<Header>>;127 /**128 * Retrieves the best finalized header via subscription129 **/130 subscribeFinalizedHeads: AugmentedRpc<() => Observable<Header>>;131 /**132 * Retrieves the best header via subscription133 **/134 subscribeNewHeads: AugmentedRpc<() => Observable<Header>>;135 };136 childstate: {137 /**138 * Returns the keys with prefix from a child storage, leave empty to get all the keys139 **/140 getKeys: AugmentedRpc<(childKey: PrefixedStorageKey | string | Uint8Array, prefix: StorageKey | string | Uint8Array | any, at?: Hash | string | Uint8Array) => Observable<Vec<StorageKey>>>;141 /**142 * Returns the keys with prefix from a child storage with pagination support143 **/144 getKeysPaged: AugmentedRpc<(childKey: PrefixedStorageKey | string | Uint8Array, prefix: StorageKey | string | Uint8Array | any, count: u32 | AnyNumber | Uint8Array, startKey?: StorageKey | string | Uint8Array | any, at?: Hash | string | Uint8Array) => Observable<Vec<StorageKey>>>;145 /**146 * Returns a child storage entry at a specific block state147 **/148 getStorage: AugmentedRpc<(childKey: PrefixedStorageKey | string | Uint8Array, key: StorageKey | string | Uint8Array | any, at?: Hash | string | Uint8Array) => Observable<Option<StorageData>>>;149 /**150 * Returns child storage entries for multiple keys at a specific block state151 **/152 getStorageEntries: AugmentedRpc<(childKey: PrefixedStorageKey | string | Uint8Array, keys: Vec<StorageKey> | (StorageKey | string | Uint8Array | any)[], at?: Hash | string | Uint8Array) => Observable<Vec<Option<StorageData>>>>;153 /**154 * Returns the hash of a child storage entry at a block state155 **/156 getStorageHash: AugmentedRpc<(childKey: PrefixedStorageKey | string | Uint8Array, key: StorageKey | string | Uint8Array | any, at?: Hash | string | Uint8Array) => Observable<Option<Hash>>>;157 /**158 * Returns the size of a child storage entry at a block state159 **/160 getStorageSize: AugmentedRpc<(childKey: PrefixedStorageKey | string | Uint8Array, key: StorageKey | string | Uint8Array | any, at?: Hash | string | Uint8Array) => Observable<Option<u64>>>;161 };162 contracts: {163 /**164 * @deprecated Use the runtime interface `api.call.contractsApi.call` instead165 * Executes a call to a contract166 **/167 call: AugmentedRpc<(callRequest: ContractCallRequest | { origin?: any; dest?: any; value?: any; gasLimit?: any; storageDepositLimit?: any; inputData?: any } | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<ContractExecResult>>;168 /**169 * @deprecated Use the runtime interface `api.call.contractsApi.getStorage` instead170 * Returns the value under a specified storage key in a contract171 **/172 getStorage: AugmentedRpc<(address: AccountId | string | Uint8Array, key: H256 | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<Option<Bytes>>>;173 /**174 * @deprecated Use the runtime interface `api.call.contractsApi.instantiate` instead175 * Instantiate a new contract176 **/177 instantiate: AugmentedRpc<(request: InstantiateRequestV1 | { origin?: any; value?: any; gasLimit?: any; code?: any; data?: any; salt?: any } | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<ContractInstantiateResult>>;178 /**179 * @deprecated Not available in newer versions of the contracts interfaces180 * Returns the projected time a given contract will be able to sustain paying its rent181 **/182 rentProjection: AugmentedRpc<(address: AccountId | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<Option<BlockNumber>>>;183 /**184 * @deprecated Use the runtime interface `api.call.contractsApi.uploadCode` instead185 * Upload new code without instantiating a contract from it186 **/187 uploadCode: AugmentedRpc<(uploadRequest: CodeUploadRequest | { origin?: any; code?: any; storageDepositLimit?: any } | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<CodeUploadResult>>;188 };189 dev: {190 /**191 * Reexecute the specified `block_hash` and gather statistics while doing so192 **/193 getBlockStats: AugmentedRpc<(at: Hash | string | Uint8Array) => Observable<Option<BlockStats>>>;194 };195 engine: {196 /**197 * Instructs the manual-seal authorship task to create a new block198 **/199 createBlock: AugmentedRpc<(createEmpty: bool | boolean | Uint8Array, finalize: bool | boolean | Uint8Array, parentHash?: BlockHash | string | Uint8Array) => Observable<CreatedBlock>>;200 /**201 * Instructs the manual-seal authorship task to finalize a block202 **/203 finalizeBlock: AugmentedRpc<(hash: BlockHash | string | Uint8Array, justification?: Justification) => Observable<bool>>;204 };205 eth: {206 /**207 * Returns accounts list.208 **/209 accounts: AugmentedRpc<() => Observable<Vec<H160>>>;210 /**211 * Returns the blockNumber212 **/213 blockNumber: AugmentedRpc<() => Observable<U256>>;214 /**215 * Call contract, returning the output data.216 **/217 call: AugmentedRpc<(request: EthCallRequest | { from?: any; to?: any; gasPrice?: any; gas?: any; value?: any; data?: any; nonce?: any } | string | Uint8Array, number?: BlockNumber | AnyNumber | Uint8Array) => Observable<Bytes>>;218 /**219 * Returns the chain ID used for transaction signing at the current best block. None is returned if not available.220 **/221 chainId: AugmentedRpc<() => Observable<U64>>;222 /**223 * Returns block author.224 **/225 coinbase: AugmentedRpc<() => Observable<H160>>;226 /**227 * Estimate gas needed for execution of given contract.228 **/229 estimateGas: AugmentedRpc<(request: EthCallRequest | { from?: any; to?: any; gasPrice?: any; gas?: any; value?: any; data?: any; nonce?: any } | string | Uint8Array, number?: BlockNumber | AnyNumber | Uint8Array) => Observable<U256>>;230 /**231 * Returns fee history for given block count & reward percentiles232 **/233 feeHistory: AugmentedRpc<(blockCount: U256 | AnyNumber | Uint8Array, newestBlock: BlockNumber | AnyNumber | Uint8Array, rewardPercentiles: Option<Vec<f64>> | null | Uint8Array | Vec<f64> | (f64)[]) => Observable<EthFeeHistory>>;234 /**235 * Returns current gas price.236 **/237 gasPrice: AugmentedRpc<() => Observable<U256>>;238 /**239 * Returns balance of the given account.240 **/241 getBalance: AugmentedRpc<(address: H160 | string | Uint8Array, number?: BlockNumber | AnyNumber | Uint8Array) => Observable<U256>>;242 /**243 * Returns block with given hash.244 **/245 getBlockByHash: AugmentedRpc<(hash: H256 | string | Uint8Array, full: bool | boolean | Uint8Array) => Observable<Option<EthRichBlock>>>;246 /**247 * Returns block with given number.248 **/249 getBlockByNumber: AugmentedRpc<(block: BlockNumber | AnyNumber | Uint8Array, full: bool | boolean | Uint8Array) => Observable<Option<EthRichBlock>>>;250 /**251 * Returns the number of transactions in a block with given hash.252 **/253 getBlockTransactionCountByHash: AugmentedRpc<(hash: H256 | string | Uint8Array) => Observable<U256>>;254 /**255 * Returns the number of transactions in a block with given block number.256 **/257 getBlockTransactionCountByNumber: AugmentedRpc<(block: BlockNumber | AnyNumber | Uint8Array) => Observable<U256>>;258 /**259 * Returns the code at given address at given time (block number).260 **/261 getCode: AugmentedRpc<(address: H160 | string | Uint8Array, number?: BlockNumber | AnyNumber | Uint8Array) => Observable<Bytes>>;262 /**263 * Returns filter changes since last poll.264 **/265 getFilterChanges: AugmentedRpc<(index: U256 | AnyNumber | Uint8Array) => Observable<EthFilterChanges>>;266 /**267 * Returns all logs matching given filter (in a range 'from' - 'to').268 **/269 getFilterLogs: AugmentedRpc<(index: U256 | AnyNumber | Uint8Array) => Observable<Vec<EthLog>>>;270 /**271 * Returns logs matching given filter object.272 **/273 getLogs: AugmentedRpc<(filter: EthFilter | { fromBlock?: any; toBlock?: any; blockHash?: any; address?: any; topics?: any } | string | Uint8Array) => Observable<Vec<EthLog>>>;274 /**275 * Returns proof for account and storage.276 **/277 getProof: AugmentedRpc<(address: H160 | string | Uint8Array, storageKeys: Vec<H256> | (H256 | string | Uint8Array)[], number: BlockNumber | AnyNumber | Uint8Array) => Observable<EthAccount>>;278 /**279 * Returns content of the storage at given address.280 **/281 getStorageAt: AugmentedRpc<(address: H160 | string | Uint8Array, index: U256 | AnyNumber | Uint8Array, number?: BlockNumber | AnyNumber | Uint8Array) => Observable<H256>>;282 /**283 * Returns transaction at given block hash and index.284 **/285 getTransactionByBlockHashAndIndex: AugmentedRpc<(hash: H256 | string | Uint8Array, index: U256 | AnyNumber | Uint8Array) => Observable<EthTransaction>>;286 /**287 * Returns transaction by given block number and index.288 **/289 getTransactionByBlockNumberAndIndex: AugmentedRpc<(number: BlockNumber | AnyNumber | Uint8Array, index: U256 | AnyNumber | Uint8Array) => Observable<EthTransaction>>;290 /**291 * Get transaction by its hash.292 **/293 getTransactionByHash: AugmentedRpc<(hash: H256 | string | Uint8Array) => Observable<EthTransaction>>;294 /**295 * Returns the number of transactions sent from given address at given time (block number).296 **/297 getTransactionCount: AugmentedRpc<(hash: H256 | string | Uint8Array, number?: BlockNumber | AnyNumber | Uint8Array) => Observable<U256>>;298 /**299 * Returns transaction receipt by transaction hash.300 **/301 getTransactionReceipt: AugmentedRpc<(hash: H256 | string | Uint8Array) => Observable<EthReceipt>>;302 /**303 * Returns an uncles at given block and index.304 **/305 getUncleByBlockHashAndIndex: AugmentedRpc<(hash: H256 | string | Uint8Array, index: U256 | AnyNumber | Uint8Array) => Observable<EthRichBlock>>;306 /**307 * Returns an uncles at given block and index.308 **/309 getUncleByBlockNumberAndIndex: AugmentedRpc<(number: BlockNumber | AnyNumber | Uint8Array, index: U256 | AnyNumber | Uint8Array) => Observable<EthRichBlock>>;310 /**311 * Returns the number of uncles in a block with given hash.312 **/313 getUncleCountByBlockHash: AugmentedRpc<(hash: H256 | string | Uint8Array) => Observable<U256>>;314 /**315 * Returns the number of uncles in a block with given block number.316 **/317 getUncleCountByBlockNumber: AugmentedRpc<(number: BlockNumber | AnyNumber | Uint8Array) => Observable<U256>>;318 /**319 * Returns the hash of the current block, the seedHash, and the boundary condition to be met.320 **/321 getWork: AugmentedRpc<() => Observable<EthWork>>;322 /**323 * Returns the number of hashes per second that the node is mining with.324 **/325 hashrate: AugmentedRpc<() => Observable<U256>>;326 /**327 * Returns max priority fee per gas328 **/329 maxPriorityFeePerGas: AugmentedRpc<() => Observable<U256>>;330 /**331 * Returns true if client is actively mining new blocks.332 **/333 mining: AugmentedRpc<() => Observable<bool>>;334 /**335 * Returns id of new block filter.336 **/337 newBlockFilter: AugmentedRpc<() => Observable<U256>>;338 /**339 * Returns id of new filter.340 **/341 newFilter: AugmentedRpc<(filter: EthFilter | { fromBlock?: any; toBlock?: any; blockHash?: any; address?: any; topics?: any } | string | Uint8Array) => Observable<U256>>;342 /**343 * Returns id of new block filter.344 **/345 newPendingTransactionFilter: AugmentedRpc<() => Observable<U256>>;346 /**347 * Returns protocol version encoded as a string (quotes are necessary).348 **/349 protocolVersion: AugmentedRpc<() => Observable<u64>>;350 /**351 * Sends signed transaction, returning its hash.352 **/353 sendRawTransaction: AugmentedRpc<(bytes: Bytes | string | Uint8Array) => Observable<H256>>;354 /**355 * Sends transaction; will block waiting for signer to return the transaction hash356 **/357 sendTransaction: AugmentedRpc<(tx: EthTransactionRequest | { from?: any; to?: any; gasPrice?: any; gas?: any; value?: any; data?: any; nonce?: any } | string | Uint8Array) => Observable<H256>>;358 /**359 * Used for submitting mining hashrate.360 **/361 submitHashrate: AugmentedRpc<(index: U256 | AnyNumber | Uint8Array, hash: H256 | string | Uint8Array) => Observable<bool>>;362 /**363 * Used for submitting a proof-of-work solution.364 **/365 submitWork: AugmentedRpc<(nonce: H64 | string | Uint8Array, headerHash: H256 | string | Uint8Array, mixDigest: H256 | string | Uint8Array) => Observable<bool>>;366 /**367 * Subscribe to Eth subscription.368 **/369 subscribe: AugmentedRpc<(kind: EthSubKind | 'newHeads' | 'logs' | 'newPendingTransactions' | 'syncing' | number | Uint8Array, params?: EthSubParams | { None: any } | { Logs: any } | string | Uint8Array) => Observable<Null>>;370 /**371 * Returns an object with data about the sync status or false.372 **/373 syncing: AugmentedRpc<() => Observable<EthSyncStatus>>;374 /**375 * Uninstalls filter.376 **/377 uninstallFilter: AugmentedRpc<(index: U256 | AnyNumber | Uint8Array) => Observable<bool>>;378 };379 grandpa: {380 /**381 * Prove finality for the given block number, returning the Justification for the last block in the set.382 **/383 proveFinality: AugmentedRpc<(blockNumber: BlockNumber | AnyNumber | Uint8Array) => Observable<Option<EncodedFinalityProofs>>>;384 /**385 * Returns the state of the current best round state as well as the ongoing background rounds386 **/387 roundState: AugmentedRpc<() => Observable<ReportedRoundStates>>;388 /**389 * Subscribes to grandpa justifications390 **/391 subscribeJustifications: AugmentedRpc<() => Observable<JustificationNotification>>;392 };393 mmr: {394 /**395 * Generate MMR proof for the given leaf indices.396 **/397 generateBatchProof: AugmentedRpc<(leafIndices: Vec<u64> | (u64 | AnyNumber | Uint8Array)[], at?: BlockHash | string | Uint8Array) => Observable<MmrLeafProof>>;398 /**399 * Generate MMR proof for given leaf index.400 **/401 generateProof: AugmentedRpc<(leafIndex: u64 | AnyNumber | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<MmrLeafBatchProof>>;402 };403 net: {404 /**405 * Returns true if client is actively listening for network connections. Otherwise false.406 **/407 listening: AugmentedRpc<() => Observable<bool>>;408 /**409 * Returns number of peers connected to node.410 **/411 peerCount: AugmentedRpc<() => Observable<Text>>;412 /**413 * Returns protocol version.414 **/415 version: AugmentedRpc<() => Observable<Text>>;416 };417 offchain: {418 /**419 * Get offchain local storage under given key and prefix420 **/421 localStorageGet: AugmentedRpc<(kind: StorageKind | 'PERSISTENT' | 'LOCAL' | number | Uint8Array, key: Bytes | string | Uint8Array) => Observable<Option<Bytes>>>;422 /**423 * Set offchain local storage under given key and prefix424 **/425 localStorageSet: AugmentedRpc<(kind: StorageKind | 'PERSISTENT' | 'LOCAL' | number | Uint8Array, key: Bytes | string | Uint8Array, value: Bytes | string | Uint8Array) => Observable<Null>>;426 };427 payment: {428 /**429 * @deprecated Use `api.call.transactionPaymentApi.queryFeeDetails` instead430 * Query the detailed fee of a given encoded extrinsic431 **/432 queryFeeDetails: AugmentedRpc<(extrinsic: Bytes | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<FeeDetails>>;433 /**434 * @deprecated Use `api.call.transactionPaymentApi.queryInfo` instead435 * Retrieves the fee information for an encoded extrinsic436 **/437 queryInfo: AugmentedRpc<(extrinsic: Bytes | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<RuntimeDispatchInfoV1>>;438 };439 rmrk: {440 /**441 * Get tokens owned by an account in a collection442 **/443 accountTokens: AugmentedRpc<(accountId: AccountId32 | string | Uint8Array, collectionId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<u32>>>;444 /**445 * Get base info446 **/447 base: AugmentedRpc<(baseId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<RmrkTraitsBaseBaseInfo>>>;448 /**449 * Get all Base's parts450 **/451 baseParts: AugmentedRpc<(baseId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<RmrkTraitsPartPartType>>>;452 /**453 * Get collection by id454 **/455 collectionById: AugmentedRpc<(id: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<RmrkTraitsCollectionCollectionInfo>>>;456 /**457 * Get collection properties458 **/459 collectionProperties: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, filterKeys?: Vec<Text> | (Text | string)[], at?: Hash | string | Uint8Array) => Observable<Vec<RmrkTraitsPropertyPropertyInfo>>>;460 /**461 * Get the latest created collection id462 **/463 lastCollectionIdx: AugmentedRpc<(at?: Hash | string | Uint8Array) => Observable<u32>>;464 /**465 * Get NFT by collection id and NFT id466 **/467 nftById: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<RmrkTraitsNftNftInfo>>>;468 /**469 * Get NFT children470 **/471 nftChildren: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<RmrkTraitsNftNftChild>>>;472 /**473 * Get NFT properties474 **/475 nftProperties: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, filterKeys?: Vec<Text> | (Text | string)[], at?: Hash | string | Uint8Array) => Observable<Vec<RmrkTraitsPropertyPropertyInfo>>>;476 /**477 * Get NFT resource priorities478 **/479 nftResourcePriority: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, resourceId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<u32>>>;480 /**481 * Get NFT resources482 **/483 nftResources: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<RmrkTraitsResourceResourceInfo>>>;484 /**485 * Get Base's theme names486 **/487 themeNames: AugmentedRpc<(baseId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<Bytes>>>;488 /**489 * Get Theme's keys values490 **/491 themes: AugmentedRpc<(baseId: u32 | AnyNumber | Uint8Array, themeName: Text | string, keys: Option<Vec<Text>> | null | Uint8Array | Vec<Text> | (Text | string)[], at?: Hash | string | Uint8Array) => Observable<Option<RmrkTraitsTheme>>>;492 };493 rpc: {494 /**495 * Retrieves the list of RPC methods that are exposed by the node496 **/497 methods: AugmentedRpc<() => Observable<RpcMethods>>;498 };499 state: {500 /**501 * Perform a call to a builtin on the chain502 **/503 call: AugmentedRpc<(method: Text | string, data: Bytes | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<Bytes>>;504 /**505 * Retrieves the keys with prefix of a specific child storage506 **/507 getChildKeys: AugmentedRpc<(childStorageKey: StorageKey | string | Uint8Array | any, childDefinition: StorageKey | string | Uint8Array | any, childType: u32 | AnyNumber | Uint8Array, key: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable<Vec<StorageKey>>>;508 /**509 * Returns proof of storage for child key entries at a specific block state.510 **/511 getChildReadProof: AugmentedRpc<(childStorageKey: PrefixedStorageKey | string | Uint8Array, keys: Vec<StorageKey> | (StorageKey | string | Uint8Array | any)[], at?: BlockHash | string | Uint8Array) => Observable<ReadProof>>;512 /**513 * Retrieves the child storage for a key514 **/515 getChildStorage: AugmentedRpc<(childStorageKey: StorageKey | string | Uint8Array | any, childDefinition: StorageKey | string | Uint8Array | any, childType: u32 | AnyNumber | Uint8Array, key: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable<StorageData>>;516 /**517 * Retrieves the child storage hash518 **/519 getChildStorageHash: AugmentedRpc<(childStorageKey: StorageKey | string | Uint8Array | any, childDefinition: StorageKey | string | Uint8Array | any, childType: u32 | AnyNumber | Uint8Array, key: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable<Hash>>;520 /**521 * Retrieves the child storage size522 **/523 getChildStorageSize: AugmentedRpc<(childStorageKey: StorageKey | string | Uint8Array | any, childDefinition: StorageKey | string | Uint8Array | any, childType: u32 | AnyNumber | Uint8Array, key: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable<u64>>;524 /**525 * @deprecated Use `api.rpc.state.getKeysPaged` to retrieve keys526 * Retrieves the keys with a certain prefix527 **/528 getKeys: AugmentedRpc<(key: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable<Vec<StorageKey>>>;529 /**530 * Returns the keys with prefix with pagination support.531 **/532 getKeysPaged: AugmentedRpc<(key: StorageKey | string | Uint8Array | any, count: u32 | AnyNumber | Uint8Array, startKey?: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable<Vec<StorageKey>>>;533 /**534 * Returns the runtime metadata535 **/536 getMetadata: AugmentedRpc<(at?: BlockHash | string | Uint8Array) => Observable<Metadata>>;537 /**538 * @deprecated Use `api.rpc.state.getKeysPaged` to retrieve keys539 * Returns the keys with prefix, leave empty to get all the keys (deprecated: Use getKeysPaged)540 **/541 getPairs: AugmentedRpc<(prefix: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable<Vec<KeyValue>>>;542 /**543 * Returns proof of storage entries at a specific block state544 **/545 getReadProof: AugmentedRpc<(keys: Vec<StorageKey> | (StorageKey | string | Uint8Array | any)[], at?: BlockHash | string | Uint8Array) => Observable<ReadProof>>;546 /**547 * Get the runtime version548 **/549 getRuntimeVersion: AugmentedRpc<(at?: BlockHash | string | Uint8Array) => Observable<RuntimeVersion>>;550 /**551 * Retrieves the storage for a key552 **/553 getStorage: AugmentedRpc<<T = Codec>(key: StorageKey | string | Uint8Array | any, block?: Hash | Uint8Array | string) => Observable<T>>;554 /**555 * Retrieves the storage hash556 **/557 getStorageHash: AugmentedRpc<(key: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable<Hash>>;558 /**559 * Retrieves the storage size560 **/561 getStorageSize: AugmentedRpc<(key: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable<u64>>;562 /**563 * Query historical storage entries (by key) starting from a start block564 **/565 queryStorage: AugmentedRpc<<T = Codec[]>(keys: Vec<StorageKey> | (StorageKey | string | Uint8Array | any)[], fromBlock?: Hash | Uint8Array | string, toBlock?: Hash | Uint8Array | string) => Observable<[Hash, T][]>>;566 /**567 * Query storage entries (by key) starting at block hash given as the second parameter568 **/569 queryStorageAt: AugmentedRpc<<T = Codec[]>(keys: Vec<StorageKey> | (StorageKey | string | Uint8Array | any)[], at?: Hash | Uint8Array | string) => Observable<T>>;570 /**571 * Retrieves the runtime version via subscription572 **/573 subscribeRuntimeVersion: AugmentedRpc<() => Observable<RuntimeVersion>>;574 /**575 * Subscribes to storage changes for the provided keys576 **/577 subscribeStorage: AugmentedRpc<<T = Codec[]>(keys?: Vec<StorageKey> | (StorageKey | string | Uint8Array | any)[]) => Observable<T>>;578 /**579 * Provides a way to trace the re-execution of a single block580 **/581 traceBlock: AugmentedRpc<(block: Hash | string | Uint8Array, targets: Option<Text> | null | Uint8Array | Text | string, storageKeys: Option<Text> | null | Uint8Array | Text | string, methods: Option<Text> | null | Uint8Array | Text | string) => Observable<TraceBlockResponse>>;582 /**583 * Check current migration state584 **/585 trieMigrationStatus: AugmentedRpc<(at?: BlockHash | string | Uint8Array) => Observable<MigrationStatusResult>>;586 };587 syncstate: {588 /**589 * Returns the json-serialized chainspec running the node, with a sync state.590 **/591 genSyncSpec: AugmentedRpc<(raw: bool | boolean | Uint8Array) => Observable<Json>>;592 };593 system: {594 /**595 * Retrieves the next accountIndex as available on the node596 **/597 accountNextIndex: AugmentedRpc<(accountId: AccountId | string | Uint8Array) => Observable<Index>>;598 /**599 * Adds the supplied directives to the current log filter600 **/601 addLogFilter: AugmentedRpc<(directives: Text | string) => Observable<Null>>;602 /**603 * Adds a reserved peer604 **/605 addReservedPeer: AugmentedRpc<(peer: Text | string) => Observable<Text>>;606 /**607 * Retrieves the chain608 **/609 chain: AugmentedRpc<() => Observable<Text>>;610 /**611 * Retrieves the chain type612 **/613 chainType: AugmentedRpc<() => Observable<ChainType>>;614 /**615 * Dry run an extrinsic at a given block616 **/617 dryRun: AugmentedRpc<(extrinsic: Bytes | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<ApplyExtrinsicResult>>;618 /**619 * Return health status of the node620 **/621 health: AugmentedRpc<() => Observable<Health>>;622 /**623 * The addresses include a trailing /p2p/ with the local PeerId, and are thus suitable to be passed to addReservedPeer or as a bootnode address for example624 **/625 localListenAddresses: AugmentedRpc<() => Observable<Vec<Text>>>;626 /**627 * Returns the base58-encoded PeerId of the node628 **/629 localPeerId: AugmentedRpc<() => Observable<Text>>;630 /**631 * Retrieves the node name632 **/633 name: AugmentedRpc<() => Observable<Text>>;634 /**635 * Returns current state of the network636 **/637 networkState: AugmentedRpc<() => Observable<NetworkState>>;638 /**639 * Returns the roles the node is running as640 **/641 nodeRoles: AugmentedRpc<() => Observable<Vec<NodeRole>>>;642 /**643 * Returns the currently connected peers644 **/645 peers: AugmentedRpc<() => Observable<Vec<PeerInfo>>>;646 /**647 * Get a custom set of properties as a JSON object, defined in the chain spec648 **/649 properties: AugmentedRpc<() => Observable<ChainProperties>>;650 /**651 * Remove a reserved peer652 **/653 removeReservedPeer: AugmentedRpc<(peerId: Text | string) => Observable<Text>>;654 /**655 * Returns the list of reserved peers656 **/657 reservedPeers: AugmentedRpc<() => Observable<Vec<Text>>>;658 /**659 * Resets the log filter to Substrate defaults660 **/661 resetLogFilter: AugmentedRpc<() => Observable<Null>>;662 /**663 * Returns the state of the syncing of the node664 **/665 syncState: AugmentedRpc<() => Observable<SyncState>>;666 /**667 * Retrieves the version of the node668 **/669 version: AugmentedRpc<() => Observable<Text>>;670 };671 unique: {672 /**673 * Get the amount of any user tokens owned by an account674 **/675 accountBalance: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, account: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, at?: Hash | string | Uint8Array) => Observable<u32>>;676 /**677 * Get tokens owned by an account in a collection678 **/679 accountTokens: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, account: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<u32>>>;680 /**681 * Get the list of admin accounts of a collection682 **/683 adminlist: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<PalletEvmAccountBasicCrossAccountIdRepr>>>;684 /**685 * Get the amount of currently possible sponsored transactions on a token for the fee to be taken off a sponsor686 **/687 allowance: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, sender: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, spender: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<u128>>;688 /**689 * Tells whether the given `owner` approves the `operator`.690 **/691 allowanceForAll: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, owner: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, operator: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<bool>>>;692 /**693 * Check if a user is allowed to operate within a collection694 **/695 allowed: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, account: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, at?: Hash | string | Uint8Array) => Observable<bool>>;696 /**697 * Get the list of accounts allowed to operate within a collection698 **/699 allowlist: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<PalletEvmAccountBasicCrossAccountIdRepr>>>;700 /**701 * Get the amount of a specific token owned by an account702 **/703 balance: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, account: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<u128>>;704 /**705 * Get a collection by the specified ID706 **/707 collectionById: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<UpDataStructsRpcCollection>>>;708 /**709 * Get collection properties, optionally limited to the provided keys710 **/711 collectionProperties: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, propertyKeys?: Option<Vec<Text>> | null | Uint8Array | Vec<Text> | (Text | string)[], at?: Hash | string | Uint8Array) => Observable<Vec<UpDataStructsProperty>>>;712 /**713 * Get chain stats about collections714 **/715 collectionStats: AugmentedRpc<(at?: Hash | string | Uint8Array) => Observable<UpDataStructsCollectionStats>>;716 /**717 * Get tokens contained within a collection718 **/719 collectionTokens: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<u32>>>;720 /**721 * Get token constant metadata722 **/723 constMetadata: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Bytes>>;724 /**725 * Get effective collection limits726 **/727 effectiveCollectionLimits: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<UpDataStructsCollectionLimits>>>;728 /**729 * Get the last token ID created in a collection730 **/731 lastTokenId: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<u32>>;732 /**733 * Get the number of blocks until sponsoring a transaction is available734 **/735 nextSponsored: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, account: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<u64>>>;736 /**737 * Get property permissions, optionally limited to the provided keys738 **/739 propertyPermissions: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, propertyKeys?: Option<Vec<Text>> | null | Uint8Array | Vec<Text> | (Text | string)[], at?: Hash | string | Uint8Array) => Observable<Vec<UpDataStructsPropertyKeyPermission>>>;740 /**741 * Get tokens nested directly into the token742 **/743 tokenChildren: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<UpDataStructsTokenChild>>>;744 /**745 * Get token data, including properties, optionally limited to the provided keys, and total pieces for an RFT746 **/747 tokenData: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, propertyKeys?: Option<Vec<Text>> | null | Uint8Array | Vec<Text> | (Text | string)[], at?: Hash | string | Uint8Array) => Observable<UpDataStructsTokenData>>;748 /**749 * Check if the token exists750 **/751 tokenExists: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<bool>>;752 /**753 * Get the token owner754 **/755 tokenOwner: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<PalletEvmAccountBasicCrossAccountIdRepr>>>;756 /**757 * Returns 10 tokens owners in no particular order758 **/759 tokenOwners: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<PalletEvmAccountBasicCrossAccountIdRepr>>>;760 /**761 * Get token properties, optionally limited to the provided keys762 **/763 tokenProperties: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, propertyKeys?: Option<Vec<Text>> | null | Uint8Array | Vec<Text> | (Text | string)[], at?: Hash | string | Uint8Array) => Observable<Vec<UpDataStructsProperty>>>;764 /**765 * Get the topmost token owner in the hierarchy of a possibly nested token766 **/767 topmostTokenOwner: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<PalletEvmAccountBasicCrossAccountIdRepr>>>;768 /**769 * Get the total amount of pieces of an RFT770 **/771 totalPieces: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<u128>>>;772 /**773 * Get the amount of distinctive tokens present in a collection774 **/775 totalSupply: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<u32>>;776 /**777 * Get token variable metadata778 **/779 variableMetadata: AugmentedRpc<(collection: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Bytes>>;780 };781 web3: {782 /**783 * Returns current client version.784 **/785 clientVersion: AugmentedRpc<() => Observable<Text>>;786 /**787 * Returns sha3 of the given data788 **/789 sha3: AugmentedRpc<(data: Bytes | string | Uint8Array) => Observable<H256>>;790 };791 } // RpcInterface792} // declare moduletests/src/interfaces/augment-api-runtime.tsdiffbeforeafterboth--- a/tests/src/interfaces/augment-api-runtime.ts
+++ b/tests/src/interfaces/augment-api-runtime.ts
@@ -6,7 +6,7 @@
import '@polkadot/api-base/types/calls';
import type { ApiTypes, AugmentedCall, DecoratedCallBase } from '@polkadot/api-base/types';
-import type { Bytes, Null, Option, Result, U256, Vec, bool, u256, u64 } from '@polkadot/types-codec';
+import type { Bytes, Null, Option, Result, U256, Vec, bool, u256, u32, u64 } from '@polkadot/types-codec';
import type { AnyNumber, ITuple } from '@polkadot/types-codec/types';
import type { CheckInherentsResult, InherentData } from '@polkadot/types/interfaces/blockbuilder';
import type { BlockHash } from '@polkadot/types/interfaces/chain';
@@ -16,6 +16,7 @@
import type { EvmAccount, EvmCallInfo, EvmCreateInfo } from '@polkadot/types/interfaces/evm';
import type { Extrinsic } from '@polkadot/types/interfaces/extrinsics';
import type { OpaqueMetadata } from '@polkadot/types/interfaces/metadata';
+import type { FeeDetails, RuntimeDispatchInfo } from '@polkadot/types/interfaces/payment';
import type { AccountId, Block, H160, H256, Header, Index, KeyTypeId, Permill, SlotDuration } from '@polkadot/types/interfaces/runtime';
import type { RuntimeVersion } from '@polkadot/types/interfaces/state';
import type { ApplyExtrinsicResult, DispatchError } from '@polkadot/types/interfaces/system';
@@ -228,5 +229,20 @@
**/
[key: string]: DecoratedCallBase<ApiType>;
};
+ /** 0x37c8bb1350a9a2a8/2 */
+ transactionPaymentApi: {
+ /**
+ * The transaction fee details
+ **/
+ queryFeeDetails: AugmentedCall<ApiType, (uxt: Extrinsic | IExtrinsic | string | Uint8Array, len: u32 | AnyNumber | Uint8Array) => Observable<FeeDetails>>;
+ /**
+ * The transaction info
+ **/
+ queryInfo: AugmentedCall<ApiType, (uxt: Extrinsic | IExtrinsic | string | Uint8Array, len: u32 | AnyNumber | Uint8Array) => Observable<RuntimeDispatchInfo>>;
+ /**
+ * Generic call
+ **/
+ [key: string]: DecoratedCallBase<ApiType>;
+ };
} // AugmentedCalls
} // declare module
tests/src/interfaces/augment-api-tx.tsdiffbeforeafterboth--- a/tests/src/interfaces/augment-api-tx.ts
+++ b/tests/src/interfaces/augment-api-tx.ts
@@ -217,7 +217,7 @@
configuration: {
setAppPromotionConfigurationOverride: AugmentedSubmittable<(configuration: PalletConfigurationAppPromotionConfiguration | { recalculationInterval?: any; pendingInterval?: any; intervalIncome?: any; maxStakersPerCalculation?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [PalletConfigurationAppPromotionConfiguration]>;
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>]>;
+ setWeightToFeeCoefficientOverride: AugmentedSubmittable<(coeff: Option<u64> | null | Uint8Array | u64 | AnyNumber) => SubmittableExtrinsic<ApiType>, [Option<u64>]>;
setXcmAllowedLocations: AugmentedSubmittable<(locations: Option<Vec<XcmV1MultiLocation>> | null | Uint8Array | Vec<XcmV1MultiLocation> | (XcmV1MultiLocation | { parents?: any; interior?: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [Option<Vec<XcmV1MultiLocation>>]>;
/**
* Generic tx
@@ -1432,6 +1432,23 @@
**/
destroyCollection: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;
/**
+ * Repairs a collection if the data was somehow corrupted.
+ *
+ * # Arguments
+ *
+ * * `collection_id`: ID of the collection to repair.
+ **/
+ forceRepairCollection: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;
+ /**
+ * Repairs a token if the data was somehow corrupted.
+ *
+ * # Arguments
+ *
+ * * `collection_id`: ID of the collection the item belongs to.
+ * * `item_id`: ID of the item.
+ **/
+ forceRepairItem: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, itemId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32]>;
+ /**
* Remove admin of a collection.
*
* An admin address can remove itself. List of admins may become empty,
@@ -1474,15 +1491,6 @@
* * `address`: ID of the address to be removed from the allowlist.
**/
removeFromAllowList: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, address: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;
- /**
- * Repairs a broken item
- *
- * # Arguments
- *
- * * `collection_id`: ID of the collection the item belongs to.
- * * `item_id`: ID of the item.
- **/
- repairItem: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, itemId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32]>;
/**
* Re-partition a refungible token, while owning all of its parts/pieces.
*
tests/src/interfaces/augment-types.tsdiffbeforeafterboth--- a/tests/src/interfaces/augment-types.ts
+++ b/tests/src/interfaces/augment-types.ts
@@ -24,7 +24,7 @@
import type { StatementKind } from '@polkadot/types/interfaces/claims';
import type { CollectiveOrigin, MemberCount, ProposalIndex, Votes, VotesTo230 } from '@polkadot/types/interfaces/collective';
import type { AuthorityId, RawVRFOutput } from '@polkadot/types/interfaces/consensus';
-import type { AliveContractInfo, CodeHash, CodeSource, CodeUploadRequest, CodeUploadResult, CodeUploadResultValue, ContractCallFlags, ContractCallRequest, ContractExecResult, ContractExecResultOk, ContractExecResultResult, ContractExecResultSuccessTo255, ContractExecResultSuccessTo260, ContractExecResultTo255, ContractExecResultTo260, ContractExecResultTo267, ContractInfo, ContractInstantiateResult, ContractInstantiateResultTo267, ContractInstantiateResultTo299, ContractReturnFlags, ContractStorageKey, DeletedContract, ExecReturnValue, Gas, HostFnWeights, HostFnWeightsTo264, InstantiateRequest, InstantiateRequestV1, InstantiateRequestV2, InstantiateReturnValue, InstantiateReturnValueOk, InstantiateReturnValueTo267, InstructionWeights, Limits, LimitsTo264, PrefabWasmModule, RentProjection, Schedule, ScheduleTo212, ScheduleTo258, ScheduleTo264, SeedOf, StorageDeposit, TombstoneContractInfo, TrieId } from '@polkadot/types/interfaces/contracts';
+import type { AliveContractInfo, CodeHash, CodeSource, CodeUploadRequest, CodeUploadResult, CodeUploadResultValue, ContractCallFlags, ContractCallRequest, ContractExecResult, ContractExecResultOk, ContractExecResultResult, ContractExecResultSuccessTo255, ContractExecResultSuccessTo260, ContractExecResultTo255, ContractExecResultTo260, ContractExecResultTo267, ContractExecResultU64, ContractInfo, ContractInstantiateResult, ContractInstantiateResultTo267, ContractInstantiateResultTo299, ContractInstantiateResultU64, ContractReturnFlags, ContractStorageKey, DeletedContract, ExecReturnValue, Gas, HostFnWeights, HostFnWeightsTo264, InstantiateRequest, InstantiateRequestV1, InstantiateRequestV2, InstantiateReturnValue, InstantiateReturnValueOk, InstantiateReturnValueTo267, InstructionWeights, Limits, LimitsTo264, PrefabWasmModule, RentProjection, Schedule, ScheduleTo212, ScheduleTo258, ScheduleTo264, SeedOf, StorageDeposit, TombstoneContractInfo, TrieId } from '@polkadot/types/interfaces/contracts';
import type { ContractConstructorSpecLatest, ContractConstructorSpecV0, ContractConstructorSpecV1, ContractConstructorSpecV2, ContractConstructorSpecV3, ContractContractSpecV0, ContractContractSpecV1, ContractContractSpecV2, ContractContractSpecV3, ContractContractSpecV4, ContractCryptoHasher, ContractDiscriminant, ContractDisplayName, ContractEventParamSpecLatest, ContractEventParamSpecV0, ContractEventParamSpecV2, ContractEventSpecLatest, ContractEventSpecV0, ContractEventSpecV1, ContractEventSpecV2, ContractLayoutArray, ContractLayoutCell, ContractLayoutEnum, ContractLayoutHash, ContractLayoutHashingStrategy, ContractLayoutKey, ContractLayoutStruct, ContractLayoutStructField, ContractMessageParamSpecLatest, ContractMessageParamSpecV0, ContractMessageParamSpecV2, ContractMessageSpecLatest, ContractMessageSpecV0, ContractMessageSpecV1, ContractMessageSpecV2, ContractMetadata, ContractMetadataLatest, ContractMetadataV0, ContractMetadataV1, ContractMetadataV2, ContractMetadataV3, ContractMetadataV4, ContractProject, ContractProjectContract, ContractProjectInfo, ContractProjectSource, ContractProjectV0, ContractSelector, ContractStorageLayout, ContractTypeSpec } from '@polkadot/types/interfaces/contractsAbi';
import type { FundIndex, FundInfo, LastContribution, TrieIndex } from '@polkadot/types/interfaces/crowdloan';
import type { CollationInfo, CollationInfoV1, ConfigData, MessageId, OverweightIndex, PageCounter, PageIndexData } from '@polkadot/types/interfaces/cumulus';
@@ -47,7 +47,7 @@
import type { StorageKind } from '@polkadot/types/interfaces/offchain';
import type { DeferredOffenceOf, Kind, OffenceDetails, Offender, OpaqueTimeSlot, ReportIdOf, Reporter } from '@polkadot/types/interfaces/offences';
import type { AbridgedCandidateReceipt, AbridgedHostConfiguration, AbridgedHrmpChannel, AssignmentId, AssignmentKind, AttestedCandidate, AuctionIndex, AuthorityDiscoveryId, AvailabilityBitfield, AvailabilityBitfieldRecord, BackedCandidate, Bidder, BufferedSessionChange, CandidateCommitments, CandidateDescriptor, CandidateEvent, CandidateHash, CandidateInfo, CandidatePendingAvailability, CandidateReceipt, CollatorId, CollatorSignature, CommittedCandidateReceipt, CoreAssignment, CoreIndex, CoreOccupied, CoreState, DisputeLocation, DisputeResult, DisputeState, DisputeStatement, DisputeStatementSet, DoubleVoteReport, DownwardMessage, ExplicitDisputeStatement, GlobalValidationData, GlobalValidationSchedule, GroupIndex, GroupRotationInfo, HeadData, HostConfiguration, HrmpChannel, HrmpChannelId, HrmpOpenChannelRequest, InboundDownwardMessage, InboundHrmpMessage, InboundHrmpMessages, IncomingParachain, IncomingParachainDeploy, IncomingParachainFixed, InvalidDisputeStatementKind, LeasePeriod, LeasePeriodOf, LocalValidationData, MessageIngestionType, MessageQueueChain, MessagingStateSnapshot, MessagingStateSnapshotEgressEntry, MultiDisputeStatementSet, NewBidder, OccupiedCore, OccupiedCoreAssumption, OldV1SessionInfo, OutboundHrmpMessage, ParaGenesisArgs, ParaId, ParaInfo, ParaLifecycle, ParaPastCodeMeta, ParaScheduling, ParaValidatorIndex, ParachainDispatchOrigin, ParachainInherentData, ParachainProposal, ParachainsInherentData, ParathreadClaim, ParathreadClaimQueue, ParathreadEntry, PersistedValidationData, PvfCheckStatement, QueuedParathread, RegisteredParachainInfo, RelayBlockNumber, RelayChainBlockNumber, RelayChainHash, RelayHash, Remark, ReplacementTimes, Retriable, ScheduledCore, Scheduling, ScrapedOnChainVotes, ServiceQuality, SessionInfo, SessionInfoValidatorGroup, SignedAvailabilityBitfield, SignedAvailabilityBitfields, SigningContext, SlotRange, SlotRange10, Statement, SubId, SystemInherentData, TransientValidationData, UpgradeGoAhead, UpgradeRestriction, UpwardMessage, ValidDisputeStatementKind, ValidationCode, ValidationCodeHash, ValidationData, ValidationDataType, ValidationFunctionParams, ValidatorSignature, ValidityAttestation, VecInboundHrmpMessage, WinnersData, WinnersData10, WinnersDataTuple, WinnersDataTuple10, WinningData, WinningData10, WinningDataEntry } from '@polkadot/types/interfaces/parachains';
-import type { FeeDetails, InclusionFee, RuntimeDispatchInfo } from '@polkadot/types/interfaces/payment';
+import type { FeeDetails, InclusionFee, RuntimeDispatchInfo, RuntimeDispatchInfoV1, RuntimeDispatchInfoV2 } from '@polkadot/types/interfaces/payment';
import type { Approvals } from '@polkadot/types/interfaces/poll';
import type { ProxyAnnouncement, ProxyDefinition, ProxyType } from '@polkadot/types/interfaces/proxy';
import type { AccountStatus, AccountValidity } from '@polkadot/types/interfaces/purchase';
@@ -273,10 +273,12 @@
ContractExecResultTo255: ContractExecResultTo255;
ContractExecResultTo260: ContractExecResultTo260;
ContractExecResultTo267: ContractExecResultTo267;
+ ContractExecResultU64: ContractExecResultU64;
ContractInfo: ContractInfo;
ContractInstantiateResult: ContractInstantiateResult;
ContractInstantiateResultTo267: ContractInstantiateResultTo267;
ContractInstantiateResultTo299: ContractInstantiateResultTo299;
+ ContractInstantiateResultU64: ContractInstantiateResultU64;
ContractLayoutArray: ContractLayoutArray;
ContractLayoutCell: ContractLayoutCell;
ContractLayoutEnum: ContractLayoutEnum;
@@ -1057,6 +1059,8 @@
RpcMethods: RpcMethods;
RuntimeDbWeight: RuntimeDbWeight;
RuntimeDispatchInfo: RuntimeDispatchInfo;
+ RuntimeDispatchInfoV1: RuntimeDispatchInfoV1;
+ RuntimeDispatchInfoV2: RuntimeDispatchInfoV2;
RuntimeVersion: RuntimeVersion;
RuntimeVersionApi: RuntimeVersionApi;
RuntimeVersionPartial: RuntimeVersionPartial;
tests/src/interfaces/default/types.tsdiffbeforeafterboth--- a/tests/src/interfaces/default/types.ts
+++ b/tests/src/interfaces/default/types.ts
@@ -1303,7 +1303,7 @@
export interface PalletConfigurationCall extends Enum {
readonly isSetWeightToFeeCoefficientOverride: boolean;
readonly asSetWeightToFeeCoefficientOverride: {
- readonly coeff: Option<u32>;
+ readonly coeff: Option<u64>;
} & Struct;
readonly isSetMinGasPriceOverride: boolean;
readonly asSetMinGasPriceOverride: {
@@ -2319,12 +2319,16 @@
readonly operator: PalletEvmAccountBasicCrossAccountIdRepr;
readonly approve: bool;
} & Struct;
- readonly isRepairItem: boolean;
- readonly asRepairItem: {
+ readonly isForceRepairCollection: boolean;
+ readonly asForceRepairCollection: {
+ readonly collectionId: u32;
+ } & Struct;
+ readonly isForceRepairItem: boolean;
+ readonly asForceRepairItem: {
readonly collectionId: u32;
readonly itemId: u32;
} & Struct;
- readonly type: 'CreateCollection' | 'CreateCollectionEx' | 'DestroyCollection' | 'AddToAllowList' | 'RemoveFromAllowList' | 'ChangeCollectionOwner' | 'AddCollectionAdmin' | 'RemoveCollectionAdmin' | 'SetCollectionSponsor' | 'ConfirmSponsorship' | 'RemoveCollectionSponsor' | 'CreateItem' | 'CreateMultipleItems' | 'SetCollectionProperties' | 'DeleteCollectionProperties' | 'SetTokenProperties' | 'DeleteTokenProperties' | 'SetTokenPropertyPermissions' | 'CreateMultipleItemsEx' | 'SetTransfersEnabledFlag' | 'BurnItem' | 'BurnFrom' | 'Transfer' | 'Approve' | 'TransferFrom' | 'SetCollectionLimits' | 'SetCollectionPermissions' | 'Repartition' | 'SetAllowanceForAll' | 'RepairItem';
+ readonly type: 'CreateCollection' | 'CreateCollectionEx' | 'DestroyCollection' | 'AddToAllowList' | 'RemoveFromAllowList' | 'ChangeCollectionOwner' | 'AddCollectionAdmin' | 'RemoveCollectionAdmin' | 'SetCollectionSponsor' | 'ConfirmSponsorship' | 'RemoveCollectionSponsor' | 'CreateItem' | 'CreateMultipleItems' | 'SetCollectionProperties' | 'DeleteCollectionProperties' | 'SetTokenProperties' | 'DeleteTokenProperties' | 'SetTokenPropertyPermissions' | 'CreateMultipleItemsEx' | 'SetTransfersEnabledFlag' | 'BurnItem' | 'BurnFrom' | 'Transfer' | 'Approve' | 'TransferFrom' | 'SetCollectionLimits' | 'SetCollectionPermissions' | 'Repartition' | 'SetAllowanceForAll' | 'ForceRepairCollection' | 'ForceRepairItem';
}
/** @name PalletUniqueError */
tests/src/interfaces/lookup.tsdiffbeforeafterboth--- a/tests/src/interfaces/lookup.ts
+++ b/tests/src/interfaces/lookup.ts
@@ -2282,8 +2282,11 @@
operator: 'PalletEvmAccountBasicCrossAccountIdRepr',
approve: 'bool',
},
- repair_item: {
+ force_repair_collection: {
collectionId: 'u32',
+ },
+ force_repair_item: {
+ collectionId: 'u32',
itemId: 'u32'
}
}
@@ -2452,7 +2455,7 @@
PalletConfigurationCall: {
_enum: {
set_weight_to_fee_coefficient_override: {
- coeff: 'Option<u32>',
+ coeff: 'Option<u64>',
},
set_min_gas_price_override: {
coeff: 'Option<u64>',
tests/src/interfaces/types-lookup.tsdiffbeforeafterboth--- a/tests/src/interfaces/types-lookup.ts
+++ b/tests/src/interfaces/types-lookup.ts
@@ -2517,12 +2517,16 @@
readonly operator: PalletEvmAccountBasicCrossAccountIdRepr;
readonly approve: bool;
} & Struct;
- readonly isRepairItem: boolean;
- readonly asRepairItem: {
+ readonly isForceRepairCollection: boolean;
+ readonly asForceRepairCollection: {
+ readonly collectionId: u32;
+ } & Struct;
+ readonly isForceRepairItem: boolean;
+ readonly asForceRepairItem: {
readonly collectionId: u32;
readonly itemId: u32;
} & Struct;
- readonly type: 'CreateCollection' | 'CreateCollectionEx' | 'DestroyCollection' | 'AddToAllowList' | 'RemoveFromAllowList' | 'ChangeCollectionOwner' | 'AddCollectionAdmin' | 'RemoveCollectionAdmin' | 'SetCollectionSponsor' | 'ConfirmSponsorship' | 'RemoveCollectionSponsor' | 'CreateItem' | 'CreateMultipleItems' | 'SetCollectionProperties' | 'DeleteCollectionProperties' | 'SetTokenProperties' | 'DeleteTokenProperties' | 'SetTokenPropertyPermissions' | 'CreateMultipleItemsEx' | 'SetTransfersEnabledFlag' | 'BurnItem' | 'BurnFrom' | 'Transfer' | 'Approve' | 'TransferFrom' | 'SetCollectionLimits' | 'SetCollectionPermissions' | 'Repartition' | 'SetAllowanceForAll' | 'RepairItem';
+ readonly type: 'CreateCollection' | 'CreateCollectionEx' | 'DestroyCollection' | 'AddToAllowList' | 'RemoveFromAllowList' | 'ChangeCollectionOwner' | 'AddCollectionAdmin' | 'RemoveCollectionAdmin' | 'SetCollectionSponsor' | 'ConfirmSponsorship' | 'RemoveCollectionSponsor' | 'CreateItem' | 'CreateMultipleItems' | 'SetCollectionProperties' | 'DeleteCollectionProperties' | 'SetTokenProperties' | 'DeleteTokenProperties' | 'SetTokenPropertyPermissions' | 'CreateMultipleItemsEx' | 'SetTransfersEnabledFlag' | 'BurnItem' | 'BurnFrom' | 'Transfer' | 'Approve' | 'TransferFrom' | 'SetCollectionLimits' | 'SetCollectionPermissions' | 'Repartition' | 'SetAllowanceForAll' | 'ForceRepairCollection' | 'ForceRepairItem';
}
/** @name UpDataStructsCollectionMode (237) */
@@ -2675,7 +2679,7 @@
interface PalletConfigurationCall extends Enum {
readonly isSetWeightToFeeCoefficientOverride: boolean;
readonly asSetWeightToFeeCoefficientOverride: {
- readonly coeff: Option<u32>;
+ readonly coeff: Option<u64>;
} & Struct;
readonly isSetMinGasPriceOverride: boolean;
readonly asSetMinGasPriceOverride: {
tests/src/nesting/collectionProperties.test.tsdiffbeforeafterboth--- a/tests/src/nesting/collectionProperties.test.ts
+++ b/tests/src/nesting/collectionProperties.test.ts
@@ -209,7 +209,7 @@
before(async () => {
await usingPlaygrounds(async (helper, privateKey) => {
const donor = await privateKey({filename: __filename});
- [alice, bob] = await helper.arrange.createAccounts([100n, 10n], donor);
+ [alice, bob] = await helper.arrange.createAccounts([1000n, 100n], donor);
});
});