Structs ​
Structs ​
OperateMemoryVars ​
solidity
struct OperateMemoryVars {
// ## User's position before update ##
uint256 oldColRaw;
uint256 oldNetDebtRaw; // total debt - dust debt
int256 oldTick;
// ## User's position after update ##
uint256 colRaw;
uint256 debtRaw;
uint256 dustDebtRaw;
int256 tick;
uint256 tickId;
// others
uint256 vaultVariables2;
uint256 branchId;
int256 topTick;
uint256 liquidityExPrice;
uint256 supplyExPrice;
uint256 borrowExPrice;
uint256 branchData;
// user's supply slot data in liquidity
uint256 userSupplyLiquidityData;
}BranchData ​
solidity
struct BranchData {
uint256 id;
uint256 data;
uint256 ratio;
uint256 debtFactor;
int256 minimaTick;
uint256 baseBranchData;
}TickData ​
solidity
struct TickData {
int256 tick;
uint256 data;
uint256 ratio;
uint256 ratioOneLess;
uint256 length;
uint256 currentRatio; // current tick is ratio with partials.
uint256 partials;
}CurrentLiquidity ​
solidity
struct CurrentLiquidity {
uint256 debtRemaining; // Debt remaining to liquidate
uint256 debt; // Current liquidatable debt before reaching next check point
uint256 col; // Calculate using debt & ratioCurrent
uint256 colPerDebt; // How much collateral to liquidate per unit of Debt
uint256 totalDebtLiq; // Total debt liquidated till now
uint256 totalColLiq; // Total collateral liquidated till now
int256 tick; // Current tick to liquidate
uint256 ratio; // Current ratio to liquidate
uint256 tickStatus; // if 1 then it's a perfect tick, if 2 that means it's a liquidated tick
int256 refTick; // ref tick to liquidate
uint256 refRatio; // ratio at ref tick
uint256 refTickStatus; // if 1 then it's a perfect tick, if 2 that means it's a liquidated tick, if 3 that means it's a liquidation threshold
}TickHasDebt ​
solidity
struct TickHasDebt {
int256 tick; // current tick
int256 nextTick; // next tick with liquidity
int256 mapId; // mapping ID of tickHasDebt
uint256 bitsToRemove; // liquidity to remove till tick_ so we can search for next tick
uint256 tickHasDebt; // getting tickHasDebt_ from tickHasDebt[mapId_]
uint256 mostSigBit; // most significant bit in tickHasDebt_ to get the next tick
}LiquidateMemoryVars ​
solidity
struct LiquidateMemoryVars {
uint256 vaultVariables2;
int256 liquidationTick;
int256 maxTick;
uint256 supplyExPrice;
uint256 borrowExPrice;
}AbsorbMemoryVariables ​
solidity
struct AbsorbMemoryVariables {
uint256 debtAbsorbed;
uint256 colAbsorbed;
int256 startingTick;
uint256 mostSigBit;
}ConstantViews ​
solidity
struct ConstantViews {
address liquidity;
address factory;
address adminImplementation;
address secondaryImplementation;
address supplyToken;
address borrowToken;
uint8 supplyDecimals;
uint8 borrowDecimals;
uint256 vaultId;
bytes32 liquiditySupplyExchangePriceSlot;
bytes32 liquidityBorrowExchangePriceSlot;
bytes32 liquidityUserSupplySlot;
bytes32 liquidityUserBorrowSlot;
}RebalanceMemoryVariables ​
solidity
struct RebalanceMemoryVariables {
uint256 liqSupplyExPrice;
uint256 liqBorrowExPrice;
uint256 vaultSupplyExPrice;
uint256 vaultBorrowExPrice;
}
