智能合約 | 如何調試Solidity

對於一個新手來講,ta的Aha時刻來自於ta終於能夠運行本身的第一行代碼,我還記得我當年寫的能夠運行的「爛代碼」的興奮時刻。而當我利用本身的編程技能找到工做時,其中的一個Aha時刻來自於我學會了如何調試程序。調試程序佔用工做的時間有時候會達到50%,面對着一堆代碼邏輯就是不知道問題在哪裏。而當我掌握瞭如何利用斷點查看當前的變量和狀態後,個人工做效率提高了一倍,bug變少了,幸福感提高了。vue

調試Solidity有一個很好的工具:Remix,經過這個連接能夠進入到Remix的網站:http://remix.ethereum.org 。git

代碼編輯


以後咱們能夠把Solidity代碼放到編輯器中,上圖中能夠看到最左側的行數旁邊有警告/錯誤提示,把鼠標放到上面會有具體的信息提示,根據提示修改代碼就能夠消除錯誤信息了。修改後的示例代碼能夠在這裏獲取:https://gist.github.com/luckyyang/8edc58ad647f35424823448ea4404f8d 。
github

合約編譯

以後咱們能夠選擇對應的編譯器版本,示例代碼中的版本是0.4.25,而後就能夠編譯了,看到綠色的提示代表編譯成功。編譯的主要工做是生成ABIbytecode,本文不作闡述。編程


合約部署
瀏覽器

編譯成功後,就能夠切換到Run標籤進行合約的部署了,這裏咱們能夠選擇EnvironmentJavaScript VM,直接在瀏覽器中運行一個虛擬的區塊鏈網絡,這樣就不用咱們使用Mistganache-cli這類的工具再去運行區塊鏈網絡了。微信


如上圖所示,選擇JavaScript VM後,會自動幫咱們生成5個Account,每一個Account中有100個Ether,足夠咱們開發使用了。
網絡


如上圖所示,點擊Deploy按鈕後就能夠部署合約了,部署成功後會自動顯示合約的信息。點擊合約會顯示全部的變量和方法。
app

合約交互


如上圖所示,紅色表示此類方法會修改合約的狀態,也代表了須要消耗gas;青色表示此類方法的做用是獲取信息,不會修改合約的狀態。點擊具體的方法名字就能夠和合約進行交互了。
編輯器

合約調試


如上圖所示,同時與合約交互的transaction也會顯示到代碼區下面的區域。點擊Debug按鈕會跳轉到Debugger界面(下圖),不但能夠進行單步調試,還能夠看到合約中更具體的信息,如變量和合約狀態等。
工具



總結

利用Remix能夠很方便的對Solidity進行編輯,部署和調試,各位Solidity開發者趕快用起來吧。


本文分享自微信公衆號 - Rebase社區(rebase_network)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索