Skip to content

feat(profile-metrics-controller): tag, canonicalize, and dedupe hardware, imported, and non-mnemonic snap accounts - #10107

Open
mathieuartu wants to merge 4 commits into
mainfrom
fix/pmc-null-bucket
Open

feat(profile-metrics-controller): tag, canonicalize, and dedupe hardware, imported, and non-mnemonic snap accounts#10107
mathieuartu wants to merge 4 commits into
mainfrom
fix/pmc-null-bucket

Conversation

@mathieuartu

@mathieuartu mathieuartu commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Explanation

References

Related to: https://consensyssoftware.atlassian.net/browse/MUL-2216

Checklist

  • I've updated the test suite for new or updated code as appropriate
  • I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate
  • I've communicated my changes to consumers by updating changelogs for packages I've changed
  • I've introduced breaking changes in this PR and have prepared draft pull requests for clients and consumer packages to resolve them

Note

Medium Risk
Changes persisted controller state and the auth API profile-accounts payload; behavior depends on the backend accepting account_source, and upgrade backfill re-submits known accounts.

Overview
Profile metrics submissions now carry account source metadata and canonical addresses for every queued account, not only when a proof of ownership is signed.

Each account gets an optional accountSource (mnemonic, hardware, imported, or snap) from entropy and keyring type; unknown keyrings stay untagged so the auth API is not sent invalid account_source values. ProfileMetricsService maps that field to account_source on PUT /profile/accounts.

Canonicalization moves to enqueue time, so hardware, imported, and non-mnemonic Snap accounts are stored and submitted in canonical form even without proofs. Proof signing now matches live accounts to queued entries by canonical address instead of re-canonicalizing during poll.

New persisted state reportedAccounts skips re-enqueuing addresses already submitted successfully, and accountSourceBackfillEnqueued drives a one-time re-sync on first unlock after upgrade (alongside existing proof backfill) so older records pick up source tags and canonical addresses. Poll also no-ops when the sync queue is empty.

Reviewed by Cursor Bugbot for commit 1a56bca. Bugbot is set up for automated code reviews on this repo. Configure here.

…re, imported, and non-mnemonic snap accounts
@mathieuartu mathieuartu self-assigned this Sep 4, 2026
@mathieuartu
mathieuartu requested review from a team as code owners September 4, 2026 09:29
@mathieuartu
mathieuartu deployed to default-branch September 4, 2026 09:30 — with GitHub Actions Active
@mathieuartu mathieuartu changed the title fix(profile-metrics-controller): tag, canonicalize, and dedupe hardware, imported, and non-mnemonic snap accounts feat(profile-metrics-controller): tag, canonicalize, and dedupe hardware, imported, and non-mnemonic snap accounts Sep 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant