Skip to content

Commit

Permalink
Orbit Program Renewal (#221)
Browse files Browse the repository at this point in the history
* feat: orbit program

* chore: update readme

* chore: validate result of transfer
  • Loading branch information
Fermin 'Piscu' Carranza authored Feb 23, 2024
1 parent 4c5418c commit 4c487a2
Show file tree
Hide file tree
Showing 6 changed files with 328 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import {IERC20} from 'solidity-utils/contracts/oz-common/interfaces/IERC20.sol';
import {AaveV3Ethereum, AaveV3EthereumAssets} from 'aave-address-book/AaveV3Ethereum.sol';

import {OrbitProgramData} from './OrbitProgramData.sol';

import {IProposalGenericExecutor} from 'aave-helpers/interfaces/IProposalGenericExecutor.sol';

/// Helper interface to withdraw ETH
interface IWETH {
function withdraw(uint256) external;
}

/**
* @title Orbit Program
* @author karpatkey_TokenLogic_ACI
* - Snapshot: https://snapshot.org/#/aave.eth/proposal/0x412b38c7a0cf1840b102e28ea7ef0373e3ab4b9544873e8cc1544972b777d9a1
* - Discussion: https://governance.aave.com/t/arfc-orbit-program-renewal/16550
*/
contract AaveV3Ethereum_OrbitProgram_20240220 is IProposalGenericExecutor {
error EthTransferFailed(address account);

function execute() external {
AaveV3Ethereum.COLLECTOR.transfer(
AaveV3EthereumAssets.WETH_UNDERLYING,
address(this),
OrbitProgramData.TOTAL_WETH_REBATE
);

IWETH(AaveV3EthereumAssets.WETH_UNDERLYING).withdraw(OrbitProgramData.TOTAL_WETH_REBATE);

OrbitProgramData.GasUsage[] memory usage = OrbitProgramData.getGasUsageData();
uint256 usageLength = usage.length;
for (uint256 i = 0; i < usageLength; i++) {
(bool ok, ) = usage[i].account.call{value: usage[i].usage}('');
if (!ok) revert EthTransferFailed(usage[i].account);
}

uint256 actualStreamAmount = (OrbitProgramData.STREAM_AMOUNT /
OrbitProgramData.STREAM_DURATION) * OrbitProgramData.STREAM_DURATION;

address[] memory orbitAddresses = OrbitProgramData.getOrbitAddresses();
uint256 orbitAddressesLength = orbitAddresses.length;
for (uint256 i = 0; i < orbitAddressesLength; i++) {
AaveV3Ethereum.COLLECTOR.transfer(
AaveV3EthereumAssets.GHO_UNDERLYING,
orbitAddresses[i],
OrbitProgramData.RETRO_PAYMENT
);

AaveV3Ethereum.COLLECTOR.createStream(
orbitAddresses[i],
actualStreamAmount,
AaveV3EthereumAssets.GHO_UNDERLYING,
block.timestamp,
block.timestamp + OrbitProgramData.STREAM_DURATION
);
}
}

receive() external payable {}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
// 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} from 'aave-helpers/ProtocolV3TestBase.sol';

import {AaveV3Ethereum_OrbitProgram_20240220} from './AaveV3Ethereum_OrbitProgram_20240220.sol';
import {OrbitProgramData} from './OrbitProgramData.sol';

/**
* @dev Test for AaveV3Ethereum_OrbitProgram_20240220
* command: make test-contract filter=AaveV3Ethereum_OrbitProgram_20240220
*/
contract AaveV3Ethereum_OrbitProgram_20240220_Test is ProtocolV3TestBase {
uint256 public constant TOTAL_GHO_WITHDRAWN = 20_000 ether;

AaveV3Ethereum_OrbitProgram_20240220 internal proposal;

function setUp() public {
vm.createSelectFork(vm.rpcUrl('mainnet'), 19215132);
proposal = new AaveV3Ethereum_OrbitProgram_20240220();
}

/**
* @dev executes the generic test suite including e2e and config snapshots
*/
function test_defaultProposalExecution() public {
uint256 collectorGhoBalanceBefore = IERC20(AaveV3EthereumAssets.GHO_UNDERLYING).balanceOf(
address(AaveV3Ethereum.COLLECTOR)
);
uint256 collectorWethBalanceBefore = IERC20(AaveV3EthereumAssets.WETH_UNDERLYING).balanceOf(
address(AaveV3Ethereum.COLLECTOR)
);

uint256[] memory ethBalancesBeforeUsers = new uint256[](7);
OrbitProgramData.GasUsage[] memory usage = OrbitProgramData.getGasUsageData();
for (uint256 i = 0; i < usage.length; i++) {
ethBalancesBeforeUsers[i] = usage[i].account.balance;
}

uint256[] memory ghoBalancesBeforeUsers = new uint256[](4);
address[] memory ghoPaymentAddresses = OrbitProgramData.getOrbitAddresses();
for (uint256 i = 0; i < ghoPaymentAddresses.length; i++) {
ghoBalancesBeforeUsers[i] = IERC20(AaveV3EthereumAssets.GHO_UNDERLYING).balanceOf(
ghoPaymentAddresses[i]
);
}

uint256 nextStreamId = AaveV3Ethereum.COLLECTOR.getNextStreamId();
vm.expectRevert();
AaveV3Ethereum.COLLECTOR.getStream(nextStreamId);

executePayload(vm, address(proposal));

assertEq(
IERC20(AaveV3EthereumAssets.GHO_UNDERLYING).balanceOf(address(AaveV3Ethereum.COLLECTOR)),
collectorGhoBalanceBefore - TOTAL_GHO_WITHDRAWN,
'GHO balance of Collector is not equal to previous minus to withdraw'
);
assertEq(
IERC20(AaveV3EthereumAssets.WETH_UNDERLYING).balanceOf(address(AaveV3Ethereum.COLLECTOR)),
collectorWethBalanceBefore - OrbitProgramData.TOTAL_WETH_REBATE,
'WETH balance of Collector is not equal to previous minus to withdraw'
);

for (uint256 i = 0; i < usage.length; i++) {
assertGt(
usage[i].account.balance,
ethBalancesBeforeUsers[i],
'REBATE recipient balance is not greater than before'
);
}

vm.warp(block.timestamp + 7 days);

/// Their GHO balance has increased and call also withdraw from stream as it now exists
for (uint256 i = 0; i < ghoPaymentAddresses.length; i++) {
assertEq(
IERC20(AaveV3EthereumAssets.GHO_UNDERLYING).balanceOf(ghoPaymentAddresses[i]),
ghoBalancesBeforeUsers[i] + OrbitProgramData.RETRO_PAYMENT,
'GHO balance of Orbit recipient is not greater than before'
);

vm.prank(ghoPaymentAddresses[i]);
AaveV3Ethereum.COLLECTOR.withdrawFromStream(nextStreamId + i, 1);
assertEq(
IERC20(AaveV3EthereumAssets.GHO_UNDERLYING).balanceOf(ghoPaymentAddresses[i]),
ghoBalancesBeforeUsers[i] + OrbitProgramData.RETRO_PAYMENT + 1
);
}
}
}
56 changes: 56 additions & 0 deletions src/20240220_AaveV3Ethereum_OrbitProgram/OrbitProgram.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
title: "Orbit Program"
author: "karpatkey_TokenLogic_ACI"
discussions: "https://governance.aave.com/t/arfc-orbit-program-renewal/16550"
snapshot: "https://snapshot.org/#/aave.eth/proposal/0x412b38c7a0cf1840b102e28ea7ef0373e3ab4b9544873e8cc1544972b777d9a1"
---

## Simple Summary

This proposal includes the renewal of the Orbit program for recognized delegates. Compensating them with GHO and ETH reimbursement of Gas costs associated with their governance activity.

## Motivation

The Orbit program Snapshot and discussion can be found [here](https://snapshot.org/#/aave.eth/proposal/0x412b38c7a0cf1840b102e28ea7ef0373e3ab4b9544873e8cc1544972b777d9a1) and [here](https://governance.aave.com/t/arfc-orbit-program-renewal/16550) respectively.
LBS updated their address [here](https://governance.aave.com/t/arfc-orbit-program-renewal/16550/5?u=lbsblockchain).

The following table outlines the proposed compensation for eligible delegates matching the requirements:

| Delegate Platform | Retro-Payment (GHO) | New Stream (GHO) |
| ----------------- | ------------------- | ---------------- |
| EzR3al | 5000 | 15000 |
| Stable Labs | 5000 | 15000 |
| LBS Blockchain | 5000 | 15000 |
| Michigan | 5000 | 15000 |

In terms of gas rebate, we included Gov V2 reimbursement & payload-related activity in the following table:

| Delegate / Service Provider | Gas Used (ETH) |
| --------------------------- | -------------- |
| ACI | 3.365 |
| Tokenlogic | 0.586 |
| Michigan | 0.276 |
| Wintermute | 0.2518 |
| LBS | 0.031 |
| StableLabs | 0.0342 |
| ezr3al | 0.3833 |
| Total | 4.9273 |

Note Michigan has rebranded as Arana as can be seen in the forum [here](https://governance.aave.com/t/arfc-orbit-program-renewal/16550/6).

## Specification

- Create GHO streams for Orbit participants of 15,000 GHO for 90 days as detailed in the table above
- Transfer GHO for Orbit participants of 5,000 as retroactive payment as detailed in the table above
- Transfer ETH to delegates/service providers as detailed in the table above

## References

- Implementation: [AaveV3Ethereum](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240220_AaveV3Ethereum_OrbitProgram/AaveV3Ethereum_OrbitProgram_20240220.sol)
- Tests: [AaveV3Ethereum](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240220_AaveV3Ethereum_OrbitProgram/AaveV3Ethereum_OrbitProgram_20240220.t.sol)
- [Snapshot](https://snapshot.org/#/aave.eth/proposal/0x412b38c7a0cf1840b102e28ea7ef0373e3ab4b9544873e8cc1544972b777d9a1)
- [Discussion](https://governance.aave.com/t/arfc-orbit-program-renewal/16550)

## Copyright

Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).
45 changes: 45 additions & 0 deletions src/20240220_AaveV3Ethereum_OrbitProgram/OrbitProgramData.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

library OrbitProgramData {
struct GasUsage {
address account;
uint256 usage;
}

uint256 public constant STREAM_DURATION = 90 days;
uint256 public constant RETRO_PAYMENT = 5_000 ether;
uint256 public constant STREAM_AMOUNT = 15_000 ether;
uint256 public constant TOTAL_WETH_REBATE = 4.9273 ether;
address public constant EZREAL = 0x8659D0BB123Da6D16D9394C7838BA286c2207d0E;
address public constant STABLE_LABS = 0xECC2a9240268BC7a26386ecB49E1Befca2706AC9;
address public constant LBS = 0x8b37a5Af68D315cf5A64097D96621F64b5502a22;
address public constant MICHIGAN = 0x0579A616689f7ed748dC07692A3F150D44b0CA09;
address public constant ACI = 0x57ab7ee15cE5ECacB1aB84EE42D5A9d0d8112922;
address public constant TOKEN_LOGIC = 0x2cc1ADE245020FC5AAE66Ad443e1F66e01c54Df1;
address public constant WINTERMUTE = 0xB933AEe47C438f22DE0747D57fc239FE37878Dd1;

function getGasUsageData() internal pure returns (GasUsage[] memory) {
GasUsage[] memory usage = new GasUsage[](7);
usage[0] = GasUsage(ACI, 3.365 ether);
usage[1] = GasUsage(TOKEN_LOGIC, 0.586 ether);
usage[2] = GasUsage(MICHIGAN, 0.276 ether);
usage[3] = GasUsage(WINTERMUTE, 0.2518 ether);
usage[4] = GasUsage(LBS, 0.031 ether);
usage[5] = GasUsage(STABLE_LABS, 0.0342 ether);
usage[6] = GasUsage(EZREAL, 0.3833 ether);

return usage;
}

function getOrbitAddresses() internal pure returns (address[] memory) {
address[] memory streamAddresses = new address[](4);
streamAddresses[0] = EZREAL;
streamAddresses[1] = STABLE_LABS;
streamAddresses[2] = MICHIGAN;
streamAddresses[3] = LBS;

return streamAddresses;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
// 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_OrbitProgram_20240220} from './AaveV3Ethereum_OrbitProgram_20240220.sol';

/**
* @dev Deploy Ethereum
* deploy-command: make deploy-ledger contract=src/20240220_AaveV3Ethereum_OrbitProgram/OrbitProgram_20240220.s.sol:DeployEthereum chain=mainnet
* verify-command: npx catapulta-verify -b broadcast/OrbitProgram_20240220.s.sol/1/run-latest.json
*/
contract DeployEthereum is EthereumScript {
function run() external broadcast {
// deploy payloads
address payload0 = GovV3Helpers.deployDeterministic(
type(AaveV3Ethereum_OrbitProgram_20240220).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/20240220_AaveV3Ethereum_OrbitProgram/OrbitProgram_20240220.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_OrbitProgram_20240220).creationCode
);
payloads[0] = GovV3Helpers.buildMainnetPayload(vm, actionsEthereum);

// create proposal
vm.startBroadcast();
GovV3Helpers.createProposal(
vm,
payloads,
GovV3Helpers.ipfsHashFile(vm, 'src/20240220_AaveV3Ethereum_OrbitProgram/OrbitProgram.md')
);
}
}
14 changes: 14 additions & 0 deletions src/20240220_AaveV3Ethereum_OrbitProgram/config.ts
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: 'Orbit Program',
shortName: 'OrbitProgram',
date: '20240220',
author: 'karpatkey_TokenLogic_ACI',
discussion: 'https://governance.aave.com/t/arfc-orbit-program-renewal/16550',
snapshot:
'https://snapshot.org/#/aave.eth/proposal/0x412b38c7a0cf1840b102e28ea7ef0373e3ab4b9544873e8cc1544972b777d9a1',
},
poolOptions: {AaveV3Ethereum: {configs: {OTHERS: {}}, cache: {blockNumber: 19273121}}},
};

1 comment on commit 4c487a2

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Foundry report

forge 0.2.0 (6d5de51 2024-02-23T00:16:24.636755726Z)
Build log
Compiling 312 files with 0.8.19
Solc 0.8.19 finished in 147.20s
Compiler run successful with warnings:
Warning (9302): Return value of low-level calls not used.
  --> src/20231229_Multi_TreasuryManagementGSMFundingRWAStrategyPreparationsPart1/AaveV2Ethereum_TreasuryManagementGSMFundingRWAStrategyPreparationsPart1_20231229.sol:47:5:
   |
47 |     SAFE.call{value: address(this).balance}('');
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Warning (5667): Unused function parameter. Remove or comment out the variable name to silence this warning.
   --> lib/aave-helpers/src/GovV3Helpers.sol:847:5:
    |
847 |     address votingPortal
    |     ^^^^^^^^^^^^^^^^^^^^

Warning (2018): Function state mutability can be restricted to pure
  --> src/20240104_Multi_Patch/Patch_20240104.s.sol:32:3:
   |
32 |   function _getPayload() internal override returns (bytes memory) {
   |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to pure
  --> src/20240104_Multi_Patch/Patch_20240104.s.sol:43:3:
   |
43 |   function _getPayload() internal override returns (bytes memory) {
   |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to pure
  --> src/20240104_Multi_Patch/Patch_20240104.s.sol:54:3:
   |
54 |   function _getPayload() internal override returns (bytes memory) {
   |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to pure
  --> src/20240104_Multi_Patch/Patch_20240104.s.sol:65:3:
   |
65 |   function _getPayload() internal override returns (bytes memory) {
   |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to pure
  --> src/20240104_Multi_Patch/Patch_20240104.s.sol:76:3:
   |
76 |   function _getPayload() internal override returns (bytes memory) {
   |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to pure
  --> src/20240104_Multi_Patch/Patch_20240104.s.sol:87:3:
   |
87 |   function _getPayload() internal override returns (bytes memory) {
   |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to pure
  --> src/20240104_Multi_Patch/Patch_20240104.s.sol:98:3:
   |
98 |   function _getPayload() internal override returns (bytes memory) {
   |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to pure
   --> src/20240115_AaveV1Ethereum_AaveV1Deprecation/AaveV1Ethereum_AaveV1Deprecation_20240115.t.sol:217:3:
    |
217 |   function _getUsers() internal returns (V1User[] memory) {
    |   ^ (Relevant source part starts here and spans across multiple lines).

| Contract                                                                                                 | Size (kB) | Margin (kB) |
|----------------------------------------------------------------------------------------------------------|-----------|-------------|
| AaveGovernanceV2                                                                                         | 0.086     | 24.49       |
| AaveSafetyModule                                                                                         | 0.086     | 24.49       |
| AaveSwapper                                                                                              | 5.613     | 18.963      |
| AaveV1Ethereum_AaveV1Deprecation_20240115                                                                | 1.272     | 23.304      |
| AaveV2Avalanche                                                                                          | 0.086     | 24.49       |
| AaveV2AvalancheAssets                                                                                    | 0.086     | 24.49       |
| AaveV2Avalanche_ChaosLabsRiskParameterUpdatesWBTCEOnV2AndV3Avalanche_20231221                            | 0.377     | 24.199      |
| AaveV2Avalanche_StablecoinIRCurvesUpdates_20231221                                                       | 1.899     | 22.677      |
| AaveV2Ethereum                                                                                           | 0.086     | 24.49       |
| AaveV2EthereumAMM                                                                                        | 0.086     | 24.49       |
| AaveV2EthereumAMMAssets                                                                                  | 0.086     | 24.49       |
| AaveV2EthereumAMM_ARFCDeprecateAaveV2AMMMarketStep2_20240205                                             | 2.935     | 21.641      |
| AaveV2EthereumAssets                                                                                     | 0.086     | 24.49       |
| AaveV2Ethereum_AMPLInterestRateUpdatesOnV2Ethereum_20240121                                              | 1.643     | 22.933      |
| AaveV2Ethereum_ChaosLabsV2EthereumLTReductions_20240201                                                  | 0.967     | 23.609      |
| AaveV2Ethereum_MigrationOfRemainingGovV2Permissions_20240130                                             | 1.018     | 23.558      |
| AaveV2Ethereum_MigrationOfRemainingGovV2Permissions_Part2_20240130                                       | 1.487     | 23.089      |
| AaveV2Ethereum_StablecoinIRCurvesUpdates_20231221                                                        | 2.88      | 21.696      |
| AaveV2Ethereum_TreasuryManagementGSMFundingRWAStrategyPreparationsPart1_20231229                         | 3.456     | 21.12       |
| AaveV2Ethereum_V2DeprecationPlan20240102_20240103                                                        | 0.968     | 23.608      |
| AaveV2Polygon                                                                                            | 0.086     | 24.49       |
| AaveV2PolygonAssets                                                                                      | 0.086     | 24.49       |
| AaveV2Polygon_ReserveFactorUpdatesFebruary152024_20240208                                                | 0.872     | 23.704      |
| AaveV2Polygon_ReserveFactorUpdatesJan152024_20240108                                                     | 1.175     | 23.401      |
| AaveV2Polygon_ReserveFactorUpdatesJan312024_20240125                                                     | 0.872     | 23.704      |
| AaveV2Polygon_ReserveFactorUpdates_20240102                                                              | 1.036     | 23.54       |
| AaveV2Polygon_StablecoinIRCurvesUpdates_20231221                                                         | 1.899     | 22.677      |
| AaveV3Arbitrum                                                                                           | 0.086     | 24.49       |
| AaveV3ArbitrumAssets                                                                                     | 0.086     | 24.49       |
| AaveV3ArbitrumEModes                                                                                     | 0.086     | 24.49       |
| AaveV3Arbitrum_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115                                       | 3.403     | 21.173      |
| AaveV3Arbitrum_Patch_20240104                                                                            | 0.52      | 24.056      |
| AaveV3Arbitrum_StablecoinIRCurvesUpdates_20231221                                                        | 4.919     | 19.657      |
| AaveV3Arbitrum_UpdateStETHAndWETHRiskParamsOnAaveV3EthereumOptimismAndArbitrum_20240121                  | 3.933     | 20.643      |
| AaveV3Avalanche                                                                                          | 0.086     | 24.49       |
| AaveV3AvalancheAssets                                                                                    | 0.086     | 24.49       |
| AaveV3AvalancheEModes                                                                                    | 0.086     | 24.49       |
| AaveV3Avalanche_ChaosLabsRiskParameterUpdatesWBTCEOnV2AndV3Avalanche_20231221                            | 3.554     | 21.022      |
| AaveV3Avalanche_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115                                      | 3.418     | 21.158      |
| AaveV3Avalanche_Patch_20240104                                                                           | 0.52      | 24.056      |
| AaveV3Avalanche_StablecoinIRCurvesUpdates_20231221                                                       | 4.669     | 19.907      |
| AaveV3BNB                                                                                                | 0.086     | 24.49       |
| AaveV3BNBAssets                                                                                          | 0.086     | 24.49       |
| AaveV3BNBEModes                                                                                          | 0.086     | 24.49       |
| AaveV3BNB_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115                                            | 3.421     | 21.155      |
| AaveV3BNB_OnboardFdUSDToAaveV3OnBSC_20240201                                                             | 5.055     | 19.521      |
| AaveV3BNB_SetAaveChanInitiativeAsEmissionManagerForFdUSDOnBNBChainAaveV3_20240208                        | 0.253     | 24.323      |
| AaveV3Base                                                                                               | 0.086     | 24.49       |
| AaveV3BaseAssets                                                                                         | 0.086     | 24.49       |
| AaveV3BaseEModes                                                                                         | 0.086     | 24.49       |
| AaveV3Base_Patch_20240104                                                                                | 0.52      | 24.056      |
| AaveV3Base_StablecoinIRCurvesUpdates_20231221                                                            | 3.659     | 20.917      |
| AaveV3Ethereum                                                                                           | 0.086     | 24.49       |
| AaveV3EthereumAssets                                                                                     | 0.086     | 24.49       |
| AaveV3EthereumEModes                                                                                     | 0.086     | 24.49       |
| AaveV3Ethereum_AddPYUSDToAaveV3EthereumMarket_20240125                                                   | 5.034     | 19.542      |
| AaveV3Ethereum_ChaosLabsRiskParameterUpdatesIncreaseDebtCeilingForSNXAndMKROnV3Ethereum01312024_20240211 | 3.574     | 21.002      |
| AaveV3Ethereum_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115                                       | 3.417     | 21.159      |
| AaveV3Ethereum_OrbitProgram_20240220                                                                     | 2.349     | 22.227      |
| AaveV3Ethereum_Patch_20240104                                                                            | 0.52      | 24.056      |
| AaveV3Ethereum_RegisterADIScrollAdapter_20240122                                                         | 0.671     | 23.905      |
| AaveV3Ethereum_RequestForBountyPayoutJanuary2024_20240125                                                | 0.822     | 23.754      |
| AaveV3Ethereum_RetroactiveBugBountyPreImmunefi_20240205                                                  | 0.823     | 23.753      |
| AaveV3Ethereum_SecurityBudgetRequestDecember2023_20240206                                                | 0.555     | 24.021      |
| AaveV3Ethereum_StablecoinIRCurvesUpdates_20231221                                                        | 4.668     | 19.908      |
| AaveV3Ethereum_StkGHOActivation_20240119                                                                 | 1.156     | 23.42       |
| AaveV3Ethereum_TreasuryManagementGSMFundingRWAStrategyPreparationsPart2_20240209                         | 3.139     | 21.437      |
| AaveV3Ethereum_UpdateStETHAndWETHRiskParamsOnAaveV3EthereumOptimismAndArbitrum_20240121                  | 3.946     | 20.63       |
| AaveV3Fantom                                                                                             | 0.086     | 24.49       |
| AaveV3FantomAssets                                                                                       | 0.086     | 24.49       |
| AaveV3FantomEModes                                                                                       | 0.086     | 24.49       |
| AaveV3GenericPatch_20240104                                                                              | 0.52      | 24.056      |
| AaveV3Gnosis                                                                                             | 0.086     | 24.49       |
| AaveV3GnosisAssets                                                                                       | 0.086     | 24.49       |
| AaveV3GnosisEModes                                                                                       | 0.086     | 24.49       |
| AaveV3Gnosis_Patch_20240104                                                                              | 0.52      | 24.056      |
| AaveV3Gnosis_StablecoinIRCurvesUpdates_20231221                                                          | 3.911     | 20.665      |
| AaveV3Harmony                                                                                            | 0.086     | 24.49       |
| AaveV3HarmonyAssets                                                                                      | 0.086     | 24.49       |
| AaveV3HarmonyEModes                                                                                      | 0.086     | 24.49       |
| AaveV3Metis                                                                                              | 0.086     | 24.49       |
| AaveV3MetisAssets                                                                                        | 0.086     | 24.49       |
| AaveV3MetisEModes                                                                                        | 0.086     | 24.49       |
| AaveV3Metis_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115                                          | 3.411     | 21.165      |
| AaveV3Metis_StablecoinIRCurvesUpdates_20231221                                                           | 3.91      | 20.666      |
| AaveV3Optimism                                                                                           | 0.086     | 24.49       |
| AaveV3OptimismAssets                                                                                     | 0.086     | 24.49       |
| AaveV3OptimismEModes                                                                                     | 0.086     | 24.49       |
| AaveV3Optimism_GauntletRecommendationForMAIMIMATICDeprecationPhase2_20240122                             | 3.416     | 21.16       |
| AaveV3Optimism_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115                                       | 3.403     | 21.173      |
| AaveV3Optimism_Patch_20240104                                                                            | 0.52      | 24.056      |
| AaveV3Optimism_StablecoinIRCurvesUpdates_20231221                                                        | 4.919     | 19.657      |
| AaveV3Optimism_UpdateStETHAndWETHRiskParamsOnAaveV3EthereumOptimismAndArbitrum_20240121                  | 3.933     | 20.643      |
| AaveV3Polygon                                                                                            | 0.086     | 24.49       |
| AaveV3PolygonAssets                                                                                      | 0.086     | 24.49       |
| AaveV3PolygonEModes                                                                                      | 0.086     | 24.49       |
| AaveV3Polygon_FreezeAndSetLTVTo0ForDPIBALCRVAndSUSHIOnAaveV3Polygon20240119_20240130                     | 4.396     | 20.18       |
| AaveV3Polygon_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115                                        | 3.402     | 21.174      |
| AaveV3Polygon_MaticXSupplyCapIncreaseInPolygonV3_20240206                                                | 3.335     | 21.241      |
| AaveV3Polygon_Patch_20240104                                                                             | 0.52      | 24.056      |
| AaveV3Polygon_StablecoinIRCurvesUpdates_20231221                                                         | 4.416     | 20.16       |
| AaveV3Polygon_TreasuryManagementGSMFundingRWAStrategyPreparationsPart1_20231229                          | 3.459     | 21.117      |
| AaveV3Scroll                                                                                             | 0.086     | 24.49       |
| AaveV3ScrollAssets                                                                                       | 0.086     | 24.49       |
| AaveV3ScrollEModes                                                                                       | 0.086     | 24.49       |
| AaveV3Scroll_AaveV3ScrollActivation_20240122                                                             | 6.641     | 17.935      |
| Address                                                                                                  | 0.086     | 24.49       |
| ChainHelpers                                                                                             | 0.086     | 24.49       |
| ChainIds                                                                                                 | 0.086     | 24.49       |
| ConfiguratorInputTypes                                                                                   | 0.086     | 24.49       |
| Create2Utils                                                                                             | 0.164     | 24.412      |
| DataTypes                                                                                                | 0.086     | 24.49       |
| EngineFlags                                                                                              | 0.086     | 24.49       |
| EnumerableSet                                                                                            | 0.086     | 24.49       |
| EnvelopeUtils                                                                                            | 0.086     | 24.49       |
| Errors                                                                                                   | 4.714     | 19.862      |
| Gho_GHOStabilityModule_20240119                                                                          | 4.535     | 20.041      |
| GovHelpers                                                                                               | 0.086     | 24.49       |
| GovV3Helpers                                                                                             | 2.622     | 21.954      |
| GovV3StorageHelpers                                                                                      | 0.086     | 24.49       |
| GovernanceV3Arbitrum                                                                                     | 0.086     | 24.49       |
| GovernanceV3Avalanche                                                                                    | 0.086     | 24.49       |
| GovernanceV3BNB                                                                                          | 0.086     | 24.49       |
| GovernanceV3Base                                                                                         | 0.086     | 24.49       |
| GovernanceV3Ethereum                                                                                     | 0.086     | 24.49       |
| GovernanceV3Gnosis                                                                                       | 0.086     | 24.49       |
| GovernanceV3Metis                                                                                        | 0.086     | 24.49       |
| GovernanceV3Optimism                                                                                     | 0.086     | 24.49       |
| GovernanceV3Polygon                                                                                      | 0.086     | 24.49       |
| GovernanceV3PolygonZkEvm                                                                                 | 0.086     | 24.49       |
| GovernanceV3Scroll                                                                                       | 0.086     | 24.49       |
| IpfsUtils                                                                                                | 0.086     | 24.49       |
| MainnetPayload                                                                                           | 2.624     | 21.952      |
| MiscEthereum                                                                                             | 0.086     | 24.49       |
| MiscPolygon                                                                                              | 0.086     | 24.49       |
| MiscScroll                                                                                               | 0.086     | 24.49       |
| MockERC20                                                                                                | 3.701     | 20.875      |
| MockERC721                                                                                               | 3.962     | 20.614      |
| MockExecutor                                                                                             | 0.437     | 24.139      |
| OrbitProgramData                                                                                         | 0.529     | 24.047      |
| ParaswapClaim                                                                                            | 0.063     | 24.513      |
| ParaswapClaimer                                                                                          | 0.2       | 24.376      |
| PayloadsControllerUtils                                                                                  | 0.086     | 24.49       |
| PayloadsToDeploy                                                                                         | 0.086     | 24.49       |
| PolygonPayload                                                                                           | 1.634     | 22.942      |
| PoolAddresses                                                                                            | 0.357     | 24.219      |
| ProxyHelpers                                                                                             | 0.086     | 24.49       |
| ReserveConfiguration                                                                                     | 0.171     | 24.405      |
| RewardsDataTypes                                                                                         | 0.086     | 24.49       |
| SafeERC20                                                                                                | 0.086     | 24.49       |
| StdStyle                                                                                                 | 0.086     | 24.49       |
| StorageHelpers                                                                                           | 0.086     | 24.49       |
| TransactionUtils                                                                                         | 0.086     | 24.49       |
| WadRayMath                                                                                               | 0.086     | 24.49       |
| console                                                                                                  | 0.086     | 24.49       |
| console2                                                                                                 | 0.086     | 24.49       |
| safeconsole                                                                                              | 0.086     | 24.49       |
| stdError                                                                                                 | 0.591     | 23.985      |
| stdJson                                                                                                  | 0.086     | 24.49       |
| stdMath                                                                                                  | 0.086     | 24.49       |
| stdStorage                                                                                               | 0.086     | 24.49       |
| stdStorageSafe                                                                                           | 0.086     | 24.49       |
Test success 🌈
No files changed, compilation skipped

Ran 1 test for src/20240220_AaveV3Ethereum_OrbitProgram/AaveV3Ethereum_OrbitProgram_20240220.t.sol:AaveV3Ethereum_OrbitProgram_20240220_Test
[PASS] test_defaultProposalExecution() (gas: 1152866)
Test result: ok. 1 passed; 0 failed; 0 skipped; finished in 742.80ms

Ran 1 test suite in 742.80ms: 1 tests passed, 0 failed, 0 skipped (1 total tests)

Please sign in to comment.