WEB3系列教程之新手篇--level5:Remix IDE

原文地址: https://www.learnweb3.io/tracks/freshman/remix-ide

翻译: JulySong

Remix 是用于以太坊开发的开源、Web 和桌面集成开发环境 (IDE)。它是开始在以太坊上构建的最简单的开发工具,并且拥有大量插件来扩展其体验。

Remix 可帮助您直接在浏览器中编写 Solidity 代码,并提供用于测试、调试和将智能合约部署到区块链的工具。

你可以在https://remix.ethereum.org/访问 Remix

导航 Remix

当您第一次打开 Remix 时,您会看到这样的屏幕。


File Explorer在左侧边栏中,您可以在、Solidity CompilerDeployerExtensions面板之间切换。

在底部,有一个输出面板,显示编译、部署和函数调用的输出。

中间是您将编辑代码的地方。目前它显示 IDE 的主屏幕,但是一旦我们打开一个文件,它将成为代码编辑器。

Remix 工作流程

在侧边栏中,如果您查看contracts文件夹下方 - Remix 附带 3 个基本智能合约,以帮助人们学习 Solidity。让我们来看看1_Storage.sol


我们现在可以看到代码编辑器了。

在文件资源管理器中,我们还可以看到创建新文件或目录、上传本地文件或从 Github 导入文件的选项。

为了编译我们的合约,我们切换到 Solidity Compiler 选项卡,我们将在侧边栏中看到类似的内容。

在这里,我们可以选择Compiler Version我们想要的、我们使用的智能合约编程语言(大多数情况下你只会使用 Solidity),以及一些进一步的配置选项。

注意:Remix 中列出的另一种编程语言 Yul 是低级语言。它用于中间编译,比 Solidity 更接近硬件。99% 的时间你不会在 Yul 中编码。
在此处阅读有关 Yul 的更多信息 - https://docs.soliditylang.org/en/v0.8.9/yul.html

单击 Compile 1_Storage.sol 将编译合约并使其准备好部署。

转到Deployment选项卡,我们将在侧边栏中看到类似的内容。


这里首先要注意的是Environment. Remix 附带一个Javascript VM- 这是浏览器中以太坊虚拟机 (EVM) 的模拟器。只要您的合约不依赖于部署到真实以太坊网络的另一个合约,这便可以快速测试和调试您的智能合约。谢天谢地,我们的存储合约没有,所以我们可以在 Javascript VM 中测试它。

要部署到实际网络,我们将希望将我们更改Environment为那里列出的其他选项之一(稍后会详细介绍)。

除了Javascript VM,Remix 还创建了一组虚假账户,所有账户都装有 100 ETH,以供测试。

从下拉列表中选择1_Storage.sol合约,然后单击Deploy以部署合约。

部署合约后,您将在该Deployed Contracts部分下看到它 - 您现在可以在其中调用智能合约上的函数。

调用该retrieve函数将返回一个0right now 值,这是 Solidity 中整数的默认值。

此外,我们将在“输出”面板中看到一些关于Storage.retrieve我们的函数调用的日志。

现在,让我们尝试store使用 number 调用该值5

同样,我们在输出面板中看到一些关于调用的日志Storage.store。现在,如果我们再次尝试retrieve,输出将是5.

注意- 我们所做的这些函数调用/交易都没有打开您的数字钱包 (Metamask)。这是因为我们Javascript VM目前正在测试,而那只是一个使用假账户的模拟器。部署到真实网络(测试网或主网)时,需要通过您的数字钱包确认和签署交易。

推荐

要了解有关 Remix 的更多信息,我们建议:


练习题

  1. 🤔 IDE 代表什么?

    A: 集成开发环境

    B: 智能不和谐环境

    C: 有意的开发人员体验

    D: 恼怒的开发者愤怒

  2. 🤔 Remix 可以写什么?

    A: Solidity 合约

    B: 可靠性测试

    C: Javascript 脚本

    D: 上述所有的

  3. 🤔 以下哪一项不是 Remix 中的面板?

    A: 文件管理器

    B: 版本控制历史

    C: Solidity 编译器

  4. 🤔 Remix 不支持以下哪个环境?

    A: Javascript 虚拟机

    B: Rinkeby 测试网

    C: Solana 测试网

    D: 以太坊主网

  5. 🤔 你可以用 Solidity 以外的语言在 Remix 上写代码吗?

    A: 真的

    B: 错误的

  6. 🤔 Remix 不支持以下哪些功能?

    A: 与已部署的智能合约交互

    B: 从 Github 存储库导入代码

    C: 提供免费的测试网以太

  7. 🤔 Remix 允许您与未部署的合约进行交互

    A: 真的

    B: 错误的

参考答案:

  1. A
  2. D
  3. B
  4. C
  5. A
  6. C
  7. A