Skip to content
This repository was archived by the owner on Dec 9, 2025. It is now read-only.

Commit eb44a73

Browse files
committed
lm update 2
1 parent ad534cd commit eb44a73

8 files changed

Lines changed: 34665 additions & 680 deletions

File tree

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
// SPDX-License-Identifier: AGPL-3.0
2+
pragma solidity 0.7.5;
3+
pragma abicoder v2;
4+
5+
import {DataTypes} from '../utils/DataTypes.sol';
6+
import {IAaveEcosystemReserveController} from '../interfaces/IAaveEcosystemReserveController.sol';
7+
import {IAaveIncentivesController} from '../interfaces/IAaveIncentivesController.sol';
8+
import {ILendingPoolData} from '../interfaces/ILendingPoolData.sol';
9+
10+
contract IncentiveUpdateExecutor {
11+
12+
address constant AAVE_TOKEN = 0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9;
13+
address constant CONTROLLER_ECO_RESERVE = 0x1E506cbb6721B83B1549fa1558332381Ffa61A93;
14+
address constant LENDING_POOL = 0x7d2768dE32b0b80b7a3454c06BdAc94A69DDc7A9;
15+
address constant INCENTIVES_CONTROLLER_PROXY_ADDRESS = 0xd784927Ff2f95ba542BfC824c8a8a98F3495f6b5;
16+
17+
uint256 constant DISTRIBUTION_DURATION = 7776000; // 90 days
18+
uint256 constant DISTRIBUTION_AMOUNT = 97020 ether;
19+
20+
uint256 constant PROPOSER_GAS_REFUND = 35 ether;
21+
address constant PROPOSER_REFUND_ADDRESS = 0x6904110f17feD2162a11B5FA66B188d801443Ea4;
22+
23+
function execute() external {
24+
25+
IAaveEcosystemReserveController ecosystemReserveController = IAaveEcosystemReserveController(CONTROLLER_ECO_RESERVE);
26+
IAaveIncentivesController incentivesController = IAaveIncentivesController(INCENTIVES_CONTROLLER_PROXY_ADDRESS);
27+
28+
address payable[20] memory reserves = [
29+
0x6B175474E89094C44Da98b954EedeAC495271d0F, // DAI
30+
0x056Fd409E1d7A124BD7017459dFEa2F387b6d5Cd, // GUSD
31+
0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, // USDC
32+
0xdAC17F958D2ee523a2206206994597C13D831ec7, // USDT
33+
0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599, // WBTC
34+
0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, // WETH
35+
0x514910771AF9Ca656af840dff83E8264EcF986CA, // LINK
36+
0x57Ab1ec28D129707052df4dF418D58a2D46d5f51, // sUSD
37+
0x0bc529c00C6401aEF6D220BE8C6Ea1667F6Ad93e, // YFI
38+
0x8798249c2E607446EfB7Ad49eC89dD1865Ff4272, // xSUSHI
39+
0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984, // UNI
40+
0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2, // MKR
41+
0x0000000000085d4780B73119b644AE5ecd22b376, // TUSD
42+
0x03ab458634910AaD20eF5f1C8ee96F1D6ac54919, // RAI
43+
0xba100000625a3754423978a60c9317c58a424e3D, // BAL
44+
0x8E870D67F660D95d5be530380D0eC0bd388289E1, // USDP
45+
0x853d955aCEf822Db058eb8505911ED77F175b99e, // FRAX
46+
0x1494CA1F11D487c2bBe4543E90080AeBa4BA3C2b, // DPI
47+
0x4Fabb145d64652a948d72533023f6E7A623C7C53, // BUSD
48+
0xD533a949740bb3306d119CC777fa900bA034cd52 // CRV
49+
];
50+
51+
uint256[] memory emissions = new uint256[](40);
52+
53+
emissions[0] = 860629828674028; // aDAI
54+
emissions[1] = 1721259657348060; // vDebtDAI
55+
emissions[2] = 0; // aGUSD
56+
emissions[3] = 0; // vDebtGUSD
57+
emissions[4] = 1903258773510960; // aUSDC
58+
emissions[5] = 3806517547021920; // vDebtUSDC
59+
emissions[6] = 694765960976989; // aUSDT
60+
emissions[7] = 1389531921953980; // vDebtUSDT
61+
emissions[8] = 252193044534425; // aWBTC
62+
emissions[9] = 0; // vDebtWBTC
63+
emissions[10] = 933007096551141; // aWETH
64+
emissions[11] = 0; // vDebtWETH
65+
emissions[12] = 272977322986304; // aLINK
66+
emissions[13] = 0; // vDebtLINK
67+
emissions[14] = 23046648361494; // aSUSD
68+
emissions[15] = 46093296722988; // vDebtSUSD
69+
emissions[16] = 23204645595171; // aYFI
70+
emissions[17] = 0; // vDebtYFI
71+
emissions[18] = 28653877437482; // aXSUSHI
72+
emissions[19] = 0; // vDebtXSUSHI
73+
emissions[20] = 0; // aUNI
74+
emissions[21] = 0; // vDebtUNI
75+
emissions[22] = 109957713960904; // aMKR
76+
emissions[23] = 0; // vDebtMKR
77+
emissions[24] = 64158288472709; // aTUSD
78+
emissions[25] = 128316576945418; // vDebtTUSD
79+
emissions[26] = 9846555646706; // aRAI
80+
emissions[27] = 19693111293413; // vDebtRAI
81+
emissions[28] = 4875116344638; // aBAL
82+
emissions[29] = 0; // vDebtBAL
83+
emissions[30] = 9398984935492; // aUSDP
84+
emissions[31] = 18797969870985; // vDebtUSP
85+
emissions[32] = 8333031502505; // aFRAX
86+
emissions[33] = 16666063005009; // vDebtFRAX
87+
emissions[34] = 22409965951501; // aDPI
88+
emissions[35] = 0; // vDebtDPI
89+
emissions[36] = 21223932856405; // aBUSD
90+
emissions[37] = 42447865712811; // vDebtBUSD
91+
emissions[38] = 44508547226299; // aCRV
92+
emissions[39] = 0; // vDebtCRV
93+
94+
address[] memory assets = new address[](40);
95+
96+
for (uint256 i = 0; i < reserves.length; i++) {
97+
DataTypes.ReserveData memory reserveData = ILendingPoolData(LENDING_POOL).getReserveData(reserves[i]);
98+
99+
assets[2*i] = reserveData.aTokenAddress;
100+
assets[2*i+1] = reserveData.variableDebtTokenAddress;
101+
}
102+
103+
// Transfer AAVE funds to the Incentives Controller
104+
ecosystemReserveController.transfer(
105+
AAVE_TOKEN,
106+
INCENTIVES_CONTROLLER_PROXY_ADDRESS,
107+
DISTRIBUTION_AMOUNT
108+
);
109+
110+
// Transfer AAVE funds to the proposer to reimburse gas costs
111+
ecosystemReserveController.transfer(
112+
AAVE_TOKEN,
113+
PROPOSER_REFUND_ADDRESS,
114+
PROPOSER_GAS_REFUND
115+
);
116+
117+
// Enable incentives in aTokens and Variable Debt tokens
118+
incentivesController.configureAssets(assets, emissions);
119+
120+
// Sets the end date for the distribution
121+
incentivesController.setDistributionEnd(block.timestamp + DISTRIBUTION_DURATION);
122+
}
123+
}

hardhat.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ const getCommonNetworkConfig = (networkName: eNetwork, networkId: number) => ({
5858

5959
const mainnetFork = MAINNET_FORK
6060
? {
61-
blockNumber: 12290275,
61+
blockNumber: 14213281,
6262
url: NETWORKS_RPC_URL['main'],
6363
}
6464
: undefined;

0 commit comments

Comments
 (0)