forked from bgd-labs/aave-proposals
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Governance V3 activation (bgd-labs#331)
* Governance V3 activation proposal init * remove redundant lines * Added governance v3 activation description * Apply suggestions from code review Co-authored-by: sendra <[email protected]> Co-authored-by: Rustem Kurmaev <[email protected]> * Update src/20231010_AaveV3_Multi_GovernanceV3Activation/AaveV3_GovernanceV3Activation_20231010.s.sol --------- Co-authored-by: eboado <[email protected]> Co-authored-by: sendra <[email protected]>
- Loading branch information
1 parent
ea342f7
commit 3ab82a9
Showing
2 changed files
with
112 additions
and
0 deletions.
There are no files selected for viewing
49 changes: 49 additions & 0 deletions
49
...20231010_AaveV3_Multi_GovernanceV3Activation/AaveV3_GovernanceV3Activation_20231010.s.sol
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
// SPDX-License-Identifier: MIT | ||
pragma solidity ^0.8.0; | ||
|
||
import {GovHelpers} from 'aave-helpers/GovHelpers.sol'; | ||
import {EthereumScript} from 'aave-helpers/ScriptUtils.sol'; | ||
import {AaveGovernanceV2} from 'aave-address-book/AaveGovernanceV2.sol'; | ||
|
||
/** | ||
* @dev Create Proposal | ||
* command: make deploy-ledger contract=src/20231010_AaveV3_Multi_GovernanceV3Activation/AaveV3_GovernanceV3Activation_20231010.s.sol:CreateLongProposal chain=mainnet | ||
*/ | ||
contract CreateLongProposal is EthereumScript { | ||
function run() external broadcast { | ||
GovHelpers.Payload[] memory payloads = new GovHelpers.Payload[](1); | ||
payloads[0] = GovHelpers.buildMainnet(0x6195a956dC026A949dE552F04a5803d3aa1fC408); // https://etherscan.io/address/0x6195a956dc026a949de552f04a5803d3aa1fc408 | ||
|
||
GovHelpers.createProposal( | ||
payloads, | ||
GovHelpers.ipfsHashFile( | ||
vm, | ||
'src/20231010_AaveV3_Multi_GovernanceV3Activation/GovernanceV3Activation.md' | ||
), | ||
AaveGovernanceV2.LONG_EXECUTOR | ||
); | ||
} | ||
} | ||
|
||
/** | ||
* @dev Create Proposal | ||
* command: make deploy-ledger contract=src/20231010_AaveV3_Multi_GovernanceV3Activation/AaveV3_GovernanceV3Activation_20231010.s.sol:CreateProposal chain=mainnet | ||
*/ | ||
contract CreateProposal is EthereumScript { | ||
function run() external broadcast { | ||
GovHelpers.Payload[] memory payloads = new GovHelpers.Payload[](6); | ||
payloads[0] = GovHelpers.buildMainnet(0x7fC3ebdB376fF38De2cD597671A6270113c27364); // https://etherscan.io/address/0x7fC3ebdB376fF38De2cD597671A6270113c27364 | ||
payloads[1] = GovHelpers.buildOptimism(0x7fc3FCb14eF04A48Bb0c12f0c39CD74C249c37d8); // https://optimistic.etherscan.io/address/0x7fc3fcb14ef04a48bb0c12f0c39cd74c249c37d8 | ||
payloads[2] = GovHelpers.buildArbitrum(0xFD858c8bC5ac5e10f01018bC78471bb0DC392247); // https://arbiscan.io/address/0xfd858c8bc5ac5e10f01018bc78471bb0dc392247 | ||
payloads[3] = GovHelpers.buildPolygon(0x274a46Efd4364CcBA654Dc74Ddb793F9010B179c); // https://polygonscan.com/address/0x274a46efd4364ccba654dc74ddb793f9010b179c | ||
payloads[4] = GovHelpers.buildMetis(0x230E0321Cf38F09e247e50Afc7801EA2351fe56F); // https://andromeda-explorer.metis.io/address/0x230E0321Cf38F09e247e50Afc7801EA2351fe56F/ | ||
payloads[5] = GovHelpers.buildBase(0x4959BAD86D851378C6BCcf07cB8240d55A11C5AC); // https://basescan.org/address/0x4959bad86d851378c6bccf07cb8240d55a11c5ac | ||
GovHelpers.createProposal( | ||
payloads, | ||
GovHelpers.ipfsHashFile( | ||
vm, | ||
'src/20231010_AaveV3_Multi_GovernanceV3Activation/GovernanceV3Activation.md' | ||
) | ||
); | ||
} | ||
} |
63 changes: 63 additions & 0 deletions
63
src/20231010_AaveV3_Multi_GovernanceV3Activation/GovernanceV3Activation.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
--- | ||
title: "Governance V3 Activation" | ||
author: "BGD Labs @bgdlabs" | ||
discussions: "https://governance.aave.com/t/bgd-aave-governance-v3-activation-plan/14993" | ||
--- | ||
|
||
## Simple Summary | ||
|
||
Proposal for the migration of the Aave Governance v2 to v3, transferring all permissions from the v2 system to v3, executing all required smart contracts upgrades and different miscellaneous preparations. | ||
|
||
Additionally, the a.DI (Aave Delivery Network) and Aave Robot systems are activated, being requirements for the optimal functioning of Governance v3. | ||
|
||
## Motivation | ||
|
||
v3 is a the next iteration for the Aave governance smart contracts systems, controlling in a fully decentralized manner the whole Aave ecosystem. | ||
|
||
Being a replacement on the currently running v2, a set of two proposals on v2 need to be passed to migrate one system to another: once both are passed and executed on the current governance smart contracts, these will stop working, and the new v3 ones will start operating. | ||
|
||
## Specification | ||
|
||
A full specification can be found [HERE](https://governance.aave.com/t/bgd-aave-governance-v3-activation-plan/14993#migration-governance-v2v3-2), but as summary: | ||
|
||
- 2 governance proposals need to be created: one running on the Level 1 Executor (Short Executor) and another on the Level 2 Executor (Long Executor). | ||
- As both proposals need to be atomically executed, a ``Mediator`` contract will temporary receive certain permissions, in order to sync both Level 1 and Level 2. | ||
- High-level, the proposals do the following: | ||
- Migrate all permissions of the Aave ecosystem smart contracts from the v2 Executors to v3 Executors. | ||
- Migrate the ownership of the v2 Executors to the v3 Executors, in order to avoid any possible permissions lock. | ||
- Upgrade the implementations of the Governance v3 voting assets (AAVE, stkAAVE and aAAVE), to make them compatible with the new system. | ||
- Fund a.DI. | ||
- Fund Aave Robot. | ||
- Fund the Aave Gelato gas tank. | ||
|
||
|
||
## References | ||
|
||
- Payloads implementations: [Ethereum Long](https://github.com/bgd-labs/gov-v2-v3-migration/blob/main/src/contracts/EthLongMovePermissionsPayload.sol), [Ethereum Short](https://github.com/bgd-labs/gov-v2-v3-migration/blob/main/src/contracts/EthShortMovePermissionsPayload.sol), [Optimism](https://github.com/bgd-labs/gov-v2-v3-migration/blob/main/src/contracts/OptMovePermissionsPayload.sol), [Arbitrum](https://github.com/bgd-labs/gov-v2-v3-migration/blob/main/src/contracts/ArbMovePermissionsPayload.sol), [Polygon](https://github.com/bgd-labs/gov-v2-v3-migration/blob/main/src/contracts/PolygonMovePermissionsPayload.sol), [Avalanche](https://github.com/bgd-labs/gov-v2-v3-migration/blob/main/src/contracts/AvaxMovePermissionsPayload.sol), [Metis](https://github.com/bgd-labs/gov-v2-v3-migration/blob/main/src/contracts/MetisMovePermissionsPayload.sol), [Base](https://github.com/bgd-labs/gov-v2-v3-migration/blob/main/src/contracts/BaseMovePermissionsPayload.sol) | ||
|
||
- Payloads tests (migration): [Ethereum Long](https://github.com/bgd-labs/gov-v2-v3-migration/blob/main/tests/EthLongMovePermissionsPayloadTest.t.sol), [Ethereum Short](https://github.com/bgd-labs/gov-v2-v3-migration/blob/main/tests/EthShortMovePermissionsPayloadTest.t.sol), [Optimism](https://github.com/bgd-labs/gov-v2-v3-migration/blob/main/tests/OptMovePermissionsPayloadTest.t.sol), [Arbitrum](https://github.com/bgd-labs/gov-v2-v3-migration/blob/main/tests/ArbMovePermissionsPayload.t.sol), [Polygon](https://github.com/bgd-labs/gov-v2-v3-migration/blob/main/tests/PolygonMovePermissionsPayloadTest.t.sol), [Avalanche](https://github.com/bgd-labs/gov-v2-v3-migration/blob/main/tests/AvaxMovePermissionsPayloadTest.t.sol), [Metis](https://github.com/bgd-labs/gov-v2-v3-migration/blob/main/tests/MetisMovePermissionsPayloadTest.t.sol), [Base](https://github.com/bgd-labs/gov-v2-v3-migration/blob/main/tests/BaseMovePermissionsPayloadTest.t.sol) | ||
|
||
- [Pre-approval Snapshot](https://snapshot.org/#/aave.eth/proposal/0x7e61744629fce7787281905b4d5984b39f9cbe83fbe2dd05d8b77697205ce0ce) | ||
|
||
- [Governance forum Discussion](https://governance.aave.com/t/bgd-aave-governance-v3-activation-plan/14993) | ||
|
||
- [Aave Governance V3 smart contracts](https://github.com/bgd-labs/aave-governance-v3) | ||
|
||
- [Aave Governance V3 interface](https://github.com/bgd-labs/aave-governance-v3-interface) | ||
|
||
- [a.DI (Aave Delivery Infrastructure)](https://github.com/bgd-labs/aave-delivery-infrastructure) | ||
|
||
- [Aave Robot v3](https://github.com/bgd-labs/aave-governance-v3-robot) | ||
|
||
- [AAVE token v3](https://github.com/bgd-labs/aave-token-v3) | ||
|
||
- [aAAVE governance v3 compatible](https://github.com/bgd-labs/aave-a-token-with-delegation) | ||
|
||
- [stkAAVE governance v3 compatible](https://github.com/bgd-labs/aave-stk-gov-v3) | ||
|
||
|
||
|
||
## Copyright | ||
|
||
Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/). | ||
|