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

文章目录

  • gas费用测试gas费用测试优化
      • 安装hardhat-gas-reporter
      • 配置hardhat-confing.js文件
      • 配置项
      • 修改案例代码
      • 运行
      • 不同的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并输入你的私钥就可以,如果大家有需要的话可以评论,我帮大家整理出来具体的步骤和参数含义后再发文章链接。

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