From 37e56f0955e0c41152b256b8df16ac3c9511aefc Mon Sep 17 00:00:00 2001 From: Thrilok Kumar Date: Fri, 10 Jun 2022 18:16:45 +0530 Subject: [PATCH 01/10] added deleverageAndWithdraw func --- .../mainnet/connectors/instaLite/events.sol | 10 ++++ .../connectors/instaLite/interface.sol | 6 ++ .../mainnet/connectors/instaLite/main.sol | 55 ++++++++++++++++++- 3 files changed, 69 insertions(+), 2 deletions(-) diff --git a/contracts/mainnet/connectors/instaLite/events.sol b/contracts/mainnet/connectors/instaLite/events.sol index 6b1e2827..4cee914b 100644 --- a/contracts/mainnet/connectors/instaLite/events.sol +++ b/contracts/mainnet/connectors/instaLite/events.sol @@ -24,4 +24,14 @@ contract Events { uint256 getId, uint256 setId ); + + event LogDeleverageAndWithdraw( + address vaultAddr, + uint256 deleverageAmt, + uint256 withdrawAmount, + uint256 stETHAmt, + uint256 tokenAmt, + uint256[] getIds, + uint256[] setIds + ); } diff --git a/contracts/mainnet/connectors/instaLite/interface.sol b/contracts/mainnet/connectors/instaLite/interface.sol index ae20fed4..49c14083 100644 --- a/contracts/mainnet/connectors/instaLite/interface.sol +++ b/contracts/mainnet/connectors/instaLite/interface.sol @@ -14,5 +14,11 @@ interface IInstaLite { function withdraw(uint256 amount_, address to_) external returns (uint256); function deleverage(uint amt_) external; + function deleverageAndWithdraw( + uint256 deleverageAmt_, + uint256 withdrawAmount_, + address to_ + ) external; + function token() external returns(address); } diff --git a/contracts/mainnet/connectors/instaLite/main.sol b/contracts/mainnet/connectors/instaLite/main.sol index 89ba6582..4f780abd 100644 --- a/contracts/mainnet/connectors/instaLite/main.sol +++ b/contracts/mainnet/connectors/instaLite/main.sol @@ -132,8 +132,59 @@ abstract contract InstaLiteConnector is Events, Basic { _eventParam = abi.encode(vaultAddr, _amt, getId, setId); } + /** + * @dev Deleverage and Withdraw vault. Pays back weth debt and get stETH/WETH collateral. + * @notice Deleverage Instalite vault. + * @param vaultAddr Address of vaultAddress Contract. + * @param deleverageAmount The amount of the token to deleverage. + * @param withdrawAmount The amount of the token to deleverage. + * @param getId ID to retrieve amt. + * @param setId ID to set amt. + */ + function deleverageAndWithdraw( + address vaultAddr, + uint256 deleverageAmount, + uint256 withdrawAmount, + uint256[] memory getIds, + uint256[] memory setIds + ) + external + payable + returns (string memory _eventName, bytes memory _eventParam) + { + if (getIds.length > 2) { + uint256 _deleverageAmt = getUint(getIds[0], deleverageAmount); + uint256 _withdrawAmount = getUint(getIds[1], withdrawAmount); + } + + TokenInterface tokenContract = + 0xc383a3833A87009fD9597F8184979AF5eDFad019 == vaultAddr ? + TokenInterface(wethAddr) : + TokenInterface(IInstaLite(vaultAddr).token()); + + uint initialBalStETH = astethToken.balanceOf(address(this)); + uint initialBalToken = tokenContract.balanceOf(address(this)); + + approve(TokenInterface(wethAddr), vaultAddr, _amt); + + IInstaLite(vaultAddr).deleverageAndWithdraw(_deleverageAmt, _withdrawAmount, address(this)); + + uint _stETHAmt = astethToken.balanceOf(address(this)) - initialBalStETH; + uint _tokenAmt = tokenContract.balanceOf(address(this)) - initialBalToken; + + // TODO: add require conditions + + if (setIds.length > 2) { + setUint(setIds[0], _stETHAmt); + setUint(setIds[1], _tokenAmt); + } + + _eventName = "LogDeleverageAndWithdraw(address,uint256,uint256,uint256,uint256,uint256[],uint256[])"; + _eventParam = abi.encode(vaultAddr, _deleverageAmt, _withdrawAmount, _stETHAmt, _tokenAmt, getIds, setIds); + } + } contract ConnectV2InstaLite is InstaLiteConnector { - string public constant name = "InstaLite-v1"; -} + string public constant name = "InstaLite-v1.1"; +} \ No newline at end of file From de1a1a106e45451083d6c1eb2cc9bd9d10b4e854 Mon Sep 17 00:00:00 2001 From: pradyuman-verma Date: Sat, 11 Jun 2022 02:22:11 +0530 Subject: [PATCH 02/10] bug fixes --- .../mainnet/connectors/instaLite/main.sol | 79 +++++++++++-------- 1 file changed, 48 insertions(+), 31 deletions(-) diff --git a/contracts/mainnet/connectors/instaLite/main.sol b/contracts/mainnet/connectors/instaLite/main.sol index 4f780abd..8f2249d8 100644 --- a/contracts/mainnet/connectors/instaLite/main.sol +++ b/contracts/mainnet/connectors/instaLite/main.sol @@ -12,8 +12,8 @@ import { Events } from "./events.sol"; import { IInstaLite } from "./interface.sol"; abstract contract InstaLiteConnector is Events, Basic { - - TokenInterface internal constant astethToken = TokenInterface(0x1982b2F5814301d4e9a8b0201555376e62F82428); + TokenInterface internal constant astethToken = + TokenInterface(0x1982b2F5814301d4e9a8b0201555376e62F82428); /** * @dev Supply ETH/ERC20 @@ -41,7 +41,9 @@ abstract contract InstaLiteConnector is Events, Basic { if (isEth) { _amt = _amt == uint256(-1) ? address(this).balance : _amt; - vTokenAmt = IInstaLite(vaultAddr).supplyEth{ value: amt }(address(this)); + vTokenAmt = IInstaLite(vaultAddr).supplyEth{ value: amt }( + address(this) + ); } else { TokenInterface tokenContract = TokenInterface(token); @@ -50,7 +52,11 @@ abstract contract InstaLiteConnector is Events, Basic { : _amt; approve(tokenContract, vaultAddr, _amt); - vTokenAmt = IInstaLite(vaultAddr).supply(token, _amt, address(this)); + vTokenAmt = IInstaLite(vaultAddr).supply( + token, + _amt, + address(this) + ); } setUint(setIds[0], _amt); @@ -87,7 +93,7 @@ abstract contract InstaLiteConnector is Events, Basic { { uint256 _amt = getUint(getId, amt); - uint256 vTokenAmt = IInstaLite(vaultAddr).withdraw(_amt, address(this)); + uint256 vTokenAmt = IInstaLite(vaultAddr).withdraw(_amt, address(this)); setUint(setIds[0], _amt); setUint(setIds[1], vTokenAmt); @@ -116,13 +122,13 @@ abstract contract InstaLiteConnector is Events, Basic { { uint256 _amt = getUint(getId, amt); - uint initialBal = astethToken.balanceOf(address(this)); + uint256 initialBal = astethToken.balanceOf(address(this)); approve(TokenInterface(wethAddr), vaultAddr, _amt); IInstaLite(vaultAddr).deleverage(_amt); - uint finalBal = astethToken.balanceOf(address(this)); + uint256 finalBal = astethToken.balanceOf(address(this)); require(amt <= (1e9 + finalBal - initialBal), "lack-of-steth"); @@ -137,54 +143,65 @@ abstract contract InstaLiteConnector is Events, Basic { * @notice Deleverage Instalite vault. * @param vaultAddr Address of vaultAddress Contract. * @param deleverageAmount The amount of the token to deleverage. - * @param withdrawAmount The amount of the token to deleverage. - * @param getId ID to retrieve amt. - * @param setId ID to set amt. + * @param withdrawAmount The amount of the token to deleverage. + * @param getIds ID to retrieve amt. + * @param setIds ID to set amt. */ function deleverageAndWithdraw( address vaultAddr, uint256 deleverageAmount, - uint256 withdrawAmount, + uint256 withdrawAmount, uint256[] memory getIds, uint256[] memory setIds ) external payable returns (string memory _eventName, bytes memory _eventParam) - { - if (getIds.length > 2) { - uint256 _deleverageAmt = getUint(getIds[0], deleverageAmount); - uint256 _withdrawAmount = getUint(getIds[1], withdrawAmount); - } + { + require(getIds.length > 2, "invalid get-ids length"); + uint256 _deleverageAmt = getUint(getIds[0], deleverageAmount); + uint256 _withdrawAmount = getUint(getIds[1], withdrawAmount); - TokenInterface tokenContract = - 0xc383a3833A87009fD9597F8184979AF5eDFad019 == vaultAddr ? - TokenInterface(wethAddr) : - TokenInterface(IInstaLite(vaultAddr).token()); - - uint initialBalStETH = astethToken.balanceOf(address(this)); - uint initialBalToken = tokenContract.balanceOf(address(this)); + TokenInterface tokenContract = 0xc383a3833A87009fD9597F8184979AF5eDFad019 == + vaultAddr + ? TokenInterface(wethAddr) + : TokenInterface(IInstaLite(vaultAddr).token()); - approve(TokenInterface(wethAddr), vaultAddr, _amt); + uint256 initialBalStETH = astethToken.balanceOf(address(this)); + uint256 initialBalToken = tokenContract.balanceOf(address(this)); - IInstaLite(vaultAddr).deleverageAndWithdraw(_deleverageAmt, _withdrawAmount, address(this)); + approve(TokenInterface(wethAddr), vaultAddr, _deleverageAmt); - uint _stETHAmt = astethToken.balanceOf(address(this)) - initialBalStETH; - uint _tokenAmt = tokenContract.balanceOf(address(this)) - initialBalToken; + IInstaLite(vaultAddr).deleverageAndWithdraw( + _deleverageAmt, + _withdrawAmount, + address(this) + ); + + uint256 _stETHAmt = astethToken.balanceOf(address(this)) - + initialBalStETH; + uint256 _tokenAmt = tokenContract.balanceOf(address(this)) - + initialBalToken; // TODO: add require conditions - if (setIds.length > 2) { setUint(setIds[0], _stETHAmt); setUint(setIds[1], _tokenAmt); } _eventName = "LogDeleverageAndWithdraw(address,uint256,uint256,uint256,uint256,uint256[],uint256[])"; - _eventParam = abi.encode(vaultAddr, _deleverageAmt, _withdrawAmount, _stETHAmt, _tokenAmt, getIds, setIds); + _eventParam = abi.encode( + vaultAddr, + _deleverageAmt, + _withdrawAmount, + _stETHAmt, + _tokenAmt, + getIds, + setIds + ); } - } contract ConnectV2InstaLite is InstaLiteConnector { string public constant name = "InstaLite-v1.1"; -} \ No newline at end of file +} From da4f5a1c44ebed24d632a3cbbaf99603d0104d91 Mon Sep 17 00:00:00 2001 From: pradyuman-verma Date: Sat, 11 Jun 2022 02:32:12 +0530 Subject: [PATCH 03/10] comment fix --- contracts/mainnet/connectors/instaLite/main.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/mainnet/connectors/instaLite/main.sol b/contracts/mainnet/connectors/instaLite/main.sol index 8f2249d8..fc6eef50 100644 --- a/contracts/mainnet/connectors/instaLite/main.sol +++ b/contracts/mainnet/connectors/instaLite/main.sol @@ -143,7 +143,7 @@ abstract contract InstaLiteConnector is Events, Basic { * @notice Deleverage Instalite vault. * @param vaultAddr Address of vaultAddress Contract. * @param deleverageAmount The amount of the token to deleverage. - * @param withdrawAmount The amount of the token to deleverage. + * @param withdrawAmount The amount of the token to withdraw. * @param getIds ID to retrieve amt. * @param setIds ID to set amt. */ From f776a2fc162b502569570f126627b7e10cea174d Mon Sep 17 00:00:00 2001 From: Vaibhav Khanna <55931792+Vaibhav20201@users.noreply.github.com> Date: Sat, 11 Jun 2022 02:47:53 +0530 Subject: [PATCH 04/10] minor bug fix --- contracts/mainnet/connectors/instaLite/main.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/mainnet/connectors/instaLite/main.sol b/contracts/mainnet/connectors/instaLite/main.sol index fc6eef50..182f919d 100644 --- a/contracts/mainnet/connectors/instaLite/main.sol +++ b/contracts/mainnet/connectors/instaLite/main.sol @@ -158,7 +158,7 @@ abstract contract InstaLiteConnector is Events, Basic { payable returns (string memory _eventName, bytes memory _eventParam) { - require(getIds.length > 2, "invalid get-ids length"); + require(getIds.length >= 2, "invalid get-ids length"); uint256 _deleverageAmt = getUint(getIds[0], deleverageAmount); uint256 _withdrawAmount = getUint(getIds[1], withdrawAmount); From f4314f5589a3573bf16bd16e7ba97c4ac83d8b4c Mon Sep 17 00:00:00 2001 From: Vaibhav Khanna <55931792+Vaibhav20201@users.noreply.github.com> Date: Sat, 11 Jun 2022 02:48:04 +0530 Subject: [PATCH 05/10] minor bug fix --- contracts/mainnet/connectors/instaLite/main.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/mainnet/connectors/instaLite/main.sol b/contracts/mainnet/connectors/instaLite/main.sol index 182f919d..2c669820 100644 --- a/contracts/mainnet/connectors/instaLite/main.sol +++ b/contracts/mainnet/connectors/instaLite/main.sol @@ -184,7 +184,7 @@ abstract contract InstaLiteConnector is Events, Basic { initialBalToken; // TODO: add require conditions - if (setIds.length > 2) { + if (setIds.length >= 2) { setUint(setIds[0], _stETHAmt); setUint(setIds[1], _tokenAmt); } From 64569a71851514d874c73744035c38cdbeb32692 Mon Sep 17 00:00:00 2001 From: Vaibhav Khanna Date: Sat, 11 Jun 2022 03:14:59 +0530 Subject: [PATCH 06/10] bug fixes --- .../connectors/instaLite/interface.sol | 16 ++-- .../mainnet/connectors/instaLite/main.sol | 91 +++++++++++++------ 2 files changed, 72 insertions(+), 35 deletions(-) diff --git a/contracts/mainnet/connectors/instaLite/interface.sol b/contracts/mainnet/connectors/instaLite/interface.sol index 49c14083..75a15bc9 100644 --- a/contracts/mainnet/connectors/instaLite/interface.sol +++ b/contracts/mainnet/connectors/instaLite/interface.sol @@ -2,7 +2,6 @@ pragma solidity ^0.7.0; interface IInstaLite { - function supplyEth(address to_) external payable returns (uint256); function supply( @@ -13,12 +12,13 @@ interface IInstaLite { function withdraw(uint256 amount_, address to_) external returns (uint256); - function deleverage(uint amt_) external; - function deleverageAndWithdraw( - uint256 deleverageAmt_, - uint256 withdrawAmount_, - address to_ - ) external; - function token() external returns(address); + function deleverage(uint256 amt_) external; + function deleverageAndWithdraw( + uint256 deleverageAmt_, + uint256 withdrawAmount_, + address to_ + ) external; + + function token() external returns (address); } diff --git a/contracts/mainnet/connectors/instaLite/main.sol b/contracts/mainnet/connectors/instaLite/main.sol index 2c669820..280ea126 100644 --- a/contracts/mainnet/connectors/instaLite/main.sol +++ b/contracts/mainnet/connectors/instaLite/main.sol @@ -14,6 +14,10 @@ import { IInstaLite } from "./interface.sol"; abstract contract InstaLiteConnector is Events, Basic { TokenInterface internal constant astethToken = TokenInterface(0x1982b2F5814301d4e9a8b0201555376e62F82428); + TokenInterface internal constant stethToken = + TokenInterface(0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84); + address internal constant ethVaultAddr = + 0xc383a3833a87009fd9597f8184979af5edfad019; /** * @dev Supply ETH/ERC20 @@ -59,8 +63,10 @@ abstract contract InstaLiteConnector is Events, Basic { ); } - setUint(setIds[0], _amt); - setUint(setIds[1], vTokenAmt); + if (setIds.length >= 2) { + setUint(setIds[0], _amt); + setUint(setIds[1], vTokenAmt); + } _eventName = "LogSupply(address,address,uint256,uint256,uint256,uint256[])"; _eventParam = abi.encode( @@ -95,8 +101,10 @@ abstract contract InstaLiteConnector is Events, Basic { uint256 vTokenAmt = IInstaLite(vaultAddr).withdraw(_amt, address(this)); - setUint(setIds[0], _amt); - setUint(setIds[1], vTokenAmt); + if (setIds.length >= 2) { + setUint(setIds[0], _amt); + setUint(setIds[1], vTokenAmt); + } _eventName = "LogWithdraw(address,uint256,uint256,uint256,uint256[])"; _eventParam = abi.encode(vaultAddr, _amt, vTokenAmt, getId, setIds); @@ -162,40 +170,69 @@ abstract contract InstaLiteConnector is Events, Basic { uint256 _deleverageAmt = getUint(getIds[0], deleverageAmount); uint256 _withdrawAmount = getUint(getIds[1], withdrawAmount); - TokenInterface tokenContract = 0xc383a3833A87009fD9597F8184979AF5eDFad019 == - vaultAddr - ? TokenInterface(wethAddr) - : TokenInterface(IInstaLite(vaultAddr).token()); - - uint256 initialBalStETH = astethToken.balanceOf(address(this)); - uint256 initialBalToken = tokenContract.balanceOf(address(this)); + uint256 _astethAmt; + uint256 _ethAmt; + uint256 _stethAmt; + uint256 _tokenAmt; approve(TokenInterface(wethAddr), vaultAddr, _deleverageAmt); + if (vaultAddr == ethVaultAddr) { + uint256 initialBalAsteth = astethToken.balanceOf(address(this)); + uint256 initialBalEth = address(this).balance; + uint256 initialBalSteth = stethToken.balanceOf(address(this)); - IInstaLite(vaultAddr).deleverageAndWithdraw( - _deleverageAmt, - _withdrawAmount, - address(this) - ); + IInstaLite(vaultAddr).deleverageAndWithdraw( + _deleverageAmt, + _withdrawAmount, + address(this) + ); - uint256 _stETHAmt = astethToken.balanceOf(address(this)) - - initialBalStETH; - uint256 _tokenAmt = tokenContract.balanceOf(address(this)) - - initialBalToken; + _astethAmt = astethToken.balanceOf(address(this)) - + initialBalStETH; + _ethAmt = address(this).balance - initialBalEth; + _stethAmt = stethToken.balanceOf(address(this)); + require(_deleverageAmt <= (1e9 + _astethAmt), "lack-of-steth"); - // TODO: add require conditions - if (setIds.length >= 2) { - setUint(setIds[0], _stETHAmt); - setUint(setIds[1], _tokenAmt); + if (setIds.length >= 3) { + setUint(setIds[0], _astethAmt); + setUint(setIds[1], _ethAmt); + setUint(setIds[2], _stethAmt); + } + } else { + TokenInterface tokenContract = TokenInterface( + IInstaLite(vaultAddr).token() + ); + + uint256 initialBalAsteth = astethToken.balanceOf(address(this)); + uint256 initialBalToken = tokenContract.balanceOf(address(this)); + + IInstaLite(vaultAddr).deleverageAndWithdraw( + _deleverageAmt, + _withdrawAmount, + address(this) + ); + + _astethAmt = astethToken.balanceOf(address(this)) - + initialBalAsteth; + _tokenAmt = tokenContract.balanceOf(address(this)) - + initialBalToken; + require(_deleverageAmt <= (1e9 + _astethAmt), "lack-of-steth"); + + if (setIds.length >= 2) { + setUint(setIds[0], _astethAmt); + setUint(setIds[1], _tokenAmt); + } } - _eventName = "LogDeleverageAndWithdraw(address,uint256,uint256,uint256,uint256,uint256[],uint256[])"; + _eventName = "LogDeleverageAndWithdraw(address,uint256,uint256,uint256,uint256,uint256,uint256,uint256[],uint256[])"; _eventParam = abi.encode( vaultAddr, _deleverageAmt, _withdrawAmount, - _stETHAmt, - _tokenAmt, + _astethAmt; + _ethAmt; + _stethAmt; + _tokenAmt; getIds, setIds ); From aafe8e28c4f74c950a1aa64ddb043107824295f4 Mon Sep 17 00:00:00 2001 From: Vaibhav Khanna Date: Sat, 11 Jun 2022 03:23:08 +0530 Subject: [PATCH 07/10] bug fixes --- .../mainnet/connectors/instaLite/main.sol | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/contracts/mainnet/connectors/instaLite/main.sol b/contracts/mainnet/connectors/instaLite/main.sol index 280ea126..ac225bd1 100644 --- a/contracts/mainnet/connectors/instaLite/main.sol +++ b/contracts/mainnet/connectors/instaLite/main.sol @@ -187,10 +187,11 @@ abstract contract InstaLiteConnector is Events, Basic { address(this) ); - _astethAmt = astethToken.balanceOf(address(this)) - - initialBalStETH; + _astethAmt = + astethToken.balanceOf(address(this)) - + initialBalAsteth; _ethAmt = address(this).balance - initialBalEth; - _stethAmt = stethToken.balanceOf(address(this)); + _stethAmt = stethToken.balanceOf(address(this)) - initialBalSteth; require(_deleverageAmt <= (1e9 + _astethAmt), "lack-of-steth"); if (setIds.length >= 3) { @@ -212,9 +213,11 @@ abstract contract InstaLiteConnector is Events, Basic { address(this) ); - _astethAmt = astethToken.balanceOf(address(this)) - + _astethAmt = + astethToken.balanceOf(address(this)) - initialBalAsteth; - _tokenAmt = tokenContract.balanceOf(address(this)) - + _tokenAmt = + tokenContract.balanceOf(address(this)) - initialBalToken; require(_deleverageAmt <= (1e9 + _astethAmt), "lack-of-steth"); @@ -229,10 +232,10 @@ abstract contract InstaLiteConnector is Events, Basic { vaultAddr, _deleverageAmt, _withdrawAmount, - _astethAmt; - _ethAmt; - _stethAmt; - _tokenAmt; + _astethAmt, + _ethAmt, + _stethAmt, + _tokenAmt, getIds, setIds ); From 523d593eb4a0b5235f8737bef93d1044a2f79c50 Mon Sep 17 00:00:00 2001 From: Vaibhav Khanna Date: Sat, 11 Jun 2022 03:24:09 +0530 Subject: [PATCH 08/10] address checksum bug --- contracts/mainnet/connectors/instaLite/main.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/mainnet/connectors/instaLite/main.sol b/contracts/mainnet/connectors/instaLite/main.sol index ac225bd1..d7172688 100644 --- a/contracts/mainnet/connectors/instaLite/main.sol +++ b/contracts/mainnet/connectors/instaLite/main.sol @@ -17,7 +17,7 @@ abstract contract InstaLiteConnector is Events, Basic { TokenInterface internal constant stethToken = TokenInterface(0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84); address internal constant ethVaultAddr = - 0xc383a3833a87009fd9597f8184979af5edfad019; + 0xc383a3833A87009fD9597F8184979AF5eDFad019; /** * @dev Supply ETH/ERC20 From 7a61470919a990bb27e08cf0e04083afbee9388f Mon Sep 17 00:00:00 2001 From: Vaibhav Khanna Date: Sat, 11 Jun 2022 03:25:02 +0530 Subject: [PATCH 09/10] minor fix --- contracts/mainnet/connectors/instaLite/interface.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/mainnet/connectors/instaLite/interface.sol b/contracts/mainnet/connectors/instaLite/interface.sol index 75a15bc9..be4f7256 100644 --- a/contracts/mainnet/connectors/instaLite/interface.sol +++ b/contracts/mainnet/connectors/instaLite/interface.sol @@ -20,5 +20,5 @@ interface IInstaLite { address to_ ) external; - function token() external returns (address); + function token() external view returns (address); } From 27d3d9e47ad14e74d2b9245d24cf7d116b2ecb40 Mon Sep 17 00:00:00 2001 From: Vaibhav Khanna Date: Sat, 11 Jun 2022 03:33:36 +0530 Subject: [PATCH 10/10] fixed compilation errors --- .../mainnet/connectors/instaLite/main.sol | 39 ++++++++++--------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/contracts/mainnet/connectors/instaLite/main.sol b/contracts/mainnet/connectors/instaLite/main.sol index d7172688..4ac92782 100644 --- a/contracts/mainnet/connectors/instaLite/main.sol +++ b/contracts/mainnet/connectors/instaLite/main.sol @@ -147,18 +147,18 @@ abstract contract InstaLiteConnector is Events, Basic { } /** - * @dev Deleverage and Withdraw vault. Pays back weth debt and get stETH/WETH collateral. + * @dev Deleverage and Withdraw vault. Pays back weth debt and gets steth collateral (aSteth). * @notice Deleverage Instalite vault. * @param vaultAddr Address of vaultAddress Contract. - * @param deleverageAmount The amount of the token to deleverage. - * @param withdrawAmount The amount of the token to withdraw. - * @param getIds ID to retrieve amt. - * @param setIds ID to set amt. + * @param deleverageAmt The amount of the weth to deleverage. + * @param withdrawAmt The amount of the token to withdraw. + * @param getIds IDs to retrieve amts. + * @param setIds IDs to set amts. */ function deleverageAndWithdraw( address vaultAddr, - uint256 deleverageAmount, - uint256 withdrawAmount, + uint256 deleverageAmt, + uint256 withdrawAmt, uint256[] memory getIds, uint256[] memory setIds ) @@ -166,24 +166,25 @@ abstract contract InstaLiteConnector is Events, Basic { payable returns (string memory _eventName, bytes memory _eventParam) { - require(getIds.length >= 2, "invalid get-ids length"); - uint256 _deleverageAmt = getUint(getIds[0], deleverageAmount); - uint256 _withdrawAmount = getUint(getIds[1], withdrawAmount); + if (getIds.length >= 2) { + deleverageAmt = getUint(getIds[0], deleverageAmt); + withdrawAmt = getUint(getIds[1], withdrawAmt); + } uint256 _astethAmt; uint256 _ethAmt; uint256 _stethAmt; uint256 _tokenAmt; - approve(TokenInterface(wethAddr), vaultAddr, _deleverageAmt); + approve(TokenInterface(wethAddr), vaultAddr, deleverageAmt); if (vaultAddr == ethVaultAddr) { uint256 initialBalAsteth = astethToken.balanceOf(address(this)); uint256 initialBalEth = address(this).balance; uint256 initialBalSteth = stethToken.balanceOf(address(this)); IInstaLite(vaultAddr).deleverageAndWithdraw( - _deleverageAmt, - _withdrawAmount, + deleverageAmt, + withdrawAmt, address(this) ); @@ -192,7 +193,7 @@ abstract contract InstaLiteConnector is Events, Basic { initialBalAsteth; _ethAmt = address(this).balance - initialBalEth; _stethAmt = stethToken.balanceOf(address(this)) - initialBalSteth; - require(_deleverageAmt <= (1e9 + _astethAmt), "lack-of-steth"); + require(deleverageAmt <= (1e9 + _astethAmt), "lack-of-steth"); if (setIds.length >= 3) { setUint(setIds[0], _astethAmt); @@ -208,8 +209,8 @@ abstract contract InstaLiteConnector is Events, Basic { uint256 initialBalToken = tokenContract.balanceOf(address(this)); IInstaLite(vaultAddr).deleverageAndWithdraw( - _deleverageAmt, - _withdrawAmount, + deleverageAmt, + withdrawAmt, address(this) ); @@ -219,7 +220,7 @@ abstract contract InstaLiteConnector is Events, Basic { _tokenAmt = tokenContract.balanceOf(address(this)) - initialBalToken; - require(_deleverageAmt <= (1e9 + _astethAmt), "lack-of-steth"); + require(deleverageAmt <= (1e9 + _astethAmt), "lack-of-steth"); if (setIds.length >= 2) { setUint(setIds[0], _astethAmt); @@ -230,8 +231,8 @@ abstract contract InstaLiteConnector is Events, Basic { _eventName = "LogDeleverageAndWithdraw(address,uint256,uint256,uint256,uint256,uint256,uint256,uint256[],uint256[])"; _eventParam = abi.encode( vaultAddr, - _deleverageAmt, - _withdrawAmount, + deleverageAmt, + withdrawAmt, _astethAmt, _ethAmt, _stethAmt,