mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 01:39:44 +01:00
Rework estimateGas logic
The tests still pass!
This commit is contained in:
parent
918fb71df3
commit
c9f22916dd
@ -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…
Reference in New Issue
Block a user