Skip to content

fix: cp-13.32.0 add isAtomicBatchSupported action to TransactionPayController init messenger#42809

Merged
OGPoyraz merged 2 commits into
mainfrom
ogp/42781
May 20, 2026
Merged

fix: cp-13.32.0 add isAtomicBatchSupported action to TransactionPayController init messenger#42809
OGPoyraz merged 2 commits into
mainfrom
ogp/42781

Conversation

@OGPoyraz

@OGPoyraz OGPoyraz commented May 20, 2026

Copy link
Copy Markdown
Member

Description

Add TransactionControllerIsAtomicBatchSupportedAction to the TransactionPayControllerInit messenger. This enables the init messenger to delegate the TransactionController:isAtomicBatchSupported action, which is needed during controller initialization to check atomic batch support.

Changelog

CHANGELOG entry: null

Related issues

Fixes: #42781

Manual testing steps

  1. Build the extension with yarn start
  2. Verify the extension loads without errors
  3. Verify transaction pay functionality works as expected

Pre-merge author checklist

Pre-merge reviewer checklist

  • I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed).
  • I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.

Note

Low Risk
Low risk: this only expands the TransactionPayControllerInit messenger action types and delegation list to include TransactionController:isAtomicBatchSupported. Main risk is a missing/incorrect action wiring causing initialization/runtime errors in transaction pay flows.

Overview
Adds support for calling TransactionController:isAtomicBatchSupported during TransactionPayController initialization by extending InitMessengerActions and delegating the action in getTransactionPayControllerInitMessenger().

Reviewed by Cursor Bugbot for commit efc46b7. Bugbot is set up for automated code reviews on this repo. Configure here.

@metamaskbot metamaskbot added the team-confirmations Push issues to confirmations team label May 20, 2026
@OGPoyraz OGPoyraz changed the title fix: add isAtomicBatchSupported action to TransactionPayController init messenger fix: cp-13.32.0 add isAtomicBatchSupported action to TransactionPayController init messenger May 20, 2026
@sonarqubecloud

Copy link
Copy Markdown

@metamaskbotv2

metamaskbotv2 Bot commented May 20, 2026

Copy link
Copy Markdown
Contributor
Builds ready [efc46b7]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 14 pass · 🟡 10 warn · 🔴 0 fail)

Baseline (latest main): 51036da | Date: 5/2/2026 | Pipeline: 26148674881 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
confirmTx
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
bridgeUserActions
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/load_new_account: -77%
  • loadNewAccount/total: -77%
  • bridgeUserActions/bridge_load_page: -35%
  • bridgeUserActions/bridge_load_asset_picker: -62%
  • bridgeUserActions/bridge_search_token: -31%
  • bridgeUserActions/total: -38%
  • loadNewAccount/load_new_account: -53%
  • loadNewAccount/total: -53%
  • bridgeUserActions/bridge_load_asset_picker: -42%
  • bridgeUserActions/bridge_search_token: -33%
  • bridgeUserActions/total: -28%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 loadNewAccount/FCP: p75 2.0s
  • 🟡 confirmTx/FCP: p75 1.9s
  • 🟡 bridgeUserActions/FCP: p75 2.0s
