gas费用测试优化:hardhat-gas-reporter

gas费用测试gas费用测试优化


​ gas费是我们每一次与区块链交互的时候产生的一笔费用,每次我们读取数据,运算数据,修改数据的时候,都会产生一定数量的gas。

​ gas费是我们与区块链通信的过程中提交的费用,,我们通过一定的语法技巧能节约很多的gas,给用户操作节省gas费,一个优秀的项目应该避免大量gas的消耗。

hardhat-gas-reporter是hardhat的一个插件,专门用于查看每个单元测试所消耗的gas费用,

安装hardhat-gas-reporter

npm install hardhat-gas-reporter --save-dev

配置hardhat-confing.js文件

require("hardhat-gas-reporter");

配置项

module.exports = {
  gasReporter: {
  	enabled: true,
    currency: 'CNY',
  }
}

在这里插入图片描述

  • enable表示使用report插件,修改为false则可以关闭
  • currency表示用人名币和gas费用进行换算,也可以设置为美元等

修改案例代码

  • 我们给合约增添一个方法,验证gas。
    在这里插入图片描述

  • 同时在./test/sample-test.js中使用这个方法

const getGreet = await greeter.getGreeting();

在这里插入图片描述

运行

​ 此插件覆盖内置test任务,所以运行测试文件的时候就会自动进行gas的计算,但是使用这个插件会增加运行时间。运行时请耐心等待

npx hardhat test

在这里插入图片描述

​ 大家请注意Avg这里的数字,这就是消耗的gas,左边是对应的方法。比如:执行getGreeting消耗了24549

不同的gas费用举例

  • 我们现在继续修改源码,把greeting的可见性修改为public。private => public
    在这里插入图片描述

运行查看结果npx hardhat test
在这里插入图片描述

大家会发现getGreeting的gas费用升高了,这是因为读取区块链数据的时候,不同的可见性花费的gas费也不同 。

怎么样,哈哈,这个插件是不是挺好用的,对我们优化智能合约很有帮助,当然平时测试可以关闭这个插件,它很影响我们测试的速度。

还有一个小技巧:hardhat-gas-reporter还可以和当前最新的ETH和美元,人名币等货币进行换算。只需要注册coinmarketcap并输入你的私钥就可以,如果大家有需要的话可以评论,我帮大家整理出来具体的步骤和参数含义后再发文章链接。

对文章满意的话欢迎点赞收藏,哈哈,谢谢你

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值