LFJ Developer Docs
  • Liquidity Book
  • Introduction
  • LB V2.2 Key Changes
  • Guides
    • Swap Tokens
    • Add/Remove Liquidity
    • Tracking Volume
    • Tracking Pool Balances
    • Finding The Best Quote
    • Byte32 Decoding
    • Price From Bin Id
    • Bin Id From Price
    • Finding Liquidity Depth
    • User Balances
  • Concepts
    • Concentrated Liquidity
    • Bin Math
    • Bin Liquidity
    • Swaps
    • Fees
    • Oracle
  • Contracts
    • Interfaces
      • ILBLegacyFactory
      • ILBLegacyToken
      • ILBLegacyPair
      • ILBLegacyRouter
      • ILBFlashLoanCallback
      • IPendingOwnable
      • IJoeFactory
      • IJoePair
      • IJoeRouter01
      • IJoeRouter02
      • IWNATIVE
      • ILBFactory
      • ILBHooks
      • ILBPair
      • ILBRouter
      • ILBToken
    • Libraries
      • Math
        • BitMath
        • Encoded
        • LiquidityConfigurations
        • PackedUint128Math
        • SafeCast
        • SampleMath
        • TreeMath
        • Uint128x128Math
        • Uint256x256Math
      • BinHelper
      • Clone
      • Constants
      • FeeHelper
      • Hooks
      • ImmutableClone
      • JoeLibrary
      • OracleHelper
      • PairParameterHelper
      • PriceHelper
      • ReentrancyGuardUpgradeable
      • TokenHelper
    • LBBaseHooks
    • LBFactory
    • LBPair
    • LBQuoter
    • LBRouter
    • LBToken
  • Deployment Addresses
    • Avalanche C-Chain
    • Fuji Testnet
    • Arbitrum One
    • Binance Smart Chain
    • Binance Smart Chain Testnet
    • Ethereum Mainnet
    • Monad Testnet
  • SDK
    • Introduction
    • Making a Trade
    • Adding Liquidity
    • Removing Liquidity
  • Audits
  • AMM
    • Joe V1 Contracts
    • Joe V1 Audits
  • LFJ DEX API
    • Dex Analytics
    • Pools
    • Rewards
    • User
    • User Lifetime Stats
    • Vaults
    • Models
  • LFJ Aggregator API
    • Default
    • Models
Powered by GitBook
On this page
  • LBPairInformation
  • LBPairCreated
  • FeeRecipientSet
  • FlashLoanFeeSet
  • LBPairImplementationSet
  • LBPairIgnoredStateChanged
  • PresetSet
  • PresetOpenStateChanged
  • PresetRemoved
  • QuoteAssetAdded
  • QuoteAssetRemoved
  • getMinBinStep
  • getFeeRecipient
  • getMaxFlashLoanFee
  • getFlashLoanFee
  • getLBPairImplementation
  • getNumberOfLBPairs
  • getLBPairAtIndex
  • getNumberOfQuoteAssets
  • getQuoteAssetAtIndex
  • isQuoteAsset
  • getLBPairInformation
  • getPreset
  • getAllBinSteps
  • getAllLBPairs
  • setLBPairImplementation
  • createLBPair
  • setLBPairIgnored
  • setPreset
  • setPresetOpenState
  • removePreset
  • setFeesParametersOnPair
  • setFeeRecipient
  • setFlashLoanFee
  • addQuoteAsset
  • removeQuoteAsset
  • forceDecay
  1. Contracts
  2. Interfaces

ILBFactory

Required interface of LBFactory contract

LBPairInformation

struct LBPairInformation{
    uint16 binStep;
    ILBPair LBPair;
    bool createdByOwner;
    bool ignoredForRouting;
}

Structure to store the LBPair information, such as:

  • binStep: The bin step of the LBPair

  • LBPair: The address of the LBPair

  • createdByOwner: Whether the pair was created by the owner of the factory

  • ignoredForRouting: Whether the pair is ignored for routing or not. An ignored pair will not be explored during routes finding

LBPairCreated

event LBPairCreated(
    IERC20 indexed tokenX, 
    IERC20 indexed tokenY, 
    uint256 indexed binStep, 
    ILBPair LBPair, 
    uint256 pid
    )

FeeRecipientSet

event FeeRecipientSet(address oldRecipient, address newRecipient)

FlashLoanFeeSet

event FlashLoanFeeSet(uint256 oldFlashLoanFee, uint256 newFlashLoanFee)

LBPairImplementationSet

