Solidity
我正在嘗試在 Uniswap v2 上添加流動性,但我收到契約提供的錯誤原因:“TransferHelper:TRANSFER_FROM_FAILED”
function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external virtual override ensure(deadline) returns (uint amountA, uint amountB, uint liquidity) { (amountA, amountB) = _addLiquidity(tokenA, tokenB, amountADesired, amountBDesired, amountAMin, amountBMin); address pair = UniswapV2Library.pairFor(factory, tokenA, tokenB); TransferHelper.safeTransferFrom(tokenA, msg.sender, pair, amountA); TransferHelper.safeTransferFrom(tokenB, msg.sender, pair, amountB); liquidity = IUniswapV2Pair(pair).mint(to); }
- 我已經鑄造了 2 個 ERC 代幣,比如代幣 1 和代幣 2,並且還從代幣合約中批准了部署的路由器 v2 合約的地址。
- 還在工廠合約中生成了 INIT_CODE_HASH 並通過刪除 0X 添加到雜湊值。
- 在嘗試處理 addLiquidity 函式時,我收到錯誤“TransferHelper:TRANSFER_FROM_FAILED”。
我使用了乙太掃描中路由器和工廠合約的部署程式碼。我無法指出問題任何幫助將不勝感激。
提前致謝
還需要部署 UniswapV2Pair 才能使 addLiquidity 工作。使用 remix 編輯器部署合約並從 remix 中呼叫 addLiquidity。如果事務仍然失敗,可以使用 remix 調試工具逐步跟踪程式碼流