Neo智能合約調試比較麻煩,咱們NEL在開發NNS的過程當中,發現現存的工具根本沒法支撐咱們開發如此複雜的智能合約。git
因此咱們搞了一整套本身的智能合約調試工具github
安裝neondebugjson
Git 抓取編譯:https://github.com/NewEconoLa...服務器
你將獲得一個嶄新的neon.exe工具
用他替換掉你原來用的那個neon.exeui
怎麼替換呢,請參照以下步驟移除你原來neon.exe 的path,換上neondebug的this
爲何要安裝neondebugspa
Neondebug 多導出了一個map.json文件,實現avm到源碼的映射。debug
同時按照hash 將 avm abi cs map.json 整理到一塊兒調試
好比生成
就會直接用scripthash整理相關文件
檢查編譯結果
用neondebuggui 「 load avm from file 「 按鈕,加載剛生成的avm文件
能夠進行查看,查看之後,就能夠用NEONDEBUGGUI的調試交易工具調試使用此腳本的交易。
查看一次便可。文件會被copy到neondebuggui的目錄中
開源智能合約
使用upload this to server 按鈕,能夠將智能合約代碼上傳到服務器,則任何人能夠獲取到此合約信息
使用 load from server 按鈕,能夠根據scripthash查看服務器上的合約信息。
安裝neo-gui-nel
Git抓取編譯:https://github.com/NewEconoLa...
你將獲得一個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目錄找到這筆交易對應的文件
打開它,就可以調試這筆交易在鏈上的實際運行細節。
即便你沒有安裝NEO-GUI-NEL,你使用loadformserver按鈕也能夠調試,只要你知道交易id就行。