Bunicorn
Launch Testnet App
  • What is Bunicorn?
  • Introduction
    • AMM DEX
    • Liquidity Mining
    • NFT Collectibles
  • Getting Started
    • Wallets that Bunicorn supports
    • Get BEP20 Tokens
    • Connect your wallet
    • Bunicorn testnet 101
  • Bunicorn Exchange TUTORIAL
    • Tutorial for Trader
    • Tutorial for Liquidity Provider
      • Setup Proxy
      • Swap native BNB to WBNB to farm
      • How to Add Liquidity on Bunicorn
        • How to add liquidity to a Flexible pool?
        • How to add liquidity to a Stable Pool?
      • How to create a new Flexible pool?
        • How to Create a New Smart Pool
        • How to Create a New Shared Pool
      • How to Remove Liquidity
    • How to Join Token Play Farms
      • Stake LPs to Token Play Farm
      • Stake Single Asset $TOP
    • How to Join Ancient Buni NFT Farms
      • NFT Farm Ends. What should I do?
      • Stake LPs to Join the Ancient Buni Farm
      • Stake Single Asset
      • Harvest NFTs (Ancient Buni)
      • How to transfer Ancient BUNI NFTs to another address?
    • How to Join Bunicorn NFT Farms
      • Prestaking Farm Ends. What's next?
      • Stake LP to Join NFT Farms
      • Stake Single Asset
      • Harvest NFTs (Chest/Egg)
      • How to unlock ingame items from Chest/Egg NFTs
      • How to Transfer Egg/Chest NFTs to another address
    • Fee Structure
  • FAQ
    • What is a Flexible Pool?
    • What is a Stable Pool?
    • Can users create Stable pools themselves?
    • Are there any constraints for setting up a Bunicorn Flexible pool?
    • What are the advantages of a Stable Pool?
  • Glossary
  • SMART CONTRACTS
    • Flexible Pools
      • Exchange Proxy
      • Smart Order Router
      • On Chain Registry
      • Smart Pools
        • Overview
        • Configurable Rights Pool
        • Component Libraries
          • Rights Manager
      • Interfaces
      • Addresses
      • Events
      • API Index
    • Stable Pools
      • Pool Addresses
      • Swap Execution
      • Providing Liquidity
      • Flash Swaps
      • Contract Addresses
      • BuniCornRouter02
      • Pool
      • Pool (ERC-20)
      • Library
  • Subgraph API
    • Stable Pools
      • Entities
      • Sample queries
    • Flexible Pools
      • Entities
      • Sample queries
Powered by GitBook
On this page
  • Summary
  • API
  • Adding Pools To Registry
  • Sorting Pools
  • Retrieving Pools

Was this helpful?

  1. SMART CONTRACTS
  2. Flexible Pools

On Chain Registry

PreviousSmart Order RouterNextSmart Pools

Last updated 3 years ago

Was this helpful?

Summary

Stores a registry of Bunicorn Flexible Pool addresses for a given token address pair. Pools can be sorted in order of liquidity and queried via view functions. Used in combination with the swaps can be sourced and executed entirely on-chain.

API

Adding Pools To Registry

addPoolPair

addPoolPair(address pool, address token1, address token2)

Adds a single pool address for token pair.

addPools

addPools(address[] calldata pools, address token1, address token2)

Adds an array of pool addresses for token pair.

Sorting Pools

sortPools

sortPools(address[] calldata tokens, uint256 lengthLimit)

Sorts pools in order of liquidity. lengthLimit can be used to limit the number of pools sorted.

sortPoolsWithPurge

sortPoolsWithPurge(address[] calldata tokens, uint256 lengthLimit)

Sorts pools in order of liquidity and removes any pools with <10% of total liquidity.

Retrieving Pools

getBestPools

getBestPools(address fromToken, address destToken)

Retrieve array of pool addresses for token pair. Ordered by liquidity if previously sorted. Max of 32 pools returned.

getBestPoolsWithLimit

getBestPoolsWithLimit(address fromToken, address destToken, uint256 limit)

Retrieve array of pool addresses for token pair. Ordered by liquidity if previously sorted. Max of n pools returned where n=limit.

getPoolsWithLimit

getPoolsWithLimit(address fromToken, address destToken, uint256 offset, uint256 limit)

Retrieve array of pool addresses using an offset starting position.

Exchange Proxy