* 2.0

* prerelease

* Bumps

* CHANGELOG

* Don't init with no WASM bytes

* {asm,bytes}-empty

* asm-empty import

* WasmCryptoInstance
This commit is contained in:
Jaco Greeff
2020-11-03 08:46:57 +01:00
committed by GitHub
parent 9f199fee77
commit c6135e28d4
12 changed files with 67 additions and 27 deletions
+3 -2
View File
@@ -1,12 +1,13 @@
# CHANGELOG
## 1.5.0-x
## 2.0.0-x
- **Breaking change** `crypto.getRandomValues` is not a polyfill anymore. Generally in libraries these should always be supplied by the user to ensure control and non-conflicts. This could affect environments such as Jest, for those see https://stackoverflow.com/questions/52612122/how-to-use-jest-to-test-functions-using-crypto-or-window-mscrypto. On React Native, ensure you do have the required crypto polyfills, browser and Node.js is not affected.
Changes:
- Move to building via stable, not nightly
- Move to building via stable Rust, not nightly
- Rework generation of WASM interfaces (proper cross-platform support)
- Remove application of `getRandomValues` polyfill. Generally these should be supplied by the user.
+2 -2
View File
@@ -25,7 +25,7 @@
},
"devDependencies": {
"@babel/core": "^7.12.3",
"@polkadot/dev": "^0.59.16"
"@polkadot/dev": "^0.59.17"
},
"version": "1.5.0-beta.19"
"version": "2.0.0-1"
}
+3 -3
View File
@@ -1,14 +1,14 @@
{
"name": "@polkadot/wasm-crypto",
"version": "1.5.0-beta.19",
"version": "2.0.0-1",
"author": "Jaco Greeff <jacogr@gmail.com>",
"react-native": {
"./wasm/stub.js": "./wasm/asm.js"
"./wasm/asm-empty.js": "./wasm/asm.js"
},
"main": "index.js",
"types": "index.d.ts",
"devDependencies": {
"@polkadot/dev": "^0.59.16",
"@polkadot/dev": "^0.59.17",
"@polkadot/util": "^3.7.1",
"override-require": "^1.1.1"
},
+1 -1
View File
@@ -11,7 +11,7 @@ let cachegetUint8 = null;
async function initWasm (wasmBytes, asmFn, wbg) {
try {
assert(typeof WebAssembly !== 'undefined', 'WebAssembly is not available in your environment');
assert(typeof WebAssembly !== 'undefined' && wasmBytes && wasmBytes.length, 'WebAssembly is not available in your environment');
const source = await WebAssembly.instantiate(wasmBytes, { wbg });
+1 -1
View File
@@ -1,8 +1,8 @@
// Copyright 2019-2020 @polkadot/wasm-crypto authors & contributors
// SPDX-License-Identifier: Apache-2.0
const asmFallback = require('../wasm/asm-empty');
const wasmBytes = require('../wasm/bytes');
const asmFallback = require('../wasm/stub');
const { allocString, allocU8a, getWasm, initWasm, resultString, resultU8a, withWasm } = require('./bridge');
const imports = require('./imports');
+1 -1
View File
@@ -3,4 +3,4 @@
// Stub replaced at build time
module.exports = null;
module.exports = require('./asm-empty');
@@ -0,0 +1,4 @@
// Copyright 2019-2020 @polkadot/wasm-crypto authors & contributors
// SPDX-License-Identifier: Apache-2.0
module.exports = null;
+1 -1
View File
@@ -3,4 +3,4 @@
// Stub replaced at build time
module.exports = Buffer.from();
module.exports = require('./bytes-empty');
+35
View File
@@ -0,0 +1,35 @@
// Copyright 2019-2020 @polkadot/wasm-crypto authors & contributors
// SPDX-License-Identifier: Apache-2.0
/* eslint-disable camelcase */
// wasm-pack build output (formatted) from pkg/wasm_bg.d.ts
export interface WasmCryptoInstance {
memory: WebAssembly.Memory;
__wbindgen_free(a: number, b: number): void;
__wbindgen_malloc(a: number): number;
__wbindgen_realloc(a: number, b: number, c: number): number;
__wbindgen_exn_store(a: number): void;
ext_bip39_generate(a: number, b: number): void;
ext_bip39_to_entropy(a: number, b: number, c: number): void;
ext_bip39_to_mini_secret(a: number, b: number, c: number, d: number, e: number): void;
ext_bip39_to_seed(a: number, b: number, c: number, d: number, e: number): void;
ext_bip39_validate(a: number, b: number): number;
ext_ed_from_seed(a: number, b: number, c: number): void;
ext_ed_sign(a: number, b: number, c: number, d: number, e: number, f: number, g: number): void;
ext_ed_verify(a: number, b: number, c: number, d: number, e: number, f: number): number;
ext_blake2b(a: number, b: number, c: number, d: number, e: number, f: number): void;
ext_keccak256(a: number, b: number, c: number): void;
ext_pbkdf2(a: number, b: number, c: number, d: number, e: number, f: number): void;
ext_scrypt(a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number): void;
ext_sha512(a: number, b: number, c: number): void;
ext_twox(a: number, b: number, c: number, d: number): void;
ext_sr_derive_keypair_hard(a: number, b: number, c: number, d: number, e: number): void;
ext_sr_derive_keypair_soft(a: number, b: number, c: number, d: number, e: number): void;
ext_sr_derive_public_soft(a: number, b: number, c: number, d: number, e: number): void;
ext_sr_from_seed(a: number, b: number, c: number): void;
ext_sr_sign(a: number, b: number, c: number, d: number, e: number, f: number, g: number): void;
ext_sr_verify(a: number, b: number, c: number, d: number, e: number, f: number): number;
}
+1 -1
View File
@@ -4,7 +4,7 @@
global.WebAssembly = null;
require('override-require')(
(request) => request.endsWith('wasm/stub'),
(request) => request.endsWith('wasm/asm-empty'),
() => require('../build/wasm/asm')
);
+15 -15
View File
@@ -1712,9 +1712,9 @@ __metadata:
languageName: node
linkType: hard
"@polkadot/dev@npm:^0.59.16":
version: 0.59.16
resolution: "@polkadot/dev@npm:0.59.16"
"@polkadot/dev@npm:^0.59.17":
version: 0.59.17
resolution: "@polkadot/dev@npm:0.59.17"
dependencies:
"@babel/cli": ^7.12.1
"@babel/core": ^7.12.3
@@ -1801,7 +1801,7 @@ __metadata:
polkadot-exec-typedoc: scripts/polkadot-exec-typedoc.js
polkadot-exec-vuepress: scripts/polkadot-exec-vuepress.js
polkadot-exec-webpack: scripts/polkadot-exec-webpack.js
checksum: c5f2ccbb5f7a0f9bcc186aaad28f8cd5b125b6de3ae7f8cdd41311b6e22ded9873482805bd128fb95b813f776b900cef000c3a02605f1c0d8e3f43bec9480ed7
checksum: 35865dd5fb7a5f3784f5887c2f54cc51cd1265ec3802be12a6394947024a37ff83307f7d5be8563e662916da22dd0f0d6c43e9fb84463260e5a5a0d6c1eb169f
languageName: node
linkType: hard
@@ -1824,7 +1824,7 @@ __metadata:
version: 0.0.0-use.local
resolution: "@polkadot/wasm-crypto@workspace:packages/wasm-crypto"
dependencies:
"@polkadot/dev": ^0.59.16
"@polkadot/dev": ^0.59.17
"@polkadot/util": ^3.7.1
override-require: ^1.1.1
peerDependencies:
@@ -1892,15 +1892,15 @@ __metadata:
linkType: hard
"@types/babel__core@npm:^7.0.0, @types/babel__core@npm:^7.1.7":
version: 7.1.11
resolution: "@types/babel__core@npm:7.1.11"
version: 7.1.12
resolution: "@types/babel__core@npm:7.1.12"
dependencies:
"@babel/parser": ^7.1.0
"@babel/types": ^7.0.0
"@types/babel__generator": "*"
"@types/babel__template": "*"
"@types/babel__traverse": "*"
checksum: 081ea9a093ce22ebbc7fd07c07298d84d551f1517159631a69953634509e88324d26199b012a20cca5da116222f9f3468b1ee98eb78f6bb4efb909c0e856f272
checksum: e2642b77b89af41254a19d85b6cc5b1096f9825aa2b6534d5426cee7fbf6d90cfeceb5c1621f233d32dc1925a9fe88c317e412f81a061cf7239dbd4e2dd413e4
languageName: node
linkType: hard
@@ -3795,9 +3795,9 @@ __metadata:
linkType: hard
"electron-to-chromium@npm:^1.3.585":
version: 1.3.585
resolution: "electron-to-chromium@npm:1.3.585"
checksum: a7cd8515631144a05e065d19ec6cc1ace5547f7bd81af5815f8dd4f2ff14cd1fd1aef95a6628b24e20d63b35fdaf5304efbb597231f0efa4670fde905e5a6b06
version: 1.3.586
resolution: "electron-to-chromium@npm:1.3.586"
checksum: 3c680e665ac32aef5e569343a66f17ca600e533daf24b841dfccb813f891bd8fbd132a4e208572660dc7f259f66963768b22117df1ba7ab6e25df68c3a0221dc
languageName: node
linkType: hard
@@ -8594,7 +8594,7 @@ fsevents@^1.2.7:
resolution: "root-workspace-0b6124@workspace:."
dependencies:
"@babel/core": ^7.12.3
"@polkadot/dev": ^0.59.16
"@polkadot/dev": ^0.59.17
languageName: unknown
linkType: soft
@@ -9737,11 +9737,11 @@ fsevents@^1.2.7:
linkType: hard
"uglify-js@npm:^3.1.4":
version: 3.11.4
resolution: "uglify-js@npm:3.11.4"
version: 3.11.5
resolution: "uglify-js@npm:3.11.5"
bin:
uglifyjs: bin/uglifyjs
checksum: 654020b5bb2e53ef99b91603396dee47fc24930909a207590f04a93699c1df0f951e85c1c486aec44859b1ca255430681b46f13bd36f81e0113e57c370bf93d0
checksum: 8614bb84f305d229ed42a4cfba1687725a32d17828e67ea06f8c972f2d71eaaccc973c21dd65d4271a9bbd8e45cdde096ebf3f21c0f041dd39b2592862e7713a
languageName: node
linkType: hard