NeoRay 2.0的使用體驗

前言

    NeoRay是NEL社區推出的一個方便NEO開發者開發合約的工具。自這個工具推出以來,受到不少開發者的好評,極大的便捷了廣大的NEO合約開發者。我也一直使用這個工具進行NEO合約的開發和調試。html

    最近NEL推出了新版的NeoRay,增長了python語言的合約開發,人性化了一些操做流程。做爲一名NEO合約開發愛好者,火燒眉毛的嚐了個鮮。體驗下來仍是不錯的,頁面看起來更加簡單明瞭,合約調用部分也更加人性化。python

    因爲新版較舊版來講,改動仍是很大的,頁面和流程都大不相同。做爲一個嚐鮮者仍是頗有必要記錄一下嚐鮮過程和心得的,方便後來者體驗。git

正文

0x01 登陸

        NeoRay2.0再也不直接使用私鑰或者nep6錢包登陸來進行合約的部署與調用,改而使用了NEL社區以前推出的產品TEEMO插件錢包。在使用NeoRay2.0以前須要安裝好插件錢包。否則會出現如下提示:github

        這裏附上Teemo插件錢包的介紹:傳送門數組

0x02 頁面功能介紹

        新版的NeoRay的總體頁面以下,左邊有五個功能按鍵:文件瀏覽、合約部署、合約調用、合約調試、支持。同時提供了切回舊版NeoRay的功能。網絡

0x03 編寫或載入合約文件

        在文件瀏覽功能模塊內,一共有三種方式導入一個合約文件。第一種是添加本地文件,第二種是建立新的文件直接在線編寫,剩下的一種是經過合約hash載入別的開發者部署的合約。能夠根據本身的須要合理選擇。這裏咱們就使用第一種方式來作演示。以下圖我導入了一個本地的test合約:工具

0x04  部署合約

        當合約編寫或導入完成以後呢,咱們就須要編譯發佈合約。點擊左側合約部署按鈕進入到部署頁面,首先點擊編譯按鈕,若是合約書寫正確下方的輸出框就會顯示合約的hash。若是合約有錯誤,就會提示編譯失敗。目前對於失敗的緣由提示的不夠詳細,但願後續的更新中能完善失敗緣由。spa

        設置部署合約時的一些參數。「動態調用」是指該合約中是否存在調用可變合約的狀況,例如調用B合約可是B合約在合約發佈時不可以明確其hash值,那麼就須要動態調用的功能。「建立存儲區」是指合約使用了存儲功能。「可接受付款」是指合約是否能夠接受別的地址給其轉資產。.net

        須要注意的是不一樣的參數選擇會帶來不一樣的收費,目前來說「動態調用」會增長500gas的費用,「建立存儲區」會增長400gas的費用。插件

        點擊部署合約按鍵後Teemo錢包會彈出彈窗要求籤名,點擊贊成便可。

0x05 合約調用

        經過Teemo錢包等待部署合約的交易被確認

        交易被確認後,點擊NeoRay2.0左側的合約調用按鈕,來到合約調試模塊。接下來我就介紹一下這個模塊下一些參數的意義和使用方法。

        系統費:neo公鏈上調用合約是根據調用的指令收費的,雖然有10gas的免費額度,可是一些複雜操做仍是可能會超出10gas的額度的。因此若是你調用的合約過於複雜致使費用超過了10gas,這裏就須要填寫你超出的數額。手續費價目表

        網絡費:最新的收費規則要求超出1024字節的交易要額外手續必定的手續費。Teemo會自動幫加上網絡費。因此這個地方直接默認0就能夠了。

        交易附帶Gas:若是你須要向調用的合約轉帳一筆gas,那麼就在這個地方填入具體的數額。

        增長參數:通常合約的參數都是(string,object[])這樣的類型。因此第一個增長的參數選擇string類型,第二個選擇數組類型。若是你的合約不同凡響,那就對應你合約的參數類型選擇合適的類型。

舉幾個簡單的例子

                        1.   若是你的合約是  Main(int a) ,那麼參數一就是 Integer ,不須要參數二。
                        2.   若是你的合約是  Main(int a , int b) ,那麼參數一就是 Integer ,參數二也是Integer。

            ps : Address 類型填寫的就是「AWKqEmC1HsC4uBDvaoh5JLtQ2rigMdRSwX 「,NeoRay會內部轉成byte[]。若是對應參數的選擇還有不理解的能夠看一下論壇中對應的帖子。傳送門

        調用合約與試運行:調用合約意味着發送交易上鍊,會改變鏈上的數據。試運行意味着模擬執行合約,並不會形成鏈上數據的更改。

        接下來根據咱們以前部署的合約,試運行三個例子演示一下:

第一個例子以下,參數一填寫「Hello」,獲得的返回是「ByteArray」類型,轉換以後就是「World」。經常使用轉換工具:傳送門

        

第二個例子以下,參數一填寫「return」,參數二中數組的首位填寫數字2:

第三個例子以下,參數一填寫「add」:

        接下來咱們使用第三個例子的參數進行調用交易的發送,Teemo錢包會彈出彈框要求籤名,交易發出後等待一會等交易被確認。

0x06 合約調試

        一個調用合約的交易被確認後,能夠點擊合約調試按鈕進行合約的調試。這個功能主要是當合約的執行結果與預期不符時,觀察合約的執行流程來尋找合約的問題。

        須要注意的是,必定要選擇正確你要調試的合約。由於交易列表裏只會顯示當前錢包地址調用此合約的交易。

        若是一個交易被鏈上確認了可是在這個頁面尚未顯示對應的交易,請耐心等待幾秒或者切換一下功能模塊,儘可能不要刷新頁面。 

        選擇一個交易以後即可以調試,下圖是這個調用所執行的指令過程,經過鍵盤的上下按鈕能夠觀察合約的執行過程。經過notify能夠獲得這個交易的返回值,以及合約拋出的通知。必要的時候能夠經過拋出通知的方式來調試合約,相似調試時打log的方法。右下角的CalcStack&AltStack中能夠觀察計算棧和臨時棧中保存的數據。

  

        經過左邊執行的指令以及右邊的合約代碼,能夠觀測合約執行到了哪一行代碼報錯。或者執行錯了哪一些流程。方便開發者調試。

0x07 支持

        支持功能模塊中有一些NEL社區的導航,以及索取gas的功能。

 

後言

        NeoRay新版帶來的驚喜仍是很大的。因爲我不會py,因此也沒有體驗py的流程。但就C#編寫的合約進行的流程來說,仍是很是完美的。調試調用都很是的便捷。同時給我帶來驚喜的還有插件錢包Teemo,有點MetaMask的感受。有能力成爲NEO上普遍使用的插件錢包。

        最後但願NEL社區越作越好,推出更多方便咱們開發者的工具。

相關文章
相關標籤/搜索