1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-10-22 19:26:13 +02:00

Use eth_gasPrice result for setting too low warning on custom networks (#11370)

* Use eth_gasPrice result for setting too low warning on custom networks

* Assume CustomPriceSafeForCustomNetwork when there is no custom price set (it will default to recommended)
This commit is contained in:
Dan J Miller 2021-06-24 14:29:47 -02:30 committed by ryanml
parent 73200a7876
commit b7b30d0796
2 changed files with 36 additions and 4 deletions

View File

@ -28,6 +28,7 @@ import {
getIsMainnet,
getSendToken,
getPreferences,
getIsTestnet,
getBasicGasEstimateLoadingStatus,
getCustomGasLimit,
getCustomGasPrice,
@ -36,6 +37,7 @@ import {
isCustomPriceSafe,
getTokenBalance,
getSendMaxModeState,
isCustomPriceSafeForCustomNetwork,
getAveragePriceEstimateInHexWEI,
isCustomPriceExcessive,
getIsGasEstimatesFetched,
@ -118,6 +120,7 @@ const mapStateToProps = (state, ownProps) => {
const showFiat = Boolean(isMainnet || showFiatInTestnets);
const isSendTokenSet = Boolean(sendToken);
const isTestnet = getIsTestnet(state);
const newTotalEth =
maxModeOn && !isSendTokenSet
@ -138,6 +141,16 @@ const mapStateToProps = (state, ownProps) => {
conversionRate,
});
const isGasEstimate = getIsGasEstimatesFetched(state);
let customPriceIsSafe;
if ((isMainnet || process.env.IN_TEST) && isGasEstimate) {
customPriceIsSafe = isCustomPriceSafe(state);
} else if (isTestnet) {
customPriceIsSafe = true;
} else {
customPriceIsSafe = isCustomPriceSafeForCustomNetwork(state);
}
return {
hideBasic,
isConfirm: isConfirm(state),
@ -147,10 +160,7 @@ const mapStateToProps = (state, ownProps) => {
customGasLimit: calcCustomGasLimit(customModalGasLimitInHex),
customGasTotal,
newTotalFiat,
customPriceIsSafe:
(isMainnet || process.env.IN_TEST) && isGasEstimate
? isCustomPriceSafe(state)
: true,
customPriceIsSafe,
customPriceIsExcessive: isCustomPriceExcessive(state),
maxModeOn,
gasPriceButtonGroupProps: {

View File

@ -100,6 +100,28 @@ export function isCustomPriceSafe(state) {
return customPriceSafe;
}
export function isCustomPriceSafeForCustomNetwork(state) {
const estimatedPrice = state.gas.basicEstimates.average;
const customGasPrice = getCustomGasPrice(state);
if (!customGasPrice) {
return true;
}
const customPriceSafe = conversionGreaterThan(
{
value: customGasPrice,
fromNumericBase: 'hex',
fromDenomination: 'WEI',
toDenomination: 'GWEI',
},
{ value: estimatedPrice, fromNumericBase: 'dec' },
);
return customPriceSafe;
}
export function isCustomPriceExcessive(state, checkSend = false) {
const customPrice = checkSend ? getGasPrice(state) : getCustomGasPrice(state);
const fastPrice = getFastPriceEstimate(state);