Compare commits

...
24 Commits
Author SHA1 Message Date
Github Actions 564d63ce28 [CI Skip] release/stable 5.7.1
skip-checks: true
2021-08-29 17:31:35 +00:00
Jaco 69db63b6f9 5.7.1 (#3912) 2021-08-29 19:21:47 +02:00
Github Actions 2bd81e9d05 [CI Skip] release/beta 5.6.2-10
skip-checks: true
2021-08-28 06:57:45 +00:00
Jaco d267895dd5 Bump common (#3911)
* Bump common

* Bump other deps
2021-08-28 08:45:30 +02:00
Github Actions 190e0fcdb1 [CI Skip] release/beta 5.6.2-9
skip-checks: true
2021-08-28 06:23:35 +00:00
Jaco 5e83837c5b Remove unneeded Vec copy operations (#3909)
* Remove unneeded Vec copy operations

* a-e

* Tuple adjust
2021-08-28 08:12:17 +02:00
Github Actions 7f949874e6 [CI Skip] release/beta 5.6.2-8
skip-checks: true
2021-08-28 06:09:31 +00:00
Jaco b024d7f63c Don't fail when specified balances instances are non-existent (#3910) 2021-08-28 08:00:29 +02:00
Github Actions 4bc76bb3e5 [CI Skip] release/beta 5.6.2-7
skip-checks: true
2021-08-26 06:05:29 +00:00
Jaco 212b43dda2 Add Kusama 9090 ugrade block (#3905) 2021-08-26 07:54:11 +02:00
Github Actions 0ba1b318a7 [CI Skip] release/beta 5.6.2-6
skip-checks: true
2021-08-25 09:42:37 +00:00
Jaco 2e8e5a93ca Rang now correctly specified (#3902) 2021-08-25 11:32:54 +02:00
Github Actions 6101f82000 [CI Skip] release/beta 5.6.2-5
skip-checks: true
2021-08-24 15:09:48 +00:00
Jaco 662aef2033 Handle scale-info Range (#3899)
* Handle scale-info Range

* Handle Range in PortableRegistry

* Cleanups

* Rebuild, fix tests (Range to be moved)
2021-08-24 16:57:30 +02:00
Github Actions 0859c470be [CI Skip] release/beta 5.6.2-4
skip-checks: true
2021-08-24 10:21:28 +00:00
Jaco 29fe22da43 Tie statemint to v0 xcm (#3897) 2021-08-24 12:10:35 +02:00
Github Actions 7eef825b38 [CI Skip] release/beta 5.6.2-3
skip-checks: true
2021-08-24 09:32:20 +00:00
Jaco 24808fb55d Adjust enum toHuman output (#3896) 2021-08-24 12:20:22 +03:00
Github Actions 9c06ed7a1c [CI Skip] release/beta 5.6.2-2
skip-checks: true
2021-08-24 07:50:11 +00:00
Jaco 9560259f55 Versioned Xcm (#3892) 2021-08-24 09:37:53 +02:00
Github Actions 6236838fc8 [CI Skip] release/beta 5.6.2-1
skip-checks: true
2021-08-24 07:27:16 +00:00
Jaco e14eddfee3 Bump deps (#3895) 2021-08-24 09:14:56 +02:00
Github Actions 0927f9ba8c [CI Skip] release/beta 5.6.2-0
skip-checks: true
2021-08-23 20:20:11 +00:00
Jaco a8775fd69d Allow aliasses for para (#3894)
* Allow aliasses for para

* Adjust indexes
2021-08-23 22:08:53 +02:00
46 changed files with 1872 additions and 1476 deletions
+16
View File
@@ -1,5 +1,21 @@
# CHANGELOG
## 5.7.1 Aug 29, 2021
Upgrade priority: Low.
Changes:
- Optimize `Vec` construction (no re-create on new arrays)
- Adjust output for enums in `toHuman`
- Adjust aliases for new parachain module locations
- Support for versioned xcm types (Polkadot master)
- Add support for `Range` in `PortableRegistry` (used in Metadata 14)
- Adjust balances derive for non-existent instances
- Ensure Statemint (current) defaults to xcm v0
- Add Kusama 9090 upgrade block
## 5.6.1 Aug 23, 2021
Upgrade priority: Low. Recommended for users of Xcm, preparing for Kusama/Westend 9100
+4 -4
View File
@@ -29,12 +29,12 @@
"@babel/core": "^7.15.0",
"@babel/register": "^7.15.3",
"@babel/runtime": "^7.15.3",
"@polkadot/dev": "^0.62.60",
"@polkadot/ts": "^0.4.4",
"@polkadot/dev": "^0.62.62",
"@polkadot/ts": "^0.4.6",
"@polkadot/typegen": "workspace:packages/typegen",
"@types/jest": "^26.0.24",
"@types/jest": "^27.0.1",
"copyfiles": "^2.4.1"
},
"version": "5.6.1",
"version": "5.7.1",
"packageManager": "yarn@3.0.1"
}
+4 -4
View File
@@ -1,6 +1,6 @@
{
"name": "@polkadot/api-contract",
"version": "5.6.1",
"version": "5.7.1",
"type": "module",
"description": "Interfaces for interacting with contracts and contract ABIs",
"main": "index.js",
@@ -20,9 +20,9 @@
"homepage": "https://github.com/polkadot-js/api/tree/master/packages/api-contract#readme",
"dependencies": {
"@babel/runtime": "^7.15.3",
"@polkadot/api": "5.6.1",
"@polkadot/types": "5.6.1",
"@polkadot/util": "^7.2.1",
"@polkadot/api": "5.7.1",
"@polkadot/types": "5.7.1",
"@polkadot/util": "^7.3.1",
"rxjs": "^7.3.0"
}
}
+1 -1
View File
@@ -3,4 +3,4 @@
// Auto-generated by @polkadot/dev, do not edit
export const packageInfo = { name: '@polkadot/api-contract', version: '5.6.1' };
export const packageInfo = { name: '@polkadot/api-contract', version: '5.7.1' };
+8 -8
View File
@@ -1,6 +1,6 @@
{
"name": "@polkadot/api-derive",
"version": "5.6.1",
"version": "5.7.1",
"type": "module",
"description": "Common functions used across Polkadot, derived from RPC calls and storage queries.",
"main": "index.js",
@@ -20,15 +20,15 @@
"homepage": "https://github.com/polkadot-js/api/tree/master/packages/api-derive#readme",
"dependencies": {
"@babel/runtime": "^7.15.3",
"@polkadot/api": "5.6.1",
"@polkadot/rpc-core": "5.6.1",
"@polkadot/types": "5.6.1",
"@polkadot/util": "^7.2.1",
"@polkadot/util-crypto": "^7.2.1",
"@polkadot/api": "5.7.1",
"@polkadot/rpc-core": "5.7.1",
"@polkadot/types": "5.7.1",
"@polkadot/util": "^7.3.1",
"@polkadot/util-crypto": "^7.3.1",
"rxjs": "^7.3.0"
},
"devDependencies": {
"@polkadot/keyring": "^7.2.1",
"@polkadot/rpc-provider": "5.6.1"
"@polkadot/keyring": "^7.3.1",
"@polkadot/rpc-provider": "5.7.1"
}
}
+41 -38
View File
@@ -2,14 +2,14 @@
// SPDX-License-Identifier: Apache-2.0
import type { Observable } from 'rxjs';
import type { ApiInterfaceRx, QueryableStorageMultiArg } from '@polkadot/api/types';
import type { ApiInterfaceRx, QueryableStorageEntry } from '@polkadot/api/types';
import type { AccountData, AccountId, AccountIndex, AccountInfo, Address, Balance, Index } from '@polkadot/types/interfaces';
import type { ITuple } from '@polkadot/types/types';
import type { DeriveBalancesAccount, DeriveBalancesAccountData } from '../types';
import { combineLatest, map, of, switchMap } from 'rxjs';
import { assert, isFunction } from '@polkadot/util';
import { isFunction } from '@polkadot/util';
import { memo } from '../util';
@@ -39,15 +39,11 @@ function getBalance (api: ApiInterfaceRx, [freeBalance, reservedBalance, frozenF
};
}
function calcBalances (api: ApiInterfaceRx, [accountId, [accountNonce, balances]]: [AccountId, Result]): DeriveBalancesAccount {
const primary = balances[0];
assert(primary, 'No balances retrieved for account');
function calcBalances (api: ApiInterfaceRx, [accountId, [accountNonce, [primary, ...additional]]]: [AccountId, Result]): DeriveBalancesAccount {
return {
accountId,
accountNonce,
additional: balances.filter((_, index) => index !== 0).map((b) => getBalance(api, b)),
additional: additional.map((b) => getBalance(api, b)),
...getBalance(api, primary)
};
}
@@ -66,34 +62,44 @@ function queryBalancesFree (api: ApiInterfaceRx, accountId: AccountId): Observab
);
}
function querySystemNonce (api: ApiInterfaceRx, accountId: AccountId): Observable<Result> {
return api.query.system.accountNonce<Index>(accountId).pipe(
map((accountNonce): Result => [
accountNonce,
[[zeroBalance(api), zeroBalance(api), zeroBalance(api), zeroBalance(api)]]
])
);
function queryNonceOnly (api: ApiInterfaceRx, accountId: AccountId): Observable<Result> {
const fill = (nonce: Index): Result => [
nonce,
[[zeroBalance(api), zeroBalance(api), zeroBalance(api), zeroBalance(api)]]
];
return isFunction(api.query.system.account)
? api.query.system.account(accountId).pipe(
map(({ nonce }) => fill(nonce))
)
: isFunction(api.query.system.accountNonce)
? api.query.system.accountNonce<Index>(accountId).pipe(
map((nonce) => fill(nonce))
)
: of(fill(api.registry.createType('Index')));
}
function queryBalancesAccount (api: ApiInterfaceRx, accountId: AccountId, modules: string[] = ['balances']): Observable<Result> {
const balances = modules.map(
(m): QueryableStorageMultiArg<'rxjs'> => [
(api.derive as DeriveCustomAccount)[m]?.customAccount || api.query[m].account,
accountId
]
);
const balances = modules
.map((m): QueryableStorageEntry<'rxjs'> => (api.derive as DeriveCustomAccount)[m]?.customAccount || api.query[m]?.account)
.filter((q) => isFunction(q))
.map((q): [QueryableStorageEntry<'rxjs'>, AccountId] => [q, accountId]);
const extract = (data: AccountData[]) =>
data.map(({ feeFrozen, free, miscFrozen, reserved }): BalanceResult => [free, reserved, feeFrozen, miscFrozen]);
const extract = (nonce: Index, data: AccountData[]): Result => [
nonce,
data.map(({ feeFrozen, free, miscFrozen, reserved }): BalanceResult => [free, reserved, feeFrozen, miscFrozen])
];
// NOTE this is for the first case where we do have instances specified
return isFunction(api.query.system.account)
? api.queryMulti<[AccountInfo, ...(AccountData[])]>([[api.query.system.account, accountId], ...balances]).pipe(
map(([{ nonce }, ...balances]): Result => [nonce, extract(balances)])
)
: api.queryMulti<[Index, ...(AccountData[])]>([[api.query.system.accountNonce, accountId], ...balances]).pipe(
map(([nonce, ...balances]): Result => [nonce, extract(balances)])
);
return balances.length
? isFunction(api.query.system.account)
? api.queryMulti<[AccountInfo, ...(AccountData[])]>([[api.query.system.account, accountId], ...balances]).pipe(
map(([{ nonce }, ...balances]) => extract(nonce, balances))
)
: api.queryMulti<[Index, ...(AccountData[])]>([[api.query.system.accountNonce, accountId], ...balances]).pipe(
map(([nonce, ...balances]) => extract(nonce, balances))
)
: queryNonceOnly(api, accountId);
}
function querySystemAccount (api: ApiInterfaceRx, accountId: AccountId): Observable<Result> {
@@ -140,10 +146,6 @@ function querySystemAccount (api: ApiInterfaceRx, accountId: AccountId): Observa
*/
export function account (instanceId: string, api: ApiInterfaceRx): (address: AccountIndex | AccountId | Address | string) => Observable<DeriveBalancesAccount> {
const balanceInstances = api.registry.getModuleInstances(api.runtimeVersion.specName.toString(), 'balances');
const empty: Result = [
api.registry.createType('Index'),
[[zeroBalance(api), zeroBalance(api), zeroBalance(api), zeroBalance(api)]]
];
return memo(instanceId, (address: AccountIndex | AccountId | Address | string): Observable<DeriveBalancesAccount> =>
api.derive.accounts.accountId(address).pipe(
@@ -159,11 +161,12 @@ export function account (instanceId: string, api: ApiInterfaceRx): (address: Acc
? queryBalancesAccount(api, accountId)
: isFunction(api.query.balances?.freeBalance)
? queryBalancesFree(api, accountId)
: isFunction(api.query.system?.accountNonce)
? querySystemNonce(api, accountId)
: of(empty)
: queryNonceOnly(api, accountId)
])
: of([api.registry.createType('AccountId'), empty])
: of([api.registry.createType('AccountId'), [
api.registry.createType('Index'),
[[zeroBalance(api), zeroBalance(api), zeroBalance(api), zeroBalance(api)]]
]])
)
),
map((result): DeriveBalancesAccount => calcBalances(api, result))
+1 -1
View File
@@ -3,4 +3,4 @@
// Auto-generated by @polkadot/dev, do not edit
export const packageInfo = { name: '@polkadot/api-derive', version: '5.6.1' };
export const packageInfo = { name: '@polkadot/api-derive', version: '5.7.1' };
+9 -9
View File
@@ -1,6 +1,6 @@
{
"name": "@polkadot/api",
"version": "5.6.1",
"version": "5.7.1",
"type": "module",
"description": "Promise and RxJS wrappers around the Polkadot JS RPC",
"main": "index.js",
@@ -20,14 +20,14 @@
"homepage": "https://github.com/polkadot-js/api/tree/master/packages/api#readme",
"dependencies": {
"@babel/runtime": "^7.15.3",
"@polkadot/api-derive": "5.6.1",
"@polkadot/keyring": "^7.2.1",
"@polkadot/rpc-core": "5.6.1",
"@polkadot/rpc-provider": "5.6.1",
"@polkadot/types": "5.6.1",
"@polkadot/types-known": "5.6.1",
"@polkadot/util": "^7.2.1",
"@polkadot/util-crypto": "^7.2.1",
"@polkadot/api-derive": "5.7.1",
"@polkadot/keyring": "^7.3.1",
"@polkadot/rpc-core": "5.7.1",
"@polkadot/rpc-provider": "5.7.1",
"@polkadot/types": "5.7.1",
"@polkadot/types-known": "5.7.1",
"@polkadot/util": "^7.3.1",
"@polkadot/util-crypto": "^7.3.1",
"eventemitter3": "^4.0.7",
"rxjs": "^7.3.0"
}
+1 -1
View File
@@ -3,4 +3,4 @@
// Auto-generated by @polkadot/dev, do not edit
export const packageInfo = { name: '@polkadot/api', version: '5.6.1' };
export const packageInfo = { name: '@polkadot/api', version: '5.7.1' };
+5 -5
View File
@@ -1,6 +1,6 @@
{
"name": "@polkadot/rpc-core",
"version": "5.6.1",
"version": "5.7.1",
"type": "module",
"description": "A JavaScript wrapper for the Polkadot JsonRPC interface",
"main": "index.js",
@@ -20,12 +20,12 @@
"homepage": "https://github.com/polkadot-js/api/tree/master/packages/rpc-core#readme",
"dependencies": {
"@babel/runtime": "^7.15.3",
"@polkadot/rpc-provider": "5.6.1",
"@polkadot/types": "5.6.1",
"@polkadot/util": "^7.2.1",
"@polkadot/rpc-provider": "5.7.1",
"@polkadot/types": "5.7.1",
"@polkadot/util": "^7.3.1",
"rxjs": "^7.3.0"
},
"devDependencies": {
"@polkadot/keyring": "^7.2.1"
"@polkadot/keyring": "^7.3.1"
}
}
+1 -1
View File
@@ -3,4 +3,4 @@
// Auto-generated by @polkadot/dev, do not edit
export const packageInfo = { name: '@polkadot/rpc-core', version: '5.6.1' };
export const packageInfo = { name: '@polkadot/rpc-core', version: '5.7.1' };
+10 -10
View File
@@ -1,6 +1,6 @@
{
"name": "@polkadot/rpc-provider",
"version": "5.6.1",
"version": "5.7.1",
"type": "module",
"description": "Transport providers for the API",
"main": "index.js",
@@ -20,18 +20,18 @@
"homepage": "https://github.com/polkadot-js/api/tree/master/packages/rpc-provider#readme",
"dependencies": {
"@babel/runtime": "^7.15.3",
"@polkadot/types": "5.6.1",
"@polkadot/util": "^7.2.1",
"@polkadot/util-crypto": "^7.2.1",
"@polkadot/x-fetch": "^7.2.1",
"@polkadot/x-global": "^7.2.1",
"@polkadot/x-ws": "^7.2.1",
"@polkadot/types": "5.7.1",
"@polkadot/util": "^7.3.1",
"@polkadot/util-crypto": "^7.3.1",
"@polkadot/x-fetch": "^7.3.1",
"@polkadot/x-global": "^7.3.1",
"@polkadot/x-ws": "^7.3.1",
"eventemitter3": "^4.0.7"
},
"devDependencies": {
"@polkadot/keyring": "^7.2.1",
"@polkadot/types": "5.6.1",
"@polkadot/keyring": "^7.3.1",
"@polkadot/types": "5.7.1",
"mock-socket": "^9.0.3",
"nock": "^13.1.1"
"nock": "^13.1.3"
}
}
+1 -1
View File
@@ -3,4 +3,4 @@
// Auto-generated by @polkadot/dev, do not edit
export const packageInfo = { name: '@polkadot/rpc-provider', version: '5.6.1' };
export const packageInfo = { name: '@polkadot/rpc-provider', version: '5.7.1' };
+6 -6
View File
@@ -1,6 +1,6 @@
{
"name": "@polkadot/typegen",
"version": "5.6.1",
"version": "5.7.1",
"type": "module",
"description": "Type generation scripts",
"main": "index.js",
@@ -29,11 +29,11 @@
"@babel/core": "^7.15.0",
"@babel/register": "^7.15.3",
"@babel/runtime": "^7.15.3",
"@polkadot/api": "5.6.1",
"@polkadot/rpc-provider": "5.6.1",
"@polkadot/types": "5.6.1",
"@polkadot/types-support": "5.6.1",
"@polkadot/util": "^7.2.1",
"@polkadot/api": "5.7.1",
"@polkadot/rpc-provider": "5.7.1",
"@polkadot/types": "5.7.1",
"@polkadot/types-support": "5.7.1",
"@polkadot/util": "^7.3.1",
"handlebars": "^4.7.7",
"websocket": "^1.0.34",
"yargs": "^17.1.1"
+1 -1
View File
@@ -76,7 +76,7 @@ function tsEnum (registry: Registry, definitions: Record<string, ModuleTypes>, {
return '';
default:
throw new Error(`Enum: ${enumName || 'undefined'}: Unhandled type ${TypeDefInfo[info]}`);
throw new Error(`Enum: ${enumName || 'undefined'}: Unhandled nested "${TypeDefInfo[info]}" type`);
}
});
+1 -1
View File
@@ -3,4 +3,4 @@
// Auto-generated by @polkadot/dev, do not edit
export const packageInfo = { name: '@polkadot/typegen', version: '5.6.1' };
export const packageInfo = { name: '@polkadot/typegen', version: '5.7.1' };
+4 -4
View File
@@ -1,6 +1,6 @@
{
"name": "@polkadot/types-known",
"version": "5.6.1",
"version": "5.7.1",
"type": "module",
"description": "Known type definitions",
"main": "index.js",
@@ -20,8 +20,8 @@
"homepage": "https://github.com/polkadot-js/api/tree/master/packages/types-known#readme",
"dependencies": {
"@babel/runtime": "^7.15.3",
"@polkadot/networks": "^7.2.1",
"@polkadot/types": "5.6.1",
"@polkadot/util": "^7.2.1"
"@polkadot/networks": "^7.3.1",
"@polkadot/types": "5.7.1",
"@polkadot/util": "^7.3.1"
}
}
+9
View File
@@ -48,6 +48,15 @@ const typesModules: Record<string, OverrideModuleType> = {
inclusion: {
ValidatorIndex: 'ParaValidatorIndex'
},
paraInclusion: {
ValidatorIndex: 'ParaValidatorIndex'
},
paraScheduler: {
ValidatorIndex: 'ParaValidatorIndex'
},
paraShared: {
ValidatorIndex: 'ParaValidatorIndex'
},
parachains: {
Id: 'ParaId'
},
+1 -1
View File
@@ -3,4 +3,4 @@
// Auto-generated by @polkadot/dev, do not edit
export const packageInfo = { name: '@polkadot/types-known', version: '5.6.1' };
export const packageInfo = { name: '@polkadot/types-known', version: '5.7.1' };
+1
View File
@@ -195,6 +195,7 @@ const versioned: OverrideVersionedType[] = [
...sharedTypes,
AssetInstance: 'AssetInstanceV0',
MultiAsset: 'MultiAssetV0',
Xcm: 'XcmV0',
XcmOrder: 'XcmOrderV0'
}
}
+5 -1
View File
@@ -40,7 +40,11 @@ const versioned: OverrideVersionedType[] = [
{
minmax: [229, undefined],
types: {
...sharedTypes
...sharedTypes,
AssetInstance: 'AssetInstanceV0',
MultiAsset: 'MultiAssetV0',
Xcm: 'XcmV0',
XcmOrder: 'XcmOrderV0'
}
}
];
+6 -2
View File
@@ -5,7 +5,7 @@
import type { OverrideVersionedType } from '@polkadot/types/types';
// these are override types for Polkadot
// these are override types for Statemine, Statemint, Westmint
const versioned: OverrideVersionedType[] = [
{
minmax: [0, undefined],
@@ -21,7 +21,11 @@ const versioned: OverrideVersionedType[] = [
'AssetManager',
'Staking'
]
}
},
AssetInstance: 'AssetInstanceV0',
MultiAsset: 'MultiAssetV0',
Xcm: 'XcmV0',
XcmOrder: 'XcmOrderV0'
}
}
];
+1
View File
@@ -94,6 +94,7 @@ const versioned: OverrideVersionedType[] = [
...sharedTypes,
AssetInstance: 'AssetInstanceV0',
MultiAsset: 'MultiAssetV0',
Xcm: 'XcmV0',
XcmOrder: 'XcmOrderV0'
}
}
+1 -1
View File
@@ -13,7 +13,7 @@ const upgrades: ChainUpgradesRaw = [
[2962294, 2012], [3240000, 2013], [3274408, 2015], [3323565, 2019], [3534175, 2022],
[3860281, 2023], [4143129, 2024], [4401242, 2025], [4841367, 2026], [5961600, 2027],
[6137912, 2028], [6561855, 2029], [7100891, 2030], [7468792, 9010], [7668600, 9030],
[7812476, 9040], [8010981, 9050], [8073833, 9070], [8555825, 9080]
[7812476, 9040], [8010981, 9050], [8073833, 9070], [8555825, 9080], [8945245, 9090]
];
export default upgrades;
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@polkadot/types-support",
"version": "5.6.1",
"version": "5.7.1",
"type": "module",
"description": "Supporting files for types, mostly for testing",
"main": "index.js",
@@ -20,6 +20,6 @@
"homepage": "https://github.com/polkadot-js/api/tree/master/packages/types-support#readme",
"dependencies": {
"@babel/runtime": "^7.15.3",
"@polkadot/util": "^7.2.1"
"@polkadot/util": "^7.3.1"
}
}
@@ -13544,7 +13544,7 @@
"type": {
"map": {
"hasher": "Twox64Concat",
"key": "ValidatorIndex",
"key": "ParaValidatorIndex",
"value": "AvailabilityBitfieldRecord",
"linked": false
}
@@ -13846,7 +13846,7 @@
"name": "ValidatorGroups",
"modifier": "Default",
"type": {
"plain": "Vec<Vec<ValidatorIndex>>"
"plain": "Vec<Vec<ParaValidatorIndex>>"
},
"fallback": "0x00",
"docs": [
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -3,4 +3,4 @@
// Auto-generated by @polkadot/dev, do not edit
export const packageInfo = { name: '@polkadot/types-support', version: '5.6.1' };
export const packageInfo = { name: '@polkadot/types-support', version: '5.7.1' };
+6 -6
View File
@@ -1,6 +1,6 @@
{
"name": "@polkadot/types",
"version": "5.6.1",
"version": "5.7.1",
"type": "module",
"description": "Implementation of the Parity codec",
"main": "index.js",
@@ -20,14 +20,14 @@
"homepage": "https://github.com/polkadot-js/api/tree/master/packages/types#readme",
"dependencies": {
"@babel/runtime": "^7.15.3",
"@polkadot/util": "^7.2.1",
"@polkadot/util-crypto": "^7.2.1",
"@polkadot/util": "^7.3.1",
"@polkadot/util-crypto": "^7.3.1",
"rxjs": "^7.3.0"
},
"devDependencies": {
"@polkadot/keyring": "^7.2.1",
"@polkadot/types-support": "5.6.1",
"@polkadot/keyring": "^7.3.1",
"@polkadot/types-support": "5.7.1",
"@types/bn.js": "^4.11.6",
"bn.js": "^4.11.9"
"bn.js": "^4.12.0"
}
}
+11 -2
View File
@@ -44,7 +44,7 @@ import type { AccountStatus, AccountValidity } from '@polkadot/types/interfaces/
import type { ActiveRecovery, RecoveryConfig } from '@polkadot/types/interfaces/recovery';
import type { RpcMethods } from '@polkadot/types/interfaces/rpc';
import type { AccountId, AccountId20, AccountId32, AccountIdOf, AccountIndex, Address, AssetId, Balance, BalanceOf, Block, BlockNumber, BlockNumberFor, BlockNumberOf, Call, CallHash, CallHashOf, ChangesTrieConfiguration, ChangesTrieSignal, CodecHash, Consensus, ConsensusEngineId, Digest, DigestItem, EncodedJustification, ExtrinsicsWeight, Fixed128, Fixed64, FixedI128, FixedI64, FixedU128, FixedU64, H1024, H128, H160, H2048, H256, H32, H512, H64, Hash, Header, HeaderPartial, I32F32, Index, IndicesLookupSource, Justification, Justifications, KeyTypeId, KeyValue, LockIdentifier, LookupSource, LookupTarget, ModuleId, Moment, MultiAddress, MultiSigner, OpaqueCall, Origin, OriginCaller, PalletId, PalletVersion, PalletsOrigin, Pays, PerU16, Perbill, Percent, Permill, Perquintill, Phantom, PhantomData, PreRuntime, Releases, RuntimeDbWeight, Seal, SealV0, SignedBlock, SignedBlockWithJustification, SignedBlockWithJustifications, Slot, StorageData, StorageProof, TransactionInfo, TransactionPriority, TransactionStorageProof, U32F32, ValidatorId, ValidatorIdOf, Weight, WeightMultiplier } from '@polkadot/types/interfaces/runtime';
import type { Si0Field, Si0LookupTypeId, Si0Path, Si0Type, Si0TypeDef, Si0TypeDefArray, Si0TypeDefBitSequence, Si0TypeDefCompact, Si0TypeDefComposite, Si0TypeDefPhantom, Si0TypeDefPrimitive, Si0TypeDefSequence, Si0TypeDefTuple, Si0TypeDefVariant, Si0TypeParameter, Si0Variant, SiField, SiLookupTypeId, SiPath, SiType, SiTypeDef, SiTypeDefArray, SiTypeDefBitSequence, SiTypeDefCompact, SiTypeDefComposite, SiTypeDefPrimitive, SiTypeDefSequence, SiTypeDefTuple, SiTypeDefVariant, SiTypeParameter, SiVariant } from '@polkadot/types/interfaces/scaleInfo';
import type { Si0Field, Si0LookupTypeId, Si0Path, Si0Type, Si0TypeDef, Si0TypeDefArray, Si0TypeDefBitSequence, Si0TypeDefCompact, Si0TypeDefComposite, Si0TypeDefPhantom, Si0TypeDefPrimitive, Si0TypeDefSequence, Si0TypeDefTuple, Si0TypeDefVariant, Si0TypeParameter, Si0Variant, SiField, SiLookupTypeId, SiPath, SiType, SiTypeDef, SiTypeDefArray, SiTypeDefBitSequence, SiTypeDefCompact, SiTypeDefComposite, SiTypeDefPrimitive, SiTypeDefRange, SiTypeDefSequence, SiTypeDefTuple, SiTypeDefVariant, SiTypeParameter, SiVariant } from '@polkadot/types/interfaces/scaleInfo';
import type { Period, Priority, SchedulePeriod, SchedulePriority, Scheduled, ScheduledTo254, TaskAddress } from '@polkadot/types/interfaces/scheduler';
import type { BeefyKey, FullIdentification, IdentificationTuple, Keys, MembershipProof, SessionIndex, SessionKeys1, SessionKeys10, SessionKeys10B, SessionKeys2, SessionKeys3, SessionKeys4, SessionKeys5, SessionKeys6, SessionKeys6B, SessionKeys7, SessionKeys7B, SessionKeys8, SessionKeys8B, SessionKeys9, SessionKeys9B, ValidatorCount } from '@polkadot/types/interfaces/session';
import type { Bid, BidKind, SocietyJudgement, SocietyVote, StrikeCount, VouchingStatus } from '@polkadot/types/interfaces/society';
@@ -57,7 +57,7 @@ import type { Multiplier } from '@polkadot/types/interfaces/txpayment';
import type { ClassDetails, ClassId, ClassMetadata, DepositBalance, DepositBalanceOf, DestroyWitness, InstanceDetails, InstanceId, InstanceMetadata } from '@polkadot/types/interfaces/uniques';
import type { Multisig, Timepoint } from '@polkadot/types/interfaces/utility';
import type { VestingInfo } from '@polkadot/types/interfaces/vesting';
import type { AssetInstance, AssetInstanceV0, AssetInstanceV1, BodyId, BodyPart, DoubleEncodedCall, Fungibility, InboundStatus, Junction, MultiAsset, MultiAssetFilter, MultiAssetV0, MultiAssetV1, MultiAssets, MultiLocation, NetworkId, OutboundStatus, Outcome, QueueConfigData, VersionedMultiAsset, VersionedMultiLocation, VersionedXcm, WildFungibility, WildMultiAsset, Xcm, XcmAssetId, XcmError, XcmOrder, XcmOrderV0, XcmOrderV1, XcmOrigin, XcmOriginKind, XcmResponse, XcmpMessageFormat } from '@polkadot/types/interfaces/xcm';
import type { AssetInstance, AssetInstanceV0, AssetInstanceV1, BodyId, BodyPart, DoubleEncodedCall, Fungibility, InboundStatus, Junction, MultiAsset, MultiAssetFilter, MultiAssetFilterV1, MultiAssetV0, MultiAssetV1, MultiAssets, MultiAssetsV1, MultiLocation, MultiLocationV0, MultiLocationV1, NetworkId, OutboundStatus, Outcome, QueueConfigData, VersionedMultiAsset, VersionedMultiAssets, VersionedMultiLocation, VersionedXcm, WildFungibility, WildMultiAsset, WildMultiAssetV1, Xcm, XcmAssetId, XcmError, XcmOrder, XcmOrderV0, XcmOrderV1, XcmOrigin, XcmOriginKind, XcmResponse, XcmV0, XcmV1, XcmpMessageFormat } from '@polkadot/types/interfaces/xcm';
declare module '@polkadot/types/types/registry' {
export interface InterfaceTypes {
@@ -548,11 +548,15 @@ declare module '@polkadot/types/types/registry' {
MultiAddress: MultiAddress;
MultiAsset: MultiAsset;
MultiAssetFilter: MultiAssetFilter;
MultiAssetFilterV1: MultiAssetFilterV1;
MultiAssets: MultiAssets;
MultiAssetsV1: MultiAssetsV1;
MultiAssetV0: MultiAssetV0;
MultiAssetV1: MultiAssetV1;
MultiDisputeStatementSet: MultiDisputeStatementSet;
MultiLocation: MultiLocation;
MultiLocationV0: MultiLocationV0;
MultiLocationV1: MultiLocationV1;
Multiplier: Multiplier;
Multisig: Multisig;
MultiSignature: MultiSignature;
@@ -806,6 +810,7 @@ declare module '@polkadot/types/types/registry' {
SiTypeDefCompact: SiTypeDefCompact;
SiTypeDefComposite: SiTypeDefComposite;
SiTypeDefPrimitive: SiTypeDefPrimitive;
SiTypeDefRange: SiTypeDefRange;
SiTypeDefSequence: SiTypeDefSequence;
SiTypeDefTuple: SiTypeDefTuple;
SiTypeDefVariant: SiTypeDefVariant;
@@ -943,6 +948,7 @@ declare module '@polkadot/types/types/registry' {
ValidityAttestation: ValidityAttestation;
VecInboundHrmpMessage: VecInboundHrmpMessage;
VersionedMultiAsset: VersionedMultiAsset;
VersionedMultiAssets: VersionedMultiAssets;
VersionedMultiLocation: VersionedMultiLocation;
VersionedXcm: VersionedXcm;
VestingInfo: VestingInfo;
@@ -969,6 +975,7 @@ declare module '@polkadot/types/types/registry' {
WeightToFeeCoefficient: WeightToFeeCoefficient;
WildFungibility: WildFungibility;
WildMultiAsset: WildMultiAsset;
WildMultiAssetV1: WildMultiAssetV1;
WinnersData: WinnersData;
WinnersDataTuple: WinnersDataTuple;
WinningData: WinningData;
@@ -984,5 +991,7 @@ declare module '@polkadot/types/types/registry' {
XcmOriginKind: XcmOriginKind;
XcmpMessageFormat: XcmpMessageFormat;
XcmResponse: XcmResponse;
XcmV0: XcmV0;
XcmV1: XcmV1;
}
}
+6 -2
View File
@@ -20,8 +20,12 @@ export abstract class AbstractArray<T extends Codec> extends Array<T> implements
public createdAtHash?: Hash;
protected constructor (registry: Registry, ...values: T[]) {
super(...values);
protected constructor (registry: Registry, values: T[]) {
super(values.length);
for (let i = 0; i < values.length; i++) {
this[i] = values[i];
}
this.registry = registry;
}
+5 -4
View File
@@ -259,14 +259,15 @@ export class Enum implements IEnum {
* @description Checks if the Enum points to a [[Null]] type
*/
public get isNone (): boolean {
return this.isNull;
return this.#raw instanceof Null;
}
/**
* @description Checks if the Enum points to a [[Null]] type (deprecated, use isNone)
* @description Checks if the Enum points to a [[Null]] type
* @deprecated use isNone
*/
public get isNull (): boolean {
return this.#raw instanceof Null;
return this.isNone;
}
/**
@@ -331,7 +332,7 @@ export class Enum implements IEnum {
* @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information
*/
public toHuman (isExtended?: boolean): AnyJson {
return this.#isBasic
return this.#isBasic || this.isNone
? this.type
: { [this.type]: this.#raw.toHuman(isExtended) };
}
File diff suppressed because one or more lines are too long
+26 -1
View File
@@ -7,7 +7,8 @@ import type { CodecTo } from '../types';
import { TypeRegistry } from '../create';
import { Text, U32 } from '../primitive';
import { Struct, Vec } from '.';
import { TEST_A } from './Struct.data';
import { Enum, Struct, Vec } from '.';
describe('Struct', (): void => {
const registry = new TypeRegistry();
@@ -84,6 +85,30 @@ describe('Struct', (): void => {
expect(s.toString()).toBe('{"foo":[{"bar":"1"},{"bar":"2"}]}');
});
it('decodes a previously problematic input', (): void => {
let data;
try {
data = new Struct(registry, {
a: 'u32',
b: 'H256',
c: 'H256',
swap: Enum.with({
A: 'u256',
B: 'u256'
}),
d: Vec.with('u8'),
e: 'u8'
}, TEST_A);
} catch (error) {
console.error(error);
throw error;
}
expect(data.get('d')).toHaveLength(50000);
});
it('decodes from a Map input', (): void => {
const input = new Struct(registry, {
a: U32,
+1 -1
View File
@@ -61,7 +61,7 @@ export class Tuple extends AbstractArray<Codec> implements ITuple<Codec[]> {
? [typeToConstructor(registry, Types)]
: mapToTypeMap(registry, Types);
super(registry, ...decodeTuple(registry, Clazzes, value));
super(registry, decodeTuple(registry, Clazzes, value));
this._Types = Clazzes;
}
+1 -1
View File
@@ -25,7 +25,7 @@ export class Vec<T extends Codec> extends AbstractArray<T> {
constructor (registry: Registry, Type: Constructor<T> | string, value: Vec<Codec> | Uint8Array | string | unknown[] = []) {
const Clazz = typeToConstructor<T>(registry, Type);
super(registry, ...Vec.decodeVec(registry, Clazz, value));
super(registry, Vec.decodeVec(registry, Clazz, value));
this._Type = Clazz;
}
+1 -1
View File
@@ -39,7 +39,7 @@ export class VecFixed<T extends Codec> extends AbstractArray<T> {
constructor (registry: Registry, Type: Constructor<T> | string, length: number, value: VecFixed<any> | Uint8Array | string | any[] = [] as any[]) {
const Clazz = typeToConstructor<T>(registry, Type);
super(registry, ...decodeVecFixed(registry, Clazz, length, value));
super(registry, decodeVecFixed(registry, Clazz, length, value));
this._Type = Clazz;
}
+27 -12
View File
@@ -3,7 +3,7 @@
import type { Vec } from '../codec/Vec';
import type { PortableType } from '../interfaces/metadata';
import type { SiField, SiLookupTypeId, SiPath, SiType, SiTypeDefArray, SiTypeDefBitSequence, SiTypeDefCompact, SiTypeDefComposite, SiTypeDefSequence, SiTypeDefTuple, SiTypeDefVariant, SiTypeParameter, SiVariant } from '../interfaces/scaleInfo';
import type { SiField, SiLookupTypeId, SiPath, SiType, SiTypeDefArray, SiTypeDefBitSequence, SiTypeDefCompact, SiTypeDefComposite, SiTypeDefRange, SiTypeDefSequence, SiTypeDefTuple, SiTypeDefVariant, SiTypeParameter, SiVariant } from '../interfaces/scaleInfo';
import type { Text } from '../primitive/Text';
import type { Type } from '../primitive/Type';
import type { Registry, TypeDef } from '../types';
@@ -239,7 +239,7 @@ export class GenericPortableRegistry extends Struct {
}
#extract (type: SiType, lookupIndex: number): TypeDef {
const path = [...type.path];
const namespace = [...type.path].join('::');
let typeDef: TypeDef;
const primType = getPrimitivePath(type.path);
@@ -258,6 +258,8 @@ export class GenericPortableRegistry extends Struct {
typeDef = this.#extractHistoric(lookupIndex, type.def.asHistoricMetaCompat);
} else if (type.def.isPrimitive) {
typeDef = this.#extractPrimitive(lookupIndex, type);
} else if (type.def.isRange) {
typeDef = this.#extractRange(lookupIndex, type.def.asRange);
} else if (type.def.isSequence) {
typeDef = this.#extractSequence(lookupIndex, type.def.asSequence);
} else if (type.def.isTuple) {
@@ -265,21 +267,21 @@ export class GenericPortableRegistry extends Struct {
} else if (type.def.isVariant) {
typeDef = this.#extractVariant(lookupIndex, type, type.def.asVariant);
} else {
throw new Error(`Invalid type at index ${lookupIndex}: No handler for ${type.def.toString()}`);
throw new Error(`No SiTypeDef handler for ${type.def.toString()}`);
}
} catch (error) {
throw new Error(`PortableRegistry: ${lookupIndex}: Error extracting ${stringify(type)}: ${(error as Error).message}`);
throw new Error(`PortableRegistry: ${lookupIndex}${namespace ? ` (${namespace})` : ''}: Error extracting ${stringify(type)}: ${(error as Error).message}`);
}
return {
docs: type.docs.map((d) => d.toString()),
namespace: path.join('::'),
namespace,
...typeDef
};
}
#extractArray (lookupIndex: number, { len: length, type }: SiTypeDefArray): TypeDef {
assert(!length || length.toNumber() <= 256, () => `PortableRegistry: ${lookupIndex}: Only support for [Type; <length>], where length <= 256`);
#extractArray (_: number, { len: length, type }: SiTypeDefArray): TypeDef {
assert(!length || length.toNumber() <= 256, 'Only support for [Type; <length>], where length <= 256');
return withTypeString(this.registry, {
info: TypeDefInfo.VecFixed,
@@ -324,8 +326,8 @@ export class GenericPortableRegistry extends Struct {
: this.#extractFields(lookupIndex, fields);
}
#extractCompositeSet (lookupIndex: number, params: SiTypeParameter[], fields: SiField[]): TypeDef {
assert(params.length === 1 && fields.length === 1, () => `PortableRegistry: ${lookupIndex}: Set handling expects since param and single field`);
#extractCompositeSet (_: number, params: SiTypeParameter[], fields: SiField[]): TypeDef {
assert(params.length === 1 && fields.length === 1, 'Set handling expects param/field as single entries');
return withTypeString(this.registry, {
info: TypeDefInfo.Set,
@@ -347,7 +349,7 @@ export class GenericPortableRegistry extends Struct {
]),
[true, true]);
assert(isTuple || isStruct, () => `PortableRegistry: ${lookupIndex}: Invalid fields type detected, expected either Tuple (all unnamed) or Struct (all named)`);
assert(isTuple || isStruct, 'Invalid fields type detected, expected either Tuple (all unnamed) or Struct (all named)');
if (fields.length === 0) {
return {
@@ -452,6 +454,19 @@ export class GenericPortableRegistry extends Struct {
};
}
#extractRange (lookupIndex: number, { end, start }: SiTypeDefRange): TypeDef {
// NOTE Currently we don't handle SiTypeDefRange.inclusive
return withTypeString(this.registry, {
info: TypeDefInfo.Range,
lookupIndex,
lookupName: this.#names[lookupIndex],
sub: [
this.#createSiDef(start),
this.#createSiDef(end)
]
});
}
#extractSequence (lookupIndex: number, { type }: SiTypeDefSequence): TypeDef {
const sub = this.#createSiDef(type);
@@ -501,9 +516,9 @@ export class GenericPortableRegistry extends Struct {
} else if (specialVariant === 'Result') {
return withTypeString(this.registry, {
info: TypeDefInfo.Result,
sub: params.map(({ type }) => this.#createSiDef(type.unwrap())).map((def, index) => ({
sub: params.map(({ type }, index) => ({
name: ['Ok', 'Error'][index],
...def
...this.#createSiDef(type.unwrap())
}))
});
} else if (variants.length === 0) {
@@ -43,6 +43,7 @@ export default {
Primitive: 'SiTypeDefPrimitive',
Compact: 'SiTypeDefCompact',
BitSequence: 'SiTypeDefBitSequence',
Range: 'SiTypeDefRange',
// NOTE: This is specific to the implementation for pre-v14 metadata
// compatibility (always keep this as the last entry in the enum)
HistoricMetaCompat: 'Type'
@@ -62,12 +63,14 @@ export default {
SiTypeDefComposite: {
fields: 'Vec<SiField>'
},
SiTypeDefVariant: {
variants: 'Vec<SiVariant>'
},
SiTypeDefPrimitive: {
_enum: ['Bool', 'Char', 'Str', 'U8', 'U16', 'U32', 'U64', 'U128', 'U256', 'I8', 'I16', 'I32', 'I64', 'I128', 'I256']
},
SiTypeDefRange: {
start: 'SiLookupTypeId',
end: 'SiLookupTypeId',
inclusive: 'bool'
},
SiTypeDefSequence: {
type: 'SiLookupTypeId'
},
@@ -76,6 +79,9 @@ export default {
name: 'Text',
type: 'Option<SiLookupTypeId>'
},
SiTypeDefVariant: {
variants: 'Vec<SiVariant>'
},
SiVariant
}
} as Definitions;
@@ -1,7 +1,7 @@
// Auto-generated via `yarn polkadot-types-from-defs`, do not edit
/* eslint-disable */
import type { Compact, Enum, Null, Option, Struct, Text, Type, Vec, u32, u64, u8 } from '@polkadot/types';
import type { Compact, Enum, Null, Option, Struct, Text, Type, Vec, bool, u32, u64, u8 } from '@polkadot/types';
/** @name Si0Field */
export interface Si0Field extends Struct {
@@ -158,6 +158,8 @@ export interface SiTypeDef extends Enum {
readonly asCompact: SiTypeDefCompact;
readonly isBitSequence: boolean;
readonly asBitSequence: SiTypeDefBitSequence;
readonly isRange: boolean;
readonly asRange: SiTypeDefRange;
readonly isHistoricMetaCompat: boolean;
readonly asHistoricMetaCompat: Type;
}
@@ -203,6 +205,13 @@ export interface SiTypeDefPrimitive extends Enum {
readonly isI256: boolean;
}
/** @name SiTypeDefRange */
export interface SiTypeDefRange extends Struct {
readonly start: SiLookupTypeId;
readonly end: SiLookupTypeId;
readonly inclusive: bool;
}
/** @name SiTypeDefSequence */
export interface SiTypeDefSequence extends Struct {
readonly type: SiLookupTypeId;
+116 -50
View File
@@ -12,18 +12,19 @@ const xcm = {
Xcm: 'MultiLocation'
}
},
Xcm: {
Xcm: 'XcmV1',
XcmV0: {
_enum: {
WithdrawAsset: {
assets: 'MultiAssets',
assets: 'Vec<MultiAssetV0>',
effects: 'Vec<XcmOrderV0>'
},
ReserveAssetDeposit: {
assets: 'MultiAssets',
assets: 'Vec<MultiAssetV0>',
effects: 'Vec<XcmOrderV0>'
},
ReceiveTeleportedAsset: {
assets: 'MultiAssets',
assets: 'Vec<MultiAssetV0>',
effects: 'Vec<XcmOrderV0>'
},
QueryResponse: {
@@ -31,12 +32,12 @@ const xcm = {
response: 'XcmResponse'
},
TransferAsset: {
assets: 'MultiAssets',
dest: 'MultiLocation'
assets: 'Vec<MultiAssetV0>',
dest: 'MultiLocationV0'
},
TransferReserveAsset: {
assets: 'MultiAssets',
dest: 'MultiLocation',
assets: 'Vec<MultiAssetV0>',
dest: 'MultiLocationV0',
effects: 'Vec<XcmOrderV0>'
},
Transact: {
@@ -58,18 +59,64 @@ const xcm = {
recipient: 'Compact<u32>'
},
RelayedFrom: {
who: 'MultiLocation',
message: 'Xcm'
who: 'MultiLocationV0',
message: 'XcmV0'
}
}
},
XcmV1: {
_enum: {
WithdrawAsset: {
Vassets: 'MultiAssetsV1',
effects: 'Vec<XcmOrderV1>'
},
ReserveAssetDeposit: {
Vassets: 'MultiAssetsV1',
effects: 'Vec<XcmOrderV1>'
},
ReceiveTeleportedAsset: {
Vassets: 'MultiAssetsV1',
effects: 'Vec<XcmOrderV1>'
},
QueryResponse: {
queryId: 'Compact<u64>',
response: 'XcmResponse'
},
TransferAsset: {
Vassets: 'MultiAssetsV1',
dest: 'MultiLocationV1'
},
TransferReserveAsset: {
Vassets: 'MultiAssetsV1',
dest: 'MultiLocationV1',
effects: 'Vec<XcmOrderV1>'
},
Transact: {
originType: 'XcmOriginKind',
requireWeightAtMost: 'u64',
call: 'DoubleEncodedCall'
},
HrmpNewChannelOpenRequest: {
sender: 'Compact<u32>',
maxMessageSize: 'Compact<u32>',
maxCapacity: 'Compact<u32>'
},
HrmpChannelAccepted: {
recipient: 'Compact<u32>'
},
HrmpChannelClosing: {
initiator: 'Compact<u32>',
sender: 'Compact<u32>',
recipient: 'Compact<u32>'
},
RelayedFrom: {
who: 'MultiLocationV1',
message: 'XcmV1'
}
}
},
XcmpMessageFormat: {
_enum: ['ConcatenatedVersionedXcm', 'ConcatenatedEncodedBlob', 'Signals']
},
VersionedXcm: {
_enum: {
V0: 'Xcm'
}
}
};
@@ -79,39 +126,39 @@ const xmcOrder = {
_enum: {
Null: 'Null',
DepositAsset: {
assets: 'Vec<MultiAsset>',
dest: 'MultiLocation'
assets: 'Vec<MultiAssetV0>',
dest: 'MultiLocationV0'
},
DepositReserveAsset: {
assets: 'Vec<MultiAsset>',
dest: 'MultiLocation',
assets: 'Vec<MultiAssetV0>',
dest: 'MultiLocationV0',
effects: 'Vec<XcmOrderV0>'
},
ExchangeAsset: {
give: 'Vec<MultiAsset>',
receive: 'Vec<MultiAsset>'
give: 'Vec<MultiAssetV0>',
receive: 'Vec<MultiAssetV0>'
},
InitiateReserveWithdraw: {
assets: 'Vec<MultiAsset>',
reserve: 'MultiLocation',
assets: 'Vec<MultiAssetV0>',
reserve: 'MultiLocationV0',
effects: 'Vec<XcmOrderV0>'
},
InitiateTeleport: {
assets: 'Vec<MultiAsset>',
dest: 'MultiLocation',
dest: 'MultiLocationV0',
effects: 'Vec<XcmOrderV0>'
},
QueryHolding: {
queryId: 'Compact<u64>',
dest: 'MultiLocation',
assets: 'Vec<MultiAsset>'
dest: 'MultiLocationV0',
assets: 'Vec<MultiAssetV0>'
},
BuyExecution: {
fees: 'MultiAsset',
weight: 'u64',
debt: 'u64',
haltOnError: 'bool',
xcm: 'Vec<Xcm>'
xcm: 'Vec<XcmV0>'
}
}
},
@@ -119,34 +166,34 @@ const xmcOrder = {
_enum: {
Noop: 'Null',
DepositAsset: {
assets: 'MultiAssetFilter',
assets: 'MultiAssetFilterV1',
maxAssets: 'u32',
beneficiary: 'MultiLocation'
beneficiary: 'MultiLocationV1'
},
DepositReserveAsset: {
assets: 'MultiAssetFilter',
assets: 'MultiAssetFilterV1',
maxAssets: 'u32',
dest: 'MultiLocation',
dest: 'MultiLocationV1',
effects: 'Vec<XcmOrderV1>'
},
ExchangeAsset: {
give: 'MultiAssetFilter',
receive: 'MultiAssets'
give: 'MultiAssetFilterV1',
receive: 'MultiAssetsV1'
},
InitiateReserveWithdraw: {
assets: 'MultiAssetFilter',
reserve: 'MultiLocation',
assets: 'MultiAssetFilterV1',
reserve: 'MultiLocationV1',
effects: 'Vec<XcmOrderV1>'
},
InitiateTeleport: {
assets: 'MultiAssetFilter',
dest: 'MultiLocation',
assets: 'MultiAssetFilterV1',
dest: 'MultiLocationV1',
effects: 'Vec<XcmOrderV1>'
},
QueryHolding: {
queryId: 'Compact<u64>',
dest: 'MultiLocation',
assets: 'MultiAssetFilter'
dest: 'MultiLocationV1',
assets: 'MultiAssetFilterV1'
},
BuyExecution: {
fees: 'MultiAsset',
@@ -154,7 +201,7 @@ const xmcOrder = {
debt: 'u64',
haltOnError: 'bool',
orders: 'Vec<XcmOrderV1>',
instructions: 'Vec<Xcm>'
instructions: 'Vec<XcmV1>'
}
}
}
@@ -206,10 +253,11 @@ const multiAsset = {
OutboundStatus: {
_enum: ['Ok', 'Suspended']
},
MultiAssetFilter: {
MultiAssetFilter: 'MultiAssetFilterV1',
MultiAssetFilterV1: {
_enum: {
Definite: 'MultiAssets',
Wild: 'WildMultiAsset'
Definite: 'MultiAssetsV1',
Wild: 'WildMultiAssetV1'
}
},
MultiAsset: 'MultiAssetV1',
@@ -246,15 +294,12 @@ const multiAsset = {
fungibility: 'Fungibility'
},
MultiAssets: 'Vec<MultiAsset>',
VersionedMultiAsset: {
_enum: {
V0: 'MultiAsset'
}
},
MultiAssetsV1: 'Vec<MultiAssetV1>',
WildFungibility: {
_enum: ['Fungible', 'NonFungible']
},
WildMultiAsset: {
WildMultiAsset: 'WildMultiAssetV1',
WildMultiAssetV1: {
_enum: {
All: 'Null',
AllOf: {
@@ -377,6 +422,8 @@ export default {
TooExpensive: 'Null'
}
},
MultiLocationV0: 'MultiLocation',
MultiLocationV1: 'MultiLocation',
MultiLocation: {
_enum: {
Here: 'Null',
@@ -404,9 +451,28 @@ export default {
thresholdWeight: 'Weight',
weightRestrictDecay: 'Weight'
},
VersionedMultiAsset: {
_enum: {
V0: 'MultiAssetV0',
V1: 'MultiAssetV1'
}
},
VersionedMultiAssets: {
_enum: {
V0: 'Vec<MultiAssetV0>',
V1: 'MultiAssetsV1'
}
},
VersionedMultiLocation: {
_enum: {
V0: 'MultiLocation'
V0: 'MultiLocationV0',
V1: 'MultiLocationV1'
}
},
VersionedXcm: {
_enum: {
V0: 'XcmV0',
V1: 'XcmV1'
}
}
}
+186 -92
View File
@@ -142,16 +142,22 @@ export interface Junction extends Enum {
export interface MultiAsset extends MultiAssetV1 {}
/** @name MultiAssetFilter */
export interface MultiAssetFilter extends Enum {
export interface MultiAssetFilter extends MultiAssetFilterV1 {}
/** @name MultiAssetFilterV1 */
export interface MultiAssetFilterV1 extends Enum {
readonly isDefinite: boolean;
readonly asDefinite: MultiAssets;
readonly asDefinite: MultiAssetsV1;
readonly isWild: boolean;
readonly asWild: WildMultiAsset;
readonly asWild: WildMultiAssetV1;
}
/** @name MultiAssets */
export interface MultiAssets extends Vec<MultiAsset> {}
/** @name MultiAssetsV1 */
export interface MultiAssetsV1 extends Vec<MultiAssetV1> {}
/** @name MultiAssetV0 */
export interface MultiAssetV0 extends Enum {
readonly isNone: boolean;
@@ -215,6 +221,12 @@ export interface MultiLocation extends Enum {
readonly asX8: ITuple<[Junction, Junction, Junction, Junction, Junction, Junction, Junction, Junction]>;
}
/** @name MultiLocationV0 */
export interface MultiLocationV0 extends MultiLocation {}
/** @name MultiLocationV1 */
export interface MultiLocationV1 extends MultiLocation {}
/** @name NetworkId */
export interface NetworkId extends Enum {
readonly isAny: boolean;
@@ -252,19 +264,33 @@ export interface QueueConfigData extends Struct {
/** @name VersionedMultiAsset */
export interface VersionedMultiAsset extends Enum {
readonly isV0: boolean;
readonly asV0: MultiAsset;
readonly asV0: MultiAssetV0;
readonly isV1: boolean;
readonly asV1: MultiAssetV1;
}
/** @name VersionedMultiAssets */
export interface VersionedMultiAssets extends Enum {
readonly isV0: boolean;
readonly asV0: Vec<MultiAssetV0>;
readonly isV1: boolean;
readonly asV1: MultiAssetsV1;
}
/** @name VersionedMultiLocation */
export interface VersionedMultiLocation extends Enum {
readonly isV0: boolean;
readonly asV0: MultiLocation;
readonly asV0: MultiLocationV0;
readonly isV1: boolean;
readonly asV1: MultiLocationV1;
}
/** @name VersionedXcm */
export interface VersionedXcm extends Enum {
readonly isV0: boolean;
readonly asV0: Xcm;
readonly asV0: XcmV0;
readonly isV1: boolean;
readonly asV1: XcmV1;
}
/** @name WildFungibility */
@@ -274,7 +300,10 @@ export interface WildFungibility extends Enum {
}
/** @name WildMultiAsset */
export interface WildMultiAsset extends Enum {
export interface WildMultiAsset extends WildMultiAssetV1 {}
/** @name WildMultiAssetV1 */
export interface WildMultiAssetV1 extends Enum {
readonly isAll: boolean;
readonly isAllOf: boolean;
readonly asAllOf: {
@@ -284,66 +313,7 @@ export interface WildMultiAsset extends Enum {
}
/** @name Xcm */
export interface Xcm extends Enum {
readonly isWithdrawAsset: boolean;
readonly asWithdrawAsset: {
readonly assets: MultiAssets;
readonly effects: Vec<XcmOrderV0>;
} & Struct;
readonly isReserveAssetDeposit: boolean;
readonly asReserveAssetDeposit: {
readonly assets: MultiAssets;
readonly effects: Vec<XcmOrderV0>;
} & Struct;
readonly isReceiveTeleportedAsset: boolean;
readonly asReceiveTeleportedAsset: {
readonly assets: MultiAssets;
readonly effects: Vec<XcmOrderV0>;
} & Struct;
readonly isQueryResponse: boolean;
readonly asQueryResponse: {
readonly queryId: Compact<u64>;
readonly response: XcmResponse;
} & Struct;
readonly isTransferAsset: boolean;
readonly asTransferAsset: {
readonly assets: MultiAssets;
readonly dest: MultiLocation;
} & Struct;
readonly isTransferReserveAsset: boolean;
readonly asTransferReserveAsset: {
readonly assets: MultiAssets;
readonly dest: MultiLocation;
readonly effects: Vec<XcmOrderV0>;
} & Struct;
readonly isTransact: boolean;
readonly asTransact: {
readonly originType: XcmOriginKind;
readonly requireWeightAtMost: u64;
readonly call: DoubleEncodedCall;
} & Struct;
readonly isHrmpNewChannelOpenRequest: boolean;
readonly asHrmpNewChannelOpenRequest: {
readonly sender: Compact<u32>;
readonly maxMessageSize: Compact<u32>;
readonly maxCapacity: Compact<u32>;
} & Struct;
readonly isHrmpChannelAccepted: boolean;
readonly asHrmpChannelAccepted: {
readonly recipient: Compact<u32>;
} & Struct;
readonly isHrmpChannelClosing: boolean;
readonly asHrmpChannelClosing: {
readonly initiator: Compact<u32>;
readonly sender: Compact<u32>;
readonly recipient: Compact<u32>;
} & Struct;
readonly isRelayedFrom: boolean;
readonly asRelayedFrom: {
readonly who: MultiLocation;
readonly message: Xcm;
} & Struct;
}
export interface Xcm extends XcmV1 {}
/** @name XcmAssetId */
export interface XcmAssetId extends Enum {
@@ -393,37 +363,37 @@ export interface XcmOrderV0 extends Enum {
readonly isNull: boolean;
readonly isDepositAsset: boolean;
readonly asDepositAsset: {
readonly assets: Vec<MultiAsset>;
readonly dest: MultiLocation;
readonly assets: Vec<MultiAssetV0>;
readonly dest: MultiLocationV0;
} & Struct;
readonly isDepositReserveAsset: boolean;
readonly asDepositReserveAsset: {
readonly assets: Vec<MultiAsset>;
readonly dest: MultiLocation;
readonly assets: Vec<MultiAssetV0>;
readonly dest: MultiLocationV0;
readonly effects: Vec<XcmOrderV0>;
} & Struct;
readonly isExchangeAsset: boolean;
readonly asExchangeAsset: {
readonly give: Vec<MultiAsset>;
readonly receive: Vec<MultiAsset>;
readonly give: Vec<MultiAssetV0>;
readonly receive: Vec<MultiAssetV0>;
} & Struct;
readonly isInitiateReserveWithdraw: boolean;
readonly asInitiateReserveWithdraw: {
readonly assets: Vec<MultiAsset>;
readonly reserve: MultiLocation;
readonly assets: Vec<MultiAssetV0>;
readonly reserve: MultiLocationV0;
readonly effects: Vec<XcmOrderV0>;
} & Struct;
readonly isInitiateTeleport: boolean;
readonly asInitiateTeleport: {
readonly assets: Vec<MultiAsset>;
readonly dest: MultiLocation;
readonly dest: MultiLocationV0;
readonly effects: Vec<XcmOrderV0>;
} & Struct;
readonly isQueryHolding: boolean;
readonly asQueryHolding: {
readonly queryId: Compact<u64>;
readonly dest: MultiLocation;
readonly assets: Vec<MultiAsset>;
readonly dest: MultiLocationV0;
readonly assets: Vec<MultiAssetV0>;
} & Struct;
readonly isBuyExecution: boolean;
readonly asBuyExecution: {
@@ -431,7 +401,7 @@ export interface XcmOrderV0 extends Enum {
readonly weight: u64;
readonly debt: u64;
readonly haltOnError: bool;
readonly xcm: Vec<Xcm>;
readonly xcm: Vec<XcmV0>;
} & Struct;
}
@@ -440,39 +410,39 @@ export interface XcmOrderV1 extends Enum {
readonly isNoop: boolean;
readonly isDepositAsset: boolean;
readonly asDepositAsset: {
readonly assets: MultiAssetFilter;
readonly assets: MultiAssetFilterV1;
readonly maxAssets: u32;
readonly beneficiary: MultiLocation;
readonly beneficiary: MultiLocationV1;
} & Struct;
readonly isDepositReserveAsset: boolean;
readonly asDepositReserveAsset: {
readonly assets: MultiAssetFilter;
readonly assets: MultiAssetFilterV1;
readonly maxAssets: u32;
readonly dest: MultiLocation;
readonly dest: MultiLocationV1;
readonly effects: Vec<XcmOrderV1>;
} & Struct;
readonly isExchangeAsset: boolean;
readonly asExchangeAsset: {
readonly give: MultiAssetFilter;
readonly receive: MultiAssets;
readonly give: MultiAssetFilterV1;
readonly receive: MultiAssetsV1;
} & Struct;
readonly isInitiateReserveWithdraw: boolean;
readonly asInitiateReserveWithdraw: {
readonly assets: MultiAssetFilter;
readonly reserve: MultiLocation;
readonly assets: MultiAssetFilterV1;
readonly reserve: MultiLocationV1;
readonly effects: Vec<XcmOrderV1>;
} & Struct;
readonly isInitiateTeleport: boolean;
readonly asInitiateTeleport: {
readonly assets: MultiAssetFilter;
readonly dest: MultiLocation;
readonly assets: MultiAssetFilterV1;
readonly dest: MultiLocationV1;
readonly effects: Vec<XcmOrderV1>;
} & Struct;
readonly isQueryHolding: boolean;
readonly asQueryHolding: {
readonly queryId: Compact<u64>;
readonly dest: MultiLocation;
readonly assets: MultiAssetFilter;
readonly dest: MultiLocationV1;
readonly assets: MultiAssetFilterV1;
} & Struct;
readonly isBuyExecution: boolean;
readonly asBuyExecution: {
@@ -481,7 +451,7 @@ export interface XcmOrderV1 extends Enum {
readonly debt: u64;
readonly haltOnError: bool;
readonly orders: Vec<XcmOrderV1>;
readonly instructions: Vec<Xcm>;
readonly instructions: Vec<XcmV1>;
} & Struct;
}
@@ -512,4 +482,128 @@ export interface XcmResponse extends Enum {
readonly asAssets: Vec<MultiAsset>;
}
/** @name XcmV0 */
export interface XcmV0 extends Enum {
readonly isWithdrawAsset: boolean;
readonly asWithdrawAsset: {
readonly assets: Vec<MultiAssetV0>;
readonly effects: Vec<XcmOrderV0>;
} & Struct;
readonly isReserveAssetDeposit: boolean;
readonly asReserveAssetDeposit: {
readonly assets: Vec<MultiAssetV0>;
readonly effects: Vec<XcmOrderV0>;
} & Struct;
readonly isReceiveTeleportedAsset: boolean;
readonly asReceiveTeleportedAsset: {
readonly assets: Vec<MultiAssetV0>;
readonly effects: Vec<XcmOrderV0>;
} & Struct;
readonly isQueryResponse: boolean;
readonly asQueryResponse: {
readonly queryId: Compact<u64>;
readonly response: XcmResponse;
} & Struct;
readonly isTransferAsset: boolean;
readonly asTransferAsset: {
readonly assets: Vec<MultiAssetV0>;
readonly dest: MultiLocationV0;
} & Struct;
readonly isTransferReserveAsset: boolean;
readonly asTransferReserveAsset: {
readonly assets: Vec<MultiAssetV0>;
readonly dest: MultiLocationV0;
readonly effects: Vec<XcmOrderV0>;
} & Struct;
readonly isTransact: boolean;
readonly asTransact: {
readonly originType: XcmOriginKind;
readonly requireWeightAtMost: u64;
readonly call: DoubleEncodedCall;
} & Struct;
readonly isHrmpNewChannelOpenRequest: boolean;
readonly asHrmpNewChannelOpenRequest: {
readonly sender: Compact<u32>;
readonly maxMessageSize: Compact<u32>;
readonly maxCapacity: Compact<u32>;
} & Struct;
readonly isHrmpChannelAccepted: boolean;
readonly asHrmpChannelAccepted: {
readonly recipient: Compact<u32>;
} & Struct;
readonly isHrmpChannelClosing: boolean;
readonly asHrmpChannelClosing: {
readonly initiator: Compact<u32>;
readonly sender: Compact<u32>;
readonly recipient: Compact<u32>;
} & Struct;
readonly isRelayedFrom: boolean;
readonly asRelayedFrom: {
readonly who: MultiLocationV0;
readonly message: XcmV0;
} & Struct;
}
/** @name XcmV1 */
export interface XcmV1 extends Enum {
readonly isWithdrawAsset: boolean;
readonly asWithdrawAsset: {
readonly Vassets: MultiAssetsV1;
readonly effects: Vec<XcmOrderV1>;
} & Struct;
readonly isReserveAssetDeposit: boolean;
readonly asReserveAssetDeposit: {
readonly Vassets: MultiAssetsV1;
readonly effects: Vec<XcmOrderV1>;
} & Struct;
readonly isReceiveTeleportedAsset: boolean;
readonly asReceiveTeleportedAsset: {
readonly Vassets: MultiAssetsV1;
readonly effects: Vec<XcmOrderV1>;
} & Struct;
readonly isQueryResponse: boolean;
readonly asQueryResponse: {
readonly queryId: Compact<u64>;
readonly response: XcmResponse;
} & Struct;
readonly isTransferAsset: boolean;
readonly asTransferAsset: {
readonly Vassets: MultiAssetsV1;
readonly dest: MultiLocationV1;
} & Struct;
readonly isTransferReserveAsset: boolean;
readonly asTransferReserveAsset: {
readonly Vassets: MultiAssetsV1;
readonly dest: MultiLocationV1;
readonly effects: Vec<XcmOrderV1>;
} & Struct;
readonly isTransact: boolean;
readonly asTransact: {
readonly originType: XcmOriginKind;
readonly requireWeightAtMost: u64;
readonly call: DoubleEncodedCall;
} & Struct;
readonly isHrmpNewChannelOpenRequest: boolean;
readonly asHrmpNewChannelOpenRequest: {
readonly sender: Compact<u32>;
readonly maxMessageSize: Compact<u32>;
readonly maxCapacity: Compact<u32>;
} & Struct;
readonly isHrmpChannelAccepted: boolean;
readonly asHrmpChannelAccepted: {
readonly recipient: Compact<u32>;
} & Struct;
readonly isHrmpChannelClosing: boolean;
readonly asHrmpChannelClosing: {
readonly initiator: Compact<u32>;
readonly sender: Compact<u32>;
readonly recipient: Compact<u32>;
} & Struct;
readonly isRelayedFrom: boolean;
readonly asRelayedFrom: {
readonly who: MultiLocationV1;
readonly message: XcmV1;
} & Struct;
}
export type PHANTOM_XCM = 'xcm';
+1 -1
View File
@@ -3,4 +3,4 @@
// Auto-generated by @polkadot/dev, do not edit
export const packageInfo = { name: '@polkadot/types', version: '5.6.1' };
export const packageInfo = { name: '@polkadot/types', version: '5.7.1' };
+392 -428
View File
File diff suppressed because it is too large Load Diff