Skip to content

[Bug]: The send_rawTransaction request is being submitted to all the RPCs added in the wallet happening since > 12.10.0 #30061

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
heypran opened this issue Feb 3, 2025 · 0 comments · Fixed by #30079 or #30077
Assignees
Labels
external-contributor regression-prod-12.10.3 Regression bug that was found in production in release 12.10.3 release-12.13.0 Issue or pull request that will be included in release 12.13.0 Sev1-high High severity; partial loss of service with severe impact upon users, with no workaround. team-confirmations Push issues to confirmations team type-bug Something isn't working

Comments

@heypran
Copy link

heypran commented Feb 3, 2025

Describe the bug

After metamask failed to get receipt for a transaction, it tries to submit again to all the added RPCs in the metamask.

Expected behavior

Metamask should only interact with the selected RPCs instead of broadcasting to all the RPCs

Screenshots/Recordings

No response

Steps to reproduce

  1. Create a transaction with say any rpc that will not return the tx receipt immediately
  2. Check the network tab for all the send raw transaction request
  3. You will notice that once metamask could not get the transaction receipt, it will automatically submit to all the other added network RPCs
ghupload.mp4

Error messages or log output

Detection stage

In production (default)

Version

12.10.3

Build type

None

Browser

Chrome

Operating system

MacOS

Hardware wallet

No response

Additional context

No response

Severity

  • This is critical for RPC providers which provides more than just normal transaction broadcast services such private mempool and gas savings.
@heypran heypran added the type-bug Something isn't working label Feb 3, 2025
@github-project-automation github-project-automation bot moved this to To be fixed in Bugs by severity Feb 3, 2025
@metamaskbot metamaskbot added external-contributor regression-prod-12.10.3 Regression bug that was found in production in release 12.10.3 labels Feb 3, 2025
@danjm danjm added Sev1-high High severity; partial loss of service with severe impact upon users, with no workaround. team-confirmations Push issues to confirmations team labels Feb 3, 2025
github-merge-queue bot pushed a commit that referenced this issue Feb 4, 2025
## **Description**

Upgrade `@metamask/transaction-controller` to prevent transactions being
resubmit on multiple endpoints.

