区块链研究实验室|使用GUI(Remix)和Ganache调试Solidity

  • 时间:
  • 浏览:60
  • 来源:区块链技术网

调试Solidity非常困难。随着时间的流逝,诸如Ganache,Remix和solidity-test-helpers之类的工具使它变得更容易,但仍然存在bug。

使用ganache进行调试的gui将有助于减轻许多这些痛苦,并允许开发人员可视化地处理和调试合同。现在有一种方法可以做到这一点!本教程使用Ganache(即时事务)和Remix调试本地Solidity项目。

 

环境配置

以下内容假设您有一个Truffle项目,并尝试使用Ganache对其进行调试。

使用GUI进行调试的步骤如下:

 

  1. 安装remixd

  2. 运营remixd

  3. 将您的项目连接到remix.ethereum.org

  4. 运行ganache cli

  5. 在Remix中选择“ Web3 Provider”作为您的“环境”

  6. 使用GUI调试代码

安装remixd

为了使用GUI调试合同,必须首先下载重新remixd。remixd是与Remix IDE一起使用的工具(又名Browser-Solidity)。它允许Remix IDE(Web应用程序)和本地计算机之间的Websocket连接。要下载它,只需运行:

 

npm install -g remixd

运行remixd

现在您需要运行remixed来设置websocket连接。您可以通过对项目的绝对路径运行以下命令来执行此操作:

remixd -s <absolute-path> --remix-ide https://remix.ethereum.org

将您的项目连接到remix.ethereum.org

 

现在前往Remix。在此页面上,通过单击看起来像插头的图标转到“插件”部分。在插件中搜索“ remixed”,然后单击“activate”。

该页面将警告您即将打开端口和页面之间的连接。单击“connect”,您将看到整个项目出现在Remix中!现在您应该看到本地目录显示在Remix中。

 

运行ganache-cli

现在您需要通过运行ganache cli来启动本地节点。

 

在Remix中选择“ Web3 Provider”作为您的“Environment”

 

现在您需要将本地节点(ganache)连接到Remix。通过单击Remix左侧的以太坊外观符号,然后在Remix中选择“ Web3 Provider”作为“Environment”来执行此操作。

 

您将得到一个关于外部节点请求的弹出窗口。除非更改了ganache节点正在运行的端口,否则所有默认选项都将起作用。

 

使用GUI调试代码

您现在可以使用GUI调试本地代码!您可以部署合约并直接通过GUI与之交互。

要确认此方法是否有效,请随时部署合同并查看在ganache节点上执行的交易。

结论

这种调试为Solidity开辟了一个全新的世界。它为以太坊开发人员拓宽了工具领域,并允许命令行以及可视化调试和测试。Remix提供了一个出色的编码和调试界面,以及令人难以置信(且正在不断发展)的插件套件,您现在可以使用它们与合约进行交互。

附加的功能

 

您可以使用此设置执行许多更高级的功能。其中包括:

 

  1. 分叉实时网络并可视化地单步执行失败的事务

  2. 使用etherscan插件验证etherscan上的智能合约

  3. 使用Mythx Remix插件保护您的智能合约

猜你喜欢

solidity编程风格

Solidity编程风格的几条建议。

2021-12-31

如何部署Solidity智能合约到Solana

什么是Solana,你如何将Solidity智能合约部署到Solana?

2021-12-28

基于solidity智能合约在tron网络中进行异步调用

目前以太坊的编程语言Solidity还是非常基础。Tron也使用Solidity,因此具有相同的限制。目前,Solidity将智能合约简化为仅存储数值并进行一些基本的数学运算。

2021-11-29

区块链研究实验室|Solidity编写的智能合约的异步交易模式

许多开发人员在开发Solidity之前实现了Java,Go,Python......感觉就像回到80年代后期的DeLorean一样。但是Solidity的稳定性非常有限。我正在

2021-11-29

区块链研究实验室|Solidity Linting和Formatting的使用教程

以太坊开发人员社区开始开发一些非常棒的工具,让我们更加接近自动化的工作流和开发人员的“cockpit”,例如我们现在使用的比较成熟的语言:javascript或go。其中有两个

2021-11-29