CHANGELOG
7.4.1 Oct 20, 2024
- Bump dev deps to 0.81.2
- Bump TS
- Ensure CJS is exported correctly
- Bump yarn
- Add missing sideEffect declarations
- Set Deno build in CI to 1.42.x
7.3.2 Dec 6, 2023
Changes:
- Apply fixes for OOB array access
7.3.1 Nov 17, 2023
Changes:
- Drop support for Node 16 (EOL 11 Sep 2023)
7.2.2 Aug 17, 2023
Changes:
- Adjust cjs exports for consistency
- Adjust usage of
?.
as per (latest) linting rules
7.2.1 May 13, 2023
Changes:
- Adjust
cjs/bytes.js
generation to follow export.<var> = ...
form
- Add
module
to package.json
export map (ESM-only)
7.1.2 Apr 28, 2023
Changes:
- Apply
readonly
specifiers to private class fields where applicable
- Adjust compilation output for
__internal__
class fields
7.1.1 Apr 22, 2023
Changes:
- Add
wasm-util
as dependency where x-randomvalues
is a peer
- Drop support for Node 14 (EOL 30 Apr 2023)
7.0.3 Mar 11, 2023
Changes:
- Use consistent
.js
imports in source files (TS moduleResolution)
7.0.2 Mar 4, 2023
Changes:
- Update to latest
@polkadot/dev
(w/ tsc jsx detection output changes)
7.0.1 Mar 4, 2023
Changes:
- Swap TS -> JS compiler to use tsc (from babel)
- Adjust all tests to use
node:test
runner (ESM & CJS variants)
6.4.1 Dec 3, 2022
Changes:
- Add
/*#__PURE__*/
annotations for specific export const something = someFunction(...)
6.3.1 Jul 21, 2022
Changes:
- Optimize packed WASM base64 decoding loop
- Adjust test environment (no duplication)
- Adjust CI check steps, align with other org repos
- Remove unneeded
import_map.in.json
for Deno tests
6.2.3 Jul 7, 2022
Changes:
- Optimize WASM init with pre-allocated buffers
- Additional platform-specific tests
6.2.2 Jul 4, 2022
Changes:
6.2.1 Jul 1, 2022
Changes:
- Add missing
peerDependencies
to wasm-crypto
(bridge
requirement)
- Adjust
WebAssembly.{Memory, ModuleImports}
usage to cater for non-dom TS
6.1.5 Jun 23, 2022
Changes:
- Adjust build outputs for Deno targets
6.1.4 Jun 22, 2022
Changes:
- Adjust build outputs for Deno targets
6.1.3 Jun 21, 2022
Changes:
- Fix bundle publish (from dev bump)
6.1.2 Jun 21, 2022
Changes:
- Adjust assert usage in all internal non-test code
- Additional comments where missing
6.1.1 May 13, 2022
Changes:
- Adjust init, allow RN with default ASM.js-only fallback
- Split
wasm-{bridge, util}
packages for internal re-use
6.0.1 Apr 9, 2022
- Breaking change In this major version the commonjs outputs are moved to a sub-folder. Since the
export
map and main
field in package.json
does reflect this change, there should be no usage changes. However the packages here will all need to be on the same version for internal linkage.
Changes:
- Update ed25519 secret key format return description
- Output commonjs files under the
cjs/**
root
5.1.1 Mar 27, 2022
Changes:
- Swap from
libsecp256k1
to secp256k1
(this aligns with the Substrate use)
- Adjust
wasm-crypto/init*
to also export initWasm(): Promise<void>
(optional manual init)
- Allow for
wasm-crypto/initNone
with no defined Wasm or Asm interfaces
- Fix initialization on React Native with only ASM
5.0.1 Mar 19, 2022
- Breaking change For users of React Native, you are now required to add
import '@polkadot/wasm-crypto/initOnlyAsm'
at your project top-level to ensure that asm.js is initialized. (Or alternatively import '@polkadot/wasm-crypto/initWasmAsm'
to future-proof when WASM does become available)
- Breaking change For users who used to map the
data
and empty
of the internal wasm-crypto-{wasm, asmjs}
packages in their bundlers, swap to one of the @polkadot/wasm-crypto/init*
top-level imports to set the type of interfaces you would prefer. A full writeup of the rationale and other options can be found in the FAQ
Changes:
- Add (optional)
@polkadot/wasm-crypto/init{OnlyAsm, OnlyWasm, WasmAsm}
to allow specific interface types
- Add work-around for lazy secp256k1 init in asm.js environments
- Optimize asm.js output size
- Use latest
wasm-bindgen
, binaryen
& wabt
packages in build
- Additional workaround for Vite bundling
4.6.1 Mar 12, 2022
Changes:
- Adjust ed25519 internals, consistency in code
- Ensure package path is available under ESM & CJS
- JS wrapped bytes interoperability test
- Adjust for bundlers where
import.meta.url
is undefined
4.5.1 Dec 3, 2021
Changes:
- Add
secp256k1{Compress, Expand, Recover, Sign}
functions
- Remove all occurences of
.unwrap()
(match everywhere)
- Adjust and optimize WASM function JS interface construction
- Simplify base64 bytes decoding on construction
4.4.1 Nov 22, 2021
Changes:
- Add
hmacSha256
& hmacSha512
functions
4.3.1 Nov 19, 2021
Contributed:
Changes:
- Add
keccak512
function
- Add
sha256
function
4.2.1 Aug 28, 2021
Contributed:
Changes:
- Adjust tests to align with JS coding standards
- Allow for optional build with Rust stable bootstrap
4.1.2 Jul 9, 2021
Changes:
- Bump
@polkadot/dev
to allow for bundles with new-format
4.1.1 Jul 7, 2021
Changes:
- Add an explicit
engines
field to package.json
- Allow building as a completely stand-alone browser bundle (experimental)
4.0.2 Mar 5, 2021
Changes:
- Add import indirection for both CJS & ESM (where generated source file is commonjs)
4.0.1 Mar 4, 2021
Important In the 4.0 version the default package type has been changed to ESM modules by default. This should not affect usage, however since the output formats changed, a new major version is required.
Changes:
- Build to ESM by default (with cjs versions via export map)
3.2.4 Feb 24, 2021
Changes:
- Cleanup implicit dependencies, perform base64 decoding using base64-js
3.2.3 Feb 16, 2021
Changes:
- Change package detect import to use
.js
source, not .json
3.2.2 Jan 24, 2021
Changes:
- Remove
module
field in package.json
3.2.1 Jan 22, 2021
Contributed:
Changes:
- Add explicit
.editorconfig
for Rust sources
- Remove unused code bundles (
vrf_{sign,verify}_extra
, secp256k1
with tests)
- Test run wrapper cleanups
3.1.1 Dec 19, 2020
Changes:
- Single-instance package detection
- Adjust WASM inflate with localized methods
3.0.1 Dec 13, 2020
Important This assumes @polkadot/util
5+ peerDependencies
Important While this package contains no external interface changes, it doe now compile and ship both cjs and esm modules. This means that modern bundlers will have more information for tree-shaking available. Additionally when using Node with .mjs
extensions, the esm version imports will be used on recent Node versions. Adding an export map, as here, may have some impacts so a major semver bump is advised. There may be (small) dragons hiding in the dark corners...
Changes:
- Build and expose both cjs and esm via exports map
- Split wasm and asmjs files into the
@polkadot/wasm-crypto-{wasm,asmjs}
packages
- Add fflate WASM compression, with 180K raw savings (37K over-the-wire)
- Convert the package to full TypeScript sources
2.0.1 Nov 8, 2020
Changes:
- Rework generation of WASM interfaces (proper cross-platform JS support)
- Remove explicit
crypto
dependency, this is now applied by @polkadot/x-randomvalues
- Build via xargo for panic abort, an overall small sizes without stack (Pinned nightly)
- Move Rust library sources in to
rs/
subfolder
1.4.1 Aug 27, 2020
Changes:
- Re-add the BTC/ETH compatible
bip39ToSeed
dropped in the previous version (ETH-compatible pairs)
1.3.1 Aug 9, 2020
Changes:
- Add
scrypt
function for KDF generation
- Remove
bip39ToSeed
, we only use the bip39ToMiniSecret
variant in Substrate
- Update ed25519-dalek to 1.0.0-pre.4
- Rework generation based on latest wasm-pack generator
1.2.1 Feb 29, 2020
Changes:
- Adjust build process for smaller wasm bundle outputs (~50K dropped from base bundle)
- Unpin nightly from nightly-2020-02-17 version
- Swap to yarn 2 and add support for use by yarn 2 projects
1.1.1 Feb 24, 2020
- Important The sr25519 interface dropped the use of
verify_simple_preaudit_deprecated
for signature verification, instead it now uses verify_simple
. Only schnorrkel 0.8+ signatures will now pass verification. This is a follow-up of the 0.1 signing support that was dropped in a previous version.
Changes:
- Rework schnorrkel signatures test vectors based on the above change (Rust, WASM and ASM.js tests)
- Rust nightly pinned to last-known-working 2020-02-17 on CI (compiler issues, should to be reverted in a future release)
1.0.1 Feb 15, 2020
Changes:
- No functionality changes from 0.20.1. The interfaces here are stable in the current iteration.
0.20.1 Jan 30, 2020
Changes:
- Pull in schnorrkel 0.8.5 for full Substrate 2.x compatibility
0.14.1 Sep 09, 2019
Changes:
- No functionality changes at all, everything done is "under the hood" to give the codebase better maintainability
0.13.1 Jul 20, 2019
Changes:
- Added an asm.js fallback which is active for React Native via the
"react-native"
entry in package.json
. Ensure that you run the build step with the NODE_OPTIONS=--max_old_space_size=8192
flags, since the asm.js bundle is large. (For RN the full command would therefore be NODE_OPTIONS=--max_old_space_size=8192 npm start
)
0.12.1 Jul 17, 2019
Changes:
- Remove deprecated
@polkadot/wasm-schnorrkel
& @polkadot/wasm-dalek-ed25519
source (all combined in @polkadot/wasm-crypto
, was kept for historical purposes)
- Security dependency bumps
- Updated Rust
hex-literal
for recent versions of the compiler (used in tests only)
0.11.1 May 31, 2019
Changes:
- Security dependency bumps
0.10.1 May 09, 2019
Changes:
- w3f/schnorrkel updated to 0.1.1 as per substrate
- Added known subkey signature test (Rust & JS)
0.9.1 Apr 29, 2019
Changes:
0.8.1 Mar 31, 2019
Changes:
- Pull ed25519 & sr25519 into
@polkadot/wasm-crypto
as well (smaller final size)
- Disable build/publish of
wasm-dalek-ed25519
& wasm-schnorrkel
- Improve error messaging, instead of
__wasm_malloc of null
0.7.1 Mar 30, 2019
Changes:
- Fix build scripts to properly attach errors in the log (dropped in 0.6.1)
0.6.1 Mar 27, 2019
Changes:
- Log init errors for both non-WebAssembly usage as well as WebAssembly errors
0.5.1 Mar 23, 2019
Changes:
- Add password argument to bip39ToSeed
0.4.1 Mar 23, 2019
Changes:
0.3.1 Mar 23, 2019
Changes:
- Add wasm-dalek-ed25519 for all used crypto there
- Add keccak256
- Try secp256k1 (bloating code, not used atm)
0.2.1 Mar 20, 2019
Changes:
- Add basic crypto functions, creation of wasm-crypto package
- blake2, bip39, sha2, xxhash
0.1.1 Mar 18, 2019
Changes: