Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

NEO智能合约部署与调用

别丢弃我猿
2335 0 0
在使用WooLong之前,应该对程序稍微做一些修改,哪怕只是改一下字符串;这个我在测试的时候遇到一个坑,直接使用官方的demo,发布后根据ScriptHash查找发现作者版本都不是我填写的那样,后来才知道,ScriptHash是根据合约脚本的二进制码产生的。如果不修改,那么最终根据ScriptHash查找的可能不是你部署的合约。在使用WooLong之前,应该对程序稍微做一些修改,哪怕只是改一下字符串;这个我在测试的时候遇到一个坑,直接使用官方的demo,发布后根据ScriptHash查找发现作者版本都不是我填写的那样,后来才知道,ScriptHash是根据合约脚本的二进制码产生的。如果不修改,那么最终根据ScriptHash查找的可能不是你部署的合约。
+ B6 w: z1 r; p5 X4 b% T
# e1 [0 M( d) j/ O. J5 z4 H  G    创建项目并编译  R' @  S0 A! q: F6 u

4 c, ]7 m3 ?) l  Z0 f" u    创建Neo项目,将WooLong的代码拷贝到demo中,并稍作修改。
/ ~# D& ~) S6 X1 d. m
0 Q% A# K7 A) E; b  ~    打开neo-gui开发者版本/ g- Q! s& k  q8 o0 o: `
. `) {# r% U& k1 s% N
    对于开发者,官方建议使用coz提供的开发版neo-gui,clone代码下来,并通过visualstudio2017编译项目,然后按照官方文档同步testnet的区块,推荐使用离线同步包。参考文档。
2 v3 u7 y4 q) u, [
+ Q2 K7 C6 ?8 Q) q7 p    来自文档的坑
6 ~5 |. |* N- U- _8 G& Z
- d" x4 \- ], T0 m* m! X& |( [- x    来自文档的坑1 w" o, G: r# }( C, n

7 V+ e9 Q0 j- q9 o    那么这里又有了一个坑,coz在github中提供的这个neo-gui-developer代码,在调用智能合约的时候,会无法添加参数,因此我们需要到neo官方的neo-gui,将项目下面UI目录下的以ParametersEditor开头的几个文件全部都拷贝进来。那么这里又有了一个坑,coz在github中提供的这个neo-gui-developer代码,在调用智能合约的时候,会无法添加参数,因此我们需要到neo官方的neo-gui,将项目下面UI目录下的以ParametersEditor开头的几个文件全部都拷贝进来。8 U/ G. W* I- H' |8 p8 t

9 ]' E: d4 r, F. M' [  L2 Z+ s7 G( s    打开部署智能合约界面,部署合约
+ z7 V7 y% I% z+ ~3 T, k, M7 o$ T) L) N; x% ~9 @
    点击[部署]按钮部署合约1 v; f- U  ~# F: V9 L: }, ?
; \8 a; G7 A% u: r6 X0 C5 ~
    拷贝ScriptHash
$ V8 f0 V# G+ Q4 ?8 q1 y0 R
' x( J, m/ k% j2 E) c    0x9499e029baba1221f903476b23a4d59866bb76e1- v4 X- @. R. H
/ Q4 T( \& O) K- S) q1 }  F4 C
    试运行并调用
, Y* ~, D. f) g  r( ~% Z" G2 G/ M6 x3 P' p0 c6 s$ g/ Q: B  J3 n
    部署完成并拷贝ScriptHash后,会弹出调用合约界面,先点击试运行,如果没有报错,就可以点击调用,这是在neo-gui->交易记录中会产生一个新的交易记录,记录开始是未确认状态,稍后会返回已经确认的节点数目。. f6 r( I; x; B' v

+ r1 I. B, Q* J9 x  D    这时,查看一下gas,你会发现发布合约消耗了一些gas。
7 v6 f: I8 l1 H( D' B" _1 {  S: T. L3 p7 w0 }6 w+ ~, K
    智能合约调用) z" p0 k( i8 Y) n5 X1 C" V: x

8 r+ a5 E- L! b5 C4 ^+ s1 Q: T    打开高级->调用合约->函数调用,填写ScriptHash并查找,会查找到我们之前发布的合约。
" N; @! n9 b, F4 X/ R8 R4 K$ l! j7 c; Q! R( k
    填写调用合约需要的参数。
; Y" _8 p) v0 P* g; _! f/ v& V$ @$ a- i0 P9 v- {
    填写完成后,点击调用,查看交易记录,有一条新的未确认。( n3 _2 S4 ^  y( i# @

% q5 @6 f2 j2 _2 C2 H& u/ Y' h    至此,合约的部署和发布算是完成了,其中还有很多细节未完善,只是重点说了自己在爬坑的过程中消耗时间最多的几个小细节,大的方向,各位还是先看官方文档,然后慢慢爬坑吧。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

别丢弃我猿 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1