如何估算太坊交易的gas消耗量

在以太坊中,使用estimateGas()方法来估算一个交易要消耗的gas消耗量。我们区分普通转账交易和合约方法交易进行说明。

区块链开发课程精选

普通转账交易

对于普通转账交易而言,使用web3.eth.estimateGas()方法进行估计。例如:

var from = web3.eth.accounts[1]
var to = web3.eth.accounts[2]
var quantity = web3.eth.estimateGas({
  from:from,
  to:to,
  value:50000000000000})
console.log('大约要消耗gas:',quantity)
var amount = quantity * web3.eth.gasPrice
console.log('转出方的账户余额大约要减少:',amount,'(wei)')

合约方法交易

对于合约方法交易而言,使用合约对象上该方法的estimateGas()调用进行估计。例如,对于下面的合约:

pragma solidity ^0.4.8;
contract EzTest {
    uint public num;
    function setNum(uint newNum) {
        num = newNum;
    }
}

可以在js中估算setNum()方法的gas消耗量。例如,下面的代码对setNum(4)调用要消耗的gas量进行估算:

//inst 是EzTest合约的实例对象
inst.setNum.estimateGas(4, {from: web3.eth.accounts[1]})

在线教程

如果你正在尝试学习以太坊DApp开发,可以尝试一下汇智网的在线互动教程:

转载于:https://my.oschina.net/u/3794778/blog/1799323

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值