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 when preparing transactions for the nonce tracker; update tests and changelog.

  • Utils (src/utils/nonce.ts):
    • Extend getAndFormatTransactionsForNonceTracker to include nonces from txParams.authorizationList via flatMap.
    • Filter out entries without a txParams.nonce; continue excluding isTransfer/isUserOperation and mismatched chainId/from/status.
  • Tests (src/utils/nonce.test.ts):
    • Add test ensuring authorization nonces are included.
    • Update fixtures to cover user operations and missing nonce cases.
  • Docs:
    • Update CHANGELOG.md under Unreleased: fixed pending authorizations included in nonce calculation.

Written by Cursor Bugbot for commit 361aae6. 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"
}

@matthewwalsh0 matthewwalsh0 force-pushed the fix/nonce-calculation-type-4 branch from d203763 to 361aae6 Compare December 15, 2025 16:33
@matthewwalsh0 matthewwalsh0 added this pull request to the merge queue Dec 15, 2025
Merged via the queue into main with commit 8f621ec Dec 15, 2025
285 checks passed
@matthewwalsh0 matthewwalsh0 deleted the fix/nonce-calculation-type-4 branch December 15, 2025 19:23
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