lint added

This commit is contained in:
Shriya Tyagi 2022-07-06 17:40:38 +04:00
parent 37103d99ef
commit a110574642
5 changed files with 335 additions and 247 deletions

View File

@ -2,7 +2,6 @@
pragma solidity ^0.7.0; pragma solidity ^0.7.0;
contract Events { contract Events {
event LogDeposit( event LogDeposit(
uint256 subaccount, uint256 subaccount,
address token, address token,
@ -81,21 +80,15 @@ contract Events {
event LogSwap( event LogSwap(
uint256 subAccountFrom, uint256 subAccountFrom,
uint subAccountTo, uint256 subAccountTo,
address buyAddr, address buyAddr,
address sellAddr, address sellAddr,
uint sellAmt, uint256 sellAmt,
uint unitAmt, uint256 unitAmt,
bytes callData bytes callData
); );
event LogEnterMarket( event LogEnterMarket(uint256 subAccountId, address[] newMarkets);
uint subAccountId,
address[] newMarkets
);
event LogExitMarket( event LogExitMarket(uint256 subAccountId, address oldMarket);
uint subAccountId,
address oldMarket
);
} }

View File

@ -5,7 +5,6 @@ import "./events.sol";
import { Basic } from "../../common/basic.sol"; import { Basic } from "../../common/basic.sol";
contract Helpers is Basic, Variables, Events { contract Helpers is Basic, Variables, Events {
/** /**
* @dev Get total collateral balance for an asset * @dev Get total collateral balance for an asset
*/ */
@ -17,7 +16,11 @@ contract Helpers is Basic, Variables, Events {
enteredMarkets = markets.getEnteredMarkets(address(this)); enteredMarkets = markets.getEnteredMarkets(address(this));
} }
function getSubAccount(address primary, uint subAccountId) public pure returns (address) { function getSubAccount(address primary, uint256 subAccountId)
public
pure
returns (address)
{
require(subAccountId < 256, "sub-account-id-too-big"); require(subAccountId < 256, "sub-account-id-too-big");
return address(uint160(primary) ^ uint160(subAccountId)); return address(uint160(primary) ^ uint160(subAccountId));
} }
@ -26,12 +29,11 @@ contract Helpers is Basic, Variables, Events {
address[] memory enteredMarkets = getEnteredMarkets(); address[] memory enteredMarkets = getEnteredMarkets();
uint256 length = enteredMarkets.length; uint256 length = enteredMarkets.length;
for(uint i = 0; i < length; i++) { for (uint256 i = 0; i < length; i++) {
if (enteredMarkets[i] == token) { if (enteredMarkets[i] == token) {
return true; return true;
} }
} }
return false; return false;
} }
} }

View File

@ -3,42 +3,75 @@ pragma solidity ^0.7.0;
pragma experimental ABIEncoderV2; pragma experimental ABIEncoderV2;
interface IEulerMarkets { interface IEulerMarkets {
function enterMarket(uint subAccountId, address newMarket) external; function enterMarket(uint256 subAccountId, address newMarket) external;
function getEnteredMarkets(address account) external view returns (address[] memory);
function exitMarket(uint subAccountId, address oldMarket) external; function getEnteredMarkets(address account)
function underlyingToEToken(address underlying) external view returns (address); external
function underlyingToDToken(address underlying) external view returns (address); view
returns (address[] memory);
function exitMarket(uint256 subAccountId, address oldMarket) external;
function underlyingToEToken(address underlying)
external
view
returns (address);
function underlyingToDToken(address underlying)
external
view
returns (address);
} }
interface IEulerEToken { interface IEulerEToken {
function deposit(uint subAccountId, uint amount) external; function deposit(uint256 subAccountId, uint256 amount) external;
function withdraw(uint subAccountId, uint amount) external;
function withdraw(uint256 subAccountId, uint256 amount) external;
function decimals() external view returns (uint8); function decimals() external view returns (uint8);
function mint(uint subAccountId, uint amount) external;
function burn(uint subAccountId, uint amount) external; function mint(uint256 subAccountId, uint256 amount) external;
function balanceOf(address account) external view returns (uint);
function transfer(address to, uint amount) external returns (bool); function burn(uint256 subAccountId, uint256 amount) external;
function approve(address spender, uint amount) external returns (bool);
function balanceOf(address account) external view returns (uint256);
function transfer(address to, uint256 amount) external returns (bool);
function approve(address spender, uint256 amount) external returns (bool);
} }
interface IEulerDToken { interface IEulerDToken {
function underlyingToDToken(address underlying) external view returns (address); function underlyingToDToken(address underlying)
external
view
returns (address);
function decimals() external view returns (uint8); function decimals() external view returns (uint8);
function borrow(uint subAccountId, uint amount) external;
function repay(uint subAccountId, uint amount) external; function borrow(uint256 subAccountId, uint256 amount) external;
function balanceOf(address account) external view returns (uint);
function transfer(address to, uint amount) external returns (bool); function repay(uint256 subAccountId, uint256 amount) external;
function approveDebt(uint subAccountId, address spender, uint amount) external returns (bool);
function balanceOf(address account) external view returns (uint256);
function transfer(address to, uint256 amount) external returns (bool);
function approveDebt(
uint256 subAccountId,
address spender,
uint256 amount
) external returns (bool);
} }
interface IEulerSwap { interface IEulerSwap {
struct Swap1InchParams { struct Swap1InchParams {
uint subAccountIdIn; uint256 subAccountIdIn;
uint subAccountIdOut; uint256 subAccountIdOut;
address underlyingIn; address underlyingIn;
address underlyingOut; address underlyingOut;
uint amount; uint256 amount;
uint amountOutMinimum; uint256 amountOutMinimum;
bytes payload; bytes payload;
} }

View File

@ -58,7 +58,14 @@ abstract contract Euler is Helpers {
setUint(setId, _amt); setUint(setId, _amt);
_eventName = "LogDeposit(uint256,address,uint256,bool,uint256,uint256)"; _eventName = "LogDeposit(uint256,address,uint256,bool,uint256,uint256)";
_eventParam = abi.encode(subAccount, token, _amt, enableCollateral, getId, setId); _eventParam = abi.encode(
subAccount,
token,
_amt,
enableCollateral,
getId,
setId
);
} }
/** /**
@ -124,12 +131,14 @@ abstract contract Euler is Helpers {
payable payable
returns (string memory _eventName, bytes memory _eventParam) returns (string memory _eventName, bytes memory _eventParam)
{ {
uint256 _amt = getUint(getId, amt);//max value? uint256 _amt = getUint(getId, amt);
bool isEth = token == ethAddr ? true : false; bool isEth = token == ethAddr ? true : false;
address _token = isEth ? wethAddr : token; address _token = isEth ? wethAddr : token;
IEulerDToken borrowedDToken = IEulerDToken(markets.underlyingToDToken(_token)); IEulerDToken borrowedDToken = IEulerDToken(
markets.underlyingToDToken(_token)
);
borrowedDToken.borrow(subAccount, amt); borrowedDToken.borrow(subAccount, amt);
convertWethToEth(isEth, TokenInterface(_token), _amt); convertWethToEth(isEth, TokenInterface(_token), _amt);
@ -165,11 +174,15 @@ abstract contract Euler is Helpers {
bool isEth = token == ethAddr ? true : false; bool isEth = token == ethAddr ? true : false;
address _token = isEth ? wethAddr : token; address _token = isEth ? wethAddr : token;
IEulerDToken borrowedDToken = IEulerDToken(markets.underlyingToDToken(_token)); IEulerDToken borrowedDToken = IEulerDToken(
markets.underlyingToDToken(_token)
);
if (isEth) convertEthToWeth(isEth, TokenInterface(_token), _amt); if (isEth) convertEthToWeth(isEth, TokenInterface(_token), _amt);
_amt = _amt == type(uint).max ? borrowedDToken.balanceOf(address(this)) : _amt; _amt = _amt == type(uint256).max
? borrowedDToken.balanceOf(address(this))
: _amt;
TokenInterface(_token).approve(EULER_MAINNET, _amt); TokenInterface(_token).approve(EULER_MAINNET, _amt);
borrowedDToken.repay(subAccount, amt); borrowedDToken.repay(subAccount, amt);
@ -227,9 +240,9 @@ abstract contract Euler is Helpers {
*/ */
function burn( function burn(
uint256 subAccount, uint256 subAccount,
address token,//eth address token,
uint256 amt,//max uint256 amt,
uint256 getId,//1 uint256 getId,
uint256 setId uint256 setId
) )
external external
@ -244,7 +257,9 @@ abstract contract Euler is Helpers {
IEulerDToken dToken = IEulerDToken(markets.underlyingToDToken(_token)); IEulerDToken dToken = IEulerDToken(markets.underlyingToDToken(_token));
IEulerEToken eToken = IEulerEToken(markets.underlyingToEToken(_token)); IEulerEToken eToken = IEulerEToken(markets.underlyingToEToken(_token));
_amt = _amt == type(uint).max ? dToken.balanceOf(address(this)) : _amt; _amt = _amt == type(uint256).max
? dToken.balanceOf(address(this))
: _amt;
if (isEth) convertEthToWeth(isEth, TokenInterface(_token), _amt); if (isEth) convertEthToWeth(isEth, TokenInterface(_token), _amt);
@ -269,9 +284,9 @@ abstract contract Euler is Helpers {
function eTransfer( function eTransfer(
uint256 subAccountFrom, uint256 subAccountFrom,
uint256 subAccountTo, uint256 subAccountTo,
address token,//eth address token,
uint256 amt,//max uint256 amt,
uint256 getId,//1 uint256 getId,
uint256 setId uint256 setId
) )
external external
@ -285,7 +300,9 @@ abstract contract Euler is Helpers {
IEulerEToken eToken = IEulerEToken(markets.underlyingToEToken(_token)); IEulerEToken eToken = IEulerEToken(markets.underlyingToEToken(_token));
_amt = _amt == type(uint).max ? eToken.balanceOf(address(this)) : _amt; _amt = _amt == type(uint256).max
? eToken.balanceOf(address(this))
: _amt;
if (isEth) convertEthToWeth(isEth, TokenInterface(_token), _amt); if (isEth) convertEthToWeth(isEth, TokenInterface(_token), _amt);
@ -296,7 +313,14 @@ abstract contract Euler is Helpers {
setUint(setId, _amt); setUint(setId, _amt);
_eventName = "LogETransfer(uint256,uint256,address,uint256,uint256,uint256)"; _eventName = "LogETransfer(uint256,uint256,address,uint256,uint256,uint256)";
_eventParam = abi.encode(subAccountFrom, subAccountTo, token, _amt, getId, setId); _eventParam = abi.encode(
subAccountFrom,
subAccountTo,
token,
_amt,
getId,
setId
);
} }
/** /**
@ -312,9 +336,9 @@ abstract contract Euler is Helpers {
function dTransfer( function dTransfer(
uint256 subAccountFrom, uint256 subAccountFrom,
uint256 subAccountTo, uint256 subAccountTo,
address token,//eth address token,
uint256 amt,//max uint256 amt,
uint256 getId,//1 uint256 getId,
uint256 setId uint256 setId
) )
external external
@ -328,7 +352,9 @@ abstract contract Euler is Helpers {
IEulerDToken dToken = IEulerDToken(markets.underlyingToDToken(_token)); IEulerDToken dToken = IEulerDToken(markets.underlyingToDToken(_token));
_amt = _amt == type(uint).max ? dToken.balanceOf(address(this)) : _amt; _amt = _amt == type(uint256).max
? dToken.balanceOf(address(this))
: _amt;
if (isEth) convertEthToWeth(isEth, TokenInterface(_token), _amt); if (isEth) convertEthToWeth(isEth, TokenInterface(_token), _amt);
@ -338,7 +364,14 @@ abstract contract Euler is Helpers {
setUint(setId, _amt); setUint(setId, _amt);
_eventName = "LogDTransfer(uint256,uint256,address,uint256,uint256,uint256)"; _eventName = "LogDTransfer(uint256,uint256,address,uint256,uint256,uint256)";
_eventParam = abi.encode(subAccountFrom, subAccountTo, token, _amt, getId, setId); _eventParam = abi.encode(
subAccountFrom,
subAccountTo,
token,
_amt,
getId,
setId
);
} }
function approveDebt( function approveDebt(
@ -359,7 +392,9 @@ abstract contract Euler is Helpers {
address _token = isEth ? wethAddr : token; address _token = isEth ? wethAddr : token;
IEulerDToken dToken = IEulerDToken(markets.underlyingToDToken(_token)); IEulerDToken dToken = IEulerDToken(markets.underlyingToDToken(_token));
_amt = _amt == type(uint).max ? dToken.balanceOf(address(this)) : _amt; _amt = _amt == type(uint256).max
? dToken.balanceOf(address(this))
: _amt;
dToken.approveDebt(subAccountId, debtReceiver, _amt); dToken.approveDebt(subAccountId, debtReceiver, _amt);
@ -372,44 +407,56 @@ abstract contract Euler is Helpers {
struct swapHelper { struct swapHelper {
address _sellAddr; address _sellAddr;
address _buyAddr; address _buyAddr;
uint _buyDec; uint256 _buyDec;
uint _sellDec; uint256 _sellDec;
uint _sellAmt18; uint256 _sellAmt18;
uint _slippageAmt; uint256 _slippageAmt;
} }
struct swapParams { struct swapParams {
uint256 subAccountFrom; uint256 subAccountFrom;
uint subAccountTo; uint256 subAccountTo;
address buyAddr; address buyAddr;
address sellAddr; address sellAddr;
uint sellAmt; uint256 sellAmt;
uint unitAmt; uint256 unitAmt;
bytes callData; bytes callData;
} }
function swap( function swap(swapParams memory params)
swapParams memory params
)
external external
payable payable
returns (string memory _eventName, bytes memory _eventParam) returns (string memory _eventName, bytes memory _eventParam)
{ {
swapHelper memory helperParams; swapHelper memory helperParams;
helperParams._sellAddr = params.sellAddr == ethAddr ? wethAddr : params.sellAddr; helperParams._sellAddr = params.sellAddr == ethAddr
helperParams._buyAddr = params.sellAddr == ethAddr ? wethAddr : params.buyAddr; ? wethAddr
: params.sellAddr;
helperParams._buyAddr = params.sellAddr == ethAddr
? wethAddr
: params.buyAddr;
TokenInterface sellToken = TokenInterface(helperParams._sellAddr); TokenInterface sellToken = TokenInterface(helperParams._sellAddr);
TokenInterface buyToken = TokenInterface(helperParams._buyAddr); TokenInterface buyToken = TokenInterface(helperParams._buyAddr);
approve(sellToken, address(swapExec), params.sellAmt); approve(sellToken, address(swapExec), params.sellAmt);
(helperParams._buyDec, helperParams._sellDec) = getTokensDec(buyToken, sellToken); (helperParams._buyDec, helperParams._sellDec) = getTokensDec(
helperParams._sellAmt18 = convertTo18(helperParams._sellDec, params.sellAmt); buyToken,
helperParams._slippageAmt = convert18ToDec(helperParams._buyDec, wmul(params.unitAmt, helperParams._sellAmt18)); sellToken
);
helperParams._sellAmt18 = convertTo18(
helperParams._sellDec,
params.sellAmt
);
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: helperParams._sellAddr, underlyingIn: helperParams._sellAddr,
@ -426,10 +473,18 @@ abstract contract Euler is Helpers {
} }
_eventName = "LogSwap(uint256,uint256,address,address,uint256,uint256,bytes)"; _eventName = "LogSwap(uint256,uint256,address,address,uint256,uint256,bytes)";
_eventParam = abi.encode(params.subAccountFrom, params.subAccountTo, params.buyAddr, params.sellAddr, params.sellAmt, params.unitAmt, params.callData); _eventParam = abi.encode(
params.subAccountFrom,
params.subAccountTo,
params.buyAddr,
params.sellAddr,
params.sellAmt,
params.unitAmt,
params.callData
);
} }
function enterMarket(uint subAccountId, address[] memory newMarkets) function enterMarket(uint256 subAccountId, address[] memory newMarkets)
external external
payable payable
returns (string memory _eventName, bytes memory _eventParam) returns (string memory _eventName, bytes memory _eventParam)
@ -441,7 +496,9 @@ abstract contract Euler is Helpers {
bool isEth = newMarkets[i] == ethAddr; bool isEth = newMarkets[i] == ethAddr;
address _token = isEth ? wethAddr : newMarkets[i]; address _token = isEth ? wethAddr : newMarkets[i];
IEulerEToken eToken = IEulerEToken(markets.underlyingToEToken(_token)); IEulerEToken eToken = IEulerEToken(
markets.underlyingToEToken(_token)
);
markets.enterMarket(subAccountId, _token); markets.enterMarket(subAccountId, _token);
} }
@ -449,7 +506,7 @@ abstract contract Euler is Helpers {
_eventParam = abi.encode(subAccountId, newMarkets); _eventParam = abi.encode(subAccountId, newMarkets);
} }
function exitMarket(uint subAccountId, address oldMarket) function exitMarket(uint256 subAccountId, address oldMarket)
external external
payable payable
returns (string memory _eventName, bytes memory _eventParam) returns (string memory _eventName, bytes memory _eventParam)

View File

@ -3,7 +3,10 @@ pragma solidity ^0.7.0;
import "./interface.sol"; import "./interface.sol";
contract Variables { contract Variables {
address internal constant EULER_MAINNET = 0x27182842E098f60e3D576794A5bFFb0777E025d3; address internal constant EULER_MAINNET =
IEulerMarkets internal constant markets = IEulerMarkets(0x3520d5a913427E6F0D6A83E07ccD4A4da316e4d3); 0x27182842E098f60e3D576794A5bFFb0777E025d3;
IEulerSwap internal constant swapExec = IEulerSwap(0x7123C8cBBD76c5C7fCC9f7150f23179bec0bA341); IEulerMarkets internal constant markets =
IEulerMarkets(0x3520d5a913427E6F0D6A83E07ccD4A4da316e4d3);
IEulerSwap internal constant swapExec =
IEulerSwap(0x7123C8cBBD76c5C7fCC9f7150f23179bec0bA341);
} }