1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-23 01:39:44 +01:00

Ensure the advanced gas modal displays a zero priority fee if that is how it is set in the transaction (#17559)

Co-authored-by: Pedro Figueiredo <pedro.figueiredo@consensys.net>
This commit is contained in:
Dan J Miller 2023-02-03 08:00:49 -08:00 committed by PeterYinusa
parent fe0875cc17
commit 4b18d48366
2 changed files with 21 additions and 6 deletions

View File

@ -7,6 +7,8 @@ import { isLegacyTransaction } from '../../helpers/utils/transactions.util';
import { hexWEIToDecGWEI } from '../../../shared/lib/transactions-controller-utils';
import { feeParamsAreCustom, getGasFeeEstimate } from './utils';
const isNullOrUndefined = (value) => value === null || value === undefined;
const getMaxPriorityFeePerGasFromTransaction = (
transaction,
gasFeeEstimates,
@ -17,9 +19,8 @@ const getMaxPriorityFeePerGasFromTransaction = (
}
const { maxPriorityFeePerGas, maxFeePerGas, gasPrice } =
transaction?.txParams || {};
return Number(
hexWEIToDecGWEI(maxPriorityFeePerGas || maxFeePerGas || gasPrice),
);
const feeInHexWei = maxPriorityFeePerGas || maxFeePerGas || gasPrice;
return feeInHexWei ? Number(hexWEIToDecGWEI(feeInHexWei)) : null;
};
/**
@ -50,17 +51,20 @@ export function useMaxPriorityFeePerGasInput({
const initialMaxPriorityFeePerGas = supportsEIP1559
? getMaxPriorityFeePerGasFromTransaction(transaction, gasFeeEstimates)
: 0;
: null;
const [maxPriorityFeePerGas, setMaxPriorityFeePerGas] = useState(() => {
if (initialMaxPriorityFeePerGas && feeParamsAreCustom(transaction)) {
if (
!isNullOrUndefined(initialMaxPriorityFeePerGas) &&
feeParamsAreCustom(transaction)
) {
return initialMaxPriorityFeePerGas;
}
return null;
});
useEffect(() => {
if (supportsEIP1559 && initialMaxPriorityFeePerGas) {
if (supportsEIP1559 && !isNullOrUndefined(initialMaxPriorityFeePerGas)) {
setMaxPriorityFeePerGas(initialMaxPriorityFeePerGas);
}
}, [initialMaxPriorityFeePerGas, setMaxPriorityFeePerGas, supportsEIP1559]);

View File

@ -102,4 +102,15 @@ describe('useMaxPriorityFeePerGasInput', () => {
});
expect(result.current.maxPriorityFeePerGas).toBe(100);
});
it('returns maxPriorityFeePerGas from transaction if it is 0', () => {
const { result } = renderUseMaxPriorityFeePerGasInputHook({
transaction: {
txParams: {
maxPriorityFeePerGas: '0x0',
},
},
});
expect(result.current.maxPriorityFeePerGas).toBe(0);
});
});