# 使用python进行套利监控2 **Published by:** [想住大房子的java程序员](https://paragraph.com/@java-3/) **Published on:** 2022-11-30 **URL:** https://paragraph.com/@java-3/python-2 ## Content 熟悉了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 创建一个查询交易对的函数queryReservesByPairsdef 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,如果顺利,会有以下提示 交易对返回的数据结构好了。坐稳了!下一节我们准备要上国道,之后再进收收费站上高速!!! ## Publication Information - [想住大房子的java程序员](https://paragraph.com/@java-3/): Publication homepage - [All Posts](https://paragraph.com/@java-3/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@java-3): Subscribe to updates