generated from bgd-labs/bgd-forge-template
-
Notifications
You must be signed in to change notification settings - Fork 0
/
UpgradeRewardsControllerPayload.sol
36 lines (31 loc) · 1.45 KB
/
UpgradeRewardsControllerPayload.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import {IPoolAddressesProvider} from 'aave-address-book/AaveV3.sol';
import {RewardsController} from '@aave/periphery-v3/contracts/rewards/RewardsController.sol';
import {IProposalGenericExecutor} from '../interfaces/IProposalGenericExecutor.sol';
import {IInitializableAdminUpgradeabilityProxy} from '../interfaces/IInitializableAdminUpgradeabilityProxy.sol';
/**
* @title UpgradeRewardsControllerPayload
* @author BGD Labs
* @notice This payload will update the RewardsController implementation on a V3 pool
* https://governance.aave.com/t/bgd-upgrade-of-aave-v3-periphery-to-3-0-1-across-networks/10744
*/
contract UpgradeRewardsControllerPayload is IProposalGenericExecutor {
// generic constants
bytes32 public constant INCENTIVES_CONTROLLER_ADDRESS_ID =
0x703c2c8634bed68d98c029c18f310e7f7ec0e5d6342c590190b3cb8b3ba54532; // keccak256("INCENTIVES_CONTROLLER")
// network specific addresses
IPoolAddressesProvider public immutable POOL_ADDRESS_PROVIDER;
RewardsController public immutable REWARDS_CONTROLLER_IMPL;
constructor(IPoolAddressesProvider poolAddressesProvider, RewardsController rewardsControllerImpl)
{
POOL_ADDRESS_PROVIDER = poolAddressesProvider;
REWARDS_CONTROLLER_IMPL = rewardsControllerImpl;
}
function execute() external {
POOL_ADDRESS_PROVIDER.setAddressAsProxy(
INCENTIVES_CONTROLLER_ADDRESS_ID,
address(REWARDS_CONTROLLER_IMPL)
);
}
}