Rework estimateGas logic

The tests still pass!
feature/default_network_editable
Whymarrh Whitby 6 years ago
parent 918fb71df3
commit c9f22916dd
  1. 20
      ui/app/components/send/send.utils.js

@ -212,6 +212,16 @@ async function estimateGas ({
}) {
const paramsForGasEstimate = { from: selectedAddress, value, gasPrice }
// if recipient has no code, gas is 21k max:
if (!selectedToken && !data) {
const code = Boolean(to) && await global.eth.getCode(to)
if (!code || code === '0x') {
return SIMPLE_GAS_COST
}
} else if (selectedToken && !to) {
return BASE_TOKEN_GAS_COST
}
if (selectedToken) {
paramsForGasEstimate.value = '0x0'
paramsForGasEstimate.data = generateTokenTransferData({ toAddress: to, amount: value, selectedToken })
@ -226,16 +236,6 @@ async function estimateGas ({
}
}
// if recipient has no code, gas is 21k max:
if (!selectedToken && !data) {
const code = Boolean(to) && await global.eth.getCode(to)
if (!code || code === '0x') {
return SIMPLE_GAS_COST
}
} else if (selectedToken && !to) {
return BASE_TOKEN_GAS_COST
}
// if not, fall back to block gasLimit
paramsForGasEstimate.gas = ethUtil.addHexPrefix(multiplyCurrencies(blockGasLimit, 0.95, {
multiplicandBase: 16,

Loading…
Cancel
Save