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.
- Upgrade
@metamask/utilsfrom^11.8.1to^11.9.0(#7511) - Bump
@metamask/controller-utilsfrom^11.16.0to^11.19.0(#7534, #7583, #7995)
- Bump
@metamask/controller-utilsfrom^11.15.0to^11.16.0(#7202) - Rename
OriginalRequesttype toMessageRequestand permit stringidvalues (#7065)- Previously, only number values were permitted for the
idproperty. OriginalRequestis kept for backward compatibility.
- Previously, only number values were permitted for the
- Deprecate
OriginalRequest; useMessageRequestinstead (#7138)
- BREAKING: Use new
Messengerfrom@metamask/messenger(#6545)- Previously,
AbstractMessageManager,DecryptMessageManagerandEncryptionPublicKeyManageraccepted aRestrictedMessengerinstance from@metamask/base-controller.
- Previously,
- Bump
@metamask/base-controllerfrom^8.4.2to^9.0.0(#6962)
- Bump
@metamask/base-controllerfrom^8.4.1to^8.4.2(#6917)
- Bump
@metamask/utilsfrom^11.8.0to^11.8.1(#6708) - Bump
@metamask/base-controllerfrom^8.4.0to^8.4.1(#6807) - Bump
@metamask/controller-utilsfrom^11.14.0to^11.14.1(#6807)
- Add two new controller state metadata properties:
includeInStateLogsandusedInUi(#6473)
- BREAKING:
AbstractMessageManagernow expects aName extends stringgeneric parameter to define the name of the message manager (#6469)- The type is used as namespace for
BaseControllerandMessengerevents and actions.
- The type is used as namespace for
- Bump
@metamask/base-controllerfrom^8.0.1to^8.4.0(#6284, #6355, #6465, #6632) - Bump
@metamask/controller-utilsfrom^11.11.0to^11.14.0(#6303, #6620, #6629) - Bump
@metamask/utilsfrom^11.4.2to^11.8.0(#6588)
- Bump
@metamask/eth-sig-utilfrom^8.0.0to^8.2.0(#5301) - Bump
@metamask/utilsfrom^11.1.0to^11.4.2(#5301, #6054) - Bump
@metamask/base-controllerfrom ^8.0.0 to ^8.0.1 (#5722) - Bump
@metamask/controller-utilsto^11.11.0(#5439, #5935, #5583, #5765, #5812, #6069)- This upgrade includes performance improvements to checksum hex address normalization
- Bump
@metamask/base-controllerfrom^7.1.0to^8.0.0(#5135), (#5305) - Bump
@metamask/controller-utilsfrom^11.4.4to^11.5.0(#5135), (#5272) - Bump
@metamask/utilsfrom^11.0.1to^11.1.0(#5223)
- BREAKING: Base class of
DecryptMessageManagerandEncryptionPublicKeyManager(AbstractMessageManager) now expects new options to initialise (#5103) - Bump
@metamask/base-controllerfrom^7.0.0to^7.1.0(#5079)
- BREAKING: Removed internal event emitter (
hubproperty) fromAbstractMessageManager(#5103) - BREAKING:
unapprovedMessageandupdateBadgeremoved from internal events. These events are now emitted from messaging system (#5103)- Controllers should now listen to
DerivedManagerName:Xevent instead of using internal event emitter.
- Controllers should now listen to
- Bump
@metamask/base-controllerfrom^7.0.1to^7.0.2(#4862) - Bump
@metamask/controller-utilsfrom^11.3.0to^11.4.2(#4834, #4862, #4870) - Bump
@metamask/utilsfrom^9.1.0to^10.0.0(#4831) - Bump
@metamask/eth-sig-utilfrom^7.0.1to^8.0.0(#4830)
- Remove all code related to
@metamask/signature-controller(#4785)- Remove
TypedMessageManager. - Remove
PersonalMessageManager. - Remove utils:
validateSignMessageDatavalidateTypedSignMessageDataV1validateTypedSignMessageDataV3V4
- 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
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.
- Add protected methods
addRequestToMessageParams,createUnapprovedMessagetoAbstractMessageManager
- Add
requestIdproperty to themessageParamsobject to reference metric event fragments created from thecreateRPCMethodTrackingMiddlewarein the client (#4636)- Add optional property
requestIdtoAbstractMessageParamstype - Add optional property
idtoOriginalRequesttype
- Add optional property
- Bump
@metamask/controller-utilsfrom^11.1.0to^11.2.0(#4651)
- Bump
@metamask/base-controllerfrom^6.0.2to^7.0.0(#4625, #4643) - Bump
typescriptfrom~5.0.4to~5.2.2(#4576, #4584)
- Upgrade TypeScript version to
~5.0.4and setmoduleResolutionoption toNode16(#3645) - Bump
@metamask/base-controllerfrom^6.0.1to^6.0.2(#4544) - Bump
@metamask/controller-utilsfrom^11.0.1to^11.0.2(#4544) - Bump
@metamask/utilsfrom^9.0.0to^9.1.0(#4529)
- Bump
@metamask/utilsto^9.0.0,@metamask/rpc-errorsto^6.3.1(#4516)
- Add
EventEmittertype annotation to thehubclass field ofAbstractMessageManager(#4510)- This ensures that
hubis 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-controllerto^6.0.0(#4352) - Bump
@metamask/controller-utilsto^11.0.0(#4352)
- Bump
@metamask/controller-utilsto^10.0.0(#4342)
- BREAKING: Remove
Message,MessageParams,MessageParamsMetamask, andMessageManager(#4319)- Support for
eth_signis being removed, so these are no longer needed.
- Support for
- Bump TypeScript version to
~4.9.5(#4084) - Bump
@metamask/base-controllerto^5.0.2(#4232) - Bump
@metamask/controller-utilsto^9.1.0(#4153, #4065)
- 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.
- Bump
@metamask/controller-utilsto^9.0.0(#4039)
- 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/base-controllerto^4.0.1(#3695) - Bump
@metamask/controller-utilsto^8.0.1(#3695, #3678, #3667, #3580) - Bump
@metamask/eth-sig-utilto^7.0.1(#3614)
- Bump
@metamask/utilsto ^8.2.0 (#1957) - Bump
@metamask/base-controllerto ^4.0.0 (#2063)- This is not breaking because the message managers still inherit from BaseController v1.
- Bump
@metamask/controller-utilsto ^6.0.0 (#2063)
- 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
- Fix
prepMessageForSigningin all message managers to handle frozenmessageParams(#1733)
- Update TypeScript to v4.8.x (#1718)
- Bump dependency on
@metamask/controller-utilsto ^5.0.0
- Bump @metamask/eth-sig-util from 6.0.0 to 7.0.0 (#1669)
- Bump dependency on
@metamask/base-controllerto ^3.2.1 - Bump dependency on
@metamask/controller-utilsto ^4.3.2
- Add Blockaid validation response to messages (#1541)
- Update
@metamask/utilsto^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
waitForFinishStatustoAbstractMessageManagerwhich is waiting for the message to be proccesed and resolve. (#1377)
- BREAKING: Removed
addUnapprovedMessageAsyncmethods fromPersonalMessageManager,TypedMessageManagerandMessageManagerbecause it's not consumed bySignatureControlleranymore. (#1377)
- Add
getAllMessagesandsetMetadatamethods to message managers (#1364)- A new optional
metadataproperty has been added to the message type as well
- A new optional
- Add support for deferred signing (#1364)
deferSetAsSignedhas 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
setMessageStatusInProgressmethod to set a message status toinProgress(#1339)
- BREAKING: The
getCurrentChainIdconstructor parameter for each message manager now expects aHexreturn 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
TypedMessageManagerat the moment
- Note that while every message manager class accepts this as a constructor parameter, it's only used by the
- Add
@metamask/utilsdependency (#1370)
- BREAKING: Add chain validation to
eth_signTypedData_v4signature requests (#1331)
- BREAKING: Change type of
securityProviderResponsetoRecord(#1214) - BREAKING: Update to Node 16 (#1262)
- Ensure message updates get saved in state even when they aren't emitted right away (#1245)
- The
updateMessagemethod included in each message manager accepted anemitUpdateboolean 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
addMessageandaddUnapprovedMessageon 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-fetchor another polyfill themselves if they are running in an environment withoutfetch
- Consumers must now import
- Relax dependencies on
@metamask/base-controllerand@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/controllersv33.0.0, namely:- Everything in
src/message-manager - Message manager-related functions in
src/util.tsand accompanying tests
All changes listed after this point were applied to this package following the monorepo conversion.
- Everything in
-