Compare commits

...
35 Commits
Author SHA1 Message Date
Github Actions 363c502ae8 [CI Skip] release/stable 5.6.1
skip-checks: true
2021-08-23 08:06:34 +00:00
Jaco d6cc0c30b4 5.6.1 (#3889) 2021-08-23 09:51:19 +02:00
Github Actions 5e312973f3 [CI Skip] release/beta 5.5.3-1
skip-checks: true
2021-08-23 07:35:02 +00:00
Jaco 17c6262a5e Update Xcm types to latest (#3888)
* Update Xcm types to latest

* Updated hex & json
2021-08-23 09:22:52 +02:00
Github Actions 0932a9aa7b [CI Skip] release/beta 5.5.3-0
skip-checks: true
2021-08-21 05:41:53 +00:00
hamidra 88b44befdf add support for n key entries for NMaps (#3886) 2021-08-21 07:31:52 +02:00
Github Actions e4fb971bec [CI Skip] release/stable 5.5.2
skip-checks: true
2021-08-19 09:01:31 +00:00
Jaco 5c7c406676 Adjust ValidDisputeStatementKind enum (#3884) 2021-08-19 10:49:32 +02:00
Github Actions 709e89b801 [CI Skip] release/beta 5.5.2-1
skip-checks: true
2021-08-17 07:49:30 +00:00
Jaco fd96255d05 Bump dev (#3880) 2021-08-17 09:38:16 +02:00
Github Actions c212db26b6 [CI Skip] release/beta 5.5.2-0
skip-checks: true
2021-08-16 08:52:32 +00:00
Jaco 817aaccbb1 API health only with providers with subscriptions (#3879) 2021-08-16 10:40:10 +02:00
Github Actions bfd5642d64 [CI Skip] release/stable 5.5.1
skip-checks: true
2021-08-15 10:04:17 +00:00
Jaco 126871bd46 5.5.1 (#3877)
* 5.5.1

* CHANGELOG
2021-08-15 11:54:51 +02:00
Jaco 714234b7af TypeDefInfo alphabetical (adjust ABI compares) (#3878) 2021-08-15 11:34:27 +02:00
Jaco a7a0965d73 9080 Upgrade block (#3876)
* 9080 Upgrade block

* Update CHANGELOG.md
2021-08-15 10:54:25 +02:00
Github Actions 9b1f9c214b [CI Skip] release/beta 5.4.2-8
skip-checks: true
2021-08-14 07:23:58 +00:00
Jaco ca17955d83 Range as primitive (#3874)
* Range as primitive

* Result/Range

* INumber as Range inner

* Update

* .with on Range

* Basic range decoding

* With

* RangeName

* TypeDefInfo for Range
2021-08-14 09:14:53 +02:00
Github Actions 9b0d260b33 [CI Skip] release/beta 5.4.2-7
skip-checks: true
2021-08-13 12:01:16 +00:00
Jaco Greeff fed2913684 bump berry 2021-08-13 14:48:57 +03:00
Github Actions fc777377ef [CI Skip] release/beta 5.4.2-6
skip-checks: true
2021-08-13 11:25:41 +00:00
Jaco ce7968f870 Loosen pedantic check for fully-empty compares (#3873)
* Loosen pedantic check for fully-empty compares

* Bump dev

* Update CHANGELOG

* Bump common
2021-08-13 13:16:17 +02:00
Jaco 07594a33b5 Extends createType decoration with missing (#3872)
* Extends createType decoration with missing

* Simplify

* Correct __IntType

* Uint mismatch
2021-08-13 12:58:17 +02:00
Github Actions 48620ea7a3 [CI Skip] release/beta 5.4.2-5
skip-checks: true
2021-08-13 06:23:57 +00:00
Caio f86ace2680 Add Range and RangeInclusive types (#3791)
* Add Range and RangeInclusive types

* Lint

* Typo
2021-08-13 08:13:14 +02:00
Github Actions 0e22308954 [CI Skip] release/beta 5.4.2-4
skip-checks: true
2021-08-12 15:41:53 +00:00
Jaco ae21d13b23 Use base interfaces for base Codec (#3870) 2021-08-12 17:32:25 +02:00
Github Actions b594158275 [CI Skip] release/beta 5.4.2-3
skip-checks: true
2021-08-12 12:16:10 +00:00
Jaco 76da6a6af5 Adjust createType with inference parser (#3866)
* Adjust createType with inference parser

* Santize fixed vecs

* __Tokenize

* Shortcut ending sequences

* Update tests & checks

* greedy matching

* Additional linting

* s/extends Codec/extends Codec | undefined/

* Adjust

* Shortcut interfacetypes

* Cleanups

* set & enum

* Adjust getTypeClass fallback set

* CC

* Adjust

* Adjust createTypeUnsafe
2021-08-12 14:07:09 +02:00
Github Actions e1f510f5e9 [CI Skip] release/beta 5.4.2-2
skip-checks: true
2021-08-12 08:11:31 +00:00
Nantian db6c44615f fix bigint type (#3869) 2021-08-12 10:02:15 +02:00
Github Actions 4ce01fe16f [CI Skip] release/beta 5.4.2-1
skip-checks: true
2021-08-10 09:42:35 +00:00
Jaco c52576149a Bump deps (#3861) 2021-08-10 11:32:00 +02:00
Github Actions 0b5e4fe1cc [CI Skip] release/beta 5.4.2-0
skip-checks: true
2021-08-10 08:40:26 +00:00
Jaco 8404170240 createType with single trim (#3859)
* createType with single trim

* Adjust

* Template struct extraction

* Adjust

* Additional

* Additional checks
2021-08-10 10:28:43 +02:00
113 changed files with 3219 additions and 2666 deletions
+2 -1
View File
@@ -25,4 +25,5 @@
4.11.2
4.16.2
5.3.2
5.3.2
5.5.2
File diff suppressed because one or more lines are too long
+631
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -10,4 +10,4 @@ plugins:
- path: .yarn/plugins/@yarnpkg/plugin-version.cjs
spec: "@yarnpkg/plugin-version"
yarnPath: .yarn/releases/yarn-3.0.0-rc.2.cjs
yarnPath: .yarn/releases/yarn-3.0.1.cjs
+42
View File
@@ -1,5 +1,47 @@
# CHANGELOG
## 5.6.1 Aug 23, 2021
Upgrade priority: Low. Recommended for users of Xcm, preparing for Kusama/Westend 9100
Contributed:
- Support 0...N-1 args on `keys/entries` (Thanks to https://github.com/hamidra)
Changes:
- Updated XCM types, `AssetId`, `MultiAssets`, `MultiAssetV1`, `AssetInstanceV1`, `XcmOrderV1`
- Rename `Null` entry in `MultiLocation` to `Here` (Xcm V1)
- Westend 9090 upgrade block
- Bump static Substrate, Kusama & Polkadot metadata
## 5.5.2 Aug 19, 2021
Upgrade priority: Medium. Contains fixes for parachain types, affecting historic block retrieval on Kusama.
Changes:
- Adjust `ValidDisputeStatementKind` enum to latest version
- Only enable API health keepalive on connections supporting subscriptions
## 5.5.1 Aug 15, 2021
Upgrade priority: Low. Recommended for users of TS (`createType` and `bigint` adjustments)
Contributed:
- Add `Range` & `RangeInclusive` types (Thanks to https://github.com/c410-f3r)
- Always use TS `bigint` type (Thanks to https://github.com/ntduan)
Changes:
- Loosen pedantic check not to fail on all-empty values
- Extend `createType` auto-TS decoration for `BreeMap`, `BTreeSet`, `HashMap`, `Range`
- Add Polkadot 9080 upgrade block
## 5.4.1 Aug 9, 2021
Upgrade priority: Low. Recommended for potential users of NMap.
+6 -5
View File
@@ -26,14 +26,15 @@
"test:watch": "polkadot-dev-run-test --watch"
},
"devDependencies": {
"@babel/core": "^7.14.8",
"@babel/register": "^7.14.5",
"@babel/runtime": "^7.14.8",
"@polkadot/dev": "^0.62.57",
"@babel/core": "^7.15.0",
"@babel/register": "^7.15.3",
"@babel/runtime": "^7.15.3",
"@polkadot/dev": "^0.62.60",
"@polkadot/ts": "^0.4.4",
"@polkadot/typegen": "workspace:packages/typegen",
"@types/jest": "^26.0.24",
"copyfiles": "^2.4.1"
},
"version": "5.4.1"
"version": "5.6.1",
"packageManager": "yarn@3.0.1"
}
+6 -6
View File
@@ -1,6 +1,6 @@
{
"name": "@polkadot/api-contract",
"version": "5.4.1",
"version": "5.6.1",
"type": "module",
"description": "Interfaces for interacting with contracts and contract ABIs",
"main": "index.js",
@@ -19,10 +19,10 @@
"bugs": "https://github.com/polkadot-js/api/issues",
"homepage": "https://github.com/polkadot-js/api/tree/master/packages/api-contract#readme",
"dependencies": {
"@babel/runtime": "^7.14.8",
"@polkadot/api": "5.4.1",
"@polkadot/types": "5.4.1",
"@polkadot/util": "^7.1.1",
"rxjs": "^7.2.0"
"@babel/runtime": "^7.15.3",
"@polkadot/api": "5.6.1",
"@polkadot/types": "5.6.1",
"@polkadot/util": "^7.2.1",
"rxjs": "^7.3.0"
}
}
+17 -9
View File
@@ -4,27 +4,35 @@
import fs from 'fs';
import path from 'path';
import { TypeDefInfo } from '@polkadot/types/types';
import abis from '../test/contracts';
import { Abi } from '.';
function stringifyInfo (key: string, value: unknown): unknown {
return key === 'info'
? TypeDefInfo[value as number]
: value;
}
describe('MetaRegistry', (): void => {
Object.keys(abis).forEach((abiName) => {
it(`initializes from a contract ABI (${abiName})`, (): void => {
const abi = new Abi(abis[abiName]);
const json = JSON.stringify(abi.registry.metaTypeDefs, stringifyInfo, 2);
const cmpPath = path.join(__dirname, `../test/compare/${abiName}.test.json`);
try {
const cmpPath = path.join(__dirname, `../test/compare/${abiName}.test.json`);
// eslint-disable-next-line @typescript-eslint/no-var-requires
expect(JSON.parse(json)).toEqual(require(cmpPath));
} catch (error) {
if (process.env.GITHUB_REPOSITORY) {
console.error(JSON.stringify(abi.registry.metaTypeDefs, stringifyInfo));
if (!fs.existsSync(cmpPath)) {
fs.writeFileSync(cmpPath, JSON.stringify(abi.registry.metaTypeDefs, null, 2), { flag: 'w' });
throw error;
}
// eslint-disable-next-line @typescript-eslint/no-var-requires
expect(abi.registry.metaTypeDefs).toEqual(require(cmpPath));
} catch (error) {
console.error(JSON.stringify(abi.registry.metaTypeDefs));
throw error;
fs.writeFileSync(cmpPath, json, { flag: 'w' });
}
});
});
+3 -3
View File
@@ -27,14 +27,14 @@ const ERROR_NO_CALL = 'Your node does not expose the contracts.call RPC. This is
const l = logger('Contract');
function createQuery <ApiType extends ApiTypes> (fn: (origin: string | AccountId | Uint8Array, options: ContractOptions, params: unknown[]) => ContractCallResult<ApiType, ContractCallOutcome>): ContractQuery<ApiType> {
return (origin: string | AccountId | Uint8Array, options: BigInt | string | number | BN | ContractOptions, ...params: unknown[]): ContractCallResult<ApiType, ContractCallOutcome> =>
return (origin: string | AccountId | Uint8Array, options: bigint | string | number | BN | ContractOptions, ...params: unknown[]): ContractCallResult<ApiType, ContractCallOutcome> =>
isOptions(options)
? fn(origin, options, params)
: fn(origin, ...extractOptions(options, params));
}
function createTx <ApiType extends ApiTypes> (fn: (options: ContractOptions, params: unknown[]) => SubmittableExtrinsic<ApiType>): ContractTx<ApiType> {
return (options: BigInt | string | number | BN | ContractOptions, ...params: unknown[]): SubmittableExtrinsic<ApiType> =>
return (options: bigint | string | number | BN | ContractOptions, ...params: unknown[]): SubmittableExtrinsic<ApiType> =>
isOptions(options)
? fn(options, params)
: fn(...extractOptions(options, params));
@@ -90,7 +90,7 @@ export class Contract<ApiType extends ApiTypes> extends Base<ApiType> {
return this.#tx;
}
#getGas = (_gasLimit: BigInt | BN | string | number, isCall = false): BN => {
#getGas = (_gasLimit: bigint | BN | string | number, isCall = false): BN => {
const gasLimit = bnToBn(_gasLimit);
return gasLimit.lte(BN_ZERO)
+4 -4
View File
@@ -10,22 +10,22 @@ import type { AbiMessage, BlueprintOptions, ContractCallOutcome, ContractOptions
export interface BlueprintDeploy<ApiType extends ApiTypes> {
(options: BlueprintOptions, ...params: unknown[]): SubmittableExtrinsic<ApiType>;
(value: BigInt | string | number | BN, gasLimit: BigInt | string | number | BN, ...params: unknown[]): SubmittableExtrinsic<ApiType>;
(value: bigint | string | number | BN, gasLimit: bigint | string | number | BN, ...params: unknown[]): SubmittableExtrinsic<ApiType>;
}
export interface ContractQuery<ApiType extends ApiTypes> {
(origin: AccountId | string | Uint8Array, options: ContractOptions, ...params: unknown[]): ContractCallResult<ApiType, ContractCallOutcome>;
(origin: AccountId | string | Uint8Array, value: BigInt | BN | string | number, gasLimit: BigInt | BN | string | number, ...params: unknown[]): ContractCallResult<ApiType, ContractCallOutcome>;
(origin: AccountId | string | Uint8Array, value: bigint | BN | string | number, gasLimit: bigint | BN | string | number, ...params: unknown[]): ContractCallResult<ApiType, ContractCallOutcome>;
}
export interface ContractTx<ApiType extends ApiTypes> {
(options: ContractOptions, ...params: unknown[]): SubmittableExtrinsic<ApiType>;
(value: BigInt | BN | string | number, gasLimit: BigInt | BN | string | number, ...params: unknown[]): SubmittableExtrinsic<ApiType>;
(value: bigint | BN | string | number, gasLimit: bigint | BN | string | number, ...params: unknown[]): SubmittableExtrinsic<ApiType>;
}
export interface ContractGeneric<O, T> {
(messageOrId: AbiMessage | string | number, options: O, ...params: unknown[]): T;
(messageOrId: AbiMessage | string | number, value: BigInt | BN | string | number, gasLimit: BigInt | BN | string | number, ...params: unknown[]): T;
(messageOrId: AbiMessage | string | number, value: bigint | BN | string | number, gasLimit: bigint | BN | string | number, ...params: unknown[]): T;
}
export type ContractCallResult<ApiType extends ApiTypes, T> = ApiType extends 'rxjs'
+2 -2
View File
@@ -17,14 +17,14 @@ import { extractOptions, isOptions } from '../util';
export const EMPTY_SALT = new Uint8Array();
export function createBluePrintTx <ApiType extends ApiTypes, R extends SubmittableResult> (fn: (options: BlueprintOptions, params: unknown[]) => SubmittableExtrinsic<ApiType, R>): BlueprintDeploy<ApiType> {
return (options: BigInt | string | number | BN | BlueprintOptions, ...params: unknown[]): SubmittableExtrinsic<ApiType, R> =>
return (options: bigint | string | number | BN | BlueprintOptions, ...params: unknown[]): SubmittableExtrinsic<ApiType, R> =>
isOptions(options)
? fn(options, params)
: fn(...extractOptions(options, params));
}
export function createBluePrintWithId <T> (fn: (constructorOrId: AbiConstructor | string | number, options: BlueprintOptions, params: unknown[]) => T): ContractGeneric<BlueprintOptions, T> {
return (constructorOrId: AbiConstructor | string | number, options: BigInt | string | number | BN | BlueprintOptions, ...params: unknown[]): T =>
return (constructorOrId: AbiConstructor | string | number, options: bigint | string | number | BN | BlueprintOptions, ...params: unknown[]): T =>
isOptions(options)
? fn(constructorOrId, options, params)
: fn(constructorOrId, ...extractOptions(options, params));
+1 -1
View File
@@ -3,4 +3,4 @@
// Auto-generated by @polkadot/dev, do not edit
export const packageInfo = { name: '@polkadot/api-contract', version: '5.4.1' };
export const packageInfo = { name: '@polkadot/api-contract', version: '5.6.1' };
+4 -4
View File
@@ -71,12 +71,12 @@ export interface DecodedMessage {
}
export interface BlueprintOptions {
gasLimit?: BigInt | string | number | BN;
gasLimit?: bigint | string | number | BN;
salt?: Uint8Array | string | null;
value?: BigInt | string | number | BN;
value?: bigint | string | number | BN;
}
export interface ContractOptions {
gasLimit?: BigInt | BN | string | number;
value?: BigInt | BN | string | number;
gasLimit?: bigint | BN | string | number;
value?: bigint | BN | string | number;
}
+2 -2
View File
@@ -24,11 +24,11 @@ export function applyOnEvent <T> (result: SubmittableResult, types: ContractEven
return undefined;
}
export function isOptions <T> (options: BigInt | string | number | BN | T): options is T {
export function isOptions <T> (options: bigint | string | number | BN | T): options is T {
return !(isBn(options) || isBigInt(options) || isNumber(options) || isString(options));
}
export function extractOptions <T extends TOptions> (value: BigInt | string | number | BN, params: unknown[]): [T, unknown[]] {
export function extractOptions <T extends TOptions> (value: bigint | string | number | BN, params: unknown[]): [T, unknown[]] {
const gasLimit = params.shift() as BN;
return [{ gasLimit, value } as T, params];
@@ -2,30 +2,30 @@
{
"displayName": "AccountId",
"namespace": "ink_env::types",
"info": 6,
"info": "Plain",
"type": "AccountId"
},
{
"info": 12,
"info": "VecFixed",
"length": 32,
"sub": {
"info": 6,
"info": "Plain",
"type": "u8"
},
"type": "[u8;32]"
},
{
"info": 6,
"info": "Plain",
"type": "u8"
},
{
"info": 6,
"info": "Plain",
"type": "i32"
},
{
"displayName": "Hash",
"namespace": "ink_env::types",
"info": 6,
"info": "Plain",
"type": "Hash"
}
]
@@ -2,20 +2,20 @@
{
"displayName": "Header",
"namespace": "ink_storage::collections::stash",
"info": 9,
"info": "Struct",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "last_vacant"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "len"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "len_entries"
}
@@ -23,7 +23,7 @@
"type": "{\"last_vacant\":\"u32\",\"len\":\"u32\",\"len_entries\":\"u32\"}"
},
{
"info": 6,
"info": "Plain",
"type": "u32"
},
{
@@ -33,15 +33,15 @@
{
"displayName": "VacantEntry",
"namespace": "ink_storage::collections::stash",
"info": 9,
"info": "Struct",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "next"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "prev"
}
@@ -52,45 +52,45 @@
{
"displayName": "Hash",
"namespace": "ink_env::types",
"info": 6,
"info": "Plain",
"type": "Hash",
"name": "Occupied"
}
],
"info": 3,
"info": "Enum",
"type": "{\"_enum\":{\"Vacant\":\"VacantEntry\",\"Occupied\":\"Hash\"}}"
},
{
"displayName": "Hash",
"namespace": "ink_env::types",
"info": 6,
"info": "Plain",
"type": "Hash"
},
{
"info": 12,
"info": "VecFixed",
"length": 32,
"sub": {
"info": 6,
"info": "Plain",
"type": "u8"
},
"type": "[u8;32]"
},
{
"info": 6,
"info": "Plain",
"type": "u8"
},
{
"displayName": "VacantEntry",
"namespace": "ink_storage::collections::stash",
"info": 9,
"info": "Struct",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "next"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "prev"
}
@@ -104,23 +104,23 @@
{
"displayName": "AccountId",
"namespace": "ink_env::types",
"info": 6,
"info": "Plain",
"type": "AccountId",
"name": "value"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "key_index"
}
],
"info": 9,
"info": "Struct",
"type": "{\"value\":\"AccountId\",\"key_index\":\"u32\"}"
},
{
"displayName": "AccountId",
"namespace": "ink_env::types",
"info": 6,
"info": "Plain",
"type": "AccountId"
},
{
@@ -128,7 +128,7 @@
"sub": [
{
"name": "Ok",
"info": 10,
"info": "Tuple",
"sub": [],
"type": "()"
},
@@ -136,13 +136,13 @@
"name": "Error",
"displayName": "Error",
"namespace": "dns::dns",
"info": 3,
"info": "Enum",
"sub": [
{
"ext": {
"discriminant": 0
},
"info": 6,
"info": "Plain",
"name": "NameAlreadyExists",
"type": "Null"
},
@@ -150,7 +150,7 @@
"ext": {
"discriminant": 1
},
"info": 6,
"info": "Plain",
"name": "CallerIsNotOwner",
"type": "Null"
}
@@ -158,24 +158,24 @@
"type": "{\"_enum\":[\"NameAlreadyExists\",\"CallerIsNotOwner\"]}"
}
],
"info": 7,
"info": "Result",
"type": "Result<(), Error>"
},
{
"info": 10,
"info": "Tuple",
"sub": [],
"type": "()"
},
{
"displayName": "Error",
"namespace": "dns::dns",
"info": 3,
"info": "Enum",
"sub": [
{
"ext": {
"discriminant": 0
},
"info": 6,
"info": "Plain",
"name": "NameAlreadyExists",
"type": "Null"
},
@@ -183,7 +183,7 @@
"ext": {
"discriminant": 1
},
"info": 6,
"info": "Plain",
"name": "CallerIsNotOwner",
"type": "Null"
}
@@ -195,10 +195,10 @@
"sub": {
"displayName": "AccountId",
"namespace": "ink_env::types",
"info": 6,
"info": "Plain",
"type": "AccountId"
},
"info": 5,
"info": "Option",
"type": "Option<AccountId>"
}
]
@@ -1,25 +1,25 @@
[
{
"info": 6,
"info": "Plain",
"type": "u128"
},
{
"displayName": "Header",
"namespace": "ink_storage::collections::stash",
"info": 9,
"info": "Struct",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "last_vacant"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "len"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "len_entries"
}
@@ -27,7 +27,7 @@
"type": "{\"last_vacant\":\"u32\",\"len\":\"u32\",\"len_entries\":\"u32\"}"
},
{
"info": 6,
"info": "Plain",
"type": "u32"
},
{
@@ -37,15 +37,15 @@
{
"displayName": "VacantEntry",
"namespace": "ink_storage::collections::stash",
"info": 9,
"info": "Struct",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "next"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "prev"
}
@@ -56,45 +56,45 @@
{
"displayName": "AccountId",
"namespace": "ink_env::types",
"info": 6,
"info": "Plain",
"type": "AccountId",
"name": "Occupied"
}
],
"info": 3,
"info": "Enum",
"type": "{\"_enum\":{\"Vacant\":\"VacantEntry\",\"Occupied\":\"AccountId\"}}"
},
{
"displayName": "AccountId",
"namespace": "ink_env::types",
"info": 6,
"info": "Plain",
"type": "AccountId"
},
{
"info": 12,
"info": "VecFixed",
"length": 32,
"sub": {
"info": 6,
"info": "Plain",
"type": "u8"
},
"type": "[u8;32]"
},
{
"info": 6,
"info": "Plain",
"type": "u8"
},
{
"displayName": "VacantEntry",
"namespace": "ink_storage::collections::stash",
"info": 9,
"info": "Struct",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "next"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "prev"
}
@@ -106,17 +106,17 @@
"namespace": "ink_storage::collections::hashmap",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "u128",
"name": "value"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "key_index"
}
],
"info": 9,
"info": "Struct",
"type": "{\"value\":\"u128\",\"key_index\":\"u32\"}"
},
{
@@ -126,15 +126,15 @@
{
"displayName": "VacantEntry",
"namespace": "ink_storage::collections::stash",
"info": 9,
"info": "Struct",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "next"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "prev"
}
@@ -143,18 +143,18 @@
"name": "Vacant"
},
{
"info": 10,
"info": "Tuple",
"sub": [
{
"displayName": "AccountId",
"namespace": "ink_env::types",
"info": 6,
"info": "Plain",
"type": "AccountId"
},
{
"displayName": "AccountId",
"namespace": "ink_env::types",
"info": 6,
"info": "Plain",
"type": "AccountId"
}
],
@@ -162,29 +162,29 @@
"name": "Occupied"
}
],
"info": 3,
"info": "Enum",
"type": "{\"_enum\":{\"Vacant\":\"VacantEntry\",\"Occupied\":\"(AccountId,AccountId)\"}}"
},
{
"info": 10,
"info": "Tuple",
"sub": [
{
"displayName": "AccountId",
"namespace": "ink_env::types",
"info": 6,
"info": "Plain",
"type": "AccountId"
},
{
"displayName": "AccountId",
"namespace": "ink_env::types",
"info": 6,
"info": "Plain",
"type": "AccountId"
}
],
"type": "(AccountId,AccountId)"
},
{
"info": 6,
"info": "Plain",
"type": "bool"
},
{
@@ -192,10 +192,10 @@
"sub": {
"displayName": "AccountId",
"namespace": "ink_env::types",
"info": 6,
"info": "Plain",
"type": "AccountId"
},
"info": 5,
"info": "Option",
"type": "Option<AccountId>"
}
]
]
@@ -2,20 +2,20 @@
{
"displayName": "Header",
"namespace": "ink_storage::collections::stash",
"info": 9,
"info": "Struct",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "last_vacant"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "len"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "len_entries"
}
@@ -23,7 +23,7 @@
"type": "{\"last_vacant\":\"u32\",\"len\":\"u32\",\"len_entries\":\"u32\"}"
},
{
"info": 6,
"info": "Plain",
"type": "u32"
},
{
@@ -33,15 +33,15 @@
{
"displayName": "VacantEntry",
"namespace": "ink_storage::collections::stash",
"info": 9,
"info": "Struct",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "next"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "prev"
}
@@ -50,26 +50,26 @@
"name": "Vacant"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "Occupied"
}
],
"info": 3,
"info": "Enum",
"type": "{\"_enum\":{\"Vacant\":\"VacantEntry\",\"Occupied\":\"u32\"}}"
},
{
"displayName": "VacantEntry",
"namespace": "ink_storage::collections::stash",
"info": 9,
"info": "Struct",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "next"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "prev"
}
@@ -83,36 +83,36 @@
{
"displayName": "AccountId",
"namespace": "ink_env::types",
"info": 6,
"info": "Plain",
"type": "AccountId",
"name": "value"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "key_index"
}
],
"info": 9,
"info": "Struct",
"type": "{\"value\":\"AccountId\",\"key_index\":\"u32\"}"
},
{
"displayName": "AccountId",
"namespace": "ink_env::types",
"info": 6,
"info": "Plain",
"type": "AccountId"
},
{
"info": 12,
"info": "VecFixed",
"length": 32,
"sub": {
"info": 6,
"info": "Plain",
"type": "u8"
},
"type": "[u8;32]"
},
{
"info": 6,
"info": "Plain",
"type": "u8"
},
{
@@ -122,15 +122,15 @@
{
"displayName": "VacantEntry",
"namespace": "ink_storage::collections::stash",
"info": 9,
"info": "Struct",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "next"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "prev"
}
@@ -141,12 +141,12 @@
{
"displayName": "AccountId",
"namespace": "ink_env::types",
"info": 6,
"info": "Plain",
"type": "AccountId",
"name": "Occupied"
}
],
"info": 3,
"info": "Enum",
"type": "{\"_enum\":{\"Vacant\":\"VacantEntry\",\"Occupied\":\"AccountId\"}}"
},
{
@@ -154,17 +154,17 @@
"namespace": "ink_storage::collections::hashmap",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "value"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "key_index"
}
],
"info": 9,
"info": "Struct",
"type": "{\"value\":\"u32\",\"key_index\":\"u32\"}"
},
{
@@ -174,15 +174,15 @@
{
"displayName": "VacantEntry",
"namespace": "ink_storage::collections::stash",
"info": 9,
"info": "Struct",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "next"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "prev"
}
@@ -191,18 +191,18 @@
"name": "Vacant"
},
{
"info": 10,
"info": "Tuple",
"sub": [
{
"displayName": "AccountId",
"namespace": "ink_env::types",
"info": 6,
"info": "Plain",
"type": "AccountId"
},
{
"displayName": "AccountId",
"namespace": "ink_env::types",
"info": 6,
"info": "Plain",
"type": "AccountId"
}
],
@@ -210,22 +210,22 @@
"name": "Occupied"
}
],
"info": 3,
"info": "Enum",
"type": "{\"_enum\":{\"Vacant\":\"VacantEntry\",\"Occupied\":\"(AccountId,AccountId)\"}}"
},
{
"info": 10,
"info": "Tuple",
"sub": [
{
"displayName": "AccountId",
"namespace": "ink_env::types",
"info": 6,
"info": "Plain",
"type": "AccountId"
},
{
"displayName": "AccountId",
"namespace": "ink_env::types",
"info": 6,
"info": "Plain",
"type": "AccountId"
}
],
@@ -236,21 +236,21 @@
"namespace": "ink_storage::collections::hashmap",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "bool",
"name": "value"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "key_index"
}
],
"info": 9,
"info": "Struct",
"type": "{\"value\":\"bool\",\"key_index\":\"u32\"}"
},
{
"info": 6,
"info": "Plain",
"type": "bool"
},
{
@@ -258,10 +258,10 @@
"sub": {
"displayName": "AccountId",
"namespace": "ink_env::types",
"info": 6,
"info": "Plain",
"type": "AccountId"
},
"info": 5,
"info": "Option",
"type": "Option<AccountId>"
},
{
@@ -269,7 +269,7 @@
"sub": [
{
"name": "Ok",
"info": 10,
"info": "Tuple",
"sub": [],
"type": "()"
},
@@ -277,13 +277,13 @@
"name": "Error",
"displayName": "Error",
"namespace": "erc721::erc721",
"info": 3,
"info": "Enum",
"sub": [
{
"ext": {
"discriminant": 0
},
"info": 6,
"info": "Plain",
"name": "NotOwner",
"type": "Null"
},
@@ -291,7 +291,7 @@
"ext": {
"discriminant": 1
},
"info": 6,
"info": "Plain",
"name": "NotApproved",
"type": "Null"
},
@@ -299,7 +299,7 @@
"ext": {
"discriminant": 2
},
"info": 6,
"info": "Plain",
"name": "TokenExists",
"type": "Null"
},
@@ -307,7 +307,7 @@
"ext": {
"discriminant": 3
},
"info": 6,
"info": "Plain",
"name": "TokenNotFound",
"type": "Null"
},
@@ -315,7 +315,7 @@
"ext": {
"discriminant": 4
},
"info": 6,
"info": "Plain",
"name": "CannotInsert",
"type": "Null"
},
@@ -323,7 +323,7 @@
"ext": {
"discriminant": 5
},
"info": 6,
"info": "Plain",
"name": "CannotRemove",
"type": "Null"
},
@@ -331,7 +331,7 @@
"ext": {
"discriminant": 6
},
"info": 6,
"info": "Plain",
"name": "CannotFetchValue",
"type": "Null"
},
@@ -339,7 +339,7 @@
"ext": {
"discriminant": 7
},
"info": 6,
"info": "Plain",
"name": "NotAllowed",
"type": "Null"
}
@@ -347,24 +347,24 @@
"type": "{\"_enum\":[\"NotOwner\",\"NotApproved\",\"TokenExists\",\"TokenNotFound\",\"CannotInsert\",\"CannotRemove\",\"CannotFetchValue\",\"NotAllowed\"]}"
}
],
"info": 7,
"info": "Result",
"type": "Result<(), Error>"
},
{
"info": 10,
"info": "Tuple",
"sub": [],
"type": "()"
},
{
"displayName": "Error",
"namespace": "erc721::erc721",
"info": 3,
"info": "Enum",
"sub": [
{
"ext": {
"discriminant": 0
},
"info": 6,
"info": "Plain",
"name": "NotOwner",
"type": "Null"
},
@@ -372,7 +372,7 @@
"ext": {
"discriminant": 1
},
"info": 6,
"info": "Plain",
"name": "NotApproved",
"type": "Null"
},
@@ -380,7 +380,7 @@
"ext": {
"discriminant": 2
},
"info": 6,
"info": "Plain",
"name": "TokenExists",
"type": "Null"
},
@@ -388,7 +388,7 @@
"ext": {
"discriminant": 3
},
"info": 6,
"info": "Plain",
"name": "TokenNotFound",
"type": "Null"
},
@@ -396,7 +396,7 @@
"ext": {
"discriminant": 4
},
"info": 6,
"info": "Plain",
"name": "CannotInsert",
"type": "Null"
},
@@ -404,7 +404,7 @@
"ext": {
"discriminant": 5
},
"info": 6,
"info": "Plain",
"name": "CannotRemove",
"type": "Null"
},
@@ -412,7 +412,7 @@
"ext": {
"discriminant": 6
},
"info": 6,
"info": "Plain",
"name": "CannotFetchValue",
"type": "Null"
},
@@ -420,11 +420,11 @@
"ext": {
"discriminant": 7
},
"info": 6,
"info": "Plain",
"name": "NotAllowed",
"type": "Null"
}
],
"type": "{\"_enum\":[\"NotOwner\",\"NotApproved\",\"TokenExists\",\"TokenNotFound\",\"CannotInsert\",\"CannotRemove\",\"CannotFetchValue\",\"NotAllowed\"]}"
}
]
]
@@ -1,6 +1,6 @@
[
{
"info": 6,
"info": "Plain",
"type": "bool"
}
]
@@ -1,6 +1,6 @@
[
{
"info": 6,
"info": "Plain",
"type": "bool"
}
]
@@ -1,6 +1,6 @@
[
{
"info": 6,
"info": "Plain",
"type": "i32"
}
]
@@ -2,20 +2,20 @@
{
"displayName": "Header",
"namespace": "ink_storage::collections::stash",
"info": 9,
"info": "Struct",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "last_vacant"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "len"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "len_entries"
}
@@ -23,7 +23,7 @@
"type": "{\"last_vacant\":\"u32\",\"len\":\"u32\",\"len_entries\":\"u32\"}"
},
{
"info": 6,
"info": "Plain",
"type": "u32"
},
{
@@ -33,15 +33,15 @@
{
"displayName": "VacantEntry",
"namespace": "ink_storage::collections::stash",
"info": 9,
"info": "Struct",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "next"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "prev"
}
@@ -50,16 +50,16 @@
"name": "Vacant"
},
{
"info": 10,
"info": "Tuple",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "u32"
},
{
"displayName": "AccountId",
"namespace": "ink_env::types",
"info": 6,
"info": "Plain",
"type": "AccountId"
}
],
@@ -67,20 +67,20 @@
"name": "Occupied"
}
],
"info": 3,
"info": "Enum",
"type": "{\"_enum\":{\"Vacant\":\"VacantEntry\",\"Occupied\":\"(u32,AccountId)\"}}"
},
{
"info": 10,
"info": "Tuple",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "u32"
},
{
"displayName": "AccountId",
"namespace": "ink_env::types",
"info": 6,
"info": "Plain",
"type": "AccountId"
}
],
@@ -89,34 +89,34 @@
{
"displayName": "AccountId",
"namespace": "ink_env::types",
"info": 6,
"info": "Plain",
"type": "AccountId"
},
{
"info": 12,
"info": "VecFixed",
"length": 32,
"sub": {
"info": 6,
"info": "Plain",
"type": "u8"
},
"type": "[u8;32]"
},
{
"info": 6,
"info": "Plain",
"type": "u8"
},
{
"displayName": "VacantEntry",
"namespace": "ink_storage::collections::stash",
"info": 9,
"info": "Struct",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "next"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "prev"
}
@@ -128,22 +128,22 @@
"namespace": "ink_storage::collections::hashmap",
"sub": [
{
"info": 10,
"info": "Tuple",
"sub": [],
"type": "()",
"name": "value"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "key_index"
}
],
"info": 9,
"info": "Struct",
"type": "{\"value\":\"()\",\"key_index\":\"u32\"}"
},
{
"info": 10,
"info": "Tuple",
"sub": [],
"type": "()"
},
@@ -154,15 +154,15 @@
{
"displayName": "VacantEntry",
"namespace": "ink_storage::collections::stash",
"info": 9,
"info": "Struct",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "next"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "prev"
}
@@ -171,12 +171,12 @@
"name": "Vacant"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "Occupied"
}
],
"info": 3,
"info": "Enum",
"type": "{\"_enum\":{\"Vacant\":\"VacantEntry\",\"Occupied\":\"u32\"}}"
},
{
@@ -184,17 +184,17 @@
"namespace": "ink_storage::collections::hashmap",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "value"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "key_index"
}
],
"info": 9,
"info": "Struct",
"type": "{\"value\":\"u32\",\"key_index\":\"u32\"}"
},
{
@@ -204,15 +204,15 @@
{
"displayName": "VacantEntry",
"namespace": "ink_storage::collections::stash",
"info": 9,
"info": "Struct",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "next"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "prev"
}
@@ -223,41 +223,41 @@
{
"displayName": "Transaction",
"namespace": "multisig_plain::multisig_plain",
"info": 9,
"info": "Struct",
"sub": [
{
"displayName": "AccountId",
"namespace": "ink_env::types",
"info": 6,
"info": "Plain",
"type": "AccountId",
"name": "callee"
},
{
"info": 12,
"info": "VecFixed",
"length": 4,
"sub": {
"info": 6,
"info": "Plain",
"type": "u8"
},
"type": "[u8;4]",
"name": "selector"
},
{
"info": 11,
"info": "Vec",
"sub": {
"info": 6,
"info": "Plain",
"type": "u8"
},
"type": "Vec<u8>",
"name": "input"
},
{
"info": 6,
"info": "Plain",
"type": "u128",
"name": "transferred_value"
},
{
"info": 6,
"info": "Plain",
"type": "u64",
"name": "gas_limit"
}
@@ -266,47 +266,47 @@
"name": "Occupied"
}
],
"info": 3,
"info": "Enum",
"type": "{\"_enum\":{\"Vacant\":\"VacantEntry\",\"Occupied\":\"Transaction\"}}"
},
{
"displayName": "Transaction",
"namespace": "multisig_plain::multisig_plain",
"info": 9,
"info": "Struct",
"sub": [
{
"displayName": "AccountId",
"namespace": "ink_env::types",
"info": 6,
"info": "Plain",
"type": "AccountId",
"name": "callee"
},
{
"info": 12,
"info": "VecFixed",
"length": 4,
"sub": {
"info": 6,
"info": "Plain",
"type": "u8"
},
"type": "[u8;4]",
"name": "selector"
},
{
"info": 11,
"info": "Vec",
"sub": {
"info": 6,
"info": "Plain",
"type": "u8"
},
"type": "Vec<u8>",
"name": "input"
},
{
"info": 6,
"info": "Plain",
"type": "u128",
"name": "transferred_value"
},
{
"info": 6,
"info": "Plain",
"type": "u64",
"name": "gas_limit"
}
@@ -314,28 +314,28 @@
"type": "{\"callee\":\"AccountId\",\"selector\":\"[u8;4]\",\"input\":\"Vec<u8>\",\"transferred_value\":\"u128\",\"gas_limit\":\"u64\"}"
},
{
"info": 12,
"info": "VecFixed",
"length": 4,
"sub": {
"info": 6,
"info": "Plain",
"type": "u8"
},
"type": "[u8;4]"
},
{
"info": 11,
"info": "Vec",
"sub": {
"info": 6,
"info": "Plain",
"type": "u8"
},
"type": "Vec<u8>"
},
{
"info": 6,
"info": "Plain",
"type": "u128"
},
{
"info": 6,
"info": "Plain",
"type": "u64"
},
{
@@ -345,15 +345,15 @@
{
"displayName": "VacantEntry",
"namespace": "ink_storage::collections::stash",
"info": 9,
"info": "Struct",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "next"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "prev"
}
@@ -364,44 +364,44 @@
{
"displayName": "AccountId",
"namespace": "ink_env::types",
"info": 6,
"info": "Plain",
"type": "AccountId",
"name": "Occupied"
}
],
"info": 3,
"info": "Enum",
"type": "{\"_enum\":{\"Vacant\":\"VacantEntry\",\"Occupied\":\"AccountId\"}}"
},
{
"info": 11,
"info": "Vec",
"sub": {
"displayName": "AccountId",
"namespace": "ink_env::types",
"info": 6,
"info": "Plain",
"type": "AccountId"
},
"type": "Vec<AccountId>"
},
{
"info": 10,
"info": "Tuple",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "u32"
},
{
"displayName": "ConfirmationStatus",
"namespace": "multisig_plain::multisig_plain",
"info": 3,
"info": "Enum",
"sub": [
{
"info": 10,
"info": "Tuple",
"sub": [],
"name": "Confirmed",
"type": "()"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "ConfirmationsNeeded"
}
@@ -414,16 +414,16 @@
{
"displayName": "ConfirmationStatus",
"namespace": "multisig_plain::multisig_plain",
"info": 3,
"info": "Enum",
"sub": [
{
"info": 10,
"info": "Tuple",
"sub": [],
"name": "Confirmed",
"type": "()"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "ConfirmationsNeeded"
}
@@ -435,18 +435,18 @@
"sub": [
{
"name": "Ok",
"info": 10,
"info": "Tuple",
"sub": [],
"type": "()"
},
{
"name": "Error",
"info": 10,
"info": "Tuple",
"sub": [],
"type": "()"
}
],
"info": 7,
"info": "Result",
"type": "Result<(), ()>"
},
{
@@ -454,21 +454,21 @@
"sub": [
{
"name": "Ok",
"info": 11,
"info": "Vec",
"sub": {
"info": 6,
"info": "Plain",
"type": "u8"
},
"type": "Vec<u8>"
},
{
"name": "Error",
"info": 10,
"info": "Tuple",
"sub": [],
"type": "()"
}
],
"info": 7,
"info": "Result",
"type": "Result<Vec<u8>, ()>"
},
{
@@ -478,37 +478,37 @@
"name": "Ok",
"displayName": "Option",
"sub": {
"info": 11,
"info": "Vec",
"sub": {
"info": 6,
"info": "Plain",
"type": "u8"
},
"type": "Vec<u8>"
},
"info": 5,
"info": "Option",
"type": "Option<Vec<u8>>"
},
{
"name": "Error",
"info": 10,
"info": "Tuple",
"sub": [],
"type": "()"
}
],
"info": 7,
"info": "Result",
"type": "Result<Option<Vec<u8>>, ()>"
},
{
"displayName": "Option",
"sub": {
"info": 11,
"info": "Vec",
"sub": {
"info": 6,
"info": "Plain",
"type": "u8"
},
"type": "Vec<u8>"
},
"info": 5,
"info": "Option",
"type": "Option<Vec<u8>>"
}
]
]
@@ -1,6 +1,6 @@
[
{
"info": 6,
"info": "Plain",
"type": "u256"
}
]
@@ -1,28 +1,28 @@
[
{
"info": 6,
"info": "Plain",
"type": "u256"
},
{
"info": 6,
"info": "Plain",
"type": "u8"
},
{
"info": 12,
"info": "VecFixed",
"length": 32,
"sub": {
"info": 6,
"info": "Plain",
"type": "u8"
},
"type": "[u8;32]"
},
{
"displayName": "AccountId",
"info": 6,
"info": "Plain",
"type": "AccountId"
},
{
"info": 6,
"info": "Plain",
"type": "Text"
}
]
@@ -1,23 +1,23 @@
[
{
"info": 6,
"info": "Plain",
"type": "i32"
},
{
"info": 6,
"info": "Plain",
"type": "u32"
},
{
"info": 6,
"info": "Plain",
"type": "u8"
},
{
"displayName": "Variant",
"namespace": "enum_example::enum_example",
"info": 3,
"info": "Enum",
"sub": [
{
"info": 10,
"info": "Tuple",
"sub": [],
"name": "None",
"type": "()"
@@ -25,13 +25,13 @@
{
"displayName": "Weekday",
"namespace": "enum_example::enum_example",
"info": 3,
"info": "Enum",
"sub": [
{
"ext": {
"discriminant": 0
},
"info": 6,
"info": "Plain",
"name": "Monday",
"type": "Null"
},
@@ -39,7 +39,7 @@
"ext": {
"discriminant": 1
},
"info": 6,
"info": "Plain",
"name": "Tuesday",
"type": "Null"
},
@@ -47,7 +47,7 @@
"ext": {
"discriminant": 2
},
"info": 6,
"info": "Plain",
"name": "Wednesday",
"type": "Null"
},
@@ -55,7 +55,7 @@
"ext": {
"discriminant": 3
},
"info": 6,
"info": "Plain",
"name": "Thursday",
"type": "Null"
},
@@ -63,7 +63,7 @@
"ext": {
"discriminant": 4
},
"info": 6,
"info": "Plain",
"name": "Friday",
"type": "Null"
},
@@ -71,7 +71,7 @@
"ext": {
"discriminant": 5
},
"info": 6,
"info": "Plain",
"name": "Saturday",
"type": "Null"
},
@@ -79,7 +79,7 @@
"ext": {
"discriminant": 6
},
"info": 6,
"info": "Plain",
"name": "Sunday",
"type": "Null"
}
@@ -90,15 +90,15 @@
{
"displayName": "TupleMaybeSigned",
"namespace": "enum_example::enum_example",
"info": 3,
"info": "Enum",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "i32",
"name": "Signed"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "Unsigned"
}
@@ -109,13 +109,13 @@
{
"displayName": "NamedMaybeSigned",
"namespace": "enum_example::enum_example",
"info": 3,
"info": "Enum",
"sub": [
{
"info": 9,
"info": "Struct",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "i32",
"name": "value"
}
@@ -124,10 +124,10 @@
"type": "{\"value\":\"i32\"}"
},
{
"info": 9,
"info": "Struct",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "value"
}
@@ -142,47 +142,47 @@
{
"displayName": "Color",
"namespace": "enum_example::enum_example",
"info": 3,
"info": "Enum",
"sub": [
{
"info": 10,
"info": "Tuple",
"sub": [],
"name": "Red",
"type": "()"
},
{
"info": 10,
"info": "Tuple",
"sub": [],
"name": "Blue",
"type": "()"
},
{
"info": 10,
"info": "Tuple",
"sub": [],
"name": "Green",
"type": "()"
},
{
"info": 10,
"info": "Tuple",
"sub": [],
"name": "Yellow",
"type": "()"
},
{
"info": 9,
"info": "Struct",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "u8",
"name": "r"
},
{
"info": 6,
"info": "Plain",
"type": "u8",
"name": "g"
},
{
"info": 6,
"info": "Plain",
"type": "u8",
"name": "b"
}
@@ -191,25 +191,25 @@
"type": "{\"r\":\"u8\",\"g\":\"u8\",\"b\":\"u8\"}"
},
{
"info": 9,
"info": "Struct",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "u8",
"name": "r"
},
{
"info": 6,
"info": "Plain",
"type": "u8",
"name": "g"
},
{
"info": 6,
"info": "Plain",
"type": "u8",
"name": "b"
},
{
"info": 6,
"info": "Plain",
"type": "u8",
"name": "a"
}
@@ -227,13 +227,13 @@
{
"displayName": "Weekday",
"namespace": "enum_example::enum_example",
"info": 3,
"info": "Enum",
"sub": [
{
"ext": {
"discriminant": 0
},
"info": 6,
"info": "Plain",
"name": "Monday",
"type": "Null"
},
@@ -241,7 +241,7 @@
"ext": {
"discriminant": 1
},
"info": 6,
"info": "Plain",
"name": "Tuesday",
"type": "Null"
},
@@ -249,7 +249,7 @@
"ext": {
"discriminant": 2
},
"info": 6,
"info": "Plain",
"name": "Wednesday",
"type": "Null"
},
@@ -257,7 +257,7 @@
"ext": {
"discriminant": 3
},
"info": 6,
"info": "Plain",
"name": "Thursday",
"type": "Null"
},
@@ -265,7 +265,7 @@
"ext": {
"discriminant": 4
},
"info": 6,
"info": "Plain",
"name": "Friday",
"type": "Null"
},
@@ -273,7 +273,7 @@
"ext": {
"discriminant": 5
},
"info": 6,
"info": "Plain",
"name": "Saturday",
"type": "Null"
},
@@ -281,7 +281,7 @@
"ext": {
"discriminant": 6
},
"info": 6,
"info": "Plain",
"name": "Sunday",
"type": "Null"
}
@@ -291,15 +291,15 @@
{
"displayName": "TupleMaybeSigned",
"namespace": "enum_example::enum_example",
"info": 3,
"info": "Enum",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "i32",
"name": "Signed"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "Unsigned"
}
@@ -309,13 +309,13 @@
{
"displayName": "NamedMaybeSigned",
"namespace": "enum_example::enum_example",
"info": 3,
"info": "Enum",
"sub": [
{
"info": 9,
"info": "Struct",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "i32",
"name": "value"
}
@@ -324,10 +324,10 @@
"type": "{\"value\":\"i32\"}"
},
{
"info": 9,
"info": "Struct",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "value"
}
@@ -341,47 +341,47 @@
{
"displayName": "Color",
"namespace": "enum_example::enum_example",
"info": 3,
"info": "Enum",
"sub": [
{
"info": 10,
"info": "Tuple",
"sub": [],
"name": "Red",
"type": "()"
},
{
"info": 10,
"info": "Tuple",
"sub": [],
"name": "Blue",
"type": "()"
},
{
"info": 10,
"info": "Tuple",
"sub": [],
"name": "Green",
"type": "()"
},
{
"info": 10,
"info": "Tuple",
"sub": [],
"name": "Yellow",
"type": "()"
},
{
"info": 9,
"info": "Struct",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "u8",
"name": "r"
},
{
"info": 6,
"info": "Plain",
"type": "u8",
"name": "g"
},
{
"info": 6,
"info": "Plain",
"type": "u8",
"name": "b"
}
@@ -390,25 +390,25 @@
"type": "{\"r\":\"u8\",\"g\":\"u8\",\"b\":\"u8\"}"
},
{
"info": 9,
"info": "Struct",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "u8",
"name": "r"
},
{
"info": 6,
"info": "Plain",
"type": "u8",
"name": "g"
},
{
"info": 6,
"info": "Plain",
"type": "u8",
"name": "b"
},
{
"info": 6,
"info": "Plain",
"type": "u8",
"name": "a"
}
@@ -1,25 +1,25 @@
[
{
"info": 6,
"info": "Plain",
"type": "u128"
},
{
"displayName": "Header",
"namespace": "ink_storage::collections::stash",
"info": 9,
"info": "Struct",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "last_vacant"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "len"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "len_entries"
}
@@ -27,7 +27,7 @@
"type": "{\"last_vacant\":\"u32\",\"len\":\"u32\",\"len_entries\":\"u32\"}"
},
{
"info": 6,
"info": "Plain",
"type": "u32"
},
{
@@ -37,15 +37,15 @@
{
"displayName": "VacantEntry",
"namespace": "ink_storage::collections::stash",
"info": 9,
"info": "Struct",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "next"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "prev"
}
@@ -56,45 +56,45 @@
{
"displayName": "AccountId",
"namespace": "ink_env::types",
"info": 6,
"info": "Plain",
"type": "AccountId",
"name": "Occupied"
}
],
"info": 3,
"info": "Enum",
"type": "{\"_enum\":{\"Vacant\":\"VacantEntry\",\"Occupied\":\"AccountId\"}}"
},
{
"displayName": "AccountId",
"namespace": "ink_env::types",
"info": 6,
"info": "Plain",
"type": "AccountId"
},
{
"info": 12,
"info": "VecFixed",
"length": 32,
"sub": {
"info": 6,
"info": "Plain",
"type": "u8"
},
"type": "[u8;32]"
},
{
"info": 6,
"info": "Plain",
"type": "u8"
},
{
"displayName": "VacantEntry",
"namespace": "ink_storage::collections::stash",
"info": 9,
"info": "Struct",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "next"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "prev"
}
@@ -106,17 +106,17 @@
"namespace": "ink_storage::collections::hashmap",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "u128",
"name": "value"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "key_index"
}
],
"info": 9,
"info": "Struct",
"type": "{\"value\":\"u128\",\"key_index\":\"u32\"}"
},
{
@@ -126,15 +126,15 @@
{
"displayName": "VacantEntry",
"namespace": "ink_storage::collections::stash",
"info": 9,
"info": "Struct",
"sub": [
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "next"
},
{
"info": 6,
"info": "Plain",
"type": "u32",
"name": "prev"
}
@@ -143,18 +143,18 @@
"name": "Vacant"
},
{
"info": 10,
"info": "Tuple",
"sub": [
{
"displayName": "AccountId",
"namespace": "ink_env::types",
"info": 6,
"info": "Plain",
"type": "AccountId"
},
{
"displayName": "AccountId",
"namespace": "ink_env::types",
"info": 6,
"info": "Plain",
"type": "AccountId"
}
],
@@ -162,33 +162,33 @@
"name": "Occupied"
}
],
"info": 3,
"info": "Enum",
"type": "{\"_enum\":{\"Vacant\":\"VacantEntry\",\"Occupied\":\"(AccountId,AccountId)\"}}"
},
{
"info": 10,
"info": "Tuple",
"sub": [
{
"displayName": "AccountId",
"namespace": "ink_env::types",
"info": 6,
"info": "Plain",
"type": "AccountId"
},
{
"displayName": "AccountId",
"namespace": "ink_env::types",
"info": 6,
"info": "Plain",
"type": "AccountId"
}
],
"type": "(AccountId,AccountId)"
},
{
"info": 6,
"info": "Plain",
"type": "Text"
},
{
"info": 6,
"info": "Plain",
"type": "bool"
},
{
@@ -196,10 +196,10 @@
"sub": {
"displayName": "AccountId",
"namespace": "ink_env::types",
"info": 6,
"info": "Plain",
"type": "AccountId"
},
"info": 5,
"info": "Option",
"type": "Option<AccountId>"
}
]
]
+10 -10
View File
@@ -1,6 +1,6 @@
{
"name": "@polkadot/api-derive",
"version": "5.4.1",
"version": "5.6.1",
"type": "module",
"description": "Common functions used across Polkadot, derived from RPC calls and storage queries.",
"main": "index.js",
@@ -19,16 +19,16 @@
"bugs": "https://github.com/polkadot-js/api/issues",
"homepage": "https://github.com/polkadot-js/api/tree/master/packages/api-derive#readme",
"dependencies": {
"@babel/runtime": "^7.14.8",
"@polkadot/api": "5.4.1",
"@polkadot/rpc-core": "5.4.1",
"@polkadot/types": "5.4.1",
"@polkadot/util": "^7.1.1",
"@polkadot/util-crypto": "^7.1.1",
"rxjs": "^7.2.0"
"@babel/runtime": "^7.15.3",
"@polkadot/api": "5.6.1",
"@polkadot/rpc-core": "5.6.1",
"@polkadot/types": "5.6.1",
"@polkadot/util": "^7.2.1",
"@polkadot/util-crypto": "^7.2.1",
"rxjs": "^7.3.0"
},
"devDependencies": {
"@polkadot/keyring": "^7.1.1",
"@polkadot/rpc-provider": "5.4.1"
"@polkadot/keyring": "^7.2.1",
"@polkadot/rpc-provider": "5.6.1"
}
}
+15 -18
View File
@@ -73,7 +73,8 @@ function calcBalances (api: ApiInterfaceRx, [data, bestNumber, [vesting, allLock
// Calculate the vesting balances,
// - offset = balance locked at startingBlock
// - perBlock is the unlock amount
const { locked: vestingTotal, perBlock, startingBlock } = vesting || api.registry.createType('VestingInfo');
const emptyVest = api.registry.createType('VestingInfo');
const { locked: vestingTotal, perBlock, startingBlock } = vesting || emptyVest;
const isStarted = bestNumber.gt(startingBlock);
const vestedNow = isStarted ? perBlock.mul(bestNumber.sub(startingBlock)) : new BN(0);
const vestedBalance = vestedNow.gt(vestingTotal) ? vestingTotal : api.registry.createType('Balance', vestedNow);
@@ -117,33 +118,29 @@ const isNonNullable = <T>(nullable: T): nullable is NonNullable<T> => !!nullable
// current (balances, vesting)
function queryCurrent (api: ApiInterfaceRx, accountId: AccountId, balanceInstances: string[] = ['balances']): Observable<ResultBalance> {
const lockCalls = balanceInstances.map(
(m): ApiInterfaceRx['query']['balances']['locks'] | undefined =>
(api.derive as DeriveCustomLocks)[m]?.customLocks || api.query[m as 'balances']?.locks
const calls = balanceInstances.map((m): ApiInterfaceRx['query']['balances']['locks'] | undefined =>
(api.derive as DeriveCustomLocks)[m]?.customLocks || api.query[m as 'balances']?.locks
);
const lockEmpty = lockCalls.map((c) => !c);
const lockQueries = lockCalls.filter(isNonNullable).map((c): QueryableStorageMultiArg<'rxjs'> => [c, accountId]);
const lockEmpty = calls.map((c) => !c);
const queries = calls.filter(isNonNullable).map((c): QueryableStorageMultiArg<'rxjs'> => [c, accountId]);
return (
api.query.vesting?.vesting
? api.queryMulti<[Option<VestingInfo>, ...BalanceLocks]>([
[api.query.vesting.vesting, accountId],
...lockQueries
])
? api.queryMulti<[Option<VestingInfo>, ...BalanceLocks]>([[api.query.vesting.vesting, accountId], ...queries])
// TODO We need to check module instances here as well, not only the balances module
: lockQueries.length
? api.queryMulti<[...(Vec<BalanceLock>)[]]>(lockQueries).pipe(
map((locks): [Option<VestingInfo>, ...BalanceLocks] =>
[api.registry.createType('Option<VestingInfo>'), ...locks]
)
: queries.length
? api.queryMulti<[...(Vec<BalanceLock>)[]]>(queries).pipe(
map((r): [Option<VestingInfo>, ...BalanceLocks] => [api.registry.createType('Option<VestingInfo>'), ...r])
)
: of([api.registry.createType('Option<VestingInfo>')] as [Option<VestingInfo>])
).pipe(
map(([optVesting, ...locks]): ResultBalance => {
map(([opt, ...locks]): ResultBalance => {
let offset = -1;
return [optVesting.unwrapOr(null), lockEmpty.map((e) => e ? api.registry.createType('Vec<BalanceLock>') : locks[++offset])];
return [
opt.unwrapOr(null),
lockEmpty.map((e) => e ? api.registry.createType('Vec<BalanceLock>') : locks[++offset])
];
})
);
}
+1 -1
View File
@@ -3,4 +3,4 @@
// Auto-generated by @polkadot/dev, do not edit
export const packageInfo = { name: '@polkadot/api-derive', version: '5.4.1' };
export const packageInfo = { name: '@polkadot/api-derive', version: '5.6.1' };
+2 -2
View File
@@ -1,7 +1,7 @@
// Copyright 2017-2021 @polkadot/api-derive authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type { Option, u32 } from '@polkadot/types';
import type { Option, u32, u64 } from '@polkadot/types';
import type { BlockNumber, EraIndex, Moment, SessionIndex } from '@polkadot/types/interfaces';
export interface DeriveSessionIndexes {
@@ -15,7 +15,7 @@ export interface DeriveSessionIndexes {
export interface DeriveSessionInfo extends DeriveSessionIndexes {
eraLength: BlockNumber;
isEpoch: boolean;
sessionLength: BlockNumber;
sessionLength: u64;
sessionsPerEra: SessionIndex;
}
+11 -11
View File
@@ -1,6 +1,6 @@
{
"name": "@polkadot/api",
"version": "5.4.1",
"version": "5.6.1",
"type": "module",
"description": "Promise and RxJS wrappers around the Polkadot JS RPC",
"main": "index.js",
@@ -19,16 +19,16 @@
"bugs": "https://github.com/polkadot-js/api/issues",
"homepage": "https://github.com/polkadot-js/api/tree/master/packages/api#readme",
"dependencies": {
"@babel/runtime": "^7.14.8",
"@polkadot/api-derive": "5.4.1",
"@polkadot/keyring": "^7.1.1",
"@polkadot/rpc-core": "5.4.1",
"@polkadot/rpc-provider": "5.4.1",
"@polkadot/types": "5.4.1",
"@polkadot/types-known": "5.4.1",
"@polkadot/util": "^7.1.1",
"@polkadot/util-crypto": "^7.1.1",
"@babel/runtime": "^7.15.3",
"@polkadot/api-derive": "5.6.1",
"@polkadot/keyring": "^7.2.1",
"@polkadot/rpc-core": "5.6.1",
"@polkadot/rpc-provider": "5.6.1",
"@polkadot/types": "5.6.1",
"@polkadot/types-known": "5.6.1",
"@polkadot/util": "^7.2.1",
"@polkadot/util-crypto": "^7.2.1",
"eventemitter3": "^4.0.7",
"rxjs": "^7.2.0"
"rxjs": "^7.3.0"
}
}
+45 -30
View File
@@ -143,17 +143,18 @@ declare module '@polkadot/api/types/consts' {
* deposited while the contract is alive. Costs for additional storage are added to
* this base cost.
*
* This is a simple way to ensure that contracts with empty storage eventually get deleted by
* making them pay rent. This creates an incentive to remove them early in order to save rent.
* This is a simple way to ensure that contracts with empty storage eventually get deleted
* by making them pay rent. This creates an incentive to remove them early in order to save
* rent.
**/
depositPerContract: BalanceOf & AugmentedConst<ApiType>;
/**
* The balance a contract needs to deposit per storage byte to stay alive indefinitely.
*
* Let's suppose the deposit is 1,000 BU (balance units)/byte and the rent is 1 BU/byte/day,
* then a contract with 1,000,000 BU that uses 1,000 bytes of storage would pay no rent.
* But if the balance reduced to 500,000 BU and the storage stayed the same at 1,000,
* then it would pay 500 BU/day.
* Let's suppose the deposit is 1,000 BU (balance units)/byte and the rent is 1
* BU/byte/day, then a contract with 1,000,000 BU that uses 1,000 bytes of storage would
* pay no rent. But if the balance reduced to 500,000 BU and the storage stayed the same at
* 1,000, then it would pay 500 BU/day.
**/
depositPerStorageByte: BalanceOf & AugmentedConst<ApiType>;
/**
@@ -201,11 +202,12 @@ declare module '@polkadot/api/types/consts' {
**/
cooloffPeriod: BlockNumber & AugmentedConst<ApiType>;
/**
* The minimum period of locking and the period between a proposal being approved and enacted.
* The minimum period of locking and the period between a proposal being approved and
* enacted.
*
* It should generally be a little more than the unstake period to ensure that
* voting stakers have an opportunity to remove themselves from the system in the case where
* they are on the losing side of a vote.
* voting stakers have an opportunity to remove themselves from the system in the case
* where they are on the losing side of a vote.
**/
enactmentPeriod: BlockNumber & AugmentedConst<ApiType>;
/**
@@ -213,9 +215,9 @@ declare module '@polkadot/api/types/consts' {
**/
fastTrackVotingPeriod: BlockNumber & AugmentedConst<ApiType>;
/**
* Indicator for whether an emergency origin is even allowed to happen. Some chains may want
* to set this permanently to `false`, others may want to condition it on things such as
* an upgrade having happened recently.
* Indicator for whether an emergency origin is even allowed to happen. Some chains may
* want to set this permanently to `false`, others may want to condition it on things such
* as an upgrade having happened recently.
**/
instantAllowed: bool & AugmentedConst<ApiType>;
/**
@@ -449,8 +451,8 @@ declare module '@polkadot/api/types/consts' {
maxSubAccounts: u32 & AugmentedConst<ApiType>;
/**
* The amount held on deposit for a registered subaccount. This should account for the fact
* that one storage item's value will increase by the size of an account ID, and there will be
* another trie item whose value is the size of an account ID plus 32 bytes.
* that one storage item's value will increase by the size of an account ID, and there will
* be another trie item whose value is the size of an account ID plus 32 bytes.
**/
subAccountDeposit: BalanceOf & AugmentedConst<ApiType>;
/**
@@ -503,8 +505,8 @@ declare module '@polkadot/api/types/consts' {
};
multisig: {
/**
* The base amount of currency needed to reserve for creating a multisig execution or to store
* a dispatch call for later.
* The base amount of currency needed to reserve for creating a multisig execution or to
* store a dispatch call for later.
*
* This is held for an additional storage item whose value size is
* `4 + sizeof((BlockNumber, Balance, AccountId))` bytes and whose key size is
@@ -530,7 +532,8 @@ declare module '@polkadot/api/types/consts' {
/**
* The base amount of currency needed to reserve for creating an announcement.
*
* This is held when a new storage item holding a `Balance` is created (typically 16 bytes).
* This is held when a new storage item holding a `Balance` is created (typically 16
* bytes).
**/
announcementDepositBase: BalanceOf & AugmentedConst<ApiType>;
/**
@@ -558,9 +561,9 @@ declare module '@polkadot/api/types/consts' {
/**
* The amount of currency needed per proxy added.
*
* This is held for adding 32 bytes plus an instance of `ProxyType` more into a pre-existing
* storage value. Thus, when configuring `ProxyDepositFactor` one should take into account
* `32 + proxy_type.encode().len()` bytes of data.
* This is held for adding 32 bytes plus an instance of `ProxyType` more into a
* pre-existing storage value. Thus, when configuring `ProxyDepositFactor` one should take
* into account `32 + proxy_type.encode().len()` bytes of data.
**/
proxyDepositFactor: BalanceOf & AugmentedConst<ApiType>;
/**
@@ -577,9 +580,11 @@ declare module '@polkadot/api/types/consts' {
**/
configDepositBase: BalanceOf & AugmentedConst<ApiType>;
/**
* The amount of currency needed per additional user when creating a recovery configuration.
* The amount of currency needed per additional user when creating a recovery
* configuration.
*
* This is held for adding `sizeof(AccountId)` bytes more into a pre-existing storage value.
* This is held for adding `sizeof(AccountId)` bytes more into a pre-existing storage
* value.
**/
friendDepositFactor: BalanceOf & AugmentedConst<ApiType>;
/**
@@ -603,8 +608,8 @@ declare module '@polkadot/api/types/consts' {
};
scheduler: {
/**
* The maximum weight that may be scheduled per block for any dispatchables of less priority
* than `schedule::HARD_DEADLINE`.
* The maximum weight that may be scheduled per block for any dispatchables of less
* priority than `schedule::HARD_DEADLINE`.
**/
maximumWeight: Weight & AugmentedConst<ApiType>;
/**
@@ -666,8 +671,8 @@ declare module '@polkadot/api/types/consts' {
/**
* The maximum number of nominators rewarded for each validator.
*
* For each validator only the `$MaxNominatorRewardedPerValidator` biggest stakers can claim
* their reward. This used to limit the i/o cost for the nominator payout.
* For each validator only the `$MaxNominatorRewardedPerValidator` biggest stakers can
* claim their reward. This used to limit the i/o cost for the nominator payout.
**/
maxNominatorRewardedPerValidator: u32 & AugmentedConst<ApiType>;
/**
@@ -722,10 +727,10 @@ declare module '@polkadot/api/types/consts' {
};
timestamp: {
/**
* The minimum period between blocks. Beware that this is different to the *expected* period
* that the block production apparatus provides. Your chosen consensus system will generally
* work with this to determine a sensible block time. e.g. For Aura, it will be double this
* period on default settings.
* The minimum period between blocks. Beware that this is different to the *expected*
* period that the block production apparatus provides. Your chosen consensus system will
* generally work with this to determine a sensible block time. e.g. For Aura, it will be
* double this period on default settings.
**/
minimumPeriod: Moment & AugmentedConst<ApiType>;
/**
@@ -843,6 +848,16 @@ declare module '@polkadot/api/types/consts' {
**/
[key: string]: Codec;
};
utility: {
/**
* The limit on the number of batched calls.
**/
batchedCallsLimit: u32 & AugmentedConst<ApiType>;
/**
* Generic const
**/
[key: string]: Codec;
};
vesting: {
/**
* The minimum amount transferred to call `vested_transfer`.
+18 -27
View File
@@ -39,7 +39,8 @@ declare module '@polkadot/api/types/errors' {
**/
NoPermission: AugmentedError<ApiType>;
/**
* No provider reference exists to allow a non-zero balance of a non-self-sufficient asset.
* No provider reference exists to allow a non-zero balance of a non-self-sufficient
* asset.
**/
NoProvider: AugmentedError<ApiType>;
/**
@@ -424,10 +425,6 @@ declare module '@polkadot/api/types/errors' {
* Identity may not veto a proposal twice
**/
AlreadyVetoed: AugmentedError<ApiType>;
/**
* Unknown index
**/
BadIndex: AugmentedError<ApiType>;
/**
* Preimage already noted
**/
@@ -452,10 +449,6 @@ declare module '@polkadot/api/types/errors' {
* Invalid hash
**/
InvalidHash: AugmentedError<ApiType>;
/**
* The provided witness data is wrong.
**/
InvalidWitness: AugmentedError<ApiType>;
/**
* Maximum number of votes reached.
**/
@@ -476,26 +469,14 @@ declare module '@polkadot/api/types/errors' {
* No external proposal
**/
NoProposal: AugmentedError<ApiType>;
/**
* Not delegated
**/
NotDelegated: AugmentedError<ApiType>;
/**
* The account is not currently delegating.
**/
NotDelegating: AugmentedError<ApiType>;
/**
* The lock on the account to be unlocked has not yet expired.
**/
NotExpired: AugmentedError<ApiType>;
/**
* Not imminent
**/
NotImminent: AugmentedError<ApiType>;
/**
* The target account does not have a lock.
**/
NotLocked: AugmentedError<ApiType>;
/**
* Next external proposal not simple majority
**/
@@ -680,8 +661,8 @@ declare module '@polkadot/api/types/errors' {
**/
AmountTooSmall: AugmentedError<ApiType>;
/**
* The queue for the bid's duration is full and the amount bid is too low to get in through
* replacing an existing bid.
* The queue for the bid's duration is full and the amount bid is too low to get in
* through replacing an existing bid.
**/
BidTooLow: AugmentedError<ApiType>;
/**
@@ -1271,8 +1252,8 @@ declare module '@polkadot/api/types/errors' {
**/
NoUnlockChunk: AugmentedError<ApiType>;
/**
* There are too many nominators in the system. Governance needs to adjust the staking settings
* to keep things safe for the runtime.
* There are too many nominators in the system. Governance needs to adjust the staking
* settings to keep things safe for the runtime.
**/
TooManyNominators: AugmentedError<ApiType>;
/**
@@ -1280,8 +1261,8 @@ declare module '@polkadot/api/types/errors' {
**/
TooManyTargets: AugmentedError<ApiType>;
/**
* There are too many validators in the system. Governance needs to adjust the staking settings
* to keep things safe for the runtime.
* There are too many validators in the system. Governance needs to adjust the staking
* settings to keep things safe for the runtime.
**/
TooManyValidators: AugmentedError<ApiType>;
/**
@@ -1541,6 +1522,16 @@ declare module '@polkadot/api/types/errors' {
**/
[key: string]: AugmentedError<ApiType>;
};
utility: {
/**
* Too many calls batched.
**/
TooManyCalls: AugmentedError<ApiType>;
/**
* Generic error
**/
[key: string]: AugmentedError<ApiType>;
};
vesting: {
/**
* Amount being transferred is too low to create a vesting schedule.
+8 -10
View File
@@ -204,8 +204,8 @@ declare module '@polkadot/api/types/events' {
* # Params
*
* - `contract`: The contract that emitted the event.
* - `data`: Data supplied by the contract. Metadata generated during contract
* compilation is needed to decode it.
* - `data`: Data supplied by the contract. Metadata generated during contract compilation
* is needed to decode it.
**/
ContractEmitted: AugmentedEvent<ApiType, [AccountId, Bytes]>;
/**
@@ -362,17 +362,14 @@ declare module '@polkadot/api/types/events' {
**/
Started: AugmentedEvent<ApiType, [ReferendumIndex, VoteThreshold]>;
/**
* A public proposal has been tabled for referendum vote. \[proposal_index, deposit, depositors\]
* A public proposal has been tabled for referendum vote. \[proposal_index, deposit,
* depositors\]
**/
Tabled: AugmentedEvent<ApiType, [PropIndex, Balance, Vec<AccountId>]>;
/**
* An \[account\] has cancelled a previous delegation operation.
**/
Undelegated: AugmentedEvent<ApiType, [AccountId]>;
/**
* An \[account\] has been unlocked successfully.
**/
Unlocked: AugmentedEvent<ApiType, [AccountId]>;
/**
* An external proposal has been vetoed. \[who, proposal_hash, until\]
**/
@@ -653,7 +650,8 @@ declare module '@polkadot/api/types/events' {
Announced: AugmentedEvent<ApiType, [AccountId, AccountId, Hash]>;
/**
* Anonymous account has been created by new proxy with given
* disambiguation index and proxy type. \[anonymous, who, proxy_type, disambiguation_index\]
* disambiguation index and proxy type. \[anonymous, who, proxy_type,
* disambiguation_index\]
**/
AnonymousCreated: AugmentedEvent<ApiType, [AccountId, AccountId, ProxyType, u16]>;
/**
@@ -719,8 +717,8 @@ declare module '@polkadot/api/types/events' {
};
session: {
/**
* New session has happened. Note that the argument is the \[session_index\], not the block
* number as the type might suggest.
* New session has happened. Note that the argument is the \[session_index\], not the
* block number as the type might suggest.
**/
NewSession: AugmentedEvent<ApiType, [SessionIndex]>;
/**
+5 -4
View File
@@ -94,7 +94,8 @@ declare module '@polkadot/api/types/storage' {
**/
currentSlot: AugmentedQuery<ApiType, () => Observable<Slot>, []> & QueryableStorageEntry<ApiType, []>;
/**
* The configuration for the current epoch. Should never be `None` as it is initialized in genesis.
* The configuration for the current epoch. Should never be `None` as it is initialized in
* genesis.
**/
epochConfig: AugmentedQuery<ApiType, () => Observable<Option<BabeEpochConfiguration>>, []> & QueryableStorageEntry<ApiType, []>;
/**
@@ -916,9 +917,9 @@ declare module '@polkadot/api/types/storage' {
**/
canceledSlashPayout: AugmentedQuery<ApiType, () => Observable<BalanceOf>, []> & QueryableStorageEntry<ApiType, []>;
/**
* The threshold for when users can start calling `chill_other` for other validators / nominators.
* The threshold is compared to the actual number of validators / nominators (`CountFor*`) in
* the system compared to the configured max (`Max*Count`).
* The threshold for when users can start calling `chill_other` for other validators /
* nominators. The threshold is compared to the actual number of validators / nominators
* (`CountFor*`) in the system compared to the configured max (`Max*Count`).
**/
chillThreshold: AugmentedQuery<ApiType, () => Observable<Option<Percent>>, []> & QueryableStorageEntry<ApiType, []>;
/**
+77 -70
View File
@@ -211,8 +211,8 @@ declare module '@polkadot/api/types/submittable' {
* - `id`: The identifier of the new asset. This must not be currently in use to identify
* an existing asset.
* - `owner`: The owner of this class of assets. The owner has full superuser permissions
* over this asset, but may later change and configure the permissions using `transfer_ownership`
* and `set_team`.
* over this asset, but may later change and configure the permissions using
* `transfer_ownership` and `set_team`.
* - `min_balance`: The minimum balance of this new asset that any single account must
* have. If an account's balance is reduced below this, then it collapses to zero.
*
@@ -486,8 +486,8 @@ declare module '@polkadot/api/types/submittable' {
* Exactly as `transfer`, except the origin must be root and the source account may be
* specified.
* # <weight>
* - Same as transfer, but additional read and write because the source account is
* not assumed to be in the overlay.
* - Same as transfer, but additional read and write because the source account is not
* assumed to be in the overlay.
* # </weight>
**/
forceTransfer: AugmentedSubmittable<(source: LookupSource | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, dest: LookupSource | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact<Balance> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [LookupSource, LookupSource, Compact<Balance>]>;
@@ -523,9 +523,10 @@ declare module '@polkadot/api/types/submittable' {
* The dispatch origin for this call must be `Signed` by the transactor.
*
* # <weight>
* - Dependent on arguments but not critical, given proper implementations for
* input config types. See related functions below.
* - It contains a limited number of reads and writes internally and no complex computation.
* - Dependent on arguments but not critical, given proper implementations for input config
* types. See related functions below.
* - It contains a limited number of reads and writes internally and no complex
* computation.
*
* Related functions:
*
@@ -533,8 +534,8 @@ declare module '@polkadot/api/types/submittable' {
* - Transferring balances to accounts that did not exist before will cause
* `T::OnNewAccount::on_new_account` to be called.
* - Removing enough funds from an account will trigger `T::DustRemoval::on_unbalanced`.
* - `transfer_keep_alive` works the same way as `transfer`, but has an additional
* check that the transfer will not kill the origin account.
* - `transfer_keep_alive` works the same way as `transfer`, but has an additional check
* that the transfer will not kill the origin account.
* ---------------------------------
* - Base Weight: 73.64 µs, worst case scenario (account created, account removed)
* - DB Weight: 1 Read and 1 Write to destination account
@@ -557,8 +558,7 @@ declare module '@polkadot/api/types/submittable' {
* - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all
* of the funds the account has, causing the sender account to be killed (false), or
* transfer everything except at least the existential deposit, which will guarantee to
* keep the sender account alive (true).
* # <weight>
* keep the sender account alive (true). # <weight>
* - O(1). Just like transfer, but reading the user's transferable balance first.
* #</weight>
**/
@@ -754,7 +754,8 @@ declare module '@polkadot/api/types/submittable' {
*
* Instantiation is executed as follows:
*
* - The supplied `code` is instrumented, deployed, and a `code_hash` is created for that code.
* - The supplied `code` is instrumented, deployed, and a `code_hash` is created for that
* code.
* - If the `code_hash` already exists on the chain the underlying `code` will be shared.
* - The destination address is computed based on the sender, code_hash and the salt.
* - The smart-contract account is created at the computed address.
@@ -980,8 +981,8 @@ declare module '@polkadot/api/types/submittable' {
* - `to`: The account whose voting the `target` account's voting power will follow.
* - `conviction`: The conviction that will be attached to the delegated votes. When the
* account is undelegated, the funds will be locked for the corresponding period.
* - `balance`: The amount of the account's balance to be used in delegating. This must
* not be more than the account's current balance.
* - `balance`: The amount of the account's balance to be used in delegating. This must not
* be more than the account's current balance.
*
* Emits `Delegated`.
*
@@ -1118,8 +1119,8 @@ declare module '@polkadot/api/types/submittable' {
* The dispatch origin of this call must be _Signed_.
*
* - `proposal_hash`: The preimage hash of a proposal.
* - `proposal_length_upper_bound`: an upper bound on length of the proposal.
* Extrinsic is weighted according to this value with no refund.
* - `proposal_length_upper_bound`: an upper bound on length of the proposal. Extrinsic is
* weighted according to this value with no refund.
*
* This will only work after `VotingPeriod` blocks from the time that the preimage was
* noted, if it's the same account doing it. If it's a different account, then it'll only
@@ -1280,7 +1281,7 @@ declare module '@polkadot/api/types/submittable' {
* Queue size must be provided as witness data.
* # </weight>
**/
submit: AugmentedSubmittable<(solution: RawSolution | { compact?: any; score?: any; round?: any } | string | Uint8Array, numSignedSubmissions: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [RawSolution, u32]>;
submit: AugmentedSubmittable<(rawSolution: RawSolution | { compact?: any; score?: any; round?: any } | string | Uint8Array, numSignedSubmissions: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [RawSolution, u32]>;
/**
* Submit a solution for the unsigned phase.
*
@@ -1297,7 +1298,7 @@ declare module '@polkadot/api/types/submittable' {
*
* No deposit or reward is associated with this submission.
**/
submitUnsigned: AugmentedSubmittable<(solution: RawSolution | { compact?: any; score?: any; round?: any } | string | Uint8Array, witness: SolutionOrSnapshotSize | { voters?: any; targets?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [RawSolution, SolutionOrSnapshotSize]>;
submitUnsigned: AugmentedSubmittable<(rawSolution: RawSolution | { compact?: any; score?: any; round?: any } | string | Uint8Array, witness: SolutionOrSnapshotSize | { voters?: any; targets?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [RawSolution, SolutionOrSnapshotSize]>;
/**
* Generic tx
**/
@@ -1352,9 +1353,9 @@ declare module '@polkadot/api/types/submittable' {
* origin is removed as a runner-up.
* - `origin` is a current member. In this case, the deposit is unreserved and origin is
* removed as a member, consequently not being a candidate for the next round anymore.
* Similar to [`remove_member`](Self::remove_member), if replacement runners exists,
* they are immediately used. If the prime is renouncing, then no prime will exist until
* the next round.
* Similar to [`remove_member`](Self::remove_member), if replacement runners exists, they
* are immediately used. If the prime is renouncing, then no prime will exist until the
* next round.
*
* The dispatch origin of this call must be signed, and have one of the above roles.
*
@@ -1768,8 +1769,8 @@ declare module '@polkadot/api/types/submittable' {
imOnline: {
/**
* # <weight>
* - Complexity: `O(K + E)` where K is length of `Keys` (heartbeat.validators_len)
* and E is length of `heartbeat.network_state.external_address`
* - Complexity: `O(K + E)` where K is length of `Keys` (heartbeat.validators_len) and E is
* length of `heartbeat.network_state.external_address`
* - `O(K)`: decoding of length `K`
* - `O(E)`: decoding/encoding of length `E`
* - DbReads: pallet_session `Validators`, pallet_session `CurrentIndex`, `Keys`,
@@ -1851,7 +1852,8 @@ declare module '@polkadot/api/types/submittable' {
**/
free: AugmentedSubmittable<(index: AccountIndex | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [AccountIndex]>;
/**
* Freeze an index so it will always point to the sender account. This consumes the deposit.
* Freeze an index so it will always point to the sender account. This consumes the
* deposit.
*
* The dispatch origin for this call must be _Signed_ and the signing account must have a
* non-frozen account `index`.
@@ -1977,9 +1979,8 @@ declare module '@polkadot/api/types/submittable' {
* - Up to one binary search and insert (`O(logS + S)`).
* - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.
* - One event.
* - Storage: inserts one item, value size bounded by `MaxSignatories`, with a
* deposit taken for its lifetime of
* `DepositBase + threshold * DepositFactor`.
* - Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit
* taken for its lifetime of `DepositBase + threshold * DepositFactor`.
* ----------------------------------
* - DB Weight:
* - Read: Multisig Storage, [Caller Account]
@@ -2025,9 +2026,8 @@ declare module '@polkadot/api/types/submittable' {
* - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.
* - One event.
* - The weight of the `call`.
* - Storage: inserts one item, value size bounded by `MaxSignatories`, with a
* deposit taken for its lifetime of
* `DepositBase + threshold * DepositFactor`.
* - Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit
* taken for its lifetime of `DepositBase + threshold * DepositFactor`.
* -------------------------------
* - DB Weight:
* - Reads: Multisig Storage, [Caller Account], Calls (if `store_call`)
@@ -2326,8 +2326,8 @@ declare module '@polkadot/api/types/submittable' {
* `threshold` or more vouches, waited `delay_period` blocks since initiation.
*
* Parameters:
* - `account`: The lost account that you want to claim has been successfully
* recovered by you.
* - `account`: The lost account that you want to claim has been successfully recovered by
* you.
*
* # <weight>
* Key: F (len of friends in config), V (len of vouching friends)
@@ -2374,13 +2374,13 @@ declare module '@polkadot/api/types/submittable' {
* The dispatch origin for this call must be _Signed_.
*
* Parameters:
* - `friends`: A list of friends you trust to vouch for recovery attempts.
* Should be ordered and contain no duplicate values.
* - `threshold`: The number of friends that must vouch for a recovery attempt
* before the account can be recovered. Should be less than or equal to
* the length of the list of friends.
* - `delay_period`: The number of blocks after a recovery attempt is initialized
* that needs to pass before the account can be recovered.
* - `friends`: A list of friends you trust to vouch for recovery attempts. Should be
* ordered and contain no duplicate values.
* - `threshold`: The number of friends that must vouch for a recovery attempt before the
* account can be recovered. Should be less than or equal to the length of the list of
* friends.
* - `delay_period`: The number of blocks after a recovery attempt is initialized that
* needs to pass before the account can be recovered.
*
* # <weight>
* - Key: F (len of friends)
@@ -2404,8 +2404,8 @@ declare module '@polkadot/api/types/submittable' {
* The dispatch origin for this call must be _Signed_.
*
* Parameters:
* - `account`: The lost account that you want to recover. This account
* needs to be recoverable (i.e. have a recovery configuration).
* - `account`: The lost account that you want to recover. This account needs to be
* recoverable (i.e. have a recovery configuration).
*
* # <weight>
* - One storage read to check that account is recoverable. O(F)
@@ -2468,8 +2468,7 @@ declare module '@polkadot/api/types/submittable' {
*
* Parameters:
* - `lost`: The lost account that you want to recover.
* - `rescuer`: The account trying to rescue the lost account that you
* want to vouch for.
* - `rescuer`: The account trying to rescue the lost account that you want to vouch for.
*
* The combination of these two parameters must point to an active recovery
* process.
@@ -2955,8 +2954,8 @@ declare module '@polkadot/api/types/submittable' {
* The dispatch origin for this call must be _Signed_ by the stash, not the controller.
*
* Use this if there are additional funds in your stash account that you wish to bond.
* Unlike [`bond`](Self::bond) or [`unbond`](Self::unbond) this function does not impose any limitation
* on the amount that can be added.
* Unlike [`bond`](Self::bond) or [`unbond`](Self::unbond) this function does not impose
* any limitation on the amount that can be added.
*
* Emits `Bonded`.
*
@@ -3082,8 +3081,8 @@ declare module '@polkadot/api/types/submittable' {
* # <weight>
* O(S) where S is the number of slashing spans to be removed
* Reads: Bonded, Slashing Spans, Account, Locks
* Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, Account, Locks
* Writes Each: SpanSlash * S
* Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators,
* Account, Locks Writes Each: SpanSlash * S
* # </weight>
**/
forceUnstake: AugmentedSubmittable<(stash: AccountId | string | Uint8Array, numSlashingSpans: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [AccountId, u32]>;
@@ -3162,7 +3161,8 @@ declare module '@polkadot/api/types/submittable' {
* Complexity: O(S) where S is the number of slashing spans on the account.
* DB Weight:
* - Reads: Stash Account, Bonded, Slashing Spans, Locks
* - Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, Stash Account, Locks
* - Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators,
* Stash Account, Locks
* - Writes Each: SpanSlash * S
* # </weight>
**/
@@ -3214,10 +3214,10 @@ declare module '@polkadot/api/types/submittable' {
*
* Parameters:
* - `new_history_depth`: The new history depth you would like to set.
* - `era_items_deleted`: The number of items that will be deleted by this dispatch.
* This should report all the storage items that will be deleted by clearing old
* era history. Needed to report an accurate weight for the dispatch. Trusted by
* `Root` to report an accurate number.
* - `era_items_deleted`: The number of items that will be deleted by this dispatch. This
* should report all the storage items that will be deleted by clearing old era history.
* Needed to report an accurate weight for the dispatch. Trusted by `Root` to report an
* accurate number.
*
* Origin must be root.
*
@@ -3228,7 +3228,8 @@ declare module '@polkadot/api/types/submittable' {
* - Reads: Current Era, History Depth
* - Writes: History Depth
* - Clear Prefix Each: Era Stakers, EraStakersClipped, ErasValidatorPrefs
* - Writes Each: ErasValidatorReward, ErasRewardPoints, ErasTotalStake, ErasStartSessionIndex
* - Writes Each: ErasValidatorReward, ErasRewardPoints, ErasTotalStake,
* ErasStartSessionIndex
* # </weight>
**/
setHistoryDepth: AugmentedSubmittable<(newHistoryDepth: Compact<EraIndex> | AnyNumber | Uint8Array, eraItemsDeleted: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<EraIndex>, Compact<u32>]>;
@@ -3267,10 +3268,10 @@ declare module '@polkadot/api/types/submittable' {
*
* * `min_nominator_bond`: The minimum active bond needed to be a nominator.
* * `min_validator_bond`: The minimum active bond needed to be a validator.
* * `max_nominator_count`: The max number of users who can be a nominator at once.
* When set to `None`, no limit is enforced.
* * `max_validator_count`: The max number of users who can be a validator at once.
* When set to `None`, no limit is enforced.
* * `max_nominator_count`: The max number of users who can be a nominator at once. When
* set to `None`, no limit is enforced.
* * `max_validator_count`: The max number of users who can be a validator at once. When
* set to `None`, no limit is enforced.
*
* Origin must be Root to call this function.
*
@@ -3344,7 +3345,8 @@ declare module '@polkadot/api/types/submittable' {
};
sudo: {
/**
* Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo key.
* Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo
* key.
*
* The dispatch origin for this call must be _Signed_.
*
@@ -3466,10 +3468,11 @@ declare module '@polkadot/api/types/submittable' {
* # <weight>
* - `O(C + S)` where `C` length of `code` and `S` complexity of `can_set_code`
* - 1 storage write (codec `O(C)`).
* - 1 call to `can_set_code`: `O(S)` (calls `sp_io::misc::runtime_version` which is expensive).
* - 1 call to `can_set_code`: `O(S)` (calls `sp_io::misc::runtime_version` which is
* expensive).
* - 1 event.
* The weight of this function is dependent on the runtime, but generally this is very expensive.
* We will treat this as a full block.
* The weight of this function is dependent on the runtime, but generally this is very
* expensive. We will treat this as a full block.
* # </weight>
**/
setCode: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;
@@ -3480,8 +3483,8 @@ declare module '@polkadot/api/types/submittable' {
* - `O(C)` where `C` length of `code`
* - 1 storage write (codec `O(C)`).
* - 1 event.
* The weight of this function is dependent on the runtime. We will treat this as a full block.
* # </weight>
* The weight of this function is dependent on the runtime. We will treat this as a full
* block. # </weight>
**/
setCodeWithoutChecks: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;
/**
@@ -3720,7 +3723,8 @@ declare module '@polkadot/api/types/submittable' {
*
* # <weight>
* - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)
* - 1 storage read and 1 storage mutation (codec `O(1)`). (because of `DidUpdate::take` in `on_finalize`)
* - 1 storage read and 1 storage mutation (codec `O(1)`). (because of `DidUpdate::take` in
* `on_finalize`)
* - 1 event handler `on_timestamp_set`. Must be `O(1)`.
* # </weight>
**/
@@ -3873,7 +3877,8 @@ declare module '@polkadot/api/types/submittable' {
* Check storage proof for block number `block_number() - StoragePeriod`.
* If such block does not exist the proof is expected to be `None`.
* # <weight>
* - Linear w.r.t the number of indexed transactions in the proved block for random probing.
* - Linear w.r.t the number of indexed transactions in the proved block for random
* probing.
* There's a DB read for each transaction.
* Here we assume a maximum of 100 probed transactions.
* # </weight>
@@ -3890,9 +3895,9 @@ declare module '@polkadot/api/types/submittable' {
**/
renew: AugmentedSubmittable<(block: BlockNumber | AnyNumber | Uint8Array, index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [BlockNumber, u32]>;
/**
* Index and store data on chain. Minimum data size is 1 bytes, maximum is `MaxTransactionSize`.
* Data will be removed after `STORAGE_PERIOD` blocks, unless `renew` is called.
* # <weight>
* Index and store data on chain. Minimum data size is 1 bytes, maximum is
* `MaxTransactionSize`. Data will be removed after `STORAGE_PERIOD` blocks, unless `renew`
* is called. # <weight>
* - n*log(n) of data size, as all data is pushed to an in-memory trie.
* Additionally contains a DB write.
* # </weight>
@@ -4339,7 +4344,8 @@ declare module '@polkadot/api/types/submittable' {
*
* May be called from any origin.
*
* - `calls`: The calls to be dispatched from the same origin.
* - `calls`: The calls to be dispatched from the same origin. The number of call must not
* exceed the constant: `batched_calls_limit` (available in constant metadata).
*
* If origin is root then call are dispatch without checking origin filter. (This includes
* bypassing `frame_system::Config::BaseCallFilter`).
@@ -4361,7 +4367,8 @@ declare module '@polkadot/api/types/submittable' {
*
* May be called from any origin.
*
* - `calls`: The calls to be dispatched from the same origin.
* - `calls`: The calls to be dispatched from the same origin. The number of call must not
* exceed the constant: `batched_calls_limit` (available in constant metadata).
*
* If origin is root then call are dispatch without checking origin filter. (This includes
* bypassing `frame_system::Config::BaseCallFilter`).
+11 -4
View File
@@ -332,6 +332,15 @@ export abstract class Init<ApiType extends ApiTypes> extends Decorate<ApiType> {
return true;
}
private _subscribeHealth (): void {
// Only enable the health keepalive on WS, not needed on HTTP
this.#healthTimer = this.hasSubscriptions
? setInterval((): void => {
firstValueFrom(this._rpcCore.system.health()).catch(() => undefined);
}, KEEPALIVE_INTERVAL)
: null;
}
private _unsubscribeHealth (): void {
if (this.#healthTimer) {
clearInterval(this.#healthTimer);
@@ -363,15 +372,13 @@ export abstract class Init<ApiType extends ApiTypes> extends Decorate<ApiType> {
: cryptoWaitReady()
]);
this._subscribeHealth();
if (hasMeta && !this._isReady && cryptoReady) {
this._isReady = true;
this.emit('ready', this);
}
this.#healthTimer = setInterval((): void => {
firstValueFrom(this._rpcCore.system.health()).catch(() => undefined);
}, KEEPALIVE_INTERVAL);
} catch (_error) {
const error = new Error(`FATAL: Unable to initialize the API: ${(_error as Error).message}`);
+1 -1
View File
@@ -190,7 +190,7 @@ function types (api: ApiPromise): void {
}
async function tx (api: ApiPromise, pairs: TestKeyringMap): Promise<void> {
// transfer, also allows for BigInt inputs here
// transfer, also allows for bigint inputs here
const transfer = api.tx.balances.transfer(pairs.bob.address, 123456789n);
console.log('transfer casted', transfer as IMethod<AnyTuple>, transfer as IExtrinsic<AnyTuple>);
+1 -1
View File
@@ -3,4 +3,4 @@
// Auto-generated by @polkadot/dev, do not edit
export const packageInfo = { name: '@polkadot/api', version: '5.4.1' };
export const packageInfo = { name: '@polkadot/api', version: '5.6.1' };
+7 -7
View File
@@ -1,6 +1,6 @@
{
"name": "@polkadot/rpc-core",
"version": "5.4.1",
"version": "5.6.1",
"type": "module",
"description": "A JavaScript wrapper for the Polkadot JsonRPC interface",
"main": "index.js",
@@ -19,13 +19,13 @@
"bugs": "https://github.com/polkadot-js/api/issues",
"homepage": "https://github.com/polkadot-js/api/tree/master/packages/rpc-core#readme",
"dependencies": {
"@babel/runtime": "^7.14.8",
"@polkadot/rpc-provider": "5.4.1",
"@polkadot/types": "5.4.1",
"@polkadot/util": "^7.1.1",
"rxjs": "^7.2.0"
"@babel/runtime": "^7.15.3",
"@polkadot/rpc-provider": "5.6.1",
"@polkadot/types": "5.6.1",
"@polkadot/util": "^7.2.1",
"rxjs": "^7.3.0"
},
"devDependencies": {
"@polkadot/keyring": "^7.1.1"
"@polkadot/keyring": "^7.2.1"
}
}
+1 -1
View File
@@ -3,4 +3,4 @@
// Auto-generated by @polkadot/dev, do not edit
export const packageInfo = { name: '@polkadot/rpc-core', version: '5.4.1' };
export const packageInfo = { name: '@polkadot/rpc-core', version: '5.6.1' };
+10 -10
View File
@@ -1,6 +1,6 @@
{
"name": "@polkadot/rpc-provider",
"version": "5.4.1",
"version": "5.6.1",
"type": "module",
"description": "Transport providers for the API",
"main": "index.js",
@@ -19,18 +19,18 @@
"bugs": "https://github.com/polkadot-js/api/issues",
"homepage": "https://github.com/polkadot-js/api/tree/master/packages/rpc-provider#readme",
"dependencies": {
"@babel/runtime": "^7.14.8",
"@polkadot/types": "5.4.1",
"@polkadot/util": "^7.1.1",
"@polkadot/util-crypto": "^7.1.1",
"@polkadot/x-fetch": "^7.1.1",
"@polkadot/x-global": "^7.1.1",
"@polkadot/x-ws": "^7.1.1",
"@babel/runtime": "^7.15.3",
"@polkadot/types": "5.6.1",
"@polkadot/util": "^7.2.1",
"@polkadot/util-crypto": "^7.2.1",
"@polkadot/x-fetch": "^7.2.1",
"@polkadot/x-global": "^7.2.1",
"@polkadot/x-ws": "^7.2.1",
"eventemitter3": "^4.0.7"
},
"devDependencies": {
"@polkadot/keyring": "^7.1.1",
"@polkadot/types": "5.4.1",
"@polkadot/keyring": "^7.2.1",
"@polkadot/types": "5.6.1",
"mock-socket": "^9.0.3",
"nock": "^13.1.1"
}
+1 -1
View File
@@ -3,4 +3,4 @@
// Auto-generated by @polkadot/dev, do not edit
export const packageInfo = { name: '@polkadot/rpc-provider', version: '5.4.1' };
export const packageInfo = { name: '@polkadot/rpc-provider', version: '5.6.1' };
+10 -10
View File
@@ -1,6 +1,6 @@
{
"name": "@polkadot/typegen",
"version": "5.4.1",
"version": "5.6.1",
"type": "module",
"description": "Type generation scripts",
"main": "index.js",
@@ -26,17 +26,17 @@
"bugs": "https://github.com/polkadot-js/api/issues",
"homepage": "https://github.com/polkadot-js/api/tree/master/packages/typegen#readme",
"dependencies": {
"@babel/core": "^7.14.8",
"@babel/register": "^7.14.5",
"@babel/runtime": "^7.14.8",
"@polkadot/api": "5.4.1",
"@polkadot/rpc-provider": "5.4.1",
"@polkadot/types": "5.4.1",
"@polkadot/types-support": "5.4.1",
"@polkadot/util": "^7.1.1",
"@babel/core": "^7.15.0",
"@babel/register": "^7.15.3",
"@babel/runtime": "^7.15.3",
"@polkadot/api": "5.6.1",
"@polkadot/rpc-provider": "5.6.1",
"@polkadot/types": "5.6.1",
"@polkadot/types-support": "5.6.1",
"@polkadot/util": "^7.2.1",
"handlebars": "^4.7.7",
"websocket": "^1.0.34",
"yargs": "^17.0.1"
"yargs": "^17.1.1"
},
"devDependencies": {
"@types/websocket": "^1.0.4",
+1
View File
@@ -189,6 +189,7 @@ const encoders: Record<TypeDefInfo, (registry: Registry, definitions: Record<str
[TypeDefInfo.Null]: errorUnhandled,
[TypeDefInfo.Option]: tsOption,
[TypeDefInfo.Plain]: tsPlain,
[TypeDefInfo.Range]: errorUnhandled,
[TypeDefInfo.Result]: tsResult,
[TypeDefInfo.Set]: tsSet,
[TypeDefInfo.Si]: tsSi,
+1 -1
View File
@@ -3,4 +3,4 @@
// Auto-generated by @polkadot/dev, do not edit
export const packageInfo = { name: '@polkadot/typegen', version: '5.4.1' };
export const packageInfo = { name: '@polkadot/typegen', version: '5.6.1' };
+3
View File
@@ -129,6 +129,9 @@ const formatters: Record<TypeDefInfo, (registry: Registry, typeDef: TypeDef, def
return typeDef.type;
},
[TypeDefInfo.Range]: (registry: Registry, typeDef: TypeDef, definitions: Record<string, ModuleTypes>, imports: TypeImports, withShortcut: boolean) => {
throw new Error(`TypeDefInfo.Range: Not implemented on ${stringify(typeDef)}`);
},
[TypeDefInfo.Set]: (registry: Registry, typeDef: TypeDef, definitions: Record<string, ModuleTypes>, imports: TypeImports, withShortcut: boolean) => {
throw new Error(`TypeDefInfo.Set: Not implemented on ${stringify(typeDef)}`);
},
+5 -5
View File
@@ -1,6 +1,6 @@
{
"name": "@polkadot/types-known",
"version": "5.4.1",
"version": "5.6.1",
"type": "module",
"description": "Known type definitions",
"main": "index.js",
@@ -19,9 +19,9 @@
"bugs": "https://github.com/polkadot-js/api/issues",
"homepage": "https://github.com/polkadot-js/api/tree/master/packages/types-known#readme",
"dependencies": {
"@babel/runtime": "^7.14.8",
"@polkadot/networks": "^7.1.1",
"@polkadot/types": "5.4.1",
"@polkadot/util": "^7.1.1"
"@babel/runtime": "^7.15.3",
"@polkadot/networks": "^7.2.1",
"@polkadot/types": "5.6.1",
"@polkadot/util": "^7.2.1"
}
}
+1 -1
View File
@@ -57,7 +57,7 @@ export function getSpecExtensions ({ knownTypes }: Registry, chainName: Text | s
/**
* @description Based on the chain and runtimeVersion, get the applicable types (ready for registration)
*/
export function getSpecTypes ({ knownTypes }: Registry, chainName: Text | string, specName: Text | string, specVersion: BigInt | BN | number): RegistryTypes {
export function getSpecTypes ({ knownTypes }: Registry, chainName: Text | string, specName: Text | string, specVersion: bigint | BN | number): RegistryTypes {
const _chainName = chainName.toString();
const _specName = specName.toString();
const _specVersion = bnToBn(specVersion).toNumber();
+6
View File
@@ -81,6 +81,12 @@ const typesModules: Record<string, OverrideModuleType> = {
},
treasury: {
Proposal: 'TreasuryProposal'
},
xcm: {
AssetId: 'XcmAssetId'
},
xcmPallet: {
AssetId: 'XcmAssetId'
}
};
+1 -1
View File
@@ -3,4 +3,4 @@
// Auto-generated by @polkadot/dev, do not edit
export const packageInfo = { name: '@polkadot/types-known', version: '5.4.1' };
export const packageInfo = { name: '@polkadot/types-known', version: '5.6.1' };
+4 -1
View File
@@ -192,7 +192,10 @@ const versioned: OverrideVersionedType[] = [
{
minmax: [9010, undefined],
types: {
...sharedTypes
...sharedTypes,
AssetInstance: 'AssetInstanceV0',
MultiAsset: 'MultiAssetV0',
XcmOrder: 'XcmOrderV0'
}
}
];
+4 -1
View File
@@ -91,7 +91,10 @@ const versioned: OverrideVersionedType[] = [
{
minmax: [50, undefined],
types: {
...sharedTypes
...sharedTypes,
AssetInstance: 'AssetInstanceV0',
MultiAsset: 'MultiAssetV0',
XcmOrder: 'XcmOrderV0'
}
}
];
@@ -8,7 +8,8 @@ const upgrades: ChainUpgradesRaw = [
[244358, 8], [303079, 9], [314201, 10], [342400, 11], [443963, 12],
[528470, 13], [687751, 14], [746085, 15], [787923, 16], [799302, 17],
[1205128, 18], [1603423, 23], [1733218, 24], [2005673, 25], [2436698, 26],
[3613564, 27], [3899547, 28], [4345767, 29], [4876134, 30], [5661442, 9050]
[3613564, 27], [3899547, 28], [4345767, 29], [4876134, 30], [5661442, 9050],
[6321619, 9080]
];
export default upgrades;
+1 -1
View File
@@ -11,7 +11,7 @@ const upgrades: ChainUpgradesRaw = [
[2549864, 45], [3925782, 46], [3925843, 47], [4207800, 48], [4627944, 49],
[5124076, 50], [5478664, 900], [5482450, 9000], [5584305, 9010], [5784566, 9030],
[5879822, 9031], [5896856, 9032], [5897316, 9033], [6117927, 9050], [6210274, 9070],
[6379314, 9080]
[6379314, 9080], [6979141, 9090]
];
export default upgrades;
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@polkadot/types-support",
"version": "5.4.1",
"version": "5.6.1",
"type": "module",
"description": "Supporting files for types, mostly for testing",
"main": "index.js",
@@ -19,7 +19,7 @@
"bugs": "https://github.com/polkadot-js/api/issues",
"homepage": "https://github.com/polkadot-js/api/tree/master/packages/types-support#readme",
"dependencies": {
"@babel/runtime": "^7.14.8",
"@polkadot/util": "^7.1.1"
"@babel/runtime": "^7.15.3",
"@polkadot/util": "^7.2.1"
}
}
File diff suppressed because one or more lines are too long
@@ -278,10 +278,11 @@
" # <weight>",
" - `O(C + S)` where `C` length of `code` and `S` complexity of `can_set_code`",
" - 1 storage write (codec `O(C)`).",
" - 1 call to `can_set_code`: `O(S)` (calls `sp_io::misc::runtime_version` which is expensive).",
" - 1 call to `can_set_code`: `O(S)` (calls `sp_io::misc::runtime_version` which is",
" expensive).",
" - 1 event.",
" The weight of this function is dependent on the runtime, but generally this is very expensive.",
" We will treat this as a full block.",
" The weight of this function is dependent on the runtime, but generally this is very",
" expensive. We will treat this as a full block.",
" # </weight>"
]
},
@@ -300,8 +301,8 @@
" - `O(C)` where `C` length of `code`",
" - 1 storage write (codec `O(C)`).",
" - 1 event.",
" The weight of this function is dependent on the runtime. We will treat this as a full block.",
" # </weight>"
" The weight of this function is dependent on the runtime. We will treat this as a full",
" block. # </weight>"
]
},
{
@@ -757,7 +758,8 @@
},
"fallback": "0x00",
"docs": [
" The configuration for the current epoch. Should never be `None` as it is initialized in genesis."
" The configuration for the current epoch. Should never be `None` as it is initialized in",
" genesis."
]
},
{
@@ -931,7 +933,8 @@
"",
" # <weight>",
" - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)",
" - 1 storage read and 1 storage mutation (codec `O(1)`). (because of `DidUpdate::take` in `on_finalize`)",
" - 1 storage read and 1 storage mutation (codec `O(1)`). (because of `DidUpdate::take` in",
" `on_finalize`)",
" - 1 event handler `on_timestamp_set`. Must be `O(1)`.",
" # </weight>"
]
@@ -944,10 +947,10 @@
"type": "Moment",
"value": "0xb80b000000000000",
"docs": [
" The minimum period between blocks. Beware that this is different to the *expected* period",
" that the block production apparatus provides. Your chosen consensus system will generally",
" work with this to determine a sensible block time. e.g. For Aura, it will be double this",
" period on default settings."
" The minimum period between blocks. Beware that this is different to the *expected*",
" period that the block production apparatus provides. Your chosen consensus system will",
" generally work with this to determine a sensible block time. e.g. For Aura, it will be",
" double this period on default settings."
]
}
],
@@ -1120,7 +1123,8 @@
}
],
"docs": [
" Freeze an index so it will always point to the sender account. This consumes the deposit.",
" Freeze an index so it will always point to the sender account. This consumes the",
" deposit.",
"",
" The dispatch origin for this call must be _Signed_ and the signing account must have a",
" non-frozen account `index`.",
@@ -1321,18 +1325,19 @@
" The dispatch origin for this call must be `Signed` by the transactor.",
"",
" # <weight>",
" - Dependent on arguments but not critical, given proper implementations for",
" input config types. See related functions below.",
" - It contains a limited number of reads and writes internally and no complex computation.",
" - Dependent on arguments but not critical, given proper implementations for input config",
" types. See related functions below.",
" - It contains a limited number of reads and writes internally and no complex",
" computation.",
"",
" Related functions:",
"",
" - `ensure_can_withdraw` is always called internally but has a bounded complexity.",
" - Transferring balances to accounts that did not exist before will cause",
" `T::OnNewAccount::on_new_account` to be called.",
" `T::OnNewAccount::on_new_account` to be called.",
" - Removing enough funds from an account will trigger `T::DustRemoval::on_unbalanced`.",
" - `transfer_keep_alive` works the same way as `transfer`, but has an additional",
" check that the transfer will not kill the origin account.",
" - `transfer_keep_alive` works the same way as `transfer`, but has an additional check",
" that the transfer will not kill the origin account.",
" ---------------------------------",
" - Base Weight: 73.64 µs, worst case scenario (account created, account removed)",
" - DB Weight: 1 Read and 1 Write to destination account",
@@ -1397,8 +1402,8 @@
" Exactly as `transfer`, except the origin must be root and the source account may be",
" specified.",
" # <weight>",
" - Same as transfer, but additional read and write because the source account is",
" not assumed to be in the overlay.",
" - Same as transfer, but additional read and write because the source account is not",
" assumed to be in the overlay.",
" # </weight>"
]
},
@@ -1455,8 +1460,7 @@
" - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all",
" of the funds the account has, causing the sender account to be killed (false), or",
" transfer everything except at least the existential deposit, which will guarantee to",
" keep the sender account alive (true).",
" # <weight>",
" keep the sender account alive (true). # <weight>",
" - O(1). Just like transfer, but reading the user's transferable balance first.",
" #</weight>"
]
@@ -2351,9 +2355,9 @@
},
"fallback": "0x00",
"docs": [
" The threshold for when users can start calling `chill_other` for other validators / nominators.",
" The threshold is compared to the actual number of validators / nominators (`CountFor*`) in",
" the system compared to the configured max (`Max*Count`)."
" The threshold for when users can start calling `chill_other` for other validators /",
" nominators. The threshold is compared to the actual number of validators / nominators",
" (`CountFor*`) in the system compared to the configured max (`Max*Count`)."
]
}
]
@@ -2410,8 +2414,8 @@
" The dispatch origin for this call must be _Signed_ by the stash, not the controller.",
"",
" Use this if there are additional funds in your stash account that you wish to bond.",
" Unlike [`bond`](Self::bond) or [`unbond`](Self::unbond) this function does not impose any limitation",
" on the amount that can be added.",
" Unlike [`bond`](Self::bond) or [`unbond`](Self::unbond) this function does not impose",
" any limitation on the amount that can be added.",
"",
" Emits `Bonded`.",
"",
@@ -2723,8 +2727,8 @@
" # <weight>",
" O(S) where S is the number of slashing spans to be removed",
" Reads: Bonded, Slashing Spans, Account, Locks",
" Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, Account, Locks",
" Writes Each: SpanSlash * S",
" Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators,",
" Account, Locks Writes Each: SpanSlash * S",
" # </weight>"
]
},
@@ -2850,10 +2854,10 @@
"",
" Parameters:",
" - `new_history_depth`: The new history depth you would like to set.",
" - `era_items_deleted`: The number of items that will be deleted by this dispatch.",
" This should report all the storage items that will be deleted by clearing old",
" era history. Needed to report an accurate weight for the dispatch. Trusted by",
" `Root` to report an accurate number.",
" - `era_items_deleted`: The number of items that will be deleted by this dispatch. This",
" should report all the storage items that will be deleted by clearing old era history.",
" Needed to report an accurate weight for the dispatch. Trusted by `Root` to report an",
" accurate number.",
"",
" Origin must be root.",
"",
@@ -2864,7 +2868,8 @@
" - Reads: Current Era, History Depth",
" - Writes: History Depth",
" - Clear Prefix Each: Era Stakers, EraStakersClipped, ErasValidatorPrefs",
" - Writes Each: ErasValidatorReward, ErasRewardPoints, ErasTotalStake, ErasStartSessionIndex",
" - Writes Each: ErasValidatorReward, ErasRewardPoints, ErasTotalStake,",
" ErasStartSessionIndex",
" # </weight>"
]
},
@@ -2893,7 +2898,8 @@
" Complexity: O(S) where S is the number of slashing spans on the account.",
" DB Weight:",
" - Reads: Stash Account, Bonded, Slashing Spans, Locks",
" - Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, Stash Account, Locks",
" - Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators,",
" Stash Account, Locks",
" - Writes Each: SpanSlash * S",
" # </weight>"
]
@@ -2949,10 +2955,10 @@
"",
" * `min_nominator_bond`: The minimum active bond needed to be a nominator.",
" * `min_validator_bond`: The minimum active bond needed to be a validator.",
" * `max_nominator_count`: The max number of users who can be a nominator at once.",
" When set to `None`, no limit is enforced.",
" * `max_validator_count`: The max number of users who can be a validator at once.",
" When set to `None`, no limit is enforced.",
" * `max_nominator_count`: The max number of users who can be a nominator at once. When",
" set to `None`, no limit is enforced.",
" * `max_validator_count`: The max number of users who can be a validator at once. When",
" set to `None`, no limit is enforced.",
"",
" Origin must be Root to call this function.",
"",
@@ -3152,8 +3158,8 @@
"docs": [
" The maximum number of nominators rewarded for each validator.",
"",
" For each validator only the `$MaxNominatorRewardedPerValidator` biggest stakers can claim",
" their reward. This used to limit the i/o cost for the nominator payout."
" For each validator only the `$MaxNominatorRewardedPerValidator` biggest stakers can",
" claim their reward. This used to limit the i/o cost for the nominator payout."
]
},
{
@@ -3293,15 +3299,15 @@
{
"name": "TooManyNominators",
"docs": [
" There are too many nominators in the system. Governance needs to adjust the staking settings",
" to keep things safe for the runtime."
" There are too many nominators in the system. Governance needs to adjust the staking",
" settings to keep things safe for the runtime."
]
},
{
"name": "TooManyValidators",
"docs": [
" There are too many validators in the system. Governance needs to adjust the staking settings",
" to keep things safe for the runtime."
" There are too many validators in the system. Governance needs to adjust the staking",
" settings to keep things safe for the runtime."
]
}
],
@@ -3550,8 +3556,8 @@
"SessionIndex"
],
"docs": [
" New session has happened. Note that the argument is the \\[session_index\\], not the block",
" number as the type might suggest."
" New session has happened. Note that the argument is the \\[session_index\\], not the",
" block number as the type might suggest."
]
}
],
@@ -3903,8 +3909,8 @@
],
"docs": [
" # <weight>",
" - Complexity: `O(K + E)` where K is length of `Keys` (heartbeat.validators_len)",
" and E is length of `heartbeat.network_state.external_address`",
" - Complexity: `O(K + E)` where K is length of `Keys` (heartbeat.validators_len) and E is",
" length of `heartbeat.network_state.external_address`",
" - `O(K)`: decoding of length `K`",
" - `O(E)`: decoding/encoding of length `E`",
" - DbReads: pallet_session `Validators`, pallet_session `CurrentIndex`, `Keys`,",
@@ -4473,8 +4479,8 @@
" - `to`: The account whose voting the `target` account's voting power will follow.",
" - `conviction`: The conviction that will be attached to the delegated votes. When the",
" account is undelegated, the funds will be locked for the corresponding period.",
" - `balance`: The amount of the account's balance to be used in delegating. This must",
" not be more than the account's current balance.",
" - `balance`: The amount of the account's balance to be used in delegating. This must not",
" be more than the account's current balance.",
"",
" Emits `Delegated`.",
"",
@@ -4597,8 +4603,8 @@
" The dispatch origin of this call must be _Signed_.",
"",
" - `proposal_hash`: The preimage hash of a proposal.",
" - `proposal_length_upper_bound`: an upper bound on length of the proposal.",
" Extrinsic is weighted according to this value with no refund.",
" - `proposal_length_upper_bound`: an upper bound on length of the proposal. Extrinsic is",
" weighted according to this value with no refund.",
"",
" This will only work after `VotingPeriod` blocks from the time that the preimage was",
" noted, if it's the same account doing it. If it's a different account, then it'll only",
@@ -4779,7 +4785,8 @@
"Vec<AccountId>"
],
"docs": [
" A public proposal has been tabled for referendum vote. \\[proposal_index, deposit, depositors\\]"
" A public proposal has been tabled for referendum vote. \\[proposal_index, deposit,",
" depositors\\]"
]
},
{
@@ -4924,15 +4931,6 @@
" \\[proposal_hash, provider, deposit, reaper\\]"
]
},
{
"name": "Unlocked",
"args": [
"AccountId"
],
"docs": [
" An \\[account\\] has been unlocked successfully."
]
},
{
"name": "Blacklisted",
"args": [
@@ -4949,11 +4947,12 @@
"type": "BlockNumber",
"value": "0x00c20100",
"docs": [
" The minimum period of locking and the period between a proposal being approved and enacted.",
" The minimum period of locking and the period between a proposal being approved and",
" enacted.",
"",
" It should generally be a little more than the unstake period to ensure that",
" voting stakers have an opportunity to remove themselves from the system in the case where",
" they are on the losing side of a vote."
" voting stakers have an opportunity to remove themselves from the system in the case",
" where they are on the losing side of a vote."
]
},
{
@@ -4985,9 +4984,9 @@
"type": "bool",
"value": "0x01",
"docs": [
" Indicator for whether an emergency origin is even allowed to happen. Some chains may want",
" to set this permanently to `false`, others may want to condition it on things such as",
" an upgrade having happened recently."
" Indicator for whether an emergency origin is even allowed to happen. Some chains may",
" want to set this permanently to `false`, others may want to condition it on things such",
" as an upgrade having happened recently."
]
},
{
@@ -5047,12 +5046,6 @@
" Proposal does not exist"
]
},
{
"name": "BadIndex",
"docs": [
" Unknown index"
]
},
{
"name": "AlreadyCanceled",
"docs": [
@@ -5095,12 +5088,6 @@
" Identity may not veto a proposal twice"
]
},
{
"name": "NotDelegated",
"docs": [
" Not delegated"
]
},
{
"name": "DuplicatePreimage",
"docs": [
@@ -5149,18 +5136,6 @@
" No proposals waiting"
]
},
{
"name": "NotLocked",
"docs": [
" The target account does not have a lock."
]
},
{
"name": "NotExpired",
"docs": [
" The lock on the account to be unlocked has not yet expired."
]
},
{
"name": "NotVoter",
"docs": [
@@ -5222,12 +5197,6 @@
" Maximum number of votes reached."
]
},
{
"name": "InvalidWitness",
"docs": [
" The provided witness data is wrong."
]
},
{
"name": "TooManyProposals",
"docs": [
@@ -6328,9 +6297,9 @@
" origin is removed as a runner-up.",
" - `origin` is a current member. In this case, the deposit is unreserved and origin is",
" removed as a member, consequently not being a candidate for the next round anymore.",
" Similar to [`remove_member`](Self::remove_member), if replacement runners exists,",
" they are immediately used. If the prime is renouncing, then no prime will exist until",
" the next round.",
" Similar to [`remove_member`](Self::remove_member), if replacement runners exists, they",
" are immediately used. If the prime is renouncing, then no prime will exist until the",
" next round.",
"",
" The dispatch origin of this call must be signed, and have one of the above roles.",
"",
@@ -7415,7 +7384,8 @@
"",
" May be called from any origin.",
"",
" - `calls`: The calls to be dispatched from the same origin.",
" - `calls`: The calls to be dispatched from the same origin. The number of call must not",
" exceed the constant: `batched_calls_limit` (available in constant metadata).",
"",
" If origin is root then call are dispatch without checking origin filter. (This includes",
" bypassing `frame_system::Config::BaseCallFilter`).",
@@ -7473,7 +7443,8 @@
"",
" May be called from any origin.",
"",
" - `calls`: The calls to be dispatched from the same origin.",
" - `calls`: The calls to be dispatched from the same origin. The number of call must not",
" exceed the constant: `batched_calls_limit` (available in constant metadata).",
"",
" If origin is root then call are dispatch without checking origin filter. (This includes",
" bypassing `frame_system::Config::BaseCallFilter`).",
@@ -7511,8 +7482,24 @@
]
}
],
"constants": [],
"errors": [],
"constants": [
{
"name": "batched_calls_limit",
"type": "u32",
"value": "0x0cc30000",
"docs": [
" The limit on the number of batched calls."
]
}
],
"errors": [
{
"name": "TooManyCalls",
"docs": [
" Too many calls batched."
]
}
],
"index": 24
},
{
@@ -8124,8 +8111,8 @@
"value": "0x68425d8d010000000000000000000000",
"docs": [
" The amount held on deposit for a registered subaccount. This should account for the fact",
" that one storage item's value will increase by the size of an account ID, and there will be",
" another trie item whose value is the size of an account ID plus 32 bytes."
" that one storage item's value will increase by the size of an account ID, and there will",
" be another trie item whose value is the size of an account ID plus 32 bytes."
]
},
{
@@ -9389,13 +9376,13 @@
" The dispatch origin for this call must be _Signed_.",
"",
" Parameters:",
" - `friends`: A list of friends you trust to vouch for recovery attempts.",
" Should be ordered and contain no duplicate values.",
" - `threshold`: The number of friends that must vouch for a recovery attempt",
" before the account can be recovered. Should be less than or equal to",
" the length of the list of friends.",
" - `delay_period`: The number of blocks after a recovery attempt is initialized",
" that needs to pass before the account can be recovered.",
" - `friends`: A list of friends you trust to vouch for recovery attempts. Should be",
" ordered and contain no duplicate values.",
" - `threshold`: The number of friends that must vouch for a recovery attempt before the",
" account can be recovered. Should be less than or equal to the length of the list of",
" friends.",
" - `delay_period`: The number of blocks after a recovery attempt is initialized that",
" needs to pass before the account can be recovered.",
"",
" # <weight>",
" - Key: F (len of friends)",
@@ -9427,8 +9414,8 @@
" The dispatch origin for this call must be _Signed_.",
"",
" Parameters:",
" - `account`: The lost account that you want to recover. This account",
" needs to be recoverable (i.e. have a recovery configuration).",
" - `account`: The lost account that you want to recover. This account needs to be",
" recoverable (i.e. have a recovery configuration).",
"",
" # <weight>",
" - One storage read to check that account is recoverable. O(F)",
@@ -9463,8 +9450,7 @@
"",
" Parameters:",
" - `lost`: The lost account that you want to recover.",
" - `rescuer`: The account trying to rescue the lost account that you",
" want to vouch for.",
" - `rescuer`: The account trying to rescue the lost account that you want to vouch for.",
"",
" The combination of these two parameters must point to an active recovery",
" process.",
@@ -9498,8 +9484,8 @@
" `threshold` or more vouches, waited `delay_period` blocks since initiation.",
"",
" Parameters:",
" - `account`: The lost account that you want to claim has been successfully",
" recovered by you.",
" - `account`: The lost account that you want to claim has been successfully recovered by",
" you.",
"",
" # <weight>",
" Key: F (len of friends in config), V (len of vouching friends)",
@@ -9676,9 +9662,11 @@
"type": "BalanceOf",
"value": "0x9a505763000000000000000000000000",
"docs": [
" The amount of currency needed per additional user when creating a recovery configuration.",
" The amount of currency needed per additional user when creating a recovery",
" configuration.",
"",
" This is held for adding `sizeof(AccountId)` bytes more into a pre-existing storage value."
" This is held for adding `sizeof(AccountId)` bytes more into a pre-existing storage",
" value."
]
},
{
@@ -10265,8 +10253,8 @@
"type": "Weight",
"value": "0x00806e8774010000",
"docs": [
" The maximum weight that may be scheduled per block for any dispatchables of less priority",
" than `schedule::HARD_DEADLINE`."
" The maximum weight that may be scheduled per block for any dispatchables of less",
" priority than `schedule::HARD_DEADLINE`."
]
},
{
@@ -10708,7 +10696,8 @@
],
"docs": [
" Anonymous account has been created by new proxy with given",
" disambiguation index and proxy type. \\[anonymous, who, proxy_type, disambiguation_index\\]"
" disambiguation index and proxy type. \\[anonymous, who, proxy_type,",
" disambiguation_index\\]"
]
},
{
@@ -10742,9 +10731,9 @@
"docs": [
" The amount of currency needed per proxy added.",
"",
" This is held for adding 32 bytes plus an instance of `ProxyType` more into a pre-existing",
" storage value. Thus, when configuring `ProxyDepositFactor` one should take into account",
" `32 + proxy_type.encode().len()` bytes of data."
" This is held for adding 32 bytes plus an instance of `ProxyType` more into a",
" pre-existing storage value. Thus, when configuring `ProxyDepositFactor` one should take",
" into account `32 + proxy_type.encode().len()` bytes of data."
]
},
{
@@ -10770,7 +10759,8 @@
"docs": [
" The base amount of currency needed to reserve for creating an announcement.",
"",
" This is held when a new storage item holding a `Balance` is created (typically 16 bytes)."
" This is held when a new storage item holding a `Balance` is created (typically 16",
" bytes)."
]
},
{
@@ -10973,9 +10963,8 @@
" - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.",
" - One event.",
" - The weight of the `call`.",
" - Storage: inserts one item, value size bounded by `MaxSignatories`, with a",
" deposit taken for its lifetime of",
" `DepositBase + threshold * DepositFactor`.",
" - Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit",
" taken for its lifetime of `DepositBase + threshold * DepositFactor`.",
" -------------------------------",
" - DB Weight:",
" - Reads: Multisig Storage, [Caller Account], Calls (if `store_call`)",
@@ -11037,9 +11026,8 @@
" - Up to one binary search and insert (`O(logS + S)`).",
" - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.",
" - One event.",
" - Storage: inserts one item, value size bounded by `MaxSignatories`, with a",
" deposit taken for its lifetime of",
" `DepositBase + threshold * DepositFactor`.",
" - Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit",
" taken for its lifetime of `DepositBase + threshold * DepositFactor`.",
" ----------------------------------",
" - DB Weight:",
" - Read: Multisig Storage, [Caller Account]",
@@ -11154,8 +11142,8 @@
"type": "BalanceOf",
"value": "0xf07520970f0000000000000000000000",
"docs": [
" The base amount of currency needed to reserve for creating a multisig execution or to store",
" a dispatch call for later.",
" The base amount of currency needed to reserve for creating a multisig execution or to",
" store a dispatch call for later.",
"",
" This is held for an additional storage item whose value size is",
" `4 + sizeof((BlockNumber, Balance, AccountId))` bytes and whose key size is",
@@ -12262,7 +12250,7 @@
"name": "submit_unsigned",
"args": [
{
"name": "solution",
"name": "raw_solution",
"type": "RawSolution"
},
{
@@ -12326,7 +12314,7 @@
"name": "submit",
"args": [
{
"name": "solution",
"name": "raw_solution",
"type": "RawSolution"
},
{
@@ -12516,7 +12504,7 @@
{
"name": "SignedDepositBase",
"type": "BalanceOf",
"value": "0x1098a4850f0000000000000000000000",
"value": "0x2030490b1f0000000000000000000000",
"docs": [
" Base deposit for a signed solution."
]
@@ -12524,7 +12512,7 @@
{
"name": "SignedDepositByte",
"type": "BalanceOf",
"value": "0x43de1300000000000000000000000000",
"value": "0x277f0000000000000000000000000000",
"docs": [
" Per-byte deposit for a signed solution."
]
@@ -12927,8 +12915,8 @@
{
"name": "BidTooLow",
"docs": [
" The queue for the bid's duration is full and the amount bid is too low to get in through",
" replacing an existing bid."
" The queue for the bid's duration is full and the amount bid is too low to get in",
" through replacing an existing bid."
]
},
{
@@ -16499,7 +16487,11 @@
},
{
"name": "assets",
"type": "Vec<MultiAsset>"
"type": "MultiAssets"
},
{
"name": "fee_asset_item",
"type": "u32"
},
{
"name": "dest_weight",
@@ -16509,13 +16501,15 @@
"docs": [
" Teleport some assets from the local chain to some destination chain.",
"",
" Fee payment on the destination side is made from the first asset listed in the `assets` vector.",
"",
" - `origin`: Must be capable of withdrawing the `assets` and executing XCM.",
" - `dest`: Destination context for the assets. Will typically be `X2(Parent, Parachain(..))` to send",
" from parachain to parachain, or `X1(Parachain(..))` to send from relay to parachain.",
" - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be",
" an `AccountId32` value.",
" - `assets`: The assets to be withdrawn. This should include the assets used to pay the fee on the",
" `dest` side.",
" - `assets`: The assets to be withdrawn. The first item should be the currency used to to pay the fee on the",
" `dest` side. May not be empty.",
" - `dest_weight`: Equal to the total weight on `dest` of the XCM message",
" `Teleport { assets, effects: [ BuyExecution{..}, DepositAsset{..} ] }`."
]
@@ -16533,7 +16527,11 @@
},
{
"name": "assets",
"type": "Vec<MultiAsset>"
"type": "MultiAssets"
},
{
"name": "fee_asset_item",
"type": "u32"
},
{
"name": "dest_weight",
@@ -16544,6 +16542,8 @@
" Transfer some assets from the local chain to the sovereign account of a destination chain and forward",
" a notification XCM.",
"",
" Fee payment on the destination side is made from the first asset listed in the `assets` vector.",
"",
" - `origin`: Must be capable of withdrawing the `assets` and executing XCM.",
" - `dest`: Destination context for the assets. Will typically be `X2(Parent, Parachain(..))` to send",
" from parachain to parachain, or `X1(Parachain(..))` to send from relay to parachain.",
@@ -16552,7 +16552,7 @@
" - `assets`: The assets to be withdrawn. This should include the assets used to pay the fee on the",
" `dest` side.",
" - `dest_weight`: Equal to the total weight on `dest` of the XCM message",
" `ReserveAssetDeposit { assets, effects: [ BuyExecution{..}, DepositAsset{..} ] }`."
" `ReserveAssetDeposited { assets, effects: [ BuyExecution{..}, DepositAsset{..} ] }`."
]
},
{
@@ -16621,6 +16621,30 @@
"docs": [
" The message's weight could not be determined."
]
},
{
"name": "Empty",
"docs": [
" The assets to be sent are empty."
]
},
{
"name": "CannotReanchor",
"docs": [
" Could not re-anchor the assets to declare the fees for the destination chain."
]
},
{
"name": "TooManyAssets",
"docs": [
" Too many assets have been attempted for transfer."
]
},
{
"name": "InvalidOrigin",
"docs": [
" Origin is invalid for sending."
]
}
],
"index": 99
File diff suppressed because one or more lines are too long
@@ -278,10 +278,11 @@
" # <weight>",
" - `O(C + S)` where `C` length of `code` and `S` complexity of `can_set_code`",
" - 1 storage write (codec `O(C)`).",
" - 1 call to `can_set_code`: `O(S)` (calls `sp_io::misc::runtime_version` which is expensive).",
" - 1 call to `can_set_code`: `O(S)` (calls `sp_io::misc::runtime_version` which is",
" expensive).",
" - 1 event.",
" The weight of this function is dependent on the runtime, but generally this is very expensive.",
" We will treat this as a full block.",
" The weight of this function is dependent on the runtime, but generally this is very",
" expensive. We will treat this as a full block.",
" # </weight>"
]
},
@@ -300,8 +301,8 @@
" - `O(C)` where `C` length of `code`",
" - 1 storage write (codec `O(C)`).",
" - 1 event.",
" The weight of this function is dependent on the runtime. We will treat this as a full block.",
" # </weight>"
" The weight of this function is dependent on the runtime. We will treat this as a full",
" block. # </weight>"
]
},
{
@@ -824,8 +825,8 @@
"type": "Weight",
"value": "0x00806e8774010000",
"docs": [
" The maximum weight that may be scheduled per block for any dispatchables of less priority",
" than `schedule::HARD_DEADLINE`."
" The maximum weight that may be scheduled per block for any dispatchables of less",
" priority than `schedule::HARD_DEADLINE`."
]
},
{
@@ -1068,7 +1069,8 @@
},
"fallback": "0x00",
"docs": [
" The configuration for the current epoch. Should never be `None` as it is initialized in genesis."
" The configuration for the current epoch. Should never be `None` as it is initialized in",
" genesis."
]
},
{
@@ -1242,7 +1244,8 @@
"",
" # <weight>",
" - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)",
" - 1 storage read and 1 storage mutation (codec `O(1)`). (because of `DidUpdate::take` in `on_finalize`)",
" - 1 storage read and 1 storage mutation (codec `O(1)`). (because of `DidUpdate::take` in",
" `on_finalize`)",
" - 1 event handler `on_timestamp_set`. Must be `O(1)`.",
" # </weight>"
]
@@ -1255,10 +1258,10 @@
"type": "Moment",
"value": "0xb80b000000000000",
"docs": [
" The minimum period between blocks. Beware that this is different to the *expected* period",
" that the block production apparatus provides. Your chosen consensus system will generally",
" work with this to determine a sensible block time. e.g. For Aura, it will be double this",
" period on default settings."
" The minimum period between blocks. Beware that this is different to the *expected*",
" period that the block production apparatus provides. Your chosen consensus system will",
" generally work with this to determine a sensible block time. e.g. For Aura, it will be",
" double this period on default settings."
]
}
],
@@ -1431,7 +1434,8 @@
}
],
"docs": [
" Freeze an index so it will always point to the sender account. This consumes the deposit.",
" Freeze an index so it will always point to the sender account. This consumes the",
" deposit.",
"",
" The dispatch origin for this call must be _Signed_ and the signing account must have a",
" non-frozen account `index`.",
@@ -1632,18 +1636,19 @@
" The dispatch origin for this call must be `Signed` by the transactor.",
"",
" # <weight>",
" - Dependent on arguments but not critical, given proper implementations for",
" input config types. See related functions below.",
" - It contains a limited number of reads and writes internally and no complex computation.",
" - Dependent on arguments but not critical, given proper implementations for input config",
" types. See related functions below.",
" - It contains a limited number of reads and writes internally and no complex",
" computation.",
"",
" Related functions:",
"",
" - `ensure_can_withdraw` is always called internally but has a bounded complexity.",
" - Transferring balances to accounts that did not exist before will cause",
" `T::OnNewAccount::on_new_account` to be called.",
" `T::OnNewAccount::on_new_account` to be called.",
" - Removing enough funds from an account will trigger `T::DustRemoval::on_unbalanced`.",
" - `transfer_keep_alive` works the same way as `transfer`, but has an additional",
" check that the transfer will not kill the origin account.",
" - `transfer_keep_alive` works the same way as `transfer`, but has an additional check",
" that the transfer will not kill the origin account.",
" ---------------------------------",
" - Base Weight: 73.64 µs, worst case scenario (account created, account removed)",
" - DB Weight: 1 Read and 1 Write to destination account",
@@ -1708,8 +1713,8 @@
" Exactly as `transfer`, except the origin must be root and the source account may be",
" specified.",
" # <weight>",
" - Same as transfer, but additional read and write because the source account is",
" not assumed to be in the overlay.",
" - Same as transfer, but additional read and write because the source account is not",
" assumed to be in the overlay.",
" # </weight>"
]
},
@@ -1766,8 +1771,7 @@
" - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all",
" of the funds the account has, causing the sender account to be killed (false), or",
" transfer everything except at least the existential deposit, which will guarantee to",
" keep the sender account alive (true).",
" # <weight>",
" keep the sender account alive (true). # <weight>",
" - O(1). Just like transfer, but reading the user's transferable balance first.",
" #</weight>"
]
@@ -2662,9 +2666,9 @@
},
"fallback": "0x00",
"docs": [
" The threshold for when users can start calling `chill_other` for other validators / nominators.",
" The threshold is compared to the actual number of validators / nominators (`CountFor*`) in",
" the system compared to the configured max (`Max*Count`)."
" The threshold for when users can start calling `chill_other` for other validators /",
" nominators. The threshold is compared to the actual number of validators / nominators",
" (`CountFor*`) in the system compared to the configured max (`Max*Count`)."
]
}
]
@@ -2721,8 +2725,8 @@
" The dispatch origin for this call must be _Signed_ by the stash, not the controller.",
"",
" Use this if there are additional funds in your stash account that you wish to bond.",
" Unlike [`bond`](Self::bond) or [`unbond`](Self::unbond) this function does not impose any limitation",
" on the amount that can be added.",
" Unlike [`bond`](Self::bond) or [`unbond`](Self::unbond) this function does not impose",
" any limitation on the amount that can be added.",
"",
" Emits `Bonded`.",
"",
@@ -3034,8 +3038,8 @@
" # <weight>",
" O(S) where S is the number of slashing spans to be removed",
" Reads: Bonded, Slashing Spans, Account, Locks",
" Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, Account, Locks",
" Writes Each: SpanSlash * S",
" Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators,",
" Account, Locks Writes Each: SpanSlash * S",
" # </weight>"
]
},
@@ -3161,10 +3165,10 @@
"",
" Parameters:",
" - `new_history_depth`: The new history depth you would like to set.",
" - `era_items_deleted`: The number of items that will be deleted by this dispatch.",
" This should report all the storage items that will be deleted by clearing old",
" era history. Needed to report an accurate weight for the dispatch. Trusted by",
" `Root` to report an accurate number.",
" - `era_items_deleted`: The number of items that will be deleted by this dispatch. This",
" should report all the storage items that will be deleted by clearing old era history.",
" Needed to report an accurate weight for the dispatch. Trusted by `Root` to report an",
" accurate number.",
"",
" Origin must be root.",
"",
@@ -3175,7 +3179,8 @@
" - Reads: Current Era, History Depth",
" - Writes: History Depth",
" - Clear Prefix Each: Era Stakers, EraStakersClipped, ErasValidatorPrefs",
" - Writes Each: ErasValidatorReward, ErasRewardPoints, ErasTotalStake, ErasStartSessionIndex",
" - Writes Each: ErasValidatorReward, ErasRewardPoints, ErasTotalStake,",
" ErasStartSessionIndex",
" # </weight>"
]
},
@@ -3204,7 +3209,8 @@
" Complexity: O(S) where S is the number of slashing spans on the account.",
" DB Weight:",
" - Reads: Stash Account, Bonded, Slashing Spans, Locks",
" - Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, Stash Account, Locks",
" - Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators,",
" Stash Account, Locks",
" - Writes Each: SpanSlash * S",
" # </weight>"
]
@@ -3260,10 +3266,10 @@
"",
" * `min_nominator_bond`: The minimum active bond needed to be a nominator.",
" * `min_validator_bond`: The minimum active bond needed to be a validator.",
" * `max_nominator_count`: The max number of users who can be a nominator at once.",
" When set to `None`, no limit is enforced.",
" * `max_validator_count`: The max number of users who can be a validator at once.",
" When set to `None`, no limit is enforced.",
" * `max_nominator_count`: The max number of users who can be a nominator at once. When",
" set to `None`, no limit is enforced.",
" * `max_validator_count`: The max number of users who can be a validator at once. When",
" set to `None`, no limit is enforced.",
"",
" Origin must be Root to call this function.",
"",
@@ -3463,8 +3469,8 @@
"docs": [
" The maximum number of nominators rewarded for each validator.",
"",
" For each validator only the `$MaxNominatorRewardedPerValidator` biggest stakers can claim",
" their reward. This used to limit the i/o cost for the nominator payout."
" For each validator only the `$MaxNominatorRewardedPerValidator` biggest stakers can",
" claim their reward. This used to limit the i/o cost for the nominator payout."
]
},
{
@@ -3604,15 +3610,15 @@
{
"name": "TooManyNominators",
"docs": [
" There are too many nominators in the system. Governance needs to adjust the staking settings",
" to keep things safe for the runtime."
" There are too many nominators in the system. Governance needs to adjust the staking",
" settings to keep things safe for the runtime."
]
},
{
"name": "TooManyValidators",
"docs": [
" There are too many validators in the system. Governance needs to adjust the staking settings",
" to keep things safe for the runtime."
" There are too many validators in the system. Governance needs to adjust the staking",
" settings to keep things safe for the runtime."
]
}
],
@@ -3861,8 +3867,8 @@
"SessionIndex"
],
"docs": [
" New session has happened. Note that the argument is the \\[session_index\\], not the block",
" number as the type might suggest."
" New session has happened. Note that the argument is the \\[session_index\\], not the",
" block number as the type might suggest."
]
}
],
@@ -4214,8 +4220,8 @@
],
"docs": [
" # <weight>",
" - Complexity: `O(K + E)` where K is length of `Keys` (heartbeat.validators_len)",
" and E is length of `heartbeat.network_state.external_address`",
" - Complexity: `O(K + E)` where K is length of `Keys` (heartbeat.validators_len) and E is",
" length of `heartbeat.network_state.external_address`",
" - `O(K)`: decoding of length `K`",
" - `O(E)`: decoding/encoding of length `E`",
" - DbReads: pallet_session `Validators`, pallet_session `CurrentIndex`, `Keys`,",
@@ -4784,8 +4790,8 @@
" - `to`: The account whose voting the `target` account's voting power will follow.",
" - `conviction`: The conviction that will be attached to the delegated votes. When the",
" account is undelegated, the funds will be locked for the corresponding period.",
" - `balance`: The amount of the account's balance to be used in delegating. This must",
" not be more than the account's current balance.",
" - `balance`: The amount of the account's balance to be used in delegating. This must not",
" be more than the account's current balance.",
"",
" Emits `Delegated`.",
"",
@@ -4908,8 +4914,8 @@
" The dispatch origin of this call must be _Signed_.",
"",
" - `proposal_hash`: The preimage hash of a proposal.",
" - `proposal_length_upper_bound`: an upper bound on length of the proposal.",
" Extrinsic is weighted according to this value with no refund.",
" - `proposal_length_upper_bound`: an upper bound on length of the proposal. Extrinsic is",
" weighted according to this value with no refund.",
"",
" This will only work after `VotingPeriod` blocks from the time that the preimage was",
" noted, if it's the same account doing it. If it's a different account, then it'll only",
@@ -5090,7 +5096,8 @@
"Vec<AccountId>"
],
"docs": [
" A public proposal has been tabled for referendum vote. \\[proposal_index, deposit, depositors\\]"
" A public proposal has been tabled for referendum vote. \\[proposal_index, deposit,",
" depositors\\]"
]
},
{
@@ -5235,15 +5242,6 @@
" \\[proposal_hash, provider, deposit, reaper\\]"
]
},
{
"name": "Unlocked",
"args": [
"AccountId"
],
"docs": [
" An \\[account\\] has been unlocked successfully."
]
},
{
"name": "Blacklisted",
"args": [
@@ -5260,11 +5258,12 @@
"type": "BlockNumber",
"value": "0x00270600",
"docs": [
" The minimum period of locking and the period between a proposal being approved and enacted.",
" The minimum period of locking and the period between a proposal being approved and",
" enacted.",
"",
" It should generally be a little more than the unstake period to ensure that",
" voting stakers have an opportunity to remove themselves from the system in the case where",
" they are on the losing side of a vote."
" voting stakers have an opportunity to remove themselves from the system in the case",
" where they are on the losing side of a vote."
]
},
{
@@ -5296,9 +5295,9 @@
"type": "bool",
"value": "0x01",
"docs": [
" Indicator for whether an emergency origin is even allowed to happen. Some chains may want",
" to set this permanently to `false`, others may want to condition it on things such as",
" an upgrade having happened recently."
" Indicator for whether an emergency origin is even allowed to happen. Some chains may",
" want to set this permanently to `false`, others may want to condition it on things such",
" as an upgrade having happened recently."
]
},
{
@@ -5358,12 +5357,6 @@
" Proposal does not exist"
]
},
{
"name": "BadIndex",
"docs": [
" Unknown index"
]
},
{
"name": "AlreadyCanceled",
"docs": [
@@ -5406,12 +5399,6 @@
" Identity may not veto a proposal twice"
]
},
{
"name": "NotDelegated",
"docs": [
" Not delegated"
]
},
{
"name": "DuplicatePreimage",
"docs": [
@@ -5460,18 +5447,6 @@
" No proposals waiting"
]
},
{
"name": "NotLocked",
"docs": [
" The target account does not have a lock."
]
},
{
"name": "NotExpired",
"docs": [
" The lock on the account to be unlocked has not yet expired."
]
},
{
"name": "NotVoter",
"docs": [
@@ -5533,12 +5508,6 @@
" Maximum number of votes reached."
]
},
{
"name": "InvalidWitness",
"docs": [
" The provided witness data is wrong."
]
},
{
"name": "TooManyProposals",
"docs": [
@@ -6639,9 +6608,9 @@
" origin is removed as a runner-up.",
" - `origin` is a current member. In this case, the deposit is unreserved and origin is",
" removed as a member, consequently not being a candidate for the next round anymore.",
" Similar to [`remove_member`](Self::remove_member), if replacement runners exists,",
" they are immediately used. If the prime is renouncing, then no prime will exist until",
" the next round.",
" Similar to [`remove_member`](Self::remove_member), if replacement runners exists, they",
" are immediately used. If the prime is renouncing, then no prime will exist until the",
" next round.",
"",
" The dispatch origin of this call must be signed, and have one of the above roles.",
"",
@@ -7918,7 +7887,8 @@
"",
" May be called from any origin.",
"",
" - `calls`: The calls to be dispatched from the same origin.",
" - `calls`: The calls to be dispatched from the same origin. The number of call must not",
" exceed the constant: `batched_calls_limit` (available in constant metadata).",
"",
" If origin is root then call are dispatch without checking origin filter. (This includes",
" bypassing `frame_system::Config::BaseCallFilter`).",
@@ -7976,7 +7946,8 @@
"",
" May be called from any origin.",
"",
" - `calls`: The calls to be dispatched from the same origin.",
" - `calls`: The calls to be dispatched from the same origin. The number of call must not",
" exceed the constant: `batched_calls_limit` (available in constant metadata).",
"",
" If origin is root then call are dispatch without checking origin filter. (This includes",
" bypassing `frame_system::Config::BaseCallFilter`).",
@@ -8014,8 +7985,24 @@
]
}
],
"constants": [],
"errors": [],
"constants": [
{
"name": "batched_calls_limit",
"type": "u32",
"value": "0x0cc30000",
"docs": [
" The limit on the number of batched calls."
]
}
],
"errors": [
{
"name": "TooManyCalls",
"docs": [
" Too many calls batched."
]
}
],
"index": 26
},
{
@@ -8627,8 +8614,8 @@
"value": "0x80f884b02e0000000000000000000000",
"docs": [
" The amount held on deposit for a registered subaccount. This should account for the fact",
" that one storage item's value will increase by the size of an account ID, and there will be",
" another trie item whose value is the size of an account ID plus 32 bytes."
" that one storage item's value will increase by the size of an account ID, and there will",
" be another trie item whose value is the size of an account ID plus 32 bytes."
]
},
{
@@ -9159,7 +9146,8 @@
],
"docs": [
" Anonymous account has been created by new proxy with given",
" disambiguation index and proxy type. \\[anonymous, who, proxy_type, disambiguation_index\\]"
" disambiguation index and proxy type. \\[anonymous, who, proxy_type,",
" disambiguation_index\\]"
]
},
{
@@ -9193,9 +9181,9 @@
"docs": [
" The amount of currency needed per proxy added.",
"",
" This is held for adding 32 bytes plus an instance of `ProxyType` more into a pre-existing",
" storage value. Thus, when configuring `ProxyDepositFactor` one should take into account",
" `32 + proxy_type.encode().len()` bytes of data."
" This is held for adding 32 bytes plus an instance of `ProxyType` more into a",
" pre-existing storage value. Thus, when configuring `ProxyDepositFactor` one should take",
" into account `32 + proxy_type.encode().len()` bytes of data."
]
},
{
@@ -9221,7 +9209,8 @@
"docs": [
" The base amount of currency needed to reserve for creating an announcement.",
"",
" This is held when a new storage item holding a `Balance` is created (typically 16 bytes)."
" This is held when a new storage item holding a `Balance` is created (typically 16",
" bytes)."
]
},
{
@@ -9424,9 +9413,8 @@
" - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.",
" - One event.",
" - The weight of the `call`.",
" - Storage: inserts one item, value size bounded by `MaxSignatories`, with a",
" deposit taken for its lifetime of",
" `DepositBase + threshold * DepositFactor`.",
" - Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit",
" taken for its lifetime of `DepositBase + threshold * DepositFactor`.",
" -------------------------------",
" - DB Weight:",
" - Reads: Multisig Storage, [Caller Account], Calls (if `store_call`)",
@@ -9488,9 +9476,8 @@
" - Up to one binary search and insert (`O(logS + S)`).",
" - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.",
" - One event.",
" - Storage: inserts one item, value size bounded by `MaxSignatories`, with a",
" deposit taken for its lifetime of",
" `DepositBase + threshold * DepositFactor`.",
" - Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit",
" taken for its lifetime of `DepositBase + threshold * DepositFactor`.",
" ----------------------------------",
" - DB Weight:",
" - Read: Multisig Storage, [Caller Account]",
@@ -9605,8 +9592,8 @@
"type": "BalanceOf",
"value": "0x008c61c52e0000000000000000000000",
"docs": [
" The base amount of currency needed to reserve for creating a multisig execution or to store",
" a dispatch call for later.",
" The base amount of currency needed to reserve for creating a multisig execution or to",
" store a dispatch call for later.",
"",
" This is held for an additional storage item whose value size is",
" `4 + sizeof((BlockNumber, Balance, AccountId))` bytes and whose key size is",
@@ -10713,7 +10700,7 @@
"name": "submit_unsigned",
"args": [
{
"name": "solution",
"name": "raw_solution",
"type": "RawSolution"
},
{
@@ -10777,7 +10764,7 @@
"name": "submit",
"args": [
{
"name": "solution",
"name": "raw_solution",
"type": "RawSolution"
},
{
@@ -10967,7 +10954,7 @@
{
"name": "SignedDepositBase",
"type": "BalanceOf",
"value": "0x00d0ed902e0000000000000000000000",
"value": "0x00a0db215d0000000000000000000000",
"docs": [
" Base deposit for a signed solution."
]
@@ -10975,7 +10962,7 @@
{
"name": "SignedDepositByte",
"type": "BalanceOf",
"value": "0xca9a3b00000000000000000000000000",
"value": "0x787d0100000000000000000000000000",
"docs": [
" Per-byte deposit for a signed solution."
]
File diff suppressed because one or more lines are too long
@@ -278,10 +278,11 @@
" # <weight>",
" - `O(C + S)` where `C` length of `code` and `S` complexity of `can_set_code`",
" - 1 storage write (codec `O(C)`).",
" - 1 call to `can_set_code`: `O(S)` (calls `sp_io::misc::runtime_version` which is expensive).",
" - 1 call to `can_set_code`: `O(S)` (calls `sp_io::misc::runtime_version` which is",
" expensive).",
" - 1 event.",
" The weight of this function is dependent on the runtime, but generally this is very expensive.",
" We will treat this as a full block.",
" The weight of this function is dependent on the runtime, but generally this is very",
" expensive. We will treat this as a full block.",
" # </weight>"
]
},
@@ -300,8 +301,8 @@
" - `O(C)` where `C` length of `code`",
" - 1 storage write (codec `O(C)`).",
" - 1 event.",
" The weight of this function is dependent on the runtime. We will treat this as a full block.",
" # </weight>"
" The weight of this function is dependent on the runtime. We will treat this as a full",
" block. # </weight>"
]
},
{
@@ -499,7 +500,7 @@
{
"name": "Version",
"type": "RuntimeVersion",
"value": "0x106e6f6465387375627374726174652d6e6f64650a0000000b0100000000000034df6acb689907609b0300000037e397fc7c91f5e40100000040fe3ad401f8959a05000000d2bc9897eed08f1503000000f78b278be53f454c02000000ed99c5acb25eedf502000000cbca25e39f14238702000000687ad44ad37f03c201000000bc9d89904f5b923f0100000068b66ba122c93fa70100000037c8bb1350a9a2a80100000091d5df18b0d2cf5801000000ab3c0572291feb8b0100000002000000",
"value": "0x106e6f6465387375627374726174652d6e6f64650a0000000b0100000000000034df6acb689907609b0300000037e397fc7c91f5e40100000040fe3ad401f8959a05000000d2bc9897eed08f1503000000f78b278be53f454c02000000ed99c5acb25eedf503000000cbca25e39f14238702000000687ad44ad37f03c201000000bc9d89904f5b923f0100000068b66ba122c93fa70100000037c8bb1350a9a2a80100000091d5df18b0d2cf5801000000ab3c0572291feb8b0100000002000000",
"docs": [
" Get the chain's current version."
]
@@ -572,7 +573,8 @@
"",
" May be called from any origin.",
"",
" - `calls`: The calls to be dispatched from the same origin.",
" - `calls`: The calls to be dispatched from the same origin. The number of call must not",
" exceed the constant: `batched_calls_limit` (available in constant metadata).",
"",
" If origin is root then call are dispatch without checking origin filter. (This includes",
" bypassing `frame_system::Config::BaseCallFilter`).",
@@ -630,7 +632,8 @@
"",
" May be called from any origin.",
"",
" - `calls`: The calls to be dispatched from the same origin.",
" - `calls`: The calls to be dispatched from the same origin. The number of call must not",
" exceed the constant: `batched_calls_limit` (available in constant metadata).",
"",
" If origin is root then call are dispatch without checking origin filter. (This includes",
" bypassing `frame_system::Config::BaseCallFilter`).",
@@ -668,8 +671,24 @@
]
}
],
"constants": [],
"errors": [],
"constants": [
{
"name": "batched_calls_limit",
"type": "u32",
"value": "0x73ed0000",
"docs": [
" The limit on the number of batched calls."
]
}
],
"errors": [
{
"name": "TooManyCalls",
"docs": [
" Too many calls batched."
]
}
],
"index": 1
},
{
@@ -874,7 +893,8 @@
},
"fallback": "0x00",
"docs": [
" The configuration for the current epoch. Should never be `None` as it is initialized in genesis."
" The configuration for the current epoch. Should never be `None` as it is initialized in",
" genesis."
]
},
{
@@ -1048,7 +1068,8 @@
"",
" # <weight>",
" - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)",
" - 1 storage read and 1 storage mutation (codec `O(1)`). (because of `DidUpdate::take` in `on_finalize`)",
" - 1 storage read and 1 storage mutation (codec `O(1)`). (because of `DidUpdate::take` in",
" `on_finalize`)",
" - 1 event handler `on_timestamp_set`. Must be `O(1)`.",
" # </weight>"
]
@@ -1061,10 +1082,10 @@
"type": "Moment",
"value": "0xdc05000000000000",
"docs": [
" The minimum period between blocks. Beware that this is different to the *expected* period",
" that the block production apparatus provides. Your chosen consensus system will generally",
" work with this to determine a sensible block time. e.g. For Aura, it will be double this",
" period on default settings."
" The minimum period between blocks. Beware that this is different to the *expected*",
" period that the block production apparatus provides. Your chosen consensus system will",
" generally work with this to determine a sensible block time. e.g. For Aura, it will be",
" double this period on default settings."
]
}
],
@@ -1350,7 +1371,8 @@
}
],
"docs": [
" Freeze an index so it will always point to the sender account. This consumes the deposit.",
" Freeze an index so it will always point to the sender account. This consumes the",
" deposit.",
"",
" The dispatch origin for this call must be _Signed_ and the signing account must have a",
" non-frozen account `index`.",
@@ -1551,18 +1573,19 @@
" The dispatch origin for this call must be `Signed` by the transactor.",
"",
" # <weight>",
" - Dependent on arguments but not critical, given proper implementations for",
" input config types. See related functions below.",
" - It contains a limited number of reads and writes internally and no complex computation.",
" - Dependent on arguments but not critical, given proper implementations for input config",
" types. See related functions below.",
" - It contains a limited number of reads and writes internally and no complex",
" computation.",
"",
" Related functions:",
"",
" - `ensure_can_withdraw` is always called internally but has a bounded complexity.",
" - Transferring balances to accounts that did not exist before will cause",
" `T::OnNewAccount::on_new_account` to be called.",
" `T::OnNewAccount::on_new_account` to be called.",
" - Removing enough funds from an account will trigger `T::DustRemoval::on_unbalanced`.",
" - `transfer_keep_alive` works the same way as `transfer`, but has an additional",
" check that the transfer will not kill the origin account.",
" - `transfer_keep_alive` works the same way as `transfer`, but has an additional check",
" that the transfer will not kill the origin account.",
" ---------------------------------",
" - Base Weight: 73.64 µs, worst case scenario (account created, account removed)",
" - DB Weight: 1 Read and 1 Write to destination account",
@@ -1627,8 +1650,8 @@
" Exactly as `transfer`, except the origin must be root and the source account may be",
" specified.",
" # <weight>",
" - Same as transfer, but additional read and write because the source account is",
" not assumed to be in the overlay.",
" - Same as transfer, but additional read and write because the source account is not",
" assumed to be in the overlay.",
" # </weight>"
]
},
@@ -1685,8 +1708,7 @@
" - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all",
" of the funds the account has, causing the sender account to be killed (false), or",
" transfer everything except at least the existential deposit, which will guarantee to",
" keep the sender account alive (true).",
" # <weight>",
" keep the sender account alive (true). # <weight>",
" - O(1). Just like transfer, but reading the user's transferable balance first.",
" #</weight>"
]
@@ -2068,7 +2090,7 @@
"name": "submit_unsigned",
"args": [
{
"name": "solution",
"name": "raw_solution",
"type": "RawSolution"
},
{
@@ -2132,7 +2154,7 @@
"name": "submit",
"args": [
{
"name": "solution",
"name": "raw_solution",
"type": "RawSolution"
},
{
@@ -2985,9 +3007,9 @@
},
"fallback": "0x00",
"docs": [
" The threshold for when users can start calling `chill_other` for other validators / nominators.",
" The threshold is compared to the actual number of validators / nominators (`CountFor*`) in",
" the system compared to the configured max (`Max*Count`)."
" The threshold for when users can start calling `chill_other` for other validators /",
" nominators. The threshold is compared to the actual number of validators / nominators",
" (`CountFor*`) in the system compared to the configured max (`Max*Count`)."
]
}
]
@@ -3044,8 +3066,8 @@
" The dispatch origin for this call must be _Signed_ by the stash, not the controller.",
"",
" Use this if there are additional funds in your stash account that you wish to bond.",
" Unlike [`bond`](Self::bond) or [`unbond`](Self::unbond) this function does not impose any limitation",
" on the amount that can be added.",
" Unlike [`bond`](Self::bond) or [`unbond`](Self::unbond) this function does not impose",
" any limitation on the amount that can be added.",
"",
" Emits `Bonded`.",
"",
@@ -3357,8 +3379,8 @@
" # <weight>",
" O(S) where S is the number of slashing spans to be removed",
" Reads: Bonded, Slashing Spans, Account, Locks",
" Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, Account, Locks",
" Writes Each: SpanSlash * S",
" Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators,",
" Account, Locks Writes Each: SpanSlash * S",
" # </weight>"
]
},
@@ -3484,10 +3506,10 @@
"",
" Parameters:",
" - `new_history_depth`: The new history depth you would like to set.",
" - `era_items_deleted`: The number of items that will be deleted by this dispatch.",
" This should report all the storage items that will be deleted by clearing old",
" era history. Needed to report an accurate weight for the dispatch. Trusted by",
" `Root` to report an accurate number.",
" - `era_items_deleted`: The number of items that will be deleted by this dispatch. This",
" should report all the storage items that will be deleted by clearing old era history.",
" Needed to report an accurate weight for the dispatch. Trusted by `Root` to report an",
" accurate number.",
"",
" Origin must be root.",
"",
@@ -3498,7 +3520,8 @@
" - Reads: Current Era, History Depth",
" - Writes: History Depth",
" - Clear Prefix Each: Era Stakers, EraStakersClipped, ErasValidatorPrefs",
" - Writes Each: ErasValidatorReward, ErasRewardPoints, ErasTotalStake, ErasStartSessionIndex",
" - Writes Each: ErasValidatorReward, ErasRewardPoints, ErasTotalStake,",
" ErasStartSessionIndex",
" # </weight>"
]
},
@@ -3527,7 +3550,8 @@
" Complexity: O(S) where S is the number of slashing spans on the account.",
" DB Weight:",
" - Reads: Stash Account, Bonded, Slashing Spans, Locks",
" - Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, Stash Account, Locks",
" - Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators,",
" Stash Account, Locks",
" - Writes Each: SpanSlash * S",
" # </weight>"
]
@@ -3583,10 +3607,10 @@
"",
" * `min_nominator_bond`: The minimum active bond needed to be a nominator.",
" * `min_validator_bond`: The minimum active bond needed to be a validator.",
" * `max_nominator_count`: The max number of users who can be a nominator at once.",
" When set to `None`, no limit is enforced.",
" * `max_validator_count`: The max number of users who can be a validator at once.",
" When set to `None`, no limit is enforced.",
" * `max_nominator_count`: The max number of users who can be a nominator at once. When",
" set to `None`, no limit is enforced.",
" * `max_validator_count`: The max number of users who can be a validator at once. When",
" set to `None`, no limit is enforced.",
"",
" Origin must be Root to call this function.",
"",
@@ -3786,8 +3810,8 @@
"docs": [
" The maximum number of nominators rewarded for each validator.",
"",
" For each validator only the `$MaxNominatorRewardedPerValidator` biggest stakers can claim",
" their reward. This used to limit the i/o cost for the nominator payout."
" For each validator only the `$MaxNominatorRewardedPerValidator` biggest stakers can",
" claim their reward. This used to limit the i/o cost for the nominator payout."
]
},
{
@@ -3927,15 +3951,15 @@
{
"name": "TooManyNominators",
"docs": [
" There are too many nominators in the system. Governance needs to adjust the staking settings",
" to keep things safe for the runtime."
" There are too many nominators in the system. Governance needs to adjust the staking",
" settings to keep things safe for the runtime."
]
},
{
"name": "TooManyValidators",
"docs": [
" There are too many validators in the system. Governance needs to adjust the staking settings",
" to keep things safe for the runtime."
" There are too many validators in the system. Governance needs to adjust the staking",
" settings to keep things safe for the runtime."
]
}
],
@@ -4095,8 +4119,8 @@
"SessionIndex"
],
"docs": [
" New session has happened. Note that the argument is the \\[session_index\\], not the block",
" number as the type might suggest."
" New session has happened. Note that the argument is the \\[session_index\\], not the",
" block number as the type might suggest."
]
}
],
@@ -4629,8 +4653,8 @@
" - `to`: The account whose voting the `target` account's voting power will follow.",
" - `conviction`: The conviction that will be attached to the delegated votes. When the",
" account is undelegated, the funds will be locked for the corresponding period.",
" - `balance`: The amount of the account's balance to be used in delegating. This must",
" not be more than the account's current balance.",
" - `balance`: The amount of the account's balance to be used in delegating. This must not",
" be more than the account's current balance.",
"",
" Emits `Delegated`.",
"",
@@ -4753,8 +4777,8 @@
" The dispatch origin of this call must be _Signed_.",
"",
" - `proposal_hash`: The preimage hash of a proposal.",
" - `proposal_length_upper_bound`: an upper bound on length of the proposal.",
" Extrinsic is weighted according to this value with no refund.",
" - `proposal_length_upper_bound`: an upper bound on length of the proposal. Extrinsic is",
" weighted according to this value with no refund.",
"",
" This will only work after `VotingPeriod` blocks from the time that the preimage was",
" noted, if it's the same account doing it. If it's a different account, then it'll only",
@@ -4935,7 +4959,8 @@
"Vec<AccountId>"
],
"docs": [
" A public proposal has been tabled for referendum vote. \\[proposal_index, deposit, depositors\\]"
" A public proposal has been tabled for referendum vote. \\[proposal_index, deposit,",
" depositors\\]"
]
},
{
@@ -5080,15 +5105,6 @@
" \\[proposal_hash, provider, deposit, reaper\\]"
]
},
{
"name": "Unlocked",
"args": [
"AccountId"
],
"docs": [
" An \\[account\\] has been unlocked successfully."
]
},
{
"name": "Blacklisted",
"args": [
@@ -5105,11 +5121,12 @@
"type": "BlockNumber",
"value": "0x002f0d00",
"docs": [
" The minimum period of locking and the period between a proposal being approved and enacted.",
" The minimum period of locking and the period between a proposal being approved and",
" enacted.",
"",
" It should generally be a little more than the unstake period to ensure that",
" voting stakers have an opportunity to remove themselves from the system in the case where",
" they are on the losing side of a vote."
" voting stakers have an opportunity to remove themselves from the system in the case",
" where they are on the losing side of a vote."
]
},
{
@@ -5141,9 +5158,9 @@
"type": "bool",
"value": "0x01",
"docs": [
" Indicator for whether an emergency origin is even allowed to happen. Some chains may want",
" to set this permanently to `false`, others may want to condition it on things such as",
" an upgrade having happened recently."
" Indicator for whether an emergency origin is even allowed to happen. Some chains may",
" want to set this permanently to `false`, others may want to condition it on things such",
" as an upgrade having happened recently."
]
},
{
@@ -5203,12 +5220,6 @@
" Proposal does not exist"
]
},
{
"name": "BadIndex",
"docs": [
" Unknown index"
]
},
{
"name": "AlreadyCanceled",
"docs": [
@@ -5251,12 +5262,6 @@
" Identity may not veto a proposal twice"
]
},
{
"name": "NotDelegated",
"docs": [
" Not delegated"
]
},
{
"name": "DuplicatePreimage",
"docs": [
@@ -5305,18 +5310,6 @@
" No proposals waiting"
]
},
{
"name": "NotLocked",
"docs": [
" The target account does not have a lock."
]
},
{
"name": "NotExpired",
"docs": [
" The lock on the account to be unlocked has not yet expired."
]
},
{
"name": "NotVoter",
"docs": [
@@ -5378,12 +5371,6 @@
" Maximum number of votes reached."
]
},
{
"name": "InvalidWitness",
"docs": [
" The provided witness data is wrong."
]
},
{
"name": "TooManyProposals",
"docs": [
@@ -6484,9 +6471,9 @@
" origin is removed as a runner-up.",
" - `origin` is a current member. In this case, the deposit is unreserved and origin is",
" removed as a member, consequently not being a candidate for the next round anymore.",
" Similar to [`remove_member`](Self::remove_member), if replacement runners exists,",
" they are immediately used. If the prime is renouncing, then no prime will exist until",
" the next round.",
" Similar to [`remove_member`](Self::remove_member), if replacement runners exists, they",
" are immediately used. If the prime is renouncing, then no prime will exist until the",
" next round.",
"",
" The dispatch origin of this call must be signed, and have one of the above roles.",
"",
@@ -7617,7 +7604,8 @@
"",
" Instantiation is executed as follows:",
"",
" - The supplied `code` is instrumented, deployed, and a `code_hash` is created for that code.",
" - The supplied `code` is instrumented, deployed, and a `code_hash` is created for that",
" code.",
" - If the `code_hash` already exists on the chain the underlying `code` will be shared.",
" - The destination address is computed based on the sender, code_hash and the salt.",
" - The smart-contract account is created at the computed address.",
@@ -7779,8 +7767,8 @@
" # Params",
"",
" - `contract`: The contract that emitted the event.",
" - `data`: Data supplied by the contract. Metadata generated during contract",
" compilation is needed to decode it."
" - `data`: Data supplied by the contract. Metadata generated during contract compilation",
" is needed to decode it."
]
},
{
@@ -7800,7 +7788,7 @@
{
"name": "Schedule",
"type": "Schedule",
"value": "0x0400000000020000000100008000000010000000001000000001000020000000200000000040000000000200020000008e0f0000b04602009a8c0300a9720000767600005e380000ea5e00000753000097000000579e030088130500b60000007a170000c11100005721000099370000483a0000d0110000d8d12c08bc4300005c430000bb2e0000a942000000260000b72300009c370000ad540000de540000ca5400000354000018550000e553000011550000c053000007540000da540000a0530000e85300008d5400004a690000bd680000a56a000096670000b053000013540000055400006a5500009255000060550000f455000033550000cae32900000000007a332a00000000004041290000000000a6fb5d000000000060c02a0000000000e6d6290000000000065329000000000062002a0000000000d425290000000000b0522a00000000005cb3540000000000b41c1600000000008057640000000000000100000000000008f6380000000000710200000000000078d68a210000000098d6de2a000000007c75640900000000466d6f000000000070baac0000000000ec73de07000000007406000000000000922c190000000000fc9f1d00000000008618ee0900000000450200000000000082dc6108000000003e573102000000002704000000000000cc94430b000000009406e1100000000096fa930800000000dc010000000000009c020000000000001843c12400000000f001000000000000b80200000000000094070000000000008a9b2a0000000000561200000000000046432b0000000000ab0c000000000000c08c260000000000b005000000000000acd2260000000000b005000000000000",
"value": "0x040000000002000000010000800000001000000000100000000100002000000020000000004000000000020002000000810600004e6202009680030050150000ee180000c2090000cf140000b52600009a000000cc5101005dc002004d090000a206000059080000d80600002b1c0000d41e0000ec0900005ca8b5082d08000043070000e40a00000a0700008d0600000d0600009a0600001f08000010080000be0700008f080000040800004c080000ff07000024080000520800001d080000ac0700003608000029070000ec1f0000881e0000cb200000771e000032080000b7070000f2070000900900000d09000094080000810800001e0800008a25230000000000902e2300000000006c4e22000000000054624900000000008a53220000000000ea3e2200000000003e2c220000000000de18220000000000f04c220000000000ee3a220000000000b2054300000000004e5011000000000050d6650000000000f2030000000000005037410000000000e30100000000000050a02b2000000000587eaf290000000004ece30800000000d4e9550000000000ae7c7f0000000000cabfbe0700000000b90500000000000002af120000000000d2c0170000000000ead5bf07000000009601000000000000d2280c08000000005242e201000000006b03000000000000c2e5520a000000006a36c80f00000000a2c639080000000039010000000000001302000000000000d2b3ac22000000004a010000000000002d02000000000000de0600000000000086ad210000000000a11100000000000080ad220000000000f00b000000000000487b1e0000000000fe0400000000000092fe1e0000000000fe04000000000000",
"docs": [
" Cost schedule and limits."
]
@@ -7835,8 +7823,9 @@
" deposited while the contract is alive. Costs for additional storage are added to",
" this base cost.",
"",
" This is a simple way to ensure that contracts with empty storage eventually get deleted by",
" making them pay rent. This creates an incentive to remove them early in order to save rent."
" This is a simple way to ensure that contracts with empty storage eventually get deleted",
" by making them pay rent. This creates an incentive to remove them early in order to save",
" rent."
]
},
{
@@ -7846,10 +7835,10 @@
"docs": [
" The balance a contract needs to deposit per storage byte to stay alive indefinitely.",
"",
" Let's suppose the deposit is 1,000 BU (balance units)/byte and the rent is 1 BU/byte/day,",
" then a contract with 1,000,000 BU that uses 1,000 bytes of storage would pay no rent.",
" But if the balance reduced to 500,000 BU and the storage stayed the same at 1,000,",
" then it would pay 500 BU/day."
" Let's suppose the deposit is 1,000 BU (balance units)/byte and the rent is 1",
" BU/byte/day, then a contract with 1,000,000 BU that uses 1,000 bytes of storage would",
" pay no rent. But if the balance reduced to 500,000 BU and the storage stayed the same at",
" 1,000, then it would pay 500 BU/day."
]
},
{
@@ -7886,7 +7875,7 @@
{
"name": "DeletionQueueDepth",
"type": "u32",
"value": "0x1a040000",
"value": "0x18040000",
"docs": [
" The maximum number of tries that can be queued for deletion."
]
@@ -8213,7 +8202,8 @@
}
],
"docs": [
" Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo key.",
" Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo",
" key.",
"",
" The dispatch origin for this call must be _Signed_.",
"",
@@ -8381,8 +8371,8 @@
],
"docs": [
" # <weight>",
" - Complexity: `O(K + E)` where K is length of `Keys` (heartbeat.validators_len)",
" and E is length of `heartbeat.network_state.external_address`",
" - Complexity: `O(K + E)` where K is length of `Keys` (heartbeat.validators_len) and E is",
" length of `heartbeat.network_state.external_address`",
" - `O(K)`: decoding of length `K`",
" - `O(E)`: decoding/encoding of length `E`",
" - DbReads: pallet_session `Validators`, pallet_session `CurrentIndex`, `Keys`,",
@@ -9181,8 +9171,8 @@
"value": "0x0080f420e6b500000000000000000000",
"docs": [
" The amount held on deposit for a registered subaccount. This should account for the fact",
" that one storage item's value will increase by the size of an account ID, and there will be",
" another trie item whose value is the size of an account ID plus 32 bytes."
" that one storage item's value will increase by the size of an account ID, and there will",
" be another trie item whose value is the size of an account ID plus 32 bytes."
]
},
{
@@ -10446,13 +10436,13 @@
" The dispatch origin for this call must be _Signed_.",
"",
" Parameters:",
" - `friends`: A list of friends you trust to vouch for recovery attempts.",
" Should be ordered and contain no duplicate values.",
" - `threshold`: The number of friends that must vouch for a recovery attempt",
" before the account can be recovered. Should be less than or equal to",
" the length of the list of friends.",
" - `delay_period`: The number of blocks after a recovery attempt is initialized",
" that needs to pass before the account can be recovered.",
" - `friends`: A list of friends you trust to vouch for recovery attempts. Should be",
" ordered and contain no duplicate values.",
" - `threshold`: The number of friends that must vouch for a recovery attempt before the",
" account can be recovered. Should be less than or equal to the length of the list of",
" friends.",
" - `delay_period`: The number of blocks after a recovery attempt is initialized that",
" needs to pass before the account can be recovered.",
"",
" # <weight>",
" - Key: F (len of friends)",
@@ -10484,8 +10474,8 @@
" The dispatch origin for this call must be _Signed_.",
"",
" Parameters:",
" - `account`: The lost account that you want to recover. This account",
" needs to be recoverable (i.e. have a recovery configuration).",
" - `account`: The lost account that you want to recover. This account needs to be",
" recoverable (i.e. have a recovery configuration).",
"",
" # <weight>",
" - One storage read to check that account is recoverable. O(F)",
@@ -10520,8 +10510,7 @@
"",
" Parameters:",
" - `lost`: The lost account that you want to recover.",
" - `rescuer`: The account trying to rescue the lost account that you",
" want to vouch for.",
" - `rescuer`: The account trying to rescue the lost account that you want to vouch for.",
"",
" The combination of these two parameters must point to an active recovery",
" process.",
@@ -10555,8 +10544,8 @@
" `threshold` or more vouches, waited `delay_period` blocks since initiation.",
"",
" Parameters:",
" - `account`: The lost account that you want to claim has been successfully",
" recovered by you.",
" - `account`: The lost account that you want to claim has been successfully recovered by",
" you.",
"",
" # <weight>",
" Key: F (len of friends in config), V (len of vouching friends)",
@@ -10733,9 +10722,11 @@
"type": "BalanceOf",
"value": "0x00203d88792d00000000000000000000",
"docs": [
" The amount of currency needed per additional user when creating a recovery configuration.",
" The amount of currency needed per additional user when creating a recovery",
" configuration.",
"",
" This is held for adding `sizeof(AccountId)` bytes more into a pre-existing storage value."
" This is held for adding `sizeof(AccountId)` bytes more into a pre-existing storage",
" value."
]
},
{
@@ -11322,8 +11313,8 @@
"type": "Weight",
"value": "0x00806e8774010000",
"docs": [
" The maximum weight that may be scheduled per block for any dispatchables of less priority",
" than `schedule::HARD_DEADLINE`."
" The maximum weight that may be scheduled per block for any dispatchables of less",
" priority than `schedule::HARD_DEADLINE`."
]
},
{
@@ -11765,7 +11756,8 @@
],
"docs": [
" Anonymous account has been created by new proxy with given",
" disambiguation index and proxy type. \\[anonymous, who, proxy_type, disambiguation_index\\]"
" disambiguation index and proxy type. \\[anonymous, who, proxy_type,",
" disambiguation_index\\]"
]
},
{
@@ -11799,9 +11791,9 @@
"docs": [
" The amount of currency needed per proxy added.",
"",
" This is held for adding 32 bytes plus an instance of `ProxyType` more into a pre-existing",
" storage value. Thus, when configuring `ProxyDepositFactor` one should take into account",
" `32 + proxy_type.encode().len()` bytes of data."
" This is held for adding 32 bytes plus an instance of `ProxyType` more into a",
" pre-existing storage value. Thus, when configuring `ProxyDepositFactor` one should take",
" into account `32 + proxy_type.encode().len()` bytes of data."
]
},
{
@@ -11827,7 +11819,8 @@
"docs": [
" The base amount of currency needed to reserve for creating an announcement.",
"",
" This is held when a new storage item holding a `Balance` is created (typically 16 bytes)."
" This is held when a new storage item holding a `Balance` is created (typically 16",
" bytes)."
]
},
{
@@ -12030,9 +12023,8 @@
" - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.",
" - One event.",
" - The weight of the `call`.",
" - Storage: inserts one item, value size bounded by `MaxSignatories`, with a",
" deposit taken for its lifetime of",
" `DepositBase + threshold * DepositFactor`.",
" - Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit",
" taken for its lifetime of `DepositBase + threshold * DepositFactor`.",
" -------------------------------",
" - DB Weight:",
" - Reads: Multisig Storage, [Caller Account], Calls (if `store_call`)",
@@ -12094,9 +12086,8 @@
" - Up to one binary search and insert (`O(logS + S)`).",
" - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.",
" - One event.",
" - Storage: inserts one item, value size bounded by `MaxSignatories`, with a",
" deposit taken for its lifetime of",
" `DepositBase + threshold * DepositFactor`.",
" - Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit",
" taken for its lifetime of `DepositBase + threshold * DepositFactor`.",
" ----------------------------------",
" - DB Weight:",
" - Read: Multisig Storage, [Caller Account]",
@@ -12211,8 +12202,8 @@
"type": "BalanceOf",
"value": "0x00f01c0adbed01000000000000000000",
"docs": [
" The base amount of currency needed to reserve for creating a multisig execution or to store",
" a dispatch call for later.",
" The base amount of currency needed to reserve for creating a multisig execution or to",
" store a dispatch call for later.",
"",
" This is held for an additional storage item whose value size is",
" `4 + sizeof((BlockNumber, Balance, AccountId))` bytes and whose key size is",
@@ -13311,8 +13302,8 @@
" - `id`: The identifier of the new asset. This must not be currently in use to identify",
" an existing asset.",
" - `owner`: The owner of this class of assets. The owner has full superuser permissions",
" over this asset, but may later change and configure the permissions using `transfer_ownership`",
" and `set_team`.",
" over this asset, but may later change and configure the permissions using",
" `transfer_ownership` and `set_team`.",
" - `min_balance`: The minimum balance of this new asset that any single account must",
" have. If an account's balance is reduced below this, then it collapses to zero.",
"",
@@ -14304,7 +14295,8 @@
{
"name": "NoProvider",
"docs": [
" No provider reference exists to allow a non-zero balance of a non-self-sufficient asset."
" No provider reference exists to allow a non-zero balance of a non-self-sufficient",
" asset."
]
},
{
@@ -14969,8 +14961,8 @@
{
"name": "BidTooLow",
"docs": [
" The queue for the bid's duration is full and the amount bid is too low to get in through",
" replacing an existing bid."
" The queue for the bid's duration is full and the amount bid is too low to get in",
" through replacing an existing bid."
]
},
{
@@ -16313,9 +16305,9 @@
}
],
"docs": [
" Index and store data on chain. Minimum data size is 1 bytes, maximum is `MaxTransactionSize`.",
" Data will be removed after `STORAGE_PERIOD` blocks, unless `renew` is called.",
" # <weight>",
" Index and store data on chain. Minimum data size is 1 bytes, maximum is",
" `MaxTransactionSize`. Data will be removed after `STORAGE_PERIOD` blocks, unless `renew`",
" is called. # <weight>",
" - n*log(n) of data size, as all data is pushed to an in-memory trie.",
" Additionally contains a DB write.",
" # </weight>"
@@ -16355,7 +16347,8 @@
" Check storage proof for block number `block_number() - StoragePeriod`.",
" If such block does not exist the proof is expected to be `None`.",
" # <weight>",
" - Linear w.r.t the number of indexed transactions in the proved block for random probing.",
" - Linear w.r.t the number of indexed transactions in the proved block for random",
" probing.",
" There's a DB read for each transaction.",
" Here we assume a maximum of 100 probed transactions.",
" # </weight>"
+1 -1
View File
@@ -3,4 +3,4 @@
// Auto-generated by @polkadot/dev, do not edit
export const packageInfo = { name: '@polkadot/types-support', version: '5.4.1' };
export const packageInfo = { name: '@polkadot/types-support', version: '5.6.1' };
+7 -7
View File
@@ -1,6 +1,6 @@
{
"name": "@polkadot/types",
"version": "5.4.1",
"version": "5.6.1",
"type": "module",
"description": "Implementation of the Parity codec",
"main": "index.js",
@@ -19,14 +19,14 @@
"bugs": "https://github.com/polkadot-js/api/issues",
"homepage": "https://github.com/polkadot-js/api/tree/master/packages/types#readme",
"dependencies": {
"@babel/runtime": "^7.14.8",
"@polkadot/util": "^7.1.1",
"@polkadot/util-crypto": "^7.1.1",
"rxjs": "^7.2.0"
"@babel/runtime": "^7.15.3",
"@polkadot/util": "^7.2.1",
"@polkadot/util-crypto": "^7.2.1",
"rxjs": "^7.3.0"
},
"devDependencies": {
"@polkadot/keyring": "^7.1.1",
"@polkadot/types-support": "5.4.1",
"@polkadot/keyring": "^7.2.1",
"@polkadot/types-support": "5.6.1",
"@types/bn.js": "^4.11.6",
"bn.js": "^4.11.9"
}
+13 -31
View File
@@ -57,7 +57,7 @@ import type { Multiplier } from '@polkadot/types/interfaces/txpayment';
import type { ClassDetails, ClassId, ClassMetadata, DepositBalance, DepositBalanceOf, DestroyWitness, InstanceDetails, InstanceId, InstanceMetadata } from '@polkadot/types/interfaces/uniques';
import type { Multisig, Timepoint } from '@polkadot/types/interfaces/utility';
import type { VestingInfo } from '@polkadot/types/interfaces/vesting';
import type { AccountId32Junction, AccountIndex64Junction, AccountKey20Junction, AssetInstance, BodyId, BodyPart, BodyPartAtLeastProportion, BodyPartFraction, BodyPartMoreThanProportion, DoubleEncodedCall, InboundStatus, Junction, MultiAsset, MultiAssetAbstractFungible, MultiAssetAbstractNonFungible, MultiAssetConcreteFungible, MultiAssetConcreteNonFungible, MultiLocation, NetworkId, OutboundStatus, Outcome, PluralityJunction, QueueConfigData, VersionedMultiAsset, VersionedMultiLocation, VersionedXcm, Xcm, XcmAssetEffects, XcmError, XcmHrmpChannelAccepted, XcmHrmpChannelClosing, XcmHrmpNewChannelOpenRequest, XcmOrder, XcmOrderBuyExecution, XcmOrderDepositAsset, XcmOrderDepositReserveAsset, XcmOrderExchangeAsset, XcmOrderInitiateReserveWithdraw, XcmOrderInitiateTeleport, XcmOrderQueryHolding, XcmOrigin, XcmOriginKind, XcmQueryResponse, XcmRelayedFrom, XcmReserveAssetDeposit, XcmResponse, XcmTeleportAsset, XcmTransact, XcmTransferAsset, XcmTransferReserveAsset, XcmWithdrawAsset, XcmpMessageFormat } from '@polkadot/types/interfaces/xcm';
import type { AssetInstance, AssetInstanceV0, AssetInstanceV1, BodyId, BodyPart, DoubleEncodedCall, Fungibility, InboundStatus, Junction, MultiAsset, MultiAssetFilter, MultiAssetV0, MultiAssetV1, MultiAssets, MultiLocation, NetworkId, OutboundStatus, Outcome, QueueConfigData, VersionedMultiAsset, VersionedMultiLocation, VersionedXcm, WildFungibility, WildMultiAsset, Xcm, XcmAssetId, XcmError, XcmOrder, XcmOrderV0, XcmOrderV1, XcmOrigin, XcmOriginKind, XcmResponse, XcmpMessageFormat } from '@polkadot/types/interfaces/xcm';
declare module '@polkadot/types/types/registry' {
export interface InterfaceTypes {
@@ -68,17 +68,14 @@ declare module '@polkadot/types/types/registry' {
AccountId: AccountId;
AccountId20: AccountId20;
AccountId32: AccountId32;
AccountId32Junction: AccountId32Junction;
AccountIdOf: AccountIdOf;
AccountIndex: AccountIndex;
AccountIndex64Junction: AccountIndex64Junction;
AccountInfo: AccountInfo;
AccountInfoWithDualRefCount: AccountInfoWithDualRefCount;
AccountInfoWithProviders: AccountInfoWithProviders;
AccountInfoWithRefCount: AccountInfoWithRefCount;
AccountInfoWithRefCountU8: AccountInfoWithRefCountU8;
AccountInfoWithTripleRefCount: AccountInfoWithTripleRefCount;
AccountKey20Junction: AccountKey20Junction;
AccountStatus: AccountStatus;
AccountValidity: AccountValidity;
AccountVote: AccountVote;
@@ -105,6 +102,8 @@ declare module '@polkadot/types/types/registry' {
AssetDetails: AssetDetails;
AssetId: AssetId;
AssetInstance: AssetInstance;
AssetInstanceV0: AssetInstanceV0;
AssetInstanceV1: AssetInstanceV1;
AssetMetadata: AssetMetadata;
AssetOptions: AssetOptions;
AssignmentId: AssignmentId;
@@ -158,9 +157,6 @@ declare module '@polkadot/types/types/registry' {
BlockWeights: BlockWeights;
BodyId: BodyId;
BodyPart: BodyPart;
BodyPartAtLeastProportion: BodyPartAtLeastProportion;
BodyPartFraction: BodyPartFraction;
BodyPartMoreThanProportion: BodyPartMoreThanProportion;
bool: bool;
Bool: Bool;
Bounty: Bounty;
@@ -405,6 +401,7 @@ declare module '@polkadot/types/types/registry' {
FunctionMetadataV9: FunctionMetadataV9;
FundIndex: FundIndex;
FundInfo: FundInfo;
Fungibility: Fungibility;
Gas: Gas;
GiltBid: GiltBid;
GlobalValidationData: GlobalValidationData;
@@ -550,10 +547,10 @@ declare module '@polkadot/types/types/registry' {
MortalEra: MortalEra;
MultiAddress: MultiAddress;
MultiAsset: MultiAsset;
MultiAssetAbstractFungible: MultiAssetAbstractFungible;
MultiAssetAbstractNonFungible: MultiAssetAbstractNonFungible;
MultiAssetConcreteFungible: MultiAssetConcreteFungible;
MultiAssetConcreteNonFungible: MultiAssetConcreteNonFungible;
MultiAssetFilter: MultiAssetFilter;
MultiAssets: MultiAssets;
MultiAssetV0: MultiAssetV0;
MultiAssetV1: MultiAssetV1;
MultiDisputeStatementSet: MultiDisputeStatementSet;
MultiLocation: MultiLocation;
Multiplier: Multiplier;
@@ -656,7 +653,6 @@ declare module '@polkadot/types/types/registry' {
PhantomData: PhantomData;
Phase: Phase;
PhragmenScore: PhragmenScore;
PluralityJunction: PluralityJunction;
Points: Points;
PortableRegistry: PortableRegistry;
PortableType: PortableType;
@@ -971,36 +967,22 @@ declare module '@polkadot/types/types/registry' {
WeightMultiplier: WeightMultiplier;
WeightPerClass: WeightPerClass;
WeightToFeeCoefficient: WeightToFeeCoefficient;
WildFungibility: WildFungibility;
WildMultiAsset: WildMultiAsset;
WinnersData: WinnersData;
WinnersDataTuple: WinnersDataTuple;
WinningData: WinningData;
WinningDataEntry: WinningDataEntry;
WithdrawReasons: WithdrawReasons;
Xcm: Xcm;
XcmAssetEffects: XcmAssetEffects;
XcmAssetId: XcmAssetId;
XcmError: XcmError;
XcmHrmpChannelAccepted: XcmHrmpChannelAccepted;
XcmHrmpChannelClosing: XcmHrmpChannelClosing;
XcmHrmpNewChannelOpenRequest: XcmHrmpNewChannelOpenRequest;
XcmOrder: XcmOrder;
XcmOrderBuyExecution: XcmOrderBuyExecution;
XcmOrderDepositAsset: XcmOrderDepositAsset;
XcmOrderDepositReserveAsset: XcmOrderDepositReserveAsset;
XcmOrderExchangeAsset: XcmOrderExchangeAsset;
XcmOrderInitiateReserveWithdraw: XcmOrderInitiateReserveWithdraw;
XcmOrderInitiateTeleport: XcmOrderInitiateTeleport;
XcmOrderQueryHolding: XcmOrderQueryHolding;
XcmOrderV0: XcmOrderV0;
XcmOrderV1: XcmOrderV1;
XcmOrigin: XcmOrigin;
XcmOriginKind: XcmOriginKind;
XcmpMessageFormat: XcmpMessageFormat;
XcmQueryResponse: XcmQueryResponse;
XcmRelayedFrom: XcmRelayedFrom;
XcmReserveAssetDeposit: XcmReserveAssetDeposit;
XcmResponse: XcmResponse;
XcmTeleportAsset: XcmTeleportAsset;
XcmTransact: XcmTransact;
XcmTransferAsset: XcmTransferAsset;
XcmTransferReserveAsset: XcmTransferReserveAsset;
XcmWithdrawAsset: XcmWithdrawAsset;
}
}
+31 -12
View File
@@ -29,8 +29,10 @@ assert(oo0.divn(123) && [...oo1.values()] && oo2[6].isAscii && oo3.divn(3) && oo
const aa0 = registry.createType(' AccountId');
const aa1 = registry.createType('BlockAttestations');
const aa2 = registry.createType('ExtrinsicEra');
const aa3 = registry.createType('VestingInfo');
const aa4 = registry.createType('(Vec<ValidatorIndex>, CompactAssignmentsTo257, PhragmenScore, EraIndex)');
assert(aa0.isAscii && aa1.receipt && aa2.isMortalEra, 'All ok');
assert(aa0.isAscii && aa1.receipt && aa2.isMortalEra && aa3.toHuman() && aa4[3].toNumber(), 'All ok');
// Should be Codec, we don't know this one
const bb = registry.createType('Something');
@@ -46,35 +48,52 @@ const vv = registry.createType('Vec< Vec< Vec< Vec<u8>> > >');
// vec with tuple
const vt = registry.createType('Vec<(u8, u16)>');
// nested stuff from all-over
const vn = registry.createType('Vec<(u32, (u32, u64), Vec<u8>, Vec<(u32, u64)>, [u8;32], [u128;32])>');
const vn = registry.createType('Vec<(u32, (u32, u64), Vec<u8>, Vec<u32>, Vec<(u32, u64)>, [u8;32], [u128;32])>');
// nested fixed
const nf = registry.createType('[[[u8;32];5];3]');
// with linkage
const tl = registry.createType('(ValidatorPrefsWithCommission, Linkage<AccountId>)');
assert(ee[0].unwrap().unwrap().divn(123) && vb.unwrap().bitLength() && vv.toHuman() && vn.toHuman() && vt.toHuman(), 'All ok');
assert(ee[0].unwrap().unwrap().divn(123) && vb.unwrap().bitLength() && vv.toHuman() && vn[0][3][0].bitLength && vt.toHuman() && nf.toHuman() && tl[1].next, 'All ok');
// tuple & struct
const vs = registry.createType('(u8, {"a":"u32","b":"(u32,u64)"},(u8,u16),{"foo":"Bar"},u16)');
// set
const st = registry.createType('{"_set": { "A": 1, "B": 2, "C": 4 } }');
// enum
const en = registry.createType('{"_enum": { "A": 1, "B": 2, "C": 4 } }');
assert(vs.toHuman() && st.strings && en.index, 'All ok');
// Should end up as Raw
const gg = registry.createType('[ u8 ;678]');
assert(gg.bitLength, 'All ok');
assert(gg.subarray(1), 'All ok');
// Should end up as VecFixed<u128>
const hh = registry.createType('[u128; 32]');
// maps and sets
const ms = registry.createType('(BTreeSet<u8>, BTreeMap<u16, u32>, HashMap<u64, u128>)');
assert(hh[0].bitLength(), 'All ok');
assert(hh[0].bitLength() && ms[0].strings && ms[1].values && ms[2].keys, 'All ok');
// tuple! ITuple<[u32, Compact<u64>, u128, Codec]>
const tt1 = registry.createType('(u32, Compact< u64 >, u128 , Something)');
const tt1 = registry.createType('(u32, Compact<u64>, u128 , Something)');
// unwraps into a u32
const tt2 = registry.createType('( u32 )');
// lots and lots of params
const tt4 = registry.createType('(u8,u16,u32,u64,u128,u256,Break,u256,u128,u64,u32,u16,u8)');
const tt2 = registry.createType('(((u32)))');
// lots and lots of params (indicates recursion limit)
const tt4 = registry.createType('(u8,u16,u32,u64,u128,u256,u8,u16,u32,u64,u128,u256,u8,u16,u32,u64,u128,u256)');
// empty
const tt5 = registry.createType('()');
// nested tuples
const tt6 = registry.createType('(u8, (u16, (u32, u64, u32)), (u64, u64))');
const tt6 = registry.createType('(u8, (u16, (u32, u64, u128)), (u64, u128))');
// more nested tuples
const tt7 = registry.createType('(((u8, u8), (u8, u8)), u16)');
const tt7 = registry.createType('(((u8, u16, u32), (u32, u16, u8)), u128, u256)');
// nested tuples with a wrapper
const tt8 = registry.createType('(u8, Vec<(u16, u32)>, Option<(u128, u128)>)');
// same example as above
const tt9 = registry.createType('(u32, (u32, u64), Vec<u8>, Vec<(u32, u64)>, [u8;32], [u128;32])');
// tuple with nested fixed
const tta = registry.createType('([u8;32], [u16;5])');
assert(tt1[2].bitLength() && tt2.bitLength() && tt4[3].bitLength() && tt5.isEmpty && tt6[1].toHuman() && tt7.toHuman() && tt8.toHuman() && tt9.toHuman(), 'All ok');
assert(tt1[2].bitLength() && tt2.bitLength() && tt4[3].bitLength() && tt5.isEmpty && tt6[1].toHuman() && tt7.toHuman() && tt8.toHuman() && tt9.toHuman() && tta[1][1].bitLength(), 'All ok');
+1 -1
View File
@@ -15,7 +15,7 @@ import { compareArray } from './utils/compareArray';
* specific encoding/decoding on top of the base type.
* @noInheritDoc
*/
export abstract class AbstractArray<T extends Codec> extends Array<T> implements IVec<Codec> {
export abstract class AbstractArray<T extends Codec> extends Array<T> implements IVec<T> {
public readonly registry: Registry;
public createdAtHash?: Hash;
+12 -5
View File
@@ -2,7 +2,7 @@
// SPDX-License-Identifier: Apache-2.0
import type { CodecHash, Hash } from '../interfaces/runtime';
import type { AnyJson, Codec, Constructor, Registry } from '../types';
import type { AnyJson, Codec, Constructor, ISet, Registry } from '../types';
import { compactFromU8a, compactToU8a, isHex, isU8a, logger, stringify, u8aConcat, u8aToHex, u8aToU8a } from '@polkadot/util';
@@ -11,7 +11,7 @@ import { compareSet, decodeU8a, sortSet, typeToConstructor } from './utils';
const l = logger('BTreeSet');
/** @internal */
function decodeSetFromU8a<V extends Codec = Codec> (registry: Registry, ValClass: Constructor<V>, u8a: Uint8Array): Set<V> {
function decodeSetFromU8a<V extends Codec> (registry: Registry, ValClass: Constructor<V>, u8a: Uint8Array): Set<V> {
const output = new Set<V>();
const [offset, length] = compactFromU8a(u8a);
const types = [];
@@ -30,7 +30,7 @@ function decodeSetFromU8a<V extends Codec = Codec> (registry: Registry, ValClass
}
/** @internal */
function decodeSetFromSet<V extends Codec = Codec> (registry: Registry, ValClass: Constructor<V>, value: Set<any> | string[]): Set<V> {
function decodeSetFromSet<V extends Codec> (registry: Registry, ValClass: Constructor<V>, value: Set<any> | string[]): Set<V> {
const output = new Set<V>();
value.forEach((val: any) => {
@@ -60,7 +60,7 @@ function decodeSetFromSet<V extends Codec = Codec> (registry: Registry, ValClass
* @param jsonSet
* @internal
*/
function decodeSet<V extends Codec = Codec> (registry: Registry, valType: Constructor<V> | string, value?: Uint8Array | string | string[] | Set<any>): Set<V> {
function decodeSet<V extends Codec> (registry: Registry, valType: Constructor<V> | string, value?: Uint8Array | string | string[] | Set<any>): Set<V> {
if (!value) {
return new Set<V>();
}
@@ -76,7 +76,7 @@ function decodeSet<V extends Codec = Codec> (registry: Registry, valType: Constr
throw new Error('BTreeSet: cannot decode type');
}
export class BTreeSet<V extends Codec = Codec> extends Set<V> implements Codec {
export class BTreeSet<V extends Codec = Codec> extends Set<V> implements ISet<V> {
public readonly registry: Registry;
public createdAtHash?: Hash;
@@ -125,6 +125,13 @@ export class BTreeSet<V extends Codec = Codec> extends Set<V> implements Codec {
return this.size === 0;
}
/**
* @description The actual set values as a string[]
*/
public get strings (): string[] {
return [...super.values()].map((v) => v.toString());
}
/**
* @description Compares the value of the input to see if there is a match
*/
+1 -1
View File
@@ -25,7 +25,7 @@ describe('Date', (): void => {
});
describe('encode', (): void => {
const testEncode = (to: 'toBigInt' | 'toBn' | 'toISOString' | 'toNumber' | CodecTo, expected: BigInt | BN | number | string | Uint8Array): void =>
const testEncode = (to: 'toBigInt' | 'toBn' | 'toISOString' | 'toNumber' | CodecTo, expected: bigint | BN | number | string | Uint8Array): void =>
it(`can encode ${to}`, (): void => {
expect(new CodecDate(registry, 421)[to]()).toEqual(expected);
});
+2 -2
View File
@@ -2,7 +2,7 @@
// SPDX-License-Identifier: Apache-2.0
import type { CodecHash, Hash } from '../interfaces/runtime';
import type { AnyNumber, Codec, Registry } from '../types';
import type { AnyNumber, INumber, Registry } from '../types';
import type { UIntBitLength } from './types';
import { BN, bnToBn, bnToHex, bnToU8a, isString, isU8a, u8aToBn } from '@polkadot/util';
@@ -33,7 +33,7 @@ function decodeDate (value: CodecDate | Date | AnyNumber): Date {
* and has all the methods available that are applicable to any `Date`
* @noInheritDoc
*/
export class CodecDate extends Date implements Codec {
export class CodecDate extends Date implements INumber {
public readonly registry: Registry;
public createdAtHash?: Hash;
+5 -5
View File
@@ -2,7 +2,7 @@
// SPDX-License-Identifier: Apache-2.0
import type { CodecHash, Hash } from '../interfaces/runtime';
import type { AnyJson, Codec, Constructor, Registry } from '../types';
import type { AnyJson, Codec, Constructor, IMap, Registry } from '../types';
import { compactFromU8a, compactToU8a, isHex, isObject, isU8a, logger, stringify, u8aConcat, u8aToHex, u8aToU8a } from '@polkadot/util';
@@ -14,7 +14,7 @@ import { compareMap, decodeU8a, sortMap, typeToConstructor } from './utils';
const l = logger('Map');
/** @internal */
function decodeMapFromU8a<K extends Codec = Codec, V extends Codec = Codec> (registry: Registry, KeyClass: Constructor<K>, ValClass: Constructor<V>, u8a: Uint8Array): Map<K, V> {
function decodeMapFromU8a<K extends Codec, V extends Codec> (registry: Registry, KeyClass: Constructor<K>, ValClass: Constructor<V>, u8a: Uint8Array): Map<K, V> {
const output = new Map<K, V>();
const [offset, length] = compactFromU8a(u8a);
const types = [];
@@ -33,7 +33,7 @@ function decodeMapFromU8a<K extends Codec = Codec, V extends Codec = Codec> (reg
}
/** @internal */
function decodeMapFromMap<K extends Codec = Codec, V extends Codec = Codec> (registry: Registry, KeyClass: Constructor<K>, ValClass: Constructor<V>, value: Map<any, any>): Map<K, V> {
function decodeMapFromMap<K extends Codec, V extends Codec> (registry: Registry, KeyClass: Constructor<K>, ValClass: Constructor<V>, value: Map<any, any>): Map<K, V> {
const output = new Map<K, V>();
value.forEach((val: any, key: any) => {
@@ -75,7 +75,7 @@ function decodeMapFromMap<K extends Codec = Codec, V extends Codec = Codec> (reg
* @param jsonMap
* @internal
*/
function decodeMap<K extends Codec = Codec, V extends Codec = Codec> (registry: Registry, keyType: Constructor<K> | string, valType: Constructor<V> | string, value?: Uint8Array | string | Map<any, any>): Map<K, V> {
function decodeMap<K extends Codec, V extends Codec> (registry: Registry, keyType: Constructor<K> | string, valType: Constructor<V> | string, value?: Uint8Array | string | Map<any, any>): Map<K, V> {
const KeyClass = typeToConstructor(registry, keyType);
const ValClass = typeToConstructor(registry, valType);
@@ -92,7 +92,7 @@ function decodeMap<K extends Codec = Codec, V extends Codec = Codec> (registry:
throw new Error('Map: cannot decode type');
}
export class CodecMap<K extends Codec = Codec, V extends Codec = Codec> extends Map<K, V> implements Codec {
export class CodecMap<K extends Codec = Codec, V extends Codec = Codec> extends Map<K, V> implements IMap<K, V> {
public readonly registry: Registry;
public createdAtHash?: Hash;
+32
View File
@@ -0,0 +1,32 @@
// Copyright 2017-2021 @polkadot/types authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { TypeRegistry } from '../create';
import { U32 } from '../primitive';
import { Range } from '.';
describe('Range', (): void => {
const registry = new TypeRegistry();
let range: Range<U32>;
beforeEach((): void => {
const Clazz = Range.with(U32);
range = new Clazz(
registry,
[new U32(registry, 1), new U32(registry, 2)]
);
});
it('decodes', (): void => {
expect(range.toJSON()).toEqual([1, 2]);
});
it('encodes', (): void => {
expect(range.toU8a()).toEqual(new Uint8Array([1, 0, 0, 0, 2, 0, 0, 0]));
});
it('has a sane toRawType representation', (): void => {
expect(range.toRawType()).toEqual('Range<u32>');
});
});
+66
View File
@@ -0,0 +1,66 @@
// Copyright 2017-2021 @polkadot/types authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type { AnyTuple, Constructor, INumber, Registry } from '../types';
import { Tuple } from '../codec/Tuple';
type RangeType = 'Range' | 'RangeInclusive';
/**
* @name Range
* @description
* Rust `Range<T>` representation
*/
export class Range<T extends INumber> extends Tuple {
#rangeName: RangeType;
constructor (registry: Registry, Type: Constructor<T> | string, value?: AnyTuple, rangeName: RangeType = 'Range') {
super(registry, { end: Type, start: Type }, value);
this.#rangeName = rangeName;
}
public static override with <T extends INumber> (Types: Constructor<T> | string): Constructor<Range<T>> {
return class extends Range<T> {
constructor (registry: Registry, value?: AnyTuple) {
super(registry, Types, value);
}
};
}
/**
* @description Returns the starting range value
*/
public get start (): T {
return this[0] as T;
}
/**
* @description Returns the ending range value
*/
public get end (): T {
return this[1] as T;
}
/**
* @description Returns the base runtime type name for this instance
*/
public override toRawType (): string {
return `${this.#rangeName}<${this.start.toRawType()}>`;
}
}
export class RangeInclusive<T extends INumber = INumber> extends Range<T> {
constructor (registry: Registry, type: Constructor<T> | string, value?: AnyTuple) {
super(registry, type, value, 'RangeInclusive');
}
public static override with <T extends INumber> (Types: Constructor<T> | string): Constructor<RangeInclusive<T>> {
return class extends RangeInclusive<T> {
constructor (registry: Registry, value?: AnyTuple) {
super(registry, Types, value);
}
};
}
}
+2 -2
View File
@@ -1,7 +1,7 @@
// Copyright 2017-2021 @polkadot/types authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type { Codec, Constructor, Registry } from '../types';
import type { Codec, Constructor, IResult, Registry } from '../types';
import { assert } from '@polkadot/util';
@@ -12,7 +12,7 @@ import { Enum } from './Enum';
* @description
* A Result maps to the Rust Result type, that can either wrap a success or error value
*/
export class Result<O extends Codec, E extends Codec> extends Enum {
export class Result<O extends Codec, E extends Codec> extends Enum implements IResult<O, E> {
constructor (registry: Registry, Ok: Constructor<O> | string, Err: Constructor<E> | string, value?: unknown) {
// NOTE This is order-dependent, Ok (with index 0) needs to be first
// eslint-disable-next-line sort-keys
+8 -10
View File
@@ -2,7 +2,7 @@
// SPDX-License-Identifier: Apache-2.0
import type { CodecHash, Hash } from '../interfaces/runtime';
import type { Codec, Constructor, Registry } from '../types';
import type { Constructor, ISet, Registry } from '../types';
import { assert, BN, bnToBn, bnToU8a, isBn, isNumber, isString, isU8a, isUndefined, stringCamelCase, stringify, stringUpperFirst, u8aToBn, u8aToHex, u8aToU8a } from '@polkadot/util';
@@ -18,25 +18,25 @@ function encodeSet (setValues: SetValues, value: string[]): BN {
/** @internal */
function decodeSetArray (setValues: SetValues, value: string[]): string[] {
return value.reduce((result, key): string[] => {
return value.reduce<string[]>((result, key): string[] => {
assert(!isUndefined(setValues[key]), () => `Set: Invalid key '${key}' passed to Set, allowed ${Object.keys(setValues).join(', ')}`);
result.push(key);
return result;
}, [] as string[]);
}, []);
}
/** @internal */
function decodeSetNumber (setValues: SetValues, _value: BN | number): string[] {
const bn = bnToBn(_value);
const result = Object.keys(setValues).reduce((result, key): string[] => {
const result = Object.keys(setValues).reduce<string[]>((result, key): string[] => {
if (bn.and(bnToBn(setValues[key])).eq(bnToBn(setValues[key]))) {
result.push(key);
}
return result;
}, [] as string[]);
}, []);
const computed = encodeSet(setValues, result);
@@ -74,8 +74,7 @@ function decodeSet (setValues: SetValues, value: string[] | Set<string> | Uint8A
* An Set is an array of string values, represented an an encoded type by
* a bitwise representation of the values.
*/
// FIXME This is a prime candidate to extend the JavaScript built-in Set
export class CodecSet extends Set<string> implements Codec {
export class CodecSet extends Set<string> implements ISet<string> {
public readonly registry: Registry;
public createdAtHash?: Hash;
@@ -98,13 +97,12 @@ export class CodecSet extends Set<string> implements Codec {
super(registry, values, value as undefined, bitLength);
Object.keys(values).forEach((_key): void => {
const name = stringUpperFirst(stringCamelCase(_key));
const iskey = `is${name}`;
const iskey = `is${stringUpperFirst(stringCamelCase(_key))}`;
isUndefined(this[iskey as keyof this]) &&
Object.defineProperty(this, iskey, {
enumerable: true,
get: (): boolean => this.strings.includes(_key)
get: () => this.strings.includes(_key)
});
});
}
+5 -9
View File
@@ -136,7 +136,7 @@ export class Struct<
// input values, mapped by key can be anything (construction)
V extends { [K in keyof S]: any } = { [K in keyof S]: any },
// type names, mapped by key, name of Class in S
E extends { [K in keyof S]: string } = { [K in keyof S]: string }> extends Map<keyof S, Codec> implements IStruct {
E extends { [K in keyof S]: string } = { [K in keyof S]: string }> extends Map<keyof S, Codec> implements IStruct<keyof S> {
public readonly registry: Registry;
public createdAtHash?: Hash;
@@ -147,9 +147,7 @@ export class Struct<
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
constructor (registry: Registry, Types: S, value: V | Map<unknown, unknown> | unknown[] | string = {} as V, jsonMap: Map<keyof S, string> = new Map()) {
super(Object.entries(
decodeStruct(registry, mapToTypeMap(registry, Types), value, jsonMap)
) as [keyof S, Codec][]);
super(Object.entries(decodeStruct(registry, mapToTypeMap(registry, Types), value, jsonMap)));
this.registry = registry;
this.#jsonMap = jsonMap;
@@ -181,7 +179,7 @@ export class Struct<
}
/**
* @description The available keys for this enum
* @description The available keys for this struct
*/
public get defKeys (): string[] {
return Object.keys(this.#Types);
@@ -207,7 +205,7 @@ export class Struct<
*/
public get Type (): E {
return (Object
.entries(this.#Types) as [keyof S, Constructor][])
.entries(this.#Types))
.reduce((result: E, [key, Type]): E => {
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
(result as any)[key] = new Type(this.registry).toRawType();
@@ -301,9 +299,7 @@ export class Struct<
* @description Returns the base runtime type name for this instance
*/
public toRawType (): string {
return stringify(
Struct.typesToMap(this.registry, this.#Types)
);
return stringify(Struct.typesToMap(this.registry, this.#Types));
}
/**
+10 -6
View File
@@ -3,7 +3,7 @@
import type { AnyNumber, AnyString, AnyU8a, Codec, Constructor, ITuple, Registry } from '../types';
import { isHex, isU8a, stringify, u8aConcat, u8aToU8a } from '@polkadot/util';
import { isFunction, isHex, isString, isU8a, stringify, u8aConcat, u8aToU8a } from '@polkadot/util';
import { AbstractArray } from './AbstractArray';
import { decodeU8a, mapToTypeMap, typeToConstructor } from './utils';
@@ -14,7 +14,9 @@ type TupleConstructors = Constructor[] | {
[index: string]: Constructor;
};
type TupleTypes = (Constructor | string)[] | {
type TupleType = (Constructor | string);
type TupleTypes = TupleType[] | {
[index: string]: Constructor | string;
};
@@ -52,17 +54,19 @@ function decodeTuple (registry: Registry, _Types: TupleConstructors, value?: Any
export class Tuple extends AbstractArray<Codec> implements ITuple<Codec[]> {
private _Types: TupleConstructors;
constructor (registry: Registry, Types: TupleTypes, value?: AnyTuple) {
constructor (registry: Registry, Types: TupleTypes | TupleType, value?: AnyTuple) {
const Clazzes = Array.isArray(Types)
? Types.map((type): Constructor => typeToConstructor(registry, type))
: mapToTypeMap(registry, Types);
? Types.map((t) => typeToConstructor(registry, t))
: isFunction(Types) || isString(Types)
? [typeToConstructor(registry, Types)]
: mapToTypeMap(registry, Types);
super(registry, ...decodeTuple(registry, Clazzes, value));
this._Types = Clazzes;
}
public static with (Types: TupleTypes): Constructor<Tuple> {
public static with (Types: TupleTypes | TupleType): Constructor<Tuple> {
return class extends Tuple {
constructor (registry: Registry, value?: AnyTuple) {
super(registry, Types, value);
+1
View File
@@ -19,6 +19,7 @@ export { Json } from './Json';
export { Linkage } from './Linkage';
export { CodecMap, CodecMap as Map } from './Map';
export { Option } from './Option';
export { Range, RangeInclusive } from './Range';
export { Raw } from './Raw';
export { Result } from './Result';
export { CodecSet, CodecSet as Set } from './Set';
+17 -14
View File
@@ -7,20 +7,11 @@ import type { TypeDef } from './types';
import { assert, isNumber, isUndefined, stringify } from '@polkadot/util';
import { BTreeMap, BTreeSet, CodecSet, Compact, DoNotConstruct, Enum, HashMap, Int, Option, Result, Struct, Tuple, U8aFixed, UInt, Vec, VecFixed } from '../codec';
import { BTreeMap, BTreeSet, CodecSet, Compact, DoNotConstruct, Enum, HashMap, Int, Option, Range, RangeInclusive, Result, Struct, Tuple, U8aFixed, UInt, Vec, VecFixed } from '../codec';
import { Bytes, Null } from '../primitive';
import { getTypeDef } from './getTypeDef';
import { TypeDefInfo } from './types';
export function createClass<T extends Codec = Codec, K extends string = string> (registry: Registry, type: K): DetectConstructor<T, K> {
return getTypeClass(
registry,
registry.isLookupType(type)
? registry.lookup.getTypeDef(type)
: getTypeDef(type)
);
}
function getSubDefArray (value: TypeDef): TypeDef[] {
assert(value.sub && Array.isArray(value.sub), () => `Expected subtype as TypeDef[] in ${stringify(value)}`);
@@ -123,6 +114,9 @@ const infoMapping: Record<TypeDefInfo, (registry: Registry, value: TypeDef) => C
[TypeDefInfo.Plain]: (registry: Registry, value: TypeDef): Constructor<Codec> =>
registry.getOrUnknown(value.type),
[TypeDefInfo.Range]: (registry: Registry, value: TypeDef): Constructor<Codec> =>
(value.type.includes('RangeInclusive') ? RangeInclusive : Range).with(getSubType(value)),
[TypeDefInfo.Result]: (registry: Registry, value: TypeDef): Constructor<Codec> => {
const [Ok, Err] = getTypeClassArray(value);
@@ -180,14 +174,14 @@ const infoMapping: Record<TypeDefInfo, (registry: Registry, value: TypeDef) => C
// Returns the type Class for construction
export function getTypeClass<T extends Codec = Codec> (registry: Registry, typeDef: TypeDef): Constructor<T> {
let Type = registry.get<T>(typeDef.type) as Constructor<T> | undefined;
let Type = registry.get(typeDef.type);
if (Type) {
return Type;
return Type as Constructor<T>;
}
try {
Type = infoMapping[typeDef.info](registry, typeDef) as Constructor<T>;
Type = infoMapping[typeDef.info](registry, typeDef);
assert(Type, 'No class created');
@@ -198,8 +192,17 @@ export function getTypeClass<T extends Codec = Codec> (registry: Registry, typeD
Type.__fallbackType = typeDef.fallbackType;
}
return Type;
return Type as Constructor<T>;
} catch (error) {
throw new Error(`Unable to construct class from ${stringify(typeDef)}: ${(error as Error).message}`);
}
}
export function createClass<T extends Codec = Codec, K extends string = string> (registry: Registry, type: K): DetectConstructor<T, K> {
return getTypeClass(
registry,
registry.isLookupType(type)
? registry.lookup.getTypeDef(type)
: getTypeDef(type)
);
}
+23 -23
View File
@@ -2,7 +2,7 @@
// SPDX-License-Identifier: Apache-2.0
import { CodecSet, Int } from '../codec';
import { createClass, createTypeUnsafe, TypeRegistry } from '.';
import { createClass, TypeRegistry } from '.';
describe('createType', (): void => {
const registry = new TypeRegistry();
@@ -27,7 +27,7 @@ describe('createType', (): void => {
it('allows creation of a Struct', (): void => {
const raw = '{"balance":"Balance","index":"u32"}';
const struct = createTypeUnsafe(registry, raw, [{
const struct = registry.createTypeUnsafe(raw, [{
balance: 1234,
index: '0x10'
}]);
@@ -41,49 +41,49 @@ describe('createType', (): void => {
it('allows creation of a BTreeMap', (): void => {
expect(
createTypeUnsafe(registry, 'BTreeMap<Text,u32>', ['0x041c62617a7a696e6745000000']).toString()
registry.createTypeUnsafe('BTreeMap<Text,u32>', ['0x041c62617a7a696e6745000000']).toString()
).toEqual('{"bazzing":69}');
});
it('allows creation of a BTreeSet', (): void => {
expect(
createTypeUnsafe(registry, 'BTreeSet<u32>', ['0x1002000000180000001e00000050000000']).toString()
registry.createTypeUnsafe('BTreeSet<u32>', ['0x1002000000180000001e00000050000000']).toString()
).toEqual('[2,24,30,80]');
});
it('allows creation of a Enum (simple)', (): void => {
expect(
createTypeUnsafe(registry, '{"_enum": ["A", "B", "C"]}', [1]).toJSON()
registry.createTypeUnsafe('{"_enum": ["A", "B", "C"]}', [1]).toJSON()
).toEqual('B');
});
it('allows creation of a Enum (with types)', (): void => {
expect(
createTypeUnsafe(registry, '{"_enum": {"A": null, "B": "u32", "C": null} }', [1]).toJSON()
registry.createTypeUnsafe('{"_enum": {"A": null, "B": "u32", "C": null} }', [1]).toJSON()
).toEqual({ b: 0 });
});
it('allows creation of a Enum (with indexes)', (): void => {
expect(
createTypeUnsafe(registry, '{"_enum": {"A": 42, "B": 69, "C": 255} }', [69]).toJSON()
registry.createTypeUnsafe('{"_enum": {"A": 42, "B": 69, "C": 255} }', [69]).toJSON()
).toEqual('B');
});
it('allows creation of a Result', (): void => {
expect(
createTypeUnsafe(registry, 'Result<u32,Text>', ['0x011064656667']).toJSON()
registry.createTypeUnsafe('Result<u32,Text>', ['0x011064656667']).toJSON()
).toEqual({ err: 'defg' });
});
it('allows creation of a Set', (): void => {
expect(
createTypeUnsafe<CodecSet>(registry, '{"_set": { "A": 1, "B": 2, "C": 4, "D": 8, "E": 16, "G": 32, "H": 64, "I": 128 } }', [1 + 4 + 16 + 64]).strings
registry.createTypeUnsafe<CodecSet>('{"_set": { "A": 1, "B": 2, "C": 4, "D": 8, "E": 16, "G": 32, "H": 64, "I": 128 } }', [1 + 4 + 16 + 64]).strings
).toEqual(['A', 'C', 'E', 'H']);
});
it('allows creation of a Tuple', (): void => {
expect(
createTypeUnsafe(registry, '(Balance,u32)', [[1234, 5678]]).toJSON()
registry.createTypeUnsafe('(Balance,u32)', [[1234, 5678]]).toJSON()
).toEqual([
1234, // '0x000000000000000000000000000004d2',
5678
@@ -92,13 +92,13 @@ describe('createType', (): void => {
it('allows creation for a UInt<bitLength>', (): void => {
expect(
createTypeUnsafe(registry, 'UInt<2048>').toRawType()
registry.createType('UInt<2048>').toRawType()
).toEqual('u2048');
});
it('fails creation for a UInt<bitLength> where bitLength is not power of 8', (): void => {
expect(
() => createTypeUnsafe(registry, 'UInt<20>').toRawType()
() => registry.createType('UInt<20>').toRawType()
).toThrow('UInt<20>: Only support for UInt<bitLength>, where length <= 8192 and a power of 8');
});
@@ -112,44 +112,44 @@ describe('createType', (): void => {
it('allows creation of a [u8; 8]', (): void => {
expect(
createTypeUnsafe(registry, '[u8; 8]', [[0x12, 0x00, 0x23, 0x00, 0x45, 0x00, 0x67, 0x00]]).toHex()
registry.createTypeUnsafe('[u8; 8]', [[0x12, 0x00, 0x23, 0x00, 0x45, 0x00, 0x67, 0x00]]).toHex()
).toEqual('0x1200230045006700');
});
it('allows creation of a [u16; 4]', (): void => {
expect(
createTypeUnsafe(registry, '[u16; 4]', [[0x1200, 0x2300, 0x4500, 0x6700]]).toU8a()
registry.createTypeUnsafe('[u16; 4]', [[0x1200, 0x2300, 0x4500, 0x6700]]).toU8a()
).toEqual(new Uint8Array([0x00, 0x12, 0x00, 0x23, 0x00, 0x45, 0x00, 0x67]));
});
describe('isPedantic', (): void => {
it('correctly decodes Bytes', (): void => {
expect(
createTypeUnsafe(registry, 'Bytes', ['0x12345678'], { isPedantic: true }).toHex()
registry.createTypeUnsafe('Bytes', ['0x12345678'], { isPedantic: true }).toHex()
).toEqual('0x12345678');
});
it('correctly decodes Bytes (prefixed)', (): void => {
expect(
createTypeUnsafe(registry, 'Bytes', [new Uint8Array([4 << 2, 0x12, 0x34, 0x56, 0x78])], { isPedantic: true }).toHex()
registry.createTypeUnsafe('Bytes', [new Uint8Array([4 << 2, 0x12, 0x34, 0x56, 0x78])], { isPedantic: true }).toHex()
).toEqual('0x12345678');
});
it('correctly decodes Text', (): void => {
expect(
createTypeUnsafe(registry, 'Text', ['0x70726f7669646572'], { isPedantic: true }).toString()
registry.createTypeUnsafe('Text', ['0x70726f7669646572'], { isPedantic: true }).toString()
).toEqual('provider');
});
it('correctly decodes Type', (): void => {
expect(
createTypeUnsafe(registry, 'Type', ['0x5665633c75383e'], { isPedantic: true }).toString()
registry.createTypeUnsafe('Type', ['0x5665633c75383e'], { isPedantic: true }).toString()
).toEqual('Bytes'); // Vec<u8> -> Bytes
});
it('correctly decodes [u16; 4]', (): void => {
expect(
createTypeUnsafe(registry, '[u16; 4]', ['0x0012002300450067'], { isPedantic: true }).toHex()
registry.createTypeUnsafe('[u16; 4]', ['0x0012002300450067'], { isPedantic: true }).toHex()
).toEqual('0x0012002300450067');
});
});
@@ -180,12 +180,12 @@ describe('createType', (): void => {
}
});
const value = createTypeUnsafe(registry, 'TestComplex', [{
const value = registry.createType('TestComplex', {
accountId: '0x1234567812345678123456781234567812345678123456781234567812345678',
balance: 123,
fromSrml: 0,
log: [456, 789]
}]);
});
expect(value instanceof createClass(registry, 'TestComplex')).toBe(true);
});
@@ -218,7 +218,7 @@ describe('createType', (): void => {
});
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
const cmpDef: any = createTypeUnsafe(registry, 'TestComplex');
const cmpDef: any = registry.createType('TestComplex');
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-call
expect(cmpDef.balance.bitLength()).toEqual(128);
@@ -226,7 +226,7 @@ describe('createType', (): void => {
registry.register({ Balance: 'u32' });
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
const cmpu32: any = createTypeUnsafe(registry, 'TestComplex');
const cmpu32: any = registry.createType('TestComplex');
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-call
expect(cmpu32.balance.bitLength()).toEqual(32);
+19 -12
View File
@@ -12,18 +12,25 @@ import { createClass } from './createClass';
// With isPedantic, actually check that the encoding matches that supplied. This
// is much slower, but verifies that we have the correct types defined
function checkInstance (created: Codec, value: Uint8Array): void {
function checkInstance (created: Codec, matcher: Uint8Array): void {
const u8a = created.toU8a();
const rawType = created.toRawType();
assert(
u8aEq(value, u8a) || (
// when length-prefixed from hex, just check the actual length
const isOk = (
// full match, all ok
u8aEq(u8a, matcher) ||
(
// on a length-prefixed type, just check the actual length
['Bytes', 'Text', 'Type'].includes(rawType) &&
value.length === (created as Bytes).length
),
() => `${rawType}:: Decoded input doesn't match input, received ${u8aToHex(value, 512)} (${value.length} bytes), created ${u8aToHex(u8a, 512)} (${u8a.length} bytes)`
matcher.length === (created as Bytes).length
) ||
(
// when the created is empty and matcher is also empty, let it slide...
created.isEmpty &&
matcher.every((v) => !v)
)
);
assert(isOk, () => `${rawType}:: Decoded input doesn't match input, received ${u8aToHex(matcher, 512)} (${matcher.length} bytes), created ${u8aToHex(u8a, 512)} (${u8a.length} bytes)`);
}
function checkPedantic (created: Codec, [value]: unknown[], isPedantic = false): void {
@@ -38,7 +45,7 @@ function checkPedantic (created: Codec, [value]: unknown[], isPedantic = false):
// Initializes a type with a value. This also checks for fallbacks and in the cases
// where isPedantic is specified (storage decoding), also check the format/structure
function initType<T extends Codec = Codec, K extends string = string> (registry: Registry, Type: Constructor, params: unknown[] = [], { blockHash, isOptional, isPedantic }: CreateOptions = {}): DetectCodec<T, K> {
function initType<T extends Codec> (registry: Registry, Type: Constructor, params: unknown[] = [], { blockHash, isOptional, isPedantic }: CreateOptions = {}): T {
const created = new (isOptional ? Option.with(Type) : Type)(registry, ...params);
checkPedantic(created, params, isPedantic);
@@ -59,7 +66,7 @@ export function createTypeUnsafe<T extends Codec = Codec, K extends string = str
let firstError: Error | null = null;
try {
Clazz = createClass<T, K>(registry, type);
Clazz = createClass(registry, type);
return initType(registry, Clazz, params, options);
} catch (error) {
@@ -68,7 +75,7 @@ export function createTypeUnsafe<T extends Codec = Codec, K extends string = str
if (Clazz && Clazz.__fallbackType) {
try {
Clazz = createClass<T, K>(registry, Clazz.__fallbackType as unknown as K);
Clazz = createClass(registry, Clazz.__fallbackType as unknown as K);
return initType(registry, Clazz, params, options);
} catch {
@@ -86,5 +93,5 @@ export function createTypeUnsafe<T extends Codec = Codec, K extends string = str
* @param params - The value to instantiate the type with
*/
export function createType<T extends Codec = Codec, K extends string = string> (registry: Registry, type: K, ...params: unknown[]): DetectCodec<T, K> {
return createTypeUnsafe<T, K>(registry, type, params);
return createTypeUnsafe(registry, type, params);
}
+2
View File
@@ -133,6 +133,8 @@ const encoders: Record<TypeDefInfo, (registry: Registry, typeDef: TypeDef) => st
// eslint-disable-next-line @typescript-eslint/no-unused-vars
[TypeDefInfo.Plain]: (registry: Registry, typeDef: TypeDef) =>
typeDef.displayName || typeDef.type,
[TypeDefInfo.Range]: (registry: Registry, typeDef: TypeDef) =>
encodeWithParams(registry, typeDef, typeDef.type.includes('RangeInclusive') ? 'RangeInclusive' : 'Range'),
[TypeDefInfo.Result]: (registry: Registry, typeDef: TypeDef) =>
encodeWithParams(registry, typeDef, 'Result'),
// eslint-disable-next-line @typescript-eslint/no-unused-vars
+11
View File
@@ -142,6 +142,14 @@ function _decodeFixedVec (value: TypeDef, type: string, _: string, count: number
return value;
}
function _decodeRange (value: TypeDef, _: string, subType: string): TypeDef {
const Type = getTypeDef(subType);
value.sub = [Type, Type];
return value;
}
// decode a tuple
function _decodeTuple (value: TypeDef, _: string, subType: string, count: number): TypeDef {
value.sub = subType.length === 0
@@ -195,6 +203,9 @@ const nestedExtraction: [string, string, TypeDefInfo, (value: TypeDef, type: str
['BTreeMap<', '>', TypeDefInfo.BTreeMap, _decodeTuple],
['HashMap<', '>', TypeDefInfo.HashMap, _decodeTuple],
['Int<', '>', TypeDefInfo.Int, _decodeInt],
// Not sure about these, have a specific implementation?
['Range<', '>', TypeDefInfo.Tuple, _decodeRange],
['RangeInclusive<', '>', TypeDefInfo.Tuple, _decodeRange],
['Result<', '>', TypeDefInfo.Result, _decodeTuple],
['UInt<', '>', TypeDefInfo.UInt, _decodeUInt],
['DoNotConstruct<', '>', TypeDefInfo.DoNotConstruct, _decodeDoNotConstruct]
+1 -1
View File
@@ -8,7 +8,7 @@ interface SanitizeOptions {
type Mapper = (value: string, options?: SanitizeOptions) => string;
const BOUNDED = ['BTreeMap', 'BTreeSet', 'HashMap', 'Vec'];
const ALLOWED_BOXES = BOUNDED.concat(['Compact', 'DoNotConstruct', 'Int', 'Linkage', 'Result', 'Option', 'UInt']);
const ALLOWED_BOXES = BOUNDED.concat(['Compact', 'DoNotConstruct', 'Int', 'Linkage', 'Range', 'RangeInclusive', 'Result', 'Option', 'UInt']);
const BOX_PRECEDING = ['<', '(', '[', '"', ',', ' ']; // start of vec, tuple, fixed array, part of struct def or in tuple
const mappings: Mapper[] = [
+13 -13
View File
@@ -5,23 +5,23 @@ export enum TypeDefInfo {
BTreeMap,
BTreeSet,
Compact,
DoNotConstruct,
Enum,
Linkage,
Option,
Plain,
Result,
Set,
Struct,
Tuple,
Vec,
VecFixed,
HashMap,
Int,
UInt,
DoNotConstruct,
Linkage,
Null,
Option,
Plain,
Range,
Result,
Set,
Si,
// anything not fully supported (keep this as the last entry)
Null
Struct,
Tuple,
UInt,
Vec,
VecFixed
}
export interface TypeDef {
+1 -1
View File
@@ -12,7 +12,7 @@ import { GenericAccountIndex } from '../generic/AccountIndex';
import { GenericEthereumAccountId } from './AccountId';
// eslint-disable-next-line no-use-before-define
type AnyAddress = BigInt | BN | GenericEthereumLookupSource | GenericEthereumAccountId | GenericAccountIndex | number[] | Uint8Array | number | string;
type AnyAddress = bigint | BN | GenericEthereumLookupSource | GenericEthereumAccountId | GenericAccountIndex | number[] | Uint8Array | number | string;
export const ACCOUNT_ID_PREFIX = new Uint8Array([0xff]);
@@ -23,7 +23,7 @@ export const allExtensions: ExtDef = {
// This may not match 100% with the current defaults and are used when not specified
// in the metadata (which is for very old chains). The order is important here, as
// applied by default
export const fallbackExtensions: Array<keyof typeof allExtensions> = [
export const fallbackExtensions = [
'CheckVersion',
'CheckGenesis',
'CheckEra',
+1 -1
View File
@@ -17,7 +17,7 @@ const MAX_2BYTE = new BN(1).shln(16);
const MAX_4BYTE = new BN(1).shln(32);
/** @internal */
function decodeAccountIndex (value: AnyNumber): BN | BigInt | Uint8Array | number | string {
function decodeAccountIndex (value: AnyNumber): BN | bigint | Uint8Array | number | string {
// eslint-disable-next-line @typescript-eslint/no-use-before-define
if (value instanceof GenericAccountIndex) {
// `value.toBn()` on AccountIndex returns a pure BN (i.e. not an
+1 -1
View File
@@ -12,7 +12,7 @@ import { GenericAccountId } from './AccountId';
import { GenericAccountIndex } from './AccountIndex';
// eslint-disable-next-line no-use-before-define
type AnyAddress = BigInt | BN | GenericLookupSource | GenericAccountId | GenericAccountIndex | number[] | Uint8Array | number | string;
type AnyAddress = bigint | BN | GenericLookupSource | GenericAccountId | GenericAccountIndex | number[] | Uint8Array | number | string;
export const ACCOUNT_ID_PREFIX = new Uint8Array([0xff]);
+3 -3
View File
@@ -6,7 +6,7 @@ import type { Codec } from './types';
import metadataStatic from '@polkadot/types-support/metadata/static-substrate';
import * as definitions from './interfaces/definitions';
import { createTypeUnsafe, TypeRegistry } from './create';
import { TypeRegistry } from './create';
import * as exported from './index.types';
import { Metadata } from './metadata';
@@ -34,7 +34,7 @@ function testTypes (type: string, typeNames: string[]): void {
typeNames.forEach((name): void => {
it(`creates an empty ${name}`, (): void => {
const constructFn = (): Codec =>
createTypeUnsafe(registry, name);
registry.createType(name);
if (UNCONSTRUCTABLE.includes(name.toLowerCase())) {
expect(constructFn).toThrow();
@@ -49,7 +49,7 @@ function testTypes (type: string, typeNames: string[]): void {
typeNames.forEach((name): void => {
it(`creates an empty ${name} (from empty bytes)`, (): void => {
const constructFn = (): Codec =>
createTypeUnsafe(registry, name, [createTypeUnsafe(registry, 'Bytes')]);
registry.createType(name, registry.createType('Bytes'));
if (UNCONSTRUCTABLE.includes(name.toLowerCase())) {
expect(constructFn).toThrow();
@@ -159,7 +159,7 @@ export default {
DisputeStatementSet: {
candidateHash: 'CandidateHash',
session: 'SessionIndex',
statements: 'Vec<(DisputeStatement, ValidatorIndex, ValidatorSignature)>'
statements: 'Vec<(DisputeStatement, ParaValidatorIndex, ValidatorSignature)>'
},
MultiDisputeStatementSet: 'Vec<DisputeStatementSet>',
DisputeStatement: {
@@ -169,12 +169,12 @@ export default {
}
},
ValidDisputeStatementKind: {
_enum: [
'Explicit',
'BackingSeconded',
'BackingValid',
'ApprovalChecking'
]
_enum: {
Explicit: 'Null',
BackingSeconded: 'Hash',
BackingValid: 'Hash',
ApprovalChecking: 'Null'
}
},
InvalidDisputeStatementKind: {
_enum: [
@@ -6,7 +6,6 @@ import type { ITuple } from '@polkadot/types/types';
import type { Signature } from '@polkadot/types/interfaces/extrinsics';
import type { AccountId, Balance, BalanceOf, BlockNumber, H256, Hash, Header, StorageProof, ValidatorId, Weight } from '@polkadot/types/interfaces/runtime';
import type { MembershipProof, SessionIndex } from '@polkadot/types/interfaces/session';
import type { ValidatorIndex } from '@polkadot/types/interfaces/staking';
/** @name AbridgedCandidateReceipt */
export interface AbridgedCandidateReceipt extends Struct {
@@ -189,7 +188,7 @@ export interface DisputeStatement extends Enum {
export interface DisputeStatementSet extends Struct {
readonly candidateHash: CandidateHash;
readonly session: SessionIndex;
readonly statements: Vec<ITuple<[DisputeStatement, ValidatorIndex, ValidatorSignature]>>;
readonly statements: Vec<ITuple<[DisputeStatement, ParaValidatorIndex, ValidatorSignature]>>;
}
/** @name DoubleVoteReport */
@@ -661,7 +660,9 @@ export interface ValidatorSignature extends Signature {}
export interface ValidDisputeStatementKind extends Enum {
readonly isExplicit: boolean;
readonly isBackingSeconded: boolean;
readonly asBackingSeconded: Hash;
readonly isBackingValid: boolean;
readonly asBackingValid: Hash;
readonly isApprovalChecking: boolean;
}
@@ -1,7 +1,7 @@
// Copyright 2017-2021 @polkadot/types authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { createTypeUnsafe, TypeRegistry } from '../../create';
import { TypeRegistry } from '../../create';
const ACTUAL = '0x' +
// Vec<ValidatorIndex>
@@ -181,15 +181,15 @@ describe('CompactAssignments', (): void => {
it('has a valid vote1 ([Type; <number>] equivalency)', (): void => {
expect(test.votes1.toHex()).toEqual(
createTypeUnsafe(registry, 'Vec<(u32, u16)>', [[
registry.createType('Vec<(u32, u16)>', [
[1, 3]
]]).toHex()
]).toHex()
);
});
it('hash valid vote2 (actual tuple values)', (): void => {
expect(test.votes2.toHex()).toEqual(
createTypeUnsafe(registry, 'Vec<(u32, [(u16, u16); 1], u16)>', [votes2]).toHex()
registry.createType('Vec<(u32, [(u16, u16); 1], u16)>', votes2).toHex()
);
});
@@ -199,7 +199,7 @@ describe('CompactAssignments', (): void => {
it('decodes an actual solution from the chain', (): void => {
expect(
createTypeUnsafe(registry, '(Vec<ValidatorIndex>, CompactAssignmentsTo257, PhragmenScore, EraIndex)', [ACTUAL]).toHex()
registry.createType('(Vec<ValidatorIndex>, CompactAssignmentsTo257, PhragmenScore, EraIndex)', ACTUAL).toHex()
).toEqual(ACTUAL);
});
});
+235 -103
View File
@@ -7,21 +7,6 @@
import type { Definitions } from '../../types';
const xcm = {
XcmAssetEffects: {
assets: 'Vec<MultiAsset>',
effects: 'Vec<XcmOrder>'
},
XcmWithdrawAsset: 'XcmAssetEffects',
XcmReserveAssetDeposit: 'XcmAssetEffects',
XcmTeleportAsset: 'XcmAssetEffects',
XcmQueryResponse: { queryId: 'Compact<u64>', response: 'XcmResponse' },
XcmTransferAsset: { assets: 'Vec<MultiAsset>', dest: 'MultiLocation' },
XcmTransferReserveAsset: { assets: 'Vec<MultiAsset>', dest: 'MultiLocation', effects: 'Vec<XcmOrder>' },
XcmTransact: { originType: 'XcmOriginKind', requireWeightAtMost: 'u64', call: 'DoubleEncodedCall' },
XcmHrmpNewChannelOpenRequest: { sender: 'Compact<u32>', maxMessageSize: 'Compact<u32>', maxCapacity: 'Compact<u32>' },
XcmHrmpChannelAccepted: { recipient: 'Compact<u32>' },
XcmHrmpChannelClosing: { initiator: 'Compact<u32>', sender: 'Compact<u32>', recipient: 'Compact<u32>' },
XcmRelayedFrom: { who: 'MultiLocation', message: 'Xcm' },
XcmOrigin: {
_enum: {
Xcm: 'MultiLocation'
@@ -29,17 +14,53 @@ const xcm = {
},
Xcm: {
_enum: {
WithdrawAsset: 'XcmWithdrawAsset',
ReserveAssetDeposit: 'XcmReserveAssetDeposit',
TeleportAsset: 'XcmTeleportAsset',
QueryResponse: 'XcmQueryResponse',
TransferAsset: 'XcmTransferAsset',
TransferReserveAsset: 'XcmTransferReserveAsset',
Transact: 'XcmTransact',
HrmpNewChannelOpenRequest: 'XcmHrmpNewChannelOpenRequest',
HrmpChannelAccepted: 'XcmHrmpChannelAccepted',
HrmpChannelClosing: 'XcmHrmpChannelClosing',
RelayedFrom: 'XcmRelayedFrom'
WithdrawAsset: {
assets: 'MultiAssets',
effects: 'Vec<XcmOrderV0>'
},
ReserveAssetDeposit: {
assets: 'MultiAssets',
effects: 'Vec<XcmOrderV0>'
},
ReceiveTeleportedAsset: {
assets: 'MultiAssets',
effects: 'Vec<XcmOrderV0>'
},
QueryResponse: {
queryId: 'Compact<u64>',
response: 'XcmResponse'
},
TransferAsset: {
assets: 'MultiAssets',
dest: 'MultiLocation'
},
TransferReserveAsset: {
assets: 'MultiAssets',
dest: 'MultiLocation',
effects: 'Vec<XcmOrderV0>'
},
Transact: {
originType: 'XcmOriginKind',
requireWeightAtMost: 'u64',
call: 'DoubleEncodedCall'
},
HrmpNewChannelOpenRequest: {
sender: 'Compact<u32>',
maxMessageSize: 'Compact<u32>',
maxCapacity: 'Compact<u32>'
},
HrmpChannelAccepted: {
recipient: 'Compact<u32>'
},
HrmpChannelClosing: {
initiator: 'Compact<u32>',
sender: 'Compact<u32>',
recipient: 'Compact<u32>'
},
RelayedFrom: {
who: 'MultiLocation',
message: 'Xcm'
}
}
},
XcmpMessageFormat: {
@@ -53,51 +74,146 @@ const xcm = {
};
const xmcOrder = {
XcmOrderDepositAsset: { assets: 'Vec<MultiAsset>', dest: 'MultiLocation' },
XcmOrderDepositReserveAsset: { assets: 'Vec<MultiAsset>', dest: 'MultiLocation', effects: 'Vec<XcmOrder>' },
XcmOrderExchangeAsset: { give: 'Vec<MultiAsset>', receive: 'Vec<MultiAsset>' },
XcmOrderInitiateReserveWithdraw: { assets: 'Vec<MultiAsset>', reserve: 'MultiLocation', effects: 'Vec<XcmOrder>' },
XcmOrderInitiateTeleport: { assets: 'Vec<MultiAsset>', dest: 'MultiLocation', effects: 'Vec<XcmOrder>' },
XcmOrderQueryHolding: { queryId: 'Compact<u64>', dest: 'MultiLocation', assets: 'Vec<MultiAsset>' },
XcmOrderBuyExecution: { fees: 'MultiAsset', weight: 'u64', debt: 'u64', haltOnError: 'bool', xcm: 'Vec<Xcm>' },
XcmOrder: {
XcmOrder: 'XcmOrderV1',
XcmOrderV0: {
_enum: {
Null: 'Null',
DepositAsset: 'XcmOrderDepositAsset',
DepositReserveAsset: 'XcmOrderDepositReserveAsset',
ExchangeAsset: 'XcmOrderExchangeAsset',
InitiateReserveWithdraw: 'XcmOrderInitiateReserveWithdraw',
InitiateTeleport: 'XcmOrderInitiateTeleport',
QueryHolding: 'XcmOrderQueryHolding',
BuyExecution: 'XcmOrderBuyExecution'
DepositAsset: {
assets: 'Vec<MultiAsset>',
dest: 'MultiLocation'
},
DepositReserveAsset: {
assets: 'Vec<MultiAsset>',
dest: 'MultiLocation',
effects: 'Vec<XcmOrderV0>'
},
ExchangeAsset: {
give: 'Vec<MultiAsset>',
receive: 'Vec<MultiAsset>'
},
InitiateReserveWithdraw: {
assets: 'Vec<MultiAsset>',
reserve: 'MultiLocation',
effects: 'Vec<XcmOrderV0>'
},
InitiateTeleport: {
assets: 'Vec<MultiAsset>',
dest: 'MultiLocation',
effects: 'Vec<XcmOrderV0>'
},
QueryHolding: {
queryId: 'Compact<u64>',
dest: 'MultiLocation',
assets: 'Vec<MultiAsset>'
},
BuyExecution: {
fees: 'MultiAsset',
weight: 'u64',
debt: 'u64',
haltOnError: 'bool',
xcm: 'Vec<Xcm>'
}
}
},
XcmOrderV1: {
_enum: {
Noop: 'Null',
DepositAsset: {
assets: 'MultiAssetFilter',
maxAssets: 'u32',
beneficiary: 'MultiLocation'
},
DepositReserveAsset: {
assets: 'MultiAssetFilter',
maxAssets: 'u32',
dest: 'MultiLocation',
effects: 'Vec<XcmOrderV1>'
},
ExchangeAsset: {
give: 'MultiAssetFilter',
receive: 'MultiAssets'
},
InitiateReserveWithdraw: {
assets: 'MultiAssetFilter',
reserve: 'MultiLocation',
effects: 'Vec<XcmOrderV1>'
},
InitiateTeleport: {
assets: 'MultiAssetFilter',
dest: 'MultiLocation',
effects: 'Vec<XcmOrderV1>'
},
QueryHolding: {
queryId: 'Compact<u64>',
dest: 'MultiLocation',
assets: 'MultiAssetFilter'
},
BuyExecution: {
fees: 'MultiAsset',
weight: 'u64',
debt: 'u64',
haltOnError: 'bool',
orders: 'Vec<XcmOrderV1>',
instructions: 'Vec<Xcm>'
}
}
}
};
const multiAsset = {
XcmAssetId: {
_enum: {
Concrete: 'MultiLocation',
Abstract: 'Bytes'
}
},
AssetInstance: 'AssetInstanceV1',
AssetInstanceV0: {
_enum: {
Undefined: 'Null',
Index8: 'u8',
Index16: 'Compact<u16>',
Index32: 'Compact<u32>',
Index64: 'Compact<u64>',
Index128: 'Compact<u128>',
Array4: '[u8; 4]',
Array8: '[u8; 8]',
Array16: '[u8; 16]',
Array32: '[u8; 32]',
Blob: 'Vec<u8>'
}
},
AssetInstanceV1: {
_enum: {
Undefined: 'Null',
Index: 'Compact<u128>',
Array4: '[u8; 4]',
Array8: '[u8; 8]',
Array16: '[u8; 16]',
Array32: '[u8; 32]',
Blob: 'Bytes'
}
},
Fungibility: {
_enum: {
Fungible: 'u128',
NonFungible: 'AssetInstance'
}
},
InboundStatus: {
_enum: ['Ok', 'Suspended']
},
OutboundStatus: {
_enum: ['Ok', 'Suspended']
},
MultiAssetAbstractFungible: {
id: 'Vec<u8>',
instance: 'Compact<u128>'
MultiAssetFilter: {
_enum: {
Definite: 'MultiAssets',
Wild: 'WildMultiAsset'
}
},
MultiAssetAbstractNonFungible: {
class: 'Vec<u8>',
instance: 'AssetInstance'
},
MultiAssetConcreteFungible: {
id: 'MultiLocation',
amount: 'Compact<u128>'
},
MultiAssetConcreteNonFungible: {
class: 'MultiLocation',
instance: 'AssetInstance'
},
MultiAsset: {
MultiAsset: 'MultiAssetV1',
MultiAssetV0: {
_enum: {
None: 'Null',
All: 'Null',
@@ -107,16 +223,45 @@ const multiAsset = {
AllAbstractNonFungible: 'Vec<u8>',
AllConcreteFungible: 'MultiLocation',
AllConcreteNonFungible: 'MultiLocation',
AbstractFungible: 'MultiAssetAbstractFungible',
AbstractNonFungible: 'MultiAssetAbstractNonFungible',
ConcreteFungible: 'MultiAssetConcreteFungible',
ConcreteNonFungible: 'MultiAssetConcreteNonFungible'
AbstractFungible: {
id: 'Vec<u8>',
instance: 'Compact<u128>'
},
AbstractNonFungible: {
class: 'Vec<u8>',
instance: 'AssetInstance'
},
ConcreteFungible: {
id: 'MultiLocation',
amount: 'Compact<u128>'
},
ConcreteNonFungible: {
class: 'MultiLocation',
instance: 'AssetInstance'
}
}
},
MultiAssetV1: {
id: 'XcmAssetId',
fungibility: 'Fungibility'
},
MultiAssets: 'Vec<MultiAsset>',
VersionedMultiAsset: {
_enum: {
V0: 'MultiAsset'
}
},
WildFungibility: {
_enum: ['Fungible', 'NonFungible']
},
WildMultiAsset: {
_enum: {
All: 'Null',
AllOf: {
id: 'XcmAssetId',
fungibility: 'WildFungibility'
}
}
}
};
@@ -136,42 +281,44 @@ const junction = {
_enum: {
Voice: 'Null',
Members: 'Compact<u32>',
Fraction: 'BodyPartFraction',
AtLeastProportion: 'BodyPartAtLeastProportion',
MoreThanProportion: 'BodyPartMoreThanProportion'
Fraction: {
nom: 'Compact<u32>',
denom: 'Compact<u32>'
},
AtLeastProportion: {
nom: 'Compact<u32>',
denom: 'Compact<u32>'
},
MoreThanProportion: {
nom: 'Compact<u32>',
denom: 'Compact<u32>'
}
}
},
BodyPartFraction: { nom: 'Compact<u32>', denom: 'Compact<u32>' },
BodyPartAtLeastProportion: { nom: 'Compact<u32>', denom: 'Compact<u32>' },
BodyPartMoreThanProportion: { nom: 'Compact<u32>', denom: 'Compact<u32>' },
AccountId32Junction: {
network: 'NetworkId',
id: 'AccountId'
},
AccountIndex64Junction: {
network: 'NetworkId',
index: 'Compact<u64>'
},
AccountKey20Junction: {
network: 'NetworkId',
key: '[u8; 20]'
},
PluralityJunction: {
id: 'BodyId',
part: 'BodyPart'
},
Junction: {
_enum: {
Parent: 'Null',
Parachain: 'Compact<u32>',
AccountId32: 'AccountId32Junction',
AccountIndex64: 'AccountIndex64Junction',
AccountKey20: 'AccountKey20Junction',
AccountId32: {
network: 'NetworkId',
id: 'AccountId'
},
AccountIndex64: {
network: 'NetworkId',
index: 'Compact<u64>'
},
AccountKey20: {
network: 'NetworkId',
key: '[u8; 20]'
},
PalletInstance: 'u8',
GeneralIndex: 'Compact<u128>',
GeneralKey: 'Vec<u8>',
OnlyChild: 'Null',
Plurality: 'PluralityJunction'
Plurality: {
id: 'BodyId',
part: 'BodyPart'
}
}
},
NetworkId: {
@@ -232,7 +379,7 @@ export default {
},
MultiLocation: {
_enum: {
Null: 'Null',
Here: 'Null',
X1: 'Junction',
X2: '(Junction, Junction)',
X3: '(Junction, Junction, Junction)',
@@ -261,21 +408,6 @@ export default {
_enum: {
V0: 'MultiLocation'
}
},
AssetInstance: {
_enum: {
Undefined: 'Null',
Index8: 'u8',
Index16: 'Compact<u16>',
Index32: 'Compact<u32>',
Index64: 'Compact<u64>',
Index128: 'Compact<u128>',
Array4: '[u8; 4]',
Array8: '[u8; 8]',
Array16: '[u8; 16]',
Array32: '[u8; 32]',
Blob: 'Vec<u8>'
}
}
}
} as Definitions;
+250 -209
View File
@@ -5,26 +5,11 @@ import type { Bytes, Compact, Enum, Struct, U8aFixed, Vec, bool, u128, u16, u32,
import type { ITuple } from '@polkadot/types/types';
import type { AccountId, Weight } from '@polkadot/types/interfaces/runtime';
/** @name AccountId32Junction */
export interface AccountId32Junction extends Struct {
readonly network: NetworkId;
readonly id: AccountId;
}
/** @name AccountIndex64Junction */
export interface AccountIndex64Junction extends Struct {
readonly network: NetworkId;
readonly index: Compact<u64>;
}
/** @name AccountKey20Junction */
export interface AccountKey20Junction extends Struct {
readonly network: NetworkId;
readonly key: U8aFixed;
}
/** @name AssetInstance */
export interface AssetInstance extends Enum {
export interface AssetInstance extends AssetInstanceV1 {}
/** @name AssetInstanceV0 */
export interface AssetInstanceV0 extends Enum {
readonly isUndefined: boolean;
readonly isIndex8: boolean;
readonly asIndex8: u8;
@@ -48,6 +33,23 @@ export interface AssetInstance extends Enum {
readonly asBlob: Bytes;
}
/** @name AssetInstanceV1 */
export interface AssetInstanceV1 extends Enum {
readonly isUndefined: boolean;
readonly isIndex: boolean;
readonly asIndex: Compact<u128>;
readonly isArray4: boolean;
readonly asArray4: U8aFixed;
readonly isArray8: boolean;
readonly asArray8: U8aFixed;
readonly isArray16: boolean;
readonly asArray16: U8aFixed;
readonly isArray32: boolean;
readonly asArray32: U8aFixed;
readonly isBlob: boolean;
readonly asBlob: Bytes;
}
/** @name BodyId */
export interface BodyId extends Enum {
readonly isUnit: boolean;
@@ -67,29 +69,20 @@ export interface BodyPart extends Enum {
readonly isMembers: boolean;
readonly asMembers: Compact<u32>;
readonly isFraction: boolean;
readonly asFraction: BodyPartFraction;
readonly asFraction: {
readonly nom: Compact<u32>;
readonly denom: Compact<u32>;
} & Struct;
readonly isAtLeastProportion: boolean;
readonly asAtLeastProportion: BodyPartAtLeastProportion;
readonly asAtLeastProportion: {
readonly nom: Compact<u32>;
readonly denom: Compact<u32>;
} & Struct;
readonly isMoreThanProportion: boolean;
readonly asMoreThanProportion: BodyPartMoreThanProportion;
}
/** @name BodyPartAtLeastProportion */
export interface BodyPartAtLeastProportion extends Struct {
readonly nom: Compact<u32>;
readonly denom: Compact<u32>;
}
/** @name BodyPartFraction */
export interface BodyPartFraction extends Struct {
readonly nom: Compact<u32>;
readonly denom: Compact<u32>;
}
/** @name BodyPartMoreThanProportion */
export interface BodyPartMoreThanProportion extends Struct {
readonly nom: Compact<u32>;
readonly denom: Compact<u32>;
readonly asMoreThanProportion: {
readonly nom: Compact<u32>;
readonly denom: Compact<u32>;
} & Struct;
}
/** @name DoubleEncodedCall */
@@ -97,6 +90,14 @@ export interface DoubleEncodedCall extends Struct {
readonly encoded: Bytes;
}
/** @name Fungibility */
export interface Fungibility extends Enum {
readonly isFungible: boolean;
readonly asFungible: u128;
readonly isNonFungible: boolean;
readonly asNonFungible: AssetInstance;
}
/** @name InboundStatus */
export interface InboundStatus extends Enum {
readonly isOk: boolean;
@@ -109,11 +110,20 @@ export interface Junction extends Enum {
readonly isParachain: boolean;
readonly asParachain: Compact<u32>;
readonly isAccountId32: boolean;
readonly asAccountId32: AccountId32Junction;
readonly asAccountId32: {
readonly network: NetworkId;
readonly id: AccountId;
} & Struct;
readonly isAccountIndex64: boolean;
readonly asAccountIndex64: AccountIndex64Junction;
readonly asAccountIndex64: {
readonly network: NetworkId;
readonly index: Compact<u64>;
} & Struct;
readonly isAccountKey20: boolean;
readonly asAccountKey20: AccountKey20Junction;
readonly asAccountKey20: {
readonly network: NetworkId;
readonly key: U8aFixed;
} & Struct;
readonly isPalletInstance: boolean;
readonly asPalletInstance: u8;
readonly isGeneralIndex: boolean;
@@ -122,11 +132,28 @@ export interface Junction extends Enum {
readonly asGeneralKey: Bytes;
readonly isOnlyChild: boolean;
readonly isPlurality: boolean;
readonly asPlurality: PluralityJunction;
readonly asPlurality: {
readonly id: BodyId;
readonly part: BodyPart;
} & Struct;
}
/** @name MultiAsset */
export interface MultiAsset extends Enum {
export interface MultiAsset extends MultiAssetV1 {}
/** @name MultiAssetFilter */
export interface MultiAssetFilter extends Enum {
readonly isDefinite: boolean;
readonly asDefinite: MultiAssets;
readonly isWild: boolean;
readonly asWild: WildMultiAsset;
}
/** @name MultiAssets */
export interface MultiAssets extends Vec<MultiAsset> {}
/** @name MultiAssetV0 */
export interface MultiAssetV0 extends Enum {
readonly isNone: boolean;
readonly isAll: boolean;
readonly isAllFungible: boolean;
@@ -140,42 +167,36 @@ export interface MultiAsset extends Enum {
readonly isAllConcreteNonFungible: boolean;
readonly asAllConcreteNonFungible: MultiLocation;
readonly isAbstractFungible: boolean;
readonly asAbstractFungible: MultiAssetAbstractFungible;
readonly asAbstractFungible: {
readonly id: Bytes;
readonly instance: Compact<u128>;
} & Struct;
readonly isAbstractNonFungible: boolean;
readonly asAbstractNonFungible: MultiAssetAbstractNonFungible;
readonly asAbstractNonFungible: {
readonly class: Bytes;
readonly instance: AssetInstance;
} & Struct;
readonly isConcreteFungible: boolean;
readonly asConcreteFungible: MultiAssetConcreteFungible;
readonly asConcreteFungible: {
readonly id: MultiLocation;
readonly amount: Compact<u128>;
} & Struct;
readonly isConcreteNonFungible: boolean;
readonly asConcreteNonFungible: MultiAssetConcreteNonFungible;
readonly asConcreteNonFungible: {
readonly class: MultiLocation;
readonly instance: AssetInstance;
} & Struct;
}
/** @name MultiAssetAbstractFungible */
export interface MultiAssetAbstractFungible extends Struct {
readonly id: Bytes;
readonly instance: Compact<u128>;
}
/** @name MultiAssetAbstractNonFungible */
export interface MultiAssetAbstractNonFungible extends Struct {
readonly class: Bytes;
readonly instance: AssetInstance;
}
/** @name MultiAssetConcreteFungible */
export interface MultiAssetConcreteFungible extends Struct {
readonly id: MultiLocation;
readonly amount: Compact<u128>;
}
/** @name MultiAssetConcreteNonFungible */
export interface MultiAssetConcreteNonFungible extends Struct {
readonly class: MultiLocation;
readonly instance: AssetInstance;
/** @name MultiAssetV1 */
export interface MultiAssetV1 extends Struct {
readonly id: XcmAssetId;
readonly fungibility: Fungibility;
}
/** @name MultiLocation */
export interface MultiLocation extends Enum {
readonly isNull: boolean;
readonly isHere: boolean;
readonly isX1: boolean;
readonly asX1: Junction;
readonly isX2: boolean;
@@ -219,12 +240,6 @@ export interface Outcome extends Enum {
readonly asError: XcmError;
}
/** @name PluralityJunction */
export interface PluralityJunction extends Struct {
readonly id: BodyId;
readonly part: BodyPart;
}
/** @name QueueConfigData */
export interface QueueConfigData extends Struct {
readonly suspendThreshold: u32;
@@ -252,36 +267,90 @@ export interface VersionedXcm extends Enum {
readonly asV0: Xcm;
}
/** @name WildFungibility */
export interface WildFungibility extends Enum {
readonly isFungible: boolean;
readonly isNonFungible: boolean;
}
/** @name WildMultiAsset */
export interface WildMultiAsset extends Enum {
readonly isAll: boolean;
readonly isAllOf: boolean;
readonly asAllOf: {
readonly id: XcmAssetId;
readonly fungibility: WildFungibility;
} & Struct;
}
/** @name Xcm */
export interface Xcm extends Enum {
readonly isWithdrawAsset: boolean;
readonly asWithdrawAsset: XcmWithdrawAsset;
readonly asWithdrawAsset: {
readonly assets: MultiAssets;
readonly effects: Vec<XcmOrderV0>;
} & Struct;
readonly isReserveAssetDeposit: boolean;
readonly asReserveAssetDeposit: XcmReserveAssetDeposit;
readonly isTeleportAsset: boolean;
readonly asTeleportAsset: XcmTeleportAsset;
readonly asReserveAssetDeposit: {
readonly assets: MultiAssets;
readonly effects: Vec<XcmOrderV0>;
} & Struct;
readonly isReceiveTeleportedAsset: boolean;
readonly asReceiveTeleportedAsset: {
readonly assets: MultiAssets;
readonly effects: Vec<XcmOrderV0>;
} & Struct;
readonly isQueryResponse: boolean;
readonly asQueryResponse: XcmQueryResponse;
readonly asQueryResponse: {
readonly queryId: Compact<u64>;
readonly response: XcmResponse;
} & Struct;
readonly isTransferAsset: boolean;
readonly asTransferAsset: XcmTransferAsset;
readonly asTransferAsset: {
readonly assets: MultiAssets;
readonly dest: MultiLocation;
} & Struct;
readonly isTransferReserveAsset: boolean;
readonly asTransferReserveAsset: XcmTransferReserveAsset;
readonly asTransferReserveAsset: {
readonly assets: MultiAssets;
readonly dest: MultiLocation;
readonly effects: Vec<XcmOrderV0>;
} & Struct;
readonly isTransact: boolean;
readonly asTransact: XcmTransact;
readonly asTransact: {
readonly originType: XcmOriginKind;
readonly requireWeightAtMost: u64;
readonly call: DoubleEncodedCall;
} & Struct;
readonly isHrmpNewChannelOpenRequest: boolean;
readonly asHrmpNewChannelOpenRequest: XcmHrmpNewChannelOpenRequest;
readonly asHrmpNewChannelOpenRequest: {
readonly sender: Compact<u32>;
readonly maxMessageSize: Compact<u32>;
readonly maxCapacity: Compact<u32>;
} & Struct;
readonly isHrmpChannelAccepted: boolean;
readonly asHrmpChannelAccepted: XcmHrmpChannelAccepted;
readonly asHrmpChannelAccepted: {
readonly recipient: Compact<u32>;
} & Struct;
readonly isHrmpChannelClosing: boolean;
readonly asHrmpChannelClosing: XcmHrmpChannelClosing;
readonly asHrmpChannelClosing: {
readonly initiator: Compact<u32>;
readonly sender: Compact<u32>;
readonly recipient: Compact<u32>;
} & Struct;
readonly isRelayedFrom: boolean;
readonly asRelayedFrom: XcmRelayedFrom;
readonly asRelayedFrom: {
readonly who: MultiLocation;
readonly message: Xcm;
} & Struct;
}
/** @name XcmAssetEffects */
export interface XcmAssetEffects extends Struct {
readonly assets: Vec<MultiAsset>;
readonly effects: Vec<XcmOrder>;
/** @name XcmAssetId */
export interface XcmAssetId extends Enum {
readonly isConcrete: boolean;
readonly asConcrete: MultiLocation;
readonly isAbstract: boolean;
readonly asAbstract: Bytes;
}
/** @name XcmError */
@@ -316,91 +385,104 @@ export interface XcmError extends Enum {
readonly isTooExpensive: boolean;
}
/** @name XcmHrmpChannelAccepted */
export interface XcmHrmpChannelAccepted extends Struct {
readonly recipient: Compact<u32>;
}
/** @name XcmHrmpChannelClosing */
export interface XcmHrmpChannelClosing extends Struct {
readonly initiator: Compact<u32>;
readonly sender: Compact<u32>;
readonly recipient: Compact<u32>;
}
/** @name XcmHrmpNewChannelOpenRequest */
export interface XcmHrmpNewChannelOpenRequest extends Struct {
readonly sender: Compact<u32>;
readonly maxMessageSize: Compact<u32>;
readonly maxCapacity: Compact<u32>;
}
/** @name XcmOrder */
export interface XcmOrder extends Enum {
export interface XcmOrder extends XcmOrderV1 {}
/** @name XcmOrderV0 */
export interface XcmOrderV0 extends Enum {
readonly isNull: boolean;
readonly isDepositAsset: boolean;
readonly asDepositAsset: XcmOrderDepositAsset;
readonly asDepositAsset: {
readonly assets: Vec<MultiAsset>;
readonly dest: MultiLocation;
} & Struct;
readonly isDepositReserveAsset: boolean;
readonly asDepositReserveAsset: XcmOrderDepositReserveAsset;
readonly asDepositReserveAsset: {
readonly assets: Vec<MultiAsset>;
readonly dest: MultiLocation;
readonly effects: Vec<XcmOrderV0>;
} & Struct;
readonly isExchangeAsset: boolean;
readonly asExchangeAsset: XcmOrderExchangeAsset;
readonly asExchangeAsset: {
readonly give: Vec<MultiAsset>;
readonly receive: Vec<MultiAsset>;
} & Struct;
readonly isInitiateReserveWithdraw: boolean;
readonly asInitiateReserveWithdraw: XcmOrderInitiateReserveWithdraw;
readonly asInitiateReserveWithdraw: {
readonly assets: Vec<MultiAsset>;
readonly reserve: MultiLocation;
readonly effects: Vec<XcmOrderV0>;
} & Struct;
readonly isInitiateTeleport: boolean;
readonly asInitiateTeleport: XcmOrderInitiateTeleport;
readonly asInitiateTeleport: {
readonly assets: Vec<MultiAsset>;
readonly dest: MultiLocation;
readonly effects: Vec<XcmOrderV0>;
} & Struct;
readonly isQueryHolding: boolean;
readonly asQueryHolding: XcmOrderQueryHolding;
readonly asQueryHolding: {
readonly queryId: Compact<u64>;
readonly dest: MultiLocation;
readonly assets: Vec<MultiAsset>;
} & Struct;
readonly isBuyExecution: boolean;
readonly asBuyExecution: XcmOrderBuyExecution;
readonly asBuyExecution: {
readonly fees: MultiAsset;
readonly weight: u64;
readonly debt: u64;
readonly haltOnError: bool;
readonly xcm: Vec<Xcm>;
} & Struct;
}
/** @name XcmOrderBuyExecution */
export interface XcmOrderBuyExecution extends Struct {
readonly fees: MultiAsset;
readonly weight: u64;
readonly debt: u64;
readonly haltOnError: bool;
readonly xcm: Vec<Xcm>;
}
/** @name XcmOrderDepositAsset */
export interface XcmOrderDepositAsset extends Struct {
readonly assets: Vec<MultiAsset>;
readonly dest: MultiLocation;
}
/** @name XcmOrderDepositReserveAsset */
export interface XcmOrderDepositReserveAsset extends Struct {
readonly assets: Vec<MultiAsset>;
readonly dest: MultiLocation;
readonly effects: Vec<XcmOrder>;
}
/** @name XcmOrderExchangeAsset */
export interface XcmOrderExchangeAsset extends Struct {
readonly give: Vec<MultiAsset>;
readonly receive: Vec<MultiAsset>;
}
/** @name XcmOrderInitiateReserveWithdraw */
export interface XcmOrderInitiateReserveWithdraw extends Struct {
readonly assets: Vec<MultiAsset>;
readonly reserve: MultiLocation;
readonly effects: Vec<XcmOrder>;
}
/** @name XcmOrderInitiateTeleport */
export interface XcmOrderInitiateTeleport extends Struct {
readonly assets: Vec<MultiAsset>;
readonly dest: MultiLocation;
readonly effects: Vec<XcmOrder>;
}
/** @name XcmOrderQueryHolding */
export interface XcmOrderQueryHolding extends Struct {
readonly queryId: Compact<u64>;
readonly dest: MultiLocation;
readonly assets: Vec<MultiAsset>;
/** @name XcmOrderV1 */
export interface XcmOrderV1 extends Enum {
readonly isNoop: boolean;
readonly isDepositAsset: boolean;
readonly asDepositAsset: {
readonly assets: MultiAssetFilter;
readonly maxAssets: u32;
readonly beneficiary: MultiLocation;
} & Struct;
readonly isDepositReserveAsset: boolean;
readonly asDepositReserveAsset: {
readonly assets: MultiAssetFilter;
readonly maxAssets: u32;
readonly dest: MultiLocation;
readonly effects: Vec<XcmOrderV1>;
} & Struct;
readonly isExchangeAsset: boolean;
readonly asExchangeAsset: {
readonly give: MultiAssetFilter;
readonly receive: MultiAssets;
} & Struct;
readonly isInitiateReserveWithdraw: boolean;
readonly asInitiateReserveWithdraw: {
readonly assets: MultiAssetFilter;
readonly reserve: MultiLocation;
readonly effects: Vec<XcmOrderV1>;
} & Struct;
readonly isInitiateTeleport: boolean;
readonly asInitiateTeleport: {
readonly assets: MultiAssetFilter;
readonly dest: MultiLocation;
readonly effects: Vec<XcmOrderV1>;
} & Struct;
readonly isQueryHolding: boolean;
readonly asQueryHolding: {
readonly queryId: Compact<u64>;
readonly dest: MultiLocation;
readonly assets: MultiAssetFilter;
} & Struct;
readonly isBuyExecution: boolean;
readonly asBuyExecution: {
readonly fees: MultiAsset;
readonly weight: u64;
readonly debt: u64;
readonly haltOnError: bool;
readonly orders: Vec<XcmOrderV1>;
readonly instructions: Vec<Xcm>;
} & Struct;
}
/** @name XcmOrigin */
@@ -424,51 +506,10 @@ export interface XcmpMessageFormat extends Enum {
readonly isSignals: boolean;
}
/** @name XcmQueryResponse */
export interface XcmQueryResponse extends Struct {
readonly queryId: Compact<u64>;
readonly response: XcmResponse;
}
/** @name XcmRelayedFrom */
export interface XcmRelayedFrom extends Struct {
readonly who: MultiLocation;
readonly message: Xcm;
}
/** @name XcmReserveAssetDeposit */
export interface XcmReserveAssetDeposit extends XcmAssetEffects {}
/** @name XcmResponse */
export interface XcmResponse extends Enum {
readonly isAssets: boolean;
readonly asAssets: Vec<MultiAsset>;
}
/** @name XcmTeleportAsset */
export interface XcmTeleportAsset extends XcmAssetEffects {}
/** @name XcmTransact */
export interface XcmTransact extends Struct {
readonly originType: XcmOriginKind;
readonly requireWeightAtMost: u64;
readonly call: DoubleEncodedCall;
}
/** @name XcmTransferAsset */
export interface XcmTransferAsset extends Struct {
readonly assets: Vec<MultiAsset>;
readonly dest: MultiLocation;
}
/** @name XcmTransferReserveAsset */
export interface XcmTransferReserveAsset extends Struct {
readonly assets: Vec<MultiAsset>;
readonly dest: MultiLocation;
readonly effects: Vec<XcmOrder>;
}
/** @name XcmWithdrawAsset */
export interface XcmWithdrawAsset extends XcmAssetEffects {}
export type PHANTOM_XCM = 'xcm';
@@ -30,7 +30,7 @@ interface IterFn {
meta: StorageEntryMetadataLatest;
}
type Arg = boolean | string | number | null | BN | BigInt | Uint8Array | Codec;
type Arg = boolean | string | number | null | BN | bigint | Uint8Array | Codec;
/** @internal */
function createKeyRaw (registry: Registry, itemFn: CreateItemFn, keys: Type[], hashers: StorageHasher[], args: Arg[]): Uint8Array {
@@ -108,21 +108,21 @@ function extendPrefixedMap (registry: Registry, itemFn: CreateItemFn, storageFn:
(
(args.length === 0) ||
(type.isDoubleMap && args.length === 1) ||
(type.isNMap && args.length === (type.asNMap.hashers.length - 1))
(type.isNMap && args.length < (type.asNMap.hashers.length))
),
() => `Iteration ${stringCamelCase(section || 'unknown')}.${stringCamelCase(method || 'unknown')} needs arguments to be one less than the full arguments, found [${args.join(', ')}]`
() => `Iteration ${stringCamelCase(section || 'unknown')}.${stringCamelCase(method || 'unknown')} needs arguments to be at least one less than the full arguments, found [${args.join(', ')}]`
);
if (args.length) {
if (type.isDoubleMap) {
return new Raw(registry, createKeyRaw(registry, itemFn, [type.asDoubleMap.key1], [type.asDoubleMap.hasher], args as Arg[]));
} else if (type.isNMap) {
const keys = [...type.asNMap.keyVec];
const hashers = [...type.asNMap.hashers];
let keys = [...type.asNMap.keyVec];
let hashers = [...type.asNMap.hashers];
// remove the last entry
keys.pop();
hashers.pop();
// pick the first n entries where n = args.length which is already verified above to be less that the full arguments.
keys = keys.slice(0, args.length);
hashers = hashers.slice(0, args.length);
return new Raw(registry, createKeyRaw(registry, itemFn, keys, hashers, args as Arg[]));
}
+1 -1
View File
@@ -3,4 +3,4 @@
// Auto-generated by @polkadot/dev, do not edit
export const packageInfo = { name: '@polkadot/types', version: '5.4.1' };
export const packageInfo = { name: '@polkadot/types', version: '5.6.1' };
+4 -1
View File
@@ -8,4 +8,7 @@ import { Int } from '../codec/Int';
* @description
* A 128-bit signed integer
*/
export class i128 extends Int.with(128) {}
export class i128 extends Int.with(128) {
// NOTE without this, we cannot properly determine extensions
public readonly __IntType = 'i128';
}
+4 -1
View File
@@ -8,4 +8,7 @@ import { Int } from '../codec/Int';
* @description
* A 16-bit signed integer
*/
export class i16 extends Int.with(16) {}
export class i16 extends Int.with(16) {
// NOTE without this, we cannot properly determine extensions
public readonly __IntType = 'i16';
}
+4 -1
View File
@@ -8,4 +8,7 @@ import { Int } from '../codec/Int';
* @description
* A 256-bit signed integer
*/
export class i256 extends Int.with(256) {}
export class i256 extends Int.with(256) {
// NOTE without this, we cannot properly determine extensions
public readonly __IntType = 'i256';
}

Some files were not shown because too many files have changed in this diff Show More