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/controller-utilsto^11.7.0(#5583)
- BREAKING: Bump peer dependency
@metamask/network-controllerto^23.0.0(#5507) - Bump
@metamask/controller-utilsto^11.6.0(#5439) - Bump
@metamask/utilsto^11.2.0(#5301) - Bump
@metamask/polling-controllerto^13.0.0(#5507)
- Bump
@metamask/base-controllerfrom^7.0.2to^8.0.0(#5079), (#5305) - Bump
@metamask/controller-utilsfrom^11.4.4to^11.5.0(#5135), (#5272) - Bump
@metamask/polling-controllerfrom^12.0.2to^12.0.3(#5305) - Bump
@metamask/utilsfrom^10.0.0to^11.1.0(#5080), (#5223)
- 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:
@babel/runtime@^7.0.0(required by@metamask/ethjs-unit)
- 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.js
- 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, #4195)
- BREAKING: Bump
@metamask/network-controllerpeer dependency to^22.0.0(#4841) - Bump
@metamask/controller-utilsto^11.4.0(#4834) - Bump
@metamask/utilsto^10.0.0(#4831)
- BREAKING:
GasFeeControllernow 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)
- 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) - 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/network-controllerdependency #4556- This was listed under
peerDependenciesalready, so it was redundant as a dependency.
- This was 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/utilsfrom^8.3.0to^9.1.0(#4516, #4529)
- BREAKING: Bump peerDependency
@metamask/network-controllerto^20.0.0(#4508) - Bump
@metamask/polling-controllerto^9.0.0(#4508)
- BREAKING: Add constructor options to
GasFeeController:EIP1559APIEndpoint(required), andlegacyAPIEndpoint(optional) which defaults toLEGACY_GAS_PRICES_API_URL. (#4446)- These URLs are no longer hardcoded within the controller.
- BREAKING: Remove
infuraAPIKeyas a constructor option forGasFeeController. This class field was previously used to construct and send theAuthorizationheader for Infura gas API requests. (#4446)
- BREAKING: Bump minimum Node version to 18.18 (#3611)
- BREAKING: Bump dependency and peer dependency
@metamask/network-controllerto^19.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)
- BREAKING: Bump dependency and peer dependency
@metamask/network-controllerto^18.1.3(#4342) - Bump
@metamask/controller-utilsto^10.0.0(#4342) - Bump
@metamask/polling-controllerto^7.0.0(#4342)
- Add a metadata property for nonRPCGasFeeApisDisabled (#4245)
- Bump
@metamask/polling-controllerto^6.0.2(#4234)
- Remove fee history fallback in favour of
eth_gasPricecall (#4210)
- Add nonRPCGasFeeApisDisabled property to the gas fee controller, allowing the user to specify that they want to prevent network request to gas estimate services, and only want gas estimates to be based on rpc requests (eth_feeHistory and eth_gasPrice) to the provider. (#4094)
- Fix GasFeeController incorrectly setting globally selected state, so that state is only updated if the gasFeeEstimate fetched is for the currently selected network (#4214)
- BREAKING: The controller's constructor now requires
infuraAPIKey. This is used to construct and send theAuthorizationheader for Infura gas API requests. (#4068) - Bump dependency
@metamask/network-controllerto^18.1.0(#4121)
- BREAKING: Remove the constructor options
legacyAPIEndpointandEIP1559APIEndpoint. These URLs are now hardcoded within the controller. (#4068)
- 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
@metamask/base-controllerto^5.0.0(#4039)- This version has a number of breaking changes. See the changelog for more.
- BREAKING: Bump dependency and peer dependency on
@metamask/network-controllerto^18.0.0(#4039) - Bump
@metamask/controller-utilsto^9.0.0(#4039) - Bump
@metamask/polling-controllerto^6.0.0(#4039)
- Replace
ethereumjs-utilwithbn.js(#3943) - Bump
@metamask/controller-utilsto^8.0.4(#4007) - Bump
@metamask/ethjs-unitto^0.3.0(#3897) - Bump
@metamask/network-controllerto^17.2.1(#4007) - Bump
@metamask/polling-controllerto^5.0.1(#4007)
- Bump
@metamask/controller-utilsto^8.0.3(#3915)
- BREAKING: Bump
@metamask/network-controllerpeer dependency to^17.2.0(#3821) - Bump
@metamask/utilsto^8.3.0(#3769) - Bump
@metamask/base-controllerto^4.1.1(#3760, #3821) - Bump
@metamask/controller-utilsto^8.0.2(#3821) - Bump
@metamask/polling-controllerto^5.0.0(#3821)
- BREAKING: Bump
@metamask/network-controllerdependency and peer dependency from^17.0.0to^17.1.0(#3695) - BREAKING: The
GasFeeControllernow detects network changes using theNetworkController:networkDidChangeevent instead ofNetworkController:stateChange(#3610)- Additionally, the optional constructor parameter
onNetworkStateChangehas been replaced byonNetworkDidChange
- Additionally, the optional constructor parameter
- Bump
@metamask/base-controllerto^4.0.1(#3695) - Bump
@metamask/controller-utilsto^8.0.1(#3695, #3678, #3667, #3580) - Bump
@metamask/polling-controllerto^4.0.0(#3695, #3667, #3636)- This update adds two new methods to each polling controller:
_startPollingByNetworkClientIdand_stopPollingByPollingTokenSetId. These methods are intended for internal use, and should not be called directly.
- This update adds two new methods to each polling controller:
- BREAKING: Bump
@metamask/base-controllerto ^4.0.0 (#2063)- This is breaking because the type of the
messengerhas backward-incompatible changes. See the changelog for this package for more.
- This is breaking because the type of the
- Replace
ethjs-unit^0.1.6 with@metamask/ethjs-unit^0.2.1 (#2064) - Bump
@metamask/controller-utilsto ^6.0.0 (#2063) - Bump
@metamask/network-controllerto ^17.0.0 (#2063) - Bump
@metamask/polling-controllerto ^2.0.0 (#2063)
- BREAKING: Bump dependency and peer dependency on
@metamask/network-controllerto ^16.0.0 - Bump dependency
@metamask/eth-queryfrom ^3.0.1 to ^4.0.0 (#2028) - Bump dependency on
@metamask/polling-controllerto ^1.0.2 - Bump @metamask/utils from 8.1.0 to 8.2.0 (#1957)
- Add optional
networkClientIdargument to options object param offetchGasFeeEstimatesmethod which, if passed, fetches the required chainId and networkClient provider to fetch and store gasFee data appropriately. (#1891)
- BREAKING: Bump dependency on
@metamask/polling-controllerto ^1.0.0 - Bump dependency and peer dependency on
@metamask/network-controllerto ^15.1.0
- Add way to start and stop different polling sessions for the same network client ID by providing extra scoping data (#1776)
- Add optional second argument to
stopPollingByPollingToken(formerlystopPollingByNetworkClientId) - Add optional second argument to
onPollingCompleteByNetworkClientId
- Add optional second argument to
- BREAKING: Make
executePollprivate (#1810) - BREAKING: Rename
stopPollingByNetworkClientIdtostopPollingByPollingToken(#1810) - BREAKING: Bump dependency and peer dependency on
@metamask/network-controllerto ^15.0.0 - BREAKING: Bump dependency on
@metamask/polling-controllerto ^0.2.0
- Add optional
gasFeeEstimatesByChainIdproperty to GasFeeController state (#1673 - Add dependency on
@metamask/polling-controller([#1748])(MetaMask#1748))
- BREAKING: Messenger must allow controller actions
NetworkController:getNetworkClientByIdandNetworkController:getEIP1559Compatibility(#1673 - Bump dependency on
@metamask/utilsto ^8.1.0 (#1639) - Bump dependency on
@metamask/base-controllerto ^3.2.3 - Bump dependency on
@metamask/controller-utilsto ^5.0.2 - Bump dependency and peer dependency on
@metamask/network-controllerto ^14.0.0
- Update TypeScript to v4.8.x (#1718)
- BREAKING: Bump peer dependency on
@metamask/network-controllerto ^13.0.0 (#1633) - Bump dependency on
@metamask/controller-utilsto ^5.0.0 (#1633)
- Bump dependency on
@metamask/base-controllerto ^3.2.1 - Bump dependency on
@metamask/controller-utilsto ^4.3.2 - Bump dependency and peer dependency on
@metamask/network-controllerto ^12.1.2
- Replace
eth-query^2.1.2 with@metamask/eth-query^3.0.1 (#1546)
- Bump dependency on
controller-utils(#1447)- The new version of
controller-utilsaddseth-queryto the list of dependencies. This dependency was added to improve internal types forgas-fee-controller. This has no impact on users of the package.
- The new version of
- BREAKING: Bump to Node 16 (#1262)
- BREAKING: The
getChainIdconstructor parameter now expects aHexreturn type rather than a decimal string (#1367) - Add
@metamask/utilsdependency - BREAKING: The gas fee controller messenger now requires the
NetworkController:stateChangeevent instead of theNetworkController:providerConfigChangeevent (#1329)- This does not apply if
onNetworkStateChangeandgetChainIdare provided to the constructor
- This does not apply if
- BREAKING: The constructor parameter
onNetworkStateChangenow expects event handlers to be passed the full network state (#1329)- The type of the
onNetworkStateChangeparameter already expected the state to be provided, but it wasn't used before now
- The type of the
- BREAKING: Update
@metamask/network-controllerdependency and peer dependency
- BREAKING: peerDeps: @metamask/network-controller@6.0.0->8.0.0 (#1196)
- Adjust types to align with new version of
NetworkController(#1091)
- BREAKING: Make the EIP-1559 endpoint a required argument (#1083)
- BREAKING: Remove
isomorphic-fetch(#1106)- Consumers must now import
isomorphic-fetchor another polyfill themselves if they are running in an environment withoutfetch
- Consumers must now import
- BREAKING: Update
@metamask/network-controllerpeer dependency to v3 (#1041) - Rename this repository to
core(#1031) - Update
@metamask/controller-utilspackage (#1041)
- This package will now warn if a required package is not present (#1003)
- BREAKING: Bump
@metamask/network-controllerto 2.0.0 (#995)- GasFeeController now expects NetworkController to respond to the
NetworkController:providerChangeConfigevent (previously namedNetworkController:providerChange). If you are depending directly on@metamask/network-controller, you should update your version to at least 2.0.0 as well.
- GasFeeController now expects NetworkController to respond to the
- Relax dependencies on
@metamask/base-controller,@metamask/controller-utils, and@metamask/network-controller(use^instead of~) (#998)
-
Initial release
-
As a result of converting our shared controllers repo into a monorepo (#831), we've created this package from select parts of
@metamask/controllersv33.0.0, namely:- Everything in
src/gas
All changes listed after this point were applied to this package following the monorepo conversion.
- Everything in
-