generated from bgd-labs/bgd-forge-template
-
Notifications
You must be signed in to change notification settings - Fork 31
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Marc Zeller
authored
Mar 11, 2024
1 parent
73cddc0
commit ea76865
Showing
5 changed files
with
170 additions
and
0 deletions.
There are no files selected for viewing
24 changes: 24 additions & 0 deletions
24
...m_ActivationOfACPrimeFoundation/AaveV3Ethereum_ActivationOfACPrimeFoundation_20240308.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,24 @@ | ||
// SPDX-License-Identifier: MIT | ||
pragma solidity ^0.8.0; | ||
|
||
import {IProposalGenericExecutor} from 'aave-helpers/interfaces/IProposalGenericExecutor.sol'; | ||
|
||
/** | ||
* @title Activation of A-C Prime Foundation | ||
* @author @Khan | ||
* - Snapshot: https://snapshot.org/#/aave.eth/proposal/0x71db494e4b49e7533c5ccaa566686b2d045b0761cb3296a2d77af4b500566eb0 | ||
* - Discussion: https://governance.aave.com/t/arfc-aave-treasury-rwa-allocation/14790 | ||
*/ | ||
contract AaveV3Ethereum_ActivationOfACPrimeFoundation_20240308 is IProposalGenericExecutor { | ||
event Decision(string agreed); | ||
|
||
function execute() external { | ||
// This AIP payload serves as a DAO resolution providing binding approval from the Aave DAO to approve and ratify the following documents: | ||
// 1. The Articles of Association | ||
// 2. The Memorandum of Association | ||
|
||
emit Decision( | ||
'The Aave DAO approves and ratifies the following documents: \n\n 1) The articles of Association: https://cloudflare-ipfs.com/ipfs/QmXvgvLb87tFr8JmJjx7pAThAU1gAsHFLqdMa12zt2f6R6) \n\n 2) The Memorandum Of Association: https://cloudflare-ipfs.com/ipfs/QmaB3Z4oN4Bcc4SEZ8WH2duKLpPqRYKqYC5TMqpQaddfrB \n\n' | ||
); | ||
} | ||
} |
32 changes: 32 additions & 0 deletions
32
...ActivationOfACPrimeFoundation/AaveV3Ethereum_ActivationOfACPrimeFoundation_20240308.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,32 @@ | ||
// SPDX-License-Identifier: MIT | ||
pragma solidity ^0.8.0; | ||
|
||
import {AaveV3Ethereum} from 'aave-address-book/AaveV3Ethereum.sol'; | ||
|
||
import 'forge-std/Test.sol'; | ||
import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/ProtocolV3TestBase.sol'; | ||
import {AaveV3Ethereum_ActivationOfACPrimeFoundation_20240308} from './AaveV3Ethereum_ActivationOfACPrimeFoundation_20240308.sol'; | ||
|
||
/** | ||
* @dev Test for AaveV3Ethereum_ActivationOfACPrimeFoundation_20240308 | ||
* command: make test-contract filter=AaveV3Ethereum_ActivationOfACPrimeFoundation_20240308 | ||
*/ | ||
contract AaveV3Ethereum_ActivationOfACPrimeFoundation_20240308_Test is ProtocolV3TestBase { | ||
AaveV3Ethereum_ActivationOfACPrimeFoundation_20240308 internal proposal; | ||
|
||
function setUp() public { | ||
vm.createSelectFork(vm.rpcUrl('mainnet'), 19390425); | ||
proposal = new AaveV3Ethereum_ActivationOfACPrimeFoundation_20240308(); | ||
} | ||
|
||
/** | ||
* @dev executes the generic test suite including e2e and config snapshots | ||
*/ | ||
function test_defaultProposalExecution() public { | ||
defaultTest( | ||
'AaveV3Ethereum_ActivationOfACPrimeFoundation_20240308', | ||
AaveV3Ethereum.POOL, | ||
address(proposal) | ||
); | ||
} | ||
} |
42 changes: 42 additions & 0 deletions
42
...8_AaveV3Ethereum_ActivationOfACPrimeFoundation/ActivationOfACPrimeFoundation.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,42 @@ | ||
--- | ||
title: "Activation of A-C Prime Foundation" | ||
author: "@Khan" | ||
discussions: "https://governance.aave.com/t/arfc-aave-treasury-rwa-allocation/14790" | ||
snapshot: "https://snapshot.org/#/aave.eth/proposal/0x71db494e4b49e7533c5ccaa566686b2d045b0761cb3296a2d77af4b500566eb0" | ||
--- | ||
|
||
## Simple Summary | ||
|
||
Following [AIP-331](https://governance-v2.aave.com/governance/proposal/331/) giving mandate to Centrifuge to create a Association to represent the Aave DAO off-chain, this AIP proposes the activation of the A-C Prime Foundation. | ||
|
||
## Motivation | ||
|
||
The A-C Prime Foundation is a Cayman island foundation company created by Centrifuge on behalf of the Aave DAO. It is the legal entity that will represent the Aave DAO off-chain. It will be the entity that will be able to sign contracts, hold assets, and enter into agreements on behalf of the Aave DAO. | ||
|
||
This AIP proposes the activation of the A-C Prime Foundation. and the pre-approval of a investment in the Anemoy Liquid Treasury Fund 1 with an initial investment of the equivalent of $1m in shares. | ||
|
||
## Specification | ||
|
||
This AIP does not require any on-chain changes. It is a proposal to activate the A-C Prime Foundation. | ||
|
||
To explicitly convey the Aave DAO approval via its governance, an event is created on-chain casting the following message: | ||
|
||
``` | ||
'The Aave DAO approves and ratify the following documents : | ||
|
||
the articles of Association : https://centrifuge.mypinata.cloud/ipfs/QmSn1Jx4PCPCvJDwx5JHqAcrCYFtCdVGtXc2Dcmk8NFauM | ||
|
||
The Memorandum Of association : https://centrifuge.mypinata.cloud/ipfs/QmeNnARf9CqLQ9krQn8b4UCnBaWhUhLryEBqrVqW9cuTjV' | ||
|
||
``` | ||
|
||
## References | ||
|
||
- Implementation: [AaveV3Ethereum](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240308_AaveV3Ethereum_ActivationOfACPrimeFoundation/AaveV3Ethereum_ActivationOfACPrimeFoundation_20240308.sol) | ||
- Tests: [AaveV3Ethereum](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240308_AaveV3Ethereum_ActivationOfACPrimeFoundation/AaveV3Ethereum_ActivationOfACPrimeFoundation_20240308.t.sol) | ||
- [Snapshot](https://snapshot.org/#/aave.eth/proposal/0x71db494e4b49e7533c5ccaa566686b2d045b0761cb3296a2d77af4b500566eb0) | ||
- [Discussion](https://governance.aave.com/t/arfc-aave-treasury-rwa-allocation/14790) | ||
|
||
## Copyright | ||
|
||
Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/). |
58 changes: 58 additions & 0 deletions
58
...AaveV3Ethereum_ActivationOfACPrimeFoundation/ActivationOfACPrimeFoundation_20240308.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,58 @@ | ||
// SPDX-License-Identifier: MIT | ||
pragma solidity ^0.8.0; | ||
|
||
import {GovV3Helpers, IPayloadsControllerCore, PayloadsControllerUtils} from 'aave-helpers/GovV3Helpers.sol'; | ||
import {EthereumScript} from 'aave-helpers/ScriptUtils.sol'; | ||
import {AaveV3Ethereum_ActivationOfACPrimeFoundation_20240308} from './AaveV3Ethereum_ActivationOfACPrimeFoundation_20240308.sol'; | ||
|
||
/** | ||
* @dev Deploy Ethereum | ||
* deploy-command: make deploy-ledger contract=src/20240308_AaveV3Ethereum_ActivationOfACPrimeFoundation/ActivationOfACPrimeFoundation_20240308.s.sol:DeployEthereum chain=mainnet | ||
* verify-command: npx catapulta-verify -b broadcast/ActivationOfACPrimeFoundation_20240308.s.sol/1/run-latest.json | ||
*/ | ||
contract DeployEthereum is EthereumScript { | ||
function run() external broadcast { | ||
// deploy payloads | ||
address payload0 = GovV3Helpers.deployDeterministic( | ||
type(AaveV3Ethereum_ActivationOfACPrimeFoundation_20240308).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/20240308_AaveV3Ethereum_ActivationOfACPrimeFoundation/ActivationOfACPrimeFoundation_20240308.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_ActivationOfACPrimeFoundation_20240308).creationCode | ||
); | ||
payloads[0] = GovV3Helpers.buildMainnetPayload(vm, actionsEthereum); | ||
|
||
// create proposal | ||
vm.startBroadcast(); | ||
GovV3Helpers.createProposal( | ||
vm, | ||
payloads, | ||
GovV3Helpers.ipfsHashFile( | ||
vm, | ||
'src/20240308_AaveV3Ethereum_ActivationOfACPrimeFoundation/ActivationOfACPrimeFoundation.md' | ||
) | ||
); | ||
} | ||
} |
14 changes: 14 additions & 0 deletions
14
src/20240308_AaveV3Ethereum_ActivationOfACPrimeFoundation/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,14 @@ | ||
import {ConfigFile} from '../../generator/types'; | ||
export const config: ConfigFile = { | ||
rootOptions: { | ||
pools: ['AaveV3Ethereum'], | ||
title: 'Activation of A-C Prime Foundation', | ||
shortName: 'ActivationOfACPrimeFoundation', | ||
date: '20240308', | ||
author: '@Khan', | ||
discussion: 'https://governance.aave.com/t/arfc-aave-treasury-rwa-allocation/14790', | ||
snapshot: | ||
'https://snapshot.org/#/aave.eth/proposal/0x71db494e4b49e7533c5ccaa566686b2d045b0761cb3296a2d77af4b500566eb0', | ||
}, | ||
poolOptions: {AaveV3Ethereum: {configs: {OTHERS: {}}, cache: {blockNumber: 19390425}}}, | ||
}; |
ea76865
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 🌈