mirror of
https://github.com/Instadapp/fluid-contracts-public.git
synced 2024-07-29 21:57:37 +00:00
d7a58e88ff
ARB: deploy protocols
41 lines
1.7 KiB
Solidity
41 lines
1.7 KiB
Solidity
// SPDX-License-Identifier: BUSL-1.1
|
|
pragma solidity 0.8.21;
|
|
|
|
import { IChainlinkAggregatorV3 } from "../interfaces/external/IChainlinkAggregatorV3.sol";
|
|
import { IRedstoneOracle } from "../interfaces/external/IRedstoneOracle.sol";
|
|
|
|
abstract contract ChainlinkStructs {
|
|
struct ChainlinkFeedData {
|
|
/// @param feed address of Chainlink feed.
|
|
IChainlinkAggregatorV3 feed;
|
|
/// @param invertRate true if rate read from price feed must be inverted.
|
|
bool invertRate;
|
|
/// @param token0Decimals decimals of asset 0. E.g. for a USDC/ETH feed, USDC is token0 and has 6 decimals.
|
|
/// (token1Decimals are available directly via Chainlink `FEED.decimals()`)
|
|
uint256 token0Decimals;
|
|
}
|
|
|
|
struct ChainlinkConstructorParams {
|
|
/// @param param hops count of hops, used for sanity checks. Must be 1, 2 or 3.
|
|
uint8 hops;
|
|
/// @param feed1 Chainlink feed 1 data. Required.
|
|
ChainlinkFeedData feed1;
|
|
/// @param feed2 Chainlink feed 2 data. Required if hops > 1.
|
|
ChainlinkFeedData feed2;
|
|
/// @param feed3 Chainlink feed 3 data. Required if hops > 2.
|
|
ChainlinkFeedData feed3;
|
|
}
|
|
}
|
|
|
|
abstract contract RedstoneStructs {
|
|
struct RedstoneOracleData {
|
|
/// @param oracle address of Redstone oracle.
|
|
IRedstoneOracle oracle;
|
|
/// @param invertRate true if rate read from price feed must be inverted.
|
|
bool invertRate;
|
|
/// @param token0Decimals decimals of asset 0. E.g. for a USDC/ETH feed, USDC is token0 and has 6 decimals.
|
|
/// (token1Decimals are available directly via Redstone `Oracle.decimals()`)
|
|
uint256 token0Decimals;
|
|
}
|
|
}
|