Skip to content

feat(wallet): wire TransactionController into default initialization#8975

Draft
matthewwalsh0 wants to merge 18 commits into
mainfrom
feat/wallet-wire-transaction-controller
Draft

feat(wallet): wire TransactionController into default initialization#8975
matthewwalsh0 wants to merge 18 commits into
mainfrom
feat/wallet-wire-transaction-controller

Conversation

@matthewwalsh0
Copy link
Copy Markdown
Member

@matthewwalsh0 matthewwalsh0 commented Jun 2, 2026

Explanation

Adds packages/wallet/src/initialization/instances/transaction-controller/ following the same pattern established by the approval-controller/ directory in #8953.

The directory contains:

  • transaction-controller.ts — the InitializationConfiguration that wires TransactionController into the default wallet initialization, delegating messenger actions from the root and creating a typed child messenger for the controller
  • types.tsTransactionControllerInitMessenger, TransactionControllerInitMessengerActions, TransactionControllerInitMessengerEvents, and TransactionControllerInstanceOptions (a subset of TransactionControllerOptions that exposes only the genuinely platform-specific options; shared defaults are hardcoded in the config)

References

Checklist

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

@matthewwalsh0 matthewwalsh0 force-pushed the feat/wallet-wire-transaction-controller branch 4 times, most recently from c3042bb to 9677e31 Compare June 2, 2026 21:23
- Add `@metamask/transaction-controller` dependency
- Add `transaction-controller/index.ts` initialization config; hardcodes `pendingTransactions` (both clients agree) and registers an RFC stub messenger so TC can call `RemoteFeatureFlagController:getState` at construction time
- Expose `TransactionControllerInstanceOptions` (full TC options minus `messenger`, `pendingTransactions`, `state`) in `transaction-controller/types.ts`
- Add `transactionController?` slot to `InstanceSpecificOptions`
- Add tests, CODEOWNERS entry, README dependency graph edge, and CHANGELOG entry
@matthewwalsh0 matthewwalsh0 force-pushed the feat/wallet-wire-transaction-controller branch from 58d79cc to 0069b11 Compare June 3, 2026 09:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant