Skip to content

Latest commit

 

History

History
860 lines (571 loc) · 47.6 KB

File metadata and controls

860 lines (571 loc) · 47.6 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

  • Bump @metamask/superstruct from ^3.3.0 to ^3.4.0 (#577)

Fixed

  • Fix deadlock in SnapKeyring.createAccounts (v2) (#591)
    • We do not need to call saveState here, we expect this call to be wrapped in a :withKeyringV2 transaction call.

Changed

  • BREAKING: SnapKeyring (v2) no longer inherits SnapKeyringV1 (#584)
    • Use .v1 getter to access a v1 instance instead.
    • .v1 will yield undefined if the Snap declares v2 capabilities in its endowment:keyring.
  • Bump @metamask/superstruct from ^3.1.0 to ^3.3.0 (#580)
  • Bump @metamask/keyring-internal-snap-client from ^10.0.4 to ^10.0.5 (#587)
  • Bump @metamask/keyring-snap-sdk from ^9.1.0 to ^9.2.0 (#587)

Added

  • Populate v2 SnapKeyring capabilities from the Snap manifest (endowment:keyring) on deserialize (#581)
  • Guard v2 SnapKeyring operations until deserialize has run (throws "SnapKeyring has not been initialized") (#581)

Changed

  • Bump @metamask/snaps-utils from ^12.1.3 to ^12.2.1 (#581)
  • Bump @metamask/keyring-internal-snap-client from ^10.0.3 to ^10.0.4 (#583)
  • Bump @metamask/keyring-snap-sdk from ^9.0.2 to ^9.1.0 (#583)

Added

  • Add static type for v2 SnapKeyring (#570)

Added

  • Add SnapKeyringV1Adapter to adapt Snap v2 keyrings to legacy v1 keyring operations (#557)
    • This adapter mostly exposes EVM signing operations through EthKeyringV1Adapter.
    • This adapter also implements removeAccount the way it was implemented by the legacy Snap keyring (compatible with the KeyringController account removal flow).

Changed

  • Normalize KeyringAccount's address with :accountCreated and setAccounts (#556)
  • Bump @metamask/keyring-sdk from ^2.1.1 to ^2.2.0 (#562)
  • Bump @metamask/keyring-snap-sdk from ^9.0.1 to ^9.0.2 (#562)

Added

  • Add isSnapKeyring (v2) helper (#549)

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-internal-snap-client from ^10.0.2 to ^10.0.3 (#538)
  • Bump @metamask/keyring-sdk from ^2.0.1 to ^2.0.2 (#538)
  • Bump @metamask/keyring-internal-api from ^11.0.0 to ^11.0.1 (#538)

Added

  • BREAKING: Re-add snapId as part of the callbacks (SnapKeyringCallbacks) when building SnapKeyring v2 keyrings (#520)
    • Since the snapId is now injected via deserialize we cannot auto-capture it at build-time.

Changed

  • BREAKING: No longer use snapId as constructor parameter for SnapKeyring (v2) (#519)
    • The snapId is now passed and bound to the keyring upon the first deserialize call, to better integrate with KeyringController keyrings lifecyle and keyring builders.
  • Bump @metamask/keyring-internal-api from ^10.1.1 to ^11.0.0 (#528)
  • Bump @metamask/keyring-internal-snap-client from ^10.0.1 to ^10.0.2 (#528)

Removed

  • BREAKING: Removed snap.{name,enabled} from InternalAccount metadata produced by SnapKeyring (#525)
    • Use SnapController:getSnap to get those information instead (in combination with InternalAccount.metadata.snap.id).

Changed

  • Bump @metamask/keyring-internal-api from ^10.1.0 to ^10.1.1 (#518)
  • Bump @metamask/keyring-internal-snap-client from ^10.0.0 to ^10.0.1 (#518)
  • Bump @metamask/keyring-sdk from ^2.0.0 to ^2.0.1 (#518)
  • Bump @metamask/keyring-snap-sdk from ^9.0.0 to ^9.0.1 (#518)

Fixed

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

Added

  • Support Stellar (xlm:account) accounts in account assertions and v1 migrations (#483)
  • Add SnapKeyringV1 class, a per-snap keyring wrapper that implements the old keyring interface and flows (#507)
    • This will allow us to re-use the existing logic (that we still use today) as part of the new V2 implementation until we completely them.
  • Add SnapKeyringV2 class, a per-snap keyring wrapper that implements KeyringV2 with createAccount, createAccounts, deleteAccount, submitRequest, getAccount, and getAccounts (#501, #507)
    • SnapKeyringV2 inherits from SnapKeyringV1 so it can replace the current SnapKeyring class entirely, but for a single Snap.
  • Add @metamask/keyring-sdk ^1.1.0 as a new dependency (#501)
  • Add ./v2 subpath export for keyring v2 implementation (#513)
    • SnapKeyring, SnapKeyringState, and SnapKeyringCallbacks are now available from @metamask/keyring-snap-bridge/v2.

Changed

  • BREAKING: Move and rename SnapKeyringV2 to the new ./v2 subpath export (#513)
    • SnapKeyringV2 is now SnapKeyring from @metamask/keyring-snap-bridge/v2.
  • BREAKING: Bump @metamask/keyring-api from ^22.0.0 to ^23.0.0 (#515)
  • Use DeferredPromise from @metamask/utils (#508)
  • Refactor SnapKeyring to store accounts in per-snap SnapKeyringV2 wrappers instead of a single flat map (#501)
  • Bump @metamask/messenger from ^0.3.0 to ^1.1.1 (#489, #500)
  • Bump @metamask/snaps-controllers from ^19.0.0 to ^19.0.1 (#500)
  • Bump @metamask/snaps-utils from ^12.1.2 to ^12.1.3 (#500)
  • Bump @metamask/utils from ^11.10.0 to ^11.11.0 (#483)
  • Bump @metamask/keyring-internal-api from ^10.0.1 to ^10.1.0 (#515)
  • Bump @metamask/keyring-internal-snap-client from ^9.0.1 to ^10.0.0 (#515)
  • Bump @metamask/keyring-sdk from ^1.2.0 to ^2.0.0 (#515)
  • Bump @metamask/keyring-snap-sdk from ^8.0.0 to ^9.0.0 (#515)

Changed

  • BREAKING: Bump @metamask/keyring-api from ^21.6.0 to ^22.0.0 (#482)
  • BREAKING: Bump @metamask/snaps-controllers from ^18.0.0 to ^19.0.0 (#486)
    • SnapKeyring now requires SnapController:getSnap instead of SnapController:get.
  • Bump @metamask/keyring-internal-api from ^10.0.0 to ^10.0.1 (#482)
  • Bump @metamask/keyring-internal-snap-client from ^9.0.0 to ^9.0.1 (#482)
  • Bump @metamask/keyring-snap-sdk from ^7.2.1 to ^8.0.0 (#482)
  • Bump @metamask/snaps-sdk from ^10.4.0 to ^11.0.0 (#486)
  • Bump @metamask/snaps-utils from ^12.1.0 to ^12.1.2 (#486)

Added

  • Add SnapKeyring.createAccounts method (#448)
    • This method can be used to create one or more accounts using the new keyring v2 account creation typed options.
    • Generic accounts will be filtered out if they are not allowed by the keyring configuration.

Changed

  • BREAKING: Bump @metamask/keyring-internal-api from ^9.1.2 to ^10.0.0 (#460)
  • BREAKING: Bump @metamask/keyring-internal-snap-client from ^8.0.2 to ^9.0.0 (#460)
  • Bump @metamask/keyring-api from ^21.2.0 to ^21.4.0 (#460)
  • Bump @metamask/snaps-controllers from ^14.0.1 to ^18.0.0 (#422, #461)
  • Bump @metamask/snaps-sdk from ^9.0.0 to ^10.4.0 (#422, #461)
  • Bump @metamask/snaps-utils from ^11.0.0 to ^12.1.0 (#422, #424, #461)

Removed

  • BREAKING: Remove KeyringVersion support (#423)
    • Both getKeyringVersionFromPlatform, PLATFORM_VERSION_TO_KEYRING_VERSION got removed too.
  • BREAKING: Rename submitRequestV1 method to submitRequestWithoutOrigin (#423)

Fixed

  • Make notify:accountCreated event idempotent (#399)

Changed

  • Bump @metamask/keyring-api from ^21.1.0 to ^21.2.0 (#395)
  • Bump @metamask/keyring-snap-sdk from ^7.1.0 to ^7.2.0 (#395)

Changed

  • BREAKING: Migrate SnapKeyringMessenger to new Messenger type from @metamask/messenger (#383)

Added

  • Add SnapKeyring.setSelectedAccounts and snap_manageAccounts.getSelectedAccounts support (#387)
    • The SnapKeyring.setSelectedAccounts method can be invoked by the MetaMask client to inform which accounts are now selected for this Snap.
    • The snap_manageAccounts.getSelectedAccounts RPC method can be invoked by the Snap to get the currently selected accounts for this Snap.

Changed

  • Add dependency to @metamask/keyring-snap-sdk version ^7.1.0 (#387, #388)
  • Bump @metamask/keyring-api from ^21.0.0 to ^21.1.0 (#388)

Added

  • Add name and state properties to SnapKeyring to allow modular initialisation in the clients (#379)

Changed

  • SnapKeyring no longer extend EventEmitter (#379)

Changed

  • Bump @metamask/base-controller from ^7.1.1 to ^8.3.0 (#364)

Changed

  • BREAKING: Bump @metamask/keyring-api from ^20.0.0 to ^21.0.0 (#355, #356)

Added

  • Add Tron support (#349)

Changed

  • BREAKING: Bump @metamask/keyring-api from ^19.0.0 to ^20.0.0 (#347)
    • This is similar to version 15.0.0, but since the @metamask/keyring-api was not versioned as a new major, we have to re-bump it here again.
  • BREAKING: Bump @metamask/keyring-internal-api from ^7.0.0 to ^8.0.0 (#347)
    • This is similar to version 15.0.0, but since the @metamask/keyring-internal-api was not versioned as a new major, we have to re-bump it here again.

Changed

  • BREAKING: Add isAnyAccountTypeAllowed flag to SnapKeyring constructor (#322)
    • The SnapKeyring constructor now accepts an options object instead of individual parameters.
    • The new isAnyAccountTypeAllowed flag defaults to false.
    • This flag only affects account creation and update; account deletion is unaffected by it.

Changed

  • BREAKING: Bump @metamask/keyring-api from ^18.0.0 to ^19.0.0 (#317)
    • The KeyringAccount.options field is now partially typed.
  • BREAKING: Bump @metamask/keyring-internal-api from ^6.2.0 to ^7.0.0 (#317)
    • The InternalAccount.options field is now partially typed.

Changed

  • BREAKING: Now requires origin to be passed to SnapKeyring.submitRequest (#273)
    • Starting from KeyringVersion.V2 (platform version: 7.0.0), Snaps will now have to use @metamask/keyring-api@18.0.0 and use the origin when processing keyring requests (submitRequest).
  • Bump @metamask/keyring-api from ^17.6.0 to ^18.0.0 (#291)

Added

  • Add support for Bitcoin account type: p2pkh, p2sh, p2tr (#284)

Changed

  • Bump @metamask/keyring-api from ^17.4.0 to ^17.6.0 (#277, #288)

Changed

Added

  • Add new concept of "internal options" and add a new SnapKeyring.createAccount method (#252, #261)
    • Those internal options can be used by the caller of that method to customize the account creation flow.
  • Add setSelectedAccount internal option (#257)

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)

Added

  • Add displayAccountNameSuggestion option handling for "notify:accountCreated" (#213)

Changed

  • BREAKING: Make account creation asynchronous (#207, #211)
    • We no longer wait for saveState to finish before resuming the Snap account execution.
    • Add onceSaved deferred promise to addAccount callback. This new promise is required so the callback can await the account creation.
  • Use ts-bridge/cli@0.6.3 (#214)
    • This new version fixes a bug regarding some missing exports.
  • Bump @metamask/keyring-api from ^17.0.0 to ^17.1.0 (#212)

Changed

  • BREAKING: Use CaipAccountId for ResolvedAccountAddress.address (#186)
    • This was missing from SIP-26, but we expect this address to be CAIP-10 compliant.
  • Bump @metamask/keyring-api from ^16.1.0 to ^17.0.0 (#192)
  • Rename ControllerMessenger to Messenger (#185)
  • Bump @metamask/snaps-controllers dependency from ^9.10.0 to ^9.18.0 (#177)
  • Bump @metamask/snaps-sdk dependency from ^6.7.0 to ^6.16.0 (#177)
  • Bump @metamask/snaps-utils dependency from ^8.3.0 to ^8.9.1 (#177)

Changed

  • Bump @metamask/keyring-api from ^16.0.0 to ^16.1.0 (#176)

Added

  • Add submitRequest and resolveAccountAddress methods (#157)
    • Those new methods are required by the new signing request routing system (see SIP-26).

Changed

  • Bump @metamask/keyring-api from ^15.0.0 to ^16.0.0 (#172)
  • Bump @metamask/utils from ^11.0.1 to ^11.1.0 (#167)

Fixed

  • Fix async Snap request leak (#171)
    • There was a leak with the deferred promises when an asynchronous request was not allowed.

Added

  • Add account{AssetList,Balances,Transactions}Updated keyring events and re-publish them through the new Messenger (#154)

Changed

  • BREAKING: Use Messenger instead of SnapsController (#152)
    • This allows to break the runtime dependency we had with some snaps-* pacakges.
  • BREAKING: Make scopes more strict (#159)
    • We now use specific *AccountStucts when checking created/updated accounts to make the scopes sent by the Snap are valid regarding their account type definition.

Changed

  • Bump @metamask/keyring-api from ^13.0.0 to ^14.0.0 (#155)

Added

  • Add Snap keyring migrations (#147)
    • This is required to support the new scopes field on KeyringAccount. The keyring state will now be automatically migrated upon deserialization to match the latest KeyringAccount type requirements.

Changed

  • BREAKING: Bump @metamask/keyring-api from ^12.0.0 to ^13.0.0 (#101)
    • This change was not properly reported as breaking on the 7.1.0.
    • KeyringAccount and InternalAccount have a new required field (scopes) and are part of the public API.
  • BREAKING: Bump @metamask/keyring-internal-api from ^1.0.0 to ^2.0.0 (#135)
    • This change was not properly reported as breaking on the 7.1.0.
    • InternalAccount extends KeyringAccount which has a new required field (scopes) and is part of the public API.
  • BREAKING: Bump @metamask/keyring-snap-internal-client from ^1.0.0 to ^2.0.0 (#135)
    • This change was not properly reported as breaking on the 7.1.0.
    • KeyringAccount has a new required field (scopes) and is part of the public API.

Changed

  • Bump @metamask/keyring-api from ^12.0.0 to ^13.0.0 (#101)

Changed

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

Added

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

Fixed

  • Do not lower address for non-EVM accounts during account creation (#90)

Changed

  • Add proprietary license (#83)
  • 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.

Added

  • Sanitize redirect URL (#70)

Changed

  • Bump @metamask/* dependencies and add @lavamoat/preinstall-always-fail (#65, #59, #58)
  • Use TypeScript 5 (#55)

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-snap-keyring) and sources have been moved to: packages/keyring-snap-bridge.
    • You can find all the changes here.

Changed

  • Bump @metamask/snaps-controllers from ^9.3.0 to ^9.6.0 (#372, #389)
  • Bump @metamask/snaps-sdk from ^6.1.0 to ^6.4.0 (#389)
  • Bump @metamask/utils from ^9.1.0 to ^9.2.1 (#385)
  • Bump @metamask/keyring-api from ^8.0.1 to ^8.1.0 (#374, #376)

Changed

  • Bump @metamask/eth-sig-util from ^7.0.1 to ^7.0.3 (#311)
  • Bump @metamask/keyring-api from ^8.0.0 to ^8.0.1 (#311)
  • Bump @metamask/snaps-controllers from ^8.1.1 to ^9.3.0 (#311, #363)
  • Bump @metamask/snaps-sdk from ^4.2.0 to ^6.1.0 (#311, #363)
  • Bump @metamask/snaps-utils from ^7.4.0 to ^7.8.0 (#311, #363)
  • Bump @metamask/utils from ^8.4.0 to ^9.1.0 (#311)
  • Set tsconfig options module, moduleResolution to Node16 (#311)

Fixed

  • Replace superstruct with ESM-compatible @metamask/superstruct ^3.1.0 (#311)
    • This fixes the issue of this package being unusable by any TypeScript project that uses Node16 or NodeNext as its moduleResolution option.

Changed

  • Bump @metamask/keyring-api from 6.3.1 to 8.0.0 (#331).

Added

  • Export KeyringSnapControllerClient (#328).

Changed

  • Bump @metamask/snaps-utils from 7.4.1 to 7.5.0 (#326).
  • Bump @metamask/snaps-controllers from 8.3.1 to 8.4.0 (#325).
  • Bump @metamask/snaps-sdk from 4.4.1 to 4.4.2 (#327).
  • Bump @metamask/rpc-errors from 6.2.1 to 6.3.0 (#322).
  • Bump @metamask/snaps-controllers from 8.2.0 to 8.3.1 (#321).
  • Bump @metamask/snaps-sdk from 4.3.0 to 4.4.1 (#314).
  • Bump @metamask/permission-controller from 9.1.0 to 9.1.1 (#316).
  • Bump @metamask/snaps-utils from 7.4.0 to 7.4.1 (#319).
  • Bump @metamask/keyring-api from 6.3.1 to 6.4.0 (#315).
  • Bump @metamask/json-rpc-middleware-stream from 7.0.1 to 7.0.2 (#317).
  • Bump @metamask/phishing-controller from 9.0.3 to 9.0.4 (#318).
  • Bump @metamask/snaps-rpc-methods from 9.1.0 to 9.1.2 (#320).
  • Bump @lavamoat/allow-scripts@^2.3.1->^3.0.4 (#296).
  • Bump @metamask/key-tree from 9.1.0 to 9.1.1 (#298).
  • Bump @metamask/phishing-controller from 9.0.2 to 9.0.3 (#302).
  • Bump @metamask/json-rpc-engine from 8.0.1 to 8.0.2 (#291).
  • Bump @metamask/snaps-controllers from 8.1.1 to 8.2.0 (#307).

Changed

  • Fixed 4337 methods enum (#312)
  • Bump @metamask/post-message-stream from 8.0.0 to 8.1.0 (#297)
  • Bump @metamask/permission-controller from 9.0.2 to 9.1.0 (#306)
  • Bump @metamask/snaps-sdk from 4.2.0 to 4.3.0 (#308)

Added

  • Add accountNameSuggestion and displayConfirmation options handling for "notify:accountCreated" (#300)
  • Bump @metamask/keyring-api from 6.1.1 to 6.2.1 (#304)

Changed

  • Bump @metamask/snaps-* and @metamask/keyring-api (#294)
  • Bump @metamask/key-tree from 9.0.0 to 9.1.0 (#293)

Changed

  • Bump @metamask/keyring-api to version 6.1.0 and introduce btc account types (#285)
  • Bump @metamask/phishing-controller from 9.0.1 to 9.0.2 (#279)
  • Bump @metamask/base-controller from 5.0.1 to 5.0.2 (#280)
  • Bump @metamask/eth-sig-util from 7.0.1 to 7.0.2 (#281)
  • Bump @metamask/approval-controller from 6.0.1 to 6.0.2 (#282)
  • Bump @metamask/providers from 16.0.0 to 16.1.0 (#283)
  • Bump @metamask/snaps-controllers from 7.0.1 to 8.0.0 (#278)
  • Bump @metamask/snaps-utils from 7.1.0 to 7.2.0 (#277)

Changed

  • BREAKING: Bump @metamask/keyring-api to version 6.0.0 (#275)
  • Bump @metamask/snaps-controllers from 6.0.3 to 7.0.1 and @metamask/snaps-sdk 3.1.1 to 4.0.1 (#272)
  • Bump @metamask/snaps-utils from 7.0.4 to 7.1.0 (#268)
  • Bump @metamask/controller-utils from 9.0.2 to 9.1.0 (#270)
  • Bump @metamask/snaps-controllers from 6.0.3 to 6.0.4 (#266)
  • Bump @metamask/snaps-registry from 3.0.1 to 3.1.0 (#265)
  • Bump @metamask/snaps-rpc-methods from 7.0.1 to 7.0.2 (#264)
  • Bump @metamask/snaps-utils from 7.0.3 to 7.0.4 (#263)
  • Bump @metamask/snaps-sdk from 3.1.1 to 3.2.0 (#262)

Added

  • Add logger and now log Snap requests (#254)

Changed

  • BREAKING: Add KeyringExecutionContext to user ops methods (#253)
  • Bump @metamask/utils from 8.3.0 to 8.4.0 (#260) (#256)
  • Bump @metamask/keyring-api from 5.0.0 to 5.1.0 (#259)
  • Bump @metamask/keyring-api from 4.0.2 to 5.0.0 (#255)

Changed

  • Bump @metamask/safe-event-emitter from 3.1.0 to 3.1.1 (#251)
  • Bump dependencies (#246)
  • Bump @metamask/safe-event-emitter from 3.0.0 to 3.1.0 (#245)
  • Fix enforcing responses of prepareUserOperation and patchUserOperation to be synchronous (#243)
  • Bump @metamask/snaps-registry from 3.0.0 to 3.0.1 (#244)

Changed

  • Bump @metamask dependencies (#236)
  • Extract logic in 'submitRequest' (#232)
  • Bump @metamask/controller-utils from 8.0.3 to 8.0.4 (#233)
  • Bump @metamask/json-rpc-engine from 7.3.2 to 7.3.3 (#234)
  • Bump @metamask/approval-controller from 5.1.2 to 5.1.3 (#235)
  • Bump update Snap and dev dependencies (#230)
  • Bump @metamask/rpc-errors from 6.2.0 to 6.2.1 (#223)
  • Bump @metamask/snaps-utils from 6.1.0 to 7.0.0 (#224)
  • Bump @metamask/rpc-errors from 6.1.0 to 6.2.0 (#219)
  • Bump ip from 2.0.0 to 2.0.1 (#218)

Fixed

  • Add chainId to Keyring API requests (transaction/typed message) (#231)
  • Enforce async request redirect URL is in the snaps 'allowedOrigins' (#228)

Changed

  • Bump dependencies (#220)
    • @metamask/snaps-controllers from ^4.1.0 to ^5.0.1
    • @metamask/snaps-sdk from ^1.4.0 to ^2.1.0
    • @metamask/snaps-utils from ^5.2.0 to ^6.1.0
    • @metamask/utils from ^8.1.0 to ^8.3.0
    • @metamask/keyring-api from ^2.0.0 to ^4.0.0

Fixed

  • Fixed inconsistent signature signing (#200)

Fixed

  • Reject unsupported account methods (#190)

Added

  • Add methods to support ERC-4337 accounts (#180).

Changed

  • Use a snapId-indexed map (#172).
  • Update CODEOWNERS and run CI on merge queues (#165).
  • Bump min Node version to 18.18 and use LTS for dev (#183).

Changed

  • BREAKING: Remove async from listAccounts and getAccountByAddress (#148).

Changed

  • Bump @metamask/keyring-api to 1.0.0 (#145).
  • Bump semver and word-wrap dependencies (#144).
  • Bump @metamask/rpc-errors from 6.0.0 to 6.1.0 (#143).

Added

  • Add redirectUser callback (#136).

Added

  • Add getAccountByAddress method (#134).

Changed

  • Bump word-wrap and semver (#140).
  • Bump @metamask/scure-bip39 from 2.1.0 to 2.1.1 (#133).
  • Bump postcss from 8.4.20 to 8.4.31 (#137).
  • Bump @metamask dependencies (#139).

Added

  • Add the getAccountsBySnapId method (#122).

Fixed

  • Remove the removeAccountsBySnapId method (#121).
  • Call external function with lowercase address (#120).

Changed

  • Handle approval when adding/removing account with handleUserInput callback (#99).

Added

  • Add method to remove all accounts given a snap ID (#116).

Fixed

  • Don't allow duplicate accounts to be added (#115).
  • Ignore event if account was already removed (#101).

Changed

  • Add removeAccount callback to constructor (#96).

Changed

  • Add callbacks argument to constructor (#82).
  • Increase minimum Node.js version to 16 (default to 18) (#83).
  • Migrate to the new keyring-api (#78).
  • Upgrade dependencies.

Changed

  • Add account and snap metadata (#75).
  • Rename files to be more idiomatic (#42).
  • Move internal state from objects to maps (#41).

Fixed

  • Remove promise if submitRequest() throws (#43).

Changed

Fixed

  • Remove account from maps before calling the snap (#39).

Changed

  • Remove unused #listAccounts() method (#35).

Fixed

  • Sync all accounts on snap notificaiton (#36).
  • Don't sync accounts twice on deletion (#32).

Changed

  • Use objects in snap -> controller methods (#28).
  • Fix circular call when handling 'read' requests (#27).
  • Remove saveSnapKeyring argument from handleKeyringSnapMessage (#26).

Added

  • Initial release.