Etherscan

getAmountsIn - 錯誤:返回錯誤:執行恢復:ds-math-sub-underflow

  • March 13, 2022

我是乙太坊和 Solidity 的新手,最近遇到了以下我無法理解的問題。

我正在嘗試使用 UniswapV2 路由器來計算代幣之間的匯率。我正在使用 getAmountsIn 方法並註意到以下行為:

我在 UniswapRouterV2 中使用USDTSHIB如下

在此處輸入圖像描述

如您所見,我正在嘗試將 10000 TETH 轉換為 SHIB。路由器顯示 ds-math-sub-underflow 錯誤,我不知道為什麼會發生。在 uniswap 上,這個計算可以毫無問題地完成(儘管從未執行過)。

這個問題也發生在 PancakeSwapRouterV2 中。

問題:

  1. TETH 有 6 位小數,所以如果我想交易 10000TETH,我在 amountOut 欄位中插入的值應該是 10000 * 10^6,對吧?
  2. 此錯誤是否與網路中可用的 SHIB 數量有關?
  3. 有什麼辦法可以解決這個問題?

如果您能提供任何有用的資源來閱讀有關此問題的更多資訊,我將不勝感激。

池中只有約 5k USDT。您有小數點後一位,您試圖取出 1000 USDT,但您已寫入 10000 USDT,這大於池中導致估計下溢的 USDT 數量。

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