额外代币铸造
额外代币
根据 Ton区块链白皮书 3.1.6,TON区块链允许其用户定义除Toncoin之外的任意加密货币或代币,前提是满足某些条件。这些额外的加密货币由32位的_currency_ids_标识。定义的额外加密货币列表是区块链配置的一部分,存储在主链中。每个内部消息以及账户余额都包含一个ExtraCurrencyCollection
特殊字段(附加到消息或保留在余额上的额外代币集合):
extra_currencies$_ dict:(HashmapE 32 (VarUInteger 32)) = ExtraCurrencyCollection;
currencies$_ grams:Grams other:ExtraCurrencyCollection = CurrencyCollection;
额外代币配置
所有应该被铸造的代币的字典,准确来说是ExtraCurrencyCollection
,存储在ConfigParam7
中:
_ to_mint:ExtraCurrencyCollection = ConfigParam 7;
ConfigParam 6
包含与铸造相关的数据:
_ mint_new_price:Grams mint_add_price:Grams = ConfigParam 6;
ConfigParam2
包含_Minter_的地址。
低层级铸币流程
在每个区块中,整合者将旧的全局余额(上一个区块结束时所有代币的全局余额)与ConfigParam7
进行比较。如果ConfigParam7
中任何代币的任何金额小于全局余额中的金额 - 配置无效。如果ConfigParam7
中任何代币的任何金额高于全局余额中的金额,将创建一条铸币消息。
这条铸币消息的来源是-1:0000000000000000000000000000000000000000000000000000000000000000