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 Compiler
、Deployer
和Extensions
面板之间切换。
在底部,有一个输出面板,显示编译、部署和函数调用的输出。
中间是您将编辑代码的地方。目前它显示 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
函数将返回一个0
right now 值,这是 Solidity 中整数的默认值。
此外,我们将在“输出”面板中看到一些关于Storage.retrieve
我们的函数调用的日志。
现在,让我们尝试store
使用 number 调用该值5
。
同样,我们在输出面板中看到一些关于调用的日志Storage.store
。现在,如果我们再次尝试retrieve
,输出将是5
.
注意- 我们所做的这些函数调用/交易都没有打开您的数字钱包 (Metamask)。这是因为我们Javascript VM
目前正在测试,而那只是一个使用假账户的模拟器。部署到真实网络(测试网或主网)时,需要通过您的数字钱包确认和签署交易。
推荐
要了解有关 Remix 的更多信息,我们建议:
- 浏览 Remix IDE Docs 上的文档
- 使用 Remix 附带的默认智能合约来处理工作流程
练习题
🤔 IDE 代表什么?
A: 集成开发环境
B: 智能不和谐环境
C: 有意的开发人员体验
D: 恼怒的开发者愤怒
🤔 Remix 可以写什么?
A: Solidity 合约
B: 可靠性测试
C: Javascript 脚本
D: 上述所有的
🤔 以下哪一项不是 Remix 中的面板?
A: 文件管理器
B: 版本控制历史
C: Solidity 编译器
🤔 Remix 不支持以下哪个环境?
A: Javascript 虚拟机
B: Rinkeby 测试网
C: Solana 测试网
D: 以太坊主网
🤔 你可以用 Solidity 以外的语言在 Remix 上写代码吗?
A: 真的
B: 错误的
🤔 Remix 不支持以下哪些功能?
A: 与已部署的智能合约交互
B: 从 Github 存储库导入代码
C: 提供免费的测试网以太
🤔 Remix 允许您与未部署的合约进行交互
A: 真的
B: 错误的
参考答案:
- A
- D
- B
- C
- A
- C
- A