diff --git a/contracts/mainnet/connectors/euler/interface.sol b/contracts/mainnet/connectors/euler/interface.sol index 8d62552d..c4f13ac4 100644 --- a/contracts/mainnet/connectors/euler/interface.sol +++ b/contracts/mainnet/connectors/euler/interface.sol @@ -64,8 +64,7 @@ interface IEulerDToken { ) external returns (bool); } -interface IEulerSwap { - struct Swap1InchParams { +struct Swap1InchParams { uint256 subAccountIdIn; uint256 subAccountIdOut; address underlyingIn; @@ -73,7 +72,8 @@ interface IEulerSwap { uint256 amount; uint256 amountOutMinimum; bytes payload; - } +} +interface IEulerSwap { function swap1Inch(Swap1InchParams memory) external; } diff --git a/contracts/mainnet/connectors/euler/main.sol b/contracts/mainnet/connectors/euler/main.sol index 415120d6..070832bf 100644 --- a/contracts/mainnet/connectors/euler/main.sol +++ b/contracts/mainnet/connectors/euler/main.sol @@ -171,16 +171,15 @@ abstract contract Euler is Helpers { { uint256 _amt = getUint(getId, amt); - bool isEth = token == ethAddr ? true : false; - + bool isEth = token == ethAddr; address _token = isEth ? wethAddr : token; + IEulerDToken borrowedDToken = IEulerDToken( markets.underlyingToDToken(_token) ); + _amt = _amt == uint256(-1) ? borrowedDToken.balanceOf(address(this)) : _amt; if (isEth) { -_amt = _amt == uint256(-1) ? borrowedDToken.balanceOf(address(this)) : _amt; -if (isEth) { convertEthToWeth(isEth, TokenInterface(_token), _amt); } @@ -448,8 +447,7 @@ if (isEth) { wmul(params.unitAmt, helperParams._sellAmt18) ); - IEulerSwap.Swap1InchParams memory oneInchParams = IEulerSwap - .Swap1InchParams({ + Swap1InchParams memory oneInchParams = Swap1InchParams({ subAccountIdIn: params.subAccountFrom, subAccountIdOut: params.subAccountTo, underlyingIn: helperParams._sellAddr, diff --git a/contracts/mainnet/connectors/euler/variables.sol b/contracts/mainnet/connectors/euler/variables.sol deleted file mode 100644 index bfd4fdfa..00000000 --- a/contracts/mainnet/connectors/euler/variables.sol +++ /dev/null @@ -1,12 +0,0 @@ -//SPDX-License-Identifier: MIT -pragma solidity ^0.7.0; -import "./interface.sol"; - -contract Variables { - address internal constant EULER_MAINNET = - 0x27182842E098f60e3D576794A5bFFb0777E025d3; - IEulerMarkets internal constant markets = - IEulerMarkets(0x3520d5a913427E6F0D6A83E07ccD4A4da316e4d3); - IEulerSwap internal constant swapExec = - IEulerSwap(0x7123C8cBBD76c5C7fCC9f7150f23179bec0bA341); -} diff --git a/scripts/tests/mainnet/tokens.ts b/scripts/tests/mainnet/tokens.ts index 0e00fec7..b3f26d76 100644 --- a/scripts/tests/mainnet/tokens.ts +++ b/scripts/tests/mainnet/tokens.ts @@ -27,6 +27,13 @@ export const tokens = { name: "USD Coin", address: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", decimals: 6 + }, + weth: { + type: "token", + symbol: "WETH", + name: "Wrapped Ether", + address: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + decimals: 18 } };