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集成開發環境還有不少功能值得研究,這個工做留給你本身了。咱們只對其餘 的選項頁作簡單介紹: