Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

NEO智能合约部署与调用

别丢弃我猿
2353 0 0
在使用WooLong之前,应该对程序稍微做一些修改,哪怕只是改一下字符串;这个我在测试的时候遇到一个坑,直接使用官方的demo,发布后根据ScriptHash查找发现作者版本都不是我填写的那样,后来才知道,ScriptHash是根据合约脚本的二进制码产生的。如果不修改,那么最终根据ScriptHash查找的可能不是你部署的合约。在使用WooLong之前,应该对程序稍微做一些修改,哪怕只是改一下字符串;这个我在测试的时候遇到一个坑,直接使用官方的demo,发布后根据ScriptHash查找发现作者版本都不是我填写的那样,后来才知道,ScriptHash是根据合约脚本的二进制码产生的。如果不修改,那么最终根据ScriptHash查找的可能不是你部署的合约。
6 _) G$ A5 S$ [! G
0 L6 j- M  ]6 q8 H+ t    创建项目并编译
/ b) n9 }0 D( ]' r3 y- p2 d7 u
; a/ s- d8 g) Z  ]% ^% ]/ m6 s. M    创建Neo项目,将WooLong的代码拷贝到demo中,并稍作修改。7 E/ B/ H8 o7 S& o
) C2 Y! N1 T% t% p5 z( r2 k
    打开neo-gui开发者版本
1 g0 Y, _% x0 s5 r1 t& N. x6 @7 |, c/ z) w& j
    对于开发者,官方建议使用coz提供的开发版neo-gui,clone代码下来,并通过visualstudio2017编译项目,然后按照官方文档同步testnet的区块,推荐使用离线同步包。参考文档。+ M/ k1 H. s( F: U
1 T; M: ?) k3 }
    来自文档的坑
/ ~& b- ?9 e1 P9 L: F4 X* n$ C
    来自文档的坑5 r3 t0 ^$ ^+ R' w0 r
6 e6 ?) g6 K' q1 Q* w9 w: v* q
    那么这里又有了一个坑,coz在github中提供的这个neo-gui-developer代码,在调用智能合约的时候,会无法添加参数,因此我们需要到neo官方的neo-gui,将项目下面UI目录下的以ParametersEditor开头的几个文件全部都拷贝进来。那么这里又有了一个坑,coz在github中提供的这个neo-gui-developer代码,在调用智能合约的时候,会无法添加参数,因此我们需要到neo官方的neo-gui,将项目下面UI目录下的以ParametersEditor开头的几个文件全部都拷贝进来。
+ _  w# o  y( z0 V; ?/ a% t- {9 s2 k. y0 y
    打开部署智能合约界面,部署合约8 N) O( m, n  t

  }% N! Z7 h2 m1 ~. Q    点击[部署]按钮部署合约% e5 D& g3 }# d/ O, D- y& [; z7 w' g
$ J+ {, a) i/ E
    拷贝ScriptHash: c+ g) \* E8 V& h" s
. ]: C/ V0 K7 R3 A6 x* x
    0x9499e029baba1221f903476b23a4d59866bb76e1
9 b8 z( f9 ?& n: h9 R/ U" y8 w; v9 Y" t, C: I8 c' U2 O
    试运行并调用3 O& _( `' @1 c/ ?
4 B: j( B& {) E0 O, b
    部署完成并拷贝ScriptHash后,会弹出调用合约界面,先点击试运行,如果没有报错,就可以点击调用,这是在neo-gui->交易记录中会产生一个新的交易记录,记录开始是未确认状态,稍后会返回已经确认的节点数目。
6 p  x6 D: Y, i) q" ~2 B$ h; K& V- i; I' N" |& o" G6 ^- X9 R9 ]/ ^5 C4 w
    这时,查看一下gas,你会发现发布合约消耗了一些gas。
1 `+ S7 A6 x5 B1 d
! X9 N. L; u$ I- x3 N; i    智能合约调用! y+ K6 s8 b1 D% f0 Y
7 r1 }! d0 I# A5 s9 Z( r6 _' Y; K
    打开高级->调用合约->函数调用,填写ScriptHash并查找,会查找到我们之前发布的合约。
% }/ [, [$ H$ R+ l
, I, n+ b3 y/ `+ E) s' R: i    填写调用合约需要的参数。  i. H+ E7 ]8 v: y2 V

7 g! L- g4 T! T) y    填写完成后,点击调用,查看交易记录,有一条新的未确认。5 n+ B3 y/ {/ A
  |0 \+ \& v+ ~% h" G3 M
    至此,合约的部署和发布算是完成了,其中还有很多细节未完善,只是重点说了自己在爬坑的过程中消耗时间最多的几个小细节,大的方向,各位还是先看官方文档,然后慢慢爬坑吧。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

别丢弃我猿 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1