NEO智能合約調試流程說明

Neo智能合約調試比較麻煩,咱們NEL在開發NNS的過程當中,發現現存的工具根本沒法支撐咱們開發如此複雜的智能合約。git

因此咱們搞了一整套本身的智能合約調試工具github

第一步、編譯智能合約

安裝neondebug

Git 抓取編譯:https://github.com/NewEconoLab/neondebugjson

你將獲得一個嶄新的neon.exe服務器

用他替換掉你原來用的那個neon.exe工具

怎麼替換呢,請參照以下步驟移除你原來neon.exe 的path,換上neondebug的ui

爲何要安裝neondebug

Neondebug 多導出了一個map.json文件,實現avm到源碼的映射。this

同時按照hash 將 avm abi cs map.json 整理到一塊兒spa

好比生成debug

就會直接用scripthash整理相關文件3d

檢查編譯結果

用neondebuggui 「 load avm from file 「 按鈕,加載剛生成的avm文件

能夠進行查看,查看之後,就能夠用NEONDEBUGGUI的調試交易工具調試使用此腳本的交易。

查看一次便可。文件會被copy到neondebuggui的目錄中

開源智能合約

使用upload this to server 按鈕,能夠將智能合約代碼上傳到服務器,則任何人能夠獲取到此合約信息

使用 load from server 按鈕,能夠根據scripthash查看服務器上的合約信息。

第二步、產生一個交易

安裝neo-gui-nel

Git抓取編譯:https://github.com/NewEconoLab/neo-gui-nel

你將獲得一個NEL定製版本的NEO-GUI

這個定製版本乍看沒有什麼東西,可是來發布一下剛纔的智能合約你就會發現一點不一樣

請注意neo-gui-nel 默認配置在testnet上面。

發佈合約

NEL定製版本NEO-GUI已經率先支持了發佈NEP4( dyncall)合約

第三步、調試

調用合約

調用合約NEOGUI定製版也能夠添加一個Array

試想這個智能合約Main(string,object[] args),其中args[0]  是 一個 string[]

這就須要array裏面嵌套array,如今的neogui 是沒有辦法調用這樣的合約的

調試試運行合約

當你點擊試運行之後就已經能夠調試了

按照Neo-gui-nel默認的配置,你點擊試運行以後,就會在這個目錄獲得一個0x00文件

使用它就能夠完成NEO智能合約調試了。

使用NEONDEBUGGUI的Debug Transaction 選項卡

LoadFromFile button,打開這個0x00文件

你就獲得了一個擁有智能合約詳細執行的每一步的工具。

而且能夠對應到源碼,能夠觀察執行棧細節,能夠觀察每個數據的細節的工具。

讓你能夠徹底瞭解到此次test是怎麼運行的

調試交易

發送一筆交易,等一下子,等這筆交易被確認

你就能夠在fulllog目錄找到這筆交易對應的文件

打開它,就可以調試這筆交易在鏈上的實際運行細節。

第四步、更多更方便

1. 只要有人upload過一次的智能合約,全部人隨時都能調試時看到源碼

2. 咱們有一個爬蟲,隨時將testnet的合約的log文件上傳到服務器

即便你沒有安裝NEO-GUI-NEL,你使用loadformserver按鈕也能夠調試,只要你知道交易id就行。

3. 將來咱們將開發純網頁版的調試工具

4. 將來咱們也將同步主網的數據也上傳服務器

進技術羣交流:795681763

相關文章
相關標籤/搜索