diff --git a/contracts/polygon/connectors/aave/v3-import/helpers.sol b/contracts/polygon/connectors/aave/v3-import/helpers.sol index 7e1ffbc2..aa436556 100644 --- a/contracts/polygon/connectors/aave/v3-import/helpers.sol +++ b/contracts/polygon/connectors/aave/v3-import/helpers.sol @@ -224,6 +224,33 @@ contract AaveHelpers is Helper { } function _TransferAtokens( + uint256 _length, + AaveInterface aave, + ATokenInterface[] memory atokenContracts, + uint256[] memory amts, + address[] memory tokens, + address userAccount + ) internal { + 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); + } + } + } + } + + function _TransferAtokensWithCollateral( uint256 _length, AaveInterface aave, ATokenInterface[] memory atokenContracts, diff --git a/contracts/polygon/connectors/aave/v3-import/main.sol b/contracts/polygon/connectors/aave/v3-import/main.sol index 5356818a..14cf4a28 100644 --- a/contracts/polygon/connectors/aave/v3-import/main.sol +++ b/contracts/polygon/connectors/aave/v3-import/main.sol @@ -127,12 +127,13 @@ contract AaveV3ImportResolver is AaveHelpers { ); // transfer atokens to this address; - _TransferAtokens( + _TransferAtokensWithCollateral( data._supplyTokens.length, aave, data.aTokens, data.supplyAmts, data._supplyTokens, + enableCollateral, userAccount );