A proposed oracle implementation is below. It borrows from AAVE’s capped price oracle idea. The key points are
- wstETH → stETH uses Lido’s exchange rate value
- stETH → ETH uses Chainlink provided value but is capped at 1 ETH (i.e. stETH market price is used if below one ETH, but market cannot be manipulated to value stETH over 1 ETH)
- ETH → USD as provided by chainlink
This protects from upward price manipulation but still tracks downward price movements.
I think this is a good compromise between exchange and market values, but curious on communities opinions.
https://github.com/z3taproject/comet/blob/main/contracts/pricefeeds/WstETHUSDPriceFeed.sol