Skip to content

Commit

Permalink
StkGHO Initialization proposal (#170)
Browse files Browse the repository at this point in the history
* Add proposal for Gho Incident Report 20231113 (#1)

* chore: add payload and deploy script for update of GHO variable debt token

* forge install: gho-core

* chore: add gho-core to dependency

* test: Add tests for update of gho variable token

* test: Add tests for update of gho variable token

* fix: add modifier in method of interface

* fix: remove gho dependency from repo and fix test

* fix: Remove unnecesary dependency

* fix: Add latest details

---------

Co-authored-by: miguelmtzinf <[email protected]>

* fix: Make new impl constant (#3)

* fix: Amend AIP text (#4)

* fix: Make new impl constant

* fix: Fix AIP text

* test: Tweak default tests with borrow cap update (#5)

* fix: lint issue (#6)

* test: Add diffs from test running (#7)

* fix: Add payload address (#8)

* fix: Fix payload address in script (#9)

* fix: Remove unneeded diff file (#10)

* feat: added stkgho initialization proposal

* feat: fixed proposal description

* feat: removed submodule

* feat: fixed deployment script

* feat: replaced duration calculation

* git commit remove submodule

* feat: fixed payload build function

* update proposal

* sync branch

* fix: variable name

* fix: Fix AIP payload

* fix: Fix tests

* test: added further test on emission per day

* refactor: removed unused constants

* fix: catapulta commands

* fix: Add fixes to payload

* fix: Rebuild proposal with autogenerate tool

---------

Co-authored-by: Parth Patel <[email protected]>
Co-authored-by: miguelmtzinf <[email protected]>
Co-authored-by: miguelmtz <[email protected]>
Co-authored-by: Mark Hinschberger <[email protected]>
  • Loading branch information
5 people authored Jan 20, 2024
1 parent 95d84cd commit 1982811
Show file tree
Hide file tree
Showing 10 changed files with 448 additions and 7 deletions.
2 changes: 1 addition & 1 deletion lib/aave-helpers
Submodule aave-helpers updated 30 files
+1 −0 .assets/005b16eaa54199269ae451836387895a28c5d76e.svg
+1 −0 .assets/08d9252b4f8f8c9e59638a9a35a34e736f126166.svg
+0 −1 .assets/3bff92d2cfac98105fbeed24302d9d3577cb1325.svg
+1 −0 .assets/463b4c710a9b305cac1e136801dfbb5d2264a078.svg
+1 −0 .assets/5f02ea67e5ba53eee2797379ac1cd619db8b194e.svg
+0 −1 .assets/66aa72f6fe3716b9b6a43abb25a455671672849e.svg
+0 −1 .assets/6f34858c4ab5446d26b260c353dc36aa73d94358.svg
+1 −0 .assets/8062d95ddc9e1bec6e4a6b53fca46e335385d902.svg
+0 −1 .assets/9ed0ac5bda0d6aea5b627325dd757aab5a706122.svg
+1 −0 .assets/a9946a5d9adc46c59f833ceafb1d7a117d8d5e26.svg
+1 −0 .assets/cf503516adca0ef2b3e859f702e54d27d132edf2.svg
+0 −1 .assets/d89ecf5f1ccbeb07b104da02d99f5a5862da4efa.svg
+1 −0 .assets/ee0b6581b78f686087dd5f50440a7a76f4dd607d.svg
+1 −0 .assets/f75716c7eaa3c871931fca294b19538f6ade058c.svg
+4 −4 diffs/preTestEngineOptV3_postTestEngineOptV3.md
+4 −4 diffs/preTestEngineRates_postTestEngineRates.md
+1 −1 lib/forge-std
+176 −96 reports/default_after.json
+1,308 −1 reports/default_before.json
+79 −79 reports/postTestEngineOptV3.json
+76 −76 reports/postTestEngineRates.json
+76 −76 reports/preTestEngineOptV3.json
+76 −76 reports/preTestEngineRates.json
+1,508 −1 reports/preTestV2RatesUpdates.json
+0 −82 tests/GovTest.t.sol
+0 −71 tests/GovV2_5.t.sol
+2 −2 tests/GovV3Test.t.sol
+6 −5 tests/swaps/DepositV3SwapPayloadTest.t.sol
+1 −1 tests/v3-config-engine/AaveV3ConfigEngineTest.t.sol
+2 −2 tests/v3-config-engine/V3RateStrategyFactory.t.sol
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
"vitest": "^1.0.4"
},
"dependencies": {
"@bgd-labs/aave-address-book": "^2.14.0",
"@bgd-labs/aave-address-book": "^2.17.0",
"@bgd-labs/aave-cli": "0.2.1",
"@inquirer/prompts": "^3.3.0",
"@inquirer/testing": "^2.1.9",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
pragma solidity ^0.8.0;

import 'forge-std/Test.sol';
import {AaveV3EthereumAssets, AaveV3Ethereum} from 'aave-address-book/AaveV3Ethereum.sol';
import {AaveV3Ethereum, AaveV3EthereumAssets} from 'aave-address-book/AaveV3Ethereum.sol';
import {ProtocolV3TestBase} from 'aave-helpers/ProtocolV3TestBase.sol';
import {IPoolConfigurator} from 'aave-address-book/AaveV3.sol';
import {AaveV3Ethereum_GhoIncidentReport_20231113} from './AaveV3Ethereum_GhoIncidentReport_20231113.sol';
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import {IProposalGenericExecutor} from 'aave-helpers/interfaces/IProposalGenericExecutor.sol';
import {MiscEthereum} from 'aave-address-book/MiscEthereum.sol';
import {AaveV3Ethereum, AaveV3EthereumAssets} from 'aave-address-book/AaveV3Ethereum.sol';
import {AaveSafetyModule} from 'aave-address-book/AaveSafetyModule.sol';
import {IStakeToken} from './IStakeToken.sol';

/**
* @title StkGHO Activation
* @author Aave Labs & ACI
* - Snapshot: https://snapshot.org/#/aave.eth/proposal/0x4bc99a842adab6cdd8c7d5c7a787ee4c0056be554fde0d008d53b45b3e795065
* - Discussion: https://governance.aave.com/t/arfc-upgrade-safety-module-with-stkgho/15635
*/
contract AaveV3Ethereum_StkGHOActivation_20240119 is IProposalGenericExecutor {
uint128 public constant AAVE_EMISSION_PER_SECOND = uint128(50e18) / 1 days; // 50 AAVE per day
uint256 public constant DISTRIBUTION_DURATION = 90 days; // 3 months

function execute() external {
// Configure distribution
IStakeToken(AaveSafetyModule.STK_GHO).setDistributionEnd(
block.timestamp + DISTRIBUTION_DURATION
);
IStakeToken.AssetConfigInput[] memory enableConfigs = new IStakeToken.AssetConfigInput[](1);
enableConfigs[0] = IStakeToken.AssetConfigInput({
emissionPerSecond: AAVE_EMISSION_PER_SECOND,
totalStaked: 0, // it's overwritten internally
underlyingAsset: AaveSafetyModule.STK_GHO
});
IStakeToken(AaveSafetyModule.STK_GHO).configureAssets(enableConfigs);

// Allowance to pull funds from Ecosystem Reserve
MiscEthereum.AAVE_ECOSYSTEM_RESERVE_CONTROLLER.approve(
MiscEthereum.ECOSYSTEM_RESERVE,
AaveV3EthereumAssets.AAVE_UNDERLYING,
AaveSafetyModule.STK_GHO,
AAVE_EMISSION_PER_SECOND * DISTRIBUTION_DURATION
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import {AaveV3Ethereum, AaveV3EthereumAssets} from 'aave-address-book/AaveV3Ethereum.sol';

import 'forge-std/Test.sol';
import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/ProtocolV3TestBase.sol';
import {MiscEthereum} from 'aave-address-book/MiscEthereum.sol';
import {AaveSafetyModule} from 'aave-address-book/AaveSafetyModule.sol';
import {IERC20} from 'solidity-utils/contracts/oz-common/interfaces/IERC20.sol';
import {IStakeToken} from './IStakeToken.sol';
import {AaveV3Ethereum_StkGHOActivation_20240119} from './AaveV3Ethereum_StkGHOActivation_20240119.sol';

/**
* @dev Test for AaveV3Ethereum_StkGHOActivation_20240119
* command: make test-contract filter=AaveV3Ethereum_StkGHOActivation_20240119
*/
contract AaveV3Ethereum_StkGHOActivation_20240119_Test is ProtocolV3TestBase {
AaveV3Ethereum_StkGHOActivation_20240119 internal proposal;

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

/**
* @dev executes the generic test suite including e2e and config snapshots
*/
function test_defaultProposalExecution() public {
defaultTest('AaveV3Ethereum_StkGHOActivation_20240119', AaveV3Ethereum.POOL, address(proposal));
}

function test_checkConfig() public {
(uint128 emissionPerSecondBefore, , ) = IStakeToken(AaveSafetyModule.STK_GHO).assets(
AaveV3EthereumAssets.GHO_UNDERLYING
);

executePayload(vm, address(proposal));

(
uint128 emissionPerSecondAfter,
uint128 lastUpdateTimestampAfter, // uint256 indexAfter

) = IStakeToken(AaveSafetyModule.STK_GHO).assets(AaveSafetyModule.STK_GHO);

// NOTE index is still 0
assertEq(emissionPerSecondBefore + emissionPerSecondAfter, proposal.AAVE_EMISSION_PER_SECOND());
assertEq(lastUpdateTimestampAfter, block.timestamp);
}

function test_checkAllowance() public {
uint256 allowanceBefore = IERC20(AaveV3EthereumAssets.AAVE_UNDERLYING).allowance(
MiscEthereum.ECOSYSTEM_RESERVE,
AaveSafetyModule.STK_GHO
);

executePayload(vm, address(proposal));

uint256 allowanceAfter = IERC20(AaveV3EthereumAssets.AAVE_UNDERLYING).allowance(
MiscEthereum.ECOSYSTEM_RESERVE,
AaveSafetyModule.STK_GHO
);

assertEq(
allowanceAfter - allowanceBefore,
proposal.AAVE_EMISSION_PER_SECOND() * proposal.DISTRIBUTION_DURATION()
);
}

function test_checkRewards() public {
address prankAddress = 0xF5Fb27b912D987B5b6e02A1B1BE0C1F0740E2c6f;

uint256 confidenceMargin = 1e6; // margin of error due to rounding
uint256 rewardsPerDay = 50e18;

executePayload(vm, address(proposal));

// impersonating address with AAVE balance
vm.startPrank(prankAddress);
IERC20(AaveV3EthereumAssets.GHO_UNDERLYING).approve(AaveSafetyModule.STK_GHO, 1e18);

IStakeToken(AaveSafetyModule.STK_GHO).stake(prankAddress, 1e18);

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

uint256 rewardsBalance = IStakeToken(AaveSafetyModule.STK_GHO).getTotalRewardsBalance(
prankAddress
);

assertTrue(
rewardsBalance >= (rewardsPerDay - confidenceMargin) &&
rewardsBalance <= (rewardsPerDay + confidenceMargin)
);

vm.stopPrank();
}
}
194 changes: 194 additions & 0 deletions src/20240119_AaveV3Ethereum_StkGHOActivation/IStakeToken.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,194 @@
pragma solidity ^0.8.10;

interface IStakeToken {
event Approval(address indexed owner, address indexed spender, uint256 value);
event AssetConfigUpdated(address indexed asset, uint256 emission);
event AssetIndexUpdated(address indexed asset, uint256 index);
event Cooldown(address indexed user, uint256 amount);
event CooldownSecondsChanged(uint256 cooldownSeconds);
event DistributionEndChanged(uint256 endTimestamp);
event EIP712DomainChanged();
event ExchangeRateChanged(uint216 exchangeRate);
event FundsReturned(uint256 amount);
event Initialized(uint64 version);
event MaxSlashablePercentageChanged(uint256 newPercentage);
event PendingAdminChanged(address indexed newPendingAdmin, uint256 role);
event Redeem(address indexed from, address indexed to, uint256 assets, uint256 shares);
event RewardsAccrued(address user, uint256 amount);
event RewardsClaimed(address indexed from, address indexed to, uint256 amount);
event RoleClaimed(address indexed newAdmin, uint256 role);
event Slashed(address indexed destination, uint256 amount);
event SlashingExitWindowDurationChanged(uint256 windowSeconds);
event SlashingSettled();
event Staked(address indexed from, address indexed to, uint256 assets, uint256 shares);
event Transfer(address indexed from, address indexed to, uint256 value);
event UserIndexUpdated(address indexed user, address indexed asset, uint256 index);

struct AssetConfigInput {
uint128 emissionPerSecond;
uint256 totalStaked;
address underlyingAsset;
}

function CLAIM_HELPER_ROLE() external view returns (uint256);

function COOLDOWN_ADMIN_ROLE() external view returns (uint256);

function DOMAIN_SEPARATOR() external view returns (bytes32);

function EMISSION_MANAGER() external view returns (address);

function EXCHANGE_RATE_UNIT() external view returns (uint256);

function INITIAL_EXCHANGE_RATE() external view returns (uint216);

function LOWER_BOUND() external view returns (uint256);

function PRECISION() external view returns (uint8);

function REWARDS_VAULT() external view returns (address);

function REWARD_TOKEN() external view returns (address);

function SLASH_ADMIN_ROLE() external view returns (uint256);

function STAKED_TOKEN() external view returns (address);

function UNSTAKE_WINDOW() external view returns (uint256);

function allowance(address owner, address spender) external view returns (uint256);

function approve(address spender, uint256 value) external returns (bool);

function assets(
address
) external view returns (uint128 emissionPerSecond, uint128 lastUpdateTimestamp, uint256 index);

function balanceOf(address account) external view returns (uint256);

function claimRewards(address to, uint256 amount) external;

function claimRewardsAndRedeem(address to, uint256 claimAmount, uint256 redeemAmount) external;

function claimRewardsAndRedeemOnBehalf(
address from,
address to,
uint256 claimAmount,
uint256 redeemAmount
) external;

function claimRewardsOnBehalf(
address from,
address to,
uint256 amount
) external returns (uint256);

function claimRoleAdmin(uint256 role) external;

function configureAssets(AssetConfigInput[] memory assetsConfigInput) external;

function cooldown() external;

function cooldownOnBehalfOf(address from) external;

function decimals() external view returns (uint8);

function distributionEnd() external view returns (uint256);

function eip712Domain()
external
view
returns (
bytes1 fields,
string memory name,
string memory version,
uint256 chainId,
address verifyingContract,
bytes32 salt,
uint256[] memory extensions
);

function getAdmin(uint256 role) external view returns (address);

function getCooldownSeconds() external view returns (uint256);

function getExchangeRate() external view returns (uint216);

function getMaxSlashablePercentage() external view returns (uint256);

function getPendingAdmin(uint256 role) external view returns (address);

function getTotalRewardsBalance(address staker) external view returns (uint256);

function getUserAssetData(address user, address asset) external view returns (uint256);

function inPostSlashingPeriod() external view returns (bool);

function initialize(
string memory name,
string memory symbol,
address slashingAdmin,
address cooldownPauseAdmin,
address claimHelper,
uint256 maxSlashablePercentage,
uint256 cooldownSeconds
) external;

function name() external view returns (string memory);

function nonces(address owner) external view returns (uint256);

function permit(
address owner,
address spender,
uint256 value,
uint256 deadline,
uint8 v,
bytes32 r,
bytes32 s
) external;

function previewRedeem(uint256 shares) external view returns (uint256);

function previewStake(uint256 assets) external view returns (uint256);

function redeem(address to, uint256 amount) external;

function redeemOnBehalf(address from, address to, uint256 amount) external;

function returnFunds(uint256 amount) external;

function setCooldownSeconds(uint256 cooldownSeconds) external;

function setDistributionEnd(uint256 newDistributionEnd) external;

function setMaxSlashablePercentage(uint256 percentage) external;

function setPendingAdmin(uint256 role, address newPendingAdmin) external;

function settleSlashing() external;

function slash(address destination, uint256 amount) external returns (uint256);

function stake(address to, uint256 amount) external;

function stakeWithPermit(
uint256 amount,
uint256 deadline,
uint8 v,
bytes32 r,
bytes32 s
) external;

function stakerRewardsToClaim(address) external view returns (uint256);

function stakersCooldowns(address) external view returns (uint40 timestamp, uint216 amount);

function symbol() external view returns (string memory);

function totalSupply() external view returns (uint256);

function transfer(address to, uint256 value) external returns (bool);

function transferFrom(address from, address to, uint256 value) external returns (bool);
}
37 changes: 37 additions & 0 deletions src/20240119_AaveV3Ethereum_StkGHOActivation/StkGHOActivation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
---
title: "StkGHO Activation"
author: "Aave Labs & ACI"
discussions: "https://governance.aave.com/t/arfc-upgrade-safety-module-with-stkgho/15635"
---

## Simple Summary

This AIP activates the new GHO based Safety module by initiating the emission schedule approved by the community during the [Snapshot vote](https://snapshot.org/#/aave.eth/proposal/0x4bc99a842adab6cdd8c7d5c7a787ee4c0056be554fde0d008d53b45b3e795065)

## Motivation

The GHO Safety Module will fortify the Aave Protocol’s resilience by adding a stablecoin asset, which is inherently less volatile than AAVE. This strategic move diversifies the Safety Module’s capacity to absorb shocks from various risk vectors in case of shortfall events.

## Specification

The GHO Safety module will be activated with the following parameters:

- Base emission: 50 AAVE/day
- Duration: Three months

## References

- Implementation: [AaveV3Ethereum](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240119_AaveV3Ethereum_StkGHOActivation/AaveV3Ethereum_StkGHOActivation_20240119.sol)
- Tests: [AaveV3Ethereum](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240119_AaveV3Ethereum_StkGHOActivation/AaveV3Ethereum_StkGHOActivation_20240119.t.sol)
- [Snapshot](https://snapshot.org/#/aave.eth/proposal/0x4bc99a842adab6cdd8c7d5c7a787ee4c0056be554fde0d008d53b45b3e795065)
- [Discussion](https://governance.aave.com/t/arfc-upgrade-safety-module-with-stkgho/15635)
- [StkGHO](https://etherscan.io/address/0x1a88Df1cFe15Af22B3c4c783D4e6F7F9e0C1885d)
- [StakeToken Repository](https://github.com/bgd-labs/stake-token)

## Disclaimer

Aave Labs, and ACI receive no compensation beyond Aave protocol for the creation of this proposal. ACI is delegate within the Aave ecosystem.

## Copyright

Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).
Loading

1 comment on commit 1982811

@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 (5240bba 2024-01-20T00:21:44.400145250Z)
Build log
Compiling 430 files with 0.8.19
Solc 0.8.19 finished in 276.89s
Compiler run successful with warnings:
Warning (5667): Unused function parameter. Remove or comment out the variable name to silence this warning.
   --> lib/aave-helpers/src/GovV3Helpers.sol:879:5:
    |
879 |     address votingPortal
    |     ^^^^^^^^^^^^^^^^^^^^

Warning (2072): Unused local variable.
  --> src/20231122_AaveV3Harmony_FreezePriceFeedsOnV3Harmony/FreezePriceFeedsOnV3Harmony_20231122.s.sol:16:5:
   |
16 |     AaveV3Harmony_FreezePriceFeedsOnV3Harmony_20231122 payload0 = new AaveV3Harmony_FreezePriceFeedsOnV3Harmony_20231122(
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Warning (2018): Function state mutability can be restricted to pure
   --> lib/aave-helpers/src/GovV3Helpers.sol:591:3:
    |
591 |   function build2_5Payload(
    |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to pure
  --> src/20231208_Multi_TreasuryManagementPolygonV2ToV3Migration/AaveV2Polygon_TreasuryManagementPolygonV2ToV3Migration_20231208.sol:12:3:
   |
12 |   function getUnderlyingAddresses() internal view returns (address[8] memory) {
   |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to pure
  --> src/20231208_Multi_TreasuryManagementPolygonV2ToV3Migration/AaveV2Polygon_TreasuryManagementPolygonV2ToV3Migration_20231208.sol:25:3:
   |
25 |   function getV2ATokenAddresses() internal view returns (address[8] 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: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).

| Contract                                                                                | Size (kB) | Margin (kB) |
|-----------------------------------------------------------------------------------------|-----------|-------------|
| AaveGovernanceV2                                                                        | 0.086     | 24.49       |
| AaveSafetyModule                                                                        | 0.086     | 24.49       |
| AaveSwapper                                                                             | 5.613     | 18.963      |
| AaveV1Ethereum_FixedREPPriceFeed_20231031                                               | 0.706     | 23.87       |
| AaveV2Avalanche                                                                         | 0.086     | 24.49       |
| AaveV2AvalancheAssets                                                                   | 0.086     | 24.49       |
| AaveV2Avalanche_ChaosLabsRiskParameterUpdatesWBTCEOnV2AndV3Avalanche_20231221           | 0.377     | 24.199      |
| AaveV2Avalanche_IncreaseStablecoinOptimalBorrowRates_20231113                           | 1.899     | 22.677      |
| AaveV2Avalanche_StablecoinIRCurvesUpdates_20231221                                      | 1.899     | 22.677      |
| AaveV2Ethereum                                                                          | 0.086     | 24.49       |
| AaveV2EthereumAMM                                                                       | 0.086     | 24.49       |
| AaveV2EthereumAMMAssets                                                                 | 0.086     | 24.49       |
| AaveV2EthereumAMM_SyncEmergencyAdminOnV2AMM_20231207                                    | 0.227     | 24.349      |
| AaveV2EthereumAssets                                                                    | 0.086     | 24.49       |
| AaveV2Ethereum_AaveV2EthereumLTReduction_20231030                                       | 3.023     | 21.553      |
| AaveV2Ethereum_ChaosLabsRFAndIRUpdatesAaveV2Ethereum_20231203                           | 2.851     | 21.725      |
| AaveV2Ethereum_ChaosLabsV2EthereumAndPolygonLTReductions_20231205                       | 2.641     | 21.935      |
| AaveV2Ethereum_Disable_Stable_Borrows_20231104                                          | 2.519     | 22.057      |
| AaveV2Ethereum_IncreaseStablecoinOptimalBorrowRates_20231113                            | 3.078     | 21.498      |
| AaveV2Ethereum_RedeemCRVFromAaveV2EthereumAndTransferToGLC_20231123                     | 1.322     | 23.254      |
| AaveV2Ethereum_StablecoinIRCurvesUpdates_20231221                                       | 2.88      | 21.696      |
| AaveV2Ethereum_V2DeprecationPlan20231120_20231121                                       | 2.003     | 22.573      |
| AaveV2Ethereum_V2DeprecationPlan20240102_20240103                                       | 0.968     | 23.608      |
| AaveV2Polygon                                                                           | 0.086     | 24.49       |
| AaveV2PolygonAssets                                                                     | 0.086     | 24.49       |
| AaveV2Polygon_AaveFundingUpdates_20231102                                               | 1.627     | 22.949      |
| AaveV2Polygon_ChaosLabsV2EthereumAndPolygonLTReductions_20231205                        | 1.853     | 22.723      |
| AaveV2Polygon_IncreaseStablecoinOptimalBorrowRates_20231113                             | 1.899     | 22.677      |
| AaveV2Polygon_ReserveFactorUpdatesJan152024_20240108                                    | 1.175     | 23.401      |
| AaveV2Polygon_ReserveFactorUpdatesPolygonAaveV2_20231103                                | 1.01      | 23.566      |
| AaveV2Polygon_ReserveFactorUpdatesPolygonAaveV2_20231124                                | 1.01      | 23.566      |
| AaveV2Polygon_ReserveFactorUpdates_20231208                                             | 1.036     | 23.54       |
| AaveV2Polygon_ReserveFactorUpdates_20240102                                             | 1.036     | 23.54       |
| AaveV2Polygon_StablecoinIRCurvesUpdates_20231221                                        | 1.899     | 22.677      |
| AaveV2Polygon_TreasuryManagementPolygonV2ToV3Migration_20231208                         | 3.046     | 21.53       |
| AaveV3Arbitrum                                                                          | 0.086     | 24.49       |
| AaveV3ArbitrumAssets                                                                    | 0.086     | 24.49       |
| AaveV3ArbitrumEModes                                                                    | 0.086     | 24.49       |
| AaveV3Arbitrum_Disable_Stable_Borrows_20231104                                          | 4.14      | 20.436      |
| AaveV3Arbitrum_IncreaseStablecoinOptimalBorrowRates_20231113                            | 5.167     | 19.409      |
| AaveV3Arbitrum_MAIMIMATICDeprecation20231031_20231031                                   | 4.227     | 20.349      |
| AaveV3Arbitrum_OnboardNativeUSDCToAaveV3Markets_20231205                                | 4.554     | 20.022      |
| AaveV3Arbitrum_Patch_20240104                                                           | 0.52      | 24.056      |
| AaveV3Arbitrum_StablecoinIRCurvesUpdates_20231221                                       | 4.919     | 19.657      |
| AaveV3Arbitrum_UpdatePriceOracleSentinel_20231125                                       | 0.291     | 24.285      |
| AaveV3Avalanche                                                                         | 0.086     | 24.49       |
| AaveV3AvalancheAssets                                                                   | 0.086     | 24.49       |
| AaveV3AvalancheEModes                                                                   | 0.086     | 24.49       |
| AaveV3Avalanche_ChaosLabsRiskParameterUpdatesWBTCEOnV2AndV3Avalanche_20231221           | 3.554     | 21.022      |
| AaveV3Avalanche_Disable_Stable_Borrows_20231104                                         | 3.471     | 21.105      |
| AaveV3Avalanche_IncreaseStablecoinOptimalBorrowRates_20231113                           | 4.665     | 19.911      |
| AaveV3Avalanche_MAIMIMATICDeprecation20231031_20231031                                  | 4.364     | 20.212      |
| 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       |
| AaveV3Base                                                                              | 0.086     | 24.49       |
| AaveV3BaseAssets                                                                        | 0.086     | 24.49       |
| AaveV3BaseEModes                                                                        | 0.086     | 24.49       |
| AaveV3Base_IncreaseStablecoinOptimalBorrowRates_20231113                                | 3.667     | 20.909      |
| AaveV3Base_OnboardNativeUSDCToAaveV3Markets_20231205                                    | 5.854     | 18.722      |
| AaveV3Base_OnboardingWstETHToAaveV3OnBaseNetwork_20231127                               | 5.044     | 19.532      |
| AaveV3Base_Patch_20240104                                                               | 0.52      | 24.056      |
| AaveV3Base_StablecoinIRCurvesUpdates_20231221                                           | 3.659     | 20.917      |
| AaveV3Base_UpdatePriceOracleSentinel_20231125                                           | 0.291     | 24.285      |
| AaveV3Bnb_AaveV3BNBActivation_20231122                                                  | 8.203     | 16.373      |
| AaveV3Ethereum                                                                          | 0.086     | 24.49       |
| AaveV3EthereumAssets                                                                    | 0.086     | 24.49       |
| AaveV3EthereumEModes                                                                    | 0.086     | 24.49       |
| AaveV3Ethereum_ACIPhaseII_20231029                                                      | 0.682     | 23.894      |
| AaveV3Ethereum_AaveFundingUpdates_20231102                                              | 5.809     | 18.767      |
| AaveV3Ethereum_AaveFundingUpdates_20231106                                              | 3.838     | 20.738      |
| AaveV3Ethereum_AddFXSToEthereumV3_20231108                                              | 4.996     | 19.58       |
| AaveV3Ethereum_AmendSafetyModuleAAVEEmissions_20231104                                  | 1.938     | 22.638      |
| AaveV3Ethereum_CRVUSDOnboardingOnAaveV3Ethereum_20231116                                | 4.996     | 19.58       |
| AaveV3Ethereum_ChaosLabsRiskManagementRenewal_20231101                                  | 1.014     | 23.562      |
| AaveV3Ethereum_ChaosLabsRiskParameterUpdatesIncreaseMKRDebtCeilingOnV3Ethereum_20231116 | 3.418     | 21.158      |
| AaveV3Ethereum_ContinuousSecurityProposalAaveCertoraPart1_20231212                      | 0.686     | 23.89       |
| AaveV3Ethereum_ContinuousSecurityProposalAaveCertoraPart2_20231212                      | 0.716     | 23.86       |
| AaveV3Ethereum_GHOIncreaseBorrowRate_20231108                                           | 0.326     | 24.25       |
| AaveV3Ethereum_GHO_Incident_Report_20231122                                             | 0.385     | 24.191      |
| AaveV3Ethereum_GauntletAaveRenewal2023_20231128                                         | 1.232     | 23.344      |
| AaveV3Ethereum_GauntletRecommendationToReactivateCRVBorrowingOnV3_20231127              | 3.882     | 20.694      |
| AaveV3Ethereum_GhoIncidentReport_20231113                                               | 1.098     | 23.478      |
| AaveV3Ethereum_IncreaseGHOBorrowRate100BpsTo635OnAaveV3_20231205                        | 0.324     | 24.252      |
| AaveV3Ethereum_IncreaseGHOBorrowRate_20231121                                           | 0.326     | 24.25       |
| AaveV3Ethereum_IncreaseStablecoinOptimalBorrowRates_20231113                            | 4.417     | 20.159      |
| AaveV3Ethereum_Patch_20240104                                                           | 0.52      | 24.056      |
| AaveV3Ethereum_RequestForBountyPayoutDecember2023_20231213                              | 0.891     | 23.685      |
| AaveV3Ethereum_SecurityBudgetDec2023_20231218                                           | 0.714     | 23.862      |
| AaveV3Ethereum_StablecoinIRCurvesUpdates_20231221                                       | 4.668     | 19.908      |
| AaveV3Ethereum_StkGHOActivation_20240119                                                | 1.156     | 23.42       |
| AaveV3Ethereum_TokenLogicFunding_20231114                                               | 0.423     | 24.153      |
| AaveV3Ethereum_TokenLogicKarpatkeyServiceProviderPartnership_20231207                   | 1.243     | 23.333      |
| AaveV3Ethereum_TransferAURAToGLCSafe_20231123                                           | 0.514     | 24.062      |
| AaveV3Ethereum_TreasuryManagementAddToRETHHoldingResubmission_20231123                  | 0.946     | 23.63       |
| AaveV3Ethereum_TreasuryManagementAddToRETHHolding_20231103                              | 1.928     | 22.648      |
| AaveV3Ethereum_UpgradeAaveV3ETHPooolWETHParameters_20231031                             | 3.671     | 20.905      |
| 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_AaveV3GnosisActivation_20231026                                            | 8.802     | 15.774      |
| AaveV3Gnosis_Patch_20240104                                                             | 0.52      | 24.056      |
| AaveV3Gnosis_StablecoinIRCurvesUpdates_20231221                                         | 3.911     | 20.665      |
| AaveV3Gnosis_UpdateGNORiskParametersOnAaveV3GnosisPool_20231213                         | 4.097     | 20.479      |
| AaveV3Harmony                                                                           | 0.086     | 24.49       |
| AaveV3HarmonyAssets                                                                     | 0.086     | 24.49       |
| AaveV3HarmonyEModes                                                                     | 0.086     | 24.49       |
| AaveV3Harmony_FreezePriceFeedsOnV3Harmony_20231122                                      | 3.097     | 21.479      |
| AaveV3Metis                                                                             | 0.086     | 24.49       |
| AaveV3MetisAssets                                                                       | 0.086     | 24.49       |
| AaveV3MetisEModes                                                                       | 0.086     | 24.49       |
| AaveV3Metis_IncreaseStablecoinOptimalBorrowRates_20231113                               | 3.914     | 20.662      |
| AaveV3Metis_StablecoinIRCurvesUpdates_20231221                                          | 3.91      | 20.666      |
| AaveV3Metis_UpdatePriceOracleSentinel_20231125                                          | 0.291     | 24.285      |
| AaveV3Optimism                                                                          | 0.086     | 24.49       |
| AaveV3OptimismAssets                                                                    | 0.086     | 24.49       |
| AaveV3OptimismEModes                                                                    | 0.086     | 24.49       |
| AaveV3Optimism_Disable_Stable_Borrows_20231104                                          | 3.851     | 20.725      |
| AaveV3Optimism_IncreaseStablecoinOptimalBorrowRates_20231113                            | 4.919     | 19.657      |
| AaveV3Optimism_MAIMIMATICDeprecation20231031_20231031                                   | 4.228     | 20.348      |
| AaveV3Optimism_OnboardNativeUSDCToAaveV3Markets_20231205                                | 4.658     | 19.918      |
| AaveV3Optimism_OnboardNativeUSDCToAaveV3Optimism_20231122                               | 5.551     | 19.025      |
| AaveV3Optimism_Patch_20240104                                                           | 0.52      | 24.056      |
| AaveV3Optimism_StablecoinIRCurvesUpdates_20231221                                       | 4.919     | 19.657      |
| AaveV3Optimism_UpdatePriceOracleSentinel_20231125                                       | 0.291     | 24.285      |
| AaveV3Polygon                                                                           | 0.086     | 24.49       |
| AaveV3PolygonAssets                                                                     | 0.086     | 24.49       |
| AaveV3PolygonEModes                                                                     | 0.086     | 24.49       |
| AaveV3Polygon_ChaosLabsCRVAaveV3PolygonLTReduction_20231106                             | 3.416     | 21.16       |
| AaveV3Polygon_Disable_Stable_Borrows_20231104                                           | 4.139     | 20.437      |
| AaveV3Polygon_GauntletCapRecommendationsForPolygonV3_20231120                           | 3.392     | 21.184      |
| AaveV3Polygon_GauntletRecommendationToLowerStMATICMaticXNonEmodeLTPt2_20231117          | 3.571     | 21.005      |
| AaveV3Polygon_GauntletRecommendationToReactivateCRVBorrowingOnV3_20231127               | 3.615     | 20.961      |
| AaveV3Polygon_IncreaseStablecoinOptimalBorrowRates_20231113                             | 4.416     | 20.16       |
| AaveV3Polygon_IncreaseSupplyAndBorrowCapsAt100UtilizationDecember2023_20231205          | 3.333     | 21.243      |
| AaveV3Polygon_MAIMIMATICDeprecation20231031_20231031                                    | 4.226     | 20.35       |
| AaveV3Polygon_OnboardNativeUSDCToAaveV3Markets_20231205                                 | 6.129     | 18.447      |
| AaveV3Polygon_Patch_20240104                                                            | 0.52      | 24.056      |
| AaveV3Polygon_StablecoinIRCurvesUpdates_20231221                                        | 4.416     | 20.16       |
| AaveV3Polygon_WMATICInterestRateUpdate_20231112                                         | 3.662     | 20.914      |
| Address                                                                                 | 0.086     | 24.49       |
| AddressesToMigrate                                                                      | 0.086     | 24.49       |
| CertoraProposalDeployer                                                                 | 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       |
| DeploymentHelper                                                                        | 0.086     | 24.49       |
| EngineFlags                                                                             | 0.086     | 24.49       |
| Errors                                                                                  | 4.714     | 19.862      |
| 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       |
| HelperStructs                                                                           | 0.086     | 24.49       |
| IpfsUtils                                                                               | 0.086     | 24.49       |
| MiscBNB                                                                                 | 0.086     | 24.49       |
| MiscEthereum                                                                            | 0.086     | 24.49       |
| MiscPolygon                                                                             | 0.086     | 24.49       |
| MockERC20                                                                               | 3.687     | 20.889      |
| MockERC721                                                                              | 3.825     | 20.751      |
| MockExecutor                                                                            | 0.437     | 24.139      |
| PayloadsControllerUtils                                                                 | 0.086     | 24.49       |
| PoolAddresses                                                                           | 0.357     | 24.219      |
| ProxyHelpers                                                                            | 0.086     | 24.49       |
| ReserveConfiguration                                                                    | 0.171     | 24.405      |
| SafeERC20                                                                               | 0.086     | 24.49       |
| StdStyle                                                                                | 0.086     | 24.49       |
| StorageHelpers                                                                          | 0.086     | 24.49       |
| WadRayMath                                                                              | 0.086     | 24.49       |
| console                                                                                 | 0.086     | 24.49       |
| console2                                                                                | 0.086     | 24.49       |
| mock_proposal                                                                           | 3.653     | 20.923      |
| 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

Running 2 tests for src/20231207_AaveV3Ethereum_GhoIncidentReport_20231126/AaveV3Ethereum_GhoIncidentReport_20231113.t.sol:AaveV3Ethereum_GhoIncidentReport_20231113_Test
[PASS] test_debtTokenRevisionUpdate() (gas: 199742)
[PASS] test_defaultProposalExecution() (gas: 217768324)
Logs:
  0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
  0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0
  0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599
  0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
  0x6B175474E89094C44Da98b954EedeAC495271d0F
  0x514910771AF9Ca656af840dff83E8264EcF986CA
  0xBe9895146f7AF43049ca1c1AE358B0541Ea49704
  0xdAC17F958D2ee523a2206206994597C13D831ec7
  0xae78736Cd615f374D3085123A210448E74Fc6393
  0x5f98805A4E8be255a32880FDeC7F6728C6568bA0
  0xD533a949740bb3306d119CC777fa900bA034cd52
  0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2
  0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F
  0xba100000625a3754423978a60c9317c58a424e3D
  0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984
  0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32
  0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72
  0x111111111117dC0aa78b770fA6A738034120C302
  0x853d955aCEf822Db058eb8505911ED77F175b99e
  0xD33526068D116cE69F19A9ee46F0bd304F21A51f
  0xAf5191B0De278C7286d6C7CC6ab6BB8A73bA2Cd6
  0xdeFA4e8a7bcBA345F687a2f1456F5Edd9CE97202
  0x3432B6A60D23Ca0dFCa7761B7ab56459D9C964D0
  0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E
  E2E: Collateral WETH, TestAsset WETH
  SUPPLY: WETH, Amount: 44221769165283593984
  SUPPLY: WETH, Amount: 442217691652835939
  WITHDRAW: WETH, Amount: 221108845826417969
  WITHDRAW: WETH, Amount: 221108845826417970
  BORROW: WETH, Amount 442217691652835939, Stable: false
  REPAY: WETH, Amount: 442217691652835939
  E2E: Collateral WETH, TestAsset wstETH
  SUPPLY: WETH, Amount: 44221769165283593984
  SUPPLY: wstETH, Amount: 384862666524071225
  WITHDRAW: wstETH, Amount: 192431333262035612
  WITHDRAW: wstETH, Amount: 192431333262035613
  BORROW: wstETH, Amount 384862666524071225, Stable: false
  REPAY: wstETH, Amount: 384862666524071225
  E2E: Collateral WETH, TestAsset WBTC
  SUPPLY: WETH, Amount: 44221769165283593984
  SUPPLY: WBTC, Amount: 2306565
  WITHDRAW: WBTC, Amount: 1153282
  WITHDRAW: WBTC, Amount: 1153283
  BORROW: WBTC, Amount 2306565, Stable: false
  REPAY: WBTC, Amount: 2306565
  E2E: Collateral WETH, TestAsset USDC
  SUPPLY: WETH, Amount: 44221769165283593984
  SUPPLY: USDC, Amount: 1000100010
  WITHDRAW: USDC, Amount: 500050005
  WITHDRAW: USDC, Amount: 500050005
  BORROW: USDC, Amount 1000100010, Stable: false
  REPAY: USDC, Amount: 1000100010
  E2E: Collateral WETH, TestAsset DAI
  SUPPLY: WETH, Amount: 44221769165283593984
  SUPPLY: DAI, Amount: 1000420326600221082887
  WITHDRAW: DAI, Amount: 500210163300110541443
  WITHDRAW: DAI, Amount: 500210163300110541445
  BORROW: DAI, Amount 1000420326600221082887, Stable: false
  REPAY: DAI, Amount: 1000420326600221082887
  E2E: Collateral WETH, TestAsset LINK
  SUPPLY: WETH, Amount: 44221769165283593984
  SUPPLY: LINK, Amount: 64197403420463333203
  WITHDRAW: LINK, Amount: 32098701710231666601
  WITHDRAW: LINK, Amount: 32098701710231666601
  BORROW: LINK, Amount 64197403420463333203, Stable: false
  REPAY: LINK, Amount: 64197403420463333203
  E2E: Collateral WETH, TestAsset AAVE
  SUPPLY: WETH, Amount: 44221769165283593984
  SUPPLY: AAVE, Amount: 10209251472587537031
  WITHDRAW: AAVE, Amount: 5104625736293768515
  WITHDRAW: AAVE, Amount: 5104625736293768516
  E2E: Collateral WETH, TestAsset cbETH
  SUPPLY: WETH, Amount: 44221769165283593984
  SUPPLY: cbETH, Amount: 418925437336904073
  WITHDRAW: cbETH, Amount: 209462718668452036
  WITHDRAW: cbETH, Amount: 209462718668452036
  BORROW: cbETH, Amount 418925437336904073, Stable: false
  REPAY: cbETH, Amount: 418925437336904073
  E2E: Collateral WETH, TestAsset USDT
  SUPPLY: WETH, Amount: 44221769165283593984
  SUPPLY: USDT, Amount: 999900009
  WITHDRAW: USDT, Amount: 499950004
  WITHDRAW: USDT, Amount: 499950006
  BORROW: USDT, Amount 999900009, Stable: false
  REPAY: USDT, Amount: 999900009
  E2E: Collateral WETH, TestAsset rETH
  SUPPLY: WETH, Amount: 44221769165283593984
  SUPPLY: rETH, Amount: 405144509669318541
  WITHDRAW: rETH, Amount: 202572254834659270
  WITHDRAW: rETH, Amount: 202572254834659271
  BORROW: rETH, Amount 405144509669318541, Stable: false
  REPAY: rETH, Amount: 405144509669318541
  E2E: Collateral WETH, TestAsset LUSD
  SUPPLY: WETH, Amount: 44221769165283593984
  SUPPLY: LUSD, Amount: 1003698417893268938451
  WITHDRAW: LUSD, Amount: 501849208946634469225
  WITHDRAW: LUSD, Amount: 501849208946634469226
  BORROW: LUSD, Amount 1003698417893268938451, Stable: false
  REPAY: LUSD, Amount: 1003698417893268938451
  E2E: Collateral WETH, TestAsset CRV
  SUPPLY: WETH, Amount: 44221769165283593984
  SUPPLY: CRV, Amount: 1656019235789516775574
  WITHDRAW: CRV, Amount: 828009617894758387787
  WITHDRAW: CRV, Amount: 828009617894758387787
  E2E: Collateral WETH, TestAsset MKR
  SUPPLY: WETH, Amount: 44221769165283593984
  SUPPLY: MKR, Amount: 678564725561239305
  WITHDRAW: MKR, Amount: 339282362780619652
  WITHDRAW: MKR, Amount: 339282362780619654
  BORROW: MKR, Amount 678564725561239305, Stable: false
  REPAY: MKR, Amount: 678564725561239305
  E2E: Collateral WETH, TestAsset SNX
  SUPPLY: WETH, Amount: 44221769165283593984
  SUPPLY: SNX, Amount: 272405339144647235085
  WITHDRAW: SNX, Amount: 136202669572323617542
  WITHDRAW: SNX, Amount: 136202669572323617543
  BORROW: SNX, Amount 272405339144647235085, Stable: false
  REPAY: SNX, Amount: 272405339144647235085
  E2E: Collateral WETH, TestAsset BAL
  SUPPLY: WETH, Amount: 44221769165283593984
  SUPPLY: BAL, Amount: 235676745775494331974
  WITHDRAW: BAL, Amount: 117838372887747165987
  WITHDRAW: BAL, Amount: 117838372887747165986
  BORROW: BAL, Amount 235676745775494331974, Stable: false
  REPAY: BAL, Amount: 235676745775494331974
  E2E: Collateral WETH, TestAsset UNI
  SUPPLY: WETH, Amount: 44221769165283593984
  SUPPLY: UNI, Amount: 159963144491509156290
  WITHDRAW: UNI, Amount: 79981572245754578145
  WITHDRAW: UNI, Amount: 79981572245754578144
  BORROW: UNI, Amount 159963144491509156290, Stable: false
  REPAY: UNI, Amount: 159963144491509156290
  E2E: Collateral WETH, TestAsset LDO
  SUPPLY: WETH, Amount: 44221769165283593984
  SUPPLY: LDO, Amount: 409449774882261795970
  WITHDRAW: LDO, Amount: 204724887441130897985
  WITHDRAW: LDO, Amount: 204724887441130897986
  BORROW: LDO, Amount 409449774882261795970, Stable: false
  REPAY: LDO, Amount: 409449774882261795970
  E2E: Collateral WETH, TestAsset ENS
  SUPPLY: WETH, Amount: 44221769165283593984
  SUPPLY: ENS, Amount: 109807574173325317438
  WITHDRAW: ENS, Amount: 54903787086662658719
  WITHDRAW: ENS, Amount: 54903787086662658719
  BORROW: ENS, Amount 109807574173325317438, Stable: false
  REPAY: ENS, Amount: 109807574173325317438
  E2E: Collateral WETH, TestAsset 1INCH
  SUPPLY: WETH, Amount: 44221769165283593984
  SUPPLY: 1INCH, Amount: 2660989888238424693986
  WITHDRAW: 1INCH, Amount: 1330494944119212346993
  WITHDRAW: 1INCH, Amount: 1330494944119212346994
  BORROW: 1INCH, Amount 2660989888238424693986, Stable: false
  REPAY: 1INCH, Amount: 2660989888238424693986
  E2E: Collateral WETH, TestAsset FRAX
  SUPPLY: WETH, Amount: 44221769165283593984
  SUPPLY: FRAX, Amount: 1000824970014533279637
  WITHDRAW: FRAX, Amount: 500412485007266639818
  WITHDRAW: FRAX, Amount: 500412485007266639819
  BORROW: FRAX, Amount 1000824970014533279637, Stable: false
  REPAY: FRAX, Amount: 1000824970014533279637
  E2E: Collateral WETH, TestAsset GHO
  SUPPLY: WETH, Amount: 44221769165283593984
  BORROW: GHO, Amount 1000000000000000000000, Stable: false
  REPAY: GHO, Amount: 1000000000000000000000
  E2E: Collateral WETH, TestAsset RPL
  SUPPLY: WETH, Amount: 44221769165283593984
  SUPPLY: RPL, Amount: 31709175657778057089
  WITHDRAW: RPL, Amount: 15854587828889028544
  WITHDRAW: RPL, Amount: 15854587828889028545
  BORROW: RPL, Amount 31709175657778057089, Stable: false
  REPAY: RPL, Amount: 31709175657778057089
  E2E: Collateral WETH, TestAsset sDAI
  SUPPLY: WETH, Amount: 44221769165283593984
  SUPPLY: sDAI, Amount: 956598485779211693398
  WITHDRAW: sDAI, Amount: 478299242889605846699
  WITHDRAW: sDAI, Amount: 478299242889605846699
  E2E: Collateral WETH, TestAsset STG
  SUPPLY: WETH, Amount: 44221769165283593984
  SUPPLY: STG, Amount: 1769771019061584226455
  WITHDRAW: STG, Amount: 884885509530792113227
  WITHDRAW: STG, Amount: 884885509530792113228
  BORROW: STG, Amount 1769771019061584226455, Stable: false
  REPAY: STG, Amount: 1769771019061584226455
  E2E: Collateral WETH, TestAsset KNC
  SUPPLY: WETH, Amount: 44221769165283593984
  SUPPLY: KNC, Amount: 1331304797587153835291
  WITHDRAW: KNC, Amount: 665652398793576917645
  WITHDRAW: KNC, Amount: 665652398793576917646
  BORROW: KNC, Amount 1331304797587153835291, Stable: false
  REPAY: KNC, Amount: 1331304797587153835291
  E2E: Collateral WETH, TestAsset FXS
  SUPPLY: WETH, Amount: 44221769165283593984
  SUPPLY: FXS, Amount: 113456602350958990853
  WITHDRAW: FXS, Amount: 56728301175479495426
  WITHDRAW: FXS, Amount: 56728301175479495427
  BORROW: FXS, Amount 113456602350958990853, Stable: false
  REPAY: FXS, Amount: 113456602350958990853
  E2E: Collateral WETH, TestAsset crvUSD
  SUPPLY: WETH, Amount: 44221769165283593984
  SUPPLY: crvUSD, Amount: 1004027213394558377324
  WITHDRAW: crvUSD, Amount: 502013606697279188662
  WITHDRAW: crvUSD, Amount: 502013606697279188661
  BORROW: crvUSD, Amount 1004027213394558377324, Stable: false
  REPAY: crvUSD, Amount: 1004027213394558377324

Test result: ok. 2 passed; 0 failed; 0 skipped; finished in 87.21s
 
Ran 1 test suites: 2 tests passed, 0 failed, 0 skipped (2 total tests)
No files changed, compilation skipped

Running 4 tests for src/20240119_AaveV3Ethereum_StkGHOActivation/AaveV3Ethereum_StkGHOActivation_20240119.t.sol:AaveV3Ethereum_StkGHOActivation_20240119_Test
[PASS] test_checkAllowance() (gas: 203464)
[PASS] test_checkConfig() (gas: 207333)
[PASS] test_checkRewards() (gas: 301959)
[PASS] test_defaultProposalExecution() (gas: 218347300)
Logs:
  0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
  0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0
  0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599
  0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
  0x6B175474E89094C44Da98b954EedeAC495271d0F
  0x514910771AF9Ca656af840dff83E8264EcF986CA
  0xBe9895146f7AF43049ca1c1AE358B0541Ea49704
  0xdAC17F958D2ee523a2206206994597C13D831ec7
  0xae78736Cd615f374D3085123A210448E74Fc6393
  0x5f98805A4E8be255a32880FDeC7F6728C6568bA0
  0xD533a949740bb3306d119CC777fa900bA034cd52
  0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2
  0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F
  0xba100000625a3754423978a60c9317c58a424e3D
  0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984
  0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32
  0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72
  0x111111111117dC0aa78b770fA6A738034120C302
  0x853d955aCEf822Db058eb8505911ED77F175b99e
  0xD33526068D116cE69F19A9ee46F0bd304F21A51f
  0xAf5191B0De278C7286d6C7CC6ab6BB8A73bA2Cd6
  0xdeFA4e8a7bcBA345F687a2f1456F5Edd9CE97202
  0x3432B6A60D23Ca0dFCa7761B7ab56459D9C964D0
  0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E
  E2E: Collateral WETH, TestAsset WETH
  SUPPLY: WETH, Amount: 41020066619548854475
  SUPPLY: WETH, Amount: 410200666195488544
  WITHDRAW: WETH, Amount: 205100333097744272
  WITHDRAW: WETH, Amount: 205100333097744272
  BORROW: WETH, Amount 410200666195488544, Stable: false
  REPAY: WETH, Amount: 410200666195488544
  E2E: Collateral WETH, TestAsset wstETH
  SUPPLY: WETH, Amount: 41020066619548854475
  SUPPLY: wstETH, Amount: 355379507543914152
  WITHDRAW: wstETH, Amount: 177689753771957076
  WITHDRAW: wstETH, Amount: 177689753771957077
  BORROW: wstETH, Amount 355379507543914152, Stable: false
  REPAY: wstETH, Amount: 355379507543914152
  E2E: Collateral WETH, TestAsset WBTC
  SUPPLY: WETH, Amount: 41020066619548854475
  SUPPLY: WBTC, Amount: 2465120
  WITHDRAW: WBTC, Amount: 1232560
  WITHDRAW: WBTC, Amount: 1232560
  BORROW: WBTC, Amount 2465120, Stable: false
  REPAY: WBTC, Amount: 2465120
  E2E: Collateral WETH, TestAsset USDC
  SUPPLY: WETH, Amount: 41020066619548854475
  SUPPLY: USDC, Amount: 999886072
  WITHDRAW: USDC, Amount: 499943036
  WITHDRAW: USDC, Amount: 499943036
  BORROW: USDC, Amount 999886072, Stable: false
  REPAY: USDC, Amount: 999886072
  E2E: Collateral WETH, TestAsset DAI
  SUPPLY: WETH, Amount: 41020066619548854475
  SUPPLY: DAI, Amount: 999904259167184742060
  WITHDRAW: DAI, Amount: 499952129583592371030
  WITHDRAW: DAI, Amount: 499952129583592371029
  BORROW: DAI, Amount 999904259167184742060, Stable: false
  REPAY: DAI, Amount: 999904259167184742060
  E2E: Collateral WETH, TestAsset LINK
  SUPPLY: WETH, Amount: 41020066619548854475
  SUPPLY: LINK, Amount: 67521753875072104455
  WITHDRAW: LINK, Amount: 33760876937536052227
  WITHDRAW: LINK, Amount: 33760876937536052227
  BORROW: LINK, Amount 67521753875072104455, Stable: false
  REPAY: LINK, Amount: 67521753875072104455
  E2E: Collateral WETH, TestAsset AAVE
  SUPPLY: WETH, Amount: 41020066619548854475
  SUPPLY: AAVE, Amount: 10745129198952643674
  WITHDRAW: AAVE, Amount: 5372564599476321837
  WITHDRAW: AAVE, Amount: 5372564599476321837
  E2E: Collateral WETH, TestAsset cbETH
  SUPPLY: WETH, Amount: 41020066619548854475
  SUPPLY: cbETH, Amount: 388088131999042349
  WITHDRAW: cbETH, Amount: 194044065999521174
  WITHDRAW: cbETH, Amount: 194044065999521174
  BORROW: cbETH, Amount 388088131999042349, Stable: false
  REPAY: cbETH, Amount: 388088131999042349
  E2E: Collateral WETH, TestAsset USDT
  SUPPLY: WETH, Amount: 41020066619548854475
  SUPPLY: USDT, Amount: 1001091189
  WITHDRAW: USDT, Amount: 500545594
  WITHDRAW: USDT, Amount: 500545595
  BORROW: USDT, Amount 1001091189, Stable: false
  REPAY: USDT, Amount: 1001091189
  E2E: Collateral WETH, TestAsset rETH
  SUPPLY: WETH, Amount: 41020066619548854475
  SUPPLY: rETH, Amount: 374334970351893022
  WITHDRAW: rETH, Amount: 187167485175946511
  WITHDRAW: rETH, Amount: 187167485175946510
  BORROW: rETH, Amount 374334970351893022, Stable: false
  REPAY: rETH, Amount: 374334970351893022
  E2E: Collateral WETH, TestAsset LUSD
  SUPPLY: WETH, Amount: 41020066619548854475
  SUPPLY: LUSD, Amount: 995097799953200550468
  WITHDRAW: LUSD, Amount: 497548899976600275234
  WITHDRAW: LUSD, Amount: 497548899976600275233
  BORROW: LUSD, Amount 995097799953200550468, Stable: false
  REPAY: LUSD, Amount: 995097799953200550468
  E2E: Collateral WETH, TestAsset CRV
  SUPPLY: WETH, Amount: 41020066619548854475
  SUPPLY: CRV, Amount: 1979022362952701365525
  WITHDRAW: CRV, Amount: 989511181476350682762
  WITHDRAW: CRV, Amount: 989511181476350682763
  BORROW: CRV, Amount 1979022362952701365525, Stable: false
  REPAY: CRV, Amount: 1979022362952701365525
  E2E: Collateral WETH, TestAsset MKR
  SUPPLY: WETH, Amount: 41020066619548854475
  SUPPLY: MKR, Amount: 522641755470033942
  WITHDRAW: MKR, Amount: 261320877735016971
  WITHDRAW: MKR, Amount: 261320877735016971
  BORROW: MKR, Amount 522641755470033942, Stable: false
  REPAY: MKR, Amount: 522641755470033942
  E2E: Collateral WETH, TestAsset SNX
  SUPPLY: WETH, Amount: 41020066619548854475
  SUPPLY: SNX, Amount: 309851663938293660830
  WITHDRAW: SNX, Amount: 154925831969146830415
  WITHDRAW: SNX, Amount: 154925831969146830414
  BORROW: SNX, Amount 309851663938293660830, Stable: false
  REPAY: SNX, Amount: 309851663938293660830
  E2E: Collateral WETH, TestAsset BAL
  SUPPLY: WETH, Amount: 41020066619548854475
  SUPPLY: BAL, Amount: 259433226244745637253
  WITHDRAW: BAL, Amount: 129716613122372818626
  WITHDRAW: BAL, Amount: 129716613122372818627
  BORROW: BAL, Amount 259433226244745637253, Stable: false
  REPAY: BAL, Amount: 259433226244745637253
  E2E: Collateral WETH, TestAsset UNI
  SUPPLY: WETH, Amount: 41020066619548854475
  SUPPLY: UNI, Amount: 163326809532470588969
  WITHDRAW: UNI, Amount: 81663404766235294484
  WITHDRAW: UNI, Amount: 81663404766235294485
  BORROW: UNI, Amount 163326809532470588969, Stable: false
  REPAY: UNI, Amount: 163326809532470588969
  E2E: Collateral WETH, TestAsset LDO
  SUPPLY: WETH, Amount: 41020066619548854475
  SUPPLY: LDO, Amount: 346333154949824101027
  WITHDRAW: LDO, Amount: 173166577474912050513
  WITHDRAW: LDO, Amount: 173166577474912050514
  BORROW: LDO, Amount 346333154949824101027, Stable: false
  REPAY: LDO, Amount: 346333154949824101027
  E2E: Collateral WETH, TestAsset ENS
  SUPPLY: WETH, Amount: 41020066619548854475
  SUPPLY: ENS, Amount: 53499270465490684258
  WITHDRAW: ENS, Amount: 26749635232745342129
  WITHDRAW: ENS, Amount: 26749635232745342130
  BORROW: ENS, Amount 53499270465490684258, Stable: false
  REPAY: ENS, Amount: 53499270465490684258
  E2E: Collateral WETH, TestAsset 1INCH
  SUPPLY: WETH, Amount: 41020066619548854475
  SUPPLY: 1INCH, Amount: 2498737013376588803189
  WITHDRAW: 1INCH, Amount: 1249368506688294401594
  WITHDRAW: 1INCH, Amount: 1249368506688294401596
  BORROW: 1INCH, Amount 2498737013376588803189, Stable: false
  REPAY: 1INCH, Amount: 2498737013376588803189
  E2E: Collateral WETH, TestAsset FRAX
  SUPPLY: WETH, Amount: 41020066619548854475
  SUPPLY: FRAX, Amount: 1002801184717342034545
  WITHDRAW: FRAX, Amount: 501400592358671017272
  WITHDRAW: FRAX, Amount: 501400592358671017273
  BORROW: FRAX, Amount 1002801184717342034545, Stable: false
  REPAY: FRAX, Amount: 1002801184717342034545
  E2E: Collateral WETH, TestAsset GHO
  SUPPLY: WETH, Amount: 41020066619548854475
  BORROW: GHO, Amount 1000000000000000000000, Stable: false
  REPAY: GHO, Amount: 1000000000000000000000
  E2E: Collateral WETH, TestAsset RPL
  SUPPLY: WETH, Amount: 41020066619548854475
  SUPPLY: RPL, Amount: 34378981043031056692
  WITHDRAW: RPL, Amount: 17189490521515528346
  WITHDRAW: RPL, Amount: 17189490521515528346
  BORROW: RPL, Amount 34378981043031056692, Stable: false
  REPAY: RPL, Amount: 34378981043031056692
  E2E: Collateral WETH, TestAsset sDAI
  SUPPLY: WETH, Amount: 41020066619548854475
  SUPPLY: sDAI, Amount: 950387609408977990515
  WITHDRAW: sDAI, Amount: 475193804704488995257
  WITHDRAW: sDAI, Amount: 475193804704488995258
  E2E: Collateral WETH, TestAsset STG
  SUPPLY: WETH, Amount: 41020066619548854475
  SUPPLY: STG, Amount: 1920782585217007999656
  WITHDRAW: STG, Amount: 960391292608503999828
  WITHDRAW: STG, Amount: 960391292608503999827
  BORROW: STG, Amount 1920782585217007999656, Stable: false
  REPAY: STG, Amount: 1920782585217007999656
  E2E: Collateral WETH, TestAsset KNC
  SUPPLY: WETH, Amount: 41020066619548854475
  SUPPLY: KNC, Amount: 1684318549642729086523
  WITHDRAW: KNC, Amount: 842159274821364543261
  WITHDRAW: KNC, Amount: 842159274821364543263
  BORROW: KNC, Amount 1684318549642729086523, Stable: false
  REPAY: KNC, Amount: 1684318549642729086523
  E2E: Collateral WETH, TestAsset FXS
  SUPPLY: WETH, Amount: 41020066619548854475
  SUPPLY: FXS, Amount: 118791065841303648603
  WITHDRAW: FXS, Amount: 59395532920651824301
  WITHDRAW: FXS, Amount: 59395532920651824301
  BORROW: FXS, Amount 118791065841303648603, Stable: false
  REPAY: FXS, Amount: 118791065841303648603
  E2E: Collateral WETH, TestAsset crvUSD
  SUPPLY: WETH, Amount: 41020066619548854475
  SUPPLY: crvUSD, Amount: 1000927359198297222376
  WITHDRAW: crvUSD, Amount: 500463679599148611188
  WITHDRAW: crvUSD, Amount: 500463679599148611189
  BORROW: crvUSD, Amount 1000927359198297222376, Stable: false
  REPAY: crvUSD, Amount: 1000927359198297222376

Test result: ok. 4 passed; 0 failed; 0 skipped; finished in 79.22s
 
Ran 1 test suites: 4 tests passed, 0 failed, 0 skipped (4 total tests)

Please sign in to comment.