售前客服二维码
文章均源于网络收集编辑侵删
提示:仅接受技术开发咨询!
Builder EVM是一个用于本地开发的以太网,它提供了更好的堆栈跟踪功能和控制台。log()输出日志。
建立EVM和控制台日志
在以太网上建立智能契约似乎越来越像是人类可以做的事情,而这一切正在发生。
1919年10月,我们引入了Buidler EVM[3]:这是ganache-cli的一个替代方案,它实现了Stority的堆栈跟踪功能。这是朝着更好的开发者体验迈出的重要一步,现在我们发布了另一个备受期待的Buidler EVM函数:Console . log()for Studity。
译者注:在使用npx buidler节点启动EVM构建器之后,其他一切都与使用Ganache完全相同。
从那以后,调试有了眼睛
Buidler EVM是为开发而设计的本地以太网。它允许您部署合同、运行测试和调试代码,Buidler EVM是一个设计用于启用高级工具的平台。
目前,从Solidity记录数据的主要方法是发出事件,但这种方法有很大的局限性:它只适用于成功的交易。这是因为当交易失败时,EVM不会触发事件。通常,当交易失败时,开发人员需要知道发生了什么,所以这对开发来说是非常悲惨的。
Buidler EVM有一个强大的执行检查架构,这使我们能够实现可靠的控制台。日志,这将始终可用,即使当交易失败,它可以与您选择的测试工具一起使用。
使用控制台
它很容易使用。只需导入@nomiclabs/buidler/console.sol,然后将console.sol添加到函数中,就像在JavaScript中使用它一样,例如:
然后使用构建器EVM作为开发网络,并使用构建器运行测试。
您可以使用任何工具(不仅仅是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-
文章均源于网络收集编辑侵删
提示:仅接受技术开发咨询!