Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

NEO智能合约部署与调用

别丢弃我猿
2352 0 0
在使用WooLong之前,应该对程序稍微做一些修改,哪怕只是改一下字符串;这个我在测试的时候遇到一个坑,直接使用官方的demo,发布后根据ScriptHash查找发现作者版本都不是我填写的那样,后来才知道,ScriptHash是根据合约脚本的二进制码产生的。如果不修改,那么最终根据ScriptHash查找的可能不是你部署的合约。在使用WooLong之前,应该对程序稍微做一些修改,哪怕只是改一下字符串;这个我在测试的时候遇到一个坑,直接使用官方的demo,发布后根据ScriptHash查找发现作者版本都不是我填写的那样,后来才知道,ScriptHash是根据合约脚本的二进制码产生的。如果不修改,那么最终根据ScriptHash查找的可能不是你部署的合约。
  T3 S& M* c1 O# M) R" v+ T  w/ U' I4 N0 @$ k" C8 ?
    创建项目并编译' K9 p7 W/ z: c, M/ R

+ a' ]  E0 Q  |1 [4 o    创建Neo项目,将WooLong的代码拷贝到demo中,并稍作修改。8 n2 `. I% j% g5 [( g) M

/ c7 S6 C# n+ Z    打开neo-gui开发者版本3 j. Q9 b( z9 C" @

  \0 l0 V* ^* K    对于开发者,官方建议使用coz提供的开发版neo-gui,clone代码下来,并通过visualstudio2017编译项目,然后按照官方文档同步testnet的区块,推荐使用离线同步包。参考文档。
0 U* w+ Y3 L+ u% b, R
4 b/ F5 y! S8 y4 A5 D' @) y, x    来自文档的坑- T) i' _2 E! F6 d

) r/ n. |, n  Z' `    来自文档的坑( Y2 n/ ^: c0 `& u) ^  M- |
4 M: H  v6 T2 N8 O. P
    那么这里又有了一个坑,coz在github中提供的这个neo-gui-developer代码,在调用智能合约的时候,会无法添加参数,因此我们需要到neo官方的neo-gui,将项目下面UI目录下的以ParametersEditor开头的几个文件全部都拷贝进来。那么这里又有了一个坑,coz在github中提供的这个neo-gui-developer代码,在调用智能合约的时候,会无法添加参数,因此我们需要到neo官方的neo-gui,将项目下面UI目录下的以ParametersEditor开头的几个文件全部都拷贝进来。& w8 _- ?( o- u, j0 y' g6 o
9 X" Z* z6 H1 }4 s
    打开部署智能合约界面,部署合约- d' K" g* {# A( x  k* o
, ~. l7 k, u: L
    点击[部署]按钮部署合约3 q" ]# Q: i" f: k

6 `; ~7 O1 t% k+ w/ n0 M    拷贝ScriptHash5 K4 r1 l4 q( C: M

9 d$ l$ O; M) ~$ r  e5 z8 O    0x9499e029baba1221f903476b23a4d59866bb76e16 W1 O0 z7 T" U6 D# G* n( r: n

% E. Y9 d: H4 `- ^! h    试运行并调用
6 I: ~. J: z- x* b* X6 c% R, F1 d
7 \3 @; Y! p: O& k3 R' {6 ~1 q    部署完成并拷贝ScriptHash后,会弹出调用合约界面,先点击试运行,如果没有报错,就可以点击调用,这是在neo-gui->交易记录中会产生一个新的交易记录,记录开始是未确认状态,稍后会返回已经确认的节点数目。
" R6 h7 c( S! g' r
7 d8 F" ~$ e& [1 P    这时,查看一下gas,你会发现发布合约消耗了一些gas。& m7 g. T* I; r2 C
( K" N3 j0 r% o; ?5 T0 A5 x
    智能合约调用
. z" n$ [/ `) D* F
, J  K  L# ]. Z9 w% t1 G    打开高级->调用合约->函数调用,填写ScriptHash并查找,会查找到我们之前发布的合约。. `) C" f. E) H
6 w3 g4 |7 U+ \4 p5 B4 F0 ]
    填写调用合约需要的参数。
  ^0 E% o+ V  ^# i# B# c! G$ m& O; W" i0 m2 c! O5 O3 Y+ C
    填写完成后,点击调用,查看交易记录,有一条新的未确认。3 A0 k8 X0 z+ @, \
# Q: P" g  g; n5 K7 u. c$ @: n
    至此,合约的部署和发布算是完成了,其中还有很多细节未完善,只是重点说了自己在爬坑的过程中消耗时间最多的几个小细节,大的方向,各位还是先看官方文档,然后慢慢爬坑吧。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

别丢弃我猿 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1