Structs ​
Structs ​
Configs ​
solidity
struct Configs {
uint16 supplyRateMagnifier;
uint16 borrowRateMagnifier;
uint16 collateralFactor;
uint16 liquidationThreshold;
uint16 liquidationMaxLimit;
uint16 withdrawalGap;
uint16 liquidationPenalty;
uint16 borrowFee;
address oracle;
uint256 oraclePriceOperate;
uint256 oraclePriceLiquidate;
address rebalancer;
}ExchangePricesAndRates ​
solidity
struct ExchangePricesAndRates {
uint256 lastStoredLiquiditySupplyExchangePrice;
uint256 lastStoredLiquidityBorrowExchangePrice;
uint256 lastStoredVaultSupplyExchangePrice;
uint256 lastStoredVaultBorrowExchangePrice;
uint256 liquiditySupplyExchangePrice;
uint256 liquidityBorrowExchangePrice;
uint256 vaultSupplyExchangePrice;
uint256 vaultBorrowExchangePrice;
uint256 supplyRateVault;
uint256 borrowRateVault;
uint256 supplyRateLiquidity;
uint256 borrowRateLiquidity;
uint256 rewardsRate; // rewards rate in percent 1e2 precision (1% = 100, 100% = 10000)
}TotalSupplyAndBorrow ​
solidity
struct TotalSupplyAndBorrow {
uint256 totalSupplyVault;
uint256 totalBorrowVault;
uint256 totalSupplyLiquidity;
uint256 totalBorrowLiquidity;
uint256 absorbedSupply;
uint256 absorbedBorrow;
}LimitsAndAvailability ​
solidity
struct LimitsAndAvailability {
uint256 withdrawLimit;
uint256 withdrawableUntilLimit;
uint256 withdrawable;
uint256 borrowLimit;
uint256 borrowableUntilLimit; // borrowable amount until any borrow limit (incl. max utilization limit)
uint256 borrowable; // actual currently borrowable amount (borrow limit - already borrowed) & considering balance, max utilization
uint256 borrowLimitUtilization; // borrow limit for `maxUtilization` config at Liquidity
uint256 minimumBorrowing;
}CurrentBranchState ​
solidity
struct CurrentBranchState {
uint256 status; // if 0 then not liquidated, if 1 then liquidated, if 2 then merged, if 3 then closed
int256 minimaTick;
uint256 debtFactor;
uint256 partials;
uint256 debtLiquidity;
uint256 baseBranchId;
int256 baseBranchMinima;
}VaultState ​
solidity
struct VaultState {
uint256 totalPositions;
int256 topTick;
uint256 currentBranch;
uint256 totalBranch;
uint256 totalBorrow;
uint256 totalSupply;
CurrentBranchState currentBranchState;
}VaultEntireData ​
solidity
struct VaultEntireData {
address vault;
IFluidVaultT1.ConstantViews constantVariables;
Configs configs;
ExchangePricesAndRates exchangePricesAndRates;
TotalSupplyAndBorrow totalSupplyAndBorrow;
LimitsAndAvailability limitsAndAvailability;
VaultState vaultState;
// liquidity related data such as supply amount, limits, expansion etc.
FluidLiquidityResolverStructs.UserSupplyData liquidityUserSupplyData;
// liquidity related data such as borrow amount, limits, expansion etc.
FluidLiquidityResolverStructs.UserBorrowData liquidityUserBorrowData;
}UserPosition ​
solidity
struct UserPosition {
uint256 nftId;
address owner;
bool isLiquidated;
bool isSupplyPosition; // if true that means borrowing is 0
int256 tick;
uint256 tickId;
uint256 beforeSupply;
uint256 beforeBorrow;
uint256 beforeDustBorrow;
uint256 supply;
uint256 borrow;
uint256 dustBorrow;
}LiquidationStruct ​
liquidation related data
Liquidity in Two will always be >= One. Sometimes One can provide better swaps, sometimes Two can provide better swaps. But available in Two will always be >= One
solidity
struct LiquidationStruct {
address vault;
address tokenIn;
address tokenOut;
uint256 tokenInAmtOne;
uint256 tokenOutAmtOne;
uint256 tokenInAmtTwo;
uint256 tokenOutAmtTwo;
}Properties
| Name | Type | Description |
|---|---|---|
vault | address | address of vault |
tokenIn | address | |
tokenOut | address | |
tokenInAmtOne | uint256 | |
tokenOutAmtOne | uint256 | |
tokenInAmtTwo | uint256 | |
tokenOutAmtTwo | uint256 |
AbsorbStruct ​
solidity
struct AbsorbStruct {
address vault;
bool absorbAvailable;
}
