Skip to content

Conversation

@matthewwalsh0
Copy link
Member

@matthewwalsh0 matthewwalsh0 commented Nov 11, 2025

Explanation

Support transactions in Relay quotes via delegation and EIP-7702.

References

Related to #5945

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, highlighting breaking changes as necessary
  • I've prepared draft pull requests for clients and consumer packages to resolve any breaking changes

Note

Adds EIP-7702 delegation support to include target transactions in Relay quotes and submission, requiring a new getDelegationTransaction option, updating polling/fees, and normalizing Hyperliquid deposits.

  • Breaking:
    • Require getDelegationTransaction in TransactionPayController options; expose TransactionPayController:getDelegationTransaction action and related types/exports.
  • Relay strategy:
    • Include transactions in Relay quote requests: add authorizationList, set tradeType to EXACT_OUTPUT, and send txs (token transfer + delegation).
    • Add CHAIN_ID_HYPERCORE and normalize Arbitrum USDC deposits to direct Hyperliquid deposits; skip delegation when no tx params or Hypercore.
    • Remove skipTransaction handling; always set target network fee to 0 in quotes.
    • Submission: poll Relay status (configurable RELAY_POLLING_INTERVAL); skip polling for same-chain; handle fallback status; return target transactionHash (or 0x0 fallback); clear original tx nonce and mark intent complete; track required tx IDs.
  • Totals:
    • Change token filtering to ignore skipIfBalance balance sufficiency when summing amounts.
  • Misc:
    • Update tests and changelog; minor constants/util refactors.

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

@matthewwalsh0
Copy link
Member Author

@metamaskbot publish-preview

