Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

NEO智能合约部署与调用

别丢弃我猿
2401 0 0
在使用WooLong之前,应该对程序稍微做一些修改,哪怕只是改一下字符串;这个我在测试的时候遇到一个坑,直接使用官方的demo,发布后根据ScriptHash查找发现作者版本都不是我填写的那样,后来才知道,ScriptHash是根据合约脚本的二进制码产生的。如果不修改,那么最终根据ScriptHash查找的可能不是你部署的合约。在使用WooLong之前,应该对程序稍微做一些修改,哪怕只是改一下字符串;这个我在测试的时候遇到一个坑,直接使用官方的demo,发布后根据ScriptHash查找发现作者版本都不是我填写的那样,后来才知道,ScriptHash是根据合约脚本的二进制码产生的。如果不修改,那么最终根据ScriptHash查找的可能不是你部署的合约。2 y: w9 S* s- F: Q( V0 Q, a6 s0 r

' D. d; A$ c8 a$ \    创建项目并编译
8 M( c  \8 Q- }5 A9 Z5 _+ x# K5 {* }9 e+ J7 H+ f5 B
    创建Neo项目,将WooLong的代码拷贝到demo中,并稍作修改。0 X2 M2 h* o  |5 ?0 @5 Y
. [' n$ |4 r) S" X* `
    打开neo-gui开发者版本, b; T3 \, V% N3 A9 p8 V  x

8 T4 ?" q/ J3 B* f    对于开发者,官方建议使用coz提供的开发版neo-gui,clone代码下来,并通过visualstudio2017编译项目,然后按照官方文档同步testnet的区块,推荐使用离线同步包。参考文档。
3 g2 @, t& S  n) I4 _1 K& _
$ O( \2 Q7 r* X    来自文档的坑1 H) u3 C* \2 h% z0 P

5 U3 C* f" {: p" ]7 s) U6 }3 E2 `$ y    来自文档的坑' z; b* A2 j3 w. X: Q

; j4 h. ]$ {1 i6 c- M8 p; z9 v& T) ~    那么这里又有了一个坑,coz在github中提供的这个neo-gui-developer代码,在调用智能合约的时候,会无法添加参数,因此我们需要到neo官方的neo-gui,将项目下面UI目录下的以ParametersEditor开头的几个文件全部都拷贝进来。那么这里又有了一个坑,coz在github中提供的这个neo-gui-developer代码,在调用智能合约的时候,会无法添加参数,因此我们需要到neo官方的neo-gui,将项目下面UI目录下的以ParametersEditor开头的几个文件全部都拷贝进来。, M/ u, o% t( E
' i1 U5 @- I* `2 U5 ?% V4 H
    打开部署智能合约界面,部署合约0 @3 E' L  o7 C8 L1 ]4 k/ ^1 m

7 }: d( ?# k6 X  q    点击[部署]按钮部署合约( C9 o: {$ ~3 w3 u9 ?8 ~

. C  t9 Y; V: ~    拷贝ScriptHash
" n4 ]  \, D: ~' F! i# v
6 W& S3 |, L+ }# C$ D2 M    0x9499e029baba1221f903476b23a4d59866bb76e1
8 W" k9 `4 z$ \) Q8 H
! N/ `7 v! f& ~    试运行并调用4 W+ t5 t( g6 V4 d. K
! ]' z1 J9 j! r; D
    部署完成并拷贝ScriptHash后,会弹出调用合约界面,先点击试运行,如果没有报错,就可以点击调用,这是在neo-gui->交易记录中会产生一个新的交易记录,记录开始是未确认状态,稍后会返回已经确认的节点数目。  G4 C" ^" x* k+ f- E& ?
8 A( _0 t+ ~& ?& P) f
    这时,查看一下gas,你会发现发布合约消耗了一些gas。
* U& C, S; V# M1 U8 v# u6 r1 L. a( ^) i
    智能合约调用! W& t1 G& E- T/ q

5 _; @2 R; {" m0 b" y" r8 O( I    打开高级->调用合约->函数调用,填写ScriptHash并查找,会查找到我们之前发布的合约。
& Y; f" G( i0 ?9 O) ^0 g
6 X& W& O0 A2 h' K' c    填写调用合约需要的参数。
% H  w/ g; m) O: c& }+ I
5 P2 O& X; n0 A    填写完成后,点击调用,查看交易记录,有一条新的未确认。
; x$ W* V( U; |' A; X$ c) w, t$ U/ \5 Z9 f- n7 E
    至此,合约的部署和发布算是完成了,其中还有很多细节未完善,只是重点说了自己在爬坑的过程中消耗时间最多的几个小细节,大的方向,各位还是先看官方文档,然后慢慢爬坑吧。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

别丢弃我猿 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1