event LBPairImplementationSet(address oldLBPairImplementation, address LBPairImplementation)

LBPairIgnoredStateChanged

event LBPairIgnoredStateChanged(ILBPair indexed LBPair, bool ignored)

PresetSet

event PresetSet(
    uint256 indexed binStep,
    uint256 baseFactor,
    uint256 filterPeriod,
    uint256 decayPeriod,
    uint256 reductionFactor,
    uint256 variableFeeControl,
    uint256 protocolShare,
    uint256 maxVolatilityAccumulator
)

PresetOpenStateChanged

event PresetOpenStateChanged(uint256 indexed binStep, bool indexed isOpen)

PresetRemoved

event PresetRemoved(uint256 indexed binStep);

QuoteAssetAdded

event QuoteAssetAdded(IERC20 indexed quoteAsset)

QuoteAssetRemoved

event QuoteAssetRemoved(IERC20 indexed quoteAsset)

getMinBinStep

function getMinBinStep() external pure override returns (uint256 minBinStep)

getFeeRecipient

function getFeeRecipient() external view override returns (address feeRecipient)

getMaxFlashLoanFee

function getMaxFlashLoanFee() external pure override returns (uint256 maxFee)

getFlashLoanFee

function getFlashLoanFee() external view override returns (uint256 flashloanFee)

getLBPairImplementation

function getLBPairImplementation() external view override returns (address lbPairImplementation)

getNumberOfLBPairs

function getNumberOfLBPairs() external view override returns (uint256 lbPairNumber)

getLBPairAtIndex

function getLBPairAtIndex(uint256 index) external view override returns (ILBPair lbPair)

getNumberOfQuoteAssets

function getNumberOfQuoteAssets() external view override returns (uint256 numberOfQuoteAssets)

getQuoteAssetAtIndex

function getQuoteAssetAtIndex(uint256 index) external view override returns (IERC20 asset)

isQuoteAsset

function isQuoteAsset(IERC20 token) external view override returns (bool isQuote)

getLBPairInformation

function getLBPairInformation(IERC20 tokenA, IERC20 tokenB, uint256 binStep) external view override returns (LBPairInformation memory lbPairInformation)

getPreset

function getPreset(uint256 binStep) external view override returns (uint256 baseFactor, uint256 filterPeriod, uint256 decayPeriod, uint256 reductionFactor, uint256 variableFeeControl, uint256 protocolShare, uint256 maxVolatilityAccumulator, bool isOpen)

getAllBinSteps

function getAllBinSteps() external view override returns (uint256[] memory binStepWithPreset)

getAllLBPairs

function getAllLBPairs(IERC20 tokenX, IERC20 tokenY) external view override returns (LBPairInformation[] memory lbPairsAvailable)

setLBPairImplementation

function setLBPairImplementation(address newLBPairImplementation) external override onlyOwner

createLBPair

function createLBPair(IERC20 tokenX, IERC20 tokenY, uint24 activeId, uint16 binStep) external override returns (ILBPair pair)

setLBPairIgnored

function setLBPairIgnored(IERC20 tokenX, IERC20 tokenY, uint16 binStep, bool ignored) external override onlyOwner

setPreset

function setPreset(uint16 binStep, uint16 baseFactor, uint16 filterPeriod, uint16 decayPeriod, uint16 reductionFactor, uint24 variableFeeControl, uint16 protocolShare, uint24 maxVolatilityAccumulator, bool isOpen) external override onlyOwner

setPresetOpenState

function setPresetOpenState(uint16 binStep, bool isOpen) external override onlyOwner

removePreset

function removePreset(uint16 binStep) external override onlyOwner

setFeesParametersOnPair

function setFeesParametersOnPair(
    IERC20 tokenX,
    IERC20 tokenY,
    uint16 binStep,
    uint16 baseFactor,
    uint16 filterPeriod,
    uint16 decayPeriod,
    uint16 reductionFactor,
    uint24 variableFeeControl,
    uint16 protocolShare,
    uint24 maxVolatilityAccumulator
) external override onlyOwner

setFeeRecipient

function setFeeRecipient(address feeRecipient) external override onlyOwner

setFlashLoanFee

function setFlashLoanFee(uint256 flashLoanFee) external override onlyOwner

addQuoteAsset

function addQuoteAsset(IERC20 quoteAsset) external override onlyOwner

removeQuoteAsset

function removeQuoteAsset(IERC20 quoteAsset) external

forceDecay

function forceDecay(ILBPair lbPair) external
PreviousIWNATIVENextILBHooks

Last updated 8 days ago