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)
feature/default_network_editable
Dan J Miller 3 years ago committed by GitHub
parent 171320eaa9
commit 87166afb6b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 18
      ui/components/app/gas-customization/gas-modal-page-container/gas-modal-page-container.container.js
  2. 22
      ui/selectors/custom-gas.js

@ -29,12 +29,14 @@ import {
getCurrentCurrency, getCurrentCurrency,
getCurrentEthBalance, getCurrentEthBalance,
getIsMainnet, getIsMainnet,
getIsTestnet,
getBasicGasEstimateLoadingStatus, getBasicGasEstimateLoadingStatus,
getCustomGasLimit, getCustomGasLimit,
getCustomGasPrice, getCustomGasPrice,
getDefaultActiveButtonIndex, getDefaultActiveButtonIndex,
getRenderableBasicEstimateData, getRenderableBasicEstimateData,
isCustomPriceSafe, isCustomPriceSafe,
isCustomPriceSafeForCustomNetwork,
getAveragePriceEstimateInHexWEI, getAveragePriceEstimateInHexWEI,
isCustomPriceExcessive, isCustomPriceExcessive,
getIsGasEstimatesFetched, getIsGasEstimatesFetched,
@ -113,6 +115,7 @@ const mapStateToProps = (state, ownProps) => {
const balance = getCurrentEthBalance(state); const balance = getCurrentEthBalance(state);
const isMainnet = getIsMainnet(state); const isMainnet = getIsMainnet(state);
const isTestnet = getIsTestnet(state);
const showFiat = getShouldShowFiat(state); const showFiat = getShouldShowFiat(state);
const newTotalEth = const newTotalEth =
@ -134,6 +137,16 @@ const mapStateToProps = (state, ownProps) => {
conversionRate, conversionRate,
}); });
const isGasEstimate = getIsGasEstimatesFetched(state); 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 { return {
hideBasic, hideBasic,
isConfirm: isConfirm(state), isConfirm: isConfirm(state),
@ -143,10 +156,7 @@ const mapStateToProps = (state, ownProps) => {
customGasLimit: calcCustomGasLimit(customModalGasLimitInHex), customGasLimit: calcCustomGasLimit(customModalGasLimitInHex),
customGasTotal, customGasTotal,
newTotalFiat, newTotalFiat,
customPriceIsSafe: customPriceIsSafe,
(isMainnet || process.env.IN_TEST) && isGasEstimate
? isCustomPriceSafe(state)
: true,
customPriceIsExcessive: isCustomPriceExcessive(state), customPriceIsExcessive: isCustomPriceExcessive(state),
maxModeOn, maxModeOn,
gasPriceButtonGroupProps: { gasPriceButtonGroupProps: {

@ -96,6 +96,28 @@ export function isCustomPriceSafe(state) {
return customPriceSafe; 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) { export function isCustomPriceExcessive(state, checkSend = false) {
const customPrice = checkSend ? getGasPrice(state) : getCustomGasPrice(state); const customPrice = checkSend ? getGasPrice(state) : getCustomGasPrice(state);
const fastPrice = getFastPriceEstimate(state); const fastPrice = getFastPriceEstimate(state);

Loading…
Cancel
Save