Skip to content

Latest commit

 

History

History
335 lines (217 loc) · 18.7 KB

File metadata and controls

335 lines (217 loc) · 18.7 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

  • Drop support for Node.js v18 and v20; minimum version is now v22 (#593)

Changed

  • Bump @metamask/keyring-api from ^23.1.0 to ^23.5.0 (#562, #569, #583, #587)
  • Bump @metamask/keyring-sdk from ^2.1.1 to ^2.2.0 (#562)
  • Bump @metamask/hw-wallet-sdk from ^0.8.0 to ^0.10.0 (#576, #587)

Fixed

  • Surface Trezor user cancellation and rejection errors as UserCancelled/UserRejected instead of ErrorCode.Unknown, fixing uninformative "Unknown error" messages when users reject signing (#576)

Added

  • Expose device-management pass-throughs on the V2 TrezorKeyring wrapper (inherited by the V2 OneKeyKeyring): getModel, hdPath (getter), bridge (getter), setHdPath, getFirstPage, getNextPage, getPreviousPage, forgetDevice, isUnlocked. forgetDevice additionally clears the V2 account registry to keep it in sync with the inner keyring. (#551)

Changed

  • Bump @metamask/keyring-sdk from ^2.0.2 to ^2.1.1 (#544, #546)
  • Bump @metamask/keyring-utils from ^3.2.0 to ^3.3.1 (#544, #546)

Changed

  • Bump @metamask/keyring-api from ^23.0.1 to ^23.1.0 (#538)
  • Bump @metamask/keyring-sdk from ^2.0.1 to ^2.0.2 (#538)

Changed

  • Bump @metamask/account-api from ^1.0.2 to ^1.0.3 (#518)
  • Bump @metamask/keyring-api from ^23.0.0 to ^23.0.1 (#518)
  • Bump @metamask/keyring-sdk from ^2.0.0 to ^2.0.1 (#518)

Fixed

  • Workaround Browserify subpath export for /v2 (#516)

Added

  • Add ./v2 subpath export for keyring v2 implementation (#513)
    • TrezorKeyring, TrezorKeyringOptions, OneKeyKeyring, and OneKeyKeyringOptions are now available from @metamask/eth-trezor-keyring/v2.

Changed

  • BREAKING: Move and rename TrezorKeyringV2 and OneKeyKeyringV2 to the new ./v2 subpath export (#513)
    • TrezorKeyringV2 is now TrezorKeyring from @metamask/eth-trezor-keyring/v2.
    • OneKeyKeyringV2 is now OneKeyKeyring from @metamask/eth-trezor-keyring/v2.
  • Bump @metamask/utils from ^11.10.0 to ^11.11.0 (#483)
  • Bump @metamask/account-api from ^1.0.1 to ^1.0.2 (#515)
  • Bump @metamask/keyring-api from ^22.0.0 to ^23.0.0 (#515)
  • Bump @metamask/keyring-sdk from ^1.2.0 to ^2.0.0 (#515)

Changed

  • Add new dependency @metamask/keyring-sdk@1.2.0 (#478, #482, #496, #509)
    • This package now contains the keyring v2 wrapper helpers (EthKeyringWrapper).
    • The account ID (generated by KeyringAccountRegistry) are now deterministic for EVM addresses.
  • Bump @metamask/hw-wallet-sdk from ^0.6.0 to ^0.8.0 (#482, #497)
  • Bump @metamask/keyring-api from ^21.6.0 to ^22.0.0 (#482)
  • Bump @metamask/account-api from ^1.0.0 to ^1.0.1 (#487)
  • Bump @metamask/utils from ^11.1.0 to ^11.10.0 (#489)

Added

  • Add TrezorKeyringV2 and OneKeyKeyringV2 classes implementing KeyringV2 interface (#412, #451, #453)
    • Wraps legacy TrezorKeyring and OneKeyKeyring to expose accounts via the unified KeyringV2 API and the KeyringAccount type.
    • Extends EthKeyringWrapper for common Ethereum logic.
  • Add createTrezorError and getTrezorErrorIdentifier error helpers (#471)

Changed

  • Integrate @metamask/hw-wallet-sdk for standardized Trezor error handling (#471)
    • Replace custom transport and user-action error handling with typed HardwareWalletError instances.
    • Move Trezor error mappings and utilities to @metamask/hw-wallet-sdk for reuse across packages.

Changed

  • Bump @trezor/connect-web to ^9.6.0 (#241, #300)
    • Require to enable new 7702 signing flows.
  • BREAKING: The method signature for signTypedData has been changed (#224)
    • The options argument type has been changed to { version: SignTypedDataVersion.V3 | SignTypedDataVersion.V4 } | undefined.
    • The options.version argument type has been restricted to accept SignTypedDataVersion.V3 | SignTypedDataVersion.V4 (#224)

Changed

  • BREAKING: The method signTransaction can now returns various type of transactions (#209)
    • Initially was supporting: Transaction | AccessListEIP2930Transaction | FeeMarketEIP1559Transaction (types from @ethereumjs/tx).
    • Now also supports BlobEIP4844Transaction | EOACodeEIP7702Transaction (types from @ethereumjs/tx).
  • BREAKING: Bump @ethereumjs/tx from ^4.2.0 to ^5.4.0 (#209)
  • BREAKING: Bump @ethereumjs/util from ^8.1.0 to ^9.1.0 (#209)

Changed

  • BREAKING: TrezorKeyring now implements the Keyring type (#194)
    • The class does not extend EventEmitter anymore.
    • The TrezorKeyring.accounts class variable is now a readonly Hex[] array.
    • The addAccounts method signature has been changed:
      • An amount number parameter is now required to specify the number of accounts to add.
      • The method now returns a promise resolving to an array of Hex addresses.
    • The deserialize method now requires a TrezorControllerOptions object as a parameter.
    • The unlock method now returns Promise<Hex>.
    • The getAccounts method now returns Promise<Hex[]>.
    • The signTransaction method now accepts an Hex typed value as the address parameter.
    • The signMessage method now accepts an Hex typed value as the withAccount parameter.
    • The signPersonalMessage method now accepts an Hex typed value as the withAccount parameter.
    • The signTypedData method now accepts an Hex typed value as the withAccount parameter.
    • The unlockAccountByAddress method now accepts an Hex typed value as the address parameter.

Removed

  • BREAKING: The exportAccount method has been removed (#194)

Changed

  • Use ts-bridge/cli@0.6.3 (#214)
    • This new version fixes a bug regarding some missing exports.

Added

  • Add new dedicated OneKeyKeyring keyring (#175)
    • This keyring is similar to the TrezorKeyring but will allow to distinguish both types of devices, the transport layer (bridge) remains the same.

Changed

  • Bump @metamask/eth-sig-util dependency from ^8.0.0 to 8.2.0 (#177, #134)

Changed

  • Use ts-bridge/cli@0.6.1 (#118)
    • This new version fixes a bug with CJS re-exports.

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.

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 and jest-environment-jsdom to devDependencies (#44)

Changed

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

Changed

  • Bump @trezor/connect-web from ^9.0.6 to ^9.1.11 (#195)

Fixed

  • Bump @metamask/eth-sig-util from ^7.0.0 to ^7.0.1 (#195)
  • Bump @trezor/connect-plugin-ethereum from ^9.0.1 to ^9.0.3 (#195)
  • Should help fixing MM pop-up closing issue (#10896)

Changed

  • BREAKING: Remove support for major node versions 14,15,17,19. Minimum Node.js version is now 16. (#188)
  • Bump @metamask/eth-sig-util from ^5.0.2 to ^7.0.0 (#189)
  • Bump dependency hdkey from 0.8.0 to ^2.1.0 (#190)

Added

  • Add destroy method to TrezorKeyring, which replaces dispose (#179)

Changed

  • BREAKING: Separate the bridge from the keyring (#143)
    • The Trezor bridge is now a separate class (TrezorConnectBridge), 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.

Removed

  • BREAKING: Remove dispose method from TrezorKeyring, which is replaced by destroy (#179)

Added

  • Add legacy derivation path, allowing generation of accounts with the m/44'/60'/0 path (#175)

Changed

  • Migrate to TypeScript (#161)

Changed

  • BREAKING: Rename package to use @metamask scope (#160)
  • BREAKING: Removed support for Node v12 in favor of v14 (#135)
  • Update @ethereumjs/util, @ethereumjs/tx, @metamask/eth-sig-util to latest versions (#146)
  • Bump trezor-connect - now @trezor/connect-plugin-ethereum & @trezor/connect-web - to v9 (#133, #163)

Added

  • Support for EIP-721 signTypedData_v4 (#117)

Changed

  • Update trezor connect to 8.2.3, so that 1.10.4 of the Model One firmware is supported (#115)

Added

  • Add dispose method, which exposes the TrezorConnect.dispose method, allowing consumers to explictly remove the Trezor Connect iframe (#113)

Fixed

  • Fixed the signing of contract creation transactions, which require a nullish (empty string or undefined) to parameter (#112)

Added

  • Support for EIP-1559 transactions for the Model T (#108)
  • Add setHdPath method, which allows setting the HD path used by the keyring to known, supported HD paths (#107)

Added

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