Skip to content

Commit

Permalink
Governance V3 activation (bgd-labs#331)
Browse files Browse the repository at this point in the history
* 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
3 people authored Oct 13, 2023
1 parent ea342f7 commit 3ab82a9
Show file tree
Hide file tree
Showing 2 changed files with 112 additions and 0 deletions.
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'
)
);
}
}
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/).

0 comments on commit 3ab82a9

Please sign in to comment.