diff --git a/CHANGELOG.md b/CHANGELOG.md index 498efb8032..8b402952c5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # CHANGELOG +## 3.10.2 Feb 23, 2021 + +Upgrade priority: Medium. Recommended for users of chains where `MultiAddress` is in-use and blocks are decoded. + +Changes: + +- Fix decoding for `MultiAddress` enum where non-`AccountId` variable-lengths are provided as part of a stream +- Added known Polkadot 28 upgrade block +- Update for latest Substrate contracts `Schedule` types + + ## 3.10.1 Feb 22, 2021 Upgrade priority: Low. diff --git a/package.json b/package.json index af3a4436b3..2fbcf8685a 100644 --- a/package.json +++ b/package.json @@ -34,5 +34,5 @@ "@types/jest": "^26.0.20", "copyfiles": "^2.4.1" }, - "version": "3.10.2-0" + "version": "3.10.2" } diff --git a/packages/api-contract/package.json b/packages/api-contract/package.json index 3100dcbf36..430612d34c 100644 --- a/packages/api-contract/package.json +++ b/packages/api-contract/package.json @@ -1,6 +1,6 @@ { "name": "@polkadot/api-contract", - "version": "3.10.2-0", + "version": "3.10.2", "description": "Interfaces for interacting with contracts and contract ABIs", "main": "index.js", "sideEffects": false, @@ -13,8 +13,8 @@ "homepage": "https://github.com/polkadot-js/api/tree/master/packages/api-contract#readme", "dependencies": { "@babel/runtime": "^7.12.18", - "@polkadot/api": "3.10.2-0", - "@polkadot/types": "3.10.2-0", + "@polkadot/api": "3.10.2", + "@polkadot/types": "3.10.2", "@polkadot/util": "^5.7.1", "@polkadot/x-rxjs": "^5.7.1", "bn.js": "^4.11.9" diff --git a/packages/api-derive/package.json b/packages/api-derive/package.json index c459af75b2..9811a04ab5 100644 --- a/packages/api-derive/package.json +++ b/packages/api-derive/package.json @@ -1,6 +1,6 @@ { "name": "@polkadot/api-derive", - "version": "3.10.2-0", + "version": "3.10.2", "description": "Common functions used across Polkadot, derived from RPC calls and storage queries.", "main": "index.js", "sideEffects": false, @@ -13,9 +13,9 @@ "homepage": "https://github.com/polkadot-js/api/tree/master/packages/api-derive#readme", "dependencies": { "@babel/runtime": "^7.12.18", - "@polkadot/api": "3.10.2-0", - "@polkadot/rpc-core": "3.10.2-0", - "@polkadot/types": "3.10.2-0", + "@polkadot/api": "3.10.2", + "@polkadot/rpc-core": "3.10.2", + "@polkadot/types": "3.10.2", "@polkadot/util": "^5.7.1", "@polkadot/util-crypto": "^5.7.1", "@polkadot/x-rxjs": "^5.7.1", @@ -23,6 +23,6 @@ }, "devDependencies": { "@polkadot/keyring": "^5.7.1", - "@polkadot/rpc-provider": "3.10.2-0" + "@polkadot/rpc-provider": "3.10.2" } } diff --git a/packages/api/package.json b/packages/api/package.json index 79a1171236..65b1426ab4 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -1,6 +1,6 @@ { "name": "@polkadot/api", - "version": "3.10.2-0", + "version": "3.10.2", "description": "Promise and RxJS wrappers around the Polkadot JS RPC", "main": "index.js", "sideEffects": [ @@ -16,13 +16,13 @@ "homepage": "https://github.com/polkadot-js/api/tree/master/packages/api#readme", "dependencies": { "@babel/runtime": "^7.12.18", - "@polkadot/api-derive": "3.10.2-0", + "@polkadot/api-derive": "3.10.2", "@polkadot/keyring": "^5.7.1", - "@polkadot/metadata": "3.10.2-0", - "@polkadot/rpc-core": "3.10.2-0", - "@polkadot/rpc-provider": "3.10.2-0", - "@polkadot/types": "3.10.2-0", - "@polkadot/types-known": "3.10.2-0", + "@polkadot/metadata": "3.10.2", + "@polkadot/rpc-core": "3.10.2", + "@polkadot/rpc-provider": "3.10.2", + "@polkadot/types": "3.10.2", + "@polkadot/types-known": "3.10.2", "@polkadot/util": "^5.7.1", "@polkadot/util-crypto": "^5.7.1", "@polkadot/x-rxjs": "^5.7.1", diff --git a/packages/metadata/package.json b/packages/metadata/package.json index 2c3b2f184a..58d414022e 100644 --- a/packages/metadata/package.json +++ b/packages/metadata/package.json @@ -1,6 +1,6 @@ { "name": "@polkadot/metadata", - "version": "3.10.2-0", + "version": "3.10.2", "description": "Helpers to extract information from runtime metadata", "main": "index.js", "sideEffects": [ @@ -16,8 +16,8 @@ "homepage": "https://github.com/polkadot-js/api/tree/master/packages/type-metadata#readme", "dependencies": { "@babel/runtime": "^7.12.18", - "@polkadot/types": "3.10.2-0", - "@polkadot/types-known": "3.10.2-0", + "@polkadot/types": "3.10.2", + "@polkadot/types-known": "3.10.2", "@polkadot/util": "^5.7.1", "@polkadot/util-crypto": "^5.7.1", "bn.js": "^4.11.9" diff --git a/packages/rpc-core/package.json b/packages/rpc-core/package.json index 5c4719f6d7..37f95d2744 100644 --- a/packages/rpc-core/package.json +++ b/packages/rpc-core/package.json @@ -1,6 +1,6 @@ { "name": "@polkadot/rpc-core", - "version": "3.10.2-0", + "version": "3.10.2", "description": "A JavaScript wrapper for the Polkadot JsonRPC interface", "main": "index.js", "sideEffects": false, @@ -13,9 +13,9 @@ "homepage": "https://github.com/polkadot-js/api/tree/master/packages/rpc-core#readme", "dependencies": { "@babel/runtime": "^7.12.18", - "@polkadot/metadata": "3.10.2-0", - "@polkadot/rpc-provider": "3.10.2-0", - "@polkadot/types": "3.10.2-0", + "@polkadot/metadata": "3.10.2", + "@polkadot/rpc-provider": "3.10.2", + "@polkadot/types": "3.10.2", "@polkadot/util": "^5.7.1", "@polkadot/x-rxjs": "^5.7.1" }, diff --git a/packages/rpc-provider/package.json b/packages/rpc-provider/package.json index aab4451b66..0da8ee3093 100644 --- a/packages/rpc-provider/package.json +++ b/packages/rpc-provider/package.json @@ -1,6 +1,6 @@ { "name": "@polkadot/rpc-provider", - "version": "3.10.2-0", + "version": "3.10.2", "description": "Transport providers for the API", "main": "index.js", "sideEffects": false, @@ -13,7 +13,7 @@ "homepage": "https://github.com/polkadot-js/api/tree/master/packages/rpc-provider#readme", "dependencies": { "@babel/runtime": "^7.12.18", - "@polkadot/types": "3.10.2-0", + "@polkadot/types": "3.10.2", "@polkadot/util": "^5.7.1", "@polkadot/util-crypto": "^5.7.1", "@polkadot/x-fetch": "^5.7.1", @@ -24,7 +24,7 @@ }, "devDependencies": { "@polkadot/keyring": "^5.7.1", - "@polkadot/metadata": "3.10.2-0", + "@polkadot/metadata": "3.10.2", "mock-socket": "^9.0.3", "nock": "^13.0.7" } diff --git a/packages/typegen/package.json b/packages/typegen/package.json index b46405f963..de44cdb9f1 100644 --- a/packages/typegen/package.json +++ b/packages/typegen/package.json @@ -1,6 +1,6 @@ { "name": "@polkadot/typegen", - "version": "3.10.2-0", + "version": "3.10.2", "description": "Type generation scripts", "main": "index.js", "sideEffects": false, @@ -22,10 +22,10 @@ "@babel/core": "^7.12.17", "@babel/register": "^7.12.13", "@babel/runtime": "^7.12.18", - "@polkadot/api": "3.10.2-0", - "@polkadot/metadata": "3.10.2-0", - "@polkadot/rpc-provider": "3.10.2-0", - "@polkadot/types": "3.10.2-0", + "@polkadot/api": "3.10.2", + "@polkadot/metadata": "3.10.2", + "@polkadot/rpc-provider": "3.10.2", + "@polkadot/types": "3.10.2", "@polkadot/util": "^5.7.1", "handlebars": "^4.7.7", "websocket": "^1.0.33", diff --git a/packages/types-known/package.json b/packages/types-known/package.json index 1368e26560..b7be2a5f5f 100644 --- a/packages/types-known/package.json +++ b/packages/types-known/package.json @@ -1,6 +1,6 @@ { "name": "@polkadot/types-known", - "version": "3.10.2-0", + "version": "3.10.2", "description": "A JavaScript wrapper for the Polkadot JsonRPC interface", "main": "index.js", "sideEffects": false, @@ -14,7 +14,7 @@ "dependencies": { "@babel/runtime": "^7.12.18", "@polkadot/networks": "^5.7.1", - "@polkadot/types": "3.10.2-0", + "@polkadot/types": "3.10.2", "@polkadot/util": "^5.7.1", "bn.js": "^4.11.9" }, diff --git a/packages/types-known/src/upgrades/polkadot.ts b/packages/types-known/src/upgrades/polkadot.ts index 576f3211af..aac81ebab6 100644 --- a/packages/types-known/src/upgrades/polkadot.ts +++ b/packages/types-known/src/upgrades/polkadot.ts @@ -8,7 +8,7 @@ const upgrades: ChainUpgradesRaw = [ [244358, 8], [303079, 9], [314201, 10], [342400, 11], [443963, 12], [528470, 13], [687751, 14], [746085, 15], [787923, 16], [799302, 17], [1205128, 18], [1603423, 23], [1733218, 24], [2005673, 25], [2436698, 26], - [3613564, 27] + [3613564, 27], [3899547, 28] ]; export default upgrades; diff --git a/packages/types/package.json b/packages/types/package.json index c836201bd8..38ff6aa573 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@polkadot/types", - "version": "3.10.2-0", + "version": "3.10.2", "description": "Implementation of the Parity codec", "main": "index.js", "sideEffects": [ @@ -16,7 +16,7 @@ "homepage": "https://github.com/polkadot-js/api/tree/master/packages/types#readme", "dependencies": { "@babel/runtime": "^7.12.18", - "@polkadot/metadata": "3.10.2-0", + "@polkadot/metadata": "3.10.2", "@polkadot/util": "^5.7.1", "@polkadot/util-crypto": "^5.7.1", "@polkadot/x-rxjs": "^5.7.1", diff --git a/packages/types/src/generic/Call.spec.ts b/packages/types/src/generic/Call.spec.ts index 97795f875a..f37b40d078 100644 --- a/packages/types/src/generic/Call.spec.ts +++ b/packages/types/src/generic/Call.spec.ts @@ -28,7 +28,7 @@ describe('Call', (): void => { expect( new Call(registry, '0x0601').toU8a() ).toEqual( - new Uint8Array([6, 1, 1, 110, 7, 17, 0, 0, 0]) + new Uint8Array([6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) ); // balances.setBalance }); }); diff --git a/packages/types/src/generic/MultiAddress.spec.ts b/packages/types/src/generic/MultiAddress.spec.ts new file mode 100644 index 0000000000..debc7109f5 --- /dev/null +++ b/packages/types/src/generic/MultiAddress.spec.ts @@ -0,0 +1,29 @@ +// Copyright 2017-2021 @polkadot/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { TypeRegistry } from '../create'; + +describe('MultiAddress', (): void => { + const registry = new TypeRegistry(); + + it('correctly decodes a stream with Address20', (): void => { + const a = registry.createType('MultiAddress', '0x0467f89207abe6e1b093befd84a48f03313765929207009e292608'); + + expect(a.index).toEqual(4); + expect(a.toString()).toEqual('0x67f89207abe6e1b093befd84a48f033137659292'); + }); + + it('correctly decodes an AccountId', (): void => { + const a = registry.createType('MultiAddress', '0x0102030405060708010203040506070801020304050607080102030405060708'); + + expect(a.index).toEqual(0); + expect(a.toString()).toEqual('5C62W7ELLAAfix9LYrcx5smtcffbhvThkM5x7xfMeYXCtGwF'); + }); + + it('correctly decodes an Address20', (): void => { + const a = registry.createType('MultiAddress', '0x67f89207abe6e1b093befd84a48f033137659292'); + + expect(a.index).toEqual(4); + expect(a.toString()).toEqual('0x67f89207abe6e1b093befd84a48f033137659292'); + }); +}); diff --git a/packages/types/src/generic/MultiAddress.ts b/packages/types/src/generic/MultiAddress.ts index 9da2d7624f..c69a955eb2 100644 --- a/packages/types/src/generic/MultiAddress.ts +++ b/packages/types/src/generic/MultiAddress.ts @@ -10,14 +10,12 @@ import { Enum } from '../codec/Enum'; import { GenericAccountId } from './AccountId'; import { GenericAccountIndex } from './AccountIndex'; -function decodeMultiU8a (registry: Registry, value?: unknown): unknown { +function decodeMultiU8a (value?: unknown): unknown { if (isU8a(value) && value.length <= 32) { if (value.length === 32) { return { id: value }; } else if (value.length === 20) { return { Address20: value }; - } else { - return decodeMultiAny(registry, registry.createType('AccountIndex', value)); } } @@ -32,10 +30,10 @@ function decodeMultiAny (registry: Registry, value?: unknown): unknown { } else if (value instanceof GenericAccountIndex || isNumber(value) || isBn(value)) { return { Index: registry.createType('Compact', value) }; } else if (isString(value)) { - return decodeMultiU8a(registry, decodeAddress(value.toString())); + return decodeMultiU8a(decodeAddress(value.toString())); } - return decodeMultiU8a(registry, value); + return decodeMultiU8a(value); } export class GenericMultiAddress extends Enum { diff --git a/yarn.lock b/yarn.lock index 215744a1ae..121f799801 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1752,24 +1752,24 @@ __metadata: resolution: "@polkadot/api-contract@workspace:packages/api-contract" dependencies: "@babel/runtime": ^7.12.18 - "@polkadot/api": 3.10.2-0 - "@polkadot/types": 3.10.2-0 + "@polkadot/api": 3.10.2 + "@polkadot/types": 3.10.2 "@polkadot/util": ^5.7.1 "@polkadot/x-rxjs": ^5.7.1 bn.js: ^4.11.9 languageName: unknown linkType: soft -"@polkadot/api-derive@3.10.2-0, @polkadot/api-derive@workspace:packages/api-derive": +"@polkadot/api-derive@3.10.2, @polkadot/api-derive@workspace:packages/api-derive": version: 0.0.0-use.local resolution: "@polkadot/api-derive@workspace:packages/api-derive" dependencies: "@babel/runtime": ^7.12.18 - "@polkadot/api": 3.10.2-0 + "@polkadot/api": 3.10.2 "@polkadot/keyring": ^5.7.1 - "@polkadot/rpc-core": 3.10.2-0 - "@polkadot/rpc-provider": 3.10.2-0 - "@polkadot/types": 3.10.2-0 + "@polkadot/rpc-core": 3.10.2 + "@polkadot/rpc-provider": 3.10.2 + "@polkadot/types": 3.10.2 "@polkadot/util": ^5.7.1 "@polkadot/util-crypto": ^5.7.1 "@polkadot/x-rxjs": ^5.7.1 @@ -1777,18 +1777,18 @@ __metadata: languageName: unknown linkType: soft -"@polkadot/api@3.10.2-0, @polkadot/api@workspace:packages/api": +"@polkadot/api@3.10.2, @polkadot/api@workspace:packages/api": version: 0.0.0-use.local resolution: "@polkadot/api@workspace:packages/api" dependencies: "@babel/runtime": ^7.12.18 - "@polkadot/api-derive": 3.10.2-0 + "@polkadot/api-derive": 3.10.2 "@polkadot/keyring": ^5.7.1 - "@polkadot/metadata": 3.10.2-0 - "@polkadot/rpc-core": 3.10.2-0 - "@polkadot/rpc-provider": 3.10.2-0 - "@polkadot/types": 3.10.2-0 - "@polkadot/types-known": 3.10.2-0 + "@polkadot/metadata": 3.10.2 + "@polkadot/rpc-core": 3.10.2 + "@polkadot/rpc-provider": 3.10.2 + "@polkadot/types": 3.10.2 + "@polkadot/types-known": 3.10.2 "@polkadot/util": ^5.7.1 "@polkadot/util-crypto": ^5.7.1 "@polkadot/x-rxjs": ^5.7.1 @@ -1902,14 +1902,14 @@ __metadata: languageName: node linkType: hard -"@polkadot/metadata@3.10.2-0, @polkadot/metadata@workspace:packages/metadata": +"@polkadot/metadata@3.10.2, @polkadot/metadata@workspace:packages/metadata": version: 0.0.0-use.local resolution: "@polkadot/metadata@workspace:packages/metadata" dependencies: "@babel/runtime": ^7.12.18 "@polkadot/keyring": ^5.7.1 - "@polkadot/types": 3.10.2-0 - "@polkadot/types-known": 3.10.2-0 + "@polkadot/types": 3.10.2 + "@polkadot/types-known": 3.10.2 "@polkadot/util": ^5.7.1 "@polkadot/util-crypto": ^5.7.1 bn.js: ^4.11.9 @@ -1925,28 +1925,28 @@ __metadata: languageName: node linkType: hard -"@polkadot/rpc-core@3.10.2-0, @polkadot/rpc-core@workspace:packages/rpc-core": +"@polkadot/rpc-core@3.10.2, @polkadot/rpc-core@workspace:packages/rpc-core": version: 0.0.0-use.local resolution: "@polkadot/rpc-core@workspace:packages/rpc-core" dependencies: "@babel/runtime": ^7.12.18 "@polkadot/keyring": ^5.7.1 - "@polkadot/metadata": 3.10.2-0 - "@polkadot/rpc-provider": 3.10.2-0 - "@polkadot/types": 3.10.2-0 + "@polkadot/metadata": 3.10.2 + "@polkadot/rpc-provider": 3.10.2 + "@polkadot/types": 3.10.2 "@polkadot/util": ^5.7.1 "@polkadot/x-rxjs": ^5.7.1 languageName: unknown linkType: soft -"@polkadot/rpc-provider@3.10.2-0, @polkadot/rpc-provider@workspace:packages/rpc-provider": +"@polkadot/rpc-provider@3.10.2, @polkadot/rpc-provider@workspace:packages/rpc-provider": version: 0.0.0-use.local resolution: "@polkadot/rpc-provider@workspace:packages/rpc-provider" dependencies: "@babel/runtime": ^7.12.18 "@polkadot/keyring": ^5.7.1 - "@polkadot/metadata": 3.10.2-0 - "@polkadot/types": 3.10.2-0 + "@polkadot/metadata": 3.10.2 + "@polkadot/types": 3.10.2 "@polkadot/util": ^5.7.1 "@polkadot/util-crypto": ^5.7.1 "@polkadot/x-fetch": ^5.7.1 @@ -1975,10 +1975,10 @@ __metadata: "@babel/core": ^7.12.17 "@babel/register": ^7.12.13 "@babel/runtime": ^7.12.18 - "@polkadot/api": 3.10.2-0 - "@polkadot/metadata": 3.10.2-0 - "@polkadot/rpc-provider": 3.10.2-0 - "@polkadot/types": 3.10.2-0 + "@polkadot/api": 3.10.2 + "@polkadot/metadata": 3.10.2 + "@polkadot/rpc-provider": 3.10.2 + "@polkadot/types": 3.10.2 "@polkadot/util": ^5.7.1 "@types/websocket": ^1.0.1 "@types/yargs": ^16.0.0 @@ -1994,26 +1994,26 @@ __metadata: languageName: unknown linkType: soft -"@polkadot/types-known@3.10.2-0, @polkadot/types-known@workspace:packages/types-known": +"@polkadot/types-known@3.10.2, @polkadot/types-known@workspace:packages/types-known": version: 0.0.0-use.local resolution: "@polkadot/types-known@workspace:packages/types-known" dependencies: "@babel/runtime": ^7.12.18 "@polkadot/networks": ^5.7.1 - "@polkadot/types": 3.10.2-0 + "@polkadot/types": 3.10.2 "@polkadot/util": ^5.7.1 "@types/bn.js": ^4.11.6 bn.js: ^4.11.9 languageName: unknown linkType: soft -"@polkadot/types@3.10.2-0, @polkadot/types@workspace:packages/types": +"@polkadot/types@3.10.2, @polkadot/types@workspace:packages/types": version: 0.0.0-use.local resolution: "@polkadot/types@workspace:packages/types" dependencies: "@babel/runtime": ^7.12.18 "@polkadot/keyring": ^5.7.1 - "@polkadot/metadata": 3.10.2-0 + "@polkadot/metadata": 3.10.2 "@polkadot/util": ^5.7.1 "@polkadot/util-crypto": ^5.7.1 "@polkadot/x-rxjs": ^5.7.1