Solidity

以程式方式調整 Uniswap 中的滑點容差

  • February 8, 2021

我已經能夠通過 Uniswap 的外圍智能合約Router 02通過呼叫任何函式來進行交換,例如:

function swapTokensForExactTokens(
 uint amountOut,
 uint amountInMax,
 address[] calldata path,
 address to,
 uint deadline
) external returns (uint[] memory amounts);

但是,這些函式都沒有任何涉及滑點的欄位(交易送出和執行之間價格在交易對中的移動量),並且我不知道滑點設置在哪個階段之前啟動掉期交易。

在執行交換交易時,有沒有辦法以程式方式處理滑點容差?

是的,您可以使用該功能對其進行調整。

Uniswap 路由器交換功能將資產 A 換成資產 B,並帶有滑點。大多數情況下,它們的類型是“給 A,得到 B,而 A 或 B 的數量保持不變”。例如,您有一個交換“我想支付 x 數量的 A 代幣並獲得盡可能多的 B 代幣”或“我想支付盡可能少的 A 代幣並獲得 x 數量的 B 代幣”。

在您的情況下,您正在使用一個函式,該函式提供最少數量的 tokenA 並獲得一定數量的 tokenB。因此,這amountOut是您定義的靜態數字,amountInMax是您願意輸入令牌 A 以獲得令牌 B 的靜態數量的最大值。

因此,您的滑點由 定義amountInMax

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