Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7a6d19d241 | ||
|
|
f4a590d7f8 | ||
|
|
771e5f3bcf | ||
|
|
1ba427356d | ||
|
|
aad497e9d2 | ||
|
|
95fc2b2c99 | ||
|
|
b7b707249b | ||
|
|
ce95e305f3 | ||
|
|
4ea793f55e | ||
|
|
bb0b365dfe | ||
|
|
756f817d93 | ||
|
|
df4bda1fc8 | ||
|
|
a98e9543b8 | ||
|
|
84abaff414 | ||
|
|
29d5460cdd | ||
|
|
e2d0de4f6c | ||
|
|
8e32777efa | ||
|
|
39b1de326c | ||
|
|
6fb6c40c7d | ||
|
|
badb10bdd9 | ||
|
|
235a7b1aa9 | ||
|
|
b7d65fb506 | ||
|
|
8eb0524fed | ||
|
|
bab50b2d74 | ||
|
|
bb75b42273 | ||
|
|
949e429d04 | ||
|
|
0b1c20efd7 | ||
|
|
0536998766 | ||
|
|
22651eb4b8 | ||
|
|
48414bdb34 | ||
|
|
2ff6a85fb3 | ||
|
|
8be1f337a8 | ||
|
|
2c7056da25 | ||
|
|
b53c22d6d3 | ||
|
|
17f316b7c7 | ||
|
|
b44fcc90b2 | ||
|
|
b4e477a8c1 | ||
|
|
4b921c8a55 | ||
|
|
e53231b70a | ||
|
|
afd1db58ac | ||
|
|
63ba84a641 | ||
|
|
044aecbfc3 | ||
|
|
e573c26df3 | ||
|
|
31e7de31f3 | ||
|
|
7cd9c16eae | ||
|
|
2b1a7da446 | ||
|
|
9399c8d24f | ||
|
|
798e5fcc78 | ||
|
|
d8ad237b00 | ||
|
|
550cb10766 | ||
|
|
a44108c3f3 | ||
|
|
2f28ea0ea8 | ||
|
|
488d078b9c | ||
|
|
ba384cee78 | ||
|
|
4f95f33cbb | ||
|
|
368cb8314c | ||
|
|
c01896d24f | ||
|
|
983043bd1e | ||
|
|
9c2ed6297a | ||
|
|
8a7fee5903 | ||
|
|
b0e8a8512a | ||
|
|
f83d23d0f6 | ||
|
|
9dfb5cb237 | ||
|
|
8c87b16924 | ||
|
|
0d5dce002d | ||
|
|
4d0c777a8f | ||
|
|
d63108a4b4 | ||
|
|
5898ac335e | ||
|
|
f108d16d1b | ||
|
|
32f1495993 | ||
|
|
2527497e4a | ||
|
|
e50209da0d | ||
|
|
cccd512d70 | ||
|
|
1db2136a3d | ||
|
|
466485d5aa | ||
|
|
c9ea333add | ||
|
|
dca62cf3ba | ||
|
|
2d9e667d01 | ||
|
|
67679f34e9 | ||
|
|
d646fa03af | ||
|
|
6c33e98553 | ||
|
|
e8cdbf9e80 | ||
|
|
5016e12ae4 | ||
|
|
ac09179768 | ||
|
|
8cc1663bd8 | ||
|
|
34d090c9b3 | ||
|
|
cb1d13e04c | ||
|
|
022d79c4cd | ||
|
|
ed079a6acb | ||
|
|
01d023d141 | ||
|
|
0b03f73975 | ||
|
|
e4cae64187 | ||
|
|
f13989d712 | ||
|
|
05c3f12cd7 | ||
|
|
9f6f33844a | ||
|
|
895f82920d | ||
|
|
06fa4aa6eb | ||
|
|
1e5002fb5e | ||
|
|
8be52dec13 | ||
|
|
8fcda8cd54 | ||
|
|
d08c306887 | ||
|
|
eb6b0232c3 | ||
|
|
e5fbaeb7cd | ||
|
|
8e61ea1b8b | ||
|
|
9fe202a4d3 | ||
|
|
6e62d03652 | ||
|
|
49dc66f7d4 | ||
|
|
22320f9995 | ||
|
|
7603bad434 | ||
|
|
e82f0f35ad | ||
|
|
ae0aa14eb8 | ||
|
|
4875bb9990 | ||
|
|
a0308dd25a | ||
|
|
edb06d971a | ||
|
|
271a4d8fd7 | ||
|
|
a71e5ad95c | ||
|
|
edcdb70e8a | ||
|
|
17357f6b99 | ||
|
|
c596a8cb51 | ||
|
|
bdf13b10e5 | ||
|
|
519a12f19a | ||
|
|
beffc7b754 | ||
|
|
d5ae7031cd | ||
|
|
8aff13b827 | ||
|
|
a23b3f953b | ||
|
|
1249c46019 | ||
|
|
2aaf52bb92 | ||
|
|
3372898f82 | ||
|
|
ed2f512cfc | ||
|
|
00147df500 | ||
|
|
3b0c8887d7 | ||
|
|
16452233b2 | ||
|
|
5bf87262bc | ||
|
|
b8e01fd674 | ||
|
|
f8378ba0f7 | ||
|
|
afc105400c | ||
|
|
cca1f10563 | ||
|
|
6cdbbf5372 | ||
|
|
8c89732eb7 | ||
|
|
ab3ad6b2ca | ||
|
|
72f427a250 | ||
|
|
5b0bd9d4b7 | ||
|
|
cd9662ab4c | ||
|
|
13751b6fdf | ||
|
|
652f8c28a4 | ||
|
|
0bae9138b8 | ||
|
|
98e8cac424 | ||
|
|
dca7f208bc | ||
|
|
67ff12885a | ||
|
|
08c53032eb | ||
|
|
5da8f21947 | ||
|
|
5080b266a0 | ||
|
|
0186848936 | ||
|
|
d0de35b05b | ||
|
|
3ded30a0f3 | ||
|
|
9fef78c5e1 | ||
|
|
b2a7c453c4 | ||
|
|
030258a671 | ||
|
|
0a85b4839d | ||
|
|
ad363bac09 | ||
|
|
e0c0a8c583 | ||
|
|
f923a31758 | ||
|
|
416229d976 | ||
|
|
4380c45f17 | ||
|
|
d481aed8cb | ||
|
|
ca25983e3e | ||
|
|
f7caa496e4 |
+5
-2
@@ -1,4 +1,4 @@
|
||||
39
|
||||
40
|
||||
|
||||
1.4.2
|
||||
1.6.2
|
||||
@@ -47,4 +47,7 @@
|
||||
6.10.2
|
||||
6.10.3
|
||||
|
||||
7.0.2
|
||||
7.0.2
|
||||
|
||||
7.14.2
|
||||
7.14.3
|
||||
@@ -0,0 +1,16 @@
|
||||
name: bot
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
types: [labeled]
|
||||
|
||||
jobs:
|
||||
approve:
|
||||
if: "! startsWith(github.event.head_commit.message, '[CI Skip]') && (!github.event.pull_request || github.event.pull_request.head.repo.full_name == github.repository)"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: jacogr/action-approve@master
|
||||
with:
|
||||
authors: jacogr
|
||||
labels: -auto
|
||||
token: ${{ secrets.GH_PAT_BOT }}
|
||||
@@ -0,0 +1,16 @@
|
||||
name: bot
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
types: [labeled]
|
||||
|
||||
jobs:
|
||||
merge:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: jacogr/action-merge@master
|
||||
with:
|
||||
checks: build,lint,test
|
||||
labels: -auto
|
||||
strategy: squash
|
||||
token: ${{ secrets.GH_PAT_BOT }}
|
||||
Vendored
-768
File diff suppressed because one or more lines are too long
+785
File diff suppressed because one or more lines are too long
+1
-1
@@ -10,4 +10,4 @@ plugins:
|
||||
- path: .yarn/plugins/@yarnpkg/plugin-version.cjs
|
||||
spec: "@yarnpkg/plugin-version"
|
||||
|
||||
yarnPath: .yarn/releases/yarn-3.1.1.cjs
|
||||
yarnPath: .yarn/releases/yarn-3.2.0.cjs
|
||||
|
||||
+116
@@ -1,5 +1,121 @@
|
||||
# CHANGELOG
|
||||
|
||||
## 7.15.1 Apr 3, 2022
|
||||
|
||||
Contributed:
|
||||
|
||||
- Export `WellKnownChain` for `substrate-connect` (Thanks to https://github.com/josepot)
|
||||
- Add support for `{entries, keys}Paged` in `.at` (Thanks to https://github.com/xlc)
|
||||
- Align `WeightsPerClass` interface on `maxExtrinsic` (Thanks to https://github.com/HackFisher)
|
||||
|
||||
Changes:
|
||||
|
||||
- Cater for `DispatchError` with `error` as `[u8; 4]`
|
||||
- Add in-flight cache for parallel same-version metadata queries
|
||||
- Cater for lazy `@polkadot/util-crypto` init (adjustment for React Native)
|
||||
- Update to latest Substrate, Kusama & Polkadot static metadata
|
||||
- Update latest Westend & Kusama (up to 9180) upgrade blocks
|
||||
|
||||
|
||||
## 7.14.3 Mar 28, 2022
|
||||
|
||||
Changes:
|
||||
|
||||
- Ensure `BitVec` with MSB does not fail (used in Polkadot `DeliveredMessages`)
|
||||
|
||||
|
||||
## 7.14.2 Mar 28, 2022
|
||||
|
||||
Changes:
|
||||
|
||||
- Don't export `ScProvider` top-level in `@polkadot/rpc-provider`
|
||||
|
||||
|
||||
## 7.14.1 Mar 27, 2022
|
||||
|
||||
Contributed:
|
||||
|
||||
- Add `ScProvider` for `@substrate/substrate-connect` (Thanks to https://github.com/josepot)
|
||||
- Add support for `BTree{Map, Set}` in typegen (Thanks to https://github.com/CertainLach)
|
||||
|
||||
Changes:
|
||||
|
||||
- Only explicitly support LSB on `BitVec` types
|
||||
- Change `toHuman()` on `BitVec` to output default LSB
|
||||
- Add `bytes{Sent, Recv}` to provider stats
|
||||
- Clear connection timout on provider `disconnect()`
|
||||
- Add support for `dev_getBlockStats` RPC
|
||||
|
||||
|
||||
## 7.13.1 Mar 19, 2022
|
||||
|
||||
**Important** This contains an upgraded version of `@polkadot/wasm-crypto`. For users of asm.js, e.g. React Native, there are some additional upgrade instructions in the release notes for this version https://github.com/polkadot-js/wasm/releases/tag/v5.0.1
|
||||
|
||||
Contributed:
|
||||
|
||||
- Expose custom RPC error details (Thanks to https://github.com/intendednull)
|
||||
- Improve custom RPC error typings (Thanks to https://github.com/MOZGIII)
|
||||
|
||||
Changes:
|
||||
|
||||
- Support for rejection of hanging RPC requests (30s timeout)
|
||||
- Add `.stats` to provider interfaces with running counters
|
||||
- Add support for `state_trieMigrationStatus` RPC
|
||||
- Update to latest Substrate, Kusama & Polkadot static metadata
|
||||
- Update to `@polkadot/util` 8.6.1
|
||||
- Additional workaround for Vite bundling
|
||||
|
||||
|
||||
## 7.12.1 Mar 13, 2022
|
||||
|
||||
Changes:
|
||||
|
||||
- Allow for correct handling of `Option<Null>` types
|
||||
- Adjust for bundlers where `import.meta.url` is undefined
|
||||
- Update to `@polkadot/util` 8.5.1
|
||||
|
||||
|
||||
## 7.11.1 Mar 6, 2022
|
||||
|
||||
Changes:
|
||||
|
||||
- Chunk derive retrieval of `era{Exposure, Prefs, Slashes}`
|
||||
- Ensure that signer (passed via options) do get updated
|
||||
- Kusama & Polkadot 9170 upgrade blocks
|
||||
- Update to latest Substrate, Kusama & Polkadot static metadata
|
||||
- Adjustments for TypeScript 7.6.2
|
||||
|
||||
|
||||
## 7.10.1 Feb 27, 2022
|
||||
|
||||
Contributed:
|
||||
|
||||
- Ensure `updateId` is correct in signer callbacks (Thanks to https://github.com/coolcorexix)
|
||||
|
||||
Changes:
|
||||
|
||||
- Ensure `BTreeSet` has the correct decoded length
|
||||
- Attach `PortableRegistry` at point of metadata set
|
||||
- Add `derive.chain.getBlockByNumber`
|
||||
- Retrieve named reserves in `derive.balances.all`
|
||||
- Ensure `v13 -> v14` metadata conversion attaches primitives
|
||||
- Update to latest Substrate, Kusama & Polkadot static metadata
|
||||
|
||||
|
||||
## 7.9.1 Feb 20, 2022
|
||||
|
||||
Contributed:
|
||||
|
||||
- Support historic queries via blockNumber (Thanks to https://github.com/stwiname)
|
||||
|
||||
Changes:
|
||||
|
||||
- Align `grandpa_proveFinality` with Substrate
|
||||
- Allow for derive augmentation (swap base type to interfaces)
|
||||
- Kusama 9160 upgrade block
|
||||
- Update to latest Substrate, Kusama & Polkadot static metadata
|
||||
|
||||
|
||||
## 7.8.1 Feb 14, 2022
|
||||
|
||||
Contributed:
|
||||
|
||||
+9
-3
@@ -1,10 +1,10 @@
|
||||
2821 Jaco 7.8.1 (#4564)
|
||||
2893 Jaco 7.15.1 (#4714)
|
||||
83 Amaury Martiny StatementKind: Regular and Saft (#2303)
|
||||
37 Keith Ingram Update contract types and rpc (#4541)
|
||||
35 Stefanie Doll Updated child storage parameters (#1709)
|
||||
20 Luke Schoen fix: Fixes TypeError: Cannot read property 'vesting' of undefined (#1970)
|
||||
16 Xiliang Chen implement entriesPaged and keysPages for query at (#4701)
|
||||
15 Jeremías Díaz feat(types): add correct tuple type to storage key (#3054)
|
||||
15 Xiliang Chen add Authority origin (#3645)
|
||||
11 Ian He HttpProvider support clone() (#3949)
|
||||
10 Axel Chalon Make Enum/Tuple constructor use value directly if instance (#1954)
|
||||
5 Chevdor Fix metadata package link (#3458)
|
||||
@@ -13,6 +13,7 @@
|
||||
4 Alexander Popiak Add asset id in signing (#4009)
|
||||
4 Joshy Orndorff spelling; efect -> effect (#2295)
|
||||
4 Nantian fix bigint type (#3869)
|
||||
4 Scott Twiname Add support for historical BlockNumber rpc methods (#4574)
|
||||
4 Thibaut Sardan no subscription for http (#3127)
|
||||
3 Alex D Use derive customAccount and customLocks for balance overrides (#3248)
|
||||
3 André Silva add support for ValidationCodeHash (#3640)
|
||||
@@ -29,12 +30,14 @@
|
||||
2 Alexander Krupenkin Add [u8; 33] type width for U8aFixed type (#2391)
|
||||
2 Branan Riley Add proxy type for Centrifuge (#3940)
|
||||
2 Caio Add `Range` and `RangeInclusive` types (#3791)
|
||||
2 HackFisher Update maxExtrinsic definition (#4703)
|
||||
2 Jakub Pánik All heads subscription (#1899)
|
||||
2 James Lefrère Add `.eq()` usage to docs and fix docs typos (#1405)
|
||||
2 Josep M Sobrepere fix: export substrate-connect `WellKnownChain` (#4700)
|
||||
2 Keith Yeung Allow keyPrefix to accept an additional argument for double maps (#2230)
|
||||
2 MOZGIII Follow-up fix after #4665 (#4666)
|
||||
2 Nikos Kontakis Add auction in shared types (#4085)
|
||||
2 Paweł Nguyen Fix a minor typo in cookbook blocks docs (#2294)
|
||||
2 Scott Twiname Fix `isHistorical` to `isHistoric` (#4540)
|
||||
2 sung wu Update tx.md (#2485)
|
||||
2 Veliko Abi constructor takes different parameters (#3347)
|
||||
2 Wei Tang Use /usr/bin/env bash instead of /bin/bash (#2053)
|
||||
@@ -43,6 +46,7 @@
|
||||
1 Brad Larson [NEW] Support for custom headers with providers (#2423)
|
||||
1 chriswmercer little readme tweak (#279)
|
||||
1 codingsh #2182 - add: search for docs (#2232)
|
||||
1 coolcorexix Investigate 4559 v2 (#4608)
|
||||
1 Dan Forbes Add WeightToFeeCoefficient type (#2296)
|
||||
1 Daniel Maricic Fixed typo in README (#2402)
|
||||
1 Daniel Savu fix: Generate custom type definitions (#4224)
|
||||
@@ -77,6 +81,7 @@
|
||||
1 Nazar Mokrynskyi Performance tweaks (#4143)
|
||||
1 Nikhil Ranjan add vestingPerBlock and vestingEndBlock in DeriveBalancesAll when doing calcBalances (#2563)
|
||||
1 Nikolay Volf Fix typo (#1730)
|
||||
1 Noah Corona Add rpc error fields (#4637)
|
||||
1 Oleksandr Mykhailenko Add more complex namespaced contracts & test cases for them (#4472)
|
||||
1 Paul M Fox Basic BTreeMaps codec support (#1474)
|
||||
1 philipstanislaus Update types for centrifuge chain v1.2.0 (#2424)
|
||||
@@ -90,6 +95,7 @@
|
||||
1 Sergei Pepyakin INK! -> ink! (#1347)
|
||||
1 WoeOm adapt Darwinia, Crab Network types (#3498)
|
||||
1 Xat_MassacrE Fix packages/types/src/codec/utils/encodeTypes.ts encodeSubTypes bug (#1544)
|
||||
1 Yaroslav Bolyukin Support BTreeMap/BTreeSet in typegen (#4682)
|
||||
1 yjh fix MetadataVersioned.asV12 (#2983)
|
||||
1 Yuri fixes #3693 Fix uniques return types (#3694)
|
||||
1 Zeke Mostov fix: Allow sudo for polkadot indexed proxy enum (#3286)
|
||||
@@ -14,17 +14,3 @@ If you are an existing user, please be sure to track the [CHANGELOG](CHANGELOG.m
|
||||
## tutorials
|
||||
|
||||
Looking for tutorials to get started? Look at [examples](https://polkadot.js.org/docs/api/examples/promise/) for guides on how to use the API to make queries and submit transactions.
|
||||
|
||||
## overview
|
||||
|
||||
The API is split up into a number of internal packages -
|
||||
|
||||
- [@polkadot/api](packages/api/) The API library, providing both Promise and RxJS Observable-based interfaces. This is the main user-facing entry point.
|
||||
- [@polkadot/api-derive](packages/api-derive/) Derived results that are injected into the API, allowing for combinations of various query results (only used internally and exposed on the Api instances via `api.derive.*`)
|
||||
- [@polkadot/metadata](packages/metadata/) Base extrinsic, storage and constant injectors for injection
|
||||
- [@polkadot/rpc-core](packages/rpc-core/) Wrapper around all [JSON-RPC methods](https://polkadot.js.org/docs/substrate/rpc) exposed by a Polkadot network client
|
||||
- [@polkadot/rpc-provider](packages/rpc-provider/) Providers for connecting to nodes, including WebSockets and Http
|
||||
|
||||
Type definitions for interfaces as exposed by Polkadot & Substrate clients -
|
||||
|
||||
- [@polkadot/types](packages/types/) Codecs for all Polkadot and Substrate primitives
|
||||
|
||||
@@ -15,5 +15,8 @@ module.exports = {
|
||||
// eslint-disable-next-line sort-keys
|
||||
'@polkadot/types(.*)$': '<rootDir>/packages/types/src/$1'
|
||||
},
|
||||
"transformIgnorePatterns": [
|
||||
'/node_modules/(?!@polkadot|@substrate/connect|@babel/runtime/helpers/esm/)'
|
||||
],
|
||||
testTimeout: 30000
|
||||
};
|
||||
|
||||
+8
-8
@@ -3,7 +3,7 @@
|
||||
"bugs": "https://github.com/polkadot-js/api/issues",
|
||||
"homepage": "https://github.com/polkadot-js/api#readme",
|
||||
"license": "Apache-2.0",
|
||||
"packageManager": "yarn@3.0.1",
|
||||
"packageManager": "yarn@3.2.0",
|
||||
"private": true,
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@@ -11,7 +11,7 @@
|
||||
},
|
||||
"sideEffects": false,
|
||||
"type": "commonjs",
|
||||
"version": "7.8.1",
|
||||
"version": "7.15.1",
|
||||
"workspaces": [
|
||||
"packages/*"
|
||||
],
|
||||
@@ -31,15 +31,15 @@
|
||||
"test:watch": "polkadot-dev-run-test --watch"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.17.2",
|
||||
"@babel/register": "^7.17.0",
|
||||
"@babel/runtime": "^7.17.2",
|
||||
"@polkadot/dev": "^0.65.56",
|
||||
"@babel/core": "^7.17.8",
|
||||
"@babel/register": "^7.17.7",
|
||||
"@babel/runtime": "^7.17.8",
|
||||
"@polkadot/dev": "^0.65.103",
|
||||
"@polkadot/typegen": "workspace:packages/typegen",
|
||||
"@types/jest": "^27.4.0",
|
||||
"@types/jest": "^27.4.1",
|
||||
"copyfiles": "^2.4.1"
|
||||
},
|
||||
"resolutions": {
|
||||
"typescript": "^4.5.5"
|
||||
"typescript": "^4.6.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,15 +20,18 @@
|
||||
"./detectPackage.cjs"
|
||||
],
|
||||
"type": "module",
|
||||
"version": "7.8.1",
|
||||
"version": "7.15.1",
|
||||
"main": "index.js",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.17.2",
|
||||
"@polkadot/api-base": "7.8.1",
|
||||
"@polkadot/rpc-augment": "7.8.1",
|
||||
"@polkadot/types": "7.8.1",
|
||||
"@polkadot/types-augment": "7.8.1",
|
||||
"@polkadot/types-codec": "7.8.1",
|
||||
"@polkadot/util": "^8.4.1"
|
||||
"@babel/runtime": "^7.17.8",
|
||||
"@polkadot/api-base": "7.15.1",
|
||||
"@polkadot/rpc-augment": "7.15.1",
|
||||
"@polkadot/types": "7.15.1",
|
||||
"@polkadot/types-augment": "7.15.1",
|
||||
"@polkadot/types-codec": "7.15.1",
|
||||
"@polkadot/util": "^8.7.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@polkadot/types-support": "7.15.1"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,23 +67,23 @@ declare module '@polkadot/api-base/types/consts' {
|
||||
/**
|
||||
* The list of thresholds separating the various bags.
|
||||
*
|
||||
* Ids are separated into unsorted bags according to their vote weight. This specifies the
|
||||
* thresholds separating the bags. An id's bag is the largest bag for which the id's weight
|
||||
* Ids are separated into unsorted bags according to their score. This specifies the
|
||||
* thresholds separating the bags. An id's bag is the largest bag for which the id's score
|
||||
* is less than or equal to its upper threshold.
|
||||
*
|
||||
* When ids are iterated, higher bags are iterated completely before lower bags. This means
|
||||
* that iteration is _semi-sorted_: ids of higher weight tend to come before ids of lower
|
||||
* weight, but peer ids within a particular bag are sorted in insertion order.
|
||||
* that iteration is _semi-sorted_: ids of higher score tend to come before ids of lower
|
||||
* score, but peer ids within a particular bag are sorted in insertion order.
|
||||
*
|
||||
* # Expressing the constant
|
||||
*
|
||||
* This constant must be sorted in strictly increasing order. Duplicate items are not
|
||||
* permitted.
|
||||
*
|
||||
* There is an implied upper limit of `VoteWeight::MAX`; that value does not need to be
|
||||
* There is an implied upper limit of `Score::MAX`; that value does not need to be
|
||||
* specified within the bag. For any two threshold lists, if one ends with
|
||||
* `VoteWeight::MAX`, the other one does not, and they are otherwise equal, the two lists
|
||||
* will behave identically.
|
||||
* `Score::MAX`, the other one does not, and they are otherwise equal, the two
|
||||
* lists will behave identically.
|
||||
*
|
||||
* # Calculation
|
||||
*
|
||||
@@ -101,8 +101,8 @@ declare module '@polkadot/api-base/types/consts' {
|
||||
* the procedure given above, then the constant ratio is equal to 2.
|
||||
* - If `BagThresholds::get().len() == 200`, and the thresholds are determined according to
|
||||
* the procedure given above, then the constant ratio is approximately equal to 1.248.
|
||||
* - If the threshold list begins `[1, 2, 3, ...]`, then an id with weight 0 or 1 will fall
|
||||
* into bag 0, an id with weight 2 will fall into bag 1, etc.
|
||||
* - If the threshold list begins `[1, 2, 3, ...]`, then an id with score 0 or 1 will fall
|
||||
* into bag 0, an id with score 2 will fall into bag 1, etc.
|
||||
*
|
||||
* # Migration
|
||||
*
|
||||
@@ -135,11 +135,6 @@ declare module '@polkadot/api-base/types/consts' {
|
||||
[key: string]: Codec;
|
||||
};
|
||||
bounties: {
|
||||
/**
|
||||
* Percentage of the curator fee that will be reserved upfront as deposit for bounty
|
||||
* curator.
|
||||
**/
|
||||
bountyCuratorDeposit: Permill & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* The amount held on deposit for placing a bounty proposal.
|
||||
**/
|
||||
@@ -156,6 +151,21 @@ declare module '@polkadot/api-base/types/consts' {
|
||||
* Minimum value for a bounty.
|
||||
**/
|
||||
bountyValueMinimum: u128 & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* Maximum amount of funds that should be placed in a deposit for making a proposal.
|
||||
**/
|
||||
curatorDepositMax: Option<u128> & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* Minimum amount of funds that should be placed in a deposit for making a proposal.
|
||||
**/
|
||||
curatorDepositMin: Option<u128> & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* The curator deposit is calculated as a percentage of the curator fee.
|
||||
*
|
||||
* This deposit has optional upper and lower bounds with `CuratorDepositMax` and
|
||||
* `CuratorDepositMin`.
|
||||
**/
|
||||
curatorDepositMultiplier: Permill & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* The amount held on deposit per byte within the tip report reason or bounty description.
|
||||
**/
|
||||
@@ -171,6 +181,20 @@ declare module '@polkadot/api-base/types/consts' {
|
||||
**/
|
||||
[key: string]: Codec;
|
||||
};
|
||||
childBounties: {
|
||||
/**
|
||||
* Minimum value for a child-bounty.
|
||||
**/
|
||||
childBountyValueMinimum: u128 & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* Maximum number of child-bounties that can be added to a parent bounty.
|
||||
**/
|
||||
maxActiveChildBountyCount: u32 & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* Generic const
|
||||
**/
|
||||
[key: string]: Codec;
|
||||
};
|
||||
claims: {
|
||||
prefix: Bytes & AugmentedConst<ApiType>;
|
||||
/**
|
||||
@@ -260,6 +284,16 @@ declare module '@polkadot/api-base/types/consts' {
|
||||
[key: string]: Codec;
|
||||
};
|
||||
electionProviderMultiPhase: {
|
||||
/**
|
||||
* The maximum number of electable targets to put in the snapshot.
|
||||
**/
|
||||
maxElectableTargets: u16 & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* The maximum number of electing voters to put in the snapshot. At the moment, snapshots
|
||||
* are only over a single block, but once multi-block elections are introduced they will
|
||||
* take place over multiple blocks.
|
||||
**/
|
||||
maxElectingVoters: u32 & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* Maximum length (bytes) that the mined solution should consume.
|
||||
*
|
||||
@@ -330,15 +364,6 @@ declare module '@polkadot/api-base/types/consts' {
|
||||
* Duration of the unsigned phase.
|
||||
**/
|
||||
unsignedPhase: u32 & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* The maximum number of voters to put in the snapshot. At the moment, snapshots are only
|
||||
* over a single block, but once multi-block elections are introduced they will take place
|
||||
* over multiple blocks.
|
||||
*
|
||||
* Also, note the data type: If the voters are represented by a `u32` in `type
|
||||
* CompactSolution`, the same `u32` is used here to ensure bounds are respected.
|
||||
**/
|
||||
voterSnapshotPerBlock: u32 & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* Generic const
|
||||
**/
|
||||
@@ -708,6 +733,10 @@ declare module '@polkadot/api-base/types/consts' {
|
||||
* Number of eras that staked funds must remain bonded for.
|
||||
**/
|
||||
bondingDuration: u32 & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* Maximum number of nominations per nominator.
|
||||
**/
|
||||
maxNominations: u32 & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* The maximum number of nominators rewarded for each validator.
|
||||
*
|
||||
@@ -715,6 +744,11 @@ declare module '@polkadot/api-base/types/consts' {
|
||||
* claim their reward. This used to limit the i/o cost for the nominator payout.
|
||||
**/
|
||||
maxNominatorRewardedPerValidator: u32 & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* The maximum number of `unlocking` chunks a [`StakingLedger`] can have. Effectively
|
||||
* determines how many unique eras a staker may be unbonding in.
|
||||
**/
|
||||
maxUnlockingChunks: u32 & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* Number of sessions per era.
|
||||
**/
|
||||
|
||||
@@ -97,7 +97,7 @@ declare module '@polkadot/api-base/types/errors' {
|
||||
**/
|
||||
IdNotFound: AugmentedError<ApiType>;
|
||||
/**
|
||||
* An Id does not have a greater vote weight than another Id.
|
||||
* An Id does not have a greater score than another Id.
|
||||
**/
|
||||
NotHeavier: AugmentedError<ApiType>;
|
||||
/**
|
||||
@@ -198,6 +198,24 @@ declare module '@polkadot/api-base/types/errors' {
|
||||
**/
|
||||
[key: string]: AugmentedError<ApiType>;
|
||||
};
|
||||
childBounties: {
|
||||
/**
|
||||
* The bounty balance is not enough to add new child-bounty.
|
||||
**/
|
||||
InsufficientBountyBalance: AugmentedError<ApiType>;
|
||||
/**
|
||||
* The parent bounty is not in active state.
|
||||
**/
|
||||
ParentBountyNotActive: AugmentedError<ApiType>;
|
||||
/**
|
||||
* Number of child-bounties exceeds limit `MaxActiveChildBountyCount`.
|
||||
**/
|
||||
TooManyChildBounties: AugmentedError<ApiType>;
|
||||
/**
|
||||
* Generic error
|
||||
**/
|
||||
[key: string]: AugmentedError<ApiType>;
|
||||
};
|
||||
claims: {
|
||||
/**
|
||||
* Invalid Ethereum signature.
|
||||
@@ -1355,6 +1373,11 @@ declare module '@polkadot/api-base/types/errors' {
|
||||
* Cannot schedule downgrade of parachain to parathread
|
||||
**/
|
||||
CannotDowngrade: AugmentedError<ApiType>;
|
||||
/**
|
||||
* Cannot perform a parachain slot / lifecycle swap. Check that the state of both paras are
|
||||
* correct for the swap to work.
|
||||
**/
|
||||
CannotSwap: AugmentedError<ApiType>;
|
||||
/**
|
||||
* Cannot schedule upgrade of parathread to parachain
|
||||
**/
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
// Copyright 2017-2022 @polkadot/api-augment authors & contributors
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
import '@polkadot/api-augment/kusama';
|
||||
|
||||
import type { PolkadotRuntimeParachainsUmpPalletEvent, XcmV2TraitsOutcome } from '@polkadot/types/lookup';
|
||||
|
||||
import { Metadata, TypeRegistry } from '@polkadot/types';
|
||||
import metadataStatic from '@polkadot/types-support/metadata/static-kusama';
|
||||
|
||||
const registry = new TypeRegistry();
|
||||
const metadata = new Metadata(registry, metadataStatic);
|
||||
|
||||
registry.setMetadata(metadata);
|
||||
|
||||
describe('correct types', (): void => {
|
||||
it('correctly creates XcmV2TraitsOutcome', (): void => {
|
||||
const test = registry.createType<XcmV2TraitsOutcome>('XcmV2TraitsOutcome', {
|
||||
Incomplete: [3_000_000_000, 'BadOrigin']
|
||||
});
|
||||
|
||||
expect(test.toHuman()).toEqual({
|
||||
Incomplete: [
|
||||
'3,000,000,000',
|
||||
'BadOrigin'
|
||||
]
|
||||
});
|
||||
expect(test.isIncomplete).toEqual(true);
|
||||
expect(test.asIncomplete.toHuman()).toEqual([
|
||||
'3,000,000,000',
|
||||
'BadOrigin'
|
||||
]);
|
||||
});
|
||||
|
||||
it('correctly creates PolkadotRuntimeParachainsUmpPalletEvent', (): void => {
|
||||
const test = registry.createType<PolkadotRuntimeParachainsUmpPalletEvent>('PolkadotRuntimeParachainsUmpPalletEvent', '0x02112233445566778811223344556677881122334455667788112233445566778801005ed0b20000000006');
|
||||
|
||||
expect(test.asExecutedUpward[1].asIncomplete.toHuman()).toEqual([
|
||||
'3,000,000,000',
|
||||
'BadOrigin'
|
||||
]);
|
||||
});
|
||||
});
|
||||
@@ -6,7 +6,7 @@ import type { Bytes, Null, Option, Result, U8aFixed, Vec, bool, u128, u16, u32,
|
||||
import type { ITuple } from '@polkadot/types-codec/types';
|
||||
import type { EthereumAddress } from '@polkadot/types/interfaces/eth';
|
||||
import type { AccountId32, H256 } from '@polkadot/types/interfaces/runtime';
|
||||
import type { FrameSupportScheduleLookupError, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchInfo, KusamaRuntimeProxyType, PalletDemocracyVoteAccountVote, PalletDemocracyVoteThreshold, PalletElectionProviderMultiPhaseElectionCompute, PalletImOnlineSr25519AppSr25519Public, PalletMultisigTimepoint, PalletStakingExposure, PolkadotParachainPrimitivesHrmpChannelId, PolkadotPrimitivesV1CandidateReceipt, PolkadotRuntimeParachainsDisputesDisputeLocation, PolkadotRuntimeParachainsDisputesDisputeResult, SpFinalityGrandpaAppPublic, SpRuntimeDispatchError, XcmV1MultiLocation, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation } from '@polkadot/types/lookup';
|
||||
import type { FrameSupportScheduleLookupError, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchInfo, KusamaRuntimeProxyType, PalletDemocracyVoteAccountVote, PalletDemocracyVoteThreshold, PalletElectionProviderMultiPhaseElectionCompute, PalletImOnlineSr25519AppSr25519Public, PalletMultisigTimepoint, PalletStakingExposure, PolkadotParachainPrimitivesHrmpChannelId, PolkadotPrimitivesV2CandidateReceipt, PolkadotRuntimeParachainsDisputesDisputeLocation, PolkadotRuntimeParachainsDisputesDisputeResult, SpFinalityGrandpaAppPublic, SpRuntimeDispatchError, XcmV1MultiLocation, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation } from '@polkadot/types/lookup';
|
||||
|
||||
declare module '@polkadot/api-base/types/events' {
|
||||
export interface AugmentedEvents<ApiType extends ApiTypes> {
|
||||
@@ -143,6 +143,28 @@ declare module '@polkadot/api-base/types/events' {
|
||||
**/
|
||||
[key: string]: AugmentedEvent<ApiType>;
|
||||
};
|
||||
childBounties: {
|
||||
/**
|
||||
* A child-bounty is added.
|
||||
**/
|
||||
Added: AugmentedEvent<ApiType, [u32, u32]>;
|
||||
/**
|
||||
* A child-bounty is awarded to a beneficiary.
|
||||
**/
|
||||
Awarded: AugmentedEvent<ApiType, [u32, u32, AccountId32]>;
|
||||
/**
|
||||
* A child-bounty is cancelled.
|
||||
**/
|
||||
Canceled: AugmentedEvent<ApiType, [u32, u32]>;
|
||||
/**
|
||||
* A child-bounty is claimed by beneficiary.
|
||||
**/
|
||||
Claimed: AugmentedEvent<ApiType, [u32, u32, u128, AccountId32]>;
|
||||
/**
|
||||
* Generic event
|
||||
**/
|
||||
[key: string]: AugmentedEvent<ApiType>;
|
||||
};
|
||||
claims: {
|
||||
/**
|
||||
* Someone claimed some DOTs. `[who, ethereum_address, amount]`
|
||||
@@ -539,15 +561,15 @@ declare module '@polkadot/api-base/types/events' {
|
||||
/**
|
||||
* A candidate was backed. `[candidate, head_data]`
|
||||
**/
|
||||
CandidateBacked: AugmentedEvent<ApiType, [PolkadotPrimitivesV1CandidateReceipt, Bytes, u32, u32]>;
|
||||
CandidateBacked: AugmentedEvent<ApiType, [PolkadotPrimitivesV2CandidateReceipt, Bytes, u32, u32]>;
|
||||
/**
|
||||
* A candidate was included. `[candidate, head_data]`
|
||||
**/
|
||||
CandidateIncluded: AugmentedEvent<ApiType, [PolkadotPrimitivesV1CandidateReceipt, Bytes, u32, u32]>;
|
||||
CandidateIncluded: AugmentedEvent<ApiType, [PolkadotPrimitivesV2CandidateReceipt, Bytes, u32, u32]>;
|
||||
/**
|
||||
* A candidate timed out. `[candidate, head_data]`
|
||||
**/
|
||||
CandidateTimedOut: AugmentedEvent<ApiType, [PolkadotPrimitivesV1CandidateReceipt, Bytes, u32]>;
|
||||
CandidateTimedOut: AugmentedEvent<ApiType, [PolkadotPrimitivesV2CandidateReceipt, Bytes, u32]>;
|
||||
/**
|
||||
* Generic event
|
||||
**/
|
||||
@@ -575,12 +597,12 @@ declare module '@polkadot/api-base/types/events' {
|
||||
**/
|
||||
NewHeadNoted: AugmentedEvent<ApiType, [u32]>;
|
||||
/**
|
||||
* The given validation code was rejected by the PVF pre-checking vote.
|
||||
* The given validation code was accepted by the PVF pre-checking vote.
|
||||
* `code_hash` `para_id`
|
||||
**/
|
||||
PvfCheckAccepted: AugmentedEvent<ApiType, [H256, u32]>;
|
||||
/**
|
||||
* The given validation code was accepted by the PVF pre-checking vote.
|
||||
* The given validation code was rejected by the PVF pre-checking vote.
|
||||
* `code_hash` `para_id`
|
||||
**/
|
||||
PvfCheckRejected: AugmentedEvent<ApiType, [H256, u32]>;
|
||||
@@ -700,6 +722,10 @@ declare module '@polkadot/api-base/types/events' {
|
||||
* A proxy was executed correctly, with the given.
|
||||
**/
|
||||
ProxyExecuted: AugmentedEvent<ApiType, [Result<Null, SpRuntimeDispatchError>]>;
|
||||
/**
|
||||
* A proxy was removed.
|
||||
**/
|
||||
ProxyRemoved: AugmentedEvent<ApiType, [AccountId32, AccountId32, KusamaRuntimeProxyType, u32]>;
|
||||
/**
|
||||
* Generic event
|
||||
**/
|
||||
|
||||
@@ -6,4 +6,5 @@ import './consts';
|
||||
import './errors';
|
||||
import './events';
|
||||
import './query';
|
||||
import './registry';
|
||||
import './tx';
|
||||
|
||||
@@ -7,7 +7,7 @@ import type { BTreeMap, Bytes, Null, Option, U8aFixed, Vec, WrapperKeepOpaque, W
|
||||
import type { AnyNumber, ITuple } from '@polkadot/types-codec/types';
|
||||
import type { EthereumAddress } from '@polkadot/types/interfaces/eth';
|
||||
import type { AccountId32, Call, H256, Perbill, Percent } from '@polkadot/types/interfaces/runtime';
|
||||
import type { FrameSupportWeightsPerDispatchClassU64, FrameSystemAccountInfo, FrameSystemEventRecord, FrameSystemLastRuntimeUpgradeInfo, FrameSystemPhase, KusamaRuntimeSessionKeys, PalletAuthorshipUncleEntryItem, PalletBagsListListBag, PalletBagsListListNode, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesReleases, PalletBalancesReserveData, PalletBountiesBounty, PalletCollectiveVotes, PalletDemocracyPreimageStatus, PalletDemocracyReferendumInfo, PalletDemocracyReleases, PalletDemocracyVoteThreshold, PalletDemocracyVoteVoting, PalletElectionProviderMultiPhasePhase, PalletElectionProviderMultiPhaseReadySolution, PalletElectionProviderMultiPhaseRoundSnapshot, PalletElectionProviderMultiPhaseSignedSignedSubmission, PalletElectionProviderMultiPhaseSolutionOrSnapshotSize, PalletElectionsPhragmenSeatHolder, PalletElectionsPhragmenVoter, PalletGiltActiveGilt, PalletGiltActiveGiltsTotal, PalletGiltGiltBid, PalletGrandpaStoredPendingChange, PalletGrandpaStoredState, PalletIdentityRegistrarInfo, PalletIdentityRegistration, PalletImOnlineBoundedOpaqueNetworkState, PalletImOnlineSr25519AppSr25519Public, PalletMultisigMultisig, PalletPreimageRequestStatus, PalletProxyAnnouncement, PalletProxyProxyDefinition, PalletRecoveryActiveRecovery, PalletRecoveryRecoveryConfig, PalletSchedulerScheduledV3, PalletSocietyBid, PalletSocietyBidKind, PalletSocietyVote, PalletSocietyVouchingStatus, PalletStakingActiveEraInfo, PalletStakingEraRewardPoints, PalletStakingExposure, PalletStakingForcing, PalletStakingNominations, PalletStakingReleases, PalletStakingRewardDestination, PalletStakingSlashingSlashingSpans, PalletStakingSlashingSpanRecord, PalletStakingStakingLedger, PalletStakingUnappliedSlash, PalletStakingValidatorPrefs, PalletTipsOpenTip, PalletTransactionPaymentReleases, PalletTreasuryProposal, PalletVestingReleases, PalletVestingVestingInfo, PalletXcmQueryStatus, PalletXcmVersionMigrationStage, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotParachainPrimitivesHrmpChannelId, PolkadotPrimitivesV0ValidatorAppPublic, PolkadotPrimitivesV1AssignmentAppPublic, PolkadotPrimitivesV1CandidateCommitments, PolkadotPrimitivesV1CoreOccupied, PolkadotPrimitivesV1DisputeState, PolkadotPrimitivesV1ScrapedOnChainVotes, PolkadotPrimitivesV1UpgradeGoAhead, PolkadotPrimitivesV1UpgradeRestriction, PolkadotPrimitivesV2SessionInfo, PolkadotRuntimeCommonClaimsStatementKind, PolkadotRuntimeCommonCrowdloanFundInfo, PolkadotRuntimeCommonParasRegistrarParaInfo, PolkadotRuntimeParachainsConfigurationHostConfiguration, PolkadotRuntimeParachainsConfigurationMigrationV1HostConfiguration, PolkadotRuntimeParachainsHrmpHrmpChannel, PolkadotRuntimeParachainsHrmpHrmpOpenChannelRequest, PolkadotRuntimeParachainsInclusionAvailabilityBitfieldRecord, PolkadotRuntimeParachainsInclusionCandidatePendingAvailability, PolkadotRuntimeParachainsInitializerBufferedSessionChange, PolkadotRuntimeParachainsParasParaGenesisArgs, PolkadotRuntimeParachainsParasParaLifecycle, PolkadotRuntimeParachainsParasParaPastCodeMeta, PolkadotRuntimeParachainsParasPvfCheckActiveVoteState, PolkadotRuntimeParachainsSchedulerCoreAssignment, PolkadotRuntimeParachainsSchedulerParathreadClaimQueue, SpConsensusBabeAppPublic, SpConsensusBabeBabeEpochConfiguration, SpConsensusBabeDigestsNextConfigDescriptor, SpCoreCryptoKeyTypeId, SpRuntimeDigest, SpStakingOffenceOffenceDetails, XcmVersionedMultiLocation } from '@polkadot/types/lookup';
|
||||
import type { FrameSupportWeightsPerDispatchClassU64, FrameSystemAccountInfo, FrameSystemEventRecord, FrameSystemLastRuntimeUpgradeInfo, FrameSystemPhase, KusamaRuntimeSessionKeys, PalletAuthorshipUncleEntryItem, PalletBagsListListBag, PalletBagsListListNode, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesReleases, PalletBalancesReserveData, PalletBountiesBounty, PalletChildBountiesChildBounty, PalletCollectiveVotes, PalletDemocracyPreimageStatus, PalletDemocracyReferendumInfo, PalletDemocracyReleases, PalletDemocracyVoteThreshold, PalletDemocracyVoteVoting, PalletElectionProviderMultiPhasePhase, PalletElectionProviderMultiPhaseReadySolution, PalletElectionProviderMultiPhaseRoundSnapshot, PalletElectionProviderMultiPhaseSignedSignedSubmission, PalletElectionProviderMultiPhaseSolutionOrSnapshotSize, PalletElectionsPhragmenSeatHolder, PalletElectionsPhragmenVoter, PalletGiltActiveGilt, PalletGiltActiveGiltsTotal, PalletGiltGiltBid, PalletGrandpaStoredPendingChange, PalletGrandpaStoredState, PalletIdentityRegistrarInfo, PalletIdentityRegistration, PalletImOnlineBoundedOpaqueNetworkState, PalletImOnlineSr25519AppSr25519Public, PalletMultisigMultisig, PalletPreimageRequestStatus, PalletProxyAnnouncement, PalletProxyProxyDefinition, PalletRecoveryActiveRecovery, PalletRecoveryRecoveryConfig, PalletSchedulerScheduledV3, PalletSocietyBid, PalletSocietyBidKind, PalletSocietyVote, PalletSocietyVouchingStatus, PalletStakingActiveEraInfo, PalletStakingEraRewardPoints, PalletStakingExposure, PalletStakingForcing, PalletStakingNominations, PalletStakingReleases, PalletStakingRewardDestination, PalletStakingSlashingSlashingSpans, PalletStakingSlashingSpanRecord, PalletStakingStakingLedger, PalletStakingUnappliedSlash, PalletStakingValidatorPrefs, PalletTipsOpenTip, PalletTransactionPaymentReleases, PalletTreasuryProposal, PalletVestingReleases, PalletVestingVestingInfo, PalletXcmQueryStatus, PalletXcmVersionMigrationStage, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotParachainPrimitivesHrmpChannelId, PolkadotPrimitivesV2AssignmentAppPublic, PolkadotPrimitivesV2CandidateCommitments, PolkadotPrimitivesV2CoreOccupied, PolkadotPrimitivesV2DisputeState, PolkadotPrimitivesV2ScrapedOnChainVotes, PolkadotPrimitivesV2SessionInfo, PolkadotPrimitivesV2UpgradeGoAhead, PolkadotPrimitivesV2UpgradeRestriction, PolkadotPrimitivesV2ValidatorAppPublic, PolkadotRuntimeCommonClaimsStatementKind, PolkadotRuntimeCommonCrowdloanFundInfo, PolkadotRuntimeCommonParasRegistrarParaInfo, PolkadotRuntimeParachainsConfigurationHostConfiguration, PolkadotRuntimeParachainsConfigurationMigrationV1HostConfiguration, PolkadotRuntimeParachainsHrmpHrmpChannel, PolkadotRuntimeParachainsHrmpHrmpOpenChannelRequest, PolkadotRuntimeParachainsInclusionAvailabilityBitfieldRecord, PolkadotRuntimeParachainsInclusionCandidatePendingAvailability, PolkadotRuntimeParachainsInitializerBufferedSessionChange, PolkadotRuntimeParachainsParasParaGenesisArgs, PolkadotRuntimeParachainsParasParaLifecycle, PolkadotRuntimeParachainsParasParaPastCodeMeta, PolkadotRuntimeParachainsParasPvfCheckActiveVoteState, PolkadotRuntimeParachainsSchedulerCoreAssignment, PolkadotRuntimeParachainsSchedulerParathreadClaimQueue, SpConsensusBabeAppPublic, SpConsensusBabeBabeEpochConfiguration, SpConsensusBabeDigestsNextConfigDescriptor, SpCoreCryptoKeyTypeId, SpNposElectionsElectionScore, SpRuntimeDigest, SpStakingOffenceOffenceDetails, XcmVersionedMultiLocation } from '@polkadot/types/lookup';
|
||||
import type { Observable } from '@polkadot/types/types';
|
||||
|
||||
declare module '@polkadot/api-base/types/storage' {
|
||||
@@ -257,6 +257,33 @@ declare module '@polkadot/api-base/types/storage' {
|
||||
**/
|
||||
[key: string]: QueryableStorageEntry<ApiType>;
|
||||
};
|
||||
childBounties: {
|
||||
/**
|
||||
* Child-bounties that have been added.
|
||||
**/
|
||||
childBounties: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<Option<PalletChildBountiesChildBounty>>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;
|
||||
/**
|
||||
* Number of total child bounties.
|
||||
**/
|
||||
childBountyCount: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
/**
|
||||
* The description of each child-bounty.
|
||||
**/
|
||||
childBountyDescriptions: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<Bytes>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
|
||||
/**
|
||||
* The cumulative child-bounty curator fee for each parent bounty.
|
||||
**/
|
||||
childrenCuratorFees: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u128>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
|
||||
/**
|
||||
* Number of child-bounties per parent bounty.
|
||||
* Map of parent bounty index to number of child bounties.
|
||||
**/
|
||||
parentChildBounties: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u32>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
|
||||
/**
|
||||
* Generic query
|
||||
**/
|
||||
[key: string]: QueryableStorageEntry<ApiType>;
|
||||
};
|
||||
claims: {
|
||||
claims: AugmentedQuery<ApiType, (arg: EthereumAddress | string | Uint8Array) => Observable<Option<u128>>, [EthereumAddress]> & QueryableStorageEntry<ApiType, [EthereumAddress]>;
|
||||
/**
|
||||
@@ -356,9 +383,9 @@ declare module '@polkadot/api-base/types/storage' {
|
||||
**/
|
||||
newRaise: AugmentedQuery<ApiType, () => Observable<Vec<u32>>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
/**
|
||||
* Tracker for the next available trie index
|
||||
* Tracker for the next available fund index
|
||||
**/
|
||||
nextTrieIndex: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
nextFundIndex: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
/**
|
||||
* Generic query
|
||||
**/
|
||||
@@ -475,7 +502,7 @@ declare module '@polkadot/api-base/types/storage' {
|
||||
*
|
||||
* Can be set via `set_minimum_untrusted_score`.
|
||||
**/
|
||||
minimumUntrustedScore: AugmentedQuery<ApiType, () => Observable<Option<Vec<u128>>>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
minimumUntrustedScore: AugmentedQuery<ApiType, () => Observable<Option<SpNposElectionsElectionScore>>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
/**
|
||||
* Current best solution, signed or unsigned, queued to be returned upon `elect`.
|
||||
**/
|
||||
@@ -497,7 +524,7 @@ declare module '@polkadot/api-base/types/storage' {
|
||||
* can be quite large, so we're willing to pay the cost of multiple database accesses to access
|
||||
* them one at a time instead of reading and decoding all of them at once.
|
||||
**/
|
||||
signedSubmissionIndices: AugmentedQuery<ApiType, () => Observable<BTreeMap<Vec<u128>, u32>>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
signedSubmissionIndices: AugmentedQuery<ApiType, () => Observable<BTreeMap<SpNposElectionsElectionScore, u32>>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
/**
|
||||
* The next index to be assigned to an incoming signed submission.
|
||||
*
|
||||
@@ -828,7 +855,7 @@ declare module '@polkadot/api-base/types/storage' {
|
||||
/**
|
||||
* The commitments of candidates pending availability, by `ParaId`.
|
||||
**/
|
||||
pendingAvailabilityCommitments: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<PolkadotPrimitivesV1CandidateCommitments>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
|
||||
pendingAvailabilityCommitments: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<PolkadotPrimitivesV2CandidateCommitments>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
|
||||
/**
|
||||
* Generic query
|
||||
**/
|
||||
@@ -847,7 +874,7 @@ declare module '@polkadot/api-base/types/storage' {
|
||||
/**
|
||||
* Scraped on chain data for extracting resolved disputes as well as backing votes.
|
||||
**/
|
||||
onChainVotes: AugmentedQuery<ApiType, () => Observable<Option<PolkadotPrimitivesV1ScrapedOnChainVotes>>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
onChainVotes: AugmentedQuery<ApiType, () => Observable<Option<PolkadotPrimitivesV2ScrapedOnChainVotes>>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
/**
|
||||
* Generic query
|
||||
**/
|
||||
@@ -893,6 +920,8 @@ declare module '@polkadot/api-base/types/storage' {
|
||||
heads: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<Bytes>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
|
||||
/**
|
||||
* All parachains. Ordered ascending by `ParaId`. Parathreads are not included.
|
||||
*
|
||||
* Consider using the [`ParachainsCache`] type of modifying.
|
||||
**/
|
||||
parachains: AugmentedQuery<ApiType, () => Observable<Vec<u32>>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
/**
|
||||
@@ -963,7 +992,7 @@ declare module '@polkadot/api-base/types/storage' {
|
||||
* NOTE that this field is used by parachains via merkle storage proofs, therefore changing
|
||||
* the format will require migration of parachains.
|
||||
**/
|
||||
upgradeGoAheadSignal: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<PolkadotPrimitivesV1UpgradeGoAhead>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
|
||||
upgradeGoAheadSignal: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<PolkadotPrimitivesV2UpgradeGoAhead>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
|
||||
/**
|
||||
* This is used by the relay-chain to communicate that there are restrictions for performing
|
||||
* an upgrade for this parachain.
|
||||
@@ -975,7 +1004,7 @@ declare module '@polkadot/api-base/types/storage' {
|
||||
* NOTE that this field is used by parachains via merkle storage proofs, therefore changing
|
||||
* the format will require migration of parachains.
|
||||
**/
|
||||
upgradeRestrictionSignal: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<PolkadotPrimitivesV1UpgradeRestriction>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
|
||||
upgradeRestrictionSignal: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<PolkadotPrimitivesV2UpgradeRestriction>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
|
||||
/**
|
||||
* Generic query
|
||||
**/
|
||||
@@ -992,7 +1021,7 @@ declare module '@polkadot/api-base/types/storage' {
|
||||
* * The number of parachains and parathread multiplexers
|
||||
* * The number of validators divided by `configuration.max_validators_per_core`.
|
||||
**/
|
||||
availabilityCores: AugmentedQuery<ApiType, () => Observable<Vec<Option<PolkadotPrimitivesV1CoreOccupied>>>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
availabilityCores: AugmentedQuery<ApiType, () => Observable<Vec<Option<PolkadotPrimitivesV2CoreOccupied>>>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
/**
|
||||
* An index used to ensure that only one claim on a parathread exists in the queue or is
|
||||
* currently being handled by an occupied core.
|
||||
@@ -1043,7 +1072,7 @@ declare module '@polkadot/api-base/types/storage' {
|
||||
/**
|
||||
* All ongoing or concluded disputes for the last several sessions.
|
||||
**/
|
||||
disputes: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: H256 | string | Uint8Array) => Observable<Option<PolkadotPrimitivesV1DisputeState>>, [u32, H256]> & QueryableStorageEntry<ApiType, [u32, H256]>;
|
||||
disputes: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: H256 | string | Uint8Array) => Observable<Option<PolkadotPrimitivesV2DisputeState>>, [u32, H256]> & QueryableStorageEntry<ApiType, [u32, H256]>;
|
||||
/**
|
||||
* Whether the chain is frozen. Starts as `None`. When this is `Some`,
|
||||
* the chain will not accept any new parachain blocks for backing or inclusion,
|
||||
@@ -1080,7 +1109,7 @@ declare module '@polkadot/api-base/types/storage' {
|
||||
* Note that this API is private due to it being prone to 'off-by-one' at session boundaries.
|
||||
* When in doubt, use `Sessions` API instead.
|
||||
**/
|
||||
assignmentKeysUnsafe: AugmentedQuery<ApiType, () => Observable<Vec<PolkadotPrimitivesV1AssignmentAppPublic>>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
assignmentKeysUnsafe: AugmentedQuery<ApiType, () => Observable<Vec<PolkadotPrimitivesV2AssignmentAppPublic>>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
/**
|
||||
* The earliest session for which previous session info is stored.
|
||||
**/
|
||||
@@ -1106,7 +1135,7 @@ declare module '@polkadot/api-base/types/storage' {
|
||||
* The parachain attestation keys of the validators actively participating in parachain consensus.
|
||||
* This should be the same length as `ActiveValidatorIndices`.
|
||||
**/
|
||||
activeValidatorKeys: AugmentedQuery<ApiType, () => Observable<Vec<PolkadotPrimitivesV0ValidatorAppPublic>>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
activeValidatorKeys: AugmentedQuery<ApiType, () => Observable<Vec<PolkadotPrimitivesV2ValidatorAppPublic>>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
/**
|
||||
* The current session index.
|
||||
**/
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
// Copyright 2017-2022 @polkadot/api-augment authors & contributors
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
import '@polkadot/types-augment/registry/substrate';
|
||||
import '@polkadot/types-augment/registry/polkadot';
|
||||
import '@polkadot/types-augment/registry/kusama';
|
||||
@@ -7,7 +7,7 @@ import type { Bytes, Compact, Option, U8aFixed, Vec, WrapperKeepOpaque, bool, u1
|
||||
import type { AnyNumber, ITuple } from '@polkadot/types-codec/types';
|
||||
import type { EthereumAddress } from '@polkadot/types/interfaces/eth';
|
||||
import type { AccountId32, Call, H256, MultiAddress, Perbill, Percent, Perquintill } from '@polkadot/types/interfaces/runtime';
|
||||
import type { FrameSupportScheduleMaybeHashed, KusamaRuntimeOriginCaller, KusamaRuntimeProxyType, KusamaRuntimeSessionKeys, PalletDemocracyConviction, PalletDemocracyVoteAccountVote, PalletElectionProviderMultiPhaseRawSolution, PalletElectionProviderMultiPhaseSolutionOrSnapshotSize, PalletElectionsPhragmenRenouncing, PalletIdentityBitFlags, PalletIdentityIdentityInfo, PalletIdentityJudgement, PalletImOnlineHeartbeat, PalletImOnlineSr25519AppSr25519Signature, PalletMultisigTimepoint, PalletSocietyJudgement, PalletStakingRewardDestination, PalletStakingValidatorPrefs, PalletVestingVestingInfo, PolkadotParachainPrimitivesHrmpChannelId, PolkadotPrimitivesV0ValidatorAppSignature, PolkadotPrimitivesV1InherentData, PolkadotPrimitivesV2PvfCheckStatement, PolkadotRuntimeCommonClaimsEcdsaSignature, PolkadotRuntimeCommonClaimsStatementKind, SpConsensusBabeDigestsNextConfigDescriptor, SpConsensusSlotsEquivocationProof, SpFinalityGrandpaEquivocationProof, SpNposElectionsSupport, SpRuntimeHeader, SpRuntimeMultiSignature, SpRuntimeMultiSigner, SpSessionMembershipProof, XcmV1MultiLocation, XcmV2WeightLimit, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';
|
||||
import type { FrameSupportScheduleMaybeHashed, KusamaRuntimeOriginCaller, KusamaRuntimeProxyType, KusamaRuntimeSessionKeys, PalletDemocracyConviction, PalletDemocracyVoteAccountVote, PalletElectionProviderMultiPhaseRawSolution, PalletElectionProviderMultiPhaseSolutionOrSnapshotSize, PalletElectionsPhragmenRenouncing, PalletIdentityBitFlags, PalletIdentityIdentityInfo, PalletIdentityJudgement, PalletImOnlineHeartbeat, PalletImOnlineSr25519AppSr25519Signature, PalletMultisigTimepoint, PalletSocietyJudgement, PalletStakingPalletConfigOpPerbill, PalletStakingPalletConfigOpPercent, PalletStakingPalletConfigOpU128, PalletStakingPalletConfigOpU32, PalletStakingRewardDestination, PalletStakingValidatorPrefs, PalletVestingVestingInfo, PolkadotParachainPrimitivesHrmpChannelId, PolkadotPrimitivesV2InherentData, PolkadotPrimitivesV2PvfCheckStatement, PolkadotPrimitivesV2ValidatorAppSignature, PolkadotRuntimeCommonClaimsEcdsaSignature, PolkadotRuntimeCommonClaimsStatementKind, SpConsensusBabeDigestsNextConfigDescriptor, SpConsensusSlotsEquivocationProof, SpFinalityGrandpaEquivocationProof, SpNposElectionsElectionScore, SpNposElectionsSupport, SpRuntimeHeader, SpRuntimeMultiSignature, SpRuntimeMultiSigner, SpSessionMembershipProof, XcmV1MultiLocation, XcmV2WeightLimit, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';
|
||||
|
||||
declare module '@polkadot/api-base/types/submittable' {
|
||||
export interface AugmentedSubmittables<ApiType extends ApiTypes> {
|
||||
@@ -100,12 +100,12 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
*
|
||||
* Only works if
|
||||
* - both nodes are within the same bag,
|
||||
* - and `origin` has a greater `VoteWeight` than `lighter`.
|
||||
* - and `origin` has a greater `Score` than `lighter`.
|
||||
**/
|
||||
putInFrontOf: AugmentedSubmittable<(lighter: AccountId32 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [AccountId32]>;
|
||||
/**
|
||||
* Declare that some `dislocated` account has, through rewards or penalties, sufficiently
|
||||
* changed its weight that it should properly fall into a different bag than its current
|
||||
* changed its score that it should properly fall into a different bag than its current
|
||||
* one.
|
||||
*
|
||||
* Anyone can call this function about any potentially dislocated account.
|
||||
@@ -334,6 +334,175 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
**/
|
||||
[key: string]: SubmittableExtrinsicFunction<ApiType>;
|
||||
};
|
||||
childBounties: {
|
||||
/**
|
||||
* Accept the curator role for the child-bounty.
|
||||
*
|
||||
* The dispatch origin for this call must be the curator of this
|
||||
* child-bounty.
|
||||
*
|
||||
* A deposit will be reserved from the curator and refund upon
|
||||
* successful payout or cancellation.
|
||||
*
|
||||
* Fee for curator is deducted from curator fee of parent bounty.
|
||||
*
|
||||
* Parent bounty must be in active state, for this child-bounty call to
|
||||
* work.
|
||||
*
|
||||
* Child-bounty must be in "CuratorProposed" state, for processing the
|
||||
* call. And state of child-bounty is moved to "Active" on successful
|
||||
* call completion.
|
||||
*
|
||||
* - `parent_bounty_id`: Index of parent bounty.
|
||||
* - `child_bounty_id`: Index of child bounty.
|
||||
**/
|
||||
acceptCurator: AugmentedSubmittable<(parentBountyId: Compact<u32> | AnyNumber | Uint8Array, childBountyId: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, Compact<u32>]>;
|
||||
/**
|
||||
* Add a new child-bounty.
|
||||
*
|
||||
* The dispatch origin for this call must be the curator of parent
|
||||
* bounty and the parent bounty must be in "active" state.
|
||||
*
|
||||
* Child-bounty gets added successfully & fund gets transferred from
|
||||
* parent bounty to child-bounty account, if parent bounty has enough
|
||||
* funds, else the call fails.
|
||||
*
|
||||
* Upper bound to maximum number of active child-bounties that can be
|
||||
* added are managed via runtime trait config
|
||||
* [`Config::MaxActiveChildBountyCount`].
|
||||
*
|
||||
* If the call is success, the status of child-bounty is updated to
|
||||
* "Added".
|
||||
*
|
||||
* - `parent_bounty_id`: Index of parent bounty for which child-bounty is being added.
|
||||
* - `value`: Value for executing the proposal.
|
||||
* - `description`: Text description for the child-bounty.
|
||||
**/
|
||||
addChildBounty: AugmentedSubmittable<(parentBountyId: Compact<u32> | AnyNumber | Uint8Array, value: Compact<u128> | AnyNumber | Uint8Array, description: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, Compact<u128>, Bytes]>;
|
||||
/**
|
||||
* Award child-bounty to a beneficiary.
|
||||
*
|
||||
* The beneficiary will be able to claim the funds after a delay.
|
||||
*
|
||||
* The dispatch origin for this call must be the master curator or
|
||||
* curator of this child-bounty.
|
||||
*
|
||||
* Parent bounty must be in active state, for this child-bounty call to
|
||||
* work.
|
||||
*
|
||||
* Child-bounty must be in active state, for processing the call. And
|
||||
* state of child-bounty is moved to "PendingPayout" on successful call
|
||||
* completion.
|
||||
*
|
||||
* - `parent_bounty_id`: Index of parent bounty.
|
||||
* - `child_bounty_id`: Index of child bounty.
|
||||
* - `beneficiary`: Beneficiary account.
|
||||
**/
|
||||
awardChildBounty: AugmentedSubmittable<(parentBountyId: Compact<u32> | AnyNumber | Uint8Array, childBountyId: Compact<u32> | AnyNumber | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, Compact<u32>, MultiAddress]>;
|
||||
/**
|
||||
* Claim the payout from an awarded child-bounty after payout delay.
|
||||
*
|
||||
* The dispatch origin for this call may be any signed origin.
|
||||
*
|
||||
* Call works independent of parent bounty state, No need for parent
|
||||
* bounty to be in active state.
|
||||
*
|
||||
* The Beneficiary is paid out with agreed bounty value. Curator fee is
|
||||
* paid & curator deposit is unreserved.
|
||||
*
|
||||
* Child-bounty must be in "PendingPayout" state, for processing the
|
||||
* call. And instance of child-bounty is removed from the state on
|
||||
* successful call completion.
|
||||
*
|
||||
* - `parent_bounty_id`: Index of parent bounty.
|
||||
* - `child_bounty_id`: Index of child bounty.
|
||||
**/
|
||||
claimChildBounty: AugmentedSubmittable<(parentBountyId: Compact<u32> | AnyNumber | Uint8Array, childBountyId: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, Compact<u32>]>;
|
||||
/**
|
||||
* Cancel a proposed or active child-bounty. Child-bounty account funds
|
||||
* are transferred to parent bounty account. The child-bounty curator
|
||||
* deposit may be unreserved if possible.
|
||||
*
|
||||
* The dispatch origin for this call must be either parent curator or
|
||||
* `T::RejectOrigin`.
|
||||
*
|
||||
* If the state of child-bounty is `Active`, curator deposit is
|
||||
* unreserved.
|
||||
*
|
||||
* If the state of child-bounty is `PendingPayout`, call fails &
|
||||
* returns `PendingPayout` error.
|
||||
*
|
||||
* For the origin other than T::RejectOrigin, parent bounty must be in
|
||||
* active state, for this child-bounty call to work. For origin
|
||||
* T::RejectOrigin execution is forced.
|
||||
*
|
||||
* Instance of child-bounty is removed from the state on successful
|
||||
* call completion.
|
||||
*
|
||||
* - `parent_bounty_id`: Index of parent bounty.
|
||||
* - `child_bounty_id`: Index of child bounty.
|
||||
**/
|
||||
closeChildBounty: AugmentedSubmittable<(parentBountyId: Compact<u32> | AnyNumber | Uint8Array, childBountyId: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, Compact<u32>]>;
|
||||
/**
|
||||
* Propose curator for funded child-bounty.
|
||||
*
|
||||
* The dispatch origin for this call must be curator of parent bounty.
|
||||
*
|
||||
* Parent bounty must be in active state, for this child-bounty call to
|
||||
* work.
|
||||
*
|
||||
* Child-bounty must be in "Added" state, for processing the call. And
|
||||
* state of child-bounty is moved to "CuratorProposed" on successful
|
||||
* call completion.
|
||||
*
|
||||
* - `parent_bounty_id`: Index of parent bounty.
|
||||
* - `child_bounty_id`: Index of child bounty.
|
||||
* - `curator`: Address of child-bounty curator.
|
||||
* - `fee`: payment fee to child-bounty curator for execution.
|
||||
**/
|
||||
proposeCurator: AugmentedSubmittable<(parentBountyId: Compact<u32> | AnyNumber | Uint8Array, childBountyId: Compact<u32> | AnyNumber | Uint8Array, curator: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, fee: Compact<u128> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, Compact<u32>, MultiAddress, Compact<u128>]>;
|
||||
/**
|
||||
* Unassign curator from a child-bounty.
|
||||
*
|
||||
* The dispatch origin for this call can be either `RejectOrigin`, or
|
||||
* the curator of the parent bounty, or any signed origin.
|
||||
*
|
||||
* For the origin other than T::RejectOrigin and the child-bounty
|
||||
* curator, parent-bounty must be in active state, for this call to
|
||||
* work. We allow child-bounty curator and T::RejectOrigin to execute
|
||||
* this call irrespective of the parent-bounty state.
|
||||
*
|
||||
* If this function is called by the `RejectOrigin` or the
|
||||
* parent-bounty curator, we assume that the child-bounty curator is
|
||||
* malicious or inactive. As a result, child-bounty curator deposit is
|
||||
* slashed.
|
||||
*
|
||||
* If the origin is the child-bounty curator, we take this as a sign
|
||||
* that they are unable to do their job, and are willingly giving up.
|
||||
* We could slash the deposit, but for now we allow them to unreserve
|
||||
* their deposit and exit without issue. (We may want to change this if
|
||||
* it is abused.)
|
||||
*
|
||||
* Finally, the origin can be anyone iff the child-bounty curator is
|
||||
* "inactive". Expiry update due of parent bounty is used to estimate
|
||||
* inactive state of child-bounty curator.
|
||||
*
|
||||
* This allows anyone in the community to call out that a child-bounty
|
||||
* curator is not doing their due diligence, and we should pick a new
|
||||
* one. In this case the child-bounty curator deposit is slashed.
|
||||
*
|
||||
* State of child-bounty is moved to Added state on successful call
|
||||
* completion.
|
||||
*
|
||||
* - `parent_bounty_id`: Index of parent bounty.
|
||||
* - `child_bounty_id`: Index of child bounty.
|
||||
**/
|
||||
unassignCurator: AugmentedSubmittable<(parentBountyId: Compact<u32> | AnyNumber | Uint8Array, childBountyId: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, Compact<u32>]>;
|
||||
/**
|
||||
* Generic tx
|
||||
**/
|
||||
[key: string]: SubmittableExtrinsicFunction<ApiType>;
|
||||
};
|
||||
claims: {
|
||||
/**
|
||||
* Attest to a statement, needed to finalize the claims process.
|
||||
@@ -1223,7 +1392,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
*
|
||||
* This check can be turned off by setting the value to `None`.
|
||||
**/
|
||||
setMinimumUntrustedScore: AugmentedSubmittable<(maybeNextScore: Option<Vec<u128>> | null | object | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Option<Vec<u128>>]>;
|
||||
setMinimumUntrustedScore: AugmentedSubmittable<(maybeNextScore: Option<SpNposElectionsElectionScore> | null | object | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Option<SpNposElectionsElectionScore>]>;
|
||||
/**
|
||||
* Submit a solution for the signed phase.
|
||||
*
|
||||
@@ -1234,12 +1403,8 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
*
|
||||
* A deposit is reserved and recorded for the solution. Based on the outcome, the solution
|
||||
* might be rewarded, slashed, or get all or a part of the deposit back.
|
||||
*
|
||||
* # <weight>
|
||||
* Queue size must be provided as witness data.
|
||||
* # </weight>
|
||||
**/
|
||||
submit: AugmentedSubmittable<(rawSolution: PalletElectionProviderMultiPhaseRawSolution | { solution?: any; score?: any; round?: any } | string | Uint8Array, numSignedSubmissions: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [PalletElectionProviderMultiPhaseRawSolution, u32]>;
|
||||
submit: AugmentedSubmittable<(rawSolution: PalletElectionProviderMultiPhaseRawSolution | { solution?: any; score?: any; round?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [PalletElectionProviderMultiPhaseRawSolution]>;
|
||||
/**
|
||||
* Submit a solution for the unsigned phase.
|
||||
*
|
||||
@@ -1982,7 +2147,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
/**
|
||||
* Enter the paras inherent. This will process bitfields and backed candidates.
|
||||
**/
|
||||
enter: AugmentedSubmittable<(data: PolkadotPrimitivesV1InherentData | { bitfields?: any; backedCandidates?: any; disputes?: any; parentHeader?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [PolkadotPrimitivesV1InherentData]>;
|
||||
enter: AugmentedSubmittable<(data: PolkadotPrimitivesV2InherentData | { bitfields?: any; backedCandidates?: any; disputes?: any; parentHeader?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [PolkadotPrimitivesV2InherentData]>;
|
||||
/**
|
||||
* Generic tx
|
||||
**/
|
||||
@@ -2031,7 +2196,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
* Includes a statement for a PVF pre-checking vote. Potentially, finalizes the vote and
|
||||
* enacts the results if that was the last vote before achieving the supermajority.
|
||||
**/
|
||||
includePvfCheckStatement: AugmentedSubmittable<(stmt: PolkadotPrimitivesV2PvfCheckStatement | { accept?: any; subject?: any; sessionIndex?: any; validatorIndex?: any } | string | Uint8Array, signature: PolkadotPrimitivesV0ValidatorAppSignature | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [PolkadotPrimitivesV2PvfCheckStatement, PolkadotPrimitivesV0ValidatorAppSignature]>;
|
||||
includePvfCheckStatement: AugmentedSubmittable<(stmt: PolkadotPrimitivesV2PvfCheckStatement | { accept?: any; subject?: any; sessionIndex?: any; validatorIndex?: any } | string | Uint8Array, signature: PolkadotPrimitivesV2ValidatorAppSignature | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [PolkadotPrimitivesV2PvfCheckStatement, PolkadotPrimitivesV2ValidatorAppSignature]>;
|
||||
/**
|
||||
* Remove the validation code from the storage iff the reference count is 0.
|
||||
*
|
||||
@@ -2213,7 +2378,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
* Weight is a function of the number of proxies the user has (P).
|
||||
* # </weight>
|
||||
**/
|
||||
addProxy: AugmentedSubmittable<(delegate: AccountId32 | string | Uint8Array, proxyType: KusamaRuntimeProxyType | 'Any' | 'NonTransfer' | 'Governance' | 'Staking' | 'IdentityJudgement' | 'CancelProxy' | 'Auction' | number | Uint8Array, delay: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [AccountId32, KusamaRuntimeProxyType, u32]>;
|
||||
addProxy: AugmentedSubmittable<(delegate: AccountId32 | string | Uint8Array, proxyType: KusamaRuntimeProxyType | 'Any' | 'NonTransfer' | 'Governance' | 'Staking' | 'IdentityJudgement' | 'CancelProxy' | 'Auction' | 'Society' | number | Uint8Array, delay: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [AccountId32, KusamaRuntimeProxyType, u32]>;
|
||||
/**
|
||||
* Publish the hash of a proxy-call that will be made in the future.
|
||||
*
|
||||
@@ -2263,7 +2428,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
* # </weight>
|
||||
* TODO: Might be over counting 1 read
|
||||
**/
|
||||
anonymous: AugmentedSubmittable<(proxyType: KusamaRuntimeProxyType | 'Any' | 'NonTransfer' | 'Governance' | 'Staking' | 'IdentityJudgement' | 'CancelProxy' | 'Auction' | number | Uint8Array, delay: u32 | AnyNumber | Uint8Array, index: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [KusamaRuntimeProxyType, u32, u16]>;
|
||||
anonymous: AugmentedSubmittable<(proxyType: KusamaRuntimeProxyType | 'Any' | 'NonTransfer' | 'Governance' | 'Staking' | 'IdentityJudgement' | 'CancelProxy' | 'Auction' | 'Society' | number | Uint8Array, delay: u32 | AnyNumber | Uint8Array, index: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [KusamaRuntimeProxyType, u32, u16]>;
|
||||
/**
|
||||
* Removes a previously spawned anonymous proxy.
|
||||
*
|
||||
@@ -2286,7 +2451,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
* Weight is a function of the number of proxies the user has (P).
|
||||
* # </weight>
|
||||
**/
|
||||
killAnonymous: AugmentedSubmittable<(spawner: AccountId32 | string | Uint8Array, proxyType: KusamaRuntimeProxyType | 'Any' | 'NonTransfer' | 'Governance' | 'Staking' | 'IdentityJudgement' | 'CancelProxy' | 'Auction' | number | Uint8Array, index: u16 | AnyNumber | Uint8Array, height: Compact<u32> | AnyNumber | Uint8Array, extIndex: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [AccountId32, KusamaRuntimeProxyType, u16, Compact<u32>, Compact<u32>]>;
|
||||
killAnonymous: AugmentedSubmittable<(spawner: AccountId32 | string | Uint8Array, proxyType: KusamaRuntimeProxyType | 'Any' | 'NonTransfer' | 'Governance' | 'Staking' | 'IdentityJudgement' | 'CancelProxy' | 'Auction' | 'Society' | number | Uint8Array, index: u16 | AnyNumber | Uint8Array, height: Compact<u32> | AnyNumber | Uint8Array, extIndex: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [AccountId32, KusamaRuntimeProxyType, u16, Compact<u32>, Compact<u32>]>;
|
||||
/**
|
||||
* Dispatch the given `call` from an account that the sender is authorised for through
|
||||
* `add_proxy`.
|
||||
@@ -2389,7 +2554,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
* Weight is a function of the number of proxies the user has (P).
|
||||
* # </weight>
|
||||
**/
|
||||
removeProxy: AugmentedSubmittable<(delegate: AccountId32 | string | Uint8Array, proxyType: KusamaRuntimeProxyType | 'Any' | 'NonTransfer' | 'Governance' | 'Staking' | 'IdentityJudgement' | 'CancelProxy' | 'Auction' | number | Uint8Array, delay: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [AccountId32, KusamaRuntimeProxyType, u32]>;
|
||||
removeProxy: AugmentedSubmittable<(delegate: AccountId32 | string | Uint8Array, proxyType: KusamaRuntimeProxyType | 'Any' | 'NonTransfer' | 'Governance' | 'Staking' | 'IdentityJudgement' | 'CancelProxy' | 'Auction' | 'Society' | number | Uint8Array, delay: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [AccountId32, KusamaRuntimeProxyType, u32]>;
|
||||
/**
|
||||
* Generic tx
|
||||
**/
|
||||
@@ -3346,7 +3511,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
*
|
||||
* # <weight>
|
||||
* - Time complexity: O(L), where L is unlocking chunks
|
||||
* - Bounded by `MAX_UNLOCKING_CHUNKS`.
|
||||
* - Bounded by `MaxUnlockingChunks`.
|
||||
* - Storage changes: Can't increase storage, only decrease it.
|
||||
* # </weight>
|
||||
**/
|
||||
@@ -3449,7 +3614,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
* NOTE: Existing nominators and validators will not be affected by this update.
|
||||
* to kick people under the new limits, `chill_other` should be called.
|
||||
**/
|
||||
setStakingConfigs: AugmentedSubmittable<(minNominatorBond: u128 | AnyNumber | Uint8Array, minValidatorBond: u128 | AnyNumber | Uint8Array, maxNominatorCount: Option<u32> | null | object | string | Uint8Array, maxValidatorCount: Option<u32> | null | object | string | Uint8Array, chillThreshold: Option<Percent> | null | object | string | Uint8Array, minCommission: Perbill | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u128, u128, Option<u32>, Option<u32>, Option<Percent>, Perbill]>;
|
||||
setStakingConfigs: AugmentedSubmittable<(minNominatorBond: PalletStakingPalletConfigOpU128 | { Noop: any } | { Set: any } | { Remove: any } | string | Uint8Array, minValidatorBond: PalletStakingPalletConfigOpU128 | { Noop: any } | { Set: any } | { Remove: any } | string | Uint8Array, maxNominatorCount: PalletStakingPalletConfigOpU32 | { Noop: any } | { Set: any } | { Remove: any } | string | Uint8Array, maxValidatorCount: PalletStakingPalletConfigOpU32 | { Noop: any } | { Set: any } | { Remove: any } | string | Uint8Array, chillThreshold: PalletStakingPalletConfigOpPercent | { Noop: any } | { Set: any } | { Remove: any } | string | Uint8Array, minCommission: PalletStakingPalletConfigOpPerbill | { Noop: any } | { Set: any } | { Remove: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [PalletStakingPalletConfigOpU128, PalletStakingPalletConfigOpU128, PalletStakingPalletConfigOpU32, PalletStakingPalletConfigOpU32, PalletStakingPalletConfigOpPercent, PalletStakingPalletConfigOpPerbill]>;
|
||||
/**
|
||||
* Sets the ideal number of validators.
|
||||
*
|
||||
@@ -3471,7 +3636,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
* Once the unlock period is done, you can call `withdraw_unbonded` to actually move
|
||||
* the funds out of management ready for transfer.
|
||||
*
|
||||
* No more than a limited number of unlocking chunks (see `MAX_UNLOCKING_CHUNKS`)
|
||||
* No more than a limited number of unlocking chunks (see `MaxUnlockingChunks`)
|
||||
* can co-exists at the same time. In that case, [`Call::withdraw_unbonded`] need
|
||||
* to be called first to remove some of the chunks (if possible).
|
||||
*
|
||||
@@ -4243,10 +4408,13 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
**/
|
||||
forceXcmVersion: AugmentedSubmittable<(location: XcmV1MultiLocation | { parents?: any; interior?: any } | string | Uint8Array, xcmVersion: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmV1MultiLocation, u32]>;
|
||||
/**
|
||||
* Transfer some assets from the local chain to the sovereign account of a destination chain and forward
|
||||
* a notification XCM.
|
||||
* 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.
|
||||
* Fee payment on the destination side is made from the asset in the `assets` vector of
|
||||
* index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight
|
||||
* is needed than `weight_limit`, then the operation will fail and the assets send may be
|
||||
* at risk.
|
||||
*
|
||||
* - `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
|
||||
@@ -4263,7 +4431,10 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
/**
|
||||
* 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.
|
||||
* Fee payment on the destination side is made from the asset in the `assets` vector of
|
||||
* index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight
|
||||
* is needed than `weight_limit`, then the operation will fail and the assets send may be
|
||||
* at risk.
|
||||
*
|
||||
* - `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
|
||||
@@ -4278,12 +4449,12 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
**/
|
||||
limitedTeleportAssets: AugmentedSubmittable<(dest: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, beneficiary: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, assets: XcmVersionedMultiAssets | { V0: any } | { V1: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array, weightLimit: XcmV2WeightLimit | { Unlimited: any } | { Limited: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation, XcmVersionedMultiLocation, XcmVersionedMultiAssets, u32, XcmV2WeightLimit]>;
|
||||
/**
|
||||
* Transfer some assets from the local chain to the sovereign account of a destination chain and forward
|
||||
* a notification XCM.
|
||||
* 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 and
|
||||
* fee-weight is calculated locally and thus remote weights are assumed to be equal to
|
||||
* local weights.
|
||||
* Fee payment on the destination side is made from the asset in the `assets` vector of
|
||||
* index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,
|
||||
* with all fees taken as needed from the asset.
|
||||
*
|
||||
* - `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
|
||||
@@ -4300,9 +4471,9 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
/**
|
||||
* 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 and
|
||||
* fee-weight is calculated locally and thus remote weights are assumed to be equal to
|
||||
* local weights.
|
||||
* Fee payment on the destination side is made from the asset in the `assets` vector of
|
||||
* index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,
|
||||
* with all fees taken as needed from the asset.
|
||||
*
|
||||
* - `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
|
||||
|
||||
@@ -3,4 +3,4 @@
|
||||
|
||||
// Do not edit, auto-generated by @polkadot/dev
|
||||
|
||||
export const packageInfo = { name: '@polkadot/api-augment', path: 'auto', type: 'auto', version: '7.8.1' };
|
||||
export const packageInfo = { name: '@polkadot/api-augment', path: 'auto', type: 'auto', version: '7.15.1' };
|
||||
|
||||
@@ -67,23 +67,23 @@ declare module '@polkadot/api-base/types/consts' {
|
||||
/**
|
||||
* The list of thresholds separating the various bags.
|
||||
*
|
||||
* Ids are separated into unsorted bags according to their vote weight. This specifies the
|
||||
* thresholds separating the bags. An id's bag is the largest bag for which the id's weight
|
||||
* Ids are separated into unsorted bags according to their score. This specifies the
|
||||
* thresholds separating the bags. An id's bag is the largest bag for which the id's score
|
||||
* is less than or equal to its upper threshold.
|
||||
*
|
||||
* When ids are iterated, higher bags are iterated completely before lower bags. This means
|
||||
* that iteration is _semi-sorted_: ids of higher weight tend to come before ids of lower
|
||||
* weight, but peer ids within a particular bag are sorted in insertion order.
|
||||
* that iteration is _semi-sorted_: ids of higher score tend to come before ids of lower
|
||||
* score, but peer ids within a particular bag are sorted in insertion order.
|
||||
*
|
||||
* # Expressing the constant
|
||||
*
|
||||
* This constant must be sorted in strictly increasing order. Duplicate items are not
|
||||
* permitted.
|
||||
*
|
||||
* There is an implied upper limit of `VoteWeight::MAX`; that value does not need to be
|
||||
* There is an implied upper limit of `Score::MAX`; that value does not need to be
|
||||
* specified within the bag. For any two threshold lists, if one ends with
|
||||
* `VoteWeight::MAX`, the other one does not, and they are otherwise equal, the two lists
|
||||
* will behave identically.
|
||||
* `Score::MAX`, the other one does not, and they are otherwise equal, the two
|
||||
* lists will behave identically.
|
||||
*
|
||||
* # Calculation
|
||||
*
|
||||
@@ -101,8 +101,8 @@ declare module '@polkadot/api-base/types/consts' {
|
||||
* the procedure given above, then the constant ratio is equal to 2.
|
||||
* - If `BagThresholds::get().len() == 200`, and the thresholds are determined according to
|
||||
* the procedure given above, then the constant ratio is approximately equal to 1.248.
|
||||
* - If the threshold list begins `[1, 2, 3, ...]`, then an id with weight 0 or 1 will fall
|
||||
* into bag 0, an id with weight 2 will fall into bag 1, etc.
|
||||
* - If the threshold list begins `[1, 2, 3, ...]`, then an id with score 0 or 1 will fall
|
||||
* into bag 0, an id with score 2 will fall into bag 1, etc.
|
||||
*
|
||||
* # Migration
|
||||
*
|
||||
@@ -135,11 +135,6 @@ declare module '@polkadot/api-base/types/consts' {
|
||||
[key: string]: Codec;
|
||||
};
|
||||
bounties: {
|
||||
/**
|
||||
* Percentage of the curator fee that will be reserved upfront as deposit for bounty
|
||||
* curator.
|
||||
**/
|
||||
bountyCuratorDeposit: Permill & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* The amount held on deposit for placing a bounty proposal.
|
||||
**/
|
||||
@@ -156,6 +151,21 @@ declare module '@polkadot/api-base/types/consts' {
|
||||
* Minimum value for a bounty.
|
||||
**/
|
||||
bountyValueMinimum: u128 & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* Maximum amount of funds that should be placed in a deposit for making a proposal.
|
||||
**/
|
||||
curatorDepositMax: Option<u128> & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* Minimum amount of funds that should be placed in a deposit for making a proposal.
|
||||
**/
|
||||
curatorDepositMin: Option<u128> & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* The curator deposit is calculated as a percentage of the curator fee.
|
||||
*
|
||||
* This deposit has optional upper and lower bounds with `CuratorDepositMax` and
|
||||
* `CuratorDepositMin`.
|
||||
**/
|
||||
curatorDepositMultiplier: Permill & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* The amount held on deposit per byte within the tip report reason or bounty description.
|
||||
**/
|
||||
@@ -171,6 +181,20 @@ declare module '@polkadot/api-base/types/consts' {
|
||||
**/
|
||||
[key: string]: Codec;
|
||||
};
|
||||
childBounties: {
|
||||
/**
|
||||
* Minimum value for a child-bounty.
|
||||
**/
|
||||
childBountyValueMinimum: u128 & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* Maximum number of child-bounties that can be added to a parent bounty.
|
||||
**/
|
||||
maxActiveChildBountyCount: u32 & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* Generic const
|
||||
**/
|
||||
[key: string]: Codec;
|
||||
};
|
||||
claims: {
|
||||
prefix: Bytes & AugmentedConst<ApiType>;
|
||||
/**
|
||||
@@ -260,6 +284,16 @@ declare module '@polkadot/api-base/types/consts' {
|
||||
[key: string]: Codec;
|
||||
};
|
||||
electionProviderMultiPhase: {
|
||||
/**
|
||||
* The maximum number of electable targets to put in the snapshot.
|
||||
**/
|
||||
maxElectableTargets: u16 & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* The maximum number of electing voters to put in the snapshot. At the moment, snapshots
|
||||
* are only over a single block, but once multi-block elections are introduced they will
|
||||
* take place over multiple blocks.
|
||||
**/
|
||||
maxElectingVoters: u32 & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* Maximum length (bytes) that the mined solution should consume.
|
||||
*
|
||||
@@ -330,15 +364,6 @@ declare module '@polkadot/api-base/types/consts' {
|
||||
* Duration of the unsigned phase.
|
||||
**/
|
||||
unsignedPhase: u32 & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* The maximum number of voters to put in the snapshot. At the moment, snapshots are only
|
||||
* over a single block, but once multi-block elections are introduced they will take place
|
||||
* over multiple blocks.
|
||||
*
|
||||
* Also, note the data type: If the voters are represented by a `u32` in `type
|
||||
* CompactSolution`, the same `u32` is used here to ensure bounds are respected.
|
||||
**/
|
||||
voterSnapshotPerBlock: u32 & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* Generic const
|
||||
**/
|
||||
@@ -575,6 +600,10 @@ declare module '@polkadot/api-base/types/consts' {
|
||||
* Number of eras that staked funds must remain bonded for.
|
||||
**/
|
||||
bondingDuration: u32 & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* Maximum number of nominations per nominator.
|
||||
**/
|
||||
maxNominations: u32 & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* The maximum number of nominators rewarded for each validator.
|
||||
*
|
||||
@@ -582,6 +611,11 @@ declare module '@polkadot/api-base/types/consts' {
|
||||
* claim their reward. This used to limit the i/o cost for the nominator payout.
|
||||
**/
|
||||
maxNominatorRewardedPerValidator: u32 & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* The maximum number of `unlocking` chunks a [`StakingLedger`] can have. Effectively
|
||||
* determines how many unique eras a staker may be unbonding in.
|
||||
**/
|
||||
maxUnlockingChunks: u32 & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* Number of sessions per era.
|
||||
**/
|
||||
|
||||
@@ -97,7 +97,7 @@ declare module '@polkadot/api-base/types/errors' {
|
||||
**/
|
||||
IdNotFound: AugmentedError<ApiType>;
|
||||
/**
|
||||
* An Id does not have a greater vote weight than another Id.
|
||||
* An Id does not have a greater score than another Id.
|
||||
**/
|
||||
NotHeavier: AugmentedError<ApiType>;
|
||||
/**
|
||||
@@ -198,6 +198,24 @@ declare module '@polkadot/api-base/types/errors' {
|
||||
**/
|
||||
[key: string]: AugmentedError<ApiType>;
|
||||
};
|
||||
childBounties: {
|
||||
/**
|
||||
* The bounty balance is not enough to add new child-bounty.
|
||||
**/
|
||||
InsufficientBountyBalance: AugmentedError<ApiType>;
|
||||
/**
|
||||
* The parent bounty is not in active state.
|
||||
**/
|
||||
ParentBountyNotActive: AugmentedError<ApiType>;
|
||||
/**
|
||||
* Number of child-bounties exceeds limit `MaxActiveChildBountyCount`.
|
||||
**/
|
||||
TooManyChildBounties: AugmentedError<ApiType>;
|
||||
/**
|
||||
* Generic error
|
||||
**/
|
||||
[key: string]: AugmentedError<ApiType>;
|
||||
};
|
||||
claims: {
|
||||
/**
|
||||
* Invalid Ethereum signature.
|
||||
@@ -1057,6 +1075,40 @@ declare module '@polkadot/api-base/types/errors' {
|
||||
**/
|
||||
[key: string]: AugmentedError<ApiType>;
|
||||
};
|
||||
parasDisputes: {
|
||||
/**
|
||||
* Ancient dispute statement provided.
|
||||
**/
|
||||
AncientDisputeStatement: AugmentedError<ApiType>;
|
||||
/**
|
||||
* Duplicate dispute statement sets provided.
|
||||
**/
|
||||
DuplicateDisputeStatementSets: AugmentedError<ApiType>;
|
||||
/**
|
||||
* Validator vote submitted more than once to dispute.
|
||||
**/
|
||||
DuplicateStatement: AugmentedError<ApiType>;
|
||||
/**
|
||||
* Invalid signature on statement.
|
||||
**/
|
||||
InvalidSignature: AugmentedError<ApiType>;
|
||||
/**
|
||||
* Too many spam slots used by some specific validator.
|
||||
**/
|
||||
PotentialSpam: AugmentedError<ApiType>;
|
||||
/**
|
||||
* A dispute where there are only votes on one side.
|
||||
**/
|
||||
SingleSidedDispute: AugmentedError<ApiType>;
|
||||
/**
|
||||
* Validator index on statement is out of bounds for session.
|
||||
**/
|
||||
ValidatorIndexOutOfBounds: AugmentedError<ApiType>;
|
||||
/**
|
||||
* Generic error
|
||||
**/
|
||||
[key: string]: AugmentedError<ApiType>;
|
||||
};
|
||||
phragmenElection: {
|
||||
/**
|
||||
* Duplicated candidate submission.
|
||||
@@ -1212,6 +1264,11 @@ declare module '@polkadot/api-base/types/errors' {
|
||||
* Cannot schedule downgrade of parachain to parathread
|
||||
**/
|
||||
CannotDowngrade: AugmentedError<ApiType>;
|
||||
/**
|
||||
* Cannot perform a parachain slot / lifecycle swap. Check that the state of both paras are
|
||||
* correct for the swap to work.
|
||||
**/
|
||||
CannotSwap: AugmentedError<ApiType>;
|
||||
/**
|
||||
* Cannot schedule upgrade of parathread to parachain
|
||||
**/
|
||||
|
||||
@@ -6,7 +6,7 @@ import type { Bytes, Null, Option, Result, U8aFixed, Vec, bool, u128, u16, u32,
|
||||
import type { ITuple } from '@polkadot/types-codec/types';
|
||||
import type { EthereumAddress } from '@polkadot/types/interfaces/eth';
|
||||
import type { AccountId32, H256 } from '@polkadot/types/interfaces/runtime';
|
||||
import type { FrameSupportScheduleLookupError, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchInfo, PalletDemocracyVoteAccountVote, PalletDemocracyVoteThreshold, PalletElectionProviderMultiPhaseElectionCompute, PalletImOnlineSr25519AppSr25519Public, PalletMultisigTimepoint, PalletStakingExposure, PolkadotParachainPrimitivesHrmpChannelId, PolkadotPrimitivesV1CandidateReceipt, PolkadotRuntimeProxyType, SpFinalityGrandpaAppPublic, SpRuntimeDispatchError, XcmV1MultiLocation, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation } from '@polkadot/types/lookup';
|
||||
import type { FrameSupportScheduleLookupError, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchInfo, PalletDemocracyVoteAccountVote, PalletDemocracyVoteThreshold, PalletElectionProviderMultiPhaseElectionCompute, PalletImOnlineSr25519AppSr25519Public, PalletMultisigTimepoint, PalletStakingExposure, PolkadotParachainPrimitivesHrmpChannelId, PolkadotPrimitivesV2CandidateReceipt, PolkadotRuntimeParachainsDisputesDisputeLocation, PolkadotRuntimeParachainsDisputesDisputeResult, PolkadotRuntimeProxyType, SpFinalityGrandpaAppPublic, SpRuntimeDispatchError, XcmV1MultiLocation, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation } from '@polkadot/types/lookup';
|
||||
|
||||
declare module '@polkadot/api-base/types/events' {
|
||||
export interface AugmentedEvents<ApiType extends ApiTypes> {
|
||||
@@ -143,6 +143,28 @@ declare module '@polkadot/api-base/types/events' {
|
||||
**/
|
||||
[key: string]: AugmentedEvent<ApiType>;
|
||||
};
|
||||
childBounties: {
|
||||
/**
|
||||
* A child-bounty is added.
|
||||
**/
|
||||
Added: AugmentedEvent<ApiType, [u32, u32]>;
|
||||
/**
|
||||
* A child-bounty is awarded to a beneficiary.
|
||||
**/
|
||||
Awarded: AugmentedEvent<ApiType, [u32, u32, AccountId32]>;
|
||||
/**
|
||||
* A child-bounty is cancelled.
|
||||
**/
|
||||
Canceled: AugmentedEvent<ApiType, [u32, u32]>;
|
||||
/**
|
||||
* A child-bounty is claimed by beneficiary.
|
||||
**/
|
||||
Claimed: AugmentedEvent<ApiType, [u32, u32, u128, AccountId32]>;
|
||||
/**
|
||||
* Generic event
|
||||
**/
|
||||
[key: string]: AugmentedEvent<ApiType>;
|
||||
};
|
||||
claims: {
|
||||
/**
|
||||
* Someone claimed some DOTs. `[who, ethereum_address, amount]`
|
||||
@@ -517,15 +539,15 @@ declare module '@polkadot/api-base/types/events' {
|
||||
/**
|
||||
* A candidate was backed. `[candidate, head_data]`
|
||||
**/
|
||||
CandidateBacked: AugmentedEvent<ApiType, [PolkadotPrimitivesV1CandidateReceipt, Bytes, u32, u32]>;
|
||||
CandidateBacked: AugmentedEvent<ApiType, [PolkadotPrimitivesV2CandidateReceipt, Bytes, u32, u32]>;
|
||||
/**
|
||||
* A candidate was included. `[candidate, head_data]`
|
||||
**/
|
||||
CandidateIncluded: AugmentedEvent<ApiType, [PolkadotPrimitivesV1CandidateReceipt, Bytes, u32, u32]>;
|
||||
CandidateIncluded: AugmentedEvent<ApiType, [PolkadotPrimitivesV2CandidateReceipt, Bytes, u32, u32]>;
|
||||
/**
|
||||
* A candidate timed out. `[candidate, head_data]`
|
||||
**/
|
||||
CandidateTimedOut: AugmentedEvent<ApiType, [PolkadotPrimitivesV1CandidateReceipt, Bytes, u32]>;
|
||||
CandidateTimedOut: AugmentedEvent<ApiType, [PolkadotPrimitivesV2CandidateReceipt, Bytes, u32]>;
|
||||
/**
|
||||
* Generic event
|
||||
**/
|
||||
@@ -553,12 +575,12 @@ declare module '@polkadot/api-base/types/events' {
|
||||
**/
|
||||
NewHeadNoted: AugmentedEvent<ApiType, [u32]>;
|
||||
/**
|
||||
* The given validation code was rejected by the PVF pre-checking vote.
|
||||
* The given validation code was accepted by the PVF pre-checking vote.
|
||||
* `code_hash` `para_id`
|
||||
**/
|
||||
PvfCheckAccepted: AugmentedEvent<ApiType, [H256, u32]>;
|
||||
/**
|
||||
* The given validation code was accepted by the PVF pre-checking vote.
|
||||
* The given validation code was rejected by the PVF pre-checking vote.
|
||||
* `code_hash` `para_id`
|
||||
**/
|
||||
PvfCheckRejected: AugmentedEvent<ApiType, [H256, u32]>;
|
||||
@@ -572,6 +594,33 @@ declare module '@polkadot/api-base/types/events' {
|
||||
**/
|
||||
[key: string]: AugmentedEvent<ApiType>;
|
||||
};
|
||||
parasDisputes: {
|
||||
/**
|
||||
* A dispute has concluded for or against a candidate.
|
||||
* `\[para id, candidate hash, dispute result\]`
|
||||
**/
|
||||
DisputeConcluded: AugmentedEvent<ApiType, [H256, PolkadotRuntimeParachainsDisputesDisputeResult]>;
|
||||
/**
|
||||
* A dispute has been initiated. \[candidate hash, dispute location\]
|
||||
**/
|
||||
DisputeInitiated: AugmentedEvent<ApiType, [H256, PolkadotRuntimeParachainsDisputesDisputeLocation]>;
|
||||
/**
|
||||
* A dispute has timed out due to insufficient participation.
|
||||
* `\[para id, candidate hash\]`
|
||||
**/
|
||||
DisputeTimedOut: AugmentedEvent<ApiType, [H256]>;
|
||||
/**
|
||||
* A dispute has concluded with supermajority against a candidate.
|
||||
* Block authors should no longer build on top of this head and should
|
||||
* instead revert the block at the given height. This should be the
|
||||
* number of the child of the last known valid block in the chain.
|
||||
**/
|
||||
Revert: AugmentedEvent<ApiType, [u32]>;
|
||||
/**
|
||||
* Generic event
|
||||
**/
|
||||
[key: string]: AugmentedEvent<ApiType>;
|
||||
};
|
||||
phragmenElection: {
|
||||
/**
|
||||
* A candidate was slashed by amount due to failing to obtain a seat as member or
|
||||
@@ -651,6 +700,10 @@ declare module '@polkadot/api-base/types/events' {
|
||||
* A proxy was executed correctly, with the given.
|
||||
**/
|
||||
ProxyExecuted: AugmentedEvent<ApiType, [Result<Null, SpRuntimeDispatchError>]>;
|
||||
/**
|
||||
* A proxy was removed.
|
||||
**/
|
||||
ProxyRemoved: AugmentedEvent<ApiType, [AccountId32, AccountId32, PolkadotRuntimeProxyType, u32]>;
|
||||
/**
|
||||
* Generic event
|
||||
**/
|
||||
|
||||
@@ -6,4 +6,5 @@ import './consts';
|
||||
import './errors';
|
||||
import './events';
|
||||
import './query';
|
||||
import './registry';
|
||||
import './tx';
|
||||
|
||||
@@ -7,7 +7,7 @@ import type { BTreeMap, Bytes, Null, Option, U8aFixed, Vec, WrapperKeepOpaque, W
|
||||
import type { AnyNumber, ITuple } from '@polkadot/types-codec/types';
|
||||
import type { EthereumAddress } from '@polkadot/types/interfaces/eth';
|
||||
import type { AccountId32, Call, H256, Perbill, Percent } from '@polkadot/types/interfaces/runtime';
|
||||
import type { FrameSupportWeightsPerDispatchClassU64, FrameSystemAccountInfo, FrameSystemEventRecord, FrameSystemLastRuntimeUpgradeInfo, FrameSystemPhase, PalletAuthorshipUncleEntryItem, PalletBagsListListBag, PalletBagsListListNode, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesReleases, PalletBalancesReserveData, PalletBountiesBounty, PalletCollectiveVotes, PalletDemocracyPreimageStatus, PalletDemocracyReferendumInfo, PalletDemocracyReleases, PalletDemocracyVoteThreshold, PalletDemocracyVoteVoting, PalletElectionProviderMultiPhasePhase, PalletElectionProviderMultiPhaseReadySolution, PalletElectionProviderMultiPhaseRoundSnapshot, PalletElectionProviderMultiPhaseSignedSignedSubmission, PalletElectionProviderMultiPhaseSolutionOrSnapshotSize, PalletElectionsPhragmenSeatHolder, PalletElectionsPhragmenVoter, PalletGrandpaStoredPendingChange, PalletGrandpaStoredState, PalletIdentityRegistrarInfo, PalletIdentityRegistration, PalletImOnlineBoundedOpaqueNetworkState, PalletImOnlineSr25519AppSr25519Public, PalletMultisigMultisig, PalletPreimageRequestStatus, PalletProxyAnnouncement, PalletProxyProxyDefinition, PalletSchedulerScheduledV3, PalletStakingActiveEraInfo, PalletStakingEraRewardPoints, PalletStakingExposure, PalletStakingForcing, PalletStakingNominations, PalletStakingReleases, PalletStakingRewardDestination, PalletStakingSlashingSlashingSpans, PalletStakingSlashingSpanRecord, PalletStakingStakingLedger, PalletStakingUnappliedSlash, PalletStakingValidatorPrefs, PalletTipsOpenTip, PalletTransactionPaymentReleases, PalletTreasuryProposal, PalletVestingReleases, PalletVestingVestingInfo, PalletXcmQueryStatus, PalletXcmVersionMigrationStage, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotParachainPrimitivesHrmpChannelId, PolkadotPrimitivesV0ValidatorAppPublic, PolkadotPrimitivesV1AssignmentAppPublic, PolkadotPrimitivesV1CandidateCommitments, PolkadotPrimitivesV1CoreOccupied, PolkadotPrimitivesV1ScrapedOnChainVotes, PolkadotPrimitivesV1UpgradeGoAhead, PolkadotPrimitivesV1UpgradeRestriction, PolkadotPrimitivesV2SessionInfo, PolkadotRuntimeCommonClaimsStatementKind, PolkadotRuntimeCommonCrowdloanFundInfo, PolkadotRuntimeCommonParasRegistrarParaInfo, PolkadotRuntimeParachainsConfigurationHostConfiguration, PolkadotRuntimeParachainsConfigurationMigrationV1HostConfiguration, PolkadotRuntimeParachainsHrmpHrmpChannel, PolkadotRuntimeParachainsHrmpHrmpOpenChannelRequest, PolkadotRuntimeParachainsInclusionAvailabilityBitfieldRecord, PolkadotRuntimeParachainsInclusionCandidatePendingAvailability, PolkadotRuntimeParachainsInitializerBufferedSessionChange, PolkadotRuntimeParachainsParasParaGenesisArgs, PolkadotRuntimeParachainsParasParaLifecycle, PolkadotRuntimeParachainsParasParaPastCodeMeta, PolkadotRuntimeParachainsParasPvfCheckActiveVoteState, PolkadotRuntimeParachainsSchedulerCoreAssignment, PolkadotRuntimeParachainsSchedulerParathreadClaimQueue, PolkadotRuntimeSessionKeys, SpConsensusBabeAppPublic, SpConsensusBabeBabeEpochConfiguration, SpConsensusBabeDigestsNextConfigDescriptor, SpCoreCryptoKeyTypeId, SpRuntimeDigest, SpStakingOffenceOffenceDetails, XcmVersionedMultiLocation } from '@polkadot/types/lookup';
|
||||
import type { FrameSupportWeightsPerDispatchClassU64, FrameSystemAccountInfo, FrameSystemEventRecord, FrameSystemLastRuntimeUpgradeInfo, FrameSystemPhase, PalletAuthorshipUncleEntryItem, PalletBagsListListBag, PalletBagsListListNode, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesReleases, PalletBalancesReserveData, PalletBountiesBounty, PalletChildBountiesChildBounty, PalletCollectiveVotes, PalletDemocracyPreimageStatus, PalletDemocracyReferendumInfo, PalletDemocracyReleases, PalletDemocracyVoteThreshold, PalletDemocracyVoteVoting, PalletElectionProviderMultiPhasePhase, PalletElectionProviderMultiPhaseReadySolution, PalletElectionProviderMultiPhaseRoundSnapshot, PalletElectionProviderMultiPhaseSignedSignedSubmission, PalletElectionProviderMultiPhaseSolutionOrSnapshotSize, PalletElectionsPhragmenSeatHolder, PalletElectionsPhragmenVoter, PalletGrandpaStoredPendingChange, PalletGrandpaStoredState, PalletIdentityRegistrarInfo, PalletIdentityRegistration, PalletImOnlineBoundedOpaqueNetworkState, PalletImOnlineSr25519AppSr25519Public, PalletMultisigMultisig, PalletPreimageRequestStatus, PalletProxyAnnouncement, PalletProxyProxyDefinition, PalletSchedulerScheduledV3, PalletStakingActiveEraInfo, PalletStakingEraRewardPoints, PalletStakingExposure, PalletStakingForcing, PalletStakingNominations, PalletStakingReleases, PalletStakingRewardDestination, PalletStakingSlashingSlashingSpans, PalletStakingSlashingSpanRecord, PalletStakingStakingLedger, PalletStakingUnappliedSlash, PalletStakingValidatorPrefs, PalletTipsOpenTip, PalletTransactionPaymentReleases, PalletTreasuryProposal, PalletVestingReleases, PalletVestingVestingInfo, PalletXcmQueryStatus, PalletXcmVersionMigrationStage, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotParachainPrimitivesHrmpChannelId, PolkadotPrimitivesV2AssignmentAppPublic, PolkadotPrimitivesV2CandidateCommitments, PolkadotPrimitivesV2CoreOccupied, PolkadotPrimitivesV2DisputeState, PolkadotPrimitivesV2ScrapedOnChainVotes, PolkadotPrimitivesV2SessionInfo, PolkadotPrimitivesV2UpgradeGoAhead, PolkadotPrimitivesV2UpgradeRestriction, PolkadotPrimitivesV2ValidatorAppPublic, PolkadotRuntimeCommonClaimsStatementKind, PolkadotRuntimeCommonCrowdloanFundInfo, PolkadotRuntimeCommonParasRegistrarParaInfo, PolkadotRuntimeParachainsConfigurationHostConfiguration, PolkadotRuntimeParachainsConfigurationMigrationV1HostConfiguration, PolkadotRuntimeParachainsHrmpHrmpChannel, PolkadotRuntimeParachainsHrmpHrmpOpenChannelRequest, PolkadotRuntimeParachainsInclusionAvailabilityBitfieldRecord, PolkadotRuntimeParachainsInclusionCandidatePendingAvailability, PolkadotRuntimeParachainsInitializerBufferedSessionChange, PolkadotRuntimeParachainsParasParaGenesisArgs, PolkadotRuntimeParachainsParasParaLifecycle, PolkadotRuntimeParachainsParasParaPastCodeMeta, PolkadotRuntimeParachainsParasPvfCheckActiveVoteState, PolkadotRuntimeParachainsSchedulerCoreAssignment, PolkadotRuntimeParachainsSchedulerParathreadClaimQueue, PolkadotRuntimeSessionKeys, SpConsensusBabeAppPublic, SpConsensusBabeBabeEpochConfiguration, SpConsensusBabeDigestsNextConfigDescriptor, SpCoreCryptoKeyTypeId, SpNposElectionsElectionScore, SpRuntimeDigest, SpStakingOffenceOffenceDetails, XcmVersionedMultiLocation } from '@polkadot/types/lookup';
|
||||
import type { Observable } from '@polkadot/types/types';
|
||||
|
||||
declare module '@polkadot/api-base/types/storage' {
|
||||
@@ -257,6 +257,33 @@ declare module '@polkadot/api-base/types/storage' {
|
||||
**/
|
||||
[key: string]: QueryableStorageEntry<ApiType>;
|
||||
};
|
||||
childBounties: {
|
||||
/**
|
||||
* Child-bounties that have been added.
|
||||
**/
|
||||
childBounties: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<Option<PalletChildBountiesChildBounty>>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;
|
||||
/**
|
||||
* Number of total child bounties.
|
||||
**/
|
||||
childBountyCount: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
/**
|
||||
* The description of each child-bounty.
|
||||
**/
|
||||
childBountyDescriptions: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<Bytes>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
|
||||
/**
|
||||
* The cumulative child-bounty curator fee for each parent bounty.
|
||||
**/
|
||||
childrenCuratorFees: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u128>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
|
||||
/**
|
||||
* Number of child-bounties per parent bounty.
|
||||
* Map of parent bounty index to number of child bounties.
|
||||
**/
|
||||
parentChildBounties: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u32>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
|
||||
/**
|
||||
* Generic query
|
||||
**/
|
||||
[key: string]: QueryableStorageEntry<ApiType>;
|
||||
};
|
||||
claims: {
|
||||
claims: AugmentedQuery<ApiType, (arg: EthereumAddress | string | Uint8Array) => Observable<Option<u128>>, [EthereumAddress]> & QueryableStorageEntry<ApiType, [EthereumAddress]>;
|
||||
/**
|
||||
@@ -356,9 +383,9 @@ declare module '@polkadot/api-base/types/storage' {
|
||||
**/
|
||||
newRaise: AugmentedQuery<ApiType, () => Observable<Vec<u32>>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
/**
|
||||
* Tracker for the next available trie index
|
||||
* Tracker for the next available fund index
|
||||
**/
|
||||
nextTrieIndex: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
nextFundIndex: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
/**
|
||||
* Generic query
|
||||
**/
|
||||
@@ -475,7 +502,7 @@ declare module '@polkadot/api-base/types/storage' {
|
||||
*
|
||||
* Can be set via `set_minimum_untrusted_score`.
|
||||
**/
|
||||
minimumUntrustedScore: AugmentedQuery<ApiType, () => Observable<Option<Vec<u128>>>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
minimumUntrustedScore: AugmentedQuery<ApiType, () => Observable<Option<SpNposElectionsElectionScore>>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
/**
|
||||
* Current best solution, signed or unsigned, queued to be returned upon `elect`.
|
||||
**/
|
||||
@@ -497,7 +524,7 @@ declare module '@polkadot/api-base/types/storage' {
|
||||
* can be quite large, so we're willing to pay the cost of multiple database accesses to access
|
||||
* them one at a time instead of reading and decoding all of them at once.
|
||||
**/
|
||||
signedSubmissionIndices: AugmentedQuery<ApiType, () => Observable<BTreeMap<Vec<u128>, u32>>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
signedSubmissionIndices: AugmentedQuery<ApiType, () => Observable<BTreeMap<SpNposElectionsElectionScore, u32>>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
/**
|
||||
* The next index to be assigned to an incoming signed submission.
|
||||
*
|
||||
@@ -802,7 +829,7 @@ declare module '@polkadot/api-base/types/storage' {
|
||||
/**
|
||||
* The commitments of candidates pending availability, by `ParaId`.
|
||||
**/
|
||||
pendingAvailabilityCommitments: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<PolkadotPrimitivesV1CandidateCommitments>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
|
||||
pendingAvailabilityCommitments: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<PolkadotPrimitivesV2CandidateCommitments>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
|
||||
/**
|
||||
* Generic query
|
||||
**/
|
||||
@@ -821,7 +848,7 @@ declare module '@polkadot/api-base/types/storage' {
|
||||
/**
|
||||
* Scraped on chain data for extracting resolved disputes as well as backing votes.
|
||||
**/
|
||||
onChainVotes: AugmentedQuery<ApiType, () => Observable<Option<PolkadotPrimitivesV1ScrapedOnChainVotes>>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
onChainVotes: AugmentedQuery<ApiType, () => Observable<Option<PolkadotPrimitivesV2ScrapedOnChainVotes>>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
/**
|
||||
* Generic query
|
||||
**/
|
||||
@@ -867,6 +894,8 @@ declare module '@polkadot/api-base/types/storage' {
|
||||
heads: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<Bytes>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
|
||||
/**
|
||||
* All parachains. Ordered ascending by `ParaId`. Parathreads are not included.
|
||||
*
|
||||
* Consider using the [`ParachainsCache`] type of modifying.
|
||||
**/
|
||||
parachains: AugmentedQuery<ApiType, () => Observable<Vec<u32>>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
/**
|
||||
@@ -937,7 +966,7 @@ declare module '@polkadot/api-base/types/storage' {
|
||||
* NOTE that this field is used by parachains via merkle storage proofs, therefore changing
|
||||
* the format will require migration of parachains.
|
||||
**/
|
||||
upgradeGoAheadSignal: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<PolkadotPrimitivesV1UpgradeGoAhead>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
|
||||
upgradeGoAheadSignal: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<PolkadotPrimitivesV2UpgradeGoAhead>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
|
||||
/**
|
||||
* This is used by the relay-chain to communicate that there are restrictions for performing
|
||||
* an upgrade for this parachain.
|
||||
@@ -949,7 +978,7 @@ declare module '@polkadot/api-base/types/storage' {
|
||||
* NOTE that this field is used by parachains via merkle storage proofs, therefore changing
|
||||
* the format will require migration of parachains.
|
||||
**/
|
||||
upgradeRestrictionSignal: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<PolkadotPrimitivesV1UpgradeRestriction>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
|
||||
upgradeRestrictionSignal: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<PolkadotPrimitivesV2UpgradeRestriction>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
|
||||
/**
|
||||
* Generic query
|
||||
**/
|
||||
@@ -966,7 +995,7 @@ declare module '@polkadot/api-base/types/storage' {
|
||||
* * The number of parachains and parathread multiplexers
|
||||
* * The number of validators divided by `configuration.max_validators_per_core`.
|
||||
**/
|
||||
availabilityCores: AugmentedQuery<ApiType, () => Observable<Vec<Option<PolkadotPrimitivesV1CoreOccupied>>>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
availabilityCores: AugmentedQuery<ApiType, () => Observable<Vec<Option<PolkadotPrimitivesV2CoreOccupied>>>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
/**
|
||||
* An index used to ensure that only one claim on a parathread exists in the queue or is
|
||||
* currently being handled by an occupied core.
|
||||
@@ -1013,13 +1042,48 @@ declare module '@polkadot/api-base/types/storage' {
|
||||
**/
|
||||
[key: string]: QueryableStorageEntry<ApiType>;
|
||||
};
|
||||
parasDisputes: {
|
||||
/**
|
||||
* All ongoing or concluded disputes for the last several sessions.
|
||||
**/
|
||||
disputes: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: H256 | string | Uint8Array) => Observable<Option<PolkadotPrimitivesV2DisputeState>>, [u32, H256]> & QueryableStorageEntry<ApiType, [u32, H256]>;
|
||||
/**
|
||||
* Whether the chain is frozen. Starts as `None`. When this is `Some`,
|
||||
* the chain will not accept any new parachain blocks for backing or inclusion,
|
||||
* and its value indicates the last valid block number in the chain.
|
||||
* It can only be set back to `None` by governance intervention.
|
||||
**/
|
||||
frozen: AugmentedQuery<ApiType, () => Observable<Option<u32>>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
/**
|
||||
* All included blocks on the chain, as well as the block number in this chain that
|
||||
* should be reverted back to if the candidate is disputed and determined to be invalid.
|
||||
**/
|
||||
included: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: H256 | string | Uint8Array) => Observable<Option<u32>>, [u32, H256]> & QueryableStorageEntry<ApiType, [u32, H256]>;
|
||||
/**
|
||||
* The last pruned session, if any. All data stored by this module
|
||||
* references sessions.
|
||||
**/
|
||||
lastPrunedSession: AugmentedQuery<ApiType, () => Observable<Option<u32>>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
/**
|
||||
* Maps session indices to a vector indicating the number of potentially-spam disputes
|
||||
* each validator is participating in. Potentially-spam disputes are remote disputes which have
|
||||
* fewer than `byzantine_threshold + 1` validators.
|
||||
*
|
||||
* The i'th entry of the vector corresponds to the i'th validator in the session.
|
||||
**/
|
||||
spamSlots: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<Vec<u32>>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
|
||||
/**
|
||||
* Generic query
|
||||
**/
|
||||
[key: string]: QueryableStorageEntry<ApiType>;
|
||||
};
|
||||
paraSessionInfo: {
|
||||
/**
|
||||
* Assignment keys for the current session.
|
||||
* Note that this API is private due to it being prone to 'off-by-one' at session boundaries.
|
||||
* When in doubt, use `Sessions` API instead.
|
||||
**/
|
||||
assignmentKeysUnsafe: AugmentedQuery<ApiType, () => Observable<Vec<PolkadotPrimitivesV1AssignmentAppPublic>>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
assignmentKeysUnsafe: AugmentedQuery<ApiType, () => Observable<Vec<PolkadotPrimitivesV2AssignmentAppPublic>>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
/**
|
||||
* The earliest session for which previous session info is stored.
|
||||
**/
|
||||
@@ -1045,7 +1109,7 @@ declare module '@polkadot/api-base/types/storage' {
|
||||
* The parachain attestation keys of the validators actively participating in parachain consensus.
|
||||
* This should be the same length as `ActiveValidatorIndices`.
|
||||
**/
|
||||
activeValidatorKeys: AugmentedQuery<ApiType, () => Observable<Vec<PolkadotPrimitivesV0ValidatorAppPublic>>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
activeValidatorKeys: AugmentedQuery<ApiType, () => Observable<Vec<PolkadotPrimitivesV2ValidatorAppPublic>>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
/**
|
||||
* The current session index.
|
||||
**/
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
// Copyright 2017-2022 @polkadot/api-augment authors & contributors
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
import '@polkadot/types-augment/registry/substrate';
|
||||
import '@polkadot/types-augment/registry/polkadot';
|
||||
@@ -7,7 +7,7 @@ import type { Bytes, Compact, Option, U8aFixed, Vec, WrapperKeepOpaque, bool, u1
|
||||
import type { AnyNumber, ITuple } from '@polkadot/types-codec/types';
|
||||
import type { EthereumAddress } from '@polkadot/types/interfaces/eth';
|
||||
import type { AccountId32, Call, H256, MultiAddress, Perbill, Percent } from '@polkadot/types/interfaces/runtime';
|
||||
import type { FrameSupportScheduleMaybeHashed, PalletDemocracyConviction, PalletDemocracyVoteAccountVote, PalletElectionProviderMultiPhaseRawSolution, PalletElectionProviderMultiPhaseSolutionOrSnapshotSize, PalletElectionsPhragmenRenouncing, PalletIdentityBitFlags, PalletIdentityIdentityInfo, PalletIdentityJudgement, PalletImOnlineHeartbeat, PalletImOnlineSr25519AppSr25519Signature, PalletMultisigTimepoint, PalletStakingRewardDestination, PalletStakingValidatorPrefs, PalletVestingVestingInfo, PolkadotParachainPrimitivesHrmpChannelId, PolkadotPrimitivesV0ValidatorAppSignature, PolkadotPrimitivesV1InherentData, PolkadotPrimitivesV2PvfCheckStatement, PolkadotRuntimeCommonClaimsEcdsaSignature, PolkadotRuntimeCommonClaimsStatementKind, PolkadotRuntimeOriginCaller, PolkadotRuntimeProxyType, PolkadotRuntimeSessionKeys, SpConsensusBabeDigestsNextConfigDescriptor, SpConsensusSlotsEquivocationProof, SpFinalityGrandpaEquivocationProof, SpNposElectionsSupport, SpRuntimeHeader, SpRuntimeMultiSignature, SpRuntimeMultiSigner, SpSessionMembershipProof, XcmV1MultiLocation, XcmV2WeightLimit, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';
|
||||
import type { FrameSupportScheduleMaybeHashed, PalletDemocracyConviction, PalletDemocracyVoteAccountVote, PalletElectionProviderMultiPhaseRawSolution, PalletElectionProviderMultiPhaseSolutionOrSnapshotSize, PalletElectionsPhragmenRenouncing, PalletIdentityBitFlags, PalletIdentityIdentityInfo, PalletIdentityJudgement, PalletImOnlineHeartbeat, PalletImOnlineSr25519AppSr25519Signature, PalletMultisigTimepoint, PalletStakingPalletConfigOpPerbill, PalletStakingPalletConfigOpPercent, PalletStakingPalletConfigOpU128, PalletStakingPalletConfigOpU32, PalletStakingRewardDestination, PalletStakingValidatorPrefs, PalletVestingVestingInfo, PolkadotParachainPrimitivesHrmpChannelId, PolkadotPrimitivesV2InherentData, PolkadotPrimitivesV2PvfCheckStatement, PolkadotPrimitivesV2ValidatorAppSignature, PolkadotRuntimeCommonClaimsEcdsaSignature, PolkadotRuntimeCommonClaimsStatementKind, PolkadotRuntimeOriginCaller, PolkadotRuntimeProxyType, PolkadotRuntimeSessionKeys, SpConsensusBabeDigestsNextConfigDescriptor, SpConsensusSlotsEquivocationProof, SpFinalityGrandpaEquivocationProof, SpNposElectionsElectionScore, SpNposElectionsSupport, SpRuntimeHeader, SpRuntimeMultiSignature, SpRuntimeMultiSigner, SpSessionMembershipProof, XcmV1MultiLocation, XcmV2WeightLimit, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';
|
||||
|
||||
declare module '@polkadot/api-base/types/submittable' {
|
||||
export interface AugmentedSubmittables<ApiType extends ApiTypes> {
|
||||
@@ -100,12 +100,12 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
*
|
||||
* Only works if
|
||||
* - both nodes are within the same bag,
|
||||
* - and `origin` has a greater `VoteWeight` than `lighter`.
|
||||
* - and `origin` has a greater `Score` than `lighter`.
|
||||
**/
|
||||
putInFrontOf: AugmentedSubmittable<(lighter: AccountId32 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [AccountId32]>;
|
||||
/**
|
||||
* Declare that some `dislocated` account has, through rewards or penalties, sufficiently
|
||||
* changed its weight that it should properly fall into a different bag than its current
|
||||
* changed its score that it should properly fall into a different bag than its current
|
||||
* one.
|
||||
*
|
||||
* Anyone can call this function about any potentially dislocated account.
|
||||
@@ -334,6 +334,175 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
**/
|
||||
[key: string]: SubmittableExtrinsicFunction<ApiType>;
|
||||
};
|
||||
childBounties: {
|
||||
/**
|
||||
* Accept the curator role for the child-bounty.
|
||||
*
|
||||
* The dispatch origin for this call must be the curator of this
|
||||
* child-bounty.
|
||||
*
|
||||
* A deposit will be reserved from the curator and refund upon
|
||||
* successful payout or cancellation.
|
||||
*
|
||||
* Fee for curator is deducted from curator fee of parent bounty.
|
||||
*
|
||||
* Parent bounty must be in active state, for this child-bounty call to
|
||||
* work.
|
||||
*
|
||||
* Child-bounty must be in "CuratorProposed" state, for processing the
|
||||
* call. And state of child-bounty is moved to "Active" on successful
|
||||
* call completion.
|
||||
*
|
||||
* - `parent_bounty_id`: Index of parent bounty.
|
||||
* - `child_bounty_id`: Index of child bounty.
|
||||
**/
|
||||
acceptCurator: AugmentedSubmittable<(parentBountyId: Compact<u32> | AnyNumber | Uint8Array, childBountyId: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, Compact<u32>]>;
|
||||
/**
|
||||
* Add a new child-bounty.
|
||||
*
|
||||
* The dispatch origin for this call must be the curator of parent
|
||||
* bounty and the parent bounty must be in "active" state.
|
||||
*
|
||||
* Child-bounty gets added successfully & fund gets transferred from
|
||||
* parent bounty to child-bounty account, if parent bounty has enough
|
||||
* funds, else the call fails.
|
||||
*
|
||||
* Upper bound to maximum number of active child-bounties that can be
|
||||
* added are managed via runtime trait config
|
||||
* [`Config::MaxActiveChildBountyCount`].
|
||||
*
|
||||
* If the call is success, the status of child-bounty is updated to
|
||||
* "Added".
|
||||
*
|
||||
* - `parent_bounty_id`: Index of parent bounty for which child-bounty is being added.
|
||||
* - `value`: Value for executing the proposal.
|
||||
* - `description`: Text description for the child-bounty.
|
||||
**/
|
||||
addChildBounty: AugmentedSubmittable<(parentBountyId: Compact<u32> | AnyNumber | Uint8Array, value: Compact<u128> | AnyNumber | Uint8Array, description: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, Compact<u128>, Bytes]>;
|
||||
/**
|
||||
* Award child-bounty to a beneficiary.
|
||||
*
|
||||
* The beneficiary will be able to claim the funds after a delay.
|
||||
*
|
||||
* The dispatch origin for this call must be the master curator or
|
||||
* curator of this child-bounty.
|
||||
*
|
||||
* Parent bounty must be in active state, for this child-bounty call to
|
||||
* work.
|
||||
*
|
||||
* Child-bounty must be in active state, for processing the call. And
|
||||
* state of child-bounty is moved to "PendingPayout" on successful call
|
||||
* completion.
|
||||
*
|
||||
* - `parent_bounty_id`: Index of parent bounty.
|
||||
* - `child_bounty_id`: Index of child bounty.
|
||||
* - `beneficiary`: Beneficiary account.
|
||||
**/
|
||||
awardChildBounty: AugmentedSubmittable<(parentBountyId: Compact<u32> | AnyNumber | Uint8Array, childBountyId: Compact<u32> | AnyNumber | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, Compact<u32>, MultiAddress]>;
|
||||
/**
|
||||
* Claim the payout from an awarded child-bounty after payout delay.
|
||||
*
|
||||
* The dispatch origin for this call may be any signed origin.
|
||||
*
|
||||
* Call works independent of parent bounty state, No need for parent
|
||||
* bounty to be in active state.
|
||||
*
|
||||
* The Beneficiary is paid out with agreed bounty value. Curator fee is
|
||||
* paid & curator deposit is unreserved.
|
||||
*
|
||||
* Child-bounty must be in "PendingPayout" state, for processing the
|
||||
* call. And instance of child-bounty is removed from the state on
|
||||
* successful call completion.
|
||||
*
|
||||
* - `parent_bounty_id`: Index of parent bounty.
|
||||
* - `child_bounty_id`: Index of child bounty.
|
||||
**/
|
||||
claimChildBounty: AugmentedSubmittable<(parentBountyId: Compact<u32> | AnyNumber | Uint8Array, childBountyId: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, Compact<u32>]>;
|
||||
/**
|
||||
* Cancel a proposed or active child-bounty. Child-bounty account funds
|
||||
* are transferred to parent bounty account. The child-bounty curator
|
||||
* deposit may be unreserved if possible.
|
||||
*
|
||||
* The dispatch origin for this call must be either parent curator or
|
||||
* `T::RejectOrigin`.
|
||||
*
|
||||
* If the state of child-bounty is `Active`, curator deposit is
|
||||
* unreserved.
|
||||
*
|
||||
* If the state of child-bounty is `PendingPayout`, call fails &
|
||||
* returns `PendingPayout` error.
|
||||
*
|
||||
* For the origin other than T::RejectOrigin, parent bounty must be in
|
||||
* active state, for this child-bounty call to work. For origin
|
||||
* T::RejectOrigin execution is forced.
|
||||
*
|
||||
* Instance of child-bounty is removed from the state on successful
|
||||
* call completion.
|
||||
*
|
||||
* - `parent_bounty_id`: Index of parent bounty.
|
||||
* - `child_bounty_id`: Index of child bounty.
|
||||
**/
|
||||
closeChildBounty: AugmentedSubmittable<(parentBountyId: Compact<u32> | AnyNumber | Uint8Array, childBountyId: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, Compact<u32>]>;
|
||||
/**
|
||||
* Propose curator for funded child-bounty.
|
||||
*
|
||||
* The dispatch origin for this call must be curator of parent bounty.
|
||||
*
|
||||
* Parent bounty must be in active state, for this child-bounty call to
|
||||
* work.
|
||||
*
|
||||
* Child-bounty must be in "Added" state, for processing the call. And
|
||||
* state of child-bounty is moved to "CuratorProposed" on successful
|
||||
* call completion.
|
||||
*
|
||||
* - `parent_bounty_id`: Index of parent bounty.
|
||||
* - `child_bounty_id`: Index of child bounty.
|
||||
* - `curator`: Address of child-bounty curator.
|
||||
* - `fee`: payment fee to child-bounty curator for execution.
|
||||
**/
|
||||
proposeCurator: AugmentedSubmittable<(parentBountyId: Compact<u32> | AnyNumber | Uint8Array, childBountyId: Compact<u32> | AnyNumber | Uint8Array, curator: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, fee: Compact<u128> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, Compact<u32>, MultiAddress, Compact<u128>]>;
|
||||
/**
|
||||
* Unassign curator from a child-bounty.
|
||||
*
|
||||
* The dispatch origin for this call can be either `RejectOrigin`, or
|
||||
* the curator of the parent bounty, or any signed origin.
|
||||
*
|
||||
* For the origin other than T::RejectOrigin and the child-bounty
|
||||
* curator, parent-bounty must be in active state, for this call to
|
||||
* work. We allow child-bounty curator and T::RejectOrigin to execute
|
||||
* this call irrespective of the parent-bounty state.
|
||||
*
|
||||
* If this function is called by the `RejectOrigin` or the
|
||||
* parent-bounty curator, we assume that the child-bounty curator is
|
||||
* malicious or inactive. As a result, child-bounty curator deposit is
|
||||
* slashed.
|
||||
*
|
||||
* If the origin is the child-bounty curator, we take this as a sign
|
||||
* that they are unable to do their job, and are willingly giving up.
|
||||
* We could slash the deposit, but for now we allow them to unreserve
|
||||
* their deposit and exit without issue. (We may want to change this if
|
||||
* it is abused.)
|
||||
*
|
||||
* Finally, the origin can be anyone iff the child-bounty curator is
|
||||
* "inactive". Expiry update due of parent bounty is used to estimate
|
||||
* inactive state of child-bounty curator.
|
||||
*
|
||||
* This allows anyone in the community to call out that a child-bounty
|
||||
* curator is not doing their due diligence, and we should pick a new
|
||||
* one. In this case the child-bounty curator deposit is slashed.
|
||||
*
|
||||
* State of child-bounty is moved to Added state on successful call
|
||||
* completion.
|
||||
*
|
||||
* - `parent_bounty_id`: Index of parent bounty.
|
||||
* - `child_bounty_id`: Index of child bounty.
|
||||
**/
|
||||
unassignCurator: AugmentedSubmittable<(parentBountyId: Compact<u32> | AnyNumber | Uint8Array, childBountyId: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, Compact<u32>]>;
|
||||
/**
|
||||
* Generic tx
|
||||
**/
|
||||
[key: string]: SubmittableExtrinsicFunction<ApiType>;
|
||||
};
|
||||
claims: {
|
||||
/**
|
||||
* Attest to a statement, needed to finalize the claims process.
|
||||
@@ -1223,7 +1392,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
*
|
||||
* This check can be turned off by setting the value to `None`.
|
||||
**/
|
||||
setMinimumUntrustedScore: AugmentedSubmittable<(maybeNextScore: Option<Vec<u128>> | null | object | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Option<Vec<u128>>]>;
|
||||
setMinimumUntrustedScore: AugmentedSubmittable<(maybeNextScore: Option<SpNposElectionsElectionScore> | null | object | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Option<SpNposElectionsElectionScore>]>;
|
||||
/**
|
||||
* Submit a solution for the signed phase.
|
||||
*
|
||||
@@ -1234,12 +1403,8 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
*
|
||||
* A deposit is reserved and recorded for the solution. Based on the outcome, the solution
|
||||
* might be rewarded, slashed, or get all or a part of the deposit back.
|
||||
*
|
||||
* # <weight>
|
||||
* Queue size must be provided as witness data.
|
||||
* # </weight>
|
||||
**/
|
||||
submit: AugmentedSubmittable<(rawSolution: PalletElectionProviderMultiPhaseRawSolution | { solution?: any; score?: any; round?: any } | string | Uint8Array, numSignedSubmissions: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [PalletElectionProviderMultiPhaseRawSolution, u32]>;
|
||||
submit: AugmentedSubmittable<(rawSolution: PalletElectionProviderMultiPhaseRawSolution | { solution?: any; score?: any; round?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [PalletElectionProviderMultiPhaseRawSolution]>;
|
||||
/**
|
||||
* Submit a solution for the unsigned phase.
|
||||
*
|
||||
@@ -1931,7 +2096,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
/**
|
||||
* Enter the paras inherent. This will process bitfields and backed candidates.
|
||||
**/
|
||||
enter: AugmentedSubmittable<(data: PolkadotPrimitivesV1InherentData | { bitfields?: any; backedCandidates?: any; disputes?: any; parentHeader?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [PolkadotPrimitivesV1InherentData]>;
|
||||
enter: AugmentedSubmittable<(data: PolkadotPrimitivesV2InherentData | { bitfields?: any; backedCandidates?: any; disputes?: any; parentHeader?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [PolkadotPrimitivesV2InherentData]>;
|
||||
/**
|
||||
* Generic tx
|
||||
**/
|
||||
@@ -1980,7 +2145,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
* Includes a statement for a PVF pre-checking vote. Potentially, finalizes the vote and
|
||||
* enacts the results if that was the last vote before achieving the supermajority.
|
||||
**/
|
||||
includePvfCheckStatement: AugmentedSubmittable<(stmt: PolkadotPrimitivesV2PvfCheckStatement | { accept?: any; subject?: any; sessionIndex?: any; validatorIndex?: any } | string | Uint8Array, signature: PolkadotPrimitivesV0ValidatorAppSignature | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [PolkadotPrimitivesV2PvfCheckStatement, PolkadotPrimitivesV0ValidatorAppSignature]>;
|
||||
includePvfCheckStatement: AugmentedSubmittable<(stmt: PolkadotPrimitivesV2PvfCheckStatement | { accept?: any; subject?: any; sessionIndex?: any; validatorIndex?: any } | string | Uint8Array, signature: PolkadotPrimitivesV2ValidatorAppSignature | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [PolkadotPrimitivesV2PvfCheckStatement, PolkadotPrimitivesV2ValidatorAppSignature]>;
|
||||
/**
|
||||
* Remove the validation code from the storage iff the reference count is 0.
|
||||
*
|
||||
@@ -1994,6 +2159,13 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
**/
|
||||
[key: string]: SubmittableExtrinsicFunction<ApiType>;
|
||||
};
|
||||
parasDisputes: {
|
||||
forceUnfreeze: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;
|
||||
/**
|
||||
* Generic tx
|
||||
**/
|
||||
[key: string]: SubmittableExtrinsicFunction<ApiType>;
|
||||
};
|
||||
parasShared: {
|
||||
/**
|
||||
* Generic tx
|
||||
@@ -2757,7 +2929,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
*
|
||||
* # <weight>
|
||||
* - Time complexity: O(L), where L is unlocking chunks
|
||||
* - Bounded by `MAX_UNLOCKING_CHUNKS`.
|
||||
* - Bounded by `MaxUnlockingChunks`.
|
||||
* - Storage changes: Can't increase storage, only decrease it.
|
||||
* # </weight>
|
||||
**/
|
||||
@@ -2860,7 +3032,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
* NOTE: Existing nominators and validators will not be affected by this update.
|
||||
* to kick people under the new limits, `chill_other` should be called.
|
||||
**/
|
||||
setStakingConfigs: AugmentedSubmittable<(minNominatorBond: u128 | AnyNumber | Uint8Array, minValidatorBond: u128 | AnyNumber | Uint8Array, maxNominatorCount: Option<u32> | null | object | string | Uint8Array, maxValidatorCount: Option<u32> | null | object | string | Uint8Array, chillThreshold: Option<Percent> | null | object | string | Uint8Array, minCommission: Perbill | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u128, u128, Option<u32>, Option<u32>, Option<Percent>, Perbill]>;
|
||||
setStakingConfigs: AugmentedSubmittable<(minNominatorBond: PalletStakingPalletConfigOpU128 | { Noop: any } | { Set: any } | { Remove: any } | string | Uint8Array, minValidatorBond: PalletStakingPalletConfigOpU128 | { Noop: any } | { Set: any } | { Remove: any } | string | Uint8Array, maxNominatorCount: PalletStakingPalletConfigOpU32 | { Noop: any } | { Set: any } | { Remove: any } | string | Uint8Array, maxValidatorCount: PalletStakingPalletConfigOpU32 | { Noop: any } | { Set: any } | { Remove: any } | string | Uint8Array, chillThreshold: PalletStakingPalletConfigOpPercent | { Noop: any } | { Set: any } | { Remove: any } | string | Uint8Array, minCommission: PalletStakingPalletConfigOpPerbill | { Noop: any } | { Set: any } | { Remove: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [PalletStakingPalletConfigOpU128, PalletStakingPalletConfigOpU128, PalletStakingPalletConfigOpU32, PalletStakingPalletConfigOpU32, PalletStakingPalletConfigOpPercent, PalletStakingPalletConfigOpPerbill]>;
|
||||
/**
|
||||
* Sets the ideal number of validators.
|
||||
*
|
||||
@@ -2882,7 +3054,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
* Once the unlock period is done, you can call `withdraw_unbonded` to actually move
|
||||
* the funds out of management ready for transfer.
|
||||
*
|
||||
* No more than a limited number of unlocking chunks (see `MAX_UNLOCKING_CHUNKS`)
|
||||
* No more than a limited number of unlocking chunks (see `MaxUnlockingChunks`)
|
||||
* can co-exists at the same time. In that case, [`Call::withdraw_unbonded`] need
|
||||
* to be called first to remove some of the chunks (if possible).
|
||||
*
|
||||
@@ -3654,10 +3826,13 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
**/
|
||||
forceXcmVersion: AugmentedSubmittable<(location: XcmV1MultiLocation | { parents?: any; interior?: any } | string | Uint8Array, xcmVersion: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmV1MultiLocation, u32]>;
|
||||
/**
|
||||
* Transfer some assets from the local chain to the sovereign account of a destination chain and forward
|
||||
* a notification XCM.
|
||||
* 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.
|
||||
* Fee payment on the destination side is made from the asset in the `assets` vector of
|
||||
* index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight
|
||||
* is needed than `weight_limit`, then the operation will fail and the assets send may be
|
||||
* at risk.
|
||||
*
|
||||
* - `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
|
||||
@@ -3674,7 +3849,10 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
/**
|
||||
* 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.
|
||||
* Fee payment on the destination side is made from the asset in the `assets` vector of
|
||||
* index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight
|
||||
* is needed than `weight_limit`, then the operation will fail and the assets send may be
|
||||
* at risk.
|
||||
*
|
||||
* - `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
|
||||
@@ -3689,12 +3867,12 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
**/
|
||||
limitedTeleportAssets: AugmentedSubmittable<(dest: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, beneficiary: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, assets: XcmVersionedMultiAssets | { V0: any } | { V1: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array, weightLimit: XcmV2WeightLimit | { Unlimited: any } | { Limited: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation, XcmVersionedMultiLocation, XcmVersionedMultiAssets, u32, XcmV2WeightLimit]>;
|
||||
/**
|
||||
* Transfer some assets from the local chain to the sovereign account of a destination chain and forward
|
||||
* a notification XCM.
|
||||
* 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 and
|
||||
* fee-weight is calculated locally and thus remote weights are assumed to be equal to
|
||||
* local weights.
|
||||
* Fee payment on the destination side is made from the asset in the `assets` vector of
|
||||
* index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,
|
||||
* with all fees taken as needed from the asset.
|
||||
*
|
||||
* - `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
|
||||
@@ -3711,9 +3889,9 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
/**
|
||||
* 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 and
|
||||
* fee-weight is calculated locally and thus remote weights are assumed to be equal to
|
||||
* local weights.
|
||||
* Fee payment on the destination side is made from the asset in the `assets` vector of
|
||||
* index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,
|
||||
* with all fees taken as needed from the asset.
|
||||
*
|
||||
* - `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
|
||||
|
||||
@@ -81,23 +81,23 @@ declare module '@polkadot/api-base/types/consts' {
|
||||
/**
|
||||
* The list of thresholds separating the various bags.
|
||||
*
|
||||
* Ids are separated into unsorted bags according to their vote weight. This specifies the
|
||||
* thresholds separating the bags. An id's bag is the largest bag for which the id's weight
|
||||
* Ids are separated into unsorted bags according to their score. This specifies the
|
||||
* thresholds separating the bags. An id's bag is the largest bag for which the id's score
|
||||
* is less than or equal to its upper threshold.
|
||||
*
|
||||
* When ids are iterated, higher bags are iterated completely before lower bags. This means
|
||||
* that iteration is _semi-sorted_: ids of higher weight tend to come before ids of lower
|
||||
* weight, but peer ids within a particular bag are sorted in insertion order.
|
||||
* that iteration is _semi-sorted_: ids of higher score tend to come before ids of lower
|
||||
* score, but peer ids within a particular bag are sorted in insertion order.
|
||||
*
|
||||
* # Expressing the constant
|
||||
*
|
||||
* This constant must be sorted in strictly increasing order. Duplicate items are not
|
||||
* permitted.
|
||||
*
|
||||
* There is an implied upper limit of `VoteWeight::MAX`; that value does not need to be
|
||||
* There is an implied upper limit of `Score::MAX`; that value does not need to be
|
||||
* specified within the bag. For any two threshold lists, if one ends with
|
||||
* `VoteWeight::MAX`, the other one does not, and they are otherwise equal, the two lists
|
||||
* will behave identically.
|
||||
* `Score::MAX`, the other one does not, and they are otherwise equal, the two
|
||||
* lists will behave identically.
|
||||
*
|
||||
* # Calculation
|
||||
*
|
||||
@@ -115,8 +115,8 @@ declare module '@polkadot/api-base/types/consts' {
|
||||
* the procedure given above, then the constant ratio is equal to 2.
|
||||
* - If `BagThresholds::get().len() == 200`, and the thresholds are determined according to
|
||||
* the procedure given above, then the constant ratio is approximately equal to 1.248.
|
||||
* - If the threshold list begins `[1, 2, 3, ...]`, then an id with weight 0 or 1 will fall
|
||||
* into bag 0, an id with weight 2 will fall into bag 1, etc.
|
||||
* - If the threshold list begins `[1, 2, 3, ...]`, then an id with score 0 or 1 will fall
|
||||
* into bag 0, an id with score 2 will fall into bag 1, etc.
|
||||
*
|
||||
* # Migration
|
||||
*
|
||||
@@ -149,11 +149,6 @@ declare module '@polkadot/api-base/types/consts' {
|
||||
[key: string]: Codec;
|
||||
};
|
||||
bounties: {
|
||||
/**
|
||||
* Percentage of the curator fee that will be reserved upfront as deposit for bounty
|
||||
* curator.
|
||||
**/
|
||||
bountyCuratorDeposit: Permill & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* The amount held on deposit for placing a bounty proposal.
|
||||
**/
|
||||
@@ -170,6 +165,21 @@ declare module '@polkadot/api-base/types/consts' {
|
||||
* Minimum value for a bounty.
|
||||
**/
|
||||
bountyValueMinimum: u128 & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* Maximum amount of funds that should be placed in a deposit for making a proposal.
|
||||
**/
|
||||
curatorDepositMax: Option<u128> & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* Minimum amount of funds that should be placed in a deposit for making a proposal.
|
||||
**/
|
||||
curatorDepositMin: Option<u128> & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* The curator deposit is calculated as a percentage of the curator fee.
|
||||
*
|
||||
* This deposit has optional upper and lower bounds with `CuratorDepositMax` and
|
||||
* `CuratorDepositMin`.
|
||||
**/
|
||||
curatorDepositMultiplier: Permill & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* The amount held on deposit per byte within the tip report reason or bounty description.
|
||||
**/
|
||||
@@ -186,11 +196,6 @@ declare module '@polkadot/api-base/types/consts' {
|
||||
[key: string]: Codec;
|
||||
};
|
||||
childBounties: {
|
||||
/**
|
||||
* Percentage of child-bounty value to be reserved as curator deposit
|
||||
* when curator fee is zero.
|
||||
**/
|
||||
childBountyCuratorDepositBase: Permill & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* Minimum value for a child-bounty.
|
||||
**/
|
||||
@@ -340,6 +345,16 @@ declare module '@polkadot/api-base/types/consts' {
|
||||
[key: string]: Codec;
|
||||
};
|
||||
electionProviderMultiPhase: {
|
||||
/**
|
||||
* The maximum number of electable targets to put in the snapshot.
|
||||
**/
|
||||
maxElectableTargets: u16 & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* The maximum number of electing voters to put in the snapshot. At the moment, snapshots
|
||||
* are only over a single block, but once multi-block elections are introduced they will
|
||||
* take place over multiple blocks.
|
||||
**/
|
||||
maxElectingVoters: u32 & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* Maximum length (bytes) that the mined solution should consume.
|
||||
*
|
||||
@@ -410,15 +425,6 @@ declare module '@polkadot/api-base/types/consts' {
|
||||
* Duration of the unsigned phase.
|
||||
**/
|
||||
unsignedPhase: u32 & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* The maximum number of voters to put in the snapshot. At the moment, snapshots are only
|
||||
* over a single block, but once multi-block elections are introduced they will take place
|
||||
* over multiple blocks.
|
||||
*
|
||||
* Also, note the data type: If the voters are represented by a `u32` in `type
|
||||
* CompactSolution`, the same `u32` is used here to ensure bounds are respected.
|
||||
**/
|
||||
voterSnapshotPerBlock: u32 & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* Generic const
|
||||
**/
|
||||
@@ -797,6 +803,10 @@ declare module '@polkadot/api-base/types/consts' {
|
||||
* Number of eras that staked funds must remain bonded for.
|
||||
**/
|
||||
bondingDuration: u32 & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* Maximum number of nominations per nominator.
|
||||
**/
|
||||
maxNominations: u32 & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* The maximum number of nominators rewarded for each validator.
|
||||
*
|
||||
@@ -804,6 +814,11 @@ declare module '@polkadot/api-base/types/consts' {
|
||||
* claim their reward. This used to limit the i/o cost for the nominator payout.
|
||||
**/
|
||||
maxNominatorRewardedPerValidator: u32 & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* The maximum number of `unlocking` chunks a [`StakingLedger`] can have. Effectively
|
||||
* determines how many unique eras a staker may be unbonding in.
|
||||
**/
|
||||
maxUnlockingChunks: u32 & AugmentedConst<ApiType>;
|
||||
/**
|
||||
* Number of sessions per era.
|
||||
**/
|
||||
|
||||
@@ -131,7 +131,7 @@ declare module '@polkadot/api-base/types/errors' {
|
||||
**/
|
||||
IdNotFound: AugmentedError<ApiType>;
|
||||
/**
|
||||
* An Id does not have a greater vote weight than another Id.
|
||||
* An Id does not have a greater score than another Id.
|
||||
**/
|
||||
NotHeavier: AugmentedError<ApiType>;
|
||||
/**
|
||||
@@ -1172,7 +1172,7 @@ declare module '@polkadot/api-base/types/errors' {
|
||||
/**
|
||||
* Referendum's decision deposit is already paid.
|
||||
**/
|
||||
HaveDeposit: AugmentedError<ApiType>;
|
||||
HasDeposit: AugmentedError<ApiType>;
|
||||
/**
|
||||
* The deposit cannot be refunded since none was made.
|
||||
**/
|
||||
@@ -1438,6 +1438,32 @@ declare module '@polkadot/api-base/types/errors' {
|
||||
**/
|
||||
[key: string]: AugmentedError<ApiType>;
|
||||
};
|
||||
stateTrieMigration: {
|
||||
/**
|
||||
* bad witness data provided.
|
||||
**/
|
||||
BadWitness: AugmentedError<ApiType>;
|
||||
/**
|
||||
* max signed limits not respected.
|
||||
**/
|
||||
MaxSignedLimits: AugmentedError<ApiType>;
|
||||
/**
|
||||
* submitter does not have enough funds.
|
||||
**/
|
||||
NotEnoughFunds: AugmentedError<ApiType>;
|
||||
/**
|
||||
* Signed migration is not allowed because the maximum limit is not set yet.
|
||||
**/
|
||||
SignedMigrationNotAllowed: AugmentedError<ApiType>;
|
||||
/**
|
||||
* upper bound of size is exceeded,
|
||||
**/
|
||||
SizeUpperBoundExceeded: AugmentedError<ApiType>;
|
||||
/**
|
||||
* Generic error
|
||||
**/
|
||||
[key: string]: AugmentedError<ApiType>;
|
||||
};
|
||||
sudo: {
|
||||
/**
|
||||
* Sender must be the Sudo account
|
||||
@@ -1673,6 +1699,10 @@ declare module '@polkadot/api-base/types/errors' {
|
||||
* The signing account has no permission to do the operation.
|
||||
**/
|
||||
NoPermission: AugmentedError<ApiType>;
|
||||
/**
|
||||
* The named owner has not signed ownership of the class is acceptable.
|
||||
**/
|
||||
Unaccepted: AugmentedError<ApiType>;
|
||||
/**
|
||||
* No approval exists that would allow the transfer.
|
||||
**/
|
||||
@@ -1680,7 +1710,7 @@ declare module '@polkadot/api-base/types/errors' {
|
||||
/**
|
||||
* The given asset ID is unknown.
|
||||
**/
|
||||
Unknown: AugmentedError<ApiType>;
|
||||
UnknownClass: AugmentedError<ApiType>;
|
||||
/**
|
||||
* The delegate turned out to be different to what was expected.
|
||||
**/
|
||||
@@ -1731,5 +1761,31 @@ declare module '@polkadot/api-base/types/errors' {
|
||||
**/
|
||||
[key: string]: AugmentedError<ApiType>;
|
||||
};
|
||||
whitelist: {
|
||||
/**
|
||||
* The call was already whitelisted; No-Op.
|
||||
**/
|
||||
CallAlreadyWhitelisted: AugmentedError<ApiType>;
|
||||
/**
|
||||
* The call was not whitelisted.
|
||||
**/
|
||||
CallIsNotWhitelisted: AugmentedError<ApiType>;
|
||||
/**
|
||||
* The weight of the decoded call was higher than the witness.
|
||||
**/
|
||||
InvalidCallWeightWitness: AugmentedError<ApiType>;
|
||||
/**
|
||||
* The preimage of the call hash could not be loaded.
|
||||
**/
|
||||
UnavailablePreImage: AugmentedError<ApiType>;
|
||||
/**
|
||||
* The call could not be decoded.
|
||||
**/
|
||||
UndecodableCall: AugmentedError<ApiType>;
|
||||
/**
|
||||
* Generic error
|
||||
**/
|
||||
[key: string]: AugmentedError<ApiType>;
|
||||
};
|
||||
} // AugmentedErrors
|
||||
} // declare module
|
||||
|
||||
@@ -5,7 +5,7 @@ import type { ApiTypes } from '@polkadot/api-base/types';
|
||||
import type { Bytes, Null, Option, Result, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';
|
||||
import type { ITuple } from '@polkadot/types-codec/types';
|
||||
import type { AccountId32, H256 } from '@polkadot/types/interfaces/runtime';
|
||||
import type { FrameSupportScheduleLookupError, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchInfo, NodeRuntimeProxyType, PalletConvictionVotingTally, PalletDemocracyVoteAccountVote, PalletDemocracyVoteThreshold, PalletElectionProviderMultiPhaseElectionCompute, PalletImOnlineSr25519AppSr25519Public, PalletMultisigTimepoint, PalletStakingExposure, SpFinalityGrandpaAppPublic, SpRuntimeDispatchError } from '@polkadot/types/lookup';
|
||||
import type { FrameSupportScheduleLookupError, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchInfo, FrameSupportWeightsPostDispatchInfo, NodeRuntimeProxyType, PalletConvictionVotingTally, PalletDemocracyVoteAccountVote, PalletDemocracyVoteThreshold, PalletElectionProviderMultiPhaseElectionCompute, PalletImOnlineSr25519AppSr25519Public, PalletMultisigTimepoint, PalletStakingExposure, PalletStateTrieMigrationMigrationCompute, SpFinalityGrandpaAppPublic, SpRuntimeDispatchError, SpRuntimeDispatchErrorWithPostInfo } from '@polkadot/types/lookup';
|
||||
|
||||
declare module '@polkadot/api-base/types/events' {
|
||||
export interface AugmentedEvents<ApiType extends ApiTypes> {
|
||||
@@ -211,6 +211,10 @@ declare module '@polkadot/api-base/types/events' {
|
||||
* Code with the specified hash has been stored.
|
||||
**/
|
||||
CodeStored: AugmentedEvent<ApiType, [H256]>;
|
||||
/**
|
||||
* A contract's code was updated.
|
||||
**/
|
||||
ContractCodeUpdated: AugmentedEvent<ApiType, [AccountId32, H256, H256]>;
|
||||
/**
|
||||
* A custom event emitted by the contract.
|
||||
**/
|
||||
@@ -659,6 +663,10 @@ declare module '@polkadot/api-base/types/events' {
|
||||
* A proxy was executed correctly, with the given.
|
||||
**/
|
||||
ProxyExecuted: AugmentedEvent<ApiType, [Result<Null, SpRuntimeDispatchError>]>;
|
||||
/**
|
||||
* A proxy was removed.
|
||||
**/
|
||||
ProxyRemoved: AugmentedEvent<ApiType, [AccountId32, AccountId32, NodeRuntimeProxyType, u32]>;
|
||||
/**
|
||||
* Generic event
|
||||
**/
|
||||
@@ -915,6 +923,29 @@ declare module '@polkadot/api-base/types/events' {
|
||||
**/
|
||||
[key: string]: AugmentedEvent<ApiType>;
|
||||
};
|
||||
stateTrieMigration: {
|
||||
/**
|
||||
* The auto migration task finished.
|
||||
**/
|
||||
AutoMigrationFinished: AugmentedEvent<ApiType, []>;
|
||||
/**
|
||||
* Migration got halted.
|
||||
**/
|
||||
Halted: AugmentedEvent<ApiType, []>;
|
||||
/**
|
||||
* Given number of `(top, child)` keys were migrated respectively, with the given
|
||||
* `compute`.
|
||||
**/
|
||||
Migrated: AugmentedEvent<ApiType, [u32, u32, PalletStateTrieMigrationMigrationCompute]>;
|
||||
/**
|
||||
* Some account got slashed by the given amount.
|
||||
**/
|
||||
Slashed: AugmentedEvent<ApiType, [AccountId32, u128]>;
|
||||
/**
|
||||
* Generic event
|
||||
**/
|
||||
[key: string]: AugmentedEvent<ApiType>;
|
||||
};
|
||||
sudo: {
|
||||
/**
|
||||
* The \[sudoer\] just switched identity; the old key is supplied if one existed.
|
||||
@@ -1182,6 +1213,10 @@ declare module '@polkadot/api-base/types/events' {
|
||||
* The owner changed.
|
||||
**/
|
||||
OwnerChanged: AugmentedEvent<ApiType, [u32, AccountId32]>;
|
||||
/**
|
||||
* Ownership acceptance has changed for an account.
|
||||
**/
|
||||
OwnershipAcceptanceChanged: AugmentedEvent<ApiType, [AccountId32, Option<u32>]>;
|
||||
/**
|
||||
* Metadata has been cleared for an asset instance.
|
||||
**/
|
||||
@@ -1241,5 +1276,14 @@ declare module '@polkadot/api-base/types/events' {
|
||||
**/
|
||||
[key: string]: AugmentedEvent<ApiType>;
|
||||
};
|
||||
whitelist: {
|
||||
CallWhitelisted: AugmentedEvent<ApiType, [H256]>;
|
||||
WhitelistedCallDispatched: AugmentedEvent<ApiType, [H256, Result<FrameSupportWeightsPostDispatchInfo, SpRuntimeDispatchErrorWithPostInfo>]>;
|
||||
WhitelistedCallRemoved: AugmentedEvent<ApiType, [H256]>;
|
||||
/**
|
||||
* Generic event
|
||||
**/
|
||||
[key: string]: AugmentedEvent<ApiType>;
|
||||
};
|
||||
} // AugmentedEvents
|
||||
} // declare module
|
||||
|
||||
@@ -6,4 +6,5 @@ import './consts';
|
||||
import './errors';
|
||||
import './events';
|
||||
import './query';
|
||||
import './registry';
|
||||
import './tx';
|
||||
|
||||
@@ -6,7 +6,7 @@ import type { Data } from '@polkadot/types';
|
||||
import type { BTreeMap, Bytes, Null, Option, U8aFixed, Vec, WrapperKeepOpaque, WrapperOpaque, bool, u128, u32, u64, u8 } from '@polkadot/types-codec';
|
||||
import type { AnyNumber, ITuple } from '@polkadot/types-codec/types';
|
||||
import type { AccountId32, Call, H256, Perbill, Percent } from '@polkadot/types/interfaces/runtime';
|
||||
import type { FrameSupportWeightsPerDispatchClassU64, FrameSystemAccountInfo, FrameSystemEventRecord, FrameSystemLastRuntimeUpgradeInfo, FrameSystemPhase, NodeRuntimeSessionKeys, PalletAssetsApproval, PalletAssetsAssetAccount, PalletAssetsAssetDetails, PalletAssetsAssetMetadata, PalletAuthorshipUncleEntryItem, PalletBagsListListBag, PalletBagsListListNode, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesReleases, PalletBalancesReserveData, PalletBountiesBounty, PalletChildBountiesChildBounty, PalletCollectiveVotes, PalletContractsStorageDeletedContract, PalletContractsStorageRawContractInfo, PalletContractsWasmOwnerInfo, PalletContractsWasmPrefabWasmModule, PalletConvictionVotingVoteVoting, PalletDemocracyPreimageStatus, PalletDemocracyReferendumInfo, PalletDemocracyReleases, PalletDemocracyVoteThreshold, PalletDemocracyVoteVoting, PalletElectionProviderMultiPhasePhase, PalletElectionProviderMultiPhaseReadySolution, PalletElectionProviderMultiPhaseRoundSnapshot, PalletElectionProviderMultiPhaseSignedSignedSubmission, PalletElectionProviderMultiPhaseSolutionOrSnapshotSize, PalletElectionsPhragmenSeatHolder, PalletElectionsPhragmenVoter, PalletGiltActiveGilt, PalletGiltActiveGiltsTotal, PalletGiltGiltBid, PalletGrandpaStoredPendingChange, PalletGrandpaStoredState, PalletIdentityRegistrarInfo, PalletIdentityRegistration, PalletImOnlineBoundedOpaqueNetworkState, PalletImOnlineSr25519AppSr25519Public, PalletLotteryLotteryConfig, PalletMultisigMultisig, PalletPreimageRequestStatus, PalletProxyAnnouncement, PalletProxyProxyDefinition, PalletRecoveryActiveRecovery, PalletRecoveryRecoveryConfig, PalletReferendaReferendumInfo, PalletSchedulerScheduledV3, PalletSocietyBid, PalletSocietyBidKind, PalletSocietyVote, PalletSocietyVouchingStatus, PalletStakingActiveEraInfo, PalletStakingEraRewardPoints, PalletStakingExposure, PalletStakingForcing, PalletStakingNominations, PalletStakingReleases, PalletStakingRewardDestination, PalletStakingSlashingSlashingSpans, PalletStakingSlashingSpanRecord, PalletStakingStakingLedger, PalletStakingUnappliedSlash, PalletStakingValidatorPrefs, PalletTipsOpenTip, PalletTransactionPaymentReleases, PalletTransactionStorageTransactionInfo, PalletTreasuryProposal, PalletUniquesClassDetails, PalletUniquesClassMetadata, PalletUniquesInstanceDetails, PalletUniquesInstanceMetadata, PalletVestingReleases, PalletVestingVestingInfo, SpAuthorityDiscoveryAppPublic, SpConsensusBabeAppPublic, SpConsensusBabeBabeEpochConfiguration, SpConsensusBabeDigestsNextConfigDescriptor, SpCoreCryptoKeyTypeId, SpRuntimeDigest, SpStakingOffenceOffenceDetails } from '@polkadot/types/lookup';
|
||||
import type { FrameSupportWeightsPerDispatchClassU64, FrameSystemAccountInfo, FrameSystemEventRecord, FrameSystemLastRuntimeUpgradeInfo, FrameSystemPhase, NodeRuntimeSessionKeys, PalletAssetsApproval, PalletAssetsAssetAccount, PalletAssetsAssetDetails, PalletAssetsAssetMetadata, PalletAuthorshipUncleEntryItem, PalletBagsListListBag, PalletBagsListListNode, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesReleases, PalletBalancesReserveData, PalletBountiesBounty, PalletChildBountiesChildBounty, PalletCollectiveVotes, PalletContractsStorageDeletedContract, PalletContractsStorageRawContractInfo, PalletContractsWasmOwnerInfo, PalletContractsWasmPrefabWasmModule, PalletConvictionVotingVoteVoting, PalletDemocracyPreimageStatus, PalletDemocracyReferendumInfo, PalletDemocracyReleases, PalletDemocracyVoteThreshold, PalletDemocracyVoteVoting, PalletElectionProviderMultiPhasePhase, PalletElectionProviderMultiPhaseReadySolution, PalletElectionProviderMultiPhaseRoundSnapshot, PalletElectionProviderMultiPhaseSignedSignedSubmission, PalletElectionProviderMultiPhaseSolutionOrSnapshotSize, PalletElectionsPhragmenSeatHolder, PalletElectionsPhragmenVoter, PalletGiltActiveGilt, PalletGiltActiveGiltsTotal, PalletGiltGiltBid, PalletGrandpaStoredPendingChange, PalletGrandpaStoredState, PalletIdentityRegistrarInfo, PalletIdentityRegistration, PalletImOnlineBoundedOpaqueNetworkState, PalletImOnlineSr25519AppSr25519Public, PalletLotteryLotteryConfig, PalletMultisigMultisig, PalletPreimageRequestStatus, PalletProxyAnnouncement, PalletProxyProxyDefinition, PalletRecoveryActiveRecovery, PalletRecoveryRecoveryConfig, PalletReferendaReferendumInfo, PalletSchedulerScheduledV3, PalletSocietyBid, PalletSocietyBidKind, PalletSocietyVote, PalletSocietyVouchingStatus, PalletStakingActiveEraInfo, PalletStakingEraRewardPoints, PalletStakingExposure, PalletStakingForcing, PalletStakingNominations, PalletStakingReleases, PalletStakingRewardDestination, PalletStakingSlashingSlashingSpans, PalletStakingSlashingSpanRecord, PalletStakingStakingLedger, PalletStakingUnappliedSlash, PalletStakingValidatorPrefs, PalletStateTrieMigrationMigrationLimits, PalletStateTrieMigrationMigrationTask, PalletTipsOpenTip, PalletTransactionPaymentReleases, PalletTransactionStorageTransactionInfo, PalletTreasuryProposal, PalletUniquesClassDetails, PalletUniquesClassMetadata, PalletUniquesInstanceDetails, PalletUniquesInstanceMetadata, PalletVestingReleases, PalletVestingVestingInfo, SpAuthorityDiscoveryAppPublic, SpConsensusBabeAppPublic, SpConsensusBabeBabeEpochConfiguration, SpConsensusBabeDigestsNextConfigDescriptor, SpCoreCryptoKeyTypeId, SpNposElectionsElectionScore, SpRuntimeDigest, SpStakingOffenceOffenceDetails } from '@polkadot/types/lookup';
|
||||
import type { Observable } from '@polkadot/types/types';
|
||||
|
||||
declare module '@polkadot/api-base/types/storage' {
|
||||
@@ -293,10 +293,6 @@ declare module '@polkadot/api-base/types/storage' {
|
||||
[key: string]: QueryableStorageEntry<ApiType>;
|
||||
};
|
||||
contracts: {
|
||||
/**
|
||||
* The subtrie counter.
|
||||
**/
|
||||
accountCounter: AugmentedQuery<ApiType, () => Observable<u64>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
/**
|
||||
* A mapping between an original code hash and instrumented wasm code, ready for execution.
|
||||
**/
|
||||
@@ -314,6 +310,31 @@ declare module '@polkadot/api-base/types/storage' {
|
||||
* stored in said trie. Therefore this operation is performed lazily in `on_initialize`.
|
||||
**/
|
||||
deletionQueue: AugmentedQuery<ApiType, () => Observable<Vec<PalletContractsStorageDeletedContract>>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
/**
|
||||
* This is a **monotonic** counter incremented on contract instantiation.
|
||||
*
|
||||
* This is used in order to generate unique trie ids for contracts.
|
||||
* The trie id of a new contract is calculated from hash(account_id, nonce).
|
||||
* The nonce is required because otherwise the following sequence would lead to
|
||||
* a possible collision of storage:
|
||||
*
|
||||
* 1. Create a new contract.
|
||||
* 2. Terminate the contract.
|
||||
* 3. Immediately recreate the contract with the same account_id.
|
||||
*
|
||||
* This is bad because the contents of a trie are deleted lazily and there might be
|
||||
* storage of the old instantiation still in it when the new contract is created. Please
|
||||
* note that we can't replace the counter by the block number because the sequence above
|
||||
* can happen in the same block. We also can't keep the account counter in memory only
|
||||
* because storage is the only way to communicate across different extrinsics in the
|
||||
* same block.
|
||||
*
|
||||
* # Note
|
||||
*
|
||||
* Do not use it to determine the number of contracts. It won't be decremented if
|
||||
* a contract is destroyed.
|
||||
**/
|
||||
nonce: AugmentedQuery<ApiType, () => Observable<u64>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
/**
|
||||
* A mapping between an original code hash and its owner information.
|
||||
**/
|
||||
@@ -465,7 +486,7 @@ declare module '@polkadot/api-base/types/storage' {
|
||||
*
|
||||
* Can be set via `set_minimum_untrusted_score`.
|
||||
**/
|
||||
minimumUntrustedScore: AugmentedQuery<ApiType, () => Observable<Option<Vec<u128>>>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
minimumUntrustedScore: AugmentedQuery<ApiType, () => Observable<Option<SpNposElectionsElectionScore>>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
/**
|
||||
* Current best solution, signed or unsigned, queued to be returned upon `elect`.
|
||||
**/
|
||||
@@ -487,7 +508,7 @@ declare module '@polkadot/api-base/types/storage' {
|
||||
* can be quite large, so we're willing to pay the cost of multiple database accesses to access
|
||||
* them one at a time instead of reading and decoding all of them at once.
|
||||
**/
|
||||
signedSubmissionIndices: AugmentedQuery<ApiType, () => Observable<BTreeMap<Vec<u128>, u32>>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
signedSubmissionIndices: AugmentedQuery<ApiType, () => Observable<BTreeMap<SpNposElectionsElectionScore, u32>>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
/**
|
||||
* The next index to be assigned to an incoming signed submission.
|
||||
*
|
||||
@@ -862,8 +883,6 @@ declare module '@polkadot/api-base/types/storage' {
|
||||
referendumCount: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
/**
|
||||
* Information concerning any given referendum.
|
||||
*
|
||||
* TWOX-NOTE: SAFE as indexes are not under an attacker’s control.
|
||||
**/
|
||||
referendumInfoFor: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<PalletReferendaReferendumInfo>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
|
||||
/**
|
||||
@@ -1249,6 +1268,31 @@ declare module '@polkadot/api-base/types/storage' {
|
||||
**/
|
||||
[key: string]: QueryableStorageEntry<ApiType>;
|
||||
};
|
||||
stateTrieMigration: {
|
||||
/**
|
||||
* The limits that are imposed on automatic migrations.
|
||||
*
|
||||
* If set to None, then no automatic migration happens.
|
||||
**/
|
||||
autoLimits: AugmentedQuery<ApiType, () => Observable<Option<PalletStateTrieMigrationMigrationLimits>>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
/**
|
||||
* Migration progress.
|
||||
*
|
||||
* This stores the snapshot of the last migrated keys. It can be set into motion and move
|
||||
* forward by any of the means provided by this pallet.
|
||||
**/
|
||||
migrationProcess: AugmentedQuery<ApiType, () => Observable<PalletStateTrieMigrationMigrationTask>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
/**
|
||||
* The maximum limits that the signed migration could use.
|
||||
*
|
||||
* If not set, no signed submission is allowed.
|
||||
**/
|
||||
signedMigrationMaxLimits: AugmentedQuery<ApiType, () => Observable<Option<PalletStateTrieMigrationMigrationLimits>>, []> & QueryableStorageEntry<ApiType, []>;
|
||||
/**
|
||||
* Generic query
|
||||
**/
|
||||
[key: string]: QueryableStorageEntry<ApiType>;
|
||||
};
|
||||
sudo: {
|
||||
/**
|
||||
* The `AccountId` of the sudo key.
|
||||
@@ -1514,6 +1558,10 @@ declare module '@polkadot/api-base/types/storage' {
|
||||
* Metadata of an asset instance.
|
||||
**/
|
||||
instanceMetadataOf: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<Option<PalletUniquesInstanceMetadata>>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>;
|
||||
/**
|
||||
* The class, if any, of which an account is willing to take ownership.
|
||||
**/
|
||||
ownershipAcceptance: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<Option<u32>>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>;
|
||||
/**
|
||||
* Generic query
|
||||
**/
|
||||
@@ -1535,5 +1583,12 @@ declare module '@polkadot/api-base/types/storage' {
|
||||
**/
|
||||
[key: string]: QueryableStorageEntry<ApiType>;
|
||||
};
|
||||
whitelist: {
|
||||
whitelistedCall: AugmentedQuery<ApiType, (arg: H256 | string | Uint8Array) => Observable<Option<Null>>, [H256]> & QueryableStorageEntry<ApiType, [H256]>;
|
||||
/**
|
||||
* Generic query
|
||||
**/
|
||||
[key: string]: QueryableStorageEntry<ApiType>;
|
||||
};
|
||||
} // AugmentedQueries
|
||||
} // declare module
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
// Copyright 2017-2022 @polkadot/api-augment authors & contributors
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
import '@polkadot/types-augment/registry/substrate';
|
||||
@@ -6,7 +6,7 @@ import type { Data } from '@polkadot/types';
|
||||
import type { Bytes, Compact, Option, U8aFixed, Vec, WrapperKeepOpaque, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';
|
||||
import type { AnyNumber, ITuple } from '@polkadot/types-codec/types';
|
||||
import type { AccountId32, Call, H256, MultiAddress, Perbill, Percent, Perquintill } from '@polkadot/types/interfaces/runtime';
|
||||
import type { FrameSupportScheduleMaybeHashed, NodeRuntimeOriginCaller, NodeRuntimeProxyType, NodeRuntimeSessionKeys, PalletAssetsDestroyWitness, PalletConvictionVotingConviction, PalletConvictionVotingVoteAccountVote, PalletDemocracyConviction, PalletDemocracyVoteAccountVote, PalletElectionProviderMultiPhaseRawSolution, PalletElectionProviderMultiPhaseSolutionOrSnapshotSize, PalletElectionsPhragmenRenouncing, PalletIdentityBitFlags, PalletIdentityIdentityInfo, PalletIdentityJudgement, PalletImOnlineHeartbeat, PalletImOnlineSr25519AppSr25519Signature, PalletMultisigTimepoint, PalletReferendaAtOrAfter, PalletSocietyJudgement, PalletStakingRewardDestination, PalletStakingValidatorPrefs, PalletUniquesDestroyWitness, PalletVestingVestingInfo, SpConsensusBabeDigestsNextConfigDescriptor, SpConsensusSlotsEquivocationProof, SpFinalityGrandpaEquivocationProof, SpNposElectionsSupport, SpRuntimeHeader, SpSessionMembershipProof, SpTransactionStorageProofTransactionStorageProof } from '@polkadot/types/lookup';
|
||||
import type { FrameSupportScheduleDispatchTime, FrameSupportScheduleMaybeHashed, NodeRuntimeOriginCaller, NodeRuntimeProxyType, NodeRuntimeSessionKeys, PalletAssetsDestroyWitness, PalletConvictionVotingConviction, PalletConvictionVotingVoteAccountVote, PalletDemocracyConviction, PalletDemocracyVoteAccountVote, PalletElectionProviderMultiPhaseRawSolution, PalletElectionProviderMultiPhaseSolutionOrSnapshotSize, PalletElectionsPhragmenRenouncing, PalletIdentityBitFlags, PalletIdentityIdentityInfo, PalletIdentityJudgement, PalletImOnlineHeartbeat, PalletImOnlineSr25519AppSr25519Signature, PalletMultisigTimepoint, PalletSocietyJudgement, PalletStakingPalletConfigOpPerbill, PalletStakingPalletConfigOpPercent, PalletStakingPalletConfigOpU128, PalletStakingPalletConfigOpU32, PalletStakingRewardDestination, PalletStakingValidatorPrefs, PalletStateTrieMigrationMigrationLimits, PalletStateTrieMigrationMigrationTask, PalletStateTrieMigrationProgress, PalletUniquesDestroyWitness, PalletVestingVestingInfo, SpConsensusBabeDigestsNextConfigDescriptor, SpConsensusSlotsEquivocationProof, SpFinalityGrandpaEquivocationProof, SpNposElectionsElectionScore, SpNposElectionsSupport, SpRuntimeHeader, SpSessionMembershipProof, SpTransactionStorageProofTransactionStorageProof } from '@polkadot/types/lookup';
|
||||
|
||||
declare module '@polkadot/api-base/types/submittable' {
|
||||
export interface AugmentedSubmittables<ApiType extends ApiTypes> {
|
||||
@@ -494,12 +494,12 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
*
|
||||
* Only works if
|
||||
* - both nodes are within the same bag,
|
||||
* - and `origin` has a greater `VoteWeight` than `lighter`.
|
||||
* - and `origin` has a greater `Score` than `lighter`.
|
||||
**/
|
||||
putInFrontOf: AugmentedSubmittable<(lighter: AccountId32 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [AccountId32]>;
|
||||
/**
|
||||
* Declare that some `dislocated` account has, through rewards or penalties, sufficiently
|
||||
* changed its weight that it should properly fall into a different bag than its current
|
||||
* changed its score that it should properly fall into a different bag than its current
|
||||
* one.
|
||||
*
|
||||
* Anyone can call this function about any potentially dislocated account.
|
||||
@@ -1626,7 +1626,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
*
|
||||
* This check can be turned off by setting the value to `None`.
|
||||
**/
|
||||
setMinimumUntrustedScore: AugmentedSubmittable<(maybeNextScore: Option<Vec<u128>> | null | object | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Option<Vec<u128>>]>;
|
||||
setMinimumUntrustedScore: AugmentedSubmittable<(maybeNextScore: Option<SpNposElectionsElectionScore> | null | object | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Option<SpNposElectionsElectionScore>]>;
|
||||
/**
|
||||
* Submit a solution for the signed phase.
|
||||
*
|
||||
@@ -1637,12 +1637,8 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
*
|
||||
* A deposit is reserved and recorded for the solution. Based on the outcome, the solution
|
||||
* might be rewarded, slashed, or get all or a part of the deposit back.
|
||||
*
|
||||
* # <weight>
|
||||
* Queue size must be provided as witness data.
|
||||
* # </weight>
|
||||
**/
|
||||
submit: AugmentedSubmittable<(rawSolution: PalletElectionProviderMultiPhaseRawSolution | { solution?: any; score?: any; round?: any } | string | Uint8Array, numSignedSubmissions: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [PalletElectionProviderMultiPhaseRawSolution, u32]>;
|
||||
submit: AugmentedSubmittable<(rawSolution: PalletElectionProviderMultiPhaseRawSolution | { solution?: any; score?: any; round?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [PalletElectionProviderMultiPhaseRawSolution]>;
|
||||
/**
|
||||
* Submit a solution for the unsigned phase.
|
||||
*
|
||||
@@ -2952,7 +2948,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
*
|
||||
* Emits `Submitted`.
|
||||
**/
|
||||
submit: AugmentedSubmittable<(proposalOrigin: NodeRuntimeOriginCaller | { system: any } | { Void: any } | { Council: any } | { TechnicalCommittee: any } | string | Uint8Array, proposalHash: H256 | string | Uint8Array, enactmentMoment: PalletReferendaAtOrAfter | { At: any } | { After: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [NodeRuntimeOriginCaller, H256, PalletReferendaAtOrAfter]>;
|
||||
submit: AugmentedSubmittable<(proposalOrigin: NodeRuntimeOriginCaller | { system: any } | { Void: any } | { Council: any } | { TechnicalCommittee: any } | string | Uint8Array, proposalHash: H256 | string | Uint8Array, enactmentMoment: FrameSupportScheduleDispatchTime | { At: any } | { After: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [NodeRuntimeOriginCaller, H256, FrameSupportScheduleDispatchTime]>;
|
||||
/**
|
||||
* Generic tx
|
||||
**/
|
||||
@@ -3600,7 +3596,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
*
|
||||
* # <weight>
|
||||
* - Time complexity: O(L), where L is unlocking chunks
|
||||
* - Bounded by `MAX_UNLOCKING_CHUNKS`.
|
||||
* - Bounded by `MaxUnlockingChunks`.
|
||||
* - Storage changes: Can't increase storage, only decrease it.
|
||||
* # </weight>
|
||||
**/
|
||||
@@ -3703,7 +3699,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
* NOTE: Existing nominators and validators will not be affected by this update.
|
||||
* to kick people under the new limits, `chill_other` should be called.
|
||||
**/
|
||||
setStakingConfigs: AugmentedSubmittable<(minNominatorBond: u128 | AnyNumber | Uint8Array, minValidatorBond: u128 | AnyNumber | Uint8Array, maxNominatorCount: Option<u32> | null | object | string | Uint8Array, maxValidatorCount: Option<u32> | null | object | string | Uint8Array, chillThreshold: Option<Percent> | null | object | string | Uint8Array, minCommission: Perbill | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u128, u128, Option<u32>, Option<u32>, Option<Percent>, Perbill]>;
|
||||
setStakingConfigs: AugmentedSubmittable<(minNominatorBond: PalletStakingPalletConfigOpU128 | { Noop: any } | { Set: any } | { Remove: any } | string | Uint8Array, minValidatorBond: PalletStakingPalletConfigOpU128 | { Noop: any } | { Set: any } | { Remove: any } | string | Uint8Array, maxNominatorCount: PalletStakingPalletConfigOpU32 | { Noop: any } | { Set: any } | { Remove: any } | string | Uint8Array, maxValidatorCount: PalletStakingPalletConfigOpU32 | { Noop: any } | { Set: any } | { Remove: any } | string | Uint8Array, chillThreshold: PalletStakingPalletConfigOpPercent | { Noop: any } | { Set: any } | { Remove: any } | string | Uint8Array, minCommission: PalletStakingPalletConfigOpPerbill | { Noop: any } | { Set: any } | { Remove: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [PalletStakingPalletConfigOpU128, PalletStakingPalletConfigOpU128, PalletStakingPalletConfigOpU32, PalletStakingPalletConfigOpU32, PalletStakingPalletConfigOpPercent, PalletStakingPalletConfigOpPerbill]>;
|
||||
/**
|
||||
* Sets the ideal number of validators.
|
||||
*
|
||||
@@ -3725,7 +3721,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
* Once the unlock period is done, you can call `withdraw_unbonded` to actually move
|
||||
* the funds out of management ready for transfer.
|
||||
*
|
||||
* No more than a limited number of unlocking chunks (see `MAX_UNLOCKING_CHUNKS`)
|
||||
* No more than a limited number of unlocking chunks (see `MaxUnlockingChunks`)
|
||||
* can co-exists at the same time. In that case, [`Call::withdraw_unbonded`] need
|
||||
* to be called first to remove some of the chunks (if possible).
|
||||
*
|
||||
@@ -3768,6 +3764,74 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
**/
|
||||
[key: string]: SubmittableExtrinsicFunction<ApiType>;
|
||||
};
|
||||
stateTrieMigration: {
|
||||
/**
|
||||
* Continue the migration for the given `limits`.
|
||||
*
|
||||
* The dispatch origin of this call can be any signed account.
|
||||
*
|
||||
* This transaction has NO MONETARY INCENTIVES. calling it will not reward anyone. Albeit,
|
||||
* Upon successful execution, the transaction fee is returned.
|
||||
*
|
||||
* The (potentially over-estimated) of the byte length of all the data read must be
|
||||
* provided for up-front fee-payment and weighing. In essence, the caller is guaranteeing
|
||||
* that executing the current `MigrationTask` with the given `limits` will not exceed
|
||||
* `real_size_upper` bytes of read data.
|
||||
*
|
||||
* The `witness_task` is merely a helper to prevent the caller from being slashed or
|
||||
* generally trigger a migration that they do not intend. This parameter is just a message
|
||||
* from caller, saying that they believed `witness_task` was the last state of the
|
||||
* migration, and they only wish for their transaction to do anything, if this assumption
|
||||
* holds. In case `witness_task` does not match, the transaction fails.
|
||||
*
|
||||
* Based on the documentation of [`MigrationTask::migrate_until_exhaustion`], the
|
||||
* recommended way of doing this is to pass a `limit` that only bounds `count`, as the
|
||||
* `size` limit can always be overwritten.
|
||||
**/
|
||||
continueMigrate: AugmentedSubmittable<(limits: PalletStateTrieMigrationMigrationLimits | { size_?: any; item?: any } | string | Uint8Array, realSizeUpper: u32 | AnyNumber | Uint8Array, witnessTask: PalletStateTrieMigrationMigrationTask | { progressTop?: any; progressChild?: any; size_?: any; topItems?: any; childItems?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [PalletStateTrieMigrationMigrationLimits, u32, PalletStateTrieMigrationMigrationTask]>;
|
||||
/**
|
||||
* Control the automatic migration.
|
||||
*
|
||||
* The dispatch origin of this call must be [`Config::ControlOrigin`].
|
||||
**/
|
||||
controlAutoMigration: AugmentedSubmittable<(maybeConfig: Option<PalletStateTrieMigrationMigrationLimits> | null | object | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Option<PalletStateTrieMigrationMigrationLimits>]>;
|
||||
/**
|
||||
* Forcefully set the progress the running migration.
|
||||
*
|
||||
* This is only useful in one case: the next key to migrate is too big to be migrated with
|
||||
* a signed account, in a parachain context, and we simply want to skip it. A reasonable
|
||||
* example of this would be `:code:`, which is both very expensive to migrate, and commonly
|
||||
* used, so probably it is already migrated.
|
||||
*
|
||||
* In case you mess things up, you can also, in principle, use this to reset the migration
|
||||
* process.
|
||||
**/
|
||||
forceSetProgress: AugmentedSubmittable<(progressTop: PalletStateTrieMigrationProgress | { ToStart: any } | { LastKey: any } | { Complete: any } | string | Uint8Array, progressChild: PalletStateTrieMigrationProgress | { ToStart: any } | { LastKey: any } | { Complete: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [PalletStateTrieMigrationProgress, PalletStateTrieMigrationProgress]>;
|
||||
/**
|
||||
* Migrate the list of child keys by iterating each of them one by one.
|
||||
*
|
||||
* All of the given child keys must be present under one `child_root`.
|
||||
*
|
||||
* This does not affect the global migration process tracker ([`MigrationProcess`]), and
|
||||
* should only be used in case any keys are leftover due to a bug.
|
||||
**/
|
||||
migrateCustomChild: AugmentedSubmittable<(root: Bytes | string | Uint8Array, childKeys: Vec<Bytes> | (Bytes | string | Uint8Array)[], totalSize: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes, Vec<Bytes>, u32]>;
|
||||
/**
|
||||
* Migrate the list of top keys by iterating each of them one by one.
|
||||
*
|
||||
* This does not affect the global migration process tracker ([`MigrationProcess`]), and
|
||||
* should only be used in case any keys are leftover due to a bug.
|
||||
**/
|
||||
migrateCustomTop: AugmentedSubmittable<(keys: Vec<Bytes> | (Bytes | string | Uint8Array)[], witnessSize: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Vec<Bytes>, u32]>;
|
||||
/**
|
||||
* Set the maximum limit of the signed migration.
|
||||
**/
|
||||
setSignedMaxLimits: AugmentedSubmittable<(limits: PalletStateTrieMigrationMigrationLimits | { size_?: any; item?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [PalletStateTrieMigrationMigrationLimits]>;
|
||||
/**
|
||||
* Generic tx
|
||||
**/
|
||||
[key: string]: SubmittableExtrinsicFunction<ApiType>;
|
||||
};
|
||||
sudo: {
|
||||
/**
|
||||
* Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo
|
||||
@@ -4357,7 +4421,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
*
|
||||
* Weight: `O(1)`
|
||||
**/
|
||||
approveTransfer: AugmentedSubmittable<(clazz: Compact<u32> | AnyNumber | Uint8Array, instance: Compact<u32> | AnyNumber | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, Compact<u32>, MultiAddress]>;
|
||||
approveTransfer: AugmentedSubmittable<(clazz: u32 | AnyNumber | Uint8Array, instance: u32 | AnyNumber | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, MultiAddress]>;
|
||||
/**
|
||||
* Destroy a single asset instance.
|
||||
*
|
||||
@@ -4373,7 +4437,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
* Weight: `O(1)`
|
||||
* Modes: `check_owner.is_some()`.
|
||||
**/
|
||||
burn: AugmentedSubmittable<(clazz: Compact<u32> | AnyNumber | Uint8Array, instance: Compact<u32> | AnyNumber | Uint8Array, checkOwner: Option<MultiAddress> | null | object | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, Compact<u32>, Option<MultiAddress>]>;
|
||||
burn: AugmentedSubmittable<(clazz: u32 | AnyNumber | Uint8Array, instance: u32 | AnyNumber | Uint8Array, checkOwner: Option<MultiAddress> | null | object | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, Option<MultiAddress>]>;
|
||||
/**
|
||||
* Cancel the prior approval for the transfer of an asset by a delegate.
|
||||
*
|
||||
@@ -4392,7 +4456,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
*
|
||||
* Weight: `O(1)`
|
||||
**/
|
||||
cancelApproval: AugmentedSubmittable<(clazz: Compact<u32> | AnyNumber | Uint8Array, instance: Compact<u32> | AnyNumber | Uint8Array, maybeCheckDelegate: Option<MultiAddress> | null | object | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, Compact<u32>, Option<MultiAddress>]>;
|
||||
cancelApproval: AugmentedSubmittable<(clazz: u32 | AnyNumber | Uint8Array, instance: u32 | AnyNumber | Uint8Array, maybeCheckDelegate: Option<MultiAddress> | null | object | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, Option<MultiAddress>]>;
|
||||
/**
|
||||
* Clear an attribute for an asset class or instance.
|
||||
*
|
||||
@@ -4409,7 +4473,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
*
|
||||
* Weight: `O(1)`
|
||||
**/
|
||||
clearAttribute: AugmentedSubmittable<(clazz: Compact<u32> | AnyNumber | Uint8Array, maybeInstance: Option<u32> | null | object | string | Uint8Array, key: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, Option<u32>, Bytes]>;
|
||||
clearAttribute: AugmentedSubmittable<(clazz: u32 | AnyNumber | Uint8Array, maybeInstance: Option<u32> | null | object | string | Uint8Array, key: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, Option<u32>, Bytes]>;
|
||||
/**
|
||||
* Clear the metadata for an asset class.
|
||||
*
|
||||
@@ -4424,7 +4488,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
*
|
||||
* Weight: `O(1)`
|
||||
**/
|
||||
clearClassMetadata: AugmentedSubmittable<(clazz: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>]>;
|
||||
clearClassMetadata: AugmentedSubmittable<(clazz: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;
|
||||
/**
|
||||
* Clear the metadata for an asset instance.
|
||||
*
|
||||
@@ -4440,7 +4504,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
*
|
||||
* Weight: `O(1)`
|
||||
**/
|
||||
clearMetadata: AugmentedSubmittable<(clazz: Compact<u32> | AnyNumber | Uint8Array, instance: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, Compact<u32>]>;
|
||||
clearMetadata: AugmentedSubmittable<(clazz: u32 | AnyNumber | Uint8Array, instance: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32]>;
|
||||
/**
|
||||
* Issue a new class of non-fungible assets from a public origin.
|
||||
*
|
||||
@@ -4459,7 +4523,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
*
|
||||
* Weight: `O(1)`
|
||||
**/
|
||||
create: AugmentedSubmittable<(clazz: Compact<u32> | AnyNumber | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, MultiAddress]>;
|
||||
create: AugmentedSubmittable<(clazz: u32 | AnyNumber | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, MultiAddress]>;
|
||||
/**
|
||||
* Destroy a class of fungible assets.
|
||||
*
|
||||
@@ -4477,7 +4541,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
* - `m = witness.instance_metadatas`
|
||||
* - `a = witness.attributes`
|
||||
**/
|
||||
destroy: AugmentedSubmittable<(clazz: Compact<u32> | AnyNumber | Uint8Array, witness: PalletUniquesDestroyWitness | { instances?: any; instanceMetadatas?: any; attributes?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, PalletUniquesDestroyWitness]>;
|
||||
destroy: AugmentedSubmittable<(clazz: u32 | AnyNumber | Uint8Array, witness: PalletUniquesDestroyWitness | { instances?: any; instanceMetadatas?: any; attributes?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletUniquesDestroyWitness]>;
|
||||
/**
|
||||
* Alter the attributes of a given asset.
|
||||
*
|
||||
@@ -4497,7 +4561,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
*
|
||||
* Weight: `O(1)`
|
||||
**/
|
||||
forceAssetStatus: AugmentedSubmittable<(clazz: Compact<u32> | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, issuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, freezer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, freeHolding: bool | boolean | Uint8Array, isFrozen: bool | boolean | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, MultiAddress, MultiAddress, MultiAddress, MultiAddress, bool, bool]>;
|
||||
forceAssetStatus: AugmentedSubmittable<(clazz: u32 | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, issuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, freezer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, freeHolding: bool | boolean | Uint8Array, isFrozen: bool | boolean | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, MultiAddress, MultiAddress, MultiAddress, MultiAddress, bool, bool]>;
|
||||
/**
|
||||
* Issue a new class of non-fungible assets from a privileged origin.
|
||||
*
|
||||
@@ -4516,7 +4580,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
*
|
||||
* Weight: `O(1)`
|
||||
**/
|
||||
forceCreate: AugmentedSubmittable<(clazz: Compact<u32> | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, freeHolding: bool | boolean | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, MultiAddress, bool]>;
|
||||
forceCreate: AugmentedSubmittable<(clazz: u32 | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, freeHolding: bool | boolean | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, MultiAddress, bool]>;
|
||||
/**
|
||||
* Disallow further unprivileged transfer of an asset instance.
|
||||
*
|
||||
@@ -4529,7 +4593,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
*
|
||||
* Weight: `O(1)`
|
||||
**/
|
||||
freeze: AugmentedSubmittable<(clazz: Compact<u32> | AnyNumber | Uint8Array, instance: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, Compact<u32>]>;
|
||||
freeze: AugmentedSubmittable<(clazz: u32 | AnyNumber | Uint8Array, instance: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32]>;
|
||||
/**
|
||||
* Disallow further unprivileged transfers for a whole asset class.
|
||||
*
|
||||
@@ -4541,7 +4605,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
*
|
||||
* Weight: `O(1)`
|
||||
**/
|
||||
freezeClass: AugmentedSubmittable<(clazz: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>]>;
|
||||
freezeClass: AugmentedSubmittable<(clazz: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;
|
||||
/**
|
||||
* Mint an asset instance of a particular class.
|
||||
*
|
||||
@@ -4555,7 +4619,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
*
|
||||
* Weight: `O(1)`
|
||||
**/
|
||||
mint: AugmentedSubmittable<(clazz: Compact<u32> | AnyNumber | Uint8Array, instance: Compact<u32> | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, Compact<u32>, MultiAddress]>;
|
||||
mint: AugmentedSubmittable<(clazz: u32 | AnyNumber | Uint8Array, instance: u32 | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, MultiAddress]>;
|
||||
/**
|
||||
* Reevaluate the deposits on some assets.
|
||||
*
|
||||
@@ -4575,7 +4639,20 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
*
|
||||
* Weight: `O(instances.len())`
|
||||
**/
|
||||
redeposit: AugmentedSubmittable<(clazz: Compact<u32> | AnyNumber | Uint8Array, instances: Vec<u32> | (u32 | AnyNumber | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [Compact<u32>, Vec<u32>]>;
|
||||
redeposit: AugmentedSubmittable<(clazz: u32 | AnyNumber | Uint8Array, instances: Vec<u32> | (u32 | AnyNumber | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, Vec<u32>]>;
|
||||
/**
|
||||
* Set (or reset) the acceptance of ownership for a particular account.
|
||||
*
|
||||
* Origin must be `Signed` and if `maybe_class` is `Some`, then the signer must have a
|
||||
* provider reference.
|
||||
*
|
||||
* - `maybe_class`: The identifier of the asset class whose ownership the signer is willing
|
||||
* to accept, or if `None`, an indication that the signer is willing to accept no
|
||||
* ownership transferal.
|
||||
*
|
||||
* Emits `OwnershipAcceptanceChanged`.
|
||||
**/
|
||||
setAcceptOwnership: AugmentedSubmittable<(maybeClass: Option<u32> | null | object | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Option<u32>]>;
|
||||
/**
|
||||
* Set an attribute for an asset class or instance.
|
||||
*
|
||||
@@ -4595,7 +4672,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
*
|
||||
* Weight: `O(1)`
|
||||
**/
|
||||
setAttribute: AugmentedSubmittable<(clazz: Compact<u32> | AnyNumber | Uint8Array, maybeInstance: Option<u32> | null | object | string | Uint8Array, key: Bytes | string | Uint8Array, value: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, Option<u32>, Bytes, Bytes]>;
|
||||
setAttribute: AugmentedSubmittable<(clazz: u32 | AnyNumber | Uint8Array, maybeInstance: Option<u32> | null | object | string | Uint8Array, key: Bytes | string | Uint8Array, value: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, Option<u32>, Bytes, Bytes]>;
|
||||
/**
|
||||
* Set the metadata for an asset class.
|
||||
*
|
||||
@@ -4614,7 +4691,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
*
|
||||
* Weight: `O(1)`
|
||||
**/
|
||||
setClassMetadata: AugmentedSubmittable<(clazz: Compact<u32> | AnyNumber | Uint8Array, data: Bytes | string | Uint8Array, isFrozen: bool | boolean | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, Bytes, bool]>;
|
||||
setClassMetadata: AugmentedSubmittable<(clazz: u32 | AnyNumber | Uint8Array, data: Bytes | string | Uint8Array, isFrozen: bool | boolean | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, Bytes, bool]>;
|
||||
/**
|
||||
* Set the metadata for an asset instance.
|
||||
*
|
||||
@@ -4634,7 +4711,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
*
|
||||
* Weight: `O(1)`
|
||||
**/
|
||||
setMetadata: AugmentedSubmittable<(clazz: Compact<u32> | AnyNumber | Uint8Array, instance: Compact<u32> | AnyNumber | Uint8Array, data: Bytes | string | Uint8Array, isFrozen: bool | boolean | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, Compact<u32>, Bytes, bool]>;
|
||||
setMetadata: AugmentedSubmittable<(clazz: u32 | AnyNumber | Uint8Array, instance: u32 | AnyNumber | Uint8Array, data: Bytes | string | Uint8Array, isFrozen: bool | boolean | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, Bytes, bool]>;
|
||||
/**
|
||||
* Change the Issuer, Admin and Freezer of an asset class.
|
||||
*
|
||||
@@ -4649,7 +4726,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
*
|
||||
* Weight: `O(1)`
|
||||
**/
|
||||
setTeam: AugmentedSubmittable<(clazz: Compact<u32> | AnyNumber | Uint8Array, issuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, freezer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, MultiAddress, MultiAddress, MultiAddress]>;
|
||||
setTeam: AugmentedSubmittable<(clazz: u32 | AnyNumber | Uint8Array, issuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, freezer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, MultiAddress, MultiAddress, MultiAddress]>;
|
||||
/**
|
||||
* Re-allow unprivileged transfer of an asset instance.
|
||||
*
|
||||
@@ -4662,7 +4739,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
*
|
||||
* Weight: `O(1)`
|
||||
**/
|
||||
thaw: AugmentedSubmittable<(clazz: Compact<u32> | AnyNumber | Uint8Array, instance: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, Compact<u32>]>;
|
||||
thaw: AugmentedSubmittable<(clazz: u32 | AnyNumber | Uint8Array, instance: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32]>;
|
||||
/**
|
||||
* Re-allow unprivileged transfers for a whole asset class.
|
||||
*
|
||||
@@ -4674,7 +4751,7 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
*
|
||||
* Weight: `O(1)`
|
||||
**/
|
||||
thawClass: AugmentedSubmittable<(clazz: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>]>;
|
||||
thawClass: AugmentedSubmittable<(clazz: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;
|
||||
/**
|
||||
* Move an asset from the sender account to another.
|
||||
*
|
||||
@@ -4692,20 +4769,21 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
*
|
||||
* Weight: `O(1)`
|
||||
**/
|
||||
transfer: AugmentedSubmittable<(clazz: Compact<u32> | AnyNumber | Uint8Array, instance: Compact<u32> | AnyNumber | Uint8Array, dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, Compact<u32>, MultiAddress]>;
|
||||
transfer: AugmentedSubmittable<(clazz: u32 | AnyNumber | Uint8Array, instance: u32 | AnyNumber | Uint8Array, dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, MultiAddress]>;
|
||||
/**
|
||||
* Change the Owner of an asset class.
|
||||
*
|
||||
* Origin must be Signed and the sender should be the Owner of the asset `class`.
|
||||
*
|
||||
* - `class`: The asset class whose owner should be changed.
|
||||
* - `owner`: The new Owner of this asset class.
|
||||
* - `owner`: The new Owner of this asset class. They must have called
|
||||
* `set_accept_ownership` with `class` in order for this operation to succeed.
|
||||
*
|
||||
* Emits `OwnerChanged`.
|
||||
*
|
||||
* Weight: `O(1)`
|
||||
**/
|
||||
transferOwnership: AugmentedSubmittable<(clazz: Compact<u32> | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, MultiAddress]>;
|
||||
transferOwnership: AugmentedSubmittable<(clazz: u32 | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, MultiAddress]>;
|
||||
/**
|
||||
* Generic tx
|
||||
**/
|
||||
@@ -4890,5 +4968,15 @@ declare module '@polkadot/api-base/types/submittable' {
|
||||
**/
|
||||
[key: string]: SubmittableExtrinsicFunction<ApiType>;
|
||||
};
|
||||
whitelist: {
|
||||
dispatchWhitelistedCall: AugmentedSubmittable<(callHash: H256 | string | Uint8Array, callWeightWitness: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [H256, u64]>;
|
||||
dispatchWhitelistedCallWithPreimage: AugmentedSubmittable<(call: Call | { callIndex?: any; args?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Call]>;
|
||||
removeWhitelistedCall: AugmentedSubmittable<(callHash: H256 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H256]>;
|
||||
whitelistCall: AugmentedSubmittable<(callHash: H256 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H256]>;
|
||||
/**
|
||||
* Generic tx
|
||||
**/
|
||||
[key: string]: SubmittableExtrinsicFunction<ApiType>;
|
||||
};
|
||||
} // AugmentedSubmittables
|
||||
} // declare module
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
"rootDir": "./src"
|
||||
},
|
||||
"exclude": [
|
||||
"**/*.spec.ts",
|
||||
"**/kusama/*.ts",
|
||||
"**/polkadot/*.ts"
|
||||
],
|
||||
@@ -14,6 +15,7 @@
|
||||
{ "path": "../rpc-augment/tsconfig.build.json" },
|
||||
{ "path": "../types/tsconfig.build.json" },
|
||||
{ "path": "../types-codec/tsconfig.build.json" },
|
||||
{ "path": "../types-augment/tsconfig.build.json" }
|
||||
{ "path": "../types-augment/tsconfig.build.json" },
|
||||
{ "path": "../types-support/tsconfig.build.json" }
|
||||
]
|
||||
}
|
||||
|
||||
@@ -9,6 +9,9 @@
|
||||
"**/base.ts",
|
||||
"**/kusama/*.ts"
|
||||
],
|
||||
"exclude": [
|
||||
"**/kusama/*.spec.ts"
|
||||
],
|
||||
"references": [
|
||||
{ "path": "../api-base/tsconfig.build.json" },
|
||||
{ "path": "../rpc-augment/tsconfig.build.json" },
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"extends": "../../tsconfig.base.json",
|
||||
"compilerOptions": {
|
||||
"baseUrl": "..",
|
||||
"outDir": "./build",
|
||||
"rootDir": "./src",
|
||||
"emitDeclarationOnly": false,
|
||||
"noEmit": true
|
||||
},
|
||||
"include": [
|
||||
"**/kusama/*.spec.ts"
|
||||
],
|
||||
"references": [
|
||||
{ "path": "../api-augment/tsconfig.build.json" },
|
||||
{ "path": "../api-augment/tsconfig.kusama.json" },
|
||||
{ "path": "../api-base/tsconfig.build.json" },
|
||||
{ "path": "../rpc-augment/tsconfig.build.json" },
|
||||
{ "path": "../types/tsconfig.build.json" },
|
||||
{ "path": "../types-augment/tsconfig.build.json" },
|
||||
{ "path": "../types-support/tsconfig.build.json" }
|
||||
]
|
||||
}
|
||||
@@ -9,6 +9,9 @@
|
||||
"**/base.ts",
|
||||
"**/polkadot/*.ts"
|
||||
],
|
||||
"exclude": [
|
||||
"**/polkadot/*.spec.ts"
|
||||
],
|
||||
"references": [
|
||||
{ "path": "../api-base/tsconfig.build.json" },
|
||||
{ "path": "../rpc-augment/tsconfig.build.json" },
|
||||
|
||||
@@ -20,13 +20,13 @@
|
||||
"./detectPackage.cjs"
|
||||
],
|
||||
"type": "module",
|
||||
"version": "7.8.1",
|
||||
"version": "7.15.1",
|
||||
"main": "index.js",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.17.2",
|
||||
"@polkadot/rpc-core": "7.8.1",
|
||||
"@polkadot/types": "7.8.1",
|
||||
"@polkadot/util": "^8.4.1",
|
||||
"rxjs": "^7.5.4"
|
||||
"@babel/runtime": "^7.17.8",
|
||||
"@polkadot/rpc-core": "7.15.1",
|
||||
"@polkadot/types": "7.15.1",
|
||||
"@polkadot/util": "^8.7.1",
|
||||
"rxjs": "^7.5.5"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,4 +3,4 @@
|
||||
|
||||
// Do not edit, auto-generated by @polkadot/dev
|
||||
|
||||
export const packageInfo = { name: '@polkadot/api-base', path: 'auto', type: 'auto', version: '7.8.1' };
|
||||
export const packageInfo = { name: '@polkadot/api-base', path: 'auto', type: 'auto', version: '7.15.1' };
|
||||
|
||||
@@ -74,12 +74,10 @@ export interface StorageEntryBase<ApiType extends ApiTypes, F extends AnyFunctio
|
||||
* @deprecated Use api.at(<blockHash>)
|
||||
*/
|
||||
entriesAt: <T extends Codec | any = ReturnCodec<F>, K extends AnyTuple = A>(hash: Hash | Uint8Array | string, ...args: DropLast<Parameters<F>>) => PromiseOrObs<ApiType, [StorageKey<K>, T][]>;
|
||||
entriesPaged: <T extends Codec | any = ReturnCodec<F>, K extends AnyTuple = A>(opts: PaginationOptions<Parameters<F>[0]>) => PromiseOrObs<ApiType, [StorageKey<K>, T][]>;
|
||||
/**
|
||||
* @deprecated Use api.at(<blockHash>)
|
||||
*/
|
||||
keysAt: <K extends AnyTuple = A> (hash: Hash | Uint8Array | string, ...args: DropLast<Parameters<F>>) => PromiseOrObs<ApiType, StorageKey<K>[]>;
|
||||
keysPaged: <K extends AnyTuple = A> (opts: PaginationOptions<Parameters<F>[0]>) => PromiseOrObs<ApiType, StorageKey<K>[]>;
|
||||
/**
|
||||
* @deprecated The underlying RPC this been marked unsafe and is generally not exposed
|
||||
*/
|
||||
@@ -95,11 +93,13 @@ export interface StorageEntryBase<ApiType extends ApiTypes, F extends AnyFunctio
|
||||
|
||||
export interface StorageEntryBaseAt<ApiType extends ApiTypes, F extends AnyFunction, A extends AnyTuple = AnyTuple> {
|
||||
entries: <T extends Codec | any = ReturnCodec<F>, K extends AnyTuple = A>(...args: DropLast<Parameters<F>>) => PromiseOrObs<ApiType, [StorageKey<K>, T][]>;
|
||||
entriesPaged: <T extends Codec | any = ReturnCodec<F>, K extends AnyTuple = A>(opts: PaginationOptions<Parameters<F>[0]>) => PromiseOrObs<ApiType, [StorageKey<K>, T][]>;
|
||||
hash: (...args: Parameters<F>) => PromiseOrObs<ApiType, Hash>;
|
||||
is: (key: IStorageKey<AnyTuple>) => key is IStorageKey<A>;
|
||||
key: (...args: Parameters<F>) => string;
|
||||
keyPrefix: (...args: DropLast<Parameters<F>>) => string;
|
||||
keys: <K extends AnyTuple = A> (...args: DropLast<Parameters<F>>) => PromiseOrObs<ApiType, StorageKey<K>[]>;
|
||||
keysPaged: <K extends AnyTuple = A> (opts: PaginationOptions<Parameters<F>[0]>) => PromiseOrObs<ApiType, StorageKey<K>[]>;
|
||||
size: (...args: Parameters<F>) => PromiseOrObs<ApiType, u64>;
|
||||
}
|
||||
|
||||
|
||||
@@ -20,20 +20,20 @@
|
||||
"./detectPackage.cjs"
|
||||
],
|
||||
"type": "module",
|
||||
"version": "7.8.1",
|
||||
"version": "7.15.1",
|
||||
"main": "index.js",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.17.2",
|
||||
"@polkadot/api": "7.8.1",
|
||||
"@polkadot/types": "7.8.1",
|
||||
"@polkadot/types-codec": "7.8.1",
|
||||
"@polkadot/types-create": "7.8.1",
|
||||
"@polkadot/util": "^8.4.1",
|
||||
"@polkadot/util-crypto": "^8.4.1",
|
||||
"rxjs": "^7.5.4"
|
||||
"@babel/runtime": "^7.17.8",
|
||||
"@polkadot/api": "7.15.1",
|
||||
"@polkadot/types": "7.15.1",
|
||||
"@polkadot/types-codec": "7.15.1",
|
||||
"@polkadot/types-create": "7.15.1",
|
||||
"@polkadot/util": "^8.7.1",
|
||||
"@polkadot/util-crypto": "^8.7.1",
|
||||
"rxjs": "^7.5.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@polkadot/api-augment": "7.8.1",
|
||||
"@polkadot/keyring": "^8.4.1"
|
||||
"@polkadot/api-augment": "7.15.1",
|
||||
"@polkadot/keyring": "^8.7.1"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,4 +3,4 @@
|
||||
|
||||
// Do not edit, auto-generated by @polkadot/dev
|
||||
|
||||
export const packageInfo = { name: '@polkadot/api-contract', path: 'auto', type: 'auto', version: '7.8.1' };
|
||||
export const packageInfo = { name: '@polkadot/api-contract', path: 'auto', type: 'auto', version: '7.15.1' };
|
||||
|
||||
@@ -20,25 +20,25 @@
|
||||
"./detectPackage.cjs"
|
||||
],
|
||||
"type": "module",
|
||||
"version": "7.8.1",
|
||||
"version": "7.15.1",
|
||||
"main": "index.js",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.17.2",
|
||||
"@polkadot/api": "7.8.1",
|
||||
"@polkadot/api-augment": "7.8.1",
|
||||
"@polkadot/api-base": "7.8.1",
|
||||
"@polkadot/rpc-core": "7.8.1",
|
||||
"@polkadot/types": "7.8.1",
|
||||
"@polkadot/types-codec": "7.8.1",
|
||||
"@polkadot/util": "^8.4.1",
|
||||
"@polkadot/util-crypto": "^8.4.1",
|
||||
"rxjs": "^7.5.4"
|
||||
"@babel/runtime": "^7.17.8",
|
||||
"@polkadot/api": "7.15.1",
|
||||
"@polkadot/api-augment": "7.15.1",
|
||||
"@polkadot/api-base": "7.15.1",
|
||||
"@polkadot/rpc-core": "7.15.1",
|
||||
"@polkadot/types": "7.15.1",
|
||||
"@polkadot/types-codec": "7.15.1",
|
||||
"@polkadot/util": "^8.7.1",
|
||||
"@polkadot/util-crypto": "^8.7.1",
|
||||
"rxjs": "^7.5.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@polkadot/api": "7.8.1",
|
||||
"@polkadot/api-augment": "7.8.1",
|
||||
"@polkadot/rpc-augment": "7.8.1",
|
||||
"@polkadot/rpc-provider": "7.8.1",
|
||||
"@polkadot/types-support": "7.8.1"
|
||||
"@polkadot/api": "7.15.1",
|
||||
"@polkadot/api-augment": "7.15.1",
|
||||
"@polkadot/rpc-augment": "7.15.1",
|
||||
"@polkadot/rpc-provider": "7.15.1",
|
||||
"@polkadot/types-support": "7.15.1"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ import type { Observable } from 'rxjs';
|
||||
import type { QueryableStorageMultiArg } from '@polkadot/api-base/types';
|
||||
import type { Option, Vec } from '@polkadot/types';
|
||||
import type { AccountId, AccountIndex, Address, Balance, BalanceLockTo212, BlockNumber, VestingSchedule } from '@polkadot/types/interfaces';
|
||||
import type { PalletBalancesBalanceLock, PalletVestingVestingInfo } from '@polkadot/types/lookup';
|
||||
import type { PalletBalancesBalanceLock, PalletBalancesReserveData, PalletVestingVestingInfo } from '@polkadot/types/lookup';
|
||||
import type { DeriveApi, DeriveBalancesAccount, DeriveBalancesAccountData, DeriveBalancesAll, DeriveBalancesAllAccountData, DeriveBalancesAllVesting } from '../types';
|
||||
|
||||
import { combineLatest, map, of, switchMap } from 'rxjs';
|
||||
@@ -14,9 +14,7 @@ import { BN, BN_ZERO, bnMax, bnMin, isFunction } from '@polkadot/util';
|
||||
|
||||
import { memo } from '../util';
|
||||
|
||||
type BalanceLocksEntry = Vec<PalletBalancesBalanceLock | BalanceLockTo212>;
|
||||
type BalanceLocks = BalanceLocksEntry[];
|
||||
type ResultBalance = [PalletVestingVestingInfo[] | null, ((PalletBalancesBalanceLock | BalanceLockTo212)[])[]];
|
||||
type ResultBalance = [PalletVestingVestingInfo[] | null, ((PalletBalancesBalanceLock | BalanceLockTo212)[])[], PalletBalancesReserveData[][]];
|
||||
type Result = [DeriveBalancesAccount, BlockNumber, ResultBalance];
|
||||
|
||||
interface AllLocked {
|
||||
@@ -86,7 +84,9 @@ function calcVesting (bestNumber: BlockNumber, shared: DeriveBalancesAllAccountD
|
||||
return {
|
||||
isVesting,
|
||||
vestedBalance,
|
||||
vestedClaimable: isVesting ? shared.vestingLocked.sub(vestingTotal.sub(vestedBalance)) : BN_ZERO,
|
||||
vestedClaimable: isVesting
|
||||
? shared.vestingLocked.sub(vestingTotal.sub(vestedBalance))
|
||||
: BN_ZERO,
|
||||
vesting: vesting
|
||||
.map(({ locked, perBlock, startingBlock }, index) => ({
|
||||
endBlock: locked.div(perBlock).iadd(startingBlock),
|
||||
@@ -100,7 +100,7 @@ function calcVesting (bestNumber: BlockNumber, shared: DeriveBalancesAllAccountD
|
||||
};
|
||||
}
|
||||
|
||||
function calcBalances (api: DeriveApi, [data, bestNumber, [vesting, allLocks]]: Result): DeriveBalancesAll {
|
||||
function calcBalances (api: DeriveApi, [data, bestNumber, [vesting, allLocks, namedReserves]]: Result): DeriveBalancesAll {
|
||||
const shared = calcShared(api, bestNumber, data, allLocks[0]);
|
||||
|
||||
return {
|
||||
@@ -110,7 +110,8 @@ function calcBalances (api: DeriveApi, [data, bestNumber, [vesting, allLocks]]:
|
||||
accountNonce: data.accountNonce,
|
||||
additional: allLocks
|
||||
.filter((_, index) => index !== 0)
|
||||
.map((l, index) => calcShared(api, bestNumber, data.additional[index], l))
|
||||
.map((l, index) => calcShared(api, bestNumber, data.additional[index], l)),
|
||||
namedReserves
|
||||
};
|
||||
}
|
||||
|
||||
@@ -133,7 +134,8 @@ function queryOld (api: DeriveApi, accountId: AccountId): Observable<ResultBalan
|
||||
vestingNew
|
||||
? [vestingNew]
|
||||
: null,
|
||||
[locks]
|
||||
[locks],
|
||||
[]
|
||||
];
|
||||
})
|
||||
);
|
||||
@@ -141,33 +143,58 @@ function queryOld (api: DeriveApi, accountId: AccountId): Observable<ResultBalan
|
||||
|
||||
const isNonNullable = <T>(nullable: T): nullable is NonNullable<T> => !!nullable;
|
||||
|
||||
function createCalls (accountId: AccountId, calls: unknown[]): [boolean[], QueryableStorageMultiArg<'rxjs'>[]] {
|
||||
return [
|
||||
calls.map((c) => !c),
|
||||
calls
|
||||
.filter(isNonNullable)
|
||||
.map((c) => [c, accountId] as unknown as QueryableStorageMultiArg<'rxjs'>)
|
||||
];
|
||||
}
|
||||
|
||||
// current (balances, vesting)
|
||||
function queryCurrent (api: DeriveApi, accountId: AccountId, balanceInstances: string[] = ['balances']): Observable<ResultBalance> {
|
||||
const calls = balanceInstances.map((m): DeriveApi['query']['balances']['locks'] | undefined =>
|
||||
(api.derive as DeriveCustomLocks)[m]?.customLocks || api.query[m as 'balances']?.locks
|
||||
const [lockEmpty, lockQueries] = createCalls(
|
||||
accountId,
|
||||
balanceInstances.map((m): DeriveApi['query']['balances']['locks'] | undefined =>
|
||||
(api.derive as DeriveCustomLocks)[m]?.customLocks || api.query[m as 'balances']?.locks
|
||||
)
|
||||
);
|
||||
const [reserveEmpty, reserveQueries] = createCalls(
|
||||
accountId,
|
||||
balanceInstances.map((m): DeriveApi['query']['balances']['reserves'] | undefined =>
|
||||
api.query[m as 'balances']?.reserves
|
||||
)
|
||||
);
|
||||
const lockEmpty = calls.map((c) => !c);
|
||||
const queries = calls.filter(isNonNullable).map((c): QueryableStorageMultiArg<'rxjs'> => [c, accountId]);
|
||||
|
||||
return (
|
||||
return combineLatest([
|
||||
api.query.vesting?.vesting
|
||||
? api.queryMulti<[Option<PalletVestingVestingInfo> | Option<Vec<PalletVestingVestingInfo>>, ...BalanceLocks]>([[api.query.vesting.vesting, accountId], ...queries])
|
||||
// TODO We need to check module instances here as well, not only the balances module
|
||||
: queries.length
|
||||
? api.queryMulti<[...(Vec<PalletBalancesBalanceLock>)[]]>(queries).pipe(
|
||||
map((r): [Option<PalletVestingVestingInfo>, ...BalanceLocks] => [api.registry.createType('Option<VestingInfo>'), ...r])
|
||||
)
|
||||
: of([api.registry.createType('Option<VestingInfo>')] as [Option<PalletVestingVestingInfo>])
|
||||
).pipe(
|
||||
map(([opt, ...locks]): ResultBalance => {
|
||||
let offset = -1;
|
||||
? api.query.vesting.vesting(accountId)
|
||||
: of(api.registry.createType('Option<VestingInfo>')),
|
||||
lockQueries.length
|
||||
? api.queryMulti<[...(Vec<PalletBalancesBalanceLock>)[]]>(lockQueries)
|
||||
: of([] as Vec<PalletBalancesBalanceLock>[]),
|
||||
reserveQueries.length
|
||||
? api.queryMulti<[...(Vec<PalletBalancesReserveData>)[]]>(reserveQueries)
|
||||
: of([] as Vec<PalletBalancesReserveData>[])
|
||||
]).pipe(
|
||||
map(([opt, locks, reserves]): ResultBalance => {
|
||||
let offsetLock = -1;
|
||||
let offsetReserve = -1;
|
||||
const vesting = opt.unwrapOr(null);
|
||||
|
||||
return [
|
||||
vesting
|
||||
? Array.isArray(vesting) ? vesting : [vesting]
|
||||
? Array.isArray(vesting)
|
||||
? vesting
|
||||
: [vesting as PalletVestingVestingInfo]
|
||||
: null,
|
||||
lockEmpty.map((e) => e ? api.registry.createType<Vec<PalletBalancesBalanceLock>>('Vec<BalanceLock>') : locks[++offset])
|
||||
lockEmpty.map((e) =>
|
||||
e ? api.registry.createType<Vec<PalletBalancesBalanceLock>>('Vec<BalanceLock>') : locks[++offsetLock]
|
||||
),
|
||||
reserveEmpty.map((e) =>
|
||||
e ? api.registry.createType<Vec<PalletBalancesReserveData>>('Vec<PalletBalancesReserveData>') : reserves[++offsetReserve]
|
||||
)
|
||||
];
|
||||
})
|
||||
);
|
||||
@@ -202,7 +229,7 @@ export function all (instanceId: string, api: DeriveApi): (address: AccountIndex
|
||||
? queryCurrent(api, account.accountId, balanceInstances)
|
||||
: queryOld(api, account.accountId)
|
||||
])
|
||||
: of([account, api.registry.createType('BlockNumber'), [null, []]])
|
||||
: of([account, api.registry.createType('BlockNumber'), [null, [], []]])
|
||||
)
|
||||
),
|
||||
map((result): DeriveBalancesAll => calcBalances(api, result))
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
import type { AccountId, Balance, BalanceLockTo212, Index } from '@polkadot/types/interfaces';
|
||||
import type { PalletBalancesBalanceLock } from '@polkadot/types/lookup';
|
||||
import type { PalletBalancesBalanceLock, PalletBalancesReserveData } from '@polkadot/types/lookup';
|
||||
import type { BN } from '@polkadot/util';
|
||||
|
||||
export interface DeriveBalancesAccountData {
|
||||
@@ -44,6 +44,7 @@ export interface DeriveBalancesAllVesting {
|
||||
|
||||
export interface DeriveBalancesAll extends DeriveBalancesAccount, DeriveBalancesAllAccountData, DeriveBalancesAllVesting {
|
||||
additional: DeriveBalancesAllAccountData[];
|
||||
namedReserves: PalletBalancesReserveData[][];
|
||||
}
|
||||
|
||||
export type DeriveBalancesMap = Record<string, DeriveBalancesAll>;
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
// Copyright 2017-2022 @polkadot/api-derive authors & contributors
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
import type { Observable } from 'rxjs';
|
||||
import type { AnyNumber } from '@polkadot/types/types';
|
||||
import type { SignedBlockExtended } from '../type/types';
|
||||
import type { DeriveApi } from '../types';
|
||||
|
||||
import { switchMap } from 'rxjs';
|
||||
|
||||
import { memo } from '../util';
|
||||
|
||||
export function getBlockByNumber (instanceId: string, api: DeriveApi): (blockNumber: AnyNumber) => Observable<SignedBlockExtended | undefined> {
|
||||
return memo(instanceId, (blockNumber: AnyNumber): Observable<SignedBlockExtended | undefined> =>
|
||||
api.rpc.chain.getBlockHash(blockNumber).pipe(
|
||||
switchMap((h) => api.derive.chain.getBlock(h))
|
||||
)
|
||||
);
|
||||
}
|
||||
@@ -6,5 +6,6 @@ export * from './bestNumberFinalized';
|
||||
export * from './bestNumberLag';
|
||||
export * from './getHeader';
|
||||
export * from './getBlock';
|
||||
export * from './getBlockByNumber';
|
||||
export * from './subscribeNewBlocks';
|
||||
export * from './subscribeNewHeads';
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
import type { Observable } from 'rxjs';
|
||||
import type { Option } from '@polkadot/types';
|
||||
import type { Option, u32 } from '@polkadot/types';
|
||||
import type { PolkadotRuntimeCommonCrowdloanFundInfo } from '@polkadot/types/lookup';
|
||||
import type { BN } from '@polkadot/util';
|
||||
import type { DeriveApi } from '../types';
|
||||
@@ -14,12 +14,20 @@ import { blake2AsU8a } from '@polkadot/util-crypto';
|
||||
|
||||
import { memo } from '../util';
|
||||
|
||||
function createChildKey ({ trieIndex }: PolkadotRuntimeCommonCrowdloanFundInfo): string {
|
||||
interface AllInfo extends PolkadotRuntimeCommonCrowdloanFundInfo {
|
||||
// previously it was named trieIndex
|
||||
trieIndex?: u32;
|
||||
}
|
||||
|
||||
function createChildKey (info: AllInfo): string {
|
||||
return u8aToHex(
|
||||
u8aConcat(
|
||||
':child_storage:default:',
|
||||
blake2AsU8a(
|
||||
u8aConcat('crowdloan', trieIndex.toU8a())
|
||||
u8aConcat(
|
||||
'crowdloan',
|
||||
(info.fundIndex || info.trieIndex).toU8a()
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
@@ -33,4 +33,7 @@ type DeriveAllSections<AllSections> = {
|
||||
[S in keyof AllSections]: DeriveSection<AllSections[S]>
|
||||
};
|
||||
|
||||
export type ExactDerive = DeriveAllSections<typeof derive>;
|
||||
// eslint-disable-next-line @typescript-eslint/no-empty-interface
|
||||
export interface ExactDerive extends DeriveAllSections<typeof derive> {
|
||||
// keep empty, allows for augmentation
|
||||
}
|
||||
|
||||
@@ -3,4 +3,4 @@
|
||||
|
||||
// Do not edit, auto-generated by @polkadot/dev
|
||||
|
||||
export const packageInfo = { name: '@polkadot/api-derive', path: 'auto', type: 'auto', version: '7.8.1' };
|
||||
export const packageInfo = { name: '@polkadot/api-derive', path: 'auto', type: 'auto', version: '7.15.1' };
|
||||
|
||||
@@ -5,7 +5,7 @@ import type { Observable } from 'rxjs';
|
||||
import type { AccountId, EraIndex } from '@polkadot/types/interfaces';
|
||||
import type { PalletStakingStakingLedger } from '@polkadot/types/lookup';
|
||||
import type { BN } from '@polkadot/util';
|
||||
import type { DeriveApi, DeriveEraPoints, DeriveEraPrefs, DeriveEraRewards, DeriveEraValPrefs, DeriveStakerExposure, DeriveStakerReward, DeriveStakerRewardValidator } from '../types';
|
||||
import type { DeriveApi, DeriveEraPoints, DeriveEraPrefs, DeriveEraRewards, DeriveEraValPoints, DeriveEraValPrefs, DeriveStakerExposure, DeriveStakerReward, DeriveStakerRewardValidator } from '../types';
|
||||
import type { DeriveStakingQuery } from './types';
|
||||
|
||||
import { combineLatest, map, of, switchMap } from 'rxjs';
|
||||
@@ -18,7 +18,7 @@ type ErasResult = [DeriveEraPoints[], DeriveEraPrefs[], DeriveEraRewards[]];
|
||||
|
||||
function parseRewards (api: DeriveApi, stashId: AccountId, [erasPoints, erasPrefs, erasRewards]: ErasResult, exposures: DeriveStakerExposure[]): DeriveStakerReward[] {
|
||||
return exposures.map(({ era, isEmpty, isValidator, nominating, validators: eraValidators }): DeriveStakerReward => {
|
||||
const { eraPoints, validators: allValPoints } = erasPoints.find((p) => p.era.eq(era)) || { eraPoints: BN_ZERO, validators: {} };
|
||||
const { eraPoints, validators: allValPoints } = erasPoints.find((p) => p.era.eq(era)) || { eraPoints: BN_ZERO, validators: {} as DeriveEraValPoints };
|
||||
const { eraReward } = erasRewards.find((r) => r.era.eq(era)) || { eraReward: api.registry.createType('Balance') };
|
||||
const { validators: allValPrefs } = erasPrefs.find((p) => p.era.eq(era)) || { validators: {} as DeriveEraValPrefs };
|
||||
const validators: Record<string, DeriveStakerRewardValidator> = {};
|
||||
|
||||
@@ -7,12 +7,40 @@ import type { EraIndex } from '@polkadot/types/interfaces';
|
||||
import type { ExactDerive } from '../derive';
|
||||
import type { DeriveApi } from '../types';
|
||||
|
||||
import { combineLatest, of, switchMap } from 'rxjs';
|
||||
import { BehaviorSubject, combineLatest, map, of, switchMap, tap, toArray } from 'rxjs';
|
||||
|
||||
import { arrayChunk, arrayFlatten } from '@polkadot/util';
|
||||
|
||||
import { memo } from '../util';
|
||||
|
||||
type ApplyReturn<T extends keyof ExactDerive['staking']> = ReturnType<ExactDerive['staking'][T]>;
|
||||
|
||||
// only retrieve a maximum of 14 eras (84 / 6) at a time
|
||||
// (This is not empirically calculated. Rather smaller sizes take longer
|
||||
// time due to the serial nature, large sizes may tie up the RPCs)
|
||||
const ERA_CHUNK_SIZE = 14;
|
||||
|
||||
function chunkEras <T> (eras: EraIndex[], fn: (eras: EraIndex[]) => Observable<T[]>): Observable<T[]> {
|
||||
const chunked = arrayChunk(eras, ERA_CHUNK_SIZE);
|
||||
let index = 0;
|
||||
const startSubject = new BehaviorSubject<EraIndex[]>(chunked[index]);
|
||||
|
||||
return startSubject.pipe(
|
||||
switchMap(fn),
|
||||
tap((): void => {
|
||||
setTimeout((): void => {
|
||||
index++;
|
||||
|
||||
index === chunked.length
|
||||
? startSubject.complete()
|
||||
: startSubject.next(chunked[index]);
|
||||
}, 0);
|
||||
}),
|
||||
toArray(),
|
||||
map(arrayFlatten)
|
||||
);
|
||||
}
|
||||
|
||||
export function filterEras <T extends { era: EraIndex }> (eras: EraIndex[], list: T[]): EraIndex[] {
|
||||
return eras.filter((e) => !list.some(({ era }) => e.eq(era)));
|
||||
}
|
||||
@@ -53,9 +81,12 @@ export function combineEras <F extends '_eraExposure' | '_eraPrefs' | '_eraSlash
|
||||
// Cannot quite get the typing right, but it is right in the code
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
||||
memo(instanceId, (eras: EraIndex[], withActive: boolean) =>
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
||||
eras.length
|
||||
? combineLatest(eras.map((e) => api.derive.staking[fn](e, withActive)))
|
||||
: of([])
|
||||
!eras.length
|
||||
? of([])
|
||||
: chunkEras(eras, (eras) =>
|
||||
combineLatest(
|
||||
eras.map((e) => api.derive.staking[fn](e, withActive))
|
||||
)
|
||||
)
|
||||
) as any;
|
||||
}
|
||||
|
||||
+19
-19
@@ -20,29 +20,29 @@
|
||||
"./detectPackage.cjs"
|
||||
],
|
||||
"type": "module",
|
||||
"version": "7.8.1",
|
||||
"version": "7.15.1",
|
||||
"main": "index.js",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.17.2",
|
||||
"@polkadot/api-augment": "7.8.1",
|
||||
"@polkadot/api-base": "7.8.1",
|
||||
"@polkadot/api-derive": "7.8.1",
|
||||
"@polkadot/keyring": "^8.4.1",
|
||||
"@polkadot/rpc-augment": "7.8.1",
|
||||
"@polkadot/rpc-core": "7.8.1",
|
||||
"@polkadot/rpc-provider": "7.8.1",
|
||||
"@polkadot/types": "7.8.1",
|
||||
"@polkadot/types-augment": "7.8.1",
|
||||
"@polkadot/types-codec": "7.8.1",
|
||||
"@polkadot/types-create": "7.8.1",
|
||||
"@polkadot/types-known": "7.8.1",
|
||||
"@polkadot/util": "^8.4.1",
|
||||
"@polkadot/util-crypto": "^8.4.1",
|
||||
"@babel/runtime": "^7.17.8",
|
||||
"@polkadot/api-augment": "7.15.1",
|
||||
"@polkadot/api-base": "7.15.1",
|
||||
"@polkadot/api-derive": "7.15.1",
|
||||
"@polkadot/keyring": "^8.7.1",
|
||||
"@polkadot/rpc-augment": "7.15.1",
|
||||
"@polkadot/rpc-core": "7.15.1",
|
||||
"@polkadot/rpc-provider": "7.15.1",
|
||||
"@polkadot/types": "7.15.1",
|
||||
"@polkadot/types-augment": "7.15.1",
|
||||
"@polkadot/types-codec": "7.15.1",
|
||||
"@polkadot/types-create": "7.15.1",
|
||||
"@polkadot/types-known": "7.15.1",
|
||||
"@polkadot/util": "^8.7.1",
|
||||
"@polkadot/util-crypto": "^8.7.1",
|
||||
"eventemitter3": "^4.0.7",
|
||||
"rxjs": "^7.5.4"
|
||||
"rxjs": "^7.5.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@polkadot/api-augment": "7.8.1",
|
||||
"@polkadot/types-support": "7.8.1"
|
||||
"@polkadot/api-augment": "7.15.1",
|
||||
"@polkadot/types-support": "7.15.1"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -543,7 +543,7 @@ export abstract class Decorate<ApiType extends ApiTypes> extends Events {
|
||||
|
||||
decorated.entriesPaged = decorateMethod(
|
||||
memo(this.#instanceId, (opts: PaginationOptions): Observable<[StorageKey, Codec][]> =>
|
||||
this._retrieveMapEntriesPaged(creator, opts)));
|
||||
this._retrieveMapEntriesPaged(creator, undefined, opts)));
|
||||
|
||||
decorated.keys = decorateMethod(
|
||||
memo(this.#instanceId, (...args: unknown[]): Observable<StorageKey[]> =>
|
||||
@@ -556,7 +556,7 @@ export abstract class Decorate<ApiType extends ApiTypes> extends Events {
|
||||
|
||||
decorated.keysPaged = decorateMethod(
|
||||
memo(this.#instanceId, (opts: PaginationOptions): Observable<StorageKey[]> =>
|
||||
this._retrieveMapKeysPaged(creator, opts)));
|
||||
this._retrieveMapKeysPaged(creator, undefined, opts)));
|
||||
}
|
||||
|
||||
if (this.supportMulti && creator.meta.type.isMap) {
|
||||
@@ -610,9 +610,17 @@ export abstract class Decorate<ApiType extends ApiTypes> extends Events {
|
||||
memo(this.#instanceId, (...args: unknown[]): Observable<[StorageKey, Codec][]> =>
|
||||
this._retrieveMapEntries(creator, blockHash, args)));
|
||||
|
||||
decorated.entriesPaged = decorateMethod(
|
||||
memo(this.#instanceId, (opts: PaginationOptions): Observable<[StorageKey, Codec][]> =>
|
||||
this._retrieveMapEntriesPaged(creator, blockHash, opts)));
|
||||
|
||||
decorated.keys = decorateMethod(
|
||||
memo(this.#instanceId, (...args: unknown[]): Observable<StorageKey[]> =>
|
||||
this._retrieveMapKeys(creator, blockHash, args)));
|
||||
|
||||
decorated.keysPaged = decorateMethod(
|
||||
memo(this.#instanceId, (opts: PaginationOptions): Observable<StorageKey[]> =>
|
||||
this._retrieveMapKeysPaged(creator, blockHash, opts)));
|
||||
}
|
||||
|
||||
if (this.supportMulti && creator.meta.type.isMap) {
|
||||
@@ -703,13 +711,13 @@ export abstract class Decorate<ApiType extends ApiTypes> extends Events {
|
||||
);
|
||||
}
|
||||
|
||||
private _retrieveMapKeysPaged ({ iterKey, meta, method, section }: StorageEntry, opts: PaginationOptions): Observable<StorageKey[]> {
|
||||
private _retrieveMapKeysPaged ({ iterKey, meta, method, section }: StorageEntry, at: Hash | Uint8Array | string | undefined, opts: PaginationOptions): Observable<StorageKey[]> {
|
||||
assert(iterKey && meta.type.isMap, 'keys can only be retrieved on maps');
|
||||
|
||||
const headKey = iterKey(...opts.args).toHex();
|
||||
const setMeta = (key: StorageKey) => key.setMeta(meta, section, method);
|
||||
|
||||
return this._rpcCore.state.getKeysPaged(headKey, opts.pageSize, opts.startKey || headKey).pipe(
|
||||
return this._rpcCore.state.getKeysPaged(headKey, opts.pageSize, opts.startKey || headKey, at).pipe(
|
||||
map((keys) => keys.map(setMeta))
|
||||
);
|
||||
}
|
||||
@@ -732,11 +740,11 @@ export abstract class Decorate<ApiType extends ApiTypes> extends Events {
|
||||
);
|
||||
}
|
||||
|
||||
private _retrieveMapEntriesPaged (entry: StorageEntry, opts: PaginationOptions): Observable<[StorageKey, Codec][]> {
|
||||
return this._retrieveMapKeysPaged(entry, opts).pipe(
|
||||
private _retrieveMapEntriesPaged (entry: StorageEntry, at: Hash | Uint8Array | string | undefined, opts: PaginationOptions): Observable<[StorageKey, Codec][]> {
|
||||
return this._retrieveMapKeysPaged(entry, at, opts).pipe(
|
||||
switchMap((keys) =>
|
||||
keys.length
|
||||
? this._rpcCore.state.queryStorageAt(keys).pipe(
|
||||
? this._rpcCore.state.queryStorageAt(keys, at).pipe(
|
||||
map((valsArr) =>
|
||||
valsArr.map((value, index): [StorageKey, Codec] => [keys[index], value])
|
||||
)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
import type { Observable, Subscription } from 'rxjs';
|
||||
import type { Text } from '@polkadot/types';
|
||||
import type { ExtDef } from '@polkadot/types/extrinsic/signedExtensions/types';
|
||||
import type { ChainProperties, Hash, RuntimeVersion, RuntimeVersionPartial } from '@polkadot/types/interfaces';
|
||||
import type { ChainProperties, Hash, HeaderPartial, RuntimeVersion, RuntimeVersionPartial } from '@polkadot/types/interfaces';
|
||||
import type { Registry } from '@polkadot/types/types';
|
||||
import type { BN } from '@polkadot/util';
|
||||
import type { HexString } from '@polkadot/util/types';
|
||||
@@ -35,7 +35,7 @@ export abstract class Init<ApiType extends ApiTypes> extends Decorate<ApiType> {
|
||||
|
||||
#updateSub?: Subscription | null = null;
|
||||
|
||||
#waitingRegistries: Record<string, Promise<VersionedRegistry<ApiType>>> = {};
|
||||
#waitingRegistries: Record<HexString, Promise<VersionedRegistry<ApiType>>> = {};
|
||||
|
||||
constructor (options: ApiOptions, type: ApiTypes, decorateMethod: DecorateMethod<ApiType>) {
|
||||
super(options, type, decorateMethod);
|
||||
@@ -64,6 +64,8 @@ export abstract class Init<ApiType extends ApiTypes> extends Decorate<ApiType> {
|
||||
|
||||
this._rpcCore.setRegistrySwap((blockHash: Uint8Array) => this.getBlockRegistry(blockHash));
|
||||
|
||||
this._rpcCore.setResolveBlockHash((blockNumber) => firstValueFrom(this._rpcCore.chain.getBlockHash(blockNumber)));
|
||||
|
||||
if (this.hasSubscriptions) {
|
||||
this._rpcCore.provider.on('disconnected', () => this.#onProviderDisconnect());
|
||||
this._rpcCore.provider.on('error', (e: Error) => this.#onProviderError(e));
|
||||
@@ -118,6 +120,44 @@ export abstract class Init<ApiType extends ApiTypes> extends Decorate<ApiType> {
|
||||
return this._createDecorated(registry, true, null, u8aHash).decoratedApi;
|
||||
}
|
||||
|
||||
private async _createBlockRegistry (blockHash: Uint8Array, header: HeaderPartial, version: RuntimeVersionPartial): Promise<VersionedRegistry<ApiType>> {
|
||||
const registry = new TypeRegistry(blockHash);
|
||||
const metadata = new Metadata(registry,
|
||||
await firstValueFrom(this._rpcCore.state.getMetadata.raw<HexString>(header.parentHash))
|
||||
);
|
||||
|
||||
this._initRegistry(registry, this._runtimeChain as Text, version, metadata);
|
||||
|
||||
// add our new registry
|
||||
const result = { lastBlockHash: blockHash, metadata, registry, specName: version.specName, specVersion: version.specVersion };
|
||||
|
||||
this.#registries.push(result);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private _cacheBlockRegistryProgress (key: HexString, creator: () => Promise<VersionedRegistry<ApiType>>): Promise<VersionedRegistry<ApiType>> {
|
||||
// look for waiting resolves
|
||||
let waiting = this.#waitingRegistries[key];
|
||||
|
||||
if (isUndefined(waiting)) {
|
||||
// nothing waiting, construct new
|
||||
waiting = this.#waitingRegistries[key] = new Promise<VersionedRegistry<ApiType>>((resolve, reject): void => {
|
||||
creator()
|
||||
.then((registry): void => {
|
||||
delete this.#waitingRegistries[key];
|
||||
resolve(registry);
|
||||
})
|
||||
.catch((error): void => {
|
||||
delete this.#waitingRegistries[key];
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
return waiting;
|
||||
}
|
||||
|
||||
private _getBlockRegistryViaVersion (blockHash: Uint8Array, version?: RuntimeVersionPartial): VersionedRegistry<ApiType> | null {
|
||||
if (version) {
|
||||
// check for pre-existing registries. We also check specName, e.g. it
|
||||
@@ -137,7 +177,7 @@ export abstract class Init<ApiType extends ApiTypes> extends Decorate<ApiType> {
|
||||
return null;
|
||||
}
|
||||
|
||||
private async _getBlockRegistry (blockHash: Uint8Array): Promise<VersionedRegistry<ApiType>> {
|
||||
private async _getBlockRegistryViaHash (blockHash: Uint8Array): Promise<VersionedRegistry<ApiType>> {
|
||||
// ensure we have everything required
|
||||
assert(this._genesisHash && this._runtimeVersion, 'Cannot retrieve data on an uninitialized chain');
|
||||
|
||||
@@ -159,62 +199,28 @@ export abstract class Init<ApiType extends ApiTypes> extends Decorate<ApiType> {
|
||||
: await firstValueFrom(this._rpcCore.state.getRuntimeVersion.raw(header.parentHash))
|
||||
);
|
||||
|
||||
const existingViaVersion = this._getBlockRegistryViaVersion(blockHash, version);
|
||||
|
||||
if (existingViaVersion) {
|
||||
return existingViaVersion;
|
||||
}
|
||||
|
||||
// nothing has been found, construct new
|
||||
const registry = new TypeRegistry(blockHash);
|
||||
const metadata = new Metadata(registry,
|
||||
await firstValueFrom(this._rpcCore.state.getMetadata.raw<HexString>(header.parentHash))
|
||||
return (
|
||||
// try to find via version
|
||||
this._getBlockRegistryViaVersion(blockHash, version) ||
|
||||
// return new or in-flight result
|
||||
await this._cacheBlockRegistryProgress(version.toHex(), () => this._createBlockRegistry(blockHash, header, version))
|
||||
);
|
||||
|
||||
this._initRegistry(registry, this._runtimeChain as Text, version, metadata);
|
||||
|
||||
// add our new registry
|
||||
const result = { lastBlockHash: blockHash, metadata, registry, specName: version.specName, specVersion: version.specVersion };
|
||||
|
||||
this.#registries.push(result);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* @description Sets up a registry based on the block hash defined
|
||||
*/
|
||||
public async getBlockRegistry (blockHash: Uint8Array, knownVersion?: RuntimeVersion): Promise<VersionedRegistry<ApiType>> {
|
||||
const existingViaHash = this.#registries.find(({ lastBlockHash }) =>
|
||||
lastBlockHash && u8aEq(lastBlockHash, blockHash)
|
||||
return (
|
||||
// try to find via blockHash
|
||||
this.#registries.find(({ lastBlockHash }) =>
|
||||
lastBlockHash && u8aEq(lastBlockHash, blockHash)
|
||||
) ||
|
||||
// try to find via version
|
||||
this._getBlockRegistryViaVersion(blockHash, knownVersion) ||
|
||||
// return new or in-flight result
|
||||
await this._cacheBlockRegistryProgress(u8aToHex(blockHash), () => this._getBlockRegistryViaHash(blockHash))
|
||||
);
|
||||
|
||||
if (existingViaHash) {
|
||||
return existingViaHash;
|
||||
}
|
||||
|
||||
const existingViaVersion = this._getBlockRegistryViaVersion(blockHash, knownVersion);
|
||||
|
||||
if (existingViaVersion) {
|
||||
return existingViaVersion;
|
||||
}
|
||||
|
||||
const blockHashHex = u8aToHex(blockHash);
|
||||
let waiting = this.#waitingRegistries[blockHashHex];
|
||||
|
||||
if (isUndefined(waiting)) {
|
||||
waiting = this._getBlockRegistry(blockHash);
|
||||
this.#waitingRegistries[blockHashHex] = waiting;
|
||||
|
||||
// when we have resolved, remove this from the waiting list
|
||||
waiting
|
||||
.then((): void => {
|
||||
delete this.#waitingRegistries[blockHashHex];
|
||||
})
|
||||
.catch(() => undefined);
|
||||
}
|
||||
|
||||
return waiting;
|
||||
}
|
||||
|
||||
protected async _loadMeta (): Promise<boolean> {
|
||||
@@ -385,12 +391,10 @@ export abstract class Init<ApiType extends ApiTypes> extends Decorate<ApiType> {
|
||||
this.emit('connected');
|
||||
|
||||
try {
|
||||
const [hasMeta, cryptoReady] = await Promise.all([
|
||||
this._loadMeta(),
|
||||
this._options.initWasm === false
|
||||
? Promise.resolve(true)
|
||||
: cryptoWaitReady()
|
||||
]);
|
||||
const cryptoReady = this._options.initWasm === false
|
||||
? true
|
||||
: await cryptoWaitReady();
|
||||
const hasMeta = await this._loadMeta();
|
||||
|
||||
this._subscribeHealth();
|
||||
|
||||
|
||||
@@ -3,4 +3,4 @@
|
||||
|
||||
// Do not edit, auto-generated by @polkadot/dev
|
||||
|
||||
export const packageInfo = { name: '@polkadot/api', path: 'auto', type: 'auto', version: '7.8.1' };
|
||||
export const packageInfo = { name: '@polkadot/api', path: 'auto', type: 'auto', version: '7.15.1' };
|
||||
|
||||
@@ -14,7 +14,15 @@ interface Tracker<T> {
|
||||
resolve: (value: T) => void;
|
||||
}
|
||||
|
||||
// a Promise completion tracker, wrapping an isComplete variable that ensures the promise only resolves once
|
||||
type CodecReturnType<T extends (...args: unknown[]) => Observable<Codec>> =
|
||||
T extends (...args: any) => infer R
|
||||
? R extends Observable<Codec>
|
||||
? ObsInnerType<R>
|
||||
: never
|
||||
: never;
|
||||
|
||||
// a Promise completion tracker, wrapping an isComplete variable that ensures
|
||||
// that the promise only resolves once
|
||||
export function promiseTracker<T> (resolve: (value: T) => void, reject: (value: Error) => void): Tracker<T> {
|
||||
let isCompleted = false;
|
||||
|
||||
@@ -40,14 +48,13 @@ export function promiseTracker<T> (resolve: (value: T) => void, reject: (value:
|
||||
|
||||
// extract the arguments and callback params from a value array possibly containing a callback
|
||||
function extractArgs (args: unknown[], needsCallback: boolean): [unknown[], Callback<Codec> | undefined] {
|
||||
let callback: Callback<Codec> | undefined;
|
||||
const actualArgs = args.slice();
|
||||
|
||||
// If the last arg is a function, we pop it, put it into callback.
|
||||
// actualArgs will then hold the actual arguments to be passed to `method`
|
||||
if (args.length && isFunction(args[args.length - 1])) {
|
||||
callback = actualArgs.pop() as Callback<Codec>;
|
||||
}
|
||||
const callback = (args.length && isFunction(args[args.length - 1]))
|
||||
? actualArgs.pop() as Callback<Codec>
|
||||
: undefined;
|
||||
|
||||
// When we need a subscription, ensure that a valid callback is actually passed
|
||||
assert(!needsCallback || isFunction(callback), 'Expected a callback to be passed with subscriptions');
|
||||
@@ -56,7 +63,7 @@ function extractArgs (args: unknown[], needsCallback: boolean): [unknown[], Call
|
||||
}
|
||||
|
||||
// Decorate a call for a single-shot result - retrieve and then immediate unsubscribe
|
||||
function decorateCall<M extends DecorateFn<ObsInnerType<ReturnType<M>>>> (method: M, args: unknown[]): Promise<ObsInnerType<ReturnType<M>>> {
|
||||
function decorateCall<M extends DecorateFn<CodecReturnType<M>>> (method: M, args: unknown[]): Promise<CodecReturnType<M>> {
|
||||
return new Promise((resolve, reject): void => {
|
||||
// single result tracker - either reject with Error or resolve with Codec result
|
||||
const tracker = promiseTracker(resolve, reject);
|
||||
@@ -74,7 +81,7 @@ function decorateCall<M extends DecorateFn<ObsInnerType<ReturnType<M>>>> (method
|
||||
}
|
||||
|
||||
// Decorate a subscription where we have a result callback specified
|
||||
function decorateSubscribe<M extends DecorateFn<ObsInnerType<ReturnType<M>>>> (method: M, args: unknown[], resultCb: Callback<Codec>): UnsubscribePromise {
|
||||
function decorateSubscribe<M extends DecorateFn<CodecReturnType<M>>> (method: M, args: unknown[], resultCb: Callback<Codec>): UnsubscribePromise {
|
||||
return new Promise<VoidFn>((resolve, reject): void => {
|
||||
// either reject with error or resolve with unsubscribe callback
|
||||
const tracker = promiseTracker(resolve, reject);
|
||||
@@ -95,10 +102,10 @@ function decorateSubscribe<M extends DecorateFn<ObsInnerType<ReturnType<M>>>> (m
|
||||
/**
|
||||
* @description Decorate method for ApiPromise, where the results are converted to the Promise equivalent
|
||||
*/
|
||||
export function toPromiseMethod<M extends DecorateFn<ObsInnerType<ReturnType<M>>>> (method: M, options?: DecorateMethodOptions): StorageEntryPromiseOverloads {
|
||||
export function toPromiseMethod<M extends DecorateFn<CodecReturnType<M>>> (method: M, options?: DecorateMethodOptions): StorageEntryPromiseOverloads {
|
||||
const needsCallback = !!(options && options.methodName && options.methodName.includes('subscribe'));
|
||||
|
||||
return function (...args: unknown[]): Promise<ObsInnerType<ReturnType<M>>> | UnsubscribePromise {
|
||||
return function (...args: unknown[]): Promise<CodecReturnType<M>> | UnsubscribePromise {
|
||||
const [actualArgs, resultCb] = extractArgs(args, needsCallback);
|
||||
|
||||
return resultCb
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
/* eslint-disable no-dupe-class-members */
|
||||
|
||||
import type { Observable, OperatorFunction } from 'rxjs';
|
||||
import type { Observable } from 'rxjs';
|
||||
import type { Address, ApplyExtrinsicResult, Call, Extrinsic, ExtrinsicEra, ExtrinsicStatus, Hash, Header, Index, RuntimeDispatchInfo, SignerPayload } from '@polkadot/types/interfaces';
|
||||
import type { Callback, Codec, Constructor, IKeyringPair, ISubmittableResult, SignatureOptions } from '@polkadot/types/types';
|
||||
import type { Registry } from '@polkadot/types-codec/types';
|
||||
@@ -24,6 +24,11 @@ interface SubmittableOptions<ApiType extends ApiTypes> {
|
||||
decorateMethod: ApiBase<ApiType>['_decorateMethod'];
|
||||
}
|
||||
|
||||
interface UpdateInfo {
|
||||
options: SignatureOptions;
|
||||
updateId: number;
|
||||
}
|
||||
|
||||
const identity = <T> (input: T): T => input;
|
||||
|
||||
function makeEraOptions (api: ApiInterfaceRx, registry: Registry, partialOptions: Partial<SignerOptions>, { header, mortalLength, nonce }: { header: Header | null; mortalLength: number; nonce: Index }): SignatureOptions {
|
||||
@@ -174,7 +179,7 @@ export function createClass <ApiType extends ApiTypes> ({ api, apiType, decorate
|
||||
return decorateMethod(
|
||||
(): Observable<this> =>
|
||||
this.#observeSign(account, partialOptions).pipe(
|
||||
mapTo<number | undefined, this>(this)
|
||||
mapTo(this)
|
||||
)
|
||||
)();
|
||||
}
|
||||
@@ -197,10 +202,10 @@ export function createClass <ApiType extends ApiTypes> ({ api, apiType, decorate
|
||||
return decorateMethod(
|
||||
(): Observable<Codec> => (
|
||||
this.#observeSign(account, options).pipe(
|
||||
switchMap((updateId: number | undefined): Observable<ISubmittableResult> | Observable<Hash> =>
|
||||
switchMap((info): Observable<ISubmittableResult> | Observable<Hash> =>
|
||||
isSubscription
|
||||
? this.#observeSubscribe(updateId)
|
||||
: this.#observeSend(updateId)
|
||||
? this.#observeSubscribe(info)
|
||||
: this.#observeSend(info)
|
||||
)
|
||||
) as Observable<Codec>) // FIXME This is wrong, SubmittableResult is _not_ a codec
|
||||
)(statusCb);
|
||||
@@ -213,23 +218,24 @@ export function createClass <ApiType extends ApiTypes> ({ api, apiType, decorate
|
||||
return this;
|
||||
}
|
||||
|
||||
#observeSign = (account: AddressOrPair, partialOptions?: Partial<SignerOptions>): Observable<number | undefined> => {
|
||||
#observeSign = (account: AddressOrPair, partialOptions?: Partial<SignerOptions>): Observable<UpdateInfo> => {
|
||||
const address = isKeyringPair(account) ? account.address : account.toString();
|
||||
const options = optionsOrNonce(partialOptions);
|
||||
let updateId: number | undefined;
|
||||
|
||||
return api.derive.tx.signingInfo(address, options.nonce, options.era).pipe(
|
||||
first(),
|
||||
mergeMap(async (signingInfo): Promise<void> => {
|
||||
mergeMap(async (signingInfo): Promise<UpdateInfo> => {
|
||||
const eraOptions = makeEraOptions(api, this.registry, options, signingInfo);
|
||||
let updateId = -1;
|
||||
|
||||
if (isKeyringPair(account)) {
|
||||
this.sign(account, eraOptions);
|
||||
} else {
|
||||
updateId = await this.#signViaSigner(address, eraOptions, signingInfo.header);
|
||||
}
|
||||
}),
|
||||
mapTo(updateId) as OperatorFunction<void, number | undefined>
|
||||
|
||||
return { options: eraOptions, updateId };
|
||||
})
|
||||
);
|
||||
};
|
||||
|
||||
@@ -263,15 +269,15 @@ export function createClass <ApiType extends ApiTypes> ({ api, apiType, decorate
|
||||
);
|
||||
};
|
||||
|
||||
#observeSend = (updateId = -1): Observable<Hash> => {
|
||||
#observeSend = (info: UpdateInfo): Observable<Hash> => {
|
||||
return api.rpc.author.submitExtrinsic(this).pipe(
|
||||
tap((hash): void => {
|
||||
this.#updateSigner(updateId, hash);
|
||||
this.#updateSigner(hash, info);
|
||||
})
|
||||
);
|
||||
};
|
||||
|
||||
#observeSubscribe = (updateId = -1): Observable<ISubmittableResult> => {
|
||||
#observeSubscribe = (info: UpdateInfo): Observable<ISubmittableResult> => {
|
||||
const txHash = this.hash;
|
||||
|
||||
return api.rpc.author.submitAndWatchExtrinsic(this).pipe(
|
||||
@@ -279,7 +285,7 @@ export function createClass <ApiType extends ApiTypes> ({ api, apiType, decorate
|
||||
this.#observeStatus(txHash, status)
|
||||
),
|
||||
tap((status): void => {
|
||||
this.#updateSigner(updateId, status);
|
||||
this.#updateSigner(status, info);
|
||||
})
|
||||
);
|
||||
};
|
||||
@@ -296,9 +302,9 @@ export function createClass <ApiType extends ApiTypes> ({ api, apiType, decorate
|
||||
})]);
|
||||
let result: SignerResult;
|
||||
|
||||
if (signer.signPayload) {
|
||||
if (isFunction(signer.signPayload)) {
|
||||
result = await signer.signPayload(payload.toPayload());
|
||||
} else if (signer.signRaw) {
|
||||
} else if (isFunction(signer.signRaw)) {
|
||||
result = await signer.signRaw(payload.toRaw());
|
||||
} else {
|
||||
throw new Error('Invalid signer interface, it should implement either signPayload or signRaw (or both)');
|
||||
@@ -312,9 +318,14 @@ export function createClass <ApiType extends ApiTypes> ({ api, apiType, decorate
|
||||
return result.id;
|
||||
};
|
||||
|
||||
#updateSigner = (updateId: number, status: Hash | ISubmittableResult): void => {
|
||||
if ((updateId !== -1) && api.signer && api.signer.update) {
|
||||
api.signer.update(updateId, status);
|
||||
#updateSigner = (status: Hash | ISubmittableResult, info?: UpdateInfo): void => {
|
||||
if (info && (info.updateId !== -1)) {
|
||||
const { options, updateId } = info;
|
||||
const signer = options.signer || api.signer;
|
||||
|
||||
if (signer && isFunction(signer.update)) {
|
||||
signer.update(updateId, status);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@@ -20,13 +20,13 @@
|
||||
"./detectPackage.cjs"
|
||||
],
|
||||
"type": "module",
|
||||
"version": "7.8.1",
|
||||
"version": "7.15.1",
|
||||
"main": "index.js",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.17.2",
|
||||
"@polkadot/rpc-core": "7.8.1",
|
||||
"@polkadot/types": "7.8.1",
|
||||
"@polkadot/types-codec": "7.8.1",
|
||||
"@polkadot/util": "^8.4.1"
|
||||
"@babel/runtime": "^7.17.8",
|
||||
"@polkadot/rpc-core": "7.15.1",
|
||||
"@polkadot/types": "7.15.1",
|
||||
"@polkadot/types-codec": "7.15.1",
|
||||
"@polkadot/util": "^8.7.1"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ import type { BlockHash } from '@polkadot/types/interfaces/chain';
|
||||
import type { PrefixedStorageKey } from '@polkadot/types/interfaces/childstate';
|
||||
import type { AuthorityId } from '@polkadot/types/interfaces/consensus';
|
||||
import type { CodeUploadRequest, CodeUploadResult, ContractCallRequest, ContractExecResult, ContractInstantiateResult, InstantiateRequest } from '@polkadot/types/interfaces/contracts';
|
||||
import type { BlockStats } from '@polkadot/types/interfaces/dev';
|
||||
import type { CreatedBlock } from '@polkadot/types/interfaces/engine';
|
||||
import type { EthAccount, EthCallRequest, EthFilter, EthFilterChanges, EthLog, EthReceipt, EthRichBlock, EthSubKind, EthSubParams, EthSyncStatus, EthTransaction, EthTransactionRequest, EthWork } from '@polkadot/types/interfaces/eth';
|
||||
import type { Extrinsic } from '@polkadot/types/interfaces/extrinsics';
|
||||
@@ -21,7 +22,7 @@ import type { StorageKind } from '@polkadot/types/interfaces/offchain';
|
||||
import type { FeeDetails, RuntimeDispatchInfo } from '@polkadot/types/interfaces/payment';
|
||||
import type { RpcMethods } from '@polkadot/types/interfaces/rpc';
|
||||
import type { AccountId, BlockNumber, H160, H256, H64, Hash, Header, Index, Justification, KeyValue, SignedBlock, StorageData } from '@polkadot/types/interfaces/runtime';
|
||||
import type { ReadProof, RuntimeVersion, TraceBlockResponse } from '@polkadot/types/interfaces/state';
|
||||
import type { MigrationStatusResult, ReadProof, RuntimeVersion, TraceBlockResponse } from '@polkadot/types/interfaces/state';
|
||||
import type { ApplyExtrinsicResult, ChainProperties, ChainType, Health, NetworkState, NodeRole, PeerInfo, SyncState } from '@polkadot/types/interfaces/system';
|
||||
import type { IExtrinsic, Observable } from '@polkadot/types/types';
|
||||
|
||||
@@ -155,6 +156,12 @@ declare module '@polkadot/rpc-core/types/jsonrpc' {
|
||||
**/
|
||||
uploadCode: AugmentedRpc<(uploadRequest: CodeUploadRequest | { origin?: any; code?: any; storageDepositLimit?: any } | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<CodeUploadResult>>;
|
||||
};
|
||||
dev: {
|
||||
/**
|
||||
* Reexecute the specified `block_hash` and gather statistics while doing so
|
||||
**/
|
||||
getBlockStats: AugmentedRpc<(at: Hash | string | Uint8Array) => Observable<Option<BlockStats>>>;
|
||||
};
|
||||
engine: {
|
||||
/**
|
||||
* Instructs the manual-seal authorship task to create a new block
|
||||
@@ -333,9 +340,9 @@ declare module '@polkadot/rpc-core/types/jsonrpc' {
|
||||
};
|
||||
grandpa: {
|
||||
/**
|
||||
* Prove finality for the range (begin; end] hash.
|
||||
* Prove finality for the given block number, returning the Justification for the last block in the set.
|
||||
**/
|
||||
proveFinality: AugmentedRpc<(begin: BlockHash | string | Uint8Array, end: BlockHash | string | Uint8Array, authoritiesSetId?: u64 | AnyNumber | Uint8Array) => Observable<Option<EncodedFinalityProofs>>>;
|
||||
proveFinality: AugmentedRpc<(blockNumber: BlockNumber | AnyNumber | Uint8Array) => Observable<Option<EncodedFinalityProofs>>>;
|
||||
/**
|
||||
* Returns the state of the current best round state as well as the ongoing background rounds
|
||||
**/
|
||||
@@ -472,6 +479,10 @@ declare module '@polkadot/rpc-core/types/jsonrpc' {
|
||||
* Provides a way to trace the re-execution of a single block
|
||||
**/
|
||||
traceBlock: AugmentedRpc<(block: Hash | string | Uint8Array, targets: Option<Text> | null | object | string | Uint8Array, storageKeys: Option<Text> | null | object | string | Uint8Array, methods: Option<Text> | null | object | string | Uint8Array) => Observable<TraceBlockResponse>>;
|
||||
/**
|
||||
* Check current migration state
|
||||
**/
|
||||
trieMigrationStatus: AugmentedRpc<(at?: BlockHash | string | Uint8Array) => Observable<MigrationStatusResult>>;
|
||||
};
|
||||
syncstate: {
|
||||
/**
|
||||
|
||||
@@ -3,4 +3,4 @@
|
||||
|
||||
// Do not edit, auto-generated by @polkadot/dev
|
||||
|
||||
export const packageInfo = { name: '@polkadot/rpc-augment', path: 'auto', type: 'auto', version: '7.8.1' };
|
||||
export const packageInfo = { name: '@polkadot/rpc-augment', path: 'auto', type: 'auto', version: '7.15.1' };
|
||||
|
||||
@@ -20,18 +20,18 @@
|
||||
"./detectPackage.cjs"
|
||||
],
|
||||
"type": "module",
|
||||
"version": "7.8.1",
|
||||
"version": "7.15.1",
|
||||
"main": "index.js",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.17.2",
|
||||
"@polkadot/rpc-augment": "7.8.1",
|
||||
"@polkadot/rpc-provider": "7.8.1",
|
||||
"@polkadot/types": "7.8.1",
|
||||
"@polkadot/util": "^8.4.1",
|
||||
"rxjs": "^7.5.4"
|
||||
"@babel/runtime": "^7.17.8",
|
||||
"@polkadot/rpc-augment": "7.15.1",
|
||||
"@polkadot/rpc-provider": "7.15.1",
|
||||
"@polkadot/types": "7.15.1",
|
||||
"@polkadot/util": "^8.7.1",
|
||||
"rxjs": "^7.5.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@polkadot/keyring": "^8.4.1",
|
||||
"@polkadot/rpc-augment": "7.8.1"
|
||||
"@polkadot/keyring": "^8.7.1",
|
||||
"@polkadot/rpc-augment": "7.15.1"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ import type { Observer } from 'rxjs';
|
||||
import type { ProviderInterface, ProviderInterfaceCallback } from '@polkadot/rpc-provider/types';
|
||||
import type { StorageKey, Vec } from '@polkadot/types';
|
||||
import type { Hash } from '@polkadot/types/interfaces';
|
||||
import type { AnyJson, Codec, DefinitionRpc, DefinitionRpcExt, DefinitionRpcSub, Registry } from '@polkadot/types/types';
|
||||
import type { AnyJson, AnyNumber, Codec, DefinitionRpc, DefinitionRpcExt, DefinitionRpcSub, Registry } from '@polkadot/types/types';
|
||||
import type { Memoized } from '@polkadot/util/types';
|
||||
import type { RpcInterfaceMethod } from './types';
|
||||
|
||||
@@ -85,6 +85,7 @@ export class RpcCore {
|
||||
#registryDefault: Registry;
|
||||
|
||||
#getBlockRegistry?: (blockHash: Uint8Array) => Promise<{ registry: Registry }>;
|
||||
#getBlockHash?: (blockNumber: AnyNumber) => Promise<Uint8Array>;
|
||||
|
||||
readonly #storageCache = new Map<string, string | null>();
|
||||
|
||||
@@ -146,6 +147,15 @@ export class RpcCore {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @description Sets a function to resolve block hash from block number
|
||||
*/
|
||||
public setResolveBlockHash (resolveBlockHash: (blockNumber: AnyNumber) => Promise<Uint8Array>): void {
|
||||
this.#getBlockHash = memoize(resolveBlockHash, {
|
||||
getInstanceId: () => this.#instanceId
|
||||
});
|
||||
}
|
||||
|
||||
public addUserInterfaces (userRpc: Record<string, Record<string, DefinitionRpc | DefinitionRpcSub>>): void {
|
||||
// add any extra user-defined sections
|
||||
this.sections.push(...Object.keys(userRpc).filter((k) => !this.sections.includes(k)));
|
||||
@@ -202,12 +212,18 @@ export class RpcCore {
|
||||
|
||||
// execute the RPC call, doing a registry swap for historic as applicable
|
||||
const callWithRegistry = async <T> (isScale: boolean, values: unknown[]): Promise<T> => {
|
||||
const blockHash = hashIndex === -1
|
||||
const blockId = hashIndex === -1
|
||||
? null
|
||||
: values[hashIndex] as (Uint8Array | string | null | undefined);
|
||||
: values[hashIndex];
|
||||
|
||||
const blockHash = blockId && def.params[hashIndex].type === 'BlockNumber'
|
||||
? await this.#getBlockHash?.(blockId as AnyNumber)
|
||||
: blockId as (Uint8Array | string | null | undefined);
|
||||
|
||||
const { registry } = isScale && blockHash && this.#getBlockRegistry
|
||||
? await this.#getBlockRegistry(u8aToU8a(blockHash))
|
||||
: { registry: this.#registryDefault };
|
||||
|
||||
const params = this._formatInputs(registry, null, def, values);
|
||||
|
||||
// only cache .at(<blockHash>) queries, e.g. where valid blockHash was supplied
|
||||
|
||||
@@ -3,4 +3,4 @@
|
||||
|
||||
// Do not edit, auto-generated by @polkadot/dev
|
||||
|
||||
export const packageInfo = { name: '@polkadot/rpc-core', path: 'auto', type: 'auto', version: '7.8.1' };
|
||||
export const packageInfo = { name: '@polkadot/rpc-core', path: 'auto', type: 'auto', version: '7.15.1' };
|
||||
|
||||
@@ -36,7 +36,9 @@ describe('replay', (): void => {
|
||||
const observable = rpc.system.chain();
|
||||
let a: any | undefined;
|
||||
|
||||
observable.subscribe((value?: unknown): void => { a = value; });
|
||||
observable.subscribe((value?: unknown): void => {
|
||||
a = value;
|
||||
});
|
||||
|
||||
setTimeout((): void => {
|
||||
// Subscribe again to the same observable, it should fire value immediately
|
||||
|
||||
@@ -14,7 +14,9 @@ describe('drr', (): void => {
|
||||
it('should not fire twice the same value', (done): void => {
|
||||
let count = 0;
|
||||
|
||||
const sub = of(1, 1).pipe(drr({ delay: 500 })).subscribe((): void => { ++count; });
|
||||
const sub = of(1, 1).pipe(drr({ delay: 500 })).subscribe((): void => {
|
||||
++count;
|
||||
});
|
||||
|
||||
setTimeout((): void => {
|
||||
expect(count).toBe(1);
|
||||
|
||||
@@ -4,9 +4,9 @@ Generic transport providers to handle the transport of method calls to and from
|
||||
|
||||
## Provider Selection
|
||||
|
||||
There are two flavours of the providers provided, one allowing for using HTTP as a transport mechanism, the other using WebSockets. It is generally recommended to use the [[WsProvider]] since in addition to standard calls, it allows for subscriptions where all changes to state can be pushed from the node to the client.
|
||||
There are three flavours of the providers provided, one allowing for using HTTP as a transport mechanism, the other using WebSockets, and the third one uses substrate light-client through @substrate/connect. It is generally recommended to use the [[WsProvider]] since in addition to standard calls, it allows for subscriptions where all changes to state can be pushed from the node to the client.
|
||||
|
||||
Both providers are usable (as is the API), in both browser-based and Node.js environments. Polyfills for unsupported functionality are automatically applied based on feature-detection.
|
||||
All providers are usable (as is the API), in both browser-based and Node.js environments. Polyfills for unsupported functionality are automatically applied based on feature-detection.
|
||||
|
||||
## Usage
|
||||
|
||||
@@ -39,3 +39,24 @@ const version = await provider.send('chain_getBlockHash', []);
|
||||
|
||||
console.log('latest block Hash', hash);
|
||||
```
|
||||
|
||||
@substrate/connect Initialization -
|
||||
|
||||
Instantiating a Provider for the Polkadot Relay Chain:
|
||||
```javascript
|
||||
import { ScProvider } from '@polkadot/rpc-provider';
|
||||
|
||||
const provider = new ScProvider(SupportedChains.polkadot);
|
||||
await provider.connect();
|
||||
const version = await provider.send('chain_getBlockHash', []);
|
||||
```
|
||||
|
||||
Instantiating a Provider for a Polkadot parachain:
|
||||
```javascript
|
||||
import { ScProvider } from '@polkadot/rpc-provider';
|
||||
|
||||
const polkadotProvider = new ScProvider(SupportedChains.polkadot);
|
||||
const parachainProvider = new ScProvider(parachainSpec, polkadotProvider);
|
||||
await parachainProvider.connect();
|
||||
const version = await parachainProvider.send('chain_getBlockHash', []);
|
||||
```
|
||||
|
||||
@@ -20,18 +20,19 @@
|
||||
"./detectPackage.cjs"
|
||||
],
|
||||
"type": "module",
|
||||
"version": "7.8.1",
|
||||
"version": "7.15.1",
|
||||
"main": "index.js",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.17.2",
|
||||
"@polkadot/keyring": "^8.4.1",
|
||||
"@polkadot/types": "7.8.1",
|
||||
"@polkadot/types-support": "7.8.1",
|
||||
"@polkadot/util": "^8.4.1",
|
||||
"@polkadot/util-crypto": "^8.4.1",
|
||||
"@polkadot/x-fetch": "^8.4.1",
|
||||
"@polkadot/x-global": "^8.4.1",
|
||||
"@polkadot/x-ws": "^8.4.1",
|
||||
"@babel/runtime": "^7.17.8",
|
||||
"@polkadot/keyring": "^8.7.1",
|
||||
"@polkadot/types": "7.15.1",
|
||||
"@polkadot/types-support": "7.15.1",
|
||||
"@polkadot/util": "^8.7.1",
|
||||
"@polkadot/util-crypto": "^8.7.1",
|
||||
"@polkadot/x-fetch": "^8.7.1",
|
||||
"@polkadot/x-global": "^8.7.1",
|
||||
"@polkadot/x-ws": "^8.7.1",
|
||||
"@substrate/connect": "0.7.0-alpha.0",
|
||||
"eventemitter3": "^4.0.7",
|
||||
"mock-socket": "^9.1.2",
|
||||
"nock": "^13.2.4"
|
||||
|
||||
@@ -4,3 +4,6 @@
|
||||
export { HttpProvider } from './http';
|
||||
export { packageInfo } from './packageInfo';
|
||||
export { WsProvider } from './ws';
|
||||
|
||||
// ESM-only, only export top-level when we have dual versions
|
||||
// export { ScProvider } from './substrate-connect';
|
||||
|
||||
@@ -0,0 +1,109 @@
|
||||
// Copyright 2017-2022 @polkadot/rpc-provider authors & contributors
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
import { isError } from '@polkadot/util/is/error';
|
||||
|
||||
import RpcError from './error';
|
||||
|
||||
describe('RpcError', (): void => {
|
||||
describe('constructor', (): void => {
|
||||
it('constructs an Error that is still an Error', (): void => {
|
||||
expect(
|
||||
isError(
|
||||
new RpcError()
|
||||
)
|
||||
).toEqual(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe('static', (): void => {
|
||||
it('exposes the .CODES as a static', (): void => {
|
||||
expect(
|
||||
Object.keys(RpcError.CODES)
|
||||
).not.toEqual(0);
|
||||
});
|
||||
});
|
||||
|
||||
describe('constructor properties', (): void => {
|
||||
it('sets the .message property', (): void => {
|
||||
expect(
|
||||
new RpcError('test message').message
|
||||
).toEqual('test message');
|
||||
});
|
||||
|
||||
it("sets the .message to '' when not set", (): void => {
|
||||
expect(
|
||||
new RpcError().message
|
||||
).toEqual('');
|
||||
});
|
||||
|
||||
it('sets the .code property', (): void => {
|
||||
expect(
|
||||
new RpcError('test message', 1234).code
|
||||
).toEqual(1234);
|
||||
});
|
||||
|
||||
it('sets the .code to UKNOWN when not set', (): void => {
|
||||
expect(
|
||||
new RpcError('test message').code
|
||||
).toEqual(RpcError.CODES.UNKNOWN);
|
||||
});
|
||||
|
||||
it('sets the .data property', (): void => {
|
||||
const data = 'here';
|
||||
|
||||
expect(
|
||||
new RpcError('test message', 1234, data).data
|
||||
).toEqual(data);
|
||||
});
|
||||
|
||||
it('sets the .data property to generic value', (): void => {
|
||||
const data = { custom: 'value' } as const;
|
||||
|
||||
expect(
|
||||
new RpcError('test message', 1234, data).data
|
||||
).toEqual(data);
|
||||
});
|
||||
});
|
||||
|
||||
describe('stack traces', (): void => {
|
||||
// eslint-disable-next-line @typescript-eslint/ban-types
|
||||
let captureStackTrace: (targetObject: Record<string, any>, constructorOpt?: Function | undefined) => void;
|
||||
|
||||
beforeEach((): void => {
|
||||
captureStackTrace = Error.captureStackTrace;
|
||||
|
||||
Error.captureStackTrace = function (error): void {
|
||||
Object.defineProperty(error, 'stack', {
|
||||
configurable: true,
|
||||
get: function getStack (): string {
|
||||
const value = 'some stack returned';
|
||||
|
||||
Object.defineProperty(this, 'stack', { value });
|
||||
|
||||
return value;
|
||||
}
|
||||
});
|
||||
};
|
||||
});
|
||||
|
||||
afterEach((): void => {
|
||||
Error.captureStackTrace = captureStackTrace;
|
||||
});
|
||||
|
||||
it('captures via captureStackTrace when available', (): void => {
|
||||
expect(
|
||||
new RpcError().stack
|
||||
).toEqual('some stack returned');
|
||||
});
|
||||
|
||||
it('captures via stack when captureStackTrace not available', (): void => {
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
||||
Error.captureStackTrace = null as any;
|
||||
|
||||
expect(
|
||||
new RpcError().stack.length
|
||||
).not.toEqual(0);
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,66 @@
|
||||
// Copyright 2017-2022 @polkadot/rpc-provider authors & contributors
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
import { isFunction } from '@polkadot/util/is/function';
|
||||
|
||||
import { RpcErrorInterface } from '../types';
|
||||
|
||||
const UNKNOWN = -99999;
|
||||
|
||||
function extend<Data, K extends keyof RpcError<Data>> (that: RpcError<Data>, name: K, value: RpcError<Data>[K]): void {
|
||||
Object.defineProperty(that, name, {
|
||||
configurable: true,
|
||||
enumerable: false,
|
||||
value
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @name RpcError
|
||||
* @summary Extension to the basic JS Error.
|
||||
* @description
|
||||
* The built-in JavaScript Error class is extended by adding a code to allow for Error categorization. In addition to the normal `stack`, `message`, the numeric `code` and `data` (any types) parameters are available on the object.
|
||||
* @example
|
||||
* <BR>
|
||||
*
|
||||
* ```javascript
|
||||
* const { RpcError } from '@polkadot/util');
|
||||
*
|
||||
* throw new RpcError('some message', RpcError.CODES.METHOD_NOT_FOUND); // => error.code = -32601
|
||||
* ```
|
||||
*/
|
||||
export default class RpcError<Data = never> extends Error implements RpcErrorInterface<Data> {
|
||||
public code!: number;
|
||||
|
||||
public data?: Data;
|
||||
|
||||
public override message!: string;
|
||||
|
||||
public override name!: string;
|
||||
|
||||
public override stack!: string;
|
||||
|
||||
public constructor (message = '', code: number = UNKNOWN, data?: Data) {
|
||||
super();
|
||||
|
||||
extend(this, 'message', String(message));
|
||||
extend(this, 'name', this.constructor.name);
|
||||
extend(this, 'data', data);
|
||||
extend(this, 'code', code);
|
||||
|
||||
if (isFunction(Error.captureStackTrace)) {
|
||||
Error.captureStackTrace(this, this.constructor);
|
||||
} else {
|
||||
const { stack } = new Error(message);
|
||||
|
||||
stack && extend(this, 'stack', stack);
|
||||
}
|
||||
}
|
||||
|
||||
public static CODES = {
|
||||
ASSERT: -90009,
|
||||
INVALID_JSONRPC: -99998,
|
||||
METHOD_NOT_FOUND: -32601, // Rust client
|
||||
UNKNOWN
|
||||
};
|
||||
}
|
||||
@@ -5,6 +5,8 @@ import type { JsonRpcRequest, JsonRpcResponse, JsonRpcResponseBaseError } from '
|
||||
|
||||
import { assert, isNumber, isString, isUndefined, stringify } from '@polkadot/util';
|
||||
|
||||
import RpcError from './error';
|
||||
|
||||
function formatErrorData (data?: string | number): string {
|
||||
if (isUndefined(data)) {
|
||||
return '';
|
||||
@@ -68,8 +70,9 @@ export class RpcCoder {
|
||||
private _checkError (error?: JsonRpcResponseBaseError): void {
|
||||
if (error) {
|
||||
const { code, data, message } = error;
|
||||
const fmtMessage = `${code}: ${message}${formatErrorData(data)}`;
|
||||
|
||||
throw new Error(`${code}: ${message}${formatErrorData(data)}`);
|
||||
throw new RpcError(fmtMessage, code, data);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// Copyright 2017-2022 @polkadot/rpc-provider authors & contributors
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
import type { JsonRpcResponse, ProviderInterface, ProviderInterfaceCallback, ProviderInterfaceEmitCb, ProviderInterfaceEmitted } from '../types';
|
||||
import type { JsonRpcResponse, ProviderInterface, ProviderInterfaceCallback, ProviderInterfaceEmitCb, ProviderInterfaceEmitted, ProviderStats } from '../types';
|
||||
|
||||
import { assert, logger } from '@polkadot/util';
|
||||
import { fetch } from '@polkadot/x-fetch';
|
||||
@@ -43,6 +43,8 @@ export class HttpProvider implements ProviderInterface {
|
||||
|
||||
readonly #headers: Record<string, string>;
|
||||
|
||||
readonly #stats: ProviderStats;
|
||||
|
||||
/**
|
||||
* @param {string} endpoint The endpoint url starting with http://
|
||||
*/
|
||||
@@ -52,6 +54,10 @@ export class HttpProvider implements ProviderInterface {
|
||||
this.#coder = new RpcCoder();
|
||||
this.#endpoint = endpoint;
|
||||
this.#headers = headers;
|
||||
this.#stats = {
|
||||
active: { requests: 0, subscriptions: 0 },
|
||||
total: { bytesRecv: 0, bytesSent: 0, cached: 0, requests: 0, subscriptions: 0, timeout: 0 }
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -82,6 +88,13 @@ export class HttpProvider implements ProviderInterface {
|
||||
// noop
|
||||
}
|
||||
|
||||
/**
|
||||
* @description Returns the connection stats
|
||||
*/
|
||||
public get stats (): ProviderStats {
|
||||
return this.#stats;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Whether the node is connected or not.
|
||||
* @return {boolean} true if connected
|
||||
@@ -107,6 +120,8 @@ export class HttpProvider implements ProviderInterface {
|
||||
* @summary Send HTTP POST Request with Body to configured HTTP Endpoint.
|
||||
*/
|
||||
public async send <T> (method: string, params: unknown[], isCacheable?: boolean): Promise<T> {
|
||||
this.#stats.total.requests++;
|
||||
|
||||
const body = this.#coder.encodeJson(method, params);
|
||||
let resultPromise: Promise<T> | null = isCacheable
|
||||
? this.#callCache.get(body) as Promise<T>
|
||||
@@ -118,28 +133,45 @@ export class HttpProvider implements ProviderInterface {
|
||||
if (isCacheable) {
|
||||
this.#callCache.set(body, resultPromise);
|
||||
}
|
||||
} else {
|
||||
this.#stats.total.cached++;
|
||||
}
|
||||
|
||||
return resultPromise;
|
||||
}
|
||||
|
||||
async #send <T> (body: string): Promise<T> {
|
||||
const response = await fetch(this.#endpoint, {
|
||||
body,
|
||||
headers: {
|
||||
Accept: 'application/json',
|
||||
'Content-Length': `${body.length}`,
|
||||
'Content-Type': 'application/json',
|
||||
...this.#headers
|
||||
},
|
||||
method: 'POST'
|
||||
});
|
||||
this.#stats.active.requests++;
|
||||
this.#stats.total.bytesSent += body.length;
|
||||
|
||||
assert(response.ok, () => `[${response.status}]: ${response.statusText}`);
|
||||
try {
|
||||
const response = await fetch(this.#endpoint, {
|
||||
body,
|
||||
headers: {
|
||||
Accept: 'application/json',
|
||||
'Content-Length': `${body.length}`,
|
||||
'Content-Type': 'application/json',
|
||||
...this.#headers
|
||||
},
|
||||
method: 'POST'
|
||||
});
|
||||
|
||||
const result = (await response.json()) as JsonRpcResponse;
|
||||
assert(response.ok, () => `[${response.status}]: ${response.statusText}`);
|
||||
|
||||
return this.#coder.decodeResponse(result) as T;
|
||||
const result = await response.text();
|
||||
|
||||
this.#stats.total.bytesRecv += result.length;
|
||||
|
||||
const decoded = this.#coder.decodeResponse(JSON.parse(result) as JsonRpcResponse) as T;
|
||||
|
||||
this.#stats.active.requests--;
|
||||
|
||||
return decoded;
|
||||
} catch (e) {
|
||||
this.#stats.active.requests--;
|
||||
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -3,4 +3,4 @@
|
||||
|
||||
// Do not edit, auto-generated by @polkadot/dev
|
||||
|
||||
export const packageInfo = { name: '@polkadot/rpc-provider', path: 'auto', type: 'auto', version: '7.8.1' };
|
||||
export const packageInfo = { name: '@polkadot/rpc-provider', path: 'auto', type: 'auto', version: '7.15.1' };
|
||||
|
||||
@@ -0,0 +1,347 @@
|
||||
// Copyright 2017-2022 @polkadot/rpc-provider authors & contributors
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
import { assert } from '@polkadot/util';
|
||||
|
||||
export interface SmoldotHealth {
|
||||
isSyncing: boolean
|
||||
peers: number
|
||||
shouldHavePeers: boolean
|
||||
}
|
||||
|
||||
export interface HealthChecker {
|
||||
setSendJsonRpc(sendRequest: (request: string) => void): void
|
||||
start(healthCallback: (health: SmoldotHealth) => void): void
|
||||
stop(): void
|
||||
sendJsonRpc(request: string): void
|
||||
responsePassThrough(response: string): string | null
|
||||
}
|
||||
|
||||
/*
|
||||
* Creates a new health checker.
|
||||
*
|
||||
* The role of the health checker is to report to the user the health of a smoldot chain.
|
||||
*
|
||||
* In order to use it, start by creating a health checker, and call `setSendJsonRpc` to set the
|
||||
* way to send a JSON-RPC request to a chain. The health checker is disabled by default. Use
|
||||
* `start()` in order to start the health checks. The `start()` function must be passed a callback called
|
||||
* when an update to the health of the node is available.
|
||||
*
|
||||
* In order to send a JSON-RPC request to the chain, you **must** use the `sendJsonRpc` function
|
||||
* of the health checker. The health checker rewrites the `id` of the requests it receives.
|
||||
*
|
||||
* When the chain send a JSON-RPC response, it must be passed to `responsePassThrough()`. This
|
||||
* function intercepts the responses destined to the requests that have been emitted by the health
|
||||
* checker and returns `null`. If the response doesn't concern the health checker, the response is
|
||||
* simply returned by the function.
|
||||
*
|
||||
* # How it works
|
||||
*
|
||||
* The health checker periodically calls the `system_health` JSON-RPC call in order to determine
|
||||
* the health of the chain.
|
||||
*
|
||||
* In addition to this, as long as the health check reports that `isSyncing` is `true`, the
|
||||
* health checker also maintains a subscription to new best blocks using `chain_subscribeNewHeads`.
|
||||
* Whenever a new block is notified, a health check is performed immediately in order to determine
|
||||
* whether `isSyncing` has changed to `false`.
|
||||
*
|
||||
* Thanks to this subscription, the latency of the report of the switch from `isSyncing: true` to
|
||||
* `isSyncing: false` is very low.
|
||||
*
|
||||
*/
|
||||
export function healthChecker (): HealthChecker {
|
||||
// `null` if health checker is not started.
|
||||
let checker: null | InnerChecker = null;
|
||||
let sendJsonRpc: null | ((request: string) => void) = null;
|
||||
|
||||
return {
|
||||
responsePassThrough: (jsonRpcResponse) => {
|
||||
if (checker === null) {
|
||||
return jsonRpcResponse;
|
||||
}
|
||||
|
||||
return checker.responsePassThrough(jsonRpcResponse);
|
||||
},
|
||||
sendJsonRpc: (request) => {
|
||||
assert(
|
||||
sendJsonRpc,
|
||||
'setSendJsonRpc must be called before sending requests'
|
||||
);
|
||||
|
||||
if (checker === null) {
|
||||
sendJsonRpc(request);
|
||||
} else {
|
||||
checker.sendJsonRpc(request);
|
||||
}
|
||||
},
|
||||
setSendJsonRpc: (cb) => {
|
||||
sendJsonRpc = cb;
|
||||
},
|
||||
start: (healthCallback) => {
|
||||
assert(
|
||||
checker === null,
|
||||
"Can't start the health checker multiple times in parallel"
|
||||
);
|
||||
assert(
|
||||
sendJsonRpc,
|
||||
'setSendJsonRpc must be called before starting the health checks'
|
||||
);
|
||||
checker = new InnerChecker(healthCallback, sendJsonRpc);
|
||||
checker.update(true);
|
||||
},
|
||||
stop: () => {
|
||||
if (checker === null) {
|
||||
return;
|
||||
} // Already stopped.
|
||||
|
||||
checker.destroy();
|
||||
checker = null;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
class InnerChecker {
|
||||
#healthCallback: (health: SmoldotHealth) => void;
|
||||
#currentHealthCheckId: string | null = null;
|
||||
#currentHealthTimeout: ReturnType<typeof setTimeout> | null = null;
|
||||
#currentSubunsubRequestId: string | null = null;
|
||||
#currentSubscriptionId: string | null = null;
|
||||
#requestToSmoldot: (request: string) => void;
|
||||
#isSyncing = false;
|
||||
#nextRequestId = 0;
|
||||
|
||||
constructor (
|
||||
healthCallback: (health: SmoldotHealth) => void,
|
||||
requestToSmoldot: (request: string) => void
|
||||
) {
|
||||
this.#healthCallback = healthCallback;
|
||||
this.#requestToSmoldot = requestToSmoldot;
|
||||
}
|
||||
|
||||
sendJsonRpc = (request: string): void => {
|
||||
// Replace the `id` in the request to prefix the request ID with `extern:`.
|
||||
let parsedRequest: {id: string | number};
|
||||
|
||||
try {
|
||||
parsedRequest = JSON.parse(request) as {id: string | number};
|
||||
} catch (err) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (parsedRequest.id) {
|
||||
const newId = 'extern:' + JSON.stringify(parsedRequest.id);
|
||||
|
||||
parsedRequest.id = newId;
|
||||
}
|
||||
|
||||
this.#requestToSmoldot(JSON.stringify(parsedRequest));
|
||||
};
|
||||
|
||||
responsePassThrough = (jsonRpcResponse: string): string | null => {
|
||||
let parsedResponse: {id: string, result?: SmoldotHealth, params?: { subscription: string }};
|
||||
|
||||
try {
|
||||
parsedResponse = JSON.parse(jsonRpcResponse) as {id: string, result: undefined | SmoldotHealth};
|
||||
} catch (err) {
|
||||
return jsonRpcResponse;
|
||||
}
|
||||
|
||||
// Check whether response is a response to `system_health`.
|
||||
if (parsedResponse.id && this.#currentHealthCheckId === parsedResponse.id) {
|
||||
this.#currentHealthCheckId = null;
|
||||
|
||||
// Check whether query was successful. It is possible for queries to fail for
|
||||
// various reasons, such as the client being overloaded.
|
||||
if (!parsedResponse.result) {
|
||||
this.update(false);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
this.#healthCallback(parsedResponse.result);
|
||||
this.#isSyncing = parsedResponse.result.isSyncing;
|
||||
this.update(false);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
// Check whether response is a response to the subscription or unsubscription.
|
||||
if (
|
||||
parsedResponse.id &&
|
||||
this.#currentSubunsubRequestId === parsedResponse.id
|
||||
) {
|
||||
this.#currentSubunsubRequestId = null;
|
||||
|
||||
// Check whether query was successful. It is possible for queries to fail for
|
||||
// various reasons, such as the client being overloaded.
|
||||
if (!parsedResponse.result) {
|
||||
this.update(false);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
if (this.#currentSubscriptionId) {
|
||||
this.#currentSubscriptionId = null;
|
||||
} else {
|
||||
this.#currentSubscriptionId = parsedResponse.result as unknown as string;
|
||||
}
|
||||
|
||||
this.update(false);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
// Check whether response is a notification to a subscription.
|
||||
if (
|
||||
parsedResponse.params &&
|
||||
this.#currentSubscriptionId &&
|
||||
parsedResponse.params.subscription === this.#currentSubscriptionId
|
||||
) {
|
||||
// Note that after a successful subscription, a notification containing
|
||||
// the current best block is always returned. Considering that a
|
||||
// subscription is performed in response to a health check, calling
|
||||
// `startHealthCheck()` here will lead to a second health check.
|
||||
// It might seem redundant to perform two health checks in a quick
|
||||
// succession, but doing so doesn't lead to any problem, and it is
|
||||
// actually possible for the health to have changed in between as the
|
||||
// current best block might have been updated during the subscription
|
||||
// request.
|
||||
this.update(true);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
// Response doesn't concern us.
|
||||
if (parsedResponse.id) {
|
||||
const id: string = parsedResponse.id;
|
||||
|
||||
// Need to remove the `extern:` prefix.
|
||||
assert(id.startsWith('extern:'), 'State inconsistency in health checker');
|
||||
|
||||
const newId = JSON.parse(id.slice('extern:'.length)) as string;
|
||||
|
||||
parsedResponse.id = newId;
|
||||
}
|
||||
|
||||
return JSON.stringify(parsedResponse);
|
||||
};
|
||||
|
||||
update = (startNow: boolean): void => {
|
||||
// If `startNow`, clear `#currentHealthTimeout` so that it is set below.
|
||||
if (startNow && this.#currentHealthTimeout) {
|
||||
clearTimeout(this.#currentHealthTimeout);
|
||||
this.#currentHealthTimeout = null;
|
||||
}
|
||||
|
||||
if (!this.#currentHealthTimeout) {
|
||||
const startHealthRequest = () => {
|
||||
this.#currentHealthTimeout = null;
|
||||
|
||||
// No matter what, don't start a health request if there is already one in progress.
|
||||
// This is sane to do because receiving a response to a health request calls `update()`.
|
||||
if (this.#currentHealthCheckId) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Actual request starting.
|
||||
this.#currentHealthCheckId = 'health-checker:'.concat(
|
||||
this.#nextRequestId.toString()
|
||||
);
|
||||
this.#nextRequestId += 1;
|
||||
this.#requestToSmoldot(
|
||||
JSON.stringify({
|
||||
id: this.#currentHealthCheckId,
|
||||
jsonrpc: '2.0',
|
||||
method: 'system_health',
|
||||
params: []
|
||||
})
|
||||
);
|
||||
};
|
||||
|
||||
if (startNow) {
|
||||
startHealthRequest();
|
||||
} else {
|
||||
this.#currentHealthTimeout = setTimeout(startHealthRequest, 1000);
|
||||
}
|
||||
}
|
||||
|
||||
if (
|
||||
this.#isSyncing &&
|
||||
!this.#currentSubscriptionId &&
|
||||
!this.#currentSubunsubRequestId
|
||||
) {
|
||||
this.startSubscription();
|
||||
}
|
||||
|
||||
if (
|
||||
!this.#isSyncing &&
|
||||
this.#currentSubscriptionId &&
|
||||
!this.#currentSubunsubRequestId
|
||||
) {
|
||||
this.endSubscription();
|
||||
}
|
||||
};
|
||||
|
||||
startSubscription = (): void => {
|
||||
assert(
|
||||
!this.#currentSubunsubRequestId && !this.#currentSubscriptionId,
|
||||
'Internal error in health checker'
|
||||
);
|
||||
|
||||
this.#currentSubunsubRequestId = 'health-checker:'.concat(
|
||||
this.#nextRequestId.toString()
|
||||
);
|
||||
this.#nextRequestId += 1;
|
||||
this.#requestToSmoldot(
|
||||
JSON.stringify({
|
||||
id: this.#currentSubunsubRequestId,
|
||||
jsonrpc: '2.0',
|
||||
method: 'chain_subscribeNewHeads',
|
||||
params: []
|
||||
})
|
||||
);
|
||||
};
|
||||
|
||||
endSubscription = (): void => {
|
||||
assert(
|
||||
!this.#currentSubunsubRequestId && this.#currentSubscriptionId,
|
||||
'Internal error in health checker'
|
||||
);
|
||||
|
||||
this.#currentSubunsubRequestId = 'health-checker:'.concat(
|
||||
this.#nextRequestId.toString()
|
||||
);
|
||||
this.#nextRequestId += 1;
|
||||
this.#requestToSmoldot(
|
||||
JSON.stringify({
|
||||
id: this.#currentSubunsubRequestId,
|
||||
jsonrpc: '2.0',
|
||||
method: 'chain_unsubscribeNewHeads',
|
||||
params: [this.#currentSubscriptionId]
|
||||
})
|
||||
);
|
||||
};
|
||||
|
||||
destroy = (): void => {
|
||||
if (this.#currentHealthTimeout) {
|
||||
clearTimeout(this.#currentHealthTimeout);
|
||||
this.#currentHealthTimeout = null;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
export class HealthCheckError extends Error {
|
||||
readonly #cause: unknown;
|
||||
|
||||
getCause (): unknown {
|
||||
return this.#cause;
|
||||
}
|
||||
|
||||
constructor (
|
||||
response: unknown,
|
||||
message = 'Got error response asking for system health'
|
||||
) {
|
||||
super(message);
|
||||
this.#cause = response;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,647 @@
|
||||
// Copyright 2017-2022 @polkadot/rpc-provider authors & contributors
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
/* eslint-disable sort-keys */
|
||||
/* eslint-disable promise/param-names */
|
||||
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
||||
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
||||
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
||||
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
||||
/* eslint-disable @typescript-eslint/no-unsafe-call */
|
||||
/* eslint-disable @typescript-eslint/no-unsafe-return */
|
||||
/* eslint-disable @typescript-eslint/no-unsafe-return */
|
||||
/* eslint-disable @typescript-eslint/no-empty-function */
|
||||
/* eslint-disable @typescript-eslint/no-floating-promises */
|
||||
/* eslint-disable @typescript-eslint/restrict-template-expressions */
|
||||
/* eslint-disable @typescript-eslint/ban-types */
|
||||
|
||||
import type { Chain, JsonRpcCallback } from '@substrate/connect';
|
||||
import type { HealthChecker, SmoldotHealth } from './Health';
|
||||
import type { ScProviderClass } from './ScProvider';
|
||||
|
||||
import { jest } from '@jest/globals';
|
||||
|
||||
const wait = (ms: number) => new Promise((res) => setTimeout(res, ms));
|
||||
|
||||
type MockedHealthChecker = HealthChecker & {
|
||||
_isActive: () => boolean
|
||||
_triggerHealthUpdate: (update: SmoldotHealth) => void
|
||||
}
|
||||
|
||||
const healthCheckerMock = (): MockedHealthChecker => {
|
||||
let cb: (health: SmoldotHealth) => void = () => {};
|
||||
|
||||
let sendJsonRpc: (request: string) => void = () => {};
|
||||
|
||||
let isActive = false;
|
||||
|
||||
return {
|
||||
setSendJsonRpc: (cb) => {
|
||||
sendJsonRpc = cb;
|
||||
},
|
||||
start: (x) => {
|
||||
isActive = true;
|
||||
cb = x;
|
||||
},
|
||||
stop: () => {
|
||||
isActive = false;
|
||||
},
|
||||
sendJsonRpc: (...args) => sendJsonRpc(...args),
|
||||
responsePassThrough: (response) => response,
|
||||
_isActive: () => isActive,
|
||||
_triggerHealthUpdate: (update: SmoldotHealth) => {
|
||||
cb(update);
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
const healthCheckerFactory = () => {
|
||||
const _healthCheckers: MockedHealthChecker[] = [];
|
||||
|
||||
return {
|
||||
healthChecker: () => {
|
||||
const result = healthCheckerMock();
|
||||
|
||||
_healthCheckers.push(result);
|
||||
|
||||
return result;
|
||||
},
|
||||
_healthCheckers,
|
||||
_latestHealthChecker: () => _healthCheckers.slice(-1)[0]
|
||||
};
|
||||
};
|
||||
|
||||
jest.mock('./Health', () => healthCheckerFactory());
|
||||
|
||||
type MockChain = Chain & {
|
||||
_spec: () => string
|
||||
_recevedRequests: () => string[]
|
||||
_isTerminated: () => boolean
|
||||
_triggerCallback: (response: string | {}) => void
|
||||
_setTerminateInterceptor: (fn: () => void) => void
|
||||
_setSendJsonRpcInterceptor: (fn: (rpc: string) => void) => void
|
||||
_getLatestRequest: () => string
|
||||
}
|
||||
|
||||
const getFakeChain = (spec: string, callback: JsonRpcCallback): MockChain => {
|
||||
const _receivedRequests: string[] = [];
|
||||
let _isTerminated = false;
|
||||
|
||||
let terminateInterceptor: Function = Function.prototype;
|
||||
let sendJsonRpcInterceptor: Function = Function.prototype;
|
||||
|
||||
return {
|
||||
_spec: () => spec,
|
||||
_recevedRequests: () => _receivedRequests,
|
||||
_isTerminated: () => _isTerminated,
|
||||
_triggerCallback: (response) => {
|
||||
callback(
|
||||
typeof response === 'string' ? response : JSON.stringify(response)
|
||||
);
|
||||
},
|
||||
_setSendJsonRpcInterceptor: (fn) => {
|
||||
sendJsonRpcInterceptor = fn;
|
||||
},
|
||||
_setTerminateInterceptor: (fn) => {
|
||||
terminateInterceptor = fn;
|
||||
},
|
||||
sendJsonRpc: (rpc) => {
|
||||
sendJsonRpcInterceptor(rpc);
|
||||
_receivedRequests.push(rpc);
|
||||
},
|
||||
remove: () => {
|
||||
terminateInterceptor();
|
||||
_isTerminated = true;
|
||||
},
|
||||
_getLatestRequest: () => _receivedRequests[_receivedRequests.length - 1]
|
||||
};
|
||||
};
|
||||
|
||||
const getFakeClient = () => {
|
||||
const chains: MockChain[] = [];
|
||||
let addChainInterceptor: Promise<void> = Promise.resolve();
|
||||
let addWellKnownChainInterceptor: Promise<void> = Promise.resolve();
|
||||
|
||||
return {
|
||||
_chains: () => chains,
|
||||
_setAddChainInterceptor: (interceptor: Promise<void>) => {
|
||||
addChainInterceptor = interceptor;
|
||||
},
|
||||
_setAddWellKnownChainInterceptor: (interceptor: Promise<void>) => {
|
||||
addWellKnownChainInterceptor = interceptor;
|
||||
},
|
||||
addChain: (chainSpec: string, cb: JsonRpcCallback): Promise<MockChain> =>
|
||||
addChainInterceptor.then(() => {
|
||||
const result = getFakeChain(chainSpec, cb);
|
||||
|
||||
chains.push(result);
|
||||
|
||||
return result;
|
||||
}),
|
||||
addWellKnownChain: (
|
||||
wellKnownChain: string,
|
||||
cb: JsonRpcCallback
|
||||
): Promise<MockChain> =>
|
||||
addWellKnownChainInterceptor.then(() => {
|
||||
const result = getFakeChain(wellKnownChain, cb);
|
||||
|
||||
chains.push(result);
|
||||
|
||||
return result;
|
||||
})
|
||||
};
|
||||
};
|
||||
|
||||
enum WellKnownChain {
|
||||
polkadot = 'polkadot',
|
||||
ksmcc3 = 'ksmcc3',
|
||||
rococo_v2_1 = 'rococo_v2_1',
|
||||
westend2 = 'westend2'
|
||||
}
|
||||
|
||||
const connectorFactory = () => {
|
||||
const clients: ReturnType<typeof getFakeClient>[] = [];
|
||||
const latestClient = () => clients[clients.length - 1];
|
||||
|
||||
return {
|
||||
WellKnownChain,
|
||||
createScClient: () => {
|
||||
const result = getFakeClient();
|
||||
|
||||
clients.push(result);
|
||||
|
||||
return result;
|
||||
},
|
||||
_clients: () => clients,
|
||||
latestClient,
|
||||
latestChain: () =>
|
||||
latestClient()._chains()[latestClient()._chains().length - 1]
|
||||
};
|
||||
};
|
||||
|
||||
jest.mock('@substrate/connect', () => connectorFactory());
|
||||
|
||||
let ScProvider: ScProviderClass;
|
||||
let mockedConnector: ReturnType<typeof connectorFactory>;
|
||||
let mockedHealthChecker: ReturnType<typeof healthCheckerFactory>;
|
||||
const getCurrentHealthChecker = () => mockedHealthChecker._latestHealthChecker();
|
||||
|
||||
const setChainSyncyingStatus = (isSyncing: boolean) => {
|
||||
getCurrentHealthChecker()._triggerHealthUpdate({
|
||||
isSyncing,
|
||||
peers: 1,
|
||||
shouldHavePeers: true
|
||||
});
|
||||
};
|
||||
|
||||
beforeAll(async () => {
|
||||
({ ScProvider } = await import('./ScProvider'));
|
||||
mockedConnector = (await import(
|
||||
'@substrate/connect'
|
||||
)) as unknown as ReturnType<typeof connectorFactory>;
|
||||
mockedHealthChecker = await (import('./Health') as any);
|
||||
});
|
||||
|
||||
describe('ScProvider', () => {
|
||||
describe('on', () => {
|
||||
it('emits `connected` as soon as the chain is not syncing', async () => {
|
||||
const provider = new ScProvider('');
|
||||
|
||||
await provider.connect();
|
||||
|
||||
const onConnected = jest.fn();
|
||||
|
||||
provider.on('connected', onConnected);
|
||||
|
||||
expect(onConnected).not.toHaveBeenCalled();
|
||||
setChainSyncyingStatus(false);
|
||||
expect(onConnected).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('stops receiving notifications after unsubscribing', async () => {
|
||||
const provider = new ScProvider('');
|
||||
|
||||
await provider.connect();
|
||||
|
||||
const onConnected = jest.fn();
|
||||
|
||||
provider.on('connected', onConnected)();
|
||||
expect(onConnected).not.toHaveBeenCalled();
|
||||
|
||||
setChainSyncyingStatus(false);
|
||||
expect(onConnected).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('synchronously emits connected if the Provider is already `connected`', async () => {
|
||||
const provider = new ScProvider('');
|
||||
|
||||
await provider.connect();
|
||||
|
||||
setChainSyncyingStatus(false);
|
||||
|
||||
const onConnected = jest.fn();
|
||||
|
||||
provider.on('connected', onConnected);
|
||||
expect(onConnected).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('emits `disconnected` once the chain goes back to syncing', async () => {
|
||||
const provider = new ScProvider('');
|
||||
|
||||
await provider.connect();
|
||||
|
||||
setChainSyncyingStatus(false);
|
||||
|
||||
const onConnected = jest.fn();
|
||||
|
||||
provider.on('connected', onConnected);
|
||||
const onDisconnected = jest.fn();
|
||||
|
||||
provider.on('disconnected', onDisconnected);
|
||||
|
||||
expect(onConnected).toHaveBeenCalled();
|
||||
expect(onDisconnected).not.toHaveBeenCalled();
|
||||
|
||||
onConnected.mockRestore();
|
||||
setChainSyncyingStatus(true);
|
||||
|
||||
expect(onConnected).not.toHaveBeenCalled();
|
||||
expect(onDisconnected).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
|
||||
describe('hasSubscriptions', () => {
|
||||
it('supports subscriptions', async () => {
|
||||
const provider = new ScProvider('');
|
||||
|
||||
await provider.connect();
|
||||
|
||||
expect(provider.hasSubscriptions).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe('clone', () => {
|
||||
it('can not be clonned', async () => {
|
||||
const provider = new ScProvider('');
|
||||
|
||||
await provider.connect();
|
||||
|
||||
expect(() => provider.clone()).toThrowError();
|
||||
});
|
||||
});
|
||||
|
||||
describe('connect', () => {
|
||||
it('does not create a new chain when trying to re-connect while the current chain is syncing', async () => {
|
||||
const provider = new ScProvider('');
|
||||
|
||||
await provider.connect();
|
||||
const chain = mockedConnector.latestChain();
|
||||
|
||||
await provider.connect();
|
||||
expect(chain).toBe(mockedConnector.latestChain());
|
||||
});
|
||||
|
||||
it('throws when trying to connect on an already connected Provider', async () => {
|
||||
const provider = new ScProvider('');
|
||||
|
||||
await provider.connect();
|
||||
|
||||
setChainSyncyingStatus(false);
|
||||
|
||||
await expect(provider.connect()).rejects.toThrowError(
|
||||
'Already connected!'
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe('disconnect', () => {
|
||||
it('removes the chain and cleans up', async () => {
|
||||
const provider = new ScProvider('');
|
||||
|
||||
await provider.connect();
|
||||
const chain = mockedConnector.latestChain();
|
||||
|
||||
await provider.disconnect();
|
||||
|
||||
expect(chain._isTerminated()).toBe(true);
|
||||
});
|
||||
|
||||
it('does not throw when disconnecting on an already disconnected Provider', async () => {
|
||||
const provider = new ScProvider('');
|
||||
|
||||
await provider.connect();
|
||||
|
||||
await provider.disconnect();
|
||||
await expect(provider.disconnect()).resolves.not.toThrow();
|
||||
});
|
||||
});
|
||||
|
||||
describe('send', () => {
|
||||
it('throws when trying to send a request while the Provider is not connected', async () => {
|
||||
const provider = new ScProvider('');
|
||||
|
||||
await provider.connect();
|
||||
|
||||
await expect(provider.send('', [])).rejects.toThrow();
|
||||
});
|
||||
|
||||
it('receives responses to its requests', async () => {
|
||||
const provider = new ScProvider('');
|
||||
|
||||
await provider.connect();
|
||||
const chain = mockedConnector.latestChain();
|
||||
|
||||
setChainSyncyingStatus(false);
|
||||
|
||||
const responsePromise = provider.send('getData', ['foo']);
|
||||
|
||||
await wait(0);
|
||||
expect(chain._getLatestRequest()).toEqual(
|
||||
'{"id":1,"jsonrpc":"2.0","method":"getData","params":["foo"]}'
|
||||
);
|
||||
|
||||
const result = { foo: 'foo' };
|
||||
|
||||
chain._triggerCallback({
|
||||
jsonrpc: '2.0',
|
||||
id: 1,
|
||||
result
|
||||
});
|
||||
|
||||
const response = await responsePromise;
|
||||
|
||||
expect(response).toEqual(result);
|
||||
});
|
||||
|
||||
it("rejects when the response can't be deserialized", async () => {
|
||||
const provider = new ScProvider('');
|
||||
|
||||
await provider.connect();
|
||||
const chain = mockedConnector.latestChain();
|
||||
|
||||
setChainSyncyingStatus(false);
|
||||
|
||||
setTimeout(() => {
|
||||
chain._triggerCallback({
|
||||
jsonrpc: '2.0',
|
||||
id: 1
|
||||
});
|
||||
}, 0);
|
||||
|
||||
await expect(provider.send('getData', ['foo'])).rejects.toThrow();
|
||||
});
|
||||
|
||||
it('rejects when the smoldot chain has crashed', async () => {
|
||||
const provider = new ScProvider('');
|
||||
|
||||
await provider.connect();
|
||||
const chain = mockedConnector.latestChain();
|
||||
|
||||
setChainSyncyingStatus(false);
|
||||
await wait(0);
|
||||
|
||||
chain._setSendJsonRpcInterceptor(() => {
|
||||
throw new Error('boom!');
|
||||
});
|
||||
|
||||
await expect(provider.send('getData', ['foo'])).rejects.toThrowError(
|
||||
'Disconnected'
|
||||
);
|
||||
expect(provider.isConnected).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe('subscribe', () => {
|
||||
it('subscribes and recives messages until it unsubscribes', async () => {
|
||||
const provider = new ScProvider('');
|
||||
|
||||
await provider.connect();
|
||||
const chain = mockedConnector.latestChain();
|
||||
|
||||
setChainSyncyingStatus(false);
|
||||
|
||||
const unsubscribeToken = 'unsubscribeToken';
|
||||
|
||||
setTimeout(() => {
|
||||
chain._triggerCallback({
|
||||
jsonrpc: '2.0',
|
||||
id: 1,
|
||||
result: unsubscribeToken
|
||||
});
|
||||
}, 0);
|
||||
|
||||
const cb = jest.fn();
|
||||
const token = await provider.subscribe(
|
||||
'foo',
|
||||
'chain_subscribeNewHeads',
|
||||
['baz'],
|
||||
cb
|
||||
);
|
||||
|
||||
expect(token).toBe(unsubscribeToken);
|
||||
expect(cb).not.toHaveBeenCalled();
|
||||
|
||||
chain._triggerCallback({
|
||||
jsonrpc: '2.0',
|
||||
method: 'foo',
|
||||
params: {
|
||||
result: 1,
|
||||
subscription: token
|
||||
}
|
||||
});
|
||||
expect(cb).toHaveBeenCalledTimes(1);
|
||||
expect(cb).toHaveBeenLastCalledWith(null, 1);
|
||||
|
||||
chain._triggerCallback({
|
||||
jsonrpc: '2.0',
|
||||
method: 'foo',
|
||||
params: {
|
||||
result: 2,
|
||||
subscription: token
|
||||
}
|
||||
});
|
||||
expect(cb).toHaveBeenCalledTimes(2);
|
||||
expect(cb).toHaveBeenLastCalledWith(null, 2);
|
||||
|
||||
provider.unsubscribe('foo', 'chain_unsubscribeNewHeads', unsubscribeToken);
|
||||
|
||||
chain._triggerCallback({
|
||||
jsonrpc: '2.0',
|
||||
method: 'foo',
|
||||
params: {
|
||||
result: 3,
|
||||
subscription: token
|
||||
}
|
||||
});
|
||||
expect(cb).toHaveBeenCalledTimes(2);
|
||||
expect(cb).toHaveBeenLastCalledWith(null, 2);
|
||||
});
|
||||
|
||||
it('ignores subscription messages that were received before the subscription token', async () => {
|
||||
const provider = new ScProvider('');
|
||||
|
||||
await provider.connect();
|
||||
const chain = mockedConnector.latestChain();
|
||||
|
||||
setChainSyncyingStatus(false);
|
||||
|
||||
const unsubscribeToken = 'unsubscribeToken';
|
||||
|
||||
chain._triggerCallback({
|
||||
jsonrpc: '2.0',
|
||||
method: 'foo',
|
||||
params: {
|
||||
result: 1,
|
||||
subscription: unsubscribeToken
|
||||
}
|
||||
});
|
||||
setTimeout(() => {
|
||||
chain._triggerCallback({
|
||||
jsonrpc: '2.0',
|
||||
id: 1,
|
||||
result: unsubscribeToken
|
||||
});
|
||||
}, 0);
|
||||
|
||||
const cb = jest.fn();
|
||||
const token = await provider.subscribe(
|
||||
'foo',
|
||||
'chain_subscribeNewHeads',
|
||||
['baz'],
|
||||
cb
|
||||
);
|
||||
|
||||
expect(token).toBe(unsubscribeToken);
|
||||
expect(cb).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('emits the error when the message has an error', async () => {
|
||||
const provider = new ScProvider('');
|
||||
|
||||
await provider.connect();
|
||||
const chain = mockedConnector.latestChain();
|
||||
|
||||
setChainSyncyingStatus(false);
|
||||
await wait(0);
|
||||
|
||||
const unsubscribeToken = 'unsubscribeToken';
|
||||
|
||||
setTimeout(() => {
|
||||
chain._triggerCallback({
|
||||
jsonrpc: '2.0',
|
||||
id: 1,
|
||||
result: unsubscribeToken
|
||||
});
|
||||
}, 0);
|
||||
|
||||
const cb = jest.fn();
|
||||
const token = await provider.subscribe(
|
||||
'foo',
|
||||
'chain_subscribeNewHeads',
|
||||
['baz'],
|
||||
cb
|
||||
);
|
||||
|
||||
chain._triggerCallback({
|
||||
jsonrpc: '2.0',
|
||||
method: 'foo',
|
||||
params: {
|
||||
error: 'boom',
|
||||
subscription: unsubscribeToken
|
||||
}
|
||||
});
|
||||
|
||||
expect(token).toBe(unsubscribeToken);
|
||||
expect(cb).toHaveBeenCalledTimes(1);
|
||||
expect(cb.mock.lastCall![0]).toBeInstanceOf(Error);
|
||||
expect(cb.mock.lastCall![1]).toBe(undefined);
|
||||
});
|
||||
|
||||
it('errors when subscribing to an unsupported method', async () => {
|
||||
const provider = new ScProvider('');
|
||||
|
||||
await provider.connect();
|
||||
|
||||
setChainSyncyingStatus(false);
|
||||
await wait(0);
|
||||
|
||||
await expect(
|
||||
provider.subscribe('foo', 'bar', ['baz'], () => {})
|
||||
).rejects.toThrowError('Unsupported subscribe method: bar');
|
||||
});
|
||||
});
|
||||
|
||||
describe('unsubscribe', () => {
|
||||
it('rejects when trying to unsubscribe from un unexisting subscription', async () => {
|
||||
const provider = new ScProvider('');
|
||||
|
||||
await provider.connect();
|
||||
|
||||
setChainSyncyingStatus(false);
|
||||
|
||||
await expect(provider.unsubscribe('', '', '')).rejects.toThrowError(
|
||||
'Unable to find active subscription=::'
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
it('cleans up the stale subscriptions once it reconnects', async () => {
|
||||
const provider = new ScProvider('');
|
||||
|
||||
await provider.connect();
|
||||
const chain = mockedConnector.latestChain();
|
||||
|
||||
// setting the syncing status of the chain to fals so that the Provider
|
||||
// gets `connected`
|
||||
setChainSyncyingStatus(false);
|
||||
|
||||
// while connected we create a subscription
|
||||
const unsubscribeToken = 'unsubscribeToken';
|
||||
|
||||
setTimeout(() => {
|
||||
chain._triggerCallback({
|
||||
jsonrpc: '2.0',
|
||||
id: 1,
|
||||
result: unsubscribeToken
|
||||
});
|
||||
}, 0);
|
||||
|
||||
const cb = jest.fn();
|
||||
const token = await provider.subscribe(
|
||||
'foo',
|
||||
'chain_subscribeNewHeads',
|
||||
['baz'],
|
||||
cb
|
||||
);
|
||||
|
||||
// setting the syncing status of the chain to fals so that the Provider
|
||||
// gets `disconnected`
|
||||
setChainSyncyingStatus(true);
|
||||
|
||||
// let's wait some time in order to ensure that the stale unsubscription
|
||||
// messages are not sent until the chain syncing status changes back to false
|
||||
await wait(200);
|
||||
|
||||
// before we let the healthChecker know that the chain is no longer syncing,
|
||||
// let's make sure that the chain has received the correct request, and
|
||||
// most importantly that it has not received a request for unsubscribing
|
||||
// from the stale subscription, since that request should happen once the
|
||||
// chain is no longer syncing
|
||||
expect(chain._recevedRequests()).toEqual([
|
||||
'{"id":1,"jsonrpc":"2.0","method":"chain_subscribeNewHeads","params":["baz"]}'
|
||||
]);
|
||||
|
||||
// lets change the sync status back to false
|
||||
setChainSyncyingStatus(false);
|
||||
|
||||
// let's wait one tick to ensure that the microtasks got processed
|
||||
await wait(0);
|
||||
|
||||
// let's make sure that we have now sent the request for killing the
|
||||
// stale subscription
|
||||
expect(chain._recevedRequests()).toEqual([
|
||||
'{"id":1,"jsonrpc":"2.0","method":"chain_subscribeNewHeads","params":["baz"]}',
|
||||
`{"id":2,"jsonrpc":"2.0","method":"chain_unsubscribeNewHeads","params":["${token}"]}`
|
||||
]);
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,346 @@
|
||||
// Copyright 2017-2022 @polkadot/rpc-provider authors & contributors
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
import type { JsonRpcResponse, ProviderInterface, ProviderInterfaceCallback, ProviderInterfaceEmitCb, ProviderInterfaceEmitted } from '../types';
|
||||
|
||||
import { Chain, createScClient, ScClient, WellKnownChain } from '@substrate/connect';
|
||||
import EventEmitter from 'eventemitter3';
|
||||
|
||||
import { assert, isError } from '@polkadot/util';
|
||||
|
||||
import { RpcCoder } from '../coder';
|
||||
import { healthChecker } from './Health';
|
||||
|
||||
type ResponseCallback = (response: string | Error) => void
|
||||
|
||||
// These methods have been taken from:
|
||||
// https://github.com/paritytech/smoldot/blob/17425040ddda47d539556eeaf62b88c4240d1d42/src/json_rpc/methods.rs#L338-L462
|
||||
// It's important to take into account that smoldot is adding support to the new
|
||||
// json-rpc-interface https://paritytech.github.io/json-rpc-interface-spec/
|
||||
// However, at the moment this list only includes methods that belong to the "old" API
|
||||
const subscriptionUnsubscriptionMethods = new Map<string, string>([
|
||||
['author_submitAndWatchExtrinsic', 'author_unwatchExtrinsic'],
|
||||
['chain_subscribeAllHeads', 'chain_unsubscribeAllHeads'],
|
||||
['chain_subscribeFinalizedHeads', 'chain_unsubscribeFinalizedHeads'],
|
||||
['chain_subscribeFinalisedHeads', 'chain_subscribeFinalisedHeads'],
|
||||
['chain_subscribeNewHeads', 'chain_unsubscribeNewHeads'],
|
||||
['chain_subscribeNewHead', 'chain_unsubscribeNewHead'],
|
||||
['chain_subscribeRuntimeVersion', 'chain_unsubscribeRuntimeVersion'],
|
||||
['subscribe_newHead', 'unsubscribe_newHead'],
|
||||
['state_subscribeRuntimeVersion', 'state_unsubscribeRuntimeVersion'],
|
||||
['state_subscribeStorage', 'state_unsubscribeStorage']
|
||||
]);
|
||||
|
||||
const wellKnownChains = new Set(Object.values(WellKnownChain));
|
||||
const scClients = new WeakMap<ScProvider, ScClient>();
|
||||
|
||||
export { WellKnownChain };
|
||||
export class ScProvider implements ProviderInterface {
|
||||
readonly #coder: RpcCoder = new RpcCoder();
|
||||
readonly #spec: string | WellKnownChain;
|
||||
readonly #sharedSandbox?: ScProvider;
|
||||
readonly #subscriptions: Map<
|
||||
string,
|
||||
[ResponseCallback, { unsubscribeMethod: string; id: string | number }]
|
||||
> = new Map();
|
||||
|
||||
readonly #requests: Map<number, ResponseCallback> = new Map();
|
||||
readonly #eventemitter: EventEmitter = new EventEmitter();
|
||||
#chain: Promise<Chain> | null = null;
|
||||
#isChainReady = false;
|
||||
|
||||
public constructor (spec: string | WellKnownChain, sharedSandbox?: ScProvider) {
|
||||
this.#spec = spec;
|
||||
this.#sharedSandbox = sharedSandbox;
|
||||
}
|
||||
|
||||
public get hasSubscriptions (): boolean {
|
||||
// Indicates that subscriptions are supported
|
||||
return true;
|
||||
}
|
||||
|
||||
public get isConnected (): boolean {
|
||||
return !!this.#chain && this.#isChainReady;
|
||||
}
|
||||
|
||||
public clone (): ProviderInterface {
|
||||
throw new Error('clone() is not supported.');
|
||||
}
|
||||
|
||||
async connect (): Promise<void> {
|
||||
assert(!this.isConnected, 'Already connected!');
|
||||
|
||||
// it could happen that after emitting `disconnected` due to the fact taht
|
||||
// smoldot is syncing, the consumer tries to reconnect after a certain amount
|
||||
// of time... In which case we want to make sure that we don't create a new
|
||||
// chain.
|
||||
if (this.#chain) {
|
||||
await this.#chain;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.#sharedSandbox && !this.#sharedSandbox.isConnected) {
|
||||
await this.#sharedSandbox.connect();
|
||||
}
|
||||
|
||||
const client = this.#sharedSandbox
|
||||
? scClients.get(this.#sharedSandbox)
|
||||
: createScClient();
|
||||
|
||||
assert(client, 'Unkown ScProvider!');
|
||||
scClients.set(this, client);
|
||||
|
||||
const hc = healthChecker();
|
||||
|
||||
const onResponse = (res: string): void => {
|
||||
const hcRes = hc.responsePassThrough(res);
|
||||
|
||||
if (!hcRes) {
|
||||
return;
|
||||
}
|
||||
|
||||
const response = JSON.parse(hcRes) as JsonRpcResponse;
|
||||
let decodedResponse: string | Error;
|
||||
|
||||
try {
|
||||
decodedResponse = this.#coder.decodeResponse(response) as string;
|
||||
} catch (e) {
|
||||
decodedResponse = e as Error;
|
||||
}
|
||||
|
||||
// It's not a subscription message, but rather a standar RPC response
|
||||
if (response.params?.subscription === undefined || !response.method) {
|
||||
return this.#requests.get(response.id)?.(decodedResponse);
|
||||
}
|
||||
|
||||
// We are dealing with a subscription message
|
||||
const subscriptionId = `${response.method}::${response.params.subscription}`;
|
||||
|
||||
const callback = this.#subscriptions.get(subscriptionId)?.[0];
|
||||
|
||||
callback?.(decodedResponse);
|
||||
};
|
||||
|
||||
const addChain = wellKnownChains.has(this.#spec as WellKnownChain)
|
||||
? client.addWellKnownChain
|
||||
: client.addChain;
|
||||
|
||||
this.#chain = addChain(this.#spec as WellKnownChain, onResponse).then((chain) => {
|
||||
hc.setSendJsonRpc(chain.sendJsonRpc);
|
||||
|
||||
this.#isChainReady = false;
|
||||
|
||||
const cleanup = () => {
|
||||
// If there are any callbacks left, we have to reject/error them.
|
||||
// Otherwise, that would cause a memory leak.
|
||||
const disconnectionError = new Error('Disconnected');
|
||||
|
||||
this.#requests.forEach((cb) => cb(disconnectionError));
|
||||
this.#subscriptions.forEach(([cb]) => cb(disconnectionError));
|
||||
this.#subscriptions.clear();
|
||||
};
|
||||
|
||||
const staleSubscriptions: {
|
||||
unsubscribeMethod: string
|
||||
id: number | string
|
||||
}[] = [];
|
||||
|
||||
const killStaleSubscriptions = () => {
|
||||
if (staleSubscriptions.length === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
||||
const { id, unsubscribeMethod } = staleSubscriptions.pop()!;
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
||||
Promise.race([
|
||||
this.send(unsubscribeMethod, [id]).catch(Function.prototype as () => void),
|
||||
new Promise((resolve) => setTimeout(resolve, 500))
|
||||
]).then(killStaleSubscriptions);
|
||||
};
|
||||
|
||||
hc.start((health) => {
|
||||
const isReady =
|
||||
!health.isSyncing && (health.peers > 0 || !health.shouldHavePeers);
|
||||
|
||||
// if it's the same as before, then nothing has changed and we are done
|
||||
if (this.#isChainReady === isReady) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.#isChainReady = isReady;
|
||||
|
||||
if (!isReady) {
|
||||
// If we've reached this point, that means that the chain used to be "ready"
|
||||
// and now we are about to emit `disconnected`.
|
||||
//
|
||||
// This will cause the PolkadotJs API think that the connection is
|
||||
// actually dead. In reality the smoldot chain is not dead, of course.
|
||||
// However, we have to cleanup all the existing callbacks because when
|
||||
// the smoldot chain stops syncing, then we will emit `connected` and
|
||||
// the PolkadotJs API will try to re-create the previous
|
||||
// subscriptions and requests. Although, now is not a good moment
|
||||
// to be sending unsubscription messages to the smoldot chain, we
|
||||
// should wait until is no longer syncing to send the unsubscription
|
||||
// messages from the stale subscriptions of the previous connection.
|
||||
//
|
||||
// That's why -before we perform the cleanup of `this.#subscriptions`-
|
||||
// we keep the necessary information that we will need later on to
|
||||
// kill the stale subscriptions.
|
||||
[...this.#subscriptions.values()].forEach((s) => {
|
||||
staleSubscriptions.push(s[1]);
|
||||
});
|
||||
cleanup();
|
||||
} else {
|
||||
killStaleSubscriptions();
|
||||
}
|
||||
|
||||
this.#eventemitter.emit(isReady ? 'connected' : 'disconnected');
|
||||
});
|
||||
|
||||
return {
|
||||
...chain,
|
||||
remove: () => {
|
||||
hc.stop();
|
||||
chain.remove();
|
||||
cleanup();
|
||||
},
|
||||
sendJsonRpc: hc.sendJsonRpc.bind(hc)
|
||||
};
|
||||
});
|
||||
|
||||
try {
|
||||
await this.#chain;
|
||||
} catch (e) {
|
||||
this.#chain = null;
|
||||
this.#eventemitter.emit('error', e);
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
async disconnect (): Promise<void> {
|
||||
if (!this.#chain) {
|
||||
return;
|
||||
}
|
||||
|
||||
const chain = await this.#chain;
|
||||
|
||||
this.#chain = null;
|
||||
this.#isChainReady = false;
|
||||
|
||||
try {
|
||||
chain.remove();
|
||||
} catch (_) {}
|
||||
|
||||
this.#eventemitter.emit('disconnected');
|
||||
}
|
||||
|
||||
public on (
|
||||
type: ProviderInterfaceEmitted,
|
||||
sub: ProviderInterfaceEmitCb
|
||||
): () => void {
|
||||
// It's possible. Although, quite unlikely, that by the time that polkadot
|
||||
// subscribes to the `connected` event, the Provider is already connected.
|
||||
// In that case, we must emit to let the consumer know that we are connected.
|
||||
if (type === 'connected' && this.isConnected) {
|
||||
sub();
|
||||
}
|
||||
|
||||
this.#eventemitter.on(type, sub);
|
||||
|
||||
return (): void => {
|
||||
this.#eventemitter.removeListener(type, sub);
|
||||
};
|
||||
}
|
||||
|
||||
public async send<T = any> (method: string, params: unknown[]): Promise<T> {
|
||||
assert(this.isConnected, 'Provider is not connected');
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
||||
const chain = await this.#chain!;
|
||||
const json = this.#coder.encodeJson(method, params);
|
||||
const id = this.#coder.getId();
|
||||
|
||||
const result = new Promise<T>((resolve, reject): void => {
|
||||
this.#requests.set(id, (response) => {
|
||||
(isError(response) ? reject : resolve)(response as unknown as T);
|
||||
});
|
||||
|
||||
try {
|
||||
chain.sendJsonRpc(json);
|
||||
} catch (e) {
|
||||
this.#chain = null;
|
||||
|
||||
try {
|
||||
chain.remove();
|
||||
} catch (_) {}
|
||||
|
||||
this.#eventemitter.emit('error', e);
|
||||
}
|
||||
});
|
||||
|
||||
try {
|
||||
return await result;
|
||||
} finally {
|
||||
// let's ensure that once the Promise is resolved/rejected, then we remove
|
||||
// remove its entry from the internal #requests
|
||||
this.#requests.delete(id);
|
||||
}
|
||||
}
|
||||
|
||||
public async subscribe (
|
||||
type: string,
|
||||
method: string,
|
||||
params: any[],
|
||||
callback: ProviderInterfaceCallback
|
||||
): Promise<number | string> {
|
||||
assert(
|
||||
subscriptionUnsubscriptionMethods.has(method),
|
||||
`Unsupported subscribe method: ${method}`
|
||||
);
|
||||
|
||||
const id = await this.send<number | string>(method, params);
|
||||
const subscriptionId = `${type}::${id}`;
|
||||
|
||||
const cb = (response: Error | string) => {
|
||||
if (response instanceof Error) {
|
||||
callback(response, undefined);
|
||||
} else {
|
||||
callback(null, response);
|
||||
}
|
||||
};
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
||||
const unsubscribeMethod = subscriptionUnsubscriptionMethods.get(method)!;
|
||||
|
||||
this.#subscriptions.set(subscriptionId, [cb, { id, unsubscribeMethod }]);
|
||||
|
||||
return id;
|
||||
}
|
||||
|
||||
public unsubscribe (
|
||||
type: string,
|
||||
method: string,
|
||||
id: number | string
|
||||
): Promise<boolean> {
|
||||
assert(
|
||||
this.isConnected,
|
||||
'Provider is not connected'
|
||||
);
|
||||
|
||||
const subscriptionId = `${type}::${id}`;
|
||||
|
||||
if (!this.#subscriptions.has(subscriptionId)) {
|
||||
return Promise.reject(
|
||||
new Error(`Unable to find active subscription=${subscriptionId}`)
|
||||
);
|
||||
}
|
||||
|
||||
this.#subscriptions.delete(subscriptionId);
|
||||
|
||||
return this.send(method, [id]);
|
||||
}
|
||||
}
|
||||
export type ScProviderClass = typeof ScProvider
|
||||
@@ -0,0 +1,4 @@
|
||||
// Copyright 2017-2022 @polkadot/rpc-provider authors & contributors
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
export * from './ScProvider';
|
||||
@@ -17,6 +17,13 @@ export interface JsonRpcResponseBaseError {
|
||||
message: string;
|
||||
}
|
||||
|
||||
export interface RpcErrorInterface<Data> {
|
||||
code: number;
|
||||
data?: Data;
|
||||
message: string;
|
||||
stack: string;
|
||||
}
|
||||
|
||||
interface JsonRpcResponseSingle {
|
||||
error?: JsonRpcResponseBaseError;
|
||||
result?: unknown;
|
||||
@@ -44,6 +51,7 @@ export type ProviderInterfaceEmitCb = (value?: any) => any;
|
||||
export interface ProviderInterface {
|
||||
readonly hasSubscriptions: boolean;
|
||||
readonly isConnected: boolean;
|
||||
readonly stats?: ProviderStats;
|
||||
|
||||
clone (): ProviderInterface;
|
||||
connect (): Promise<void>;
|
||||
@@ -53,3 +61,18 @@ export interface ProviderInterface {
|
||||
subscribe (type: string, method: string, params: unknown[], cb: ProviderInterfaceCallback): Promise<number | string>;
|
||||
unsubscribe (type: string, method: string, id: number | string): Promise<boolean>;
|
||||
}
|
||||
|
||||
export interface ProviderStats {
|
||||
active: {
|
||||
requests: number;
|
||||
subscriptions: number;
|
||||
};
|
||||
total: {
|
||||
bytesRecv: number;
|
||||
bytesSent: number;
|
||||
cached: number;
|
||||
requests: number;
|
||||
subscriptions: number;
|
||||
timeout: number;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
/* eslint-disable camelcase */
|
||||
|
||||
import type { JsonRpcResponse, ProviderInterface, ProviderInterfaceCallback, ProviderInterfaceEmitCb, ProviderInterfaceEmitted } from '../types';
|
||||
import type { JsonRpcResponse, ProviderInterface, ProviderInterfaceCallback, ProviderInterfaceEmitCb, ProviderInterfaceEmitted, ProviderStats } from '../types';
|
||||
|
||||
import EventEmitter from 'eventemitter3';
|
||||
|
||||
@@ -25,6 +25,7 @@ interface WsStateAwaiting {
|
||||
callback: ProviderInterfaceCallback;
|
||||
method: string;
|
||||
params: unknown[];
|
||||
start: number;
|
||||
subscription?: SubscriptionHandler;
|
||||
}
|
||||
|
||||
@@ -39,7 +40,11 @@ const ALIASES: { [index: string]: string } = {
|
||||
chain_unsubscribeFinalisedHeads: 'chain_unsubscribeFinalizedHeads'
|
||||
};
|
||||
|
||||
const RETRY_DELAY = 2500;
|
||||
const RETRY_DELAY = 2_500;
|
||||
|
||||
const TIMEOUT_S = 30;
|
||||
const TIMEOUT_MS = TIMEOUT_S * 1000;
|
||||
const TIMEOUT_INTERVAL = 5_000;
|
||||
|
||||
const MEGABYTE = 1024 * 1024;
|
||||
|
||||
@@ -90,6 +95,8 @@ export class WsProvider implements ProviderInterface {
|
||||
|
||||
readonly #isReadyPromise: Promise<WsProvider>;
|
||||
|
||||
readonly #stats: ProviderStats;
|
||||
|
||||
readonly #waitingForId: Record<string, JsonRpcResponse> = {};
|
||||
|
||||
#autoConnectMs: number;
|
||||
@@ -100,6 +107,8 @@ export class WsProvider implements ProviderInterface {
|
||||
|
||||
#subscriptions: Record<string, WsStateSubscription> = {};
|
||||
|
||||
#timeoutId?: NodeJS.Timeout | null = null;
|
||||
|
||||
#websocket: WebSocket | null;
|
||||
|
||||
/**
|
||||
@@ -124,6 +133,10 @@ export class WsProvider implements ProviderInterface {
|
||||
this.#endpoints = endpoints;
|
||||
this.#headers = headers;
|
||||
this.#websocket = null;
|
||||
this.#stats = {
|
||||
active: { requests: 0, subscriptions: 0 },
|
||||
total: { bytesRecv: 0, bytesSent: 0, cached: 0, requests: 0, subscriptions: 0, timeout: 0 }
|
||||
};
|
||||
|
||||
if (autoConnectMs > 0) {
|
||||
this.connectWithRetry().catch((): void => {
|
||||
@@ -195,6 +208,9 @@ export class WsProvider implements ProviderInterface {
|
||||
this.#websocket.onerror = this.#onSocketError;
|
||||
this.#websocket.onmessage = this.#onSocketMessage;
|
||||
this.#websocket.onopen = this.#onSocketOpen;
|
||||
|
||||
// timeout any handlers that have not had a response
|
||||
this.#timeoutId = setInterval(() => this.#timeout(), TIMEOUT_INTERVAL);
|
||||
} catch (error) {
|
||||
l.error(error);
|
||||
|
||||
@@ -243,6 +259,19 @@ export class WsProvider implements ProviderInterface {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @description Returns the connection stats
|
||||
*/
|
||||
public get stats (): ProviderStats {
|
||||
return {
|
||||
active: {
|
||||
requests: Object.keys(this.#handlers).length,
|
||||
subscriptions: Object.keys(this.#subscriptions).length
|
||||
},
|
||||
total: this.#stats.total
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Listens on events after having subscribed using the [[subscribe]] function.
|
||||
* @param {ProviderInterfaceEmitted} type Event
|
||||
@@ -264,6 +293,8 @@ export class WsProvider implements ProviderInterface {
|
||||
* @param subscription Subscription details (internally used)
|
||||
*/
|
||||
public send <T = any> (method: string, params: unknown[], isCacheable?: boolean, subscription?: SubscriptionHandler): Promise<T> {
|
||||
this.#stats.total.requests++;
|
||||
|
||||
const body = this.#coder.encodeJson(method, params);
|
||||
let resultPromise: Promise<T> | null = isCacheable
|
||||
? this.#callCache.get(body) as Promise<T>
|
||||
@@ -275,6 +306,8 @@ export class WsProvider implements ProviderInterface {
|
||||
if (isCacheable) {
|
||||
this.#callCache.set(body, resultPromise);
|
||||
}
|
||||
} else {
|
||||
this.#stats.total.cached++;
|
||||
}
|
||||
|
||||
return resultPromise;
|
||||
@@ -299,9 +332,10 @@ export class WsProvider implements ProviderInterface {
|
||||
callback,
|
||||
method,
|
||||
params,
|
||||
start: Date.now(),
|
||||
subscription
|
||||
};
|
||||
|
||||
this.#stats.total.bytesSent += json.length;
|
||||
this.#websocket.send(json);
|
||||
} catch (error) {
|
||||
reject(error);
|
||||
@@ -328,6 +362,8 @@ export class WsProvider implements ProviderInterface {
|
||||
* ```
|
||||
*/
|
||||
public subscribe (type: string, method: string, params: unknown[], callback: ProviderInterfaceCallback): Promise<number | string> {
|
||||
this.#stats.total.subscriptions++;
|
||||
|
||||
// subscriptions are not cached, LRU applies to .at(<blockHash>) only
|
||||
return this.send<number | string>(method, params, false, { callback, type });
|
||||
}
|
||||
@@ -380,6 +416,11 @@ export class WsProvider implements ProviderInterface {
|
||||
this.#websocket = null;
|
||||
}
|
||||
|
||||
if (this.#timeoutId) {
|
||||
clearInterval(this.#timeoutId);
|
||||
this.#timeoutId = null;
|
||||
}
|
||||
|
||||
this.#emit('disconnected');
|
||||
|
||||
// reject all hanging requests
|
||||
@@ -410,6 +451,8 @@ export class WsProvider implements ProviderInterface {
|
||||
#onSocketMessage = (message: MessageEvent<string>): void => {
|
||||
l.debug(() => ['received', message.data]);
|
||||
|
||||
this.#stats.total.bytesRecv += message.data.length;
|
||||
|
||||
const response = JSON.parse(message.data) as JsonRpcResponse;
|
||||
|
||||
return isUndefined(response.method)
|
||||
@@ -515,4 +558,24 @@ export class WsProvider implements ProviderInterface {
|
||||
}
|
||||
})).catch(l.error);
|
||||
};
|
||||
|
||||
#timeout = (): void => {
|
||||
const now = Date.now();
|
||||
const ids = Object.keys(this.#handlers);
|
||||
|
||||
for (let i = 0; i < ids.length; i++) {
|
||||
const handler = this.#handlers[ids[i]];
|
||||
|
||||
if ((now - handler.start) > TIMEOUT_MS) {
|
||||
try {
|
||||
handler.callback(new Error(`No response received from RPC endpoint in ${TIMEOUT_S}s`), undefined);
|
||||
} catch {
|
||||
// ignore
|
||||
}
|
||||
|
||||
this.#stats.total.timeout++;
|
||||
delete this.#handlers[ids[i]];
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
"./detectPackage.cjs"
|
||||
],
|
||||
"type": "module",
|
||||
"version": "7.8.1",
|
||||
"version": "7.15.1",
|
||||
"main": "index.js",
|
||||
"bin": {
|
||||
"polkadot-types-chain-info": "./scripts/polkadot-types-chain-info.cjs",
|
||||
@@ -30,26 +30,26 @@
|
||||
"polkadot-types-internal-metadata": "./scripts/polkadot-types-internal-metadata.cjs"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.17.2",
|
||||
"@babel/register": "^7.17.0",
|
||||
"@babel/runtime": "^7.17.2",
|
||||
"@polkadot/api": "7.8.1",
|
||||
"@polkadot/api-augment": "7.8.1",
|
||||
"@polkadot/rpc-augment": "7.8.1",
|
||||
"@polkadot/rpc-provider": "7.8.1",
|
||||
"@polkadot/types": "7.8.1",
|
||||
"@polkadot/types-augment": "7.8.1",
|
||||
"@polkadot/types-codec": "7.8.1",
|
||||
"@polkadot/types-create": "7.8.1",
|
||||
"@polkadot/types-support": "7.8.1",
|
||||
"@polkadot/util": "^8.4.1",
|
||||
"@polkadot/x-ws": "^8.4.1",
|
||||
"@babel/core": "^7.17.8",
|
||||
"@babel/register": "^7.17.7",
|
||||
"@babel/runtime": "^7.17.8",
|
||||
"@polkadot/api": "7.15.1",
|
||||
"@polkadot/api-augment": "7.15.1",
|
||||
"@polkadot/rpc-augment": "7.15.1",
|
||||
"@polkadot/rpc-provider": "7.15.1",
|
||||
"@polkadot/types": "7.15.1",
|
||||
"@polkadot/types-augment": "7.15.1",
|
||||
"@polkadot/types-codec": "7.15.1",
|
||||
"@polkadot/types-create": "7.15.1",
|
||||
"@polkadot/types-support": "7.15.1",
|
||||
"@polkadot/util": "^8.7.1",
|
||||
"@polkadot/x-ws": "^8.7.1",
|
||||
"handlebars": "^4.7.7",
|
||||
"websocket": "^1.0.34",
|
||||
"yargs": "^17.3.1"
|
||||
"yargs": "^17.4.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/websocket": "^1.0.5",
|
||||
"@types/yargs": "^17.0.8"
|
||||
"@types/yargs": "^17.0.10"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -79,6 +79,6 @@ export function generateInterfaceTypes (importDefinitions: { [importPath: string
|
||||
export function generateDefaultInterface (): void {
|
||||
generateInterfaceTypes(
|
||||
{ '@polkadot/types/interfaces': defaultDefinitions },
|
||||
'packages/types-augment/src/registry.ts'
|
||||
'packages/types-augment/src/registry/interfaces.ts'
|
||||
);
|
||||
}
|
||||
|
||||
@@ -25,6 +25,7 @@ const generateLookupDefsTmpl = Handlebars.compile(readTemplate('lookup/defs'));
|
||||
const generateLookupDefsNamedTmpl = Handlebars.compile(readTemplate('lookup/defs-named'));
|
||||
const generateLookupIndexTmpl = Handlebars.compile(readTemplate('lookup/index'));
|
||||
const generateLookupTypesTmpl = Handlebars.compile(readTemplate('lookup/types'));
|
||||
const generateRegistryTmpl = Handlebars.compile(readTemplate('interfaceRegistry'));
|
||||
|
||||
function generateParamType (registry: Registry, { name, type }: SiTypeParameter): string {
|
||||
if (type.isSome) {
|
||||
@@ -214,13 +215,34 @@ function generateLookupTypes (registry: Registry, filtered: [PortableType, TypeD
|
||||
writeFile(path.join(destDir, 'index.ts'), () => generateLookupIndexTmpl({ headerType: 'defs' }), true);
|
||||
}
|
||||
|
||||
function generateLookup (destDir: string, entries: [string | undefined, HexString][]): void {
|
||||
function generateRegistry (registry: Registry, filtered: [PortableType, TypeDef][], destDir: string, subPath: string): void {
|
||||
writeFile(path.join(destDir, `${subPath}.ts`), (): string => {
|
||||
const items = filtered
|
||||
.map(([, { lookupName }]) => lookupName)
|
||||
.filter((n): n is string => !!n)
|
||||
.sort()
|
||||
.reduce((all: string[], n) => all.includes(n) ? all : all.concat(n), []);
|
||||
const imports = createImports({}, { types: {} });
|
||||
|
||||
imports.lookupTypes = items.reduce((all, n) => ({ ...all, [n]: true }), {});
|
||||
|
||||
return generateRegistryTmpl({
|
||||
headerType: 'defs',
|
||||
imports,
|
||||
items,
|
||||
types: []
|
||||
});
|
||||
}, true);
|
||||
}
|
||||
|
||||
function generateLookup (destDir: string, entries: [string, HexString][]): void {
|
||||
entries.reduce<string[]>((exclude, [subPath, staticMeta]): string[] => {
|
||||
const { lookup, registry } = initMeta(staticMeta).metadata.asLatest;
|
||||
const filtered = getFilteredTypes(lookup, exclude);
|
||||
|
||||
generateLookupDefs(registry, filtered, destDir, subPath);
|
||||
generateLookupTypes(registry, filtered, destDir, subPath);
|
||||
generateRegistry(registry, filtered, destDir, subPath === 'lookup' ? 'registry' : `../registry/${subPath}`);
|
||||
|
||||
return exclude.concat(
|
||||
...filtered
|
||||
|
||||
@@ -77,6 +77,8 @@ function tsEnum (registry: Registry, definitions: Record<string, ModuleTypes>, {
|
||||
case TypeDefInfo.Struct:
|
||||
case TypeDefInfo.Tuple:
|
||||
case TypeDefInfo.Vec:
|
||||
case TypeDefInfo.BTreeMap:
|
||||
case TypeDefInfo.BTreeSet:
|
||||
case TypeDefInfo.Option:
|
||||
case TypeDefInfo.VecFixed:
|
||||
case TypeDefInfo.WrapperKeepOpaque:
|
||||
@@ -125,6 +127,8 @@ function tsResultGetter (registry: Registry, definitions: Record<string, ModuleT
|
||||
case TypeDefInfo.Si:
|
||||
case TypeDefInfo.Tuple:
|
||||
case TypeDefInfo.Vec:
|
||||
case TypeDefInfo.BTreeMap:
|
||||
case TypeDefInfo.BTreeSet:
|
||||
case TypeDefInfo.WrapperKeepOpaque:
|
||||
case TypeDefInfo.WrapperOpaque:
|
||||
return `${isGetter}${asGetter}`;
|
||||
|
||||
@@ -3,4 +3,4 @@
|
||||
|
||||
// Do not edit, auto-generated by @polkadot/dev
|
||||
|
||||
export const packageInfo = { name: '@polkadot/typegen', path: 'auto', type: 'auto', version: '7.8.1' };
|
||||
export const packageInfo = { name: '@polkadot/typegen', path: 'auto', type: 'auto', version: '7.15.1' };
|
||||
|
||||
@@ -20,6 +20,7 @@ describe('getSimilarTypes', (): void => {
|
||||
genericTypes: {},
|
||||
ignoredTypes: [],
|
||||
localTypes: {},
|
||||
lookupTypes: {},
|
||||
metadataTypes: {},
|
||||
primitiveTypes: {},
|
||||
typeToModule: {},
|
||||
|
||||
@@ -17,6 +17,7 @@ describe('formatType', (): void => {
|
||||
genericTypes: {},
|
||||
ignoredTypes: [],
|
||||
localTypes: {},
|
||||
lookupTypes: {},
|
||||
metadataTypes: {},
|
||||
primitiveTypes: {},
|
||||
typeToModule: {},
|
||||
|
||||
@@ -47,6 +47,10 @@ function extractImports ({ imports, types }: This): string[] {
|
||||
!NO_CODEC.includes(n) && !ON_CODEC.includes(n)
|
||||
)
|
||||
},
|
||||
{
|
||||
file: '@polkadot/types/lookup',
|
||||
types: Object.keys(imports.lookupTypes)
|
||||
},
|
||||
{
|
||||
file: '@polkadot/types/types',
|
||||
types: Object.keys(imports.typesTypes).filter((n) =>
|
||||
|
||||
@@ -25,6 +25,7 @@ export interface TypeImports {
|
||||
genericTypes: TypeExist; // `import {} from '@polkadot/types/generic`
|
||||
ignoredTypes: string[]; // No need to import these types
|
||||
localTypes: TypeExistMap; // `import {} from '../something'`
|
||||
lookupTypes: TypeExistMap; // `import {} from '@polkadot/types/lookup`
|
||||
primitiveTypes: TypeExist; // `import {} from '@polkadot/types/primitive`
|
||||
metadataTypes: TypeExist; // `import {} from '@polkadot/types/metadata`
|
||||
typesTypes: TypeExist; // `import {} from '@polkadot/types/types`
|
||||
@@ -119,6 +120,7 @@ export function createImports (importDefinitions: Record<string, Record<string,
|
||||
|
||||
return local;
|
||||
}, {}),
|
||||
lookupTypes: {},
|
||||
metadataTypes: {},
|
||||
primitiveTypes: {},
|
||||
typeToModule,
|
||||
|
||||
@@ -20,12 +20,12 @@
|
||||
"./detectPackage.cjs"
|
||||
],
|
||||
"type": "module",
|
||||
"version": "7.8.1",
|
||||
"version": "7.15.1",
|
||||
"main": "index.js",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.17.2",
|
||||
"@polkadot/types": "7.8.1",
|
||||
"@polkadot/types-codec": "7.8.1",
|
||||
"@polkadot/util": "^8.4.1"
|
||||
"@babel/runtime": "^7.17.8",
|
||||
"@polkadot/types": "7.15.1",
|
||||
"@polkadot/types-codec": "7.15.1",
|
||||
"@polkadot/util": "^8.7.1"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,44 +8,21 @@ export default {
|
||||
* Lookup75: kusama_runtime::ProxyType
|
||||
**/
|
||||
KusamaRuntimeProxyType: {
|
||||
_enum: ['Any', 'NonTransfer', 'Governance', 'Staking', 'IdentityJudgement', 'CancelProxy', 'Auction']
|
||||
_enum: ['Any', 'NonTransfer', 'Governance', 'Staking', 'IdentityJudgement', 'CancelProxy', 'Auction', 'Society']
|
||||
},
|
||||
/**
|
||||
* Lookup105: polkadot_runtime_parachains::disputes::pallet::Event<T>
|
||||
**/
|
||||
PolkadotRuntimeParachainsDisputesPalletEvent: {
|
||||
_enum: {
|
||||
DisputeInitiated: '(H256,PolkadotRuntimeParachainsDisputesDisputeLocation)',
|
||||
DisputeConcluded: '(H256,PolkadotRuntimeParachainsDisputesDisputeResult)',
|
||||
DisputeTimedOut: 'H256',
|
||||
Revert: 'u32'
|
||||
}
|
||||
},
|
||||
/**
|
||||
* Lookup107: polkadot_runtime_parachains::disputes::DisputeLocation
|
||||
**/
|
||||
PolkadotRuntimeParachainsDisputesDisputeLocation: {
|
||||
_enum: ['Local', 'Remote']
|
||||
},
|
||||
/**
|
||||
* Lookup108: polkadot_runtime_parachains::disputes::DisputeResult
|
||||
**/
|
||||
PolkadotRuntimeParachainsDisputesDisputeResult: {
|
||||
_enum: ['Valid', 'Invalid']
|
||||
},
|
||||
/**
|
||||
* Lookup248: kusama_runtime::SessionKeys
|
||||
* Lookup252: kusama_runtime::SessionKeys
|
||||
**/
|
||||
KusamaRuntimeSessionKeys: {
|
||||
grandpa: 'SpFinalityGrandpaAppPublic',
|
||||
babe: 'SpConsensusBabeAppPublic',
|
||||
imOnline: 'PalletImOnlineSr25519AppSr25519Public',
|
||||
paraValidator: 'PolkadotPrimitivesV0ValidatorAppPublic',
|
||||
paraAssignment: 'PolkadotPrimitivesV1AssignmentAppPublic',
|
||||
paraValidator: 'PolkadotPrimitivesV2ValidatorAppPublic',
|
||||
paraAssignment: 'PolkadotPrimitivesV2AssignmentAppPublic',
|
||||
authorityDiscovery: 'SpAuthorityDiscoveryAppPublic'
|
||||
},
|
||||
/**
|
||||
* Lookup321: kusama_runtime::OriginCaller
|
||||
* Lookup326: kusama_runtime::OriginCaller
|
||||
**/
|
||||
KusamaRuntimeOriginCaller: {
|
||||
_enum: {
|
||||
@@ -152,7 +129,7 @@ export default {
|
||||
}
|
||||
},
|
||||
/**
|
||||
* Lookup386: kusama_runtime::NposCompactSolution24
|
||||
* Lookup392: kusama_runtime::NposCompactSolution24
|
||||
**/
|
||||
KusamaRuntimeNposCompactSolution24: {
|
||||
votes1: 'Vec<(Compact<u32>,Compact<u16>)>',
|
||||
@@ -181,28 +158,7 @@ export default {
|
||||
votes24: 'Vec<(Compact<u32>,[(Compact<u16>,Compact<PerU16>);23],Compact<u16>)>'
|
||||
},
|
||||
/**
|
||||
* Lookup506: polkadot_runtime_parachains::disputes::pallet::Call<T>
|
||||
**/
|
||||
PolkadotRuntimeParachainsDisputesPalletCall: {
|
||||
_enum: ['force_unfreeze']
|
||||
},
|
||||
/**
|
||||
* Lookup702: polkadot_primitives::v1::DisputeState<N>
|
||||
**/
|
||||
PolkadotPrimitivesV1DisputeState: {
|
||||
validatorsFor: 'BitVec',
|
||||
validatorsAgainst: 'BitVec',
|
||||
start: 'u32',
|
||||
concludedAt: 'Option<u32>'
|
||||
},
|
||||
/**
|
||||
* Lookup703: polkadot_runtime_parachains::disputes::pallet::Error<T>
|
||||
**/
|
||||
PolkadotRuntimeParachainsDisputesPalletError: {
|
||||
_enum: ['DuplicateDisputeStatementSets', 'AncientDisputeStatement', 'ValidatorIndexOutOfBounds', 'InvalidSignature', 'DuplicateStatement', 'PotentialSpam', 'SingleSidedDispute']
|
||||
},
|
||||
/**
|
||||
* Lookup738: kusama_runtime::Runtime
|
||||
* Lookup747: kusama_runtime::Runtime
|
||||
**/
|
||||
KusamaRuntimeRuntime: 'Null'
|
||||
};
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -2,9 +2,9 @@
|
||||
/* eslint-disable */
|
||||
|
||||
declare module '@polkadot/types/lookup' {
|
||||
import type { BitVec, Compact, Enum, Null, Option, Struct, Vec, u16, u32 } from '@polkadot/types-codec';
|
||||
import type { Compact, Enum, Null, Struct, Vec, u16, u32 } from '@polkadot/types-codec';
|
||||
import type { ITuple } from '@polkadot/types-codec/types';
|
||||
import type { H256, PerU16 } from '@polkadot/types/interfaces/runtime';
|
||||
import type { PerU16 } from '@polkadot/types/interfaces/runtime';
|
||||
|
||||
/** @name KusamaRuntimeProxyType (75) */
|
||||
export interface KusamaRuntimeProxyType extends Enum {
|
||||
@@ -15,47 +15,21 @@ declare module '@polkadot/types/lookup' {
|
||||
readonly isIdentityJudgement: boolean;
|
||||
readonly isCancelProxy: boolean;
|
||||
readonly isAuction: boolean;
|
||||
readonly type: 'Any' | 'NonTransfer' | 'Governance' | 'Staking' | 'IdentityJudgement' | 'CancelProxy' | 'Auction';
|
||||
readonly isSociety: boolean;
|
||||
readonly type: 'Any' | 'NonTransfer' | 'Governance' | 'Staking' | 'IdentityJudgement' | 'CancelProxy' | 'Auction' | 'Society';
|
||||
}
|
||||
|
||||
/** @name PolkadotRuntimeParachainsDisputesPalletEvent (105) */
|
||||
export interface PolkadotRuntimeParachainsDisputesPalletEvent extends Enum {
|
||||
readonly isDisputeInitiated: boolean;
|
||||
readonly asDisputeInitiated: ITuple<[H256, PolkadotRuntimeParachainsDisputesDisputeLocation]>;
|
||||
readonly isDisputeConcluded: boolean;
|
||||
readonly asDisputeConcluded: ITuple<[H256, PolkadotRuntimeParachainsDisputesDisputeResult]>;
|
||||
readonly isDisputeTimedOut: boolean;
|
||||
readonly asDisputeTimedOut: H256;
|
||||
readonly isRevert: boolean;
|
||||
readonly asRevert: u32;
|
||||
readonly type: 'DisputeInitiated' | 'DisputeConcluded' | 'DisputeTimedOut' | 'Revert';
|
||||
}
|
||||
|
||||
/** @name PolkadotRuntimeParachainsDisputesDisputeLocation (107) */
|
||||
export interface PolkadotRuntimeParachainsDisputesDisputeLocation extends Enum {
|
||||
readonly isLocal: boolean;
|
||||
readonly isRemote: boolean;
|
||||
readonly type: 'Local' | 'Remote';
|
||||
}
|
||||
|
||||
/** @name PolkadotRuntimeParachainsDisputesDisputeResult (108) */
|
||||
export interface PolkadotRuntimeParachainsDisputesDisputeResult extends Enum {
|
||||
readonly isValid: boolean;
|
||||
readonly isInvalid: boolean;
|
||||
readonly type: 'Valid' | 'Invalid';
|
||||
}
|
||||
|
||||
/** @name KusamaRuntimeSessionKeys (248) */
|
||||
/** @name KusamaRuntimeSessionKeys (252) */
|
||||
export interface KusamaRuntimeSessionKeys extends Struct {
|
||||
readonly grandpa: SpFinalityGrandpaAppPublic;
|
||||
readonly babe: SpConsensusBabeAppPublic;
|
||||
readonly imOnline: PalletImOnlineSr25519AppSr25519Public;
|
||||
readonly paraValidator: PolkadotPrimitivesV0ValidatorAppPublic;
|
||||
readonly paraAssignment: PolkadotPrimitivesV1AssignmentAppPublic;
|
||||
readonly paraValidator: PolkadotPrimitivesV2ValidatorAppPublic;
|
||||
readonly paraAssignment: PolkadotPrimitivesV2AssignmentAppPublic;
|
||||
readonly authorityDiscovery: SpAuthorityDiscoveryAppPublic;
|
||||
}
|
||||
|
||||
/** @name KusamaRuntimeOriginCaller (321) */
|
||||
/** @name KusamaRuntimeOriginCaller (326) */
|
||||
export interface KusamaRuntimeOriginCaller extends Enum {
|
||||
readonly isSystem: boolean;
|
||||
readonly asSystem: FrameSupportDispatchRawOrigin;
|
||||
@@ -71,7 +45,7 @@ declare module '@polkadot/types/lookup' {
|
||||
readonly type: 'System' | 'Void' | 'Council' | 'TechnicalCommittee' | 'ParachainsOrigin' | 'XcmPallet';
|
||||
}
|
||||
|
||||
/** @name KusamaRuntimeNposCompactSolution24 (386) */
|
||||
/** @name KusamaRuntimeNposCompactSolution24 (392) */
|
||||
export interface KusamaRuntimeNposCompactSolution24 extends Struct {
|
||||
readonly votes1: Vec<ITuple<[Compact<u32>, Compact<u16>]>>;
|
||||
readonly votes2: Vec<ITuple<[Compact<u32>, ITuple<[Compact<u16>, Compact<PerU16>]>, Compact<u16>]>>;
|
||||
@@ -99,33 +73,7 @@ declare module '@polkadot/types/lookup' {
|
||||
readonly votes24: Vec<ITuple<[Compact<u32>, Vec<ITuple<[Compact<u16>, Compact<PerU16>]>>, Compact<u16>]>>;
|
||||
}
|
||||
|
||||
/** @name PolkadotRuntimeParachainsDisputesPalletCall (506) */
|
||||
export interface PolkadotRuntimeParachainsDisputesPalletCall extends Enum {
|
||||
readonly isForceUnfreeze: boolean;
|
||||
readonly type: 'ForceUnfreeze';
|
||||
}
|
||||
|
||||
/** @name PolkadotPrimitivesV1DisputeState (702) */
|
||||
export interface PolkadotPrimitivesV1DisputeState extends Struct {
|
||||
readonly validatorsFor: BitVec;
|
||||
readonly validatorsAgainst: BitVec;
|
||||
readonly start: u32;
|
||||
readonly concludedAt: Option<u32>;
|
||||
}
|
||||
|
||||
/** @name PolkadotRuntimeParachainsDisputesPalletError (703) */
|
||||
export interface PolkadotRuntimeParachainsDisputesPalletError extends Enum {
|
||||
readonly isDuplicateDisputeStatementSets: boolean;
|
||||
readonly isAncientDisputeStatement: boolean;
|
||||
readonly isValidatorIndexOutOfBounds: boolean;
|
||||
readonly isInvalidSignature: boolean;
|
||||
readonly isDuplicateStatement: boolean;
|
||||
readonly isPotentialSpam: boolean;
|
||||
readonly isSingleSidedDispute: boolean;
|
||||
readonly type: 'DuplicateDisputeStatementSets' | 'AncientDisputeStatement' | 'ValidatorIndexOutOfBounds' | 'InvalidSignature' | 'DuplicateStatement' | 'PotentialSpam' | 'SingleSidedDispute';
|
||||
}
|
||||
|
||||
/** @name KusamaRuntimeRuntime (738) */
|
||||
/** @name KusamaRuntimeRuntime (747) */
|
||||
export type KusamaRuntimeRuntime = Null;
|
||||
|
||||
} // declare module
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -3,4 +3,4 @@
|
||||
|
||||
// Do not edit, auto-generated by @polkadot/dev
|
||||
|
||||
export const packageInfo = { name: '@polkadot/types-augment', path: 'auto', type: 'auto', version: '7.8.1' };
|
||||
export const packageInfo = { name: '@polkadot/types-augment', path: 'auto', type: 'auto', version: '7.15.1' };
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
// Copyright 2017-2022 @polkadot/types-lookup authors & contributors
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
import './interfaces';
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user