0

我正在尝试使用 Uniswap v3 获取包含令牌符号的所有池的列表,以获取套利机会。例如,如果我想查找所有包含“WETH”的池。

使用子图

{
    tokens(first: 10, where:{symbol:"WETH"}){
    id
    name
    symbol
  }
}

回报:

{
  "data": {
    "tokens": [
      {
        "id": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
        "name": "Wrapped Ether",
        "symbol": "WETH"
      }
    ]
  }
}

一旦我有一个选定的池,我将拥有token0token1稍后在factory.getPool().

现在要查找包含 WETH 的池,我使用图表来检查token0OR是否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”的所有池的列表,以及在工厂中使用的池 ID 来执行交换。

所以,我想知道是否有更简单的方法可以做到这一点!?

4

0 回答 0