Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add second AIP for GHO Cross-Chain Launch #356

Merged
merged 21 commits into from
Jun 26, 2024
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
fix: Fix AIP name
miguelmtzinf committed Jun 17, 2024

Verified

This commit was signed with the committer’s verified signature. The key has expired.
ripcurlx Christoph Atteneder
commit 4a7d3b38099eab4e889059d8fb9cb2faf9b2d627
Original file line number Diff line number Diff line change
@@ -9,12 +9,12 @@ import {IV3RateStrategyFactory} from 'aave-helpers/v3-config-engine/IV3RateStrat
import {IERC20} from 'solidity-utils/contracts/oz-common/interfaces/IERC20.sol';
import {SafeERC20} from 'solidity-utils/contracts/oz-common/SafeERC20.sol';
/**
* @title OnboardGHOAaveV3Arbitrum
* @title GHO Cross-Chain Launch Part 2
* @author Aave Labs
* - Snapshot: https://snapshot.org/#/aave.eth/proposal/0x2a6ffbcff41a5ef98b7542f99b207af9c1e79e61f859d0a62f3bf52d3280877a
* - Discussion: https://governance.aave.com/t/arfc-gho-cross-chain-launch/17616
*/
contract AaveV3Arbitrum_OnboardGHOAaveV3Arbitrum_20240613 is AaveV3PayloadArbitrum {
contract AaveV3Arbitrum_GHOCrossChainLaunchPart2_20240613 is AaveV3PayloadArbitrum {
using SafeERC20 for IERC20;

address public constant GHO = 0x7dfF72693f6A4149b17e7C6314655f6A9F7c8B33; // TODO
Original file line number Diff line number Diff line change
@@ -8,18 +8,18 @@ import {AaveV3Arbitrum} from 'aave-address-book/AaveV3Arbitrum.sol';
import {GovernanceV3Arbitrum} from 'aave-address-book/GovernanceV3Arbitrum.sol';
import {IERC20} from 'solidity-utils/contracts/oz-common/interfaces/IERC20.sol';

import {AaveV3Arbitrum_OnboardGHOAaveV3Arbitrum_20240613} from './AaveV3Arbitrum_OnboardGHOAaveV3Arbitrum_20240613.sol';
import {AaveV3Arbitrum_GHOCrossChainLaunchPart2_20240613} from './AaveV3Arbitrum_GHOCrossChainLaunchPart2_20240613.sol';

/**
* @dev Test for AaveV3Arbitrum_OnboardGHOAaveV3Arbitrum_20240613
* command: FOUNDRY_PROFILE=arbitrum forge test --match-path=src/20240613_AaveV3Arbitrum_OnboardGHOAaveV3Arbitrum/AaveV3Arbitrum_OnboardGHOAaveV3Arbitrum_20240613.t.sol -vv
* @dev Test for AaveV3Arbitrum_GHOCrossChainLaunchPart2_20240613
* command: FOUNDRY_PROFILE=arbitrum forge test --match-path=src/20240613_AaveV3Arbitrum_GHOCrossChainLaunchPart2/AaveV3Arbitrum_GHOCrossChainLaunchPart2_20240613.t.sol -vv
*/
contract AaveV3Arbitrum_OnboardGHOAaveV3Arbitrum_20240613_Test is ProtocolV3TestBase {
AaveV3Arbitrum_OnboardGHOAaveV3Arbitrum_20240613 internal proposal;
contract AaveV3Arbitrum_GHOCrossChainLaunchPart2_20240613_Test is ProtocolV3TestBase {
AaveV3Arbitrum_GHOCrossChainLaunchPart2_20240613 internal proposal;

function setUp() public {
vm.createSelectFork(vm.rpcUrl('arbitrum'), 221463835);
proposal = new AaveV3Arbitrum_OnboardGHOAaveV3Arbitrum_20240613();
proposal = new AaveV3Arbitrum_GHOCrossChainLaunchPart2_20240613();
}

/**
@@ -30,7 +30,7 @@ contract AaveV3Arbitrum_OnboardGHOAaveV3Arbitrum_20240613_Test is ProtocolV3Test
deal(proposal.GHO(), GovernanceV3Arbitrum.EXECUTOR_LVL_1, proposal.GHO_SEED_AMOUNT());

defaultTest(
brotherlymite marked this conversation as resolved.
Show resolved Hide resolved
'AaveV3Arbitrum_OnboardGHOAaveV3Arbitrum_20240613',
'AaveV3Arbitrum_GHOCrossChainLaunchPart2_20240613',
AaveV3Arbitrum.POOL,
address(proposal)
);
Original file line number Diff line number Diff line change
@@ -1,14 +1,20 @@
---
title: "Onboard GHO on Arbitrum Aave Pool"
title: "GHO Cross-Chain - Part 2"
author: "Aave Labs"
discussions: "https://governance.aave.com/t/arfc-gho-cross-chain-launch/17616"
snapshot: "https://snapshot.org/#/aave.eth/proposal/0x2a6ffbcff41a5ef98b7542f99b207af9c1e79e61f859d0a62f3bf52d3280877a"
---

## Simple Summary

This AIP is the Part 2 for the GHO Cross-Chain proposal and proposes the configuration of GHO on Arbitrum Aave V3 Pool in connection with the cross-chain implementation strategy.

Following the successful expansion of GHO to the Arbitrum network, this AIP proposes to onboard GHO into the Arbitrum Aave Pool as a borrowable asset, adopting risk parameters formulated by Chaos Labs.

## Motivation

The implementation of the GHO Cross Chain proposal required the proposal AIP to be split into two separate AIPs. This proposal is the second AIP (“Part 2”) for configuration of GHO on Arbitrum Aave Pool adopting risk parameters formulated by Chaos Labs.

## Specification

The table below illustrates the configured risk parameters for **GHO**
@@ -43,8 +49,8 @@ The table below illustrates the configured risk parameters for **GHO**

## References

- Implementation: [AaveV3Arbitrum](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240613_AaveV3Arbitrum_OnboardGHOAaveV3Arbitrum/AaveV3Arbitrum_OnboardGHOAaveV3Arbitrum_20240613.sol)
- Tests: [AaveV3Arbitrum](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240613_AaveV3Arbitrum_OnboardGHOAaveV3Arbitrum/AaveV3Arbitrum_OnboardGHOAaveV3Arbitrum_20240613.t.sol)
- Implementation: [AaveV3Arbitrum](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240613_AaveV3Arbitrum_GHOCrossChainLaunchPart2/AaveV3Arbitrum_GHOCrossChainLaunchPart2_20240613.sol)
- Tests: [AaveV3Arbitrum](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240613_AaveV3Arbitrum_GHOCrossChainLaunchPart2/AaveV3Arbitrum_GHOCrossChainLaunchPart2_20240613.t.sol)
- [Snapshot](https://snapshot.org/#/aave.eth/proposal/0x2a6ffbcff41a5ef98b7542f99b207af9c1e79e61f859d0a62f3bf52d3280877a)
- [Discussion](https://governance.aave.com/t/arfc-gho-cross-chain-launch/17616)

Original file line number Diff line number Diff line change
@@ -5,18 +5,18 @@ import {GovV3Helpers, IPayloadsControllerCore, PayloadsControllerUtils} from 'aa
import {AaveV3Arbitrum} from 'aave-address-book/AaveV3Arbitrum.sol';
import {GovernanceV3Ethereum} from 'aave-address-book/GovernanceV3Ethereum.sol';
import {EthereumScript, ArbitrumScript} from 'aave-helpers/ScriptUtils.sol';
import {AaveV3Arbitrum_OnboardGHOAaveV3Arbitrum_20240613} from './AaveV3Arbitrum_OnboardGHOAaveV3Arbitrum_20240613.sol';
import {AaveV3Arbitrum_GHOCrossChainLaunchPart2_20240613} from './AaveV3Arbitrum_GHOCrossChainLaunchPart2_20240613.sol';

/**
* @dev Deploy Arbitrum
* deploy-command: make deploy-ledger contract=src/20240613_AaveV3Arbitrum_OnboardGHOAaveV3Arbitrum/OnboardGHOAaveV3Arbitrum_20240613.s.sol:DeployArbitrum chain=arbitrum
* verify-command: FOUNDRY_PROFILE=arbitrum npx catapulta-verify -b broadcast/OnboardGHOAaveV3Arbitrum_20240613.s.sol/42161/run-latest.json
* deploy-command: make deploy-ledger contract=src/20240613_AaveV3Arbitrum_GHOCrossChainLaunchPart2/GHOCrossChainLaunchPart2_20240613.s.sol:DeployArbitrum chain=arbitrum
* verify-command: FOUNDRY_PROFILE=arbitrum npx catapulta-verify -b broadcast/GHOCrossChainLaunchPart2_20240613.s.sol/42161/run-latest.json
*/
contract DeployArbitrum is ArbitrumScript {
function run() external broadcast {
// deploy payloads
address payload0 = GovV3Helpers.deployDeterministic(
type(AaveV3Arbitrum_OnboardGHOAaveV3Arbitrum_20240613).creationCode
type(AaveV3Arbitrum_GHOCrossChainLaunchPart2_20240613).creationCode
);

// compose action
@@ -31,7 +31,7 @@ contract DeployArbitrum is ArbitrumScript {

/**
* @dev Create Proposal
* command: make deploy-ledger contract=src/20240613_AaveV3Arbitrum_OnboardGHOAaveV3Arbitrum/OnboardGHOAaveV3Arbitrum_20240613.s.sol:CreateProposal chain=mainnet
* command: make deploy-ledger contract=src/20240613_AaveV3Arbitrum_GHOCrossChainLaunchPart2/GHOCrossChainLaunchPart2_20240613.s.sol:CreateProposal chain=mainnet
*/
contract CreateProposal is EthereumScript {
function run() external {
@@ -42,7 +42,7 @@ contract CreateProposal is EthereumScript {
IPayloadsControllerCore.ExecutionAction[]
memory actionsArbitrum = new IPayloadsControllerCore.ExecutionAction[](1);
actionsArbitrum[0] = GovV3Helpers.buildAction(
type(AaveV3Arbitrum_OnboardGHOAaveV3Arbitrum_20240613).creationCode
type(AaveV3Arbitrum_GHOCrossChainLaunchPart2_20240613).creationCode
);
payloads[0] = GovV3Helpers.buildArbitrumPayload(vm, actionsArbitrum);

@@ -54,7 +54,7 @@ contract CreateProposal is EthereumScript {
GovernanceV3Ethereum.VOTING_PORTAL_ETH_POL,
GovV3Helpers.ipfsHashFile(
vm,
'src/20240613_AaveV3Arbitrum_OnboardGHOAaveV3Arbitrum/OnboardGHOAaveV3Arbitrum.md'
'src/20240613_AaveV3Arbitrum_GHOCrossChainLaunchPart2/GHOCrossChainLaunchPart2.md'
)
);
}
Original file line number Diff line number Diff line change
@@ -2,8 +2,8 @@ import {ConfigFile} from '../../generator/types';
export const config: ConfigFile = {
rootOptions: {
pools: ['AaveV3Arbitrum'],
title: 'OnboardGHOAaveV3Arbitrum',
shortName: 'OnboardGHOAaveV3Arbitrum',
title: 'GHOCrossChainLaunchPart2',
shortName: 'GHOCrossChainLaunchPart2',
date: '20240613',
author: 'Aave Labs',
discussion: 'https://governance.aave.com/t/arfc-gho-cross-chain-launch/17616',