Skip to content

Commit 950d682

Browse files
committed
use safe transfer
1 parent 7982db3 commit 950d682

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

Diff for: EurekaHandler/src/EurekaHandler.sol

+11-8
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
pragma solidity ^0.8.18;
33

44
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
5+
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
56
import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";
67
import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
78
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
@@ -11,6 +12,8 @@ import {IIBCVoucher} from "./interfaces/lombard/IIBCVoucher.sol";
1112
import {IEurekaHandler} from "./interfaces/IEurekaHandler.sol";
1213

1314
contract EurekaHandler is IEurekaHandler, Initializable, UUPSUpgradeable, OwnableUpgradeable {
15+
using SafeERC20 for IERC20;
16+
1417
address public ics20Transfer;
1518
address public swapRouter;
1619
address public lbtcVoucher;
@@ -43,10 +46,10 @@ contract EurekaHandler is IEurekaHandler, Initializable, UUPSUpgradeable, Ownabl
4346

4447
// Collect fees
4548
if (fees.relayFee > 0) {
46-
IERC20(transferParams.token).transferFrom(msg.sender, fees.relayFeeRecipient, fees.relayFee);
49+
IERC20(transferParams.token).safeTransferFrom(msg.sender, fees.relayFeeRecipient, fees.relayFee);
4750
}
4851

49-
IERC20(transferParams.token).transferFrom(msg.sender, address(this), amount);
52+
IERC20(transferParams.token).safeTransferFrom(msg.sender, address(this), amount);
5053

5154
_sendTransfer(
5255
IICS20TransferMsgs.SendTransferMsg({
@@ -72,7 +75,7 @@ contract EurekaHandler is IEurekaHandler, Initializable, UUPSUpgradeable, Ownabl
7275
) external {
7376
require(block.timestamp < fees.quoteExpiry, "Fee quote expired");
7477

75-
IERC20(swapInputToken).transferFrom(msg.sender, address(this), swapInputAmount);
78+
IERC20(swapInputToken).safeTransferFrom(msg.sender, address(this), swapInputAmount);
7679

7780
uint256 amountOut = _swap(swapInputToken, transferParams.token, swapInputAmount, swapCalldata);
7881

@@ -82,7 +85,7 @@ contract EurekaHandler is IEurekaHandler, Initializable, UUPSUpgradeable, Ownabl
8285

8386
// Collect fees
8487
if (fees.relayFee > 0) {
85-
IERC20(transferParams.token).transfer(fees.relayFeeRecipient, fees.relayFee);
88+
IERC20(transferParams.token).safeTransfer(fees.relayFeeRecipient, fees.relayFee);
8689
}
8790

8891
uint256 amountOutAfterFees = amountOut - _totalFees(fees);
@@ -112,10 +115,10 @@ contract EurekaHandler is IEurekaHandler, Initializable, UUPSUpgradeable, Ownabl
112115

113116
// Collect fees
114117
if (fees.relayFee > 0) {
115-
IERC20(lbtc).transferFrom(msg.sender, fees.relayFeeRecipient, fees.relayFee);
118+
IERC20(lbtc).safeTransferFrom(msg.sender, fees.relayFeeRecipient, fees.relayFee);
116119
}
117120

118-
IERC20(lbtc).transferFrom(msg.sender, address(this), amount);
121+
IERC20(lbtc).safeTransferFrom(msg.sender, address(this), amount);
119122

120123
IERC20(lbtc).approve(lbtcVoucher, amount);
121124

@@ -139,13 +142,13 @@ contract EurekaHandler is IEurekaHandler, Initializable, UUPSUpgradeable, Ownabl
139142
function lombardSpend(uint256 amount) external {
140143
uint256 lbtcBalanceBefore = IERC20(lbtc).balanceOf(address(this));
141144

142-
IERC20(lbtcVoucher).transferFrom(msg.sender, address(this), amount);
145+
IERC20(lbtcVoucher).safeTransferFrom(msg.sender, address(this), amount);
143146

144147
IIBCVoucher(lbtcVoucher).spend(amount);
145148

146149
uint256 lbtcBalanceAfter = IERC20(lbtc).balanceOf(address(this));
147150

148-
IERC20(lbtc).transfer(msg.sender, lbtcBalanceAfter - lbtcBalanceBefore);
151+
IERC20(lbtc).safeTransfer(msg.sender, lbtcBalanceAfter - lbtcBalanceBefore);
149152
}
150153

151154
function _sendTransfer(IICS20TransferMsgs.SendTransferMsg memory transferMsg) internal {

0 commit comments

Comments
 (0)