Startup Benchmarks · Samples: 100
Benchmarkchrome-webpackfirefox-webpack
startupStandardHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
startupPowerUserHome
[Sentry log · main/release]
🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/uiStartup: -27%
  • startupStandardHome/load: -23%
  • startupStandardHome/domContentLoaded: -23%
  • startupStandardHome/domInteractive: -12%
  • startupStandardHome/firstPaint: -35%
  • startupStandardHome/backgroundConnect: -49%
  • startupStandardHome/firstReactRender: -22%
  • startupStandardHome/loadScripts: -24%
  • startupStandardHome/setupStore: -14%
  • startupStandardHome/numNetworkReqs: -50%
  • startupStandardHome/domInteractive: -48%
  • startupStandardHome/initialActions: +20%
  • startupStandardHome/setupStore: -43%
  • startupStandardHome/numNetworkReqs: -21%
  • startupPowerUserHome/uiStartup: -40%
  • startupPowerUserHome/domInteractive: -78%
  • startupPowerUserHome/backgroundConnect: -71%
  • startupPowerUserHome/setupStore: -86%
  • startupPowerUserHome/numNetworkReqs: -58%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 startupPowerUserHome/LCP: p75 3.0s
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
assetDetails
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
solanaAssetDetails
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
importSrpHome
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
sendTransactions
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
swap
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/srpButtonToSrpForm: -82%
  • onboardingImportWallet/pwFormToMetricsScreen: +551%
  • onboardingImportWallet/metricsToWalletReadyScreen: -28%
  • onboardingImportWallet/doneButtonToHomeScreen: -83%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +26%
  • onboardingImportWallet/total: -42%
  • onboardingNewWallet/srpButtonToPwForm: -77%
  • onboardingNewWallet/createPwToRecoveryScreen: +1049%
  • onboardingNewWallet/skipBackupToMetricsScreen: -66%
  • onboardingNewWallet/doneButtonToAssetList: -53%
  • onboardingNewWallet/total: -45%
  • assetDetails/assetClickToPriceChart: -54%
  • assetDetails/total: -54%
  • solanaAssetDetails/assetClickToPriceChart: -80%
  • solanaAssetDetails/total: -80%
  • importSrpHome/loginToHomeScreen: -40%
  • importSrpHome/openAccountMenuAfterLogin: -60%
  • importSrpHome/homeAfterImportWithNewWallet: -70%
  • importSrpHome/total: -65%
  • swap/openSwapPageFromHome: -96%
  • swap/fetchAndDisplaySwapQuotes: +36%
  • swap/total: +12%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 assetDetails/FCP: p75 1.9s
  • 🟡 solanaAssetDetails/FCP: p75 1.9s
  • 🟡 importSrpHome/FCP: p75 1.9s
  • 🟡 sendTransactions/INP: p75 232ms
  • 🟡 sendTransactions/FCP: p75 1.9s
  • 🟡 swap/FCP: p75 1.9s
  • 🟡 swap/FCP: p75 1.8s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]
Bundle size diffs
  • background: 105 Bytes (0%)
  • ui: 5 Bytes (0%)
  • common: 20 Bytes (0%)

