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/transaction-controllerfrom^68.2.0to^69.0.0(#9337, #9349, #9421, #9456, #9470) - Bump
@metamask/accounts-controllerfrom^39.0.3to^39.0.5(#9349, #9470) - Bump
@metamask/polling-controllerfrom^16.0.7to^16.0.8(#9349) - Bump
@metamask/messengerfrom^1.2.0to^2.0.0(#9392) - Bump
@metamask/profile-sync-controllerfrom^28.2.0to^28.3.0(#9463)
- Bump
@metamask/accounts-controllerfrom^39.0.2to^39.0.3(#9231) - Bump
@metamask/transaction-controllerfrom^68.1.1to^68.2.0(#9253)
- Skip proof-of-ownership signing for accounts with no entropy source (#9286)
- They are still submitted to the metrics endpoint, just without a
prooffield.
- They are still submitted to the metrics endpoint, just without a
- BREAKING: Add chain-native proof-of-ownership signing for accounts, with profile-metric submissions now carrying a proof per account (#9016, #9190)
- New
ProofOfOwnershipService:sign({ account, nonce })action, dispatching toKeyringController:signPersonalMessagefor EVM accounts and to the account's snap (via thesignProofOfOwnershipJSON-RPC method) for Solana, Tron, and Bitcoin. ProfileMetricsController._executePollsigns a proof for each queued account and submits it alongside the canonicalized address (EIP-55 foreip155, lowercase bech32 / bech32m forbip122). Consumers must delegateProofOfOwnershipService:signonto the controller's messenger.- Adds a
profileMetricsServiceNamealias for the existingserviceNameexport to disambiguate it from the newproofOfOwnershipServiceName. - Re-enqueues all known accounts on the first unlock after upgrading so previously-synced records get a proof attached, gated by a new
proofBackfillEnqueuedstate flag (fresh installs flip the flag on their initial sync).
- New
- Bump
@metamask/utilsfrom^11.9.0to^11.11.0(#9074) - Bump
@metamask/controller-utilsfrom^12.1.1to^12.3.0(#9083, #9218) - Bump
@metamask/transaction-controllerfrom^67.0.0to^68.1.1(#9066, #9089, #9177, #9203, #9218) - Bump
@metamask/profile-sync-controllerfrom^28.1.1to^28.2.0(#9119) - Bump
@metamask/keyring-controllerfrom^27.0.0to^27.1.0(#9129) - Bump
@metamask/accounts-controllerfrom^39.0.1to^39.0.2(#9218) - Bump
@metamask/polling-controllerfrom^16.0.6to^16.0.7(#9218)
- Add proof of ownership API wiring pre-requisites (#8974)
- Add
ProfileMetricsService:fetchNoncesmessenger action wrappingPOST /api/v2/nonce/batch. - Add optional
prooffield on accounts submitted viaProfileMetricsService:submitMetricsso that the auth API can use it to mark accounts asverified: true.
- Add
- Bump
@metamask/transaction-controllerfrom^66.0.1to^67.0.0(#9021) - Bump
@metamask/accounts-controllerfrom^39.0.0to^39.0.1(#9058) - Bump
@metamask/controller-utilsfrom^12.1.0to^12.1.1(#9058) - Bump
@metamask/keyring-controllerfrom^26.0.0to^27.0.0(#9058)
- Bump
@metamask/accounts-controllerfrom^38.1.2to^39.0.0(#8999) - Bump
@metamask/transaction-controllerfrom^66.0.0to^66.0.1(#8999)
- Bump
@metamask/accounts-controllerfrom^38.1.0to^38.1.2(#8774, #8912) - Bump
@metamask/controller-utilsfrom^12.0.0to^12.1.0(#8774) - Bump
@metamask/profile-sync-controllerfrom^28.0.2to^28.1.1(#8783, #8912) - Bump
@metamask/transaction-controllerfrom^65.3.0to^66.0.0(#8796, #8848) - Bump
@metamask/polling-controllerfrom^16.0.5to^16.0.6(#8834) - Bump
@metamask/keyring-controllerfrom^25.5.0to^26.0.0(#8912)
- Bump
@metamask/accounts-controllerfrom^37.1.1to^38.1.0(#8363, #8665, #8755) - Bump
@metamask/keyring-controllerfrom^25.1.1to^25.5.0(#8363, #8634, #8665, #8722) - Bump
@metamask/messengerfrom^1.0.0to^1.2.0(#8364, #8373, #8632) - Bump
@metamask/transaction-controllerfrom^64.0.0to^65.3.0(#8432, #8447, #8482, #8585, #8613, #8691, #8722, #8755) - Bump
@metamask/base-controllerfrom^9.0.1to^9.1.0(#8457) - Bump
@metamask/controller-utilsfrom^11.20.0to^12.0.0(#8755) - Bump
@metamask/polling-controllerfrom^16.0.4to^16.0.5(#8755)
- Bump
@metamask/transaction-controllerfrom^63.3.1to^64.0.0(#8359) - Bump
@metamask/accounts-controllerfrom^37.1.0to^37.1.1(#8325) - Bump
@metamask/profile-sync-controllerfrom^28.0.1to^28.0.2(#8325) - Bump
@metamask/controller-utilsfrom^11.19.0to^11.20.0(#8344)
- Bump
@metamask/accounts-controllerfrom^37.0.0to^37.1.0(#8317) - Bump
@metamask/base-controllerfrom^9.0.0to^9.0.1(#8317) - Bump
@metamask/keyring-controllerfrom^25.1.0to^25.1.1(#8317) - Bump
@metamask/messengerfrom^0.3.0to^1.0.0(#8317) - Bump
@metamask/polling-controllerfrom^16.0.3to^16.0.4(#8317) - Bump
@metamask/profile-sync-controllerfrom^28.0.0to^28.0.1(#8317) - Bump
@metamask/transaction-controllerfrom^63.0.0to^63.3.1(#8272, #8301, #8313, #8317)
- Bump
@metamask/transaction-controllerfrom^62.22.0to^63.0.0(#8225)
- Reduce default initial delay duration from 10 minutes to 1 minute (#8216)
- Bump
@metamask/transaction-controllerfrom^62.21.0to^62.22.0(#8217)
- Strip cookies from
ProfileMetricsServicefetch requests preventing431 Request Header Fields Too Largeerrors caused by cookies being forwarded to the authentication API (#8209)
- Bump
@metamask/profile-sync-controllerfrom^27.1.0to^28.0.0(#8162)
- Move bearer token acquisition inside the retry loop in
ProfileMetricsService.submitMetricsso each retry attempt fetches a fresh token instead of reusing a potentially stale one (#8144)
- Bump
@metamask/accounts-controllerfrom^36.0.0to^37.0.0(#7996, #8140) - Bump
@metamask/polling-controllerfrom^16.0.2to^16.0.3(#7996) - Bump
@metamask/transaction-controllerfrom^62.17.0to^62.21.0(#7996, #8005, #8031, #8104, #8140) - Bump
@metamask/controller-utilsfrom^11.18.0to^11.19.0(#7995)
- Bump
@metamask/accounts-controllerfrom^35.0.2to^36.0.0(#7897) - Bump
@metamask/profile-sync-controllerfrom^27.0.0to^27.1.0(#7849) - Bump
@metamask/transaction-controllerfrom^62.9.2to^62.17.0(#7737, #7760, #7775, #7802, #7832, #7854, #7872, #7897) - Bump
@metamask/keyring-controllerfrom^25.0.0to^25.1.0(#7713)
ProfileMetricsControllercontructor now accepts an optionalinitialDelayDurationparameter (#7624)- The parameter can be used to override the default time-based delay for the first data collection after opt-in
- Add
skipInitialDelay()method toProfileMetricsController(#7624)- The method can be also called through the
ProfileMetricsController:skipInitialDelayaction via messenger
- The method can be also called through the
- BREAKING:
ProileMetricsControllerMessengernow requires theTransactionController:transactionSubmittedaction to be allowed (#7624) - Set time-based delay for first
ProfileMetricsControllerdata collection after opt-in (#7624) - Upgrade
@metamask/utilsfrom^11.8.1to^11.9.0(#7511) - Bump
@metamask/controller-utilsfrom^11.16.0to^11.18.0(#7534, #7583) - Bump
@metamask/accounts-controllerfrom^35.0.0to^35.0.2(#7604, #7642) - Bump
@metamask/polling-controllerfrom^16.0.0to^16.0.2(#7604, #7642)
- BREAKING:
ProfileMetricsControllernow requires theAccountsController:getStateaction to be allowed (#7471)- The controller messenger does not require
AccountsController:listAccountsaction anymore.
- The controller messenger does not require
- Collect EVM and non-EVM accounts during initial sync (#7471)
- Polling only starts on
KeyringController:unlockif the user has opted in (#7450)