You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.8 KiB
52 lines
1.8 KiB
import BigNumber from 'bignumber.js';
|
|
import { addHexPrefix } from 'ethereumjs-util';
|
|
|
|
import { multiplyCurrencies } from '../../../shared/modules/conversion.utils';
|
|
import { bnGreaterThan } from './util';
|
|
import { hexWEIToDecGWEI } from './conversions.util';
|
|
|
|
export const gasEstimateGreaterThanGasUsedPlusTenPercent = (
|
|
transaction,
|
|
gasFeeEstimates,
|
|
estimate,
|
|
) => {
|
|
let { maxFeePerGas: maxFeePerGasInTransaction } = transaction.txParams;
|
|
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
|
|
* @returns {string | undefined} - hex value in WEI 10% higher than the param.
|
|
*/
|
|
export function addTenPercent(hexStringValue, conversionOptions = {}) {
|
|
if (hexStringValue === undefined) return undefined;
|
|
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
|
|
* @returns {string | undefined} - hex value in WEI 10% higher than the param.
|
|
*/
|
|
export function addTenPercentAndRound(hexStringValue) {
|
|
return addTenPercent(hexStringValue, { numberOfDecimals: 0 });
|
|
}
|
|
|