NEO改進協議提案5(NEP-5)

文章目錄

  1. 摘要
  2. 動機
  3. 詳述
    方法git

    totalSupply
      name
      symbol
      decimals
      balanceOf
      transfer

    事件github

    transfer
  4. 實現

摘要

NEP-5提案概述了NEO區塊鏈的token標準,該標準將爲系統提供token化的智能合約的通用交互機制。其定義了這種機制以及其特徵的原因。還提供了模板和示例以支持開發社區。函數

動機

隨着NEO區塊鏈的發展,智能合約的部署和調用變得愈來愈重要。若是沒有一個標準的交互方案,系統須要爲每一個合同維護一個惟一的API接口,不管其於其餘合約的類似程度。token化合約自身就是這一需求的主要例子,因爲其主要操做機制是相同的。與這些token交互的標準方法使得整個生態系統免於爲每個部署token的智能合約維護所需基本操做的定義。區塊鏈

詳述

在下面方法定義中,咱們提供合約中所定義的函數方法的定義以及其調用參數code

方法token

totalSupply接口

public static BigInteger totalSupply()

Returns 部署在系統內該token的總數.事件

nameci

public static string name()

Returns token的名稱. e.g. 「MyToken」.
該方法每次被調用時必需返回同樣的值.開發

symbol

public static string symbol()

Returns 合約所管理的token的短字符串符號 . e.g. 「MYT」. 該符號須要應該比較短小 (建議3-8個字符), 沒有空白字符或換行符 ,並限制爲大寫拉丁字母 (26個英文字符).
該方法每次被調用時必需返回同樣的值.

decimals

public static byte decimals()

Returns token使用的小數位數 – e.g. 8, 意味着把token數量除以100,000,000來得到它的表示值.
該方法每次被調用時必需返回同樣的值.

balanceOf

public static BigInteger balanceOf(byte[] account)

Returns 帳戶的token金額.
參數帳戶必需是一個20字節的地址。若是不是,該方法會拋出一個異常。
若是該帳戶是個未被使用的地址,該方法會返回0

transfer

public static bool transfer(byte[] from, byte[] to, BigInteger amount)

從一個帳戶轉移必定數量的token到另外一個帳戶.
參數from和to必需是20字節的地址,不然,該方法會報錯。
參數amount必需大於等於0.不然,該方法會報錯。
若是帳戶沒有足夠的支付金額,該函數會返回false.
若是方法執行成功,會觸發轉移事件,並返回true,即便數量爲0或者from和to是同一個地址
函數會檢查from的地址是否等於調用合約的hash.若是是,則轉移會被處理;不然,函數會調用SYSCALL Neo.Runtime.CheckWitness來確認轉移
若是to地址是一個部署合約,函數會檢查其payable標誌位來決定是否把token轉移到該合約。
若是轉移沒有被處理,函數會返回false.

事件

transfer

public static event transfer(byte[] from, byte[] to, BigInteger amount)

會在token被轉移時觸發,包括零值轉移。
一個建立新token的token合約在建立token時會觸發轉移事件,並將from的地址設置爲null
一個銷燬token的token合約在銷燬token時會觸發轉移事件,並將to的地址設置爲null

實現

• Woolong: https://github.com/lllwvlvwll...
• ICO Template: https://github.com/neo-projec...

原文:https://github.com/neo-projec...

相關文章
相關標籤/搜索