Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

NEO智能合约部署与调用

别丢弃我猿
2367 0 0
在使用WooLong之前,应该对程序稍微做一些修改,哪怕只是改一下字符串;这个我在测试的时候遇到一个坑,直接使用官方的demo,发布后根据ScriptHash查找发现作者版本都不是我填写的那样,后来才知道,ScriptHash是根据合约脚本的二进制码产生的。如果不修改,那么最终根据ScriptHash查找的可能不是你部署的合约。在使用WooLong之前,应该对程序稍微做一些修改,哪怕只是改一下字符串;这个我在测试的时候遇到一个坑,直接使用官方的demo,发布后根据ScriptHash查找发现作者版本都不是我填写的那样,后来才知道,ScriptHash是根据合约脚本的二进制码产生的。如果不修改,那么最终根据ScriptHash查找的可能不是你部署的合约。& Y$ d2 S( h# J7 W
, h2 b% t/ W* ]  `9 K" `$ j
    创建项目并编译
# H- f) A9 W2 d  g9 U
. c: v: P, J' z1 V' j5 L    创建Neo项目,将WooLong的代码拷贝到demo中,并稍作修改。0 B1 R7 }0 p3 m8 K- Q. L8 T

+ n. W3 G4 Q' Q9 R    打开neo-gui开发者版本0 H7 D$ J. Z( V& @- i7 q8 ~
1 W$ N3 j2 m. a1 j" p1 j
    对于开发者,官方建议使用coz提供的开发版neo-gui,clone代码下来,并通过visualstudio2017编译项目,然后按照官方文档同步testnet的区块,推荐使用离线同步包。参考文档。
  I6 R: g$ d1 F" ?" m6 x8 H) g  Y" k0 K. o, y% A1 q
    来自文档的坑/ y9 A' f, l3 U1 g' i7 n2 l

$ n  p3 D" H. s) j    来自文档的坑: ?4 z$ P; `, j2 a2 h
5 }& J6 ~/ v. j" L0 m
    那么这里又有了一个坑,coz在github中提供的这个neo-gui-developer代码,在调用智能合约的时候,会无法添加参数,因此我们需要到neo官方的neo-gui,将项目下面UI目录下的以ParametersEditor开头的几个文件全部都拷贝进来。那么这里又有了一个坑,coz在github中提供的这个neo-gui-developer代码,在调用智能合约的时候,会无法添加参数,因此我们需要到neo官方的neo-gui,将项目下面UI目录下的以ParametersEditor开头的几个文件全部都拷贝进来。
* Q/ {; a) u' U! g& L
( Z+ e  T# K# l; J    打开部署智能合约界面,部署合约- i, `, P' |" F2 s. y6 m5 U4 |; _, Q
: ~# c8 _; A/ Y; R1 ?, J* @" N. v
    点击[部署]按钮部署合约
1 j* n6 K) D& G
! u# H' {: w# S) t    拷贝ScriptHash
* |1 W. I) j! K
$ \* X! t- b  e( o0 n& H    0x9499e029baba1221f903476b23a4d59866bb76e1: v4 X1 F7 Z/ v. i

; Z- S& H4 z" J% i    试运行并调用% ^+ y( C" A2 K. o6 z' `
6 o! ?' D  k+ x5 A3 o" }% P7 Q
    部署完成并拷贝ScriptHash后,会弹出调用合约界面,先点击试运行,如果没有报错,就可以点击调用,这是在neo-gui->交易记录中会产生一个新的交易记录,记录开始是未确认状态,稍后会返回已经确认的节点数目。
: i% [0 K4 v! t9 j9 x: I# j0 l6 _
4 s8 ^: y. ^5 W- I- K    这时,查看一下gas,你会发现发布合约消耗了一些gas。$ q: x2 r* y7 X6 p0 K( X# j6 e0 F2 T0 C- H/ T

6 ~' a* w4 _+ q* q    智能合约调用7 Z. S, o8 y2 T2 E9 [6 U

9 A/ l+ r$ V1 ]    打开高级->调用合约->函数调用,填写ScriptHash并查找,会查找到我们之前发布的合约。9 Q" O/ q9 Z) \/ l2 D& u

+ v& T0 a! p1 e1 X9 H    填写调用合约需要的参数。
% {" j; h) y* n/ x. _& r8 D) k2 }0 X' t# A: ?
    填写完成后,点击调用,查看交易记录,有一条新的未确认。8 o& ?( ^9 x, |2 X2 Z

4 F& ?8 Q3 ~1 l8 b+ i( z# |7 g; l    至此,合约的部署和发布算是完成了,其中还有很多细节未完善,只是重点说了自己在爬坑的过程中消耗时间最多的几个小细节,大的方向,各位还是先看官方文档,然后慢慢爬坑吧。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

别丢弃我猿 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1