Как с помощью подграфа Uniswap v3 или других опций найти пулы ликвидности, содержащие данный символ токена?
Я пытаюсь получить список всех пулов, содержащих символ токена, с помощью Uniswap v3 для возможностей арбитража. Например, если я хочу найти все пулы, содержащие "WETH".
Используя подграф ,
{
tokens(first: 10, where:{symbol:"WETH"}){
id
name
symbol
}
}
Возврат:
{
"data": {
"tokens": [
{
"id": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"name": "Wrapped Ether",
"symbol": "WETH"
}
]
}
}
Как только у меня будет выбранный пул, я буду использовать его позже в
factory.getPool()
.
Теперь, чтобы найти пулы, содержащие WETH, я использую график, чтобы проверить,
token0
ИЛИ
token1
содержит WETH ID,
0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
.
// search token0
{
pools(first:10, where: {
token0:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
}){
token0{
name
symbol
id
}
token1{
name
symbol
id
}
}
}
// search token1
{
pools(first:10, where: {
token1:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
}){
token0{
name
symbol
id
}
token1{
name
symbol
id
}
}
}
Теперь у меня есть список всех пулов, содержащих «WETH» и идентификаторы пула, которые будут использоваться на заводе для выполнения свопов.
Итак, я хотел бы знать, есть ли более простой способ сделать это, пожалуйста !?
1 ответ
Я думаю, вы могли бы использовать свойство «whitelistPools», доступное в объекте запроса Token.
Вот пример, проверенный в проводнике Uniswap v3, и он работает:
{
token(id:"0x6b175474e89094c44da98b954eedeac495271d0f") {
symbol,
name,
whitelistPools (orderBy: liquidity, orderDirection: desc) {
id,
token0 { id, symbol, decimals},
token1 { id, symbol, decimals },
liquidity,
feeTier
}
}
}
В приведенном выше примере я просто передал адрес токена DAI и получил список пулов, содержащих данный токен. Вы также можете узнать, где наш данный токен является «token0» или «token1» (на самом деле token0 — это просто тот, у которого меньше шестнадцатеричное значение адреса).
Из полученного списка вы получаете список пулов, которые вы можете легко отфильтровать из своего кода.