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.
- BREAKING: Bump peer dependency
@metamask/keyring-controller
from^17.0.0
to^18.0.0
(#4915)
- Bump
@metamask/base-controller
from^7.0.1
to^7.0.2
(#4862) - Bump
@metamask/utils
from^9.1.0
to^10.0.0
(#4831) - Bump dev dependency
@metamask/keyring-controller
from^17.2.2
to^17.3.1
(#4810, #4870)
- Bump accounts related packages (#4713), (#4728)
- Those packages are now built slightly differently and are part of the accounts monorepo.
- Bump
@metamask/keyring-api
from^8.1.0
to^8.1.4
- Bump
@metamask/eth-snap-keyring
from^4.3.3
to^4.3.6
- Bump
@metamask/eth-snap-keyring
from^4.3.1
to^4.3.3
(#4689) - Bump
@metamask/snaps-sdk
from^6.1.1
to^6.5.0
(#4689) - Bump
@metamask/snaps-utils
from^7.8.1
to^8.1.1
(#4689) - Bump peer dependency
@metamask/snaps-controllers
from^9.3.0
to^9.7.0
(#4689)
- 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.
- Add event
AccountsController:accountRenamed
and export corresponding event typeAccountsControllerAccountRenamedEvent
(#4664), (#4660) - Add new
nameLastUpdatedAt
timestamp to account's metadata (#4589)
- Consolidate
setAccountName
logic inupdateAccountMetadata
(#4663)- Moved the logic for checking account name uniqueness and triggering the
accountRenamed
event fromsetAccountName
toupdateAccountMetadata
. ThesetAccountName
method now callsupdateAccountMetadata
to handle these tasks.
- Moved the logic for checking account name uniqueness and triggering the
- Bump
@metamask/base-controller
from^6.0.3
to^7.0.0
(#4643)
- Export
AccountsControllerUpdateAccountMetadataAction
action (#4590) - Add new method
updateAccountMetadata
(#4568)
- Bump
@metamask/keyring-api
to version8.1.0
(#4594)
- Handle undefined
selectedAccount
inupdateAccounts
(#4623) - Fix
AccountsControllerUpdateAccountMetadataAction
action type name (#4590)
- BREAKING: Bump peerDependency
@metamask/snaps-controllers
from^8.1.1
to^9.3.0
(#3645) - Remove
@metamask/keyring-controller
dependency #4556- This was listed under
peerDependencies
already, so it was redundant as a dependency.
- This was listed under
- 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/keyring-api
from^8.0.0
to^8.0.1
(#3645) - Bump
@metamask/snaps-sdk
from^4.2.0
to^6.1.1
(#3645, #4547) - Bump
@metamask/snaps-utils
from^7.4.0
to^7.8.1
(#3645, #4547) - Bump
@metamask/utils
from^8.3.0
to^9.1.0
(#4516, #4529)
- Add internal actions and events to
AccountsController
(#4496, #4497)- Add events
AccountsController:accountAdded
,AccountsController:accountRemoved
, and export corresponding event typesAccountsControllerAccountAddedEvent
,AccountsControllerAccountRemovedEvent
. - Export action types
AccountsControllerListMultichainAccountsAction
,AccountsControllerGetSelectedMultichainAccountAction
,AccountsControllerGetNextAvailableAccountNameAction
.
- Add events
- Improve support of non-EVM accounts (#4494)
- We now use
listMultichainAccounts
instead oflistAccounts
for non-EVM specific multichain methods
- We now use
- Emit
selectedAccountChange
and updatelastSelected
for initial account (#4494)
- Handle edge case of undefined
selectedAccount
during onboarding forgetSelectedMultichainAccount
(#4466)
- Add
AccountsController:listMultichainAccounts
action (#4426)
- Refactored
getSelectedAccount
to handle case when there are no accounts to return. The logic was previously contained ingetAccountExpect
has been transferred togetSelectedAccount
. (#4322) - Updated
handleAccountRemoved
to automatically select the most recent account if the removed account was the currently selected account. (#4322) - Move
@metamask/keyring-controller
to dependency (#4425)
- 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)
- Use
listMultichainAccount
ingetAccountByAddress
(#4375)
- 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)
- Add
getNextAvailableAccountName
method andAccountsController:getNextAvailableAccountName
controller action (#4326) - Add
listMultichainAccounts
method for getting accounts on a specific chain or the default chain (#4330) - Add
getSelectedMultichainAccount
method andAccountsController:getSelectedMultichainAccount
controller action for getting the selected account on a specific chain or the default chain (#4330)
- 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)
- Fix "Type instantiation is excessively deep and possibly infinite" TypeScript error (#4331)
- BREAKING Bump
@metamask/keyring-controller
peer dependency to ^16.0.0 (#4234) - Bump
@metamask/keyring-api
to 6.0.0,@metamask/eth-snap-keyring
to 4.0.0 and snap dependencies (#4193) - Bump
@metamask/base-controller
to^5.0.2
(#4232)
- Fix update setSelectedAccount to throw if the id is not found (#4167)
- Fix normal account indexing naming with index gap (#4089)
- BREAKING Bump peer dependency
@metamask/snaps-controllers
to^6.0.3
and dependencies@metamask/snaps-sdk
to^3.1.1
,@metamask/eth-snap-keyring
to^3.0.0
(#4090)
- 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
- 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)
- BREAKING: Remove action and event types unrelated to
AccountsController
fromAccountsControllerActions
andAccountsControllerEvents
(#4031)
- BREAKING: Narrow allowed actions and event type for
AccountsController
messenger (#4021, #4031)- Narrow type parameter
AllowedAction
fromstring
to(KeyringControllerGetKeyringForAccountAction | KeyringControllerGetKeyringsByTypeAction | KeyringControllerGetAccountsAction)['type']
. - Narrow type parameter
AllowedEvent
fromstring
to(SnapStateChange | KeyringControllerStateChangeEvent)['type']
, removing other events fromSnapController
andKeyringController
.
- Narrow type parameter
- BREAKING: Bump
@metamask/keyring-controller
peer dependency to^13.0.0
(#4007) - Replace
ethereumjs-util
with@ethereumjs/util
andethereum-cryptography
(#3943)
- Update
keyringTypeToName
to return the correct name for custody keyrings (#3899)
- BREAKING: Bump
@metamask/keyring-controller
peer dependency to^12.2.0
(#3821) - Bump
@metamask/base-controller
to^4.1.1
(#3821)
- Add methods to support ERC-4337 accounts (#3602)
- Add getAccount action to AccountsController (#1892)
- BREAKING: Bump
@metamask/keyring-controller
peer dependency to ^12.1.0 (#3747, #3810) - BREAKING: Bump
@metamask/snaps-controllers
peer dependency to ^4.0.0 (#3747) - Bump
@metamask/keyring-api
to ^3.0.0 (#3747) - Bump
@metamask/utils
to^8.3.0
(#3769)
- Fix quick succession of submit password causing Accounts Controller state to be cleared (#3802)
- BREAKING: Bump
@metamask/keyring-controller
to ^12.0.0
- Bump snaps dependencies (#3734)
- BREAKING: Bump
@metamask/keyring-controller
peer dependency from^10.0.0
to^11.0.0
(#3695) - BREAKING: Add
@metamask/snaps-controllers
as a peer dependency (#3607) - Bump
@metamask/base-controller
to^4.0.1
(#3695)
- BREAKING: Bump
@metamask/base-controller
to ^4.0.0 (#2063)- This is breaking because the type of the
messenger
has backward-incompatible changes. See the changelog for this package for more.
- This is breaking because the type of the
- Bump
@metamask/keyring-controller
to ^10.0.0 (#2063)
- BREAKING: Bump dependency and peer dependency on
@metamask/keyring-controller
to ^9.0.0 - Bump
@metamask/snaps-utils
and@metamask/snaps-controller
to 3.2.0 (#1917, #1944, #1977) - Bump @metamask/utils from 8.1.0 to 8.2.0 (#1957)
- Bump @metamask/keyring-api from 1.0.0 to 1.1.0 (#1951)
- BREAKING Update the
onKeyringStateChange
andonSnapStateChange
methods, and remove thekeyringApiEnabled
from the AccountsController (#1839) - Add getSelectedAccount and getAccountByAddress actions to AccountsController (#1858)
- BREAKING: Bump dependency on
@metamask/eth-snap-keyring
to ^1.0.0 (#1735) - BREAKING: Bump dependency on
@metamask/keyring-api
to ^1.0.0 (#1735) - BREAKING: Bump dependency on
@metamask/snaps-utils
to ^3.0.0 (#1735) - Bump dependency and peer dependency on
@metamask/keyring-controller
to ^8.0.3
- Bump dependency on
@metamask/utils
to ^8.1.0 (#1639) - Bump dependency on
@metamask/base-controller
to ^3.2.3 - Bump peer dependency on
@metamask/keyring-controller
to ^8.0.2
- Update TypeScript to v4.8.x (#1718)
- Remove unused
selectedAccount
from state metadata (#1734)
- BREAKING: Bump peer dependency on
@metamask/keyring-controller
to ^8.0.0
- Initial release (#1637)