在以太坊中,使用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开发,可以尝试一下汇智网的在线互动教程:

  • 以太坊DApp实战入门教程
  • 以太坊去中心化电商应用开发实战

如何估算太坊交易的gas消耗量相关推荐

  1. 以太坊中的账户、交易、Gas和区块Gas Limit等基本概念

    本篇文章作为科普文章,汇总整理了以太坊中的账户.交易.Gas和区块Gas Limit等相关概念,以便大家在实践中更好的与具体业务相结合. 什么是账户 以太坊账户与我们所知的账户概念有一定相似之处,却又 ...

  2. 观点:以太坊交易费市场泡沫预警,交易费日渐成为用户难以承受之重

    在经历了一次大熊市之后,以太坊已经再次流行起来.受包括 ETH 价格反弹以及所谓"去中心化金融"(DeFi)的采用等因素的综合影响,以太坊区块链的活跃用户和日交易量都出现了强力增长 ...

  3. 区块链 以太坊 交易结构、执行、存储 解析 交易中为什么没有包含发送者地址这条数据

    一. 交易的结构 1. Transaction结构 交易结构定义在 core/types/transaction.go 中: type Transaction struct {//交易数据data t ...

  4. 以太坊交易Nonce设置

    1 什么是nonce? 以太坊中的nonce有两个意义: 1.工作量证明:为了证明工作量的无意义的值,这是采矿的本质,这个值将决定采矿的难度, 2.账户的随机数:在一个账户中的防止多重交易的用途.例如 ...

  5. 以太坊交易信息及event、input、logs、topics等概念机制

    文章目录 一.交易信息获取 1.1 合约事件例子定义 1.2 以太坊交易获取 二.input解析 2.1 input内容解析 2.2 input处理逻辑 三.logs解析 3.1 logs解析代码 四 ...

  6. 以太坊交易中的nonce和confirmation

    1. 以太坊交易中的nonce及其价值 1.1 以太坊交易中的nonce值 在以太坊中,每笔交易都有一个nonce值,该nonce值代表的是从该交易发起地址发出的交易数.(当存在使用同一地址从多个客户 ...

  7. java如何监听以太坊交易

    2019独角兽企业重金招聘Python工程师标准>>> 你可以在web3j库的帮助下使用java轻松监听以太坊交易,但此库无法监听Erc20 Token交易. 要监听Erc20Tok ...

  8. Infura Http 客户端 以太坊 交易

    web3j Infura 模块提供了一个Infura Http 客户端(InfuraHttpService),它为Infura特定的Infura-Ethereum-Preferred-Client提供 ...

  9. 以太坊地址和公钥_以太坊交易签名解析源码解读

    上篇文章<以太坊交易签名过程源码解析[1]>从源码角度分析了一个合约调用的的签名过程,签名后的交易发送到以太坊节点后,节点需要从签名交易中还原出公钥(从公钥中单向计算出账号地址),进而将交 ...

最新文章

  1. 新内容转入github
  2. java ssl证书生成_java – 使用jdk中提供的keytool生成SSL证书
  3. HTTP 调试工具httpdebug 使用示例
  4. STM32F103单片机系统时钟部分归纳
  5. Java finally
  6. C++自定义高斯滤波器
  7. Linux内核态抢占机制分析
  8. python的UML类图自动生成工具--pyreverse安装和使用
  9. JSJQuery必备技能
  10. android编译make错误——javalib.jar invalid header field”、classes-full-debug.jar 错误 41 ...
  11. 电气器件系列三十三:步进电机驱动器
  12. mac系统下配置java 和maven环境变量
  13. 睡眠是锁定计算机怎么设置密码,电脑休眠锁屏怎么设置
  14. 原始数据哪里找?这些网站要用好!200个国内外数据网站大全
  15. 有电脑病毒就会有杀毒软件!李开复和MIT彭特兰这样看AI挑战
  16. 英雄联盟手游有EDG那么牛吗?——基于评论的文本分析证据
  17. 中国石油大学《机械电气安全技术(含课程设计)》
  18. 详细讲解分类模型评价指标(混淆矩阵)python示例
  19. 教师资格证是计算机考试地点,教师资格证考试必须有计算机模块证吗?
  20. Ubuntu系统_安装NVIDIA显卡驱动与CUDA Toolkit

热门文章

  1. 基于jdk proxy的动态代理模式
  2. hdu 1708 (字符串,Fibonacci )
  3. 对于函数式编程的新理解
  4. 简便无刷新文件上传系统
  5. redhat6.5 升级内核
  6. linux之stat
  7. 汽车制造MES介绍之3 - AVI车辆识别与调度
  8. 【普通の随笔】3.26
  9. HDU 4407 Sum(容斥原理+状态压缩)
  10. C++对带有分隔符的字符串 分割为数字的通用解决方案