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.1
to^7.0.2
(#4862) - Bump
@metamask/controller-utils
from^11.3.0
to^11.4.2
(#4834, #4862, #4870) - Bump
@metamask/utils
from^9.1.0
to^10.0.0
(#4831) - Bump
@metamask/eth-sig-util
from^7.0.1
to^8.0.0
(#4830)
- Remove all code related to
@metamask/signature-controller
(#4785)- Remove
TypedMessageManager
. - Remove
PersonalMessageManager
. - Remove utils:
validateSignMessageData
validateTypedSignMessageDataV1
validateTypedSignMessageDataV3V4
- Remove
- 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 protected methods
addRequestToMessageParams
,createUnapprovedMessage
toAbstractMessageManager
- Add
requestId
property to themessageParams
object to reference metric event fragments created from thecreateRPCMethodTrackingMiddleware
in the client (#4636)- Add optional property
requestId
toAbstractMessageParams
type - Add optional property
id
toOriginalRequest
type
- Add optional property
- Bump
@metamask/controller-utils
from^11.1.0
to^11.2.0
(#4651)
- Bump
@metamask/base-controller
from^6.0.2
to^7.0.0
(#4625, #4643) - 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.1
to^6.0.2
(#4544) - Bump
@metamask/controller-utils
from^11.0.1
to^11.0.2
(#4544) - Bump
@metamask/utils
from^9.0.0
to^9.1.0
(#4529)
- Bump
@metamask/utils
to^9.0.0
,@metamask/rpc-errors
to^6.3.1
(#4516)
- Add
EventEmitter
type annotation to thehub
class field ofAbstractMessageManager
(#4510)- This ensures that
hub
is not inferred to be a generic type, which would break types for downstream consumers.
- This ensures that
- 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/controller-utils
to^10.0.0
(#4342)
- BREAKING: Remove
Message
,MessageParams
,MessageParamsMetamask
, andMessageManager
(#4319)- Support for
eth_sign
is being removed, so these are no longer needed.
- Support for
- Bump TypeScript version to
~4.9.5
(#4084) - Bump
@metamask/base-controller
to^5.0.2
(#4232) - Bump
@metamask/controller-utils
to^9.1.0
(#4153, #4065)
- 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.
- Bump
@metamask/controller-utils
to^9.0.0
(#4039)
- Bump
@metamask/utils
to^8.3.0
(#3769) - Bump
@metamask/base-controller
to^4.1.1
(#3760, #3821) - Bump
@metamask/controller-utils
to^8.0.2
(#3821)
- Bump
@metamask/base-controller
to^4.0.1
(#3695) - Bump
@metamask/controller-utils
to^8.0.1
(#3695, #3678, #3667, #3580) - Bump
@metamask/eth-sig-util
to^7.0.1
(#3614)
- Bump
@metamask/utils
to ^8.2.0 (#1957) - Bump
@metamask/base-controller
to ^4.0.0 (#2063)- This is not breaking because the message managers still inherit from BaseController v1.
- Bump
@metamask/controller-utils
to ^6.0.0 (#2063)
- Bump dependency on
@metamask/utils
to ^8.1.0 (#1639) - Bump dependency on
@metamask/base-controller
to ^3.2.3 - Bump dependency on
metamask/controller-utils
to ^5.0.2
- Fix
prepMessageForSigning
in all message managers to handle frozenmessageParams
(#1733)
- Update TypeScript to v4.8.x (#1718)
- Bump dependency on
@metamask/controller-utils
to ^5.0.0
- Bump @metamask/eth-sig-util from 6.0.0 to 7.0.0 (#1669)
- Bump dependency on
@metamask/base-controller
to ^3.2.1 - Bump dependency on
@metamask/controller-utils
to ^4.3.2
- Add Blockaid validation response to messages (#1541)
- Update
@metamask/utils
to^6.2.0
(#1514)
- Replace eth-sig-util with @metamask/eth-sig-util (#1483)
- Avoid race condition when creating typed messages (#1467)
- eth_signTypedData_v4 and v3 should take an object as well as string for data parameter. (#1438)
- Added
waitForFinishStatus
toAbstractMessageManager
which is waiting for the message to be proccesed and resolve. (#1377)
- BREAKING: Removed
addUnapprovedMessageAsync
methods fromPersonalMessageManager
,TypedMessageManager
andMessageManager
because it's not consumed bySignatureController
anymore. (#1377)
- Add
getAllMessages
andsetMetadata
methods to message managers (#1364)- A new optional
metadata
property has been added to the message type as well
- A new optional
- Add support for deferred signing (#1364)
deferSetAsSigned
has been added as a message parameter. This is used to tell the signature controller to not mark this message as signed when the keyring is asked to sign it.
- Add the
setMessageStatusInProgress
method to set a message status toinProgress
(#1339)
- BREAKING: The
getCurrentChainId
constructor parameter for each message manager now expects aHex
return type rather than a decimal string (#1367)- Note that while every message manager class accepts this as a constructor parameter, it's only used by the
TypedMessageManager
at the moment
- Note that while every message manager class accepts this as a constructor parameter, it's only used by the
- Add
@metamask/utils
dependency (#1370)
- BREAKING: Add chain validation to
eth_signTypedData_v4
signature requests (#1331)
- BREAKING: Change type of
securityProviderResponse
toRecord
(#1214) - BREAKING: Update to Node 16 (#1262)
- Ensure message updates get saved in state even when they aren't emitted right away (#1245)
- The
updateMessage
method included in each message manager accepted anemitUpdate
boolean argument that would enable to caller to prevent that update from updating the badge (which displays the count of pending confirmations). Unfortunately this option would also prevent the update from being saved in state. - This method has been updated to ensure message updates are saved in state, even when the badge update event is suppressed
- The
- Add DecryptMessageManager (#1149)
- Add EncryptionPublicKeyManager (#1144)
- Add security provider request to AbstractMessageManager (#1145)
- BREAKING: The methods
addMessage
andaddUnapprovedMessage
on each "message manager" controller are now asynchronous (#1145)
- Add SIWE detection support for PersonalMessageManager (#1139)
- 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:- Everything in
src/message-manager
- Message manager-related functions in
src/util.ts
and accompanying tests
All changes listed after this point were applied to this package following the monorepo conversion.
- Everything in
-