From ca187d5fe55e8186b7123cb497225cdfdbdb24fb Mon Sep 17 00:00:00 2001
From: bhavik-m <bhavikmehta2001@gmail.com>
Date: Fri, 11 Mar 2022 01:40:00 +0530
Subject: [PATCH] updated aave v3 addr, added flashloan fee in events, changed
 solidity version

---
 .../connectors/aave/v3-import/events.sol          |  3 ++-
 .../connectors/aave/v3-import/helpers.sol         | 15 ++++++---------
 .../connectors/aave/v3-import/interface.sol       |  6 +++---
 .../avalanche/connectors/aave/v3-import/main.sol  |  2 +-
 .../mainnet/connectors/aave/v3-import/events.sol  |  3 ++-
 .../mainnet/connectors/aave/v3-import/helpers.sol | 12 +++++-------
 .../connectors/aave/v3-import/interface.sol       | 14 +++++++-------
 .../mainnet/connectors/aave/v3-import/main.sol    |  2 +-
 .../polygon/connectors/aave/v3-import/events.sol  |  3 ++-
 .../polygon/connectors/aave/v3-import/helpers.sol | 12 +++++-------
 .../connectors/aave/v3-import/interface.sol       | 14 +++++++-------
 .../polygon/connectors/aave/v3-import/main.sol    |  2 +-
 12 files changed, 42 insertions(+), 46 deletions(-)

