From 1cc999a99569a692de563dcaf824d615efac3af4 Mon Sep 17 00:00:00 2001 From: Thrilok Kumar Date: Fri, 16 Apr 2021 02:11:39 +0530 Subject: [PATCH] Fixed allownace issue on transferAtokens --- contracts/receivers/aave-v2-receiver/helpers.sol | 3 +++ 1 file changed, 3 insertions(+) diff --git a/contracts/receivers/aave-v2-receiver/helpers.sol b/contracts/receivers/aave-v2-receiver/helpers.sol index 23c01dd..891ee99 100644 --- a/contracts/receivers/aave-v2-receiver/helpers.sol +++ b/contracts/receivers/aave-v2-receiver/helpers.sol @@ -63,6 +63,7 @@ abstract contract Helpers is Stores, DSMath, Variables { data.token = supplyTokens[i] == maticAddr ? wmaticAddr : supplyTokens[i]; (data.atoken, ,) = aaveData.getReserveTokensAddresses(data.token); IERC20 _atokenContract = IERC20(data.atoken); + IERC20 _tokenContract = IERC20(data.token); data.atokenBal = _atokenContract.balanceOf(address(this)); data.supplyAmt = supplyAmts[i]; @@ -73,6 +74,7 @@ abstract contract Helpers is Stores, DSMath, Variables { if (data.tokenLiq < _reqAmt) { data.flashAmt = flashAmts[data.token]; if (data.flashAmt > 0) { + _tokenContract.approve(address(aave), data.flashAmt); aave.deposit(data.token, data.flashAmt, address(this), 3288); // TODO: what is our ID on Polygon? data.tokenLiq += data.flashAmt; data.isFlash = true; @@ -83,6 +85,7 @@ abstract contract Helpers is Stores, DSMath, Variables { uint splitAmt = _reqAmt/num; // TODO: Check decimal uint finalSplit = _reqAmt - (splitAmt * (num - 1)); // TODO: to resolve upper decimal error + _tokenContract.approve(address(aave), _reqAmt); for (uint j = 0; j < num; j++) { if (j < num - 1) { aave.borrow(data.token, splitAmt, 2, 3288, address(this));