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
Was this helpful?