sGYD 内部机制
探索 sGYD 的内部发放和兑换率机制
本部分解释 sGYD 的一些内部操作。大多数用户可能不需要关心这些细节;他们可以简单地使用 ERC4626 接口或 UI 与 sGYD 进行交互。例如,convertToAssets(1e18)
将返回当前 sGYD/GYD 的兑换率。
发放给 sGYD 的收益存储在名为“stream”的结构中。stream 包含发放的金额以及开始和结束的时间戳。相应的金额在开始和结束时间之间线性发放。可以通过 streams()
方法查询所有活跃和待处理的 stream。已过期的 stream 会定期被清理。
sGYD 始终持有存入的 GYD 总量,包括用户存入的部分和 stream 中的部分。如果有活跃的 stream,其中一部分金额被视为待发放(未发放)。这一金额可以通过 totalPendingAmount()
方法查询。ERC4626 方法 totalAssets()
返回当时可以提取的总金额,等于 GYD.balanceOf(sGYD) - sGYD.totalPendingAmount()
。兑换率等于 convertToAssets(ONE) = totalAssets() / totalSupply()
(所有操作均应为 18 位小数的定点数)。
最后更新于