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

Commit 2a3b95f

Browse files
committed
lm update 2
1 parent 44ac0fb commit 2a3b95f

5 files changed

Lines changed: 9988 additions & 63 deletions

File tree

contracts/proposals/IncentiveUpdateExecutor.sol

Lines changed: 29 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -5,43 +5,25 @@ pragma abicoder v2;
55
import {DataTypes} from '../utils/DataTypes.sol';
66
import {IAaveEcosystemReserveController} from '../interfaces/IAaveEcosystemReserveController.sol';
77
import {IAaveIncentivesController} from '../interfaces/IAaveIncentivesController.sol';
8-
import {IATokenDetailed} from '../interfaces/IATokenDetailed.sol';
9-
import {ILendingPoolConfigurator} from '../interfaces/ILendingPoolConfigurator.sol';
108
import {ILendingPoolData} from '../interfaces/ILendingPoolData.sol';
119

1210
contract IncentiveUpdateExecutor {
1311

1412
address constant AAVE_TOKEN = 0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9;
1513
address constant CONTROLLER_ECO_RESERVE = 0x1E506cbb6721B83B1549fa1558332381Ffa61A93;
1614
address constant LENDING_POOL = 0x7d2768dE32b0b80b7a3454c06BdAc94A69DDc7A9;
17-
address constant POOL_CONFIGURATOR = 0x311Bb771e4F8952E6Da169b425E7e92d6Ac45756;
1815
address constant INCENTIVES_CONTROLLER_PROXY_ADDRESS = 0xd784927Ff2f95ba542BfC824c8a8a98F3495f6b5;
1916

2017
uint256 constant DISTRIBUTION_DURATION = 7776000; // 90 days
21-
uint256 constant DISTRIBUTION_AMOUNT = 138600 ether;
18+
uint256 constant DISTRIBUTION_AMOUNT = 97020 ether;
2219

23-
uint256 constant PROPOSER_GAS_REFUND = 70 ether;
20+
uint256 constant PROPOSER_GAS_REFUND = 35 ether;
2421
address constant PROPOSER_REFUND_ADDRESS = 0x6904110f17feD2162a11B5FA66B188d801443Ea4;
2522

2623
function execute() external {
2724

2825
IAaveEcosystemReserveController ecosystemReserveController = IAaveEcosystemReserveController(CONTROLLER_ECO_RESERVE);
2926
IAaveIncentivesController incentivesController = IAaveIncentivesController(INCENTIVES_CONTROLLER_PROXY_ADDRESS);
30-
ILendingPoolConfigurator poolConfigurator = ILendingPoolConfigurator(POOL_CONFIGURATOR);
31-
32-
address payable[4] memory aTokens = [
33-
0x00c92Eb9eba1e4F90233B5e4c846A97dDACE0F5B, // aDPI
34-
0xc84E16357b4204523a80E9e4c0cFc8f8EC1613d3, // aBUSD
35-
0xB5AE2299c71aFFDc2dAd3B53974D56d5651FDD35, // aFRAX
36-
0xd78037ED778ec3E2FCDb03B622c42d2F1B66D469 // aCRV
37-
];
38-
39-
address payable[4] memory vDebtTokens = [
40-
address(0), // vDebtDPI
41-
0xCFC5923024E782Cb2862520CCfFD48Ad24e7825a, // vDebtBUSD
42-
0xc67c18F4620e003c78fd041Fb5172Cb20642FD47, // vDebtFRAX
43-
address(0) // vDebtCRV
44-
];
4527

4628
address payable[20] memory reserves = [
4729
0x6B175474E89094C44Da98b954EedeAC495271d0F, // DAI
@@ -68,58 +50,47 @@ contract IncentiveUpdateExecutor {
6850

6951
uint256[] memory emissions = new uint256[](40);
7052

71-
emissions[0] = 1203204146880510; // aDAI
72-
emissions[1] = 2406408293761020; // vDebtDAI
53+
emissions[0] = 860629828674028; // aDAI
54+
emissions[1] = 1721259657348060; // vDebtDAI
7355
emissions[2] = 0; // aGUSD
7456
emissions[3] = 0; // vDebtGUSD
75-
emissions[4] = 2674448821531440; // aUSDC
76-
emissions[5] = 5348897643062870; // vDebtUSDC
77-
emissions[6] = 780295758620530; // aUSDT
78-
emissions[7] = 1560591517241060; // vDebtUSDT
79-
emissions[8] = 538517489758869; // aWBTC
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
8062
emissions[9] = 0; // vDebtWBTC
81-
emissions[10] = 2061139949740800; // aWETH
63+
emissions[10] = 933007096551141; // aWETH
8264
emissions[11] = 0; // vDebtWETH
83-
emissions[12] = 473219265599667; // aLINK
65+
emissions[12] = 272977322986304; // aLINK
8466
emissions[13] = 0; // vDebtLINK
85-
emissions[14] = 35280089910759; // aSUSD
86-
emissions[15] = 70560179821518; // vDebtSUSD
87-
emissions[16] = 47620672711642; // aYFI
67+
emissions[14] = 23046648361494; // aSUSD
68+
emissions[15] = 46093296722988; // vDebtSUSD
69+
emissions[16] = 23204645595171; // aYFI
8870
emissions[17] = 0; // vDebtYFI
89-
emissions[18] = 101144783834246; // aXSUSHI
71+
emissions[18] = 28653877437482; // aXSUSHI
9072
emissions[19] = 0; // vDebtXSUSHI
9173
emissions[20] = 0; // aUNI
9274
emissions[21] = 0; // vDebtUNI
93-
emissions[22] = 128538286894602; // aMKR
75+
emissions[22] = 109957713960904; // aMKR
9476
emissions[23] = 0; // vDebtMKR
95-
emissions[24] = 49670888023944; // aTUSD
96-
emissions[25] = 99341776047887; // vDebtTUSD
97-
emissions[26] = 25422154944980; // aRAI
98-
emissions[27] = 50844309889961; // vDebtRAI
99-
emissions[28] = 13725047526598; // aBAL
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
10082
emissions[29] = 0; // vDebtBAL
101-
emissions[30] = 9935368896023; // aUSDP
102-
emissions[31] = 19870737792047; // vDebtUSP
103-
emissions[32] = 5807544768359; // aFRAX
104-
emissions[33] = 11615089536718; // vDebtFRAX
105-
emissions[34] = 53890469813093; // aDPI
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
10688
emissions[35] = 0; // vDebtDPI
107-
emissions[36] = 5176160414055; // aBUSD
108-
emissions[37] = 10352320828111; // vDebtBUSD
109-
emissions[38] = 37118390250968; // aCRV
89+
emissions[36] = 21223932856405; // aBUSD
90+
emissions[37] = 42447865712811; // vDebtBUSD
91+
emissions[38] = 44508547226299; // aCRV
11092
emissions[39] = 0; // vDebtCRV
11193

112-
// Update aTokens and vDebtTokens
113-
for (uint256 i = 0; i < aTokens.length; i++) {
114-
115-
address underlying = IATokenDetailed(aTokens[i]).UNDERLYING_ASSET_ADDRESS();
116-
poolConfigurator.updateAToken(underlying, address(aTokens[i]));
117-
118-
if (vDebtTokens[i] != address(0)) {
119-
poolConfigurator.updateVariableDebtToken(underlying, address(vDebtTokens[i]));
120-
}
121-
}
122-
12394
address[] memory assets = new address[](40);
12495

12596
for (uint256 i = 0; i < reserves.length; i++) {

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: 13636950,
61+
blockNumber: 14213281,
6262
url: NETWORKS_RPC_URL['main'],
6363
}
6464
: undefined;
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { Signer } from "ethers";
2+
import { task } from "hardhat/config";
3+
import { verifyContract } from "../../helpers/etherscan-verification";
4+
import { sleep } from "../../helpers/misc-utils";
5+
import { IncentiveUpdateExecutor__factory } from "../../types";
6+
7+
task('deploy-incentive-update').setAction(
8+
async (_, localBRE) => {
9+
_;
10+
await localBRE.run('set-DRE');
11+
12+
let deployer: Signer;
13+
[deployer] = await localBRE.ethers.getSigners();
14+
15+
const { address } = await new IncentiveUpdateExecutor__factory(deployer).deploy();
16+
17+
await sleep(30000);
18+
19+
await verifyContract(address, []);
20+
}
21+
);

test-fork/incentivesUpdateProposal.spec.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ describe('Enable incentives in target assets', () => {
146146
variableDebtDAI = IERC20__factory.connect(variableDebtTokenAddress, proposer);
147147

148148
// Transfer enough AAVE to proposer
149-
await (await aave.transfer(proposer.address, parseEther('2000000'))).wait();
149+
await (await aave.transfer(proposer.address, parseEther('1000000'))).wait();
150150

151151
// Transfer DAI to repay future DAI loan
152152
await (await dai.transfer(proposer.address, parseEther('100000'))).wait();
@@ -173,6 +173,8 @@ describe('Enable incentives in target assets', () => {
173173
},
174174
};
175175
}
176+
177+
proposalId = BigNumber.from(58);
176178
});
177179

178180
it('Proposal should be created', async () => {
@@ -198,16 +200,19 @@ describe('Enable incentives in target assets', () => {
198200
// Submit proposal
199201
proposalId = await gov.getProposalsCount();
200202

201-
await gov.create(
203+
const tx = await gov.create(
202204
AAVE_SHORT_EXECUTOR,
203205
[proposalExecutionPayload],
204206
['0'],
205207
['execute()'],
206208
['0x'],
207209
[true],
208-
'0xf7a1f565fcd7684fba6fea5d77c5e699653e21cb6ae25fbf8c5dbc8d694c7949'
210+
'0x2e48c935d946eaec9e11be7280ab27bfc15813047a3686b9b00601654858ebac'
209211
);
210212

213+
console.log('to: ' + tx.to);
214+
console.log('data: ' + tx.data);
215+
211216
console.log('submited');
212217

213218
// Mine block due flash loan voting protection
@@ -245,7 +250,7 @@ describe('Enable incentives in target assets', () => {
245250
it('Proposer should receive gas refund in AAVE', async () => {
246251
const aaveBalance = await aave.balanceOf('0x6904110f17feD2162a11B5FA66B188d801443Ea4');
247252

248-
expect(aaveBalance).to.eq(parseEther('70'));
253+
expect(aaveBalance).to.eq(parseEther('35'));
249254
});
250255

251256
it('Check emission rate', async () => {

0 commit comments

Comments
 (0)