Skip to content

Commit 9b41866

Browse files
chore: add plasma contracts (#502)
1 parent 4bc7320 commit 9b41866

4 files changed

Lines changed: 44 additions & 2 deletions

File tree

foundry.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"lib/aave-address-book": {
3-
"rev": "6a128bafe57a6d8c9dca537621403d161161dee6"
3+
"rev": "f92e8eaab8014ec00d4b7f726c66f214310964d1"
44
},
55
"lib/forge-std": {
66
"rev": "c7be2a3481f9e51230880bb0949072c7e3a4da82"

lib/aave-address-book

src/GovV3Helpers.sol

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import {GovernanceV3Celo} from 'aave-address-book/GovernanceV3Celo.sol';
3030
import {GovernanceV3Mantle} from 'aave-address-book/GovernanceV3Mantle.sol';
3131
import {GovernanceV3Soneium} from 'aave-address-book/GovernanceV3Soneium.sol';
3232
import {GovernanceV3Ink} from 'aave-address-book/GovernanceV3Ink.sol';
33+
import {GovernanceV3Plasma} from 'aave-address-book/GovernanceV3Plasma.sol';
3334
import {MiscEthereum} from 'aave-address-book/MiscEthereum.sol';
3435
import {Create2Utils} from 'solidity-utils/contracts/utils/ScriptUtils.sol';
3536
import {StorageHelpers} from './StorageHelpers.sol';
@@ -907,6 +908,30 @@ library GovV3Helpers {
907908
return _buildPayload(vm, ChainIds.INK, action);
908909
}
909910

911+
/**
912+
* Builds a payload to be executed via governance
913+
* @param vm Vm
914+
* @param actions actions array
915+
*/
916+
function buildPlasmaPayload(
917+
Vm vm,
918+
IPayloadsControllerCore.ExecutionAction[] memory actions
919+
) internal returns (PayloadsControllerUtils.Payload memory) {
920+
return _buildPayload(vm, ChainIds.PLASMA, actions);
921+
}
922+
923+
/**
924+
* Builds a payload to be executed via governance
925+
* @param vm Vm
926+
* @param action single action struct
927+
*/
928+
function buildPlasmaPayload(
929+
Vm vm,
930+
IPayloadsControllerCore.ExecutionAction memory action
931+
) internal returns (PayloadsControllerUtils.Payload memory) {
932+
return _buildPayload(vm, ChainIds.PLASMA, action);
933+
}
934+
910935
/**
911936
* @dev creates a proposal with multiple payloads
912937
* @param vm Vm
@@ -1014,6 +1039,8 @@ library GovV3Helpers {
10141039
return GovernanceV3Soneium.PAYLOADS_CONTROLLER;
10151040
} else if (chainId == ChainIds.INK) {
10161041
return GovernanceV3Ink.PAYLOADS_CONTROLLER;
1042+
} else if (chainId == ChainIds.PLASMA) {
1043+
return GovernanceV3Plasma.PAYLOADS_CONTROLLER;
10171044
}
10181045

10191046
revert CannotFindPayloadsController();
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// SPDX-License-Identifier: MIT
2+
pragma solidity ^0.8.0;
3+
4+
import {AaveV3Plasma} from 'aave-address-book/AaveV3Plasma.sol';
5+
import 'aave-v3-origin/contracts/extensions/v3-config-engine/AaveV3Payload.sol';
6+
7+
/**
8+
* @dev Base smart contract for an Aave v3.5.0 listing on v3 Plasma.
9+
* @author BGD Labs
10+
*/
11+
abstract contract AaveV3PayloadPlasma is AaveV3Payload(IEngine(AaveV3Plasma.CONFIG_ENGINE)) {
12+
function getPoolContext() public pure override returns (IEngine.PoolContext memory) {
13+
return IEngine.PoolContext({networkName: 'Plasma', networkAbbreviation: 'Pla'});
14+
}
15+
}

0 commit comments

Comments
 (0)