@github-actions
Copy link
Contributor

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": "3.0.0-preview-e2a66c7a",
  "@metamask-previews/accounts-controller": "34.0.0-preview-e2a66c7a",
  "@metamask-previews/address-book-controller": "7.0.0-preview-e2a66c7a",
  "@metamask-previews/analytics-controller": "0.0.0-preview-e2a66c7a",
  "@metamask-previews/announcement-controller": "8.0.0-preview-e2a66c7a",
  "@metamask-previews/app-metadata-controller": "2.0.0-preview-e2a66c7a",
  "@metamask-previews/approval-controller": "8.0.0-preview-e2a66c7a",
  "@metamask-previews/assets-controllers": "88.0.0-preview-e2a66c7a",
  "@metamask-previews/base-controller": "9.0.0-preview-e2a66c7a",
  "@metamask-previews/bridge-controller": "60.0.0-preview-e2a66c7a",
  "@metamask-previews/bridge-status-controller": "60.0.0-preview-e2a66c7a",
  "@metamask-previews/build-utils": "3.0.4-preview-e2a66c7a",
  "@metamask-previews/chain-agnostic-permission": "1.2.2-preview-e2a66c7a",
  "@metamask-previews/claims-controller": "0.2.0-preview-e2a66c7a",
  "@metamask-previews/composable-controller": "12.0.0-preview-e2a66c7a",
  "@metamask-previews/controller-utils": "11.15.0-preview-e2a66c7a",
  "@metamask-previews/core-backend": "4.0.0-preview-e2a66c7a",
  "@metamask-previews/delegation-controller": "1.0.0-preview-e2a66c7a",
  "@metamask-previews/earn-controller": "10.0.0-preview-e2a66c7a",
  "@metamask-previews/eip-5792-middleware": "2.0.0-preview-e2a66c7a",
  "@metamask-previews/eip-7702-internal-rpc-middleware": "0.1.0-preview-e2a66c7a",
  "@metamask-previews/eip1193-permission-middleware": "1.0.2-preview-e2a66c7a",
  "@metamask-previews/ens-controller": "18.0.0-preview-e2a66c7a",
  "@metamask-previews/error-reporting-service": "3.0.0-preview-e2a66c7a",
  "@metamask-previews/eth-block-tracker": "14.0.0-preview-e2a66c7a",
  "@metamask-previews/eth-json-rpc-middleware": "21.0.0-preview-e2a66c7a",
  "@metamask-previews/eth-json-rpc-provider": "5.0.1-preview-e2a66c7a",
  "@metamask-previews/foundryup": "1.0.1-preview-e2a66c7a",
  "@metamask-previews/gas-fee-controller": "25.0.0-preview-e2a66c7a",
  "@metamask-previews/gator-permissions-controller": "0.4.0-preview-e2a66c7a",
  "@metamask-previews/json-rpc-engine": "10.1.1-preview-e2a66c7a",
  "@metamask-previews/json-rpc-middleware-stream": "8.0.8-preview-e2a66c7a",
  "@metamask-previews/keyring-controller": "24.0.0-preview-e2a66c7a",
  "@metamask-previews/logging-controller": "7.0.0-preview-e2a66c7a",
  "@metamask-previews/message-manager": "14.0.0-preview-e2a66c7a",
  "@metamask-previews/messenger": "0.3.0-preview-e2a66c7a",
  "@metamask-previews/multichain-account-service": "3.0.0-preview-e2a66c7a",
  "@metamask-previews/multichain-api-middleware": "1.2.4-preview-e2a66c7a",
  "@metamask-previews/multichain-network-controller": "2.0.0-preview-e2a66c7a",
  "@metamask-previews/multichain-transactions-controller": "6.0.0-preview-e2a66c7a",
  "@metamask-previews/name-controller": "9.0.0-preview-e2a66c7a",
  "@metamask-previews/network-controller": "25.0.0-preview-e2a66c7a",
  "@metamask-previews/network-enablement-controller": "3.1.0-preview-e2a66c7a",
  "@metamask-previews/notification-services-controller": "19.0.0-preview-e2a66c7a",
  "@metamask-previews/permission-controller": "12.1.0-preview-e2a66c7a",
  "@metamask-previews/permission-log-controller": "5.0.0-preview-e2a66c7a",
  "@metamask-previews/phishing-controller": "15.0.0-preview-e2a66c7a",
  "@metamask-previews/polling-controller": "15.0.0-preview-e2a66c7a",
  "@metamask-previews/preferences-controller": "21.0.0-preview-e2a66c7a",
  "@metamask-previews/profile-sync-controller": "26.0.0-preview-e2a66c7a",
  "@metamask-previews/rate-limit-controller": "7.0.0-preview-e2a66c7a",
  "@metamask-previews/remote-feature-flag-controller": "2.0.0-preview-e2a66c7a",
  "@metamask-previews/sample-controllers": "3.0.0-preview-e2a66c7a",
  "@metamask-previews/seedless-onboarding-controller": "6.1.0-preview-e2a66c7a",
  "@metamask-previews/selected-network-controller": "25.0.0-preview-e2a66c7a",
  "@metamask-previews/shield-controller": "2.0.0-preview-e2a66c7a",
  "@metamask-previews/signature-controller": "36.0.0-preview-e2a66c7a",
  "@metamask-previews/subscription-controller": "3.3.0-preview-e2a66c7a",
  "@metamask-previews/token-search-discovery-controller": "4.0.0-preview-e2a66c7a",
  "@metamask-previews/transaction-controller": "61.1.0-preview-e2a66c7a",
  "@metamask-previews/transaction-pay-controller": "4.0.0-preview-e2a66c7a",
  "@metamask-previews/user-operation-controller": "40.0.0-preview-e2a66c7a"
}

@matthewwalsh0 matthewwalsh0 force-pushed the feat/relay-transactions branch from 11be3a1 to 71e58e7 Compare November 12, 2025 02:46
@matthewwalsh0 matthewwalsh0 marked this pull request as ready for review November 12, 2025 11:51
@matthewwalsh0 matthewwalsh0 requested review from a team as code owners November 12, 2025 11:51
@matthewwalsh0 matthewwalsh0 force-pushed the feat/relay-transactions branch from 6942fdf to 1d4c565 Compare November 12, 2025 11:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants