Skip to content

Conversation

@sakulstra
Copy link
Contributor

@sakulstra sakulstra commented May 8, 2025

The LiquidationDataProvider helper contract returns how much debt and collateral can be liquidated for a borrower. The return data should be passed to a liquidation call.

There existed two edge cases when this contract returns data, with which the Pool contract returns an error.

Example:

  1. A borrower has X debt and Y collateral
  2. Also, we can liquidate the whole X amount of debt from the borrower, but he doesn't have enough collateral. In this case, we can only liquidate N amount of debt (N < X) and Y amount of collateral.

For this example, we have two bad edge cases:

  1. When we pass N amount of debt to be liquidated, the contract calculates the amount of collateral that will be liquidated. Sometimes this amount equals M, where M < Y, and we have some leftovers in the collateral. This happens because of an integer division and a +-1 error. And these leftovers can be lower than the allowed threshold of leftovers (1000$), and because of that, a liquidation call reverts.
  2. When we call the LiquidationDataProvider helper contract not in the same block as when we make a liquidation call, we may also face an error. This can happen because some time passed and a borrower now has a bigger amount of the collateral because he has some interest. And because of that, after a liquidation (N amount of debt and Y amount of collateral) there will be some leftovers in collateral token,s and those leftovers can be lower than the allowed threshold of leftovers (1000$), and because of that, a liquidation call reverts.

Solution:
Now, if a borrower has all his collateral balance liquidatable, the LiquidationDataProvider helper contract returns that we can liquidate the whole debt balance of the borrower. The Pool contract in this case will calculate itself how much debt and collateral will be liquidatable.

@codecov
Copy link

codecov bot commented May 8, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

📢 Thoughts on this report? Let us know!

@github-actions
Copy link
Contributor

github-actions bot commented May 8, 2025

🌈 Test Results
No files changed, compilation skipped

Ran 6 tests for tests/treasury/Collector.t.sol:FundsAdminRoleBytesTest
[PASS] testApprove() (gas: 49675)
[PASS] testApproveWhenNotFundsAdmin() (gas: 18171)
[PASS] testTransfer() (gas: 54918)
[PASS] testTransferWhenNotFundsAdmin() (gas: 18195)
[PASS] test_receiveEth() (gas: 20297)
[PASS] test_successful() (gas: 13389)
Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 3.51ms (377.18µs CPU time)

Ran 7 tests for tests/treasury/Collector.t.sol:IsFundsAdminTest
[PASS] testApprove() (gas: 49675)
[PASS] testApproveWhenNotFundsAdmin() (gas: 18193)
[PASS] testTransfer() (gas: 54873)
[PASS] testTransferWhenNotFundsAdmin() (gas: 18217)
[PASS] test_isFundsAdmin() (gas: 24267)
[PASS] test_isNotFundsAdmin() (gas: 17595)
[PASS] test_receiveEth() (gas: 20297)
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 3.43ms (508.63µs CPU time)

Ran 20 tests for tests/protocol/configuration/ACLManager.t.sol:ACLManagerTest
[PASS] testDefaultAdminRoleAfterDeploy() (gas: 20689)
[PASS] test_defaultAdmin_grantAdminRole_FlashBorrowAdmin() (gas: 65510)
[PASS] test_defaultAdmin_grants_AssetsListingRole() (gas: 37593)
[PASS] test_defaultAdmin_grants_BridgeRole() (gas: 37659)
[PASS] test_defaultAdmin_grants_EmergencyAdminRole() (gas: 37606)
[PASS] test_defaultAdmin_grants_PoolAdminRole() (gas: 37726)
[PASS] test_defaultAdmin_grants_RiskRole() (gas: 37723)
[PASS] test_defaultAdmin_remove_AssetsListingRole() (gas: 29442)
[PASS] test_defaultAdmin_remove_BridgeRole() (gas: 29531)
[PASS] test_defaultAdmin_remove_EmergencyAdminRole() (gas: 29426)
[PASS] test_defaultAdmin_remove_PoolAdminRole() (gas: 29548)
[PASS] test_defaultAdmin_remove_RiskRole() (gas: 29432)
[PASS] test_flashBorrowAdmin_grantRole_FlashBorrowRole() (gas: 91916)
[PASS] test_flashBorrowAdmin_removeRole_FlashBorrowRole() (gas: 76438)
[PASS] test_remove_riskAdmin() (gas: 29442)
[PASS] test_revert_anyUser_grantAdminRole_FlashBorrowAdmin() (gas: 72851)
[PASS] test_revert_deploy_ACLADMIN_zeroAddress() (gas: 1469924)
[PASS] test_reverts_defaultAdmin_notRoleAdmin_addRole_FlashBorrowRole() (gas: 98836)
[PASS] test_reverts_defaultAdmin_notRoleAdmin_revokeRole_FlashBorrowRole() (gas: 125219)
[PASS] test_reverts_notAdmin_grantRole_FlashBorrow() (gas: 113990)
Suite result: ok. 20 passed; 0 failed; 0 skipped; finished in 8.60ms (2.69ms CPU time)

Ran 26 tests for tests/treasury/Collector.t.sol:StreamsTest
[PASS] testApprove() (gas: 49653)
[PASS] testApproveWhenNotFundsAdmin() (gas: 18345)
[PASS] testCancelStreamByFundsAdmin() (gas: 206193)
[PASS] testCancelStreamByRecipient() (gas: 231303)
[PASS] testCancelStreamWhenNotAdminOrRecipient() (gas: 242254)
[PASS] testCancelStreamWhenStreamNotExists() (gas: 22848)
[PASS] testCreateStream() (gas: 244333)
[PASS] testCreateStreamWhenDepositIsZero() (gas: 27266)
[PASS] testCreateStreamWhenNotFundsAdmin() (gas: 24611)
[PASS] testCreateStreamWhenRecipientIsCollector() (gas: 25055)
[PASS] testCreateStreamWhenRecipientIsTheCaller() (gas: 25310)
[PASS] testCreateStreamWhenRecipientIsZero() (gas: 25078)
[PASS] testCreateStreamWhenStartTimeInThePast() (gas: 25778)
[PASS] testCreateStreamWhenStopTimeBeforeStart() (gas: 23224)
[PASS] testGetNextStreamId() (gas: 17598)
[PASS] testGetNotExistingStream() (gas: 18426)
[PASS] testGetStream() (gas: 234368)
[PASS] testTransfer() (gas: 54962)
[PASS] testTransferWhenNotFundsAdmin() (gas: 18347)
[PASS] testWithdrawFromStream() (gas: 307230)
[PASS] testWithdrawFromStreamFinishesSuccessfully() (gas: 230235)
[PASS] testWithdrawFromStreamWhenAmountExceedsBalance() (gas: 243637)
[PASS] testWithdrawFromStreamWhenAmountIsZero() (gas: 238129)
[PASS] testWithdrawFromStreamWhenNotAdminOrRecipient() (gas: 240288)
[PASS] testWithdrawFromStreamWhenStreamNotExists() (gas: 23014)
[PASS] test_receiveEth() (gas: 20319)
Suite result: ok. 26 passed; 0 failed; 0 skipped; finished in 6.03ms (2.93ms CPU time)
2025-05-08T11:53:45.748343Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"
2025-05-08T11:53:45.748344Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"
2025-05-08T11:53:45.750775Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 9 tests for tests/gas/AToken.Transfer.gas.t.sol:ATokenTransfer_gas_Tests
[PASS] test_transfer_fullAmount() (gas: 604123)
[PASS] test_transfer_fullAmount_dirtyReceiver() (gas: 1062068)
[PASS] test_transfer_fullAmount_senderCollateralDisabled() (gas: 699965)
[PASS] test_transfer_fullAmount_senderCollateralDisabled_receiverNonZeroFunds() (gas: 1103168)
[PASS] test_transfer_fullAmount_senderCollateralDisabled_receiverNonZeroFunds2() (gas: 1007350)
[PASS] test_transfer_partialAmount() (gas: 700059)
[PASS] test_transfer_partialAmount_receiverNonZeroFunds() (gas: 1103243)
[PASS] test_transfer_partialAmount_senderCollateralEnabled() (gas: 609006)
[PASS] test_transfer_partialAmount_senderCollateralEnabled_receiverNonZeroFunds() (gas: 1012168)
Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 54.84ms (17.08ms CPU time)
2025-05-08T11:53:45.803553Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 17 tests for tests/protocol/tokenization/ATokenEdgeCases.t.sol:ATokenEdgeCasesTests
[PASS] testApprove() (gas: 45105)
[PASS] testApproveMax() (gas: 45208)
[PASS] testApproveWithZeroAddressSpender() (gas: 42159)
[PASS] testCheckGetters() (gas: 259765)
[PASS] testDecreaseAllowance() (gas: 53034)
[PASS] testIncreaseAllowance() (gas: 53078)
[PASS] testIncreaseAllowanceFromZero() (gas: 48398)
[PASS] testMintToTreasury_amount_zero() (gas: 15793)
[PASS] testTransferFromZeroAmount() (gas: 129523)
[PASS] test_burn_zeroAddress() (gas: 259125)
[PASS] test_mintToZeroAddress() (gas: 82271)
[PASS] test_poolAdmin_setIncentivesController() (gas: 35820)
[PASS] test_revert_notAdmin_setIncentivesController() (gas: 40389)
[PASS] test_reverts_burnAmountScaledZero() (gas: 19433)
[PASS] test_reverts_mintAmountScaledZero() (gas: 19577)
[PASS] test_transferFrom_zeroAddress_origin() (gas: 129334)
[PASS] test_transfer_amount_MAX_UINT_128() (gas: 16460)
Suite result: ok. 17 passed; 0 failed; 0 skipped; finished in 35.52ms (3.24ms CPU time)
2025-05-08T11:53:45.838985Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 8 tests for tests/protocol/tokenization/ATokenEvents.t.sol:ATokenEventsTests
[PASS] test_atoken_burnEvents_fullBalance() (gas: 562246)
[PASS] test_atoken_burnEvents_multipleWithdrawals_withInterests() (gas: 649865)
[PASS] test_atoken_burnEvents_singleWithdraw_WithInterests() (gas: 572848)
[PASS] test_atoken_burnEvents_singleWithdraw_noInterests() (gas: 254908)
[PASS] test_atoken_burnEvents_withdrawAmountLessThanInterests() (gas: 575696)
[PASS] test_atoken_mintEvents_firstSupply() (gas: 252188)
[PASS] test_atoken_mintEvents_supplyAfterBorrow() (gas: 628468)
[PASS] test_mintToTreasury_events() (gas: 90162)
Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 41.67ms (10.24ms CPU time)
2025-05-08T11:53:45.880670Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 4 tests for tests/protocol/tokenization/ATokenModifiers.t.sol:ATokenModifiersTests
[PASS] test_revert_notAdmin_burn() (gas: 17084)
[PASS] test_revert_notAdmin_mint() (gas: 17178)
[PASS] test_revert_notAdmin_transferOnLiquidation() (gas: 17210)
[PASS] test_revert_notAdmin_transferUnderlyingTo() (gas: 17015)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 31.21ms (247.83µs CPU time)
2025-05-08T11:53:45.912510Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 9 tests for tests/protocol/tokenization/ATokenPermit.t.sol:ATokenPermitTests
[PASS] testCheckDomainSeparator() (gas: 26163)
[PASS] test_cancelPermit() (gas: 100693)
[PASS] test_chain_fork_calculateDomainSeparator() (gas: 32906)
[PASS] test_revert_submitPermit_0_expiration() (gas: 46698)
[PASS] test_revert_submitPermit_invalid_expiration_previosCurrentBlock() (gas: 47177)
[PASS] test_revert_submitPermit_invalid_nonce() (gas: 55087)
[PASS] test_revert_submitPermit_invalid_owner() (gas: 46525)
[PASS] test_revert_submitPermit_invalid_signature() (gas: 54947)
[PASS] test_submitPermit() (gas: 94296)
Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 36.62ms (5.46ms CPU time)
2025-05-08T11:53:45.949395Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 3 tests for tests/protocol/tokenization/ATokenRepay.t.sol:ATokenRepayTests
[PASS] test_repay_allDebt() (gas: 275412)
[PASS] test_repay_partialDebt() (gas: 274535)
[PASS] test_revert_repay_withoutFunds() (gas: 180152)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 31.26ms (1.82ms CPU time)
2025-05-08T11:53:45.981123Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 3 tests for tests/protocol/tokenization/ATokenRescueTokens.sol:ATokenRescueTokensTests
[PASS] test_rescueTokens() (gas: 77965)
[PASS] test_reverts_rescueTokens_CALLER_NOT_POOL_ADMIN() (gas: 70878)
[PASS] test_reverts_rescueTokens_UNDERLYING_CANNOT_BE_RESCUED() (gas: 71617)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 31.72ms (588.53µs CPU time)
2025-05-08T11:53:46.019661Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 28 tests for tests/invariants/CryticToFoundry.t.sol:CryticToFoundry
[PASS] test_replay_V33_setUserEMode() (gas: 3683815)
[PASS] test_replay_V33_supply() (gas: 2077206)
[PASS] test_replay_V33_transferFrom() (gas: 2552756)
[PASS] test_replay_v33_2liquidationCall() (gas: 2753953)
[PASS] test_replay_v33_2repayWithAtokens() (gas: 2094335)
[PASS] test_replay_v33_2setUserEMode() (gas: 2578252)
[PASS] test_replay_v33_2transfer() (gas: 2097118)
[PASS] test_replay_v33_3liquidationCall() (gas: 2858687)
[PASS] test_replay_v33_assert_BORROWING_HSPOST_C() (gas: 2205663)
[PASS] test_replay_v33_assert_BORROWING_HSPOST_G() (gas: 2598983)
[PASS] test_replay_v33_borrow() (gas: 6357408)
[PASS] test_replay_v33_echidna_BASE_INVARIANT_B() (gas: 3541210)
[PASS] test_replay_v33_echidna_BORROWING_INVARIANT_B() (gas: 7548672)
[PASS] test_replay_v33_echidna_BORROWING_INVARIANT_C() (gas: 19264751)
[PASS] test_replay_v33_eliminateReserveDeficit() (gas: 3541192)
[PASS] test_replay_v33_liquidationCall() (gas: 2274600)
[PASS] test_replay_v33_repayWithATokens() (gas: 2595997)
[PASS] test_replay_v33_setPoolPause() (gas: 3705403)
[PASS] test_replay_v33_setReserveActive() (gas: 2151398)
[PASS] test_replay_v33_supply() (gas: 2716563)
[PASS] test_v32_2_borrow() (gas: 2279749)
[PASS] test_v32_2_liquidationCall() (gas: 2662728)
[PASS] test_v32_borrow() (gas: 2126146)
[PASS] test_v32_liquidationCall() (gas: 2876854)
[PASS] test_v32_mintToTreasury() (gas: 2545356)
[PASS] test_v32_repay() (gas: 1966607)
[PASS] test_v32_setPoolPause() (gas: 4608999)
[PASS] test_v32_withdrawEchidna() (gas: 2114739)
Suite result: ok. 28 passed; 0 failed; 0 skipped; finished in 458.33ms (433.04ms CPU time)

Ran 13 tests for tests/deployments/DeploymentsGasLimits.t.sol:DeploymentsGasLimits
[PASS] test0AaveV3SetupDeployment() (gas: 4576799)
[PASS] test10ConfigEngineDeployment() (gas: 6574845)
[PASS] test11StaticATokenDeployment() (gas: 6703281)
[PASS] test12PeripheralsTreasuryPartner() (gas: 7595730)
[PASS] test1AaveV3GettersBatch1Deployment() (gas: 6573257)
[PASS] test2AaveV3GettersBatch2Deployment() (gas: 2063021)
[PASS] test3AaveV3PoolDeployment() (gas: 8514974)
[PASS] test4AaveV3L2PoolDeployment() (gas: 8765607)
[PASS] test5PeripheralsRelease() (gas: 7109059)
[PASS] test6MiscDeployment() (gas: 1360629)
[PASS] test7ParaswapDeployment() (gas: 5156198)
[PASS] test8SetupMarket() (gas: 2715177)
[PASS] test9TokensMarket() (gas: 3900799)
Suite result: ok. 13 passed; 0 failed; 0 skipped; finished in 18.20ms (7.65ms CPU time)
2025-05-08T11:53:46.230468Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 11 tests for tests/protocol/tokenization/ATokenTransfers.t.sol:ATokenTransferTests
[PASS] test_atoken_alice_transfer_all_to_bob() (gas: 162086)
[PASS] test_atoken_alice_transfer_to_bob() (gas: 232071)
[PASS] test_atoken_alice_transfer_to_bob_zero() (gas: 160039)
[PASS] test_atoken_alice_transfer_to_carol_accrues_interests() (gas: 224488)
[PASS] test_atoken_alice_transfer_to_herself() (gas: 81567)
[PASS] test_atoken_alice_transfer_to_herself_zero() (gas: 81608)
[PASS] test_atoken_multiple_transfers() (gas: 201287)
[PASS] test_atoken_transfer_sets_enabled_as_collateral(uint64,uint256) (runs: 1000, μ: 386102, ~: 390609)
[PASS] test_atoken_transfer_some_collateral_from_bob_borrower_to_alice() (gas: 524853)
[PASS] test_atoken_transfer_to_bob_them_bob_borrows() (gas: 395919)
[PASS] test_reverts_atoken_transfer_all_collateral_from_bob_borrower_to_alice() (gas: 405468)
Suite result: ok. 11 passed; 0 failed; 0 skipped; finished in 1.27s (1.24s CPU time)
2025-05-08T11:53:47.287374Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 12 tests for tests/misc/AaveOracle.t.sol:AaveOracleTest
[PASS] testAddSingleSource() (gas: 936825)
[PASS] testAssetZeroPriceAndZeroFallbackPrice() (gas: 1076118)
[PASS] testAssetZeroPriceNonZeroFallback() (gas: 1096069)
[PASS] testAssetZeroPriceWithoutFallback() (gas: 918563)
[PASS] testEmptySource() (gas: 821552)
[PASS] testGetBaseCurrencyPrice() (gas: 12315)
[PASS] testGetPriceViaFallbackOracle() (gas: 1000286)
[PASS] testUpdateFallbackOracle() (gas: 178617)
[PASS] testUpdateSingleSource() (gas: 126927)
[PASS] testUpdateSourceBaseCurrency() (gas: 138544)
[PASS] test_revert_setAssetSources_inconsistentParams() (gas: 822966)
[PASS] test_revert_setAssetSources_wrongCaller() (gas: 24620)
Suite result: ok. 12 passed; 0 failed; 0 skipped; finished in 35.36ms (2.49ms CPU time)
2025-05-08T11:53:47.321913Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"
2025-05-08T11:53:47.339973Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"
2025-05-08T11:53:47.388844Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"
2025-05-08T11:53:47.419668Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"
2025-05-08T11:53:47.475725Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 5 tests for tests/deployments/AaveV3BatchDeployment.t.sol:AaveV3BatchDeployment
[PASS] testAaveV3BatchDeploy() (gas: 54498880)
[PASS] testAaveV3BatchDeploymentCheck() (gas: 65605571)
[PASS] testAaveV3Batch_reuseIncentivesProxy() (gas: 53975694)
[PASS] testAaveV3L2BatchDeploymentCheck() (gas: 67435647)
[PASS] testAaveV3TreasuryPartnerBatchDeploymentCheck() (gas: 66112640)
Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 192.74ms (188.30ms CPU time)

Ran 12 tests for tests/deployments/AaveV3BatchTests.t.sol:AaveV3BatchTests
[PASS] test0AaveV3SetupDeployment() (gas: 4576886)
[PASS] test10StaticATokenDeployment() (gas: 6703331)
[PASS] test1AaveV3GettersDeployment() (gas: 7834796)
[PASS] test2AaveV3PoolDeployment() (gas: 8515008)
[PASS] test3AaveV3L2PoolDeployment() (gas: 8765684)
[PASS] test4PeripheralsRelease() (gas: 7109081)
[PASS] test5MiscDeployment() (gas: 929335)
[PASS] test6ParaswapRelease() (gas: 5156175)
[PASS] test7SetupMarket() (gas: 2690501)
[PASS] test8TokensMarket() (gas: 3900808)
[PASS] test9ConfigEngineDeployment() (gas: 6574908)
[PASS] testAaveV3FullBatchOrchestration() (gas: 54495216)
Suite result: ok. 12 passed; 0 failed; 0 skipped; finished in 40.40ms (16.53ms CPU time)
2025-05-08T11:53:47.558438Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 47 tests for tests/protocol/pool/L2Pool.t.sol:L2PoolTests
[PASS] test_dropReserve() (gas: 98864)
[PASS] test_getBorrowLogic() (gas: 13620)
[PASS] test_getBridgeLogic() (gas: 13706)
[PASS] test_getEModeLogic() (gas: 13708)
[PASS] test_getFlashLoanLogic() (gas: 13685)
[PASS] test_getLiquidationLogic() (gas: 13685)
[PASS] test_getPoolLogic() (gas: 13706)
[PASS] test_getSupplyLogic() (gas: 13683)
[PASS] test_getVirtualUnderlyingBalance() (gas: 244672)
[PASS] test_getters_getUserAccountData() (gas: 598641)
[PASS] test_l2_borrow() (gas: 432414)
[PASS] test_l2_liquidationCall() (gas: 1083406)
[PASS] test_l2_partial_withdraw() (gas: 307375)
[PASS] test_l2_repay() (gas: 461025)
[PASS] test_l2_repay_atokens() (gas: 468685)
[PASS] test_l2_repay_permit(uint128,uint128,uint128,uint128,uint128) (runs: 1000, μ: 630490, ~: 627817)
[PASS] test_l2_set_user_collateral() (gas: 267056)
[PASS] test_l2_supply() (gas: 250760)
[PASS] test_l2_supply_permit(uint128,uint128) (runs: 1000, μ: 419244, ~: 419248)
[PASS] test_l2_withdraw() (gas: 243292)
[PASS] test_mintToTreasury() (gas: 693612)
[PASS] test_mintToTreasury_skip_invalid_addresses() (gas: 698171)
[PASS] test_noop_setUserUseReserveAsCollateral_true_when_already_is_activated() (gas: 290835)
[PASS] test_pool_defaultValues() (gas: 4368448)
[PASS] test_rescueTokens(uint256) (runs: 1000, μ: 81916, ~: 82198)
[PASS] test_resetIsolationModeTotalDebt() (gas: 721884)
[PASS] test_reverts_initReserve_not_poolConfigurator(address) (runs: 1000, μ: 25515, ~: 25515)
[PASS] test_reverts_modifiers_not_poolConfigurator(address) (runs: 1000, μ: 127035, ~: 127035)
[PASS] test_reverts_new_Pool_invalidAddressesProvider() (gas: 4380496)
[PASS] test_reverts_setReserveInterestRateStrategyAddress_AssetNotListed(address,address) (runs: 1000, μ: 43827, ~: 43827)
[PASS] test_reverts_setReserveInterestRateStrategyAddress_ZeroAssetAddress(address) (runs: 1000, μ: 22733, ~: 22733)
[PASS] test_reverts_setUserEmode_0_bad_hf() (gas: 969520)
[PASS] test_reverts_setUserUseReserveAsCollateral_false_hf_lower_lqt() (gas: 600724)
[PASS] test_reverts_setUserUseReserveAsCollateral_true_ltv_zero() (gas: 296738)
[PASS] test_reverts_setUserUseReserveAsCollateral_true_reserve_inactive() (gas: 212016)
[PASS] test_reverts_setUserUseReserveAsCollateral_true_reserve_paused() (gas: 291598)
[PASS] test_reverts_setUserUseReserveAsCollateral_true_user_balance_zero() (gas: 71869)
[PASS] test_reverts_setUserUseReserveAsCollateral_true_user_isolation_mode() (gas: 778678)
[PASS] test_setLiquidationGracePeriod(uint40) (runs: 1000, μ: 34645, ~: 34746)
[PASS] test_setLiquidationGracePeriod_assetNotListed(uint40) (runs: 1000, μ: 27115, ~: 27115)
[PASS] test_setReserveInterestRateStrategyAddress() (gas: 899736)
[PASS] test_setUserEmode() (gas: 227668)
[PASS] test_setUserEmode_twice() (gas: 358158)
[PASS] test_setUserEmode_twice_inconsistent_category() (gas: 968439)
[PASS] test_setUserUseReserveAsCollateral_false() (gas: 240307)
[PASS] test_setUserUseReserveAsCollateral_true() (gas: 277892)
[PASS] test_updateBridgeProtocolFee() (gas: 187)
Suite result: ok. 47 passed; 0 failed; 0 skipped; finished in 6.00s (5.96s CPU time)

Ran 5 tests for tests/protocol/libraries/math/MathUtils.t.sol:MathUtilsTests
[PASS] test_calculateCompoundInterest_1() (gas: 10340)
[PASS] test_calculateCompoundInterest_2() (gas: 10337)
[PASS] test_calculateCompoundInterest_edge() (gas: 9166)
[PASS] test_calculateLinearInterest() (gas: 9211)
[PASS] test_constants() (gas: 8334)
Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 2.50ms (207.95µs CPU time)
2025-05-08T11:53:51.750016Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 17 tests for tests/extensions/paraswap-adapters/ParaswapAdapters.t.sol:ParaswapAdaptersTest
[PASS] test_rescueTokens() (gas: 196192)
[PASS] test_reverts_offset_out_of_range_swap_liquidity_permit_flashloan() (gas: 739954)
[PASS] test_reverts_swapAndDeposit_offset() (gas: 811061)
[PASS] test_reverts_swapAndRepay_offset_out_of_range() (gas: 912655)
[PASS] test_reverts_withdrawAndSwap_offset_out_of_range() (gas: 791019)
[PASS] test_swapAndDeposit() (gas: 891441)
[PASS] test_swapAndDeposit_permit() (gas: 938470)
[PASS] test_swapAndRepay() (gas: 987298)
[PASS] test_swapAndRepay_flashloan() (gas: 1076146)
[PASS] test_swapAndRepay_flashloan_permit() (gas: 1118777)
[PASS] test_swapAndRepay_no_collateral_leftovers() (gas: 1036783)
[PASS] test_swapAndRepay_permit() (gas: 1034175)
[PASS] test_swap_liquidity_flashloan() (gas: 1002304)
[PASS] test_swap_liquidity_permit_flashloan() (gas: 1044828)
[PASS] test_withdrawAndSwap() (gas: 808494)
[PASS] test_withdrawAndSwap_permit() (gas: 851595)
[PASS] test_withdrawSwapAdapter_reverts_flashloan() (gas: 532838)
Suite result: ok. 17 passed; 0 failed; 0 skipped; finished in 76.25ms (40.74ms CPU time)

Ran 5 tests for tests/protocol/libraries/math/PercentageMath.t.sol:PercentageMathTests
[PASS] test_constants() (gas: 10165)
[PASS] test_percentDiv() (gas: 11147)
[PASS] test_percentDiv_fuzz(uint256,uint256) (runs: 1000, μ: 10597, ~: 10678)
[PASS] test_percentMul() (gas: 11154)
[PASS] test_percentMul_fuzz(uint256,uint256) (runs: 1000, μ: 10599, ~: 11209)
Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 112.13ms (110.98ms CPU time)
2025-05-08T11:53:51.937061Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 18 tests for tests/protocol/pool/Pool.Borrow.t.sol:PoolBorrowTests
[PASS] test_borrow_variable_in_isolation() (gas: 556781)
[PASS] test_reverts_borrow_cap() (gas: 303525)
[PASS] test_reverts_borrow_collateral_balance_zero() (gas: 81484)
[PASS] test_reverts_borrow_collateral_can_not_cover() (gas: 315212)
[PASS] test_reverts_borrow_debt_ceiling() (gas: 649154)
[PASS] test_reverts_borrow_debt_ceiling_exceeded() (gas: 390265)
[PASS] test_reverts_borrow_hf_lt_1() (gas: 563284)
[PASS] test_reverts_borrow_inconsistent_emode_category() (gas: 429768)
[PASS] test_reverts_borrow_invalidAmount() (gas: 64941)
[PASS] test_reverts_borrow_not_borrowable_isolation() (gas: 374498)
[PASS] test_reverts_borrow_reserveFrozen() (gas: 132863)
[PASS] test_reverts_borrow_reserveInactive() (gas: 140844)
[PASS] test_reverts_borrow_reservePaused() (gas: 103564)
[PASS] test_reverts_borrow_sentinel_oracle_down() (gas: 315651)
[PASS] test_reverts_borrow_sioled_borrowing_violation() (gas: 708151)
[PASS] test_reverts_deprecated_stable_borrow() (gas: 406653)
[PASS] test_reverts_variable_borrow_transferred_funds() (gas: 381059)
[PASS] test_variable_borrow() (gas: 346821)
Suite result: ok. 18 passed; 0 failed; 0 skipped; finished in 49.38ms (13.82ms CPU time)
2025-05-08T11:53:51.988631Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 26 tests for tests/protocol/pool/Pool.Liquidations.t.sol:PoolLiquidationTests
[PASS] test_deficit_increased_after_liquidate_bad_debt() (gas: 812898)
[PASS] test_full_liquidate_atokens_multiple_variable_borrows() (gas: 949068)
[PASS] test_full_liquidate_multiple_supplies_and_variable_borrows() (gas: 1147560)
[PASS] test_full_liquidate_multiple_variable_borrows() (gas: 1008759)
[PASS] test_liquidate_borrow_bad_debt() (gas: 826202)
[PASS] test_liquidate_borrow_burn_multiple_assets_bad_debt() (gas: 1192405)
[PASS] test_liquidate_emode_position_without_emode_oracle() (gas: 1039162)
[PASS] test_liquidate_isolated_position() (gas: 898213)
[PASS] test_liquidate_variable_borrow_no_fee() (gas: 834719)
[PASS] test_liquidate_variable_borrow_repro() (gas: 1053155)
[PASS] test_liquidate_variable_borrow_same_collateral_and_borrow() (gas: 687667)
[PASS] test_liquidation_when_grace_period_disabled(uint40) (runs: 1000, μ: 875859, ~: 876178)
[PASS] test_liquidation_with_liquidation_grace_period_collateral_active(uint40) (runs: 1000, μ: 1089019, ~: 1093201)
[PASS] test_liquidation_with_liquidation_grace_period_debt_active(uint40) (runs: 1000, μ: 1085098, ~: 1090697)
[PASS] test_liquidation_with_liquidation_grace_period_debt_collateral_active(uint40) (runs: 1000, μ: 1101102, ~: 1106946)
[PASS] test_partial_liquidate_atokens_variable_borrow() (gas: 885575)
[PASS] test_partial_liquidate_variable_borrow() (gas: 837886)
[PASS] test_reverts_liquidation_collateral_not_active() (gas: 632503)
[PASS] test_reverts_liquidation_hf_gt_liquidation_threshold() (gas: 465323)
[PASS] test_reverts_liquidation_invalid_borrow() (gas: 596613)
[PASS] test_reverts_liquidation_oracle_sentinel_on() (gas: 337410)
[PASS] test_reverts_liquidation_reserveInactive() (gas: 169134)
[PASS] test_reverts_liquidation_reservePaused() (gas: 134538)
[PASS] test_self_liquidate_isolated_position_shoulDisableCollateral() (gas: 852218)
[PASS] test_self_liquidate_isolated_position_shoulEnableCollateralIfIsolatedSupplier() (gas: 902412)
[PASS] test_self_liquidate_position_shoulKeepCollateralEnabled() (gas: 776982)
Suite result: ok. 26 passed; 0 failed; 0 skipped; finished in 19.57s (19.52s CPU time)
2025-05-08T11:54:05.311513Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 17 tests for tests/gas/Pool.Operations.gas.t.sol:PoolOperations_gas_Tests
[PASS] test_borrow() (gas: 987208)
[PASS] test_flashLoanSimple() (gas: 640023)
[PASS] test_flashLoan_with_one_asset() (gas: 769228)
[PASS] test_flashLoan_with_one_asset_with_borrowing() (gas: 1198241)
[PASS] test_flashLoan_with_two_assets() (gas: 1098816)
[PASS] test_flashLoan_with_two_assets_with_borrowing() (gas: 1924068)
[PASS] test_liquidationCall_deficit() (gas: 1413756)
[PASS] test_liquidationCall_deficitInAdditionalReserve() (gas: 1796819)
[PASS] test_liquidationCall_full() (gas: 1413867)
[PASS] test_liquidationCall_partial() (gas: 1399739)
[PASS] test_liquidationCall_receive_ATokens_full() (gas: 1390247)
[PASS] test_liquidationCall_receive_ATokens_partial() (gas: 1375880)
[PASS] test_repay() (gas: 1362036)
[PASS] test_repay_with_ATokens() (gas: 1161938)
[PASS] test_supply() (gas: 1859837)
[PASS] test_withdraw() (gas: 807238)
[PASS] test_withdraw_with_active_borrows() (gas: 980999)
Suite result: ok. 17 passed; 0 failed; 0 skipped; finished in 85.28ms (47.53ms CPU time)
2025-05-08T11:54:05.399859Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 17 tests for tests/extensions/stata-token/ERC20AaveLMUpgradable.t.sol:ERC20AaveLMUpgradableTest
[PASS] test_7201() (gas: 3358)
[PASS] test_claimRewards(uint256,uint32,uint88,uint32) (runs: 1000, μ: 833702, ~: 796331)
[PASS] test_claimRewardsOnBehalfOf_self(uint256,uint32,uint88,uint32) (runs: 1000, μ: 836066, ~: 796886)
[PASS] test_claimRewardsOnBehalfOf_shouldRevertForInvalidClaimer(uint256,uint32,uint88,uint32) (runs: 1000, μ: 771120, ~: 772580)
[PASS] test_claimRewardsOnBehalfOf_validClaimer(uint256,uint32,uint88,uint32) (runs: 1000, μ: 868245, ~: 828943)
[PASS] test_claimRewardsToSelf(uint256,uint32,uint88,uint32) (runs: 1000, μ: 832466, ~: 796243)
[PASS] test_claimableRewards(uint256,uint32,uint88,uint32) (runs: 1000, μ: 771516, ~: 773480)
[PASS] test_collectAndUpdateRewards(uint256,uint32,uint88,uint32) (runs: 1000, μ: 816167, ~: 792599)
[PASS] test_correctAccountingForDelayedRegistration() (gas: 822120)
[PASS] test_getReferenceAsset() (gas: 12908)
[PASS] test_isRegisteredRewardToken() (gas: 632952)
[PASS] test_noRewardsInitialized() (gas: 39241)
[PASS] test_noopWhenNotInitialized() (gas: 52824)
[PASS] test_rewardTokens() (gas: 631057)
[PASS] test_transfer(uint256,uint32,uint88,uint32,address,uint256) (runs: 1000, μ: 845835, ~: 863123)
[PASS] test_transfer_toSelf(uint256,uint32,uint88,uint32) (runs: 1000, μ: 804704, ~: 797175)
[PASS] test_zeroIncentivesController() (gas: 37692)
Suite result: ok. 17 passed; 0 failed; 0 skipped; finished in 19.33s (19.30s CPU time)
2025-05-08T11:54:05.561220Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 17 tests for tests/extensions/v3-config-engine/AaveV3ConfigEngineTest.t.sol:AaveV3ConfigEngineTest
[PASS] testAssetEModeUpdates() (gas: 4042895)
[PASS] testBorrowUpdatesNoChange() (gas: 3081778)
[PASS] testBorrowsUpdates() (gas: 3148980)
[PASS] testCapsUpdate() (gas: 3091941)
[PASS] testCollateralUpdateCorrectBonus() (gas: 3106328)
[PASS] testCollateralUpdateWrongBonus() (gas: 732663)
[PASS] testCollateralsUpdates() (gas: 3105921)
[PASS] testCollateralsUpdatesNoChange() (gas: 3079753)
[PASS] testCollateralsUpdatesNoChangeShouldNotEmit() (gas: 738297)
[PASS] testEModeCategoryUpdates() (gas: 3178376)
[PASS] testEModeCategoryUpdatesNoChange() (gas: 3077483)
[PASS] testEModeCategoryUpdatesNoChangeShouldNotEmit() (gas: 717805)
[PASS] testEModeCategoryUpdatesWrongBonus() (gas: 720961)
[PASS] testListings() (gas: 6257318)
[PASS] testListingsCustom() (gas: 9979406)
[PASS] testPriceFeedsUpdates() (gas: 3162892)
[PASS] testRateStrategiesUpdates() (gas: 3159889)
Suite result: ok. 17 passed; 0 failed; 0 skipped; finished in 21.72s (21.67s CPU time)
2025-05-08T11:54:09.286676Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"
2025-05-08T11:54:09.303712Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 2 tests for tests/deployments/AaveV3PermissionsTest.t.sol:AaveV3PermissionsTest
[PASS] testCheckPermissions() (gas: 52865142)
[PASS] testCheckPermissionsTreasuryPartner() (gas: 53354503)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 43.63ms (35.76ms CPU time)
2025-05-08T11:54:09.325472Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 7 tests for tests/protocol/configuration/AddressesProviderRegistry.t.sol:PoolAddressesProviderRegistryTest
[PASS] testAddAddressesProvider() (gas: 120577)
[PASS] testRemoveAddressesProvider() (gas: 97125)
[PASS] testRemoveMultipleAddressesProvider() (gas: 242924)
[PASS] test_addressesProviderAddedToRegistry() (gas: 16357)
[PASS] test_removesLastProvider() (gas: 32624)
[PASS] test_revert_registry_0() (gas: 15558)
[PASS] test_revert_removeNonExistingAddressesProvider() (gas: 27567)
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 32.76ms (1.65ms CPU time)
2025-05-08T11:54:09.359295Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 1 test for tests/template/BaseTest.t.sol:BaseTest
[PASS] test_default() (gas: 245785)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 32.04ms (373.88µs CPU time)
2025-05-08T11:54:09.391048Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 12 tests for tests/protocol/libraries/logic/BridgeLogic.t.sol:BridgeLogicTests
[PASS] test_backUnbacked_but_unbacked_is_zero_with_fee() (gas: 190752)
[PASS] test_backUnbacked_but_unbacked_is_zero_with_only_fee() (gas: 190810)
[PASS] test_backUnbacked_but_unbacked_is_zero_without_fee() (gas: 156156)
[PASS] test_backUnbacked_onlyFee() (gas: 356414)
[PASS] test_backUnbacked_withFee() (gas: 356594)
[PASS] test_backUnbacked_withoutFee() (gas: 333892)
[PASS] test_multiple_backUnbacked() (gas: 631087)
[PASS] test_multiple_unbackedMint_with_cap() (gas: 478054)
[PASS] test_revert_multiple_unbackedMint_with_cap() (gas: 419371)
[PASS] test_revert_unathorized_unbackedMint() (gas: 30598)
[PASS] test_revert_unbackedMint_zero_cap() (gas: 86100)
[PASS] test_unbackedMint_with_cap() (gas: 265578)
Suite result: ok. 12 passed; 0 failed; 0 skipped; finished in 44.51ms (13.13ms CPU time)

Ran 5 tests for tests/treasury/Collector.t.sol:CollectorTest
[PASS] testApprove() (gas: 49719)
[PASS] testApproveWhenNotFundsAdmin() (gas: 18193)
[PASS] testTransfer() (gas: 54873)
[PASS] testTransferWhenNotFundsAdmin() (gas: 18217)
[PASS] test_receiveEth() (gas: 20274)
Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 3.28ms (283.44µs CPU time)
2025-05-08T11:54:09.439975Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 9 tests for tests/rewards/EmissionsManager.t.sol:EmissionManagerTest
[PASS] test_configureAssets() (gas: 598178)
[PASS] test_new_EmissionManager() (gas: 747563)
[PASS] test_setClaimer() (gas: 51471)
[PASS] test_setDistributionEnd() (gas: 605447)
[PASS] test_setEmissionAdmin() (gas: 43012)
[PASS] test_setEmissionPerSecond() (gas: 611936)
[PASS] test_setRewardOracle() (gas: 687194)
[PASS] test_setRewardsController() (gas: 19086)
[PASS] test_setTransferStrategy() (gas: 888756)
Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 33.12ms (1.93ms CPU time)

