Neo智能合约调试比较麻烦,咱们NEL在开发NNS的过程当中,发现现存的工具根本没法支撑咱们开发如此复杂的智能合约。git
因此咱们搞了一整套本身的智能合约调试工具github
Git 抓取编译:https://github.com/NewEconoLab/neondebugjson
你将获得一个崭新的neon.exe服务器
用他替换掉你原来用的那个neon.exe工具
怎么替换呢,请参照以下步骤移除你原来neon.exe 的path,换上neondebug的ui
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查看服务器上的合约信息。
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