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.
- Use
ts-bridge/[email protected]
(#118)- This new version fixes a bug with CJS re-exports.
- BREAKING: Enable Ledger clear signing (#99)
- The
LedgerSignTypedDataParams
type now requires a newmessage
field which replaces thedomainSeparatorHex
andhashStructMessage}Hex
fields.
- The
- BREAKING: Add ESM build (#40)
- It's no longer possible to import files from
./dist
directly.
- It's no longer possible to import files from
- BREAKING: Bump
@metamask/eth-sig-util
dependency from^7.0.3
to^8.0.0
(#79)signTypedData
no longer supportnumber
for addresses, see here.
- Device ID will now be cleared up when forgetting a device (#86)
- Bump
@ledgerhq/hw-app-eth
dependency to^6.39.0
(#68)- This new dependency version reduces the resulting package bundle size.
- BREAKING:
addAccounts
will now only return newly created accounts (#63)- This keyring was initially returning every accounts (previous and new ones), which is different from what is expected in the [
Keyring
interface].(https://github.com/MetaMask/utils/blob/v9.2.1/src/keyring.ts#L65)
- This keyring was initially returning every accounts (previous and new ones), which is different from what is expected in the [
- 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.
- Package name does not change (
- The promise returned by the
init
method now resolves only after iframe has been loaded (#236)updateTransportMethod
will throw an error when called beforeinit
- Refactor error message in
LedgerKeyring
(#232) - Extend
LedgerMobileBridge
type fromLedgerBridge
(#233) - Create new
MetaMaskLedgerHwAppEth
instance instead of re-using previous instance (#231)
- Add classes
LedgerMobileBridge
,LedgerTransportMiddleware
, andMetaMaskLedgerHwAppEth
to support Bluetooth as a HW Ledger Transport option (#225)
- BREAKING: The
LedgerKeyring
methodsetAccountToUnlock
now only accepts an input of typenumber
(#225) - BREAKING: Removed the
chainCode
property from theGetPublicKeyResponse
type (#225)
- Add
getOptions
andsetOptions
methods toLedgerBridge
interface (#210)
- BREAKING:
LedgerIframeBridge
class constructor now takes an options object withbridgeUrl
(#210) - BREAKING:
LedgerBridge
init
function now takes no parameters (#210) - BREAKING:
LedgerBridgeKeyringOptions
no longer containbridgeUrl
(#210) - BREAKING:
LedgerBridge
interface is now parameterized over its option type (#210) - Minor performance enhancement (#211)
- BREAKING:
IFrameMessageResponse
now has more restrictive typings (#207) (#207)
- Fix
invalid rlp data
error for legacy transactions in2.0.0
(#212)
- 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)
- Move
@metamask/utils
from deendencies to devDependencies (#209)
- Bump dependency
hdkey
from0.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)
- 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 keyringinit
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.
- The Ledger bridge is now a separate class (
- BREAKING: Export changed from default to named (#174)
- The keyring is exported as
LedgerKeyring
- The keyring is exported as
- Add TypeScript types (#174)
- 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)
- BREAKING: The minimum version of Node.js required for this package has been bumped to v14. (#169)
- Fix incorrect
v
for EIP-712 signatures andpersonal_sign
(#152)
- hdk.publicKey and hdk.chainCode should not be updated when unlocking using hdPath for an account. (#146)
- Add a new
destroy
method which will remove themessage
event listener from window. (#145)
- Add a new
isConnected
method which allows determining if the device is last known to be connected. (#131)
- 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)
- 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)
updateTransportMethod
no longer defaults its parameter to false, and now names the param sent with the'ledger-update-transport'
messagetransportType
. This better is to support the use of an enum, instead of a boolean, for specifying transport preferences. (#114)
- Allow ledger-bridge iframe to connect Ledger wia WebHID, when it is supported by the current browser (#107)
- 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)
- Remove unused
events
andethereumjs-tx
dependencies (#101, #102) - Update eth-ledger-bridge-keyring to support EIP-1559 transactions (#98, #97, #96)
- Support new versions of ethereumjs/tx (#68)