前言
对于前端开发人员来说,构建智能合约是一个非常具有挑战的任务。Smart Contract允许我们在以太坊(Ethereum)等区块链上创建应用程序。对于构建应用的开发者来说,编写和测试Solidity代码是具有挑战性的任务。
在Solidity代码编辑器中进行手动测试是非常耗时且繁琐的,因此,我们需要工具来自动完成这项任务。使用buidler-gas-reporter(npm包)是一种可以节省时间和精力的方法。此npm包允许您在检查Solidity智能合约的性能时,自动进行gas使用的报告。
在本文中,我们将介绍buidler-gas-reporter作为npm包的使用方法。
bGAS-Reporter配置
在npm包安装成功后,我们可以将buidler-gas-reporter添加到buidler配置文件中。在buidler.config.js
文件中,添加bGAS-reporter插件的resolve以及插入插件的同时。代码如下所示:
-- -------------------- ---- ------- -------------------------------------- --------------------------------- -------------- - - --- ------------ - -------- ---------------------- - ---- - ------ --------- ------ --------- -- - --- -
使用bGAS-Reporter
需要注意的是,您首先需要运行测试来收集性能数据。使用下面的命令在CLI中启动测试。
npx buidler test --buidler-network localhost
如果您已经运行过测试并收集了性能数据,则可以使用以下命令启动报告。
npx buidler test --buidler-network localhost --gasReporter --reporter-verbose
注意,如果您没有启用gasReporter
plugin的resolve,则不要使用--gasReporter
命令。
示例
假设我们有以下简单的Solidity合约。代码如下所示:
pragma solidity ^0.7.0; contract SimpleContract { function add(uint _x, uint _y) public pure returns (uint) { return _x + _y; } }
运行测试时,我们可以选择在CLI中使用调用add函数的2个不同值。添加以下代码到测试文件simple-contract.test.js
.
-- -------------------- ---- ------- ----- -------------- - --------------------------------------- --------------- --------------------------------- --------- -------------------------- ----------- ------ -- - --- -------------- ------------ -- -- - -------------- - ----- ------------------------- -- ---------------------- -- -- - ---------- ------ --- ---------- ----- -- -- - ----- ------- - ----- ---------------------- ------------------------ ----- ------------------------ --- ------------------------ ----- ------------------------ ---------- -- -- --------------- -- -- - ---------- --- --- --------- ----- -- -- - ----- ------ - ----- --------------------- -- -------------------- -- -- ---------- ----- -- ------- ----- -- -- - ----- -------------------------- --------------------- -- -- --
使用以下命令在CLI中启动测试:
npx buidler test --buidler-network localhost
在CLI中使用以下命令来生成性能分析。
npx buidler test --buidler-network localhost --gasReporter --reporter-verbose
您将在CLI中得到以下输出:
-- -------------------- ---- ------- --------- -------------- ---------- - ------ ------ --- -------- -------- --- - ------ --- --- ------- -------- - ------ ----- -- ----- -------- - ------- ----- - ---- ------ ---- -- -- ------- --- ------ ---------- -------------- ----------- --------- --- ------- ---- --------- --- -------
这意味着您的智能合约SimpleContract
在add
函数中使用了0.01 gWei的gas费用,该费用等效于10美分。如果您有一个大型的Solidity合约,并且需要检查运行函数的性能,则buidler-gas-reporter是一个非常好的工具。
结论
希望这份教程对您有所帮助。buidler-gas-reporter是一个非常有用的npm包,它能够自动完成Solidity合约的性能报告。其使用非常简单,可以非常方便地与您的buidler配置文件集成在一起。此外,bGAS-Reporter
插件提供的性能数据对于改善合约的性能来说是非常有意义的。如果您在构建Solidity Smart Contract时遇到过困难,则建议您试试此npm包。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5eedaeaab5cbfe1ea0610ea3