[英]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.