Skip to content

Latest commit

 

History

History
260 lines (159 loc) · 14.1 KB

File metadata and controls

260 lines (159 loc) · 14.1 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Changed

Changed

  • BREAKING: Enable Ledger clear signing (#99)
    • The LedgerSignTypedDataParams type now requires a new message field which replaces the domainSeparatorHex and hashStructMessage}Hex fields.

Added

  • BREAKING: Add ESM build (#40)
    • It's no longer possible to import files from ./dist directly.

Changed

  • BREAKING: Bump @metamask/eth-sig-util dependency from ^7.0.3 to ^8.0.0 (#79)
    • signTypedData no longer support number for addresses, see here.

Fixed

  • Device ID will now be cleared up when forgetting a device (#86)

Changed

  • Bump @ledgerhq/hw-app-eth dependency to ^6.39.0 (#68)
    • This new dependency version reduces the resulting package bundle size.

Changed

Changed

  • Bump sinon and @types/sinon to latest versions (#51)
  • Add syncpack and sync dependencies (#53)

Changed

  • Bump @metamask/* and @lavamoat/* dependencies (#46)
  • Move deepmerge to devDependencies (#44)

Changed

  • Convert to monorepo
    • Package name does not change (@metamask/eth-ledger-bridge-keyring) and sources have been moved to: packages/keyring-eth-ledger-bridge.
    • You can find all the changes here.

Fixed

  • The promise returned by the init method now resolves only after iframe has been loaded (#236)
    • updateTransportMethod will throw an error when called before init

Changed

  • Refactor error message in LedgerKeyring (#232)
  • Extend LedgerMobileBridge type from LedgerBridge (#233)
  • Create new MetaMaskLedgerHwAppEth instance instead of re-using previous instance (#231)

Added

  • Add classes LedgerMobileBridge, LedgerTransportMiddleware, and MetaMaskLedgerHwAppEth to support Bluetooth as a HW Ledger Transport option (#225)

Changed

  • BREAKING: The LedgerKeyring method setAccountToUnlock now only accepts an input of type number (#225)
  • BREAKING: Removed the chainCode property from the GetPublicKeyResponse type (#225)

Added

  • Add getOptions and setOptions methods to LedgerBridge interface (#210)

Changed

  • BREAKING: LedgerIframeBridge class constructor now takes an options object with bridgeUrl (#210)
  • BREAKING: LedgerBridge init function now takes no parameters (#210)
  • BREAKING: LedgerBridgeKeyringOptions no longer contain bridgeUrl (#210)
  • BREAKING: LedgerBridge interface is now parameterized over its option type (#210)
  • Minor performance enhancement (#211)

Fixed

  • BREAKING: IFrameMessageResponse now has more restrictive typings (#207) (#207)

Fixed

  • Fix invalid rlp data error for legacy transactions in 2.0.0 (#212)

Changed

  • BREAKING: Remove support for major node versions 14,15,17,19. Minimum Node.js version is now 16. (#204)
  • Bump @metamask/eth-sig-util from ^6.0.1 to ^7.0.0 (#205)

Fixed

  • Move @metamask/utils from deendencies to devDependencies (#209)

Fixed

  • Bump dependency hdkey from 0.8.0 to ^2.1.0 (#196)
  • Replace dependency eth-sig-util@^2 with @metamask/eth-sig-util@^6 (#157)
  • Replace dependency ethereumjs-util@^7.0.9 with @ethereumjs/util@^8.0.0 and @ethereumjs/rlp (#153)

Changed

  • BREAKING: Separate the bridge from the keyring (#156)
    • The Ledger bridge is now a separate class (LedgerIframeBridge), which must be constructed separately from the keyring and passed in as a constructor argument.
    • The bridge initialization has been moved from the keyring constructor to the keyring init method. The bridge is expected to be passed to the keyring uninitialized, and the keyring init method is expected to be called after keyring construction (before the keyring is used).
    • The keyring constructor no longer accepts keyring state. Instead, any pre-existing keyring state should be passed to the deserialize method after construction.
  • BREAKING: Export changed from default to named (#174)
    • The keyring is exported as LedgerKeyring
  • Add TypeScript types (#174)

Changed

  • BREAKING: @ethereumjs/tx upgraded to major version 4, which includes a shift from storing numerical values as BNs to storing them as native BigInts. This is a breaking change for users of this keyring who access the values of the tx object, or that use those tx objects to interact with other libraries that depend on @ethereumsjs/tx versions under 4.0.0. (#181)

Changed

  • BREAKING: The minimum version of Node.js required for this package has been bumped to v14. (#169)

Fixed

  • Fix incorrect v for EIP-712 signatures and personal_sign (#152)

Added

  • hdk.publicKey and hdk.chainCode should not be updated when unlocking using hdPath for an account. (#146)

Added

  • Add a new destroy method which will remove the message event listener from window. (#145)

Added

  • Add a new isConnected method which allows determining if the device is last known to be connected. (#131)

Changed

  • Messaging now runs off of message IDs instead of assuming the response received is from the last message sent, which will not always been true. (#132)

Added

  • Add a new attemptMakeApp method which allows clients to attempt a creation of the Ledger transport for the purposes of detecting/catching potential connection errors. (#126)

Changed

  • updateTransportMethod no longer defaults its parameter to false, and now names the param sent with the 'ledger-update-transport' message transportType. This better is to support the use of an enum, instead of a boolean, for specifying transport preferences. (#114)

Added

  • Allow ledger-bridge iframe to connect Ledger wia WebHID, when it is supported by the current browser (#107)

Changed

  • Reject with an Error object if unlocking is not successful (#104)
  • Ensure that logs of errors only have a single Error: string in the message (#105)

Changed

  • Remove unused events and ethereumjs-tx dependencies (#101, #102)
  • Update eth-ledger-bridge-keyring to support EIP-1559 transactions (#98, #97, #96)

Added

  • Support new versions of ethereumjs/tx (#68)