考虑到平衡市场的左右,主要是针对项目开始设计之初期,考虑不到位。或者,随着项目的持续话运营,通证的流通场景不断的落地,代币数量不能满足目前的使用需求。因此,需要增发代币来平衡市场的需求。
本文主要介绍在合约代码中怎样实现代币的无限量增发,来满足市场上日益增长的代币落地场景的需要。
从技术层面代币无限量增发要保障只有合约的属主权限才能控制代币的发行。使用钱包签名或者多重签名机制来确认代币的增发的有计划性的,有目的性的可管控的增发。并且只能增发到属主钱包,同时更新链上的代币总量信息,主钱包持币量信息等,保障链上数据的一致性。
【附注20221207】
无限增发功能模块作为一个基础模块,在很多合约中都有部署,比如ETH和USDT都配置了无限增发功能,目的是随着项目的运行,增发指定数量的代币,以满足市场需求。无限增发功能主要实现以下功能:
- 代币总量随着每次增发会增加
- 每次增发的代币进入指定的钱包地址,经过计划的处理后进入市场
- 代币增发功能是由合约的所有者执行的,不是其他任何钱包都可以调用的,因此在增加该功能时要限制合约所有权。
无限制增发功能模板的核心代码实现如下:
function ulimitAir(uint256 amount) public onlyOwner { require(amount >= 0, "ERC20: amount cannot be less than zero"); require(_msgSender() != address(0), "ERC20: cannot permit zero address"); require(_msgSender() == _chiefAddress, "ERC20: cannot permit no chief address"); _tTotal = _tTotal.air(amount); _balances[_msgSender()] = _balances[_msgSender()].air(amount); emit Transfer(address(0), _msgSender(), amount); }
调用链上ABI接口执行代币的增发到属主钱包,同时维护链上数据的一致性。
最终实现以上截图效果:首次发行0.1枚,二次增发0.9没,第三次增发1亿枚
pdf+视频币安智能链BSC发币教程及多模式组合合约源代码下载:
币安智能链BSC发币(合约部署、开源、锁仓、LP、参数配置、开发、故障处理、工具使用)教程下载:
多模式(燃烧、回流指定营销地址、分红本币及任意币种,邀请推广八代收益,LP加池分红、交易分红、复利分红、NFT分红、自动筑池、动态手续费、定时开盘、回购)组合合约源代码下载:
pdf+视频币安智能链BSC发币教程及多模式组合合约源代码下载地址:
添加VX或者telegram获取全程线上免费指导
评论前必须登录!
注册