solidity線上編輯器Remix中文版
Remix是以太坊官方開源的Solidity線上整合開發環境,可以使用Solidity語言在網頁內完成以太坊智慧合約的線上開發、線上編譯、線上測試、線上部署、線上除錯與線上互動,非常適合Solidity智慧合約的學習與原型快速開發。
Solidity IDE中文版Remix由匯智網提供,國內CDN加速,訪問地址:http://remix.hubwiz.com。
如果要快速掌握以太坊智慧合約與DApp開發,推薦匯智網的以太坊開發系列教程。
Solidity IDE Remix為左中右三欄佈局,左面板為Remix檔案管理器,中間為檔案編輯器, 右側為開發工具面板:
1、Solidity IDE Remix檔案管理器
Remix左面板中的檔案管理器,用來列出在瀏覽器本地儲存中儲存的檔案,分為browser和config兩個目錄, 當你第一次訪問Remix的時候,在browser目錄下有兩個預置的程式碼:ballot.sol合約以及對應的單元測試 檔案ballot_test.sol,點選檔名就可以在中間的檔案編輯器中檢視並編輯程式碼:
Remix檔案管理器頂部的工具欄提供建立新檔案、上傳本地檔案、釋出gist等快捷功能,你可以將滑鼠移到 相應的圖示處停頓,然後檢視功能的浮動提示資訊。
為了後續功能的學習,你可以點選左上角的+
建立一個新的solidity合約檔案,在彈出的對話方塊中,將
檔案命名為hello.sol:
點選[ok]按鈕後,你就可以看到在左面板的檔案管理其中browser目錄下出現了hello.sol
檔名,
同時在中間區域的檔案編輯器中自動打開了這個新建立的檔案等待編輯,現在它還是空的,我們將在下面
編寫簡單的Solidity程式碼。
2、Solidity IDE Remix編輯器及終端
Solidity IDE Remix中間區域為上下佈局,分別提供檔案編輯功能和終端訪問功能。
2.1 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()
方法,作用就是把輸入的字串
再原樣返回。
2.2 Remix終端
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終端頂部的工具欄提供了切換終端顯示狀態、清理終端輸出等功能,顯示待定交易的量, 選擇監聽交易的範圍,也可以搜尋歷史交易。
3、Solidity IDE Remix功能面板
Solidity IDE Remix的右側為功能面板,以選項頁的方式提供編譯、執行、靜態分析、測試、 除錯、設定和技術支援功能。
3.1 編譯選項頁
在編譯選項頁,你可以點選下拉框切換當前要使用的Solidity編譯器版本:
然後點選[開始編譯]按鈕,就會編譯Remix檔案編輯器中當前選中的程式碼檔案,比如我們的 hello.sol檔案。編譯完成後,如果沒有編譯錯誤,就可以看到合約名字Hello出現在編譯 選項頁的合約下拉框中:
可以點選[swarm]按鈕將編譯好的合約上傳到Swarm網路,或者點選[詳情]按鈕檢視編譯 結果詳情,也可以點選[ABI]或[位元組碼]按鈕,分別將合約的ABI與位元組碼拷貝到系統剪下板 以便在其他程式中使用。
3.2 執行選項頁
在執行選項頁,可以部署編譯好的合約,也可以執行已部署合約的方法:
節點環境選項提供三種選擇:JS虛擬機器、注入Web3物件或使用web3提供器。
- JS虛擬機器是一個JS版本的以太坊虛擬機器實現,它執行在你的瀏覽器內,因此你不需要考慮 節點配置或者擔心損失以太幣,最適合學習和快速原型驗證。
- 如果你的瀏覽器安裝了Metamask外掛,或者使用Mist之類的以太坊相容瀏覽器,那麼也 可以選擇第二個環境:使用注入的Web3物件。
- 如果你有自己的節點,那麼可以選擇第三個選項使用web3提供器來讓Remix連線 到你的節點上,不過如果要連線的節點是接入以太坊主網的,要注意每一次交易都是 有成本的!
如果之前有編譯好的合約,在執行選項頁就可以看到這個合約的名字,例如我們的Hello。 點選[部署]按鈕就可以將這個合約部署到我們選定的節點環境了:
現在可以看到,已部署的合約區域,已經出現我們的合約了。點選這個合約例項, 可以看到我們為Hello合約定義的echo方法自動顯示出來了:
在方法名後面的輸入框裡輸入方法引數,例如"helloooooooooooooo",然後點選方法名, 就可以執行合約的方法了:
你看到,返回值的確和我們輸入的引數是一樣的,我們實現了預定目標!
3.3 其他選項頁
Solidity Remix整合開發環境還有很多功能值得研究,這個工作留給你自己了。我們只對其他 的選項頁做簡單介紹:
- 分析選項頁提供對Solidity合約程式碼的靜態分析選項。
- 測試選項頁提供單元測試能力,你可以生成一個測試檔案,或者執行一組測試。
- 偵錯程式選項頁可以單步跟蹤合約的執行、檢視合約狀態或區域性變數等。
- 設定選項提供Solidity Remix IDE本身的一些引數調整能力,例如設定編輯器文字自動折行、 啟用外掛、設定gist訪問令牌,或者切換Remix IDE的面板主題 —— 目前只有三個:淺色、深色和淨色。