Solidity

swapExactTokensForTokens 具有不同的一個_d重新開始____一種ddr和ss噸這address to?優化掉期

  • April 11, 2022

我已經花了一個小時來弄清楚如何使用我自己的智能合約在不同的交易所/DEX 之間執行以下交換訂單。在下圖中(最佳範例),有效地執行了交換。沒有中間步驟回到原始智能合約地址,代幣直接傳遞到下一個池(但通過另一個 DEX)。

優化範例:

範例交換,優化

如何在技術上做到這一點?不幸的是,我沒有用 管理它swapExactTokensForTokens,至少當我想指定address to池時出現錯誤。

這是一個不好的例子,沒有優化。 在此處輸入圖像描述

在此範例中,交換被轉移回原始智能合約,並從合約中進行另一次交換。那效率不高,當然要消耗汽油!

我希望你能在這裡幫助我? 非常感謝你

您不必使用 Uniswap V2 路由器,而是可以直接與這些對進行互動。只需將確切的輸入量傳輸到該對,然後呼叫swap()該對傳遞下一個對作為to

您可以使用UniswapV2Library.getAmountsOut()鏈上計算任意長路徑的正確數量。

檢查程式碼swapExactTokensForTokens()以更好地了解如何執行這些操作。

引用自:https://ethereum.stackexchange.com/questions/121216