diff --git a/CHANGELOG.md b/CHANGELOG.md index 0a6451b90b..f56bf2ea4d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,12 @@ # CHANGELOG -## master +## 6.4.2 Oct 18, 2021 + +Upgrade priority: Low. Recommended for Westmint runtime 500+ Changes: +- Ensure `SignerPayload` correctly serializes `Option` with `None` - Add Ethereum `BlockV{0, 1, 2}` types, aligning with latest Frontier - Additional tests for metadata serialization/de-serialization diff --git a/package.json b/package.json index c468d26136..66caef1c04 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,6 @@ "@types/jest": "^27.0.2", "copyfiles": "^2.4.1" }, - "version": "6.4.2-1", + "version": "6.4.2", "packageManager": "yarn@3.0.1" } diff --git a/packages/api-contract/package.json b/packages/api-contract/package.json index 5a63618742..dce8cd8714 100644 --- a/packages/api-contract/package.json +++ b/packages/api-contract/package.json @@ -1,6 +1,6 @@ { "name": "@polkadot/api-contract", - "version": "6.4.2-1", + "version": "6.4.2", "type": "module", "description": "Interfaces for interacting with contracts and contract ABIs", "main": "index.js", @@ -20,8 +20,8 @@ "homepage": "https://github.com/polkadot-js/api/tree/master/packages/api-contract#readme", "dependencies": { "@babel/runtime": "^7.15.4", - "@polkadot/api": "6.4.2-1", - "@polkadot/types": "6.4.2-1", + "@polkadot/api": "6.4.2", + "@polkadot/types": "6.4.2", "@polkadot/util": "^7.5.1", "rxjs": "^7.4.0" } diff --git a/packages/api-derive/package.json b/packages/api-derive/package.json index dd7ec06fec..273cb57e21 100644 --- a/packages/api-derive/package.json +++ b/packages/api-derive/package.json @@ -1,6 +1,6 @@ { "name": "@polkadot/api-derive", - "version": "6.4.2-1", + "version": "6.4.2", "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.4", - "@polkadot/api": "6.4.2-1", - "@polkadot/rpc-core": "6.4.2-1", - "@polkadot/types": "6.4.2-1", + "@polkadot/api": "6.4.2", + "@polkadot/rpc-core": "6.4.2", + "@polkadot/types": "6.4.2", "@polkadot/util": "^7.5.1", "@polkadot/util-crypto": "^7.5.1", "rxjs": "^7.4.0" }, "devDependencies": { "@polkadot/keyring": "^7.5.1", - "@polkadot/rpc-provider": "6.4.2-1" + "@polkadot/rpc-provider": "6.4.2" } } diff --git a/packages/api/package.json b/packages/api/package.json index 5ce66cbee1..c8b4cd59fe 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -1,6 +1,6 @@ { "name": "@polkadot/api", - "version": "6.4.2-1", + "version": "6.4.2", "type": "module", "description": "Promise and RxJS wrappers around the Polkadot JS RPC", "main": "index.js", @@ -20,12 +20,12 @@ "homepage": "https://github.com/polkadot-js/api/tree/master/packages/api#readme", "dependencies": { "@babel/runtime": "^7.15.4", - "@polkadot/api-derive": "6.4.2-1", + "@polkadot/api-derive": "6.4.2", "@polkadot/keyring": "^7.5.1", - "@polkadot/rpc-core": "6.4.2-1", - "@polkadot/rpc-provider": "6.4.2-1", - "@polkadot/types": "6.4.2-1", - "@polkadot/types-known": "6.4.2-1", + "@polkadot/rpc-core": "6.4.2", + "@polkadot/rpc-provider": "6.4.2", + "@polkadot/types": "6.4.2", + "@polkadot/types-known": "6.4.2", "@polkadot/util": "^7.5.1", "@polkadot/util-crypto": "^7.5.1", "eventemitter3": "^4.0.7", diff --git a/packages/rpc-core/package.json b/packages/rpc-core/package.json index 8a6ccecd8e..4000d5973d 100644 --- a/packages/rpc-core/package.json +++ b/packages/rpc-core/package.json @@ -1,6 +1,6 @@ { "name": "@polkadot/rpc-core", - "version": "6.4.2-1", + "version": "6.4.2", "type": "module", "description": "A JavaScript wrapper for the Polkadot JsonRPC interface", "main": "index.js", @@ -20,8 +20,8 @@ "homepage": "https://github.com/polkadot-js/api/tree/master/packages/rpc-core#readme", "dependencies": { "@babel/runtime": "^7.15.4", - "@polkadot/rpc-provider": "6.4.2-1", - "@polkadot/types": "6.4.2-1", + "@polkadot/rpc-provider": "6.4.2", + "@polkadot/types": "6.4.2", "@polkadot/util": "^7.5.1", "rxjs": "^7.4.0" }, diff --git a/packages/rpc-provider/package.json b/packages/rpc-provider/package.json index f48ae5813d..45c5eae996 100644 --- a/packages/rpc-provider/package.json +++ b/packages/rpc-provider/package.json @@ -1,6 +1,6 @@ { "name": "@polkadot/rpc-provider", - "version": "6.4.2-1", + "version": "6.4.2", "type": "module", "description": "Transport providers for the API", "main": "index.js", @@ -20,7 +20,7 @@ "homepage": "https://github.com/polkadot-js/api/tree/master/packages/rpc-provider#readme", "dependencies": { "@babel/runtime": "^7.15.4", - "@polkadot/types": "6.4.2-1", + "@polkadot/types": "6.4.2", "@polkadot/util": "^7.5.1", "@polkadot/util-crypto": "^7.5.1", "@polkadot/x-fetch": "^7.5.1", @@ -30,7 +30,7 @@ }, "devDependencies": { "@polkadot/keyring": "^7.5.1", - "@polkadot/types": "6.4.2-1", + "@polkadot/types": "6.4.2", "mock-socket": "^9.0.5", "nock": "^13.1.3" } diff --git a/packages/typegen/package.json b/packages/typegen/package.json index ee96995a7a..80d8dc79c8 100644 --- a/packages/typegen/package.json +++ b/packages/typegen/package.json @@ -1,6 +1,6 @@ { "name": "@polkadot/typegen", - "version": "6.4.2-1", + "version": "6.4.2", "type": "module", "description": "Type generation scripts", "main": "index.js", @@ -29,10 +29,10 @@ "@babel/core": "^7.15.8", "@babel/register": "^7.15.3", "@babel/runtime": "^7.15.4", - "@polkadot/api": "6.4.2-1", - "@polkadot/rpc-provider": "6.4.2-1", - "@polkadot/types": "6.4.2-1", - "@polkadot/types-support": "6.4.2-1", + "@polkadot/api": "6.4.2", + "@polkadot/rpc-provider": "6.4.2", + "@polkadot/types": "6.4.2", + "@polkadot/types-support": "6.4.2", "@polkadot/util": "^7.5.1", "handlebars": "^4.7.7", "websocket": "^1.0.34", diff --git a/packages/types-known/package.json b/packages/types-known/package.json index 8450f47efa..356b101581 100644 --- a/packages/types-known/package.json +++ b/packages/types-known/package.json @@ -1,6 +1,6 @@ { "name": "@polkadot/types-known", - "version": "6.4.2-1", + "version": "6.4.2", "type": "module", "description": "Known type definitions", "main": "index.js", @@ -21,7 +21,7 @@ "dependencies": { "@babel/runtime": "^7.15.4", "@polkadot/networks": "^7.5.1", - "@polkadot/types": "6.4.2-1", + "@polkadot/types": "6.4.2", "@polkadot/util": "^7.5.1" } } diff --git a/packages/types-support/package.json b/packages/types-support/package.json index 7f5c5eb8ef..99a8f8b638 100644 --- a/packages/types-support/package.json +++ b/packages/types-support/package.json @@ -1,6 +1,6 @@ { "name": "@polkadot/types-support", - "version": "6.4.2-1", + "version": "6.4.2", "type": "module", "description": "Supporting files for types, mostly for testing", "main": "index.js", diff --git a/packages/types/package.json b/packages/types/package.json index 81f13fa3db..90a61c584b 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@polkadot/types", - "version": "6.4.2-1", + "version": "6.4.2", "type": "module", "description": "Implementation of the Parity codec", "main": "index.js", @@ -26,7 +26,7 @@ }, "devDependencies": { "@polkadot/keyring": "^7.5.1", - "@polkadot/types-support": "6.4.2-1", + "@polkadot/types-support": "6.4.2", "@types/bn.js": "^4.11.6", "bn.js": "^4.12.0" } diff --git a/packages/types/src/codec/Option.spec.ts b/packages/types/src/codec/Option.spec.ts index cd71a706f7..217bfe3a21 100644 --- a/packages/types/src/codec/Option.spec.ts +++ b/packages/types/src/codec/Option.spec.ts @@ -27,6 +27,7 @@ describe('Option', (): void => { expect(new Option(registry, Text, undefined).isNone).toBe(true); expect(new Option(registry, Text, null).isNone).toBe(true); expect(new Option(registry, Text, 'test').isNone).toBe(false); + expect(new Option(registry, Text, '0x').isNone).toBe(true); }); it('converts an option to an option', (): void => { diff --git a/packages/types/src/codec/Option.ts b/packages/types/src/codec/Option.ts index 6e07c40274..87aa809c4d 100644 --- a/packages/types/src/codec/Option.ts +++ b/packages/types/src/codec/Option.ts @@ -18,7 +18,7 @@ function decodeOptionU8a (registry: Registry, Type: Constructor, value: Uint8Arr /** @internal */ function decodeOption (registry: Registry, typeName: Constructor | string, value?: unknown): Codec { - if (isNull(value) || isUndefined(value) || value instanceof Null) { + if (isNull(value) || isUndefined(value) || value instanceof Null || value === '0x') { return new Null(registry); } diff --git a/packages/types/src/create/registry.ts b/packages/types/src/create/registry.ts index a2e4e12d5c..a3f9e1701d 100644 --- a/packages/types/src/create/registry.ts +++ b/packages/types/src/create/registry.ts @@ -459,9 +459,9 @@ export class TypeRegistry implements Registry { // setup the available extensions this.setSignedExtensions( signedExtensions || ( - metadata.asLatest.extrinsic.version.gt(BN_ZERO) + this.#metadata.extrinsic.version.gt(BN_ZERO) // FIXME Use the extension and their injected types - ? metadata.asLatest.extrinsic.signedExtensions.map(({ identifier }) => identifier.toString()) + ? this.#metadata.extrinsic.signedExtensions.map(({ identifier }) => identifier.toString()) : fallbackExtensions ), userExtensions diff --git a/packages/types/src/extrinsic/SignerPayload.ts b/packages/types/src/extrinsic/SignerPayload.ts index 6287602ba7..f6a81684b8 100644 --- a/packages/types/src/extrinsic/SignerPayload.ts +++ b/packages/types/src/extrinsic/SignerPayload.ts @@ -7,6 +7,7 @@ import type { Codec, ISignerPayload, Registry, SignerPayloadJSON, SignerPayloadR import { u8aToHex } from '@polkadot/util'; import { Compact } from '../codec/Compact'; +import { Option } from '../codec/Option'; import { Struct } from '../codec/Struct'; import { Vec } from '../codec/Vec'; import { Text } from '../primitive/Text'; @@ -120,7 +121,13 @@ export class GenericSignerPayload extends Struct implements ISignerPayload, Sign return { // add any explicit overrides we may have ...(Object.keys(this._extraTypes).reduce>((map, key) => { - map[key] = (this.get(key) as Codec).toHex(); + const value = this.get(key) as Codec; + const isOption = value instanceof Option; + + // Don't include Option.isNone + if (!isOption || value.isSome) { + map[key] = value.toHex(); + } return map; }, {})), diff --git a/yarn.lock b/yarn.lock index 2faa0e3ff2..1bbb884ab8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1833,40 +1833,40 @@ __metadata: resolution: "@polkadot/api-contract@workspace:packages/api-contract" dependencies: "@babel/runtime": ^7.15.4 - "@polkadot/api": 6.4.2-1 - "@polkadot/types": 6.4.2-1 + "@polkadot/api": 6.4.2 + "@polkadot/types": 6.4.2 "@polkadot/util": ^7.5.1 rxjs: ^7.4.0 languageName: unknown linkType: soft -"@polkadot/api-derive@6.4.2-1, @polkadot/api-derive@workspace:packages/api-derive": +"@polkadot/api-derive@6.4.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.15.4 - "@polkadot/api": 6.4.2-1 + "@polkadot/api": 6.4.2 "@polkadot/keyring": ^7.5.1 - "@polkadot/rpc-core": 6.4.2-1 - "@polkadot/rpc-provider": 6.4.2-1 - "@polkadot/types": 6.4.2-1 + "@polkadot/rpc-core": 6.4.2 + "@polkadot/rpc-provider": 6.4.2 + "@polkadot/types": 6.4.2 "@polkadot/util": ^7.5.1 "@polkadot/util-crypto": ^7.5.1 rxjs: ^7.4.0 languageName: unknown linkType: soft -"@polkadot/api@6.4.2-1, @polkadot/api@workspace:packages/api": +"@polkadot/api@6.4.2, @polkadot/api@workspace:packages/api": version: 0.0.0-use.local resolution: "@polkadot/api@workspace:packages/api" dependencies: "@babel/runtime": ^7.15.4 - "@polkadot/api-derive": 6.4.2-1 + "@polkadot/api-derive": 6.4.2 "@polkadot/keyring": ^7.5.1 - "@polkadot/rpc-core": 6.4.2-1 - "@polkadot/rpc-provider": 6.4.2-1 - "@polkadot/types": 6.4.2-1 - "@polkadot/types-known": 6.4.2-1 + "@polkadot/rpc-core": 6.4.2 + "@polkadot/rpc-provider": 6.4.2 + "@polkadot/types": 6.4.2 + "@polkadot/types-known": 6.4.2 "@polkadot/util": ^7.5.1 "@polkadot/util-crypto": ^7.5.1 eventemitter3: ^4.0.7 @@ -1991,26 +1991,26 @@ __metadata: languageName: node linkType: hard -"@polkadot/rpc-core@6.4.2-1, @polkadot/rpc-core@workspace:packages/rpc-core": +"@polkadot/rpc-core@6.4.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.15.4 "@polkadot/keyring": ^7.5.1 - "@polkadot/rpc-provider": 6.4.2-1 - "@polkadot/types": 6.4.2-1 + "@polkadot/rpc-provider": 6.4.2 + "@polkadot/types": 6.4.2 "@polkadot/util": ^7.5.1 rxjs: ^7.4.0 languageName: unknown linkType: soft -"@polkadot/rpc-provider@6.4.2-1, @polkadot/rpc-provider@workspace:packages/rpc-provider": +"@polkadot/rpc-provider@6.4.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.15.4 "@polkadot/keyring": ^7.5.1 - "@polkadot/types": 6.4.2-1 + "@polkadot/types": 6.4.2 "@polkadot/util": ^7.5.1 "@polkadot/util-crypto": ^7.5.1 "@polkadot/x-fetch": ^7.5.1 @@ -2038,10 +2038,10 @@ __metadata: "@babel/core": ^7.15.8 "@babel/register": ^7.15.3 "@babel/runtime": ^7.15.4 - "@polkadot/api": 6.4.2-1 - "@polkadot/rpc-provider": 6.4.2-1 - "@polkadot/types": 6.4.2-1 - "@polkadot/types-support": 6.4.2-1 + "@polkadot/api": 6.4.2 + "@polkadot/rpc-provider": 6.4.2 + "@polkadot/types": 6.4.2 + "@polkadot/types-support": 6.4.2 "@polkadot/util": ^7.5.1 "@types/websocket": ^1.0.4 "@types/yargs": ^17.0.4 @@ -2057,18 +2057,18 @@ __metadata: languageName: unknown linkType: soft -"@polkadot/types-known@6.4.2-1, @polkadot/types-known@workspace:packages/types-known": +"@polkadot/types-known@6.4.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.15.4 "@polkadot/networks": ^7.5.1 - "@polkadot/types": 6.4.2-1 + "@polkadot/types": 6.4.2 "@polkadot/util": ^7.5.1 languageName: unknown linkType: soft -"@polkadot/types-support@6.4.2-1, @polkadot/types-support@workspace:packages/types-support": +"@polkadot/types-support@6.4.2, @polkadot/types-support@workspace:packages/types-support": version: 0.0.0-use.local resolution: "@polkadot/types-support@workspace:packages/types-support" dependencies: @@ -2077,13 +2077,13 @@ __metadata: languageName: unknown linkType: soft -"@polkadot/types@6.4.2-1, @polkadot/types@workspace:packages/types": +"@polkadot/types@6.4.2, @polkadot/types@workspace:packages/types": version: 0.0.0-use.local resolution: "@polkadot/types@workspace:packages/types" dependencies: "@babel/runtime": ^7.15.4 "@polkadot/keyring": ^7.5.1 - "@polkadot/types-support": 6.4.2-1 + "@polkadot/types-support": 6.4.2 "@polkadot/util": ^7.5.1 "@polkadot/util-crypto": ^7.5.1 "@types/bn.js": ^4.11.6