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并输入你的私钥就可以,如果大家有需要的话可以评论,我帮大家整理出来具体的步骤和参数含义后再发文章链接。
对文章满意的话欢迎点赞收藏,哈哈,谢谢你