# 资产发行

提示

本文主要描述资产发行相关逻辑。

相关词汇解释:

  • 代币: 一种数字资产。
  • 铸币: 发行代币的过程叫铸币。
  • 增发: 铸币后再行增发一定数量的新币的过程。
  • 销毁: 销毁一定数量的已发行代币。
  • 代币所有者: 默认为铸币账户。在所有权转移后为新指定的账户。

# 什么是代币

在以太坊中,可以通过部署一个智能合约来发行一个代币,这个智能合约必须符合以太坊的代币标准,例如 ERC20。当创建一个符合代币标准的合约时,这个合约账户拥有总发行量对应的代币,并在这个合约中维护了一个代币的持有关系。这个代币的转账交易实际上是在改变这个合约的状态,而不会改变交易双方账户的状态。

Vite 支持两种类型的代币,一种是 Vite 原生代币 VITE,另一种是用户自己发行的代币。用户自己发行的代币包括可增发代币和不可增发代币。

在 Vite 中,用户可以发起一笔铸币交易来发行代币,铸币时,需要指定代币类型(是否可增发)、总发行量、代币名称、代币简称等,可增发代币还需要指定发行上限,交易成功后,发起铸币交易的账户即为新代币的所有者,持有所有新发行的代币。

可增发代币发行后,代币所有者可以发起一笔增发交易并指定增发代币的接收地址来增发代币,增发代币交易成功后,该代币的总发行量会随之增加。也可以通过发起一笔销毁交易来销毁一定数量的代币,销毁交易成功后,该代币的总发行量也会随之减少。可增发代币的所有者权限可以转移,也可以将一种可增发代币修改为不可增发代币。

每个账户维护自己的代币余额。转账交易时,如果发生了代币的转入或者转出操作,交易双方的账户状态也会随之修改。

# 铸币流程

铸币时,由代币所有者向内置合约发起一笔交易,在交易数据中指定调用铸币方法和新代币相关的参数。一旦铸币交易被内置合约接收成功,内置合约会发起一笔增发交易(一种特殊的转账交易),将总发行量的代币转账给代币的所有者。当这些交易被快照链打包确认后,代币就发行成功了。

铸币交易需要销毁 1000 VITE

# 参数

  • tokenName : 代币名称,1 到 40 个字符,包含大小写字母、下划线、空格,不能以空格开头或结尾,不能包含连续空格
  • tokenSymbol : 代币简称,1 到 10 个字符,包含大写字母、数字,不能使用 VITEVCPVX
  • totalSupply : 发行总量,,不可增发代币
  • decimals : 小数位精度,值为 0 时表示没有小数
  • isReIssuable : 是否可增发,true 可增发 false 不可增发
  • maxSupply : 最大发行量,不可增发代币此字段值填 0,可增发代币
  • isOwnerBurnOnly : 是否仅所有者可销毁,true 仅所有者可销毁 false 所有持币账户可销毁,不可增发代币此字段填 false

# 增发流程

可增发代币在增发时,由代币所有者向内置合约发起一笔交易,在交易数据中指定调用增发方法和增发相关的参数。一旦增发交易被内置合约接收成功,内置合约会发起一笔转账交易,将增发的代币转账给指定账户。当这些交易被快照链打包确认后,代币就增发成功了。

# 参数

  • tokenId :可增发代币的 id;
  • amount :增发的代币数量,增发后 新的总发行量 = 旧的总发行量 + 增发数量,新的总发行量不能超过发行上限;
  • receiveAddress :增发代币成功后,接收增发代币的账户地址。

# 销毁流程

可增发代币在销毁时,由代币持有者向内置合约发起一笔交易,在交易数据中指定调用销毁方法和销毁相关的参数,并将要销毁的代币随交易转账给合约。一旦销毁交易被内置合约接收成功,代币的总发行量和流通数量就会相应减少。当这些交易被快照链打包确认后,代币就销毁成功了。

如果发行代币时指定只允许所有者销毁代币,那么只允许由代币的所有者销毁代币,否则,所有的持币者都可以销毁代币。

# 参数

  • tokenId :转账参数,销毁的代币 id;
  • amount :转账参数,销毁的代币数量,销毁后 新的总发行量 = 旧的总发行量 - 销毁数量,销毁的代币会从销毁交易发起者的账户中扣除。

# 转移所有权流程

可增发代币可以转移所有者权限。转移时,由代币所有者向内置合约发起一笔交易,在交易数据中指定调用转移所有权方法和相关参数。一旦交易被内置合约接收成功,代币的所有权就转移给了新的所有者。

一个代币只有一个所有者。

# 参数

  • tokenId :需要转移所有权的代币 id;
  • newOwner :新的所有者账户。

# 修改代币类型流程

可增发代币可以修改为不可增发代币,一旦修改,不能再改回可增发代币。修改代币类型时,由代币所有者向内置合约发起一笔交易,在交易数据中指定调用修改代币类型方法和代币 id。一旦交易被内置合约接收成功,代币的类型就被修改为不可增发代币。

# 参数

  • 代币 id:需要修改代币类型的代币 id。

# Vite 代币

Vite 网络启动时,除了原生代币 VITE,还会发行两个代币,分别为社区活动激励积分 VCP 和交易所平台币 VX。具体参数如下:

代币 id 代币名称 代币简称 总发行量 精度
tti_5649544520544f4b454e6e40 VITE VITE 10 亿 18
tti_251a3e67a41b5ea2373936c8 Vite Community Point VCP 100 亿 0
tti_564954455820434f494e69b5 ViteX Coin VX 1 亿 18

# FAQ

  • 一个账户能否发行多种代币?

可以,发起多次铸币交易即可。

  • 代币名称、代币简称能否重复?

代币名称可以重复;同一个简称最多注册 1000 种代币,这 1000 种代币的编号分别对应 000-999。

  • 铸币交易是否需要消耗配额?

铸币、增发、销毁、转移代币所有者权限、修改代币类型都需要消耗配额,具体配额数量参考 配额使用规则

  • 铸币交易需要花费 1000 VITE。增发交易是否需要 VITE 代币?

增发交易不需要 VITE 代币。

  • 不可增发代币是否可以改成可增发代币?

不可以,只能将可增发代币单向修改为不可增发代币。