diff --git a/contracts/avalanche/connectors/aave/v3-import/events.sol b/contracts/avalanche/connectors/aave/v3-import/events.sol
index 2f45fcaa..08013251 100644
--- a/contracts/avalanche/connectors/aave/v3-import/events.sol
+++ b/contracts/avalanche/connectors/aave/v3-import/events.sol
@@ -1,4 +1,4 @@
-pragma solidity ^0.8.6;
+pragma solidity ^0.7.0;
 pragma experimental ABIEncoderV2;
 
 contract Events {
@@ -7,6 +7,7 @@ contract Events {
 		address[] ctokens,
 		string[] supplyIds,
 		string[] borrowIds,
+		uint256[] flashLoanFees,
 		uint256[] supplyAmts,
 		uint256[] borrowAmts
 	);
diff --git a/contracts/avalanche/connectors/aave/v3-import/helpers.sol b/contracts/avalanche/connectors/aave/v3-import/helpers.sol
index 9ae1c826..72586c51 100644
--- a/contracts/avalanche/connectors/aave/v3-import/helpers.sol
+++ b/contracts/avalanche/connectors/aave/v3-import/helpers.sol
@@ -1,9 +1,8 @@
-pragma solidity ^0.8.6;
-
+pragma solidity ^0.7.0;
 import { DSMath } from "../../../common/math.sol";
 import { Basic } from "../../../common/basic.sol";
 import { TokenInterface, AccountInterface } from "../../../common/interfaces.sol";
-import { AaveInterface, AaveLendingPoolProviderInterface, AaveDataProviderInterface } from "./interface.sol";
+import { AaveInterface, AavePoolProviderInterface, AaveDataProviderInterface } from "./interface.sol";
 import "./events.sol";
 import "./interface.sol";
 
@@ -14,18 +13,16 @@ abstract contract Helper is DSMath, Basic {
 	uint16 internal constant referalCode = 3228;
 
 	/**
-	 * @dev Aave Lending Pool Provider
+	 * @dev Aave Pool Provider
 	 */
-	AaveLendingPoolProviderInterface internal constant aaveProvider =
-		AaveLendingPoolProviderInterface(
-			0xB53C1a33016B2DC2fF3653530bfF1848a515c8c5 // v2 address TODO: need to update this
-		);
+	AavePoolProviderInterface internal constant aaveProvider =
+		AavePoolProviderInterface(0x7013523049CeC8b06F594edb8c5fb7F232c0Df7C);
 
 	/**
 	 * @dev Aave Protocol Data Provider
 	 */
 	AaveDataProviderInterface internal constant aaveData =
-		AaveDataProviderInterface(0x057835Ad21a177dbdd3090bB1CAE03EaCF78Fc6d); // TODO: need to update this
+		AaveDataProviderInterface(0x44C7324E9d84D6534DD6f292Cc08f1816e45Ff6e);
 
 	function getIsColl(address token, address user)
 		internal
diff --git a/contracts/avalanche/connectors/aave/v3-import/interface.sol b/contracts/avalanche/connectors/aave/v3-import/interface.sol
index 3a77a892..4cce4a80 100644
--- a/contracts/avalanche/connectors/aave/v3-import/interface.sol
+++ b/contracts/avalanche/connectors/aave/v3-import/interface.sol
@@ -1,7 +1,7 @@
-pragma solidity ^0.8.6;
+pragma solidity ^0.7.0;
 
 interface AaveInterface {
-	function deposit(
+	function supply(
 		address _asset,
 		uint256 _amount,
 		address _onBehalfOf,
@@ -56,7 +56,7 @@ interface ATokenInterface {
 	function allowance(address, address) external returns (uint256);
 }
 
-interface AaveLendingPoolProviderInterface {
+interface AavePoolProviderInterface {
 	function getPool() external view returns (address);
 }
 
diff --git a/contracts/avalanche/connectors/aave/v3-import/main.sol b/contracts/avalanche/connectors/aave/v3-import/main.sol
index cfc45ac2..8d183d87 100644
--- a/contracts/avalanche/connectors/aave/v3-import/main.sol
+++ b/contracts/avalanche/connectors/aave/v3-import/main.sol
@@ -1,4 +1,4 @@
-pragma solidity ^0.8.6;
+pragma solidity ^0.7.0;
 pragma experimental ABIEncoderV2;
 /**
  * @title Aave v3 import connector .
diff --git a/contracts/mainnet/connectors/aave/v3-import/events.sol b/contracts/mainnet/connectors/aave/v3-import/events.sol
index 2f45fcaa..08013251 100644
--- a/contracts/mainnet/connectors/aave/v3-import/events.sol
+++ b/contracts/mainnet/connectors/aave/v3-import/events.sol
@@ -1,4 +1,4 @@
-pragma solidity ^0.8.6;
+pragma solidity ^0.7.0;
 pragma experimental ABIEncoderV2;
 
 contract Events {
@@ -7,6 +7,7 @@ contract Events {
 		address[] ctokens,
 		string[] supplyIds,
 		string[] borrowIds,
+		uint256[] flashLoanFees,
 		uint256[] supplyAmts,
 		uint256[] borrowAmts
 	);
diff --git a/contracts/mainnet/connectors/aave/v3-import/helpers.sol b/contracts/mainnet/connectors/aave/v3-import/helpers.sol
index 1337867f..6c400105 100644
--- a/contracts/mainnet/connectors/aave/v3-import/helpers.sol
+++ b/contracts/mainnet/connectors/aave/v3-import/helpers.sol
@@ -1,9 +1,9 @@
-pragma solidity ^0.8.6;
+pragma solidity ^0.7.0;
 
 import { DSMath } from "../../../common/math.sol";
 import { Basic } from "../../../common/basic.sol";
 import { TokenInterface, AccountInterface } from "../../../common/interfaces.sol";
-import { AaveInterface, AaveLendingPoolProviderInterface, AaveDataProviderInterface } from "./interface.sol";
+import { AaveInterface, AavePoolProviderInterface, AaveDataProviderInterface } from "./interface.sol";
 import "./events.sol";
 import "./interface.sol";
 
@@ -16,16 +16,14 @@ abstract contract Helper is DSMath, Basic {
 	/**
 	 * @dev Aave Lending Pool Provider
 	 */
-	AaveLendingPoolProviderInterface internal constant aaveProvider =
-		AaveLendingPoolProviderInterface(
-			0xB53C1a33016B2DC2fF3653530bfF1848a515c8c5 // v2 address TODO: need to update this
-		);
+	AavePoolProviderInterface internal constant aaveProvider =
+		AavePoolProviderInterface(0xB53C1a33016B2DC2fF3653530bfF1848a515c8c5);
 
 	/**
 	 * @dev Aave Protocol Data Provider
 	 */
 	AaveDataProviderInterface internal constant aaveData =
-		AaveDataProviderInterface(0x057835Ad21a177dbdd3090bB1CAE03EaCF78Fc6d); // TODO: need to update this
+		AaveDataProviderInterface(0x057835Ad21a177dbdd3090bB1CAE03EaCF78Fc6d);
 
 	function getIsColl(address token, address user)
 		internal
diff --git a/contracts/mainnet/connectors/aave/v3-import/interface.sol b/contracts/mainnet/connectors/aave/v3-import/interface.sol
index 3a77a892..2085007b 100644
--- a/contracts/mainnet/connectors/aave/v3-import/interface.sol
+++ b/contracts/mainnet/connectors/aave/v3-import/interface.sol
@@ -1,11 +1,11 @@
-pragma solidity ^0.8.6;
+pragma solidity ^0.7.0;
 
 interface AaveInterface {
-	function deposit(
-		address _asset,
-		uint256 _amount,
-		address _onBehalfOf,
-		uint16 _referralCode
+	function supply(
+		address asset,
+		uint256 amount,
+		address onBehalfOf,
+		uint16 referralCode
 	) external;
 
 	function withdraw(
@@ -56,7 +56,7 @@ interface ATokenInterface {
 	function allowance(address, address) external returns (uint256);
 }
 
-interface AaveLendingPoolProviderInterface {
+interface AavePoolProviderInterface {
 	function getPool() external view returns (address);
 }
 
diff --git a/contracts/mainnet/connectors/aave/v3-import/main.sol b/contracts/mainnet/connectors/aave/v3-import/main.sol
index 3a71d0a9..244238e9 100644
--- a/contracts/mainnet/connectors/aave/v3-import/main.sol
+++ b/contracts/mainnet/connectors/aave/v3-import/main.sol
@@ -1,4 +1,4 @@
-pragma solidity ^0.8.6;
+pragma solidity ^0.7.0;
 pragma experimental ABIEncoderV2;
 /**
  * @title Aave v3 import connector .
diff --git a/contracts/polygon/connectors/aave/v3-import/events.sol b/contracts/polygon/connectors/aave/v3-import/events.sol
index 2f45fcaa..08013251 100644
--- a/contracts/polygon/connectors/aave/v3-import/events.sol
+++ b/contracts/polygon/connectors/aave/v3-import/events.sol
@@ -1,4 +1,4 @@
-pragma solidity ^0.8.6;
+pragma solidity ^0.7.0;
 pragma experimental ABIEncoderV2;
 
 contract Events {
@@ -7,6 +7,7 @@ contract Events {
 		address[] ctokens,
 		string[] supplyIds,
 		string[] borrowIds,
+		uint256[] flashLoanFees,
 		uint256[] supplyAmts,
 		uint256[] borrowAmts
 	);
diff --git a/contracts/polygon/connectors/aave/v3-import/helpers.sol b/contracts/polygon/connectors/aave/v3-import/helpers.sol
index d09fddd8..47437037 100644
--- a/contracts/polygon/connectors/aave/v3-import/helpers.sol
+++ b/contracts/polygon/connectors/aave/v3-import/helpers.sol
@@ -1,9 +1,9 @@
-pragma solidity ^0.8.6;
+pragma solidity ^0.7.0;
 
 import { DSMath } from "../../../common/math.sol";
 import { Basic } from "../../../common/basic.sol";
 import { TokenInterface, AccountInterface } from "../../../common/interfaces.sol";
-import { AaveInterface, AaveLendingPoolProviderInterface, AaveDataProviderInterface } from "./interface.sol";
+import { AaveInterface, AavePoolProviderInterface, AaveDataProviderInterface } from "./interface.sol";
 import "./events.sol";
 import "./interface.sol";
 
@@ -16,16 +16,14 @@ abstract contract Helper is DSMath, Basic {
 	/**
 	 * @dev Aave Lending Pool Provider
 	 */
-	AaveLendingPoolProviderInterface internal constant aaveProvider =
-		AaveLendingPoolProviderInterface(
-			0xB53C1a33016B2DC2fF3653530bfF1848a515c8c5 // v2 address TODO: need to update this
-		);
+	AavePoolProviderInterface internal constant aaveProvider =
+		AavePoolProviderInterface(0x7013523049CeC8b06F594edb8c5fb7F232c0Df7C);
 
 	/**
 	 * @dev Aave Protocol Data Provider
 	 */
 	AaveDataProviderInterface internal constant aaveData =
-		AaveDataProviderInterface(0x057835Ad21a177dbdd3090bB1CAE03EaCF78Fc6d); // TODO: need to update this
+		AaveDataProviderInterface(0x44C7324E9d84D6534DD6f292Cc08f1816e45Ff6e);
 
 	function getIsColl(address token, address user)
 		internal
diff --git a/contracts/polygon/connectors/aave/v3-import/interface.sol b/contracts/polygon/connectors/aave/v3-import/interface.sol
index 3a77a892..2085007b 100644
--- a/contracts/polygon/connectors/aave/v3-import/interface.sol
+++ b/contracts/polygon/connectors/aave/v3-import/interface.sol
@@ -1,11 +1,11 @@
-pragma solidity ^0.8.6;
+pragma solidity ^0.7.0;
 
 interface AaveInterface {
-	function deposit(
-		address _asset,
-		uint256 _amount,
-		address _onBehalfOf,
-		uint16 _referralCode
+	function supply(
+		address asset,
+		uint256 amount,
+		address onBehalfOf,
+		uint16 referralCode
 	) external;
 
 	function withdraw(
@@ -56,7 +56,7 @@ interface ATokenInterface {
 	function allowance(address, address) external returns (uint256);
 }
 
-interface AaveLendingPoolProviderInterface {
+interface AavePoolProviderInterface {
 	function getPool() external view returns (address);
 }
 
diff --git a/contracts/polygon/connectors/aave/v3-import/main.sol b/contracts/polygon/connectors/aave/v3-import/main.sol
index 7a0303a0..a43102c5 100644
--- a/contracts/polygon/connectors/aave/v3-import/main.sol
+++ b/contracts/polygon/connectors/aave/v3-import/main.sol
@@ -1,4 +1,4 @@
-pragma solidity ^0.8.6;
+pragma solidity ^0.7.0;
 pragma experimental ABIEncoderV2;
 /**
  * @title Aave v3 import connector .