Skip to content

Commit 3fd27a9

Browse files
authored
fix: gasFeeEstimates property undefined (#29312)
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** This PR fixes an issue created by Sentry where the property `gasFeeEstimates` is `undefined`. Added an early return when the property is `undefined` and covered the scenario with unit tests. <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/29312?quickstart=1) ## **Related issues** Fixes: #27501 #27241 ## **Manual testing steps** 1. Go to this test dapp 2. Block requests against gas-api 3. Start a send or contract interaction 4. Verify the console ## **Screenshots/Recordings** [block-gas-api.webm](https://github.com/user-attachments/assets/1c3cf638-905e-4df9-b875-84f0056979b1) <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **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.
1 parent 8a6f4f9 commit 3fd27a9

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

ui/pages/confirmations/hooks/useTransactionFunction.test.js

+12
Original file line numberDiff line numberDiff line change
@@ -164,4 +164,16 @@ describe('useMaxPriorityFeePerGasInput', () => {
164164
userFeeLevel: 'dappSuggested',
165165
});
166166
});
167+
168+
it('returns early when gasFeeEstimates is undefined', () => {
169+
const mockUpdateTransaction = jest
170+
.spyOn(Actions, 'updateTransactionGasFees')
171+
.mockImplementation(() => ({ type: '' }));
172+
173+
const { result } = renderUseTransactionFunctions({
174+
gasFeeEstimates: undefined,
175+
});
176+
result.current.updateTransactionUsingEstimate(GasRecommendations.low);
177+
expect(mockUpdateTransaction).not.toHaveBeenCalled();
178+
});
167179
});

ui/pages/confirmations/hooks/useTransactionFunctions.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -201,9 +201,10 @@ export const useTransactionFunctions = ({
201201

202202
const updateTransactionUsingEstimate = useCallback(
203203
(gasFeeEstimateToUse) => {
204-
if (!gasFeeEstimates[gasFeeEstimateToUse]) {
204+
if (!gasFeeEstimates?.[gasFeeEstimateToUse]) {
205205
return;
206206
}
207+
207208
const { suggestedMaxFeePerGas, suggestedMaxPriorityFeePerGas } =
208209
gasFeeEstimates[gasFeeEstimateToUse];
209210
updateTransaction({

0 commit comments

Comments
 (0)