[![Open in GitHub
Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/30079?quickstart=1)

## **Related issues**

Fixes: #30061 

## **Manual testing steps**

1. Add additional endpoint for network.
2. Open `Network` tab of developer console.
3. Select first endpoint.
4. Send transaction.
5. Verify all RPC requests are to the correct endpoint.
6. Select second endpoint.
7. Send transaction.
8. Verify all RPC requests are to the correct endpoint.

## **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
- [x] I’ve included tests if applicable
- [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] 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.
@metamaskbot metamaskbot added the release-12.13.0 Issue or pull request that will be included in release 12.13.0 label Feb 4, 2025
runway-github bot added a commit that referenced this issue Feb 4, 2025
## **Description**

Upgrade `@metamask/transaction-controller` to prevent transactions being
resubmit on multiple endpoints.

[![Open in GitHub
Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/30079?quickstart=1)

## **Related issues**

Fixes: #30061 

## **Manual testing steps**

1. Add additional endpoint for network.
2. Open `Network` tab of developer console.
3. Select first endpoint.
4. Send transaction.
5. Verify all RPC requests are to the correct endpoint.
6. Select second endpoint.
7. Send transaction.
8. Verify all RPC requests are to the correct endpoint.

## **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
- [x] I’ve included tests if applicable
- [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] 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.
runway-github bot added a commit that referenced this issue Feb 4, 2025
## **Description**

Upgrade `@metamask/transaction-controller` to prevent transactions being
resubmit on multiple endpoints.

[![Open in GitHub
Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/30079?quickstart=1)

## **Related issues**

Fixes: #30061 

## **Manual testing steps**

1. Add additional endpoint for network.
2. Open `Network` tab of developer console.
3. Select first endpoint.
4. Send transaction.
5. Verify all RPC requests are to the correct endpoint.
6. Select second endpoint.
7. Send transaction.
8. Verify all RPC requests are to the correct endpoint.

## **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
- [x] I’ve included tests if applicable
- [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] 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.
runway-github bot added a commit that referenced this issue Feb 4, 2025
## **Description**

Upgrade `@metamask/transaction-controller` to prevent transactions being
resubmit on multiple endpoints.

[![Open in GitHub
Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/30079?quickstart=1)

## **Related issues**

Fixes: #30061 

## **Manual testing steps**

1. Add additional endpoint for network.
2. Open `Network` tab of developer console.
3. Select first endpoint.
4. Send transaction.
5. Verify all RPC requests are to the correct endpoint.
6. Select second endpoint.
7. Send transaction.
8. Verify all RPC requests are to the correct endpoint.

## **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
- [x] I’ve included tests if applicable
- [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] 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.
runway-github bot added a commit that referenced this issue Feb 4, 2025
## **Description**

Upgrade `@metamask/transaction-controller` to prevent transactions being
resubmit on multiple endpoints.

[![Open in GitHub
Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/30079?quickstart=1)

## **Related issues**

Fixes: #30061 

## **Manual testing steps**

1. Add additional endpoint for network.
2. Open `Network` tab of developer console.
3. Select first endpoint.
4. Send transaction.
5. Verify all RPC requests are to the correct endpoint.
6. Select second endpoint.
7. Send transaction.
8. Verify all RPC requests are to the correct endpoint.

## **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
- [x] I’ve included tests if applicable
- [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] 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.
runway-github bot added a commit that referenced this issue Feb 4, 2025
## **Description**

Upgrade `@metamask/transaction-controller` to prevent transactions being
resubmit on multiple endpoints.

[![Open in GitHub
Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/30079?quickstart=1)

## **Related issues**

Fixes: #30061 

## **Manual testing steps**

1. Add additional endpoint for network.
2. Open `Network` tab of developer console.
3. Select first endpoint.
4. Send transaction.
5. Verify all RPC requests are to the correct endpoint.
6. Select second endpoint.
7. Send transaction.
8. Verify all RPC requests are to the correct endpoint.

## **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
- [x] I’ve included tests if applicable
- [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] 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.
davidmurdoch pushed a commit that referenced this issue Feb 5, 2025
## **Description**

Upgrade `@metamask/transaction-controller` to prevent transactions being
resubmit on multiple endpoints.

[![Open in GitHub
Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/30079?quickstart=1)

## **Related issues**

Fixes: #30061 

## **Manual testing steps**

1. Add additional endpoint for network.
2. Open `Network` tab of developer console.
3. Select first endpoint.
4. Send transaction.
5. Verify all RPC requests are to the correct endpoint.
6. Select second endpoint.
7. Send transaction.
8. Verify all RPC requests are to the correct endpoint.

## **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
- [x] I’ve included tests if applicable
- [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] 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.
davidmurdoch pushed a commit that referenced this issue Feb 5, 2025
## **Description**

Upgrade `@metamask/transaction-controller` to prevent transactions being
resubmit on multiple endpoints.

[![Open in GitHub
Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/30079?quickstart=1)

## **Related issues**

Fixes: #30061 

## **Manual testing steps**

1. Add additional endpoint for network.
2. Open `Network` tab of developer console.
3. Select first endpoint.
4. Send transaction.
5. Verify all RPC requests are to the correct endpoint.
6. Select second endpoint.
7. Send transaction.
8. Verify all RPC requests are to the correct endpoint.

## **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
- [x] I’ve included tests if applicable
- [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] 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.
seaona pushed a commit that referenced this issue Feb 6, 2025
## **Description**

Upgrade `@metamask/transaction-controller` to prevent transactions being
resubmit on multiple endpoints.

[![Open in GitHub
Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/30079?quickstart=1)

## **Related issues**

Fixes: #30061 

## **Manual testing steps**

1. Add additional endpoint for network.
2. Open `Network` tab of developer console.
3. Select first endpoint.
4. Send transaction.
5. Verify all RPC requests are to the correct endpoint.
6. Select second endpoint.
7. Send transaction.
8. Verify all RPC requests are to the correct endpoint.

## **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
- [x] I’ve included tests if applicable
- [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] 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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
external-contributor regression-prod-12.10.3 Regression bug that was found in production in release 12.10.3 release-12.13.0 Issue or pull request that will be included in release 12.13.0 Sev1-high High severity; partial loss of service with severe impact upon users, with no workaround. team-confirmations Push issues to confirmations team type-bug Something isn't working
Projects
Archived in project
4 participants