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/base-controller
from^7.0.0
to^7.1.0
(#5079)
- Bump
@metamask/controller-utils
from^11.4.3
to^11.4.4
(#5012)
- BREAKING: Bump
@metamask/keyring-controller
peer dependency from^18.0.0
to^19.0.0
(#4195)
- BREAKING: Bump
@metamask/keyring-controller
peer dependency from^17.0.0
to^18.0.0
(#4915) - Bump
@metamask/controller-utils
from^11.4.2
to^11.4.3
(#4915)
- Enable smart transactions by default for new users (#4885)
- Add
useSafeChainsListValidation
preference (#4860)- Add
useSafeChainsListValidation
property to thePreferencesController
state (default:true
) - Add
setUseSafeChainsListValidation
method to set this property
- Add
- Add
tokenSortConfig
preference (#4860)- Add
tokenSortConfig
property to thePreferencesController
state (default value:{ key: 'tokenFiatAmount', order: 'dsc', sortCallback: 'stringNumeric' }
) - Add
setTokenSortConfig
method to set this property
- Add
- Add
privacyMode
preference (#4860)- Add
privacyMode
property to thePreferencesController
state (default value:false
) - Add
setPrivacyMode
method to set this property
- Add
- Add
useMultiRpcMigration
preference (#4732)
- Bump
@metamask/base-controller
from^7.0.1
to^7.0.2
(#4862) - Bump
@metamask/controller-utils
from^11.3.0
to^11.4.2
(#4834, #4862, #4870)
- Bump
@metamask/keyring-controller
from^17.2.1
to^17.2.2
(#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
exports
field inpackage.json
linked 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.
- Bump
@metamask/base-controller
from^6.0.2
to^7.0.0
(#4625, #4643) - Bump
@metamask/controller-utils
from^11.0.2
to^11.2.0
(#4639, #4651) - Bump
typescript
from~5.0.4
to~5.2.2
(#4576, #4584)
- Upgrade TypeScript version to
~5.0.4
and setmoduleResolution
option toNode16
(#3645) - Bump
@metamask/base-controller
from^6.0.0
to^6.0.2
(#4517, #4544) - Bump
@metamask/controller-utils
from^11.0.0
to^11.0.2
(#4517, #4544)
- 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) - Bump
@metamask/controller-utils
to^11.0.0
(#4352)
- Add
smartTransactionsOptInStatus
preference (#3815)- Add
smartTransactionsOptInStatus
property to thePreferencesController
state (default:false
) - Add
setSmartTransactionOptInStatus
method to set this property
- Add
- Add
useTransactionSimulations
preference (#4283)- Add
useTransactionSimulations
property to thePreferencesController
state (default value:false
) - Add
setUseTransactionSimulations
method to set this property
- Add
- Bump
@metamask/controller-utils
to^10.0.0
(#4342)
- BREAKING: Remove state property
disabledRpcMethodPreferences
along withsetDisabledRpcMethodPreferences
method (#4319)- These were for disabling the
eth_sign
RPC method, but support for this method is being removed, so this preference is no longer needed.
- These were for disabling the
- Export
ETHERSCAN_SUPPORTED_CHAIN_IDS
constant (#4233)
- BREAKING Bump
@metamask/keyring-controller
peer dependency to ^16.0.0 (#4234) - Bump
@metamask/base-controller
to^5.0.2
(#4232)
- BREAKING Bump peer dependency on
@metamask/keyring-controller
to^15.0.0
(#4090) - Restore previous behavior of toChecksumHexAddress (#4046)
- Fix
types
field inpackage.json
(#4047)
- BREAKING: Add ESM build (#3998)
- It's no longer possible to import files from
./dist
directly.
- It's no longer possible to import files from
- Add support for Linea Sepolia (chain ID
0xe705
) (#3995)- Update default controller state so
0xe705
is automatically enabled inshowIncomingTransactions
.
- Update default controller state so
- BREAKING: Bump
@metamask/base-controller
to^5.0.0
(#4039)- This version has a number of breaking changes. See the changelog for more.
- BREAKING: Bump peer dependency on
@metamask/keyring-controller
to^14.0.0
(#4039) - Bump
@metamask/controller-utils
to^9.0.0
(#4039)
- BREAKING: Bump
@metamask/keyring-controller
dependency and peer dependency to^13.0.0
(#4007) - BREAKING: Remove support for Optimism Goerli, add support for Optimism Sepolia (#3999)
- Replace
OPTIMISM_TESTNET
withOPTIMISM_SEPOLIA
inETHERSCAN_SUPPORTED_CHAIN_IDS
andEtherscanSupportedChains
. - Replace
0x1a4
with0xaa37dc
inEtherscanSupportedHexChainId
. - Replace
0x1a4
with0xaa37dc
in defaultshowIncomingTransactions
state. - Update
setEnabledNetworkIncomingTransactions
to ignore a chain ID of0x1a4
; add support for0xaa37dc
instead. - You will likely want to write a migration to transfer the value of
0x1a4
for0xaa37dc
for theshowIncomingTransactions
state property.
- Replace
- Bump
@metamask/controller-utils
to^8.0.4
(#4007)
- BREAKING: Move
syncIdentities
to private, as it's only used internally to update state onKeyringController:stateChange
event (#3976) - BREAKING: Remove
updateIdentities
, as it's not in use anymore (#3976)
- Fix KeyringController state listener to not sync identities when the wallet is locked (which clears the list of accounts) to avoid setting the selected address to
undefined
(#3946)
- BREAKING: Keep
PreferencesController
state synchronized withKeyringController
state (#3799)- The
KeyringController:stateChange
event is now required by thePreferencesController
messenger, which is a breaking change. - The package
@metamask/keyring-controller
has been added as apeerDependency
and as adevDependency
, which is a breaking change. - Previously the state was synchronized manually by calling
syncIdentities
orupdateIdentities
. Calling these methods is no longer required.
- The
- Bump
@metamask/base-controller
to^4.1.1
(#3760, #3821) - Bump
@metamask/controller-utils
to^8.0.2
(#3821)
- Added
getDefaultPreferencesState
function (#3736)
- BREAKING Clean up types (#3712)
- Replace
ContactEntry
interface withIdentity
type - Convert
PreferencesState
from an interface to a type
- Replace
- BREAKING: Convert to
BaseControllerV2
(#3713)- The constructor parameters have changed; rather than accepting an empty "config" parameter and a "state" parameter, there is now just a single object for all constructor arguments. This object has a mandatory
messenger
and an optionalstate
property. - Additional type exports have been added for the controller messenger and associated types
- The constructor parameters have changed; rather than accepting an empty "config" parameter and a "state" parameter, there is now just a single object for all constructor arguments. This object has a mandatory
- Bump
@metamask/base-controller
to^4.0.1
(#3695) - Bump
@metamask/controller-utils
to^8.0.1
(#3695, #3678, #3667, #3580)
- BREAKING Add required property
showIncomingTransactions
toPreferencesState
(#1659) - Add types
EtherscanSupportedChains
,EtherscanSupportedHexChainId
(#1659) - Add constant
ETHERSCAN_SUPPORTED_CHAIN_IDS
(#1659) - Add
setEnabledNetworkIncomingTransactions
method (#1659)- This can be used to set the
showIncomingTransactions
preference for the given chain ID.
- This can be used to set the
- Bump
@metamask/base-controller
to ^4.0.0 (#2063)- This is not breaking because this controller still inherits from BaseController v1.
- Bump
@metamask/controller-utils
to ^6.0.0 (#2063)
- Bump dependency on
@metamask/base-controller
to ^3.2.3 (#1747) - Bump dependency on
@metamask/controller-utils
to ^5.0.2 (#1747)
- Update TypeScript to v4.8.x (#1718)
- Bump dependency on
@metamask/controller-utils
to ^5.0.0
- Add
isIpfsGatewayEnabled
property to PreferencesController state (#1577) - Add
setIsIpfsGatewayEnabled
to setisIpfsGatewayEnabled
(#1577)
- Bump dependency on
@metamask/base-controller
to ^3.2.1 - Bump dependency on
@metamask/controller-utils
to ^4.3.2
- Add preference for security alerts (#1589)
- Add controller state property
showTestNetworks
along with a setter method,setShowTestNetworks
(#1418)
- Add
isMultiAccountBalancesEnabled
to state (default: true) along with asetIsMultiAccountBalancesEnabled
method to set it
- BREAKING: Bump to Node 16 (#1262)
- BREAKING: Migrate network configurations from
PreferencesController
toNetworkController
(#1064)- Consumers will need to adapt by reading network data from
NetworkConfigurations
state onNetworkController
rather thanfrequentRpcList
onPreferencesController
. SeeNetworkController
v6.0.0 changelog entry for more details.
- Consumers will need to adapt by reading network data from
disabledRpcMethodPreferences
state to PreferencesController (#1109). See this PR on extension and this ticket
- BREAKING: Remove
isomorphic-fetch
(#1106)- Consumers must now import
isomorphic-fetch
or another polyfill themselves if they are running in an environment withoutfetch
- Consumers must now import
- Relax dependencies on
@metamask/base-controller
and@metamask/controller-utils
(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/controllers
v33.0.0, namely:src/user/PreferencesController.ts
(plusContactEntry
copied fromsrc/user/AddressBookController.ts
)src/user/PreferencesController.test.ts
All changes listed after this point were applied to this package following the monorepo conversion.
-