Protocol Documentation
  • Getting Started
    • Overview
    • Own Protocol 101
    • Protocol Philosophy
  • Protocol Flow
  • Contract Architecture
  • Protocol Calculations
  • FAQ's
  • Legal Notice
  • User
    • User Guide
    • User Protocol Functions
  • Interest Rate Curve
  • User Collateral & Liquidation
  • Yield bearing Reserve
  • Pool Halt & Exit
  • Stock Splits
  • Liquidity Provider
    • LP Guide
    • LP Protocol Functions
  • LP Collateral & Liquidation
  • Market-Making Yield
  • LP Short Strategy
  • Market Landscape
    • Competition
  • Future Potential
Powered by GitBook
On this page
  1. Liquidity Provider

LP Protocol Functions

PoolLiquidityManager Functions for LPs

Liquidity Management

function addLiquidity(uint256 amount) external
  • Purpose: Add liquidity to the pool

  • Parameters:

    • amount: Amount of liquidity to add

  • Note: Creates a pending request that will be processed in the next cycle

function reduceLiquidity(uint256 amount) external
  • Purpose: Request to reduce liquidity from the pool

  • Parameters:

    • amount: Amount of liquidity to reduce

  • Note: Creates a pending request that will be processed in the next cycle

Collateral Management

function addCollateral(address lp, uint256 amount) external
  • Purpose: Add additional collateral to an LP position

  • Parameters:

    • lp: Address of the LP receiving the collateral

    • amount: Amount of collateral to add

function reduceCollateral(uint256 amount) external
  • Purpose: Withdraw excess collateral if above the minimum requirement

  • Parameters:

    • amount: Amount of collateral to reduce

  • Note: Will fail if trying to withdraw below the required collateral ratio

Interest Claims

function claimInterest() external
  • Purpose: Claim accrued interest earned by providing liquidity

  • Note: Can be called anytime interest has accrued to the LP

Emergency Functions

function exitPool() external
  • Purpose: Emergency exit when the pool is halted

  • Note: Can only be used when the pool is in a halted state

PoolCycleManager Functions for LPs

Rebalancing Operations

function rebalancePool(address lp, uint256 rebalancePrice) external
  • Purpose: Perform rebalancing at the end of a cycle

  • Parameters:

    • lp: Address of the LP performing the rebalance

    • rebalancePrice: Price at which to execute the rebalance

  • Note: Must be called during the POOL_REBALANCING_ONCHAIN state

function calculateLPRebalanceAmount(address lp, uint256 rebalancePrice) external view returns (uint256 rebalanceAmount, bool isDeposit)
  • Purpose: Calculate how much an LP needs to deposit or will receive during rebalancing

  • Parameters:

    • lp: Address of the LP

    • rebalancePrice: Price at which to calculate the rebalance

  • Returns:

    • rebalanceAmount: Amount the LP needs to deposit or will receive

    • isDeposit: True if LP needs to deposit, false if LP will receive funds

function getLPAssetShare(address lp) external view returns (uint256)
  • Purpose: Get the LP's current share of the asset tokens in the pool

  • Parameters:

    • lp: Address of the LP

  • Returns: The LP's proportional share of the asset supply

  • Note: Based on the LP's current liquidity commitment relative to total liquidity

function getLPCycleAssetShare(address lp, uint256 expectedRebalancePrice) external view returns (uint256)
  • Purpose: Calculate the LP's projected asset share after the current cycle completes

  • Parameters:

    • lp: Address of the LP

    • expectedRebalancePrice: The price at which rebalancing is expected to occur

  • Returns: The LP's projected share of the asset supply after the cycle

  • Note: Takes into account pending requests that will be processed in the current cycle

function getLPCollateralHealth(address liquidityManager, address lp) external view returns (uint8 health)

Purpose: Check the collateral health status of an lp
Returns: 3 = Healthy, 2 = Warning, 1 = Liquidatable
function getLPPosition(address lp) external view returns (LPPosition memory)
  • Purpose: Get detailed information about an LP's position

  • Parameters:

    • lp: Address of the LP

  • Returns: LP's liquidity commitment, collateral, and accrued interest

Cycle Management (Anyone can call these functions)

Protocol operators manage the cycle transitions in the protocol.

function initiateOffchainRebalance() external
  • Purpose: Start the offchain rebalancing phase

  • Note: Can only be called when the pool is active and the market is open

function initiateOnchainRebalance() external
  • Purpose: Start the onchain rebalancing phase after offchain rebalancing

  • Note: Can only be called when the pool is in offchain rebalancing and the market is closed

function rebalanceLP(address lp) external
  • Purpose: Rebalance an LP that hasn't self-rebalanced before the window expires

  • Parameters:

    • lp: Address of the LP to rebalance

  • Note: Anyone can call this after the rebalance window expires

function forceRebalanceLP(address lp) external
  • Purpose: Force rebalance an LP when the halt threshold is reached

  • Parameters:

    • lp: Address of the LP to force rebalance

  • Note: Can only be called when the halt threshold is reached

PreviousLP GuideNextLP Collateral & Liquidation

Last updated 1 month ago