2022-01-06 03:47:26 +01:00
|
|
|
import BigNumber from 'bignumber.js';
|
|
|
|
import { addHexPrefix } from 'ethereumjs-util';
|
|
|
|
|
2022-01-26 19:18:43 +01:00
|
|
|
import { GAS_RECOMMENDATIONS } from '../../../shared/constants/gas';
|
2022-01-06 03:47:26 +01:00
|
|
|
import { multiplyCurrencies } from '../../../shared/modules/conversion.utils';
|
|
|
|
import { bnGreaterThan } from './util';
|
|
|
|
import { hexWEIToDecGWEI } from './conversions.util';
|
|
|
|
|
|
|
|
export const gasEstimateGreaterThanGasUsedPlusTenPercent = (
|
2022-01-26 19:18:43 +01:00
|
|
|
gasUsed,
|
2022-01-06 03:47:26 +01:00
|
|
|
gasFeeEstimates,
|
|
|
|
estimate,
|
|
|
|
) => {
|
2022-01-26 19:18:43 +01:00
|
|
|
let { maxFeePerGas: maxFeePerGasInTransaction } = gasUsed;
|
2022-01-06 03:47:26 +01:00
|
|
|
maxFeePerGasInTransaction = new BigNumber(
|
|
|
|
hexWEIToDecGWEI(addTenPercentAndRound(maxFeePerGasInTransaction)),
|
|
|
|
);
|
|
|
|
|
|
|
|
const maxFeePerGasFromEstimate =
|
|
|
|
gasFeeEstimates[estimate]?.suggestedMaxFeePerGas;
|
|
|
|
return bnGreaterThan(maxFeePerGasFromEstimate, maxFeePerGasInTransaction);
|
|
|
|
};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Simple helper to save on duplication to multiply the supplied wei hex string
|
|
|
|
* by 1.10 to get bare minimum new gas fee.
|
|
|
|
*
|
|
|
|
* @param {string | undefined} hexStringValue - hex value in wei to be incremented
|
2022-01-07 16:57:33 +01:00
|
|
|
* @param conversionOptions
|
|
|
|
* @returns {string | undefined} hex value in WEI 10% higher than the param.
|
2022-01-06 03:47:26 +01:00
|
|
|
*/
|
|
|
|
export function addTenPercent(hexStringValue, conversionOptions = {}) {
|
2022-01-06 23:56:51 +01:00
|
|
|
if (hexStringValue === undefined) {
|
|
|
|
return undefined;
|
|
|
|
}
|
2022-01-06 03:47:26 +01:00
|
|
|
return addHexPrefix(
|
|
|
|
multiplyCurrencies(hexStringValue, 1.1, {
|
|
|
|
toNumericBase: 'hex',
|
|
|
|
multiplicandBase: 16,
|
|
|
|
multiplierBase: 10,
|
|
|
|
numberOfDecimals: 0,
|
|
|
|
...conversionOptions,
|
|
|
|
}),
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Simple helper to save on duplication to multiply the supplied wei hex string
|
|
|
|
* by 1.10 to get bare minimum new gas fee.
|
|
|
|
*
|
|
|
|
* @param {string | undefined} hexStringValue - hex value in wei to be incremented
|
2022-01-07 16:57:33 +01:00
|
|
|
* @returns {string | undefined} hex value in WEI 10% higher than the param.
|
2022-01-06 03:47:26 +01:00
|
|
|
*/
|
|
|
|
export function addTenPercentAndRound(hexStringValue) {
|
|
|
|
return addTenPercent(hexStringValue, { numberOfDecimals: 0 });
|
|
|
|
}
|
2022-01-26 19:18:43 +01:00
|
|
|
|
2022-01-31 06:51:43 +01:00
|
|
|
export function isMetamaskSuggestedGasEstimate(estimate) {
|
2022-01-26 19:18:43 +01:00
|
|
|
return [
|
|
|
|
GAS_RECOMMENDATIONS.HIGH,
|
|
|
|
GAS_RECOMMENDATIONS.MEDIUM,
|
|
|
|
GAS_RECOMMENDATIONS.LOW,
|
|
|
|
].includes(estimate);
|
|
|
|
}
|