generated from bgd-labs/bgd-forge-template
-
Notifications
You must be signed in to change notification settings - Fork 25
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* feat: add allowance * chore: add snapshot link * Update AaveLiquidityCommitteeFundingPhaseIV.md * chore: fixed lint in md file --------- Co-authored-by: Matthew <[email protected]> Co-authored-by: luigy-lemon <[email protected]>
- Loading branch information
1 parent
42b67ff
commit d106ddb
Showing
6 changed files
with
211 additions
and
0 deletions.
There are no files selected for viewing
5 changes: 5 additions & 0 deletions
5
...30_before_AaveV3Ethereum_AaveLiquidityCommitteeFundingPhaseIV_20240930_after.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,5 @@ | ||
## Raw diff | ||
|
||
```json | ||
{} | ||
``` |
51 changes: 51 additions & 0 deletions
51
...um_AaveLiquidityCommitteeFundingPhaseIV/AaveLiquidityCommitteeFundingPhaseIV.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,51 @@ | ||
--- | ||
title: "Aave Liquidity Committee Funding Phase IV" | ||
author: "@karpatkey_TokenLogic" | ||
discussions: "https://governance.aave.com/t/arfc-aave-liquidity-committee-funding-phase-iv/19188" | ||
--- | ||
|
||
## Simple Summary | ||
|
||
Upon implementation, this AIP will make available 950,000 GHO to the Aave Liquidity Committee (ALC). | ||
|
||
## Motivation | ||
|
||
Phase IV of the ALC focuses on sustaining and improving GHO liquidity across the Ethereum and Arbitrum networks, while also encouraging broader adoption of GHO through various integrations with other protocols. | ||
|
||
In the near future, we expect GHO to be listed on InstadApp, with several curated vaults providing additional utility and yield opportunities for GHO. | ||
|
||
GHO is also expected to feature in the upcoming Royco launch, aimed at driving flows into several yield strategies across Ethereum and Arbitrum. | ||
|
||
We anticipate achieving the first perpetual market integration for GHO with a strataGHO listing on Synthetix on Arbitrum. | ||
|
||
Each integration is expected to provide a use case that strengthens GHO's on-chain liquidity. | ||
|
||
The table below presents the performance metrics for the ALC. | ||
|
||
| Description | Ethereum Value | Arbitrum Value | | ||
| ------------------------------------------ | :--------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------: | | ||
| TVL DEX Liquidity Pools | 50M | 30M | | ||
| TVL Utility Liquidity Pools (Excl. stkGHO) | 15M | 10M | | ||
| DEX Liquidity Composition | < 50% GHO (< 33% for 3pools) | < 50% GHO (< 33% for 3pools) | | ||
| Swap Price Impact $5M Swap (GHO to USDC) | < 0.10% | < 0.25% | | ||
| Annualised Peg Volatility | < 5.00% | < 5.00% | | ||
| Price level for >90% time | $0.995 using [Redstone Medium Price](https://app.redstone.finance/#/app/token/GHO) | $0.995 using [Redstone Medium Price](https://app.redstone.finance/#/app/token/GHO) | | ||
|
||
Achieving 50M of DEX liquidity on Ethereum across various integrations remains a key focus. Whilst we are yet to acheive this target, we are currently very well positioned for current market conditions. | ||
|
||
## Specification | ||
|
||
Create an Allowance for GHO on Ethereum for a total of 950,000 GHO. | ||
|
||
ALC Ethereum SAFE: [`0xA1c93D2687f7014Aaf588c764E3Ce80aF016229b`](https://etherscan.io/address/0xA1c93D2687f7014Aaf588c764E3Ce80aF016229b) | ||
|
||
## References | ||
|
||
- Implementation: [AaveV3Ethereum](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240930_AaveV3Ethereum_AaveLiquidityCommitteeFundingPhaseIV/AaveV3Ethereum_AaveLiquidityCommitteeFundingPhaseIV_20240930.sol) | ||
- Tests: [AaveV3Ethereum](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240930_AaveV3Ethereum_AaveLiquidityCommitteeFundingPhaseIV/AaveV3Ethereum_AaveLiquidityCommitteeFundingPhaseIV_20240930.t.sol) | ||
- [Snapshot](https://snapshot.org/#/aave.eth/proposal/0x7b59c555f5a51a3377b1aee0f5f21fc205958f1388926efb94172644bacfa1d6) | ||
- [Discussion](https://governance.aave.com/t/arfc-aave-liquidity-committee-funding-phase-iv/19188) | ||
|
||
## Copyright | ||
|
||
Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/). |
60 changes: 60 additions & 0 deletions
60
..._AaveLiquidityCommitteeFundingPhaseIV/AaveLiquidityCommitteeFundingPhaseIV_20240930.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,60 @@ | ||
// SPDX-License-Identifier: MIT | ||
pragma solidity ^0.8.0; | ||
|
||
import {GovV3Helpers, IPayloadsControllerCore, PayloadsControllerUtils} from 'aave-helpers/src/GovV3Helpers.sol'; | ||
import {GovernanceV3Ethereum} from 'aave-address-book/GovernanceV3Ethereum.sol'; | ||
import {EthereumScript} from 'solidity-utils/contracts/utils/ScriptUtils.sol'; | ||
import {AaveV3Ethereum_AaveLiquidityCommitteeFundingPhaseIV_20240930} from './AaveV3Ethereum_AaveLiquidityCommitteeFundingPhaseIV_20240930.sol'; | ||
|
||
/** | ||
* @dev Deploy Ethereum | ||
* deploy-command: make deploy-ledger contract=src/20240930_AaveV3Ethereum_AaveLiquidityCommitteeFundingPhaseIV/AaveLiquidityCommitteeFundingPhaseIV_20240930.s.sol:DeployEthereum chain=mainnet | ||
* verify-command: FOUNDRY_PROFILE=mainnet npx catapulta-verify -b broadcast/AaveLiquidityCommitteeFundingPhaseIV_20240930.s.sol/1/run-latest.json | ||
*/ | ||
contract DeployEthereum is EthereumScript { | ||
function run() external broadcast { | ||
// deploy payloads | ||
address payload0 = GovV3Helpers.deployDeterministic( | ||
type(AaveV3Ethereum_AaveLiquidityCommitteeFundingPhaseIV_20240930).creationCode | ||
); | ||
|
||
// compose action | ||
IPayloadsControllerCore.ExecutionAction[] | ||
memory actions = new IPayloadsControllerCore.ExecutionAction[](1); | ||
actions[0] = GovV3Helpers.buildAction(payload0); | ||
|
||
// register action at payloadsController | ||
GovV3Helpers.createPayload(actions); | ||
} | ||
} | ||
|
||
/** | ||
* @dev Create Proposal | ||
* command: make deploy-ledger contract=src/20240930_AaveV3Ethereum_AaveLiquidityCommitteeFundingPhaseIV/AaveLiquidityCommitteeFundingPhaseIV_20240930.s.sol:CreateProposal chain=mainnet | ||
*/ | ||
contract CreateProposal is EthereumScript { | ||
function run() external { | ||
// create payloads | ||
PayloadsControllerUtils.Payload[] memory payloads = new PayloadsControllerUtils.Payload[](1); | ||
|
||
// compose actions for validation | ||
IPayloadsControllerCore.ExecutionAction[] | ||
memory actionsEthereum = new IPayloadsControllerCore.ExecutionAction[](1); | ||
actionsEthereum[0] = GovV3Helpers.buildAction( | ||
type(AaveV3Ethereum_AaveLiquidityCommitteeFundingPhaseIV_20240930).creationCode | ||
); | ||
payloads[0] = GovV3Helpers.buildMainnetPayload(vm, actionsEthereum); | ||
|
||
// create proposal | ||
vm.startBroadcast(); | ||
GovV3Helpers.createProposal( | ||
vm, | ||
payloads, | ||
GovernanceV3Ethereum.VOTING_PORTAL_ETH_POL, | ||
GovV3Helpers.ipfsHashFile( | ||
vm, | ||
'src/20240930_AaveV3Ethereum_AaveLiquidityCommitteeFundingPhaseIV/AaveLiquidityCommitteeFundingPhaseIV.md' | ||
) | ||
); | ||
} | ||
} |
20 changes: 20 additions & 0 deletions
20
...yCommitteeFundingPhaseIV/AaveV3Ethereum_AaveLiquidityCommitteeFundingPhaseIV_20240930.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,20 @@ | ||
// SPDX-License-Identifier: MIT | ||
pragma solidity ^0.8.0; | ||
|
||
import {AaveV3Ethereum, AaveV3EthereumAssets} from 'aave-address-book/AaveV3Ethereum.sol'; | ||
import {IProposalGenericExecutor} from 'aave-helpers/src/interfaces/IProposalGenericExecutor.sol'; | ||
/** | ||
* @title Aave Liquidity Committee Funding Phase IV | ||
* @author @karpatkey_TokenLogic | ||
* - Snapshot: https://snapshot.org/#/aave.eth/proposal/0x7b59c555f5a51a3377b1aee0f5f21fc205958f1388926efb94172644bacfa1d6 | ||
* - Discussion: https://governance.aave.com/t/arfc-aave-liquidity-committee-funding-phase-iv/19188 | ||
*/ | ||
contract AaveV3Ethereum_AaveLiquidityCommitteeFundingPhaseIV_20240930 is IProposalGenericExecutor { | ||
// https://etherscan.io/address/0xA1c93D2687f7014Aaf588c764E3Ce80aF016229b | ||
address public constant ALC_SAFE = 0xA1c93D2687f7014Aaf588c764E3Ce80aF016229b; | ||
uint256 public constant AMOUNT = 950_000e18; | ||
|
||
function execute() external { | ||
AaveV3Ethereum.COLLECTOR.approve(AaveV3EthereumAssets.GHO_UNDERLYING, ALC_SAFE, AMOUNT); | ||
} | ||
} |
60 changes: 60 additions & 0 deletions
60
...ommitteeFundingPhaseIV/AaveV3Ethereum_AaveLiquidityCommitteeFundingPhaseIV_20240930.t.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,60 @@ | ||
// SPDX-License-Identifier: MIT | ||
pragma solidity ^0.8.0; | ||
|
||
import {AaveV3Ethereum, AaveV3EthereumAssets} from 'aave-address-book/AaveV3Ethereum.sol'; | ||
|
||
import {IERC20} from 'solidity-utils/contracts/oz-common/interfaces/IERC20.sol'; | ||
import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/src/ProtocolV3TestBase.sol'; | ||
import {AaveV3Ethereum_AaveLiquidityCommitteeFundingPhaseIV_20240930} from './AaveV3Ethereum_AaveLiquidityCommitteeFundingPhaseIV_20240930.sol'; | ||
|
||
/** | ||
* @dev Test for AaveV3Ethereum_AaveLiquidityCommitteeFundingPhaseIV_20240930 | ||
* command: FOUNDRY_PROFILE=mainnet forge test --match-path=src/20240930_AaveV3Ethereum_AaveLiquidityCommitteeFundingPhaseIV/AaveV3Ethereum_AaveLiquidityCommitteeFundingPhaseIV_20240930.t.sol -vv | ||
*/ | ||
contract AaveV3Ethereum_AaveLiquidityCommitteeFundingPhaseIV_20240930_Test is ProtocolV3TestBase { | ||
AaveV3Ethereum_AaveLiquidityCommitteeFundingPhaseIV_20240930 internal proposal; | ||
|
||
function setUp() public { | ||
vm.createSelectFork(vm.rpcUrl('mainnet'), 20863717); | ||
proposal = new AaveV3Ethereum_AaveLiquidityCommitteeFundingPhaseIV_20240930(); | ||
} | ||
|
||
/** | ||
* @dev executes the generic test suite including e2e and config snapshots | ||
*/ | ||
function test_defaultProposalExecution() public { | ||
defaultTest( | ||
'AaveV3Ethereum_AaveLiquidityCommitteeFundingPhaseIV_20240930', | ||
AaveV3Ethereum.POOL, | ||
address(proposal) | ||
); | ||
} | ||
|
||
function test_allowance() public { | ||
assertEq( | ||
IERC20(AaveV3EthereumAssets.GHO_UNDERLYING).allowance( | ||
address(AaveV3Ethereum.COLLECTOR), | ||
proposal.ALC_SAFE() | ||
), | ||
0 | ||
); | ||
|
||
executePayload(vm, address(proposal)); | ||
|
||
assertEq( | ||
IERC20(AaveV3EthereumAssets.GHO_UNDERLYING).allowance( | ||
address(AaveV3Ethereum.COLLECTOR), | ||
proposal.ALC_SAFE() | ||
), | ||
proposal.AMOUNT() | ||
); | ||
|
||
vm.startPrank(proposal.ALC_SAFE()); | ||
IERC20(AaveV3EthereumAssets.GHO_UNDERLYING).transferFrom( | ||
address(AaveV3Ethereum.COLLECTOR), | ||
proposal.ALC_SAFE(), | ||
proposal.AMOUNT() | ||
); | ||
vm.stopPrank(); | ||
} | ||
} |
15 changes: 15 additions & 0 deletions
15
src/20240930_AaveV3Ethereum_AaveLiquidityCommitteeFundingPhaseIV/config.ts
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,15 @@ | ||
import {ConfigFile} from '../../generator/types'; | ||
export const config: ConfigFile = { | ||
rootOptions: { | ||
pools: ['AaveV3Ethereum'], | ||
title: 'Aave Liquidity Committee Funding Phase IV', | ||
shortName: 'AaveLiquidityCommitteeFundingPhaseIV', | ||
date: '20240930', | ||
author: '@karpatkey_TokenLogic', | ||
discussion: | ||
'https://governance.aave.com/t/arfc-aave-liquidity-committee-funding-phase-iv/19188', | ||
snapshot: '', | ||
votingNetwork: 'POLYGON', | ||
}, | ||
poolOptions: {AaveV3Ethereum: {configs: {OTHERS: {}}, cache: {blockNumber: 20863717}}}, | ||
}; |
d106ddb
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Foundry report
Build log
Test success 🌈