Skip to content

Commit

Permalink
Contango flash borrow New Pools whitelist - Review (#262)
Browse files Browse the repository at this point in the history
* Code to add contango as flashborrower

* scroll test

* add MD file

* rm Metis, Update addresses & md

* Update src/20240319_Multi_ContangoFlashborrower/ContangoFlashborrower.md

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

---------

Co-authored-by: Rozengarden <[email protected]>
Co-authored-by: sendra <[email protected]>
  • Loading branch information
3 people authored Mar 27, 2024
1 parent b981b8c commit e5a6d3c
Show file tree
Hide file tree
Showing 21 changed files with 660 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
## Raw diff

```json
{}
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
## Raw diff

```json
{}
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
## Raw diff

```json
{}
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
## Raw diff

```json
{}
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
## Raw diff

```json
{}
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
## Raw diff

```json
{}
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

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

/**
* @title Contango FlashBorrower
* @author Aave Chan Initiative
* - Snapshot: https://snapshot.org/#/aave.eth/proposal/0x09bb9e7cffc974d330d82ce7a0b0502b573d6f3b4f839ea15d6629613901e96d
* - Discussion: https://governance.aave.com/t/arfc-add-contango-protocol-cian-protocol-and-index-coop-to-flashborrowers-on-aave-v3/16478
*/
contract AaveV3Avalanche_ContangoFlashborrower_20240319 is IProposalGenericExecutor {
address public constant NEW_FLASH_BORROWER = 0x14F8e5Fe35b2d0D67dBcE9329f1b5d09f60c06C3;

function execute() external {
AaveV3Avalanche.ACL_MANAGER.addFlashBorrower(NEW_FLASH_BORROWER);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import {GovV3Helpers} from 'aave-helpers/GovV3Helpers.sol';
import {AaveV3Avalanche} from 'aave-address-book/AaveV3Avalanche.sol';

import 'forge-std/Test.sol';
import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/ProtocolV3TestBase.sol';
import {AaveV3Avalanche_ContangoFlashborrower_20240319} from './AaveV3Avalanche_ContangoFlashborrower_20240319.sol';

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

function setUp() public {
vm.createSelectFork(vm.rpcUrl('avalanche'), 43078653);
proposal = new AaveV3Avalanche_ContangoFlashborrower_20240319();
}

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

function test_isFlashBorrower() external {
GovV3Helpers.executePayload(vm, address(proposal));
bool isFlashBorrower = AaveV3Avalanche.ACL_MANAGER.isFlashBorrower(
proposal.NEW_FLASH_BORROWER()
);
assertEq(isFlashBorrower, true);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

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

/**
* @title Contango FlashBorrower
* @author Aave Chan Initiative
* - Snapshot: https://snapshot.org/#/aave.eth/proposal/0x09bb9e7cffc974d330d82ce7a0b0502b573d6f3b4f839ea15d6629613901e96d
* - Discussion: https://governance.aave.com/t/arfc-add-contango-protocol-cian-protocol-and-index-coop-to-flashborrowers-on-aave-v3/16478
*/
contract AaveV3BNB_ContangoFlashborrower_20240319 is IProposalGenericExecutor {
address public constant NEW_FLASH_BORROWER = 0x14F8e5Fe35b2d0D67dBcE9329f1b5d09f60c06C3;

function execute() external {
AaveV3BNB.ACL_MANAGER.addFlashBorrower(NEW_FLASH_BORROWER);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import {GovV3Helpers} from 'aave-helpers/GovV3Helpers.sol';
import {AaveV3BNB} from 'aave-address-book/AaveV3BNB.sol';

import 'forge-std/Test.sol';
import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/ProtocolV3TestBase.sol';
import {AaveV3BNB_ContangoFlashborrower_20240319} from './AaveV3BNB_ContangoFlashborrower_20240319.sol';

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

function setUp() public {
vm.createSelectFork(vm.rpcUrl('bnb'), 37168106);
proposal = new AaveV3BNB_ContangoFlashborrower_20240319();
}

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

function test_isFlashBorrower() external {
GovV3Helpers.executePayload(vm, address(proposal));
bool isFlashBorrower = AaveV3BNB.ACL_MANAGER.isFlashBorrower(proposal.NEW_FLASH_BORROWER());
assertEq(isFlashBorrower, true);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

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

/**
* @title Contango FlashBorrower
* @author Aave Chan Initiative
* - Snapshot: https://snapshot.org/#/aave.eth/proposal/0x09bb9e7cffc974d330d82ce7a0b0502b573d6f3b4f839ea15d6629613901e96d
* - Discussion: https://governance.aave.com/t/arfc-add-contango-protocol-cian-protocol-and-index-coop-to-flashborrowers-on-aave-v3/16478
*/
contract AaveV3Base_ContangoFlashborrower_20240319 is IProposalGenericExecutor {
address public constant NEW_FLASH_BORROWER = 0xab515542d621574f9b5212d50593cD0C07e641bD;

function execute() external {
AaveV3Base.ACL_MANAGER.addFlashBorrower(NEW_FLASH_BORROWER);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import {GovV3Helpers} from 'aave-helpers/GovV3Helpers.sol';
import {AaveV3Base} from 'aave-address-book/AaveV3Base.sol';

import 'forge-std/Test.sol';
import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/ProtocolV3TestBase.sol';
import {AaveV3Base_ContangoFlashborrower_20240319} from './AaveV3Base_ContangoFlashborrower_20240319.sol';

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

function setUp() public {
vm.createSelectFork(vm.rpcUrl('base'), 12007301);
proposal = new AaveV3Base_ContangoFlashborrower_20240319();
}

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

function test_isFlashBorrower() external {
GovV3Helpers.executePayload(vm, address(proposal));
bool isFlashBorrower = AaveV3Base.ACL_MANAGER.isFlashBorrower(proposal.NEW_FLASH_BORROWER());
assertEq(isFlashBorrower, true);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

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

/**
* @title Contango FlashBorrower
* @author Aave Chan Initiative
* - Snapshot: https://snapshot.org/#/aave.eth/proposal/0x09bb9e7cffc974d330d82ce7a0b0502b573d6f3b4f839ea15d6629613901e96d
* - Discussion: https://governance.aave.com/t/arfc-add-contango-protocol-cian-protocol-and-index-coop-to-flashborrowers-on-aave-v3/16478
*/
contract AaveV3Gnosis_ContangoFlashborrower_20240319 is IProposalGenericExecutor {
address public constant NEW_FLASH_BORROWER = 0xab515542d621574f9b5212d50593cD0C07e641bD;

function execute() external {
AaveV3Gnosis.ACL_MANAGER.addFlashBorrower(NEW_FLASH_BORROWER);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import {GovV3Helpers} from 'aave-helpers/GovV3Helpers.sol';
import {AaveV3Gnosis} from 'aave-address-book/AaveV3Gnosis.sol';

import 'forge-std/Test.sol';
import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/ProtocolV3TestBase.sol';
import {AaveV3Gnosis_ContangoFlashborrower_20240319} from './AaveV3Gnosis_ContangoFlashborrower_20240319.sol';

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

function setUp() public {
vm.createSelectFork(vm.rpcUrl('gnosis'), 32999851);
proposal = new AaveV3Gnosis_ContangoFlashborrower_20240319();
}

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

function test_isFlashBorrower() external {
GovV3Helpers.executePayload(vm, address(proposal));
bool isFlashBorrower = AaveV3Gnosis.ACL_MANAGER.isFlashBorrower(proposal.NEW_FLASH_BORROWER());
assertEq(isFlashBorrower, true);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

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

/**
* @title Contango FlashBorrower
* @author Aave Chan Initiative
* - Snapshot: https://snapshot.org/#/aave.eth/proposal/0x09bb9e7cffc974d330d82ce7a0b0502b573d6f3b4f839ea15d6629613901e96d
* - Discussion: https://governance.aave.com/t/arfc-add-contango-protocol-cian-protocol-and-index-coop-to-flashborrowers-on-aave-v3/16478
*/
contract AaveV3Polygon_ContangoFlashborrower_20240319 is IProposalGenericExecutor {
address public constant NEW_FLASH_BORROWER = 0xab515542d621574f9b5212d50593cD0C07e641bD;

function execute() external {
AaveV3Polygon.ACL_MANAGER.addFlashBorrower(NEW_FLASH_BORROWER);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import {GovV3Helpers} from 'aave-helpers/GovV3Helpers.sol';
import {AaveV3Polygon} from 'aave-address-book/AaveV3Polygon.sol';

import 'forge-std/Test.sol';
import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/ProtocolV3TestBase.sol';
import {AaveV3Polygon_ContangoFlashborrower_20240319} from './AaveV3Polygon_ContangoFlashborrower_20240319.sol';

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

function setUp() public {
vm.createSelectFork(vm.rpcUrl('polygon'), 54819969);
proposal = new AaveV3Polygon_ContangoFlashborrower_20240319();
}

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

function test_isFlashBorrower() external {
GovV3Helpers.executePayload(vm, address(proposal));
bool isFlashBorrower = AaveV3Polygon.ACL_MANAGER.isFlashBorrower(proposal.NEW_FLASH_BORROWER());
assertEq(isFlashBorrower, true);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

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

/**
* @title Contango FlashBorrower
* @author Aave Chan Initiative
* - Snapshot: https://snapshot.org/#/aave.eth/proposal/0x09bb9e7cffc974d330d82ce7a0b0502b573d6f3b4f839ea15d6629613901e96d
* - Discussion: https://governance.aave.com/t/arfc-add-contango-protocol-cian-protocol-and-index-coop-to-flashborrowers-on-aave-v3/16478
*/
contract AaveV3Scroll_ContangoFlashborrower_20240319 is IProposalGenericExecutor {
address public constant NEW_FLASH_BORROWER = 0x14F8e5Fe35b2d0D67dBcE9329f1b5d09f60c06C3;

function execute() external {
AaveV3Scroll.ACL_MANAGER.addFlashBorrower(NEW_FLASH_BORROWER);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import {GovV3Helpers} from 'aave-helpers/GovV3Helpers.sol';
import {AaveV3Scroll} from 'aave-address-book/AaveV3Scroll.sol';

import 'forge-std/Test.sol';
import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/ProtocolV3TestBase.sol';
import {AaveV3Scroll_ContangoFlashborrower_20240319} from './AaveV3Scroll_ContangoFlashborrower_20240319.sol';

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

function setUp() public {
vm.createSelectFork(vm.rpcUrl('scroll'), 4244173);
proposal = new AaveV3Scroll_ContangoFlashborrower_20240319();
}

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

function test_isFlashBorrower() external {
GovV3Helpers.executePayload(vm, address(proposal));
bool isFlashBorrower = AaveV3Scroll.ACL_MANAGER.isFlashBorrower(proposal.NEW_FLASH_BORROWER());
assertEq(isFlashBorrower, true);
}
}
Loading

1 comment on commit e5a6d3c

@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 (9148dbc 2024-03-27T00:16:30.762176889Z)
Build log
Compiling 478 files with 0.8.19
Solc 0.8.19 finished in 327.86s
Compiler run successful with warnings:
Warning (3628): This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.
  --> src/20240218_AaveV1Ethereum_AaveV1DeprecationPhase2/AaveV1Ethereum_AaveV1Deprecation_20240218.t.sol:86:1:
   |
86 | contract AaveV1Ethereum_AaveV1Deprecation_20240218_Test is ProtocolV2TestBase {
   | ^ (Relevant source part starts here and spans across multiple lines).
Note: The payable fallback function is defined here.
   --> src/20240218_AaveV1Ethereum_AaveV1DeprecationPhase2/AaveV1Ethereum_AaveV1Deprecation_20240218.t.sol:232:3:
    |
232 |   fallback() external payable {}
    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Warning (9302): Return value of low-level calls not used.
  --> src/20231229_Multi_TreasuryManagementGSMFundingRWAStrategyPreparationsPart1/AaveV2Ethereum_TreasuryManagementGSMFundingRWAStrategyPreparationsPart1_20231229.sol:47:5:
   |
47 |     SAFE.call{value: address(this).balance}('');
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

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

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

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

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

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

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

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

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

Warning (2018): Function state mutability can be restricted to pure
  --> src/20240308_AaveV3Ethereum_GHOBorrowRateIncrease/GhoInterestRateStrategy.sol:67:3:
   |
67 |   function getBaseVariableBorrowRate() external view override returns (uint256) {
   |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to pure
  --> src/20240308_AaveV3Ethereum_GHOBorrowRateIncrease/GhoInterestRateStrategy.sol:72:3:
   |
72 |   function getMaxVariableBorrowRate() external view override returns (uint256) {
   |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to pure
  --> src/20240308_AaveV3Ethereum_GHOBorrowRateIncrease/GhoInterestRateStrategy.sol:77:3:
   |
77 |   function calculateInterestRates(
   |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to pure
  --> src/20240313_Multi_UpdateADIImplementationAndCCIPAdapters/BaseTest.sol:91:3:
   |
91 |   function getTrustedRemoteByChainId(uint256 chainId) public view returns (address) {
   |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to view
   --> src/20240313_Multi_UpdateADIImplementationAndCCIPAdapters/BaseTest.sol:316:3:
    |
316 |   function _getCurrentForwarderAdaptersByChain() internal returns (ForwarderAdapters[] memory) {
    |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to view
   --> src/20240313_Multi_UpdateADIImplementationAndCCIPAdapters/BaseTest.sol:341:3:
    |
341 |   function _getCurrentReceiverAdaptersByChain() internal returns (AdaptersByChain[] memory) {
    |   ^ (Relevant source part starts here and spans across multiple lines).

| Contract                                                                                                 | Size (kB) | Margin (kB) |
|----------------------------------------------------------------------------------------------------------|-----------|-------------|
| AaveGovernanceV2                                                                                         | 0.045     | 24.531      |
| AaveSafetyModule                                                                                         | 0.045     | 24.531      |
| AaveSwapper                                                                                              | 5.572     | 19.004      |
| AaveV1Ethereum_AaveV1Deprecation_20240218                                                                | 0.297     | 24.279      |
| AaveV2Avalanche                                                                                          | 0.045     | 24.531      |
| AaveV2AvalancheAssets                                                                                    | 0.045     | 24.531      |
| AaveV2Avalanche_ChaosLabsRiskParameterUpdatesWBTCEOnV2AndV3Avalanche_20231221                            | 0.336     | 24.24       |
| AaveV2Avalanche_StablecoinIRCurvesUpdates_20231221                                                       | 1.858     | 22.718      |
| AaveV2Ethereum                                                                                           | 0.045     | 24.531      |
| AaveV2EthereumAMM                                                                                        | 0.045     | 24.531      |
| AaveV2EthereumAMMAssets                                                                                  | 0.045     | 24.531      |
| AaveV2EthereumAMM_ARFCDeprecateAaveV2AMMMarketStep2_20240205                                             | 2.894     | 21.682      |
| AaveV2EthereumAssets                                                                                     | 0.045     | 24.531      |
| AaveV2Ethereum_AMPLInterestRateUpdatesOnV2Ethereum_20240121                                              | 1.602     | 22.974      |
| AaveV2Ethereum_ChaosLabsV2EthereumLTReductions_20240201                                                  | 0.926     | 23.65       |
| AaveV2Ethereum_EthereumV2ReserveFactorAdjustment_20240304                                                | 4.904     | 19.672      |
| AaveV2Ethereum_EthereumV2ReserveFactorAdjustment_20240320                                                | 1.778     | 22.798      |
| AaveV2Ethereum_MigrationOfRemainingGovV2Permissions_20240130                                             | 0.977     | 23.599      |
| AaveV2Ethereum_MigrationOfRemainingGovV2Permissions_Part2_20240130                                       | 1.446     | 23.13       |
| AaveV2Ethereum_StablecoinIRCurvesUpdates_20231221                                                        | 2.839     | 21.737      |
| AaveV2Ethereum_TreasuryManagementGSMFundingRWAStrategyPreparationsPart1_20231229                         | 3.415     | 21.161      |
| AaveV2Ethereum_V2DeprecationPlan20240102_20240103                                                        | 0.927     | 23.649      |
| AaveV2Polygon                                                                                            | 0.045     | 24.531      |
| AaveV2PolygonAssets                                                                                      | 0.045     | 24.531      |
| AaveV2Polygon_ReserveFactorUpdatesFebruary152024_20240208                                                | 0.831     | 23.745      |
| AaveV2Polygon_ReserveFactorUpdatesFebruary292024_20240229                                                | 0.683     | 23.893      |
| AaveV2Polygon_ReserveFactorUpdatesJan152024_20240108                                                     | 1.134     | 23.442      |
| AaveV2Polygon_ReserveFactorUpdatesJan312024_20240125                                                     | 0.831     | 23.745      |
| AaveV2Polygon_ReserveFactorUpdates_20240102                                                              | 0.995     | 23.581      |
| AaveV2Polygon_ReserveFactorUpdates_20240313                                                              | 0.535     | 24.041      |
| AaveV2Polygon_StablecoinIRCurvesUpdates_20231221                                                         | 1.858     | 22.718      |
| AaveV3Arbitrum                                                                                           | 0.045     | 24.531      |
| AaveV3ArbitrumAssets                                                                                     | 0.045     | 24.531      |
| AaveV3ArbitrumEModes                                                                                     | 0.045     | 24.531      |
| AaveV3Arbitrum_ARBRemoveIsolation_20240315                                                               | 0.193     | 24.383      |
| AaveV3Arbitrum_AaveProtocolEmbassy_20240220                                                              | 0.435     | 24.141      |
| AaveV3Arbitrum_AddFlashborrowers_20240306                                                                | 0.25      | 24.326      |
| AaveV3Arbitrum_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229                                   | 0.323     | 24.253      |
| AaveV3Arbitrum_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115                                       | 3.362     | 21.214      |
| AaveV3Arbitrum_Patch_20240104                                                                            | 0.479     | 24.097      |
| AaveV3Arbitrum_SetLiquidityObservationLabsAsEmissionManagerForWstETHOnV3Markets_20240206                 | 0.212     | 24.364      |
| AaveV3Arbitrum_StablecoinHarmonization_20240312                                                          | 4.469     | 20.107      |
| AaveV3Arbitrum_StablecoinIRCurvesUpdates_20231221                                                        | 4.878     | 19.698      |
| AaveV3Arbitrum_UpdateADIImplementationAndCCIPAdapters_20240313                                           | 0.588     | 23.988      |
| AaveV3Arbitrum_UpdateStETHAndWETHRiskParamsOnAaveV3EthereumOptimismAndArbitrum_20240121                  | 3.892     | 20.684      |
| AaveV3Arbitrum_UpdateWETHIROnV3ArbitrumAndOptimism_20240216                                              | 3.622     | 20.954      |
| AaveV3Avalanche                                                                                          | 0.045     | 24.531      |
| AaveV3AvalancheAssets                                                                                    | 0.045     | 24.531      |
| AaveV3AvalancheEModes                                                                                    | 0.045     | 24.531      |
| AaveV3Avalanche_ChaosLabsRiskParameterUpdatesWBTCEOnV2AndV3Avalanche_20231221                            | 3.513     | 21.063      |
| AaveV3Avalanche_ContangoFlashborrower_20240319                                                           | 0.25      | 24.326      |
| AaveV3Avalanche_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115                                      | 3.377     | 21.199      |
| AaveV3Avalanche_Patch_20240104                                                                           | 0.479     | 24.097      |
| AaveV3Avalanche_StablecoinHarmonization_20240312                                                         | 3.983     | 20.593      |
| AaveV3Avalanche_StablecoinIRCurvesUpdates_20231221                                                       | 4.628     | 19.948      |
| AaveV3Avalanche_UpdateADIImplementationAndCCIPAdapters_20240313                                          | 3.292     | 21.284      |
| AaveV3BNB                                                                                                | 0.045     | 24.531      |
| AaveV3BNBAssets                                                                                          | 0.045     | 24.531      |
| AaveV3BNBEModes                                                                                          | 0.045     | 24.531      |
| AaveV3BNB_ContangoFlashborrower_20240319                                                                 | 0.25      | 24.326      |
| AaveV3BNB_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115                                            | 3.38      | 21.196      |
| AaveV3BNB_OnboardFdUSDToAaveV3OnBSC_20240201                                                             | 5.014     | 19.562      |
| AaveV3BNB_SetAaveChanInitiativeAsEmissionManagerForFdUSDOnBNBChainAaveV3_20240208                        | 0.212     | 24.364      |
| AaveV3BNB_UpdateADIImplementationAndCCIPAdapters_20240313                                                | 3.084     | 21.492      |
| AaveV3Base                                                                                               | 0.045     | 24.531      |
| AaveV3BaseAssets                                                                                         | 0.045     | 24.531      |
| AaveV3BaseEModes                                                                                         | 0.045     | 24.531      |
| AaveV3Base_ContangoFlashborrower_20240319                                                                | 0.25      | 24.326      |
| AaveV3Base_Patch_20240104                                                                                | 0.479     | 24.097      |
| AaveV3Base_SetLiquidityObservationLabsAsEmissionManagerForWstETHOnV3Markets_20240206                     | 0.212     | 24.364      |
| AaveV3Base_StablecoinIRCurvesUpdates_20231221                                                            | 3.618     | 20.958      |
| AaveV3Base_UpdateADIImplementationAndCCIPAdapters_20240313                                               | 0.588     | 23.988      |
| AaveV3Ethereum                                                                                           | 0.045     | 24.531      |
| AaveV3EthereumAssets                                                                                     | 0.045     | 24.531      |
| AaveV3EthereumEModes                                                                                     | 0.045     | 24.531      |
| AaveV3Ethereum_AaveBGDPhase3_20240325                                                                    | 2.253     | 22.323      |
| AaveV3Ethereum_AaveLiquidityCommiteeFunding_20240306                                                     | 1.964     | 22.612      |
| AaveV3Ethereum_ActivationOfACPrimeFoundation_20240308                                                    | 0.502     | 24.074      |
| AaveV3Ethereum_AddFlashborrowers_20240306                                                                | 1.223     | 23.353      |
| AaveV3Ethereum_AddPYUSDToAaveV3EthereumMarket_20240125                                                   | 4.993     | 19.583      |
| AaveV3Ethereum_AmendSafetyModuleEmissions_20240229                                                       | 2.399     | 22.177      |
| AaveV3Ethereum_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229                                   | 0.967     | 23.609      |
| AaveV3Ethereum_ChaosLabsRiskParameterUpdatesIncreaseDebtCeilingForSNXAndMKROnV3Ethereum01312024_20240211 | 3.533     | 21.043      |
| AaveV3Ethereum_CutGauntletServiceProviderStream_20240227                                                 | 0.479     | 24.097      |
| AaveV3Ethereum_FundingUpdate_20240224                                                                    | 10.54     | 14.036      |
| AaveV3Ethereum_GHOBorrowRateIncrease20240229_20240229                                                    | 0.285     | 24.291      |
| AaveV3Ethereum_GHOBorrowRateIncrease_20240308                                                            | 0.233     | 24.343      |
| AaveV3Ethereum_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115                                       | 3.376     | 21.2        |
| AaveV3Ethereum_MeritApprovals_20240306                                                                   | 0.534     | 24.042      |
| AaveV3Ethereum_OrbitProgram_20240220                                                                     | 2.308     | 22.268      |
| AaveV3Ethereum_Patch_20240104                                                                            | 0.479     | 24.097      |
| AaveV3Ethereum_RegisterADIScrollAdapter_20240122                                                         | 0.63      | 23.946      |
| AaveV3Ethereum_RequestForBountyPayoutJanuary2024_20240125                                                | 0.781     | 23.795      |
| AaveV3Ethereum_RetroactiveBugBountyPreImmunefi_20240205                                                  | 0.782     | 23.794      |
| AaveV3Ethereum_SecurityBudgetRequestDecember2023_20240206                                                | 0.514     | 24.062      |
| AaveV3Ethereum_SetLiquidityObservationLabsAsEmissionManagerForWstETHOnV3Markets_20240206                 | 0.212     | 24.364      |
| AaveV3Ethereum_StableRateBugBounty_20240207                                                              | 0.768     | 23.808      |
| AaveV3Ethereum_StablecoinHarmonization_20240312                                                          | 5.299     | 19.277      |
| AaveV3Ethereum_StablecoinIRCurvesUpdates_20231221                                                        | 4.627     | 19.949      |
| AaveV3Ethereum_StkGHOActivation_20240119                                                                 | 1.115     | 23.461      |
| AaveV3Ethereum_TreasuryManagementGSMFundingRWAStrategyPreparationsPart2_20240209                         | 3.098     | 21.478      |
| AaveV3Ethereum_UpdateADIImplementationAndCCIPAdapters_20240313                                           | 3.553     | 21.023      |
| AaveV3Ethereum_UpdateStETHAndWETHRiskParamsOnAaveV3EthereumOptimismAndArbitrum_20240121                  | 3.905     | 20.671      |
| AaveV3Fantom                                                                                             | 0.045     | 24.531      |
| AaveV3FantomAssets                                                                                       | 0.045     | 24.531      |
| AaveV3FantomEModes                                                                                       | 0.045     | 24.531      |
| AaveV3GenericPatch_20240104                                                                              | 0.479     | 24.097      |
| AaveV3Gnosis                                                                                             | 0.045     | 24.531      |
| AaveV3GnosisAssets                                                                                       | 0.045     | 24.531      |
| AaveV3GnosisEModes                                                                                       | 0.045     | 24.531      |
| AaveV3Gnosis_ContangoFlashborrower_20240319                                                              | 0.25      | 24.326      |
| AaveV3Gnosis_Patch_20240104                                                                              | 0.479     | 24.097      |
| AaveV3Gnosis_StablecoinHarmonization_20240312                                                            | 3.571     | 21.005      |
| AaveV3Gnosis_StablecoinIRCurvesUpdates_20231221                                                          | 3.87      | 20.706      |
| AaveV3Gnosis_UpdateADIImplementationAndCCIPAdapters_20240313                                             | 0.588     | 23.988      |
| AaveV3Harmony                                                                                            | 0.045     | 24.531      |
| AaveV3HarmonyAssets                                                                                      | 0.045     | 24.531      |
| AaveV3HarmonyEModes                                                                                      | 0.045     | 24.531      |
| AaveV3Metis                                                                                              | 0.045     | 24.531      |
| AaveV3MetisAssets                                                                                        | 0.045     | 24.531      |
| AaveV3MetisEModes                                                                                        | 0.045     | 24.531      |
| AaveV3Metis_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115                                          | 3.37      | 21.206      |
| AaveV3Metis_StablecoinHarmonization_20240312                                                             | 3.397     | 21.179      |
| AaveV3Metis_StablecoinIRCurvesUpdates_20231221                                                           | 3.869     | 20.707      |
| AaveV3Metis_UpdateADIImplementationAndCCIPAdapters_20240313                                              | 0.588     | 23.988      |
| AaveV3Optimism                                                                                           | 0.045     | 24.531      |
| AaveV3OptimismAssets                                                                                     | 0.045     | 24.531      |
| AaveV3OptimismEModes                                                                                     | 0.045     | 24.531      |
| AaveV3Optimism_AddFlashborrowers_20240306                                                                | 0.25      | 24.326      |
| AaveV3Optimism_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229                                   | 0.31      | 24.266      |
| AaveV3Optimism_GauntletRecommendationForMAIMIMATICDeprecationPhase2_20240122                             | 3.375     | 21.201      |
| AaveV3Optimism_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115                                       | 3.362     | 21.214      |
| AaveV3Optimism_Patch_20240104                                                                            | 0.479     | 24.097      |
| AaveV3Optimism_SetLiquidityObservationLabsAsEmissionManagerForWstETHOnV3Markets_20240206                 | 0.212     | 24.364      |
| AaveV3Optimism_StablecoinHarmonization_20240312                                                          | 3.749     | 20.827      |
| AaveV3Optimism_StablecoinIRCurvesUpdates_20231221                                                        | 4.878     | 19.698      |
| AaveV3Optimism_UpdateADIImplementationAndCCIPAdapters_20240313                                           | 0.588     | 23.988      |
| AaveV3Optimism_UpdateStETHAndWETHRiskParamsOnAaveV3EthereumOptimismAndArbitrum_20240121                  | 3.892     | 20.684      |
| AaveV3Optimism_UpdateWETHIROnV3ArbitrumAndOptimism_20240216                                              | 3.609     | 20.967      |
| AaveV3Polygon                                                                                            | 0.045     | 24.531      |
| AaveV3PolygonAssets                                                                                      | 0.045     | 24.531      |
| AaveV3PolygonEModes                                                                                      | 0.045     | 24.531      |
| AaveV3Polygon_ContangoFlashborrower_20240319                                                             | 0.25      | 24.326      |
| AaveV3Polygon_FreezeAndSetLTVTo0ForDPIBALCRVAndSUSHIOnAaveV3Polygon20240119_20240130                     | 4.355     | 20.221      |
| AaveV3Polygon_FundingUpdate_20240224                                                                     | 2.902     | 21.674      |
| AaveV3Polygon_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115                                        | 3.361     | 21.215      |
| AaveV3Polygon_MaticXSupplyCapIncreaseInPolygonV3_20240206                                                | 3.294     | 21.282      |
| AaveV3Polygon_Patch_20240104                                                                             | 0.479     | 24.097      |
| AaveV3Polygon_SetLiquidityObservationLabsAsEmissionManagerForWstETHOnV3Markets_20240206                  | 0.212     | 24.364      |
| AaveV3Polygon_StablecoinHarmonization_20240312                                                           | 3.975     | 20.601      |
| AaveV3Polygon_StablecoinIRCurvesUpdates_20231221                                                         | 4.375     | 20.201      |
| AaveV3Polygon_TreasuryManagementGSMFundingRWAStrategyPreparationsPart1_20231229                          | 3.418     | 21.158      |
| AaveV3Polygon_UpdateADIImplementationAndCCIPAdapters_20240313                                            | 3.292     | 21.284      |
| AaveV3Scroll                                                                                             | 0.045     | 24.531      |
| AaveV3ScrollAssets                                                                                       | 0.045     | 24.531      |
| AaveV3ScrollEModes                                                                                       | 0.045     | 24.531      |
| AaveV3Scroll_AaveV3ScrollActivation_20240122                                                             | 6.6       | 17.976      |
| AaveV3Scroll_ContangoFlashborrower_20240319                                                              | 0.25      | 24.326      |
| AaveV3Scroll_UpdateADIImplementationAndCCIPAdapters_20240313                                             | 0.588     | 23.988      |
| AaveV3Scroll_V3PeripheryMaintenance_20240314                                                             | 0.25      | 24.326      |
| Address                                                                                                  | 0.045     | 24.531      |
| BaseCCCImplementationUpdatePayload                                                                       | 0.588     | 23.988      |
| ChainHelpers                                                                                             | 0.045     | 24.531      |
| ChainIds                                                                                                 | 0.045     | 24.531      |
| ConfiguratorInputTypes                                                                                   | 0.045     | 24.531      |
| Create2Utils                                                                                             | 0.123     | 24.453      |
| DataTypes                                                                                                | 0.045     | 24.531      |
| ERC1967Proxy                                                                                             | 0.136     | 24.44       |
| EngineFlags                                                                                              | 0.045     | 24.531      |
| EnumerableSet                                                                                            | 0.045     | 24.531      |
| EnvelopeUtils                                                                                            | 0.045     | 24.531      |
| Errors                                                                                                   | 4.673     | 19.903      |
| GhoInterestRateStrategy                                                                                  | 0.671     | 23.905      |
| Gho_GHOStabilityModule_20240119                                                                          | 4.494     | 20.082      |
| GovHelpers                                                                                               | 0.045     | 24.531      |
| GovV3Helpers                                                                                             | 2.581     | 21.995      |
| GovV3StorageHelpers                                                                                      | 0.045     | 24.531      |
| GovernanceV3Arbitrum                                                                                     | 0.045     | 24.531      |
| GovernanceV3Avalanche                                                                                    | 0.045     | 24.531      |
| GovernanceV3BNB                                                                                          | 0.045     | 24.531      |
| GovernanceV3Base                                                                                         | 0.045     | 24.531      |
| GovernanceV3Ethereum                                                                                     | 0.045     | 24.531      |
| GovernanceV3Gnosis                                                                                       | 0.045     | 24.531      |
| GovernanceV3Metis                                                                                        | 0.045     | 24.531      |
| GovernanceV3Optimism                                                                                     | 0.045     | 24.531      |
| GovernanceV3Polygon                                                                                      | 0.045     | 24.531      |
| GovernanceV3PolygonZkEvm                                                                                 | 0.045     | 24.531      |
| GovernanceV3Scroll                                                                                       | 0.045     | 24.531      |
| IpfsUtils                                                                                                | 0.045     | 24.531      |
| MainnetPayload                                                                                           | 2.583     | 21.993      |
| MiscArbitrum                                                                                             | 0.045     | 24.531      |
| MiscAvalanche                                                                                            | 0.045     | 24.531      |
| MiscBNB                                                                                                  | 0.045     | 24.531      |
| MiscBase                                                                                                 | 0.045     | 24.531      |
| MiscEthereum                                                                                             | 0.045     | 24.531      |
| MiscGnosis                                                                                               | 0.045     | 24.531      |
| MiscMetis                                                                                                | 0.045     | 24.531      |
| MiscOptimism                                                                                             | 0.045     | 24.531      |
| MiscPolygon                                                                                              | 0.045     | 24.531      |
| MiscScroll                                                                                               | 0.045     | 24.531      |
| MockExecutor                                                                                             | 0.396     | 24.18       |
| OrbitProgramData                                                                                         | 0.488     | 24.088      |
| ParaswapClaim                                                                                            | 0.022     | 24.554      |
| ParaswapClaimer                                                                                          | 0.159     | 24.417      |
| Payloads                                                                                                 | 0.484     | 24.092      |
| PayloadsControllerUtils                                                                                  | 0.045     | 24.531      |
| PayloadsToDeploy                                                                                         | 0.045     | 24.531      |
| PolygonPayload                                                                                           | 1.593     | 22.983      |
| PoolAddresses                                                                                            | 0.316     | 24.26       |
| ProxyAdmin                                                                                               | 1.642     | 22.934      |
| ProxyHelpers                                                                                             | 0.045     | 24.531      |
| ReserveConfiguration                                                                                     | 0.13      | 24.446      |
| RewardsDataTypes                                                                                         | 0.045     | 24.531      |
| SafeERC20                                                                                                | 0.045     | 24.531      |
| StataPayloads                                                                                            | 0.045     | 24.531      |
| StorageHelpers                                                                                           | 0.045     | 24.531      |
| StorageSlot                                                                                              | 0.045     | 24.531      |
| TransactionUtils                                                                                         | 0.045     | 24.531      |
| TransparentUpgradeableProxy                                                                              | 2.04      | 22.536      |
| WadRayMath                                                                                               | 0.045     | 24.531      |
Test success 🌈
No files changed, compilation skipped

Ran 2 tests for src/20240319_Multi_ContangoFlashborrower/AaveV3Avalanche_ContangoFlashborrower_20240319.t.sol:AaveV3Avalanche_ContangoFlashborrower_20240319_Test
[PASS] test_defaultProposalExecution() (gas: 39518874)
Logs:
  0xd586E7F844cEa2F87f50152665BCbc2C279D8d70
  0x5947BB275c521040051D82396192181b413227A3
  0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E
  0x50b7545627a5162F82A992c33b87aDc75187B218
  0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB
  0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7
  0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7
  0xD24C2Ad096400B6FBcd2ad8B24E7acBc21A1da64
  0x5c49b268c9841AFF1Cc3B0a418ff5c3442eE3F3b
  0x152b9d0FdC40C096757F570A51E494bd4b943E50
  E2E: Collateral DAI.e, TestAsset DAI.e
  SUPPLY: DAI.e, Amount: 99996630113565172853674
  SUPPLY: DAI.e, Amount: 999966301135651728536
  WITHDRAW: DAI.e, Amount: 499983150567825864268
  WITHDRAW: DAI.e, Amount: 499983150567825864268
  BORROW: DAI.e, Amount 999966301135651728536, Stable: false
  REPAY: DAI.e, Amount: 999966301135651728536
  E2E: Collateral DAI.e, TestAsset LINK.e
  SUPPLY: DAI.e, Amount: 99996630113565172853674
  SUPPLY: LINK.e, Amount: 54197430661645859325
  WITHDRAW: LINK.e, Amount: 27098715330822929662
  WITHDRAW: LINK.e, Amount: 27098715330822929664
  BORROW: LINK.e, Amount 54197430661645859325, Stable: false
  REPAY: LINK.e, Amount: 54197430661645859325
  E2E: Collateral DAI.e, TestAsset USDC
  SUPPLY: DAI.e, Amount: 99996630113565172853674
  SUPPLY: USDC, Amount: 1000030460
  WITHDRAW: USDC, Amount: 500015230
  WITHDRAW: USDC, Amount: 500015231
  BORROW: USDC, Amount 1000030460, Stable: false
  REPAY: USDC, Amount: 1000030460
  E2E: TestAsset WBTC.e SKIPPED
  E2E: Collateral DAI.e, TestAsset WETH.e
  SUPPLY: DAI.e, Amount: 99996630113565172853674
  SUPPLY: WETH.e, Amount: 282773441918335029
  WITHDRAW: WETH.e, Amount: 141386720959167514
  WITHDRAW: WETH.e, Amount: 141386720959167515
  BORROW: WETH.e, Amount 282773441918335029, Stable: false
  REPAY: WETH.e, Amount: 282773441918335029
  E2E: Collateral DAI.e, TestAsset USDt
  SUPPLY: DAI.e, Amount: 99996630113565172853674
  SUPPLY: USDt, Amount: 1000100010
  WITHDRAW: USDt, Amount: 500050005
  WITHDRAW: USDt, Amount: 500050006
  BORROW: USDt, Amount 1000100010, Stable: false
  REPAY: USDt, Amount: 1000100010
  E2E: Collateral DAI.e, TestAsset AAVE.e
  SUPPLY: DAI.e, Amount: 99996630113565172853674
  SUPPLY: AAVE.e, Amount: 8078553499818604119
  WITHDRAW: AAVE.e, Amount: 4039276749909302059
  WITHDRAW: AAVE.e, Amount: 4039276749909302060
  E2E: Collateral DAI.e, TestAsset WAVAX
  SUPPLY: DAI.e, Amount: 99996630113565172853674
  SUPPLY: WAVAX, Amount: 16233107422588368978
  WITHDRAW: WAVAX, Amount: 8116553711294184489
  WITHDRAW: WAVAX, Amount: 8116553711294184489
  BORROW: WAVAX, Amount 16233107422588368978, Stable: false
  REPAY: WAVAX, Amount: 16233107422588368978
  E2E: Collateral DAI.e, TestAsset sAVAX
  SUPPLY: DAI.e, Amount: 99996630113565172853674
  SUPPLY: sAVAX, Amount: 14276948588046683415
  WITHDRAW: sAVAX, Amount: 7138474294023341707
  WITHDRAW: sAVAX, Amount: 7138474294023341709
  E2E: Collateral DAI.e, TestAsset FRAX
  SUPPLY: DAI.e, Amount: 99996630113565172853674
  SUPPLY: FRAX, Amount: 1000719667548917804238
  WITHDRAW: FRAX, Amount: 500359833774458902119
  WITHDRAW: FRAX, Amount: 500359833774458902120
  BORROW: FRAX, Amount 1000719667548917804238, Stable: false
  REPAY: FRAX, Amount: 1000719667548917804238
  E2E: TestAsset MAI SKIPPED
  E2E: Collateral DAI.e, TestAsset BTC.b
  SUPPLY: DAI.e, Amount: 99996630113565172853674
  SUPPLY: BTC.b, Amount: 1471670
  WITHDRAW: BTC.b, Amount: 735835
  WITHDRAW: BTC.b, Amount: 735834
  BORROW: BTC.b, Amount 1471670, Stable: false
  REPAY: BTC.b, Amount: 1471670

[PASS] test_isFlashBorrower() (gas: 108807)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 21.52s (21.84s CPU time)

Ran 1 test suite in 21.53s (21.52s CPU time): 2 tests passed, 0 failed, 0 skipped (2 total tests)
No files changed, compilation skipped

Ran 2 tests for src/20240319_Multi_ContangoFlashborrower/AaveV3BNB_ContangoFlashborrower_20240319.t.sol:AaveV3BNB_ContangoFlashborrower_20240319_Test
[PASS] test_defaultProposalExecution() (gas: 18711584)
Logs:
  0x0E09FaBB73Bd3Ade0a17ECC321fD13a19e81cE82
  0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c
  0x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c
  0x2170Ed0880ac9A755fd29B2688956BD959F933F8
  0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d
  0x55d398326f99059fF775485246999027B3197955
  0xc5f0f7b66764F6ec8C8Dff7BA683102295E16409
  E2E: Collateral WBNB, TestAsset Cake
  SUPPLY: WBNB, Amount: 177918945548708684464
  SUPPLY: Cake, Amount: 243682532180830949003
  WITHDRAW: Cake, Amount: 121841266090415474501
  WITHDRAW: Cake, Amount: 121841266090415474502
  BORROW: Cake, Amount 243682532180830949003, Stable: false
  REPAY: Cake, Amount: 243682532180830949003
  E2E: Collateral WBNB, TestAsset WBNB
  SUPPLY: WBNB, Amount: 177918945548708684464
  SUPPLY: WBNB, Amount: 1779189455487086844
  WITHDRAW: WBNB, Amount: 889594727743543422
  WITHDRAW: WBNB, Amount: 889594727743543423
  BORROW: WBNB, Amount 1779189455487086844, Stable: false
  REPAY: WBNB, Amount: 1779189455487086844
  E2E: Collateral WBNB, TestAsset BTCB
  SUPPLY: WBNB, Amount: 177918945548708684464
  SUPPLY: BTCB, Amount: 15001345095607997
  WITHDRAW: BTCB, Amount: 7500672547803998
  WITHDRAW: BTCB, Amount: 7500672547803999
  BORROW: BTCB, Amount 15001345095607997, Stable: false
  REPAY: BTCB, Amount: 15001345095607997
  E2E: Collateral WBNB, TestAsset ETH
  SUPPLY: WBNB, Amount: 177918945548708684464
  SUPPLY: ETH, Amount: 284351834211506581
  WITHDRAW: ETH, Amount: 142175917105753290
  WITHDRAW: ETH, Amount: 142175917105753291
  BORROW: ETH, Amount 284351834211506581, Stable: false
  REPAY: ETH, Amount: 284351834211506581
  E2E: Collateral WBNB, TestAsset USDC
  SUPPLY: WBNB, Amount: 177918945548708684464
  SUPPLY: USDC, Amount: 999973640694831284247
  WITHDRAW: USDC, Amount: 499986820347415642123
  WITHDRAW: USDC, Amount: 499986820347415642123
  BORROW: USDC, Amount 999973640694831284247, Stable: false
  REPAY: USDC, Amount: 999973640694831284247
  E2E: Collateral WBNB, TestAsset USDT
  SUPPLY: WBNB, Amount: 177918945548708684464
  SUPPLY: USDT, Amount: 1000134328041599267197
  WITHDRAW: USDT, Amount: 500067164020799633598
  WITHDRAW: USDT, Amount: 500067164020799633600
  BORROW: USDT, Amount 1000134328041599267197, Stable: false
  REPAY: USDT, Amount: 1000134328041599267197
  E2E: Collateral WBNB, TestAsset FDUSD
  SUPPLY: WBNB, Amount: 177918945548708684464
  SUPPLY: FDUSD, Amount: 1000207473036131884836
  WITHDRAW: FDUSD, Amount: 500103736518065942418
  WITHDRAW: FDUSD, Amount: 500103736518065942417
  BORROW: FDUSD, Amount 1000207473036131884836, Stable: false
  REPAY: FDUSD, Amount: 1000207473036131884836

[PASS] test_isFlashBorrower() (gas: 109178)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 13.03s (13.23s CPU time)

Ran 1 test suite in 13.03s (13.03s CPU time): 2 tests passed, 0 failed, 0 skipped (2 total tests)
No files changed, compilation skipped

Ran 2 tests for src/20240319_Multi_ContangoFlashborrower/AaveV3Base_ContangoFlashborrower_20240319.t.sol:AaveV3Base_ContangoFlashborrower_20240319_Test
[PASS] test_defaultProposalExecution() (gas: 11895092)
Logs:
  0x4200000000000000000000000000000000000006
  0x2Ae3F1Ec7F1F5012CFEab0185bfc7aa3cf0DEc22
  0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA
  0xc1CBa3fCea344f92D9239c08C0568f6F2F0ee452
  0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
  E2E: Collateral WETH, TestAsset WETH
  SUPPLY: WETH, Amount: 28308770577440094154
  SUPPLY: WETH, Amount: 283087705774400941
  WITHDRAW: WETH, Amount: 141543852887200470
  WITHDRAW: WETH, Amount: 141543852887200471
  BORROW: WETH, Amount 283087705774400941, Stable: false
  REPAY: WETH, Amount: 283087705774400941
  E2E: Collateral WETH, TestAsset cbETH
  SUPPLY: WETH, Amount: 28308770577440094154
  SUPPLY: cbETH, Amount: 265386204898988789
  WITHDRAW: cbETH, Amount: 132693102449494394
  WITHDRAW: cbETH, Amount: 132693102449494395
  BORROW: cbETH, Amount 265386204898988789, Stable: false
  REPAY: cbETH, Amount: 265386204898988789
  E2E: Collateral WETH, TestAsset USDbC
  SUPPLY: WETH, Amount: 28308770577440094154
  SUPPLY: USDbC, Amount: 1000004610
  WITHDRAW: USDbC, Amount: 500002305
  WITHDRAW: USDbC, Amount: 500002305
  BORROW: USDbC, Amount 1000004610, Stable: false
  REPAY: USDbC, Amount: 1000004610
  E2E: Collateral WETH, TestAsset wstETH
  SUPPLY: WETH, Amount: 28308770577440094154
  SUPPLY: wstETH, Amount: 243907572498882009
  WITHDRAW: wstETH, Amount: 121953786249441004
  WITHDRAW: wstETH, Amount: 121953786249441005
  BORROW: wstETH, Amount 243907572498882009, Stable: false
  REPAY: wstETH, Amount: 243907572498882009
  E2E: Collateral WETH, TestAsset USDC
  SUPPLY: WETH, Amount: 28308770577440094154
  SUPPLY: USDC, Amount: 1000004610
  WITHDRAW: USDC, Amount: 500002305
  WITHDRAW: USDC, Amount: 500002305
  BORROW: USDC, Amount 1000004610, Stable: false
  REPAY: USDC, Amount: 1000004610

[PASS] test_isFlashBorrower() (gas: 109155)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 11.52s (11.67s CPU time)

Ran 1 test suite in 11.53s (11.52s CPU time): 2 tests passed, 0 failed, 0 skipped (2 total tests)
No files changed, compilation skipped

Ran 2 tests for src/20240319_Multi_ContangoFlashborrower/AaveV3Gnosis_ContangoFlashborrower_20240319.t.sol:AaveV3Gnosis_ContangoFlashborrower_20240319_Test
[PASS] test_defaultProposalExecution() (gas: 18404360)
Logs:
  0x6A023CCd1ff6F2045C3309768eAd9E68F978f6e1
  0x6C76971f98945AE98dD7d4DFcA8711ebea946eA6
  0x9C58BAcC331c9aa871AFD802DB6379a98e80CEdb
  0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83
  0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d
  0xcB444e90D8198415266c6a2724b7900fb12FC56E
  E2E: Collateral WETH, TestAsset WETH
  SUPPLY: WETH, Amount: 28278162008689072375
  SUPPLY: WETH, Amount: 282781620086890723
  WITHDRAW: WETH, Amount: 141390810043445361
  WITHDRAW: WETH, Amount: 141390810043445362
  BORROW: WETH, Amount 282781620086890723, Stable: false
  REPAY: WETH, Amount: 282781620086890723
  E2E: Collateral WETH, TestAsset wstETH
  SUPPLY: WETH, Amount: 28278162008689072375
  SUPPLY: wstETH, Amount: 243623004389673410
  WITHDRAW: wstETH, Amount: 121811502194836705
  WITHDRAW: wstETH, Amount: 121811502194836706
  BORROW: wstETH, Amount 243623004389673410, Stable: false
  REPAY: wstETH, Amount: 243623004389673410
  E2E: Collateral WETH, TestAsset GNO
  SUPPLY: WETH, Amount: 28278162008689072375
  SUPPLY: GNO, Amount: 2950470452513653302
  WITHDRAW: GNO, Amount: 1475235226256826651
  WITHDRAW: GNO, Amount: 1475235226256826652
  BORROW: GNO, Amount 2950470452513653302, Stable: false
  REPAY: GNO, Amount: 2950470452513653302
  E2E: Collateral WETH, TestAsset USDC
  SUPPLY: WETH, Amount: 28278162008689072375
  SUPPLY: USDC, Amount: 1000047122
  WITHDRAW: USDC, Amount: 500023561
  WITHDRAW: USDC, Amount: 500023562
  BORROW: USDC, Amount 1000047122, Stable: false
  REPAY: USDC, Amount: 1000047122
  E2E: Collateral WETH, TestAsset WXDAI
  SUPPLY: WETH, Amount: 28278162008689072375
  SUPPLY: WXDAI, Amount: 1000020000400008000160
  WITHDRAW: WXDAI, Amount: 500010000200004000080
  WITHDRAW: WXDAI, Amount: 500010000200004000079
  BORROW: WXDAI, Amount 1000020000400008000160, Stable: false
  REPAY: WXDAI, Amount: 1000020000400008000160
  E2E: Collateral WETH, TestAsset EURe
  SUPPLY: WETH, Amount: 28278162008689072375
  SUPPLY: EURe, Amount: 919683996578775532726
  WITHDRAW: EURe, Amount: 459841998289387766363
  WITHDRAW: EURe, Amount: 459841998289387766364
  BORROW: EURe, Amount 919683996578775532726, Stable: false
  REPAY: EURe, Amount: 919683996578775532726
  E2E: Collateral WETH, TestAsset sDAI
  SUPPLY: WETH, Amount: 28278162008689072375
  SUPPLY: sDAI, Amount: 952529982500500173493
  WITHDRAW: sDAI, Amount: 476264991250250086746
  WITHDRAW: sDAI, Amount: 476264991250250086747

[PASS] test_isFlashBorrower() (gas: 109208)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 61.58s (62.82s CPU time)

Ran 1 test suite in 61.59s (61.58s CPU time): 2 tests passed, 0 failed, 0 skipped (2 total tests)
No files changed, compilation skipped

Ran 2 tests for src/20240319_Multi_ContangoFlashborrower/AaveV3Polygon_ContangoFlashborrower_20240319.t.sol:AaveV3Polygon_ContangoFlashborrower_20240319_Test
[PASS] test_defaultProposalExecution() (gas: 110118420)
Logs:
  0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063
  0x53E0bca35eC356BD5ddDFebbD1Fc0fD03FaBad39
  0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174
  0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6
  0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619
  0xc2132D05D31c914a87C6611C10748AEb04B58e8F
  0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270
  0x172370d5Cd63279eFa6d502DAB29171933a610AF
  0x0b3F868E0BE5597D5DB7fEB59E1CADBb0fdDa50a
  0x385Eeac5cB85A38A9a07A70c73e0a3271CfB54A7
  0x9a71012B13CA4d3D0Cdc72A177DF3ef03b0E76A3
  0x85955046DF4668e1DD369D2DE9f3AEB98DD2A369
  0xE111178A87A3BFf0c8d18DECBa5798827539Ae99
  0x4e3Decbb3645551B8A19f0eA1678079FCB33fB4c
  0xE0B52e49357Fd4DAf2c15e02058DCE6BC0057db4
  0xa3Fa99A148fA48D14Ed51d610c367C61876997F1
  0xfa68FB4628DFF1028CFEc22b4162FCcd0d45efb6
  0x03b54A6e9a984069379fae1a4fC4dBAE93B3bCCD
  0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359
  E2E: Collateral DAI, TestAsset DAI
  SUPPLY: DAI, Amount: 99973936794677627542499
  SUPPLY: DAI, Amount: 999739367946776275424
  WITHDRAW: DAI, Amount: 499869683973388137712
  WITHDRAW: DAI, Amount: 499869683973388137713
  BORROW: DAI, Amount 999739367946776275424, Stable: false
  REPAY: DAI, Amount: 999739367946776275424
  E2E: Collateral DAI, TestAsset LINK
  SUPPLY: DAI, Amount: 99973936794677627542499
  SUPPLY: LINK, Amount: 54096366184794268814
  WITHDRAW: LINK, Amount: 27048183092397134407
  WITHDRAW: LINK, Amount: 27048183092397134407
  BORROW: LINK, Amount 54096366184794268814, Stable: false
  REPAY: LINK, Amount: 54096366184794268814
  E2E: Collateral DAI, TestAsset USDC
  SUPPLY: DAI, Amount: 99973936794677627542499
  SUPPLY: USDC, Amount: 999997470
  WITHDRAW: USDC, Amount: 499998735
  WITHDRAW: USDC, Amount: 499998734
  BORROW: USDC, Amount 999997470, Stable: false
  REPAY: USDC, Amount: 999997470
  E2E: Collateral DAI, TestAsset WBTC
  SUPPLY: DAI, Amount: 99973936794677627542499
  SUPPLY: WBTC, Amount: 1472460
  WITHDRAW: WBTC, Amount: 736230
  WITHDRAW: WBTC, Amount: 736230
  BORROW: WBTC, Amount 1472460, Stable: false
  REPAY: WBTC, Amount: 1472460
  E2E: Collateral DAI, TestAsset WETH
  SUPPLY: DAI, Amount: 99973936794677627542499
  SUPPLY: WETH, Amount: 282349531988568582
  WITHDRAW: WETH, Amount: 141174765994284291
  WITHDRAW: WETH, Amount: 141174765994284291
  BORROW: WETH, Amount 282349531988568582, Stable: false
  REPAY: WETH, Amount: 282349531988568582
  E2E: Collateral DAI, TestAsset USDT
  SUPPLY: DAI, Amount: 99973936794677627542499
  SUPPLY: USDT, Amount: 1000090008
  WITHDRAW: USDT, Amount: 500045004
  WITHDRAW: USDT, Amount: 500045004
  BORROW: USDT, Amount 1000090008, Stable: false
  REPAY: USDT, Amount: 1000090008
  E2E: Collateral DAI, TestAsset AAVE
  SUPPLY: DAI, Amount: 99973936794677627542499
  SUPPLY: AAVE, Amount: 8002752857352097119
  WITHDRAW: AAVE, Amount: 4001376428676048559
  WITHDRAW: AAVE, Amount: 4001376428676048560
  E2E: Collateral DAI, TestAsset WMATIC
  SUPPLY: DAI, Amount: 99973936794677627542499
  SUPPLY: WMATIC, Amount: 965337845657074387660
  WITHDRAW: WMATIC, Amount: 482668922828537193830
  WITHDRAW: WMATIC, Amount: 482668922828537193829
  BORROW: WMATIC, Amount 965337845657074387660, Stable: false
  REPAY: WMATIC, Amount: 965337845657074387660
  E2E: TestAsset CRV SKIPPED
  E2E: TestAsset SUSHI SKIPPED
  E2E: Collateral DAI, TestAsset GHST
  SUPPLY: DAI, Amount: 99973936794677627542499
  SUPPLY: GHST, Amount: 918475642714811935223
  WITHDRAW: GHST, Amount: 459237821357405967611
  WITHDRAW: GHST, Amount: 459237821357405967613
  E2E: TestAsset BAL SKIPPED
  E2E: TestAsset DPI SKIPPED
  E2E: Collateral DAI, TestAsset EURS
  SUPPLY: DAI, Amount: 99973936794677627542499
  SUPPLY: EURS, Amount: 91975
  WITHDRAW: EURS, Amount: 45987
  WITHDRAW: EURS, Amount: 45988
  BORROW: EURS, Amount 91975, Stable: false
  REPAY: EURS, Amount: 91975
  E2E: TestAsset jEUR SKIPPED
  E2E: Collateral DAI, TestAsset EURA
  SUPPLY: DAI, Amount: 99973936794677627542499
  SUPPLY: EURA, Amount: 919751667049896527937
  WITHDRAW: EURA, Amount: 459875833524948263968
  WITHDRAW: EURA, Amount: 459875833524948263969
  E2E: TestAsset miMATIC SKIPPED
  E2E: Collateral DAI, TestAsset stMATIC
  SUPPLY: DAI, Amount: 99973936794677627542499
  SUPPLY: stMATIC, Amount: 869237635740040542460
  WITHDRAW: stMATIC, Amount: 434618817870020271230
  WITHDRAW: stMATIC, Amount: 434618817870020271230
  E2E: Collateral DAI, TestAsset MaticX
  SUPPLY: DAI, Amount: 99973936794677627542499
  SUPPLY: MaticX, Amount: 874633627999443418144
  WITHDRAW: MaticX, Amount: 437316813999721709072
  WITHDRAW: MaticX, Amount: 437316813999721709071
  BORROW: MaticX, Amount 874633627999443418144, Stable: false
  REPAY: MaticX, Amount: 874633627999443418144
  E2E: Collateral DAI, TestAsset wstETH
  SUPPLY: DAI, Amount: 99973936794677627542499
  SUPPLY: wstETH, Amount: 243250750349088117
  WITHDRAW: wstETH, Amount: 121625375174544058
  WITHDRAW: wstETH, Amount: 121625375174544058
  BORROW: wstETH, Amount 243250750349088117, Stable: false
  REPAY: wstETH, Amount: 243250750349088117
  E2E: Collateral DAI, TestAsset USDC
  SUPPLY: DAI, Amount: 99973936794677627542499
  SUPPLY: USDC, Amount: 999997470
  WITHDRAW: USDC, Amount: 499998735
  WITHDRAW: USDC, Amount: 499998734
  BORROW: USDC, Amount 999997470, Stable: false
  REPAY: USDC, Amount: 999997470

[PASS] test_isFlashBorrower() (gas: 108784)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 41.77s (42.19s CPU time)

Ran 1 test suite in 41.77s (41.77s CPU time): 2 tests passed, 0 failed, 0 skipped (2 total tests)
No files changed, compilation skipped

Ran 2 tests for src/20240319_Multi_ContangoFlashborrower/AaveV3Scroll_ContangoFlashborrower_20240319.t.sol:AaveV3Scroll_ContangoFlashborrower_20240319_Test
[PASS] test_defaultProposalExecution() (gas: 6658385)
Logs:
  0x5300000000000000000000000000000000000004
  0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4
  0xf610A9dfB7C89644979b4A0f27063E9e7d7Cda32
  E2E: Collateral WETH, TestAsset WETH
  SUPPLY: WETH, Amount: 28234470335453742055
  SUPPLY: WETH, Amount: 282344703354537420
  WITHDRAW: WETH, Amount: 141172351677268710
  WITHDRAW: WETH, Amount: 141172351677268710
  BORROW: WETH, Amount 282344703354537420, Stable: false
  REPAY: WETH, Amount: 282344703354537420
  E2E: Collateral WETH, TestAsset USDC
  SUPPLY: WETH, Amount: 28234470335453742055
  SUPPLY: USDC, Amount: 1000030000
  WITHDRAW: USDC, Amount: 500015000
  WITHDRAW: USDC, Amount: 500014999
  BORROW: USDC, Amount 1000030000, Stable: false
  REPAY: USDC, Amount: 1000030000
  E2E: Collateral WETH, TestAsset wstETH
  SUPPLY: WETH, Amount: 28234470335453742055
  SUPPLY: wstETH, Amount: 243246590367342739
  WITHDRAW: wstETH, Amount: 121623295183671369
  WITHDRAW: wstETH, Amount: 121623295183671369
  BORROW: wstETH, Amount 243246590367342739, Stable: false
  REPAY: wstETH, Amount: 243246590367342739

[PASS] test_isFlashBorrower() (gas: 109231)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 7.34s (7.64s CPU time)

Ran 1 test suite in 7.34s (7.34s CPU time): 2 tests passed, 0 failed, 0 skipped (2 total tests)

Please sign in to comment.