Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

NEO智能合约部署与调用

别丢弃我猿
2398 0 0
在使用WooLong之前,应该对程序稍微做一些修改,哪怕只是改一下字符串;这个我在测试的时候遇到一个坑,直接使用官方的demo,发布后根据ScriptHash查找发现作者版本都不是我填写的那样,后来才知道,ScriptHash是根据合约脚本的二进制码产生的。如果不修改,那么最终根据ScriptHash查找的可能不是你部署的合约。在使用WooLong之前,应该对程序稍微做一些修改,哪怕只是改一下字符串;这个我在测试的时候遇到一个坑,直接使用官方的demo,发布后根据ScriptHash查找发现作者版本都不是我填写的那样,后来才知道,ScriptHash是根据合约脚本的二进制码产生的。如果不修改,那么最终根据ScriptHash查找的可能不是你部署的合约。
& V2 G$ }' V; }( ~) N0 q7 q# y* x: y+ G# T2 Q0 T* G2 d% C* d
    创建项目并编译
3 J0 f6 }$ P1 O1 K( K( @/ i, e0 v/ r( @$ r3 J" m7 n
    创建Neo项目,将WooLong的代码拷贝到demo中,并稍作修改。
' b% t: R9 W" n- o, N. B0 _( L& M
) o9 _# v, t* h0 _* F$ o, p4 ~  D    打开neo-gui开发者版本/ @; G, w# R, k8 Z6 v
5 h6 D/ T+ A0 @# h3 K) V
    对于开发者,官方建议使用coz提供的开发版neo-gui,clone代码下来,并通过visualstudio2017编译项目,然后按照官方文档同步testnet的区块,推荐使用离线同步包。参考文档。* L+ |7 H( d/ e  U

' u3 [2 e# \' l/ i    来自文档的坑6 {: o5 Q8 h$ X% G

( ?8 f6 p; T0 A4 o0 V    来自文档的坑1 j1 C3 _% r* u8 V  b
2 h5 j, @( T! O$ I6 U, c9 o8 F
    那么这里又有了一个坑,coz在github中提供的这个neo-gui-developer代码,在调用智能合约的时候,会无法添加参数,因此我们需要到neo官方的neo-gui,将项目下面UI目录下的以ParametersEditor开头的几个文件全部都拷贝进来。那么这里又有了一个坑,coz在github中提供的这个neo-gui-developer代码,在调用智能合约的时候,会无法添加参数,因此我们需要到neo官方的neo-gui,将项目下面UI目录下的以ParametersEditor开头的几个文件全部都拷贝进来。, m$ P( Y8 v* k, s
. x/ b; I8 e, ^
    打开部署智能合约界面,部署合约
: o- Y- j8 ^7 k% ]' N) L2 w" I
2 x/ N* n  P6 N7 A2 o' ^. k! m6 Q1 L    点击[部署]按钮部署合约
/ z, b. ^2 _4 j8 `) s1 l9 C% H- g; F$ D4 K7 i' J
    拷贝ScriptHash# \. a! h2 r( [0 M2 w* R8 J) A; v+ e
" c/ m% F9 h! G- d6 w: f2 K( C
    0x9499e029baba1221f903476b23a4d59866bb76e1. B! b  t! S/ s$ x5 t% o
. `" ]: {% e& r1 N0 K
    试运行并调用. ^2 w+ R% T1 i% J
; T$ ]5 k, P0 g: _, J
    部署完成并拷贝ScriptHash后,会弹出调用合约界面,先点击试运行,如果没有报错,就可以点击调用,这是在neo-gui->交易记录中会产生一个新的交易记录,记录开始是未确认状态,稍后会返回已经确认的节点数目。4 p' s& Q0 t  e: r# R

4 }5 U7 Q& p, H. i+ t    这时,查看一下gas,你会发现发布合约消耗了一些gas。3 j7 n- z) `5 t6 f7 O+ F) ?) Z) n

6 \; g; V0 U; b+ W9 d: ?  ]5 r    智能合约调用$ d+ I( j# y* r( b

7 o  T! r/ g" q# X9 a9 _6 X2 Q) H    打开高级->调用合约->函数调用,填写ScriptHash并查找,会查找到我们之前发布的合约。
. R' x; z& q! T- D) Q2 l9 H# q- Y% g6 L0 P
    填写调用合约需要的参数。- K6 P( S+ w" X- V" u$ J5 X/ i
% S; x; |( s) [; W7 D. `7 T% D+ l
    填写完成后,点击调用,查看交易记录,有一条新的未确认。
1 v; K4 I  \5 K# _  Z0 s7 ~6 V
9 }5 O( D/ L; ^- s    至此,合约的部署和发布算是完成了,其中还有很多细节未完善,只是重点说了自己在爬坑的过程中消耗时间最多的几个小细节,大的方向,各位还是先看官方文档,然后慢慢爬坑吧。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

别丢弃我猿 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1