core icon indicating copy to clipboard operation
core copied to clipboard

fix: controller send transaction approved when user reject transaction in hardware devices.

Open dawnseeker8 opened this issue 2 months ago • 3 comments

This PR will fix some issue caused by user reject transaction in hardware wallet, which cause a lot of incorrect event log in segment.

Updated the transaction approval logic to check the status of the transaction. If the transaction fails due to user rejection or other errors, it now publishes a failure message with the error details. This change improves error handling and user feedback during transaction processing.

Explanation

References

Checklist

  • [x] I've updated the test suite for new or updated code as appropriate
  • [x] I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate
  • [x] I've communicated my changes to consumers by updating changelogs for packages I've changed, highlighting breaking changes as necessary
  • [x] I've prepared draft pull requests for clients and consumer packages to resolve any breaking changes

[!NOTE] Ensure post-approval emits transactionFailed (with error) instead of transactionApproved when the transaction ends in failed status (e.g., hardware wallet rejection).

  • Transaction approval flow (packages/transaction-controller/src/TransactionController.ts):
    • After approval, check updatedTransactionMeta.status; if failed, publish ${controllerName}:transactionFailed with error message, else publish ${controllerName}:transactionApproved.

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

dawnseeker8 avatar Nov 21 '25 08:11 dawnseeker8

@metamaskbot publish-preview

dawnseeker8 avatar Nov 21 '25 08:11 dawnseeker8

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

github-actions[bot] avatar Nov 21 '25 08:11 github-actions[bot]

@metamaskbot publish-preview

dawnseeker8 avatar Nov 21 '25 08:11 dawnseeker8