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,
getCurrentEthBalance,
getIsMainnet,
getIsTestnet,
getBasicGasEstimateLoadingStatus,
getCustomGasLimit,
getCustomGasPrice,
getDefaultActiveButtonIndex,
getRenderableBasicEstimateData,
isCustomPriceSafe,
isCustomPriceSafeForCustomNetwork,
getAveragePriceEstimateInHexWEI,
isCustomPriceExcessive,
getIsGasEstimatesFetched,
@ -113,6 +115,7 @@ const mapStateToProps = (state, ownProps) => {
const balance = getCurrentEthBalance(state);
const isMainnet = getIsMainnet(state);
const isTestnet = getIsTestnet(state);
const showFiat = getShouldShowFiat(state);
const newTotalEth =
@ -134,6 +137,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),
@ -143,10 +156,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: {

@ -96,6 +96,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);

Loading…
Cancel
Save