Skip to content

feat: pass required assets to transaction controller#7819

Open
matthewwalsh0 wants to merge 5 commits intomainfrom
feat/eip5792-required-assets
Open

feat: pass required assets to transaction controller#7819
matthewwalsh0 wants to merge 5 commits intomainfrom
feat/eip5792-required-assets

Conversation

@matthewwalsh0
Copy link
Member

@matthewwalsh0 matthewwalsh0 commented Feb 3, 2026

Explanation

Pass required assets to transaction controller from wallet_sendCalls handler in EIP-5792 middleware.

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

Note

Medium Risk
Touches transaction submission plumbing by adding new data to addTransaction* calls and changing how requiredAssets is collected/deduped (including per-call capabilities), which could affect batching behavior if consumers assume prior semantics.

Overview
wallet_sendCalls now forwards EIP-7682 auxiliaryFunds.requiredAssets into the transaction controller by passing a deduped requiredAssets array to addTransaction (single call) and addTransactionBatch (batch).

Validation and deduping were expanded to include requiredAssets specified per-call as well as at the top level (summing duplicate assets by address+standard), and tests/changelog were updated accordingly.

Written by Cursor Bugbot for commit c3cd77f. This will update automatically on new commits. Configure here.

@matthewwalsh0 matthewwalsh0 changed the base branch from main to feat/transaction-required-assets-v2 February 3, 2026 12:44
@matthewwalsh0 matthewwalsh0 changed the title feat: collect and deduplicate requiredAssets from call capabilities feat: pass required assets to transaction controller Feb 3, 2026
@matthewwalsh0 matthewwalsh0 force-pushed the feat/transaction-required-assets-v2 branch from df20b41 to 439c6cf Compare February 3, 2026 20:51
@matthewwalsh0 matthewwalsh0 force-pushed the feat/eip5792-required-assets branch from 7347a53 to 5db5306 Compare February 3, 2026 20:56
@matthewwalsh0 matthewwalsh0 force-pushed the feat/transaction-required-assets-v2 branch 2 times, most recently from 72a8d15 to be34464 Compare February 4, 2026 15:46
Base automatically changed from feat/transaction-required-assets-v2 to main February 4, 2026 16:55
@matthewwalsh0 matthewwalsh0 force-pushed the feat/eip5792-required-assets branch 2 times, most recently from eaabcfe to f365274 Compare February 5, 2026 21:07
@matthewwalsh0 matthewwalsh0 force-pushed the feat/eip5792-required-assets branch from f365274 to f8ac297 Compare February 5, 2026 21:09
@matthewwalsh0 matthewwalsh0 marked this pull request as ready for review February 5, 2026 21:15
@matthewwalsh0 matthewwalsh0 requested review from a team as code owners February 5, 2026 21:15
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

@matthewwalsh0
Copy link
Member Author

@metamaskbot publish-preview

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

Preview builds have been published. See these instructions for more information about preview builds.

