Add spot oracles to the Cauldron so that all assets can be priced in ETH
The Solvency contract sources oracles from the Cauldron to price all protocol assets and redeemable fyToken in ETH terms. A few extra oracles need to be set up. This doesn't make any assets into collaterals or bases, and doesn't change the collateral ratio of any existing pairs.
The summary of the execution is as follows:
- Governance proposal a. Add some of the existing oracles as sources in the CompositeMultiOracle for the missing pairs b. Add some additional paths in CompositeMultiOracle c. Add the existing oracles as the spotOracle for the missing pairs, with 200% as the collateralization ratio
These steps are encoded here (access restricted).
This input will be used:
/// @notice Sources that will be added to the Composite Oracle
/// @param Base asset identifier (bytes6 tag)
/// @param Quote asset identifier (bytes6 tag)
/// @param Address for the source
export const newCompositeSources: Array<[string, string, string]> = [
[YVUSDC, USDC, protocol.get(YEARN) as string],
[FDAI2203, DAI, protocol.get(NOTIONAL) as string],
[FDAI2206, DAI, protocol.get(NOTIONAL) as string],
[FDAI2209, DAI, protocol.get(NOTIONAL) as string],
[FUSDC2203, USDC, protocol.get(NOTIONAL) as string],
[FUSDC2206, USDC, protocol.get(NOTIONAL) as string],
[FUSDC2209, USDC, protocol.get(NOTIONAL) as string],
]
/// @notice Paths that will be added to the Composite Oracle
/// @param Base asset identifier (bytes6 tag)
/// @param Quote asset identifier (bytes6 tag)
/// @param Path to traverse (array of bytes6 tags)
export const newCompositePaths: Array<[string, string, Array<string>]> = [
[YVUSDC, ETH, [USDC]],
[FDAI2203, ETH, [DAI]],
[FDAI2206, ETH, [DAI]],
[FDAI2209, ETH, [DAI]],
[FUSDC2203, ETH, [USDC]],
[FUSDC2206, ETH, [USDC]],
[FUSDC2209, ETH, [USDC]],
]
export const newSpotOracles: Array<[string, string, string, number]> = [
[WBTC, ETH, protocol.get(CHAINLINK) as string, 2000000],
[WSTETH, ETH, protocol.get(COMPOSITE) as string, 2000000],
[LINK, ETH, protocol.get(CHAINLINK) as string, 2000000],
[ENS, ETH, protocol.get(UNISWAP) as string, 2000000],
[YVUSDC, ETH, protocol.get(COMPOSITE) as string, 2000000],
[UNI, ETH, protocol.get(CHAINLINK) as string, 2000000],
[FDAI2203, ETH, protocol.get(COMPOSITE) as string, 2000000],
[FDAI2206, ETH, protocol.get(COMPOSITE) as string, 2000000],
[FDAI2209, ETH, protocol.get(COMPOSITE) as string, 2000000],
[FUSDC2203, ETH, protocol.get(COMPOSITE) as string, 2000000],
[FUSDC2206, ETH, protocol.get(COMPOSITE) as string, 2000000],
[FUSDC2209, ETH, protocol.get(COMPOSITE) as string, 2000000],
]
TBA