Remix IDE 基本使用
智能合约的默认编辑器是 Remix,它默认是运行在浏览器中的。
我们打开 remix.ethereum.org 就可以看到 Remix 编辑器了。需要注意这个域名是 Remix 的唯一域名。
它的功能比较简单,和 VSCode 有些像,我简单介绍一下它的主要功能。
左侧四个菜单栏是它的主要功能。
- 第一个是文件夹。
- 第二个是搜索栏。
- 第三个是编译。
- 第四个是部署。
文件夹
我们通常不会直接在这里进行开发,而是在 VSCode 中进行开发,然后将本地的代码连接到浏览器的 Remix 中。但是可以在这里写一些测试或者 Demo。
搜索栏
搜索栏和 VSCode 的搜索栏基本上没有什么区别,通常就是全局搜索一些关键字,或者全局替换之类的。
编译
编译是比较重要的一部分,这里我要多讲一下。
- compiler:首先是选择 solidity 的版本,编译版本要和代码版本相对应。
solidity 的版本是可以有区间的,不过建议锁定一个版本,因为如果要在区块链浏览器中公开智能合约代码的话,必须填写编译和部署的参数。如果设置成区间,很容易忘记编译时所选择的版本,导致无法公开智能合约代码。
- include nightly builds:是夜间编译,通常是指每晚编译,也就是指每天晚上程序员下班后进行的编译,这时进行编译的代码是没有完成的。我们不需要勾选。
- auto compile:自动编译,当文件的内容发生变化时会自动编译,如果项目比较小,可以打开,但是如果项目比较大,那么不建议打开。因为会让浏览器卡顿。而且我们可以按 ctrl+s 的快捷键来编译,不需要这个功能。
- hide warnings:隐藏警告。这个选项建议始终打开,显示警告可以帮助我们避免很多问题。
Advanced Configurations 是编译的高级选项。
- language:是编程语言,默认 solidity,不需要修改。
- EVM Version:这个是 EVM 的版本,暂时也不需要修改。
- Enable Optimization:这个选项是代码优化。代码编译是有上限的,如果项目提及非常大,超过了这个限制,就无法编译成功。开启代码优化后,可以减小代码的体积,让智能合约容易通过。并且还可以减少合约部署的 gas 费和外部调用的 gas 费,所以我们最好打开这个选项。代码优化的级别是数字,选择默认 200 就可以了。
- Use configuration file:我们也可以自己编写编译配置文件。等后面再说这个,现在不开启。
选择完配置参数,就可以点击 Compile 按钮进行编译了。
编译完成后编译图标会出现一个绿色的对勾,表示编译成功。
同时还会输出 ABI 和 Bytecode,这两个东西我会在后面的文章中讲到。
部署
部署也非常重要,我也对这部分进行详细的介绍。
- Eevironment:虚拟机环境。虚拟机有很多,默认的是 Remix VM,也就是浏览器虚拟机,在之前的版本中也叫做 JavaScript VM。当浏览器刷新时,旧链会被清除。我们做一些简单的测试可以使用它。如果合约中有一些买币卖币的逻辑需要测试,那么就需要选择 Injected Provider-Metamask。这样就可以连接到 Metamask 钱包,在真实网络的测试链中进行测试。
- Account 是一些和当前环境关联的账户列表,里面会包含一些 Ether,可以用来测试。
- Gas limit:智能合约可以从用户手中最大的 gas 费用限制,默认是 3000000,目的是为了防止智能合约程序出错,收取过高的 gas 费用。通常不建议修改。
- Value:发送到合约或调用函数所需要支付的 ETH、WEI、GWEI 等,默认是 0,不需要修改。
- Contract:就是我们需要选择的合约。如果有多个合约,就去选择要部署的那个合约。
- Publish to IPFS:发布到星际网络,不需要开启。
配置好之后就可以点击 Deploy 进行部署了。
部署成功后 Deployed Contracts 这部分会有部署好的智能合约地址。
它会有一些蓝色的按钮和黄色的按钮。蓝色按钮表示获取链上数据,黄色按钮表示修改链上数据。修改链上数据需要支付 gas 费。
使用 VSCode 编写 Solidity 代码
Solidity 的官方默认编辑器是 Remix,但它是运行在浏览器中的,浏览器并不是非常稳定,比如莫名其妙的崩溃导致代码丢失。
虽然 Remix 也有桌面版本,在这里下载:github.com/ethereum/re…,但是使用的人并不多,可能是因为 Remix 并不是专业做代码编辑器的,编码体验和生态系统都不够完善。
如果能够使用传统的、具有更加成熟生态的编辑器,那么在开发体验和开发效率上都会有更好的体验。
下面这部分内容将会介绍如何使用本地的 VSCode 编辑器进行 Solidity 智能合约的开发。
插件安装
在 VSCode 中编写 Solidity 代码,并且导入到 Remix,需要安装 Solidity 和 Ethereum Remix 这两个插件。
Solidity
solidity 是一门编程语言,那么一样需要代码高亮、代码提示这些功能。
这个插件提供了一门编程语言所需要的基本功能,以及编译合约等功能。
F5 编译当前合约,Cmd+F5 编译所有合约。
安装地址:marketplace.visualstudio.com/items?itemN…
安装完成后,可以编写一个 sol 文件,代码高亮就代表着安装成功。
Ethereum Remix
我们在本地写完智能合约后,需要将本地的项目导入到 Remix 中进行部署。
这在大型项目中比较有用,因为大型项目的目录结构会比较复杂,比如会包含很多文件夹和一些库。
安装地址:marketplace.visualstudio.com/items?itemN…
安装完成后,左侧会有一个 Remix 的图标。
点进去,可以看到以下内容。
选择最下面的 Start remixd client,就可以连接到浏览器的 Remix。
回到浏览器的 Remix,在 Workspaces 中选择 connect to localhost。
选择之后会弹出一个弹窗,警告我们 remix 的版本必须是最新版本。
我们点击 connect,就连接成功了。
连接成功后,Strat remixd client 前面的图标也会变成绿色。