Skip to content

Conversation

@matthewwalsh0
Copy link
Member

@matthewwalsh0 matthewwalsh0 commented Dec 11, 2025

Explanation

When determining the next transaction nonce, factor any authorizationList nonces on pending type-4 transactions.

References

Related to #23881

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

Include EIP-7702 authorizationList nonces in nonce tracking and ignore transactions without a nonce, with tests and changelog updated.

  • Nonce logic (src/utils/nonce.ts)
    • Include authorizationList nonces when formatting transactions for the nonce tracker.
    • Exclude transactions without txParams.nonce; continue excluding transfers and user operations.
    • Use flatMap to emit one entry per base nonce and each authorization nonce.
  • Tests (src/utils/nonce.test.ts)
    • Add test verifying inclusion of authorizationList nonces.
    • Update existing test data/expectations accordingly.
  • Changelog (packages/transaction-controller/CHANGELOG.md)
    • Note fix: include pending authorizations in nonce calculation.

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

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

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.

2 participants