@bgd-labs/aave-address-book 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitmodules +4 -0
- package/CHANGELOG.md +56 -0
- package/LICENSE +7 -0
- package/README.md +94 -0
- package/addressbook_logo.png +0 -0
- package/dist/AaveAddressBook.d.ts +17 -0
- package/dist/AaveAddressBook.js +20 -0
- package/dist/AaveV2Avalanche.d.ts +9 -0
- package/dist/AaveV2Avalanche.js +12 -0
- package/dist/AaveV2Ethereum.d.ts +9 -0
- package/dist/AaveV2Ethereum.js +12 -0
- package/dist/AaveV2EthereumAMM.d.ts +9 -0
- package/dist/AaveV2EthereumAMM.js +12 -0
- package/dist/AaveV2EthereumArc.d.ts +9 -0
- package/dist/AaveV2EthereumArc.js +12 -0
- package/dist/AaveV2Fuji.d.ts +9 -0
- package/dist/AaveV2Fuji.js +12 -0
- package/dist/AaveV2Mumbai.d.ts +9 -0
- package/dist/AaveV2Mumbai.js +12 -0
- package/dist/AaveV2Polygon.d.ts +9 -0
- package/dist/AaveV2Polygon.js +12 -0
- package/dist/AaveV3Arbitrum.d.ts +9 -0
- package/dist/AaveV3Arbitrum.js +12 -0
- package/dist/AaveV3Avalanche.d.ts +9 -0
- package/dist/AaveV3Avalanche.js +12 -0
- package/dist/AaveV3Fantom.d.ts +9 -0
- package/dist/AaveV3Fantom.js +12 -0
- package/dist/AaveV3FantomTestnet.d.ts +9 -0
- package/dist/AaveV3FantomTestnet.js +12 -0
- package/dist/AaveV3Fuji.d.ts +9 -0
- package/dist/AaveV3Fuji.js +12 -0
- package/dist/AaveV3Harmony.d.ts +9 -0
- package/dist/AaveV3Harmony.js +12 -0
- package/dist/AaveV3Mumbai.d.ts +9 -0
- package/dist/AaveV3Mumbai.js +12 -0
- package/dist/AaveV3Optimism.d.ts +9 -0
- package/dist/AaveV3Optimism.js +12 -0
- package/dist/AaveV3OptimismKovan.d.ts +9 -0
- package/dist/AaveV3OptimismKovan.js +12 -0
- package/dist/AaveV3Polygon.d.ts +9 -0
- package/dist/AaveV3Polygon.js +12 -0
- package/foundry.toml +8 -0
- package/lib/forge-std/.github/workflows/tests.yml +27 -0
- package/lib/forge-std/.gitmodules +3 -0
- package/lib/forge-std/LICENSE-APACHE +203 -0
- package/lib/forge-std/LICENSE-MIT +25 -0
- package/lib/forge-std/README.md +246 -0
- package/lib/forge-std/lib/ds-test/LICENSE +674 -0
- package/lib/forge-std/lib/ds-test/Makefile +14 -0
- package/lib/forge-std/lib/ds-test/default.nix +4 -0
- package/lib/forge-std/lib/ds-test/demo/demo.sol +222 -0
- package/lib/forge-std/lib/ds-test/src/test.sol +469 -0
- package/lib/forge-std/src/Script.sol +39 -0
- package/lib/forge-std/src/StdJson.sol +118 -0
- package/lib/forge-std/src/Test.sol +1134 -0
- package/lib/forge-std/src/Vm.sol +231 -0
- package/lib/forge-std/src/console.sol +1533 -0
- package/lib/forge-std/src/console2.sol +1538 -0
- package/lib/forge-std/src/test/Script.t.sol +12 -0
- package/lib/forge-std/src/test/StdAssertions.t.sol +591 -0
- package/lib/forge-std/src/test/StdCheats.t.sol +282 -0
- package/lib/forge-std/src/test/StdError.t.sol +124 -0
- package/lib/forge-std/src/test/StdMath.t.sol +200 -0
- package/lib/forge-std/src/test/StdStorage.t.sol +321 -0
- package/lib/forge-std/src/test/fixtures/broadcast.log.json +187 -0
- package/package.json +39 -0
- package/src/AaveAddressBook.sol +28 -0
- package/src/AaveAddressBookV2.sol +143 -0
- package/src/AaveAddressBookV2Testnet.sol +74 -0
- package/src/AaveAddressBookV3.sol +166 -0
- package/src/AaveAddressBookV3Testnet.sol +120 -0
- package/src/AaveGovernanceV2.sol +549 -0
- package/src/AaveV2.sol +931 -0
- package/src/AaveV2Avalanche.sol +35 -0
- package/src/AaveV2Ethereum.sol +36 -0
- package/src/AaveV2EthereumAMM.sol +36 -0
- package/src/AaveV2EthereumArc.sol +36 -0
- package/src/AaveV2Fuji.sol +35 -0
- package/src/AaveV2Mumbai.sol +35 -0
- package/src/AaveV2Polygon.sol +35 -0
- package/src/AaveV3.sol +2406 -0
- package/src/AaveV3Arbitrum.sol +34 -0
- package/src/AaveV3Avalanche.sol +34 -0
- package/src/AaveV3Fantom.sol +34 -0
- package/src/AaveV3FantomTestnet.sol +34 -0
- package/src/AaveV3Fuji.sol +34 -0
- package/src/AaveV3Harmony.sol +34 -0
- package/src/AaveV3HarmonyTestnet.sol +34 -0
- package/src/AaveV3Mumbai.sol +34 -0
- package/src/AaveV3Optimism.sol +34 -0
- package/src/AaveV3OptimismKovan.sol +34 -0
- package/src/AaveV3Polygon.sol +34 -0
- package/src/Common.sol +9 -0
- package/src/test/AaveV2Ethereum.t.sol +72 -0
- package/src/test/AaveV2Misfits.t.sol +33 -0
- package/src/test/AaveV3Avalanche.t.sol +65 -0
- package/src/ts/AaveAddressBook.ts +17 -0
- package/src/ts/AaveV2Avalanche.ts +11 -0
- package/src/ts/AaveV2Ethereum.ts +12 -0
- package/src/ts/AaveV2EthereumAMM.ts +12 -0
- package/src/ts/AaveV2EthereumArc.ts +12 -0
- package/src/ts/AaveV2Fuji.ts +11 -0
- package/src/ts/AaveV2Mumbai.ts +11 -0
- package/src/ts/AaveV2Polygon.ts +11 -0
- package/src/ts/AaveV3Arbitrum.ts +12 -0
- package/src/ts/AaveV3Avalanche.ts +12 -0
- package/src/ts/AaveV3Fantom.ts +12 -0
- package/src/ts/AaveV3FantomTestnet.ts +12 -0
- package/src/ts/AaveV3Fuji.ts +12 -0
- package/src/ts/AaveV3Harmony.ts +12 -0
- package/src/ts/AaveV3Mumbai.ts +12 -0
- package/src/ts/AaveV3Optimism.ts +12 -0
- package/src/ts/AaveV3OptimismKovan.ts +12 -0
- package/src/ts/AaveV3Polygon.ts +12 -0
- package/tsconfig.json +101 -0
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity >=0.6.0;
|
|
3
|
+
|
|
4
|
+
import {ILendingPoolAddressesProvider, ILendingPool, ILendingPoolConfigurator, IAaveOracle, IAaveProtocolDataProvider} from "./AaveV2.sol";
|
|
5
|
+
import {Token} from "./Common.sol";
|
|
6
|
+
|
|
7
|
+
library AaveAddressBookV2 {
|
|
8
|
+
string public constant AaveV2Ethereum = "AaveV2Ethereum";
|
|
9
|
+
string public constant AaveV2EthereumAMM = "AaveV2EthereumAMM";
|
|
10
|
+
string public constant AaveV2EthereumArc = "AaveV2EthereumArc";
|
|
11
|
+
string public constant AaveV2Polygon = "AaveV2Polygon";
|
|
12
|
+
string public constant AaveV2Avalanche = "AaveV2Avalanche";
|
|
13
|
+
|
|
14
|
+
struct Market {
|
|
15
|
+
ILendingPoolAddressesProvider POOL_ADDRESSES_PROVIDER;
|
|
16
|
+
ILendingPool POOL;
|
|
17
|
+
ILendingPoolConfigurator POOL_CONFIGURATOR;
|
|
18
|
+
IAaveOracle ORACLE;
|
|
19
|
+
IAaveProtocolDataProvider AAVE_PROTOCOL_DATA_PROVIDER;
|
|
20
|
+
address POOL_ADMIN;
|
|
21
|
+
address EMERGENCY_ADMIN;
|
|
22
|
+
address COLLECTOR;
|
|
23
|
+
address COLLECTOR_CONTROLLER;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function getMarket(string calldata market)
|
|
27
|
+
public
|
|
28
|
+
pure
|
|
29
|
+
returns (Market memory m)
|
|
30
|
+
{
|
|
31
|
+
if (
|
|
32
|
+
keccak256(abi.encodePacked(market)) ==
|
|
33
|
+
keccak256(abi.encodePacked(AaveV2Ethereum))
|
|
34
|
+
) {
|
|
35
|
+
return
|
|
36
|
+
Market(
|
|
37
|
+
ILendingPoolAddressesProvider(
|
|
38
|
+
0xB53C1a33016B2DC2fF3653530bfF1848a515c8c5
|
|
39
|
+
),
|
|
40
|
+
ILendingPool(0x7d2768dE32b0b80b7a3454c06BdAc94A69DDc7A9),
|
|
41
|
+
ILendingPoolConfigurator(
|
|
42
|
+
0x311Bb771e4F8952E6Da169b425E7e92d6Ac45756
|
|
43
|
+
),
|
|
44
|
+
IAaveOracle(0xA50ba011c48153De246E5192C8f9258A2ba79Ca9),
|
|
45
|
+
IAaveProtocolDataProvider(
|
|
46
|
+
0x057835Ad21a177dbdd3090bB1CAE03EaCF78Fc6d
|
|
47
|
+
),
|
|
48
|
+
0xEE56e2B3D491590B5b31738cC34d5232F378a8D5,
|
|
49
|
+
0xCA76Ebd8617a03126B6FB84F9b1c1A0fB71C2633,
|
|
50
|
+
0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c,
|
|
51
|
+
0x3d569673dAa0575c936c7c67c4E6AedA69CC630C
|
|
52
|
+
);
|
|
53
|
+
} else if (
|
|
54
|
+
keccak256(abi.encodePacked(market)) ==
|
|
55
|
+
keccak256(abi.encodePacked(AaveV2EthereumAMM))
|
|
56
|
+
) {
|
|
57
|
+
return
|
|
58
|
+
Market(
|
|
59
|
+
ILendingPoolAddressesProvider(
|
|
60
|
+
0xAcc030EF66f9dFEAE9CbB0cd1B25654b82cFA8d5
|
|
61
|
+
),
|
|
62
|
+
ILendingPool(0x7937D4799803FbBe595ed57278Bc4cA21f3bFfCB),
|
|
63
|
+
ILendingPoolConfigurator(
|
|
64
|
+
0x23A875eDe3F1030138701683e42E9b16A7F87768
|
|
65
|
+
),
|
|
66
|
+
IAaveOracle(0xA50ba011c48153De246E5192C8f9258A2ba79Ca9),
|
|
67
|
+
IAaveProtocolDataProvider(
|
|
68
|
+
0x0000000000000000000000000000000000000000
|
|
69
|
+
),
|
|
70
|
+
0xEE56e2B3D491590B5b31738cC34d5232F378a8D5,
|
|
71
|
+
0xB9062896ec3A615a4e4444DF183F0531a77218AE,
|
|
72
|
+
0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c,
|
|
73
|
+
0x3d569673dAa0575c936c7c67c4E6AedA69CC630C
|
|
74
|
+
);
|
|
75
|
+
} else if (
|
|
76
|
+
keccak256(abi.encodePacked(market)) ==
|
|
77
|
+
keccak256(abi.encodePacked(AaveV2EthereumArc))
|
|
78
|
+
) {
|
|
79
|
+
return
|
|
80
|
+
Market(
|
|
81
|
+
ILendingPoolAddressesProvider(
|
|
82
|
+
0x6FdfafB66d39cD72CFE7984D3Bbcc76632faAb00
|
|
83
|
+
),
|
|
84
|
+
ILendingPool(0x37D7306019a38Af123e4b245Eb6C28AF552e0bB0),
|
|
85
|
+
ILendingPoolConfigurator(
|
|
86
|
+
0x4e1c7865e7BE78A7748724Fa0409e88dc14E67aA
|
|
87
|
+
),
|
|
88
|
+
IAaveOracle(0xB8a7bc0d13B1f5460513040a97F404b4fea7D2f3),
|
|
89
|
+
IAaveProtocolDataProvider(
|
|
90
|
+
0x71B53fC437cCD988b1b89B1D4605c3c3d0C810ea
|
|
91
|
+
),
|
|
92
|
+
0xAce1d11d836cb3F51Ef658FD4D353fFb3c301218,
|
|
93
|
+
0x33B09130b035d6D7e57d76fEa0873d9545FA7557,
|
|
94
|
+
0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c,
|
|
95
|
+
0x3d569673dAa0575c936c7c67c4E6AedA69CC630C
|
|
96
|
+
);
|
|
97
|
+
} else if (
|
|
98
|
+
keccak256(abi.encodePacked(market)) ==
|
|
99
|
+
keccak256(abi.encodePacked(AaveV2Polygon))
|
|
100
|
+
) {
|
|
101
|
+
return
|
|
102
|
+
Market(
|
|
103
|
+
ILendingPoolAddressesProvider(
|
|
104
|
+
0xd05e3E715d945B59290df0ae8eF85c1BdB684744
|
|
105
|
+
),
|
|
106
|
+
ILendingPool(0x8dFf5E27EA6b7AC08EbFdf9eB090F32ee9a30fcf),
|
|
107
|
+
ILendingPoolConfigurator(
|
|
108
|
+
0x26db2B833021583566323E3b8985999981b9F1F3
|
|
109
|
+
),
|
|
110
|
+
IAaveOracle(0x0229F777B0fAb107F9591a41d5F02E4e98dB6f2d),
|
|
111
|
+
IAaveProtocolDataProvider(
|
|
112
|
+
0x7551b5D2763519d4e37e8B81929D336De671d46d
|
|
113
|
+
),
|
|
114
|
+
0xdc9A35B16DB4e126cFeDC41322b3a36454B1F772,
|
|
115
|
+
0x1450F2898D6bA2710C98BE9CAF3041330eD5ae58,
|
|
116
|
+
0x7734280A4337F37Fbf4651073Db7c28C80B339e9,
|
|
117
|
+
address(0)
|
|
118
|
+
);
|
|
119
|
+
} else if (
|
|
120
|
+
keccak256(abi.encodePacked(market)) ==
|
|
121
|
+
keccak256(abi.encodePacked(AaveV2Avalanche))
|
|
122
|
+
) {
|
|
123
|
+
return
|
|
124
|
+
Market(
|
|
125
|
+
ILendingPoolAddressesProvider(
|
|
126
|
+
0xb6A86025F0FE1862B372cb0ca18CE3EDe02A318f
|
|
127
|
+
),
|
|
128
|
+
ILendingPool(0x4F01AeD16D97E3aB5ab2B501154DC9bb0F1A5A2C),
|
|
129
|
+
ILendingPoolConfigurator(
|
|
130
|
+
0x230B618aD4C475393A7239aE03630042281BD86e
|
|
131
|
+
),
|
|
132
|
+
IAaveOracle(0xdC336Cd4769f4cC7E9d726DA53e6d3fC710cEB89),
|
|
133
|
+
IAaveProtocolDataProvider(
|
|
134
|
+
0x65285E9dfab318f57051ab2b139ccCf232945451
|
|
135
|
+
),
|
|
136
|
+
0x01244E7842254e3FD229CD263472076B1439D1Cd,
|
|
137
|
+
0x01244E7842254e3FD229CD263472076B1439D1Cd,
|
|
138
|
+
0x467b92aF281d14cB6809913AD016a607b5ba8A36,
|
|
139
|
+
address(0)
|
|
140
|
+
);
|
|
141
|
+
} else revert("Market does not exist");
|
|
142
|
+
}
|
|
143
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity >=0.6.0;
|
|
3
|
+
|
|
4
|
+
import {ILendingPoolAddressesProvider, ILendingPool, ILendingPoolConfigurator, IAaveOracle, IAaveProtocolDataProvider} from "./AaveV2.sol";
|
|
5
|
+
import {Token} from "./Common.sol";
|
|
6
|
+
|
|
7
|
+
library AaveAddressBookV2Testnet {
|
|
8
|
+
string public constant AaveV2Mumbai = "AaveV2Mumbai";
|
|
9
|
+
string public constant AaveV2Fuji = "AaveV2Fuji";
|
|
10
|
+
|
|
11
|
+
struct Market {
|
|
12
|
+
ILendingPoolAddressesProvider POOL_ADDRESSES_PROVIDER;
|
|
13
|
+
ILendingPool POOL;
|
|
14
|
+
ILendingPoolConfigurator POOL_CONFIGURATOR;
|
|
15
|
+
IAaveOracle ORACLE;
|
|
16
|
+
IAaveProtocolDataProvider AAVE_PROTOCOL_DATA_PROVIDER;
|
|
17
|
+
address POOL_ADMIN;
|
|
18
|
+
address EMERGENCY_ADMIN;
|
|
19
|
+
address COLLECTOR;
|
|
20
|
+
address COLLECTOR_CONTROLLER;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function getMarket(string calldata market)
|
|
24
|
+
public
|
|
25
|
+
pure
|
|
26
|
+
returns (Market memory m)
|
|
27
|
+
{
|
|
28
|
+
if (
|
|
29
|
+
keccak256(abi.encodePacked(market)) ==
|
|
30
|
+
keccak256(abi.encodePacked(AaveV2Mumbai))
|
|
31
|
+
) {
|
|
32
|
+
return
|
|
33
|
+
Market(
|
|
34
|
+
ILendingPoolAddressesProvider(
|
|
35
|
+
0x178113104fEcbcD7fF8669a0150721e231F0FD4B
|
|
36
|
+
),
|
|
37
|
+
ILendingPool(0x9198F13B08E299d85E096929fA9781A1E3d5d827),
|
|
38
|
+
ILendingPoolConfigurator(
|
|
39
|
+
0xc3c37E2aA3dc66464fa3C29ce2a6EC85beFC45e1
|
|
40
|
+
),
|
|
41
|
+
IAaveOracle(0xC365C653f7229894F93994CD0b30947Ab69Ff1D5),
|
|
42
|
+
IAaveProtocolDataProvider(
|
|
43
|
+
0xFA3bD19110d986c5e5E9DD5F69362d05035D045B
|
|
44
|
+
),
|
|
45
|
+
0x943E44157dC0302a5CEb172374d1749018a00994,
|
|
46
|
+
0x943E44157dC0302a5CEb172374d1749018a00994,
|
|
47
|
+
0x943E44157dC0302a5CEb172374d1749018a00994,
|
|
48
|
+
address(0)
|
|
49
|
+
);
|
|
50
|
+
} else if (
|
|
51
|
+
keccak256(abi.encodePacked(market)) ==
|
|
52
|
+
keccak256(abi.encodePacked(AaveV2Fuji))
|
|
53
|
+
) {
|
|
54
|
+
return
|
|
55
|
+
Market(
|
|
56
|
+
ILendingPoolAddressesProvider(
|
|
57
|
+
0x7fdC1FdF79BE3309bf82f4abdAD9f111A6590C0f
|
|
58
|
+
),
|
|
59
|
+
ILendingPool(0x76cc67FF2CC77821A70ED14321111Ce381C2594D),
|
|
60
|
+
ILendingPoolConfigurator(
|
|
61
|
+
0x4ceBAFAAcc6Cb26FD90E4cDe138Eb812442bb5f3
|
|
62
|
+
),
|
|
63
|
+
IAaveOracle(0xfa4f5B081632c4709667D467F817C09d9008A46A),
|
|
64
|
+
IAaveProtocolDataProvider(
|
|
65
|
+
0x0668EDE013c1c475724523409b8B6bE633469585
|
|
66
|
+
),
|
|
67
|
+
0x1128d177BdaA74Ae68EB06e693f4CbA6BF427a5e,
|
|
68
|
+
0x1128d177BdaA74Ae68EB06e693f4CbA6BF427a5e,
|
|
69
|
+
0xB45F5C501A22288dfdb897e5f73E189597e09288,
|
|
70
|
+
address(0)
|
|
71
|
+
);
|
|
72
|
+
} else revert("Market does not exist");
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity >=0.6.0;
|
|
3
|
+
|
|
4
|
+
import {IPoolAddressesProvider, IPool, IPoolConfigurator, IAaveOracle, IAaveProtocolDataProvider, IACLManager} from "./AaveV3.sol";
|
|
5
|
+
import {Token} from "./Common.sol";
|
|
6
|
+
|
|
7
|
+
library AaveAddressBookV3 {
|
|
8
|
+
string public constant AaveV3Polygon = "AaveV3Polygon";
|
|
9
|
+
string public constant AaveV3Avalanche = "AaveV3Avalanche";
|
|
10
|
+
string public constant AaveV3Arbitrum = "AaveV3Arbitrum";
|
|
11
|
+
string public constant AaveV3Fantom = "AaveV3Fantom";
|
|
12
|
+
string public constant AaveV3Harmony = "AaveV3Harmony";
|
|
13
|
+
string public constant AaveV3Optimism = "AaveV3Optimism";
|
|
14
|
+
|
|
15
|
+
struct Market {
|
|
16
|
+
IPoolAddressesProvider POOL_ADDRESSES_PROVIDER;
|
|
17
|
+
IPool POOL;
|
|
18
|
+
IPoolConfigurator POOL_CONFIGURATOR;
|
|
19
|
+
IAaveOracle ORACLE;
|
|
20
|
+
IAaveProtocolDataProvider POOL_DATA_PROVIDER;
|
|
21
|
+
IACLManager ACL_MANAGER;
|
|
22
|
+
address ACL_ADMIN;
|
|
23
|
+
address COLLECTOR;
|
|
24
|
+
address COLLECTOR_CONTROLLER;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function getMarket(string calldata market)
|
|
28
|
+
public
|
|
29
|
+
pure
|
|
30
|
+
returns (Market memory m)
|
|
31
|
+
{
|
|
32
|
+
if (
|
|
33
|
+
keccak256(abi.encodePacked((market))) ==
|
|
34
|
+
keccak256(abi.encodePacked((AaveV3Polygon)))
|
|
35
|
+
) {
|
|
36
|
+
return
|
|
37
|
+
Market(
|
|
38
|
+
IPoolAddressesProvider(
|
|
39
|
+
0xa97684ead0e402dC232d5A977953DF7ECBaB3CDb
|
|
40
|
+
),
|
|
41
|
+
IPool(0x794a61358D6845594F94dc1DB02A252b5b4814aD),
|
|
42
|
+
IPoolConfigurator(
|
|
43
|
+
0x8145eddDf43f50276641b55bd3AD95944510021E
|
|
44
|
+
),
|
|
45
|
+
IAaveOracle(0xb023e699F5a33916Ea823A16485e259257cA8Bd1),
|
|
46
|
+
IAaveProtocolDataProvider(
|
|
47
|
+
0x69FA688f1Dc47d4B5d8029D5a35FB7a548310654
|
|
48
|
+
),
|
|
49
|
+
IACLManager(0xa72636CbcAa8F5FF95B2cc47F3CDEe83F3294a0B),
|
|
50
|
+
0xdc9A35B16DB4e126cFeDC41322b3a36454B1F772,
|
|
51
|
+
0xe8599F3cc5D38a9aD6F3684cd5CEa72f10Dbc383,
|
|
52
|
+
0x73D435AFc15e35A9aC63B2a81B5AA54f974eadFe
|
|
53
|
+
);
|
|
54
|
+
} else if (
|
|
55
|
+
keccak256(abi.encodePacked((market))) ==
|
|
56
|
+
keccak256(abi.encodePacked((AaveV3Avalanche)))
|
|
57
|
+
) {
|
|
58
|
+
return
|
|
59
|
+
Market(
|
|
60
|
+
IPoolAddressesProvider(
|
|
61
|
+
0xa97684ead0e402dC232d5A977953DF7ECBaB3CDb
|
|
62
|
+
),
|
|
63
|
+
IPool(0x794a61358D6845594F94dc1DB02A252b5b4814aD),
|
|
64
|
+
IPoolConfigurator(
|
|
65
|
+
0x8145eddDf43f50276641b55bd3AD95944510021E
|
|
66
|
+
),
|
|
67
|
+
IAaveOracle(0xEBd36016B3eD09D4693Ed4251c67Bd858c3c7C9C),
|
|
68
|
+
IAaveProtocolDataProvider(
|
|
69
|
+
0x69FA688f1Dc47d4B5d8029D5a35FB7a548310654
|
|
70
|
+
),
|
|
71
|
+
IACLManager(0xa72636CbcAa8F5FF95B2cc47F3CDEe83F3294a0B),
|
|
72
|
+
0xa35b76E4935449E33C56aB24b23fcd3246f13470,
|
|
73
|
+
0x5ba7fd868c40c16f7aDfAe6CF87121E13FC2F7a0,
|
|
74
|
+
0xaCbE7d574EF8dC39435577eb638167Aca74F79f0
|
|
75
|
+
);
|
|
76
|
+
} else if (
|
|
77
|
+
keccak256(abi.encodePacked((market))) ==
|
|
78
|
+
keccak256(abi.encodePacked((AaveV3Arbitrum)))
|
|
79
|
+
) {
|
|
80
|
+
return
|
|
81
|
+
Market(
|
|
82
|
+
IPoolAddressesProvider(
|
|
83
|
+
0xa97684ead0e402dC232d5A977953DF7ECBaB3CDb
|
|
84
|
+
),
|
|
85
|
+
IPool(0x794a61358D6845594F94dc1DB02A252b5b4814aD),
|
|
86
|
+
IPoolConfigurator(
|
|
87
|
+
0x8145eddDf43f50276641b55bd3AD95944510021E
|
|
88
|
+
),
|
|
89
|
+
IAaveOracle(0xb56c2F0B653B2e0b10C9b928C8580Ac5Df02C7C7),
|
|
90
|
+
IAaveProtocolDataProvider(
|
|
91
|
+
0x69FA688f1Dc47d4B5d8029D5a35FB7a548310654
|
|
92
|
+
),
|
|
93
|
+
IACLManager(0xa72636CbcAa8F5FF95B2cc47F3CDEe83F3294a0B),
|
|
94
|
+
0xbbd9f90699c1FA0D7A65870D241DD1f1217c96Eb,
|
|
95
|
+
0x053D55f9B5AF8694c503EB288a1B7E552f590710,
|
|
96
|
+
0xC3301b30f4EcBfd59dE0d74e89690C1a70C6f21B
|
|
97
|
+
);
|
|
98
|
+
} else if (
|
|
99
|
+
keccak256(abi.encodePacked((market))) ==
|
|
100
|
+
keccak256(abi.encodePacked((AaveV3Fantom)))
|
|
101
|
+
) {
|
|
102
|
+
return
|
|
103
|
+
Market(
|
|
104
|
+
IPoolAddressesProvider(
|
|
105
|
+
0xa97684ead0e402dC232d5A977953DF7ECBaB3CDb
|
|
106
|
+
),
|
|
107
|
+
IPool(0x794a61358D6845594F94dc1DB02A252b5b4814aD),
|
|
108
|
+
IPoolConfigurator(
|
|
109
|
+
0x8145eddDf43f50276641b55bd3AD95944510021E
|
|
110
|
+
),
|
|
111
|
+
IAaveOracle(0xfd6f3c1845604C8AE6c6E402ad17fb9885160754),
|
|
112
|
+
IAaveProtocolDataProvider(
|
|
113
|
+
0x69FA688f1Dc47d4B5d8029D5a35FB7a548310654
|
|
114
|
+
),
|
|
115
|
+
IACLManager(0xa72636CbcAa8F5FF95B2cc47F3CDEe83F3294a0B),
|
|
116
|
+
0x39CB97b105173b56b5a2b4b33AD25d6a50E6c949,
|
|
117
|
+
0xBe85413851D195fC6341619cD68BfDc26a25b928,
|
|
118
|
+
0xc0F0cFBbd0382BcE3B93234E4BFb31b2aaBE36aD
|
|
119
|
+
);
|
|
120
|
+
} else if (
|
|
121
|
+
keccak256(abi.encodePacked((market))) ==
|
|
122
|
+
keccak256(abi.encodePacked((AaveV3Harmony)))
|
|
123
|
+
) {
|
|
124
|
+
return
|
|
125
|
+
Market(
|
|
126
|
+
IPoolAddressesProvider(
|
|
127
|
+
0xa97684ead0e402dC232d5A977953DF7ECBaB3CDb
|
|
128
|
+
),
|
|
129
|
+
IPool(0x794a61358D6845594F94dc1DB02A252b5b4814aD),
|
|
130
|
+
IPoolConfigurator(
|
|
131
|
+
0x8145eddDf43f50276641b55bd3AD95944510021E
|
|
132
|
+
),
|
|
133
|
+
IAaveOracle(0x3C90887Ede8D65ccb2777A5d577beAb2548280AD),
|
|
134
|
+
IAaveProtocolDataProvider(
|
|
135
|
+
0x69FA688f1Dc47d4B5d8029D5a35FB7a548310654
|
|
136
|
+
),
|
|
137
|
+
IACLManager(0xa72636CbcAa8F5FF95B2cc47F3CDEe83F3294a0B),
|
|
138
|
+
0xb2f0C5f37f4beD2cB51C44653cD5D84866BDcd2D,
|
|
139
|
+
0x8A020d92D6B119978582BE4d3EdFdC9F7b28BF31,
|
|
140
|
+
0xeaC16519923774Fd7723d3D5E442a1e2E46BA962
|
|
141
|
+
);
|
|
142
|
+
} else if (
|
|
143
|
+
keccak256(abi.encodePacked((market))) ==
|
|
144
|
+
keccak256(abi.encodePacked((AaveV3Optimism)))
|
|
145
|
+
) {
|
|
146
|
+
return
|
|
147
|
+
Market(
|
|
148
|
+
IPoolAddressesProvider(
|
|
149
|
+
0xa97684ead0e402dC232d5A977953DF7ECBaB3CDb
|
|
150
|
+
),
|
|
151
|
+
IPool(0x794a61358D6845594F94dc1DB02A252b5b4814aD),
|
|
152
|
+
IPoolConfigurator(
|
|
153
|
+
0x8145eddDf43f50276641b55bd3AD95944510021E
|
|
154
|
+
),
|
|
155
|
+
IAaveOracle(0xD81eb3728a631871a7eBBaD631b5f424909f0c77),
|
|
156
|
+
IAaveProtocolDataProvider(
|
|
157
|
+
0x69FA688f1Dc47d4B5d8029D5a35FB7a548310654
|
|
158
|
+
),
|
|
159
|
+
IACLManager(0xa72636CbcAa8F5FF95B2cc47F3CDEe83F3294a0B),
|
|
160
|
+
0xE50c8C619d05ff98b22Adf991F17602C774F785c,
|
|
161
|
+
0xB2289E329D2F85F1eD31Adbb30eA345278F21bcf,
|
|
162
|
+
0xA77E4A084d7d4f064E326C0F6c0aCefd47A5Cb21
|
|
163
|
+
);
|
|
164
|
+
} else revert("Market does not exist");
|
|
165
|
+
}
|
|
166
|
+
}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity >=0.6.0;
|
|
3
|
+
|
|
4
|
+
import {IPoolAddressesProvider, IPool, IPoolConfigurator, IAaveOracle, IAaveProtocolDataProvider, IACLManager} from "./AaveV3.sol";
|
|
5
|
+
import {Token} from "./Common.sol";
|
|
6
|
+
|
|
7
|
+
library AaveAddressBookV3Testnet {
|
|
8
|
+
string public constant AaveV3Mumbai = "AaveV3Mumbai";
|
|
9
|
+
string public constant AaveV3Fuji = "AaveV3Fuji";
|
|
10
|
+
string public constant AaveV3FantomTestnet = "AaveV3FantomTestnet";
|
|
11
|
+
string public constant AaveV3OptimismKovan = "AaveV3OptimismKovan";
|
|
12
|
+
|
|
13
|
+
struct Market {
|
|
14
|
+
IPoolAddressesProvider POOL_ADDRESSES_PROVIDER;
|
|
15
|
+
IPool POOL;
|
|
16
|
+
IPoolConfigurator POOL_CONFIGURATOR;
|
|
17
|
+
IAaveOracle ORACLE;
|
|
18
|
+
IAaveProtocolDataProvider POOL_DATA_PROVIDER;
|
|
19
|
+
IACLManager ACL_MANAGER;
|
|
20
|
+
address ACL_ADMIN;
|
|
21
|
+
address COLLECTOR;
|
|
22
|
+
address COLLECTOR_CONTROLLER;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function getMarket(string calldata market)
|
|
26
|
+
public
|
|
27
|
+
pure
|
|
28
|
+
returns (Market memory m)
|
|
29
|
+
{
|
|
30
|
+
if (
|
|
31
|
+
keccak256(abi.encodePacked((market))) ==
|
|
32
|
+
keccak256(abi.encodePacked((AaveV3Mumbai)))
|
|
33
|
+
) {
|
|
34
|
+
return
|
|
35
|
+
Market(
|
|
36
|
+
IPoolAddressesProvider(
|
|
37
|
+
0x5343b5bA672Ae99d627A1C87866b8E53F47Db2E6
|
|
38
|
+
),
|
|
39
|
+
IPool(0x6C9fB0D5bD9429eb9Cd96B85B81d872281771E6B),
|
|
40
|
+
IPoolConfigurator(
|
|
41
|
+
0x7b47e727eC539CB74A744ae5259ef26743294fca
|
|
42
|
+
),
|
|
43
|
+
IAaveOracle(0x520D14AE678b41067f029Ad770E2870F85E76588),
|
|
44
|
+
IAaveProtocolDataProvider(
|
|
45
|
+
0x8f57153F18b7273f9A814b93b31Cb3f9b035e7C2
|
|
46
|
+
),
|
|
47
|
+
IACLManager(0x6437b6E14D7ECa1Fa9854df92eB067253D5f683A),
|
|
48
|
+
0x77c45699A715A64A7a7796d5CEe884cf617D5254,
|
|
49
|
+
0x3B6E7a4750e478D7f7d6A5d464099A02ef164bCC,
|
|
50
|
+
0x810d913542D399F3680F0E806DEDf6EACf0e3383
|
|
51
|
+
);
|
|
52
|
+
} else if (
|
|
53
|
+
keccak256(abi.encodePacked((market))) ==
|
|
54
|
+
keccak256(abi.encodePacked((AaveV3Fuji)))
|
|
55
|
+
) {
|
|
56
|
+
return
|
|
57
|
+
Market(
|
|
58
|
+
IPoolAddressesProvider(
|
|
59
|
+
0x1775ECC8362dB6CaB0c7A9C0957cF656A5276c29
|
|
60
|
+
),
|
|
61
|
+
IPool(0xb47673b7a73D78743AFF1487AF69dBB5763F00cA),
|
|
62
|
+
IPoolConfigurator(
|
|
63
|
+
0x01743372F0F0318AaDF690f960A4c6c4eab58782
|
|
64
|
+
),
|
|
65
|
+
IAaveOracle(0xAc6D153BF94aFBdC296e72163735B0f94581F736),
|
|
66
|
+
IAaveProtocolDataProvider(
|
|
67
|
+
0x8e0988b28f9CdDe0134A206dfF94111578498C63
|
|
68
|
+
),
|
|
69
|
+
IACLManager(0xAa6Fd640173bcA58e5a5CC373531F9038eF3F9e1),
|
|
70
|
+
0x77c45699A715A64A7a7796d5CEe884cf617D5254,
|
|
71
|
+
0xBaaCc99123133851Ba2D6d34952aa08CBDf5A4E4,
|
|
72
|
+
0xFCadBDefd30E11258559Ba239C8a5A8A8D28CB00
|
|
73
|
+
);
|
|
74
|
+
} else if (
|
|
75
|
+
keccak256(abi.encodePacked((market))) ==
|
|
76
|
+
keccak256(abi.encodePacked((AaveV3FantomTestnet)))
|
|
77
|
+
) {
|
|
78
|
+
return
|
|
79
|
+
Market(
|
|
80
|
+
IPoolAddressesProvider(
|
|
81
|
+
0xE339D30cBa24C70dCCb82B234589E3C83249e658
|
|
82
|
+
),
|
|
83
|
+
IPool(0x771A45a19cE333a19356694C5fc80c76fe9bc741),
|
|
84
|
+
IPoolConfigurator(
|
|
85
|
+
0x59B84a6C943dD655D9E3B4024fC6AdC0E3f4Ff60
|
|
86
|
+
),
|
|
87
|
+
IAaveOracle(0xA840C768f7143495790eC8dc2D5f32B71B6Dc113),
|
|
88
|
+
IAaveProtocolDataProvider(
|
|
89
|
+
0xCbAcff915f2d10727844ab0f2A4D9768954981e4
|
|
90
|
+
),
|
|
91
|
+
IACLManager(0x94f154aba287b3024fb32386463FC52d488bb09B),
|
|
92
|
+
0x77c45699A715A64A7a7796d5CEe884cf617D5254,
|
|
93
|
+
0xF49dA7a22463D140f9f8dc7C91468C8721215496,
|
|
94
|
+
0x7aaB2c2CC186131851d6B1876D16eDc849846042
|
|
95
|
+
);
|
|
96
|
+
} else if (
|
|
97
|
+
keccak256(abi.encodePacked((market))) ==
|
|
98
|
+
keccak256(abi.encodePacked((AaveV3OptimismKovan)))
|
|
99
|
+
) {
|
|
100
|
+
return
|
|
101
|
+
Market(
|
|
102
|
+
IPoolAddressesProvider(
|
|
103
|
+
0xD15d36975A0200D11B8a8964F4F267982D2a1cFe
|
|
104
|
+
),
|
|
105
|
+
IPool(0x139d8F557f70D1903787e929D7C42165c4667229),
|
|
106
|
+
IPoolConfigurator(
|
|
107
|
+
0x12F6E19b968e34fEE34763469c7EAf902Af6914B
|
|
108
|
+
),
|
|
109
|
+
IAaveOracle(0xce87225e5A0ABFe6241C6A60158840d509a84B47),
|
|
110
|
+
IAaveProtocolDataProvider(
|
|
111
|
+
0x2f733c0389bfF96a3f930Deb2f6DB1d767Cd3215
|
|
112
|
+
),
|
|
113
|
+
IACLManager(0x552626e2E6e35566d53CE0C5Ad97d72E95bC3fc3),
|
|
114
|
+
0x77c45699A715A64A7a7796d5CEe884cf617D5254,
|
|
115
|
+
0x733DC8C72B189791B28Dc8c6Fb09D9201b01eF2f,
|
|
116
|
+
0x9b791f6A34B2C87c360902F050dA5e0075b7A567
|
|
117
|
+
);
|
|
118
|
+
} else revert("Market does not exist");
|
|
119
|
+
}
|
|
120
|
+
}
|