NEP提案5

摘要

NEP-5提案概述了NEO区块链的token标准,该标准将为系统提供token化的智能合约的通用交互机制。其定义了这种机制以及其特征的缘由。还提供了模板和示例以支持开发社区。

动机

随着NEO区块链的发展,智能合约的部署和调用变得越来越重要。如果没有一个标准的交互方案,系统需要为每个合同维护一个唯一的API接口,无论其于其他合约的相似程度。token化合约自身就是这一需求的主要例子,由于其主要操作机制是相同的。与这些token交互的标准方法使得整个生态系统免于为每一个部署token的智能合约维护所需基本操作的定义。

详述

在下面方法定义中,我们提供合约中所定义的函数方法的定义以及其调用参数

方法

totalSupply

public static BigInteger totalSupply()
Returns 部署在系统内该token的总数.

name

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/lllwvlvwlll/Woolong
• ICO Template: https://github.com/neo-project/examples/tree/master/ICO_Template

原文:https://github.com/neo-project/proposals/blob/master/nep-5.mediawiki

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值