@OGPoyraz OGPoyraz enabled auto-merge May 20, 2026 15:11
runway-github Bot added a commit to MetaMask/metamask-mobile that referenced this pull request May 20, 2026
…onPayController` init messenger (#30425)

## **Description**

Add `TransactionControllerIsAtomicBatchSupportedAction` to the
`TransactionPayControllerInit` messenger. This enables the init
messenger to delegate the `TransactionController:isAtomicBatchSupported`
action, which is needed during controller initialization to check atomic
batch support.

Companion to MetaMask/metamask-extension#42809.

## **Changelog**

CHANGELOG entry: null

## **Related issues**

Fixes: #42781

## **Manual testing steps**

1. Build the app with `yarn start:ios` or `yarn start:android`
2. Verify the app loads without errors
3. Verify transaction pay functionality works as expected

<!--
## **Screenshots/Recordings**

### **Before**

### **After**
-->

## **Pre-merge author checklist**

- [x] I've followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
Extension Coding
Standards](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [ ] I've included tests if applicable
- [x] I've documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I've applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Low risk: adds a single delegated messenger action used during
initialization, with no changes to transaction execution or signing
behavior.
> 
> **Overview**
> Allows `TransactionPayController` initialization to query atomic batch
capability by **adding delegation for**
`TransactionController:isAtomicBatchSupported`.
> 
> This extends `TransactionPayControllerInit` messenger types/imports to
include `TransactionControllerIsAtomicBatchSupportedAction` and
delegates the new action via `rootMessenger.delegate`.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
b81e10b. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
runway-github Bot added a commit to MetaMask/metamask-mobile that referenced this pull request May 20, 2026
…onPayController` init messenger (#30425)

## **Description**

Add `TransactionControllerIsAtomicBatchSupportedAction` to the
`TransactionPayControllerInit` messenger. This enables the init
messenger to delegate the `TransactionController:isAtomicBatchSupported`
action, which is needed during controller initialization to check atomic
batch support.

Companion to MetaMask/metamask-extension#42809.

## **Changelog**

CHANGELOG entry: null

## **Related issues**

Fixes: #42781

## **Manual testing steps**

1. Build the app with `yarn start:ios` or `yarn start:android`
2. Verify the app loads without errors
3. Verify transaction pay functionality works as expected

<!--
## **Screenshots/Recordings**

### **Before**

### **After**
-->

## **Pre-merge author checklist**

- [x] I've followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
Extension Coding
Standards](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [ ] I've included tests if applicable
- [x] I've documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I've applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Low risk: adds a single delegated messenger action used during
initialization, with no changes to transaction execution or signing
behavior.
>
> **Overview**
> Allows `TransactionPayController` initialization to query atomic batch
capability by **adding delegation for**
`TransactionController:isAtomicBatchSupported`.
>
> This extends `TransactionPayControllerInit` messenger types/imports to
include `TransactionControllerIsAtomicBatchSupportedAction` and
delegates the new action via `rootMessenger.delegate`.
>
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
b81e10b. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
runway-github Bot pushed a commit to MetaMask/metamask-mobile that referenced this pull request May 20, 2026
…` action to `TransactionPayController` init messenger (#30425)

## **Description**

Add `TransactionControllerIsAtomicBatchSupportedAction` to the
`TransactionPayControllerInit` messenger. This enables the init
messenger to delegate the `TransactionController:isAtomicBatchSupported`
action, which is needed during controller initialization to check atomic
batch support.

Companion to MetaMask/metamask-extension#42809.

## **Changelog**

CHANGELOG entry: null

## **Related issues**

Fixes: #42781

## **Manual testing steps**

1. Build the app with `yarn start:ios` or `yarn start:android`
2. Verify the app loads without errors
3. Verify transaction pay functionality works as expected

<!--
## **Screenshots/Recordings**

### **Before**

### **After**
-->

## **Pre-merge author checklist**

- [x] I've followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
Extension Coding
Standards](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [ ] I've included tests if applicable
- [x] I've documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I've applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Low risk: adds a single delegated messenger action used during
initialization, with no changes to transaction execution or signing
behavior.
> 
> **Overview**
> Allows `TransactionPayController` initialization to query atomic batch
capability by **adding delegation for**
`TransactionController:isAtomicBatchSupported`.
> 
> This extends `TransactionPayControllerInit` messenger types/imports to
include `TransactionControllerIsAtomicBatchSupportedAction` and
delegates the new action via `rootMessenger.delegate`.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
b81e10b. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
@OGPoyraz OGPoyraz added this pull request to the merge queue May 20, 2026
runway-github Bot added a commit to MetaMask/metamask-mobile that referenced this pull request May 20, 2026
…onPayController` init messenger (#30425)

## **Description**

Add `TransactionControllerIsAtomicBatchSupportedAction` to the
`TransactionPayControllerInit` messenger. This enables the init
messenger to delegate the `TransactionController:isAtomicBatchSupported`
action, which is needed during controller initialization to check atomic
batch support.

Companion to MetaMask/metamask-extension#42809.

## **Changelog**

CHANGELOG entry: null

## **Related issues**

Fixes: #42781

## **Manual testing steps**

1. Build the app with `yarn start:ios` or `yarn start:android`
2. Verify the app loads without errors
3. Verify transaction pay functionality works as expected

<!--
## **Screenshots/Recordings**

### **Before**

### **After**
-->

## **Pre-merge author checklist**

- [x] I've followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
Extension Coding
Standards](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [ ] I've included tests if applicable
- [x] I've documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I've applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Low risk: adds a single delegated messenger action used during
initialization, with no changes to transaction execution or signing
behavior.
> 
> **Overview**
> Allows `TransactionPayController` initialization to query atomic batch
capability by **adding delegation for**
`TransactionController:isAtomicBatchSupported`.
> 
> This extends `TransactionPayControllerInit` messenger types/imports to
include `TransactionControllerIsAtomicBatchSupportedAction` and
delegates the new action via `rootMessenger.delegate`.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
b81e10b. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
runway-github Bot added a commit to MetaMask/metamask-mobile that referenced this pull request May 20, 2026
…onPayController` init messenger (#30425)

## **Description**

Add `TransactionControllerIsAtomicBatchSupportedAction` to the
`TransactionPayControllerInit` messenger. This enables the init
messenger to delegate the `TransactionController:isAtomicBatchSupported`
action, which is needed during controller initialization to check atomic
batch support.

Companion to MetaMask/metamask-extension#42809.

## **Changelog**

CHANGELOG entry: null

## **Related issues**

Fixes: #42781

## **Manual testing steps**

1. Build the app with `yarn start:ios` or `yarn start:android`
2. Verify the app loads without errors
3. Verify transaction pay functionality works as expected

<!--
## **Screenshots/Recordings**

### **Before**

### **After**
-->

## **Pre-merge author checklist**

- [x] I've followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
Extension Coding
Standards](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [ ] I've included tests if applicable
- [x] I've documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I've applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Low risk: adds a single delegated messenger action used during
initialization, with no changes to transaction execution or signing
behavior.
>
> **Overview**
> Allows `TransactionPayController` initialization to query atomic batch
capability by **adding delegation for**
`TransactionController:isAtomicBatchSupported`.
>
> This extends `TransactionPayControllerInit` messenger types/imports to
include `TransactionControllerIsAtomicBatchSupportedAction` and
delegates the new action via `rootMessenger.delegate`.
>
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
b81e10b. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
runway-github Bot pushed a commit to MetaMask/metamask-mobile that referenced this pull request May 20, 2026
…Controller` init messenger (#30425)

## **Description**

Add `TransactionControllerIsAtomicBatchSupportedAction` to the
`TransactionPayControllerInit` messenger. This enables the init
messenger to delegate the `TransactionController:isAtomicBatchSupported`
action, which is needed during controller initialization to check atomic
batch support.

Companion to MetaMask/metamask-extension#42809.

## **Changelog**

CHANGELOG entry: null

## **Related issues**

Fixes: #42781

## **Manual testing steps**

1. Build the app with `yarn start:ios` or `yarn start:android`
2. Verify the app loads without errors
3. Verify transaction pay functionality works as expected

<!--
## **Screenshots/Recordings**

### **Before**

### **After**
-->

## **Pre-merge author checklist**

- [x] I've followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
Extension Coding
Standards](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [ ] I've included tests if applicable
- [x] I've documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I've applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Low risk: adds a single delegated messenger action used during
initialization, with no changes to transaction execution or signing
behavior.
> 
> **Overview**
> Allows `TransactionPayController` initialization to query atomic batch
capability by **adding delegation for**
`TransactionController:isAtomicBatchSupported`.
> 
> This extends `TransactionPayControllerInit` messenger types/imports to
include `TransactionControllerIsAtomicBatchSupportedAction` and
delegates the new action via `rootMessenger.delegate`.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
b81e10b. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
Merged via the queue into main with commit 5267889 May 20, 2026
210 checks passed
@OGPoyraz OGPoyraz deleted the ogp/42781 branch May 20, 2026 16:13
@github-actions github-actions Bot locked and limited conversation to collaborators May 20, 2026
@metamaskbot metamaskbot added the release-13.33.0 Issue or pull request that will be included in release 13.33.0 label May 20, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

release-13.33.0 Issue or pull request that will be included in release 13.33.0 size-XS team-confirmations Push issues to confirmations team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: mUSD convert and Perps deposit fail with tx error

4 participants