mirror of
https://github.com/Instadapp/fluid-contracts-public.git
synced 2024-07-29 21:57:37 +00:00
72 lines
3.2 KiB
Solidity
72 lines
3.2 KiB
Solidity
//SPDX-License-Identifier: MIT
|
|
pragma solidity 0.8.21;
|
|
|
|
import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
|
|
|
import { IFluidLiquidityResolver } from "../liquidity/iLiquidityResolver.sol";
|
|
import { IFluidStETHQueue } from "../../../protocols/steth/interfaces/iStETHQueue.sol";
|
|
import { ILidoWithdrawalQueue } from "../../../protocols/steth/interfaces/external/iLidoWithdrawalQueue.sol";
|
|
import { IFluidLiquidity } from "../../../liquidity/interfaces/iLiquidity.sol";
|
|
import { Structs as StETHQueueStructs } from "../../../protocols/steth/structs.sol";
|
|
import { Structs as LiquidityStructs } from "../liquidity/structs.sol";
|
|
|
|
interface IFluidStETHResolver {
|
|
/// @notice address of the stETHQueue contract
|
|
function STETH_QUEUE() external view returns (IFluidStETHQueue);
|
|
|
|
/// @notice address of the Lido Withdrawal Queue contract (0x889edC2eDab5f40e902b864aD4d7AdE8E412F9B1)
|
|
function LIDO_WITHDRAWAL_QUEUE() external view returns (ILidoWithdrawalQueue);
|
|
|
|
/// @notice address of the LiquidityResolver
|
|
function LIQUIDITY_RESOLVER() external view returns (IFluidLiquidityResolver);
|
|
|
|
/// @notice returns all constants and config values
|
|
function config()
|
|
external
|
|
view
|
|
returns (
|
|
IFluidLiquidity liquidity_,
|
|
ILidoWithdrawalQueue lidoWithdrawalQueue_,
|
|
IERC20 stETH_,
|
|
address owner_,
|
|
uint16 maxLTV_,
|
|
bool allowListActive_,
|
|
bool isPaused_,
|
|
LiquidityStructs.UserBorrowData memory userBorrowData_,
|
|
LiquidityStructs.OverallTokenData memory overallTokenData_
|
|
);
|
|
|
|
/// @notice checks if a linked claim for `claimTo_` and `claimTo_` is ready to be processed at Lido Withdrawal Queue
|
|
/// @param claimTo_ claimTo receiver to process the claim for
|
|
/// @param requestIdFrom_ Lido requestId from (start), as emitted at time of queuing via `LogQueue`
|
|
function isClaimable(address claimTo_, uint256 requestIdFrom_) external view returns (bool);
|
|
|
|
/// @notice reads if a certain `auth_` address is an allowed auth or not
|
|
function isAuth(address auth_) external view returns (bool);
|
|
|
|
/// @notice reads if a certain `guardian_` address is an allowed guardian or not
|
|
function isGuardian(address guardian_) external view returns (bool);
|
|
|
|
/// @notice reads if a certain `user_` address is an allowed user or not
|
|
function isUserAllowed(address user_) external view returns (bool);
|
|
|
|
/// @notice reads if the protocol is paused or not
|
|
function isPaused() external view returns (bool);
|
|
|
|
/// @notice reads a Claim struct containing necessary information for executing the claim process from the mapping
|
|
/// claimTo and requestIdFrom -> claims and the claimable status.
|
|
function claim(
|
|
address claimTo_,
|
|
uint256 requestIdFrom_
|
|
) external view returns (StETHQueueStructs.Claim memory claim_, bool isClaimable_);
|
|
|
|
/// @notice returns borrow data and general data (such as rates, exchange prices, utilization, fee, total amounts etc.) for native token
|
|
function getUserBorrowData()
|
|
external
|
|
view
|
|
returns (
|
|
LiquidityStructs.UserBorrowData memory userBorrowData_,
|
|
LiquidityStructs.OverallTokenData memory overallTokenData_
|
|
);
|
|
}
|