code restructured + minor edits

This commit is contained in:
Shriya Tyagi 2022-07-06 17:01:59 +04:00
parent 28e7a0d0f1
commit ba0f866bba

View File

@ -369,6 +369,15 @@ abstract contract Euler is Helpers {
_eventParam = abi.encode(subAccountId, debtReceiver, token, amount); _eventParam = abi.encode(subAccountId, debtReceiver, token, amount);
} }
struct swapHelper {
address _sellAddr;
address _buyAddr;
uint _buyDec;
uint _sellDec;
uint _sellAmt18;
uint _slippageAmt;
}
struct swapParams { struct swapParams {
uint256 subAccountFrom; uint256 subAccountFrom;
uint subAccountTo; uint subAccountTo;
@ -386,33 +395,34 @@ abstract contract Euler is Helpers {
payable payable
returns (string memory _eventName, bytes memory _eventParam) returns (string memory _eventName, bytes memory _eventParam)
{ {
bool isEthSellAddr = params.sellAddr == ethAddr; swapHelper memory helperParams;
address _sellAddr = isEthSellAddr ? wethAddr : params.sellAddr;
bool isEthBuyAddr = params.sellAddr == ethAddr; helperParams._sellAddr = params.sellAddr == ethAddr ? wethAddr : params.sellAddr;
address _buyAddr = isEthBuyAddr ? wethAddr : params.buyAddr; helperParams._buyAddr = params.sellAddr == ethAddr ? wethAddr : params.buyAddr;
TokenInterface sellToken = TokenInterface(_sellAddr); TokenInterface sellToken = TokenInterface(helperParams._sellAddr);
TokenInterface buyToken = TokenInterface(_buyAddr); TokenInterface buyToken = TokenInterface(helperParams._buyAddr);
approve(sellToken, address(swapExec), params.sellAmt); approve(sellToken, address(swapExec), params.sellAmt);
(uint _buyDec, uint _sellDec) = getTokensDec(buyToken, sellToken); (helperParams._buyDec, helperParams._sellDec) = getTokensDec(buyToken, sellToken);
uint _sellAmt18 = convertTo18(_sellDec, params.sellAmt); helperParams._sellAmt18 = convertTo18(helperParams._sellDec, params.sellAmt);
uint _slippageAmt = convert18ToDec(_buyDec, wmul(params.unitAmt, _sellAmt18)); helperParams._slippageAmt = convert18ToDec(helperParams._buyDec, wmul(params.unitAmt, helperParams._sellAmt18));
IEulerSwap.Swap1InchParams memory oneInchParams = IEulerSwap.Swap1InchParams({ IEulerSwap.Swap1InchParams memory oneInchParams = IEulerSwap.Swap1InchParams({
subAccountIdIn: params.subAccountFrom, subAccountIdIn: params.subAccountFrom,
subAccountIdOut: params.subAccountTo, subAccountIdOut: params.subAccountTo,
underlyingIn: _sellAddr, underlyingIn: helperParams._sellAddr,
underlyingOut: _buyAddr, underlyingOut: helperParams._buyAddr,
amount: params.sellAmt, amount: params.sellAmt,
amountOutMinimum: _slippageAmt, amountOutMinimum: helperParams._slippageAmt,
payload: params.callData payload: params.callData
}); });
if(!checkIfEnteredMarket(_buyAddr)) { swapExec.swap1Inch(oneInchParams);
markets.enterMarket(params.subAccountTo, _buyAddr);
if(!checkIfEnteredMarket(helperParams._buyAddr)) {
markets.enterMarket(params.subAccountTo, helperParams._buyAddr);
} }
_eventName = "LogSwap(uint256,uint256,address,address,uint256,uint256,bytes)"; _eventName = "LogSwap(uint256,uint256,address,address,uint256,uint256,bytes)";
@ -432,15 +442,11 @@ abstract contract Euler is Helpers {
address _token = isEth ? wethAddr : newMarkets[i]; address _token = isEth ? wethAddr : newMarkets[i];
IEulerEToken eToken = IEulerEToken(markets.underlyingToEToken(_token)); IEulerEToken eToken = IEulerEToken(markets.underlyingToEToken(_token));
if (eToken.balanceOf(address(this)) > 0) { markets.enterMarket(subAccountId, _token);
markets.enterMarket(subAccountId, _token);
}
} }
_eventName = "LogEnterMarket(uint256,address[])"; _eventName = "LogEnterMarket(uint256,address[])";
_eventParam = abi.encode(subAccountId, newMarkets); _eventParam = abi.encode(subAccountId, newMarkets);
} }
function exitMarket(uint subAccountId, address oldMarket) function exitMarket(uint subAccountId, address oldMarket)