Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

NEO智能合约部署与调用

别丢弃我猿
2354 0 0
在使用WooLong之前,应该对程序稍微做一些修改,哪怕只是改一下字符串;这个我在测试的时候遇到一个坑,直接使用官方的demo,发布后根据ScriptHash查找发现作者版本都不是我填写的那样,后来才知道,ScriptHash是根据合约脚本的二进制码产生的。如果不修改,那么最终根据ScriptHash查找的可能不是你部署的合约。在使用WooLong之前,应该对程序稍微做一些修改,哪怕只是改一下字符串;这个我在测试的时候遇到一个坑,直接使用官方的demo,发布后根据ScriptHash查找发现作者版本都不是我填写的那样,后来才知道,ScriptHash是根据合约脚本的二进制码产生的。如果不修改,那么最终根据ScriptHash查找的可能不是你部署的合约。, e0 p6 d/ e- g( x) N5 @* H( Y

4 `' v7 q% ^, G7 x- T* C8 r0 V1 J    创建项目并编译
8 f7 B- O1 |" {3 C, u/ T: L$ o8 R; ~
    创建Neo项目,将WooLong的代码拷贝到demo中,并稍作修改。
" E& z% N* y5 Y' H
4 Y3 g, C  U' P9 w8 y& n    打开neo-gui开发者版本8 w; Q8 o7 N% y! `' {$ T& [

* s2 ]: _1 R* u/ Y    对于开发者,官方建议使用coz提供的开发版neo-gui,clone代码下来,并通过visualstudio2017编译项目,然后按照官方文档同步testnet的区块,推荐使用离线同步包。参考文档。5 A6 w1 L% A. P$ N1 c
1 F, N* M0 U. i. e1 ~
    来自文档的坑
8 l, |" b+ |: Z  _2 ?* f: o5 M
+ U& ~! d: W: t* a5 B( o$ @    来自文档的坑3 G& a1 [* P" L2 Q. ]

! \* f+ Y( n" d5 w    那么这里又有了一个坑,coz在github中提供的这个neo-gui-developer代码,在调用智能合约的时候,会无法添加参数,因此我们需要到neo官方的neo-gui,将项目下面UI目录下的以ParametersEditor开头的几个文件全部都拷贝进来。那么这里又有了一个坑,coz在github中提供的这个neo-gui-developer代码,在调用智能合约的时候,会无法添加参数,因此我们需要到neo官方的neo-gui,将项目下面UI目录下的以ParametersEditor开头的几个文件全部都拷贝进来。
  W$ R6 l- C; J2 l% {: ?
" ]* X- w; Y& X: M8 j  K% B0 g    打开部署智能合约界面,部署合约1 x! q! F8 b, ^4 v3 [$ X
7 |; u& e9 J& p! G2 g) E
    点击[部署]按钮部署合约
$ W- T2 o/ |+ E/ f
1 V0 ]+ k5 F  D, p+ ~- e- r    拷贝ScriptHash) Z' G  A4 y: |: i% a  X. N
7 m7 A/ }) ^5 I8 z( b% i* H
    0x9499e029baba1221f903476b23a4d59866bb76e1: I# a! }8 q! a3 S: i1 m

. c; u2 _* ?9 @5 ?% Z, @- t" z    试运行并调用
( ^- J2 C" g( P, f2 o0 _0 [! t  K  A7 Y$ p5 I7 K8 I
    部署完成并拷贝ScriptHash后,会弹出调用合约界面,先点击试运行,如果没有报错,就可以点击调用,这是在neo-gui->交易记录中会产生一个新的交易记录,记录开始是未确认状态,稍后会返回已经确认的节点数目。
5 t+ o" t7 G5 N' }) _
# F, ~. S5 u1 _3 E    这时,查看一下gas,你会发现发布合约消耗了一些gas。  E$ b- P/ j5 m* e) V& `
5 }  ]5 @3 a" e; K* B
    智能合约调用: a- w+ @1 g+ r% n7 S

" e; Z. @3 z& i: P$ v    打开高级->调用合约->函数调用,填写ScriptHash并查找,会查找到我们之前发布的合约。  q- A2 i* ]1 z( \! d

: |; G$ v5 @6 g& a* }3 y4 ?    填写调用合约需要的参数。( s- M" F) y3 L  g: d. h& l6 I& G

5 g3 z, u1 H9 ]8 x4 R    填写完成后,点击调用,查看交易记录,有一条新的未确认。
( N# n3 ~- q  X2 i# l6 K2 g% o5 Y+ \  o: g6 ?; R( \: J
    至此,合约的部署和发布算是完成了,其中还有很多细节未完善,只是重点说了自己在爬坑的过程中消耗时间最多的几个小细节,大的方向,各位还是先看官方文档,然后慢慢爬坑吧。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

别丢弃我猿 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1