Remix是以太坊官方开源的Solidity在线集成开发环境,可使用Solidity语言在网页内完成以太坊智能合约的在线开发、在线编译、在线测试、在线部署、在线调试与在线交互,很是适合Solidity智能合约的学习与原型快速开发。web
Solidity IDE中文版Remix由汇智网提供,国内CDN加速,访问地址:http://remix.hubwiz.com。浏览器
若是要快速掌握以太坊智能合约与DApp开发,推荐汇智网的以太坊开发系列教程。网络
Solidity IDE Remix为左中右三栏布局,左面板为Remix文件管理器,中间为文件编辑器, 右侧为开发工具面板:编辑器
Remix左面板中的文件管理器,用来列出在浏览器本地存储中保存的文件,分为browser和config两个目录, 当你第一次访问Remix的时候,在browser目录下有两个预置的代码:ballot.sol合约以及对应的单元测试 文件ballot_test.sol,点击文件名就能够在中间的文件编辑器中查看并编辑代码:ide
Remix文件管理器顶部的工具栏提供建立新文件、上传本地文件、发布gist等快捷功能,你能够将鼠标移到 相应的图标处停顿,而后查看功能的浮动提示信息。工具
为了后续功能的学习,你能够点击左上角的+
建立一个新的solidity合约文件,在弹出的对话框中,将 文件命名为hello.sol:布局
点击[ok]按钮后,你就能够看到在左面板的文件管理其中browser目录下出现了hello.sol
文件名, 同时在中间区域的文件编辑器中自动打开了这个新建立的文件等待编辑,如今它仍是空的,咱们将在下面 编写简单的Solidity代码。单元测试
Solidity IDE Remix中间区域为上下布局,分别提供文件编辑功能和终端访问功能。学习
Solidity IDE Remix中间区域上方的文件编辑器支持同时打开多个文件,当前激活的文件,其文件名以粗体显示:区块链
Remix文件编辑器顶部左右两侧的箭头,分别用来切换左右面板的显示与隐藏;左上角的+
和-
, 分别用来放大或缩小编辑器里的文本字体大小。
如今咱们激活hello.sol
文件,而后输入简单的合约代码:
pragma solidity ^0.5.1; contract Hello{ function echo(string memory text) public pure returns(string memory) { return text; } }
基本上这是最简单的以太坊合约了,它只有一个echo()
方法,做用就是把输入的字符串 再原样返回。
Solidity IDE Remix中间区域下方为终端,能够输入JavaScript命令与Remix IDE或区块链节点交互:
Remix终端内置了web3.js 1.0.0、ether.js、swarmgy以及当前载入的Solidity编译器,所以你能够 在终端内使用熟悉的web3 API与当前链接的区块链节点交互。
Remix终端同时也内置了remix对象,能够利用它来脚本化地操做Solidity Remix IDE,例如载入指定 url的gist,或者执行当前显示的代码。将终端显示向上滚动到开始位置,就能够看到remix对象的 经常使用方法描述。
Remix终端的另外一个做用是显示合约执行或静态分析的运行结果。例如,当你部署一个合约后或执行 一个合约方法后,就会在终端看到它的执行信息:
点击信息行右侧的下拉图标,就能够查看该信息的详情;点击[debug]按钮,就会打开右侧面板中的 调试页对合约进行单步或断点调试。
Remix终端顶部的工具栏提供了切换终端显示状态、清理终端输出等功能,显示待定交易的量, 选择监听交易的范围,也能够搜索历史交易。
Solidity IDE Remix的右侧为功能面板,以选项页的方式提供编译、运行、静态分析、测试、 调试、设置和技术支持功能。
在编译选项页,你能够点击下拉框切换当前要使用的Solidity编译器版本:
而后点击[开始编译]按钮,就会编译Remix文件编辑器中当前选中的代码文件,好比咱们的 hello.sol文件。编译完成后,若是没有编译错误,就能够看到合约名字Hello出如今编译 选项页的合约下拉框中:
能够点击[swarm]按钮将编译好的合约上传到Swarm网络,或者点击[详情]按钮查看编译 结果详情,也能够点击[ABI]或[字节码]按钮,分别将合约的ABI与字节码拷贝到系统剪切板 以便在其余程序中使用。
在运行选项页,能够部署编译好的合约,也能够执行已部署合约的方法:
节点环境选项提供三种选择:JS虚拟机、注入Web3对象或使用web3提供器。
若是以前有编译好的合约,在运行选项页就能够看到这个合约的名字,例如咱们的Hello。 点击[部署]按钮就能够将这个合约部署到咱们选定的节点环境了:
如今能够看到,已部署的合约区域,已经出现咱们的合约了。点击这个合约实例, 能够看到咱们为Hello合约定义的echo方法自动显示出来了:
在方法名后面的输入框里输入方法参数,例如"helloooooooooooooo",而后点击方法名, 就能够执行合约的方法了:
你看到,返回值的确和咱们输入的参数是同样的,咱们实现了预约目标!
Solidity Remix集成开发环境还有不少功能值得研究,这个工做留给你本身了。咱们只对其余 的选项页作简单介绍: