使用python进行套利监控2

熟悉了python并踩过坑之后,觉得python还是挺好的。毕竟男人嘛,喜新厌旧都是可以理解的。emmmm………

接上一节。

现在开始改写。毕竟一个dex市场是不够的。需要多个。

所以,我们要求有一个集合

中间两个市场一直无法执行成功。估计是墙的问题。
FACTORY_ADDRESSES = [
    CRO_FACTORY_ADDRESS,
    # ZEUS_FACTORY_ADDRESS,
    # LUA_FACTORY_ADDRESS,
    SUSHISWAP_FACTORY_ADDRESS,
    UNISWAP_FACTORY_ADDRESS,
]
循环的pagesize和最大页数
BATCH_COUNT_LIMIT = 10
UNISWAP_BATCH_SIZE = 50

修改queryPairs()

def queryPairs():
    pairList = []
    for i in range(0, len(FACTORY_ADDRESSES)):
        factoryAddress = FACTORY_ADDRESSES[i]
        print("开始查询--->" + factoryAddress)
        result = uniswapQuery.functions.getPairsByIndexRange(factoryAddress, i, UNISWAP_BATCH_SIZE).call()
        for pair in result:
            pairList.append(EthMarketPair(pair[2], pair[0], pair[1]))

        if len(result) < UNISWAP_BATCH_SIZE:
            continue
        # 如果需要进行token黑名单的校验,则需要获取下列的token地址,再进行类似!blacklistTokens.includes(tokenAddress)校验
        # if pair[0] == WETH_ADDRESS:
        #     tokenAddress = pair[1]
        # elif pair[1] == WETH_ADDRESS:
        #     tokenAddress = pair[0]
        # else:
        #     continue
    return pairList

创建一个查询交易对的函数queryReservesByPairs

def queryReservesByPairs(marketAddresList):
    # 返回交易对的储备值, token0 -->reserve[0], token1 -->reserve[1], 时间戳reserve[2]
    result = uniswapQuery.functions.getReservesByPairs(marketAddresList).call()
    print("查询获取库存结果:")
    print(result[0])
    return result[0]

这里,先暂时进行打印输出,以便我们观察结果。

接下来就是修改main函数。

if __name__ == '__main__':
    pairList = queryPairs()
    print("查询交易对结果集长度:%d" % len(pairList))

    marketAddressList = list(map(lambda pair: pair.marketAddress, pairList))
    print("开始查询交易对储备%d" % +len(marketAddressList))
    print(marketAddressList)
    queryReservesByPairs(marketAddressList)

OK,如果顺利,会有以下提示

     

交易对返回的数据结构
交易对返回的数据结构

好了。坐稳了!下一节我们准备要上国道,之后再进收收费站上高速!!!

Subscribe to 想住大房子的java程序员
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.
More from 想住大房子的java程序员

Skeleton

Skeleton

Skeleton