星雲計劃——智能合約代碼入門

星雲計劃——智能合約代碼入門

卡酷少

Wechat:13260325501typescript


星雲鏈上的智能合約相似於面向對象編程語言中的類,合約可能包含狀態變量(持久化固定化的變量)以及能夠修改這些變量的函數。星雲鏈使用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}}
  • 合約一旦部署成功就對全部用戶可見,只要知道合約地址就能夠查看。
相關文章
相關標籤/搜索