Expand for full list of packages and versions.
{
  "@metamask-previews/account-tree-controller": "4.0.0-preview-c3cd77f",
  "@metamask-previews/accounts-controller": "35.0.2-preview-c3cd77f",
  "@metamask-previews/address-book-controller": "7.0.1-preview-c3cd77f",
  "@metamask-previews/ai-controllers": "0.0.0-preview-c3cd77f",
  "@metamask-previews/analytics-controller": "1.0.0-preview-c3cd77f",
  "@metamask-previews/analytics-data-regulation-controller": "0.0.0-preview-c3cd77f",
  "@metamask-previews/announcement-controller": "8.0.0-preview-c3cd77f",
  "@metamask-previews/app-metadata-controller": "2.0.0-preview-c3cd77f",
  "@metamask-previews/approval-controller": "8.0.0-preview-c3cd77f",
  "@metamask-previews/assets-controller": "0.2.0-preview-c3cd77f",
  "@metamask-previews/assets-controllers": "99.2.0-preview-c3cd77f",
  "@metamask-previews/base-controller": "9.0.0-preview-c3cd77f",
  "@metamask-previews/bridge-controller": "65.3.0-preview-c3cd77f",
  "@metamask-previews/bridge-status-controller": "66.0.0-preview-c3cd77f",
  "@metamask-previews/build-utils": "3.0.4-preview-c3cd77f",
  "@metamask-previews/chain-agnostic-permission": "1.4.0-preview-c3cd77f",
  "@metamask-previews/claims-controller": "0.4.2-preview-c3cd77f",
  "@metamask-previews/composable-controller": "12.0.0-preview-c3cd77f",
  "@metamask-previews/connectivity-controller": "0.1.0-preview-c3cd77f",
  "@metamask-previews/controller-utils": "11.18.0-preview-c3cd77f",
  "@metamask-previews/core-backend": "5.1.0-preview-c3cd77f",
  "@metamask-previews/delegation-controller": "2.0.0-preview-c3cd77f",
  "@metamask-previews/earn-controller": "11.1.0-preview-c3cd77f",
  "@metamask-previews/eip-5792-middleware": "2.1.0-preview-c3cd77f",
  "@metamask-previews/eip-7702-internal-rpc-middleware": "0.1.0-preview-c3cd77f",
  "@metamask-previews/eip1193-permission-middleware": "1.0.3-preview-c3cd77f",
  "@metamask-previews/ens-controller": "19.0.2-preview-c3cd77f",
  "@metamask-previews/error-reporting-service": "3.0.1-preview-c3cd77f",
  "@metamask-previews/eth-block-tracker": "15.0.1-preview-c3cd77f",
  "@metamask-previews/eth-json-rpc-middleware": "23.1.0-preview-c3cd77f",
  "@metamask-previews/eth-json-rpc-provider": "6.0.0-preview-c3cd77f",
  "@metamask-previews/foundryup": "1.0.1-preview-c3cd77f",
  "@metamask-previews/gas-fee-controller": "26.0.2-preview-c3cd77f",
  "@metamask-previews/gator-permissions-controller": "1.1.2-preview-c3cd77f",
  "@metamask-previews/json-rpc-engine": "10.2.1-preview-c3cd77f",
  "@metamask-previews/json-rpc-middleware-stream": "8.0.8-preview-c3cd77f",
  "@metamask-previews/keyring-controller": "25.1.0-preview-c3cd77f",
  "@metamask-previews/logging-controller": "7.0.1-preview-c3cd77f",
  "@metamask-previews/message-manager": "14.1.0-preview-c3cd77f",
  "@metamask-previews/messenger": "0.3.0-preview-c3cd77f",
  "@metamask-previews/multichain-account-service": "5.1.0-preview-c3cd77f",
  "@metamask-previews/multichain-api-middleware": "1.2.6-preview-c3cd77f",
  "@metamask-previews/multichain-network-controller": "3.0.2-preview-c3cd77f",
  "@metamask-previews/multichain-transactions-controller": "7.0.0-preview-c3cd77f",
  "@metamask-previews/name-controller": "9.0.0-preview-c3cd77f",
  "@metamask-previews/network-controller": "29.0.0-preview-c3cd77f",
  "@metamask-previews/network-enablement-controller": "4.1.0-preview-c3cd77f",
  "@metamask-previews/notification-services-controller": "21.0.0-preview-c3cd77f",
  "@metamask-previews/permission-controller": "12.2.0-preview-c3cd77f",
  "@metamask-previews/permission-log-controller": "5.0.0-preview-c3cd77f",
  "@metamask-previews/perps-controller": "0.0.0-preview-c3cd77f",
  "@metamask-previews/phishing-controller": "16.1.0-preview-c3cd77f",
  "@metamask-previews/polling-controller": "16.0.2-preview-c3cd77f",
  "@metamask-previews/preferences-controller": "22.1.0-preview-c3cd77f",
  "@metamask-previews/profile-metrics-controller": "3.0.0-preview-c3cd77f",
  "@metamask-previews/profile-sync-controller": "27.1.0-preview-c3cd77f",
  "@metamask-previews/ramps-controller": "7.0.0-preview-c3cd77f",
  "@metamask-previews/rate-limit-controller": "7.0.0-preview-c3cd77f",
  "@metamask-previews/remote-feature-flag-controller": "4.0.0-preview-c3cd77f",
  "@metamask-previews/sample-controllers": "4.0.2-preview-c3cd77f",
  "@metamask-previews/seedless-onboarding-controller": "7.1.0-preview-c3cd77f",
  "@metamask-previews/selected-network-controller": "26.0.2-preview-c3cd77f",
  "@metamask-previews/shield-controller": "5.0.1-preview-c3cd77f",
  "@metamask-previews/signature-controller": "39.0.1-preview-c3cd77f",
  "@metamask-previews/storage-service": "1.0.0-preview-c3cd77f",
  "@metamask-previews/subscription-controller": "5.4.2-preview-c3cd77f",
  "@metamask-previews/transaction-controller": "62.14.0-preview-c3cd77f",
  "@metamask-previews/transaction-pay-controller": "12.2.0-preview-c3cd77f",
  "@metamask-previews/user-operation-controller": "41.0.2-preview-c3cd77f"
}

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