index/functions/bidirectionalTokenMatch.md
bidirectionalTokenMatch(
token0,token1,tokenA,tokenB):boolean
Check if two token pairs match in either order (bidirectional).
Compares two pairs of tokens to see if they represent the same pair, accounting for different orderings (A,B matches B,A). Essential for pool pair matching in DEX operations.
Consolidated from 4 duplicated patterns in bidirectional token matching:
(token0 === tokenA && token1 === tokenB) || (token0 === tokenB && token1 === tokenA)- Pool pair matching logic
Parameters
| Parameter | Type | Description |
|---|---|---|
token0 | string | First token in pair A |
token1 | string | Second token in pair A |
tokenA | string | First token in pair B |
tokenB | string | Second token in pair B |
Returns
boolean
True if both pairs represent the same token pair (in any order)
Examples
Direct pool pair matching
import { bidirectionalTokenMatch } from '@gala-chain/launchpad-sdk';
const poolToken0 = 'GALA';
const poolToken1 = 'GUSDC';
const searchToken0 = 'GUSDC';
const searchToken1 = 'GALA';
if (bidirectionalTokenMatch(poolToken0, poolToken1, searchToken0, searchToken1)) {
// Found matching pool (order doesn't matter)
}
Finding matching DEX pool
import { bidirectionalTokenMatch } from '@gala-chain/launchpad-sdk';
const targetPool = { token0: 'GALA', token1: 'GUSDC' };
const allPools = [...];
const match = allPools.find(pool =>
bidirectionalTokenMatch(pool.token0, pool.token1, targetPool.token0, targetPool.token1)
);
Liquidity position matching
import { bidirectionalTokenMatch } from '@gala-chain/launchpad-sdk';
const position = { token0: 'GUSDC', token1: 'GALA' };
const newPoolTokens = { token0: 'GALA', token1: 'GUSDC' };
if (bidirectionalTokenMatch(position.token0, position.token1, newPoolTokens.token0, newPoolTokens.token1)) {
console.log('Position is in the same pool');
}
Since
6.14.0