工作原理
前期工作
请参见Chainlink Oracle 接口文档
https://docs.chain.link/data-feeds/api-reference#aggregatorv3interface
支持的Frax资产
目前支持 frxETH/ETH 和 sfrxETH/ETH。
Frax双 oracle 价格逻辑
frxEth
frxEth价格是从两个链上价格来源确定的。第一个价格来源是frxEth / ETH Curve池的EMA预言机 - 0xa1f8a6807c402e4a15ef4eba36528a3fed24e577。该价格的最低限制为0.7(0.7 frxEth = 1 ETH),最高限制为1(1 frxEth = 1 ETH)。
第二个价格来源来自Uniswap的frxEth / FRAX池的TWAP预言机 - 0x36C060Cc4b088c830a561E959A679A58205D3F56。然后,我们从这个Chainlink预言机(0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419)获取ETH的美元价格,并从这个Chainlink预言机(0xB9E1E3A9feFf48998E45Fa90847ed4D467E8BcfD)获取FRAX的美元价格。
这些Chainlink价格用于将frxEth / FRAX池价格转换为frxEth / ETH价格,使用以下公式:
来自Uniswap的价格同样被限制在0.7和1之间,反映了Curve的价格。
这两个价格中较低的价格被返回为priceLow,较高的价格被返回为priceHigh。这些价格随后被写入frxEth / ETH的Frax预言机中。
sfrxEth
简单地从sfrxEth合约中检索pricePerShare(),以与上述frxEth双预言机相同的方式检索priceHigh和priceLow,并返回以下方程:
这是因为pricePerShare()
返回一个sfrxEth
值多少个frxEth
。pricePerShare()
会随着时间的推移而上涨。
这些价格随后被写入sfrxEth / ETH
的Frax Oracle。
如何使用Chainlink接口 - AggregatorV3Interface
只需在Frax Oracle合约上调用 https://docs.chain.link/data-feeds/api-reference#getrounddata 或 https://docs.chain.link/data-feeds/api-reference#latestrounddata,以获取您想要价格的资产。
二层网络的Frax 预言机
即将到来......
Last updated