From 6c526ea8a3372fb201fe9e18ca63874a5d7b6f44 Mon Sep 17 00:00:00 2001 From: Richa-iitr Date: Thu, 2 Jun 2022 14:04:44 +0530 Subject: [PATCH] Revert "fantom" This reverts commit c2fdf4e225fbf264900f5ed54ab53054dc3cf127. --- contracts/fantom/common/interfaces.sol | 11 -- .../connectors/aave/v3-import/events.sol | 4 +- .../connectors/aave/v3-import/helpers.sol | 144 +++--------------- .../fantom/connectors/aave/v3-import/main.sol | 64 +++----- 4 files changed, 46 insertions(+), 177 deletions(-) diff --git a/contracts/fantom/common/interfaces.sol b/contracts/fantom/common/interfaces.sol index 0c673d70..93042689 100644 --- a/contracts/fantom/common/interfaces.sol +++ b/contracts/fantom/common/interfaces.sol @@ -1,6 +1,5 @@ //SPDX-License-Identifier: MIT pragma solidity ^0.7.0; -pragma abicoder v2; interface TokenInterface { function approve(address, uint256) external; @@ -34,14 +33,4 @@ interface AccountInterface { function disable(address) external; function isAuth(address) external view returns (bool); - - function cast( - string[] calldata _targetNames, - bytes[] calldata _datas, - address _origin - ) external payable returns (bytes32[] memory responses); -} - -interface ListInterface { - function accountID(address) external returns (uint64); } diff --git a/contracts/fantom/connectors/aave/v3-import/events.sol b/contracts/fantom/connectors/aave/v3-import/events.sol index 6317bdba..2a1c4e23 100644 --- a/contracts/fantom/connectors/aave/v3-import/events.sol +++ b/contracts/fantom/connectors/aave/v3-import/events.sol @@ -5,7 +5,7 @@ pragma experimental ABIEncoderV2; contract Events { event LogAaveV3Import( address indexed user, - address[] atokens, + address[] ctokens, string[] supplyIds, string[] borrowIds, uint256[] flashLoanFees, @@ -14,7 +14,7 @@ contract Events { ); event LogAaveV3ImportWithCollateral( address indexed user, - address[] atokens, + address[] ctokens, string[] supplyIds, string[] borrowIds, uint256[] flashLoanFees, diff --git a/contracts/fantom/connectors/aave/v3-import/helpers.sol b/contracts/fantom/connectors/aave/v3-import/helpers.sol index 4c8dbe56..ca016df4 100644 --- a/contracts/fantom/connectors/aave/v3-import/helpers.sol +++ b/contracts/fantom/connectors/aave/v3-import/helpers.sol @@ -1,10 +1,9 @@ //SPDX-License-Identifier: MIT pragma solidity ^0.7.0; -pragma abicoder v2; import { DSMath } from "../../../common/math.sol"; import { Basic } from "../../../common/basic.sol"; -import { TokenInterface, AccountInterface, ListInterface } from "../../../common/interfaces.sol"; +import { TokenInterface, AccountInterface } from "../../../common/interfaces.sol"; import { AaveInterface, AavePoolProviderInterface, AaveDataProviderInterface } from "./interface.sol"; import "./events.sol"; import "./interface.sol"; @@ -27,12 +26,6 @@ abstract contract Helper is DSMath, Basic { AaveDataProviderInterface internal constant aaveData = AaveDataProviderInterface(0x69FA688f1Dc47d4B5d8029D5a35FB7a548310654); - /** - * @dev InstaList - */ - ListInterface internal constant instaList = - ListInterface(0x10e166c3FAF887D8a61dE6c25039231eE694E926); - function getIsColl(address token, address user) internal view @@ -238,60 +231,20 @@ contract AaveHelpers is Helper { address[] memory tokens, address userAccount ) internal { - if (instaList.accountID(userAccount) == 0) { - for (uint256 i = 0; i < _length; i++) { - if (amts[i] > 0) { - uint256 _amt = amts[i]; - require( - atokenContracts[i].transferFrom( - userAccount, - address(this), - _amt - ), - "allowance?" - ); - if (!getIsColl(tokens[i], address(this))) { - aave.setUserUseReserveAsCollateral(tokens[i], true); - } - } - } - } else { - uint256 _len = 0; - uint256 _cntr = 0; - for (uint256 i = 0; i < _length; i++) { - if (amts[i] > 0) { - _len++; - } - } - string[] memory _targets = new string[](_len); - bytes[] memory _data = new bytes[](_len); - address[] memory _tokens = new address[](_len); - bytes4 basicWithdraw = bytes4( - keccak256("withdraw(address,uint256,address,uint256,uint256)") - ); - - for (uint256 i = 0; i < _length; i++) { - if (amts[i] > 0) { - uint256 _amt = amts[i]; - address _token = address(atokenContracts[i]); - _targets[_cntr] = "BASIC-A"; - _data[_cntr] = abi.encodeWithSelector( - basicWithdraw, - _token, - _amt, + for (uint256 i = 0; i < _length; i++) { + if (amts[i] > 0) { + uint256 _amt = amts[i]; + require( + atokenContracts[i].transferFrom( + userAccount, address(this), - 0, - 0 - ); - _tokens[_cntr] = tokens[i]; - _cntr++; - } - } + _amt + ), + "allowance?" + ); - AccountInterface(userAccount).cast(_targets, _data, address(this)); - for (uint256 i = 0; i < _len; i++) { - if (!getIsColl(_tokens[i], address(this))) { - aave.setUserUseReserveAsCollateral(_tokens[i], true); + if (!getIsColl(tokens[i], address(this))) { + aave.setUserUseReserveAsCollateral(tokens[i], true); } } } @@ -306,67 +259,20 @@ contract AaveHelpers is Helper { bool[] memory colEnable, address userAccount ) internal { - if (instaList.accountID(userAccount) == 0) { - for (uint256 i = 0; i < _length; i++) { - if (amts[i] > 0) { - uint256 _amt = amts[i]; - require( - atokenContracts[i].transferFrom( - userAccount, - address(this), - _amt - ), - "allowance?" - ); - - if (!getIsColl(tokens[i], address(this))) { - aave.setUserUseReserveAsCollateral( - tokens[i], - colEnable[i] - ); - } - } - } - } else { - uint256 _len = 0; - uint256 _cntr = 0; - for (uint256 i = 0; i < _length; i++) { - if (amts[i] > 0) { - _len++; - } - } - string[] memory _targets = new string[](_len); - bytes[] memory _data = new bytes[](_len); - address[] memory _tokens = new address[](_len); - bytes4 basicWithdraw = bytes4( - keccak256("withdraw(address,uint256,address,uint256,uint256)") - ); - - for (uint256 i = 0; i < _length; i++) { - if (amts[i] > 0) { - uint256 _amt = amts[i]; - address _token = address(atokenContracts[i]); - _targets[_cntr] = "BASIC-A"; - _data[_cntr] = abi.encodeWithSelector( - basicWithdraw, - _token, - _amt, + for (uint256 i = 0; i < _length; i++) { + if (amts[i] > 0) { + uint256 _amt = amts[i]; + require( + atokenContracts[i].transferFrom( + userAccount, address(this), - 0, - 0 - ); - _tokens[_cntr] = tokens[i]; - _cntr++; - } - } + _amt + ), + "allowance?" + ); - AccountInterface(userAccount).cast(_targets, _data, address(this)); - for (uint256 i = 0; i < _len; i++) { - if (!getIsColl(_tokens[i], address(this))) { - aave.setUserUseReserveAsCollateral( - _tokens[i], - colEnable[i] - ); + if (!getIsColl(tokens[i], address(this))) { + aave.setUserUseReserveAsCollateral(tokens[i], colEnable[i]); } } } diff --git a/contracts/fantom/connectors/aave/v3-import/main.sol b/contracts/fantom/connectors/aave/v3-import/main.sol index 2b4e19e0..37bf360c 100644 --- a/contracts/fantom/connectors/aave/v3-import/main.sol +++ b/contracts/fantom/connectors/aave/v3-import/main.sol @@ -3,7 +3,7 @@ pragma solidity ^0.7.0; pragma experimental ABIEncoderV2; /** * @title Aave v3 import connector . - * @dev Import EOA's / External DSA's aave V3 position to DSA's aave v3 position + * @dev Import EOA's aave V3 position to DSA's aave v3 position */ import { TokenInterface, AccountInterface } from "../../../common/interfaces.sol"; @@ -16,17 +16,10 @@ contract AaveV3ImportResolver is AaveHelpers { internal returns (string memory _eventName, bytes memory _eventParam) { - if (instaList.accountID(userAccount) == 0) { - require( - AccountInterface(address(this)).isAuth(userAccount), - "user-account-not-auth" - ); - } else { - require( - AccountInterface(userAccount).isAuth(address(this)), - "user-account-not-auth" - ); - } + require( + AccountInterface(address(this)).isAuth(userAccount), + "user-account-not-auth" + ); require(inputData.supplyTokens.length > 0, "0-length-not-allowed"); @@ -99,29 +92,18 @@ contract AaveV3ImportResolver is AaveHelpers { ); } - function _importAaveWithCollateral( - address userAccount, - ImportInputData memory inputData, - bool[] memory enableCollateral - ) internal returns (string memory _eventName, bytes memory _eventParam) { - if (instaList.accountID(userAccount) == 0) { - require( - AccountInterface(address(this)).isAuth(userAccount), - "user-account-not-auth" - ); - } else { - require( - AccountInterface(userAccount).isAuth(address(this)), - "user-account-not-auth" - ); - } - - require(inputData.supplyTokens.length > 0, "0-length-not-allowed"); + function _importAaveWithCollateral(address userAccount, ImportInputData memory inputData, bool[] memory enableCollateral) + internal + returns (string memory _eventName, bytes memory _eventParam) + { require( - enableCollateral.length == inputData.supplyTokens.length, - "lengths-not-same" + AccountInterface(address(this)).isAuth(userAccount), + "user-account-not-auth" ); + require(inputData.supplyTokens.length > 0, "0-length-not-allowed"); + require(enableCollateral.length == inputData.supplyTokens.length, "lengths-not-same"); + ImportData memory data; AaveInterface aave = AaveInterface(aaveProvider.getPool()); @@ -196,7 +178,7 @@ contract AaveV3ImportResolver is AaveHelpers { /** * @dev Import aave V3 position . * @notice Import EOA's aave V3 position to DSA's aave v3 position - * @param userAccount The address of the EOA from which Aave position will be imported or the address of the DSA to which the DSA's Aave position will be merged + * @param userAccount The address of the EOA from which aave position will be imported * @param inputData The struct containing all the neccessary input data */ function importAave(address userAccount, ImportInputData memory inputData) @@ -210,27 +192,19 @@ contract AaveV3ImportResolver is AaveHelpers { /** * @dev Import aave V3 position (with collateral). * @notice Import EOA's aave V3 position to DSA's aave v3 position - * @param userAccount The address of the EOA from which Aave position will be imported or the address of the DSA to which the DSA's Aave position will be merged + * @param userAccount The address of the EOA from which aave position will be imported * @param inputData The struct containing all the neccessary input data * @param enableCollateral The boolean array to enable selected collaterals in the imported position */ - function importAaveWithCollateral( - address userAccount, - ImportInputData memory inputData, - bool[] memory enableCollateral - ) + function importAaveWithCollateral(address userAccount, ImportInputData memory inputData, bool[] memory enableCollateral) external payable returns (string memory _eventName, bytes memory _eventParam) { - (_eventName, _eventParam) = _importAaveWithCollateral( - userAccount, - inputData, - enableCollateral - ); + (_eventName, _eventParam) = _importAaveWithCollateral(userAccount, inputData, enableCollateral); } } contract ConnectV2AaveV3ImportFantom is AaveV3ImportResolver { - string public constant name = "Aave-v3-import-v1.2"; + string public constant name = "Aave-v3-import-v1.1"; }