Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

NEO智能合约部署与调用

别丢弃我猿
2402 0 0
在使用WooLong之前,应该对程序稍微做一些修改,哪怕只是改一下字符串;这个我在测试的时候遇到一个坑,直接使用官方的demo,发布后根据ScriptHash查找发现作者版本都不是我填写的那样,后来才知道,ScriptHash是根据合约脚本的二进制码产生的。如果不修改,那么最终根据ScriptHash查找的可能不是你部署的合约。在使用WooLong之前,应该对程序稍微做一些修改,哪怕只是改一下字符串;这个我在测试的时候遇到一个坑,直接使用官方的demo,发布后根据ScriptHash查找发现作者版本都不是我填写的那样,后来才知道,ScriptHash是根据合约脚本的二进制码产生的。如果不修改,那么最终根据ScriptHash查找的可能不是你部署的合约。9 s. \  t8 Q# O6 v
. N+ ?$ t1 D5 H+ P" T. ~9 Y
    创建项目并编译8 s) H! n. f8 ^' p
% C# T/ B# l# I; m5 P6 T
    创建Neo项目,将WooLong的代码拷贝到demo中,并稍作修改。: L* O# a# p2 x
3 o5 i# Z! n" g6 p
    打开neo-gui开发者版本5 C+ X% m6 e) }$ \4 D# r

! h6 @7 h9 R: c) G9 Y4 U' x    对于开发者,官方建议使用coz提供的开发版neo-gui,clone代码下来,并通过visualstudio2017编译项目,然后按照官方文档同步testnet的区块,推荐使用离线同步包。参考文档。
# d6 g# q0 p" D+ U% z. y! X" z- t5 |6 q% [7 y( E
    来自文档的坑
. c9 _0 x2 `5 i% I
( X2 k% ]% O9 C. ]9 ~# e4 q    来自文档的坑
2 c7 s: o2 t6 h. K) M( Q+ ~4 h
2 o) S( G- U0 ?1 v  J% r    那么这里又有了一个坑,coz在github中提供的这个neo-gui-developer代码,在调用智能合约的时候,会无法添加参数,因此我们需要到neo官方的neo-gui,将项目下面UI目录下的以ParametersEditor开头的几个文件全部都拷贝进来。那么这里又有了一个坑,coz在github中提供的这个neo-gui-developer代码,在调用智能合约的时候,会无法添加参数,因此我们需要到neo官方的neo-gui,将项目下面UI目录下的以ParametersEditor开头的几个文件全部都拷贝进来。
/ X2 Q- O* s. c/ Y' p5 R  Z8 y3 G8 N- n& T% ?
    打开部署智能合约界面,部署合约
& ~" D2 L. y: Z; r4 }, Q* i* R
+ K0 \8 Y; j/ U: q, T& a    点击[部署]按钮部署合约
% `( N  j: P6 f1 j$ ?% U+ e& [
. X6 p+ \! p  M: g) B! F1 C* ]" k    拷贝ScriptHash
/ B1 H9 e( x' F3 f9 H
) u' @: F8 F- k: Q- Z, w7 G    0x9499e029baba1221f903476b23a4d59866bb76e1
* V" Q8 R" J5 o9 \2 {+ D  M& M9 {' J; V3 h& `5 S
    试运行并调用
0 o% v. ?; t: u8 p
" L2 j) p7 J' z5 i9 T, ^1 Y    部署完成并拷贝ScriptHash后,会弹出调用合约界面,先点击试运行,如果没有报错,就可以点击调用,这是在neo-gui->交易记录中会产生一个新的交易记录,记录开始是未确认状态,稍后会返回已经确认的节点数目。
, q* C" i( p5 K. z3 t
; k3 O! ?, L: H/ z; Y    这时,查看一下gas,你会发现发布合约消耗了一些gas。# M/ M$ V7 C" w# V
  ~! X& {$ [$ i* _( ~  P, y
    智能合约调用
6 ^& V+ D$ h& f4 q! Y+ b) @( U" b7 q% z& h. Z; \) I$ z
    打开高级->调用合约->函数调用,填写ScriptHash并查找,会查找到我们之前发布的合约。
4 Y4 W4 B! Z+ b2 T7 d/ [
5 o) K- _7 ?1 Y6 g7 w: q% I    填写调用合约需要的参数。! |: }) n$ Q7 c6 v- Y8 i

3 A; Q% `: c" Y5 T    填写完成后,点击调用,查看交易记录,有一条新的未确认。
6 U# F; i5 ?7 [5 X" {  T$ _% \* C, K/ e, l: y  s2 V
    至此,合约的部署和发布算是完成了,其中还有很多细节未完善,只是重点说了自己在爬坑的过程中消耗时间最多的几个小细节,大的方向,各位还是先看官方文档,然后慢慢爬坑吧。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

别丢弃我猿 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1