Baofa 不为代币使用代理、克隆或共享的代币合约。协议的工厂为每一次发行部署一个完整的 BaofaCoin 合约。合约很小,每次部署都从同一份源码验证,不为任何人保留特权。
属性#
| 属性 | BaofaCoin |
|---|---|
| 标准 | ERC-20,支持 permit(EIP-2612) |
| 小数位 | 6 |
| 供应量 | 1,000,000,000,构造时一次铸给曲线 |
| 增发函数 | 无 |
| 销毁 | 持有者可以销毁自己的余额 |
| 所有者 | 无;没有 owner(),没有管理员角色,没有升级路径 |
| 暂停 | 无 |
| 黑名单或白名单 | 无 |
| 转账税或转账手续费 | 无 |
| 最大持仓或最大单笔 | 无 |
| 代理或 delegatecall | 无 |
通过 permit 或授权隐藏的增发 |
无;permit 只设置持有者签名的授权额度 |
唯一的闸门#
BaofaCoin 对转账只有一个条件:在代币毕业之前,转往它自己的规范 PancakeSwap v2 交易对地址的转账会回退。其他所有转账从第一个区块起不受限制。
这道闸门存在的原因是交易对地址在交易对存在之前就可以算出。没有闸门,攻击者可以在毕业前以虚假价格注入交易对或拿走第一份流动性凭证。闸门把这条路关在代币本身里,而不是依赖链下流程;它在毕业交易中永久打开,而毕业是无需许可的。核心合约是唯一能打开闸门的调用者,并且只能通过毕业这枚代币来打开。
验证#
工厂用同一份创建代码部署每一枚代币,所以第一枚代币在区块浏览器上验证的源码通过“相似匹配”适用于每一枚代币。部署手册在部署时于 BscScan 验证工厂、第一枚代币与各钻石合约;地址 页链接每一份已验证的源码。
地址可预知#
代币由工厂以 CREATE2 根据创作者的 salt 创建。核心合约的 predictCoin(deployer, salt) 返回发行将得到的地址,所以创作者可以在发行交易之前公布它、为它准备元数据文档,或预留一个靓号地址。
代币函数#
| 函数 | 用途 |
|---|---|
transfer、transferFrom、approve、allowance、balanceOf、totalSupply |
ERC-20 |
permit、nonces、DOMAIN_SEPARATOR |
以签名完成免燃气授权 |
burn |
持有者销毁自己的一部分余额 |
gate() |
闸门关闭期间返回规范的 PancakeSwap v2 交易对地址;毕业后返回零 |
metadataURI() |
创建时记录的元数据文档地址 |
core() |
创建该代币的核心合约 |
完整的生成接口见 代币与工厂参考。