【问题标题】:Web3py swap tokens path of contracts合约的 Web3py 交换代币路径
【发布时间】:2022-08-13 03:34:36
【问题描述】:

我正在尝试使用 web3py 交换令牌swapExactETHForTokensSupportingFeeOnTransferTokens功能,有一些标记它完美地工作,在其他我得到错误\“执行恢复:PancakeRouter:INSUFFICIENT_OUTPUT_AMOUNT\" 我正在通知参数 \"amountOutMin (uint256)\" 来控制滑点。我在有效和无效的代币中看到的不同是用于交换的合约的路径。

我在poocoin网站上交易时合约路径为\"WBNB > 代币\",即从BNB直接到TOKEN,也可以使用\"swapExactETHForTokensSupportingFeeOnTransferTokens\" 中间有其他合约时的功能,如 \"WBNB > WUSD > 代币\" 不起作用,并且这些路径更改为相同的标记,请参见下图:

poocoin 如何识别用于将 BNB 转换为 TOKEN 的合约? 如何识别我应该在参数 \" 中使用的联系人路径(地址[])\"

swapExactETHForTokensSupportingFeeOnTransferTokens(
                amountOutMin,
                [WBNB, ????, ???? TOKEN_BUY], # path (address[])
                sender_address,
                (int(time.time()) + 10000)

    标签: python web3py uniswap pancakeswap


    【解决方案1】:

    我正在寻找同样的东西,现在,答案就在这个https://cryptomarketpool.com/use-web3-py-in-python-to-call-uniswap/

    更准确:您在本地获得所有列出的对

    ...
    allPairsLength = factory_contract.functions.allPairsLength().call()
    ...
    

    然后你手动找到你的路线。在本地收集所有交易对后,您可以准确找到从 X 到 Y 的方法,因为您拥有所有 X 对 (X/X1, X/X2 ... X/Xn) 和所有 Y 对 (Y/Y1, Y /X3, ... Y/Yn)。

    你可以得到一对,通过它的 id by

    for i in range(1, PUTTHECOUNTOFTRADINGPAIRSHERE):
        allPairs_address = factory_contract.functions.allPairs(i).call()
        contract = web3.eth.contract(address=allPairs_address, abi=pairs_abi)
        symbol = contract.functions.name().call()
        supply = contract.functions.totalSupply().call()
        print(allPairs_address, supply)
    

    例如

    【讨论】:

      猜你喜欢
      • 2021-07-17
      • 1970-01-01
      • 1970-01-01
      • 2017-08-03
      • 2022-08-21
      • 1970-01-01
      • 1970-01-01
      • 2022-06-14
      • 2020-01-23
      相关资源
      最近更新 更多