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.
- Bump
@metamask/transaction-controllerfrom^65.3.0to^66.0.0(#8796, #8848) - Bump
@metamask/gas-fee-controllerfrom^26.2.1to^26.2.2(#8834) - Bump
@metamask/polling-controllerfrom^16.0.5to^16.0.6(#8834) - Bump
@metamask/keyring-controllerfrom^25.5.0to^26.0.0(#8912)
- Bump
@metamask/network-controllerfrom^31.0.0to^32.0.0(#8765, #8774) - Bump
@metamask/controller-utilsfrom^12.0.0to^12.1.0(#8774)
- Bump
@metamask/keyring-controllerfrom^25.1.1to^25.5.0(#8363, #8634, #8665, #8722) - Bump
@metamask/messengerfrom^1.0.0to^1.2.0(#8364, #8373, #8632) - Bump
@metamask/transaction-controllerfrom^64.0.0to^65.3.0(#8432, #8447, #8482, #8585, #8613, #8691, #8722, #8755) - Bump
@metamask/base-controllerfrom^9.0.1to^9.1.0(#8457) - Bump
@metamask/network-controllerfrom^30.0.1to^31.0.0(#8636, #8755) - Bump
@metamask/gas-fee-controllerfrom^26.1.1to^26.2.1(#8722, #8755) - Bump
@metamask/controller-utilsfrom^11.20.0to^12.0.0(#8755) - Bump
@metamask/polling-controllerfrom^16.0.4to^16.0.5(#8755)
- Hardcode user operation transaction type to
contractInteractioninstead of callingdetermineTransactionType(#8273) - Bump
@metamask/transaction-controllerfrom^63.3.1to^64.0.0(#8359) - Bump
@metamask/controller-utilsfrom^11.19.0to^11.20.0(#8344)
- Bump
@metamask/approval-controllerfrom^9.0.0to^9.0.1(#8317) - Bump
@metamask/base-controllerfrom^9.0.0to^9.0.1(#8317) - Bump
@metamask/gas-fee-controllerfrom^26.1.0to^26.1.1(#8317) - Bump
@metamask/keyring-controllerfrom^25.1.0to^25.1.1(#8317) - Bump
@metamask/messengerfrom^0.3.0to^1.0.0(#8317) - Bump
@metamask/network-controllerfrom^30.0.0to^30.0.1(#8317) - Bump
@metamask/polling-controllerfrom^16.0.3to^16.0.4(#8317) - Bump
@metamask/transaction-controllerfrom^63.0.0to^63.3.1(#8272, #8301, #8313, #8317)
- Expose missing public
UserOperationControllermethods through its messenger (#8183)- The following actions are now available:
UserOperationController:addUserOperationUserOperationController:addUserOperationFromTransactionUserOperationController:startPollingByNetworkClientId
- Corresponding action types (e.g.
UserOperationControllerAddUserOperationAction) are available as well.
- The following actions are now available:
- Bump
@metamask/approval-controllerfrom^8.0.0to^9.0.0(#8225) - Bump
@metamask/gas-fee-controllerfrom^26.0.3to^26.1.0(#8225) - Bump
@metamask/transaction-controllerfrom^62.17.1to^63.0.0(#8005, #8031, #8104, #8140, #8217, #8225)
- Bump
@metamask/transaction-controllerfrom^62.9.2to^62.17.1(#7737, #7760, #7775, #7802, #7832, #7854, #7872, #7897, #7996) - Bump
@metamask/gas-fee-controllerfrom^26.0.2to^26.0.3(#7996) - Bump
@metamask/network-controllerfrom^29.0.0to^30.0.0(#7996) - Bump
@metamask/polling-controllerfrom^16.0.2to^16.0.3(#7996) - Bump
@metamask/keyring-controllerfrom^25.0.0to^25.1.0(#7713) - Bump
@metamask/controller-utilsfrom^11.18.0to^11.19.0(#7995)
- Bump
@metamask/gas-fee-controllerfrom^26.0.1to^26.0.2(#7642) - Bump
@metamask/network-controllerfrom^28.0.0to^29.0.0(#7642) - Bump
@metamask/polling-controllerfrom^16.0.1to^16.0.2(#7642) - Bump
@metamask/transaction-controllerfrom^62.9.1to^62.9.2(#7642)
- Upgrade
@metamask/utilsfrom^11.8.1to^11.9.0(#7511) - Move peer dependencies for controller and service packages to direct dependencies (#7209, #7220, #7236, #7257, #7258, #7289, #7325, #7430, #7494, #7534, #7583, #7596, #7602, #7604)
- The dependencies moved are:
@metamask/approval-controller(^8.0.0)@metamask/gas-fee-controller(^26.0.1)@metamask/keyring-controller(^25.0.0)@metamask/network-controller(^28.0.0)@metamask/transaction-controller(^62.9.1)
- In clients, it is now possible for multiple versions of these packages to exist in the dependency tree.
- For example, this scenario would be valid: a client relies on
@metamask/controller-a1.0.0 and@metamask/controller-b1.0.0, and@metamask/controller-bdepends on@metamask/controller-a1.1.0.
- For example, this scenario would be valid: a client relies on
- Note, however, that the versions specified in the client's
package.jsonalways "win", and you are expected to keep them up to date so as not to break controller and service intercommunication.
- The dependencies moved are:
- Bump
@metamask/controller-utilsfrom^11.16.0to^11.18.0(#7534, #7583) - Bump
@metamask/polling-controllerfrom^16.0.0to^16.0.1(#7604)
- Bump
@metamask/polling-controllerfrom^15.0.0to^16.0.0(#7202) - Bump
@metamask/controller-utilsfrom^11.15.0to^11.16.0(#7202) - BREAKING: Bump
@metamask/transaction-controllerfrom^61.0.0to^62.0.0(#7202) - BREAKING: Bump
@metamask/network-controllerfrom^25.0.0to^26.0.0(#7202) - BREAKING: Bump
@metamask/keyring-controllerfrom^24.0.0to^25.0.0(#7202) - BREAKING: Bump
@metamask/gas-fee-controllerfrom^25.0.0to^26.0.0(#7202)
- BREAKING: Use new
Messengerfrom@metamask/messenger(#6494)- Previously,
UserOperationControlleraccepted aRestrictedMessengerinstance from@metamask/base-controller.
- Previously,
- BREAKING: Metadata property
anonymousrenamed toincludeInDebugSnapshot(#6494) - BREAKING: Bump
@metamask/approval-controllerfrom^7.0.0to^8.0.0(#6962) - BREAKING: Bump
@metamask/gas-fee-controllerfrom^24.0.0to^25.0.0(#6962) - BREAKING: Bump
@metamask/keyring-controllerfrom^23.0.0to^24.0.0(#6962) - BREAKING: Bump
@metamask/network-controllerfrom^24.0.0to^25.0.0(#6962) - BREAKING: Bump
@metamask/transaction-controllerfrom^60.0.0to^61.0.0(#6962) - Bump
@metamask/base-controllerfrom^8.4.2to^9.0.0(#6962) - Bump
@metamask/polling-controllerfrom^14.0.2to^15.0.0(#6962)
- Bump
@metamask/base-controllerfrom^8.4.1to^8.4.2(#6917) - Bump
@metamask/polling-controllerfrom^14.0.1to^14.0.2(#6940)
- Bump
@metamask/eth-block-trackerfrom^13.0.0to^14.0.0(#6883) - Bump
@metamask/network-controllerfrom^24.2.2to^24.3.0(#6883) - Bump
@metamask/transaction-controllerfrom^60.7.0to^60.8.0(#6883) - Update dependencies that indirectly use v4 of
eth-json-rpc-provider(#6811)
- Add two new controller state metadata properties:
includeInStateLogsandusedInUi(#6473)
- Bump
@metamask/controller-utilsfrom^11.12.0to^11.14.1(#6620, #6629, #6807) - Bump
@metamask/base-controllerfrom^8.1.0to^8.4.1(#6355, #6465, #6632, #6807) - Bump
@metamask/utilsfrom^11.4.2to^11.8.1(#6588, #6708) - Bump
@metamask/polling-controllerfrom^14.0.0to^14.0.1(#6807)
- BREAKING: Bump peer dependency
@metamask/keyring-controllerfrom^22.0.0to^23.0.0(#6345) - BREAKING: Bump peer dependency
@metamask/transaction-controllerfrom^59.0.0to^60.0.0(#6345) - Bump
@metamask/base-controllerfrom^8.0.1to^8.1.0(#6284) - Bump
@metamask/controller-utilsfrom^11.11.0to^11.12.0(#6303)
- BREAKING: Bump peer dependency
@metamask/transaction-controllerto^59.0.0, (#6171, #6027) - Bump
@metamask/controller-utilsfrom^11.10.0to^11.11.0(#6069) - Bump
@metamask/utilsfrom^11.2.0to^11.4.2(#6054)
- BREAKING: Bump peer dependency
@metamask/gas-fee-controllerto^24.0.0(#5999) - BREAKING: Bump peer dependency
@metamask/network-controllerto^24.0.0(#5999) - BREAKING: Bump peer dependency
@metamask/transaction-controllerto^58.0.0(#5954, #5999) - Bump
@metamask/controller-utilsto^11.10.0(#5935) - Bump
@metamask/polling-controllerto^14.0.0(#5999)
- BREAKING: bump
@metamask/transaction-controllerpeer dependency to^57.0.0(#5802) - Bump
@metamask/controller-utilsto^11.9.0(#5812)
- BREAKING: bump
@metamask/keyring-controllerpeer dependency to^22.0.0(#5802) - BREAKING: bump
@metamask/transaction-controllerpeer dependency to^56.0.0(#5802) - Bump
@metamask/controller-utilsto^11.8.0(#5765)
- BREAKING: Bump
@metamask/transaction-controllerpeer dependency to^55.0.0(#5763) - Bump
@metamask/base-controllerfrom ^8.0.0 to ^8.0.1 (#5722)
- BREAKING: Bump
@metamask/transaction-controllerpeer dependency to^54.0.0(#5615)
- BREAKING: Bump
@metamask/transaction-controllerpeer dependency to^53.0.0(#5585) - Bump
@metamask/controller-utilsto^11.7.0(#5583)
- BREAKING: Bump
@metamask/transaction-controllerpeer dependency to^52.0.0(#5513)
- BREAKING: Bump peer dependency
@metamask/gas-fee-controllerto^23.0.0(#5507) - BREAKING: Bump peer dependency
@metamask/network-controllerto^23.0.0(#5507) - BREAKING: Bump peer dependency
@metamask/transaction-controllerto^51.0.0(#5507) - Bump
@metamask/polling-controllerto^13.0.0(#5507)
- BREAKING: Bump
@metamask/transaction-controllerpeer dependency to^50.0.0(#5496)
- BREAKING: Bump
@metamask/transaction-controllerpeer dependency to^49.0.0(#5471)
- BREAKING: Bump
@metamask/keyring-controllerpeer dependency to^21.0.0(#5439) - BREAKING: Bump
@metamask/transaction-controllerpeer dependency to^48.0.0(#5439)
- BREAKING: Bump
@metamask/keyring-controllerpeer dependency to^20.0.0(#5426) - BREAKING: Bump
@metamask/transaction-controllerpeer dependency to^47.0.0(#5426) - Bump
@metamask/utilsfrom^11.1.0to^11.2.0(#5301)
- BREAKING: Bump
@metamask/transaction-controllerpeer dependency from^45.0.0to^46.0.0(#5318)
- Bump
@metamask/base-controllerfrom^7.1.1to^8.0.0(#5305) - Bump
@metamask/polling-controllerfrom^12.0.3to^12.0.4(#5305)
- BREAKING: Bump
@metamask/transaction-controllerpeer dependency from^44.0.0to^45.0.0(#5292) - Bump
@metamask/controller-utilsdependency from^11.4.5to^11.5.0(#5272) - Bump
@metamask/utilsfrom^11.0.1to^11.1.0(#5223)
- BREAKING: Bump
@metamask/transaction-controllerpeer dependency from^43.0.0to^44.0.0(#5218)
- BREAKING: Bump
@metamask/transaction-controllerpeer dependency from^42.0.0to^43.0.0(#5140) - Bump
@metamask/base-controllerfrom^7.0.0to^7.1.0(#5079)
- BREAKING: Bump
@metamask/transaction-controllerpeer dependency from^41.1.0to^42.0.0(#5032) - Bump
@metamask/eth-block-trackerfrom to^11.0.2to^11.0.3(#5025)
- Bump
@metamask/controller-utilsfrom^11.4.3to^11.4.4(#5012) - Bump
@metamask/polling-controllerfrom^12.0.1to^12.0.2(#5012)
- Make implicit peer dependencies explicit (#4974)
- Add the following packages as peer dependencies of this package to satisfy peer dependency requirements from other dependencies:
@metamask/eth-block-tracker>=9(required by@metamask/transaction-controller)
- These dependencies really should be present in projects that consume this package (e.g. MetaMask clients), and this change ensures that they now are.
- Furthermore, we are assuming that clients already use these dependencies, since otherwise it would be impossible to consume this package in its entirety or even create a working build. Hence, the addition of these peer dependencies is really a formality and should not be breaking.
- Add the following packages as peer dependencies of this package to satisfy peer dependency requirements from other dependencies:
- Correct ESM-compatible build so that imports of the following packages that re-export other modules via
export *are no longer corrupted: (#5011)@metamask/eth-querybn.jslodash
- BREAKING: Bump
@metamask/transaction-controllerpeer dependency from^40.1.0to^41.0.0(#4982)
- BREAKING: Bump
@metamask/keyring-controllerpeer dependency from^18.0.0to^19.0.0(#4195) - BREAKING: Bump
@metamask/transaction-controllerpeer dependency from^39.0.0to^40.0.0(#4195)
- BREAKING: Bump peer depepdency
@metamask/transaction-controllerfrom^38.0.0to^39.0.0(#4915) - BREAKING: Bump peer depepdency
@metamask/keyring-controllerfrom^17.0.0to^18.0.0(#4915) - Bump
@metamask/polling-controllerfrom^12.0.0to^12.0.1(#4870) - Bump
@metamask/base-controllerfrom^7.0.1to^7.0.2(#4862) - Bump
@metamask/controller-utilsfrom^11.4.0to^11.4.3(#4862, #4870, #4915)
- BREAKING: Bump
@metamask/network-controllerpeer dependency from^21.0.0to^22.0.0(#4841) - Bump
@metamask/controller-utilsto^11.4.0(#4834) - Bump
@metamask/rpc-errorsto^7.0.1(#4831) - Bump
@metamask/utilsto^10.0.0(#4831)
- Added new entries
bridge,bridgeApprovalto theTransactionTypeenum (#4714)
- BREAKING:
PendingUserOperationTrackernow uses a new polling interface that accepts the generic parameterPollingInput(#4752) - BREAKING: The inherited
AbstractPollingControllermethodstartPollingByNetworkClientIdhas been renamed tostartPolling(#4752) - BREAKING: The inherited
AbstractPollingControllermethodonPollingCompletenow returns the entire input object of typePollingInput, instead of a network client id (#4752) - Bump
@metamask/transaction-controllerfrom^37.1.0to^37.3.0(#4754, #4805) - Bump
@metamask/approval-controllerfrom^7.0.4to^7.1.0(#4734) - Bump
@metamask/keyring-controllerfrom^17.2.1to^17.2.2(#4734) - Bump
@metamask/transaction-controllerfrom^37.0.0to^37.1.0(#4734)
- Produce and export ESM-compatible TypeScript type declaration files in addition to CommonJS-compatible declaration files (#4648)
- Previously, this package shipped with only one variant of type declaration
files, and these files were only CommonJS-compatible, and the
exportsfield inpackage.jsonlinked to these files. This is an anti-pattern and was rightfully flagged by the "Are the Types Wrong?" tool as "masquerading as CJS". All of the ATTW checks now pass.
- Previously, this package shipped with only one variant of type declaration
files, and these files were only CommonJS-compatible, and the
- Remove chunk files. (#4648)
- Previously, the build tool we used to generate JavaScript files extracted common code to "chunk" files. While this was intended to make this package more tree-shakeable, it also made debugging more difficult for our development teams. These chunk files are no longer present.
- BREAKING: Bump devDependency and peerDependency
@metamask/network-controllerfrom^20.0.0to^21.0.0(#4618, #4651) - BREAKING: Bump devDependency and peerDependency
@metamask/transaction-controllerfrom^35.0.0to^36.0.0(#4651) - BREAKING: Bump devDependency and peerDependency
@metamask/gas-fee-controllerfrom^19.0.0to^20.0.0(#4651) - Bump
@metamask/base-controllerfrom^6.0.2to^7.0.0(#4625, #4643) - Bump
@metamask/controller-utilsfrom^11.0.2to^11.2.0(#4639, #4651) - Bump
@metamask/polling-controllerfrom^9.0.1to^10.0.0(#4651) - Bump
typescriptfrom~5.0.4to~5.2.2(#4576, #4584)
- Remove
@metamask/approval-controller,@metamask/gas-fee-controller,@metamask/keyring-controller,@metamask/network-controller, and@metamask/transaction-controllerdependencies #4556- These were listed under
peerDependenciesalready, so they were redundant as dependencies.
- These were listed under
- Upgrade TypeScript version to
~5.0.4and setmoduleResolutionoption toNode16(#3645) - Bump
@metamask/base-controllerfrom^6.0.0to^6.0.2(#4517, #4544) - Bump
@metamask/controller-utilsfrom^11.0.0to^11.0.2(#4517, #4544) - Bump
@metamask/polling-controllerfrom^9.0.0to^9.0.1(#4548) - Bump
@metamask/rpc-errorsfrom^6.2.1to^6.3.1(#4516) - Bump
@metamask/utilsfrom^8.3.0to^9.1.0(#4516, #4529)
- Replace
superstructwith ESM-compatible@metamask/superstruct^3.1.0(#3645)- This fixes the issue of this package being unusable by any TypeScript project that uses
Node16orNodeNextas itsmoduleResolutionoption.
- This fixes the issue of this package being unusable by any TypeScript project that uses
- BREAKING: Bump peerDependency
@metamask/network-controllerto^20.0.0(#4508) - BREAKING: Bump peerDependency
@metamask/gas-fee-controllerto^19.0.0(#4508) - BREAKING: Bump peerDependency
@metamask/transaction-controllerto^35.0.0(#4508) - Bump
@metamask/polling-controllerto^9.0.0(#4508)
- BREAKING: Bump dependency and peer dependency
@metamask/gas-fee-controllerto^18.0.0(#4498) - BREAKING: Bump dependency and peer dependency
@metamask/transaction-controllerto^34.0.0(#4498)
- Bump
@metamask/transaction-controllerto^33.0.1(#4460)
- BREAKING: Bump minimum Node version to 18.18 (#3611)
- BREAKING: Bump dependency and peer dependency
@metamask/approval-controllerto^7.0.0(#4352) - BREAKING: Bump dependency and peer dependency
@metamask/gas-fee-controllerto^17.0.0(#4352) - BREAKING: Bump dependency and peer dependency
@metamask/keyring-controllerto^17.0.0(#4352) - BREAKING: Bump dependency and peer dependency
@metamask/network-controllerto^19.0.0(#4352) - BREAKING: Bump dependency and peer dependency
@metamask/transaction-controllerto^32.0.0(#4352) - Bump
@metamask/base-controllerto^6.0.0(#4352) - Bump
@metamask/controller-utilsto^11.0.0(#4352) - Bump
@metamask/polling-controllerto^8.0.0(#4352)
- Add support for "swap+send" transactions (#4298)
- Add optional properties
destinationTokenAmount,sourceTokenAddress,sourceTokenAmount,sourceTokenDecimals, andswapAndSendRecipienttoTransactionMeta - Add
swapAndSendas a new entry inTransactionTypeenum - When persisting this type of transaction, copy source tokens, destination tokens, and recipient from swap data, and emit
TransactionController:newSwapAndSendcontroller event
- Add optional properties
- BREAKING: Bump dependency and peer dependency
@metamask/approval-controllerto^6.0.2(#4342) - BREAKING: Bump dependency and peer dependency
@metamask/gas-fee-controllerto^16.0.0(#4342) - BREAKING: Bump dependency and peer dependency
@metamask/keyring-controllerto^16.1.0(#4342) - BREAKING: Bump dependency and peer dependency
@metamask/network-controllerto^18.1.3(#4342) - BREAKING: Bump dependency and peer dependency
@metamask/transaction-controllerto^31.0.0(#4342) - Bump
@metamask/controller-utilsto^10.0.0(#4342) - Bump
@metamask/polling-controllerto^7.0.0(#4342)
- BREAKING: Bump
@metamask/transaction-controllerpeer dependency to^29.0.0(#4272)
- BREAKING Bump
@metamask/keyring-controllerpeer dependency to ^16.0.0 (#4234) - Bump
@metamask/base-controllerto^5.0.2(#4232) - Bump
@metamask/transaction-controllerto^28.1.1(#4229) - Bump
@metamask/gas-fee-controllerto^15.1.1(#4220, #4234) - Bump
@metamask/approval-controllerto^6.0.2(#4234) - Bump
@metamask/polling-controllerto^6.0.2(#4234)
- Support number gas values in user operation receipts (#4161)
- BREAKING Bump peer dependency on
@metamask/keyring-controllerto^15.0.0and Pass CAIP-2 scope to execution context (#4090) - Allow gas limits to be changed during #addPaymasterData (#3942)
- BREAKING: Bump peer dependency
@metamask/gas-fee-controllerto^15.0.0(#4121) - BREAKING: Bump peer dependency
@metamask/transaction-controllerto^26.0.0(#4121) - Bump dependency
@metamask/network-controllerto^18.1.0(#4121)
- Include gas fees in user operations when using a paymaster (#4032)
- Fix
typesfield inpackage.json(#4047)
- BREAKING: Add ESM build (#3998)
- It's no longer possible to import files from
./distdirectly.
- It's no longer possible to import files from
- BREAKING: Bump dependency and peer dependency on
@metamask/approval-controllerto^6.0.0(#4039) - BREAKING: Bump dependency and peer dependency on
@metamask/gas-fee-controllerto^14.0.0(#4039) - BREAKING: Bump dependency and peer dependency on
@metamask/keyring-controllerto^14.0.0(#4039) - BREAKING: Bump dependency and peer dependency on
@metamask/network-controllerto^18.0.0(#4039) - BREAKING: Bump dependency and peer dependency on
@metamask/transaction-controllerto^25.0.0(#4039) - BREAKING: Bump
@metamask/controller-utilsto^9.0.0(#4039) - BREAKING: Bump
@metamask/polling-controllerto^6.0.0(#4039)
- BREAKING: Bump
@metamask/keyring-controllerdependency and peer dependency to^13.0.0(#4007) - BREAKING: Bump
@metamask/transaction-controllerdependency and peer dependency to^24.0.0(#4007) - Bump
@metamask/approval-controllerto^5.1.3(#4007) - Bump
@metamask/controller-utilsto^8.0.4(#4007) - Bump
@metamask/gas-fee-controllerto^13.0.2(#4007) - Bump
@metamask/network-controllerto^17.2.1(#4007) - Bump
@metamask/rpc-errorsto^6.2.1(#3954) - Bump
@metamask/polling-controllerto^5.0.1(#4007) - Replace
ethereumjs-utilwithbn.js(#3943)
- BREAKING: Bump
@metamask/transaction-controllerdependency and peer dependency to^23.0.0(#3925)
- BREAKING: Add required
fromproperty toPrepareUserOperationRequest(#3844) - BREAKING: Add required
fromproperty toAddUserOperationRequest(#3844) - BREAKING: Make
smartContractAccountoptional inAddUserOperationOptions(#3844)- Use current account snap by default if not provided (#3844)
- Delete user operation if rejected during approval (#3844)
- Set
userFeeLeveltocustomin transaction event if using a paymaster (#3844) - Validate arguments when calling
addUserOperationFromTransaction(#3844)
- BREAKING: Bump
@metamask/approval-controllerpeer dependency to^5.1.2(#3821) - BREAKING: Bump
@metamask/gas-fee-controllerpeer dependency to^13.0.0(#3821) - BREAKING: Bump
@metamask/network-controllerpeer dependency to^17.2.0(#3821) - BREAKING: Bump
@metamask/transaction-controllerpeer dependency to^21.0.0(#3821) - Bump
@metamask/base-controllerto^4.1.1(#3821) - Bump
@metamask/controller-utilsto^8.0.2(#3821) - Bump
@metamask/message-managerto^7.3.8(#3821) - Bump
@metamask/polling-controllerto^5.0.0(#3821)
- Remove
@metamask/polling-controllerpeer dependency (#3823)- This was mistakenly added as a peer dependency in v1. Now it's a regular dependency.
- Initial Release (#3749)