登録して招待リンクを共有すると、動画再生報酬と紹介報酬を獲得できます。

M
@mymy88488
参加 March 2021
764 フォロー中    1.7K ファン
今天看到很多人在讨论 #sato# burn 1️⃣ ethereum:0x829f4b62eebe12af653b4dd4ffc480966f7d7f09 从代码层面 现在burn是不是真销毁,会不会回流到铸造再次铸造出来: ️ 先说答案:❗️是真的销毁 ❗️不会回流到铸造池❗️ 📢看买入逻辑: solidity uint256 fairSato = Curve.mintFor(ethCum, ethToCurve); 这里 mint 的依据: 🎯不是: solidity totalSupply 🎯而是: solidity ethCum 🎯和 solidity totalMintedFair 每次重新计算应该 mint 多少新币 系统不是:池子库存模式 而是:数学曲线实时生成模式 📢看买出逻辑: 当用户卖出 SATO 时,SatoHook 与 PoolManager 的交互如下: 1、代币离手并销毁(在 SatoHook 中) // SatoHook 执行: solidity POOL_MANAGER.take(SATO_CURRENCY, address(this), satoIn); SATO_TOKEN.burn(address(this), satoIn); 2、在 PoolManager.sol 中对应: solidity function take(Currency currency, address to, uint256 amount) external onlyWhenUnlocked { _accountDelta(currency, -(amount.toInt128()), msg.sender); // 记录用户减少了 SATO currency.transfer(to, amount); // 物理转移给 Hook } 用户把 SATO 给了 Hook➡️Hook 拿到手的一瞬间➡️立刻执行了 SATO_TOKEN.burn➡️在区块链上,这部分代币的 totalSupply(总供应量)直接减掉了 它没有机会停留在 PoolManager 的池子里, 也没有停留在 Hook 的地址里。 销毁动作: SATO_TOKEN.burn(address(this), satoIn);(在 SatoHook 中)—— 这是死命令,代币在此终结。 拦截回流: toBeforeSwapDelta(...)(在 SatoHook 返回给 PoolManager)—— 告诉 PoolManager:不要把这笔交易记录在你的池子余额里,我自己处理(销毁)了。 买入时发生了什么? ETH进入系统 ↓ 曲线计算 ↓ mint 新币 ↓ 发给用户 卖出时发生了什么? 用户交币 ↓ burn 销毁 ↓ 系统按曲线返ETH 2️⃣ #sato# 从代码层面 为什么销毁和很多人理解的打入黑洞不一样: 👉从 Solidity / ERC20 标准角度 solidity SATO_TOKEN.burn(address(this), satoIn); solidity _totalSupply -= amount; balances[from] -= amount; emit Transfer(from, address(0), amount); SatoToken 的 burn() 实现是标准 ERC20Burnable 那种 这是标准意义上的真正销毁 因为: token 已经 不在任何地址 totalSupply 已减少 永远无法恢复 很多人理解的销毁是转入黑洞地址 但实际上: 现代 ERC20 很多 burn根本不需要:转入黑洞 直接修改 totalSupply
もっと見る