智能合约 | 如何调试Solidity

对于一个新手来讲,ta的Aha时刻来自于ta终于能够运行本身的第一行代码,我还记得我当年写的能够运行的“烂代码”的兴奋时刻。而当我利用本身的编程技能找到工做时,其中的一个Aha时刻来自于我学会了如何调试程序。调试程序占用工做的时间有时候会达到50%,面对着一堆代码逻辑就是不知道问题在哪里。而当我掌握了如何利用断点查看当前的变量和状态后,个人工做效率提高了一倍,bug变少了,幸福感提高了。vue

调试Solidity有一个很好的工具:Remix,经过这个连接能够进入到Remix的网站:http://remix.ethereum.org 。git

代码编辑


以后咱们能够把Solidity代码放到编辑器中,上图中能够看到最左侧的行数旁边有警告/错误提示,把鼠标放到上面会有具体的信息提示,根据提示修改代码就能够消除错误信息了。修改后的示例代码能够在这里获取:https://gist.github.com/luckyyang/8edc58ad647f35424823448ea4404f8d 。
github

合约编译

以后咱们能够选择对应的编译器版本,示例代码中的版本是0.4.25,而后就能够编译了,看到绿色的提示代表编译成功。编译的主要工做是生成ABIbytecode,本文不作阐述。编程


合约部署
浏览器

编译成功后,就能够切换到Run标签进行合约的部署了,这里咱们能够选择EnvironmentJavaScript VM,直接在浏览器中运行一个虚拟的区块链网络,这样就不用咱们使用Mistganache-cli这类的工具再去运行区块链网络了。微信


如上图所示,选择JavaScript VM后,会自动帮咱们生成5个Account,每一个Account中有100个Ether,足够咱们开发使用了。
网络


如上图所示,点击Deploy按钮后就能够部署合约了,部署成功后会自动显示合约的信息。点击合约会显示全部的变量和方法。
app

合约交互


如上图所示,红色表示此类方法会修改合约的状态,也代表了须要消耗gas;青色表示此类方法的做用是获取信息,不会修改合约的状态。点击具体的方法名字就能够和合约进行交互了。
编辑器

合约调试


如上图所示,同时与合约交互的transaction也会显示到代码区下面的区域。点击Debug按钮会跳转到Debugger界面(下图),不但能够进行单步调试,还能够看到合约中更具体的信息,如变量和合约状态等。
工具



总结

利用Remix能够很方便的对Solidity进行编辑,部署和调试,各位Solidity开发者赶快用起来吧。


本文分享自微信公众号 - Rebase社区(rebase_network)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索