更好Solidity合约调试工具: console.log

2020-08-17 19:21 栏目:经验之谈 来源:网络整理 查看()

Builder EVM是一个用于本地开发的以太网,它提供了更好的堆栈跟踪功能和控制台。log()输出日志。

建立EVM和控制台日志

更好Solidity合约调试工具: console.log

在以太网上建立智能契约似乎越来越像是人类可以做的事情,而这一切正在发生。

1919年10月,我们引入了Buidler EVM[3]:这是ganache-cli的一个替代方案,它实现了Stority的堆栈跟踪功能。这是朝着更好的开发者体验迈出的重要一步,现在我们发布了另一个备受期待的Buidler EVM函数:Console . log()for Studity。

译者注:在使用npx buidler节点启动EVM构建器之后,其他一切都与使用Ganache完全相同。

更好Solidity合约调试工具: console.log

从那以后,调试有了眼睛

Buidler EVM是为开发而设计的本地以太网。它允许您部署合同、运行测试和调试代码,Buidler EVM是一个设计用于启用高级工具的平台。

目前,从Solidity记录数据的主要方法是发出事件,但这种方法有很大的局限性:它只适用于成功的交易。这是因为当交易失败时,EVM不会触发事件。通常,当交易失败时,开发人员需要知道发生了什么,所以这对开发来说是非常悲惨的。

Buidler EVM有一个强大的执行检查架构,这使我们能够实现可靠的控制台。日志,这将始终可用,即使当交易失败,它可以与您选择的测试工具一起使用。

使用控制台

它很容易使用。只需导入@nomiclabs/buidler/console.sol,然后将console.sol添加到函数中,就像在JavaScript中使用它一样,例如:

更好Solidity合约调试工具: console.log

然后使用构建器EVM作为开发网络,并使用构建器运行测试。

更好Solidity合约调试工具: console.log

您可以使用任何工具(不仅仅是Buidler)来编译契约,所以您需要安全地保存调用日志。像温柔[4]这样的工具将集成捕获日志的功能,因此您甚至可以根据需要将日志代码部署到测试网络和主网络。当在其他网络中运行时,调用console.log不会执行任何操作,但会产生气体成本。

Buidler EVM的最新版本还增加了对实度0.6和新的JSON-RPC方法evm_snapshot和evm_revert的支持,从而允许项目使用快照迁移到Buidler并继续其测试优化。

结合堆栈跟踪功能,它标志着智能合同开发生产力的新篇章。

带着控制台去兜兜风。建筑商EVM日志!

mkdir控制台/

cd控制台/

npm init -y

NPM install-save-dev @ nomic labs/buidler

npx buidler #并创建一个示例项目

npx buidler测试

使用构建器,你很快就会忘记实性调试带来的挫折

使用控制台。登录桁架项目

Console.log也可以很容易地在现有的块菌项目中使用。首先,在项目下安装buidler:

NPM install-save-dev @ nomic labs/buidler

//或

纱线添加@nomiclabs/buidler

然后将“import @ nomic labs/bui dler/console . sol”引入合同文件;然后在需要打印的地方添加console.log()。

然后是部署和测试。在块菌项目中,一般使用Ganache网络。现在,我们使用构建器EVM来代替Ganache,并修改块菌配置的配置:

网络: {

发展: {

主机: '127.0.0.1 ',

端口: 8545,

network_id: '* '

{}

{}

Ganache的默认RPC端口通常是7545,Builder EVM的默认RPC端口是8545,因此我们将开发网络的端口修改为8545。

构建器EVM启动后,就可以进行部署了。使用命令npx buidler节点启动构建器EVM,构建器EVM将为我们分配20个帐户,每个帐户有10,000个以太网。

如果是第一次开始,我们将被提示创建一个项目。您可以选择“创建一个空的Builder . config . js”,即创建一个空的Builder . config . js。

这与之前开发的块菌项目完全一致。打开另一个命令终端,使用块菌迁移命令进行部署。如果我们将console.log()添加到构造函数中,我们可以在构建器EVM终端中看到该日志。

参考材料

[1]登链翻译计划: https://github.com/lbc-team/Pioneer

[2]很小熊: https://learnblockchain.cn/people/15

[3]我们推出了别克EVM : https://媒体。com/etime-labs-blog/better-solidity-debug-stack-traces-is-finally-here-DD 80 a 56 f 92 bb

[4]嫩: https://tenderly.dev/

[5]Patricio Palladino : https://medium.com/@alcuadrado?source=post_page-fc 66 c 54 F2 c4a-

微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:仅接受技术开发咨询!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
NFT开发,NFT交易所开发,DAPP开发 Keywords: NFT开发 NFT交易所开发 DAPP开发