Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

NEO智能合约部署与调用

别丢弃我猿
2355 0 0
在使用WooLong之前,应该对程序稍微做一些修改,哪怕只是改一下字符串;这个我在测试的时候遇到一个坑,直接使用官方的demo,发布后根据ScriptHash查找发现作者版本都不是我填写的那样,后来才知道,ScriptHash是根据合约脚本的二进制码产生的。如果不修改,那么最终根据ScriptHash查找的可能不是你部署的合约。在使用WooLong之前,应该对程序稍微做一些修改,哪怕只是改一下字符串;这个我在测试的时候遇到一个坑,直接使用官方的demo,发布后根据ScriptHash查找发现作者版本都不是我填写的那样,后来才知道,ScriptHash是根据合约脚本的二进制码产生的。如果不修改,那么最终根据ScriptHash查找的可能不是你部署的合约。
! C8 O% J: ]9 ]; V+ V% a: f- q; Q" _9 ]
    创建项目并编译
5 T, \0 U; {* P/ P: i9 S
) A, k0 a; H4 w" z    创建Neo项目,将WooLong的代码拷贝到demo中,并稍作修改。
* m2 [' I* `" D1 X
: j) e! F$ d# K& [9 [1 {# f$ ~    打开neo-gui开发者版本
1 w6 _# s+ B$ d+ `, g& [' i" _* u; c* ?
    对于开发者,官方建议使用coz提供的开发版neo-gui,clone代码下来,并通过visualstudio2017编译项目,然后按照官方文档同步testnet的区块,推荐使用离线同步包。参考文档。2 y8 l+ t- ?7 r% E

3 ]# y+ H# F; U2 X7 V7 a    来自文档的坑
2 T6 s9 A( ~4 P" ]- Y1 ~2 z: [8 Z! {  Q/ J# I
    来自文档的坑
) |6 s4 S6 {3 I0 D6 G+ A3 }% T. C# r  [  W: Z# r% u; E8 a( t
    那么这里又有了一个坑,coz在github中提供的这个neo-gui-developer代码,在调用智能合约的时候,会无法添加参数,因此我们需要到neo官方的neo-gui,将项目下面UI目录下的以ParametersEditor开头的几个文件全部都拷贝进来。那么这里又有了一个坑,coz在github中提供的这个neo-gui-developer代码,在调用智能合约的时候,会无法添加参数,因此我们需要到neo官方的neo-gui,将项目下面UI目录下的以ParametersEditor开头的几个文件全部都拷贝进来。' \7 q, z/ F) z1 s
0 j. y  z, R0 J
    打开部署智能合约界面,部署合约
  {3 Y( y1 L1 o6 H' p2 u- x( w: B: r$ n$ h
    点击[部署]按钮部署合约* ?$ O( o" Z- P7 m
0 L# U2 w  n& K8 O2 N0 |, t
    拷贝ScriptHash
$ d5 G8 C" z3 Z4 v3 u/ K
4 d( N& b* S5 w' `. R5 p    0x9499e029baba1221f903476b23a4d59866bb76e1
% j: n' C9 J8 H4 O! X7 i$ r" T
# M7 J" _# e, Q" `6 k% }    试运行并调用
" W8 P( f! k' M( g. r" x
# c# O1 t8 {4 n7 \, B    部署完成并拷贝ScriptHash后,会弹出调用合约界面,先点击试运行,如果没有报错,就可以点击调用,这是在neo-gui->交易记录中会产生一个新的交易记录,记录开始是未确认状态,稍后会返回已经确认的节点数目。6 N7 N9 H# b$ t5 y& K6 q
4 Q' x% f# w$ N( F9 \
    这时,查看一下gas,你会发现发布合约消耗了一些gas。
4 C6 n" p% a/ P9 x! O  W1 J/ Z* o1 z9 v6 q: g' ^0 M
    智能合约调用3 _1 H) ]" E+ B3 ]. H7 U
3 [3 L7 i" {* x, `( M) z" {4 d8 Y
    打开高级->调用合约->函数调用,填写ScriptHash并查找,会查找到我们之前发布的合约。2 W6 c2 H0 U/ Z; ]2 z$ H5 I1 _
% P7 f$ k9 O( K& s% c' l
    填写调用合约需要的参数。6 w% w, S0 i' Q4 D% d! a  C7 C3 p# V
- \; a! ^9 @, v# v0 p
    填写完成后,点击调用,查看交易记录,有一条新的未确认。
# z. o. v# @3 K) z8 }* N" ]0 ]% a/ u, m: ?
    至此,合约的部署和发布算是完成了,其中还有很多细节未完善,只是重点说了自己在爬坑的过程中消耗时间最多的几个小细节,大的方向,各位还是先看官方文档,然后慢慢爬坑吧。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

别丢弃我猿 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1