Skip to content

Commit

Permalink
short proposal for gov activation (bgd-labs#117)
Browse files Browse the repository at this point in the history
* short proposal for gov activation

* fix proposal creation
  • Loading branch information
rustboyar authored Dec 15, 2023
1 parent c644a69 commit f86a4dd
Show file tree
Hide file tree
Showing 3 changed files with 103 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
---
title: "Aave Governance V3 Activation Short"
author: "BGD Labs (@bgdlabs)"
discussions: "https://governance.aave.com/t/bgd-aave-governance-v3-activation-plan/14993/13"
---

## Simple Summary

This is the short executor part of the proposal for the migration of the Aave Governance v2.5 to v3, transferring all permissions from the v2 system to v3, executing all required smart contracts upgrades and different miscellaneous preparations.

Additionally, Aave Robot systems is activated, being requirement 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.5, a set of two proposals on v2.5 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/13), 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 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 Aave Robot.
- Transfer permissions for ARC and for swap adapters on Base.

- Implementation: [V2Ethereum](https://github.com/bgd-labs/gov-v2-v3-migration/blob/main/src/contracts/governance3/EthShortV2Payload.sol), [V3Ethereum](https://github.com/bgd-labs/gov-v2-v3-migration/blob/main/src/contracts/governance3/EthShortV3Payload.sol), [V3EthereumLong](https://github.com/bgd-labs/gov-v2-v3-migration/blob/main/src/contracts/governance3/EthLongV3Payload.sol), [Avalanche](https://github.com/bgd-labs/gov-v2-v3-migration/blob/main/src/contracts/governance3/AvalancheFundRobotPayload.sol), [Polygon](https://github.com/bgd-labs/gov-v2-v3-migration/blob/main/src/contracts/governance3/PolygonFundRobotPayload.sol), [Base](https://github.com/bgd-labs/gov-v2-v3-migration/blob/main/src/contracts/governance3/BaseSwapsPayload.sol)
- Tests: [Ethereum](https://github.com/bgd-labs/gov-v2-v3-migration/blob/main/tests/governance3/EthShortPayloadTest.t.sol), [EthereumLong](https://github.com/bgd-labs/gov-v2-v3-migration/blob/main/tests/governance3/EthLongV3PayloadTest.t.sol), [Avalanche](https://github.com/bgd-labs/gov-v2-v3-migration/blob/main/tests/governance3/AvalancheFundRobotPayload.t.sol), [Polygon](https://github.com/bgd-labs/gov-v2-v3-migration/blob/main/tests/governance3/PolygonFundRobotPayload.t.sol), [Base](https://github.com/bgd-labs/gov-v2-v3-migration/blob/main/tests/governance3/BaseSwapsPayloadTest.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/13)

- [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)

- [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/).
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
// 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 Long Proposal
* command: make deploy-ledger contract=src/20231207_Multi_AaveGovernanceV3Activation/AaveGovernanceV3Activation_20231207.s.sol:CreateProposal chain=mainnet
*/
contract CreateProposal is EthereumScript {
function run() external {
// create payloads
GovHelpers.Payload[] memory payloads = new GovHelpers.Payload[](2);
payloads[0] = GovHelpers.buildMainnet(0x62F5c2C54495567537c0f9C4B66A6adb3b584148);
payloads[1] = GovHelpers.buildBase(0x44B4221c950fCf23A40e68dEa29feD0bB88893a9);

// create proposal
vm.startBroadcast();
GovHelpers.createProposal(
payloads,
GovHelpers.ipfsHashFile(
vm,
'src/20231207_Multi_AaveGovernanceV3Activation/AaveGovernanceV3Activation.md'
)
);
}
}
21 changes: 21 additions & 0 deletions src/20231207_Multi_AaveGovernanceV3Activation/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"rootOptions": {
"pools": ["AaveV3Ethereum"],
"title": "Aave Governance V3 Activation",
"shortName": "AaveGovernanceV3Activation",
"date": "20231207",
"author": "BGD Labs (@bgdlabs)",
"discussion": "https://governance.aave.com/t/bgd-aave-governance-v3-activation-plan/14993/13",
"snapshot": "https://snapshot.org/#/aave.eth/proposal/0x7e61744629fce7787281905b4d5984b39f9cbe83fbe2dd05d8b77697205ce0ce"
},
"poolOptions": {
"AaveV3Ethereum": {
"configs": {
"OTHERS": {}
},
"cache": {
"blockNumber": 18733441
}
}
}
}

0 comments on commit f86a4dd

Please sign in to comment.