frxETH 与 Frax 和 FPI 稳定币共享大量代码,并实现了 ERC-2612 标准,允许通过传递给 permit()
函数的 ERC-712 签名进行支出批准。
sfrxETH 是符合 ERC-4626 标准的保险库。要获取 sfrxETH,首先需要将 sfrxETH 合约批准为 frxETH 的支出者,然后调用 mint()
(铸造特定数量的 sfrxETH)或 deposit()
(存入特定数量的 frxETH)。批准和铸造步骤可以通过 depositWithSignature()
或 mintWithSignature()
组合,从而无需进行两次单独的交易。
随着验证者产生质押收益,等量的 frxETH 会被铸造并发送到 sfrxETH 合约。这意味着,一旦奖励同步后,用户可以通过赎回 sfrxETH 获取比最初铸造时更多的 frxETH。
为防止恶意用户盗取验证者的收益分配到保险库,奖励分配会在时间周期内平滑分配。每当调用 sfrxETH 合约上的 syncRewards()
时,合约内部余额之外的任何额外 frxETH 都会排队,线性分配到剩余的周期窗口。
sfrxETH 也符合 ERC-2612 标准,允许使用签名授权。
有关验证者的实时信息和监控,请参阅 Frax Facts。
frxETHMinter 会在接收到 ETH 时通过 submit()
或 receive()
函数铸造 frxETH。每当提交的金额使 minter 余额超过 32 ETH 时,合约会从堆栈中取出一个验证者的存款凭证,并将 32 ETH 的存款连同凭证一起发送到 ETH 2.0 的存款合约,自动启动一个新的验证者节点。
为确保验证者随时准备接受存款,新的凭证会根据需要被添加到堆栈中。如果合约在任何时候耗尽了验证者,frxETH 将继续照常铸造(除非暂停),但不会启动新的验证者,直到更多的验证者凭证被添加到堆栈中。
堆栈中的所有验证者共享同一个提款凭证,即所有验证者共用同一个提款地址。该地址在启动时被设置为 Frax 金库合约,以确保在上线后可以安全地处理提款。
此外,在添加验证者时,必须提供生成存款数据时的 DepositDataRoot
,以确保在 ETH 存入时,防止因参数错误导致的验证者被错误接受。
协议可能设置在提交 ETH 时预留部分资金的比例。这些资金在收集 32 ETH 存款用于启动验证者时不被计算在内,而是用于在 DeFi 市场进行做市操作,以确保 frxETH 的流动性市场。
每个验证者的公开地址和实时统计数据可以在以下链接监控: https://facts.frax.finance/frxeth/validators
第三方和社区对所有 frxETH 验证者的跟踪信息可以在以下链接找到: https://www.rated.network/o/Frax?network=mainnet&timeWindow=1d