Ran 6 tests for tests/misc/aave-upgradeability/InitializableImmutableAdminUpgradeabilityProxy.t.sol:InitializableImmutableAdminUpgradeabilityProxyTests
[PASS] test_proxy_fallback() (gas: 597826)
[PASS] test_proxy_upgradeTo() (gas: 619697)
[PASS] test_proxy_upgradeToAndCall() (gas: 625580)
[PASS] test_proxy_upgradeToAndCall_initialize() (gas: 594922)
[PASS] test_reverts_upgradeToAndCall_notAdmin() (gas: 600809)
[PASS] test_reverts_upgradeTo_notAdmin() (gas: 598615)
Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 3.07ms (1.81ms CPU time)
2025-05-08T11:54:09.477578Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 11 tests for tests/misc/PriceOracleSentinel.t.sol:PriceOracleSentinelTest
[PASS] test_isBorrowAllowed_network_down() (gas: 27223)
[PASS] test_isBorrowAllowed_network_up_not_grace_period() (gas: 46925)
[PASS] test_isBorrowAllowed_true_network_up_grace_period_pass() (gas: 46979)
[PASS] test_isLiquidationAllowed_network_down() (gas: 27134)
[PASS] test_isLiquidationAllowed_network_up_not_grace_period() (gas: 46902)
[PASS] test_isLiquidationAllowed_true_network_up_grace_period_pass() (gas: 47000)
[PASS] test_new_PriceOracleSentinel() (gas: 423731)
[PASS] test_reverts_setGracePeriod_not_poolAdmin() (gas: 25829)
[PASS] test_reverts_setSequencerOracle_not_poolAdmin() (gas: 22737)
[PASS] test_setGracePeriod() (gas: 32496)
[PASS] test_setSequencerOracle() (gas: 24631)
Suite result: ok. 11 passed; 0 failed; 0 skipped; finished in 33.44ms (970.29µs CPU time)
2025-05-08T11:54:09.515142Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 15 tests for tests/gas/ProtocolDataProvider.gas.t.sol:ProtocolDataProvider_gas_Tests
[PASS] test_getATokenTotalSupply() (gas: 45824)
[PASS] test_getDebtCeiling() (gas: 27099)
[PASS] test_getFlashLoanEnabled() (gas: 27199)
[PASS] test_getInterestRateStrategyAddress() (gas: 50707)
[PASS] test_getIsVirtualAccActive() (gas: 27206)
[PASS] test_getLiquidationProtocolFee() (gas: 27158)
[PASS] test_getPaused() (gas: 27250)
[PASS] test_getReserveCaps() (gas: 27176)
[PASS] test_getReserveConfigurationData() (gas: 28077)
[PASS] test_getReserveTokensAddresses() (gas: 31054)
[PASS] test_getSiloedBorrowing() (gas: 27254)
[PASS] test_getTotalDebt() (gas: 45846)
[PASS] test_getUnbackedMintCap() (gas: 27097)
[PASS] test_getUserReserveData() (gas: 539271)
[PASS] test_getVirtualUnderlyingBalance() (gas: 26880)
Suite result: ok. 15 passed; 0 failed; 0 skipped; finished in 40.44ms (2.50ms CPU time)
2025-05-08T11:54:09.552718Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 13 tests for tests/misc/rates/RateStrategy.calculateRates.t.sol:RateStrategyCalculateRatesTests
[PASS] test_calculate_rates_100_percent_usage() (gas: 48587)
Logs:
  Bound result 8000
  Bound result 400

[PASS] test_calculate_rates_80_bps_usage() (gas: 48706)
Logs:
  Bound result 8000
  Bound result 400

[PASS] test_calculate_rates_80_percent_usage() (gas: 91357)
Logs:
  Bound result 8000
  Bound result 400

[PASS] test_calculate_rates_80_percent_usage_and_50_percent_supply_usage_due_minted_tokens() (gas: 46912)
Logs:
  Bound result 8000
  Bound result 400

[PASS] test_calculate_rates_80_percent_usage_and_80_bps_supply_usage_due_minted_tokens() (gas: 46934)
Logs:
  Bound result 8000
  Bound result 400

