From 806cfb6a62db03bbe38986ea9ab3dcd10e835efa Mon Sep 17 00:00:00 2001 From: Attens1423 Date: Tue, 28 Nov 2023 18:01:06 +0800 Subject: [PATCH] fix weth transfer --- archive/DODOV2Proxy01.sol | 3 ++- contracts/SmartRoute/DODOV2Proxy02.sol | 3 ++- contracts/SmartRoute/adapter/UniV3Adapter.sol | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/archive/DODOV2Proxy01.sol b/archive/DODOV2Proxy01.sol index 0e5c678..57052dc 100644 --- a/archive/DODOV2Proxy01.sol +++ b/archive/DODOV2Proxy01.sol @@ -335,7 +335,8 @@ contract DODOV2Proxy01 is IDODOV2Proxy01, ReentrancyGuard, InitializableOwnable uint256 originToTokenBalance = IERC20(toToken).balanceOf(msg.sender); IWETH(_WETH_).deposit{value: msg.value}(); - IWETH(_WETH_).transfer(dodoPairs[0], msg.value); + bool success = IWETH(_WETH_).transfer(dodoPairs[0], msg.value); + require(success, "WETH_TRANSFER_FAIL"); for (uint256 i = 0; i < dodoPairs.length; i++) { if (i == dodoPairs.length - 1) { diff --git a/contracts/SmartRoute/DODOV2Proxy02.sol b/contracts/SmartRoute/DODOV2Proxy02.sol index bc0b91e..0613f6e 100644 --- a/contracts/SmartRoute/DODOV2Proxy02.sol +++ b/contracts/SmartRoute/DODOV2Proxy02.sol @@ -226,7 +226,8 @@ contract DODOV2Proxy02 is IDODOV2Proxy01, ReentrancyGuard, InitializableOwnable uint256 originToTokenBalance = IERC20(toToken).balanceOf(msg.sender); IWETH(_WETH_).deposit{value: msg.value}(); - IWETH(_WETH_).transfer(dodoPairs[0], msg.value); + bool success = IWETH(_WETH_).transfer(dodoPairs[0], msg.value); + require(success, "WETH_TRANSFER_FAIL"); for (uint256 i = 0; i < dodoPairs.length; i++) { if (i == dodoPairs.length - 1) { diff --git a/contracts/SmartRoute/adapter/UniV3Adapter.sol b/contracts/SmartRoute/adapter/UniV3Adapter.sol index 9979a7a..996ed7c 100644 --- a/contracts/SmartRoute/adapter/UniV3Adapter.sol +++ b/contracts/SmartRoute/adapter/UniV3Adapter.sol @@ -103,7 +103,8 @@ contract UniV3Adapter is IDODOAdapter, IUniswapV3SwapCallback, InitializableOwna if (token == _WETH_ && address(this).balance >= value) { // pay with WETH9 IWETH(_WETH_).deposit{value: value}(); // wrap only what is needed to pay - IWETH(_WETH_).transfer(recipient, value); + bool success = IWETH(_WETH_).transfer(recipient, value); + require(success, "WETH_TRANSFER_FAIL"); } else if (payer == address(this)) { // pay with tokens already in the contract (for the exact input multihop case) SafeERC20.safeTransfer(IERC20(token), recipient, value);