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:
parent
fe0875cc17
commit
4b18d48366
@ -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]);
|
||||
|
@ -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);
|
||||
});
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user