簡體   English   中英

合約的 Web3py 交換代幣路徑

[英]Web3py swap tokens path of contracts

我正在嘗試使用swapExactETHForTokensSupportingFeeOnTransferTokens function 將令牌與 web3py 交換,其中一些令牌運行良好,在其他情況下我收到錯誤“執行恢復:PancakeRouter: INSUFFICIENT_OUTPUT_AMOUNT ”我正在通知參數“ amountOutMin (uint256) ”來控制滑移。 我在有效和無效的代幣中看到不同的是用於交換的合約的路徑。

在 poocoin 網站上,當我進行交易時,合約路徑是“ WBNB > TOKEN ”,即從 BNB 直接到 TOKEN,中間有一些其他合約,如“ WBNB > WUSD > TOKEN " 不起作用,這些路徑更改為相同的令牌,請參見下圖:

在此處輸入圖像描述 在此處輸入圖像描述 在此處輸入圖像描述

poocoin 如何識別用於將 BNB 轉換為 TOKEN 的合約? 如何識別我應該在參數“路徑(地址[]) ”中使用的聯系人

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

我正在尋找同樣的東西,現在,答案就在這個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)

例如

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM