tx-gas-utils - improve format + comments

feature/default_network_editable
kumavis 6 years ago committed by GitHub
parent 4cc0b1ef01
commit 600f755dbf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 22
      app/scripts/controllers/transactions/tx-gas-utils.js

@ -62,28 +62,34 @@ class TxGasUtil {
const recipient = txParams.to const recipient = txParams.to
const hasRecipient = Boolean(recipient) const hasRecipient = Boolean(recipient)
// see if we can set the gas based on the recipient
if (hasRecipient) { if (hasRecipient) {
const code = await this.query.getCode(recipient) const code = await this.query.getCode(recipient)
// For an address with no code, geth will return '0x', and ganache-core v2.2.1 will return '0x0'
const codeIsEmpty = !code || code === '0x' || code === '0x0'
// If there's data in the params, but there's no code, it's not a valid contract if (codeIsEmpty) {
// For no code, Infura will return '0x', and ganache-core v2.2.1 will return '0x0' // if there's data in the params, but there's no contract code, it's not a valid transaction
if (txParams.data && (!code || code === '0x' || code === '0x0')) { if (txParams.data) {
const err = new Error() const err = new Error()
err.errorKey = TRANSACTION_NO_CONTRACT_ERROR_KEY err.errorKey = TRANSACTION_NO_CONTRACT_ERROR_KEY
throw err throw err
} else if (!code) { }
txParams.gas = SIMPLE_GAS_COST // For a standard ETH send, gas is 21k max
txMeta.simpleSend = true // Prevents buffer addition // This is a standard ether simple send, gas requirement is exactly 21k
txParams.gas = SIMPLE_GAS_COST
// prevents buffer addition
txMeta.simpleSend = true
return SIMPLE_GAS_COST return SIMPLE_GAS_COST
} }
} }
// if not, fall back to block gasLimit // fallback to block gasLimit
const blockGasLimitBN = hexToBn(blockGasLimitHex) const blockGasLimitBN = hexToBn(blockGasLimitHex)
const saferGasLimitBN = BnMultiplyByFraction(blockGasLimitBN, 19, 20) const saferGasLimitBN = BnMultiplyByFraction(blockGasLimitBN, 19, 20)
txParams.gas = bnToHex(saferGasLimitBN) txParams.gas = bnToHex(saferGasLimitBN)
// run tx // estimate tx gas requirements
return await this.query.estimateGas(txParams) return await this.query.estimateGas(txParams)
} }

Loading…
Cancel
Save