mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-11-23 02:10:12 +01:00
Merge pull request #4690 from MetaMask/i4662-token-gas-estimate-ux
Set base estimate for token sends to be updated once recipient address specified
This commit is contained in:
commit
a1fb1b8d3e
@ -36,6 +36,7 @@ const ONE_GWEI_IN_WEI_HEX = ethUtil.addHexPrefix(conversionUtil('0x1', {
|
||||
}))
|
||||
|
||||
const SIMPLE_GAS_COST = '0x5208' // Hex for 21000, cost of a simple send.
|
||||
const BASE_TOKEN_GAS_COST = '0x186a0' // Hex for 100000, a base estimate for token transfers.
|
||||
|
||||
module.exports = {
|
||||
INSUFFICIENT_FUNDS_ERROR,
|
||||
@ -52,4 +53,5 @@ module.exports = {
|
||||
REQUIRED_ERROR,
|
||||
SIMPLE_GAS_COST,
|
||||
TOKEN_TRANSFER_FUNCTION_SIGNATURE,
|
||||
BASE_TOKEN_GAS_COST,
|
||||
}
|
||||
|
@ -10,6 +10,7 @@ const {
|
||||
calcTokenAmount,
|
||||
} = require('../../token-util')
|
||||
const {
|
||||
BASE_TOKEN_GAS_COST,
|
||||
INSUFFICIENT_FUNDS_ERROR,
|
||||
INSUFFICIENT_TOKENS_ERROR,
|
||||
NEGATIVE_ETH_ERROR,
|
||||
@ -183,6 +184,8 @@ async function estimateGas ({ selectedAddress, selectedToken, blockGasLimit, to,
|
||||
if (!code || code === '0x') {
|
||||
return SIMPLE_GAS_COST
|
||||
}
|
||||
} else if (selectedToken && !to) {
|
||||
return BASE_TOKEN_GAS_COST
|
||||
}
|
||||
|
||||
paramsForGasEstimate.to = selectedToken ? selectedToken.address : to
|
||||
|
@ -2,6 +2,7 @@ import assert from 'assert'
|
||||
import sinon from 'sinon'
|
||||
import proxyquire from 'proxyquire'
|
||||
import {
|
||||
BASE_TOKEN_GAS_COST,
|
||||
ONE_GWEI_IN_WEI_HEX,
|
||||
SIMPLE_GAS_COST,
|
||||
} from '../send.constants'
|
||||
@ -336,6 +337,11 @@ describe('send utils', () => {
|
||||
assert.notEqual(result, SIMPLE_GAS_COST)
|
||||
})
|
||||
|
||||
it(`should return ${BASE_TOKEN_GAS_COST} if passed a selectedToken but no to address`, async () => {
|
||||
const result = await estimateGas(Object.assign({}, baseMockParams, { to: null, selectedToken: { address: '' } }))
|
||||
assert.equal(result, BASE_TOKEN_GAS_COST)
|
||||
})
|
||||
|
||||
it(`should return the adjusted blockGasLimit if it fails with a 'Transaction execution error.'`, async () => {
|
||||
const result = await estimateGas(Object.assign({}, baseMockParams, {
|
||||
to: 'isContract willFailBecauseOf:Transaction execution error.',
|
||||
|
Loading…
Reference in New Issue
Block a user