Skip to content

Commit 1f9a5bc

Browse files
committed
change how native eth is handled in executeToken
1 parent c202aac commit 1f9a5bc

File tree

2 files changed

+13
-12
lines changed

2 files changed

+13
-12
lines changed

AxelarHandler/src/AxelarHandler.sol

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -329,13 +329,13 @@ contract AxelarHandler is AxelarExecutableUpgradeable, Ownable2StepUpgradeable,
329329

330330
_sendNative(token, amount, destination);
331331
} else if (command == Commands.Swap) {
332-
(uint256 amountOutMin, address tokenOut, address destination, bool unwrapOut, bytes memory swap) =
333-
abi.decode(data, (uint256, address, address, bool, bytes));
332+
(address tokenOut, address destination, bytes memory swap) = abi.decode(data, (address, address, bytes));
334333

335-
try SkipSwapRouter.swap(swapRouter, destination, address(tokenIn), tokenOut, amount, amountOutMin, swap)
336-
returns (uint256 amountOut) {
337-
if (unwrapOut) {
338-
_sendNative(address(tokenOut), amountOut, destination);
334+
try SkipSwapRouter.swap(swapRouter, destination, address(tokenIn), tokenOut, amount, swap) returns (
335+
uint256 amountOut
336+
) {
337+
if (tokenOut == address(0)) {
338+
address(destination).call{value: amountOut}("");
339339
emit SwapSuccess(address(tokenIn), address(0), amount, amountOut);
340340
} else {
341341
_sendToken(address(tokenOut), amountOut, destination);

AxelarHandler/src/libraries/SkipSwapRouter.sol

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,12 @@ library SkipSwapRouter {
2020
address inputToken,
2121
address outputToken,
2222
uint256 amountIn,
23-
uint256 amountOutMin,
2423
bytes memory swapData
2524
) public returns (uint256 amountOut) {
2625
uint256 preBalIn = IERC20(inputToken).balanceOf(address(this)) - amountIn;
27-
uint256 preBalOut = IERC20(outputToken).balanceOf(address(this));
26+
27+
uint256 preBalOut =
28+
outputToken == address(0) ? address(this).balance : IERC20(outputToken).balanceOf(address(this));
2829

2930
IERC20(inputToken).forceApprove(router, amountIn);
3031

@@ -34,10 +35,10 @@ library SkipSwapRouter {
3435
_revertWithData(returnData);
3536
}
3637

37-
amountOut = IERC20(outputToken).balanceOf(address(this)) - preBalOut;
38-
39-
if (amountOut < amountOutMin) {
40-
revert InsufficientOutputAmount();
38+
if (outputToken == address(0)) {
39+
amountOut = address(this).balance - preBalOut;
40+
} else {
41+
amountOut = IERC20(outputToken).balanceOf(address(this)) - preBalOut;
4142
}
4243

4344
uint256 dust = IERC20(inputToken).balanceOf(address(this)) - preBalIn;

0 commit comments

Comments
 (0)