Get Pool by Token Addresses

Fetch Fluxbeam Pool based on a single Token Address or a Liquidity Pair

Liquidity pools rely on liquidity token pairs. These pairs are the two tokens that users contribute in equal value to the pool. In Fluxbeam, the liquidity pairs denoted by the mintA and mintB fields. For instance we are trying to get liquidity pools involving USDC and SOL, so we filter mintA and mintB fields using the _in filter.

You can directly copy paste this code on replit and see it in action.

Fetch Pool by Liquidity Pair (USDC-SOL)

async function getPoolByPair(mintAddressA,mintAddressB) {
  const SHYFT_API_KEY = "YOUR_SHYFT_API_KEY";
  //get a fluxbeam Pool details using a liquidity pool pair
  const operationsDoc = `
      query MyQuery {
        Fluxbeam_TokenSwap(
          where: {mintA: {_in: ${JSON.stringify([mintAddressA,mintAddressB])}}, mintB: {_in: ${JSON.stringify([mintAddressA,mintAddressB])}}}
        ) {
          tokenPool
          mintB
          mintA
          pubkey
          curveType
        }
      }
      `; //graphQl query
  const result = await fetch(
    `https://programs.shyft.to/v0/graphql/accounts?api_key=${SHYFT_API_KEY}&network=mainnet-beta`, //SHYFT's GQL endpoint
    {
      method: "POST",
      body: JSON.stringify({
        query: operationsDoc,
        variables: {},
        operationName: "MyQuery",
      }),
    },
  );

  const { errors, data } = await result.json();

  console.dir(data, { depth: null });
}

getPoolByPair("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","So11111111111111111111111111111111111111112")
//for getting the SOL-USDC pool, however you can enter your own liquidity pool pair as well

We can also query liquidity pool involving a particular token address, for that we would have to filter the mintA or mintB field using the _in filter.

Fetch Pool For a Token (SOL)

async function getPoolByMint(mintAddress) {
  const SHYFT_API_KEY = "YOUR_SHYFT_API_KEY";
  //get a fluxbeam Pool details based on a particular token address
  const operationsDoc = `
      query MyQuery {
        Fluxbeam_TokenSwap(
          where: {_or: [{_or: {mintB: {_eq: ${JSON.stringify(mintAddress)}}}},{_or: {mintA: {_eq: ${JSON.stringify(mintAddress)}}}}]}
        ) {
          tokenPool
          mintB
          mintA
          pubkey
          curveType
        }
      }
      `; //graphQl query
  const result = await fetch(
    `https://programs.shyft.to/v0/graphql/accounts?api_key=${SHYFT_API_KEY}&network=mainnet-beta`, //SHYFT's GQL endpoint
    {
      method: "POST",
      body: JSON.stringify({
        query: operationsDoc,
        variables: {},
        operationName: "MyQuery",
      }),
    },
  );

  const { errors, data } = await result.json();

  console.dir(data, { depth: null });
}

getPoolByMint("So11111111111111111111111111111111111111112")
// for getting all Pool involving SOL as a token

Last updated