Skip to content

Releases: MetaMask/core

165.0.0

24 Jun 21:40
9d738ef
Compare
Choose a tag to compare

@metamask/queued-request-controller 2.0.0

Added

  • BREAKING: QueuedRequestController constructor params now requires the showApprovalRequest hook that is called when the approval request UI should be opened/focused as the result of a request with confirmation being enqueued (#4456)

164.0.0

19 Jun 14:41
63bf7a3
Compare
Choose a tag to compare

@metamask/notification-services-controller 0.1.0

Added

  • Initial release

163.0.0

19 Jun 13:15
56c1432
Compare
Choose a tag to compare

@metamask/profile-sync-controller 0.1.0

Added

  • Initial release

162.0.0

18 Jun 18:43
fdc880e
Compare
Choose a tag to compare

@metamask/queued-request-controller 1.0.0

Changed

  • BREAKING: QueuedRequestController constructor no longer accepts the methodsRequiringNetworkSwitch array param. It's now replaced with the shouldRequestSwitchNetwork function param which should return true when a request requires the globally selected network to match that of the dapp from which the request originated. (#4423)
  • BREAKING: createQueuedRequestMiddleware no longer accepts the methodsWithConfirmation array typed param. It's now replaced with the shouldEnqueueRequest function typed param which should return true when a request should be handled by the QueuedRequestController. (#4423)

161.0.0

12 Jun 17:42
190f08c
Compare
Choose a tag to compare

@metamask/accounts-controller 17.0.0

Changed

  • BREAKING: Newly added account is no longer set as the last selected account (#4363)
  • Bump @metamask/eth-snap-keyring to ^4.3.1 (#4405)
  • Bump @metamask/keyring-api to ^8.0.0 (#4405)
  • Bump @metamask/keyring-controller to ^17.1.0 (devDependencies) (#4413)

Fixed

  • Use listMultichainAccount in getAccountByAddress (#4375)

@metamask/assets-controllers 33.0.0

Added

  • BREAKING: Add messenger as a constructor option for AccountTrackerController (#4225)
  • BREAKING: Add messenger option to TokenRatesController (#4314)
    • This messenger must allow the actions TokensController:getState, NetworkController:getNetworkClientById, NetworkController:getState, and PreferencesController:getState and allow the events PreferencesController:stateChange, TokensController:stateChange, and NetworkController:stateChange.
  • Add types TokenRatesControllerGetStateAction, TokenRatesControllerActions, TokenRatesControllerStateChangeEvent, TokenRatesControllerEvents, TokenRatesControllerMessenger(#4314)
  • Add function getDefaultTokenRatesControllerState (#4314)
  • Add enable and disable methods to TokenRatesController (#4314)
    • These are used to stop and restart polling.
  • Export ContractExchangeRates type (#4314)
    • Add AccountTrackerControllerMessenger type
  • BREAKING: The NftController messenger must now allow AccountsController:getAccount and AccountsController:getSelectedAccount as messenger actions and AccountsController:selectedEvmAccountChange as a messenger event (#4221)
  • BREAKING: NftDetectionController messenger must now allow AccountsController:getSelectedAccount as a messenger action (#4221)
  • Token price API support for mantle network (#4376)

Changed

  • BREAKING: Bump dependency and peer dependency @metamask/accounts-controller to ^17.0.0 (#4413)
  • BREAKING: TokenRatesController now inherits from StaticIntervalPollingController instead of StaticIntervalPollingControllerV1 (#4314)
    • The constructor now takes a single options object rather than three arguments. Some options have been removed; see later entries.
  • BREAKING: Rename TokenRatesState to TokenRatesControllerState, and convert from interface to type (#4314)
  • The NftController now reads the selected address via the AccountsController, using the AccountsController:selectedEvmAccountChange messenger event to stay up to date (#4221)
  • NftDetectionController now reads the currently selected account from AccountsController instead of PreferencesController (#4221)
  • Bump @metamask/keyring-api to ^8.0.0 (#4405)
  • Bump @metamask/eth-snap-keyring to ^4.3.1 (#4405)
  • Bump @metamask/keyring-controller to ^17.1.0 (#4413)

Removed

  • BREAKING: Remove nativeCurrency, chainId, selectedAddress, allTokens, and allDetectedTokens from configuration options for TokenRatesController (#4314)
    • The messenger is now used to obtain information from other controllers where this data was originally expected to come from.
  • BREAKING: Remove config property and configure method from TokenRatesController (#4314)
    • The controller now takes a single options object which can be used for configuration, and configuration is now kept internally.
  • BREAKING: Remove notify, subscribe, and unsubscribe methods from TokenRatesController (#4314)
    • Use the controller messenger for subscribing to and publishing events instead.
  • BREAKING: Remove TokenRatesConfig type (#4314)
    • Some of these properties have been merged into the options that TokenRatesController takes.
  • BREAKING: Remove NftController constructor options selectedAddress. (#4221)
  • BREAKING: Remove AccountTrackerController constructor options getIdentities, getSelectedAddress and onPreferencesStateChange (#4225)
  • BREAKING: Remove value property from the data for each token in state.marketData (#4364)
    • The price property should be used instead.

Fixed

  • Prevent unnecessary state updates when executing the NftController's updateNftMetadata method by comparing the metadata of fetched NFTs and NFTs in state and synchronizing state updates using a mutex lock. (#4325)
  • Prevent the use of market data when not available for a given token (#4361)
  • Fix refresh method remaining locked indefinitely after it was run successfully. Now lock is released on successful as well as failed runs. (#4270)
  • TokenRatesController uses checksum instead of lowercase format for token addresses (#4377)

@metamask/chain-controller 0.1.0

Changed

  • Initial release

@metamask/keyring-controller 17.1.0

Added

  • Add support for overwriting built-in keyring builders for the Simple and HD keyring (#4362)

Changed

  • Bump @metamask/eth-snap-keyring to ^4.3.1 (#4405)
  • Bump @metamask/keyring-api to ^8.0.0 (#4405)

Deprecated

  • Deprecate QR keyring methods (#4365)
    • cancelQRSignRequest
    • cancelQRSynchronization
    • connectQRHardware
    • forgetQRDevice
    • getOrAddQRKeyring
    • getQRKeyring
    • getQRKeyringState
    • resetQRKeyringState
    • restoreQRKeyring
    • submitQRCryptoHDKey
    • submitQRCryptoAccount
    • submitQRSignature
    • unlockQRHardwareWalletAccount

@metamask/selected-network-controller 15.0.2

Fixed

  • setNetworkClientId() no longer modifies state nor creates/updates proxies when the useRequestQueuePreference flag is false (#4388)

@metamask/transaction-controller 33.0.0

Changed

  • BREAKING: The TransactionController messenger must now allow the AccountsController:getSelectedAccount action (#4244)
  • BREAKING: getCurrentAccount returns an InternalAccount instead of a string in the IncomingTransactionHelper (#4244)
  • BREAKING: Bump dependency and peer dependency @metamask/accounts-controller to ^17.0.0 (#4413)
  • Bump @metamask/eth-snap-keyring to ^4.3.1 (#4405)
  • Bump @metamask/keyring-api to ^8.0.0 (#4405)

Removed

  • BREAKING: Remove getSelectedAddress option from TransactionController (#4244)
    • The AccountsController is used to get the currently selected address automatically.

Fixed

  • MultichainTrackingHelper.getEthQuery now returns global ethQuery with (#4390)
  • Support skipping updates to the simulation history for clients with disabled history (#4349)

160.0.0

05 Jun 21:33
9927f20
Compare
Choose a tag to compare

@metamask/selected-network-controller 15.0.1

Fixed

  • No longer add domains that have been granted permissions to domains state (nor create a selected network proxy for it) unless the useRequestQueuePreference flag is true (#4368)

159.0.0

31 May 19:41
f8e343b
Compare
Choose a tag to compare

@metamask/accounts-controller 16.0.0

Changed

  • BREAKING: Bump minimum Node version to 18.18 (#3611)
  • BREAKING: Bump peer dependency @metamask/keyring-controller to ^17.0.0 (#4352)
  • Bump @metamask/base-controller to ^6.0.0 (#4352)

@metamask/address-book-controller 5.0.0

Changed

  • BREAKING: Bump minimum Node version to 18.18 (#3611)
  • Bump @metamask/base-controller to ^6.0.0 (#4352)
  • Bump @metamask/controller-utils to ^11.0.0 (#4352)

@metamask/announcement-controller 7.0.0

Changed

  • BREAKING: Bump minimum Node version to 18.18 (#3611)
  • Bump @metamask/base-controller to ^6.0.0 (#4352)

@metamask/approval-controller 7.0.0

Changed

  • BREAKING: Bump minimum Node version to 18.18 (#3611)
  • Bump @metamask/base-controller to ^6.0.0 (#4352)

@metamask/assets-controllers 32.0.0

Changed

  • BREAKING: Bump minimum Node version to 18.18 (#3611)
  • BREAKING: Bump dependency and peer dependency @metamask/accounts-controller to ^16.0.0 (#4352)
  • BREAKING: Bump dependency and peer dependency @metamask/approval-controller to ^7.0.0 (#4352)
  • BREAKING: Bump dependency and peer dependency @metamask/keyring-controller to ^17.0.0 (#4352)
  • BREAKING: Bump dependency and peer dependency @metamask/network-controller to ^19.0.0 (#4352)
  • BREAKING: Bump dependency and peer dependency @metamask/preferences-controller to ^13.0.0 (#4352)
  • Bump @metamask/base-controller to ^6.0.0 (#4352)
  • Bump @metamask/controller-utils to ^11.0.0 (#4352)
  • Bump @metamask/polling-controller to ^8.0.0 (#4352)

@metamask/base-controller 6.0.0

Changed

  • BREAKING: Bump minimum Node version to 18.18 (#3611)

@metamask/build-utils 3.0.0

Changed

  • BREAKING: Bump minimum Node version to 18.18 (#3611)
  • Bump @metamask/base-controller to ^6.0.0 (#4352)

@metamask/composable-controller 7.0.0

Changed

  • BREAKING: Bump minimum Node version to 18.18 (#3611)
  • Bump @metamask/base-controller to ^6.0.0 (#4352)
  • Bump @metamask/json-rpc-engine to ^9.0.0 (#4352)

@metamask/controller-utils 11.0.0

Added

  • Add NFT_API_VERSION and NFT_API_TIMEOUT constants (#4312)

Changed

  • BREAKING: Bump minimum Node version to 18.18 (#3611)

Removed

  • BREAKING: Remove EthSign from ApprovalType (#4319)
    • This represented an eth_sign approval, but support for that RPC method is being removed, so this is no longer needed.

@metamask/ens-controller 12.0.0

Changed

  • BREAKING: Bump minimum Node version to 18.18 (#3611)
  • BREAKING: Bump peer dependency @metamask/network-controller to ^19.0.0 (#4352)
  • Bump @metamask/base-controller to ^6.0.0 (#4352)
  • Bump @metamask/controller-utils to ^11.0.0 (#4352)

@metamask/eth-json-rpc-provider 4.0.0

Changed

  • BREAKING: Bump minimum Node version to 18.18 (#3611)
  • Bump @metamask/json-rpc-engine to ^9.0.0 (#4352)

@metamask/gas-fee-controller 17.0.0

Changed

  • BREAKING: Bump minimum Node version to 18.18 (#3611)
  • BREAKING: Bump dependency and peer dependency @metamask/network-controller to ^19.0.0 (#4352)
  • Bump @metamask/base-controller to ^6.0.0 (#4352)
  • Bump @metamask/controller-utils to ^11.0.0 (#4352)
  • Bump @metamask/polling-controller to ^8.0.0 (#4352)

@metamask/json-rpc-engine 9.0.0

Changed

  • BREAKING: Bump minimum Node version to 18.18 (#3611)

@metamask/json-rpc-middleware-stream 8.0.0

Changed

  • BREAKING: Bump minimum Node version to 18.18 (#3611)
  • Bump @metamask/json-rpc-engine to ^9.0.0 (#4352)

@metamask/keyring-controller 17.0.0

Changed

  • BREAKING: Bump minimum Node version to 18.18 (#3611)
  • Bump @metamask/base-controller to ^6.0.0 (#4352)
  • Bump @metamask/message-manager to ^10.0.0 (#4352)

@metamask/logging-controller 5.0.0

Changed

  • BREAKING: Bump minimum Node version to 18.18 (#3611)
  • Bump @metamask/base-controller to ^6.0.0 (#4352)
  • Bump @metamask/controller-utils to ^11.0.0 (#4352)

@metamask/message-manager 10.0.0

Changed

  • BREAKING: Bump minimum Node version to 18.18 (#3611)
  • Bump @metamask/base-controller to ^6.0.0 (#4352)
  • Bump @metamask/controller-utils to ^11.0.0 (#4352)

@metamask/name-controller 8.0.0

Changed

  • BREAKING: Bump minimum Node version to 18.18 (#3611)
  • Bump @metamask/base-controller to ^6.0.0 (#4352)
  • Bump @metamask/controller-utils to ^11.0.0 (#4352)

@metamask/network-controller 19.0.0

Changed

  • BREAKING: Bump minimum Node version to 18.18 (#3611)
  • Bump @metamask/base-controller to ^6.0.0 (#4352)
  • Bump @metamask/controller-utils to ^11.0.0 (#4352)
  • Bump @metamask/eth-json-rpc-provider to ^4.0.0 (#4352)
  • Bump @metamask/json-rpc-engine to ^9.0.0 (#4352)

@metamask/notification-controller 6.0.0

Changed

  • BREAKING: Bump minimum Node version to 18.18 (#3611)
  • Bump @metamask/base-controller to ^6.0.0 (#4352)

@metamask/permission-controller 10.0.0

Changed

  • BREAKING: Bump minimum Node version to 18.18 (#3611)
  • BREAKING: Bump peer dependency @metamask/approval-controller to ^7.0.0 (#4352)
  • Bump @metamask/base-controller to ^6.0.0 (#4352)
  • Bump @metamask/controller-utils to ^11.0.0 (#4352)
  • Bump @metamask/json-rpc-engine to ^9.0.0 (#4352)

@metamask/permission-log-controller 3.0.0

Changed

  • BREAKING: Bump minimum Node version to 18.18 (#3611)
  • Bump @metamask/base-controller to ^6.0.0 (#4352)
  • Bump @metamask/json-rpc-engine to ^9.0.0 (#4352)

@metamask/phishing-controller 10.0.0

Changed

  • BREAKING: Bump minimum Node version to 18.18 (#3611)
  • Bump @metamask/base-controller to ^6.0.0 (#4352)
  • Bump @metamask/controller-utils to ^11.0.0 (#4352)

@metamask/polling-controller 8.0.0

Changed

  • BREAKING: Bump minimum Node version to 18.18 (#3611)
  • BREAKING: Bump dependency and peer dependency @metamask/network-controller to ^19.0.0 (#4352)
  • Bump @metamask/base-controller to ^6.0.0 (#4352)
  • Bump @metamask/controller-utils to ^11.0.0 (#4352)

@metamask/preferences-controller 13.0.0

Changed

  • BREAKING: Bump minimum Node version to 18.18 (#3611)
  • BREAKING: Bump peer dependency @metamask/keyring-controller to ^17.0.0 (#4352)
  • Bump...
Read more

158.0.0

31 May 17:42
a137dd1
Compare
Choose a tag to compare

@metamask/accounts-controller 15.0.0

Added

  • Add getNextAvailableAccountName method and AccountsController:getNextAvailableAccountName controller action (#4326)
  • Add listMultichainAccounts method for getting accounts on a specific chain or the default chain (#4330)
  • Add getSelectedMultichainAccount method and AccountsController:getSelectedMultichainAccount controller action for getting the selected account on a specific chain or the default chain (#4330)

Changed

  • BREAKING: Bump peer dependency @metamask/snaps-controllers to ^8.1.1 (#4262)
  • BREAKING: Bump peer dependency @metamask/keyring-controller to ^16.1.0 (#4342)
  • BREAKING: listAccounts now filters the list of accounts in state to EVM accounts (#4330)
  • BREAKING: getSelectedAccount now throws if the selected account is not an EVM account (#4330)
  • Bump @metamask/eth-snap-keyring to ^4.1.1 (#4262)
  • Bump @metamask/keyring-api to ^6.1.1 (#4262)
  • Bump @metamask/snaps-sdk to ^4.2.0 (#4262)
  • Bump @metamask/snaps-utils to ^7.4.0 (#4262)

Fixed

  • Fix "Type instantiation is excessively deep and possibly infinite" TypeScript error (#4331)

@metamask/address-book-controller 4.0.2

Changed

  • Bump @metamask/base-controller to ^5.0.2 (#4232)
  • Bump @metamask/controller-utils to ^10.0.0 (#4342)

Fixed

  • Fix delete method to protect against prototype-polluting assignments (#4041)

@metamask/announcement-controller 6.1.1

Changed

  • Bump @metamask/base-controller to ^5.0.2 (#4232)

@metamask/assets-controllers 31.0.0

Added

  • BREAKING: The NftDetectionController now takes a messenger, which can be used for communication (#4312)
    • This messenger must allow the following actions ApprovalController:addRequest, NetworkController:getState, NetworkController:getNetworkClientById, and PreferencesController:getState, and must allow the events PreferencesController:stateChange and NetworkController:stateChange
  • Add NftDetectionControllerMessenger type (#4312)
  • Add NftControllerGetStateAction, NftControllerActions, NftControllerStateChangeEvent, and NftControllerEvents types (#4310)
  • Add NftController:getState and NftController:stateChange as an available action and event to the NftController messenger (#4310)

Changed

  • BREAKING: Change TokensController to inherit from BaseController rather than BaseControllerV1 (#4304)
    • The constructor now takes a single options object rather than three arguments, and all properties in config are now part of options.
  • BREAKING: Rename TokensState type to TokensControllerState (#4304)
  • BREAKING: Make all TokensController methods and properties starting with _ private (#4304)
  • BREAKING: Convert Token from interface to type (#4304)
  • BREAKING: Replace balanceError property in Token with hasBalanceError; update TokenBalancesController so that it no longer captures the error resulting from getting the balance of an ERC-20 token (#4304)
  • BREAKING: Change NftDetectionController to inherit from StaticIntervalPollingController rather than StaticIntervalPollingControllerV1 (#4312)
    • The constructor now takes a single options object rather than three arguments, and all properties in config are now part of options.
  • BREAKING: Convert ApiNft, ApiNftContract, ApiNftLastSale, and ApiNftCreator from interface to type (#4312)
  • BREAKING: Change NftController to inherit from BaseController rather than BaseControllerV1 (#4310)
    • The constructor now takes a single options object rather than three arguments, and all properties in config are now part of options.
  • BREAKING: Convert Nft, NftContract, and NftMetadata from interface to type (#4310)
  • BREAKING: Rename NftState to NftControllerState, and convert to type (#4310)
  • BREAKING: Rename getDefaultNftState to getDefaultNftControllerState (#4310)
  • BREAKING: Bump dependency and peer dependency @metamask/accounts-controller to ^15.0.0 (#4342)
  • BREAKING: Bump dependency and peer dependency @metamask/approval-controller to ^6.0.2 (#4342)
  • BREAKING: Bump dependency and peer dependency @metamask/keyring-controller to ^16.1.0 (#4342)
  • BREAKING: Bump dependency and peer dependency @metamask/network-controller to ^18.1.3 (#4342)
  • BREAKING: Bump dependency and peer dependency @metamask/preferences-controller to ^12.0.0 (#4342)
  • Change NftDetectionController method detectNfts so that userAddress option is optional (#4312)
    • This will default to the currently selected address as kept by PreferencesController.
  • Bump async-mutex to ^0.5.0 (#4335)
  • Bump @metamask/polling-controller to ^7.0.0 (#4342)

Removed

  • BREAKING: Remove config property and configure method from TokensController (#4304)
    • The TokensController now takes a single options object which can be used for configuration, and configuration is now kept internally.
  • BREAKING: Remove notify, subscribe, and unsubscribe methods from TokensController (#4304)
    • Use the controller messenger for subscribing to and publishing events instead.
  • BREAKING: Remove TokensConfig type (#4304)
    • These properties have been merged into the options that TokensController takes.
  • BREAKING: Remove config property and configure method from TokensController (#4312)
    • TokensController now takes a single options object which can be used for configuration, and configuration is now kept internally.
  • BREAKING: Remove notify, subscribe, and unsubscribe methods from NftDetectionController (#4312)
    • Use the controller messenger for subscribing to and publishing events instead.
  • BREAKING: Remove chainId as a NftDetectionController constructor argument (#4312)
    • The controller will now read the networkClientId from the NetworkController state through the messenger when needed.
  • BREAKING: Remove getNetworkClientById as a NftDetectionController constructor argument (#4312)
    • The controller will now call NetworkController:getNetworkClientId through the messenger object.
  • BREAKING: Remove onPreferencesStateChange as a NftDetectionController constructor argument (#4312)
    • The controller will now call PreferencesController:stateChange through the messenger object.
  • BREAKING: Remove onNetworkStateChange as a NftDetectionController constructor argument (#4312)
    • The controller will now read the networkClientId from the NetworkController state through the messenger when needed.
  • BREAKING: Remove getOpenSeaApiKey as a NftDetectionController constructor argument (#4312)
    • This was never used.
  • BREAKING: Remove getNftApi as a NftDetectionController constructor argument (#4312)
    • This was never used.
  • BREAKING: Remove NftDetectionConfig type (#4312)
    • These properties have been merged into the options that NftDetectionController takes.
  • BREAKING: Remove config property and configure method from NftController (#4310)
    • NftController now takes a single options object which can be used for configuration, and configuration is now kept internally.
  • BREAKING: Remove notify, subscribe, and unsubscribe methods from NftController (#4310)
    • Use the controller messenger for subscribing to and publishing events instead.
  • BREAKING: Remove onPreferencesStateChange as a NftController constr...
Read more

157.0.0

29 May 20:01
6f563ff
Compare
Choose a tag to compare

@metamask/assets-controllers 30.0.0

Added

  • Adds a new field marketData to the state of TokenRatesController (#4206)
  • Adds a new RatesController to manage prices for non-EVM blockchains (#4242)

Changed

  • BREAKING: Changed price and token API endpoints from *.metafi.codefi.network to *.api.cx.metamask.io (#4301)
  • When fetching token list for Linea Mainnet, use occurrenceFloor parameter of 1 instead of 3, and filter tokens to those with a lineaTeam aggregator or more than 3 aggregators (#4253)
  • BREAKING: The NftController messenger must now allow the NetworkController:getNetworkClientById action (#4305)
  • BREAKING: Bump dependency and peer dependency @metamask/network-controller to ^18.1.2 (#4332)
  • Bump @metamask/keyring-api to ^6.1.1 (#4262)

Removed

  • BREAKING: Removed contractExchangeRates and contractExchangeRatesByChainId from the state of TokenRatesController (#4206)

Fixed

  • Only update NFT state when metadata actually changes (#4143)

@metamask/controller-utils 10.0.0

Changed

  • BREAKING: Changed price and token API endpoints from *.metafi.codefi.network to *.api.cx.metamask.io (#4301)

156.0.0

29 May 11:20
85832f4
Compare
Choose a tag to compare

@metamask/network-controller 18.1.2

Fixed

  • Update from eth-block-tracker to @metamask/eth-block-tracker ^9.0.2, mitigating redundant polling loops (#4309)

@metamask/transaction-controller 30.0.0

Fixed

  • BREAKING: Update from nonce-tracker@^3.0.0 to @metamask/nonce-tracker@^5.0.0 to mitigate issue with redundant polling loops in block tracker. (#4309)
    • The constructor now expects the blockTracker option being an instance of @metamask/eth-block-tracker instead ofeth-block-tracker.