Skip to content

Conversation

@matthewwalsh0
Copy link
Member

@matthewwalsh0 matthewwalsh0 commented Nov 27, 2025

Explanation

During initialisation, the status of all approved and signed transactions are currently updated to failed.

This PR fails any incomplete required transactions for the above.

Also ensure isExternalSign is set when retrieving gas fee tokens in messenger action and before publish check, to ensure only EIP-7702 gas fee tokens are used.

References

Related to #23348 #23350

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

On init, fail required transactions of approved/signed txs and treat dropped as final; ensure gas fee token fetching sets isExternalSign (including messenger) with tests updated.

  • TransactionController:
    • Fail requiredTransactionIds of any approved/signed transactions during initialization.
    • Treat TransactionStatus.dropped as a final state in #isFinalState.
    • Messenger action TransactionController:getGasFeeTokens now builds request transactionMeta with delegationAddress and isExternalSign: true.
  • Gas Fee Tokens:
    • checkGasFeeTokenBeforePublish fetches tokens with isExternalSign: true and sets isExternalSign on the transaction when applicable.
  • Tests/Docs:
    • Add/adjust tests for failing required transactions and for isExternalSign propagation in gas fee token flows.
    • Update CHANGELOG.md to reflect fixes.

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

@matthewwalsh0 matthewwalsh0 marked this pull request as ready for review November 27, 2025 14:45
@matthewwalsh0 matthewwalsh0 requested review from a team as code owners November 27, 2025 14:45
@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": "4.0.0-preview-77d67b84",
  "@metamask-previews/accounts-controller": "35.0.0-preview-77d67b84",
  "@metamask-previews/address-book-controller": "7.0.1-preview-77d67b84",
  "@metamask-previews/analytics-controller": "0.0.0-preview-77d67b84",
  "@metamask-previews/announcement-controller": "8.0.0-preview-77d67b84",
  "@metamask-previews/app-metadata-controller": "2.0.0-preview-77d67b84",
  "@metamask-previews/approval-controller": "8.0.0-preview-77d67b84",
  "@metamask-previews/assets-controllers": "91.0.0-preview-77d67b84",
  "@metamask-previews/base-controller": "9.0.0-preview-77d67b84",
  "@metamask-previews/bridge-controller": "63.1.0-preview-77d67b84",
  "@metamask-previews/bridge-status-controller": "63.0.0-preview-77d67b84",
  "@metamask-previews/build-utils": "3.0.4-preview-77d67b84",
  "@metamask-previews/chain-agnostic-permission": "1.2.2-preview-77d67b84",
  "@metamask-previews/claims-controller": "0.2.0-preview-77d67b84",
  "@metamask-previews/composable-controller": "12.0.0-preview-77d67b84",
  "@metamask-previews/controller-utils": "11.16.0-preview-77d67b84",
  "@metamask-previews/core-backend": "5.0.0-preview-77d67b84",
  "@metamask-previews/delegation-controller": "2.0.0-preview-77d67b84",
  "@metamask-previews/earn-controller": "11.0.0-preview-77d67b84",
  "@metamask-previews/eip-5792-middleware": "2.0.0-preview-77d67b84",
  "@metamask-previews/eip-7702-internal-rpc-middleware": "0.1.0-preview-77d67b84",
  "@metamask-previews/eip1193-permission-middleware": "1.0.2-preview-77d67b84",
  "@metamask-previews/ens-controller": "19.0.0-preview-77d67b84",
  "@metamask-previews/error-reporting-service": "3.0.0-preview-77d67b84",
  "@metamask-previews/eth-block-tracker": "15.0.0-preview-77d67b84",
  "@metamask-previews/eth-json-rpc-middleware": "22.0.0-preview-77d67b84",
  "@metamask-previews/eth-json-rpc-provider": "6.0.0-preview-77d67b84",
  "@metamask-previews/foundryup": "1.0.1-preview-77d67b84",
  "@metamask-previews/gas-fee-controller": "26.0.0-preview-77d67b84",
  "@metamask-previews/gator-permissions-controller": "0.6.0-preview-77d67b84",
  "@metamask-previews/json-rpc-engine": "10.2.0-preview-77d67b84",
  "@metamask-previews/json-rpc-middleware-stream": "8.0.8-preview-77d67b84",
  "@metamask-previews/keyring-controller": "25.0.0-preview-77d67b84",
  "@metamask-previews/logging-controller": "7.0.1-preview-77d67b84",
  "@metamask-previews/message-manager": "14.1.0-preview-77d67b84",
  "@metamask-previews/messenger": "0.3.0-preview-77d67b84",
  "@metamask-previews/multichain-account-service": "4.0.0-preview-77d67b84",
  "@metamask-previews/multichain-api-middleware": "1.2.4-preview-77d67b84",
  "@metamask-previews/multichain-network-controller": "3.0.0-preview-77d67b84",
  "@metamask-previews/multichain-transactions-controller": "7.0.0-preview-77d67b84",
  "@metamask-previews/name-controller": "9.0.0-preview-77d67b84",
  "@metamask-previews/network-controller": "26.0.0-preview-77d67b84",
  "@metamask-previews/network-enablement-controller": "4.0.0-preview-77d67b84",
  "@metamask-previews/notification-services-controller": "21.0.0-preview-77d67b84",
  "@metamask-previews/permission-controller": "12.1.1-preview-77d67b84",
  "@metamask-previews/permission-log-controller": "5.0.0-preview-77d67b84",
  "@metamask-previews/phishing-controller": "16.1.0-preview-77d67b84",
  "@metamask-previews/polling-controller": "16.0.0-preview-77d67b84",
  "@metamask-previews/preferences-controller": "22.0.0-preview-77d67b84",
  "@metamask-previews/profile-sync-controller": "27.0.0-preview-77d67b84",
  "@metamask-previews/rate-limit-controller": "7.0.0-preview-77d67b84",
  "@metamask-previews/remote-feature-flag-controller": "2.0.1-preview-77d67b84",
  "@metamask-previews/sample-controllers": "4.0.0-preview-77d67b84",
  "@metamask-previews/seedless-onboarding-controller": "7.0.0-preview-77d67b84",
  "@metamask-previews/selected-network-controller": "26.0.0-preview-77d67b84",
  "@metamask-previews/shield-controller": "3.0.0-preview-77d67b84",
  "@metamask-previews/signature-controller": "37.0.0-preview-77d67b84",
  "@metamask-previews/subscription-controller": "5.0.0-preview-77d67b84",
  "@metamask-previews/token-search-discovery-controller": "4.0.0-preview-77d67b84",
  "@metamask-previews/transaction-controller": "62.3.0-preview-77d67b84",
  "@metamask-previews/transaction-pay-controller": "10.1.0-preview-77d67b84",
  "@metamask-previews/user-operation-controller": "41.0.0-preview-77d67b84"
}

@matthewwalsh0 matthewwalsh0 added this pull request to the merge queue Nov 27, 2025
Merged via the queue into main with commit 6a9eb1e Nov 27, 2025
283 checks passed
@matthewwalsh0 matthewwalsh0 deleted the fix/fail-startup-required-transactions branch November 27, 2025 16:13
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.

3 participants