2

星云计划——智能合约代码入门

卡酷少

Wechat:13260325501


星云链上的智能合约类似于面向对象编程语言中的类,合约可能包含状态变量(持久化固定化的变量)以及可以修改这些变量的函数。星云链使用NVM(Nebulas Virtual Machine)作为合约的执行引擎。JavaScript(JS)是星云支持的第一种智能合约语言,还可以用typescript写,但本文主要介绍JS。

智能合约基本结构
  • 完整的智能合约必须包含三个部分:
  1. 一个prototype原型
  2. 一个init函数,该函数会在合约部署时运行一次
  3. 一个module导出
  4. 以“_”开头的函数都为private私有函数。其他为pubilc公有(private或pubilic为函数可见性)
  • 下面给出一个最基本的智能合约(各项内容为空的智能合约):
“use strict”;//严格语法模式
var BankVaultContract = function () {
  // nothing
};
BankVaultContract.prototype = {//prototype原型
  init: function() {//init方法
      // nothing
  }
};
module.exports = BankVaultContract;//导出
合约部署
  • 只要开发者将自己开发的智能合约(无论用JS语言还是TS语言)发送到任意一个星云节点,该合约就会分配到一个全局唯一合约地址。举例合约地址类如下(可以在上篇文章查看如何获取的相关操作):
“contract_address”:n1qsgj2C5zmYzS9TSkPTnp15bhCCocRPwno
  • 同时会得到一个txhash,可用于轮询合约部署状态。如果status=1,就意味着合约被成功部署。txhash如下:
{“result”:{“hash”:”2dd7186d266c2139fcc92446b364ef1a1037bc96d571f7c8a1716bec44fe25d8″,…,”status”:1}}
  • 合约一旦部署成功就对所有用户可见,只要知道合约地址就可以查看。

kakushao
26 声望12 粉丝