refactor: move wrap operation and receiver check to _executeSwap
This commit is contained in:
@@ -141,21 +141,12 @@ contract TychoRouter is AccessControl, Dispatcher, Pausable, ReentrancyGuard {
|
|||||||
address receiver,
|
address receiver,
|
||||||
bytes calldata swaps
|
bytes calldata swaps
|
||||||
) external payable whenNotPaused nonReentrant returns (uint256 amountOut) {
|
) external payable whenNotPaused nonReentrant returns (uint256 amountOut) {
|
||||||
if (receiver == address(0)) {
|
|
||||||
revert TychoRouter__AddressZero();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Assume funds already in our router.
|
|
||||||
if (wrapEth) {
|
|
||||||
_wrapETH(amountIn);
|
|
||||||
tokenIn = address(_weth);
|
|
||||||
}
|
|
||||||
|
|
||||||
return _executeSwap(
|
return _executeSwap(
|
||||||
amountIn,
|
amountIn,
|
||||||
tokenIn,
|
tokenIn,
|
||||||
tokenOut,
|
tokenOut,
|
||||||
minAmountOut,
|
minAmountOut,
|
||||||
|
wrapEth,
|
||||||
unwrapEth,
|
unwrapEth,
|
||||||
nTokens,
|
nTokens,
|
||||||
receiver,
|
receiver,
|
||||||
@@ -203,15 +194,8 @@ contract TychoRouter is AccessControl, Dispatcher, Pausable, ReentrancyGuard {
|
|||||||
bytes calldata signature,
|
bytes calldata signature,
|
||||||
bytes calldata swaps
|
bytes calldata swaps
|
||||||
) external payable whenNotPaused nonReentrant returns (uint256 amountOut) {
|
) external payable whenNotPaused nonReentrant returns (uint256 amountOut) {
|
||||||
if (receiver == address(0)) {
|
// For non native ETH, transfer and handle approval.
|
||||||
revert TychoRouter__AddressZero();
|
if (tokenIn != address(0)) {
|
||||||
}
|
|
||||||
|
|
||||||
// For native ETH, assume funds already in our router. Else, transfer and handle approval.
|
|
||||||
if (wrapEth) {
|
|
||||||
_wrapETH(amountIn);
|
|
||||||
tokenIn = address(_weth);
|
|
||||||
} else if (tokenIn != address(0)) {
|
|
||||||
permit2.permit(msg.sender, permitSingle, signature);
|
permit2.permit(msg.sender, permitSingle, signature);
|
||||||
permit2.transferFrom(
|
permit2.transferFrom(
|
||||||
msg.sender,
|
msg.sender,
|
||||||
@@ -226,6 +210,7 @@ contract TychoRouter is AccessControl, Dispatcher, Pausable, ReentrancyGuard {
|
|||||||
tokenIn,
|
tokenIn,
|
||||||
tokenOut,
|
tokenOut,
|
||||||
minAmountOut,
|
minAmountOut,
|
||||||
|
wrapEth,
|
||||||
unwrapEth,
|
unwrapEth,
|
||||||
nTokens,
|
nTokens,
|
||||||
receiver,
|
receiver,
|
||||||
@@ -246,11 +231,21 @@ contract TychoRouter is AccessControl, Dispatcher, Pausable, ReentrancyGuard {
|
|||||||
address tokenIn,
|
address tokenIn,
|
||||||
address tokenOut,
|
address tokenOut,
|
||||||
uint256 minAmountOut,
|
uint256 minAmountOut,
|
||||||
|
bool wrapEth,
|
||||||
bool unwrapEth,
|
bool unwrapEth,
|
||||||
uint256 nTokens,
|
uint256 nTokens,
|
||||||
address receiver,
|
address receiver,
|
||||||
bytes calldata swaps
|
bytes calldata swaps
|
||||||
) internal returns (uint256 amountOut) {
|
) internal returns (uint256 amountOut) {
|
||||||
|
if (receiver == address(0)) {
|
||||||
|
revert TychoRouter__AddressZero();
|
||||||
|
}
|
||||||
|
// For native ETH, assume funds are already in the router.
|
||||||
|
if (wrapEth) {
|
||||||
|
_wrapETH(amountIn);
|
||||||
|
tokenIn = address(_weth);
|
||||||
|
}
|
||||||
|
|
||||||
amountOut = _swap(amountIn, nTokens, swaps);
|
amountOut = _swap(amountIn, nTokens, swaps);
|
||||||
|
|
||||||
if (fee > 0) {
|
if (fee > 0) {
|
||||||
|
|||||||
Reference in New Issue
Block a user