From 278ad3fe872e9f14694a67af5199672388c0e92b Mon Sep 17 00:00:00 2001 From: Bernardo Garces Chapero Date: Wed, 9 Sep 2026 17:05:47 +0100 Subject: [PATCH 1/4] Initialize Release 1246.0.0 --- packages/accounts-controller/CHANGELOG.md | 4 + packages/address-book-controller/CHANGELOG.md | 16 +- packages/ai-controllers/CHANGELOG.md | 4 + packages/analytics-controller/CHANGELOG.md | 4 + packages/announcement-controller/CHANGELOG.md | 21 +- packages/app-metadata-controller/CHANGELOG.md | 14 + packages/approval-controller/CHANGELOG.md | 8 + .../docs/accounts-api-v6-migration-plan.md | 756 ++++++++++++++++++ .../docs/accounts-api-v6-simplification.md | 478 +++++++++++ .../authenticated-user-storage/CHANGELOG.md | 4 + packages/base-controller/CHANGELOG.md | 22 +- packages/base-data-service/CHANGELOG.md | 8 + packages/bitcoin-regtest-up/CHANGELOG.md | 7 + packages/build-utils/CHANGELOG.md | 28 +- .../chain-agnostic-permission/CHANGELOG.md | 10 + packages/chomp-api-service/CHANGELOG.md | 4 + packages/client-controller/CHANGELOG.md | 16 + packages/client-utils/CHANGELOG.md | 4 + packages/compliance-controller/CHANGELOG.md | 7 + packages/composable-controller/CHANGELOG.md | 31 +- .../config-registry-controller/CHANGELOG.md | 4 + packages/connectivity-controller/CHANGELOG.md | 8 + packages/controller-utils/CHANGELOG.md | 10 + packages/delegation-controller/CHANGELOG.md | 12 +- packages/eip-5792-middleware/CHANGELOG.md | 12 +- .../CHANGELOG.md | 7 + .../CHANGELOG.md | 8 + packages/eth-block-tracker/CHANGELOG.md | 18 + packages/eth-json-rpc-middleware/CHANGELOG.md | 4 + packages/eth-json-rpc-provider/CHANGELOG.md | 14 +- packages/foundryup/CHANGELOG.md | 21 + packages/gas-fee-controller/CHANGELOG.md | 4 + .../gator-permissions-controller/CHANGELOG.md | 4 + packages/geolocation-controller/CHANGELOG.md | 4 + packages/java-tron-up/CHANGELOG.md | 7 + packages/json-rpc-engine/CHANGELOG.md | 21 +- .../json-rpc-middleware-stream/CHANGELOG.md | 44 +- packages/keyring-controller/CHANGELOG.md | 4 + packages/local-node-utils/CHANGELOG.md | 8 + packages/logging-controller/CHANGELOG.md | 4 + packages/message-manager/CHANGELOG.md | 14 +- packages/messenger-cli/CHANGELOG.md | 9 + packages/messenger/CHANGELOG.md | 11 + .../CHANGELOG.md | 4 + .../CHANGELOG.md | 5 + .../money-account-controller/CHANGELOG.md | 5 + .../CHANGELOG.md | 4 + packages/money-account-utils/CHANGELOG.md | 4 + .../multichain-account-service/CHANGELOG.md | 4 + .../multichain-api-middleware/CHANGELOG.md | 4 + .../CHANGELOG.md | 4 + .../CHANGELOG.md | 4 + packages/name-controller/CHANGELOG.md | 18 +- .../CHANGELOG.md | 5 + packages/network-controller/CHANGELOG.md | 6 + .../CHANGELOG.md | 4 + packages/passkey-controller/CHANGELOG.md | 4 + packages/permission-controller/CHANGELOG.md | 8 + .../permission-log-controller/CHANGELOG.md | 24 +- packages/phishing-controller/CHANGELOG.md | 6 +- packages/polling-controller/CHANGELOG.md | 4 + packages/preferences-controller/CHANGELOG.md | 30 +- packages/rate-limit-controller/CHANGELOG.md | 22 +- packages/react-data-query/CHANGELOG.md | 5 + packages/sample-controllers/CHANGELOG.md | 4 + .../CHANGELOG.md | 4 + .../selected-network-controller/CHANGELOG.md | 4 + packages/sentinel-api-service/CHANGELOG.md | 4 + packages/signature-controller/CHANGELOG.md | 4 + packages/snap-account-service/CHANGELOG.md | 4 + .../solana-test-validator-up/CHANGELOG.md | 7 + packages/storage-service/CHANGELOG.md | 8 + .../user-operation-controller/CHANGELOG.md | 4 + 73 files changed, 1849 insertions(+), 66 deletions(-) create mode 100644 packages/assets-controller/docs/accounts-api-v6-migration-plan.md create mode 100644 packages/assets-controller/docs/accounts-api-v6-simplification.md diff --git a/packages/accounts-controller/CHANGELOG.md b/packages/accounts-controller/CHANGELOG.md index 67107bc2c9f..b250b13e1ae 100644 --- a/packages/accounts-controller/CHANGELOG.md +++ b/packages/accounts-controller/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) + ### Changed - Bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/address-book-controller/CHANGELOG.md b/packages/address-book-controller/CHANGELOG.md index b23254f19f4..e4b28e56532 100644 --- a/packages/address-book-controller/CHANGELOG.md +++ b/packages/address-book-controller/CHANGELOG.md @@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- refactor: add `.js` import extensions to Confirmations packages ([#9582](https://github.com/MetaMask/core/pull/9582)) +- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) +- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) +- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) + ### Changed - Bump `@metamask/utils` from `^11.9.0` to `^11.12.0` ([#9074](https://github.com/MetaMask/core/pull/9074), [#10076](https://github.com/MetaMask/core/pull/10076)) @@ -106,10 +114,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Bump `@metamask/base-controller` from `^7.0.2` to `^8.0.0` ([#5079](https://github.com/MetaMask/core/pull/5079)), ([#5135](https://github.com/MetaMask/core/pull/5135)), ([#5305](https://github.com/MetaMask/core/pull/5305)) -- Bump `@metamask/controller-utils` from `^11.4.4` to `^11.5.0` ([#5135](https://github.com/MetaMask/core/pull/5135)), ([#5272](https://github.com/MetaMask/core/pull/5272)) +- Bump `@metamask/base-controller` from `^7.0.2` to `^8.0.0` ([#5079](https://github.com/MetaMask/core/pull/5079), [#5135](https://github.com/MetaMask/core/pull/5135), [#5305](https://github.com/MetaMask/core/pull/5305)) +- Bump `@metamask/controller-utils` from `^11.4.4` to `^11.5.0` ([#5135](https://github.com/MetaMask/core/pull/5135), [#5272](https://github.com/MetaMask/core/pull/5272)) - Bump `@metamask/rpc-errors` from `^7.0.1` to `^7.0.2` ([#5080](https://github.com/MetaMask/core/pull/5080)) -- Bump `@metamask/utils` from `^10.0.0` to `^11.1.0` ([#5080](https://github.com/MetaMask/core/pull/5080)), ([#5223](https://github.com/MetaMask/core/pull/5223)) +- Bump `@metamask/utils` from `^10.0.0` to `^11.1.0` ([#5080](https://github.com/MetaMask/core/pull/5080), [#5223](https://github.com/MetaMask/core/pull/5223)) ## [6.0.2] @@ -131,7 +139,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ["Are the Types Wrong?"](https://arethetypeswrong.github.io/) tool as ["masquerading as CJS"](https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/FalseCJS.md). All of the ATTW checks now pass. -- Remove chunk files ([#4648](https://github.com/MetaMask/core/pull/4648)). +- Remove chunk files. ([#4648](https://github.com/MetaMask/core/pull/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 diff --git a/packages/ai-controllers/CHANGELOG.md b/packages/ai-controllers/CHANGELOG.md index ffaa06c3bef..e957e8c06ab 100644 --- a/packages/ai-controllers/CHANGELOG.md +++ b/packages/ai-controllers/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) + ### Changed - Bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/analytics-controller/CHANGELOG.md b/packages/analytics-controller/CHANGELOG.md index 76c192f1cc4..0972a9c4181 100644 --- a/packages/analytics-controller/CHANGELOG.md +++ b/packages/analytics-controller/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) + ## [2.1.0] ### Added diff --git a/packages/announcement-controller/CHANGELOG.md b/packages/announcement-controller/CHANGELOG.md index f81878d8ce7..90ea9c99251 100644 --- a/packages/announcement-controller/CHANGELOG.md +++ b/packages/announcement-controller/CHANGELOG.md @@ -7,6 +7,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- chore: Enable lint:tsc for 11 additional clean packages ([#9664](https://github.com/MetaMask/core/pull/9664)) +- refactor: add `.js` import extensions to UX Teams packages ([#9621](https://github.com/MetaMask/core/pull/9621)) +- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) +- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) +- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) +- chore: Enable Oxfmt for generating method action types files ([#8498](https://github.com/MetaMask/core/pull/8498)) +- chore: Format changelogs with Oxfmt ([#8442](https://github.com/MetaMask/core/pull/8442)) +- Revert "Release 912.0.0 (#8451)" ([#8451](https://github.com/MetaMask/core/pull/8451)) +- Release 912.0.0 ([#8451](https://github.com/MetaMask/core/pull/8451)) +- chore: bump `@metamask/auto-changelog` to `^6.0.0` ([#8441](https://github.com/MetaMask/core/pull/8441)) +- chore: Replace Prettier with Oxfmt ([#8434](https://github.com/MetaMask/core/pull/8434)) +- feat: extract generate-action-types CLI into @metamask/messenger-cli ([#8378](https://github.com/MetaMask/core/pull/8378)) +- feat(messenger): add `generate-action-types` CLI tool as subpath export ([#8264](https://github.com/MetaMask/core/pull/8264)) + ### Changed - Bump `@metamask/messenger` from `^1.0.0` to `^2.0.0` ([#8364](https://github.com/MetaMask/core/pull/8364), [#8373](https://github.com/MetaMask/core/pull/8373), [#8632](https://github.com/MetaMask/core/pull/8632), [#9392](https://github.com/MetaMask/core/pull/9392)) @@ -56,7 +73,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Bump `@metamask/base-controller` from `^7.0.2` to `^8.0.0` ([#5079](https://github.com/MetaMask/core/pull/5079)), ([#5135](https://github.com/MetaMask/core/pull/5135)), ([#5305](https://github.com/MetaMask/core/pull/5305)) +- Bump `@metamask/base-controller` from `^7.0.2` to `^8.0.0` ([#5079](https://github.com/MetaMask/core/pull/5079), [#5135](https://github.com/MetaMask/core/pull/5135), [#5305](https://github.com/MetaMask/core/pull/5305)) ## [7.0.2] @@ -80,7 +97,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ["Are the Types Wrong?"](https://arethetypeswrong.github.io/) tool as ["masquerading as CJS"](https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/FalseCJS.md). All of the ATTW checks now pass. -- Remove chunk files ([#4648](https://github.com/MetaMask/core/pull/4648)). +- Remove chunk files. ([#4648](https://github.com/MetaMask/core/pull/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 diff --git a/packages/app-metadata-controller/CHANGELOG.md b/packages/app-metadata-controller/CHANGELOG.md index f5790c9ced5..56d1290dd9e 100644 --- a/packages/app-metadata-controller/CHANGELOG.md +++ b/packages/app-metadata-controller/CHANGELOG.md @@ -7,6 +7,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- chore: Enable lint:tsc for 11 additional clean packages ([#9664](https://github.com/MetaMask/core/pull/9664)) +- refactor: add `.js` import extensions to Mobile Platform packages ([#9618](https://github.com/MetaMask/core/pull/9618)) +- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) +- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) +- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) +- chore: Format changelogs with Oxfmt ([#8442](https://github.com/MetaMask/core/pull/8442)) +- Revert "Release 912.0.0 (#8451)" ([#8451](https://github.com/MetaMask/core/pull/8451)) +- Release 912.0.0 ([#8451](https://github.com/MetaMask/core/pull/8451)) +- chore: bump `@metamask/auto-changelog` to `^6.0.0` ([#8441](https://github.com/MetaMask/core/pull/8441)) +- chore: Replace Prettier with Oxfmt ([#8434](https://github.com/MetaMask/core/pull/8434)) + ### Changed - Bump `@metamask/messenger` from `^1.0.0` to `^2.0.0` ([#8364](https://github.com/MetaMask/core/pull/8364), [#8373](https://github.com/MetaMask/core/pull/8373), [#8632](https://github.com/MetaMask/core/pull/8632), [#9392](https://github.com/MetaMask/core/pull/9392)) diff --git a/packages/approval-controller/CHANGELOG.md b/packages/approval-controller/CHANGELOG.md index 1d75a959c9f..c4509d578a5 100644 --- a/packages/approval-controller/CHANGELOG.md +++ b/packages/approval-controller/CHANGELOG.md @@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- refactor: add `.js` import extensions to Confirmations packages ([#9582](https://github.com/MetaMask/core/pull/9582)) +- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) +- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) +- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) + ### Changed - Bump `@metamask/utils` from `^11.9.0` to `^11.12.0` ([#9074](https://github.com/MetaMask/core/pull/9074), [#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/assets-controller/docs/accounts-api-v6-migration-plan.md b/packages/assets-controller/docs/accounts-api-v6-migration-plan.md new file mode 100644 index 00000000000..b4197f235f1 --- /dev/null +++ b/packages/assets-controller/docs/accounts-api-v6-migration-plan.md @@ -0,0 +1,756 @@ +# Accounts API v6 — Migration & Implementation Plan + +This document is the actionable follow-up to +[accounts-api-v6-simplification.md](./accounts-api-v6-simplification.md). It +describes **how** to migrate `AssetsController` to Accounts API v6 while keeping +all new logic behind feature flags and preserving the existing v5 path until +rollout is complete. + +**Audience:** engineers implementing the migration in `@metamask/assets-controller` +and wiring flags in extension / mobile. + +--- + +## Table of contents + +- [Goals & non-goals](#goals--non-goals) +- [Prerequisites](#prerequisites) +- [Architecture summary](#architecture-summary) +- [Feature flags](#feature-flags) +- [New modules & file layout](#new-modules--file-layout) +- [Routing boundary](#routing-boundary) +- [Phased migration](#phased-migration) +- [Phase 0 — Foundations](#phase-0--foundations) +- [Phase 1 — Balance fetch path](#phase-1--balance-fetch-path) +- [Phase 2 — WebSocket delta path](#phase-2--websocket-delta-path) +- [Phase 3 — Subscriptions](#phase-3--subscriptions) +- [Phase 4 — Cleanup](#phase-4--cleanup) +- [Fallback & enrichment details](#fallback--enrichment-details) +- [Testing strategy](#testing-strategy) +- [Rollout & rollback](#rollout--rollback) +- [PR sequence](#pr-sequence) +- [Acceptance criteria](#acceptance-criteria) +- [Checklist](#checklist) + +--- + +## Goals & non-goals + +### Goals + +1. **Collapse the v6 hot path** — one `/v6/multiaccount/balances` call replaces + the v5 balance fetch + `DetectionMiddleware` + `TokenDataSource` + + `PriceDataSource` onion for v6-supported chains. +2. **Zero public API breakage** — `AssetsController` state shape, messenger + actions, and events stay unchanged. +3. **Feature-flagged rollout** — every new code path is gated; v5 remains the + default until flags are enabled remotely. +4. **Safe rollback** — flag off (or v6 error) falls back to the legacy pipeline + without a client release. +5. **Incremental delivery** — ship in small PRs, each independently testable. + +### Non-goals (for initial phases) + +- Removing legacy middleware / data sources (Phase 4 only). +- Changing extension / mobile UI. +- Migrating other controllers (`TokenBalancesController`, etc.) — out of scope + unless explicitly required. + +--- + +## Prerequisites + +Resolve these **before Phase 4 cleanup**. They can be deferred during Phases +0–3 via sub-flags. + +| # | Topic | Decision needed | Default during rollout | +|---|-------|-----------------|------------------------| +| 1 | **Images & rich market metadata** | Does the UI require `iconUrl`, `aggregators`, `occurrences`, `honeypotStatus`, etc. from v6 alone? v6 returns `name`/`symbol`/`decimals`/`labels` but no image. | `lazySecondaryEnrichment: false` — enable when Token API lazy fetch is ready | +| 2 | **Dual currency (`usdPrice`)** | v6 accepts one `vsCurrency`. Preserve `usdPrice` via second v6 call or scoped Price API fetch? | `dualCurrencyUsd: false` initially; use selected currency only from v6 | +| 3 | **Chain coverage map** | Source of truth for which chains Tokens API / Price API / v6 each cover | Hardcode initial map in `api-chain-coverage.ts`; migrate to backend config later | +| 4 | **Remote flag name** | Confirm with platform team | `accountsApiV6` under `remoteFeatureFlags` | +| 5 | **DeFi indexing latency** | `processingDefiPositions` may require re-poll | Handle in `AccountsApiV6DataSource`; short retry when flag is true | + +--- + +## Architecture summary + +When the master flag is **on** and `isBasicFunctionality()` is **true**: + +``` +getAssets(forceUpdate) + └─ #fetchAssetsV6() + ├─ AccountsApiV6DataSource.fetch() + ├─ mapV6ResponseToState() + ├─ #updateState() + ├─ fallback for unprocessedNetworks → RpcDataSource / SnapDataSource + ├─ FallbackEnrichment.enrich() (Token/Price APIs, fallback assets only) + └─ optional lazy enrichment (images, usdPrice) + +When flag is off OR isBasicFunctionality() is false: + └─ #fetchAssetsLegacy() ← today's fast/slow pipeline, unchanged +``` + +See [accounts-api-v6-simplification.md](./accounts-api-v6-simplification.md) +for the full before/after diagrams. + +--- + +## Feature flags + +### Flag source + +Use `RemoteFeatureFlagController` (same pattern as +`SmartTransactionsController`). Inject a getter into `AssetsController` for +tests: + +```typescript +// packages/assets-controller/src/feature-flags/accounts-api-v6.ts + +export type AccountsApiV6FeatureFlags = { + /** Master kill switch. When false, entire v6 path is disabled. */ + enabled: boolean; + /** Use v6 in getAssets({ forceUpdate: true }). */ + balanceFetch: boolean; + /** WS / AccountActivity deltas trigger targeted v6 re-fetch. */ + websocketDelta: boolean; + /** Pass includeDeFiBalances to v6 (replaces StakedBalanceDataSource). */ + includeDeFiBalances: boolean; + /** Lazy Token/Price fetch for images & rich metadata on v6 assets. */ + lazySecondaryEnrichment: boolean; + /** Fetch usdPrice via second v6 call or Price API. */ + dualCurrencyUsd: boolean; + /** Optional per-chain canary (CAIP-2). Empty/undefined = all chains. */ + allowedChainIds?: string[]; +}; + +export const DEFAULT_ACCOUNTS_API_V6_FLAGS: AccountsApiV6FeatureFlags = { + enabled: false, + balanceFetch: false, + websocketDelta: false, + includeDeFiBalances: false, + lazySecondaryEnrichment: false, + dualCurrencyUsd: false, +}; + +export function getAccountsApiV6FeatureFlags( + messenger: RestrictedMessenger<..., RemoteFeatureFlagControllerGetStateAction, ...>, +): AccountsApiV6FeatureFlags; +``` + +### `AssetsControllerOptions` addition + +```typescript +/** Defaults to reading RemoteFeatureFlagController when omitted. */ +getAccountsApiV6FeatureFlags?: () => AccountsApiV6FeatureFlags; + +/** Called when v6 flags change; controller refreshes subscriptions. */ +subscribeToAccountsApiV6FlagChange?: ( + onChange: (flags: AccountsApiV6FeatureFlags) => void, +) => void | (() => void); +``` + +### Flag gating rules + +All of the following must be true for a given surface: + +| Surface | Conditions | +|---------|------------| +| Any v6 path | `isBasicFunctionality() === true` | +| `getAssets` v6 | `flags.enabled && flags.balanceFetch` | +| WS delta v6 | `flags.enabled && flags.websocketDelta` | +| DeFi in v6 | above + `flags.includeDeFiBalances` | +| Lazy enrichment | above + `flags.lazySecondaryEnrichment` | +| USD price | above + `flags.dualCurrencyUsd` | +| Per-chain canary | chain ∈ `flags.allowedChainIds` (if set) | + +### Extension / mobile wiring (outside this package) + +1. Define `accountsApiV6` in remote config (LaunchDarkly / equivalent). +2. Subscribe `AssetsController` to `RemoteFeatureFlagController:stateChange`. +3. No local `PreferencesController` flag needed unless you want a dev override. + +--- + +## New modules & file layout + +``` +packages/assets-controller/src/ +├── data-sources/ +│ └── AccountsApiV6DataSource.ts # NEW — v6 HTTP + poll subscription +│ └── AccountsApiV6DataSource.test.ts +├── mappers/ +│ └── mapV6ResponseToState.ts # NEW — pure V6BalancesResponse → DataResponse +│ └── mapV6ResponseToState.test.ts +├── enrichment/ +│ └── FallbackEnrichment.ts # NEW — scoped Token/Price enrich() +│ └── FallbackEnrichment.test.ts +├── utils/ +│ └── api-chain-coverage.ts # NEW — Tokens/Price API chain gates +│ └── api-chain-coverage.test.ts +├── fetch/ +│ └── fetchAssetsV6.ts # NEW — linear v6 fetch orchestration +│ └── fetchAssetsV6.test.ts +├── feature-flags/ +│ └── accounts-api-v6.ts # NEW — flag types + messenger reader +│ └── accounts-api-v6.test.ts +└── AssetsController.ts # MODIFY — routing only (thin changes) +``` + +Export new public types from `src/index.ts` only if extension/mobile need them +(flag helpers are usually internal). + +--- + +## Routing boundary + +**Rule:** `AssetsController` is the only place that branches v5 vs v6. No +`if (v6)` inside existing middleware. + +### Methods to branch + +| Method | Branch | +|--------|--------| +| `getAssets` (`forceUpdate: true`) | `#fetchAssetsV6` vs legacy fast/slow | +| `handleAssetsUpdate` | v6 delta re-fetch vs legacy enrichment chain | +| `#subscribeAssetsBalance` | subscribe `AccountsApiV6DataSource` instead of v5 (+ adjust source list) | +| `subscribeAssetsPrice` | shrink scope to fallback-only assets when v6 on | +| `#subscribeStakedBalance` | skip when `includeDeFiBalances` flag on | +| `handleBasicFunctionalityChange` | already refreshes subscriptions — extend for v6 flags | + +### Pseudocode — `getAssets` + +```typescript +async getAssets(accounts, options) { + // ... existing early returns ... + + if (options?.forceUpdate) { + const v6Flags = this.#getAccountsApiV6FeatureFlags(); + if ( + this.#isBasicFunctionality() && + v6Flags.enabled && + v6Flags.balanceFetch && + this.#chainsAllowedForV6(options.chainIds ?? [...this.#enabledChains], v6Flags) + ) { + try { + await this.#fetchAssetsV6(accounts, options); + return this.#getAssetsFromState(accounts, chainIds, assetTypes); + } catch (error) { + this.#captureException?.(error); + log('v6 fetch failed, falling back to legacy pipeline', { error }); + // fall through to legacy + } + } + + // LEGACY — unchanged + return this.#fetchAssetsLegacy(accounts, options); + } + + // ... existing non-forceUpdate path ... +} +``` + +Extract today's `forceUpdate` block (lines ~1654–1725 in `AssetsController.ts`) +into `#fetchAssetsLegacy` as part of Phase 1. + +--- + +## Phased migration + +```mermaid +gantt + title Accounts API v6 migration phases + dateFormat YYYY-MM-DD + section Build + Phase 0 Foundations :p0, 2026-01-01, 5d + Phase 1 Balance fetch :p1, after p0, 7d + section Rollout + Phase 2 WebSocket delta :p2, after p1, 5d + Phase 3 Subscriptions :p3, after p2, 5d + section Finish + Phase 4 Cleanup :p4, after p3, 5d +``` + +| Phase | Delivers | Flag(s) enabled | Legacy code touched | +|-------|----------|-----------------|---------------------| +| 0 | Mapper, data source, flags (no controller wiring) | none | none | +| 1 | `getAssets` v6 path + fallback | `enabled`, `balanceFetch` | extract `#fetchAssetsLegacy` | +| 2 | WS / AccountActivity delta | `websocketDelta` | `handleAssetsUpdate` branch | +| 3 | v6 poll subscription; shrink price poll | same master flags | `#subscribeAssetsBalance`, `subscribeAssetsPrice` | +| 4 | Delete v5 hot-path code | 100% rollout | remove legacy pipeline | + +--- + +## Phase 0 — Foundations + +**Goal:** build and test new modules in isolation. No runtime behavior change. + +### Tasks + +- [ ] **0.1** Create `feature-flags/accounts-api-v6.ts` + - Types, defaults, `getAccountsApiV6FeatureFlags(messenger)` helper. + - Unit tests with mock messenger. + +- [ ] **0.2** Create `utils/api-chain-coverage.ts` + - `tokensApiCoversChain(chainId): boolean` + - `priceApiCoversChain(chainId): boolean` + - `v6SupportsChain(chainId): boolean` (can mirror Accounts API supported + networks initially). + - Tests per chain. + +- [ ] **0.3** Create `mappers/mapV6ResponseToState.ts` + - Input: `V6BalancesResponse`, `DataRequest`, `selectedCurrency`. + - Output: `DataResponse` (`assetsInfo`, `assetsBalance`, `assetsPrice`). + - Map `category: 'token'` and `category: 'defi'` rows. + - Map `canonicalHead` into custom-asset graduation hints (or a dedicated + field consumed by controller). + - Map `unprocessedNetworks` → list of `ChainId` for fallback handoff. + - Map `unprocessedIncludeAssetIds` for RPC custom-asset supplement. + - Fixture-based tests using shapes from + `packages/core-backend/src/api/accounts/client.test.ts`. + +- [ ] **0.4** Create `data-sources/AccountsApiV6DataSource.ts` + - Extend `AbstractDataSource` (mirror `AccountsApiDataSource` structure). + - Use `queryApiClient.accounts.fetchV6MultiAccountBalances` / + `getV6MultiAccountBalancesQueryOptions`. + - Default query options for full fetch: + ```typescript + { + filterSupportedTokens: true, + includeLabels: true, + includeCanonicalHead: true, + includePrices: true, + vsCurrency: selectedCurrency, + includeAssetIds: customAssets, // from request + includeDeFiBalances: flags.includeDeFiBalances, + } + ``` + - `assetsMiddleware` is **not** needed on the v6 path — expose `fetch(request)` + and `subscribe()` directly. + - Handle `processingDefiPositions`: schedule a short re-fetch (e.g. 2s) when + any account has `processingDefiPositions: true`. + - Unit tests: happy path, timeout → mark chains errored, empty accounts. + +- [ ] **0.5** Create `enrichment/FallbackEnrichment.ts` + - Constructor takes `TokenDataSource`, `PriceDataSource`, + `api-chain-coverage`. + - `async enrich({ assetIds, request, state }): Promise` + - Filters asset IDs by API coverage; skips assets that already have complete + metadata/price in state. + - Does **not** use middleware / `reduceRight`. + - Unit tests. + +- [ ] **0.6** Create `fetch/fetchAssetsV6.ts` + - Pure orchestration function called by controller: + ```typescript + export async function fetchAssetsV6(deps: { + v6DataSource: AccountsApiV6DataSource; + rpcDataSource: RpcDataSource; + snapDataSource: SnapDataSource; + fallbackEnrichment: FallbackEnrichment; + lazyEnrichment?: FallbackEnrichment; // Token/Price for v6 gaps + flags: AccountsApiV6FeatureFlags; + request: DataRequest; + selectedCurrency: SupportedCurrency; + executeMiddlewares: ...; // for RPC/Snap only + updateState: ...; + }): Promise; + ``` + - Steps (from simplification doc §2.3): + 1. v6 fetch + map → `#updateState(merge)`. + 2. Build fallback `chainIds` from `unprocessedNetworks`. + 3. If fallback chains: RPC / Snap (parallel) → `#updateState(merge)`. + 4. `FallbackEnrichment.enrich(fallbackAssetIds)`. + 5. If `dualCurrencyUsd`: second price pass. + 6. If `lazySecondaryEnrichment`: enrich v6 assets missing images. + - Integration-style tests with mocked deps. + +### Phase 0 exit criteria + +- All new modules have ≥90% coverage. +- `yarn workspace @metamask/assets-controller run test` passes. +- No change to `AssetsController` runtime behavior. + +--- + +## Phase 1 — Balance fetch path + +**Goal:** `getAssets({ forceUpdate: true })` uses v6 when flagged. + +### Tasks + +- [ ] **1.1** Add `getAccountsApiV6FeatureFlags` to `AssetsControllerOptions`. + - Wire default implementation reading `RemoteFeatureFlagController:getState`. + - Add messenger action type to `AssetsControllerMessenger` allowed actions. + +- [ ] **1.2** Instantiate `AccountsApiV6DataSource` in constructor (always + created; only *used* when flagged). + +- [ ] **1.3** Extract `#fetchAssetsLegacy` from current `getAssets` forceUpdate + block. **No logic changes** — move only. + +- [ ] **1.4** Add `#fetchAssetsV6` delegating to `fetchAssetsV6()`. + +- [ ] **1.5** Add routing in `getAssets` with try/catch fallback to legacy. + +- [ ] **1.6** Add `#chainsAllowedForV6(chainIds, flags)` helper. + +- [ ] **1.7** Emit trace span `assets.v6.full_fetch` (mirror `TRACE_FULL_FETCH` + fields + `v6: true`). + +- [ ] **1.8** Controller tests: + - Flag off → legacy middleware order unchanged (existing tests still pass). + - Flag on → v6 data source called; `DetectionMiddleware` **not** on hot path. + - v6 throws → legacy pipeline runs. + - `isBasicFunctionality() false` → RPC only, v6 skipped. + +- [ ] **1.9** Changelog entry under `@metamask/assets-controller` Unreleased → + Added. + +### Phase 1 rollout + +1. Merge with all flags defaulting to `false`. +2. Enable `accountsApiV6.enabled` + `balanceFetch` for internal QA (1% cohort). +3. Monitor: fetch duration, error rate, balance parity vs v5 (manual or shadow). +4. Expand `allowedChainIds` chain-by-chain if needed. + +--- + +## Phase 2 — WebSocket delta path + +**Goal:** real-time balance updates on v6-supported chains use targeted v6 +re-fetch instead of Detection → Token → Price. + +### Tasks + +- [ ] **2.1** Branch `handleAssetsUpdate`: + ```typescript + if (v6Flags.enabled && v6Flags.websocketDelta && isV6SupportedSource(sourceId)) { + const newAssetIds = extractNewAssetIdsFromDelta(response, state); + if (newAssetIds.length > 0) { + await this.#fetchAssetsV6(accounts, { + forceUpdate: true, + chainIds: chainsFromDelta, + // pass includeAssetIds via customAssets + }); + return; + } + // balance-only delta with no new assets: map delta directly, skip enrichment + await this.#updateState({ ...mappedDelta }); + return; + } + // legacy enrichment chain — unchanged + ``` + +- [ ] **2.2** For v6-unsupported chains in the same delta: commit balance + immediately, then `FallbackEnrichment.enrich()`. + +- [ ] **2.3** Tests: + - WS delta on Ethereum with new token → v6 called with `includeAssetIds`. + - WS delta on unsupported chain → fallback enrichment only. + - Flag off → existing `handleAssetsUpdate` tests pass unchanged. + +### Phase 2 rollout + +Enable `websocketDelta` after `balanceFetch` is stable in QA. + +--- + +## Phase 3 — Subscriptions + +**Goal:** replace v5 balance polling with v6 polling; shrink price subscription. + +### Tasks + +- [ ] **3.1** Update `#subscribeAssetsBalance`: + - When v6 flagged: subscribe `AccountsApiV6DataSource` **instead of** + `AccountsApiDataSource`. + - Do **not** subscribe both — avoids duplicate polls. + - Keep `BackendWebsocketDataSource`, `RpcDataSource` (supplement/custom), + `SnapDataSource` as today for fallback chains. + +- [ ] **3.2** Update `subscribeAssetsPrice`: + - When v6 flagged: only subscribe for asset IDs **not** covered by the last v6 + response (fallback-chain assets + any asset missing price). + - Consider passing `assetIds` filter into `PriceDataSource.subscribe`. + +- [ ] **3.3** Update `#subscribeStakedBalance`: + - Skip when `flags.includeDeFiBalances` is true (DeFi comes from v6). + +- [ ] **3.4** Subscribe to v6 flag changes: + - On `RemoteFeatureFlagController:stateChange`, call internal refresh (same as + `handleBasicFunctionalityChange`) to swap subscriptions. + +- [ ] **3.5** Tests for subscription swapping when flag toggles. + +### Phase 3 rollout + +Enable balance polling on v6 in staging; verify no duplicate v5 + v6 requests +in network tab. + +--- + +## Phase 4 — Cleanup + +**Goal:** remove legacy hot-path code after 100% rollout and bake time. + +> **Do not start Phase 4 until:** flags at 100% for ≥2 weeks, caveats resolved, +> no P0 balance/price regressions. + +### Delete or simplify + +| Component | Action | +|-----------|--------| +| `AccountsApiDataSource` | Remove (or keep thin wrapper if other packages import it) | +| Fast/slow split in `#fetchAssetsLegacy` | Remove entire method | +| `DetectionMiddleware` | Remove from controller; keep file if used elsewhere | +| `RpcFallbackMiddleware` | Remove — replaced by `unprocessedNetworks` handoff | +| `ParallelMiddleware` usage in balance fetch | Remove | +| `StakedBalanceDataSource` | Remove when `includeDeFiBalances` is always on | +| `CustomAssetGraduationMiddleware` | Simplify — v6 `includeCanonicalHead` handles dedupe | +| `#fetchAssetsLegacy` | Delete | +| v6 feature flags | Remove sub-flags; v6 becomes unconditional when `isBasicFunctionality()` | + +### Final tasks + +- [ ] Remove flag routing branches (v6 is the only path). +- [ ] Update README / architecture docs. +- [ ] Changelog: Changed (note internal simplification, no public API change). +- [ ] Delete `accounts-api-v6-simplification.md` migration notes or mark as + historical. + +--- + +## Fallback & enrichment details + +### v6 primary fetch + +``` +POST /v6/multiaccount/balances + accountIds: CAIP-10[] + networks: CAIP-2[] + filterSupportedTokens: true + includeLabels: true + includeCanonicalHead: true + includePrices: true + vsCurrency: + includeAssetIds: + includeDeFiBalances: +``` + +### Fallback trigger + +| Signal | Action | +|--------|--------| +| `unprocessedNetworks` | RPC (EVM) or Snap (non-EVM) for those chains | +| `unprocessedIncludeAssetIds` | RPC custom-asset supplement (existing `#subscribeRpcCustomAssetsSupplement` pattern) | +| v6 request throws / times out | Entire request falls back to `#fetchAssetsLegacy` | +| Chain ∉ `allowedChainIds` (canary) | Route that chain through legacy or fallback only | + +### Tiered enrichment (fallback assets only) + +``` +fallbackAssetIds = assets from RPC/Snap response +tokensApiIds = fallbackAssetIds.filter(tokensApiCoversChain) +priceApiIds = fallbackAssetIds.filter(priceApiCoversChain) + +if (tokensApiIds.length) await fallbackEnrichment.enrichTokens(tokensApiIds) +if (priceApiIds.length) await fallbackEnrichment.enrichPrices(priceApiIds) +``` + +### Lazy secondary enrichment (v6 assets) + +When `lazySecondaryEnrichment` is true, after the v6 hot path commits: + +``` +assetsMissingImages = v6AssetIds.filter(id => !state.assetsInfo[id]?.image) +if (assetsMissingImages.length) await lazyEnrichment.enrichTokens(assetsMissingImages) +``` + +Run async (do not block `getAssets` return) unless the UI explicitly needs +images before render. + +--- + +## Testing strategy + +### Unit tests (every phase) + +| Module | Focus | +|--------|-------| +| `mapV6ResponseToState` | token rows, defi rows, empty accounts, unprocessed fields | +| `AccountsApiV6DataSource` | query option building, timeout, `processingDefiPositions` retry | +| `FallbackEnrichment` | coverage gating, skip complete assets | +| `fetchAssetsV6` | orchestration order, fallback handoff | +| `accounts-api-v6` flags | defaults, parsing remote flag shape | + +### Controller integration tests + +| Scenario | Flag | Expect | +|----------|------|--------| +| Full fetch | off | Legacy middleware order | +| Full fetch | on | v6 called once; no Detection on hot path | +| v6 failure | on | Legacy runs | +| Basic functionality off | on | RPC only; v6 skipped | +| WS new asset | `websocketDelta` on | v6 with `includeAssetIds` | +| Subscription start | on | v5 unsubscribed, v6 subscribed | + +### Parity / shadow testing (staging) + +Optional dev-only shadow mode (not required for merge): + +```typescript +if (flags.enabled && flags.shadowCompare) { + const [v6Result, legacyResult] = await Promise.allSettled([...]); + reportParityDiff(v6Result, legacyResult); // metrics only, don't commit v6 +} +``` + +### Manual QA checklist + +- [ ] Portfolio loads with correct balances (native + ERC-20 + Solana). +- [ ] Custom token import confirmed via `includeAssetIds`. +- [ ] DeFi / staking positions appear when `includeDeFiBalances` on. +- [ ] Prices match selected currency. +- [ ] `usdPrice` present when `dualCurrencyUsd` on. +- [ ] Toggle basic functionality off → RPC only. +- [ ] Toggle v6 flag off mid-session → subscriptions revert, balances still load. +- [ ] Chain not in v6 → fallback RPC/Snap still works. + +--- + +## Rollout & rollback + +### Rollout order + +1. `enabled: false` — merge all code (Phases 0–3). +2. `enabled: true, balanceFetch: true` — internal / 1%. +3. Add chains to `allowedChainIds` or remove allowlist. +4. `websocketDelta: true`. +5. `includeDeFiBalances: true`. +6. `lazySecondaryEnrichment` / `dualCurrencyUsd` as needed. +7. Phase 4 cleanup. + +### Rollback + +| Level | Action | +|-------|--------| +| Instant | Set `accountsApiV6.enabled: false` in remote config | +| Per-surface | Disable `balanceFetch` or `websocketDelta` individually | +| Per-chain | Add chain to legacy-only list or remove from `allowedChainIds` | +| Code rollback | Not needed if flags work — legacy path remains until Phase 4 | + +### Metrics to watch + +- `assets.v6.full_fetch` duration vs `assets.full_fetch` +- v6 error rate / fallback-to-legacy count +- `unprocessedNetworks` rate per chain +- Price missing rate (`assetsPrice` entries without matching balance) + +--- + +## PR sequence + +Keep PRs small and independently mergeable. + +| PR | Phase | Description | +|----|-------|-------------| +| 1 | 0 | Feature flag types + messenger reader | +| 2 | 0 | `api-chain-coverage` utility | +| 3 | 0 | `mapV6ResponseToState` + fixtures | +| 4 | 0 | `AccountsApiV6DataSource` | +| 5 | 0 | `FallbackEnrichment` | +| 6 | 0 | `fetchAssetsV6` orchestrator | +| 7 | 1 | Wire v6 into `getAssets` + `#fetchAssetsLegacy` extraction | +| 8 | 2 | `handleAssetsUpdate` v6 branch | +| 9 | 3 | Subscription changes + flag change listener | +| 10 | 3 | `includeDeFiBalances` + staked subscription removal | +| 11 | — | Extension/mobile remote flag config (separate repo PRs) | +| 12 | 4 | Delete legacy hot path (after rollout) | + +Each PR should include tests and a changelog entry when behavior is user-visible +(Phase 1+). + +--- + +## Acceptance criteria + +### Phase 1 + +- [ ] With flags off, all existing `AssetsController` tests pass unchanged. +- [ ] With flags on, `getAssets({ forceUpdate: true })` calls v6 once per fetch. +- [ ] v6 failure transparently falls back to legacy. +- [ ] State shape identical to legacy path for supported chains. + +### Phase 2 + +- [ ] WS delta for new asset triggers v6 `includeAssetIds` fetch. +- [ ] Unsupported-chain deltas use fallback enrichment only. + +### Phase 3 + +- [ ] Only one balance poll source active (v5 **xor** v6). +- [ ] Price subscription scope reduced under v6. +- [ ] Flag toggle refreshes subscriptions without duplicate polls. + +### Phase 4 + +- [ ] Legacy pipeline code deleted. +- [ ] Bundle size / complexity reduced (fewer middleware classes in hot path). +- [ ] No open P0/P1 balance or price bugs for 2 weeks at 100%. + +--- + +## Checklist + +Copy this into your PR / project tracker. + +``` +Phase 0 +[ ] accounts-api-v6.ts flags +[ ] api-chain-coverage.ts +[ ] mapV6ResponseToState.ts +[ ] AccountsApiV6DataSource.ts +[ ] FallbackEnrichment.ts +[ ] fetchAssetsV6.ts + +Phase 1 +[ ] AssetsControllerOptions + messenger types +[ ] #fetchAssetsLegacy extraction +[ ] #fetchAssetsV6 wiring +[ ] getAssets routing + fallback +[ ] Tests + changelog + +Phase 2 +[ ] handleAssetsUpdate v6 branch +[ ] Tests + changelog + +Phase 3 +[ ] #subscribeAssetsBalance v6 swap +[ ] subscribeAssetsPrice scope shrink +[ ] #subscribeStakedBalance conditional skip +[ ] Flag change subscription refresh +[ ] Tests + changelog + +Rollout +[ ] Remote flag in staging +[ ] QA parity sign-off +[ ] Gradual prod rollout +[ ] 2-week bake at 100% + +Phase 4 +[ ] Delete legacy hot path +[ ] Update docs +[ ] Final changelog +``` + +--- + +## References + +- [accounts-api-v6-simplification.md](./accounts-api-v6-simplification.md) — + architecture rationale +- `@metamask/core-backend` — `fetchV6MultiAccountBalances`, + `V6BalancesResponse`, query options +- `packages/assets-controller/src/AssetsController.ts` — current orchestration +- `packages/smart-transactions-controller` — RemoteFeatureFlagController pattern diff --git a/packages/assets-controller/docs/accounts-api-v6-simplification.md b/packages/assets-controller/docs/accounts-api-v6-simplification.md new file mode 100644 index 00000000000..b8172e0483c --- /dev/null +++ b/packages/assets-controller/docs/accounts-api-v6-simplification.md @@ -0,0 +1,478 @@ +# AssetsController architecture & Accounts API v6 simplification + +This document describes how `AssetsController` builds its state today, and how the +Accounts API **v6** balances endpoint (`/v6/multiaccount/balances`, already +available in `@metamask/core-backend`) lets us collapse most of the current +middleware machinery. + +- [Part 1 — How `AssetsController` builds state today](#part-1--how-assetscontroller-builds-state-today) +- [Part 2 — Simplifying with Accounts API v6](#part-2--simplifying-with-accounts-api-v6) +- [Part 3 — What code we can remove or simplify](#part-3--what-code-we-can-remove-or-simplify) +- [Part 4 — Fallback chains & tiered enrichment](#part-4--fallback-chains--tiered-enrichment) +- [Caveats](#caveats) + +--- + +## Part 1 — How `AssetsController` builds state today + +### 1.1 The big picture + +The controller does not fetch anything directly. It owns a set of **balance data +sources** and a set of **enrichment middlewares**, and it assembles them into +different pipelines depending on the trigger. State is built up by pushing a +mutable `context = { request, response }` object through a middleware chain +(`reduceRight` → onion model), then merging the final `response` into controller +state. + +```mermaid +flowchart TB + subgraph AC["AssetsController (orchestrator + state owner)"] + STATE["State:
assetsInfo (metadata)
assetsBalance (per account)
assetsPrice
customAssets / assetPreferences / selectedCurrency"] + end + + subgraph BAL["Balance data sources (produce assetsBalance)"] + WS["BackendWebsocketDataSource
real-time WS push (account-activity.v1)"] + API["AccountsApiDataSource
HTTP poll · v5 /multiaccount/balances"] + STK["StakedBalanceDataSource
RPC staking positions"] + SNAP["SnapDataSource
non-EVM (Solana/BTC/Tron)"] + RPC["RpcDataSource
EVM multicall (fallback / RPC-only)"] + end + + subgraph ENR["Enrichment middlewares (mutate response)"] + GRAD["CustomAssetGraduationMiddleware"] + FALL["RpcFallbackMiddleware"] + DET["DetectionMiddleware
computes 'brand new' assets"] + TOK["TokenDataSource
Tokens API v3 metadata + spam filter"] + PRICE["PriceDataSource
Price API v3 spot prices"] + end + + subgraph EXT["External services"] + BAPI["Accounts / Tokens / Price APIs
(ApiPlatformClient)"] + BWSS["BackendWebSocketService"] + NC["NetworkController (RPC)"] + SC["SnapController"] + PH["PhishingController (Blockaid)"] + end + + AC --> BAL + AC --> ENR + API --> BAPI + TOK --> BAPI + PRICE --> BAPI + TOK --> PH + WS --> BWSS + RPC --> NC + SNAP --> SC + BAL -->|response| ENR + ENR -->|merged response| STATE +``` + +### 1.2 The "fast / slow" fetch pipeline (`getAssets({ forceUpdate: true })`) + +This is the most complex part. A single refresh is split into **two pipelines** +because different sources have wildly different latencies. Each stage is a +middleware; balance sources and enrichment sources are wrapped in +`createParallelBalanceMiddleware` / `createParallelMiddleware` to run +concurrently, with chain-partitioning so no chain is fetched twice. + +```mermaid +flowchart TB + START["getAssets(accounts, forceUpdate: true)"] --> REQ["#buildDataRequest()"] + + subgraph FAST["FAST pipeline (committed to state immediately)"] + direction TB + F1["parallel( AccountsApi + StakedBalance )"] --> F2["CustomAssetGraduation"] + F2 --> F3["RpcFallback (retry errored chains on RPC)"] + F3 --> F4["Detection (compute detectedAssets)"] + F4 --> F5["parallel( TokenDataSource + PriceDataSource )"] + end + + subgraph SLOW["SLOW pipeline (async, background, merged later)"] + direction TB + S1["parallel( Snap + Rpc )"] --> S2["Detection"] + S2 --> S3["parallel( Token + Price )"] + end + + REQ --> FAST + FAST --> COMMIT1["#updateState(merge, replaceCoveredChainBalances)"] + COMMIT1 --> DECIDE{"chains not
covered by fast?"} + DECIDE -->|yes| SLOW + SLOW --> COMMIT2["#updateState(merge)"] + COMMIT1 --> RET["return #getAssetsFromState()"] + + note1["Basic-functionality OFF:
Token + Price stripped,
RPC-only path"] + note1 -.-> FAST +``` + +Key ordering detail: `DetectionMiddleware` must run **before** +`TokenDataSource`/`PriceDataSource`, because it populates +`response.detectedAssets` and `request.assetsForPriceUpdate`, which are the inputs +those two use to decide what metadata/prices to fetch. This "detect first, then +enrich" contract is the reason the pipeline is a strict chain rather than a flat +parallel fan-out. + +### 1.3 The subscription / event pipeline (real-time updates) + +Balances also arrive asynchronously, primarily from the WebSocket. Those go +through a *lighter* enrichment chain. + +```mermaid +sequenceDiagram + participant WS as BackendWebsocketDataSource + participant AAS as AccountActivityService + participant AC as AssetsController + participant DET as DetectionMiddleware + participant TOK as TokenDataSource + participant PRICE as PriceDataSource + participant ST as State + + AAS-->>WS: balanceUpdated (delta) + WS->>AC: assetsUpdate(response, sourceId) + Note over AC: handleAssetsUpdate() + AC->>DET: which balances are brand-new? + DET-->>AC: response.detectedAssets + assetsForPriceUpdate + AC->>TOK: fetch metadata for detected (Tokens API v3) + AC->>PRICE: fetch spot prices for detected (Price API v3) + TOK-->>AC: assetsInfo + PRICE-->>AC: assetsPrice + AC->>ST: #updateState(enrichedResponse) + ST-->>AC: stateChange / balanceChanged / priceChanged / assetsDetected +``` + +On top of that, `PriceDataSource` runs its **own** polling subscription (every +60s) that re-prices everything already in `assetsBalance`, and +`AccountsApiDataSource` runs its **own** balance polling subscription (every 30s). +So there are effectively three independent update mechanisms feeding the same +state. + +### 1.4 Why this is "overcomplicated" + +Building one coherent `{ balance, metadata, price }` record for an asset today +requires orchestrating **3 separate REST APIs + WS + RPC**, glued by a detection +step whose only job is to figure out which assets are new enough to warrant +metadata/price lookups: + +- **balance** ← v5 Accounts API (or WS, or RPC, or Snap) +- **metadata** (name/symbol/decimals/image/spam) ← Tokens API v3 + Blockaid + + occurrence-count heuristics +- **price** ← Price API v3 (twice: selected currency + USD) +- **"is this new?"** ← DetectionMiddleware, hand-rolled diffing against state + +That fan-out is what forces the fast/slow split, the parallel-merge middlewares, +chain partitioning, RPC-fallback ordering, the detection→enrich contract, and the +three overlapping subscription loops. + +--- + +## Part 2 — Simplifying with Accounts API v6 + +### 2.1 What v6 gives you in one call + +Looking at `V6BalancesResponse` / `getV6MultiAccountBalancesQueryOptions` in +`@metamask/core-backend`, a single `/v6/multiaccount/balances` request returns, +**per account**, everything the enrichment chain currently reconstructs from three +APIs: + +| v6 capability | Query flag | Replaces today | +| ------------------------------------ | ---------------------------------------------- | ------------------------------------------- | +| Token + native balances | (always) | AccountsApi v5 balances | +| Solana token balances, Stellar trustlines | (always) | part of SnapDataSource | +| DeFi positions (`category: 'defi'`) | `includeDeFiBalances` | StakedBalanceDataSource (+ new DeFi) | +| name / symbol / decimals | (always) | most of TokenDataSource metadata | +| labels | `includeLabels` | TokenDataSource labels | +| spot `price` | `includePrices` + `vsCurrency` | PriceDataSource | +| spam filtering (only Token-API tokens) | `filterSupportedTokens` | occurrence-count + Blockaid filter | +| detection confirmation | `includeAssetIds` → `unprocessedIncludeAssetIds` | most of DetectionMiddleware | +| canonical head (asset dedupe) | `includeCanonicalHead` | custom-asset graduation logic | + +### 2.2 Simplified architecture + +The controller keeps its identity (state shape, messenger API, events), but the +balance/metadata/price/detection fan-out collapses into **one primary data +source** for v6-supported chains. RPC and Snap survive as *fallbacks* for chains +v6 does not cover; `TokenDataSource` and `PriceDataSource` are repurposed as +**conditional enrichers** for those fallback assets when Tokens/Price API cover +the chain (see [Part 4](#part-4--fallback-chains--tiered-enrichment)). + +```mermaid +flowchart TB + subgraph AC["AssetsController (unchanged public surface)"] + STATE["State: assetsInfo / assetsBalance / assetsPrice / ..."] + end + + subgraph PRIMARY["Primary source"] + V6["AccountsApiV6DataSource
ONE call → balance + metadata + price + defi
filterSupportedTokens + includeAssetIds"] + end + + subgraph REALTIME["Real-time"] + WS["BackendWebsocketDataSource
balance deltas → trigger targeted v6 re-fetch"] + end + + subgraph FALLBACK["Fallback only"] + RPC["RpcDataSource
RPC-only mode + v6-unsupported EVM chains"] + SNAP["SnapDataSource
only chains v6 does not cover"] + end + + subgraph ENR["Conditional enrichment (fallback assets only)"] + TOK["TokenDataSource
Tokens API v3 — when chain is supported"] + PRICE["PriceDataSource
Price API v3 — when chain is supported"] + end + + subgraph EXT["External services"] + BAPI["Tokens / Price APIs
(ApiPlatformClient)"] + end + + AC --> V6 + AC --> WS + AC -.fallback.-> RPC + AC -.fallback.-> SNAP + V6 --> STATE + WS --> AC + RPC --> ENR + SNAP --> ENR + TOK --> BAPI + PRICE --> BAPI + ENR --> STATE + + GONE["REMOVED from hot path: DetectionMiddleware · ParallelMiddleware
RpcFallbackMiddleware · fast/slow split · StakedBalanceDataSource
Token/Price as pipeline middleware on the v6 path"] + style GONE fill:#3a1c1c,stroke:#a33,color:#fdd +``` + +### 2.3 Simplified fetch flow + +The entire onion of Detection → Token → Price disappears on the **v6 path**, +because v6 returns an already-enriched response. Fallback chains follow a +separate tiered path (RPC/Snap first, then optional Token/Price enrichment). +See [Part 4](#part-4--fallback-chains--tiered-enrichment). + +```mermaid +flowchart LR + G["getAssets(forceUpdate)"] --> V6["v6 call
includePrices + includeLabels
filterSupportedTokens
includeAssetIds=customAssets"] + V6 --> MAP["map V6 rows →
assetsInfo + assetsBalance + assetsPrice"] + MAP --> ST["#updateState()"] + V6 -.unprocessedNetworks.-> FB["RPC / Snap fallback
(only these chains)"] + FB --> COMMIT["#updateState()
(balances + RPC/Snap metadata)"] + COMMIT --> ENR{"Tokens / Price API
cover chain?"} + ENR -->|yes| UPGRADE["optional enrichment
TokenDataSource + PriceDataSource"] + ENR -->|no| DONE["done — RPC/Snap metadata,
no price if Price API unsupported"] + UPGRADE --> ST + DONE --> ST +``` + +Compare the two "build one asset" paths: + +```mermaid +flowchart TB + subgraph BEFORE["Today: 3 APIs + detection glue"] + b1["v5 balances"] --> b2["Detection diff"] + b2 --> b3["Tokens API v3 metadata"] + b2 --> b4["Price API v3 x2 (usd + fiat)"] + b3 --> b5["merge"] + b4 --> b5 + end + subgraph AFTER_V6["With v6: supported chains"] + a1["v6 (balance+metadata+price+defi)"] --> a2["map to state"] + end + subgraph AFTER_FB["With v6: fallback chains"] + f1["RPC / Snap balances + metadata floor"] --> f2["optional Token/Price enrichment
(when APIs cover chain)"] + f2 --> f3["merge to state"] + end +``` + +### 2.4 Real-time still needs a small amount of glue + +When the WebSocket pushes a balance delta for an asset on a **v6-supported** +chain, call v6 with `includeAssetIds: [newAssetId]` instead of +DetectionMiddleware → TokenDataSource → PriceDataSource. + +For deltas on **v6-unsupported** chains, commit the balance from WS/RPC/Snap +first, then run the same conditional fallback enrichment described in +[Part 4](#part-4--fallback-chains--tiered-enrichment). + +```mermaid +sequenceDiagram + participant WS as WebSocket + participant AC as AssetsController + participant V6 as v6 endpoint + participant ENR as Fallback enrichment + WS-->>AC: balance delta (maybe new asset) + alt v6-supported chain + AC->>V6: fetch with includeAssetIds=[new ids], includePrices + V6-->>AC: enriched rows (balance+meta+price) + AC->>AC: #updateState() + else v6-unsupported chain + AC->>AC: #updateState() (balance + RPC/Snap metadata) + AC->>ENR: enrich if Tokens/Price API cover chain + ENR-->>AC: assetsInfo / assetsPrice (optional) + AC->>AC: #updateState() + end +``` + +--- + +## Part 3 — What code we can remove or simplify + +| Component | Fate with v6 | Why | +| ------------------------------------------------------------------------ | ----------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | +| `AccountsApiDataSource` (v5) | **Replace** with `AccountsApiV6DataSource` | v6 supersets v5 balances and adds metadata/price/defi | +| `DetectionMiddleware` | **Remove** from v6 path; **replace** on fallback path | v6 does server-side detection via `includeAssetIds`/`unprocessedIncludeAssetIds` + `filterSupportedTokens`. On fallback chains, a simpler "assets missing metadata/price" check replaces the full state-diff contract | +| `PriceDataSource` | **Remove** from v6 middleware path; **repurpose** as conditional fallback enricher | v6 returns prices inline via `includePrices` + `vsCurrency`. Still needed for fallback-chain assets when Price API covers the chain; subscription shrinks to non-v6 assets only. See [Part 4](#part-4--fallback-chains--tiered-enrichment) | +| `TokenDataSource` | **Remove** from v6 middleware path; **repurpose** as conditional fallback enricher | v6 returns name/symbol/decimals/labels + spam filtering. Still needed to upgrade RPC/Snap stubs (images, spam filter) when Tokens API covers the chain. See [Part 4](#part-4--fallback-chains--tiered-enrichment) and caveats | +| `StakedBalanceDataSource` | **Remove / fold in** | `includeDeFiBalances` returns DeFi + staking positions | +| `RpcFallbackMiddleware` | **Simplify to** `unprocessedNetworks` handoff | one source returns everything; fallback is just "these chains failed → RPC" | +| `ParallelMiddleware` / `createParallelBalanceMiddleware` / chain partitioning | **Remove** | no multi-source fan-out to merge/partition on the primary path | +| Fast/slow split in `getAssets` | **Collapse** to a single linear fetch | the latency fan-out was driven by juggling 3 APIs + RPC/Snap | +| `CustomAssetGraduationMiddleware` | **Simplify** | `includeCanonicalHead` + `includeAssetIds` give server-authoritative dedupe/confirmation | +| Overlapping subscription loops (v5 balance poll + price poll) | **Collapse** to one v6 poll (or WS + targeted v6); **shrink** price poll to fallback assets | v6 poll covers supported chains; `PriceDataSource` subscription only re-prices non-v6 assets when Price API covers the chain | + +**What stays:** the `AssetsController` state shape and messenger/event API (fully +backward compatible), `BackendWebsocketDataSource` for real-time, +`RpcDataSource` for RPC-only ("basic functionality off") mode and v6-unsupported +chains, `SnapDataSource` for chains v6 does not cover, and +`TokenDataSource` / `PriceDataSource` repurposed as **conditional fallback +enrichers** (not pipeline middleware on the v6 path). See +[Part 4](#part-4--fallback-chains--tiered-enrichment). + +--- + +## Part 4 — Fallback chains & tiered enrichment + +v6 will not cover every chain. Chains returned in `unprocessedNetworks` (or routed +to Snap from the start) still need balances, metadata, and prices — but **not +from the same sources as the v6 path**. + +### 4.1 API coverage is not universal + +Accounts API, Tokens API, and Price API each have **independent chain coverage**. +A chain can be: + +- indexed for balances by v6 → full inline enrichment +- absent from v6 but present in Tokens API and/or Price API → fallback balances + with optional API enrichment +- absent from all three → RPC or Snap is the only source; no prices if Price API + does not cover the chain + +There is no RPC or Snap fallback for **prices**. If Price API does not support a +chain, those assets simply have no entry in `assetsPrice`. + +For **metadata**, RPC and Snap are the floor when Tokens API does not cover a +chain: + +| Source | What it provides when Tokens API is unavailable | +| ------ | ----------------------------------------------- | +| `RpcDataSource` | Native token stub (`symbol`/`name` from chain status, `decimals: 18`). ERC-20 `decimals()` via multicall. No `name`/`symbol`/image for unknown ERC-20s unless already in state. | +| `SnapDataSource` | Full `assetsInfo` (and sometimes `assetsPrice`) returned by the snap handler. | + +`TokenDataSource` is an **upgrade** on top of that floor, not a replacement for +it. + +### 4.2 Tiered enrichment per asset + +```mermaid +flowchart TB + subgraph BAL["Balance (fallback chains)"] + RPC["RpcDataSource"] + SNAP["SnapDataSource"] + end + + subgraph META["Metadata"] + V6M["v6 inline
(v6-supported chains)"] + TOK["TokenDataSource
only if Tokens API covers chain"] + RPCM["RPC floor
native stub + decimals()"] + SNAPM["Snap floor
full metadata from snap"] + end + + subgraph PRICE["Price"] + V6P["v6 inline
(v6-supported chains)"] + PR["PriceDataSource
only if Price API covers chain"] + NONE["No price"] + end + + BAL --> META + BAL --> PRICE +``` + +| Layer | v6-supported | Fallback + Tokens API | Fallback + no Tokens API | Price API unsupported | +| ----- | ------------ | --------------------- | ------------------------ | --------------------- | +| Balance | v6 | RPC / Snap | RPC / Snap | (same) | +| Metadata | v6 | TokenDataSource upgrades RPC/Snap stubs | RPC / Snap only | N/A | +| Price | v6 | PriceDataSource | PriceDataSource if supported | omit — no price | + +### 4.3 How `TokenDataSource` and `PriceDataSource` are repurposed + +They are **removed as pipeline middleware** on the v6 path (no +DetectionMiddleware → parallel Token + Price onion). They survive as **scoped, +conditional enrichers** invoked after fallback balances are committed: + +1. **Scope by origin** — only asset IDs that came from `unprocessedNetworks` / + Snap (or are explicitly missing metadata/price in state). v6-mapped assets + are already enriched inline. +2. **Gate by API coverage** — before calling Tokens API or Price API, check + whether the chain is supported. Skip silently when it is not. +3. **Do not block the hot path** — commit RPC/Snap balances (and their metadata + floor) immediately; run Token/Price enrichment asynchronously when + applicable. +4. **Skip when Snap is already complete** — Snap responses may already include + `assetsInfo` and `assetsPrice`. Token/Price calls are upgrades for richer + fields (images, Blockaid spam filtering, USD if v6 only returns one + `vsCurrency`), not hard requirements. +5. **Shrink the price subscription** — today `PriceDataSource` re-prices + everything in `assetsBalance` every 60s. After v6, the subscription only + needs to cover fallback-chain assets (plus any v6 assets missing `usdPrice` + if dual-currency is preserved via a dedicated Price API fetch; see caveats). + +Invocation becomes a single explicit step after the fallback merge — not +`createParallelMiddleware` wrapped in a fast/slow pipeline: + +```typescript +// Pseudocode — after RPC/Snap response is merged and committed +const fallbackAssetIds = assetIdsFromFallbackResponse(response); +const tokensApiIds = fallbackAssetIds.filter((id) => tokensApiCoversChain(id)); +const priceApiIds = fallbackAssetIds.filter((id) => priceApiCoversChain(id)); + +if (tokensApiIds.length > 0) { + await tokenDataSource.enrich({ assetIds: tokensApiIds }); +} +if (priceApiIds.length > 0) { + await priceDataSource.enrich({ assetIds: priceApiIds }); +} +``` + +### 4.4 What replaces `DetectionMiddleware` on the fallback path + +On the v6 path, detection is server-side (`includeAssetIds` / +`unprocessedIncludeAssetIds` + `filterSupportedTokens`). + +On the fallback path, the equivalent is much simpler: **enrich any fallback +asset that lacks metadata or price in state**. No hand-rolled diff against the +full balance history, no `request.assetsForPriceUpdate` contract, no strict +ordering requirement with parallel middleware. + +### 4.5 Lazy secondary enrichment on the v6 path + +Even for v6-supported assets, `TokenDataSource` / `PriceDataSource` may still +run as a **lazy, one-shot secondary fetch** (not part of the balance hot path) +when the UI needs fields v6 does not return — images, rich market metadata, +or a dedicated USD price fetch. See [Caveats](#caveats). + +--- + +## Caveats + +Three things to confirm with the backend team before deleting code: + +1. **Images and rich market data.** `V6BalanceItem` exposes `name`, `symbol`, + `decimals`, `labels`, `price`, `canonicalHead` — but **no `iconUrl`/image** and + none of the rich fields `TokenDataSource` stores today (`aggregators`, + `occurrences`, `honeypotStatus`, `erc20Permit`, market cap / 24h change). If the + UI needs asset images or that market metadata, `TokenDataSource`/`PriceDataSource` + become *lazy secondary enrichment* on the v6 path (fetch once per asset), not + part of the hot balance path. See [§4.5](#45-lazy-secondary-enrichment-on-the-v6-path). +2. **Multi-currency.** Today `PriceDataSource` fetches selected currency **and** + USD. v6 takes a single `vsCurrency`, so preserving the `usdPrice` field means + either two v6 calls or a small dedicated USD price fetch via Price API. +3. **Per-chain API coverage map.** Maintain (or source from backend) a list of + which chains each API supports. Fallback enrichment gates on this: Tokens API + for metadata upgrades, Price API for prices. Chains absent from both rely + entirely on RPC/Snap metadata with no price. Confirm this map stays in sync + as new chains are added. diff --git a/packages/authenticated-user-storage/CHANGELOG.md b/packages/authenticated-user-storage/CHANGELOG.md index 322a697481b..bde7515d2b6 100644 --- a/packages/authenticated-user-storage/CHANGELOG.md +++ b/packages/authenticated-user-storage/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) + ### Changed - Bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/base-controller/CHANGELOG.md b/packages/base-controller/CHANGELOG.md index 6a9423092e3..90d2b78fd51 100644 --- a/packages/base-controller/CHANGELOG.md +++ b/packages/base-controller/CHANGELOG.md @@ -7,6 +7,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- Add lint:tsc package script ([#9652](https://github.com/MetaMask/core/pull/9652)) +- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) +- refactor: add `.js` import extensions to Core Platform packages ([#9571](https://github.com/MetaMask/core/pull/9571)) +- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) +- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) +- chore: remove unused deps in core-platform packages ([#9064](https://github.com/MetaMask/core/pull/9064)) +- Release 973.0.0 ([#8753](https://github.com/MetaMask/core/pull/8753)) +- Release 970.0.0 ([#8746](https://github.com/MetaMask/core/pull/8746)) +- Release/951.0.0 ([#8661](https://github.com/MetaMask/core/pull/8661)) +- chore: Format changelogs with Oxfmt ([#8442](https://github.com/MetaMask/core/pull/8442)) + ### Changed - Bump `@metamask/utils` from `^11.9.0` to `^11.12.0` ([#9074](https://github.com/MetaMask/core/pull/9074), [#10076](https://github.com/MetaMask/core/pull/10076)) @@ -151,14 +165,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Remove `RestrictedControllerMessenger` export which was an alias for `RestrictedMessenger`. Consumers should import `RestrictedMessenger` directly - Remove `RestrictedControllerMessengerConstraint` type export which was an alias for `RestrictedMessengerConstraint`. Consumers should use `RestrictedMessengerConstraint` type directly - Simplify `RestrictedMessenger` constructor by removing deprecated `controllerMessenger` parameter. The messenger instance should now be passed using only the `messenger` parameter instead of supporting both options -- Widen input parameter for type guard `isBaseController` from `ControllerInstance` to `unknown` ([#5018](https://github.com/MetaMask/core/pull/5018/)) +- Widen input parameter for type guard `isBaseController` from `ControllerInstance` to `unknown` ([#5018](https://github.com/MetaMask/core/pull/5018)) - Bump `@metamask/json-rpc-engine` from `^10.0.2` to `^10.0.3` ([#5272](https://github.com/MetaMask/core/pull/5272)) - Bump `@metamask/utils` from `^11.0.1` to `^11.1.0` ([#5223](https://github.com/MetaMask/core/pull/5223)) ### Removed -- **BREAKING:** Remove class `BaseControllerV1` and type guard `isBaseControllerV1` ([#5018](https://github.com/MetaMask/core/pull/5018/)) -- **BREAKING:** Remove types `BaseConfig`, `BaseControllerV1Instance`, `BaseState`, `ConfigConstraintV1`, `Listener`, `StateConstraintV1`, `LegacyControllerStateConstraint`, `ControllerInstance` ([#5018](https://github.com/MetaMask/core/pull/5018/)) +- **BREAKING:** Remove class `BaseControllerV1` and type guard `isBaseControllerV1` ([#5018](https://github.com/MetaMask/core/pull/5018)) +- **BREAKING:** Remove types `BaseConfig`, `BaseControllerV1Instance`, `BaseState`, `ConfigConstraintV1`, `Listener`, `StateConstraintV1`, `LegacyControllerStateConstraint`, `ControllerInstance` ([#5018](https://github.com/MetaMask/core/pull/5018)) ## [7.1.1] @@ -195,7 +209,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ["Are the Types Wrong?"](https://arethetypeswrong.github.io/) tool as ["masquerading as CJS"](https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/FalseCJS.md). All of the ATTW checks now pass. -- Remove chunk files ([#4648](https://github.com/MetaMask/core/pull/4648)). +- Remove chunk files. ([#4648](https://github.com/MetaMask/core/pull/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 diff --git a/packages/base-data-service/CHANGELOG.md b/packages/base-data-service/CHANGELOG.md index 0cfa9bf8d00..679dd5150df 100644 --- a/packages/base-data-service/CHANGELOG.md +++ b/packages/base-data-service/CHANGELOG.md @@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- Remove lint rule that deprecates use of :stateChange events ([#10090](https://github.com/MetaMask/core/pull/10090)) +- Add typechecking in CI for react-data-query ([#10010](https://github.com/MetaMask/core/pull/10010)) +- Enable typechecking in CI for base-data-service ([#10009](https://github.com/MetaMask/core/pull/10009)) +- docs: Improve `ExampleDataService` types ([#10001](https://github.com/MetaMask/core/pull/10001)) + ### Changed - Bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/bitcoin-regtest-up/CHANGELOG.md b/packages/bitcoin-regtest-up/CHANGELOG.md index 29eb0135d41..0100765a11b 100644 --- a/packages/bitcoin-regtest-up/CHANGELOG.md +++ b/packages/bitcoin-regtest-up/CHANGELOG.md @@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- refactor: add `.js` import extensions to Networks packages ([#9649](https://github.com/MetaMask/core/pull/9649)) +- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) +- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) + ## [1.0.0] ### Added diff --git a/packages/build-utils/CHANGELOG.md b/packages/build-utils/CHANGELOG.md index bbcfaa9223f..d1944a4fc10 100644 --- a/packages/build-utils/CHANGELOG.md +++ b/packages/build-utils/CHANGELOG.md @@ -7,6 +7,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- chore: Enable lint:tsc for 11 additional clean packages ([#9664](https://github.com/MetaMask/core/pull/9664)) +- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) +- refactor: add `.js` import extensions to Core Platform packages ([#9571](https://github.com/MetaMask/core/pull/9571)) +- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) +- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) +- chore: Format changelogs with Oxfmt ([#8442](https://github.com/MetaMask/core/pull/8442)) +- chore: bump `@metamask/auto-changelog` to `^6.0.0` ([#8441](https://github.com/MetaMask/core/pull/8441)) +- chore: Use Oxfmt for import sorting instead of `import-x/order` ([#8438](https://github.com/MetaMask/core/pull/8438)) +- chore: Replace Prettier with Oxfmt ([#8434](https://github.com/MetaMask/core/pull/8434)) +- chore: secure PUBLISH_PREVIEW_NPM_TOKEN with GitHub environment ([#8011](https://github.com/MetaMask/core/pull/8011)) +- chore: upgrade `typedoc` from `^0.24.8` to `^0.25.13` ([#7898](https://github.com/MetaMask/core/pull/7898)) +- chore: migrate Jest from v27 to v29 ([#7894](https://github.com/MetaMask/core/pull/7894)) +- chore: upgrade Jest-related packages to latest 27.x versions ([#7792](https://github.com/MetaMask/core/pull/7792)) +- chore(lint): Fix suppressed ESLint errors in `build-utils` package ([#7460](https://github.com/MetaMask/core/pull/7460)) +- chore: Re-enable `@typescript-eslint/no-unnecessary-type-assertions` ([#7296](https://github.com/MetaMask/core/pull/7296)) +- chore: Fix all auto-fixable ESLint warnings ([#7105](https://github.com/MetaMask/core/pull/7105)) +- chore: Update `typescript` to v5.3 ([#7081](https://github.com/MetaMask/core/pull/7081)) +- fix: Fix build script not working because of missing `@ts-bridge/cli` dependency ([#7040](https://github.com/MetaMask/core/pull/7040)) + ### Changed - Bump `@metamask/utils` from `^11.8.1` to `^11.12.0` ([#7511](https://github.com/MetaMask/core/pull/7511), [#9074](https://github.com/MetaMask/core/pull/9074), [#10076](https://github.com/MetaMask/core/pull/10076)) @@ -21,7 +43,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Bump `@metamask/utils` from `^10.0.0` to `^11.1.0` ([#5080](https://github.com/MetaMask/core/pull/5080)), ([#5223](https://github.com/MetaMask/core/pull/5223)) +- Bump `@metamask/utils` from `^10.0.0` to `^11.1.0` ([#5080](https://github.com/MetaMask/core/pull/5080), [#5223](https://github.com/MetaMask/core/pull/5223)) ## [3.0.2] @@ -47,7 +69,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ["Are the Types Wrong?"](https://arethetypeswrong.github.io/) tool as ["masquerading as CJS"](https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/FalseCJS.md). All of the ATTW checks now pass. -- Remove chunk files ([#4648](https://github.com/MetaMask/core/pull/4648)). +- Remove chunk files. ([#4648](https://github.com/MetaMask/core/pull/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 @@ -89,7 +111,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added -- Initial release ([#3577](https://github.com/MetaMask/core/pull/3577) [#3588](https://github.com/MetaMask/core/pull/3588)) +- Initial release ([#3577](https://github.com/MetaMask/core/pull/3577), [#3588](https://github.com/MetaMask/core/pull/3588)) [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/build-utils@3.0.4...HEAD [3.0.4]: https://github.com/MetaMask/core/compare/@metamask/build-utils@3.0.3...@metamask/build-utils@3.0.4 diff --git a/packages/chain-agnostic-permission/CHANGELOG.md b/packages/chain-agnostic-permission/CHANGELOG.md index 58472bbabca..75bb1a9b50e 100644 --- a/packages/chain-agnostic-permission/CHANGELOG.md +++ b/packages/chain-agnostic-permission/CHANGELOG.md @@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- chore: bump accounts deps ([#9754](https://github.com/MetaMask/core/pull/9754)) +- chore: bump accounts deps ([#9676](https://github.com/MetaMask/core/pull/9676)) +- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) +- refactor: add `.js` import extensions to Core Platform packages ([#9571](https://github.com/MetaMask/core/pull/9571)) +- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) +- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) + ### Changed - Bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/chomp-api-service/CHANGELOG.md b/packages/chomp-api-service/CHANGELOG.md index faaa749075b..c1067d3847b 100644 --- a/packages/chomp-api-service/CHANGELOG.md +++ b/packages/chomp-api-service/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) + ## [4.0.2] ### Changed diff --git a/packages/client-controller/CHANGELOG.md b/packages/client-controller/CHANGELOG.md index 45b53576c1f..d64d57d0129 100644 --- a/packages/client-controller/CHANGELOG.md +++ b/packages/client-controller/CHANGELOG.md @@ -7,6 +7,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- chore: Enable lint:tsc for 11 additional clean packages ([#9664](https://github.com/MetaMask/core/pull/9664)) +- refactor: add `.js` import extensions to Core Platform joint packages ([#9642](https://github.com/MetaMask/core/pull/9642)) +- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) +- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) +- chore: Enable Oxfmt for generating method action types files ([#8498](https://github.com/MetaMask/core/pull/8498)) +- chore: Format changelogs with Oxfmt ([#8442](https://github.com/MetaMask/core/pull/8442)) +- Revert "Release 912.0.0 (#8451)" ([#8451](https://github.com/MetaMask/core/pull/8451)) +- Release 912.0.0 ([#8451](https://github.com/MetaMask/core/pull/8451)) +- chore: bump `@metamask/auto-changelog` to `^6.0.0` ([#8441](https://github.com/MetaMask/core/pull/8441)) +- chore: Replace Prettier with Oxfmt ([#8434](https://github.com/MetaMask/core/pull/8434)) +- feat: extract generate-action-types CLI into @metamask/messenger-cli ([#8378](https://github.com/MetaMask/core/pull/8378)) +- feat(messenger): add `generate-action-types` CLI tool as subpath export ([#8264](https://github.com/MetaMask/core/pull/8264)) + ### Changed - Bump `@metamask/messenger` from `^1.0.0` to `^2.0.0` ([#8364](https://github.com/MetaMask/core/pull/8364), [#8373](https://github.com/MetaMask/core/pull/8373), [#8632](https://github.com/MetaMask/core/pull/8632), [#9392](https://github.com/MetaMask/core/pull/9392)) diff --git a/packages/client-utils/CHANGELOG.md b/packages/client-utils/CHANGELOG.md index e620ba6dc88..d4943f2da4e 100644 --- a/packages/client-utils/CHANGELOG.md +++ b/packages/client-utils/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) + ### Changed - Bump `@metamask/core-backend` from `^9.0.0` to `^9.1.1` ([#10138](https://github.com/MetaMask/core/pull/10138), [#10139](https://github.com/MetaMask/core/pull/10139)) diff --git a/packages/compliance-controller/CHANGELOG.md b/packages/compliance-controller/CHANGELOG.md index 3f655ccca76..4553f632db8 100644 --- a/packages/compliance-controller/CHANGELOG.md +++ b/packages/compliance-controller/CHANGELOG.md @@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- refactor: add `.js` import extensions to Perps packages ([#9626](https://github.com/MetaMask/core/pull/9626)) +- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) +- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) + ### Changed - Bump `@metamask/utils` from `^11.9.0` to `^11.12.0` ([#9074](https://github.com/MetaMask/core/pull/9074), [#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/composable-controller/CHANGELOG.md b/packages/composable-controller/CHANGELOG.md index bc5c4a8e41f..aa0046f2956 100644 --- a/packages/composable-controller/CHANGELOG.md +++ b/packages/composable-controller/CHANGELOG.md @@ -7,6 +7,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) +- refactor: add `.js` import extensions to Core Platform packages ([#9571](https://github.com/MetaMask/core/pull/9571)) +- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) +- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) +- Release 973.0.0 ([#8753](https://github.com/MetaMask/core/pull/8753)) +- Release 970.0.0 ([#8746](https://github.com/MetaMask/core/pull/8746)) +- chore: Format changelogs with Oxfmt ([#8442](https://github.com/MetaMask/core/pull/8442)) +- Revert "Release 912.0.0 (#8451)" ([#8451](https://github.com/MetaMask/core/pull/8451)) +- Release 912.0.0 ([#8451](https://github.com/MetaMask/core/pull/8451)) +- chore: bump `@metamask/auto-changelog` to `^6.0.0` ([#8441](https://github.com/MetaMask/core/pull/8441)) +- chore: Replace Prettier with Oxfmt ([#8434](https://github.com/MetaMask/core/pull/8434)) + ### Changed - Bump `@metamask/json-rpc-engine` from `^10.2.4` to `^10.3.0` ([#8661](https://github.com/MetaMask/core/pull/8661)) @@ -48,16 +63,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Bump `@metamask/base-controller` from `^8.0.0` to `^8.4.1` ([#5722](https://github.com/MetaMask/core/pull/5722), [#6284](https://github.com/MetaMask/core/pull/6284), [#6355](https://github.com/MetaMask/core/pull/6355), [#6465](https://github.com/MetaMask/core/pull/6465), [#6632](https://github.com/MetaMask/core/pull/6632),[#6807](https://github.com/MetaMask/core/pull/6807)) +- Bump `@metamask/base-controller` from `^8.0.0` to `^8.4.1` ([#5722](https://github.com/MetaMask/core/pull/5722), [#6284](https://github.com/MetaMask/core/pull/6284), [#6355](https://github.com/MetaMask/core/pull/6355), [#6465](https://github.com/MetaMask/core/pull/6465), [#6632](https://github.com/MetaMask/core/pull/6632), [#6807](https://github.com/MetaMask/core/pull/6807)) ## [11.0.0] ### Changed -- **BREAKING:** Re-define `ComposableControllerStateConstraint` type using `StateConstraint` instead of `LegacyControllerStateConstraint` ([#5018](https://github.com/MetaMask/core/pull/5018/)) -- **BREAKING:** Constrain the `ComposableControllerState` generic argument for the `ComposableController` class using `ComposableControllerStateConstraint` instead of `LegacyComposableControllerStateConstraint` ([#5018](https://github.com/MetaMask/core/pull/5018/)) -- Bump `@metamask/base-controller` from `^7.0.2` to `^8.0.0` ([#5079](https://github.com/MetaMask/core/pull/5079)), ([#5135](https://github.com/MetaMask/core/pull/5135)), ([#5305](https://github.com/MetaMask/core/pull/5305)) -- Bump `@metamask/json-rpc-engine` from `^10.0.1` to `^10.0.3` ([#5082](https://github.com/MetaMask/core/pull/5082)), ([#5272](https://github.com/MetaMask/core/pull/5272)) +- **BREAKING:** Re-define `ComposableControllerStateConstraint` type using `StateConstraint` instead of `LegacyControllerStateConstraint` ([#5018](https://github.com/MetaMask/core/pull/5018)) +- **BREAKING:** Constrain the `ComposableControllerState` generic argument for the `ComposableController` class using `ComposableControllerStateConstraint` instead of `LegacyComposableControllerStateConstraint` ([#5018](https://github.com/MetaMask/core/pull/5018)) +- Bump `@metamask/base-controller` from `^7.0.2` to `^8.0.0` ([#5079](https://github.com/MetaMask/core/pull/5079), [#5135](https://github.com/MetaMask/core/pull/5135), [#5305](https://github.com/MetaMask/core/pull/5305)) +- Bump `@metamask/json-rpc-engine` from `^10.0.1` to `^10.0.3` ([#5082](https://github.com/MetaMask/core/pull/5082), [#5272](https://github.com/MetaMask/core/pull/5272)) ## [10.0.0] @@ -84,7 +99,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ["Are the Types Wrong?"](https://arethetypeswrong.github.io/) tool as ["masquerading as CJS"](https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/FalseCJS.md). All of the ATTW checks now pass. -- Remove chunk files ([#4648](https://github.com/MetaMask/core/pull/4648)). +- Remove chunk files. ([#4648](https://github.com/MetaMask/core/pull/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 @@ -143,9 +158,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- **BREAKING:** The `ComposableController` class is now a generic class that expects one generic argument `ComposableControllerState` ([#3952](https://github.com/MetaMask/core/pull/3952)). +- **BREAKING:** The `ComposableController` class is now a generic class that expects one generic argument `ComposableControllerState`. ([#3952](https://github.com/MetaMask/core/pull/3952)) - **BREAKING:** For the `ComposableController` class to be typed correctly, any of its child controllers that extend `BaseControllerV1` must have an overridden `name` property that is defined using the `as const` assertion. -- **BREAKING:** The types `ComposableControllerStateChangeEvent`, `ComposableControllerEvents`, `ComposableControllerMessenger` are now generic types that expect one generic argument `ComposableControllerState` ([#3952](https://github.com/MetaMask/core/pull/3952)). +- **BREAKING:** The types `ComposableControllerStateChangeEvent`, `ComposableControllerEvents`, `ComposableControllerMessenger` are now generic types that expect one generic argument `ComposableControllerState`. ([#3952](https://github.com/MetaMask/core/pull/3952)) - Bump `@metamask/json-rpc-engine` to `^8.0.2` ([#4234](https://github.com/MetaMask/core/pull/4234)) - Bump `@metamask/base-controller` to `^5.0.2` ([#4232](https://github.com/MetaMask/core/pull/4232)) diff --git a/packages/config-registry-controller/CHANGELOG.md b/packages/config-registry-controller/CHANGELOG.md index 615268a998f..2d18d1c4d41 100644 --- a/packages/config-registry-controller/CHANGELOG.md +++ b/packages/config-registry-controller/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) + ### Changed - Bump `@metamask/remote-feature-flag-controller` from `^6.0.0` to `^6.1.1` ([#9980](https://github.com/MetaMask/core/pull/9980), [#10129](https://github.com/MetaMask/core/pull/10129)) diff --git a/packages/connectivity-controller/CHANGELOG.md b/packages/connectivity-controller/CHANGELOG.md index b35813866c8..fc12c80ac3b 100644 --- a/packages/connectivity-controller/CHANGELOG.md +++ b/packages/connectivity-controller/CHANGELOG.md @@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) +- refactor: add `.js` import extensions to Core Platform packages ([#9571](https://github.com/MetaMask/core/pull/9571)) +- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) +- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) + ## [0.3.0] ### Added diff --git a/packages/controller-utils/CHANGELOG.md b/packages/controller-utils/CHANGELOG.md index e337036d7bd..a7955512772 100644 --- a/packages/controller-utils/CHANGELOG.md +++ b/packages/controller-utils/CHANGELOG.md @@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Move FakeProvider to eth-json-rpc-provider (as FakeInternalProvider) ([#10099](https://github.com/MetaMask/core/pull/10099)) +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) +- refactor: add `.js` import extensions to Core Platform packages ([#9571](https://github.com/MetaMask/core/pull/9571)) +- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) +- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) +- Rewrite createServicePolicy tests ([#8666](https://github.com/MetaMask/core/pull/8666)) + ### Added - Add optional `startTime` to `TraceRequest` to allow backdating a span's start time ([#9315](https://github.com/MetaMask/core/pull/9315)) diff --git a/packages/delegation-controller/CHANGELOG.md b/packages/delegation-controller/CHANGELOG.md index 367584822d7..e4458ae0143 100644 --- a/packages/delegation-controller/CHANGELOG.md +++ b/packages/delegation-controller/CHANGELOG.md @@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- refactor: add `.js` import extensions to Delegation packages ([#9622](https://github.com/MetaMask/core/pull/9622)) +- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) +- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) +- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) + ### Changed - Bump `@metamask/utils` from `^11.9.0` to `^11.12.0` ([#9074](https://github.com/MetaMask/core/pull/9074), [#10076](https://github.com/MetaMask/core/pull/10076)) @@ -58,14 +66,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Bump `@metamask/accounts-controller` from `^36.0.0` to `^37.0.0` ([#7996](https://github.com/MetaMask/core/pull/7996)), ([#8140](https://github.com/MetaMask/core/pull/8140)) +- Bump `@metamask/accounts-controller` from `^36.0.0` to `^37.0.0` ([#7996](https://github.com/MetaMask/core/pull/7996), [#8140](https://github.com/MetaMask/core/pull/8140)) ## [2.0.1] ### Changed - Upgrade `@metamask/utils` from `^11.8.1` to `^11.9.0` ([#7511](https://github.com/MetaMask/core/pull/7511)) -- Move peer dependencies for controller and service packages to direct dependencies ([#7209](https://github.com/MetaMask/core/pull/7209), [#7604](https://github.com/MetaMask/core/pull/7604), [#7642](https://github.com/MetaMask/core/pull/7642), [#7713](https://github.com/MetaMask/core/pull/7713)), ([#7897](https://github.com/MetaMask/core/pull/7897)) +- Move peer dependencies for controller and service packages to direct dependencies ([#7209](https://github.com/MetaMask/core/pull/7209), [#7604](https://github.com/MetaMask/core/pull/7604), [#7642](https://github.com/MetaMask/core/pull/7642), [#7713](https://github.com/MetaMask/core/pull/7713), [#7897](https://github.com/MetaMask/core/pull/7897)) - The dependencies moved are: - `@metamask/accounts-controller` (^36.0.0) - `@metamask/keyring-controller` (^25.1.0) diff --git a/packages/eip-5792-middleware/CHANGELOG.md b/packages/eip-5792-middleware/CHANGELOG.md index 95db0c0678b..feaadcdfa7a 100644 --- a/packages/eip-5792-middleware/CHANGELOG.md +++ b/packages/eip-5792-middleware/CHANGELOG.md @@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- Release/1179.0.0 ([#9791](https://github.com/MetaMask/core/pull/9791)) +- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) +- refactor: add `.js` import extensions to Core Platform packages ([#9571](https://github.com/MetaMask/core/pull/9571)) +- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) + ### Changed - Bump `@metamask/transaction-controller` from `^69.0.0` to `^69.8.1` ([#9568](https://github.com/MetaMask/core/pull/9568), [#10080](https://github.com/MetaMask/core/pull/10080), [#9589](https://github.com/MetaMask/core/pull/9589), [#9593](https://github.com/MetaMask/core/pull/9593), [#9693](https://github.com/MetaMask/core/pull/9693), [#9735](https://github.com/MetaMask/core/pull/9735), [#9780](https://github.com/MetaMask/core/pull/9780), [#9798](https://github.com/MetaMask/core/pull/9798), [#9823](https://github.com/MetaMask/core/pull/9823), [#9960](https://github.com/MetaMask/core/pull/9960), [#9969](https://github.com/MetaMask/core/pull/9969), [#10046](https://github.com/MetaMask/core/pull/10046), [#10124](https://github.com/MetaMask/core/pull/10124)) @@ -72,7 +80,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Bump `@metamask/transaction-controller` from `^61.3.0` to `^62.7.0` ([#7007](https://github.com/MetaMask/core/pull/7007), [#7126](https://github.com/MetaMask/core/pull/7126), [#7153](https://github.com/MetaMask/core/pull/7153), [#7202](https://github.com/MetaMask/core/pull/7202), [#7215](https://github.com/MetaMask/core/pull/7202), [#7220](https://github.com/MetaMask/core/pull/7220), [#7236](https://github.com/MetaMask/core/pull/7236), [#7257](https://github.com/MetaMask/core/pull/7257), [#7289](https://github.com/MetaMask/core/pull/7289), [#7325](https://github.com/MetaMask/core/pull/7325), [#7430](https://github.com/MetaMask/core/pull/7430), [#7494](https://github.com/MetaMask/core/pull/7494)) +- Bump `@metamask/transaction-controller` from `^61.3.0` to `^62.7.0` ([#7007](https://github.com/MetaMask/core/pull/7007), [#7126](https://github.com/MetaMask/core/pull/7126), [#7153](https://github.com/MetaMask/core/pull/7153), [#7202](https://github.com/MetaMask/core/pull/7202), [#7215](https://github.com/MetaMask/core/pull/7215), [#7220](https://github.com/MetaMask/core/pull/7220), [#7236](https://github.com/MetaMask/core/pull/7236), [#7257](https://github.com/MetaMask/core/pull/7257), [#7289](https://github.com/MetaMask/core/pull/7289), [#7325](https://github.com/MetaMask/core/pull/7325), [#7430](https://github.com/MetaMask/core/pull/7430), [#7494](https://github.com/MetaMask/core/pull/7494)) ## [2.0.0] @@ -106,7 +114,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Bump `@metamask/utils` from `^11.8.0` to `^11.8.1` ([#6708](https://github.com/MetaMask/core/pull/6708)) -- Bump `@metamask/transaction-controller` from `^60.4.0` to `^60.6.0` ([#6708](https://github.com/MetaMask/core/pull/6733), [#6771](https://github.com/MetaMask/core/pull/6771)) +- Bump `@metamask/transaction-controller` from `^60.4.0` to `^60.6.0` ([#6708](https://github.com/MetaMask/core/pull/6708), [#6771](https://github.com/MetaMask/core/pull/6771)) - Remove dependency `@metamask/eth-json-rpc-middleware` ([#6714](https://github.com/MetaMask/core/pull/6714)) ## [1.2.0] diff --git a/packages/eip-7702-internal-rpc-middleware/CHANGELOG.md b/packages/eip-7702-internal-rpc-middleware/CHANGELOG.md index 4e7081fac94..fa2cfe7b29a 100644 --- a/packages/eip-7702-internal-rpc-middleware/CHANGELOG.md +++ b/packages/eip-7702-internal-rpc-middleware/CHANGELOG.md @@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- refactor: add `.js` import extensions to Core Platform joint packages ([#9642](https://github.com/MetaMask/core/pull/9642)) +- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) +- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) + ### Changed - Bump `@metamask/utils` from `^11.9.0` to `^11.12.0` ([#9074](https://github.com/MetaMask/core/pull/9074), [#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/eip1193-permission-middleware/CHANGELOG.md b/packages/eip1193-permission-middleware/CHANGELOG.md index 147814091c4..0ae1015f522 100644 --- a/packages/eip1193-permission-middleware/CHANGELOG.md +++ b/packages/eip1193-permission-middleware/CHANGELOG.md @@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) +- refactor: add `.js` import extensions to Core Platform packages ([#9571](https://github.com/MetaMask/core/pull/9571)) +- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) +- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) + ### Changed - Bump `@metamask/utils` from `^11.9.0` to `^11.12.0` ([#9074](https://github.com/MetaMask/core/pull/9074), [#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/eth-block-tracker/CHANGELOG.md b/packages/eth-block-tracker/CHANGELOG.md index 7a1bfd23218..9214b91be05 100644 --- a/packages/eth-block-tracker/CHANGELOG.md +++ b/packages/eth-block-tracker/CHANGELOG.md @@ -7,6 +7,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- refactor: add `.js` import extensions to Core Platform packages ([#9571](https://github.com/MetaMask/core/pull/9571)) +- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) +- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) +- chore: remove vestigial lint scripts from migrated packages ([#9048](https://github.com/MetaMask/core/pull/9048)) +- Release 973.0.0 ([#8753](https://github.com/MetaMask/core/pull/8753)) +- Release 970.0.0 ([#8746](https://github.com/MetaMask/core/pull/8746)) +- chore: Format changelogs with Oxfmt ([#8442](https://github.com/MetaMask/core/pull/8442)) +- chore: bump `@metamask/auto-changelog` to `^6.0.0` ([#8441](https://github.com/MetaMask/core/pull/8441)) +- chore: Replace Prettier with Oxfmt ([#8434](https://github.com/MetaMask/core/pull/8434)) +- Release 840.0.0 ([#8078](https://github.com/MetaMask/core/pull/8078)) +- chore: secure PUBLISH_PREVIEW_NPM_TOKEN with GitHub environment ([#8011](https://github.com/MetaMask/core/pull/8011)) +- chore: upgrade `typedoc` from `^0.24.8` to `^0.25.13` ([#7898](https://github.com/MetaMask/core/pull/7898)) +- chore: migrate Jest from v27 to v29 ([#7894](https://github.com/MetaMask/core/pull/7894)) +- Release 795.0.0 ([#7856](https://github.com/MetaMask/core/pull/7856)) +- chore: upgrade Jest-related packages to latest 27.x versions ([#7792](https://github.com/MetaMask/core/pull/7792)) + ### Changed - Bump `@metamask/utils` from `^11.9.0` to `^11.12.0` ([#9074](https://github.com/MetaMask/core/pull/9074), [#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/eth-json-rpc-middleware/CHANGELOG.md b/packages/eth-json-rpc-middleware/CHANGELOG.md index ef046fd60ef..70964bc776d 100644 --- a/packages/eth-json-rpc-middleware/CHANGELOG.md +++ b/packages/eth-json-rpc-middleware/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) + ### Changed - Bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/eth-json-rpc-provider/CHANGELOG.md b/packages/eth-json-rpc-provider/CHANGELOG.md index 6c8ebbe30f0..c79a27e0e40 100644 --- a/packages/eth-json-rpc-provider/CHANGELOG.md +++ b/packages/eth-json-rpc-provider/CHANGELOG.md @@ -7,6 +7,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) +- refactor: add `.js` import extensions to Core Platform packages ([#9571](https://github.com/MetaMask/core/pull/9571)) +- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) +- chore: drop unused jest-it-up devDep ([#9052](https://github.com/MetaMask/core/pull/9052)) +- chore: remove vestigial lint scripts from migrated packages ([#9048](https://github.com/MetaMask/core/pull/9048)) +- chore: Format changelogs with Oxfmt ([#8442](https://github.com/MetaMask/core/pull/8442)) +- chore: bump `@metamask/auto-changelog` to `^6.0.0` ([#8441](https://github.com/MetaMask/core/pull/8441)) +- chore: Replace Prettier with Oxfmt ([#8434](https://github.com/MetaMask/core/pull/8434)) + ### Added - Add `MockInternalProvider`, which can be substituted for `InternalProvider` in tests, while providing the ability to assert requests and inject canned responses ([#10099](https://github.com/MetaMask/core/pull/10099)) @@ -109,7 +121,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ["Are the Types Wrong?"](https://arethetypeswrong.github.io/) tool as ["masquerading as CJS"](https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/FalseCJS.md). All of the ATTW checks now pass. -- Remove chunk files ([#4648](https://github.com/MetaMask/core/pull/4648)). +- Remove chunk files. ([#4648](https://github.com/MetaMask/core/pull/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 diff --git a/packages/foundryup/CHANGELOG.md b/packages/foundryup/CHANGELOG.md index f6ce1417dc3..64b4ddb67b7 100644 --- a/packages/foundryup/CHANGELOG.md +++ b/packages/foundryup/CHANGELOG.md @@ -7,6 +7,27 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- chore: Enable lint:tsc for 11 additional clean packages ([#9664](https://github.com/MetaMask/core/pull/9664)) +- ci: diff root `package.json` and `yarn.lock` to find affected workspaces in incremental CI ([#9643](https://github.com/MetaMask/core/pull/9643)) +- refactor: add `.js` import extensions to Mobile and Extension Platform packages ([#9628](https://github.com/MetaMask/core/pull/9628)) +- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) +- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) +- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) +- chore: Format changelogs with Oxfmt ([#8442](https://github.com/MetaMask/core/pull/8442)) +- chore: bump `@metamask/auto-changelog` to `^6.0.0` ([#8441](https://github.com/MetaMask/core/pull/8441)) +- chore: Replace Prettier with Oxfmt ([#8434](https://github.com/MetaMask/core/pull/8434)) +- chore: secure PUBLISH_PREVIEW_NPM_TOKEN with GitHub environment ([#8011](https://github.com/MetaMask/core/pull/8011)) +- chore: upgrade `typedoc` from `^0.24.8` to `^0.25.13` ([#7898](https://github.com/MetaMask/core/pull/7898)) +- chore: migrate Jest from v27 to v29 ([#7894](https://github.com/MetaMask/core/pull/7894)) +- chore: upgrade Jest-related packages to latest 27.x versions ([#7792](https://github.com/MetaMask/core/pull/7792)) +- chore: Update ESLint config packages to v15 ([#7305](https://github.com/MetaMask/core/pull/7305)) +- chore: Re-enable `@typescript-eslint/no-unnecessary-type-assertions` ([#7296](https://github.com/MetaMask/core/pull/7296)) +- chore: Update `typescript` to v5.3 ([#7081](https://github.com/MetaMask/core/pull/7081)) +- fix: Fix build script not working because of missing `@ts-bridge/cli` dependency ([#7040](https://github.com/MetaMask/core/pull/7040)) + ## [1.0.1] ### Fixed diff --git a/packages/gas-fee-controller/CHANGELOG.md b/packages/gas-fee-controller/CHANGELOG.md index e77963dc6aa..85b3fc7dcb4 100644 --- a/packages/gas-fee-controller/CHANGELOG.md +++ b/packages/gas-fee-controller/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) + ### Changed - Bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/gator-permissions-controller/CHANGELOG.md b/packages/gator-permissions-controller/CHANGELOG.md index c8f0a59c823..7590822240d 100644 --- a/packages/gator-permissions-controller/CHANGELOG.md +++ b/packages/gator-permissions-controller/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) + ### Changed - Bump `@metamask/transaction-controller` from `^69.6.1` to `^69.8.1` ([#10046](https://github.com/MetaMask/core/pull/10046), [#10080](https://github.com/MetaMask/core/pull/10080), [#10124](https://github.com/MetaMask/core/pull/10124)) diff --git a/packages/geolocation-controller/CHANGELOG.md b/packages/geolocation-controller/CHANGELOG.md index 847aa091d48..f82f4702964 100644 --- a/packages/geolocation-controller/CHANGELOG.md +++ b/packages/geolocation-controller/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) + ## [1.0.0] ### Changed diff --git a/packages/java-tron-up/CHANGELOG.md b/packages/java-tron-up/CHANGELOG.md index b983a9bfc34..c8dc6220d19 100644 --- a/packages/java-tron-up/CHANGELOG.md +++ b/packages/java-tron-up/CHANGELOG.md @@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- refactor: add `.js` import extensions to Networks packages ([#9649](https://github.com/MetaMask/core/pull/9649)) +- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) +- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) + ## [1.0.0] ### Added diff --git a/packages/json-rpc-engine/CHANGELOG.md b/packages/json-rpc-engine/CHANGELOG.md index 210ce2f1379..84f7a016daf 100644 --- a/packages/json-rpc-engine/CHANGELOG.md +++ b/packages/json-rpc-engine/CHANGELOG.md @@ -7,6 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) +- refactor: add `.js` import extensions to Core Platform packages ([#9571](https://github.com/MetaMask/core/pull/9571)) +- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) +- chore: drop unused jest-it-up devDep ([#9052](https://github.com/MetaMask/core/pull/9052)) +- chore: remove vestigial lint scripts from migrated packages ([#9048](https://github.com/MetaMask/core/pull/9048)) + ### Changed - Bump `@metamask/utils` from `^11.9.0` to `^11.12.0` ([#9074](https://github.com/MetaMask/core/pull/9074), [#10076](https://github.com/MetaMask/core/pull/10076)) @@ -344,9 +353,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 [7.2.0]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-engine@7.1.1...@metamask/json-rpc-engine@7.2.0 [7.1.1]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-engine@7.1.0...@metamask/json-rpc-engine@7.1.1 [7.1.0]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-engine@7.0.0...@metamask/json-rpc-engine@7.1.0 -[7.0.0]: https://github.com/MetaMask/core/compare/json-rpc-engine@6.1.0...@metamask/json-rpc-engine@7.0.0 -[6.1.0]: https://github.com/MetaMask/core/compare/json-rpc-engine@6.0.0...json-rpc-engine@6.1.0 -[6.0.0]: https://github.com/MetaMask/core/compare/json-rpc-engine@5.4.0...json-rpc-engine@6.0.0 -[5.4.0]: https://github.com/MetaMask/core/compare/json-rpc-engine@5.3.0...json-rpc-engine@5.4.0 -[5.3.0]: https://github.com/MetaMask/core/compare/json-rpc-engine@5.2.0...json-rpc-engine@5.3.0 -[5.2.0]: https://github.com/MetaMask/core/releases/tag/json-rpc-engine@5.2.0 +[7.0.0]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-engine@6.1.0...@metamask/json-rpc-engine@7.0.0 +[6.1.0]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-engine@6.0.0...@metamask/json-rpc-engine@6.1.0 +[6.0.0]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-engine@5.4.0...@metamask/json-rpc-engine@6.0.0 +[5.4.0]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-engine@5.3.0...@metamask/json-rpc-engine@5.4.0 +[5.3.0]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-engine@5.2.0...@metamask/json-rpc-engine@5.3.0 +[5.2.0]: https://github.com/MetaMask/core/releases/tag/@metamask/json-rpc-engine@5.2.0 diff --git a/packages/json-rpc-middleware-stream/CHANGELOG.md b/packages/json-rpc-middleware-stream/CHANGELOG.md index 073d230db07..ffa6b69fb7b 100644 --- a/packages/json-rpc-middleware-stream/CHANGELOG.md +++ b/packages/json-rpc-middleware-stream/CHANGELOG.md @@ -7,6 +7,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) +- refactor: add `.js` import extensions to Core Platform packages ([#9571](https://github.com/MetaMask/core/pull/9571)) +- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) +- chore: drop unused jest-it-up devDep ([#9052](https://github.com/MetaMask/core/pull/9052)) +- chore: Format changelogs with Oxfmt ([#8442](https://github.com/MetaMask/core/pull/8442)) +- chore: bump `@metamask/auto-changelog` to `^6.0.0` ([#8441](https://github.com/MetaMask/core/pull/8441)) +- chore: Replace Prettier with Oxfmt ([#8434](https://github.com/MetaMask/core/pull/8434)) +- chore: secure PUBLISH_PREVIEW_NPM_TOKEN with GitHub environment ([#8011](https://github.com/MetaMask/core/pull/8011)) +- chore: upgrade `typedoc` from `^0.24.8` to `^0.25.13` ([#7898](https://github.com/MetaMask/core/pull/7898)) +- chore: migrate Jest from v27 to v29 ([#7894](https://github.com/MetaMask/core/pull/7894)) +- chore: upgrade Jest-related packages to latest 27.x versions ([#7792](https://github.com/MetaMask/core/pull/7792)) +- chore(lint): Fix suppressed ESLint errors in `json-rpc-middleware-stream` package ([#7463](https://github.com/MetaMask/core/pull/7463)) +- chore: Update ESLint config packages to v15 ([#7305](https://github.com/MetaMask/core/pull/7305)) +- Revert "Release 687.0.0" ([#7201](https://github.com/MetaMask/core/pull/7201)) +- Release 687.0.0 ([#7190](https://github.com/MetaMask/core/pull/7190)) +- chore: Fix all auto-fixable ESLint warnings ([#7105](https://github.com/MetaMask/core/pull/7105)) +- chore: Update `typescript` to v5.3 ([#7081](https://github.com/MetaMask/core/pull/7081)) +- fix: Fix build script not working because of missing `@ts-bridge/cli` dependency ([#7040](https://github.com/MetaMask/core/pull/7040)) + ### Changed - Bump `@metamask/utils` from `^11.8.1` to `^11.12.0` ([#7511](https://github.com/MetaMask/core/pull/7511), [#9074](https://github.com/MetaMask/core/pull/9074), [#10076](https://github.com/MetaMask/core/pull/10076)) @@ -61,7 +83,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ["Are the Types Wrong?"](https://arethetypeswrong.github.io/) tool as ["masquerading as CJS"](https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/FalseCJS.md). All of the ATTW checks now pass. -- Remove chunk files ([#4648](https://github.com/MetaMask/core/pull/4648)). +- Remove chunk files. ([#4648](https://github.com/MetaMask/core/pull/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 @@ -224,13 +246,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 [7.0.0]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-middleware-stream@6.0.2...@metamask/json-rpc-middleware-stream@7.0.0 [6.0.2]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-middleware-stream@6.0.1...@metamask/json-rpc-middleware-stream@6.0.2 [6.0.1]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-middleware-stream@6.0.0...@metamask/json-rpc-middleware-stream@6.0.1 -[6.0.0]: https://github.com/MetaMask/core/compare/json-rpc-middleware-stream@5.0.1...@metamask/json-rpc-middleware-stream@6.0.0 -[5.0.1]: https://github.com/MetaMask/core/compare/json-rpc-middleware-stream@5.0.0...json-rpc-middleware-stream@5.0.1 -[5.0.0]: https://github.com/MetaMask/core/compare/json-rpc-middleware-stream@4.2.3...json-rpc-middleware-stream@5.0.0 -[4.2.3]: https://github.com/MetaMask/core/compare/json-rpc-middleware-stream@4.2.2...json-rpc-middleware-stream@4.2.3 -[4.2.2]: https://github.com/MetaMask/core/compare/json-rpc-middleware-stream@4.2.1...json-rpc-middleware-stream@4.2.2 -[4.2.1]: https://github.com/MetaMask/core/compare/json-rpc-middleware-stream@4.2.0...json-rpc-middleware-stream@4.2.1 -[4.2.0]: https://github.com/MetaMask/core/compare/json-rpc-middleware-stream@4.1.0...json-rpc-middleware-stream@4.2.0 -[4.1.0]: https://github.com/MetaMask/core/compare/json-rpc-middleware-stream@4.0.0...json-rpc-middleware-stream@4.1.0 -[4.0.0]: https://github.com/MetaMask/core/compare/json-rpc-middleware-stream@3.0.0...json-rpc-middleware-stream@4.0.0 -[3.0.0]: https://github.com/MetaMask/core/releases/tag/json-rpc-middleware-stream@3.0.0 +[6.0.0]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-middleware-stream@5.0.1...@metamask/json-rpc-middleware-stream@6.0.0 +[5.0.1]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-middleware-stream@5.0.0...@metamask/json-rpc-middleware-stream@5.0.1 +[5.0.0]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-middleware-stream@4.2.3...@metamask/json-rpc-middleware-stream@5.0.0 +[4.2.3]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-middleware-stream@4.2.2...@metamask/json-rpc-middleware-stream@4.2.3 +[4.2.2]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-middleware-stream@4.2.1...@metamask/json-rpc-middleware-stream@4.2.2 +[4.2.1]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-middleware-stream@4.2.0...@metamask/json-rpc-middleware-stream@4.2.1 +[4.2.0]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-middleware-stream@4.1.0...@metamask/json-rpc-middleware-stream@4.2.0 +[4.1.0]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-middleware-stream@4.0.0...@metamask/json-rpc-middleware-stream@4.1.0 +[4.0.0]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-middleware-stream@3.0.0...@metamask/json-rpc-middleware-stream@4.0.0 +[3.0.0]: https://github.com/MetaMask/core/releases/tag/@metamask/json-rpc-middleware-stream@3.0.0 diff --git a/packages/keyring-controller/CHANGELOG.md b/packages/keyring-controller/CHANGELOG.md index b337df693b2..6510c5b9949 100644 --- a/packages/keyring-controller/CHANGELOG.md +++ b/packages/keyring-controller/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) + ### Changed - Bump `@metamask/eth-sig-util` from `^8.2.0` to `^9.0.0` ([#9999](https://github.com/MetaMask/core/pull/9999)) diff --git a/packages/local-node-utils/CHANGELOG.md b/packages/local-node-utils/CHANGELOG.md index a6197a256d6..8cf36400b78 100644 --- a/packages/local-node-utils/CHANGELOG.md +++ b/packages/local-node-utils/CHANGELOG.md @@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- chore: Enable lint:tsc for 11 additional clean packages ([#9664](https://github.com/MetaMask/core/pull/9664)) +- refactor: add `.js` import extensions to Networks packages ([#9649](https://github.com/MetaMask/core/pull/9649)) +- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) +- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) + ## [1.0.0] ### Added diff --git a/packages/logging-controller/CHANGELOG.md b/packages/logging-controller/CHANGELOG.md index 7fcfc817bfa..ff8b76e644c 100644 --- a/packages/logging-controller/CHANGELOG.md +++ b/packages/logging-controller/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) + ### Changed - Bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/message-manager/CHANGELOG.md b/packages/message-manager/CHANGELOG.md index 57712bfb78c..147ac1bc13b 100644 --- a/packages/message-manager/CHANGELOG.md +++ b/packages/message-manager/CHANGELOG.md @@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- refactor: add `.js` import extensions to Confirmations packages ([#9582](https://github.com/MetaMask/core/pull/9582)) +- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) +- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) +- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) + ### Changed - Bump `@metamask/utils` from `^11.9.0` to `^11.12.0` ([#9074](https://github.com/MetaMask/core/pull/9074), [#10076](https://github.com/MetaMask/core/pull/10076)) @@ -94,8 +102,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Bump `@metamask/base-controller` from `^7.1.0` to `^8.0.0` ([#5135](https://github.com/MetaMask/core/pull/5135)), ([#5305](https://github.com/MetaMask/core/pull/5305)) -- Bump `@metamask/controller-utils` from `^11.4.4` to `^11.5.0` ([#5135](https://github.com/MetaMask/core/pull/5135)), ([#5272](https://github.com/MetaMask/core/pull/5272)) +- Bump `@metamask/base-controller` from `^7.1.0` to `^8.0.0` ([#5135](https://github.com/MetaMask/core/pull/5135), [#5305](https://github.com/MetaMask/core/pull/5305)) +- Bump `@metamask/controller-utils` from `^11.4.4` to `^11.5.0` ([#5135](https://github.com/MetaMask/core/pull/5135), [#5272](https://github.com/MetaMask/core/pull/5272)) - Bump `@metamask/utils` from `^11.0.1` to `^11.1.0` ([#5223](https://github.com/MetaMask/core/pull/5223)) ## [12.0.0] @@ -156,7 +164,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ["Are the Types Wrong?"](https://arethetypeswrong.github.io/) tool as ["masquerading as CJS"](https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/FalseCJS.md). All of the ATTW checks now pass. -- Remove chunk files ([#4648](https://github.com/MetaMask/core/pull/4648)). +- Remove chunk files. ([#4648](https://github.com/MetaMask/core/pull/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 diff --git a/packages/messenger-cli/CHANGELOG.md b/packages/messenger-cli/CHANGELOG.md index 4f0871bb3e6..f262c7e70c9 100644 --- a/packages/messenger-cli/CHANGELOG.md +++ b/packages/messenger-cli/CHANGELOG.md @@ -7,6 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Add lint:tsc package script ([#9652](https://github.com/MetaMask/core/pull/9652)) +- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) +- refactor: add `.js` import extensions to Core Platform packages ([#9571](https://github.com/MetaMask/core/pull/9571)) +- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) +- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) +- chore: remove unused deps in core-platform packages ([#9064](https://github.com/MetaMask/core/pull/9064)) + ### Added - Add `--esm` flag for ESM-compatible import extensions ([#9572](https://github.com/MetaMask/core/pull/9572)) diff --git a/packages/messenger/CHANGELOG.md b/packages/messenger/CHANGELOG.md index c0b538ae9fc..7373cb6aea1 100644 --- a/packages/messenger/CHANGELOG.md +++ b/packages/messenger/CHANGELOG.md @@ -7,6 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- Remove lint rule that deprecates use of :stateChange events ([#10090](https://github.com/MetaMask/core/pull/10090)) +- Constrain MessengerAdapter to match given data services ([#9475](https://github.com/MetaMask/core/pull/9475)) +- Add lint:tsc package script ([#9652](https://github.com/MetaMask/core/pull/9652)) +- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) +- refactor: add `.js` import extensions to Core Platform packages ([#9571](https://github.com/MetaMask/core/pull/9571)) +- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) +- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) + ### Added - Add `delegateAll` method for exhaustive delegation with compile-time checking ([#8338](https://github.com/MetaMask/core/pull/8338)) diff --git a/packages/money-account-api-data-service/CHANGELOG.md b/packages/money-account-api-data-service/CHANGELOG.md index 560d18b83c2..04060658d70 100644 --- a/packages/money-account-api-data-service/CHANGELOG.md +++ b/packages/money-account-api-data-service/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) + ### Changed - Bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/money-account-balance-service/CHANGELOG.md b/packages/money-account-balance-service/CHANGELOG.md index b88d8a16b74..d5e2df9c905 100644 --- a/packages/money-account-balance-service/CHANGELOG.md +++ b/packages/money-account-balance-service/CHANGELOG.md @@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- Remove lint rule that deprecates use of :stateChange events ([#10090](https://github.com/MetaMask/core/pull/10090)) + ### Changed - Bump `@metamask/remote-feature-flag-controller` from `^6.0.0` to `^6.1.1` ([#9980](https://github.com/MetaMask/core/pull/9980), [#10129](https://github.com/MetaMask/core/pull/10129)) diff --git a/packages/money-account-controller/CHANGELOG.md b/packages/money-account-controller/CHANGELOG.md index 8249b7783e9..e49227ff69c 100644 --- a/packages/money-account-controller/CHANGELOG.md +++ b/packages/money-account-controller/CHANGELOG.md @@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- chore: bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) + ### Changed - Bump `@metamask/accounts-controller` from `^39.0.7` to `^39.1.1` ([#9807](https://github.com/MetaMask/core/pull/9807), [#9969](https://github.com/MetaMask/core/pull/9969)) diff --git a/packages/money-account-upgrade-controller/CHANGELOG.md b/packages/money-account-upgrade-controller/CHANGELOG.md index 694d9c05e7b..2cb9d3355f8 100644 --- a/packages/money-account-upgrade-controller/CHANGELOG.md +++ b/packages/money-account-upgrade-controller/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) + ### Changed - Bump `@metamask/remote-feature-flag-controller` from `^6.1.0` to `^6.1.1` ([#10129](https://github.com/MetaMask/core/pull/10129)) diff --git a/packages/money-account-utils/CHANGELOG.md b/packages/money-account-utils/CHANGELOG.md index f7a6c6cfe27..9dda32ac582 100644 --- a/packages/money-account-utils/CHANGELOG.md +++ b/packages/money-account-utils/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) + ### Changed - Bump `@metamask/transaction-controller` from `^69.8.0` to `^69.8.1` ([#10124](https://github.com/MetaMask/core/pull/10124)) diff --git a/packages/multichain-account-service/CHANGELOG.md b/packages/multichain-account-service/CHANGELOG.md index 5ba7c6d5455..cc053ff1887 100644 --- a/packages/multichain-account-service/CHANGELOG.md +++ b/packages/multichain-account-service/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) + ### Changed - Bump `@metamask/accounts-controller` from `^39.1.0` to `^39.1.1` ([#9969](https://github.com/MetaMask/core/pull/9969)) diff --git a/packages/multichain-api-middleware/CHANGELOG.md b/packages/multichain-api-middleware/CHANGELOG.md index 3074c2ff612..b5eb126e1b2 100644 --- a/packages/multichain-api-middleware/CHANGELOG.md +++ b/packages/multichain-api-middleware/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) + ### Changed - Bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/multichain-network-controller/CHANGELOG.md b/packages/multichain-network-controller/CHANGELOG.md index 20185e2afaa..56d8ee036ef 100644 --- a/packages/multichain-network-controller/CHANGELOG.md +++ b/packages/multichain-network-controller/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) + ### Changed - Bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/multichain-transactions-controller/CHANGELOG.md b/packages/multichain-transactions-controller/CHANGELOG.md index 7e93b50cd5a..7fa711adb0a 100644 --- a/packages/multichain-transactions-controller/CHANGELOG.md +++ b/packages/multichain-transactions-controller/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) + ### Changed - Bump `@metamask/accounts-controller` from `^39.0.7` to `^39.1.1` ([#9807](https://github.com/MetaMask/core/pull/9807), [#9969](https://github.com/MetaMask/core/pull/9969)) diff --git a/packages/name-controller/CHANGELOG.md b/packages/name-controller/CHANGELOG.md index e078285a5b7..f51fd8fab08 100644 --- a/packages/name-controller/CHANGELOG.md +++ b/packages/name-controller/CHANGELOG.md @@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- refactor: add `.js` import extensions to Confirmations packages ([#9582](https://github.com/MetaMask/core/pull/9582)) +- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) +- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) +- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) + ### Changed - Bump `@metamask/utils` from `^11.9.0` to `^11.12.0` ([#9074](https://github.com/MetaMask/core/pull/9074), [#10076](https://github.com/MetaMask/core/pull/10076)) @@ -66,7 +74,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Bump `@metamask/utils` from `^11.2.0` to `^11.8.1` ([#6054](https://github.com/MetaMask/core/pull/6054)[#6588](https://github.com/MetaMask/core/pull/6588), [#6708](https://github.com/MetaMask/core/pull/6708)) +- Bump `@metamask/utils` from `^11.2.0` to `^11.8.1` ([#6054](https://github.com/MetaMask/core/pull/6054), [#6588](https://github.com/MetaMask/core/pull/6588), [#6708](https://github.com/MetaMask/core/pull/6708)) - Bump `@metamask/base-controller` from `^8.0.0` to `^8.4.1` ([#5722](https://github.com/MetaMask/core/pull/5722), [#6284](https://github.com/MetaMask/core/pull/6284), [#6355](https://github.com/MetaMask/core/pull/6355), [#6465](https://github.com/MetaMask/core/pull/6465), [#6632](https://github.com/MetaMask/core/pull/6632), [#6807](https://github.com/MetaMask/core/pull/6807)) - Bump `@metamask/controller-utils` from `^11.5.0` to `^11.14.1` ([#5439](https://github.com/MetaMask/core/pull/5439), [#5583](https://github.com/MetaMask/core/pull/5583), [#5765](https://github.com/MetaMask/core/pull/5765), [#5812](https://github.com/MetaMask/core/pull/5812), [#5935](https://github.com/MetaMask/core/pull/5935), [#6069](https://github.com/MetaMask/core/pull/6069), [#6303](https://github.com/MetaMask/core/pull/6303), [#6620](https://github.com/MetaMask/core/pull/6620), [#6629](https://github.com/MetaMask/core/pull/6629), [#6807](https://github.com/MetaMask/core/pull/6807)) @@ -74,9 +82,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Bump `@metamask/base-controller` from `^7.1.0` to `^8.0.0` ([#5135](https://github.com/MetaMask/core/pull/5135)), ([#5305](https://github.com/MetaMask/core/pull/5305)) -- Bump `@metamask/controller-utils` from `^11.4.4` to `^11.5.0` ([#5135](https://github.com/MetaMask/core/pull/5135)), ([#5272](https://github.com/MetaMask/core/pull/5272)) -- Bump `@metamask/utils` from `^10.0.0` to `^11.1.0` ([#5080](https://github.com/MetaMask/core/pull/5080)), ([#5223](https://github.com/MetaMask/core/pull/5223)) +- Bump `@metamask/base-controller` from `^7.1.0` to `^8.0.0` ([#5135](https://github.com/MetaMask/core/pull/5135), [#5305](https://github.com/MetaMask/core/pull/5305)) +- Bump `@metamask/controller-utils` from `^11.4.4` to `^11.5.0` ([#5135](https://github.com/MetaMask/core/pull/5135), [#5272](https://github.com/MetaMask/core/pull/5272)) +- Bump `@metamask/utils` from `^10.0.0` to `^11.1.0` ([#5080](https://github.com/MetaMask/core/pull/5080), [#5223](https://github.com/MetaMask/core/pull/5223)) - Bump `@metamask/base-controller` from `^7.0.0` to `^7.1.0` ([#5079](https://github.com/MetaMask/core/pull/5079)) ## [8.0.2] @@ -105,7 +113,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ["Are the Types Wrong?"](https://arethetypeswrong.github.io/) tool as ["masquerading as CJS"](https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/FalseCJS.md). All of the ATTW checks now pass. -- Remove chunk files ([#4648](https://github.com/MetaMask/core/pull/4648)). +- Remove chunk files. ([#4648](https://github.com/MetaMask/core/pull/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 diff --git a/packages/network-connection-banner-controller/CHANGELOG.md b/packages/network-connection-banner-controller/CHANGELOG.md index aa2f81432c5..871ee8387a1 100644 --- a/packages/network-connection-banner-controller/CHANGELOG.md +++ b/packages/network-connection-banner-controller/CHANGELOG.md @@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- Remove lint rule that deprecates use of :stateChange events ([#10090](https://github.com/MetaMask/core/pull/10090)) + ### Changed - Bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/network-controller/CHANGELOG.md b/packages/network-controller/CHANGELOG.md index 9dfb848ef0a..c837d7647b9 100644 --- a/packages/network-controller/CHANGELOG.md +++ b/packages/network-controller/CHANGELOG.md @@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Move FakeProvider to eth-json-rpc-provider (as FakeInternalProvider) ([#10099](https://github.com/MetaMask/core/pull/10099)) +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- Remove lint rule that deprecates use of :stateChange events ([#10090](https://github.com/MetaMask/core/pull/10090)) + ### Changed - Bump `@metamask/remote-feature-flag-controller` from `^6.0.0` to `^6.1.1` ([#9980](https://github.com/MetaMask/core/pull/9980), [#10129](https://github.com/MetaMask/core/pull/10129)) diff --git a/packages/network-enablement-controller/CHANGELOG.md b/packages/network-enablement-controller/CHANGELOG.md index 87e0444c0ce..1c23884df87 100644 --- a/packages/network-enablement-controller/CHANGELOG.md +++ b/packages/network-enablement-controller/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) + ### Changed - Bump `@metamask/transaction-controller` from `^69.6.1` to `^69.8.1` ([#10046](https://github.com/MetaMask/core/pull/10046), [#10080](https://github.com/MetaMask/core/pull/10080), [#10124](https://github.com/MetaMask/core/pull/10124)) diff --git a/packages/passkey-controller/CHANGELOG.md b/packages/passkey-controller/CHANGELOG.md index bb06e87a5d6..97d8db0be4a 100644 --- a/packages/passkey-controller/CHANGELOG.md +++ b/packages/passkey-controller/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) + ### Changed - Bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/permission-controller/CHANGELOG.md b/packages/permission-controller/CHANGELOG.md index fcbdf217e2f..4624c8b1125 100644 --- a/packages/permission-controller/CHANGELOG.md +++ b/packages/permission-controller/CHANGELOG.md @@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) +- refactor: add `.js` import extensions to Core Platform packages ([#9571](https://github.com/MetaMask/core/pull/9571)) +- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) +- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) + ### Changed - Bump `@metamask/utils` from `^11.9.0` to `^11.12.0` ([#9074](https://github.com/MetaMask/core/pull/9074), [#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/permission-log-controller/CHANGELOG.md b/packages/permission-log-controller/CHANGELOG.md index 5e1953010af..6efb8ceec0a 100644 --- a/packages/permission-log-controller/CHANGELOG.md +++ b/packages/permission-log-controller/CHANGELOG.md @@ -7,6 +7,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) +- refactor: add `.js` import extensions to Core Platform packages ([#9571](https://github.com/MetaMask/core/pull/9571)) +- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) +- chore: Enable Oxfmt for generating method action types files ([#8498](https://github.com/MetaMask/core/pull/8498)) +- chore: Format changelogs with Oxfmt ([#8442](https://github.com/MetaMask/core/pull/8442)) +- Revert "Release 912.0.0 (#8451)" ([#8451](https://github.com/MetaMask/core/pull/8451)) +- Release 912.0.0 ([#8451](https://github.com/MetaMask/core/pull/8451)) +- chore: bump `@metamask/auto-changelog` to `^6.0.0` ([#8441](https://github.com/MetaMask/core/pull/8441)) +- chore: Use Oxfmt for import sorting instead of `import-x/order` ([#8438](https://github.com/MetaMask/core/pull/8438)) +- chore: Replace Prettier with Oxfmt ([#8434](https://github.com/MetaMask/core/pull/8434)) +- feat: extract generate-action-types CLI into @metamask/messenger-cli ([#8378](https://github.com/MetaMask/core/pull/8378)) +- feat(messenger): add `generate-action-types` CLI tool as subpath export ([#8264](https://github.com/MetaMask/core/pull/8264)) + ### Changed - Bump `@metamask/utils` from `^11.9.0` to `^11.12.0` ([#9074](https://github.com/MetaMask/core/pull/9074), [#10076](https://github.com/MetaMask/core/pull/10076)) @@ -77,9 +93,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Bump `@metamask/base-controller` from `^7.0.0` to `^8.0.0` ([#5079](https://github.com/MetaMask/core/pull/5079)), ([#5135](https://github.com/MetaMask/core/pull/5135)), ([#5305](https://github.com/MetaMask/core/pull/5305)) -- Bump `@metamask/json-rpc-engine` from `^10.0.1` to `^10.0.3` ([#5082](https://github.com/MetaMask/core/pull/5082)), ([#5272](https://github.com/MetaMask/core/pull/5272)) -- Bump `@metamask/utils` from `^10.0.0` to `^11.1.0` ([#5080](https://github.com/MetaMask/core/pull/5080)), ([#5223](https://github.com/MetaMask/core/pull/5223)) +- Bump `@metamask/base-controller` from `^7.0.0` to `^8.0.0` ([#5079](https://github.com/MetaMask/core/pull/5079), [#5135](https://github.com/MetaMask/core/pull/5135), [#5305](https://github.com/MetaMask/core/pull/5305)) +- Bump `@metamask/json-rpc-engine` from `^10.0.1` to `^10.0.3` ([#5082](https://github.com/MetaMask/core/pull/5082), [#5272](https://github.com/MetaMask/core/pull/5272)) +- Bump `@metamask/utils` from `^10.0.0` to `^11.1.0` ([#5080](https://github.com/MetaMask/core/pull/5080), [#5223](https://github.com/MetaMask/core/pull/5223)) - Bump `nanoid` from `^3.1.31` to `^3.3.8` ([#5073](https://github.com/MetaMask/core/pull/5073)) ## [3.0.2] @@ -113,7 +129,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ["Are the Types Wrong?"](https://arethetypeswrong.github.io/) tool as ["masquerading as CJS"](https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/FalseCJS.md). All of the ATTW checks now pass. -- Remove chunk files ([#4648](https://github.com/MetaMask/core/pull/4648)). +- Remove chunk files. ([#4648](https://github.com/MetaMask/core/pull/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 diff --git a/packages/phishing-controller/CHANGELOG.md b/packages/phishing-controller/CHANGELOG.md index 1e9bb99b9bf..7bc3c2e1725 100644 --- a/packages/phishing-controller/CHANGELOG.md +++ b/packages/phishing-controller/CHANGELOG.md @@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- Remove lint rule that deprecates use of :stateChange events ([#10090](https://github.com/MetaMask/core/pull/10090)) + ### Changed - Bump `@metamask/transaction-controller` from `^69.8.0` to `^69.8.1` ([#10124](https://github.com/MetaMask/core/pull/10124)) @@ -270,7 +275,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Bump `@metamask/base-controller` from `^8.0.1` to `^8.4.0` ([#6284](https://github.com/MetaMask/core/pull/6284), [#6355](https://github.com/MetaMask/core/pull/6355), [#6465](https://github.com/MetaMask/core/pull/6465), [#6632](https://github.com/MetaMask/core/pull/6632)) - Bump `@metamask/controller-utils` from `^11.11.0` to `^11.14.0` ([#6303](https://github.com/MetaMask/core/pull/6303), [#6620](https://github.com/MetaMask/core/pull/6620), [#6629](https://github.com/MetaMask/core/pull/6629)) - - Bump `@noble/hashes` from `^1.4.0` to `^1.8.0` ([#6101](https://github.com/MetaMask/core/pull/6101)) ## [13.1.0] diff --git a/packages/polling-controller/CHANGELOG.md b/packages/polling-controller/CHANGELOG.md index f23eb254fc0..b1f1c2cbc04 100644 --- a/packages/polling-controller/CHANGELOG.md +++ b/packages/polling-controller/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) + ### Added - Export `AbstractPollingControllerBaseMixin`, `getKey`, `Constructor`, and `PollingTokenSetId` ([#9882](https://github.com/MetaMask/core/pull/9882)) diff --git a/packages/preferences-controller/CHANGELOG.md b/packages/preferences-controller/CHANGELOG.md index 6a20f6ccbb6..191911446f0 100644 --- a/packages/preferences-controller/CHANGELOG.md +++ b/packages/preferences-controller/CHANGELOG.md @@ -7,6 +7,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- chore: bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) +- chore: Enable lint:tsc for 11 additional clean packages ([#9664](https://github.com/MetaMask/core/pull/9664)) +- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) +- refactor: add `.js` import extensions to Core Platform packages ([#9571](https://github.com/MetaMask/core/pull/9571)) +- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) +- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) +- chore: Enable Oxfmt for generating method action types files ([#8498](https://github.com/MetaMask/core/pull/8498)) +- chore: Format changelogs with Oxfmt ([#8442](https://github.com/MetaMask/core/pull/8442)) +- Revert "Release 912.0.0 (#8451)" ([#8451](https://github.com/MetaMask/core/pull/8451)) +- Release 912.0.0 ([#8451](https://github.com/MetaMask/core/pull/8451)) +- chore: bump `@metamask/auto-changelog` to `^6.0.0` ([#8441](https://github.com/MetaMask/core/pull/8441)) +- chore: Replace Prettier with Oxfmt ([#8434](https://github.com/MetaMask/core/pull/8434)) +- feat: extract generate-action-types CLI into @metamask/messenger-cli ([#8378](https://github.com/MetaMask/core/pull/8378)) +- feat(messenger): add `generate-action-types` CLI tool as subpath export ([#8264](https://github.com/MetaMask/core/pull/8264)) + ### Changed - Bump `@metamask/utils` from `^11.9.0` to `^11.11.0` ([#9074](https://github.com/MetaMask/core/pull/9074)) @@ -52,7 +70,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - **BREAKING:** Remove legacy methods and state ([#8115](https://github.com/MetaMask/core/pull/8115)) - `identities`, `lostIdentities` and `selectedAddress` along with any associated methods and types were removed. - `setSmartAccountOptInForAccounts` was also removed as it is deprecated and not used in the clients. -- Removed `@metamask/keyring-controller` and `@metamask/controller-utils` dependencies ([#7995](https://github.com/MetaMask/core/pull/7995)), ([#8115](https://github.com/MetaMask/core/pull/8115)) +- Removed `@metamask/keyring-controller` and `@metamask/controller-utils` dependencies ([#7995](https://github.com/MetaMask/core/pull/7995), [#8115](https://github.com/MetaMask/core/pull/8115)) ## [22.1.0] @@ -211,8 +229,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Bump `@metamask/base-controller` from `^7.0.2` to `^8.0.0` ([#5079](https://github.com/MetaMask/core/pull/5079)), ([#5135](https://github.com/MetaMask/core/pull/5135)), ([#5305](https://github.com/MetaMask/core/pull/5305)) -- Bump `@metamask/controller-utils` from `^11.4.4` to `^11.5.0` ([#5135](https://github.com/MetaMask/core/pull/5135)), ([#5272](https://github.com/MetaMask/core/pull/5272)) +- Bump `@metamask/base-controller` from `^7.0.2` to `^8.0.0` ([#5079](https://github.com/MetaMask/core/pull/5079), [#5135](https://github.com/MetaMask/core/pull/5135), [#5305](https://github.com/MetaMask/core/pull/5305)) +- Bump `@metamask/controller-utils` from `^11.4.4` to `^11.5.0` ([#5135](https://github.com/MetaMask/core/pull/5135), [#5272](https://github.com/MetaMask/core/pull/5272)) ## [15.0.1] @@ -224,7 +242,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- **BREAKING:** Bump `@metamask/keyring-controller` peer dependency from `^18.0.0` to `^19.0.0` ([#4195](https://github.com/MetaMask/core/pull/4956)) +- **BREAKING:** Bump `@metamask/keyring-controller` peer dependency from `^18.0.0` to `^19.0.0` ([#4195](https://github.com/MetaMask/core/pull/4195)) ## [14.0.0] @@ -277,7 +295,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ["Are the Types Wrong?"](https://arethetypeswrong.github.io/) tool as ["masquerading as CJS"](https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/FalseCJS.md). All of the ATTW checks now pass. -- Remove chunk files ([#4648](https://github.com/MetaMask/core/pull/4648)). +- Remove chunk files. ([#4648](https://github.com/MetaMask/core/pull/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 @@ -505,7 +523,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added -- `disabledRpcMethodPreferences` state to PreferencesController ([#1109](https://github.com/MetaMask/core/pull/1109)). See [this PR on extension](https://github.com/MetaMask/metamask-extension/pull/17308) and [this ticket](https://github.com/MetaMask/metamask-mobile/issues/5676) +- `disabledRpcMethodPreferences` state to PreferencesController. See [this PR on extension](https://github.com/MetaMask/metamask-extension/pull/17308) and [this ticket](https://github.com/MetaMask/metamask-mobile/issues/5676) ([#1109](https://github.com/MetaMask/core/pull/1109)) ## [2.0.0] diff --git a/packages/rate-limit-controller/CHANGELOG.md b/packages/rate-limit-controller/CHANGELOG.md index d55af2c41c4..ef3d3f1075c 100644 --- a/packages/rate-limit-controller/CHANGELOG.md +++ b/packages/rate-limit-controller/CHANGELOG.md @@ -7,6 +7,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- chore: Enable lint:tsc for 11 additional clean packages ([#9664](https://github.com/MetaMask/core/pull/9664)) +- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) +- refactor: add `.js` import extensions to Core Platform packages ([#9571](https://github.com/MetaMask/core/pull/9571)) +- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) +- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) +- chore: Format changelogs with Oxfmt ([#8442](https://github.com/MetaMask/core/pull/8442)) +- Revert "Release 912.0.0 (#8451)" ([#8451](https://github.com/MetaMask/core/pull/8451)) +- Release 912.0.0 ([#8451](https://github.com/MetaMask/core/pull/8451)) +- chore: bump `@metamask/auto-changelog` to `^6.0.0` ([#8441](https://github.com/MetaMask/core/pull/8441)) +- chore: Replace Prettier with Oxfmt ([#8434](https://github.com/MetaMask/core/pull/8434)) + ### Changed - Bump `@metamask/utils` from `^11.9.0` to `^11.12.0` ([#9074](https://github.com/MetaMask/core/pull/9074), [#10076](https://github.com/MetaMask/core/pull/10076)) @@ -51,9 +65,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Bump `@metamask/base-controller` from `^7.0.2` to `^8.0.0` ([#5079](https://github.com/MetaMask/core/pull/5079)), ([#5135](https://github.com/MetaMask/core/pull/5135)), ([#5305](https://github.com/MetaMask/core/pull/5305)) +- Bump `@metamask/base-controller` from `^7.0.2` to `^8.0.0` ([#5079](https://github.com/MetaMask/core/pull/5079), [#5135](https://github.com/MetaMask/core/pull/5135), [#5305](https://github.com/MetaMask/core/pull/5305)) - Bump `@metamask/rpc-errors` from `^7.0.1` to `^7.0.2` ([#5080](https://github.com/MetaMask/core/pull/5080)) -- Bump `@metamask/utils` from `^10.0.0` to `^11.1.0` ([#5080](https://github.com/MetaMask/core/pull/5080)), ([#5223](https://github.com/MetaMask/core/pull/5223)) +- Bump `@metamask/utils` from `^10.0.0` to `^11.1.0` ([#5080](https://github.com/MetaMask/core/pull/5080), [#5223](https://github.com/MetaMask/core/pull/5223)) ## [6.0.2] @@ -81,7 +95,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ["Are the Types Wrong?"](https://arethetypeswrong.github.io/) tool as ["masquerading as CJS"](https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/FalseCJS.md). All of the ATTW checks now pass. -- Remove chunk files ([#4648](https://github.com/MetaMask/core/pull/4648)). +- Remove chunk files. ([#4648](https://github.com/MetaMask/core/pull/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 @@ -98,7 +112,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Bump `@metamask/base-controller` to `^5.0.2` ([#4232](https://github.comMetaMask/core/pull/4232)) +- Bump `@metamask/base-controller` to `^5.0.2` ([#4232](https://github.com/MetaMask/core/pull/4232)) ## [5.0.1] diff --git a/packages/react-data-query/CHANGELOG.md b/packages/react-data-query/CHANGELOG.md index 336906ecf80..2f89a6b1dd2 100644 --- a/packages/react-data-query/CHANGELOG.md +++ b/packages/react-data-query/CHANGELOG.md @@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- Add typechecking in CI for react-data-query ([#10010](https://github.com/MetaMask/core/pull/10010)) + ### Changed - Bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/sample-controllers/CHANGELOG.md b/packages/sample-controllers/CHANGELOG.md index 0883caa19e2..525dcf8741f 100644 --- a/packages/sample-controllers/CHANGELOG.md +++ b/packages/sample-controllers/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) + ### Changed - Bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/seedless-onboarding-controller/CHANGELOG.md b/packages/seedless-onboarding-controller/CHANGELOG.md index eb101fee7a6..f75a286e510 100644 --- a/packages/seedless-onboarding-controller/CHANGELOG.md +++ b/packages/seedless-onboarding-controller/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) + ### Changed - Bump `@metamask/keyring-controller` from `^27.1.0` to `^27.1.1` ([#9791](https://github.com/MetaMask/core/pull/9791)) diff --git a/packages/selected-network-controller/CHANGELOG.md b/packages/selected-network-controller/CHANGELOG.md index f2ca307940f..b4eda31b3b0 100644 --- a/packages/selected-network-controller/CHANGELOG.md +++ b/packages/selected-network-controller/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) + ### Changed - Bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/sentinel-api-service/CHANGELOG.md b/packages/sentinel-api-service/CHANGELOG.md index 7072d446e72..95edc19cb10 100644 --- a/packages/sentinel-api-service/CHANGELOG.md +++ b/packages/sentinel-api-service/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) + ### Changed - Bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/signature-controller/CHANGELOG.md b/packages/signature-controller/CHANGELOG.md index 16f1f7c0861..1fedf673ac6 100644 --- a/packages/signature-controller/CHANGELOG.md +++ b/packages/signature-controller/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) + ### Changed - Bump `@metamask/eth-sig-util` from `^8.2.0` to `^9.0.0` ([#9999](https://github.com/MetaMask/core/pull/9999)) diff --git a/packages/snap-account-service/CHANGELOG.md b/packages/snap-account-service/CHANGELOG.md index a17cceb609f..b01ab84b37a 100644 --- a/packages/snap-account-service/CHANGELOG.md +++ b/packages/snap-account-service/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) + ### Changed - Bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/solana-test-validator-up/CHANGELOG.md b/packages/solana-test-validator-up/CHANGELOG.md index e57892ba85d..bb5584e1573 100644 --- a/packages/solana-test-validator-up/CHANGELOG.md +++ b/packages/solana-test-validator-up/CHANGELOG.md @@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- refactor: add `.js` import extensions to Networks packages ([#9649](https://github.com/MetaMask/core/pull/9649)) +- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) +- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) + ## [1.0.0] ### Added diff --git a/packages/storage-service/CHANGELOG.md b/packages/storage-service/CHANGELOG.md index 4b8dfd758a6..a49dd87b601 100644 --- a/packages/storage-service/CHANGELOG.md +++ b/packages/storage-service/CHANGELOG.md @@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) +- chore: Enable lint:tsc for 11 additional clean packages ([#9664](https://github.com/MetaMask/core/pull/9664)) +- refactor: add `.js` import extensions to Mobile and Extension Platform packages ([#9628](https://github.com/MetaMask/core/pull/9628)) +- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) +- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) + ### Changed - Bump `@metamask/utils` from `^11.9.0` to `^11.12.0` ([#9074](https://github.com/MetaMask/core/pull/9074), [#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/user-operation-controller/CHANGELOG.md b/packages/user-operation-controller/CHANGELOG.md index 1cba7dbb91e..ec33ecf308f 100644 --- a/packages/user-operation-controller/CHANGELOG.md +++ b/packages/user-operation-controller/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Uncategorized + +- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) + ### Changed - Bump `@metamask/transaction-controller` from `^69.6.1` to `^69.8.1` ([#10046](https://github.com/MetaMask/core/pull/10046), [#10080](https://github.com/MetaMask/core/pull/10080), [#10124](https://github.com/MetaMask/core/pull/10124)) From fc6c64875f5a31674ddce4d8af9bef148b5996b2 Mon Sep 17 00:00:00 2001 From: Bernardo Garces Chapero Date: Wed, 9 Sep 2026 17:06:54 +0100 Subject: [PATCH 2/4] Update Release 1246.0.0 --- package.json | 2 +- packages/accounts-controller/CHANGELOG.md | 4 -- packages/address-book-controller/CHANGELOG.md | 16 ++----- packages/ai-controllers/CHANGELOG.md | 4 -- packages/analytics-controller/CHANGELOG.md | 4 -- packages/announcement-controller/CHANGELOG.md | 21 +-------- packages/app-metadata-controller/CHANGELOG.md | 14 ------ packages/approval-controller/CHANGELOG.md | 8 ---- packages/assets-controller/package.json | 2 +- packages/assets-controllers/CHANGELOG.md | 5 ++- packages/assets-controllers/package.json | 2 +- .../authenticated-user-storage/CHANGELOG.md | 4 -- packages/base-controller/CHANGELOG.md | 22 ++-------- packages/base-data-service/CHANGELOG.md | 8 ---- packages/bitcoin-regtest-up/CHANGELOG.md | 7 --- packages/bridge-controller/package.json | 2 +- packages/build-utils/CHANGELOG.md | 28 ++---------- .../chain-agnostic-permission/CHANGELOG.md | 10 ----- packages/chomp-api-service/CHANGELOG.md | 4 -- packages/client-controller/CHANGELOG.md | 16 ------- packages/client-utils/CHANGELOG.md | 4 -- packages/compliance-controller/CHANGELOG.md | 7 --- packages/composable-controller/CHANGELOG.md | 31 ++++--------- .../config-registry-controller/CHANGELOG.md | 4 -- packages/connectivity-controller/CHANGELOG.md | 8 ---- packages/controller-utils/CHANGELOG.md | 10 ----- packages/delegation-controller/CHANGELOG.md | 12 +---- packages/eip-5792-middleware/CHANGELOG.md | 12 +---- .../CHANGELOG.md | 7 --- .../CHANGELOG.md | 8 ---- packages/eth-block-tracker/CHANGELOG.md | 18 -------- packages/eth-json-rpc-middleware/CHANGELOG.md | 4 -- packages/eth-json-rpc-provider/CHANGELOG.md | 14 +----- packages/foundryup/CHANGELOG.md | 21 --------- packages/gas-fee-controller/CHANGELOG.md | 4 -- .../gator-permissions-controller/CHANGELOG.md | 4 -- packages/geolocation-controller/CHANGELOG.md | 4 -- packages/java-tron-up/CHANGELOG.md | 7 --- packages/json-rpc-engine/CHANGELOG.md | 21 +++------ .../json-rpc-middleware-stream/CHANGELOG.md | 44 +++++-------------- packages/keyring-controller/CHANGELOG.md | 4 -- packages/local-node-utils/CHANGELOG.md | 8 ---- packages/logging-controller/CHANGELOG.md | 4 -- packages/message-manager/CHANGELOG.md | 14 ++---- packages/messenger-cli/CHANGELOG.md | 9 ---- packages/messenger/CHANGELOG.md | 11 ----- .../CHANGELOG.md | 4 -- .../CHANGELOG.md | 5 --- .../money-account-controller/CHANGELOG.md | 5 --- .../CHANGELOG.md | 4 -- packages/money-account-utils/CHANGELOG.md | 4 -- .../multichain-account-service/CHANGELOG.md | 4 -- .../multichain-api-middleware/CHANGELOG.md | 4 -- .../CHANGELOG.md | 4 -- .../CHANGELOG.md | 4 -- packages/name-controller/CHANGELOG.md | 18 +++----- .../CHANGELOG.md | 5 --- packages/network-controller/CHANGELOG.md | 6 --- .../CHANGELOG.md | 4 -- packages/passkey-controller/CHANGELOG.md | 4 -- packages/permission-controller/CHANGELOG.md | 8 ---- .../permission-log-controller/CHANGELOG.md | 24 ++-------- packages/phishing-controller/CHANGELOG.md | 6 +-- packages/polling-controller/CHANGELOG.md | 4 -- packages/preferences-controller/CHANGELOG.md | 30 +++---------- packages/rate-limit-controller/CHANGELOG.md | 22 ++-------- packages/react-data-query/CHANGELOG.md | 5 --- packages/sample-controllers/CHANGELOG.md | 4 -- .../CHANGELOG.md | 4 -- .../selected-network-controller/CHANGELOG.md | 4 -- packages/sentinel-api-service/CHANGELOG.md | 4 -- packages/signature-controller/CHANGELOG.md | 4 -- packages/snap-account-service/CHANGELOG.md | 4 -- .../solana-test-validator-up/CHANGELOG.md | 7 --- packages/storage-service/CHANGELOG.md | 8 ---- .../transaction-pay-controller/package.json | 2 +- .../user-operation-controller/CHANGELOG.md | 4 -- yarn.lock | 8 ++-- 78 files changed, 79 insertions(+), 625 deletions(-) diff --git a/package.json b/package.json index 4edb9c93809..48188fdcb50 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@metamask/core-monorepo", - "version": "1245.0.0", + "version": "1246.0.0", "private": true, "description": "Monorepo for packages shared between MetaMask clients", "repository": { diff --git a/packages/accounts-controller/CHANGELOG.md b/packages/accounts-controller/CHANGELOG.md index b250b13e1ae..67107bc2c9f 100644 --- a/packages/accounts-controller/CHANGELOG.md +++ b/packages/accounts-controller/CHANGELOG.md @@ -7,10 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) - ### Changed - Bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/address-book-controller/CHANGELOG.md b/packages/address-book-controller/CHANGELOG.md index e4b28e56532..b23254f19f4 100644 --- a/packages/address-book-controller/CHANGELOG.md +++ b/packages/address-book-controller/CHANGELOG.md @@ -7,14 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- refactor: add `.js` import extensions to Confirmations packages ([#9582](https://github.com/MetaMask/core/pull/9582)) -- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) -- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) -- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) - ### Changed - Bump `@metamask/utils` from `^11.9.0` to `^11.12.0` ([#9074](https://github.com/MetaMask/core/pull/9074), [#10076](https://github.com/MetaMask/core/pull/10076)) @@ -114,10 +106,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Bump `@metamask/base-controller` from `^7.0.2` to `^8.0.0` ([#5079](https://github.com/MetaMask/core/pull/5079), [#5135](https://github.com/MetaMask/core/pull/5135), [#5305](https://github.com/MetaMask/core/pull/5305)) -- Bump `@metamask/controller-utils` from `^11.4.4` to `^11.5.0` ([#5135](https://github.com/MetaMask/core/pull/5135), [#5272](https://github.com/MetaMask/core/pull/5272)) +- Bump `@metamask/base-controller` from `^7.0.2` to `^8.0.0` ([#5079](https://github.com/MetaMask/core/pull/5079)), ([#5135](https://github.com/MetaMask/core/pull/5135)), ([#5305](https://github.com/MetaMask/core/pull/5305)) +- Bump `@metamask/controller-utils` from `^11.4.4` to `^11.5.0` ([#5135](https://github.com/MetaMask/core/pull/5135)), ([#5272](https://github.com/MetaMask/core/pull/5272)) - Bump `@metamask/rpc-errors` from `^7.0.1` to `^7.0.2` ([#5080](https://github.com/MetaMask/core/pull/5080)) -- Bump `@metamask/utils` from `^10.0.0` to `^11.1.0` ([#5080](https://github.com/MetaMask/core/pull/5080), [#5223](https://github.com/MetaMask/core/pull/5223)) +- Bump `@metamask/utils` from `^10.0.0` to `^11.1.0` ([#5080](https://github.com/MetaMask/core/pull/5080)), ([#5223](https://github.com/MetaMask/core/pull/5223)) ## [6.0.2] @@ -139,7 +131,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ["Are the Types Wrong?"](https://arethetypeswrong.github.io/) tool as ["masquerading as CJS"](https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/FalseCJS.md). All of the ATTW checks now pass. -- Remove chunk files. ([#4648](https://github.com/MetaMask/core/pull/4648)) +- Remove chunk files ([#4648](https://github.com/MetaMask/core/pull/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 diff --git a/packages/ai-controllers/CHANGELOG.md b/packages/ai-controllers/CHANGELOG.md index e957e8c06ab..ffaa06c3bef 100644 --- a/packages/ai-controllers/CHANGELOG.md +++ b/packages/ai-controllers/CHANGELOG.md @@ -7,10 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) - ### Changed - Bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/analytics-controller/CHANGELOG.md b/packages/analytics-controller/CHANGELOG.md index 0972a9c4181..76c192f1cc4 100644 --- a/packages/analytics-controller/CHANGELOG.md +++ b/packages/analytics-controller/CHANGELOG.md @@ -7,10 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) - ## [2.1.0] ### Added diff --git a/packages/announcement-controller/CHANGELOG.md b/packages/announcement-controller/CHANGELOG.md index 90ea9c99251..f81878d8ce7 100644 --- a/packages/announcement-controller/CHANGELOG.md +++ b/packages/announcement-controller/CHANGELOG.md @@ -7,23 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- chore: Enable lint:tsc for 11 additional clean packages ([#9664](https://github.com/MetaMask/core/pull/9664)) -- refactor: add `.js` import extensions to UX Teams packages ([#9621](https://github.com/MetaMask/core/pull/9621)) -- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) -- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) -- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) -- chore: Enable Oxfmt for generating method action types files ([#8498](https://github.com/MetaMask/core/pull/8498)) -- chore: Format changelogs with Oxfmt ([#8442](https://github.com/MetaMask/core/pull/8442)) -- Revert "Release 912.0.0 (#8451)" ([#8451](https://github.com/MetaMask/core/pull/8451)) -- Release 912.0.0 ([#8451](https://github.com/MetaMask/core/pull/8451)) -- chore: bump `@metamask/auto-changelog` to `^6.0.0` ([#8441](https://github.com/MetaMask/core/pull/8441)) -- chore: Replace Prettier with Oxfmt ([#8434](https://github.com/MetaMask/core/pull/8434)) -- feat: extract generate-action-types CLI into @metamask/messenger-cli ([#8378](https://github.com/MetaMask/core/pull/8378)) -- feat(messenger): add `generate-action-types` CLI tool as subpath export ([#8264](https://github.com/MetaMask/core/pull/8264)) - ### Changed - Bump `@metamask/messenger` from `^1.0.0` to `^2.0.0` ([#8364](https://github.com/MetaMask/core/pull/8364), [#8373](https://github.com/MetaMask/core/pull/8373), [#8632](https://github.com/MetaMask/core/pull/8632), [#9392](https://github.com/MetaMask/core/pull/9392)) @@ -73,7 +56,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Bump `@metamask/base-controller` from `^7.0.2` to `^8.0.0` ([#5079](https://github.com/MetaMask/core/pull/5079), [#5135](https://github.com/MetaMask/core/pull/5135), [#5305](https://github.com/MetaMask/core/pull/5305)) +- Bump `@metamask/base-controller` from `^7.0.2` to `^8.0.0` ([#5079](https://github.com/MetaMask/core/pull/5079)), ([#5135](https://github.com/MetaMask/core/pull/5135)), ([#5305](https://github.com/MetaMask/core/pull/5305)) ## [7.0.2] @@ -97,7 +80,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ["Are the Types Wrong?"](https://arethetypeswrong.github.io/) tool as ["masquerading as CJS"](https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/FalseCJS.md). All of the ATTW checks now pass. -- Remove chunk files. ([#4648](https://github.com/MetaMask/core/pull/4648)) +- Remove chunk files ([#4648](https://github.com/MetaMask/core/pull/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 diff --git a/packages/app-metadata-controller/CHANGELOG.md b/packages/app-metadata-controller/CHANGELOG.md index 56d1290dd9e..f5790c9ced5 100644 --- a/packages/app-metadata-controller/CHANGELOG.md +++ b/packages/app-metadata-controller/CHANGELOG.md @@ -7,20 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- chore: Enable lint:tsc for 11 additional clean packages ([#9664](https://github.com/MetaMask/core/pull/9664)) -- refactor: add `.js` import extensions to Mobile Platform packages ([#9618](https://github.com/MetaMask/core/pull/9618)) -- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) -- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) -- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) -- chore: Format changelogs with Oxfmt ([#8442](https://github.com/MetaMask/core/pull/8442)) -- Revert "Release 912.0.0 (#8451)" ([#8451](https://github.com/MetaMask/core/pull/8451)) -- Release 912.0.0 ([#8451](https://github.com/MetaMask/core/pull/8451)) -- chore: bump `@metamask/auto-changelog` to `^6.0.0` ([#8441](https://github.com/MetaMask/core/pull/8441)) -- chore: Replace Prettier with Oxfmt ([#8434](https://github.com/MetaMask/core/pull/8434)) - ### Changed - Bump `@metamask/messenger` from `^1.0.0` to `^2.0.0` ([#8364](https://github.com/MetaMask/core/pull/8364), [#8373](https://github.com/MetaMask/core/pull/8373), [#8632](https://github.com/MetaMask/core/pull/8632), [#9392](https://github.com/MetaMask/core/pull/9392)) diff --git a/packages/approval-controller/CHANGELOG.md b/packages/approval-controller/CHANGELOG.md index c4509d578a5..1d75a959c9f 100644 --- a/packages/approval-controller/CHANGELOG.md +++ b/packages/approval-controller/CHANGELOG.md @@ -7,14 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- refactor: add `.js` import extensions to Confirmations packages ([#9582](https://github.com/MetaMask/core/pull/9582)) -- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) -- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) -- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) - ### Changed - Bump `@metamask/utils` from `^11.9.0` to `^11.12.0` ([#9074](https://github.com/MetaMask/core/pull/9074), [#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/assets-controller/package.json b/packages/assets-controller/package.json index 665d72093cc..fd453079cb9 100644 --- a/packages/assets-controller/package.json +++ b/packages/assets-controller/package.json @@ -60,7 +60,7 @@ "@ethersproject/providers": "^5.7.0", "@metamask/account-tree-controller": "^9.0.0", "@metamask/accounts-controller": "^39.1.1", - "@metamask/assets-controllers": "^111.2.0", + "@metamask/assets-controllers": "^111.3.0", "@metamask/base-controller": "^9.1.0", "@metamask/client-controller": "^1.0.1", "@metamask/config-registry-controller": "^3.1.0", diff --git a/packages/assets-controllers/CHANGELOG.md b/packages/assets-controllers/CHANGELOG.md index 22ae494c0a1..ee7b674b45b 100644 --- a/packages/assets-controllers/CHANGELOG.md +++ b/packages/assets-controllers/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [111.3.0] + ### Changed - `DeFiPositionsControllerV2.fetchDeFiPositions` now sets `forceFetchDeFiPositions` on the Accounts API request only when `forceRefresh` is true ([#10149](https://github.com/MetaMask/core/pull/10149)) @@ -3465,7 +3467,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Use Ethers for AssetsContractController ([#845](https://github.com/MetaMask/core/pull/845)) -[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@111.2.0...HEAD +[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@111.3.0...HEAD +[111.3.0]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@111.2.0...@metamask/assets-controllers@111.3.0 [111.2.0]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@111.1.3...@metamask/assets-controllers@111.2.0 [111.1.3]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@111.1.2...@metamask/assets-controllers@111.1.3 [111.1.2]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@111.1.1...@metamask/assets-controllers@111.1.2 diff --git a/packages/assets-controllers/package.json b/packages/assets-controllers/package.json index 46e85fb979b..dcef83008ac 100644 --- a/packages/assets-controllers/package.json +++ b/packages/assets-controllers/package.json @@ -1,6 +1,6 @@ { "name": "@metamask/assets-controllers", - "version": "111.2.0", + "version": "111.3.0", "description": "Controllers which manage interactions involving ERC-20, ERC-721, and ERC-1155 tokens (including NFTs)", "keywords": [ "Ethereum", diff --git a/packages/authenticated-user-storage/CHANGELOG.md b/packages/authenticated-user-storage/CHANGELOG.md index bde7515d2b6..322a697481b 100644 --- a/packages/authenticated-user-storage/CHANGELOG.md +++ b/packages/authenticated-user-storage/CHANGELOG.md @@ -7,10 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) - ### Changed - Bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/base-controller/CHANGELOG.md b/packages/base-controller/CHANGELOG.md index 90d2b78fd51..6a9423092e3 100644 --- a/packages/base-controller/CHANGELOG.md +++ b/packages/base-controller/CHANGELOG.md @@ -7,20 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- Add lint:tsc package script ([#9652](https://github.com/MetaMask/core/pull/9652)) -- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) -- refactor: add `.js` import extensions to Core Platform packages ([#9571](https://github.com/MetaMask/core/pull/9571)) -- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) -- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) -- chore: remove unused deps in core-platform packages ([#9064](https://github.com/MetaMask/core/pull/9064)) -- Release 973.0.0 ([#8753](https://github.com/MetaMask/core/pull/8753)) -- Release 970.0.0 ([#8746](https://github.com/MetaMask/core/pull/8746)) -- Release/951.0.0 ([#8661](https://github.com/MetaMask/core/pull/8661)) -- chore: Format changelogs with Oxfmt ([#8442](https://github.com/MetaMask/core/pull/8442)) - ### Changed - Bump `@metamask/utils` from `^11.9.0` to `^11.12.0` ([#9074](https://github.com/MetaMask/core/pull/9074), [#10076](https://github.com/MetaMask/core/pull/10076)) @@ -165,14 +151,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Remove `RestrictedControllerMessenger` export which was an alias for `RestrictedMessenger`. Consumers should import `RestrictedMessenger` directly - Remove `RestrictedControllerMessengerConstraint` type export which was an alias for `RestrictedMessengerConstraint`. Consumers should use `RestrictedMessengerConstraint` type directly - Simplify `RestrictedMessenger` constructor by removing deprecated `controllerMessenger` parameter. The messenger instance should now be passed using only the `messenger` parameter instead of supporting both options -- Widen input parameter for type guard `isBaseController` from `ControllerInstance` to `unknown` ([#5018](https://github.com/MetaMask/core/pull/5018)) +- Widen input parameter for type guard `isBaseController` from `ControllerInstance` to `unknown` ([#5018](https://github.com/MetaMask/core/pull/5018/)) - Bump `@metamask/json-rpc-engine` from `^10.0.2` to `^10.0.3` ([#5272](https://github.com/MetaMask/core/pull/5272)) - Bump `@metamask/utils` from `^11.0.1` to `^11.1.0` ([#5223](https://github.com/MetaMask/core/pull/5223)) ### Removed -- **BREAKING:** Remove class `BaseControllerV1` and type guard `isBaseControllerV1` ([#5018](https://github.com/MetaMask/core/pull/5018)) -- **BREAKING:** Remove types `BaseConfig`, `BaseControllerV1Instance`, `BaseState`, `ConfigConstraintV1`, `Listener`, `StateConstraintV1`, `LegacyControllerStateConstraint`, `ControllerInstance` ([#5018](https://github.com/MetaMask/core/pull/5018)) +- **BREAKING:** Remove class `BaseControllerV1` and type guard `isBaseControllerV1` ([#5018](https://github.com/MetaMask/core/pull/5018/)) +- **BREAKING:** Remove types `BaseConfig`, `BaseControllerV1Instance`, `BaseState`, `ConfigConstraintV1`, `Listener`, `StateConstraintV1`, `LegacyControllerStateConstraint`, `ControllerInstance` ([#5018](https://github.com/MetaMask/core/pull/5018/)) ## [7.1.1] @@ -209,7 +195,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ["Are the Types Wrong?"](https://arethetypeswrong.github.io/) tool as ["masquerading as CJS"](https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/FalseCJS.md). All of the ATTW checks now pass. -- Remove chunk files. ([#4648](https://github.com/MetaMask/core/pull/4648)) +- Remove chunk files ([#4648](https://github.com/MetaMask/core/pull/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 diff --git a/packages/base-data-service/CHANGELOG.md b/packages/base-data-service/CHANGELOG.md index 679dd5150df..0cfa9bf8d00 100644 --- a/packages/base-data-service/CHANGELOG.md +++ b/packages/base-data-service/CHANGELOG.md @@ -7,14 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- Remove lint rule that deprecates use of :stateChange events ([#10090](https://github.com/MetaMask/core/pull/10090)) -- Add typechecking in CI for react-data-query ([#10010](https://github.com/MetaMask/core/pull/10010)) -- Enable typechecking in CI for base-data-service ([#10009](https://github.com/MetaMask/core/pull/10009)) -- docs: Improve `ExampleDataService` types ([#10001](https://github.com/MetaMask/core/pull/10001)) - ### Changed - Bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/bitcoin-regtest-up/CHANGELOG.md b/packages/bitcoin-regtest-up/CHANGELOG.md index 0100765a11b..29eb0135d41 100644 --- a/packages/bitcoin-regtest-up/CHANGELOG.md +++ b/packages/bitcoin-regtest-up/CHANGELOG.md @@ -7,13 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- refactor: add `.js` import extensions to Networks packages ([#9649](https://github.com/MetaMask/core/pull/9649)) -- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) -- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) - ## [1.0.0] ### Added diff --git a/packages/bridge-controller/package.json b/packages/bridge-controller/package.json index fabd8cae8fc..33ab9250bf7 100644 --- a/packages/bridge-controller/package.json +++ b/packages/bridge-controller/package.json @@ -61,7 +61,7 @@ "@ethersproject/providers": "^5.7.0", "@metamask/accounts-controller": "^39.1.1", "@metamask/assets-controller": "^15.1.0", - "@metamask/assets-controllers": "^111.2.0", + "@metamask/assets-controllers": "^111.3.0", "@metamask/base-controller": "^9.1.0", "@metamask/controller-utils": "^12.3.0", "@metamask/gas-fee-controller": "^26.3.2", diff --git a/packages/build-utils/CHANGELOG.md b/packages/build-utils/CHANGELOG.md index d1944a4fc10..bbcfaa9223f 100644 --- a/packages/build-utils/CHANGELOG.md +++ b/packages/build-utils/CHANGELOG.md @@ -7,28 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- chore: Enable lint:tsc for 11 additional clean packages ([#9664](https://github.com/MetaMask/core/pull/9664)) -- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) -- refactor: add `.js` import extensions to Core Platform packages ([#9571](https://github.com/MetaMask/core/pull/9571)) -- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) -- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) -- chore: Format changelogs with Oxfmt ([#8442](https://github.com/MetaMask/core/pull/8442)) -- chore: bump `@metamask/auto-changelog` to `^6.0.0` ([#8441](https://github.com/MetaMask/core/pull/8441)) -- chore: Use Oxfmt for import sorting instead of `import-x/order` ([#8438](https://github.com/MetaMask/core/pull/8438)) -- chore: Replace Prettier with Oxfmt ([#8434](https://github.com/MetaMask/core/pull/8434)) -- chore: secure PUBLISH_PREVIEW_NPM_TOKEN with GitHub environment ([#8011](https://github.com/MetaMask/core/pull/8011)) -- chore: upgrade `typedoc` from `^0.24.8` to `^0.25.13` ([#7898](https://github.com/MetaMask/core/pull/7898)) -- chore: migrate Jest from v27 to v29 ([#7894](https://github.com/MetaMask/core/pull/7894)) -- chore: upgrade Jest-related packages to latest 27.x versions ([#7792](https://github.com/MetaMask/core/pull/7792)) -- chore(lint): Fix suppressed ESLint errors in `build-utils` package ([#7460](https://github.com/MetaMask/core/pull/7460)) -- chore: Re-enable `@typescript-eslint/no-unnecessary-type-assertions` ([#7296](https://github.com/MetaMask/core/pull/7296)) -- chore: Fix all auto-fixable ESLint warnings ([#7105](https://github.com/MetaMask/core/pull/7105)) -- chore: Update `typescript` to v5.3 ([#7081](https://github.com/MetaMask/core/pull/7081)) -- fix: Fix build script not working because of missing `@ts-bridge/cli` dependency ([#7040](https://github.com/MetaMask/core/pull/7040)) - ### Changed - Bump `@metamask/utils` from `^11.8.1` to `^11.12.0` ([#7511](https://github.com/MetaMask/core/pull/7511), [#9074](https://github.com/MetaMask/core/pull/9074), [#10076](https://github.com/MetaMask/core/pull/10076)) @@ -43,7 +21,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Bump `@metamask/utils` from `^10.0.0` to `^11.1.0` ([#5080](https://github.com/MetaMask/core/pull/5080), [#5223](https://github.com/MetaMask/core/pull/5223)) +- Bump `@metamask/utils` from `^10.0.0` to `^11.1.0` ([#5080](https://github.com/MetaMask/core/pull/5080)), ([#5223](https://github.com/MetaMask/core/pull/5223)) ## [3.0.2] @@ -69,7 +47,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ["Are the Types Wrong?"](https://arethetypeswrong.github.io/) tool as ["masquerading as CJS"](https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/FalseCJS.md). All of the ATTW checks now pass. -- Remove chunk files. ([#4648](https://github.com/MetaMask/core/pull/4648)) +- Remove chunk files ([#4648](https://github.com/MetaMask/core/pull/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 @@ -111,7 +89,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added -- Initial release ([#3577](https://github.com/MetaMask/core/pull/3577), [#3588](https://github.com/MetaMask/core/pull/3588)) +- Initial release ([#3577](https://github.com/MetaMask/core/pull/3577) [#3588](https://github.com/MetaMask/core/pull/3588)) [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/build-utils@3.0.4...HEAD [3.0.4]: https://github.com/MetaMask/core/compare/@metamask/build-utils@3.0.3...@metamask/build-utils@3.0.4 diff --git a/packages/chain-agnostic-permission/CHANGELOG.md b/packages/chain-agnostic-permission/CHANGELOG.md index 75bb1a9b50e..58472bbabca 100644 --- a/packages/chain-agnostic-permission/CHANGELOG.md +++ b/packages/chain-agnostic-permission/CHANGELOG.md @@ -7,16 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- chore: bump accounts deps ([#9754](https://github.com/MetaMask/core/pull/9754)) -- chore: bump accounts deps ([#9676](https://github.com/MetaMask/core/pull/9676)) -- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) -- refactor: add `.js` import extensions to Core Platform packages ([#9571](https://github.com/MetaMask/core/pull/9571)) -- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) -- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) - ### Changed - Bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/chomp-api-service/CHANGELOG.md b/packages/chomp-api-service/CHANGELOG.md index c1067d3847b..faaa749075b 100644 --- a/packages/chomp-api-service/CHANGELOG.md +++ b/packages/chomp-api-service/CHANGELOG.md @@ -7,10 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) - ## [4.0.2] ### Changed diff --git a/packages/client-controller/CHANGELOG.md b/packages/client-controller/CHANGELOG.md index d64d57d0129..45b53576c1f 100644 --- a/packages/client-controller/CHANGELOG.md +++ b/packages/client-controller/CHANGELOG.md @@ -7,22 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- chore: Enable lint:tsc for 11 additional clean packages ([#9664](https://github.com/MetaMask/core/pull/9664)) -- refactor: add `.js` import extensions to Core Platform joint packages ([#9642](https://github.com/MetaMask/core/pull/9642)) -- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) -- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) -- chore: Enable Oxfmt for generating method action types files ([#8498](https://github.com/MetaMask/core/pull/8498)) -- chore: Format changelogs with Oxfmt ([#8442](https://github.com/MetaMask/core/pull/8442)) -- Revert "Release 912.0.0 (#8451)" ([#8451](https://github.com/MetaMask/core/pull/8451)) -- Release 912.0.0 ([#8451](https://github.com/MetaMask/core/pull/8451)) -- chore: bump `@metamask/auto-changelog` to `^6.0.0` ([#8441](https://github.com/MetaMask/core/pull/8441)) -- chore: Replace Prettier with Oxfmt ([#8434](https://github.com/MetaMask/core/pull/8434)) -- feat: extract generate-action-types CLI into @metamask/messenger-cli ([#8378](https://github.com/MetaMask/core/pull/8378)) -- feat(messenger): add `generate-action-types` CLI tool as subpath export ([#8264](https://github.com/MetaMask/core/pull/8264)) - ### Changed - Bump `@metamask/messenger` from `^1.0.0` to `^2.0.0` ([#8364](https://github.com/MetaMask/core/pull/8364), [#8373](https://github.com/MetaMask/core/pull/8373), [#8632](https://github.com/MetaMask/core/pull/8632), [#9392](https://github.com/MetaMask/core/pull/9392)) diff --git a/packages/client-utils/CHANGELOG.md b/packages/client-utils/CHANGELOG.md index d4943f2da4e..e620ba6dc88 100644 --- a/packages/client-utils/CHANGELOG.md +++ b/packages/client-utils/CHANGELOG.md @@ -7,10 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) - ### Changed - Bump `@metamask/core-backend` from `^9.0.0` to `^9.1.1` ([#10138](https://github.com/MetaMask/core/pull/10138), [#10139](https://github.com/MetaMask/core/pull/10139)) diff --git a/packages/compliance-controller/CHANGELOG.md b/packages/compliance-controller/CHANGELOG.md index 4553f632db8..3f655ccca76 100644 --- a/packages/compliance-controller/CHANGELOG.md +++ b/packages/compliance-controller/CHANGELOG.md @@ -7,13 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- refactor: add `.js` import extensions to Perps packages ([#9626](https://github.com/MetaMask/core/pull/9626)) -- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) -- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) - ### Changed - Bump `@metamask/utils` from `^11.9.0` to `^11.12.0` ([#9074](https://github.com/MetaMask/core/pull/9074), [#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/composable-controller/CHANGELOG.md b/packages/composable-controller/CHANGELOG.md index aa0046f2956..bc5c4a8e41f 100644 --- a/packages/composable-controller/CHANGELOG.md +++ b/packages/composable-controller/CHANGELOG.md @@ -7,21 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) -- refactor: add `.js` import extensions to Core Platform packages ([#9571](https://github.com/MetaMask/core/pull/9571)) -- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) -- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) -- Release 973.0.0 ([#8753](https://github.com/MetaMask/core/pull/8753)) -- Release 970.0.0 ([#8746](https://github.com/MetaMask/core/pull/8746)) -- chore: Format changelogs with Oxfmt ([#8442](https://github.com/MetaMask/core/pull/8442)) -- Revert "Release 912.0.0 (#8451)" ([#8451](https://github.com/MetaMask/core/pull/8451)) -- Release 912.0.0 ([#8451](https://github.com/MetaMask/core/pull/8451)) -- chore: bump `@metamask/auto-changelog` to `^6.0.0` ([#8441](https://github.com/MetaMask/core/pull/8441)) -- chore: Replace Prettier with Oxfmt ([#8434](https://github.com/MetaMask/core/pull/8434)) - ### Changed - Bump `@metamask/json-rpc-engine` from `^10.2.4` to `^10.3.0` ([#8661](https://github.com/MetaMask/core/pull/8661)) @@ -63,16 +48,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Bump `@metamask/base-controller` from `^8.0.0` to `^8.4.1` ([#5722](https://github.com/MetaMask/core/pull/5722), [#6284](https://github.com/MetaMask/core/pull/6284), [#6355](https://github.com/MetaMask/core/pull/6355), [#6465](https://github.com/MetaMask/core/pull/6465), [#6632](https://github.com/MetaMask/core/pull/6632), [#6807](https://github.com/MetaMask/core/pull/6807)) +- Bump `@metamask/base-controller` from `^8.0.0` to `^8.4.1` ([#5722](https://github.com/MetaMask/core/pull/5722), [#6284](https://github.com/MetaMask/core/pull/6284), [#6355](https://github.com/MetaMask/core/pull/6355), [#6465](https://github.com/MetaMask/core/pull/6465), [#6632](https://github.com/MetaMask/core/pull/6632),[#6807](https://github.com/MetaMask/core/pull/6807)) ## [11.0.0] ### Changed -- **BREAKING:** Re-define `ComposableControllerStateConstraint` type using `StateConstraint` instead of `LegacyControllerStateConstraint` ([#5018](https://github.com/MetaMask/core/pull/5018)) -- **BREAKING:** Constrain the `ComposableControllerState` generic argument for the `ComposableController` class using `ComposableControllerStateConstraint` instead of `LegacyComposableControllerStateConstraint` ([#5018](https://github.com/MetaMask/core/pull/5018)) -- Bump `@metamask/base-controller` from `^7.0.2` to `^8.0.0` ([#5079](https://github.com/MetaMask/core/pull/5079), [#5135](https://github.com/MetaMask/core/pull/5135), [#5305](https://github.com/MetaMask/core/pull/5305)) -- Bump `@metamask/json-rpc-engine` from `^10.0.1` to `^10.0.3` ([#5082](https://github.com/MetaMask/core/pull/5082), [#5272](https://github.com/MetaMask/core/pull/5272)) +- **BREAKING:** Re-define `ComposableControllerStateConstraint` type using `StateConstraint` instead of `LegacyControllerStateConstraint` ([#5018](https://github.com/MetaMask/core/pull/5018/)) +- **BREAKING:** Constrain the `ComposableControllerState` generic argument for the `ComposableController` class using `ComposableControllerStateConstraint` instead of `LegacyComposableControllerStateConstraint` ([#5018](https://github.com/MetaMask/core/pull/5018/)) +- Bump `@metamask/base-controller` from `^7.0.2` to `^8.0.0` ([#5079](https://github.com/MetaMask/core/pull/5079)), ([#5135](https://github.com/MetaMask/core/pull/5135)), ([#5305](https://github.com/MetaMask/core/pull/5305)) +- Bump `@metamask/json-rpc-engine` from `^10.0.1` to `^10.0.3` ([#5082](https://github.com/MetaMask/core/pull/5082)), ([#5272](https://github.com/MetaMask/core/pull/5272)) ## [10.0.0] @@ -99,7 +84,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ["Are the Types Wrong?"](https://arethetypeswrong.github.io/) tool as ["masquerading as CJS"](https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/FalseCJS.md). All of the ATTW checks now pass. -- Remove chunk files. ([#4648](https://github.com/MetaMask/core/pull/4648)) +- Remove chunk files ([#4648](https://github.com/MetaMask/core/pull/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 @@ -158,9 +143,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- **BREAKING:** The `ComposableController` class is now a generic class that expects one generic argument `ComposableControllerState`. ([#3952](https://github.com/MetaMask/core/pull/3952)) +- **BREAKING:** The `ComposableController` class is now a generic class that expects one generic argument `ComposableControllerState` ([#3952](https://github.com/MetaMask/core/pull/3952)). - **BREAKING:** For the `ComposableController` class to be typed correctly, any of its child controllers that extend `BaseControllerV1` must have an overridden `name` property that is defined using the `as const` assertion. -- **BREAKING:** The types `ComposableControllerStateChangeEvent`, `ComposableControllerEvents`, `ComposableControllerMessenger` are now generic types that expect one generic argument `ComposableControllerState`. ([#3952](https://github.com/MetaMask/core/pull/3952)) +- **BREAKING:** The types `ComposableControllerStateChangeEvent`, `ComposableControllerEvents`, `ComposableControllerMessenger` are now generic types that expect one generic argument `ComposableControllerState` ([#3952](https://github.com/MetaMask/core/pull/3952)). - Bump `@metamask/json-rpc-engine` to `^8.0.2` ([#4234](https://github.com/MetaMask/core/pull/4234)) - Bump `@metamask/base-controller` to `^5.0.2` ([#4232](https://github.com/MetaMask/core/pull/4232)) diff --git a/packages/config-registry-controller/CHANGELOG.md b/packages/config-registry-controller/CHANGELOG.md index 2d18d1c4d41..615268a998f 100644 --- a/packages/config-registry-controller/CHANGELOG.md +++ b/packages/config-registry-controller/CHANGELOG.md @@ -7,10 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) - ### Changed - Bump `@metamask/remote-feature-flag-controller` from `^6.0.0` to `^6.1.1` ([#9980](https://github.com/MetaMask/core/pull/9980), [#10129](https://github.com/MetaMask/core/pull/10129)) diff --git a/packages/connectivity-controller/CHANGELOG.md b/packages/connectivity-controller/CHANGELOG.md index fc12c80ac3b..b35813866c8 100644 --- a/packages/connectivity-controller/CHANGELOG.md +++ b/packages/connectivity-controller/CHANGELOG.md @@ -7,14 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) -- refactor: add `.js` import extensions to Core Platform packages ([#9571](https://github.com/MetaMask/core/pull/9571)) -- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) -- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) - ## [0.3.0] ### Added diff --git a/packages/controller-utils/CHANGELOG.md b/packages/controller-utils/CHANGELOG.md index a7955512772..e337036d7bd 100644 --- a/packages/controller-utils/CHANGELOG.md +++ b/packages/controller-utils/CHANGELOG.md @@ -7,16 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Move FakeProvider to eth-json-rpc-provider (as FakeInternalProvider) ([#10099](https://github.com/MetaMask/core/pull/10099)) -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) -- refactor: add `.js` import extensions to Core Platform packages ([#9571](https://github.com/MetaMask/core/pull/9571)) -- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) -- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) -- Rewrite createServicePolicy tests ([#8666](https://github.com/MetaMask/core/pull/8666)) - ### Added - Add optional `startTime` to `TraceRequest` to allow backdating a span's start time ([#9315](https://github.com/MetaMask/core/pull/9315)) diff --git a/packages/delegation-controller/CHANGELOG.md b/packages/delegation-controller/CHANGELOG.md index e4458ae0143..367584822d7 100644 --- a/packages/delegation-controller/CHANGELOG.md +++ b/packages/delegation-controller/CHANGELOG.md @@ -7,14 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- refactor: add `.js` import extensions to Delegation packages ([#9622](https://github.com/MetaMask/core/pull/9622)) -- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) -- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) -- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) - ### Changed - Bump `@metamask/utils` from `^11.9.0` to `^11.12.0` ([#9074](https://github.com/MetaMask/core/pull/9074), [#10076](https://github.com/MetaMask/core/pull/10076)) @@ -66,14 +58,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Bump `@metamask/accounts-controller` from `^36.0.0` to `^37.0.0` ([#7996](https://github.com/MetaMask/core/pull/7996), [#8140](https://github.com/MetaMask/core/pull/8140)) +- Bump `@metamask/accounts-controller` from `^36.0.0` to `^37.0.0` ([#7996](https://github.com/MetaMask/core/pull/7996)), ([#8140](https://github.com/MetaMask/core/pull/8140)) ## [2.0.1] ### Changed - Upgrade `@metamask/utils` from `^11.8.1` to `^11.9.0` ([#7511](https://github.com/MetaMask/core/pull/7511)) -- Move peer dependencies for controller and service packages to direct dependencies ([#7209](https://github.com/MetaMask/core/pull/7209), [#7604](https://github.com/MetaMask/core/pull/7604), [#7642](https://github.com/MetaMask/core/pull/7642), [#7713](https://github.com/MetaMask/core/pull/7713), [#7897](https://github.com/MetaMask/core/pull/7897)) +- Move peer dependencies for controller and service packages to direct dependencies ([#7209](https://github.com/MetaMask/core/pull/7209), [#7604](https://github.com/MetaMask/core/pull/7604), [#7642](https://github.com/MetaMask/core/pull/7642), [#7713](https://github.com/MetaMask/core/pull/7713)), ([#7897](https://github.com/MetaMask/core/pull/7897)) - The dependencies moved are: - `@metamask/accounts-controller` (^36.0.0) - `@metamask/keyring-controller` (^25.1.0) diff --git a/packages/eip-5792-middleware/CHANGELOG.md b/packages/eip-5792-middleware/CHANGELOG.md index feaadcdfa7a..95db0c0678b 100644 --- a/packages/eip-5792-middleware/CHANGELOG.md +++ b/packages/eip-5792-middleware/CHANGELOG.md @@ -7,14 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- Release/1179.0.0 ([#9791](https://github.com/MetaMask/core/pull/9791)) -- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) -- refactor: add `.js` import extensions to Core Platform packages ([#9571](https://github.com/MetaMask/core/pull/9571)) -- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) - ### Changed - Bump `@metamask/transaction-controller` from `^69.0.0` to `^69.8.1` ([#9568](https://github.com/MetaMask/core/pull/9568), [#10080](https://github.com/MetaMask/core/pull/10080), [#9589](https://github.com/MetaMask/core/pull/9589), [#9593](https://github.com/MetaMask/core/pull/9593), [#9693](https://github.com/MetaMask/core/pull/9693), [#9735](https://github.com/MetaMask/core/pull/9735), [#9780](https://github.com/MetaMask/core/pull/9780), [#9798](https://github.com/MetaMask/core/pull/9798), [#9823](https://github.com/MetaMask/core/pull/9823), [#9960](https://github.com/MetaMask/core/pull/9960), [#9969](https://github.com/MetaMask/core/pull/9969), [#10046](https://github.com/MetaMask/core/pull/10046), [#10124](https://github.com/MetaMask/core/pull/10124)) @@ -80,7 +72,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Bump `@metamask/transaction-controller` from `^61.3.0` to `^62.7.0` ([#7007](https://github.com/MetaMask/core/pull/7007), [#7126](https://github.com/MetaMask/core/pull/7126), [#7153](https://github.com/MetaMask/core/pull/7153), [#7202](https://github.com/MetaMask/core/pull/7202), [#7215](https://github.com/MetaMask/core/pull/7215), [#7220](https://github.com/MetaMask/core/pull/7220), [#7236](https://github.com/MetaMask/core/pull/7236), [#7257](https://github.com/MetaMask/core/pull/7257), [#7289](https://github.com/MetaMask/core/pull/7289), [#7325](https://github.com/MetaMask/core/pull/7325), [#7430](https://github.com/MetaMask/core/pull/7430), [#7494](https://github.com/MetaMask/core/pull/7494)) +- Bump `@metamask/transaction-controller` from `^61.3.0` to `^62.7.0` ([#7007](https://github.com/MetaMask/core/pull/7007), [#7126](https://github.com/MetaMask/core/pull/7126), [#7153](https://github.com/MetaMask/core/pull/7153), [#7202](https://github.com/MetaMask/core/pull/7202), [#7215](https://github.com/MetaMask/core/pull/7202), [#7220](https://github.com/MetaMask/core/pull/7220), [#7236](https://github.com/MetaMask/core/pull/7236), [#7257](https://github.com/MetaMask/core/pull/7257), [#7289](https://github.com/MetaMask/core/pull/7289), [#7325](https://github.com/MetaMask/core/pull/7325), [#7430](https://github.com/MetaMask/core/pull/7430), [#7494](https://github.com/MetaMask/core/pull/7494)) ## [2.0.0] @@ -114,7 +106,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Bump `@metamask/utils` from `^11.8.0` to `^11.8.1` ([#6708](https://github.com/MetaMask/core/pull/6708)) -- Bump `@metamask/transaction-controller` from `^60.4.0` to `^60.6.0` ([#6708](https://github.com/MetaMask/core/pull/6708), [#6771](https://github.com/MetaMask/core/pull/6771)) +- Bump `@metamask/transaction-controller` from `^60.4.0` to `^60.6.0` ([#6708](https://github.com/MetaMask/core/pull/6733), [#6771](https://github.com/MetaMask/core/pull/6771)) - Remove dependency `@metamask/eth-json-rpc-middleware` ([#6714](https://github.com/MetaMask/core/pull/6714)) ## [1.2.0] diff --git a/packages/eip-7702-internal-rpc-middleware/CHANGELOG.md b/packages/eip-7702-internal-rpc-middleware/CHANGELOG.md index fa2cfe7b29a..4e7081fac94 100644 --- a/packages/eip-7702-internal-rpc-middleware/CHANGELOG.md +++ b/packages/eip-7702-internal-rpc-middleware/CHANGELOG.md @@ -7,13 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- refactor: add `.js` import extensions to Core Platform joint packages ([#9642](https://github.com/MetaMask/core/pull/9642)) -- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) -- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) - ### Changed - Bump `@metamask/utils` from `^11.9.0` to `^11.12.0` ([#9074](https://github.com/MetaMask/core/pull/9074), [#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/eip1193-permission-middleware/CHANGELOG.md b/packages/eip1193-permission-middleware/CHANGELOG.md index 0ae1015f522..147814091c4 100644 --- a/packages/eip1193-permission-middleware/CHANGELOG.md +++ b/packages/eip1193-permission-middleware/CHANGELOG.md @@ -7,14 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) -- refactor: add `.js` import extensions to Core Platform packages ([#9571](https://github.com/MetaMask/core/pull/9571)) -- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) -- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) - ### Changed - Bump `@metamask/utils` from `^11.9.0` to `^11.12.0` ([#9074](https://github.com/MetaMask/core/pull/9074), [#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/eth-block-tracker/CHANGELOG.md b/packages/eth-block-tracker/CHANGELOG.md index 9214b91be05..7a1bfd23218 100644 --- a/packages/eth-block-tracker/CHANGELOG.md +++ b/packages/eth-block-tracker/CHANGELOG.md @@ -7,24 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- refactor: add `.js` import extensions to Core Platform packages ([#9571](https://github.com/MetaMask/core/pull/9571)) -- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) -- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) -- chore: remove vestigial lint scripts from migrated packages ([#9048](https://github.com/MetaMask/core/pull/9048)) -- Release 973.0.0 ([#8753](https://github.com/MetaMask/core/pull/8753)) -- Release 970.0.0 ([#8746](https://github.com/MetaMask/core/pull/8746)) -- chore: Format changelogs with Oxfmt ([#8442](https://github.com/MetaMask/core/pull/8442)) -- chore: bump `@metamask/auto-changelog` to `^6.0.0` ([#8441](https://github.com/MetaMask/core/pull/8441)) -- chore: Replace Prettier with Oxfmt ([#8434](https://github.com/MetaMask/core/pull/8434)) -- Release 840.0.0 ([#8078](https://github.com/MetaMask/core/pull/8078)) -- chore: secure PUBLISH_PREVIEW_NPM_TOKEN with GitHub environment ([#8011](https://github.com/MetaMask/core/pull/8011)) -- chore: upgrade `typedoc` from `^0.24.8` to `^0.25.13` ([#7898](https://github.com/MetaMask/core/pull/7898)) -- chore: migrate Jest from v27 to v29 ([#7894](https://github.com/MetaMask/core/pull/7894)) -- Release 795.0.0 ([#7856](https://github.com/MetaMask/core/pull/7856)) -- chore: upgrade Jest-related packages to latest 27.x versions ([#7792](https://github.com/MetaMask/core/pull/7792)) - ### Changed - Bump `@metamask/utils` from `^11.9.0` to `^11.12.0` ([#9074](https://github.com/MetaMask/core/pull/9074), [#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/eth-json-rpc-middleware/CHANGELOG.md b/packages/eth-json-rpc-middleware/CHANGELOG.md index 70964bc776d..ef046fd60ef 100644 --- a/packages/eth-json-rpc-middleware/CHANGELOG.md +++ b/packages/eth-json-rpc-middleware/CHANGELOG.md @@ -7,10 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) - ### Changed - Bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/eth-json-rpc-provider/CHANGELOG.md b/packages/eth-json-rpc-provider/CHANGELOG.md index c79a27e0e40..6c8ebbe30f0 100644 --- a/packages/eth-json-rpc-provider/CHANGELOG.md +++ b/packages/eth-json-rpc-provider/CHANGELOG.md @@ -7,18 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) -- refactor: add `.js` import extensions to Core Platform packages ([#9571](https://github.com/MetaMask/core/pull/9571)) -- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) -- chore: drop unused jest-it-up devDep ([#9052](https://github.com/MetaMask/core/pull/9052)) -- chore: remove vestigial lint scripts from migrated packages ([#9048](https://github.com/MetaMask/core/pull/9048)) -- chore: Format changelogs with Oxfmt ([#8442](https://github.com/MetaMask/core/pull/8442)) -- chore: bump `@metamask/auto-changelog` to `^6.0.0` ([#8441](https://github.com/MetaMask/core/pull/8441)) -- chore: Replace Prettier with Oxfmt ([#8434](https://github.com/MetaMask/core/pull/8434)) - ### Added - Add `MockInternalProvider`, which can be substituted for `InternalProvider` in tests, while providing the ability to assert requests and inject canned responses ([#10099](https://github.com/MetaMask/core/pull/10099)) @@ -121,7 +109,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ["Are the Types Wrong?"](https://arethetypeswrong.github.io/) tool as ["masquerading as CJS"](https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/FalseCJS.md). All of the ATTW checks now pass. -- Remove chunk files. ([#4648](https://github.com/MetaMask/core/pull/4648)) +- Remove chunk files ([#4648](https://github.com/MetaMask/core/pull/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 diff --git a/packages/foundryup/CHANGELOG.md b/packages/foundryup/CHANGELOG.md index 64b4ddb67b7..f6ce1417dc3 100644 --- a/packages/foundryup/CHANGELOG.md +++ b/packages/foundryup/CHANGELOG.md @@ -7,27 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- chore: Enable lint:tsc for 11 additional clean packages ([#9664](https://github.com/MetaMask/core/pull/9664)) -- ci: diff root `package.json` and `yarn.lock` to find affected workspaces in incremental CI ([#9643](https://github.com/MetaMask/core/pull/9643)) -- refactor: add `.js` import extensions to Mobile and Extension Platform packages ([#9628](https://github.com/MetaMask/core/pull/9628)) -- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) -- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) -- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) -- chore: Format changelogs with Oxfmt ([#8442](https://github.com/MetaMask/core/pull/8442)) -- chore: bump `@metamask/auto-changelog` to `^6.0.0` ([#8441](https://github.com/MetaMask/core/pull/8441)) -- chore: Replace Prettier with Oxfmt ([#8434](https://github.com/MetaMask/core/pull/8434)) -- chore: secure PUBLISH_PREVIEW_NPM_TOKEN with GitHub environment ([#8011](https://github.com/MetaMask/core/pull/8011)) -- chore: upgrade `typedoc` from `^0.24.8` to `^0.25.13` ([#7898](https://github.com/MetaMask/core/pull/7898)) -- chore: migrate Jest from v27 to v29 ([#7894](https://github.com/MetaMask/core/pull/7894)) -- chore: upgrade Jest-related packages to latest 27.x versions ([#7792](https://github.com/MetaMask/core/pull/7792)) -- chore: Update ESLint config packages to v15 ([#7305](https://github.com/MetaMask/core/pull/7305)) -- chore: Re-enable `@typescript-eslint/no-unnecessary-type-assertions` ([#7296](https://github.com/MetaMask/core/pull/7296)) -- chore: Update `typescript` to v5.3 ([#7081](https://github.com/MetaMask/core/pull/7081)) -- fix: Fix build script not working because of missing `@ts-bridge/cli` dependency ([#7040](https://github.com/MetaMask/core/pull/7040)) - ## [1.0.1] ### Fixed diff --git a/packages/gas-fee-controller/CHANGELOG.md b/packages/gas-fee-controller/CHANGELOG.md index 85b3fc7dcb4..e77963dc6aa 100644 --- a/packages/gas-fee-controller/CHANGELOG.md +++ b/packages/gas-fee-controller/CHANGELOG.md @@ -7,10 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) - ### Changed - Bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/gator-permissions-controller/CHANGELOG.md b/packages/gator-permissions-controller/CHANGELOG.md index 7590822240d..c8f0a59c823 100644 --- a/packages/gator-permissions-controller/CHANGELOG.md +++ b/packages/gator-permissions-controller/CHANGELOG.md @@ -7,10 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) - ### Changed - Bump `@metamask/transaction-controller` from `^69.6.1` to `^69.8.1` ([#10046](https://github.com/MetaMask/core/pull/10046), [#10080](https://github.com/MetaMask/core/pull/10080), [#10124](https://github.com/MetaMask/core/pull/10124)) diff --git a/packages/geolocation-controller/CHANGELOG.md b/packages/geolocation-controller/CHANGELOG.md index f82f4702964..847aa091d48 100644 --- a/packages/geolocation-controller/CHANGELOG.md +++ b/packages/geolocation-controller/CHANGELOG.md @@ -7,10 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) - ## [1.0.0] ### Changed diff --git a/packages/java-tron-up/CHANGELOG.md b/packages/java-tron-up/CHANGELOG.md index c8dc6220d19..b983a9bfc34 100644 --- a/packages/java-tron-up/CHANGELOG.md +++ b/packages/java-tron-up/CHANGELOG.md @@ -7,13 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- refactor: add `.js` import extensions to Networks packages ([#9649](https://github.com/MetaMask/core/pull/9649)) -- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) -- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) - ## [1.0.0] ### Added diff --git a/packages/json-rpc-engine/CHANGELOG.md b/packages/json-rpc-engine/CHANGELOG.md index 84f7a016daf..210ce2f1379 100644 --- a/packages/json-rpc-engine/CHANGELOG.md +++ b/packages/json-rpc-engine/CHANGELOG.md @@ -7,15 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) -- refactor: add `.js` import extensions to Core Platform packages ([#9571](https://github.com/MetaMask/core/pull/9571)) -- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) -- chore: drop unused jest-it-up devDep ([#9052](https://github.com/MetaMask/core/pull/9052)) -- chore: remove vestigial lint scripts from migrated packages ([#9048](https://github.com/MetaMask/core/pull/9048)) - ### Changed - Bump `@metamask/utils` from `^11.9.0` to `^11.12.0` ([#9074](https://github.com/MetaMask/core/pull/9074), [#10076](https://github.com/MetaMask/core/pull/10076)) @@ -353,9 +344,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 [7.2.0]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-engine@7.1.1...@metamask/json-rpc-engine@7.2.0 [7.1.1]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-engine@7.1.0...@metamask/json-rpc-engine@7.1.1 [7.1.0]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-engine@7.0.0...@metamask/json-rpc-engine@7.1.0 -[7.0.0]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-engine@6.1.0...@metamask/json-rpc-engine@7.0.0 -[6.1.0]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-engine@6.0.0...@metamask/json-rpc-engine@6.1.0 -[6.0.0]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-engine@5.4.0...@metamask/json-rpc-engine@6.0.0 -[5.4.0]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-engine@5.3.0...@metamask/json-rpc-engine@5.4.0 -[5.3.0]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-engine@5.2.0...@metamask/json-rpc-engine@5.3.0 -[5.2.0]: https://github.com/MetaMask/core/releases/tag/@metamask/json-rpc-engine@5.2.0 +[7.0.0]: https://github.com/MetaMask/core/compare/json-rpc-engine@6.1.0...@metamask/json-rpc-engine@7.0.0 +[6.1.0]: https://github.com/MetaMask/core/compare/json-rpc-engine@6.0.0...json-rpc-engine@6.1.0 +[6.0.0]: https://github.com/MetaMask/core/compare/json-rpc-engine@5.4.0...json-rpc-engine@6.0.0 +[5.4.0]: https://github.com/MetaMask/core/compare/json-rpc-engine@5.3.0...json-rpc-engine@5.4.0 +[5.3.0]: https://github.com/MetaMask/core/compare/json-rpc-engine@5.2.0...json-rpc-engine@5.3.0 +[5.2.0]: https://github.com/MetaMask/core/releases/tag/json-rpc-engine@5.2.0 diff --git a/packages/json-rpc-middleware-stream/CHANGELOG.md b/packages/json-rpc-middleware-stream/CHANGELOG.md index ffa6b69fb7b..073d230db07 100644 --- a/packages/json-rpc-middleware-stream/CHANGELOG.md +++ b/packages/json-rpc-middleware-stream/CHANGELOG.md @@ -7,28 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) -- refactor: add `.js` import extensions to Core Platform packages ([#9571](https://github.com/MetaMask/core/pull/9571)) -- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) -- chore: drop unused jest-it-up devDep ([#9052](https://github.com/MetaMask/core/pull/9052)) -- chore: Format changelogs with Oxfmt ([#8442](https://github.com/MetaMask/core/pull/8442)) -- chore: bump `@metamask/auto-changelog` to `^6.0.0` ([#8441](https://github.com/MetaMask/core/pull/8441)) -- chore: Replace Prettier with Oxfmt ([#8434](https://github.com/MetaMask/core/pull/8434)) -- chore: secure PUBLISH_PREVIEW_NPM_TOKEN with GitHub environment ([#8011](https://github.com/MetaMask/core/pull/8011)) -- chore: upgrade `typedoc` from `^0.24.8` to `^0.25.13` ([#7898](https://github.com/MetaMask/core/pull/7898)) -- chore: migrate Jest from v27 to v29 ([#7894](https://github.com/MetaMask/core/pull/7894)) -- chore: upgrade Jest-related packages to latest 27.x versions ([#7792](https://github.com/MetaMask/core/pull/7792)) -- chore(lint): Fix suppressed ESLint errors in `json-rpc-middleware-stream` package ([#7463](https://github.com/MetaMask/core/pull/7463)) -- chore: Update ESLint config packages to v15 ([#7305](https://github.com/MetaMask/core/pull/7305)) -- Revert "Release 687.0.0" ([#7201](https://github.com/MetaMask/core/pull/7201)) -- Release 687.0.0 ([#7190](https://github.com/MetaMask/core/pull/7190)) -- chore: Fix all auto-fixable ESLint warnings ([#7105](https://github.com/MetaMask/core/pull/7105)) -- chore: Update `typescript` to v5.3 ([#7081](https://github.com/MetaMask/core/pull/7081)) -- fix: Fix build script not working because of missing `@ts-bridge/cli` dependency ([#7040](https://github.com/MetaMask/core/pull/7040)) - ### Changed - Bump `@metamask/utils` from `^11.8.1` to `^11.12.0` ([#7511](https://github.com/MetaMask/core/pull/7511), [#9074](https://github.com/MetaMask/core/pull/9074), [#10076](https://github.com/MetaMask/core/pull/10076)) @@ -83,7 +61,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ["Are the Types Wrong?"](https://arethetypeswrong.github.io/) tool as ["masquerading as CJS"](https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/FalseCJS.md). All of the ATTW checks now pass. -- Remove chunk files. ([#4648](https://github.com/MetaMask/core/pull/4648)) +- Remove chunk files ([#4648](https://github.com/MetaMask/core/pull/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 @@ -246,13 +224,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 [7.0.0]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-middleware-stream@6.0.2...@metamask/json-rpc-middleware-stream@7.0.0 [6.0.2]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-middleware-stream@6.0.1...@metamask/json-rpc-middleware-stream@6.0.2 [6.0.1]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-middleware-stream@6.0.0...@metamask/json-rpc-middleware-stream@6.0.1 -[6.0.0]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-middleware-stream@5.0.1...@metamask/json-rpc-middleware-stream@6.0.0 -[5.0.1]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-middleware-stream@5.0.0...@metamask/json-rpc-middleware-stream@5.0.1 -[5.0.0]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-middleware-stream@4.2.3...@metamask/json-rpc-middleware-stream@5.0.0 -[4.2.3]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-middleware-stream@4.2.2...@metamask/json-rpc-middleware-stream@4.2.3 -[4.2.2]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-middleware-stream@4.2.1...@metamask/json-rpc-middleware-stream@4.2.2 -[4.2.1]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-middleware-stream@4.2.0...@metamask/json-rpc-middleware-stream@4.2.1 -[4.2.0]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-middleware-stream@4.1.0...@metamask/json-rpc-middleware-stream@4.2.0 -[4.1.0]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-middleware-stream@4.0.0...@metamask/json-rpc-middleware-stream@4.1.0 -[4.0.0]: https://github.com/MetaMask/core/compare/@metamask/json-rpc-middleware-stream@3.0.0...@metamask/json-rpc-middleware-stream@4.0.0 -[3.0.0]: https://github.com/MetaMask/core/releases/tag/@metamask/json-rpc-middleware-stream@3.0.0 +[6.0.0]: https://github.com/MetaMask/core/compare/json-rpc-middleware-stream@5.0.1...@metamask/json-rpc-middleware-stream@6.0.0 +[5.0.1]: https://github.com/MetaMask/core/compare/json-rpc-middleware-stream@5.0.0...json-rpc-middleware-stream@5.0.1 +[5.0.0]: https://github.com/MetaMask/core/compare/json-rpc-middleware-stream@4.2.3...json-rpc-middleware-stream@5.0.0 +[4.2.3]: https://github.com/MetaMask/core/compare/json-rpc-middleware-stream@4.2.2...json-rpc-middleware-stream@4.2.3 +[4.2.2]: https://github.com/MetaMask/core/compare/json-rpc-middleware-stream@4.2.1...json-rpc-middleware-stream@4.2.2 +[4.2.1]: https://github.com/MetaMask/core/compare/json-rpc-middleware-stream@4.2.0...json-rpc-middleware-stream@4.2.1 +[4.2.0]: https://github.com/MetaMask/core/compare/json-rpc-middleware-stream@4.1.0...json-rpc-middleware-stream@4.2.0 +[4.1.0]: https://github.com/MetaMask/core/compare/json-rpc-middleware-stream@4.0.0...json-rpc-middleware-stream@4.1.0 +[4.0.0]: https://github.com/MetaMask/core/compare/json-rpc-middleware-stream@3.0.0...json-rpc-middleware-stream@4.0.0 +[3.0.0]: https://github.com/MetaMask/core/releases/tag/json-rpc-middleware-stream@3.0.0 diff --git a/packages/keyring-controller/CHANGELOG.md b/packages/keyring-controller/CHANGELOG.md index 6510c5b9949..b337df693b2 100644 --- a/packages/keyring-controller/CHANGELOG.md +++ b/packages/keyring-controller/CHANGELOG.md @@ -7,10 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) - ### Changed - Bump `@metamask/eth-sig-util` from `^8.2.0` to `^9.0.0` ([#9999](https://github.com/MetaMask/core/pull/9999)) diff --git a/packages/local-node-utils/CHANGELOG.md b/packages/local-node-utils/CHANGELOG.md index 8cf36400b78..a6197a256d6 100644 --- a/packages/local-node-utils/CHANGELOG.md +++ b/packages/local-node-utils/CHANGELOG.md @@ -7,14 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- chore: Enable lint:tsc for 11 additional clean packages ([#9664](https://github.com/MetaMask/core/pull/9664)) -- refactor: add `.js` import extensions to Networks packages ([#9649](https://github.com/MetaMask/core/pull/9649)) -- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) -- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) - ## [1.0.0] ### Added diff --git a/packages/logging-controller/CHANGELOG.md b/packages/logging-controller/CHANGELOG.md index ff8b76e644c..7fcfc817bfa 100644 --- a/packages/logging-controller/CHANGELOG.md +++ b/packages/logging-controller/CHANGELOG.md @@ -7,10 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) - ### Changed - Bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/message-manager/CHANGELOG.md b/packages/message-manager/CHANGELOG.md index 147ac1bc13b..57712bfb78c 100644 --- a/packages/message-manager/CHANGELOG.md +++ b/packages/message-manager/CHANGELOG.md @@ -7,14 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- refactor: add `.js` import extensions to Confirmations packages ([#9582](https://github.com/MetaMask/core/pull/9582)) -- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) -- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) -- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) - ### Changed - Bump `@metamask/utils` from `^11.9.0` to `^11.12.0` ([#9074](https://github.com/MetaMask/core/pull/9074), [#10076](https://github.com/MetaMask/core/pull/10076)) @@ -102,8 +94,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Bump `@metamask/base-controller` from `^7.1.0` to `^8.0.0` ([#5135](https://github.com/MetaMask/core/pull/5135), [#5305](https://github.com/MetaMask/core/pull/5305)) -- Bump `@metamask/controller-utils` from `^11.4.4` to `^11.5.0` ([#5135](https://github.com/MetaMask/core/pull/5135), [#5272](https://github.com/MetaMask/core/pull/5272)) +- Bump `@metamask/base-controller` from `^7.1.0` to `^8.0.0` ([#5135](https://github.com/MetaMask/core/pull/5135)), ([#5305](https://github.com/MetaMask/core/pull/5305)) +- Bump `@metamask/controller-utils` from `^11.4.4` to `^11.5.0` ([#5135](https://github.com/MetaMask/core/pull/5135)), ([#5272](https://github.com/MetaMask/core/pull/5272)) - Bump `@metamask/utils` from `^11.0.1` to `^11.1.0` ([#5223](https://github.com/MetaMask/core/pull/5223)) ## [12.0.0] @@ -164,7 +156,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ["Are the Types Wrong?"](https://arethetypeswrong.github.io/) tool as ["masquerading as CJS"](https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/FalseCJS.md). All of the ATTW checks now pass. -- Remove chunk files. ([#4648](https://github.com/MetaMask/core/pull/4648)) +- Remove chunk files ([#4648](https://github.com/MetaMask/core/pull/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 diff --git a/packages/messenger-cli/CHANGELOG.md b/packages/messenger-cli/CHANGELOG.md index f262c7e70c9..4f0871bb3e6 100644 --- a/packages/messenger-cli/CHANGELOG.md +++ b/packages/messenger-cli/CHANGELOG.md @@ -7,15 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Add lint:tsc package script ([#9652](https://github.com/MetaMask/core/pull/9652)) -- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) -- refactor: add `.js` import extensions to Core Platform packages ([#9571](https://github.com/MetaMask/core/pull/9571)) -- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) -- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) -- chore: remove unused deps in core-platform packages ([#9064](https://github.com/MetaMask/core/pull/9064)) - ### Added - Add `--esm` flag for ESM-compatible import extensions ([#9572](https://github.com/MetaMask/core/pull/9572)) diff --git a/packages/messenger/CHANGELOG.md b/packages/messenger/CHANGELOG.md index 7373cb6aea1..c0b538ae9fc 100644 --- a/packages/messenger/CHANGELOG.md +++ b/packages/messenger/CHANGELOG.md @@ -7,17 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- Remove lint rule that deprecates use of :stateChange events ([#10090](https://github.com/MetaMask/core/pull/10090)) -- Constrain MessengerAdapter to match given data services ([#9475](https://github.com/MetaMask/core/pull/9475)) -- Add lint:tsc package script ([#9652](https://github.com/MetaMask/core/pull/9652)) -- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) -- refactor: add `.js` import extensions to Core Platform packages ([#9571](https://github.com/MetaMask/core/pull/9571)) -- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) -- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) - ### Added - Add `delegateAll` method for exhaustive delegation with compile-time checking ([#8338](https://github.com/MetaMask/core/pull/8338)) diff --git a/packages/money-account-api-data-service/CHANGELOG.md b/packages/money-account-api-data-service/CHANGELOG.md index 04060658d70..560d18b83c2 100644 --- a/packages/money-account-api-data-service/CHANGELOG.md +++ b/packages/money-account-api-data-service/CHANGELOG.md @@ -7,10 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) - ### Changed - Bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/money-account-balance-service/CHANGELOG.md b/packages/money-account-balance-service/CHANGELOG.md index d5e2df9c905..b88d8a16b74 100644 --- a/packages/money-account-balance-service/CHANGELOG.md +++ b/packages/money-account-balance-service/CHANGELOG.md @@ -7,11 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- Remove lint rule that deprecates use of :stateChange events ([#10090](https://github.com/MetaMask/core/pull/10090)) - ### Changed - Bump `@metamask/remote-feature-flag-controller` from `^6.0.0` to `^6.1.1` ([#9980](https://github.com/MetaMask/core/pull/9980), [#10129](https://github.com/MetaMask/core/pull/10129)) diff --git a/packages/money-account-controller/CHANGELOG.md b/packages/money-account-controller/CHANGELOG.md index e49227ff69c..8249b7783e9 100644 --- a/packages/money-account-controller/CHANGELOG.md +++ b/packages/money-account-controller/CHANGELOG.md @@ -7,11 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- chore: bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) - ### Changed - Bump `@metamask/accounts-controller` from `^39.0.7` to `^39.1.1` ([#9807](https://github.com/MetaMask/core/pull/9807), [#9969](https://github.com/MetaMask/core/pull/9969)) diff --git a/packages/money-account-upgrade-controller/CHANGELOG.md b/packages/money-account-upgrade-controller/CHANGELOG.md index 2cb9d3355f8..694d9c05e7b 100644 --- a/packages/money-account-upgrade-controller/CHANGELOG.md +++ b/packages/money-account-upgrade-controller/CHANGELOG.md @@ -7,10 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) - ### Changed - Bump `@metamask/remote-feature-flag-controller` from `^6.1.0` to `^6.1.1` ([#10129](https://github.com/MetaMask/core/pull/10129)) diff --git a/packages/money-account-utils/CHANGELOG.md b/packages/money-account-utils/CHANGELOG.md index 9dda32ac582..f7a6c6cfe27 100644 --- a/packages/money-account-utils/CHANGELOG.md +++ b/packages/money-account-utils/CHANGELOG.md @@ -7,10 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) - ### Changed - Bump `@metamask/transaction-controller` from `^69.8.0` to `^69.8.1` ([#10124](https://github.com/MetaMask/core/pull/10124)) diff --git a/packages/multichain-account-service/CHANGELOG.md b/packages/multichain-account-service/CHANGELOG.md index cc053ff1887..5ba7c6d5455 100644 --- a/packages/multichain-account-service/CHANGELOG.md +++ b/packages/multichain-account-service/CHANGELOG.md @@ -7,10 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) - ### Changed - Bump `@metamask/accounts-controller` from `^39.1.0` to `^39.1.1` ([#9969](https://github.com/MetaMask/core/pull/9969)) diff --git a/packages/multichain-api-middleware/CHANGELOG.md b/packages/multichain-api-middleware/CHANGELOG.md index b5eb126e1b2..3074c2ff612 100644 --- a/packages/multichain-api-middleware/CHANGELOG.md +++ b/packages/multichain-api-middleware/CHANGELOG.md @@ -7,10 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) - ### Changed - Bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/multichain-network-controller/CHANGELOG.md b/packages/multichain-network-controller/CHANGELOG.md index 56d8ee036ef..20185e2afaa 100644 --- a/packages/multichain-network-controller/CHANGELOG.md +++ b/packages/multichain-network-controller/CHANGELOG.md @@ -7,10 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) - ### Changed - Bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/multichain-transactions-controller/CHANGELOG.md b/packages/multichain-transactions-controller/CHANGELOG.md index 7fa711adb0a..7e93b50cd5a 100644 --- a/packages/multichain-transactions-controller/CHANGELOG.md +++ b/packages/multichain-transactions-controller/CHANGELOG.md @@ -7,10 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) - ### Changed - Bump `@metamask/accounts-controller` from `^39.0.7` to `^39.1.1` ([#9807](https://github.com/MetaMask/core/pull/9807), [#9969](https://github.com/MetaMask/core/pull/9969)) diff --git a/packages/name-controller/CHANGELOG.md b/packages/name-controller/CHANGELOG.md index f51fd8fab08..e078285a5b7 100644 --- a/packages/name-controller/CHANGELOG.md +++ b/packages/name-controller/CHANGELOG.md @@ -7,14 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- refactor: add `.js` import extensions to Confirmations packages ([#9582](https://github.com/MetaMask/core/pull/9582)) -- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) -- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) -- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) - ### Changed - Bump `@metamask/utils` from `^11.9.0` to `^11.12.0` ([#9074](https://github.com/MetaMask/core/pull/9074), [#10076](https://github.com/MetaMask/core/pull/10076)) @@ -74,7 +66,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Bump `@metamask/utils` from `^11.2.0` to `^11.8.1` ([#6054](https://github.com/MetaMask/core/pull/6054), [#6588](https://github.com/MetaMask/core/pull/6588), [#6708](https://github.com/MetaMask/core/pull/6708)) +- Bump `@metamask/utils` from `^11.2.0` to `^11.8.1` ([#6054](https://github.com/MetaMask/core/pull/6054)[#6588](https://github.com/MetaMask/core/pull/6588), [#6708](https://github.com/MetaMask/core/pull/6708)) - Bump `@metamask/base-controller` from `^8.0.0` to `^8.4.1` ([#5722](https://github.com/MetaMask/core/pull/5722), [#6284](https://github.com/MetaMask/core/pull/6284), [#6355](https://github.com/MetaMask/core/pull/6355), [#6465](https://github.com/MetaMask/core/pull/6465), [#6632](https://github.com/MetaMask/core/pull/6632), [#6807](https://github.com/MetaMask/core/pull/6807)) - Bump `@metamask/controller-utils` from `^11.5.0` to `^11.14.1` ([#5439](https://github.com/MetaMask/core/pull/5439), [#5583](https://github.com/MetaMask/core/pull/5583), [#5765](https://github.com/MetaMask/core/pull/5765), [#5812](https://github.com/MetaMask/core/pull/5812), [#5935](https://github.com/MetaMask/core/pull/5935), [#6069](https://github.com/MetaMask/core/pull/6069), [#6303](https://github.com/MetaMask/core/pull/6303), [#6620](https://github.com/MetaMask/core/pull/6620), [#6629](https://github.com/MetaMask/core/pull/6629), [#6807](https://github.com/MetaMask/core/pull/6807)) @@ -82,9 +74,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Bump `@metamask/base-controller` from `^7.1.0` to `^8.0.0` ([#5135](https://github.com/MetaMask/core/pull/5135), [#5305](https://github.com/MetaMask/core/pull/5305)) -- Bump `@metamask/controller-utils` from `^11.4.4` to `^11.5.0` ([#5135](https://github.com/MetaMask/core/pull/5135), [#5272](https://github.com/MetaMask/core/pull/5272)) -- Bump `@metamask/utils` from `^10.0.0` to `^11.1.0` ([#5080](https://github.com/MetaMask/core/pull/5080), [#5223](https://github.com/MetaMask/core/pull/5223)) +- Bump `@metamask/base-controller` from `^7.1.0` to `^8.0.0` ([#5135](https://github.com/MetaMask/core/pull/5135)), ([#5305](https://github.com/MetaMask/core/pull/5305)) +- Bump `@metamask/controller-utils` from `^11.4.4` to `^11.5.0` ([#5135](https://github.com/MetaMask/core/pull/5135)), ([#5272](https://github.com/MetaMask/core/pull/5272)) +- Bump `@metamask/utils` from `^10.0.0` to `^11.1.0` ([#5080](https://github.com/MetaMask/core/pull/5080)), ([#5223](https://github.com/MetaMask/core/pull/5223)) - Bump `@metamask/base-controller` from `^7.0.0` to `^7.1.0` ([#5079](https://github.com/MetaMask/core/pull/5079)) ## [8.0.2] @@ -113,7 +105,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ["Are the Types Wrong?"](https://arethetypeswrong.github.io/) tool as ["masquerading as CJS"](https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/FalseCJS.md). All of the ATTW checks now pass. -- Remove chunk files. ([#4648](https://github.com/MetaMask/core/pull/4648)) +- Remove chunk files ([#4648](https://github.com/MetaMask/core/pull/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 diff --git a/packages/network-connection-banner-controller/CHANGELOG.md b/packages/network-connection-banner-controller/CHANGELOG.md index 871ee8387a1..aa2f81432c5 100644 --- a/packages/network-connection-banner-controller/CHANGELOG.md +++ b/packages/network-connection-banner-controller/CHANGELOG.md @@ -7,11 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- Remove lint rule that deprecates use of :stateChange events ([#10090](https://github.com/MetaMask/core/pull/10090)) - ### Changed - Bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/network-controller/CHANGELOG.md b/packages/network-controller/CHANGELOG.md index c837d7647b9..9dfb848ef0a 100644 --- a/packages/network-controller/CHANGELOG.md +++ b/packages/network-controller/CHANGELOG.md @@ -7,12 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Move FakeProvider to eth-json-rpc-provider (as FakeInternalProvider) ([#10099](https://github.com/MetaMask/core/pull/10099)) -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- Remove lint rule that deprecates use of :stateChange events ([#10090](https://github.com/MetaMask/core/pull/10090)) - ### Changed - Bump `@metamask/remote-feature-flag-controller` from `^6.0.0` to `^6.1.1` ([#9980](https://github.com/MetaMask/core/pull/9980), [#10129](https://github.com/MetaMask/core/pull/10129)) diff --git a/packages/network-enablement-controller/CHANGELOG.md b/packages/network-enablement-controller/CHANGELOG.md index 1c23884df87..87e0444c0ce 100644 --- a/packages/network-enablement-controller/CHANGELOG.md +++ b/packages/network-enablement-controller/CHANGELOG.md @@ -7,10 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) - ### Changed - Bump `@metamask/transaction-controller` from `^69.6.1` to `^69.8.1` ([#10046](https://github.com/MetaMask/core/pull/10046), [#10080](https://github.com/MetaMask/core/pull/10080), [#10124](https://github.com/MetaMask/core/pull/10124)) diff --git a/packages/passkey-controller/CHANGELOG.md b/packages/passkey-controller/CHANGELOG.md index 97d8db0be4a..bb06e87a5d6 100644 --- a/packages/passkey-controller/CHANGELOG.md +++ b/packages/passkey-controller/CHANGELOG.md @@ -7,10 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) - ### Changed - Bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/permission-controller/CHANGELOG.md b/packages/permission-controller/CHANGELOG.md index 4624c8b1125..fcbdf217e2f 100644 --- a/packages/permission-controller/CHANGELOG.md +++ b/packages/permission-controller/CHANGELOG.md @@ -7,14 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) -- refactor: add `.js` import extensions to Core Platform packages ([#9571](https://github.com/MetaMask/core/pull/9571)) -- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) -- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) - ### Changed - Bump `@metamask/utils` from `^11.9.0` to `^11.12.0` ([#9074](https://github.com/MetaMask/core/pull/9074), [#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/permission-log-controller/CHANGELOG.md b/packages/permission-log-controller/CHANGELOG.md index 6efb8ceec0a..5e1953010af 100644 --- a/packages/permission-log-controller/CHANGELOG.md +++ b/packages/permission-log-controller/CHANGELOG.md @@ -7,22 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) -- refactor: add `.js` import extensions to Core Platform packages ([#9571](https://github.com/MetaMask/core/pull/9571)) -- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) -- chore: Enable Oxfmt for generating method action types files ([#8498](https://github.com/MetaMask/core/pull/8498)) -- chore: Format changelogs with Oxfmt ([#8442](https://github.com/MetaMask/core/pull/8442)) -- Revert "Release 912.0.0 (#8451)" ([#8451](https://github.com/MetaMask/core/pull/8451)) -- Release 912.0.0 ([#8451](https://github.com/MetaMask/core/pull/8451)) -- chore: bump `@metamask/auto-changelog` to `^6.0.0` ([#8441](https://github.com/MetaMask/core/pull/8441)) -- chore: Use Oxfmt for import sorting instead of `import-x/order` ([#8438](https://github.com/MetaMask/core/pull/8438)) -- chore: Replace Prettier with Oxfmt ([#8434](https://github.com/MetaMask/core/pull/8434)) -- feat: extract generate-action-types CLI into @metamask/messenger-cli ([#8378](https://github.com/MetaMask/core/pull/8378)) -- feat(messenger): add `generate-action-types` CLI tool as subpath export ([#8264](https://github.com/MetaMask/core/pull/8264)) - ### Changed - Bump `@metamask/utils` from `^11.9.0` to `^11.12.0` ([#9074](https://github.com/MetaMask/core/pull/9074), [#10076](https://github.com/MetaMask/core/pull/10076)) @@ -93,9 +77,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Bump `@metamask/base-controller` from `^7.0.0` to `^8.0.0` ([#5079](https://github.com/MetaMask/core/pull/5079), [#5135](https://github.com/MetaMask/core/pull/5135), [#5305](https://github.com/MetaMask/core/pull/5305)) -- Bump `@metamask/json-rpc-engine` from `^10.0.1` to `^10.0.3` ([#5082](https://github.com/MetaMask/core/pull/5082), [#5272](https://github.com/MetaMask/core/pull/5272)) -- Bump `@metamask/utils` from `^10.0.0` to `^11.1.0` ([#5080](https://github.com/MetaMask/core/pull/5080), [#5223](https://github.com/MetaMask/core/pull/5223)) +- Bump `@metamask/base-controller` from `^7.0.0` to `^8.0.0` ([#5079](https://github.com/MetaMask/core/pull/5079)), ([#5135](https://github.com/MetaMask/core/pull/5135)), ([#5305](https://github.com/MetaMask/core/pull/5305)) +- Bump `@metamask/json-rpc-engine` from `^10.0.1` to `^10.0.3` ([#5082](https://github.com/MetaMask/core/pull/5082)), ([#5272](https://github.com/MetaMask/core/pull/5272)) +- Bump `@metamask/utils` from `^10.0.0` to `^11.1.0` ([#5080](https://github.com/MetaMask/core/pull/5080)), ([#5223](https://github.com/MetaMask/core/pull/5223)) - Bump `nanoid` from `^3.1.31` to `^3.3.8` ([#5073](https://github.com/MetaMask/core/pull/5073)) ## [3.0.2] @@ -129,7 +113,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ["Are the Types Wrong?"](https://arethetypeswrong.github.io/) tool as ["masquerading as CJS"](https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/FalseCJS.md). All of the ATTW checks now pass. -- Remove chunk files. ([#4648](https://github.com/MetaMask/core/pull/4648)) +- Remove chunk files ([#4648](https://github.com/MetaMask/core/pull/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 diff --git a/packages/phishing-controller/CHANGELOG.md b/packages/phishing-controller/CHANGELOG.md index 7bc3c2e1725..1e9bb99b9bf 100644 --- a/packages/phishing-controller/CHANGELOG.md +++ b/packages/phishing-controller/CHANGELOG.md @@ -7,11 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- Remove lint rule that deprecates use of :stateChange events ([#10090](https://github.com/MetaMask/core/pull/10090)) - ### Changed - Bump `@metamask/transaction-controller` from `^69.8.0` to `^69.8.1` ([#10124](https://github.com/MetaMask/core/pull/10124)) @@ -275,6 +270,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Bump `@metamask/base-controller` from `^8.0.1` to `^8.4.0` ([#6284](https://github.com/MetaMask/core/pull/6284), [#6355](https://github.com/MetaMask/core/pull/6355), [#6465](https://github.com/MetaMask/core/pull/6465), [#6632](https://github.com/MetaMask/core/pull/6632)) - Bump `@metamask/controller-utils` from `^11.11.0` to `^11.14.0` ([#6303](https://github.com/MetaMask/core/pull/6303), [#6620](https://github.com/MetaMask/core/pull/6620), [#6629](https://github.com/MetaMask/core/pull/6629)) + - Bump `@noble/hashes` from `^1.4.0` to `^1.8.0` ([#6101](https://github.com/MetaMask/core/pull/6101)) ## [13.1.0] diff --git a/packages/polling-controller/CHANGELOG.md b/packages/polling-controller/CHANGELOG.md index b1f1c2cbc04..f23eb254fc0 100644 --- a/packages/polling-controller/CHANGELOG.md +++ b/packages/polling-controller/CHANGELOG.md @@ -7,10 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) - ### Added - Export `AbstractPollingControllerBaseMixin`, `getKey`, `Constructor`, and `PollingTokenSetId` ([#9882](https://github.com/MetaMask/core/pull/9882)) diff --git a/packages/preferences-controller/CHANGELOG.md b/packages/preferences-controller/CHANGELOG.md index 191911446f0..6a20f6ccbb6 100644 --- a/packages/preferences-controller/CHANGELOG.md +++ b/packages/preferences-controller/CHANGELOG.md @@ -7,24 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- chore: bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) -- chore: Enable lint:tsc for 11 additional clean packages ([#9664](https://github.com/MetaMask/core/pull/9664)) -- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) -- refactor: add `.js` import extensions to Core Platform packages ([#9571](https://github.com/MetaMask/core/pull/9571)) -- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) -- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) -- chore: Enable Oxfmt for generating method action types files ([#8498](https://github.com/MetaMask/core/pull/8498)) -- chore: Format changelogs with Oxfmt ([#8442](https://github.com/MetaMask/core/pull/8442)) -- Revert "Release 912.0.0 (#8451)" ([#8451](https://github.com/MetaMask/core/pull/8451)) -- Release 912.0.0 ([#8451](https://github.com/MetaMask/core/pull/8451)) -- chore: bump `@metamask/auto-changelog` to `^6.0.0` ([#8441](https://github.com/MetaMask/core/pull/8441)) -- chore: Replace Prettier with Oxfmt ([#8434](https://github.com/MetaMask/core/pull/8434)) -- feat: extract generate-action-types CLI into @metamask/messenger-cli ([#8378](https://github.com/MetaMask/core/pull/8378)) -- feat(messenger): add `generate-action-types` CLI tool as subpath export ([#8264](https://github.com/MetaMask/core/pull/8264)) - ### Changed - Bump `@metamask/utils` from `^11.9.0` to `^11.11.0` ([#9074](https://github.com/MetaMask/core/pull/9074)) @@ -70,7 +52,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - **BREAKING:** Remove legacy methods and state ([#8115](https://github.com/MetaMask/core/pull/8115)) - `identities`, `lostIdentities` and `selectedAddress` along with any associated methods and types were removed. - `setSmartAccountOptInForAccounts` was also removed as it is deprecated and not used in the clients. -- Removed `@metamask/keyring-controller` and `@metamask/controller-utils` dependencies ([#7995](https://github.com/MetaMask/core/pull/7995), [#8115](https://github.com/MetaMask/core/pull/8115)) +- Removed `@metamask/keyring-controller` and `@metamask/controller-utils` dependencies ([#7995](https://github.com/MetaMask/core/pull/7995)), ([#8115](https://github.com/MetaMask/core/pull/8115)) ## [22.1.0] @@ -229,8 +211,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Bump `@metamask/base-controller` from `^7.0.2` to `^8.0.0` ([#5079](https://github.com/MetaMask/core/pull/5079), [#5135](https://github.com/MetaMask/core/pull/5135), [#5305](https://github.com/MetaMask/core/pull/5305)) -- Bump `@metamask/controller-utils` from `^11.4.4` to `^11.5.0` ([#5135](https://github.com/MetaMask/core/pull/5135), [#5272](https://github.com/MetaMask/core/pull/5272)) +- Bump `@metamask/base-controller` from `^7.0.2` to `^8.0.0` ([#5079](https://github.com/MetaMask/core/pull/5079)), ([#5135](https://github.com/MetaMask/core/pull/5135)), ([#5305](https://github.com/MetaMask/core/pull/5305)) +- Bump `@metamask/controller-utils` from `^11.4.4` to `^11.5.0` ([#5135](https://github.com/MetaMask/core/pull/5135)), ([#5272](https://github.com/MetaMask/core/pull/5272)) ## [15.0.1] @@ -242,7 +224,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- **BREAKING:** Bump `@metamask/keyring-controller` peer dependency from `^18.0.0` to `^19.0.0` ([#4195](https://github.com/MetaMask/core/pull/4195)) +- **BREAKING:** Bump `@metamask/keyring-controller` peer dependency from `^18.0.0` to `^19.0.0` ([#4195](https://github.com/MetaMask/core/pull/4956)) ## [14.0.0] @@ -295,7 +277,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ["Are the Types Wrong?"](https://arethetypeswrong.github.io/) tool as ["masquerading as CJS"](https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/FalseCJS.md). All of the ATTW checks now pass. -- Remove chunk files. ([#4648](https://github.com/MetaMask/core/pull/4648)) +- Remove chunk files ([#4648](https://github.com/MetaMask/core/pull/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 @@ -523,7 +505,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added -- `disabledRpcMethodPreferences` state to PreferencesController. See [this PR on extension](https://github.com/MetaMask/metamask-extension/pull/17308) and [this ticket](https://github.com/MetaMask/metamask-mobile/issues/5676) ([#1109](https://github.com/MetaMask/core/pull/1109)) +- `disabledRpcMethodPreferences` state to PreferencesController ([#1109](https://github.com/MetaMask/core/pull/1109)). See [this PR on extension](https://github.com/MetaMask/metamask-extension/pull/17308) and [this ticket](https://github.com/MetaMask/metamask-mobile/issues/5676) ## [2.0.0] diff --git a/packages/rate-limit-controller/CHANGELOG.md b/packages/rate-limit-controller/CHANGELOG.md index ef3d3f1075c..d55af2c41c4 100644 --- a/packages/rate-limit-controller/CHANGELOG.md +++ b/packages/rate-limit-controller/CHANGELOG.md @@ -7,20 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- chore: Enable lint:tsc for 11 additional clean packages ([#9664](https://github.com/MetaMask/core/pull/9664)) -- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) -- refactor: add `.js` import extensions to Core Platform packages ([#9571](https://github.com/MetaMask/core/pull/9571)) -- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) -- chore: MIT license text update ([#9472](https://github.com/MetaMask/core/pull/9472)) -- chore: Format changelogs with Oxfmt ([#8442](https://github.com/MetaMask/core/pull/8442)) -- Revert "Release 912.0.0 (#8451)" ([#8451](https://github.com/MetaMask/core/pull/8451)) -- Release 912.0.0 ([#8451](https://github.com/MetaMask/core/pull/8451)) -- chore: bump `@metamask/auto-changelog` to `^6.0.0` ([#8441](https://github.com/MetaMask/core/pull/8441)) -- chore: Replace Prettier with Oxfmt ([#8434](https://github.com/MetaMask/core/pull/8434)) - ### Changed - Bump `@metamask/utils` from `^11.9.0` to `^11.12.0` ([#9074](https://github.com/MetaMask/core/pull/9074), [#10076](https://github.com/MetaMask/core/pull/10076)) @@ -65,9 +51,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Bump `@metamask/base-controller` from `^7.0.2` to `^8.0.0` ([#5079](https://github.com/MetaMask/core/pull/5079), [#5135](https://github.com/MetaMask/core/pull/5135), [#5305](https://github.com/MetaMask/core/pull/5305)) +- Bump `@metamask/base-controller` from `^7.0.2` to `^8.0.0` ([#5079](https://github.com/MetaMask/core/pull/5079)), ([#5135](https://github.com/MetaMask/core/pull/5135)), ([#5305](https://github.com/MetaMask/core/pull/5305)) - Bump `@metamask/rpc-errors` from `^7.0.1` to `^7.0.2` ([#5080](https://github.com/MetaMask/core/pull/5080)) -- Bump `@metamask/utils` from `^10.0.0` to `^11.1.0` ([#5080](https://github.com/MetaMask/core/pull/5080), [#5223](https://github.com/MetaMask/core/pull/5223)) +- Bump `@metamask/utils` from `^10.0.0` to `^11.1.0` ([#5080](https://github.com/MetaMask/core/pull/5080)), ([#5223](https://github.com/MetaMask/core/pull/5223)) ## [6.0.2] @@ -95,7 +81,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ["Are the Types Wrong?"](https://arethetypeswrong.github.io/) tool as ["masquerading as CJS"](https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/FalseCJS.md). All of the ATTW checks now pass. -- Remove chunk files. ([#4648](https://github.com/MetaMask/core/pull/4648)) +- Remove chunk files ([#4648](https://github.com/MetaMask/core/pull/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 @@ -112,7 +98,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Bump `@metamask/base-controller` to `^5.0.2` ([#4232](https://github.com/MetaMask/core/pull/4232)) +- Bump `@metamask/base-controller` to `^5.0.2` ([#4232](https://github.comMetaMask/core/pull/4232)) ## [5.0.1] diff --git a/packages/react-data-query/CHANGELOG.md b/packages/react-data-query/CHANGELOG.md index 2f89a6b1dd2..336906ecf80 100644 --- a/packages/react-data-query/CHANGELOG.md +++ b/packages/react-data-query/CHANGELOG.md @@ -7,11 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- Add typechecking in CI for react-data-query ([#10010](https://github.com/MetaMask/core/pull/10010)) - ### Changed - Bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/sample-controllers/CHANGELOG.md b/packages/sample-controllers/CHANGELOG.md index 525dcf8741f..0883caa19e2 100644 --- a/packages/sample-controllers/CHANGELOG.md +++ b/packages/sample-controllers/CHANGELOG.md @@ -7,10 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) - ### Changed - Bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/seedless-onboarding-controller/CHANGELOG.md b/packages/seedless-onboarding-controller/CHANGELOG.md index f75a286e510..eb101fee7a6 100644 --- a/packages/seedless-onboarding-controller/CHANGELOG.md +++ b/packages/seedless-onboarding-controller/CHANGELOG.md @@ -7,10 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) - ### Changed - Bump `@metamask/keyring-controller` from `^27.1.0` to `^27.1.1` ([#9791](https://github.com/MetaMask/core/pull/9791)) diff --git a/packages/selected-network-controller/CHANGELOG.md b/packages/selected-network-controller/CHANGELOG.md index b4eda31b3b0..f2ca307940f 100644 --- a/packages/selected-network-controller/CHANGELOG.md +++ b/packages/selected-network-controller/CHANGELOG.md @@ -7,10 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) - ### Changed - Bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/sentinel-api-service/CHANGELOG.md b/packages/sentinel-api-service/CHANGELOG.md index 95edc19cb10..7072d446e72 100644 --- a/packages/sentinel-api-service/CHANGELOG.md +++ b/packages/sentinel-api-service/CHANGELOG.md @@ -7,10 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) - ### Changed - Bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/signature-controller/CHANGELOG.md b/packages/signature-controller/CHANGELOG.md index 1fedf673ac6..16f1f7c0861 100644 --- a/packages/signature-controller/CHANGELOG.md +++ b/packages/signature-controller/CHANGELOG.md @@ -7,10 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) - ### Changed - Bump `@metamask/eth-sig-util` from `^8.2.0` to `^9.0.0` ([#9999](https://github.com/MetaMask/core/pull/9999)) diff --git a/packages/snap-account-service/CHANGELOG.md b/packages/snap-account-service/CHANGELOG.md index b01ab84b37a..a17cceb609f 100644 --- a/packages/snap-account-service/CHANGELOG.md +++ b/packages/snap-account-service/CHANGELOG.md @@ -7,10 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) - ### Changed - Bump `@metamask/utils` from `^11.11.0` to `^11.12.0` ([#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/solana-test-validator-up/CHANGELOG.md b/packages/solana-test-validator-up/CHANGELOG.md index bb5584e1573..e57892ba85d 100644 --- a/packages/solana-test-validator-up/CHANGELOG.md +++ b/packages/solana-test-validator-up/CHANGELOG.md @@ -7,13 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- refactor: add `.js` import extensions to Networks packages ([#9649](https://github.com/MetaMask/core/pull/9649)) -- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) -- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) - ## [1.0.0] ### Added diff --git a/packages/storage-service/CHANGELOG.md b/packages/storage-service/CHANGELOG.md index a49dd87b601..4b8dfd758a6 100644 --- a/packages/storage-service/CHANGELOG.md +++ b/packages/storage-service/CHANGELOG.md @@ -7,14 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) -- chore: Enable lint:tsc for 11 additional clean packages ([#9664](https://github.com/MetaMask/core/pull/9664)) -- refactor: add `.js` import extensions to Mobile and Extension Platform packages ([#9628](https://github.com/MetaMask/core/pull/9628)) -- chore: migrate Jest from v29 to v30 ([#7905](https://github.com/MetaMask/core/pull/7905)) -- Ensure refs in tsconfig files are synced with internal deps ([#8384](https://github.com/MetaMask/core/pull/8384)) - ### Changed - Bump `@metamask/utils` from `^11.9.0` to `^11.12.0` ([#9074](https://github.com/MetaMask/core/pull/9074), [#10076](https://github.com/MetaMask/core/pull/10076)) diff --git a/packages/transaction-pay-controller/package.json b/packages/transaction-pay-controller/package.json index d81a826252a..64a0ebe65ec 100644 --- a/packages/transaction-pay-controller/package.json +++ b/packages/transaction-pay-controller/package.json @@ -60,7 +60,7 @@ "@ethersproject/contracts": "^5.7.0", "@ethersproject/providers": "^5.7.0", "@metamask/assets-controller": "^15.1.0", - "@metamask/assets-controllers": "^111.2.0", + "@metamask/assets-controllers": "^111.3.0", "@metamask/base-controller": "^9.1.0", "@metamask/controller-utils": "^12.3.0", "@metamask/gas-fee-controller": "^26.3.2", diff --git a/packages/user-operation-controller/CHANGELOG.md b/packages/user-operation-controller/CHANGELOG.md index ec33ecf308f..1cba7dbb91e 100644 --- a/packages/user-operation-controller/CHANGELOG.md +++ b/packages/user-operation-controller/CHANGELOG.md @@ -7,10 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Uncategorized - -- Preserve api-docs/ (not docs/) for Typedoc-generated directories ([#10114](https://github.com/MetaMask/core/pull/10114)) - ### Changed - Bump `@metamask/transaction-controller` from `^69.6.1` to `^69.8.1` ([#10046](https://github.com/MetaMask/core/pull/10046), [#10080](https://github.com/MetaMask/core/pull/10080), [#10124](https://github.com/MetaMask/core/pull/10124)) diff --git a/yarn.lock b/yarn.lock index 6f35e6397a7..b2ed1d0fa7f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5824,7 +5824,7 @@ __metadata: "@ethersproject/providers": "npm:^5.7.0" "@metamask/account-tree-controller": "npm:^9.0.0" "@metamask/accounts-controller": "npm:^39.1.1" - "@metamask/assets-controllers": "npm:^111.2.0" + "@metamask/assets-controllers": "npm:^111.3.0" "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/base-controller": "npm:^9.1.0" "@metamask/client-controller": "npm:^1.0.1" @@ -5865,7 +5865,7 @@ __metadata: languageName: unknown linkType: soft -"@metamask/assets-controllers@npm:^111.2.0, @metamask/assets-controllers@workspace:packages/assets-controllers": +"@metamask/assets-controllers@npm:^111.3.0, @metamask/assets-controllers@workspace:packages/assets-controllers": version: 0.0.0-use.local resolution: "@metamask/assets-controllers@workspace:packages/assets-controllers" dependencies: @@ -6102,7 +6102,7 @@ __metadata: "@ethersproject/providers": "npm:^5.7.0" "@metamask/accounts-controller": "npm:^39.1.1" "@metamask/assets-controller": "npm:^15.1.0" - "@metamask/assets-controllers": "npm:^111.2.0" + "@metamask/assets-controllers": "npm:^111.3.0" "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/base-controller": "npm:^9.1.0" "@metamask/controller-utils": "npm:^12.3.0" @@ -9241,7 +9241,7 @@ __metadata: "@ethersproject/contracts": "npm:^5.7.0" "@ethersproject/providers": "npm:^5.7.0" "@metamask/assets-controller": "npm:^15.1.0" - "@metamask/assets-controllers": "npm:^111.2.0" + "@metamask/assets-controllers": "npm:^111.3.0" "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/base-controller": "npm:^9.1.0" "@metamask/controller-utils": "npm:^12.3.0" From 403dc181014af06d48d267816c1a34adb2a092e9 Mon Sep 17 00:00:00 2001 From: Bernardo Garces Chapero Date: Wed, 9 Sep 2026 17:08:18 +0100 Subject: [PATCH 3/4] remove docs --- .../docs/accounts-api-v6-migration-plan.md | 756 ------------------ .../docs/accounts-api-v6-simplification.md | 478 ----------- 2 files changed, 1234 deletions(-) delete mode 100644 packages/assets-controller/docs/accounts-api-v6-migration-plan.md delete mode 100644 packages/assets-controller/docs/accounts-api-v6-simplification.md diff --git a/packages/assets-controller/docs/accounts-api-v6-migration-plan.md b/packages/assets-controller/docs/accounts-api-v6-migration-plan.md deleted file mode 100644 index b4197f235f1..00000000000 --- a/packages/assets-controller/docs/accounts-api-v6-migration-plan.md +++ /dev/null @@ -1,756 +0,0 @@ -# Accounts API v6 — Migration & Implementation Plan - -This document is the actionable follow-up to -[accounts-api-v6-simplification.md](./accounts-api-v6-simplification.md). It -describes **how** to migrate `AssetsController` to Accounts API v6 while keeping -all new logic behind feature flags and preserving the existing v5 path until -rollout is complete. - -**Audience:** engineers implementing the migration in `@metamask/assets-controller` -and wiring flags in extension / mobile. - ---- - -## Table of contents - -- [Goals & non-goals](#goals--non-goals) -- [Prerequisites](#prerequisites) -- [Architecture summary](#architecture-summary) -- [Feature flags](#feature-flags) -- [New modules & file layout](#new-modules--file-layout) -- [Routing boundary](#routing-boundary) -- [Phased migration](#phased-migration) -- [Phase 0 — Foundations](#phase-0--foundations) -- [Phase 1 — Balance fetch path](#phase-1--balance-fetch-path) -- [Phase 2 — WebSocket delta path](#phase-2--websocket-delta-path) -- [Phase 3 — Subscriptions](#phase-3--subscriptions) -- [Phase 4 — Cleanup](#phase-4--cleanup) -- [Fallback & enrichment details](#fallback--enrichment-details) -- [Testing strategy](#testing-strategy) -- [Rollout & rollback](#rollout--rollback) -- [PR sequence](#pr-sequence) -- [Acceptance criteria](#acceptance-criteria) -- [Checklist](#checklist) - ---- - -## Goals & non-goals - -### Goals - -1. **Collapse the v6 hot path** — one `/v6/multiaccount/balances` call replaces - the v5 balance fetch + `DetectionMiddleware` + `TokenDataSource` + - `PriceDataSource` onion for v6-supported chains. -2. **Zero public API breakage** — `AssetsController` state shape, messenger - actions, and events stay unchanged. -3. **Feature-flagged rollout** — every new code path is gated; v5 remains the - default until flags are enabled remotely. -4. **Safe rollback** — flag off (or v6 error) falls back to the legacy pipeline - without a client release. -5. **Incremental delivery** — ship in small PRs, each independently testable. - -### Non-goals (for initial phases) - -- Removing legacy middleware / data sources (Phase 4 only). -- Changing extension / mobile UI. -- Migrating other controllers (`TokenBalancesController`, etc.) — out of scope - unless explicitly required. - ---- - -## Prerequisites - -Resolve these **before Phase 4 cleanup**. They can be deferred during Phases -0–3 via sub-flags. - -| # | Topic | Decision needed | Default during rollout | -|---|-------|-----------------|------------------------| -| 1 | **Images & rich market metadata** | Does the UI require `iconUrl`, `aggregators`, `occurrences`, `honeypotStatus`, etc. from v6 alone? v6 returns `name`/`symbol`/`decimals`/`labels` but no image. | `lazySecondaryEnrichment: false` — enable when Token API lazy fetch is ready | -| 2 | **Dual currency (`usdPrice`)** | v6 accepts one `vsCurrency`. Preserve `usdPrice` via second v6 call or scoped Price API fetch? | `dualCurrencyUsd: false` initially; use selected currency only from v6 | -| 3 | **Chain coverage map** | Source of truth for which chains Tokens API / Price API / v6 each cover | Hardcode initial map in `api-chain-coverage.ts`; migrate to backend config later | -| 4 | **Remote flag name** | Confirm with platform team | `accountsApiV6` under `remoteFeatureFlags` | -| 5 | **DeFi indexing latency** | `processingDefiPositions` may require re-poll | Handle in `AccountsApiV6DataSource`; short retry when flag is true | - ---- - -## Architecture summary - -When the master flag is **on** and `isBasicFunctionality()` is **true**: - -``` -getAssets(forceUpdate) - └─ #fetchAssetsV6() - ├─ AccountsApiV6DataSource.fetch() - ├─ mapV6ResponseToState() - ├─ #updateState() - ├─ fallback for unprocessedNetworks → RpcDataSource / SnapDataSource - ├─ FallbackEnrichment.enrich() (Token/Price APIs, fallback assets only) - └─ optional lazy enrichment (images, usdPrice) - -When flag is off OR isBasicFunctionality() is false: - └─ #fetchAssetsLegacy() ← today's fast/slow pipeline, unchanged -``` - -See [accounts-api-v6-simplification.md](./accounts-api-v6-simplification.md) -for the full before/after diagrams. - ---- - -## Feature flags - -### Flag source - -Use `RemoteFeatureFlagController` (same pattern as -`SmartTransactionsController`). Inject a getter into `AssetsController` for -tests: - -```typescript -// packages/assets-controller/src/feature-flags/accounts-api-v6.ts - -export type AccountsApiV6FeatureFlags = { - /** Master kill switch. When false, entire v6 path is disabled. */ - enabled: boolean; - /** Use v6 in getAssets({ forceUpdate: true }). */ - balanceFetch: boolean; - /** WS / AccountActivity deltas trigger targeted v6 re-fetch. */ - websocketDelta: boolean; - /** Pass includeDeFiBalances to v6 (replaces StakedBalanceDataSource). */ - includeDeFiBalances: boolean; - /** Lazy Token/Price fetch for images & rich metadata on v6 assets. */ - lazySecondaryEnrichment: boolean; - /** Fetch usdPrice via second v6 call or Price API. */ - dualCurrencyUsd: boolean; - /** Optional per-chain canary (CAIP-2). Empty/undefined = all chains. */ - allowedChainIds?: string[]; -}; - -export const DEFAULT_ACCOUNTS_API_V6_FLAGS: AccountsApiV6FeatureFlags = { - enabled: false, - balanceFetch: false, - websocketDelta: false, - includeDeFiBalances: false, - lazySecondaryEnrichment: false, - dualCurrencyUsd: false, -}; - -export function getAccountsApiV6FeatureFlags( - messenger: RestrictedMessenger<..., RemoteFeatureFlagControllerGetStateAction, ...>, -): AccountsApiV6FeatureFlags; -``` - -### `AssetsControllerOptions` addition - -```typescript -/** Defaults to reading RemoteFeatureFlagController when omitted. */ -getAccountsApiV6FeatureFlags?: () => AccountsApiV6FeatureFlags; - -/** Called when v6 flags change; controller refreshes subscriptions. */ -subscribeToAccountsApiV6FlagChange?: ( - onChange: (flags: AccountsApiV6FeatureFlags) => void, -) => void | (() => void); -``` - -### Flag gating rules - -All of the following must be true for a given surface: - -| Surface | Conditions | -|---------|------------| -| Any v6 path | `isBasicFunctionality() === true` | -| `getAssets` v6 | `flags.enabled && flags.balanceFetch` | -| WS delta v6 | `flags.enabled && flags.websocketDelta` | -| DeFi in v6 | above + `flags.includeDeFiBalances` | -| Lazy enrichment | above + `flags.lazySecondaryEnrichment` | -| USD price | above + `flags.dualCurrencyUsd` | -| Per-chain canary | chain ∈ `flags.allowedChainIds` (if set) | - -### Extension / mobile wiring (outside this package) - -1. Define `accountsApiV6` in remote config (LaunchDarkly / equivalent). -2. Subscribe `AssetsController` to `RemoteFeatureFlagController:stateChange`. -3. No local `PreferencesController` flag needed unless you want a dev override. - ---- - -## New modules & file layout - -``` -packages/assets-controller/src/ -├── data-sources/ -│ └── AccountsApiV6DataSource.ts # NEW — v6 HTTP + poll subscription -│ └── AccountsApiV6DataSource.test.ts -├── mappers/ -│ └── mapV6ResponseToState.ts # NEW — pure V6BalancesResponse → DataResponse -│ └── mapV6ResponseToState.test.ts -├── enrichment/ -│ └── FallbackEnrichment.ts # NEW — scoped Token/Price enrich() -│ └── FallbackEnrichment.test.ts -├── utils/ -│ └── api-chain-coverage.ts # NEW — Tokens/Price API chain gates -│ └── api-chain-coverage.test.ts -├── fetch/ -│ └── fetchAssetsV6.ts # NEW — linear v6 fetch orchestration -│ └── fetchAssetsV6.test.ts -├── feature-flags/ -│ └── accounts-api-v6.ts # NEW — flag types + messenger reader -│ └── accounts-api-v6.test.ts -└── AssetsController.ts # MODIFY — routing only (thin changes) -``` - -Export new public types from `src/index.ts` only if extension/mobile need them -(flag helpers are usually internal). - ---- - -## Routing boundary - -**Rule:** `AssetsController` is the only place that branches v5 vs v6. No -`if (v6)` inside existing middleware. - -### Methods to branch - -| Method | Branch | -|--------|--------| -| `getAssets` (`forceUpdate: true`) | `#fetchAssetsV6` vs legacy fast/slow | -| `handleAssetsUpdate` | v6 delta re-fetch vs legacy enrichment chain | -| `#subscribeAssetsBalance` | subscribe `AccountsApiV6DataSource` instead of v5 (+ adjust source list) | -| `subscribeAssetsPrice` | shrink scope to fallback-only assets when v6 on | -| `#subscribeStakedBalance` | skip when `includeDeFiBalances` flag on | -| `handleBasicFunctionalityChange` | already refreshes subscriptions — extend for v6 flags | - -### Pseudocode — `getAssets` - -```typescript -async getAssets(accounts, options) { - // ... existing early returns ... - - if (options?.forceUpdate) { - const v6Flags = this.#getAccountsApiV6FeatureFlags(); - if ( - this.#isBasicFunctionality() && - v6Flags.enabled && - v6Flags.balanceFetch && - this.#chainsAllowedForV6(options.chainIds ?? [...this.#enabledChains], v6Flags) - ) { - try { - await this.#fetchAssetsV6(accounts, options); - return this.#getAssetsFromState(accounts, chainIds, assetTypes); - } catch (error) { - this.#captureException?.(error); - log('v6 fetch failed, falling back to legacy pipeline', { error }); - // fall through to legacy - } - } - - // LEGACY — unchanged - return this.#fetchAssetsLegacy(accounts, options); - } - - // ... existing non-forceUpdate path ... -} -``` - -Extract today's `forceUpdate` block (lines ~1654–1725 in `AssetsController.ts`) -into `#fetchAssetsLegacy` as part of Phase 1. - ---- - -## Phased migration - -```mermaid -gantt - title Accounts API v6 migration phases - dateFormat YYYY-MM-DD - section Build - Phase 0 Foundations :p0, 2026-01-01, 5d - Phase 1 Balance fetch :p1, after p0, 7d - section Rollout - Phase 2 WebSocket delta :p2, after p1, 5d - Phase 3 Subscriptions :p3, after p2, 5d - section Finish - Phase 4 Cleanup :p4, after p3, 5d -``` - -| Phase | Delivers | Flag(s) enabled | Legacy code touched | -|-------|----------|-----------------|---------------------| -| 0 | Mapper, data source, flags (no controller wiring) | none | none | -| 1 | `getAssets` v6 path + fallback | `enabled`, `balanceFetch` | extract `#fetchAssetsLegacy` | -| 2 | WS / AccountActivity delta | `websocketDelta` | `handleAssetsUpdate` branch | -| 3 | v6 poll subscription; shrink price poll | same master flags | `#subscribeAssetsBalance`, `subscribeAssetsPrice` | -| 4 | Delete v5 hot-path code | 100% rollout | remove legacy pipeline | - ---- - -## Phase 0 — Foundations - -**Goal:** build and test new modules in isolation. No runtime behavior change. - -### Tasks - -- [ ] **0.1** Create `feature-flags/accounts-api-v6.ts` - - Types, defaults, `getAccountsApiV6FeatureFlags(messenger)` helper. - - Unit tests with mock messenger. - -- [ ] **0.2** Create `utils/api-chain-coverage.ts` - - `tokensApiCoversChain(chainId): boolean` - - `priceApiCoversChain(chainId): boolean` - - `v6SupportsChain(chainId): boolean` (can mirror Accounts API supported - networks initially). - - Tests per chain. - -- [ ] **0.3** Create `mappers/mapV6ResponseToState.ts` - - Input: `V6BalancesResponse`, `DataRequest`, `selectedCurrency`. - - Output: `DataResponse` (`assetsInfo`, `assetsBalance`, `assetsPrice`). - - Map `category: 'token'` and `category: 'defi'` rows. - - Map `canonicalHead` into custom-asset graduation hints (or a dedicated - field consumed by controller). - - Map `unprocessedNetworks` → list of `ChainId` for fallback handoff. - - Map `unprocessedIncludeAssetIds` for RPC custom-asset supplement. - - Fixture-based tests using shapes from - `packages/core-backend/src/api/accounts/client.test.ts`. - -- [ ] **0.4** Create `data-sources/AccountsApiV6DataSource.ts` - - Extend `AbstractDataSource` (mirror `AccountsApiDataSource` structure). - - Use `queryApiClient.accounts.fetchV6MultiAccountBalances` / - `getV6MultiAccountBalancesQueryOptions`. - - Default query options for full fetch: - ```typescript - { - filterSupportedTokens: true, - includeLabels: true, - includeCanonicalHead: true, - includePrices: true, - vsCurrency: selectedCurrency, - includeAssetIds: customAssets, // from request - includeDeFiBalances: flags.includeDeFiBalances, - } - ``` - - `assetsMiddleware` is **not** needed on the v6 path — expose `fetch(request)` - and `subscribe()` directly. - - Handle `processingDefiPositions`: schedule a short re-fetch (e.g. 2s) when - any account has `processingDefiPositions: true`. - - Unit tests: happy path, timeout → mark chains errored, empty accounts. - -- [ ] **0.5** Create `enrichment/FallbackEnrichment.ts` - - Constructor takes `TokenDataSource`, `PriceDataSource`, - `api-chain-coverage`. - - `async enrich({ assetIds, request, state }): Promise` - - Filters asset IDs by API coverage; skips assets that already have complete - metadata/price in state. - - Does **not** use middleware / `reduceRight`. - - Unit tests. - -- [ ] **0.6** Create `fetch/fetchAssetsV6.ts` - - Pure orchestration function called by controller: - ```typescript - export async function fetchAssetsV6(deps: { - v6DataSource: AccountsApiV6DataSource; - rpcDataSource: RpcDataSource; - snapDataSource: SnapDataSource; - fallbackEnrichment: FallbackEnrichment; - lazyEnrichment?: FallbackEnrichment; // Token/Price for v6 gaps - flags: AccountsApiV6FeatureFlags; - request: DataRequest; - selectedCurrency: SupportedCurrency; - executeMiddlewares: ...; // for RPC/Snap only - updateState: ...; - }): Promise; - ``` - - Steps (from simplification doc §2.3): - 1. v6 fetch + map → `#updateState(merge)`. - 2. Build fallback `chainIds` from `unprocessedNetworks`. - 3. If fallback chains: RPC / Snap (parallel) → `#updateState(merge)`. - 4. `FallbackEnrichment.enrich(fallbackAssetIds)`. - 5. If `dualCurrencyUsd`: second price pass. - 6. If `lazySecondaryEnrichment`: enrich v6 assets missing images. - - Integration-style tests with mocked deps. - -### Phase 0 exit criteria - -- All new modules have ≥90% coverage. -- `yarn workspace @metamask/assets-controller run test` passes. -- No change to `AssetsController` runtime behavior. - ---- - -## Phase 1 — Balance fetch path - -**Goal:** `getAssets({ forceUpdate: true })` uses v6 when flagged. - -### Tasks - -- [ ] **1.1** Add `getAccountsApiV6FeatureFlags` to `AssetsControllerOptions`. - - Wire default implementation reading `RemoteFeatureFlagController:getState`. - - Add messenger action type to `AssetsControllerMessenger` allowed actions. - -- [ ] **1.2** Instantiate `AccountsApiV6DataSource` in constructor (always - created; only *used* when flagged). - -- [ ] **1.3** Extract `#fetchAssetsLegacy` from current `getAssets` forceUpdate - block. **No logic changes** — move only. - -- [ ] **1.4** Add `#fetchAssetsV6` delegating to `fetchAssetsV6()`. - -- [ ] **1.5** Add routing in `getAssets` with try/catch fallback to legacy. - -- [ ] **1.6** Add `#chainsAllowedForV6(chainIds, flags)` helper. - -- [ ] **1.7** Emit trace span `assets.v6.full_fetch` (mirror `TRACE_FULL_FETCH` - fields + `v6: true`). - -- [ ] **1.8** Controller tests: - - Flag off → legacy middleware order unchanged (existing tests still pass). - - Flag on → v6 data source called; `DetectionMiddleware` **not** on hot path. - - v6 throws → legacy pipeline runs. - - `isBasicFunctionality() false` → RPC only, v6 skipped. - -- [ ] **1.9** Changelog entry under `@metamask/assets-controller` Unreleased → - Added. - -### Phase 1 rollout - -1. Merge with all flags defaulting to `false`. -2. Enable `accountsApiV6.enabled` + `balanceFetch` for internal QA (1% cohort). -3. Monitor: fetch duration, error rate, balance parity vs v5 (manual or shadow). -4. Expand `allowedChainIds` chain-by-chain if needed. - ---- - -## Phase 2 — WebSocket delta path - -**Goal:** real-time balance updates on v6-supported chains use targeted v6 -re-fetch instead of Detection → Token → Price. - -### Tasks - -- [ ] **2.1** Branch `handleAssetsUpdate`: - ```typescript - if (v6Flags.enabled && v6Flags.websocketDelta && isV6SupportedSource(sourceId)) { - const newAssetIds = extractNewAssetIdsFromDelta(response, state); - if (newAssetIds.length > 0) { - await this.#fetchAssetsV6(accounts, { - forceUpdate: true, - chainIds: chainsFromDelta, - // pass includeAssetIds via customAssets - }); - return; - } - // balance-only delta with no new assets: map delta directly, skip enrichment - await this.#updateState({ ...mappedDelta }); - return; - } - // legacy enrichment chain — unchanged - ``` - -- [ ] **2.2** For v6-unsupported chains in the same delta: commit balance - immediately, then `FallbackEnrichment.enrich()`. - -- [ ] **2.3** Tests: - - WS delta on Ethereum with new token → v6 called with `includeAssetIds`. - - WS delta on unsupported chain → fallback enrichment only. - - Flag off → existing `handleAssetsUpdate` tests pass unchanged. - -### Phase 2 rollout - -Enable `websocketDelta` after `balanceFetch` is stable in QA. - ---- - -## Phase 3 — Subscriptions - -**Goal:** replace v5 balance polling with v6 polling; shrink price subscription. - -### Tasks - -- [ ] **3.1** Update `#subscribeAssetsBalance`: - - When v6 flagged: subscribe `AccountsApiV6DataSource` **instead of** - `AccountsApiDataSource`. - - Do **not** subscribe both — avoids duplicate polls. - - Keep `BackendWebsocketDataSource`, `RpcDataSource` (supplement/custom), - `SnapDataSource` as today for fallback chains. - -- [ ] **3.2** Update `subscribeAssetsPrice`: - - When v6 flagged: only subscribe for asset IDs **not** covered by the last v6 - response (fallback-chain assets + any asset missing price). - - Consider passing `assetIds` filter into `PriceDataSource.subscribe`. - -- [ ] **3.3** Update `#subscribeStakedBalance`: - - Skip when `flags.includeDeFiBalances` is true (DeFi comes from v6). - -- [ ] **3.4** Subscribe to v6 flag changes: - - On `RemoteFeatureFlagController:stateChange`, call internal refresh (same as - `handleBasicFunctionalityChange`) to swap subscriptions. - -- [ ] **3.5** Tests for subscription swapping when flag toggles. - -### Phase 3 rollout - -Enable balance polling on v6 in staging; verify no duplicate v5 + v6 requests -in network tab. - ---- - -## Phase 4 — Cleanup - -**Goal:** remove legacy hot-path code after 100% rollout and bake time. - -> **Do not start Phase 4 until:** flags at 100% for ≥2 weeks, caveats resolved, -> no P0 balance/price regressions. - -### Delete or simplify - -| Component | Action | -|-----------|--------| -| `AccountsApiDataSource` | Remove (or keep thin wrapper if other packages import it) | -| Fast/slow split in `#fetchAssetsLegacy` | Remove entire method | -| `DetectionMiddleware` | Remove from controller; keep file if used elsewhere | -| `RpcFallbackMiddleware` | Remove — replaced by `unprocessedNetworks` handoff | -| `ParallelMiddleware` usage in balance fetch | Remove | -| `StakedBalanceDataSource` | Remove when `includeDeFiBalances` is always on | -| `CustomAssetGraduationMiddleware` | Simplify — v6 `includeCanonicalHead` handles dedupe | -| `#fetchAssetsLegacy` | Delete | -| v6 feature flags | Remove sub-flags; v6 becomes unconditional when `isBasicFunctionality()` | - -### Final tasks - -- [ ] Remove flag routing branches (v6 is the only path). -- [ ] Update README / architecture docs. -- [ ] Changelog: Changed (note internal simplification, no public API change). -- [ ] Delete `accounts-api-v6-simplification.md` migration notes or mark as - historical. - ---- - -## Fallback & enrichment details - -### v6 primary fetch - -``` -POST /v6/multiaccount/balances - accountIds: CAIP-10[] - networks: CAIP-2[] - filterSupportedTokens: true - includeLabels: true - includeCanonicalHead: true - includePrices: true - vsCurrency: - includeAssetIds: - includeDeFiBalances: -``` - -### Fallback trigger - -| Signal | Action | -|--------|--------| -| `unprocessedNetworks` | RPC (EVM) or Snap (non-EVM) for those chains | -| `unprocessedIncludeAssetIds` | RPC custom-asset supplement (existing `#subscribeRpcCustomAssetsSupplement` pattern) | -| v6 request throws / times out | Entire request falls back to `#fetchAssetsLegacy` | -| Chain ∉ `allowedChainIds` (canary) | Route that chain through legacy or fallback only | - -### Tiered enrichment (fallback assets only) - -``` -fallbackAssetIds = assets from RPC/Snap response -tokensApiIds = fallbackAssetIds.filter(tokensApiCoversChain) -priceApiIds = fallbackAssetIds.filter(priceApiCoversChain) - -if (tokensApiIds.length) await fallbackEnrichment.enrichTokens(tokensApiIds) -if (priceApiIds.length) await fallbackEnrichment.enrichPrices(priceApiIds) -``` - -### Lazy secondary enrichment (v6 assets) - -When `lazySecondaryEnrichment` is true, after the v6 hot path commits: - -``` -assetsMissingImages = v6AssetIds.filter(id => !state.assetsInfo[id]?.image) -if (assetsMissingImages.length) await lazyEnrichment.enrichTokens(assetsMissingImages) -``` - -Run async (do not block `getAssets` return) unless the UI explicitly needs -images before render. - ---- - -## Testing strategy - -### Unit tests (every phase) - -| Module | Focus | -|--------|-------| -| `mapV6ResponseToState` | token rows, defi rows, empty accounts, unprocessed fields | -| `AccountsApiV6DataSource` | query option building, timeout, `processingDefiPositions` retry | -| `FallbackEnrichment` | coverage gating, skip complete assets | -| `fetchAssetsV6` | orchestration order, fallback handoff | -| `accounts-api-v6` flags | defaults, parsing remote flag shape | - -### Controller integration tests - -| Scenario | Flag | Expect | -|----------|------|--------| -| Full fetch | off | Legacy middleware order | -| Full fetch | on | v6 called once; no Detection on hot path | -| v6 failure | on | Legacy runs | -| Basic functionality off | on | RPC only; v6 skipped | -| WS new asset | `websocketDelta` on | v6 with `includeAssetIds` | -| Subscription start | on | v5 unsubscribed, v6 subscribed | - -### Parity / shadow testing (staging) - -Optional dev-only shadow mode (not required for merge): - -```typescript -if (flags.enabled && flags.shadowCompare) { - const [v6Result, legacyResult] = await Promise.allSettled([...]); - reportParityDiff(v6Result, legacyResult); // metrics only, don't commit v6 -} -``` - -### Manual QA checklist - -- [ ] Portfolio loads with correct balances (native + ERC-20 + Solana). -- [ ] Custom token import confirmed via `includeAssetIds`. -- [ ] DeFi / staking positions appear when `includeDeFiBalances` on. -- [ ] Prices match selected currency. -- [ ] `usdPrice` present when `dualCurrencyUsd` on. -- [ ] Toggle basic functionality off → RPC only. -- [ ] Toggle v6 flag off mid-session → subscriptions revert, balances still load. -- [ ] Chain not in v6 → fallback RPC/Snap still works. - ---- - -## Rollout & rollback - -### Rollout order - -1. `enabled: false` — merge all code (Phases 0–3). -2. `enabled: true, balanceFetch: true` — internal / 1%. -3. Add chains to `allowedChainIds` or remove allowlist. -4. `websocketDelta: true`. -5. `includeDeFiBalances: true`. -6. `lazySecondaryEnrichment` / `dualCurrencyUsd` as needed. -7. Phase 4 cleanup. - -### Rollback - -| Level | Action | -|-------|--------| -| Instant | Set `accountsApiV6.enabled: false` in remote config | -| Per-surface | Disable `balanceFetch` or `websocketDelta` individually | -| Per-chain | Add chain to legacy-only list or remove from `allowedChainIds` | -| Code rollback | Not needed if flags work — legacy path remains until Phase 4 | - -### Metrics to watch - -- `assets.v6.full_fetch` duration vs `assets.full_fetch` -- v6 error rate / fallback-to-legacy count -- `unprocessedNetworks` rate per chain -- Price missing rate (`assetsPrice` entries without matching balance) - ---- - -## PR sequence - -Keep PRs small and independently mergeable. - -| PR | Phase | Description | -|----|-------|-------------| -| 1 | 0 | Feature flag types + messenger reader | -| 2 | 0 | `api-chain-coverage` utility | -| 3 | 0 | `mapV6ResponseToState` + fixtures | -| 4 | 0 | `AccountsApiV6DataSource` | -| 5 | 0 | `FallbackEnrichment` | -| 6 | 0 | `fetchAssetsV6` orchestrator | -| 7 | 1 | Wire v6 into `getAssets` + `#fetchAssetsLegacy` extraction | -| 8 | 2 | `handleAssetsUpdate` v6 branch | -| 9 | 3 | Subscription changes + flag change listener | -| 10 | 3 | `includeDeFiBalances` + staked subscription removal | -| 11 | — | Extension/mobile remote flag config (separate repo PRs) | -| 12 | 4 | Delete legacy hot path (after rollout) | - -Each PR should include tests and a changelog entry when behavior is user-visible -(Phase 1+). - ---- - -## Acceptance criteria - -### Phase 1 - -- [ ] With flags off, all existing `AssetsController` tests pass unchanged. -- [ ] With flags on, `getAssets({ forceUpdate: true })` calls v6 once per fetch. -- [ ] v6 failure transparently falls back to legacy. -- [ ] State shape identical to legacy path for supported chains. - -### Phase 2 - -- [ ] WS delta for new asset triggers v6 `includeAssetIds` fetch. -- [ ] Unsupported-chain deltas use fallback enrichment only. - -### Phase 3 - -- [ ] Only one balance poll source active (v5 **xor** v6). -- [ ] Price subscription scope reduced under v6. -- [ ] Flag toggle refreshes subscriptions without duplicate polls. - -### Phase 4 - -- [ ] Legacy pipeline code deleted. -- [ ] Bundle size / complexity reduced (fewer middleware classes in hot path). -- [ ] No open P0/P1 balance or price bugs for 2 weeks at 100%. - ---- - -## Checklist - -Copy this into your PR / project tracker. - -``` -Phase 0 -[ ] accounts-api-v6.ts flags -[ ] api-chain-coverage.ts -[ ] mapV6ResponseToState.ts -[ ] AccountsApiV6DataSource.ts -[ ] FallbackEnrichment.ts -[ ] fetchAssetsV6.ts - -Phase 1 -[ ] AssetsControllerOptions + messenger types -[ ] #fetchAssetsLegacy extraction -[ ] #fetchAssetsV6 wiring -[ ] getAssets routing + fallback -[ ] Tests + changelog - -Phase 2 -[ ] handleAssetsUpdate v6 branch -[ ] Tests + changelog - -Phase 3 -[ ] #subscribeAssetsBalance v6 swap -[ ] subscribeAssetsPrice scope shrink -[ ] #subscribeStakedBalance conditional skip -[ ] Flag change subscription refresh -[ ] Tests + changelog - -Rollout -[ ] Remote flag in staging -[ ] QA parity sign-off -[ ] Gradual prod rollout -[ ] 2-week bake at 100% - -Phase 4 -[ ] Delete legacy hot path -[ ] Update docs -[ ] Final changelog -``` - ---- - -## References - -- [accounts-api-v6-simplification.md](./accounts-api-v6-simplification.md) — - architecture rationale -- `@metamask/core-backend` — `fetchV6MultiAccountBalances`, - `V6BalancesResponse`, query options -- `packages/assets-controller/src/AssetsController.ts` — current orchestration -- `packages/smart-transactions-controller` — RemoteFeatureFlagController pattern diff --git a/packages/assets-controller/docs/accounts-api-v6-simplification.md b/packages/assets-controller/docs/accounts-api-v6-simplification.md deleted file mode 100644 index b8172e0483c..00000000000 --- a/packages/assets-controller/docs/accounts-api-v6-simplification.md +++ /dev/null @@ -1,478 +0,0 @@ -# AssetsController architecture & Accounts API v6 simplification - -This document describes how `AssetsController` builds its state today, and how the -Accounts API **v6** balances endpoint (`/v6/multiaccount/balances`, already -available in `@metamask/core-backend`) lets us collapse most of the current -middleware machinery. - -- [Part 1 — How `AssetsController` builds state today](#part-1--how-assetscontroller-builds-state-today) -- [Part 2 — Simplifying with Accounts API v6](#part-2--simplifying-with-accounts-api-v6) -- [Part 3 — What code we can remove or simplify](#part-3--what-code-we-can-remove-or-simplify) -- [Part 4 — Fallback chains & tiered enrichment](#part-4--fallback-chains--tiered-enrichment) -- [Caveats](#caveats) - ---- - -## Part 1 — How `AssetsController` builds state today - -### 1.1 The big picture - -The controller does not fetch anything directly. It owns a set of **balance data -sources** and a set of **enrichment middlewares**, and it assembles them into -different pipelines depending on the trigger. State is built up by pushing a -mutable `context = { request, response }` object through a middleware chain -(`reduceRight` → onion model), then merging the final `response` into controller -state. - -```mermaid -flowchart TB - subgraph AC["AssetsController (orchestrator + state owner)"] - STATE["State:
assetsInfo (metadata)
assetsBalance (per account)
assetsPrice
customAssets / assetPreferences / selectedCurrency"] - end - - subgraph BAL["Balance data sources (produce assetsBalance)"] - WS["BackendWebsocketDataSource
real-time WS push (account-activity.v1)"] - API["AccountsApiDataSource
HTTP poll · v5 /multiaccount/balances"] - STK["StakedBalanceDataSource
RPC staking positions"] - SNAP["SnapDataSource
non-EVM (Solana/BTC/Tron)"] - RPC["RpcDataSource
EVM multicall (fallback / RPC-only)"] - end - - subgraph ENR["Enrichment middlewares (mutate response)"] - GRAD["CustomAssetGraduationMiddleware"] - FALL["RpcFallbackMiddleware"] - DET["DetectionMiddleware
computes 'brand new' assets"] - TOK["TokenDataSource
Tokens API v3 metadata + spam filter"] - PRICE["PriceDataSource
Price API v3 spot prices"] - end - - subgraph EXT["External services"] - BAPI["Accounts / Tokens / Price APIs
(ApiPlatformClient)"] - BWSS["BackendWebSocketService"] - NC["NetworkController (RPC)"] - SC["SnapController"] - PH["PhishingController (Blockaid)"] - end - - AC --> BAL - AC --> ENR - API --> BAPI - TOK --> BAPI - PRICE --> BAPI - TOK --> PH - WS --> BWSS - RPC --> NC - SNAP --> SC - BAL -->|response| ENR - ENR -->|merged response| STATE -``` - -### 1.2 The "fast / slow" fetch pipeline (`getAssets({ forceUpdate: true })`) - -This is the most complex part. A single refresh is split into **two pipelines** -because different sources have wildly different latencies. Each stage is a -middleware; balance sources and enrichment sources are wrapped in -`createParallelBalanceMiddleware` / `createParallelMiddleware` to run -concurrently, with chain-partitioning so no chain is fetched twice. - -```mermaid -flowchart TB - START["getAssets(accounts, forceUpdate: true)"] --> REQ["#buildDataRequest()"] - - subgraph FAST["FAST pipeline (committed to state immediately)"] - direction TB - F1["parallel( AccountsApi + StakedBalance )"] --> F2["CustomAssetGraduation"] - F2 --> F3["RpcFallback (retry errored chains on RPC)"] - F3 --> F4["Detection (compute detectedAssets)"] - F4 --> F5["parallel( TokenDataSource + PriceDataSource )"] - end - - subgraph SLOW["SLOW pipeline (async, background, merged later)"] - direction TB - S1["parallel( Snap + Rpc )"] --> S2["Detection"] - S2 --> S3["parallel( Token + Price )"] - end - - REQ --> FAST - FAST --> COMMIT1["#updateState(merge, replaceCoveredChainBalances)"] - COMMIT1 --> DECIDE{"chains not
covered by fast?"} - DECIDE -->|yes| SLOW - SLOW --> COMMIT2["#updateState(merge)"] - COMMIT1 --> RET["return #getAssetsFromState()"] - - note1["Basic-functionality OFF:
Token + Price stripped,
RPC-only path"] - note1 -.-> FAST -``` - -Key ordering detail: `DetectionMiddleware` must run **before** -`TokenDataSource`/`PriceDataSource`, because it populates -`response.detectedAssets` and `request.assetsForPriceUpdate`, which are the inputs -those two use to decide what metadata/prices to fetch. This "detect first, then -enrich" contract is the reason the pipeline is a strict chain rather than a flat -parallel fan-out. - -### 1.3 The subscription / event pipeline (real-time updates) - -Balances also arrive asynchronously, primarily from the WebSocket. Those go -through a *lighter* enrichment chain. - -```mermaid -sequenceDiagram - participant WS as BackendWebsocketDataSource - participant AAS as AccountActivityService - participant AC as AssetsController - participant DET as DetectionMiddleware - participant TOK as TokenDataSource - participant PRICE as PriceDataSource - participant ST as State - - AAS-->>WS: balanceUpdated (delta) - WS->>AC: assetsUpdate(response, sourceId) - Note over AC: handleAssetsUpdate() - AC->>DET: which balances are brand-new? - DET-->>AC: response.detectedAssets + assetsForPriceUpdate - AC->>TOK: fetch metadata for detected (Tokens API v3) - AC->>PRICE: fetch spot prices for detected (Price API v3) - TOK-->>AC: assetsInfo - PRICE-->>AC: assetsPrice - AC->>ST: #updateState(enrichedResponse) - ST-->>AC: stateChange / balanceChanged / priceChanged / assetsDetected -``` - -On top of that, `PriceDataSource` runs its **own** polling subscription (every -60s) that re-prices everything already in `assetsBalance`, and -`AccountsApiDataSource` runs its **own** balance polling subscription (every 30s). -So there are effectively three independent update mechanisms feeding the same -state. - -### 1.4 Why this is "overcomplicated" - -Building one coherent `{ balance, metadata, price }` record for an asset today -requires orchestrating **3 separate REST APIs + WS + RPC**, glued by a detection -step whose only job is to figure out which assets are new enough to warrant -metadata/price lookups: - -- **balance** ← v5 Accounts API (or WS, or RPC, or Snap) -- **metadata** (name/symbol/decimals/image/spam) ← Tokens API v3 + Blockaid + - occurrence-count heuristics -- **price** ← Price API v3 (twice: selected currency + USD) -- **"is this new?"** ← DetectionMiddleware, hand-rolled diffing against state - -That fan-out is what forces the fast/slow split, the parallel-merge middlewares, -chain partitioning, RPC-fallback ordering, the detection→enrich contract, and the -three overlapping subscription loops. - ---- - -## Part 2 — Simplifying with Accounts API v6 - -### 2.1 What v6 gives you in one call - -Looking at `V6BalancesResponse` / `getV6MultiAccountBalancesQueryOptions` in -`@metamask/core-backend`, a single `/v6/multiaccount/balances` request returns, -**per account**, everything the enrichment chain currently reconstructs from three -APIs: - -| v6 capability | Query flag | Replaces today | -| ------------------------------------ | ---------------------------------------------- | ------------------------------------------- | -| Token + native balances | (always) | AccountsApi v5 balances | -| Solana token balances, Stellar trustlines | (always) | part of SnapDataSource | -| DeFi positions (`category: 'defi'`) | `includeDeFiBalances` | StakedBalanceDataSource (+ new DeFi) | -| name / symbol / decimals | (always) | most of TokenDataSource metadata | -| labels | `includeLabels` | TokenDataSource labels | -| spot `price` | `includePrices` + `vsCurrency` | PriceDataSource | -| spam filtering (only Token-API tokens) | `filterSupportedTokens` | occurrence-count + Blockaid filter | -| detection confirmation | `includeAssetIds` → `unprocessedIncludeAssetIds` | most of DetectionMiddleware | -| canonical head (asset dedupe) | `includeCanonicalHead` | custom-asset graduation logic | - -### 2.2 Simplified architecture - -The controller keeps its identity (state shape, messenger API, events), but the -balance/metadata/price/detection fan-out collapses into **one primary data -source** for v6-supported chains. RPC and Snap survive as *fallbacks* for chains -v6 does not cover; `TokenDataSource` and `PriceDataSource` are repurposed as -**conditional enrichers** for those fallback assets when Tokens/Price API cover -the chain (see [Part 4](#part-4--fallback-chains--tiered-enrichment)). - -```mermaid -flowchart TB - subgraph AC["AssetsController (unchanged public surface)"] - STATE["State: assetsInfo / assetsBalance / assetsPrice / ..."] - end - - subgraph PRIMARY["Primary source"] - V6["AccountsApiV6DataSource
ONE call → balance + metadata + price + defi
filterSupportedTokens + includeAssetIds"] - end - - subgraph REALTIME["Real-time"] - WS["BackendWebsocketDataSource
balance deltas → trigger targeted v6 re-fetch"] - end - - subgraph FALLBACK["Fallback only"] - RPC["RpcDataSource
RPC-only mode + v6-unsupported EVM chains"] - SNAP["SnapDataSource
only chains v6 does not cover"] - end - - subgraph ENR["Conditional enrichment (fallback assets only)"] - TOK["TokenDataSource
Tokens API v3 — when chain is supported"] - PRICE["PriceDataSource
Price API v3 — when chain is supported"] - end - - subgraph EXT["External services"] - BAPI["Tokens / Price APIs
(ApiPlatformClient)"] - end - - AC --> V6 - AC --> WS - AC -.fallback.-> RPC - AC -.fallback.-> SNAP - V6 --> STATE - WS --> AC - RPC --> ENR - SNAP --> ENR - TOK --> BAPI - PRICE --> BAPI - ENR --> STATE - - GONE["REMOVED from hot path: DetectionMiddleware · ParallelMiddleware
RpcFallbackMiddleware · fast/slow split · StakedBalanceDataSource
Token/Price as pipeline middleware on the v6 path"] - style GONE fill:#3a1c1c,stroke:#a33,color:#fdd -``` - -### 2.3 Simplified fetch flow - -The entire onion of Detection → Token → Price disappears on the **v6 path**, -because v6 returns an already-enriched response. Fallback chains follow a -separate tiered path (RPC/Snap first, then optional Token/Price enrichment). -See [Part 4](#part-4--fallback-chains--tiered-enrichment). - -```mermaid -flowchart LR - G["getAssets(forceUpdate)"] --> V6["v6 call
includePrices + includeLabels
filterSupportedTokens
includeAssetIds=customAssets"] - V6 --> MAP["map V6 rows →
assetsInfo + assetsBalance + assetsPrice"] - MAP --> ST["#updateState()"] - V6 -.unprocessedNetworks.-> FB["RPC / Snap fallback
(only these chains)"] - FB --> COMMIT["#updateState()
(balances + RPC/Snap metadata)"] - COMMIT --> ENR{"Tokens / Price API
cover chain?"} - ENR -->|yes| UPGRADE["optional enrichment
TokenDataSource + PriceDataSource"] - ENR -->|no| DONE["done — RPC/Snap metadata,
no price if Price API unsupported"] - UPGRADE --> ST - DONE --> ST -``` - -Compare the two "build one asset" paths: - -```mermaid -flowchart TB - subgraph BEFORE["Today: 3 APIs + detection glue"] - b1["v5 balances"] --> b2["Detection diff"] - b2 --> b3["Tokens API v3 metadata"] - b2 --> b4["Price API v3 x2 (usd + fiat)"] - b3 --> b5["merge"] - b4 --> b5 - end - subgraph AFTER_V6["With v6: supported chains"] - a1["v6 (balance+metadata+price+defi)"] --> a2["map to state"] - end - subgraph AFTER_FB["With v6: fallback chains"] - f1["RPC / Snap balances + metadata floor"] --> f2["optional Token/Price enrichment
(when APIs cover chain)"] - f2 --> f3["merge to state"] - end -``` - -### 2.4 Real-time still needs a small amount of glue - -When the WebSocket pushes a balance delta for an asset on a **v6-supported** -chain, call v6 with `includeAssetIds: [newAssetId]` instead of -DetectionMiddleware → TokenDataSource → PriceDataSource. - -For deltas on **v6-unsupported** chains, commit the balance from WS/RPC/Snap -first, then run the same conditional fallback enrichment described in -[Part 4](#part-4--fallback-chains--tiered-enrichment). - -```mermaid -sequenceDiagram - participant WS as WebSocket - participant AC as AssetsController - participant V6 as v6 endpoint - participant ENR as Fallback enrichment - WS-->>AC: balance delta (maybe new asset) - alt v6-supported chain - AC->>V6: fetch with includeAssetIds=[new ids], includePrices - V6-->>AC: enriched rows (balance+meta+price) - AC->>AC: #updateState() - else v6-unsupported chain - AC->>AC: #updateState() (balance + RPC/Snap metadata) - AC->>ENR: enrich if Tokens/Price API cover chain - ENR-->>AC: assetsInfo / assetsPrice (optional) - AC->>AC: #updateState() - end -``` - ---- - -## Part 3 — What code we can remove or simplify - -| Component | Fate with v6 | Why | -| ------------------------------------------------------------------------ | ----------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | -| `AccountsApiDataSource` (v5) | **Replace** with `AccountsApiV6DataSource` | v6 supersets v5 balances and adds metadata/price/defi | -| `DetectionMiddleware` | **Remove** from v6 path; **replace** on fallback path | v6 does server-side detection via `includeAssetIds`/`unprocessedIncludeAssetIds` + `filterSupportedTokens`. On fallback chains, a simpler "assets missing metadata/price" check replaces the full state-diff contract | -| `PriceDataSource` | **Remove** from v6 middleware path; **repurpose** as conditional fallback enricher | v6 returns prices inline via `includePrices` + `vsCurrency`. Still needed for fallback-chain assets when Price API covers the chain; subscription shrinks to non-v6 assets only. See [Part 4](#part-4--fallback-chains--tiered-enrichment) | -| `TokenDataSource` | **Remove** from v6 middleware path; **repurpose** as conditional fallback enricher | v6 returns name/symbol/decimals/labels + spam filtering. Still needed to upgrade RPC/Snap stubs (images, spam filter) when Tokens API covers the chain. See [Part 4](#part-4--fallback-chains--tiered-enrichment) and caveats | -| `StakedBalanceDataSource` | **Remove / fold in** | `includeDeFiBalances` returns DeFi + staking positions | -| `RpcFallbackMiddleware` | **Simplify to** `unprocessedNetworks` handoff | one source returns everything; fallback is just "these chains failed → RPC" | -| `ParallelMiddleware` / `createParallelBalanceMiddleware` / chain partitioning | **Remove** | no multi-source fan-out to merge/partition on the primary path | -| Fast/slow split in `getAssets` | **Collapse** to a single linear fetch | the latency fan-out was driven by juggling 3 APIs + RPC/Snap | -| `CustomAssetGraduationMiddleware` | **Simplify** | `includeCanonicalHead` + `includeAssetIds` give server-authoritative dedupe/confirmation | -| Overlapping subscription loops (v5 balance poll + price poll) | **Collapse** to one v6 poll (or WS + targeted v6); **shrink** price poll to fallback assets | v6 poll covers supported chains; `PriceDataSource` subscription only re-prices non-v6 assets when Price API covers the chain | - -**What stays:** the `AssetsController` state shape and messenger/event API (fully -backward compatible), `BackendWebsocketDataSource` for real-time, -`RpcDataSource` for RPC-only ("basic functionality off") mode and v6-unsupported -chains, `SnapDataSource` for chains v6 does not cover, and -`TokenDataSource` / `PriceDataSource` repurposed as **conditional fallback -enrichers** (not pipeline middleware on the v6 path). See -[Part 4](#part-4--fallback-chains--tiered-enrichment). - ---- - -## Part 4 — Fallback chains & tiered enrichment - -v6 will not cover every chain. Chains returned in `unprocessedNetworks` (or routed -to Snap from the start) still need balances, metadata, and prices — but **not -from the same sources as the v6 path**. - -### 4.1 API coverage is not universal - -Accounts API, Tokens API, and Price API each have **independent chain coverage**. -A chain can be: - -- indexed for balances by v6 → full inline enrichment -- absent from v6 but present in Tokens API and/or Price API → fallback balances - with optional API enrichment -- absent from all three → RPC or Snap is the only source; no prices if Price API - does not cover the chain - -There is no RPC or Snap fallback for **prices**. If Price API does not support a -chain, those assets simply have no entry in `assetsPrice`. - -For **metadata**, RPC and Snap are the floor when Tokens API does not cover a -chain: - -| Source | What it provides when Tokens API is unavailable | -| ------ | ----------------------------------------------- | -| `RpcDataSource` | Native token stub (`symbol`/`name` from chain status, `decimals: 18`). ERC-20 `decimals()` via multicall. No `name`/`symbol`/image for unknown ERC-20s unless already in state. | -| `SnapDataSource` | Full `assetsInfo` (and sometimes `assetsPrice`) returned by the snap handler. | - -`TokenDataSource` is an **upgrade** on top of that floor, not a replacement for -it. - -### 4.2 Tiered enrichment per asset - -```mermaid -flowchart TB - subgraph BAL["Balance (fallback chains)"] - RPC["RpcDataSource"] - SNAP["SnapDataSource"] - end - - subgraph META["Metadata"] - V6M["v6 inline
(v6-supported chains)"] - TOK["TokenDataSource
only if Tokens API covers chain"] - RPCM["RPC floor
native stub + decimals()"] - SNAPM["Snap floor
full metadata from snap"] - end - - subgraph PRICE["Price"] - V6P["v6 inline
(v6-supported chains)"] - PR["PriceDataSource
only if Price API covers chain"] - NONE["No price"] - end - - BAL --> META - BAL --> PRICE -``` - -| Layer | v6-supported | Fallback + Tokens API | Fallback + no Tokens API | Price API unsupported | -| ----- | ------------ | --------------------- | ------------------------ | --------------------- | -| Balance | v6 | RPC / Snap | RPC / Snap | (same) | -| Metadata | v6 | TokenDataSource upgrades RPC/Snap stubs | RPC / Snap only | N/A | -| Price | v6 | PriceDataSource | PriceDataSource if supported | omit — no price | - -### 4.3 How `TokenDataSource` and `PriceDataSource` are repurposed - -They are **removed as pipeline middleware** on the v6 path (no -DetectionMiddleware → parallel Token + Price onion). They survive as **scoped, -conditional enrichers** invoked after fallback balances are committed: - -1. **Scope by origin** — only asset IDs that came from `unprocessedNetworks` / - Snap (or are explicitly missing metadata/price in state). v6-mapped assets - are already enriched inline. -2. **Gate by API coverage** — before calling Tokens API or Price API, check - whether the chain is supported. Skip silently when it is not. -3. **Do not block the hot path** — commit RPC/Snap balances (and their metadata - floor) immediately; run Token/Price enrichment asynchronously when - applicable. -4. **Skip when Snap is already complete** — Snap responses may already include - `assetsInfo` and `assetsPrice`. Token/Price calls are upgrades for richer - fields (images, Blockaid spam filtering, USD if v6 only returns one - `vsCurrency`), not hard requirements. -5. **Shrink the price subscription** — today `PriceDataSource` re-prices - everything in `assetsBalance` every 60s. After v6, the subscription only - needs to cover fallback-chain assets (plus any v6 assets missing `usdPrice` - if dual-currency is preserved via a dedicated Price API fetch; see caveats). - -Invocation becomes a single explicit step after the fallback merge — not -`createParallelMiddleware` wrapped in a fast/slow pipeline: - -```typescript -// Pseudocode — after RPC/Snap response is merged and committed -const fallbackAssetIds = assetIdsFromFallbackResponse(response); -const tokensApiIds = fallbackAssetIds.filter((id) => tokensApiCoversChain(id)); -const priceApiIds = fallbackAssetIds.filter((id) => priceApiCoversChain(id)); - -if (tokensApiIds.length > 0) { - await tokenDataSource.enrich({ assetIds: tokensApiIds }); -} -if (priceApiIds.length > 0) { - await priceDataSource.enrich({ assetIds: priceApiIds }); -} -``` - -### 4.4 What replaces `DetectionMiddleware` on the fallback path - -On the v6 path, detection is server-side (`includeAssetIds` / -`unprocessedIncludeAssetIds` + `filterSupportedTokens`). - -On the fallback path, the equivalent is much simpler: **enrich any fallback -asset that lacks metadata or price in state**. No hand-rolled diff against the -full balance history, no `request.assetsForPriceUpdate` contract, no strict -ordering requirement with parallel middleware. - -### 4.5 Lazy secondary enrichment on the v6 path - -Even for v6-supported assets, `TokenDataSource` / `PriceDataSource` may still -run as a **lazy, one-shot secondary fetch** (not part of the balance hot path) -when the UI needs fields v6 does not return — images, rich market metadata, -or a dedicated USD price fetch. See [Caveats](#caveats). - ---- - -## Caveats - -Three things to confirm with the backend team before deleting code: - -1. **Images and rich market data.** `V6BalanceItem` exposes `name`, `symbol`, - `decimals`, `labels`, `price`, `canonicalHead` — but **no `iconUrl`/image** and - none of the rich fields `TokenDataSource` stores today (`aggregators`, - `occurrences`, `honeypotStatus`, `erc20Permit`, market cap / 24h change). If the - UI needs asset images or that market metadata, `TokenDataSource`/`PriceDataSource` - become *lazy secondary enrichment* on the v6 path (fetch once per asset), not - part of the hot balance path. See [§4.5](#45-lazy-secondary-enrichment-on-the-v6-path). -2. **Multi-currency.** Today `PriceDataSource` fetches selected currency **and** - USD. v6 takes a single `vsCurrency`, so preserving the `usdPrice` field means - either two v6 calls or a small dedicated USD price fetch via Price API. -3. **Per-chain API coverage map.** Maintain (or source from backend) a list of - which chains each API supports. Fallback enrichment gates on this: Tokens API - for metadata upgrades, Price API for prices. Chains absent from both rely - entirely on RPC/Snap metadata with no price. Confirm this map stays in sync - as new chains are added. From 8ea554b5f6717d5726146a120b0a505f7a12c6a0 Mon Sep 17 00:00:00 2001 From: Bernardo Garces Chapero Date: Wed, 9 Sep 2026 17:22:25 +0100 Subject: [PATCH 4/4] changelogs --- packages/assets-controller/CHANGELOG.md | 4 ++++ packages/bridge-controller/CHANGELOG.md | 4 ++++ packages/transaction-pay-controller/CHANGELOG.md | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/packages/assets-controller/CHANGELOG.md b/packages/assets-controller/CHANGELOG.md index 81d4df26300..a659111d06e 100644 --- a/packages/assets-controller/CHANGELOG.md +++ b/packages/assets-controller/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Bump `@metamask/assets-controllers` from `^111.2.0` to `^111.3.0` ([#10152](https://github.com/MetaMask/core/pull/10152)) + ## [15.1.0] ### Changed diff --git a/packages/bridge-controller/CHANGELOG.md b/packages/bridge-controller/CHANGELOG.md index 70d66764806..88365ac4586 100644 --- a/packages/bridge-controller/CHANGELOG.md +++ b/packages/bridge-controller/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Bump `@metamask/assets-controllers` from `^111.2.0` to `^111.3.0` ([#10152](https://github.com/MetaMask/core/pull/10152)) + ## [80.2.1] ### Changed diff --git a/packages/transaction-pay-controller/CHANGELOG.md b/packages/transaction-pay-controller/CHANGELOG.md index 9ab3cff0190..910dca07c49 100644 --- a/packages/transaction-pay-controller/CHANGELOG.md +++ b/packages/transaction-pay-controller/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Bump `@metamask/assets-controllers` from `^111.2.0` to `^111.3.0` ([#10152](https://github.com/MetaMask/core/pull/10152)) + ## [27.1.2] ### Changed