Skip to content

Latest commit

 

History

History
492 lines (247 loc) · 11.2 KB

CHANGELOG.md

File metadata and controls

492 lines (247 loc) · 11.2 KB

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:

  • Dependency bumps

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:

  • Add bip39ToSeed

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:

  • Initial release