Skip to content

Commit

Permalink
GHO Stability Module Launch (#169)
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 <miguelmtz.mail@gmail.com>

* 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: Add payload

* test: Add tests

* feat: Add script and tests with final addresses

* fix: Fix link and gasLimit amounts

* fix: Update dependencies

* fix: Fix oracle swap freezer addresses

* fix: Bump block number for tests

* fix: Reduce LINK amount so its enough in treasury

* add test for OracleSwapFreezer

* fix: Clean up in tests

* docs: Add AIP text

* docs: Fix typo in natspec docs

Co-authored-by: Harsh Pandey <harshsatishpandey@gmail.com>

* fix: Fix typo on natspec docs

Co-authored-by: Harsh Pandey <harshsatishpandey@gmail.com>

* docs: Fix typo in natspec docs

* fix: Add DAO as swap freezer

---------

Co-authored-by: Parth Patel <parth4321patel@gmail.com>
Co-authored-by: Harsh Pandey <harshsatishpandey@gmail.com>
  • Loading branch information
3 people authored Jan 24, 2024
1 parent 012e357 commit 0f4c6e7
Show file tree
Hide file tree
Showing 6 changed files with 611 additions and 1 deletion.
2 changes: 1 addition & 1 deletion lib/aave-helpers
73 changes: 73 additions & 0 deletions src/20240119_Gho_GHOStabilityModule/GHOStabilityModule.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
---
title: "GHO Stability Module"
author: "Aave Labs @aave"
discussions: "https://governance.aave.com/t/gho-stability-module-update/14442"
---

## Simple Summary

This AIP proposes the deployment of the GHO Stability Module (GSM), a system facilitating the conversion between GHO and two governance-accepted stablecoins, USDC and USDT, at a predetermined ratio.

The GSM has undergone thorough iterations of design, development, testing, and implementation with Aave Labs driving this process and actively seeking community feedback. Additionally, the security aspect was carefully addressed through collaboration with DAO service providers SigmaPrime and Certora for code reviews. Furthermore, an extra layer of security was added by commissioning an independent review from a security researcher (Emanuele Ricci [@stermi](https://governance.aave.com/u/stermi/summary)).

Following extensive community discussion and multiple phases of Aave DAO governance, this AIP suggests deploying two GSM contracts for seamless conversions between GHO and USDC as well as GHO and USDT.

## Motivation

The GHO Stability Module (GSM) is a contract designed to facilitate conversions between two tokens with its primary purpose being to help further maintain GHO's peg. The module allows swaps between GHO and other governance-accepted stablecoins, offering a variety of functionalities that make it paramount in the fields of security and risk management.

Summarizing the functionality offered by the GHO Stability Module (GSM), here is a list of these features and their planned implementation for this proposal:

- **Exposure Cap**: Denominated in token units, it limits exposure to the exogenous asset.
- **Price Strategies**: Utilizing a fixed price strategy with a 1:1 ratio for stablecoins.
- **Fee Strategies**: Employing a flat basis point (bps) approach, differentiated by direction (sell/buy).
- **Last Resort Liquidation**: Aave DAO is the exclusive entity granted with the role of last resort liquidation, empowering it to take control of GSM funds in worst-case scenarios.
- **Swap Freeze**: Aave DAO and a chainlink-automated keeper contract have the authority to freeze the swap functionality. The chainlink-automated keeper contract bases its actions on the price of the exogenous asset, freezing if the price is outside the range and unfreezing if inside the range.
- **Capital Allocation**: Supporting this feature by allowing ERC4626 assets as underlying assets. This enables redirecting the yield generated by the ERC4626 asset, while residing in the GSM contract, to the GHO Treasury.

## Specification

The proposed payload entails the comprehensive activation of GSM USDC and GSM USDT, involving the following steps:

1. Incorporate GSM USDC and GSM USDT as facilitators of the GHO Token on Ethereum.
2. Adjust the Fee Strategy for both GSMs to implement a 0.2% flat fee for both directions (buy/sell).
3. Add both GSMs to the GSM Registry.
4. Designate OracleSwapFreezer contracts and Aave DAO as SwapFreezer entities in each GSM contract, respectively.
5. Activate these OracleSwapFreezer contracts as keepers of the Aave DAO through AaveRobot with a funding of 80 LINK for each.

The table below outlines the initially proposed risk parameters for each GSM contract, as approved through the snapshot:

**GSM USDC**
| Parameter | Value |
|------------------------------------------ |----------------- |
| Underlying Price Range for Swap Freeze | [0.99 - 1.01] |
| Underlying Price Range for Swap Unfreeze | [0.995 - 1.005] |
| Buy Fee | 0.2% |
| Sell Fee | 0.2% |
| Exposure Cap | 500,000 USDC |
| Facilitator Bucket Capacity | 500,000 GHO |
| Swap Active | True |

**GSM USDT**
| Parameter | Value |
|------------------------------------------ |----------------- |
| Underlying Price Range for Swap Freeze | [0.99 - 1.01] |
| Underlying Price Range for Swap Unfreeze | [0.995 - 1.005] |
| Buy Fee | 0.2% |
| Sell Fee | 0.2% |
| Exposure Cap | 500,000 USDT |
| Facilitator Bucket Capacity | 500,000 GHO |
| Swap Active | True |

## References

- Implementation: [AaveV3Ethereum](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240119_Gho_GHOStabilityModule/AaveV3Ethereum_GHOStabilityModule_20240119.sol)
- Tests: [AaveV3Ethereum](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240119_Gho_GHOStabilityModule/AaveV3Ethereum_GHOStabilityModule_20240119.t.sol)
- [Snapshot](https://snapshot.org/#/aave.eth/proposal/0xe9b62e197a98832da7d1231442b5960588747f184415fba4699b6325d7618842)
- [Discussion](https://governance.aave.com/t/gho-stability-module-update/14442)
- [GSM Repository](https://github.com/aave/gho-core/tree/main/src/contracts/facilitators/gsm)
- [GSM Audit Reports](https://github.com/aave/gho-core/tree/main/audits)

## Copyright

Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).
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 {Gho_GHOStabilityModule_20240119} from './Gho_GHOStabilityModule_20240119.sol';

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

// create proposal
vm.startBroadcast();
GovV3Helpers.createProposal(
vm,
payloads,
GovV3Helpers.ipfsHashFile(vm, 'src/20240119_Gho_GHOStabilityModule/GHOStabilityModule.md')
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

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

interface IGhoToken {
function addFacilitator(
address facilitatorAddress,
string calldata facilitatorLabel,
uint128 bucketCapacity
) external;
}

interface IGsm {
function updateFeeStrategy(address feeStrategy) external;

function SWAP_FREEZER_ROLE() external pure returns (bytes32);

function grantRole(bytes32 role, address account) external;
}

interface IGsmRegistry {
function addGsm(address gsmAddress) external;
}

interface IAaveCLRobotOperator {
function register(
string memory name,
address upkeepContract,
uint32 gasLimit,
uint96 amountToFund
) external returns (uint256);
}

/**
* @title GHO Stability Module
* @author Aave labs (@aave)
* @dev This proposal enables 2 GHO Stability Modules (USDC, USDT):
* - Addition of USDC and USDT GSMs as GHO Facilitators
* - Give Swap Freezer permissions to OracleSwapFreezers, one per module
* - Give Swap Freezer permissions to the DAO Level 1 Executor
* - Install a 0.2% fee strategy into both modules
* - Register both GSMs in the GsmRegistry
* - Activate OracleSwapFreezer contracts as AaveRobot Keepers
* Relevant governance links:
* 1. GHO Stability Module
* - Snapshot: https://snapshot.org/#/aave.eth/proposal/0x98bdd30f645b2981320f82c671ae9fee31ee771766c13cd2627b66a22f0d438e
* - Discussion: https://governance.aave.com/t/temp-check-gho-stability-module/13927
* 2. GHO Stability Module Update
* - Discussion: https://governance.aave.com/t/gho-stability-module-update/14442
* 3. GHO Stability Module Launch
* - Snapshot: https://snapshot.org/#/aave.eth/proposal/0xe9b62e197a98832da7d1231442b5960588747f184415fba4699b6325d7618842
*/
contract Gho_GHOStabilityModule_20240119 is IProposalGenericExecutor {
using SafeERC20 for IERC20;

address public constant GSM_USDC = 0x0d8eFfC11dF3F229AA1EA0509BC9DFa632A13578;
address public constant GSM_USDC_ORACLE_SWAP_FREEZER = 0xef6beCa8D9543eC007bceA835aF768B58F730C1f;
address public constant GSM_USDT = 0x686F8D21520f4ecEc7ba577be08354F4d1EB8262;
address public constant GSM_USDT_ORACLE_SWAP_FREEZER = 0x71381e6718b37C12155CB961Ca3D374A8BfFa0e5;
address public constant GSM_REGISTRY = 0x167527DB01325408696326e3580cd8e55D99Dc1A;
address public constant GSM_FIXED_FEE_STRATEGY = 0xD4478A76aCeA81D3768A0ACB6e38f25eEB6Eb1B5;

string public constant GSM_USDC_FACILITATOR_LABEL = 'GSM USDC';
uint128 public constant GSM_USDC_BUCKET_CAPACITY = 500_000e18;
string public constant GSM_USDT_FACILITATOR_LABEL = 'GSM USDT';
uint128 public constant GSM_USDT_BUCKET_CAPACITY = 500_000e18;

address public constant ROBOT_OPERATOR = 0x020E452b463568f55BAc6Dc5aFC8F0B62Ea5f0f3;
uint96 public constant LINK_AMOUNT_ORACLE_FREEZER_KEEPER = 80 ether;
uint96 public constant TOTAL_LINK_AMOUNT_KEEPERS = LINK_AMOUNT_ORACLE_FREEZER_KEEPER * 2; // 2 GSMs
uint32 public constant KEEPER_GAS_LIMIT = 150_000;

function execute() external {
// 1. Enroll GSMs as GHO Facilitators
IGhoToken(MiscEthereum.GHO_TOKEN).addFacilitator(
GSM_USDC,
GSM_USDC_FACILITATOR_LABEL,
GSM_USDC_BUCKET_CAPACITY
);
IGhoToken(MiscEthereum.GHO_TOKEN).addFacilitator(
GSM_USDT,
GSM_USDT_FACILITATOR_LABEL,
GSM_USDT_BUCKET_CAPACITY
);

// 2. Add GSM Swap Freezer role to OracleSwapFreezers
IGsm(GSM_USDC).grantRole(IGsm(GSM_USDC).SWAP_FREEZER_ROLE(), GSM_USDC_ORACLE_SWAP_FREEZER);
IGsm(GSM_USDT).grantRole(IGsm(GSM_USDT).SWAP_FREEZER_ROLE(), GSM_USDT_ORACLE_SWAP_FREEZER);
IGsm(GSM_USDC).grantRole(
IGsm(GSM_USDC).SWAP_FREEZER_ROLE(),
GovernanceV3Ethereum.EXECUTOR_LVL_1
);
IGsm(GSM_USDT).grantRole(
IGsm(GSM_USDT).SWAP_FREEZER_ROLE(),
GovernanceV3Ethereum.EXECUTOR_LVL_1
);

// 3. Update Fee Strategy
IGsm(GSM_USDC).updateFeeStrategy(GSM_FIXED_FEE_STRATEGY);
IGsm(GSM_USDT).updateFeeStrategy(GSM_FIXED_FEE_STRATEGY);

// 4. Add GSMs to GSM Registry
IGsmRegistry(GSM_REGISTRY).addGsm(GSM_USDC);
IGsmRegistry(GSM_REGISTRY).addGsm(GSM_USDT);

// 5. Register OracleSwapFreezer as keepers
AaveV3Ethereum.COLLECTOR.transfer(
AaveV3EthereumAssets.LINK_UNDERLYING,
address(this),
TOTAL_LINK_AMOUNT_KEEPERS
);
IERC20(AaveV3EthereumAssets.LINK_UNDERLYING).forceApprove(
ROBOT_OPERATOR,
TOTAL_LINK_AMOUNT_KEEPERS
);

IAaveCLRobotOperator(ROBOT_OPERATOR).register(
'GHO GSM USDC OracleSwapFreezer',
GSM_USDC_ORACLE_SWAP_FREEZER,
KEEPER_GAS_LIMIT,
LINK_AMOUNT_ORACLE_FREEZER_KEEPER
);
IAaveCLRobotOperator(ROBOT_OPERATOR).register(
'GHO GSM USDT OracleSwapFreezer',
GSM_USDT_ORACLE_SWAP_FREEZER,
KEEPER_GAS_LIMIT,
LINK_AMOUNT_ORACLE_FREEZER_KEEPER
);
}
}
Loading

1 comment on commit 0f4c6e7

@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 (3344e2c 2024-01-24T00:22:47.027946475Z)
Build log
Compiling 438 files with 0.8.19
Solc 0.8.19 finished in 282.96s
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_RegisterADIScrollAdapter_20240122                                        | 0.671     | 23.905      |
| 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       |
| 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       |
| 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       |
| TransactionUtils                                                                        | 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 4 tests for src/20240119_Gho_GHOStabilityModule/Gho_GHOStabilityModule_20240119.t.sol:Gho_GHOStabilityModule_20240119_Test
[PASS] test_checkConfig() (gas: 1263838)
[PASS] test_checkRoles() (gas: 1296524)
[PASS] test_defaultProposalExecution() (gas: 219342934)
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: 44786653794352307524
  SUPPLY: WETH, Amount: 447866537943523075
  WITHDRAW: WETH, Amount: 223933268971761537
  WITHDRAW: WETH, Amount: 223933268971761539
  BORROW: WETH, Amount 447866537943523075, Stable: false
  REPAY: WETH, Amount: 447866537943523075
  E2E: Collateral WETH, TestAsset wstETH
  SUPPLY: WETH, Amount: 44786653794352307524
  SUPPLY: wstETH, Amount: 387867328548155323
  WITHDRAW: wstETH, Amount: 193933664274077661
  WITHDRAW: wstETH, Amount: 193933664274077662
  BORROW: wstETH, Amount 387867328548155323, Stable: false
  REPAY: wstETH, Amount: 387867328548155323
  E2E: Collateral WETH, TestAsset WBTC
  SUPPLY: WETH, Amount: 44786653794352307524
  SUPPLY: WBTC, Amount: 2508116
  WITHDRAW: WBTC, Amount: 1254058
  WITHDRAW: WBTC, Amount: 1254059
  BORROW: WBTC, Amount 2508116, Stable: false
  REPAY: WBTC, Amount: 2508116
  E2E: Collateral WETH, TestAsset USDC
  SUPPLY: WETH, Amount: 44786653794352307524
  SUPPLY: USDC, Amount: 999779868
  WITHDRAW: USDC, Amount: 499889934
  WITHDRAW: USDC, Amount: 499889933
  BORROW: USDC, Amount 999779868, Stable: false
  REPAY: USDC, Amount: 999779868
  E2E: Collateral WETH, TestAsset DAI
  SUPPLY: WETH, Amount: 44786653794352307524
  SUPPLY: DAI, Amount: 1000011010121221434647
  WITHDRAW: DAI, Amount: 500005505060610717323
  WITHDRAW: DAI, Amount: 500005505060610717325
  BORROW: DAI, Amount 1000011010121221434647, Stable: false
  REPAY: DAI, Amount: 1000011010121221434647
  E2E: Collateral WETH, TestAsset LINK
  SUPPLY: WETH, Amount: 44786653794352307524
  SUPPLY: LINK, Amount: 70693496113383986344
  WITHDRAW: LINK, Amount: 35346748056691993172
  WITHDRAW: LINK, Amount: 35346748056691993172
  BORROW: LINK, Amount 70693496113383986344, Stable: false
  REPAY: LINK, Amount: 70693496113383986344
  E2E: Collateral WETH, TestAsset AAVE
  SUPPLY: WETH, Amount: 44786653794352307524
  SUPPLY: AAVE, Amount: 11269937408614775294
  WITHDRAW: AAVE, Amount: 5634968704307387647
  WITHDRAW: AAVE, Amount: 5634968704307387647
  E2E: Collateral WETH, TestAsset cbETH
  SUPPLY: WETH, Amount: 44786653794352307524
  SUPPLY: cbETH, Amount: 425865552455900726
  WITHDRAW: cbETH, Amount: 212932776227950363
  WITHDRAW: cbETH, Amount: 212932776227950364
  BORROW: cbETH, Amount 425865552455900726, Stable: false
  REPAY: cbETH, Amount: 425865552455900726
  E2E: Collateral WETH, TestAsset USDT
  SUPPLY: WETH, Amount: 44786653794352307524
  SUPPLY: USDT, Amount: 1001151324
  WITHDRAW: USDT, Amount: 500575662
  WITHDRAW: USDT, Amount: 500575663
  BORROW: USDT, Amount 1001151324, Stable: false
  REPAY: USDT, Amount: 1001151324
  E2E: Collateral WETH, TestAsset rETH
  SUPPLY: WETH, Amount: 44786653794352307524
  SUPPLY: rETH, Amount: 408552140558380085
  WITHDRAW: rETH, Amount: 204276070279190042
  WITHDRAW: rETH, Amount: 204276070279190042
  BORROW: rETH, Amount 408552140558380085, Stable: false
  REPAY: rETH, Amount: 408552140558380085
  E2E: Collateral WETH, TestAsset LUSD
  SUPPLY: WETH, Amount: 44786653794352307524
  SUPPLY: LUSD, Amount: 998779910437008359328
  WITHDRAW: LUSD, Amount: 499389955218504179664
  WITHDRAW: LUSD, Amount: 499389955218504179664
  BORROW: LUSD, Amount 998779910437008359328, Stable: false
  REPAY: LUSD, Amount: 998779910437008359328
  E2E: Collateral WETH, TestAsset CRV
  SUPPLY: WETH, Amount: 44786653794352307524
  SUPPLY: CRV, Amount: 2137478057184634456838
  WITHDRAW: CRV, Amount: 1068739028592317228419
  WITHDRAW: CRV, Amount: 1068739028592317228419
  BORROW: CRV, Amount 2137478057184634456838, Stable: false
  REPAY: CRV, Amount: 2137478057184634456838
  E2E: Collateral WETH, TestAsset MKR
  SUPPLY: WETH, Amount: 44786653794352307524
  SUPPLY: MKR, Amount: 511768266402896143
  WITHDRAW: MKR, Amount: 255884133201448071
  WITHDRAW: MKR, Amount: 255884133201448071
  BORROW: MKR, Amount 511768266402896143, Stable: false
  REPAY: MKR, Amount: 511768266402896143
  E2E: Collateral WETH, TestAsset SNX
  SUPPLY: WETH, Amount: 44786653794352307524
  SUPPLY: SNX, Amount: 319732088042502063199
  WITHDRAW: SNX, Amount: 159866044021251031599
  WITHDRAW: SNX, Amount: 159866044021251031599
  BORROW: SNX, Amount 319732088042502063199, Stable: false
  REPAY: SNX, Amount: 319732088042502063199
  E2E: Collateral WETH, TestAsset BAL
  SUPPLY: WETH, Amount: 44786653794352307524
  SUPPLY: BAL, Amount: 281365183872147660448
  WITHDRAW: BAL, Amount: 140682591936073830224
  WITHDRAW: BAL, Amount: 140682591936073830223
  BORROW: BAL, Amount 281365183872147660448, Stable: false
  REPAY: BAL, Amount: 281365183872147660448
  E2E: Collateral WETH, TestAsset UNI
  SUPPLY: WETH, Amount: 44786653794352307524
  SUPPLY: UNI, Amount: 172679910709290331154
  WITHDRAW: UNI, Amount: 86339955354645165577
  WITHDRAW: UNI, Amount: 86339955354645165578
  BORROW: UNI, Amount 172679910709290331154, Stable: false
  REPAY: UNI, Amount: 172679910709290331154
  E2E: Collateral WETH, TestAsset LDO
  SUPPLY: WETH, Amount: 44786653794352307524
  SUPPLY: LDO, Amount: 370971981128046925967
  WITHDRAW: LDO, Amount: 185485990564023462983
  WITHDRAW: LDO, Amount: 185485990564023462983
  BORROW: LDO, Amount 370971981128046925967, Stable: false
  REPAY: LDO, Amount: 370971981128046925967
  E2E: Collateral WETH, TestAsset ENS
  SUPPLY: WETH, Amount: 44786653794352307524
  SUPPLY: ENS, Amount: 61510265195043659558
  WITHDRAW: ENS, Amount: 30755132597521829779
  WITHDRAW: ENS, Amount: 30755132597521829778
  BORROW: ENS, Amount 61510265195043659558, Stable: false
  REPAY: ENS, Amount: 61510265195043659558
  E2E: Collateral WETH, TestAsset 1INCH
  SUPPLY: WETH, Amount: 44786653794352307524
  SUPPLY: 1INCH, Amount: 2656499075843819000073
  WITHDRAW: 1INCH, Amount: 1328249537921909500036
  WITHDRAW: 1INCH, Amount: 1328249537921909500037
  BORROW: 1INCH, Amount 2656499075843819000073, Stable: false
  REPAY: 1INCH, Amount: 2656499075843819000073
  E2E: Collateral WETH, TestAsset FRAX
  SUPPLY: WETH, Amount: 44786653794352307524
  SUPPLY: FRAX, Amount: 1002113537619923428103
  WITHDRAW: FRAX, Amount: 501056768809961714051
  WITHDRAW: FRAX, Amount: 501056768809961714053
  BORROW: FRAX, Amount 1002113537619923428103, Stable: false
  REPAY: FRAX, Amount: 1002113537619923428103
  E2E: Collateral WETH, TestAsset GHO
  SUPPLY: WETH, Amount: 44786653794352307524
  BORROW: GHO, Amount 1000000000000000000000, Stable: false
  REPAY: GHO, Amount: 1000000000000000000000
  E2E: Collateral WETH, TestAsset RPL
  SUPPLY: WETH, Amount: 44786653794352307524
  SUPPLY: RPL, Amount: 35976011195734684112
  WITHDRAW: RPL, Amount: 17988005597867342056
  WITHDRAW: RPL, Amount: 17988005597867342056
  BORROW: RPL, Amount 35976011195734684112, Stable: false
  REPAY: RPL, Amount: 35976011195734684112
  E2E: Collateral WETH, TestAsset sDAI
  SUPPLY: WETH, Amount: 44786653794352307524
  SUPPLY: sDAI, Amount: 949900932931902666007
  WITHDRAW: sDAI, Amount: 474950466465951333003
  WITHDRAW: sDAI, Amount: 474950466465951333004
  E2E: Collateral WETH, TestAsset STG
  SUPPLY: WETH, Amount: 44786653794352307524
  SUPPLY: STG, Amount: 1964150058157501147014
  WITHDRAW: STG, Amount: 982075029078750573507
  WITHDRAW: STG, Amount: 982075029078750573506
  BORROW: STG, Amount 1964150058157501147014, Stable: false
  REPAY: STG, Amount: 1964150058157501147014
  E2E: Collateral WETH, TestAsset KNC
  SUPPLY: WETH, Amount: 44786653794352307524
  SUPPLY: KNC, Amount: 1744572012783735229515
  WITHDRAW: KNC, Amount: 872286006391867614757
  WITHDRAW: KNC, Amount: 872286006391867614757
  BORROW: KNC, Amount 1744572012783735229515, Stable: false
  REPAY: KNC, Amount: 1744572012783735229515
  E2E: Collateral WETH, TestAsset FXS
  SUPPLY: WETH, Amount: 44786653794352307524
  SUPPLY: FXS, Amount: 105519499747668582265
  WITHDRAW: FXS, Amount: 52759749873834291132
  WITHDRAW: FXS, Amount: 52759749873834291134
  BORROW: FXS, Amount 105519499747668582265, Stable: false
  REPAY: FXS, Amount: 105519499747668582265
  E2E: Collateral WETH, TestAsset crvUSD
  SUPPLY: WETH, Amount: 44786653794352307524
  SUPPLY: crvUSD, Amount: 1000848559442637846071
  WITHDRAW: crvUSD, Amount: 500424279721318923035
  WITHDRAW: crvUSD, Amount: 500424279721318923035
  BORROW: crvUSD, Amount 1000848559442637846071, Stable: false
  REPAY: crvUSD, Amount: 1000848559442637846071

[PASS] test_oracleSwapFreezers() (gas: 1370275)
Test result: ok. 4 passed; 0 failed; 0 skipped; finished in 235.66s
 
Ran 1 test suites: 4 tests passed, 0 failed, 0 skipped (4 total tests)

Please sign in to comment.