[PASS] test_calculate_rates_above_op_usage((uint16,uint32,uint32,uint32),uint256,uint256,uint256) (runs: 1000, μ: 124134, ~: 124369)
[PASS] test_calculate_rates_below_op_usage((uint16,uint32,uint32,uint32),uint256,uint256,uint256) (runs: 1000, μ: 118612, ~: 121027)
[PASS] test_calculate_rates_below_op_usage_when_no_debt((uint16,uint32,uint32,uint32),uint256,uint256) (runs: 1000, μ: 75500, ~: 76058)
[PASS] test_calculate_rates_empty_reserve((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 44222, ~: 44123)
[PASS] test_calculate_rates_when_not_using_virtual_valance((uint16,uint32,uint32,uint32),uint256,uint256) (runs: 1000, μ: 68106, ~: 69107)
[PASS] test_calculate_rates_when_total_debt_0((uint16,uint32,uint32,uint32),uint256,uint256) (runs: 1000, μ: 68486, ~: 69327)
[PASS] test_fuzz_calculate_rates_80_percent_usage_added_and_virtual_equal(uint256) (runs: 1000, μ: 33324, ~: 32997)
[PASS] test_zero_rates_strategy_calculate_rates() (gas: 19289)
Suite result: ok. 13 passed; 0 failed; 0 skipped; finished in 3.90s (3.87s CPU time)
2025-05-08T11:54:13.451931Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 7 tests for tests/misc/rates/RateStrategy.setters.t.sol:RateStrategySettersTests
[PASS] test_new_SetReserveInterestRateParams((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 52553, ~: 52483)
[PASS] test_new_SetReserveInterestRateParams_when_not_configurator((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 26293, ~: 26215)
[PASS] test_reverts_SetReserveInterestRateParams_when_gt_maxRate((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 29728, ~: 29827)
[PASS] test_reverts_SetReserveInterestRateParams_when_gt_max_op((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 22536, ~: 22536)
[PASS] test_reverts_SetReserveInterestRateParams_when_lt_min_op((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 22584, ~: 22584)
[PASS] test_reverts_SetReserveInterestRateParams_when_reserve_0((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 27210, ~: 27140)
[PASS] test_reverts_SetReserveInterestRateParams_when_slope1_gt_slope2((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 23886, ~: 23886)
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 1.66s (1.63s CPU time)
2025-05-08T11:54:15.116324Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 15 tests for tests/protocol/pool/Pool.Repay.t.sol:PoolRepayTests
[PASS] test_full_repay_borrow_variable_in_isolation() (gas: 575952)
[PASS] test_partial_repay_borrow_variable_in_isolation() (gas: 628389)
[PASS] test_repayWithATokens_full_collateral_variable_borrow() (gas: 616691)
[PASS] test_repayWithATokens_full_variable_borrow() (gas: 415229)
[PASS] test_repayWithATokens_fuzz_collateral_variable_borrow(uint256,uint32) (runs: 1000, μ: 603464, ~: 604727)
[PASS] test_repayWithPermit(uint128,uint128,uint128,uint128,uint128) (runs: 1000, μ: 572099, ~: 570969)
[PASS] test_repayWithPermit_not_failing_if_permit_was_used(uint128,uint128,uint128,uint128,uint128) (runs: 1000, μ: 578005, ~: 576461)
[PASS] test_repayWithPermit_should_revert_if_permit_is_less_then_repay_amount(uint128,uint128,uint128,uint128,uint128) (runs: 1000, μ: 528211, ~: 524421)
[PASS] test_repay_full_variable_borrow() (gas: 401859)
[PASS] test_revert_repay_full_stable_borrow() (gas: 353430)
[PASS] test_reverts_borrow_invalidAmount() (gas: 51504)
[PASS] test_reverts_borrow_reserveInactive() (gas: 129619)
[PASS] test_reverts_borrow_reservePaused() (gas: 92442)
[PASS] test_reverts_no_explicit_repay_on_behalf() (gas: 327417)
[PASS] test_reverts_repay_no_debt() (gas: 52075)
Suite result: ok. 15 passed; 0 failed; 0 skipped; finished in 10.30s (10.25s CPU time)
2025-05-08T11:54:15.696271Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 2 tests for tests/gas/Pool.Setters.gas.t.sol:PoolSetters_gas_Tests
[PASS] test_setUserEMode() (gas: 1758962)
[PASS] test_setUserUseReserveAsCollateral() (gas: 650111)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 41.56ms (4.85ms CPU time)
2025-05-08T11:54:15.736110Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 7 tests for tests/misc/rates/RateStrategy.setters.t.sol:RateStrategySettersTestsOverride
[PASS] test_new_SetReserveInterestRateParams((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 51947, ~: 51882)
[PASS] test_new_SetReserveInterestRateParams_when_not_configurator((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 25665, ~: 25598)
[PASS] test_reverts_SetReserveInterestRateParams_when_gt_maxRate((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 29130, ~: 29220)
[PASS] test_reverts_SetReserveInterestRateParams_when_gt_max_op((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 21927, ~: 21927)
[PASS] test_reverts_SetReserveInterestRateParams_when_lt_min_op((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 21975, ~: 21975)
[PASS] test_reverts_SetReserveInterestRateParams_when_reserve_0((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 26612, ~: 26531)
[PASS] test_reverts_SetReserveInterestRateParams_when_slope1_gt_slope2((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 23277, ~: 23277)
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 1.64s (1.61s CPU time)
2025-05-08T11:54:16.758251Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 15 tests for tests/misc/rates/RateStrategy.t.sol:RateStrategyBaseTests
[PASS] test_getInterestRateDataBps((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 40436, ~: 40356)
[PASS] test_getInterestRateDataRay((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 41343, ~: 41282)
[PASS] test_getMaxVariableBorrowRate((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 38852, ~: 38790)
[PASS] test_initialization() (gas: 27078)
[PASS] test_new_DefaultReserveInterestRateStrategy_wrong_provider() (gas: 42406)
[PASS] test_new_SetReserveInterestRateParams((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 52513, ~: 52454)
[PASS] test_new_SetReserveInterestRateParams_override_method((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 49742, ~: 49659)
[PASS] test_new_SetReserveInterestRateParams_when_not_configurator((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 26300, ~: 26241)
[PASS] test_overflow_liquidity_rates() (gas: 59548)
[PASS] test_overflow_variable_rates() (gas: 546010)
[PASS] test_reverts_SetReserveInterestRateParams_when_gt_maxRate((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 34978, ~: 34978)
[PASS] test_reverts_SetReserveInterestRateParams_when_gt_max_op((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 31521, ~: 31521)
[PASS] test_reverts_SetReserveInterestRateParams_when_lt_min_op((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 31597, ~: 31597)
[PASS] test_reverts_SetReserveInterestRateParams_when_reserve_0((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 27959, ~: 27959)
[PASS] test_reverts_SetReserveInterestRateParams_when_slope1_gt_slope2(uint16,uint32,uint32,uint32) (runs: 1000, μ: 33710, ~: 33710)
Suite result: ok. 15 passed; 0 failed; 0 skipped; finished in 3.05s (3.02s CPU time)

Ran 13 tests for tests/protocol/pool/Pool.Supply.t.sol:PoolSupplyTests
[PASS] test_deprecated_deposit() (gas: 240892)
[PASS] test_first_supply() (gas: 240871)
[PASS] test_first_supply_on_behalf() (gas: 242918)
[PASS] test_reverts_supply_cap() (gas: 105305)
[PASS] test_reverts_supply_invalidAmount() (gas: 47720)
[PASS] test_reverts_supply_reserveFrozen() (gas: 117591)
[PASS] test_reverts_supply_reserveInactive() (gas: 125551)
[PASS] test_reverts_supply_reservePaused() (gas: 88395)
[PASS] test_reverts_supply_to_aToken() (gas: 50239)
[PASS] test_supplyWithPermit(uint128,uint128,uint128) (runs: 1000, μ: 413670, ~: 413686)
[PASS] test_supplyWithPermit_not_failing_if_permit_was_used(uint128,uint128,uint128) (runs: 1000, μ: 413875, ~: 413894)
[PASS] test_supplyWithPermit_should_revert_if_permit_is_less_then_supply_amount(uint128,uint128) (runs: 1000, μ: 280944, ~: 280948)
[PASS] test_supply_after_collateral_enabled() (gas: 287552)
Suite result: ok. 13 passed; 0 failed; 0 skipped; finished in 5.54s (5.51s CPU time)
2025-05-08T11:54:21.282862Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 11 tests for tests/protocol/pool/Pool.Withdraw.t.sol:PoolWithdrawTests
[PASS] test_Reverts_withdraw_transferred_funds() (gas: 549402)
[PASS] test_full_withdraw() (gas: 234777)
[PASS] test_full_withdraw_to() (gas: 240305)
[PASS] test_partial_withdraw() (gas: 231268)
[PASS] test_reverts_withdraw_hf_lt_lqt() (gas: 679099)
[PASS] test_reverts_withdraw_invalidAmount() (gas: 247145)
[PASS] test_reverts_withdraw_invalidBalance() (gas: 249215)
[PASS] test_reverts_withdraw_reserveInactive() (gas: 203217)
[PASS] test_reverts_withdraw_reservePaused() (gas: 284676)
[PASS] test_reverts_withdraw_to_atoken() (gas: 247118)
[PASS] test_withdraw_not_enabled_as_collateral() (gas: 248144)
Suite result: ok. 11 passed; 0 failed; 0 skipped; finished in 43.32ms (7.59ms CPU time)
2025-05-08T11:54:21.323107Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 37 tests for tests/protocol/pool/Pool.t.sol:PoolTests
[PASS] test_dropReserve() (gas: 99058)
[PASS] test_getBorrowLogic() (gas: 13619)
[PASS] test_getBridgeLogic() (gas: 13617)
[PASS] test_getEModeLogic() (gas: 13618)
[PASS] test_getFlashLoanLogic() (gas: 13598)
[PASS] test_getLiquidationLogic() (gas: 13687)
[PASS] test_getPoolLogic() (gas: 13683)
[PASS] test_getSupplyLogic() (gas: 13682)
[PASS] test_getVirtualUnderlyingBalance() (gas: 244743)
[PASS] test_getters_getUserAccountData() (gas: 598817)
[PASS] test_mintToTreasury() (gas: 693322)
[PASS] test_mintToTreasury_skip_invalid_addresses() (gas: 697947)
[PASS] test_noop_setUserUseReserveAsCollateral_true_when_already_is_activated() (gas: 290768)
[PASS] test_pool_defaultValues() (gas: 4368459)
[PASS] test_rescueTokens(uint256) (runs: 1000, μ: 81853, ~: 82155)
[PASS] test_resetIsolationModeTotalDebt() (gas: 721635)
[PASS] test_reverts_initReserve_not_poolConfigurator(address) (runs: 1000, μ: 25430, ~: 25430)
[PASS] test_reverts_modifiers_not_poolConfigurator(address) (runs: 1000, μ: 127079, ~: 127079)
[PASS] test_reverts_new_Pool_invalidAddressesProvider() (gas: 4380474)
[PASS] test_reverts_setReserveInterestRateStrategyAddress_AssetNotListed(address,address) (runs: 1000, μ: 43826, ~: 43826)
[PASS] test_reverts_setReserveInterestRateStrategyAddress_ZeroAssetAddress(address) (runs: 1000, μ: 22732, ~: 22732)
[PASS] test_reverts_setUserEmode_0_bad_hf() (gas: 969385)
[PASS] test_reverts_setUserUseReserveAsCollateral_false_hf_lower_lqt() (gas: 600767)
[PASS] test_reverts_setUserUseReserveAsCollateral_true_ltv_zero() (gas: 296779)
[PASS] test_reverts_setUserUseReserveAsCollateral_true_reserve_inactive() (gas: 212145)
[PASS] test_reverts_setUserUseReserveAsCollateral_true_reserve_paused() (gas: 291639)
[PASS] test_reverts_setUserUseReserveAsCollateral_true_user_balance_zero() (gas: 71802)
[PASS] test_reverts_setUserUseReserveAsCollateral_true_user_isolation_mode() (gas: 778938)
[PASS] test_setLiquidationGracePeriod(uint40) (runs: 1000, μ: 34741, ~: 34834)
[PASS] test_setLiquidationGracePeriod_assetNotListed(uint40) (runs: 1000, μ: 27115, ~: 27115)
[PASS] test_setReserveInterestRateStrategyAddress() (gas: 899626)
[PASS] test_setUserEmode() (gas: 227533)
[PASS] test_setUserEmode_twice() (gas: 358044)
[PASS] test_setUserEmode_twice_inconsistent_category() (gas: 968281)
[PASS] test_setUserUseReserveAsCollateral_false() (gas: 240328)
[PASS] test_setUserUseReserveAsCollateral_true() (gas: 277847)
[PASS] test_updateBridgeProtocolFee() (gas: 253)
Suite result: ok. 37 passed; 0 failed; 0 skipped; finished in 997.20ms (965.39ms CPU time)
2025-05-08T11:54:22.323787Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 22 tests for tests/protocol/configuration/PoolAddressesProvider.t.sol:PoolAddressesProviderTests
[PASS] test_PoolDataProvider_changeContract() (gas: 1472600)
[PASS] test_getter_getMarketId() (gas: 1435029)
[PASS] test_new_PoolAddressesProvider() (gas: 1444259)
[PASS] test_reverts_setAddressAsProxy_notAuth() (gas: 1448435)
[PASS] test_reverts_setAddress_noAuth() (gas: 1453612)
[PASS] test_reverts_setters_notOwner() (gas: 1451221)
[PASS] test_setACLManager_changeContract() (gas: 3014111)
[PASS] test_setACLManager_setACLAdmin() (gas: 2248064)
[PASS] test_setAddress() (gas: 1462527)
[PASS] test_setAddressAsProxy_new_proxy() (gas: 2020261)
[PASS] test_setAddressAsProxy_upgrade_proxy() (gas: 2132633)
[PASS] test_setAddress_updateAddress() (gas: 1471653)
[PASS] test_setPoolConfiguratorImpl() (gas: 5939538)
[PASS] test_setPoolConfiguratorImpl_upgrade() (gas: 10340515)
[PASS] test_setPoolDataProvider() (gas: 1463045)
[PASS] test_setPoolImpl() (gas: 6251535)
[PASS] test_setPoolImpl_upgrade() (gas: 10652172)
[PASS] test_setPriceOracle() (gas: 1463202)
[PASS] test_setPriceOracleSentinel() (gas: 1463073)
[PASS] test_setPriceOracleSentinel_changeContract() (gas: 1472677)
[PASS] test_setPriceOracle_changeContract() (gas: 1472938)
[PASS] test_setter_setMarketId() (gas: 1446179)
Suite result: ok. 22 passed; 0 failed; 0 skipped; finished in 43.60ms (8.41ms CPU time)
2025-05-08T11:54:22.366008Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. Visit https://book.getfoundry.sh/announcements for more information. \nTo mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 15 tests for tests/extensions/RevenueSplitter.t.sol:RevenueSplitterTest
[PASS] test_constructor() (gas: 15312)
[PASS] test_constructor_fuzzing(uint16) (runs: 1000, μ: 455456, ~: 455456)
[PASS] test_constructor_revert_invalid_split_percentage() (gas: 174521)
[PASS] test_splitFund_oneToken() (gas: 410764)
[PASS] test_splitFund_reverts_randomAddress() (gas: 51331)
[PASS] test_splitFund_zeroAmount_noOp() (gas: 371636)
[PASS] test_splitFund_zeroFunds_noOp() (gas: 50896)
[PASS] test_splitFund_zeroTokens_noOp() (gas: 370555)
[PASS] test_splitFunds_fixed() (gas: 447716)
[PASS] test_splitFunds_fuzz_max(uint256,uint256) (runs: 1000, μ: 448242, ~: 449900)
[PASS] test_splitFunds_fuzz_realistic(uint256,uint256) (runs: 1000, μ: 447353, ~: 448359)
[PASS] tes...*[Comment body truncated]*

@github-actions
Copy link
Contributor

github-actions bot commented May 8, 2025

🔮 Coverage report
File Line Coverage Function Coverage Branch Coverage
src/contracts/dependencies/gnosis/contracts/GPv2SafeERC20.sol ${\color{red}67.57\%}$
$25 / 37$
23, 24, 78, 79, 80 and 7 more
${\color{green}100\%}$
$4 / 4$
${\color{red}42.86\%}$
$3 / 7$
src/contracts/dependencies/openzeppelin/ReentrancyGuard.sol ${\color{red}75\%}$
$6 / 8$
67, 68
${\color{red}66.67\%}$
$2 / 3$
ReentrancyGuard._initGuard
${\color{red}50\%}$
$1 / 2$
src/contracts/dependencies/openzeppelin/contracts/AccessControl.sol ${\color{orange}90.63\%}$
$29 / 32$
76, 77, 115
${\color{orange}83.33\%}$
$10 / 12$
AccessControl.supportsInterface, AccessControl.getRoleAdmin
${\color{red}80\%}$
$4 / 5$
src/contracts/dependencies/openzeppelin/contracts/ERC165.sol ${\color{red}0\%}$
$0 / 2$
25, 26
${\color{red}0\%}$
$0 / 1$
ERC165.supportsInterface
${\color{green}100\%}$
$0 / 0$
src/contracts/dependencies/openzeppelin/contracts/ERC20.sol ${\color{red}79.66\%}$
$47 / 59$
182, 183, 184, 201, 205 and 7 more
${\color{orange}83.33\%}$
$15 / 18$
ERC20.increaseAllowance, ERC20.decreaseAllowance, ERC20._burn
${\color{red}41.67\%}$
$5 / 12$
src/contracts/dependencies/openzeppelin/contracts/Ownable.sol ${\color{red}80\%}$
$12 / 15$
55, 56, 57
${\color{red}80\%}$
$4 / 5$
Ownable.renounceOwnership
${\color{red}75\%}$
$3 / 4$
src/contracts/dependencies/openzeppelin/contracts/SafeERC20.sol ${\color{red}47.37\%}$
$9 / 19$
25, 26, 50, 51, 52 and 5 more
${\color{red}50\%}$
$3 / 6$
SafeERC20.safeTransferFrom, SafeERC20.safeIncreaseAllowance, SafeERC20.safeDecreaseAllowance
${\color{red}42.86\%}$
$3 / 7$
src/contracts/dependencies/openzeppelin/contracts/SafeMath.sol ${\color{green}100\%}$
$10 / 10$
${\color{green}100\%}$
$5 / 5$
${\color{red}62.5\%}$
$5 / 8$
src/contracts/dependencies/openzeppelin/upgradeability/AdminUpgradeabilityProxy.sol ${\color{red}0\%}$
$0 / 5$
21, 26, 27, 33, 34
${\color{red}0\%}$
$0 / 2$
AdminUpgradeabilityProxy.constructor, AdminUpgradeabilityProxy._willFallback
${\color{green}100\%}$
$0 / 0$
src/contracts/dependencies/openzeppelin/upgradeability/BaseAdminUpgradeabilityProxy.sol ${\color{red}0\%}$
$0 / 26$
35, 36, 39, 46, 47 and 21 more
${\color{red}0\%}$
$0 / 9$
BaseAdminUpgradeabilityProxy.ifAdmin, BaseAdminUpgradeabilityProxy.admin, BaseAdminUpgradeabilityProxy.implementation, BaseAdminUpgradeabilityProxy.changeAdmin, BaseAdminUpgradeabilityProxy.upgradeTo and 4 more
${\color{red}0\%}$
$0 / 8$
src/contracts/dependencies/openzeppelin/upgradeability/BaseUpgradeabilityProxy.sol ${\color{green}100\%}$
$10 / 10$
${\color{green}100\%}$
$3 / 3$
${\color{red}50\%}$
$1 / 2$
src/contracts/dependencies/openzeppelin/upgradeability/Initializable.sol ${\color{red}0\%}$
$0 / 12$
30, 31, 36, 37, 38 and 7 more
${\color{red}0\%}$
$0 / 2$
Initializable.initializer, Initializable.isConstructor
${\color{red}0\%}$
$0 / 4$
src/contracts/dependencies/openzeppelin/upgradeability/InitializableAdminUpgradeabilityProxy.sol ${\color{red}0\%}$
$0 / 7$
25, 26, 27, 28, 29 and 2 more
${\color{red}0\%}$
$0 / 2$
InitializableAdminUpgradeabilityProxy.initialize, InitializableAdminUpgradeabilityProxy._willFallback
${\color{red}0\%}$
$0 / 2$
src/contracts/dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol ${\color{green}100\%}$
$7 / 7$
${\color{green}100\%}$
$1 / 1$
${\color{red}60\%}$
$3 / 5$
src/contracts/dependencies/openzeppelin/upgradeability/Proxy.sol ${\color{orange}87.5\%}$
$14 / 16$
25, 26
${\color{red}80\%}$
$4 / 5$
Proxy.receive
${\color{green}100\%}$
$0 / 0$
src/contracts/dependencies/openzeppelin/upgradeability/UpgradeabilityProxy.sol ${\color{red}0\%}$
$0 / 6$
20, 21, 22, 23, 24 and 1 more
${\color{red}0\%}$
$0 / 1$
UpgradeabilityProxy.constructor
${\color{red}0\%}$
$0 / 3$
src/contracts/dependencies/weth/WETH9.sol ${\color{orange}85.19\%}$
$23 / 27$
31, 32, 47, 48
${\color{red}71.43\%}$
$5 / 7$
WETH9.receive, WETH9.totalSupply
${\color{red}57.14\%}$
$4 / 7$
src/contracts/extensions/paraswap-adapters/BaseParaSwapAdapter.sol ${\color{green}100\%}$
$18 / 18$
${\color{green}100\%}$
$6 / 6$
${\color{red}60\%}$
$3 / 5$
src/contracts/extensions/paraswap-adapters/BaseParaSwapBuyAdapter.sol ${\color{orange}90\%}$
$27 / 30$
87, 94, 95
${\color{green}100\%}$
$2 / 2$
${\color{red}50\%}$
$8 / 16$
src/contracts/extensions/paraswap-adapters/BaseParaSwapSellAdapter.sol ${\color{orange}88.89\%}$
$24 / 27$
87, 94, 95
${\color{green}100\%}$
$2 / 2$
${\color{red}50\%}$
$8 / 16$
src/contracts/extensions/paraswap-adapters/ParaSwapLiquiditySwapAdapter.sol ${\color{green}100\%}$
$39 / 39$
${\color{green}100\%}$
$4 / 4$
${\color{red}63.64\%}$
$7 / 11$
src/contracts/extensions/paraswap-adapters/ParaSwapRepayAdapter.sol ${\color{lightgreen}95.83\%}$
$46 / 48$
143, 208
${\color{green}100\%}$
$5 / 5$
${\color{red}53.85\%}$
$7 / 13$
src/contracts/extensions/paraswap-adapters/ParaSwapWithdrawSwapAdapter.sol ${\color{green}100\%}$
$13 / 13$
${\color{green}100\%}$
$3 / 3$
${\color{red}66.67\%}$
$2 / 3$
src/contracts/extensions/stata-token/ERC20AaveLMUpgradeable.sol ${\color{orange}94.02\%}$
$110 / 117$
97, 114, 116, 126, 213 and 2 more
${\color{lightgreen}95.45\%}$
$21 / 22$
ERC20AaveLMUpgradeable.getCurrentRewardsIndex
${\color{red}66.67\%}$
$10 / 15$
src/contracts/extensions/stata-token/ERC4626StataTokenUpgradeable.sol $^{↑0.98\%}{\color{lightgreen}98.04\%}$
$100 / 102$
146, 221
${\color{green}100\%}$
$21 / 21$
$^{↑1.9\%}{\color{orange}83.33\%}$
$10 / 12$
src/contracts/extensions/stata-token/StataTokenFactory.sol ${\color{orange}88.46\%}$
$23 / 26$
77, 84, 85
${\color{red}80\%}$
$4 / 5$
StataTokenFactory.getStataTokens
${\color{red}33.33\%}$
$1 / 3$
src/contracts/extensions/stata-token/StataTokenV2.sol ${\color{orange}90.63\%}$
$29 / 32$
59, 63, 68
${\color{orange}81.82\%}$
$9 / 11$
StataTokenV2.whoCanRescue, StataTokenV2.maxRescue
${\color{red}75\%}$
$3 / 4$
src/contracts/extensions/v3-config-engine/AaveV3ConfigEngine.sol ${\color{green}100\%}$
$45 / 45$
${\color{green}100\%}$
$12 / 12$
${\color{red}50\%}$
$4 / 8$
src/contracts/extensions/v3-config-engine/AaveV3Payload.sol ${\color{red}75.56\%}$
$34 / 45$
119, 120, 124, 127, 135 and 6 more
${\color{red}28.57\%}$
$4 / 14$
AaveV3Payload._bpsToRay, AaveV3Payload.newListings, AaveV3Payload.newListingsCustom, AaveV3Payload.capsUpdates, AaveV3Payload.collateralsUpdates and 5 more
${\color{green}100\%}$
$9 / 9$
src/contracts/extensions/v3-config-engine/libraries/BorrowEngine.sol ${\color{green}100\%}$
$18 / 18$
${\color{green}100\%}$
$2 / 2$
${\color{red}80\%}$
$8 / 10$
src/contracts/extensions/v3-config-engine/libraries/CapsEngine.sol ${\color{green}100\%}$
$9 / 9$
${\color{green}100\%}$
$2 / 2$
${\color{red}75\%}$
$3 / 4$
src/contracts/extensions/v3-config-engine/libraries/CollateralEngine.sol ${\color{red}70\%}$
$21 / 30$
39, 42, 48, 50, 51 and 4 more
${\color{green}100\%}$
$2 / 2$
${\color{red}57.14\%}$
$8 / 14$
src/contracts/extensions/v3-config-engine/libraries/EModeEngine.sol ${\color{orange}92.31\%}$
$36 / 39$
78, 82, 87
${\color{green}100\%}$
$4 / 4$
${\color{red}64.29\%}$
$9 / 14$
src/contracts/extensions/v3-config-engine/libraries/ListingEngine.sol ${\color{green}100\%}$
$33 / 33$
${\color{green}100\%}$
$3 / 3$
${\color{red}50\%}$
$2 / 4$
src/contracts/extensions/v3-config-engine/libraries/PriceFeedEngine.sol ${\color{green}100\%}$
$12 / 12$
${\color{green}100\%}$
$2 / 2$
${\color{red}50\%}$
$3 / 6$
src/contracts/extensions/v3-config-engine/libraries/RateEngine.sol ${\color{red}64.52\%}$
$20 / 31$
45, 46, 47, 50, 51 and 6 more
${\color{green}100\%}$
$3 / 3$
${\color{red}14.29\%}$
$1 / 7$
src/contracts/helpers/AaveProtocolDataProvider.sol ${\color{red}66.23\%}$
$51 / 77$
39, 40, 41, 42, 43 and 21 more
${\color{orange}80.95\%}$
$17 / 21$
AaveProtocolDataProvider.getAllReservesTokens, AaveProtocolDataProvider.getAllATokens, AaveProtocolDataProvider.getReserveData, AaveProtocolDataProvider.getReserveDeficit
${\color{red}0\%}$
$0 / 2$
src/contracts/helpers/L2Encoder.sol ${\color{green}100\%}$
$68 / 68$
${\color{green}100\%}$
$10 / 10$
${\color{green}100\%}$
$0 / 0$
src/contracts/helpers/LiquidationDataProvider.sol $^{↓-0.073\%}{\color{orange}90.71\%}$
$127 / 140$
49, 66, 70, 74, 78 and 8 more
${\color{red}80\%}$
$12 / 15$
LiquidationDataProvider.getUserPositionFullInfo, LiquidationDataProvider.getCollateralFullInfo, LiquidationDataProvider.getDebtFullInfo
${\color{red}75\%}$
$15 / 20$
src/contracts/helpers/UiIncentiveDataProviderV3.sol ${\color{red}0\%}$
$0 / 90$
17, 26, 29, 32, 35 and 85 more
${\color{red}0\%}$
$0 / 5$
UiIncentiveDataProviderV3.getFullReservesIncentiveData, UiIncentiveDataProviderV3.getReservesIncentivesData, UiIncentiveDataProviderV3._getReservesIncentivesData, UiIncentiveDataProviderV3.getUserReservesIncentivesData, UiIncentiveDataProviderV3._getUserReservesIncentivesData
${\color{red}0\%}$
$0 / 4$
src/contracts/helpers/UiPoolDataProviderV3.sol $^{↑4.4\%}{\color{red}2.63\%}$
$3 / 114$
38, 41, 42, 45, 48 and 106 more
${\color{red}16.67\%}$
$1 / 6$
UiPoolDataProviderV3.getReservesList, UiPoolDataProviderV3.getReservesData, UiPoolDataProviderV3.getEModes, UiPoolDataProviderV3.getUserReservesData, UiPoolDataProviderV3.bytes32ToString
${\color{red}0\%}$
$0 / 14$
src/contracts/helpers/WalletBalanceProvider.sol ${\color{red}0\%}$
$0 / 31$
31, 33, 42, 43, 44 and 26 more
${\color{red}0\%}$
$0 / 4$
WalletBalanceProvider.receive, WalletBalanceProvider.balanceOf, WalletBalanceProvider.batchBalanceOf, WalletBalanceProvider.getUserWalletBalances
${\color{red}0\%}$
$0 / 6$
src/contracts/helpers/WrappedTokenGatewayV3.sol $^{↑1.9\%}{\color{green}100\%}$
$54 / 54$
${\color{green}100\%}$
$12 / 12$
$^{↑2.3\%}{\color{orange}81.82\%}$
$9 / 11$
src/contracts/instances/ATokenInstance.sol ${\color{green}100\%}$
$12 / 12$
${\color{green}100\%}$
$2 / 2$
${\color{red}50\%}$
$1 / 2$
src/contracts/instances/PoolConfiguratorInstance.sol ${\color{green}100\%}$
$5 / 5$
${\color{green}100\%}$
$2 / 2$
${\color{green}100\%}$
$0 / 0$
src/contracts/instances/PoolInstance.sol ${\color{green}100\%}$
$4 / 4$
${\color{green}100\%}$
$2 / 2$
${\color{green}100\%}$
$2 / 2$
src/contracts/instances/VariableDebtTokenInstance.sol ${\color{green}100\%}$
$11 / 11$
${\color{green}100\%}$
$2 / 2$
${\color{green}100\%}$
$2 / 2$
src/contracts/misc/AaveOracle.sol ${\color{green}100\%}$
$43 / 43$
${\color{green}100\%}$
$11 / 11$
${\color{green}100\%}$
$10 / 10$
src/contracts/misc/DefaultReserveInterestRateStrategyV2.sol ${\color{green}100\%}$
$54 / 54$
${\color{green}100\%}$
$15 / 15$
${\color{green}100\%}$
$17 / 17$
src/contracts/misc/PriceOracleSentinel.sol ${\color{green}100\%}$
$27 / 27$
${\color{green}100\%}$
$10 / 10$
${\color{green}100\%}$
$4 / 4$
src/contracts/misc/aave-upgradeability/BaseImmutableAdminUpgradeabilityProxy.sol ${\color{green}100\%}$
$18 / 18$
${\color{green}100\%}$
$7 / 7$
${\color{red}33.33\%}$
$2 / 6$
src/contracts/misc/aave-upgradeability/InitializableImmutableAdminUpgradeabilityProxy.sol ${\color{green}100\%}$
$2 / 2$
${\color{green}100\%}$
$1 / 1$
${\color{green}100\%}$
$0 / 0$
src/contracts/misc/aave-upgradeability/VersionedInitializable.sol ${\color{green}100\%}$
$13 / 13$
${\color{green}100\%}$
$2 / 2$
${\color{green}100\%}$
$4 / 4$
src/contracts/misc/flashloan/base/FlashLoanReceiverBase.sol ${\color{green}100\%}$
$3 / 3$
${\color{green}100\%}$
$1 / 1$
${\color{green}100\%}$
$0 / 0$
src/contracts/misc/flashloan/base/FlashLoanSimpleReceiverBase.sol ${\color{green}100\%}$
$3 / 3$
${\color{green}100\%}$
$1 / 1$
${\color{green}100\%}$
$0 / 0$
src/contracts/protocol/configuration/ACLManager.sol ${\color{green}100\%}$
$43 / 43$
${\color{green}100\%}$
$20 / 20$
${\color{green}100\%}$
$2 / 2$
src/contracts/protocol/configuration/PoolAddressesProvider.sol ${\color{green}100\%}$
$81 / 81$
${\color{green}100\%}$
$23 / 23$
${\color{green}100\%}$
$4 / 4$
src/contracts/protocol/configuration/PoolAddressesProviderRegistry.sol ${\color{green}100\%}$
$35 / 35$
${\color{green}100\%}$
$8 / 8$
${\color{red}77.78\%}$
$7 / 9$
src/contracts/protocol/libraries/configuration/EModeConfiguration.sol ${\color{green}100\%}$
$9 / 9$
${\color{green}100\%}$
$2 / 2$
${\color{red}66.67\%}$
$4 / 6$
src/contracts/protocol/libraries/configuration/ReserveConfiguration.sol ${\color{green}100\%}$
$92 / 92$
${\color{green}100\%}$
$39 / 39$
${\color{red}60\%}$
$12 / 20$
src/contracts/protocol/libraries/configuration/UserConfiguration.sol ${\color{green}100\%}$
$55 / 55$
${\color{green}100\%}$
$13 / 13$
${\color{red}72.22\%}$
$13 / 18$
src/contracts/protocol/libraries/logic/BorrowLogic.sol ${\color{green}100\%}$
$44 / 44$
${\color{green}100\%}$
$2 / 2$
${\color{green}100\%}$
$9 / 9$
src/contracts/protocol/libraries/logic/BridgeLogic.sol ${\color{green}100\%}$
$31 / 31$
${\color{green}100\%}$
$2 / 2$
${\color{green}100\%}$
$4 / 4$
src/contracts/protocol/libraries/logic/CalldataLogic.sol ${\color{green}100\%}$
$70 / 70$
${\color{green}100\%}$
$8 / 8$
${\color{green}100\%}$
$3 / 3$
src/contracts/protocol/libraries/logic/ConfiguratorLogic.sol ${\color{green}100\%}$
$34 / 34$
${\color{green}100\%}$
$5 / 5$
${\color{green}100\%}$
$2 / 2$
src/contracts/protocol/libraries/logic/EModeLogic.sol ${\color{green}100\%}$
$6 / 6$
${\color{green}100\%}$
$1 / 1$
${\color{green}100\%}$
$0 / 0$
src/contracts/protocol/libraries/logic/FlashLoanLogic.sol ${\color{green}100\%}$
$42 / 42$
${\color{green}100\%}$
$3 / 3$
${\color{green}100\%}$
$8 / 8$
src/contracts/protocol/libraries/logic/GenericLogic.sol ${\color{orange}92.31\%}$
$48 / 52$
92, 94, 131, 149
${\color{green}100\%}$
$4 / 4$
${\color{orange}83.33\%}$
$10 / 12$
src/contracts/protocol/libraries/logic/IsolationModeLogic.sol ${\color{green}100\%}$
$12 / 12$
${\color{green}100\%}$
$2 / 2$
${\color{green}100\%}$
$3 / 3$
src/contracts/protocol/libraries/logic/LiquidationLogic.sol ${\color{orange}93.96\%}$
$140 / 149$
145, 151, 399, 569, 573 and 4 more
${\color{green}100\%}$
$7 / 7$
${\color{orange}82.5\%}$
$33 / 40$
src/contracts/protocol/libraries/logic/PoolLogic.sol ${\color{green}100\%}$
$44 / 44$
${\color{green}100\%}$
$7 / 7$
${\color{red}72.73\%}$
$8 / 11$
src/contracts/protocol/libraries/logic/ReserveLogic.sol ${\color{green}100\%}$
$72 / 72$
${\color{green}100\%}$
$9 / 9$
${\color{green}100\%}$
$14 / 14$
src/contracts/protocol/libraries/logic/SupplyLogic.sol ${\color{green}100\%}$
$66 / 66$
${\color{green}100\%}$
$4 / 4$
${\color{green}100\%}$
$17 / 17$
src/contracts/protocol/libraries/logic/ValidationLogic.sol ${\color{green}100\%}$
$124 / 124$
${\color{green}100\%}$
$15 / 15$
${\color{lightgreen}95.38\%}$
$124 / 130$
src/contracts/protocol/libraries/math/PercentageMath.sol ${\color{red}75\%}$
$6 / 8$
34, 55
${\color{green}100\%}$
$2 / 2$
${\color{red}0\%}$
$0 / 2$
src/contracts/protocol/libraries/math/WadRayMath.sol ${\color{red}76\%}$
$19 / 25$
33, 51, 69, 87, 105 and 1 more
${\color{green}100\%}$
$6 / 6$
${\color{red}0\%}$
$0 / 6$
src/contracts/protocol/pool/L2Pool.sol ${\color{green}100\%}$
$29 / 29$
${\color{green}100\%}$
$9 / 9$
${\color{green}100\%}$
$0 / 0$
src/contracts/protocol/pool/Pool.sol $^{↑1\%}{\color{green}100\%}$
$196 / 196$
${\color{green}100\%}$
$71 / 71$
$^{↑2.1\%}{\color{red}77.42\%}$
$24 / 31$
src/contracts/protocol/pool/PoolConfigurator.sol ${\color{green}100\%}$
$235 / 235$
${\color{green}100\%}$
$45 / 45$
${\color{lightgreen}95.24\%}$
$60 / 63$
src/contracts/protocol/tokenization/AToken.sol ${\color{green}100\%}$
$54 / 54$
${\color{green}100\%}$
$17 / 17$
${\color{green}100\%}$
$12 / 12$
src/contracts/protocol/tokenization/VariableDebtToken.sol ${\color{green}100\%}$
$30 / 30$
${\color{green}100\%}$
$12 / 12$
${\color{green}100\%}$
$2 / 2$
src/contracts/protocol/tokenization/base/DebtTokenBase.sol ${\color{green}100\%}$
$19 / 19$
${\color{green}100\%}$
$5 / 5$
${\color{green}100\%}$
$6 / 6$
src/contracts/protocol/tokenization/base/EIP712Base.sol ${\color{green}100\%}$
$11 / 11$
${\color{green}100\%}$
$4 / 4$
${\color{green}100\%}$
$1 / 1$
src/contracts/protocol/tokenization/base/IncentivizedERC20.sol ${\color{green}100\%}$
$65 / 65$
${\color{green}100\%}$
$21 / 21$
${\color{green}100\%}$
$6 / 6$
src/contracts/protocol/tokenization/base/MintableIncentivizedERC20.sol ${\color{green}100\%}$
$16 / 16$
${\color{green}100\%}$
$2 / 2$
${\color{green}100\%}$
$2 / 2$
src/contracts/protocol/tokenization/base/ScaledBalanceTokenBase.sol ${\color{green}100\%}$
$52 / 52$
${\color{green}100\%}$
$7 / 7$
${\color{green}100\%}$
$8 / 8$
src/contracts/rewards/EmissionManager.sol ${\color{green}100\%}$
$30 / 30$
${\color{green}100\%}$
$12 / 12$
${\color{red}50\%}$
$3 / 6$
src/contracts/rewards/RewardsController.sol ${\color{lightgreen}99.04\%}$
$103 / 104$
201
${\color{green}100\%}$
$24 / 24$
${\color{red}60.71\%}$
$17 / 28$
src/contracts/rewards/RewardsDistributor.sol ${\color{lightgreen}99.32\%}$
$145 / 146$
429
${\color{green}100\%}$
$24 / 24$
${\color{orange}80.95\%}$
$17 / 21$
src/contracts/rewards/transfer-strategies/PullRewardsTransferStrategy.sol ${\color{green}100\%}$
$7 / 7$
${\color{green}100\%}$
$3 / 3$
${\color{green}100\%}$
$0 / 0$
src/contracts/rewards/transfer-strategies/StakedTokenTransferStrategy.sol ${\color{green}100\%}$
$18 / 18$
${\color{green}100\%}$
$6 / 6$
${\color{red}50\%}$
$1 / 2$
src/contracts/rewards/transfer-strategies/TransferStrategyBase.sol ${\color{green}100\%}$
$14 / 14$
${\color{green}100\%}$
$6 / 6$
${\color{red}50\%}$
$2 / 4$
src/contracts/treasury/Collector.sol ${\color{lightgreen}96.77\%}$
$90 / 93$
152, 191, 206
${\color{orange}93.75\%}$
$15 / 16$
Collector.deltaOf
${\color{red}76.19\%}$
$16 / 21$
src/contracts/treasury/RevenueSplitter.sol ${\color{green}100\%}$
$25 / 25$
${\color{green}100\%}$
$3 / 3$
${\color{green}100\%}$
$3 / 3$

@github-actions
Copy link
Contributor

github-actions bot commented May 8, 2025

♻️ Forge Gas Snapshots

🔕 Unchanged
Path Value
snapshots/AToken.transfer.json
full amount; receiver: ->enableCollateral 144,881
full amount; sender: ->disableCollateral; 103,318
full amount; sender: ->disableCollateral; receiver: ->enableCollateral 145,060
full amount; sender: ->disableCollateral; receiver: dirty, ->enableCollateral 133,158
full amount; sender: collateralDisabled 103,139
partial amount; sender: collateralDisabled; 103,139
partial amount; sender: collateralDisabled; receiver: ->enableCollateral 144,881
partial amount; sender: collateralEnabled; 103,347
partial amount; sender: collateralEnabled; receiver: ->enableCollateral 145,089
snapshots/Pool.Getters.json
getEModeCategoryCollateralConfig 8,000
getEModeCategoryData 11,053
getLiquidationGracePeriod 7,765
getReserveData 32,157
getUserAccountData: supplies: 0, borrows: 0 22,641
getUserAccountData: supplies: 0, borrows: 0 with eMode enabled 22,641
getUserAccountData: supplies: 1, borrows: 0 58,553
getUserAccountData: supplies: 1, borrows: 0 with eMode enabled 61,360
getUserAccountData: supplies: 2, borrows: 0 87,575
getUserAccountData: supplies: 2, borrows: 0 with eMode enabled 90,767
getUserAccountData: supplies: 2, borrows: 1 118,931
getUserAccountData: supplies: 2, borrows: 1 with eMode enabled 122,123
snapshots/Pool.Operations.json
borrow: first borrow->borrowingEnabled 256,480
borrow: recurrent borrow 249,018
flashLoan: flash loan for one asset 197,361
flashLoan: flash loan for one asset and borrow 279,057
flashLoan: flash loan for two assets 325,455
flashLoan: flash loan for two assets and borrow 484,439
flashLoanSimple: simple flash loan 170,603
liquidationCall: deficit on liquidated asset 392,365
liquidationCall: deficit on liquidated asset + other asset 491,921
liquidationCall: full liquidation 392,365
liquidationCall: full liquidation and receive ATokens 368,722
liquidationCall: partial liquidation 383,166
liquidationCall: partial liquidation and receive ATokens 359,520
repay: full repay 176,521
repay: full repay with ATokens 173,922
repay: partial repay 189,949
repay: partial repay with ATokens 185,129
supply: collateralDisabled 146,755
supply: collateralEnabled 146,755
supply: first supply->collateralEnabled 176,366
withdraw: full withdraw 165,226
withdraw: partial withdraw 181,916
withdraw: partial withdraw with active borrows 239,471
snapshots/Pool.Setters.json
setUserEMode: enter eMode, 1 borrow, 1 supply 140,836
setUserEMode: leave eMode, 1 borrow, 1 supply 112,635
setUserUseReserveAsCollateral: disableCollateral, 1 supply 93,456
setUserUseReserveAsCollateral: enableCollateral, 1 supply 105,167
snapshots/ProtocolDataProvider.json
getATokenTotalSupply 35,491
getFlashLoanEnabled 16,739
getInterestRateStrategyAddress 40,256
getIsVirtualAccActive 16,789
getLiquidationProtocolFee 16,766
getPaused 16,855
getReserveCaps 16,767
getReserveConfigurationData 17,181
getReserveTokensAddresses 20,374
getSiloedBorrowing 16,792
getTotalDebt 35,491
getUnbackedMintCap 16,721
getUserReserveData 72,607
getVirtualUnderlyingBalance 16,533
snapshots/StataTokenV2.json
claimRewards 359,669
deposit 280,955
depositATokens 219,311
redeem 205,837
redeemAToken 152,633
snapshots/WrappedTokenGatewayV3.json
borrowETH 250,413
depositETH 222,614
repayETH 192,937
withdrawETH 259,299

@github-actions
Copy link
Contributor

github-actions bot commented May 8, 2025

Forge Build Sizes

Contract Runtime Size (B) Initcode Size (B) Runtime Margin (B) Initcode Margin (B)
LiquidationDataProvider ↑0% (+36) 7,554 ↑0% (+36) 7,841 ↓0% (-36) 17,022 ↓0% (-36) 41,311
Address 44 94 24,532 49,058
Errors 4,660 4,713 19,916 44,439
Initializable 21 47 24,555 49,105
MockFlashLoanReceiver 2,024 2,053 22,552 47,099
MockVariableDebtToken 7,280 8,163 17,296 40,989
Ownable 629 722 23,947 48,430
SafeCast 44 94 24,532 49,058
SafeERC20 44 94 24,532 49,058
Strings 44 94 24,532 49,058
Address (lib/solidity-utils/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol) 44 94 24,532 49,058
Address (src/contracts/dependencies/openzeppelin/contracts/Address.sol) 44 94 24,532 49,058
Errors (lib/solidity-utils/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Errors.sol) 44 94 24,532 49,058
Errors (src/contracts/protocol/libraries/helpers/Errors.sol) 4,660 4,713 19,916 44,439
Initializable (src/contracts/dependencies/openzeppelin/upgradeability/Initializable.sol) 21 47 24,555 49,105
MockFlashLoanReceiver (src/contracts/mocks/flashloan/MockFlashLoanReceiver.sol) 2,216 2,501 22,360 46,651
MockFlashLoanReceiver (tests/invariants/helpers/FlashLoanReceiver.sol) 2,024 2,053 22,552 47,099
MockVariableDebtToken (src/contracts/mocks/tokens/MockDebtTokens.sol) 7,280 8,163 17,296 40,989
MockVariableDebtToken (src/contracts/mocks/upgradeability/MockVariableDebtToken.sol) 7,280 8,163 17,296 40,989
Ownable (src/contracts/dependencies/openzeppelin/contracts/Ownable.sol) 629 722 23,947 48,430
SafeCast (lib/solidity-utils/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol) 44 94 24,532 49,058
SafeCast (src/contracts/dependencies/openzeppelin/contracts/SafeCast.sol) 44 94 24,532 49,058
SafeERC20 (lib/solidity-utils/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol) 44 94 24,532 49,058
SafeERC20 (src/contracts/dependencies/openzeppelin/contracts/SafeERC20.sol) 44 94 24,532 49,058
Strings (lib/solidity-utils/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Strings.sol) 44 94 24,532 49,058
Strings (src/contracts/dependencies/openzeppelin/contracts/Strings.sol) 44 94 24,532 49,058
Strings (tests/invariants/utils/Pretty.sol) 44 94 24,532 49,058
🔕 Unchanged
Contract Runtime Size (B) Initcode Size (B) Runtime Margin (B) Initcode Margin (B)
ACLManager 3,493 4,108 21,083 45,044
ATokenHandler 9,969 10,709 14,607 38,443
ATokenInstance 10,162 11,059 14,414 38,093
ATokenMock 803 967 23,773 48,185
AaveOracle 2,607 3,767 21,969 45,385
AaveProtocolDataProvider 9,628 9,909 14,948 39,243
AaveV3BatchOrchestration 44 94 24,532 49,058
AaveV3ConfigEngine 7,396 8,988 17,180 40,164
AaveV3DefaultRateStrategyProcedure 21 47 24,555 49,105
AaveV3GettersBatchOne 229 32,675 24,347 16,477
AaveV3GettersBatchTwo 137 10,835 24,439 38,317
AaveV3GettersProcedureOne 21 47 24,555 49,105
AaveV3GettersProcedureTwo 21 47 24,555 49,105
AaveV3HelpersBatchOne 353 33,396 24,223 15,756
AaveV3HelpersBatchTwo 229 31,062 24,347 18,090
AaveV3HelpersProcedureOne 21 47 24,555 49,105
AaveV3HelpersProcedureTwo 21 47 24,555 49,105
AaveV3IncentiveProcedure 21 47 24,555 49,105
AaveV3L2PoolBatch 137 43,305 24,439 5,847
AaveV3L2PoolProcedure 21 47 24,555 49,105
AaveV3LibrariesBatch1 353 31,313 24,223 17,839
AaveV3LibrariesBatch2 353 45,102 24,223 4,050
AaveV3MiscBatch 137 6,833 24,439 42,319
AaveV3MiscProcedure 21 47 24,555 49,105
AaveV3MockAssetEModeUpdate 3,309 3,538 21,267 45,614
AaveV3MockBorrowUpdate 3,189 3,380 21,387 45,772
AaveV3MockBorrowUpdateNoChange 3,219 3,410 21,357 45,742
AaveV3MockCapUpdate 3,133 3,324 21,443 45,828
AaveV3MockCollateralUpdate 3,193 3,384 21,383 45,768
AaveV3MockCollateralUpdateCorrectBonus 3,193 3,384 21,383 45,768
AaveV3MockCollateralUpdateNoChange 3,220 3,411 21,356 45,741
AaveV3MockCollateralUpdateWrongBonus 3,197 3,388 21,379 45,764
AaveV3MockEModeCategoryUpdate 3,049 3,187 21,527 45,965
AaveV3MockEModeCategoryUpdateEdgeBonus 3,052 3,190 21,524 45,962
AaveV3MockEModeCategoryUpdateNoChange 3,120 3,258 21,456 45,894
AaveV3MockListing 3,488 3,717 21,088 45,435
AaveV3MockListingCustom 3,781 4,093 20,795 45,059
AaveV3MockPriceFeedUpdate 3,159 3,388 21,417 45,764
AaveV3MockRatesUpdate 3,152 3,343 21,424 45,809
AaveV3OracleProcedure 21 47 24,555 49,105
AaveV3ParaswapBatch 189 28,487 24,387 20,665
AaveV3ParaswapProcedure 21 47 24,555 49,105
AaveV3PeripheryBatch 353 38,119 24,223 11,033
AaveV3PoolBatch 137 42,058 24,439 7,094
AaveV3PoolConfigProcedure 21 47 24,555 49,105
AaveV3PoolProcedure 21 47 24,555 49,105
AaveV3SetupBatch 11,692 25,021 12,884 24,131
AaveV3SetupProcedure 21 47 24,555 49,105
AaveV3TestListing 7,018 14,790 17,558 34,362
AaveV3TokensBatch 137 20,323 24,439 28,829
AaveV3TokensProcedure 21 47 24,555 49,105
AaveV3TreasuryProcedure 21 47 24,555 49,105
Actor 943 1,747 23,633 47,405
AdminUpgradeabilityProxy 1,544 2,502 23,032 46,650
AugustusRegistryMock 162 190 24,414 48,962
BaseAdminUpgradeabilityProxy 1,536 1,565 23,040 47,587
BaseHandler 147 866 24,429 48,286
BaseHooks 147 866 24,429 48,286
BaseImmutableAdminUpgradeabilityProxy 1,302 1,469 23,274 47,683
BaseUpgradeabilityProxy 108 135 24,468 49,017
BorrowEngine 2,486 2,539 22,090 46,613
BorrowLogic 12,712 12,765 11,864 36,387
BorrowingHandler 13,585 14,325 10,991 34,827
BridgeLogic 6,747 6,800 17,829 42,352
CalldataLogic 44 94 24,532 49,058
CapsEngine 1,136 1,189 23,440 47,963
CollateralEngine 2,691 2,744 21,885 46,408
Collector 6,496 6,716 18,080 42,436
ConfiguratorInputTypes 44 94 24,532 49,058
ConfiguratorLogic 6,040 6,093 18,536 43,059
Create2Factory 52 78 24,524 49,074
Create2Utils 121 172 24,455 48,980
DataTypes 44 94 24,532 49,058
DefaultMarketInput 21 47 24,555 49,105
DefaultReserveInterestRateStrategyV2 3,998 4,293 20,578 44,859
DeployPermit2 44 94 24,532 49,058
DeployUtils 913 942 23,663 48,210
DonationAttackHandler 670 1,390 23,906 47,762
ECDSA 44 94 24,532 49,058
EIP712SigUtils 1,563 1,616 23,013 47,536
EModeConfiguration 44 94 24,532 49,058
EModeEngine 4,384 4,437 20,192 44,715
EModeLogic 3,952 4,005 20,624 45,147
ERC1967Proxy 122 967 24,454 48,185
ERC1967Utils 44 94 24,532 49,058
ERC20 2,086 2,839 22,490 46,313
EmissionManager 3,398 3,859 21,178 45,293
EmptyImplementation 21 47 24,555 49,105
EngineFlags 44 94 24,532 49,058
EnumerableSet 44 94 24,532 49,058
FactoryDeployer 214 241 24,362 48,911
Faucet 2,033 2,565 22,543 46,587
FlashLoanHandler 8,942 9,682 15,634 39,470
FlashLoanLogic 9,504 9,557 15,072 39,595
FlashloanAttacker 1,602 2,026 22,974 47,126
GPv2SafeERC20 44 94 24,532 49,058
GenericLogic 44 94 24,532 49,058
InitializableAdminUpgradeabilityProxy 2,388 2,417 22,188 46,735
InitializableImmutableAdminUpgradeabilityProxy 1,853 2,020 22,723 47,132
InitializableUpgradeabilityProxy 871 900 23,705 48,252
IsolationModeLogic 44 94 24,532 49,058
L2Encoder 3,731 3,926 20,845 45,226
L2PoolInstance 22,663 22,919 1,913 26,233
LendingHandler 12,142 12,882 12,434 36,270
LiquidationHandler 11,637 12,377 12,939 36,775
LiquidationHelper 44 94 24,532 49,058
LiquidationLogic 14,886 14,939 9,690 34,213
ListingEngine 6,967 7,020 17,609 42,132
MarketReportUtils 44 94 24,532 49,058
Math 44 94 24,532 49,058
MathUtils 44 94 24,532 49,058
MathUtilsWrapper 917 946 23,659 48,206
MessageHashUtils 44 94 24,532 49,058
MetadataReporter 12,510 12,539 12,066 36,613
MintableDelegationERC20 2,534 3,319 22,042 45,833
MintableERC20 3,351 4,300 21,225 44,852
Mock 183 211 24,393 48,941
MockAToken 10,164 11,063 14,412 38,089
MockATokenRepayment 10,245 11,144 14,331 38,008
MockAggregator 134 278 24,442 48,874
MockAggregatorSetPrice 243 391 24,333 48,761
MockBadTransferStrategy 998 1,187 23,578 47,965
MockERC20AaveLMUpgradeable 7,932 8,150 16,644 41,002
MockERC4626StataTokenUpgradeable 9,500 9,856 15,076 39,296
MockFlashLoanATokenReceiver 2,396 2,774 22,180 46,378
MockFlashLoanReceiverWithoutMint 1,213 1,497 23,363 47,655
MockFlashLoanSimpleReceiver 1,476 1,761 23,100 47,391
MockIncentivesController 132 159 24,444 48,993
MockInitializableFromConstructorImple 349 639 24,227 48,513
MockInitializableImple 1,544 1,576 23,032 47,576
MockInitializableImpleV2 1,546 1,578 23,030 47,574
MockInitializableV1 307 339 24,269 48,813
MockInitializableV2 309 341 24,267 48,811
MockL2Pool 22,690 22,946 1,886 26,206
MockParaSwapAugustus 1,939 1,968 22,637 47,184
MockParaSwapAugustusRegistry 179 308 24,397 48,844
MockPeripheryContractV1 309 338 24,267 48,814
MockPeripheryContractV2 290 319 24,286 48,833
MockPoolInherited 21,605 21,888 2,971 27,264
MockReentrantInitializableImple 413 445 24,163 48,707
MockReserveConfiguration 2,652 2,681 21,924 46,471
MockReserveInterestRateStrategy 3,315 3,614 21,261 45,538
MockScaledTestnetERC20 4,101 5,529 20,475 43,623
MockScaledToken 3,999 4,761 20,577 44,391
MockSimpleFlashLoanReceiverWithoutMint 746 1,029 23,830 48,123
Panic 44 94 24,532 49,058
ParaSwapLiquiditySwapAdapter 8,145 9,269 16,431 39,883
ParaSwapRepayAdapter 8,725 9,939 15,851 39,213
ParaSwapWithdrawSwapAdapter 6,655 7,709 17,921 41,443
PercentageMath 44 94 24,532 49,058
PercentageMathWrapper 297 326 24,279 48,826
PoolAddressesProvider 6,696 8,050 17,880 41,102
PoolAddressesProviderRegistry 2,149 2,610 22,427 46,542
PoolConfiguratorInstance 19,728 19,760 4,848 29,392
PoolHandler 12,243 12,983 12,333 36,169
PoolInstance 21,416 21,672 3,160 27,480
PoolLogic 6,943 6,996 17,633 42,156
PoolPermissionedHandler 10,518 11,258 14,058 37,894
PoolStorage 21 47 24,555 49,105
Pretty 2,459 2,512 22,117 46,640
PriceAggregatorHandler 485 1,205 24,091 47,947
PriceFeedEngine 1,531 1,584 23,045 47,568
PriceOracle 469 498 24,107 48,654
PriceOracleSentinel 1,669 1,885 22,907 47,267
PropertiesLibString 44 94 24,532 49,058
ProtocolAssertions 147 866 24,429 48,286
ProxyAdmin 990 1,235 23,586 47,917
ProxyHelpers 44 94 24,532 49,058
PullRewardsTransferStrategy 1,255 1,481 23,321 47,671
RateEngine 2,297 2,350 22,279 46,802
ReserveConfiguration 128 179 24,448 48,973
ReserveLogic 44 94 24,532 49,058
RevenueSplitter 1,942 2,259 22,634 46,893
RewardsController 14,067 14,261 10,509 34,891
RewardsDataTypes 44 94 24,532 49,058
SafeMath 44 94 24,532 49,058
SequencerOracle 865 1,326 23,711 47,826
Setup 147 866 24,429 48,286
SigUtils 492 545 24,084 48,607
SignedMath 44 94 24,532 49,058
SlotParser 330 383 24,246 48,769
StakeMock 355 384 24,221 48,768
StakedTokenTransferStrategy 2,060 2,770 22,516 46,382
StataTokenFactory 2,981 3,437 21,595 45,715
StataTokenV2 18,929 19,631 5,647 29,521
StorageSlot 44 94 24,532 49,058
SupplyLogic 11,910 11,963 12,666 37,189
TestERC20 3,946 5,198 20,630 43,954
TestnetERC20 3,981 5,401 20,595 43,751
TransparentProxyFactory 6,830 6,859 17,746 42,293
TransparentUpgradeableProxy 1,088 3,582 23,488 45,570
UiIncentiveDataProviderV3 9,046 9,075 15,530 40,077
UiPoolDataProviderV3 10,002 10,213 14,574 38,939
UpgradeabilityProxy 108 855 24,468 48,297
UserConfiguration 44 94 24,532 49,058
ValidationLogic 189 241 24,387 48,911
VariableDebtTokenHandler 1,177 1,897 23,399 47,255
VariableDebtTokenHarness 7,296 8,179 17,280 40,973
VariableDebtTokenInstance 7,278 8,159 17,298 40,993
WETH9 1,886 2,357 22,690 46,795
WETH9Mock 2,641 3,875 21,935 45,277
WETH9Mocked 2,192 2,663 22,384 46,489
WadRayMath 44 94 24,532 49,058
WadRayMathWrapper 816 845 23,760 48,307
WalletBalanceProvider 2,557 2,586 22,019 46,566
WalletMock 21 47 24,555 49,105
WrappedTokenGatewayV3 5,387 6,279 19,189 42,873

@sakulstra sakulstra merged commit 3237693 into aave-dao:main May 19, 2025
6 checks passed
@sakulstra sakulstra deleted the fix/fix-liquidation-helper-contract branch May 19, 2025 07:30
avniculae added a commit to aave/aave-v3-horizon that referenced this pull request May 21, 2025
* test: update certora suite for 3.3.0 (aave-dao#104)

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

* fix: vm.assume for user address for the Pool Deficit tests & update snapshots (aave-dao#105)


Foundry had an issue in regards to storage hotness checks on gas reports.
The changes in the gas reports here highlight the updated snapshots based on the fix.

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

* feat: add lcov report (aave-dao#108)

* feat: add changeset, add release workflow, make snapshots run in siolation (aave-dao#110)

* feat: adding dust bin to deployment script (aave-dao#111)

* Added gas snapshots for flashloans (aave-dao#112)

* ci: fixed ci permissions (aave-dao#113)

before the changeset integration was not allowed to create pull requests.

* ci: checkout commit when submitting lcov to codecov (aave-dao#116)

Codecov requires the git to be initialized as otherwise apparently it has problems to identify which artifact belongs to what.
This pr fixes this by checking out the repo on the codecov flow.

* chore: bump solidity-utils lib

* fix: fixed edge case in the LiquidationDataProvider helper contract (aave-dao#122)

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

---------

Co-authored-by: Lukas <[email protected]>
Co-authored-by: nisnislevi <[email protected]>
Co-authored-by: Nikita <[email protected]>
Co-authored-by: Lukas <[email protected]>
Co-authored-by: Harsh Pandey <[email protected]>
Co-authored-by: TepNik <[email protected]>
grothem pushed a commit to aave/aave-v3-origin that referenced this pull request Jul 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants