Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: stata token v2 #52

Merged
merged 27 commits into from
Sep 11, 2024
Merged

feat: stata token v2 #52

merged 27 commits into from
Sep 11, 2024

Conversation

sakulstra
Copy link
Contributor

@sakulstra sakulstra commented Sep 11, 2024

This new version of stataToken most importantly upgrades the architecture to rely on openzeppelin-contracts-upgradeable instead of solmate.

New features:

  • stataTokens now implement a permissionless rescuable, allowing to transfer excess funds to the treasury
  • stataTokens are now pausable. This was done in order to align aToken and stataToken functionality - in the previous version, stataTokens would no longer be redeemable but transferable when paused.
  • latestAnswer is now exposed directly on the token and exposes the asset price as aave would price it (based on aave-oracle & exchange rate)

BREAKING_CHANGES:

  • meta transactions have been removed as there was no clear usecase. Instead a dedicated depositWithPermit was added
  • deposit/redeem are no longer overleaded with a depositToAave/reddemFromAave flag, but instead dedicated methods have been added depositATokens/redeemATokens

For a full description of the changes, check https://github.com/aave-dao/aave-v3-origin/blob/project-a/src/periphery/contracts/static-a-token/README.md#upgrade-notes-statatokenv2

The contract was audited by certora

sendra and others added 27 commits August 7, 2024 23:27
* feat: Add rescuable to static a token

* Update src/periphery/contracts/static-a-token/StaticATokenLM.sol

---------

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

* cleanup of MetaDepositParams
* fix: remove deprecation gap

* fix: migrate to oz

* oz: use erc20pausableupgradable

* fix: move 4626 to oz as well

* fix: cleanup

* feat: add failing rewards test

* fix: use oz

* fix: cleanup tests

* fix: remove deprecated interfaces

* fix: lint

* fix: remove unused revision

* fix: address comments

* fix: alter function ordering a bit
* fix: remove deprecation gap

* fix: migrate to oz

* oz: use erc20pausableupgradable

* fix: move 4626 to oz as well

* fix: cleanup

* feat: add failing rewards test

* fix: use oz

* fix: cleanup tests

* fix: remove deprecated interfaces

* fix: lint

* fix: remove unused revision

* fix: address comments

* fix: alter function ordering a bit

* More OZ logic on stata

* add missing virtual

* Separate Stata4626 (#8)

* Separate Stata4626

* change to erc7201

* regenerated storage location

* change latestAnswer calculation logic

* DRAFT: Refactoring in extensions style

* add initializer

* remove unused params at __Stata4626_init

* remove RayMathExplicitRounding

* regenerated ERC20AaveLMStorageLocation

* add RAY constant

* remove IInitializableStata4626LM

* depositWithPermit

* disclamer on _update overload

* some descriptions cleanup

* change require to revert

* add comment to latestAnswer calc

* add comment to latestAnswer calc -1

* make ERC20AaveLMUpgradable abstract

* update license

* rename merger and 4626 contracts

* change Upgradable to Upgradeable

* move _disableInitializers into StataTokenV2

* rename IStata4626 to IERC4626StataToken

* rename init on ERC4626StataToken

* Changes on stata initializations, to follow more strict guidelines

* Changes to make stata more consistent with using ERC20 extensions

* Fix on function called on initialize of stata

* feat: improved tests

* fix: update test

* feat: add erc4626 tests

* fix: migrate some more tests

* fix: improve tests

* refactor: move to dedicated files

* feat: improve tests

* fix typo

* feat: add permit tests

* fix: linting

* feat: improved docs

* fix: typos

* fix: use internal function

---------

Co-authored-by: eboado <[email protected]>
Co-authored-by: sakulstra <[email protected]>

---------

Co-authored-by: sakulstra <[email protected]>
Co-authored-by: eboado <[email protected]>
refactor: cleanup some things
(cherry picked from commit dd7166d0640e1a5bb9ad7afa03d9a21c6eb938ee)
* docs: add inheritance image

* refactor: rename factory

* docs: add some more docs on readm
* fix: address certora feedback

* fix: leftover

* fix: one more leftover
* fix: calculate totalAssets

* test: add test to ensure doesn't revert on zero
* refactor: interface inheritance

* refactor: inherit permit

* fix: add inheritdoc
* fix: calculate totalAssets

* Certora adaptation to stata

---------

Co-authored-by: sakulstra <[email protected]>
Copy link

Foundry report

forge 0.2.0 (be451fb 2024-09-11T00:20:35.367236373Z)
Build log
Compiling 405 files with Solc 0.8.20
Solc 0.8.20 finished in 104.35s
Compiler run successful with warnings:
Warning (5740): Unreachable code.
  --> src/periphery/contracts/dependencies/openzeppelin/ReentrancyGuard.sol:61:5:
   |
61 |     _status = _NOT_ENTERED;
   |     ^^^^^^^^^^^^^^^^^^^^^^
Test success 🌈
No files changed, compilation skipped

Ran 20 tests for tests/core/ACLManager.t.sol:ACLManagerTest
[PASS] testDefaultAdminRoleAfterDeploy() (gas: 20708)
[PASS] test_defaultAdmin_grantAdminRole_FlashBorrowAdmin() (gas: 65534)
[PASS] test_defaultAdmin_grants_AssetsListingRole() (gas: 37606)
[PASS] test_defaultAdmin_grants_BridgeRole() (gas: 37672)
[PASS] test_defaultAdmin_grants_EmergencyAdminRole() (gas: 37619)
[PASS] test_defaultAdmin_grants_PoolAdminRole() (gas: 37739)
[PASS] test_defaultAdmin_grants_RiskRole() (gas: 37736)
[PASS] test_defaultAdmin_remove_AssetsListingRole() (gas: 29463)
[PASS] test_defaultAdmin_remove_BridgeRole() (gas: 29552)
[PASS] test_defaultAdmin_remove_EmergencyAdminRole() (gas: 29447)
[PASS] test_defaultAdmin_remove_PoolAdminRole() (gas: 29568)
[PASS] test_defaultAdmin_remove_RiskRole() (gas: 29453)
[PASS] test_flashBorrowAdmin_grantRole_FlashBorrowRole() (gas: 91952)
[PASS] test_flashBorrowAdmin_removeRole_FlashBorrowRole() (gas: 76488)
[PASS] test_remove_riskAdmin() (gas: 29463)
[PASS] test_revert_anyUser_grantAdminRole_FlashBorrowAdmin() (gas: 73208)
[PASS] test_revert_deploy_ACLADMIN_zeroAddress() (gas: 1501493)
[PASS] test_reverts_defaultAdmin_notRoleAdmin_addRole_FlashBorrowRole() (gas: 99205)
[PASS] test_reverts_defaultAdmin_notRoleAdmin_revokeRole_FlashBorrowRole() (gas: 125600)
[PASS] test_reverts_notAdmin_grantRole_FlashBorrow() (gas: 115771)
Suite result: ok. 20 passed; 0 failed; 0 skipped; finished in 12.58ms (2.96ms CPU time)

Ran 1 test for tests/template/BaseTest.t.sol:BaseTest
[PASS] test_default() (gas: 261779)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 37.82ms (432.34µs CPU time)

Ran 17 tests for tests/core/ATokenEdgeCases.t.sol:ATokenEdgeCasesTests
[PASS] testApprove() (gas: 45139)
[PASS] testApproveMax() (gas: 45244)
[PASS] testApproveWithZeroAddressSpender() (gas: 42177)
[PASS] testCheckGetters() (gas: 272011)
[PASS] testDecreaseAllowance() (gas: 53103)
[PASS] testIncreaseAllowance() (gas: 53147)
[PASS] testIncreaseAllowanceFromZero() (gas: 48450)
[PASS] testMintToTreasury_amount_zero() (gas: 15809)
[PASS] testTransferFromZeroAmount() (gas: 129573)
[PASS] test_burn_zeroAddress() (gas: 266604)
[PASS] test_mintToZeroAddress() (gas: 82322)
[PASS] test_poolAdmin_setIncentivesController() (gas: 35873)
[PASS] test_revert_notAdmin_setIncentivesController() (gas: 40453)
[PASS] test_reverts_burnAmountScaledZero() (gas: 19463)
[PASS] test_reverts_mintAmountScaledZero() (gas: 19608)
[PASS] test_transferFrom_zeroAddress_origin() (gas: 129385)
[PASS] test_transfer_amount_MAX_UINT_128() (gas: 16482)
Suite result: ok. 17 passed; 0 failed; 0 skipped; finished in 37.19ms (4.17ms CPU time)

Ran 12 tests for tests/core/BridgeLogic.t.sol:BridgeLogicTests
[PASS] test_backUnbacked_but_unbacked_is_zero_with_fee() (gas: 202439)
[PASS] test_backUnbacked_but_unbacked_is_zero_with_only_fee() (gas: 202497)
[PASS] test_backUnbacked_but_unbacked_is_zero_without_fee() (gas: 167843)
[PASS] test_backUnbacked_onlyFee() (gas: 373138)
[PASS] test_backUnbacked_withFee() (gas: 373317)
[PASS] test_backUnbacked_withoutFee() (gas: 350616)
[PASS] test_multiple_backUnbacked() (gas: 659167)
[PASS] test_multiple_unbackedMint_with_cap() (gas: 500712)
[PASS] test_revert_multiple_unbackedMint_with_cap() (gas: 441275)
[PASS] test_revert_unathorized_unbackedMint() (gas: 30658)
[PASS] test_revert_unbackedMint_zero_cap() (gas: 99159)
[PASS] test_unbackedMint_with_cap() (gas: 279527)
Suite result: ok. 12 passed; 0 failed; 0 skipped; finished in 46.44ms (13.18ms CPU time)

Ran 8 tests for tests/core/ATokenEvents.t.sol:ATokenEventsTests
[PASS] test_atoken_burnEvents_fullBalance() (gas: 588447)
[PASS] test_atoken_burnEvents_multipleWithdrawals_withInterests() (gas: 681872)
[PASS] test_atoken_burnEvents_singleWithdraw_WithInterests() (gas: 599062)
[PASS] test_atoken_burnEvents_singleWithdraw_noInterests() (gas: 266921)
[PASS] test_atoken_burnEvents_withdrawAmountLessThanInterests() (gas: 601910)
[PASS] test_atoken_mintEvents_firstSupply() (gas: 259742)
[PASS] test_atoken_mintEvents_supplyAfterBorrow() (gas: 657714)
[PASS] test_mintToTreasury_events() (gas: 90235)
Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 42.65ms (10.24ms CPU time)

Ran 14 tests for tests/DeploymentsGasLimits.t.sol:DeploymentsGasLimits
[PASS] test0AaveV3SetupDeployment() (gas: 4978968)
[PASS] test10ConfigEngineDeployment() (gas: 7154681)
[PASS] test11StaticATokenDeployment() (gas: 7088978)
[PASS] test12PeripheralsTreasuryPartner() (gas: 7512550)
[PASS] test1AaveV3GettersBatch1Deployment() (gas: 7540789)
[PASS] test2AaveV3GettersBatch2Deployment() (gas: 2296630)
[PASS] test3AaveV3PoolDeployment() (gas: 9057735)
[PASS] test4AaveV3L2PoolDeployment() (gas: 9349068)
[PASS] test5PeripheralsRelease() (gas: 7015444)
[PASS] test6MiscDeployment() (gas: 1428992)
[PASS] test7ParaswapDeployment() (gas: 5995140)
[PASS] test8SetupMarket() (gas: 2791352)
[PASS] test9TokensMarket() (gas: 5138992)
[PASS] testCheckInitCodeSizeBatchs() (gas: 1203176)
Logs:
  AaveV3SetupBatch 27153
  AaveV3L2PoolBatch 46144
  AaveV3PoolBatch 44694
  AaveV3PeripheryBatch 40967
  AaveV3MiscBatch 7213
  AaveV3ParaswapBatch 33121
  AaveV3GettersBatchOne 37558
  AaveV3GettersBatchTwo 12045
  AaveV3TokensBatch 27018
  AaveV3HelpersBatchOne 36589
  AaveV3HelpersBatchTwo 33470
  AaveV3PeripheryBatchTreasuryPartner 40967

Suite result: ok. 14 passed; 0 failed; 0 skipped; finished in 19.51ms (7.85ms CPU time)

Ran 4 tests for tests/core/ATokenModifiers.t.sol:ATokenModifiersTests
[PASS] test_revert_notAdmin_burn() (gas: 17111)
[PASS] test_revert_notAdmin_mint() (gas: 17206)
[PASS] test_revert_notAdmin_transferOnLiquidation() (gas: 17237)
[PASS] test_revert_notAdmin_transferUnderlyingTo() (gas: 17041)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 46.90ms (262.29µs CPU time)

Ran 9 tests for tests/core/ATokenPermit.t.sol:ATokenPermitTests
[PASS] testCheckDomainSeparator() (gas: 26218)
[PASS] test_cancelPermit() (gas: 100932)
[PASS] test_chain_fork_calculateDomainSeparator() (gas: 33005)
[PASS] test_revert_submitPermit_0_expiration() (gas: 46822)
[PASS] test_revert_submitPermit_invalid_expiration_previosCurrentBlock() (gas: 47304)
[PASS] test_revert_submitPermit_invalid_nonce() (gas: 55218)
[PASS] test_revert_submitPermit_invalid_owner() (gas: 46650)
[PASS] test_revert_submitPermit_invalid_signature() (gas: 55076)
[PASS] test_submitPermit() (gas: 94416)
Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 41.11ms (3.85ms CPU time)

Ran 3 tests for tests/core/ATokenRepay.t.sol:ATokenRepayTests
[PASS] test_repay_allDebt() (gas: 290914)
[PASS] test_repay_partialDebt() (gas: 290917)
[PASS] test_revert_repay_withoutFunds() (gas: 196882)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 33.52ms (1.80ms CPU time)

Ran 3 tests for tests/core/ATokenRescueTokens.sol:ATokenRescueTokensTests
[PASS] test_rescueTokens() (gas: 78031)
[PASS] test_reverts_rescueTokens_CALLER_NOT_POOL_ADMIN() (gas: 70952)
[PASS] test_reverts_rescueTokens_UNDERLYING_CANNOT_BE_RESCUED() (gas: 71677)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 33.96ms (591.89µs CPU time)

Ran 12 tests for tests/AaveV3BatchTests.t.sol:AaveV3BatchTests
[PASS] test0AaveV3SetupDeployment() (gas: 4978989)
[PASS] test10StaticATokenDeployment() (gas: 7088961)
[PASS] test1AaveV3GettersDeployment() (gas: 8958323)
[PASS] test2AaveV3PoolDeployment() (gas: 9057769)
[PASS] test3AaveV3L2PoolDeployment() (gas: 9349122)
[PASS] test4PeripheralsRelease() (gas: 7015421)
[PASS] test5MiscDeployment() (gas: 989047)
[PASS] test6ParaswapRelease() (gas: 5995117)
[PASS] test7SetupMarket() (gas: 2766826)
[PASS] test8TokensMarket() (gas: 5138777)
[PASS] test9ConfigEngineDeployment() (gas: 7154747)
[PASS] testAaveV3FullBatchOrchestration() (gas: 59651836)
Suite result: ok. 12 passed; 0 failed; 0 skipped; finished in 24.97ms (13.67ms CPU time)

Ran 11 tests for tests/core/ATokenTransfers.t.sol:ATokenTransferTests
[PASS] test_atoken_alice_transfer_all_to_bob() (gas: 162110)
[PASS] test_atoken_alice_transfer_to_bob() (gas: 250607)
[PASS] test_atoken_alice_transfer_to_bob_zero() (gas: 172866)
[PASS] test_atoken_alice_transfer_to_carol_accrues_interests() (gas: 248700)
[PASS] test_atoken_alice_transfer_to_herself() (gas: 81603)
[PASS] test_atoken_alice_transfer_to_herself_zero() (gas: 81646)
[PASS] test_atoken_multiple_transfers() (gas: 201449)
[PASS] test_atoken_transfer_sets_enabled_as_collateral(uint64,uint256) (runs: 1000, μ: 403653, ~: 408111)
[PASS] test_atoken_transfer_some_collateral_from_bob_borrower_to_alice() (gas: 565515)
[PASS] test_atoken_transfer_to_bob_them_bob_borrows() (gas: 419711)
[PASS] test_reverts_atoken_transfer_all_collateral_from_bob_borrower_to_alice() (gas: 420541)
Suite result: ok. 11 passed; 0 failed; 0 skipped; finished in 1.07s (1.03s CPU time)

Ran 12 tests for tests/core/AaveOracle.t.sol:AaveOracleTest
[PASS] testAddSingleSource() (gas: 949431)
[PASS] testAssetZeroPriceAndZeroFallbackPrice() (gas: 1091028)
[PASS] testAssetZeroPriceNonZeroFallback() (gas: 1110979)
[PASS] testAssetZeroPriceWithoutFallback() (gas: 933561)
[PASS] testEmptySource() (gas: 837983)
[PASS] testGetBaseCurrencyPrice() (gas: 12326)
[PASS] testGetPriceViaFallbackOracle() (gas: 1014076)
[PASS] testUpdateFallbackOracle() (gas: 181042)
[PASS] testUpdateSingleSource() (gas: 128174)
[PASS] testUpdateSourceBaseCurrency() (gas: 139662)
[PASS] test_revert_setAssetSources_inconsistentParams() (gas: 834379)
[PASS] test_revert_setAssetSources_wrongCaller() (gas: 24662)
Suite result: ok. 12 passed; 0 failed; 0 skipped; finished in 38.78ms (2.47ms CPU time)

Ran 5 tests for tests/AaveV3BatchDeployment.t.sol:AaveV3BatchDeployment
[PASS] testAaveV3BatchDeploy() (gas: 59655729)
[PASS] testAaveV3BatchDeploymentCheck() (gas: 69900163)
[PASS] testAaveV3Batch_reuseIncentivesProxy() (gas: 59121372)
[PASS] testAaveV3L2BatchDeploymentCheck() (gas: 71859683)
[PASS] testAaveV3TreasuryPartnerBatchDeploymentCheck() (gas: 70417742)
Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 131.74ms (126.14ms CPU time)

Ran 13 tests for tests/core/Pool.Supply.t.sol:PoolSupplyTests
[PASS] test_deprecated_deposit() (gas: 253040)
[PASS] test_first_supply() (gas: 253041)
[PASS] test_first_supply_on_behalf() (gas: 255088)
[PASS] test_reverts_supply_cap() (gas: 116474)
[PASS] test_reverts_supply_invalidAmount() (gas: 58838)
[PASS] test_reverts_supply_reserveFrozen() (gas: 128681)
[PASS] test_reverts_supply_reserveInactive() (gas: 140066)
[PASS] test_reverts_supply_reservePaused() (gas: 99478)
[PASS] test_reverts_supply_to_aToken() (gas: 61373)
[PASS] test_supplyWithPermit(uint128,uint128,uint128) (runs: 1000, μ: 435119, ~: 435131)
[PASS] test_supplyWithPermit_not_failing_if_permit_was_used(uint128,uint128,uint128) (runs: 1000, μ: 435278, ~: 435338)
[PASS] test_supplyWithPermit_should_revert_if_permit_is_less_then_supply_amount(uint128,uint128) (runs: 1000, μ: 298321, ~: 298321)
[PASS] test_supply_after_collateral_enabled() (gas: 302895)
Suite result: ok. 13 passed; 0 failed; 0 skipped; finished in 5.02s (4.99s CPU time)

Ran 11 tests for tests/core/Pool.Withdraw.t.sol:PoolWithdrawTests
[PASS] test_Reverts_withdraw_transferred_funds() (gas: 578305)
[PASS] test_full_withdraw() (gas: 248506)
[PASS] test_full_withdraw_to() (gas: 254035)
[PASS] test_partial_withdraw() (gas: 245010)
[PASS] test_reverts_withdraw_hf_lt_lqt() (gas: 711750)
[PASS] test_reverts_withdraw_invalidAmount() (gas: 261419)
[PASS] test_reverts_withdraw_invalidBalance() (gas: 263488)
[PASS] test_reverts_withdraw_reserveInactive() (gas: 219952)
[PASS] test_reverts_withdraw_reservePaused() (gas: 301069)
[PASS] test_reverts_withdraw_to_atoken() (gas: 261260)
[PASS] test_withdraw_not_enabled_as_collateral() (gas: 261883)
Suite result: ok. 11 passed; 0 failed; 0 skipped; finished in 100.15ms (20.86ms CPU time)

Ran 37 tests for tests/core/Pool.t.sol:PoolTests
[PASS] test_dropReserve() (gas: 114537)
[PASS] test_getBorrowLogic() (gas: 13654)
[PASS] test_getBridgeLogic() (gas: 13696)
[PASS] test_getEModeLogic() (gas: 13631)
[PASS] test_getFlashLoanLogic() (gas: 13633)
[PASS] test_getLiquidationLogic() (gas: 13700)
[PASS] test_getPoolLogic() (gas: 13741)
[PASS] test_getSupplyLogic() (gas: 13631)
[PASS] test_getVirtualUnderlyingBalance() (gas: 260739)
[PASS] test_getters_getUserAccountData() (gas: 626508)
[PASS] test_mintToTreasury() (gas: 728042)
[PASS] test_mintToTreasury_skip_invalid_addresses() (gas: 732752)
[PASS] test_noop_setUserUseReserveAsCollateral_true_when_already_is_activated() (gas: 306941)
[PASS] test_pool_defaultValues() (gas: 4645956)
[PASS] test_rescueTokens(uint256) (runs: 1000, μ: 81902, ~: 82196)
[PASS] test_resetIsolationModeTotalDebt() (gas: 755357)
[PASS] test_reverts_initReserve_not_poolConfigurator(address) (runs: 1000, μ: 25654, ~: 25654)
[PASS] test_reverts_modifiers_not_poolConfigurator(address) (runs: 1000, μ: 128313, ~: 128313)
[PASS] test_reverts_new_Pool_invalidAddressesProvider() (gas: 4634770)
[PASS] test_reverts_setReserveInterestRateStrategyAddress_AssetNotListed(address,address) (runs: 1000, μ: 40900, ~: 40900)
[PASS] test_reverts_setReserveInterestRateStrategyAddress_ZeroAssetAddress(address) (runs: 1000, μ: 22786, ~: 22786)
[PASS] test_reverts_setUserEmode_0_bad_hf() (gas: 978186)
[PASS] test_reverts_setUserUseReserveAsCollateral_false_hf_lower_lqt() (gas: 628342)
[PASS] test_reverts_setUserUseReserveAsCollateral_true_ltv_zero() (gas: 313069)
[PASS] test_reverts_setUserUseReserveAsCollateral_true_reserve_inactive() (gas: 232562)
[PASS] test_reverts_setUserUseReserveAsCollateral_true_reserve_paused() (gas: 307917)
[PASS] test_reverts_setUserUseReserveAsCollateral_true_user_balance_zero() (gas: 82802)
[PASS] test_reverts_setUserUseReserveAsCollateral_true_user_isolation_mode() (gas: 817959)
[PASS] test_setLiquidationGracePeriod(uint40) (runs: 1000, μ: 36949, ~: 37061)
[PASS] test_setLiquidationGracePeriod_assetNotListed(uint40) (runs: 1000, μ: 27155, ~: 27155)
[PASS] test_setReserveInterestRateStrategyAddress() (gas: 960881)
[PASS] test_setUserEmode() (gas: 215689)
[PASS] test_setUserEmode_twice() (gas: 338428)
[PASS] test_setUserEmode_twice_inconsistent_category() (gas: 959077)
[PASS] test_setUserUseReserveAsCollateral_false() (gas: 252486)
[PASS] test_setUserUseReserveAsCollateral_true() (gas: 292016)
[PASS] test_updateBridgeProtocolFee() (gas: 254)
Suite result: ok. 37 passed; 0 failed; 0 skipped; finished in 1.18s (1.10s CPU time)

Ran 22 tests for tests/core/PoolAddressesProvider.t.sol:PoolAddressesProviderTests
[PASS] test_PoolDataProvider_changeContract() (gas: 1504472)
[PASS] test_getter_getMarketId() (gas: 1466843)
[PASS] test_new_PoolAddressesProvider() (gas: 1476100)
[PASS] test_reverts_setAddressAsProxy_notAuth() (gas: 1480293)
[PASS] test_reverts_setAddress_noAuth() (gas: 1485491)
[PASS] test_reverts_setters_notOwner() (gas: 1483161)
[PASS] test_setACLManager_changeContract() (gas: 3077524)
[PASS] test_setACLManager_setACLAdmin() (gas: 2295674)
[PASS] test_setAddress() (gas: 1494352)
[PASS] test_setAddressAsProxy_new_proxy() (gas: 2064791)
[PASS] test_setAddressAsProxy_upgrade_proxy() (gas: 2178805)
[PASS] test_setAddress_updateAddress() (gas: 1503510)
[PASS] test_setPoolConfiguratorImpl() (gas: 6249957)
[PASS] test_setPoolConfiguratorImpl_upgrade() (gas: 10927746)
[PASS] test_setPoolDataProvider() (gas: 1494875)
[PASS] test_setPoolImpl() (gas: 6570854)
[PASS] test_setPoolImpl_upgrade() (gas: 11226411)
[PASS] test_setPriceOracle() (gas: 1495032)
[PASS] test_setPriceOracleSentinel() (gas: 1494903)
[PASS] test_setPriceOracleSentinel_changeContract() (gas: 1504549)
[PASS] test_setPriceOracle_changeContract() (gas: 1504810)
[PASS] test_setter_setMarketId() (gas: 1478048)
Suite result: ok. 22 passed; 0 failed; 0 skipped; finished in 56.26ms (8.03ms CPU time)

Ran 49 tests for tests/core/L2Pool.t.sol:L2PoolTests
[PASS] test_dropReserve() (gas: 114572)
[PASS] test_getBorrowLogic() (gas: 13655)
[PASS] test_getBridgeLogic() (gas: 13697)
[PASS] test_getEModeLogic() (gas: 13632)
[PASS] test_getFlashLoanLogic() (gas: 13653)
[PASS] test_getLiquidationLogic() (gas: 13742)
[PASS] test_getPoolLogic() (gas: 13675)
[PASS] test_getSupplyLogic() (gas: 13654)
[PASS] test_getVirtualUnderlyingBalance() (gas: 260689)
[PASS] test_getters_getUserAccountData() (gas: 626618)
[PASS] test_l2_borrow() (gas: 447898)
[PASS] test_l2_liquidationCall() (gas: 1168917)
[PASS] test_l2_partial_withdraw() (gas: 320233)
[PASS] test_l2_rebalance_borrow() (gas: 101580)
[PASS] test_l2_repay() (gas: 481288)
[PASS] test_l2_repay_atokens() (gas: 488580)
[PASS] test_l2_repay_permit(uint128,uint128,uint128,uint128,uint128) (runs: 1000, μ: 662086, ~: 672949)
[PASS] test_l2_set_user_collateral() (gas: 276801)
[PASS] test_l2_supply() (gas: 258148)
[PASS] test_l2_supply_permit(uint128,uint128) (runs: 1000, μ: 432604, ~: 432606)
[PASS] test_l2_swap_borrow_rate() (gas: 644421)
[PASS] test_l2_withdraw() (gas: 253558)
[PASS] test_mintToTreasury() (gas: 728548)
[PASS] test_mintToTreasury_skip_invalid_addresses() (gas: 733214)
[PASS] test_noop_setUserUseReserveAsCollateral_true_when_already_is_activated() (gas: 307178)
[PASS] test_pool_defaultValues() (gas: 4645967)
[PASS] test_rescueTokens(uint256) (runs: 1000, μ: 81949, ~: 82239)
[PASS] test_resetIsolationModeTotalDebt() (gas: 756024)
[PASS] test_reverts_initReserve_not_poolConfigurator(address) (runs: 1000, μ: 25675, ~: 25675)
[PASS] test_reverts_modifiers_not_poolConfigurator(address) (runs: 1000, μ: 128514, ~: 128514)
[PASS] test_reverts_new_Pool_invalidAddressesProvider() (gas: 4634792)
[PASS] test_reverts_setReserveInterestRateStrategyAddress_AssetNotListed(address,address) (runs: 1000, μ: 40790, ~: 40790)
[PASS] test_reverts_setReserveInterestRateStrategyAddress_ZeroAssetAddress(address) (runs: 1000, μ: 22787, ~: 22787)
[PASS] test_reverts_setUserEmode_0_bad_hf() (gas: 978028)
[PASS] test_reverts_setUserUseReserveAsCollateral_false_hf_lower_lqt() (gas: 628494)
[PASS] test_reverts_setUserUseReserveAsCollateral_true_ltv_zero() (gas: 313187)
[PASS] test_reverts_setUserUseReserveAsCollateral_true_reserve_inactive() (gas: 232527)
[PASS] test_reverts_setUserUseReserveAsCollateral_true_reserve_paused() (gas: 308035)
[PASS] test_reverts_setUserUseReserveAsCollateral_true_user_balance_zero() (gas: 82911)
[PASS] test_reverts_setUserUseReserveAsCollateral_true_user_isolation_mode() (gas: 818106)
[PASS] test_setLiquidationGracePeriod(uint40) (runs: 1000, μ: 36911, ~: 36995)
[PASS] test_setLiquidationGracePeriod_assetNotListed(uint40) (runs: 1000, μ: 27155, ~: 27155)
[PASS] test_setReserveInterestRateStrategyAddress() (gas: 960902)
[PASS] test_setUserEmode() (gas: 215577)
[PASS] test_setUserEmode_twice() (gas: 338048)
[PASS] test_setUserEmode_twice_inconsistent_category() (gas: 958893)
[PASS] test_setUserUseReserveAsCollateral_false() (gas: 252529)
[PASS] test_setUserUseReserveAsCollateral_true() (gas: 292167)
[PASS] test_updateBridgeProtocolFee() (gas: 188)
Suite result: ok. 49 passed; 0 failed; 0 skipped; finished in 6.87s (6.84s CPU time)

Ran 5 tests for tests/core/MathUtils.t.sol:MathUtilsTests
[PASS] test_calculateCompoundInterest_1() (gas: 10358)
[PASS] test_calculateCompoundInterest_2() (gas: 10355)
[PASS] test_calculateCompoundInterest_edge() (gas: 9177)
[PASS] test_calculateLinearInterest() (gas: 9220)
[PASS] test_constants() (gas: 8338)
Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 8.38ms (178.25µs CPU time)

Ran 22 tests for tests/periphery/ParaswapAdapters.t.sol:ParaswapAdaptersTest
[PASS] test_batchClaimToCollector() (gas: 90089)
[PASS] test_batchGetClaimable() (gas: 49436)
[PASS] test_claimToCollector() (gas: 90743)
[PASS] test_getClaimable() (gas: 46540)
[PASS] test_getters() (gas: 13875)
[PASS] test_rescueTokens() (gas: 203738)
[PASS] test_reverts_offset_out_of_range_swap_liquidity_permit_flashloan() (gas: 775714)
[PASS] test_reverts_swapAndDeposit_offset() (gas: 849979)
[PASS] test_reverts_swapAndRepay_offset_out_of_range() (gas: 961322)
[PASS] test_reverts_withdrawAndSwap_offset_out_of_range() (gas: 829848)
[PASS] test_swapAndDeposit() (gas: 934908)
[PASS] test_swapAndDeposit_permit() (gas: 982014)
[PASS] test_swapAndRepay() (gas: 1042300)
[PASS] test_swapAndRepay_flashloan() (gas: 1134714)
[PASS] test_swapAndRepay_flashloan_permit() (gas: 1177385)
[PASS] test_swapAndRepay_no_collateral_leftovers() (gas: 1114821)
[PASS] test_swapAndRepay_permit() (gas: 1089249)
[PASS] test_swap_liquidity_flashloan() (gas: 1048896)
[PASS] test_swap_liquidity_permit_flashloan() (gas: 1091524)
[PASS] test_withdrawAndSwap() (gas: 848860)
[PASS] test_withdrawAndSwap_permit() (gas: 892069)
[PASS] test_withdrawSwapAdapter_reverts_flashloan() (gas: 557717)
Suite result: ok. 22 passed; 0 failed; 0 skipped; finished in 71.70ms (37.05ms CPU time)

Ran 5 tests for tests/core/PercentageMath.t.sol:PercentageMathTests
[PASS] test_constants() (gas: 10180)
[PASS] test_percentDiv() (gas: 11166)
[PASS] test_percentDiv_fuzz(uint256,uint256) (runs: 1000, μ: 10599, ~: 10695)
[PASS] test_percentMul() (gas: 11173)
[PASS] test_percentMul_fuzz(uint256,uint256) (runs: 1000, μ: 10645, ~: 11227)
Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 88.22ms (87.05ms CPU time)

Ran 33 tests for tests/core/Pool.Borrow.t.sol:PoolBorrowTests
[PASS] test_borrow_variable_in_isolation() (gas: 592498)
[PASS] test_rebalance_borrow_rate() (gas: 84398)
[PASS] test_reverts_borrow_cap() (gas: 318112)
[PASS] test_reverts_borrow_collateral_balance_zero() (gas: 92890)
[PASS] test_reverts_borrow_collateral_can_not_cover() (gas: 336311)
[PASS] test_reverts_borrow_debt_ceiling() (gas: 688501)
[PASS] test_reverts_borrow_debt_ceiling_exceeded() (gas: 418932)
[PASS] test_reverts_borrow_hf_lt_1() (gas: 591271)
[PASS] test_reverts_borrow_inconsistent_emode_category() (gas: 462837)
[PASS] test_reverts_borrow_invalidAmount() (gas: 76172)
[PASS] test_reverts_borrow_invalid_rate() (gas: 317986)
[PASS] test_reverts_borrow_not_borrowable_isolation() (gas: 400922)
[PASS] test_reverts_borrow_reserveFrozen() (gas: 144260)
[PASS] test_reverts_borrow_reserveInactive() (gas: 155556)
[PASS] test_reverts_borrow_reservePaused() (gas: 115038)
[PASS] test_reverts_borrow_sentinel_oracle_down() (gas: 330236)
[PASS] test_reverts_borrow_sioled_borrowing_violation() (gas: 748357)
[PASS] test_reverts_borrow_stable_amount_gt_max_loan_size_stable() (gas: 334687)
[PASS] test_reverts_borrow_stable_borrow_not_enabled() (gas: 379832)
[PASS] test_reverts_borrow_stable_collateral_same_borrow() (gas: 249484)
[PASS] test_reverts_rebalance_borrow_rate_conditions_not_met() (gas: 464513)
[PASS] test_reverts_rebalance_borrow_rate_reserve_inactive() (gas: 139215)
[PASS] test_reverts_rebalance_borrow_rate_reserve_paused() (gas: 98620)
[PASS] test_reverts_swap_borrow_rate_reserve_inactive() (gas: 144598)
[PASS] test_reverts_swap_borrow_rate_reserve_invalid_rate_mode() (gas: 63724)
[PASS] test_reverts_swap_borrow_rate_reserve_paused() (gas: 106135)
[PASS] test_reverts_swap_borrow_rate_reserve_stable_no_debt() (gas: 63625)
[PASS] test_reverts_swap_borrow_rate_reserve_variable_no_debt() (gas: 63675)
[PASS] test_reverts_variable_borrow_transferred_funds() (gas: 405185)
[PASS] test_stable_borrow() (gas: 341630)
[PASS] test_swap_borrow_rate_from_variable_to_stable() (gas: 467307)
[PASS] test_swap_borrow_rate_reserve_frozen() (gas: 537006)
[PASS] test_variable_borrow() (gas: 362645)
Suite result: ok. 33 passed; 0 failed; 0 skipped; finished in 56.93ms (21.51ms CPU time)

Ran 26 tests for tests/core/PoolConfigurator.ACLModifiers.t.sol:PoolConfiguratorACLModifiersTest
[PASS] test_reverts_disableLiquidationGracePeriod_on_unauth(address,address) (runs: 1000, μ: 38752, ~: 38752)
[PASS] test_reverts_notAdmin_dropReserve(address) (runs: 1000, μ: 36183, ~: 36183)
[PASS] test_reverts_notAdmin_initReserves(address) (runs: 1000, μ: 39024, ~: 39024)
[PASS] test_reverts_notAdmin_setReserveActive(address) (runs: 1000, μ: 36355, ~: 36355)
[PASS] test_reverts_notAdmin_updateAToken(address) (runs: 1000, μ: 35290, ~: 35290)
[PASS] test_reverts_notAdmin_updateFlashLoanPremiumProtocol(address) (runs: 1000, μ: 34101, ~: 34101)
[PASS] test_reverts_notAdmin_updateFlashLoanPremiumTotal(address) (runs: 1000, μ: 34054, ~: 34054)
[PASS] test_reverts_notAdmin_updateStableDebtToken(address) (runs: 1000, μ: 35183, ~: 35183)
[PASS] test_reverts_notAdmin_updateVariableDebtToken(address) (runs: 1000, μ: 35182, ~: 35182)
[PASS] test_reverts_notRiskAdmin_configureReserveAsCollateral(address) (runs: 1000, μ: 38717, ~: 38717)
[PASS] test_reverts_notRiskAdmin_setAssetEModeCategory(address) (runs: 1000, μ: 38748, ~: 38748)
[PASS] test_reverts_notRiskAdmin_setBorrowCap(address) (runs: 1000, μ: 38730, ~: 38730)
[PASS] test_reverts_notRiskAdmin_setEModeCategory(address) (runs: 1000, μ: 39290, ~: 39290)
[PASS] test_reverts_notRiskAdmin_setReserveBorrowing(address) (runs: 1000, μ: 38682, ~: 38682)
[PASS] test_reverts_notRiskAdmin_setReserveFactor(address) (runs: 1000, μ: 38643, ~: 38643)
[PASS] test_reverts_notRiskAdmin_setReserveInterestRateData(address,address) (runs: 1000, μ: 39321, ~: 39321)
[PASS] test_reverts_notRiskAdmin_setReserveInterestRateStrategyAddress(address) (runs: 1000, μ: 39386, ~: 39386)
[PASS] test_reverts_notRiskAdmin_setReserveStableRateBorrowing(address) (runs: 1000, μ: 38770, ~: 38770)
[PASS] test_reverts_notRiskAdmin_setSupplyCap(address) (runs: 1000, μ: 38665, ~: 38665)
[PASS] test_reverts_notRiskOrPoolOrEmergencyAdmin_setReserveFreeze(address) (runs: 1000, μ: 43200, ~: 43200)
[PASS] test_reverts_setDebtCeiling(address) (runs: 1000, μ: 38687, ~: 38687)
[PASS] test_reverts_setPoolPause_noGracePeriod_unauth(address,bool) (runs: 1000, μ: 38702, ~: 38702)
[PASS] test_reverts_setPoolPause_unauth(address,bool,uint40) (runs: 1000, μ: 56412, ~: 56412)
[PASS] test_reverts_setReservePause_noGracePeriod_off_unauth(address,address,bool) (runs: 1000, μ: 38998, ~: 38998)
[PASS] test_reverts_setReservePause_off_unauth(address,address,bool,uint40) (runs: 1000, μ: 38987, ~: 38987)
[PASS] test_reverts_setReservePause_on_unauth(address,address,bool,uint40) (runs: 1000, μ: 39053, ~: 39053)
Suite result: ok. 26 passed; 0 failed; 0 skipped; finished in 2.96s (2.93s CPU time)

Ran 10 tests for tests/core/PoolConfigurator.borrowCaps.t.sol:PoolConfiguratorBorrowCapTests
[PASS] test_borrow_eq_cap() (gas: 332041)
[PASS] test_borrow_interests_reach_cap() (gas: 334103)
[PASS] test_borrow_lt_cap() (gas: 312997)
[PASS] test_default_borrowCap_zero() (gas: 27554)
[PASS] test_reverts_borrow_after_borrow_interests_reach_cap() (gas: 384883)
[PASS] test_reverts_borrow_gt_cap() (gas: 154121)
[PASS] test_reverts_setBorrowCap_gt_max_cap() (gas: 48745)
[PASS] test_reverts_unauthorized_setBorrowCap() (gas: 35582)
[PASS] test_setBorrowCap() (gas: 78888)
[PASS] test_setBorrowCap_them_setBorrowCap_zero() (gas: 333622)
Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 41.04ms (5.40ms CPU time)

Ran 16 tests for tests/core/PoolConfigurator.eMode.sol:PoolConfiguratorEModeConfigTests
[PASS] test_configureEmodeCategory() (gas: 137301)
[PASS] test_removeEModeCategoryFromAsset() (gas: 177968)
[PASS] test_reverts_configureEmodeCategory_bad_lq() (gas: 170150)
[PASS] test_reverts_configureEmodeCategory_bad_ltv() (gas: 170032)
[PASS] test_reverts_configureEmodeCategory_input_lt_lt_reserve_emode_lt() (gas: 167504)
[PASS] test_reverts_configureEmodeCategory_input_ltv_lt_reserve_emode_ltv() (gas: 175243)
[PASS] test_reverts_configureEmodeCategory_input_ltv_lt_reserve_emode_pendingLtv() (gas: 213939)
[PASS] test_reverts_setAssetEModeCategory_invalid() (gas: 139383)
[PASS] test_reverts_setEmodeCategory_lb_lte_percentageFactor() (gas: 60004)
[PASS] test_reverts_setEmodeCategory_liquidation_threshold_doesnt_match_bonus() (gas: 35975)
[PASS] test_reverts_setEmodeCategory_ltv_gt_liqThreshold() (gas: 34550)
[PASS] test_reverts_setEmodeCategory_zero_liqThreshold() (gas: 34423)
[PASS] test_reverts_setEmodeCategory_zero_ltv() (gas: 34336)
[PASS] test_setAssetEModeCategory() (gas: 164660)
[PASS] test_updateAssetEModeCategory() (gas: 257554)
[PASS] test_updateEModeCategory() (gas: 179075)
Suite result: ok. 16 passed; 0 failed; 0 skipped; finished in 39.60ms (7.07ms CPU time)

Ran 16 tests for tests/core/Pool.FlashLoans.t.sol:PoolFlashLoansTests
[PASS] test_flashloan() (gas: 228617)
[PASS] test_flashloan_borrow() (gas: 553799)
[PASS] test_flashloan_multiple() (gas: 351527)
[PASS] test_flashloan_simple() (gas: 192192)
[PASS] test_flashloan_simple_2() (gas: 192192)
[PASS] test_reverts_flashLoan_invalid_return() (gas: 173503)
[PASS] test_reverts_flashLoan_reserve_inactive() (gas: 142251)
[PASS] test_reverts_flashLoan_reserve_not_flash_loan_enabled() (gas: 94775)
[PASS] test_reverts_flashLoan_reserve_paused() (gas: 91454)
[PASS] test_reverts_flashLoan_same_asset_more_then_once(uint8) (runs: 1000, μ: 173112, ~: 139419)
[PASS] test_reverts_flashLoan_simple_invalid_return() (gas: 144765)
[PASS] test_reverts_flashloan_simple_transferred_funds() (gas: 185276)
[PASS] test_reverts_flashloan_transferred_funds() (gas: 203241)
[PASS] test_reverts_flashloans_eoa() (gas: 101070)
[PASS] test_reverts_supply_flashloan_simple_transfer_withdraw() (gas: 881855)
[PASS] test_reverts_supply_flashloan_transfer_withdraw() (gas: 902101)
Suite result: ok. 16 passed; 0 failed; 0 skipped; finished in 1.08s (1.05s CPU time)

Ran 5 tests for tests/core/PoolConfigurator.initReserves.t.sol:PoolConfiguratorInitReservesTest
[PASS] test_initReserves_multipleAssets() (gas: 12384546)
[PASS] test_initReserves_notEnoughDecimal(uint8) (runs: 1000, μ: 1000881, ~: 1000881)
[PASS] test_initReserves_singleAsset(bool) (runs: 1000, μ: 3167546, ~: 3167551)
[PASS] test_initReserves_zeroAssets() (gas: 62605)
[PASS] test_reverts_initReserves_maxAssets() (gas: 385969212)
Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 2.09s (2.06s CPU time)

Ran 4 tests for tests/core/PoolConfigurator.liquidationFee.t.sol:PoolConfiguratorLiquidationFeeTests
[PASS] test_revert_setLiquidationFee_gt_100() (gas: 59058)
[PASS] test_revert_setLiquidationFee_unauthorized() (gas: 58926)
[PASS] test_setLiquidationFee() (gas: 78487)
[PASS] test_setLiquidationFee_100() (gas: 78443)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 35.21ms (785.57µs CPU time)

Ran 3 tests for tests/core/PoolConfigurator.pendingLTV.t.sol:PoolConfiguratorPendingLtvTests
[PASS] test_freezeReserve_ltvSetTo0() (gas: 107835)
[PASS] test_setLtv_ltvSetPendingLtvSet(uint256,uint256) (runs: 1000, μ: 143831, ~: 143834)
[PASS] test_unfreezeReserve_pendingSetToLtv() (gas: 109196)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 921.59ms (887.53ms CPU time)

Ran 46 tests for tests/core/PoolConfigurator.reserveRiskConfig.t.sol:PoolConfiguratorReserveRiskConfigs
[PASS] test_EmergencyAdminSetReserveFreeze_true() (gas: 137095)
[PASS] test_PoolAdminSetReserveFreeze_true() (gas: 101342)
[PASS] test_RiskAdminSetReserveFreeze_true() (gas: 130772)
[PASS] test_bridgeProtocolFee() (gas: 73038)
[PASS] test_disableLiquidationGracePeriod() (gas: 80653)
[PASS] test_dropReserve() (gas: 152340)
[PASS] test_enableBorrowing() (gas: 3172766)
[PASS] test_enableFlashBorrow() (gas: 3163688)
[PASS] test_enableStableBorrowing() (gas: 3185559)
[PASS] test_reverts_bridgeProtocolFee() (gas: 30233)
[PASS] test_reverts_dropReserve_notListed() (gas: 53487)
[PASS] test_reverts_dropReserve_supplyNotZero() (gas: 320380)
[PASS] test_reverts_dropReserve_variableDebtNotZero() (gas: 484167)
[PASS] test_reverts_dropReserve_zeroAddress() (gas: 47282)
[PASS] test_reverts_enableStableBorrowing_borrowNotEnabled() (gas: 3142760)
[PASS] test_reverts_setCollateralConfig_invalidParams() (gas: 3418352)
[PASS] test_reverts_setDebtCeiling_suppliers() (gas: 302885)
[PASS] test_reverts_setLiquidationProtocolFee_amount_gt_percentageFactor() (gas: 35631)
[PASS] test_reverts_setReserveActive_false_if_suppliers() (gas: 297670)
[PASS] test_reverts_setReserveFactor_gt_percentageFactor() (gas: 35650)
[PASS] test_reverts_setSiloedBorrowing_borrowers() (gas: 430561)
[PASS] test_reverts_updateFlashloanPremiumToProtocol() (gas: 30348)
[PASS] test_reverts_updateFlashloanPremiumTotal() (gas: 30369)
[PASS] test_setBorrowableInIsolation_false() (gas: 65055)
[PASS] test_setBorrowableInIsolation_true() (gas: 67890)
[PASS] test_setCollateralConfig() (gas: 3150298)
[PASS] test_setDebtCeiling() (gas: 121242)
[PASS] test_setDebtCeiling_suppliers_ltZero() (gas: 306163)
[PASS] test_setDebtCeiling_to_zero() (gas: 146169)
[PASS] test_setFrozenReserveFreeze_true_revert() (gas: 108200)
[PASS] test_setLiquidationGracePeriodAboveCap(uint40) (runs: 1000, μ: 34882, ~: 34882)
[PASS] test_setLiquidationGracePeriodPool(uint40) (runs: 1000, μ: 137775, ~: 140100)
[PASS] test_setLiquidationGracePeriodReserve(uint40) (runs: 1000, μ: 135342, ~: 135342)
[PASS] test_setLiquidationProtocolFee_amount_gt_percentageFactor() (gas: 74750)
[PASS] test_setPoolPause() (gas: 136648)
[PASS] test_setPoolPause_unpause() (gas: 192313)
[PASS] test_setReserveActive_false() (gas: 118364)
[PASS] test_setReserveActive_true() (gas: 69271)
[PASS] test_setReserveFactor() (gas: 1047362)
[PASS] test_setReserveFreeze_false() (gas: 100861)
[PASS] test_setReservePause_false() (gas: 68533)
[PASS] test_setReservePause_true() (gas: 71285)
[PASS] test_setSiloedBorrowing() (gas: 125923)
[PASS] test_setUnfrozenReserveFreeze_false_revert() (gas: 48795)
[PASS] test_updateFlashloanPremiumToProtocol() (gas: 58448)
[PASS] test_updateFlashloanPremiumTotal() (gas: 58386)
Suite result: ok. 46 passed; 0 failed; 0 skipped; finished in 1.40s (1.37s CPU time)

Ran 11 tests for tests/core/PoolConfigurator.supplyCaps.t.sol:PoolConfiguratorSupplyCapTests
[PASS] test_default_supplyCap_zero() (gas: 27532)
[PASS] test_multiple_setSupplyCap() (gas: 383991)
[PASS] test_reverts_interests_gt_cap_and_supply() (gas: 498440)
[PASS] test_reverts_setSupplyCap_gt_max_cap() (gas: 48724)
[PASS] test_reverts_supply_gt_cap() (gas: 135930)
[PASS] test_reverts_unauthorized_setSupplyCap() (gas: 35542)
[PASS] test_setSupplyCap() (gas: 78946)
[PASS] test_setSupplyCap_them_setBorrowCap_zero() (gas: 331238)
[PASS] test_supply_eq_cap() (gas: 312388)
[PASS] test_supply_interests_reach_cap() (gas: 455792)
[PASS] test_supply_lt_cap() (gas: 312389)
Suite result: ok. 11 passed; 0 failed; 0 skipped; finished in 44.68ms (5.91ms CPU time)

Ran 6 tests for tests/core/PoolConfigurator.upgradeabilty.t.sol:PoolConfiguratorUpgradeabilityTests
[PASS] test_getConfiguratorLogic() (gas: 13601)
[PASS] test_interestRateStrategy_update() (gas: 1965284)
[PASS] test_setReserveInterestRateStrategyAddress() (gas: 1081867)
[PASS] test_updateAToken() (gas: 2346693)
[PASS] test_updateStableDebtToken() (gas: 1243918)
[PASS] test_updateVariableDebtToken() (gas: 1732662)
Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 39.64ms (4.57ms CPU time)

Ran 3 tests for tests/core/PoolLogic.initReserves.edge.t.sol:PoolLogicInitReservesTests
[PASS] test_initReserves_return_false_after_dropped_reserve() (gas: 755300)
[PASS] test_reverts_initReserves_max() (gas: 222618)
[PASS] test_reverts_initReserves_reserveAlreadyAdded() (gas: 246207)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 34.84ms (712.55µs CPU time)

Ran 11 tests for tests/core/PriceOracleSentinel.t.sol:PriceOracleSentinelTest
[PASS] test_isBorrowAllowed_network_down() (gas: 27254)
[PASS] test_isBorrowAllowed_network_up_not_grace_period() (gas: 46960)
[PASS] test_isBorrowAllowed_true_network_up_grace_period_pass() (gas: 47013)
[PASS] test_isLiquidationAllowed_network_down() (gas: 27165)
[PASS] test_isLiquidationAllowed_network_up_not_grace_period() (gas: 46937)
[PASS] test_isLiquidationAllowed_true_network_up_grace_period_pass() (gas: 47034)
[PASS] test_new_PriceOracleSentinel() (gas: 432463)
[PASS] test_reverts_setGracePeriod_not_poolAdmin() (gas: 25864)
[PASS] test_reverts_setSequencerOracle_not_poolAdmin() (gas: 22767)
[PASS] test_setGracePeriod() (gas: 32524)
[PASS] test_setSequencerOracle() (gas: 24656)
Suite result: ok. 11 passed; 0 failed; 0 skipped; finished in 36.18ms (1.02ms CPU time)

Ran 16 tests for tests/periphery/static-a-token/ERC20AaveLMUpgradable.t.sol:ERC20AaveLMUpgradableTest
[PASS] test_7201() (gas: 3362)
[PASS] test_claimRewards(uint256,uint32,uint88,uint32) (runs: 1000, μ: 853361, ~: 815543)
[PASS] test_claimRewardsOnBehalfOf_self(uint256,uint32,uint88,uint32) (runs: 1000, μ: 854732, ~: 815759)
[PASS] test_claimRewardsOnBehalfOf_shouldRevertForInvalidClaimer(uint256,uint32,uint88,uint32) (runs: 1000, μ: 789732, ~: 791609)
[PASS] test_claimRewardsOnBehalfOf_validClaimer(uint256,uint32,uint88,uint32) (runs: 1000, μ: 882799, ~: 848183)
[PASS] test_claimRewardsToSelf(uint256,uint32,uint88,uint32) (runs: 1000, μ: 852602, ~: 815455)
[PASS] test_claimableRewards(uint256,uint32,uint88,uint32) (runs: 1000, μ: 790605, ~: 792434)
[PASS] test_collectAndUpdateRewards(uint256,uint32,uint88,uint32) (runs: 1000, μ: 834157, ~: 812067)
[PASS] test_correctAccountingForDelayedRegistration() (gas: 841205)
[PASS] test_getReferenceAsset() (gas: 12915)
[PASS] test_isRegisteredRewardToken() (gas: 651829)
[PASS] test_noRewardsInitialized() (gas: 39278)
[PASS] test_noopWhenNotInitialized() (gas: 53277)
[PASS] test_rewardTokens() (gas: 649969)
[PASS] test_transfer(uint256,uint32,uint88,uint32,address,uint256) (runs: 1000, μ: 865626, ~: 882585)
[PASS] test_transfer_toSelf(uint256,uint32,uint88,uint32) (runs: 1000, μ: 823932, ~: 816396)
Suite result: ok. 16 passed; 0 failed; 0 skipped; finished in 18.73s (18.70s CPU time)

Ran 17 tests for tests/periphery/v3-config-engine/AaveV3ConfigEngineTest.t.sol:AaveV3ConfigEngineTest
[PASS] testAssetEModeUpdates() (gas: 4001489)
[PASS] testBorrowUpdatesNoChange() (gas: 3173866)
[PASS] testBorrowsUpdates() (gas: 3241778)
[PASS] testCapsUpdate() (gas: 3172356)
[PASS] testCollateralUpdateCorrectBonus() (gas: 3187976)
[PASS] testCollateralUpdateWrongBonus() (gas: 777514)
[PASS] testCollateralsUpdates() (gas: 3187442)
[PASS] testCollateralsUpdatesNoChange() (gas: 3166428)
[PASS] testEModeCategoryUpdates() (gas: 3227894)
[PASS] testEModeCategoryUpdatesNoChange() (gas: 3162887)
[PASS] testEModeCategoryUpdatesWrongBonus() (gas: 771548)
[PASS] testFailCollateralsUpdatesNoChange() (gas: 1900428)
[PASS] testFailEModeCategoryUpdatesNoChange() (gas: 788954)
[PASS] testListings() (gas: 7176798)
[PASS] testListingsCustom() (gas: 12060295)
[PASS] testPriceFeedsUpdates() (gas: 3249284)
[PASS] testRateStrategiesUpdates() (gas: 3241057)
Suite result: ok. 17 passed; 0 failed; 0 skipped; finished in 26.85s (26.82s CPU time)

Ran 2 tests for tests/AaveV3PermissionsTest.t.sol:AaveV3PermissionsTest
[PASS] testCheckPermissions() (gas: 58619325)
[PASS] testCheckPermissionsTreasuryPartner() (gas: 59119200)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 45.59ms (40.13ms CPU time)

Ran 7 tests for tests/core/AddressesProviderRegistry.t.sol:PoolAddressesProviderRegistryTest
[PASS] testAddAddressesProvider() (gas: 120670)
[PASS] testRemoveAddressesProvider() (gas: 97213)
[PASS] testRemoveMultipleAddressesProvider() (gas: 243012)
[PASS] test_addressesProviderAddedToRegistry() (gas: 16407)
[PASS] test_removesLastProvider() (gas: 32691)
[PASS] test_revert_registry_0() (gas: 15592)
[PASS] test_revert_removeNonExistingAddressesProvider() (gas: 27656)
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 36.64ms (1.64ms CPU time)

Ran 3 tests for tests/periphery/static-a-token/StataTokenV2Getters.sol:StataTokenV2GettersTest
[PASS] testAdmin() (gas: 22534)
[PASS] test_getters() (gas: 59482)
[PASS] test_initializeShouldRevert() (gas: 24082)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 34.38ms (322.09µs CPU time)

Ran 11 tests for tests/periphery/static-a-token/StataTokenV2Pausable.t.sol:StataTokenV2PausableTest
[PASS] testAdmin() (gas: 22578)
[PASS] test_canPause() (gas: 29293)
[PASS] test_canPause_shouldReturnFalse(address) (runs: 1000, μ: 29793, ~: 29793)
[PASS] test_claimingRewards_shouldRevert() (gas: 564105)
[PASS] test_deposit_shouldRevert() (gas: 492905)
[PASS] test_mint_shouldRevert() (gas: 497275)
[PASS] test_redeem_shouldRevert() (gas: 591117)
[PASS] test_setPaused_shouldRevertForInvalidCaller(address) (runs: 1000, μ: 32840, ~: 32840)
[PASS] test_setPaused_shouldSucceedForOwner() (gas: 56940)
[PASS] test_transfer_shouldRevert() (gas: 562032)
[PASS] test_withdraw_shouldRevert() (gas: 584055)
Suite result: ok. 11 passed; 0 failed; 0 skipped; finished in 175.74ms (141.20ms CPU time)

Ran 4 tests for tests/periphery/static-a-token/StataTokenV2Permit.sol:StataTokenV2PermitTest
[PASS] testAdmin() (gas: 22523)
[PASS] test_permit() (gas: 92909)
[PASS] test_permit_expired() (gas: 40635)
[PASS] test_permit_invalidSigner() (gas: 69152)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 36.20ms (1.30ms CPU time)

Ran 21 tests for tests/core/Pool.Liquidations.t.sol:PoolLiquidationTests
[PASS] test_full_liquidate_atokens_multiple_variable_borrows() (gas: 1434397)
[PASS] test_full_liquidate_multiple_supplies_and_variable_borrows() (gas: 1639114)
[PASS] test_full_liquidate_multiple_variable_borrows() (gas: 1492058)
[PASS] test_liquidate_emode_position_with_emode_oracle() (gas: 1505585)
[PASS] test_liquidate_emode_position_without_emode_oracle() (gas: 1475720)
[PASS] test_liquidate_isolated_position() (gas: 1407989)
[PASS] test_liquidate_variable_borrow() (gas: 1532816)
[PASS] test_liquidate_variable_borrow_no_fee() (gas: 1241232)
[PASS] test_liquidate_variable_borrow_same_collateral_and_borrow() (gas: 1177097)
[PASS] test_liquidation_when_grace_period_disabled(uint40) (runs: 1000, μ: 1354118, ~: 1354118)
[PASS] test_liquidation_with_liquidation_grace_period_collateral_active(uint40) (runs: 1000, μ: 1564699, ~: 1575531)
[PASS] test_liquidation_with_liquidation_grace_period_debt_active(uint40) (runs: 1000, μ: 1562625, ~: 1573428)
[PASS] test_liquidation_with_liquidation_grace_period_debt_collateral_active(uint40) (runs: 1000, μ: 1580242, ~: 1590415)
[PASS] test_partial_liquidate_atokens_variable_borrow() (gas: 1350844)
[PASS] test_partial_liquidate_variable_borrow() (gas: 1302490)
[PASS] test_reverts_liquidation_collateral_not_active() (gas: 653759)
[PASS] test_reverts_liquidation_hf_gt_liquidation_threshold() (gas: 488300)
[PASS] test_reverts_liquidation_invalid_borrow() (gas: 634781)
[PASS] test_reverts_liquidation_oracle_sentinel_on() (gas: 335491)
[PASS] test_reverts_liquidation_reserveInactive() (gas: 167280)
[PASS] test_reverts_liquidation_reservePaused() (gas: 126847)
Suite result: ok. 21 passed; 0 failed; 0 skipped; finished in 20.07s (20.02s CPU time)

Ran 4 tests for tests/periphery/static-a-token/StataTokenV2Rescuable.sol:StataTokenV2RescuableTest
[PASS] testAdmin() (gas: 22499)
[PASS] test_rescuable_shouldNotCauseInsolvency(uint256,uint256) (runs: 1000, μ: 810940, ~: 810945)
[PASS] test_rescuable_shouldTransferAssetsToCollector() (gas: 227935)
[PASS] test_rescuable_shouldWorkForAToken() (gas: 458731)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 2.63s (2.60s CPU time)

Ran 19 tests for tests/core/VariableDebtToken.t.sol:VariableDebtTokenEventsTests
[PASS] test_balanceOf() (gas: 255642)
[PASS] test_cancel_delegationWithSig() (gas: 102010)
[PASS] test_default_revision() (gas: 1587108)
[PASS] test_delegationWithSig() (gas: 95363)
[PASS] test_initialize_VariableDebtToken() (gas: 2742418)
[PASS] test_mint_variableDebt_caller_alice() (gas: 2814701)
[PASS] test_mint_variableDebt_caller_bob_onBehalf_alice() (gas: 2828840)
[PASS] test_new_VariableDebtToken_implementation() (gas: 1600042)
[PASS] test_partial_burn_variableDebt() (gas: 2828995)
[PASS] test_reverts_bad_expiration_delegationWithSig() (gas: 34325)
[PASS] test_reverts_bad_nonce_delegationWithSig() (gas: 111233)
[PASS] test_reverts_initialize_pool_do_not_match() (gas: 2675194)
[PASS] test_reverts_initialize_twice() (gas: 3704264)
[PASS] test_reverts_operation_not_supported() (gas: 1618728)
[PASS] test_reverts_zero_address_delegationWithSig() (gas: 33588)
[PASS] test_scaledBalanceOf() (gas: 343339)
[PASS] test_totalScaledSupply() (gas: 380406)
[PASS] test_totalSupply() (gas: 380401)
[PASS] test_total_burn_variableDebt() (gas: 2828929)
Suite result: ok. 19 passed; 0 failed; 0 skipped; finished in 48.70ms (13.24ms CPU time)

Ran 12 tests for tests/core/WadRayMath.t.sol:WadRayMathTests
[PASS] test_constants() (gas: 13308)
[PASS] test_rayDiv() (gas: 12777)
[PASS] test_rayMul() (gas: 11394)
[PASS] test_rayToWad() (gas: 11075)
[PASS] test_rayToWad_fuzz(uint256) (runs: 1000, μ: 13346, ~: 13301)
[PASS] test_wadDiv() (gas: 12898)
[PASS] test_wadDiv_fuzzing(uint256,uint256) (runs: 1000, μ: 10547, ~: 10740)
[PASS] test_wadMul() (gas: 11164)
[PASS] test_wadMul_edge() (gas: 11212)
[PASS] test_wadMul_fuzzing(uint256,uint256) (runs: 1000, μ: 10796, ~: 11359)
[PASS] test_wadToRay() (gas: 10885)
[PASS] test_wadToRay_fuzz(uint256) (runs: 1000, μ: 12142, ~: 12368)
Suite result: ok. 12 passed; 0 failed; 0 skipped; finished in 207.36ms (206.14ms CPU time)

Ran 14 tests for tests/periphery/WrappedTokenGateway.t.sol:WrappedTokenGatewayTests
[PASS] test_borrowDelegateApprove_repay() (gas: 496588)
[PASS] test_borrowVariableDebtWeth_repayWithEth() (gas: 851680)
[PASS] test_borrowVariableDebtWeth_repayWithEth_mismatchedValues() (gas: 845241)
[PASS] test_depositNativeEthInPool() (gas: 267677)
[PASS] test_fallback_revert() (gas: 10049)
[PASS] test_getWETHAddress() (gas: 10596)
[PASS] test_ownerCanRescueEth() (gas: 25281)
[PASS] test_ownerCanRescueTokens() (gas: 96929)
[PASS] test_sendEthFallback_revert() (gas: 16714)
[PASS] test_sendEth_revert() (gas: 16590)
[PASS] test_withdrawEth_full() (gas: 399544)
[PASS] test_withdrawEth_partial() (gas: 423186)
[PASS] test_withdrawEth_permit() (gas: 457634)
[PASS] test_withdrawEth_permit_full() (gas: 430260)
Suite result: ok. 14 passed; 0 failed; 0 skipped; finished in 42.15ms (10.34ms CPU time)

Ran 2 tests for tests/core/ZeroInteresRateStrategy.t.sol:ZeroReserveInterestRateStrategyTests
[PASS] test_calculate_rates() (gas: 939823)
[PASS] test_new_ZeroReserveInterestRateStrategy() (gas: 912048)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 34.47ms (472.59µs CPU time)

Ran 19 tests for tests/periphery/RewardsController.t.sol:RewardsControllerTest
[PASS] test_accrueRewards() (gas: 952778)
[PASS] test_claimAllRewards() (gas: 903471)
[PASS] test_claimAllRewardsOnBehalf() (gas: 937197)
[PASS] test_claimAllRewardsToSelf() (gas: 903097)
[PASS] test_claimRewards() (gas: 900234)
[PASS] test_claimRewardsOnBehalf() (gas: 938790)
[PASS] test_claimRewardsToSelf() (gas: 899915)
[PASS] test_claimRewards_partial() (gas: 900507)
[PASS] test_claimRewards_zero() (gas: 640635)
[PASS] test_claimRewards_zero_with_rewards() (gas: 647487)
[PASS] test_configureAssets() (gas: 621605)
[PASS] test_initialize_no_op() (gas: 3736168)
[PASS] test_new_RewardsController() (gas: 3712512)
[PASS] test_reverts_initialize_twice() (gas: 3737756)
[PASS] test_setClaimer() (gas: 58290)
[PASS] test_setDistributionEnd() (gas: 637515)
[PASS] test_setEmissionPerSecond() (gas: 641682)
[PASS] test_setRewardOracle() (gas: 716252)
[PASS] test_setTransferStrategy_PullRewardsTransferStrategy() (gas: 921447)
Suite result: ok. 19 passed; 0 failed; 0 skipped; finished in 46.57ms (12.18ms CPU time)

Ran 1 test for tests/core/ScaledBalanceTokenBase.t.sol:ScaledBalanceTokenBaseEdgeTests
[PASS] test_scaled_balance_token_base_alice_transfer_to_bob_accrues_interests() (gas: 98875)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 31.74ms (204.16µs CPU time)

Ran 22 tests for tests/core/StableDebtToken.t.sol:StableDebtTokenEventsTests
[PASS] test_balanceOf() (gas: 15757)
[PASS] test_cancel_delegationWithSig() (gas: 101965)
[PASS] test_default_revision() (gas: 1098437)
[PASS] test_delegationWithSig() (gas: 95356)
[PASS] test_getAverageStableRate() (gas: 13475)
[PASS] test_getSupplyData() (gas: 15090)
[PASS] test_getTotalSupplyAndAvgRate() (gas: 14093)
[PASS] test_getTotalSupplyLastUpdated() (gas: 13592)
[PASS] test_getUserLastUpdated() (gas: 15926)
[PASS] test_getUserStableRate() (gas: 15852)
[PASS] test_initialize_StableDebtToken() (gas: 2255194)
[PASS] test_mint_stableDebt_caller_alice() (gas: 2260054)
[PASS] test_mint_stableDebt_caller_bob_onBehalf_alice() (gas: 2293014)
[PASS] test_new_StableDebtToken_implementation() (gas: 1112468)
[PASS] test_principalBalanceOf() (gas: 15788)
[PASS] test_reverts_bad_expiration_delegationWithSig() (gas: 34392)
[PASS] test_reverts_bad_nonce_delegationWithSig() (gas: 111271)
[PASS] test_reverts_initialize_pool_do_not_match() (gas: 2187902)
[PASS] test_reverts_initialize_twice() (gas: 3216944)
[PASS] test_reverts_operation_not_supported() (gas: 1141516)
[PASS] test_reverts_zero_address_delegationWithSig() (gas: 33655)
[PASS] test_totalSupply() (gas: 13586)
Suite result: ok. 22 passed; 0 failed; 0 skipped; finished in 42.46ms (7.91ms CPU time)

Ran 5 tests for tests/periphery/StakedTokenTransferStrategy.t.sol:StakedTokenTransferStrategyTest
[PASS] test_dropApproval() (gas: 19000)
[PASS] test_emergencyTransfer() (gas: 219104)
[PASS] test_getters() (gas: 18748)
[PASS] test_performTransfer() (gas: 22047)
[PASS] test_renewApproval() (gas: 23130)
Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 32.03ms (1.04ms CPU time)

Ran 9 tests for tests/periphery/EmissionsManager.t.sol:EmissionManagerTest
[PASS] test_configureAssets() (gas: 602198)
[PASS] test_new_EmissionManager() (gas: 776194)
[PASS] test_setClaimer() (gas: 51492)
[PASS] test_setDistributionEnd() (gas: 609489)
[PASS] test_setEmissionAdmin() (gas: 43028)
[PASS] test_setEmissionPerSecond() (gas: 616148)
[PASS] test_setRewardOracle() (gas: 692227)
[PASS] test_setRewardsController() (gas: 19100)
[PASS] test_setTransferStrategy() (gas: 896512)
Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 36.00ms (1.88ms CPU time)

Ran 6 tests for tests/core/InitializableImmutableAdminUpgradeabilityProxy.t.sol:InitializableImmutableAdminUpgradeabilityProxyTests
[PASS] test_proxy_fallback() (gas: 609072)
[PASS] test_proxy_upgradeTo() (gas: 631037)
[PASS] test_proxy_upgradeToAndCall() (gas: 636947)
[PASS] test_proxy_upgradeToAndCall_initialize() (gas: 606146)
[PASS] test_reverts_upgradeToAndCall_notAdmin() (gas: 612062)
[PASS] test_reverts_upgradeTo_notAdmin() (gas: 609855)
Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 3.11ms (1.70ms CPU time)

Ran 32 tests for tests/core/RateStrategy.t.sol:RateStrategyTests
[PASS] test_calculate_rates_100_percent_usage() (gas: 63823)
[PASS] test_calculate_rates_100_percent_usage_50_percent_stable_debt_50_percent_variable_debt_10_percent_avg_stable_rate() (gas: 63919)
[PASS] test_calculate_rates_80_bps_usage() (gas: 63932)
[PASS] test_calculate_rates_80_percent_usage() (gas: 108885)
[PASS] test_calculate_rates_80_percent_usage_and_50_percent_supply_usage_due_minted_tokens() (gas: 62185)
[PASS] test_calculate_rates_80_percent_usage_and_80_bps_supply_usage_due_minted_tokens() (gas: 62229)
[PASS] test_calculate_rates_above_op_usage(uint16,uint256,uint256,uint32,uint32,uint32,uint256) (runs: 1000, μ: 143286, ~: 143381)
[PASS] test_calculate_rates_below_op_usage(uint16,uint256,uint256,uint32,uint32,uint32,uint256) (runs: 1000, μ: 135737, ~: 135777)
[PASS] test_calculate_rates_below_op_usage_when_no_debt(uint16,uint256,uint32,uint32,uint32,uint256) (runs: 1000, μ: 91848, ~: 92147)
[PASS] test_calculate_rates_empty_reserve(uint16,uint32,uint32,uint32) (runs: 1000, μ: 57741, ~: 57741)
[PASS] test_calculate_rates_when_not_using_virtual_valance(uint16,uint256,uint32,uint32,uint32,uint256) (runs: 1000, μ: 84357, ~: 84954)
[PASS] test_calculate_rates_when_total_debt_0(uint16,uint256,uint32,uint32,uint32,uint256) (runs: 1000, μ: 84812, ~: 85350)
[PASS] test_fuzz_calculate_rates_80_percent_usage_added_and_virtual_equal(uint256) (runs: 1000, μ: 33870, ~: 33870)
[PASS] test_getInterestRateDataBps(uint16,uint32,uint32,uint32) (runs: 1000, μ: 53124, ~: 53124)
[PASS] test_getInterestRateDataRay(uint16,uint32,uint32,uint32) (runs: 1000, μ: 54037, ~: 54037)
[PASS] test_getMaxVariableBorrowRate(uint16,uint32,uint32,uint32) (runs: 1000, μ: 51619, ~: 51619)
[PASS] test_initialization() (gas: 14056)
[PASS] test_new_DefaultReserveInterestRateStrategy_wrong_provider() (gas: 42185)
[PASS] test_new_SetReserveInterestRateParams(uint16,uint32,uint32,uint32) (runs: 1000, μ: 65231, ~: 65231)
[PASS] test_new_SetReserveInterestRateParams_override_method(uint16,uint32,uint32,uint32) (runs: 1000, μ: 64604, ~: 64604)
[PASS] test_new_SetReserveInterestRateParams_override_method_when_not_configurator(uint16,uint32,uint32,uint32) (runs: 1000, μ: 21252, ~: 21252)
[PASS] test_new_SetReserveInterestRateParams_when_not_configurator(uint16,uint32,uint32,uint32) (runs: 1000, μ: 21917, ~: 21917)
[PASS] test_reverts_SetReserveInterestRateParams_when_gt_maxRate(uint16,uint32,uint32,uint32) (runs: 1000, μ: 25544, ~: 25544)
[PASS] test_reverts_SetReserveInterestRateParams_when_gt_maxRate_override_method(uint16,uint32,uint32,uint32) (runs: 1000, μ: 24911, ~: 24911)
[PASS] test_reverts_SetReserveInterestRateParams_when_gt_max_op(uint16,uint32,uint32,uint32) (runs: 1000, μ: 22631, ~: 22631)
[PASS] test_reverts_SetReserveInterestRateParams_when_gt_max_op_override_method(uint16,uint32,uint32,uint32) (runs: 1000, μ: 21997, ~: 21997)
[PASS] test_reverts_SetReserveInterestRateParams_when_lt_min_op(uint16,uint32,uint32,uint32) (runs: 1000, μ: 22636, ~: 22636)
[PASS] test_reverts_SetReserveInterestRateParams_when_lt_min_op_override_method(uint16,uint32,uint32,uint32) (runs: 1000, μ: 22001, ~: 22001)
[PASS] test_reverts_SetReserveInterestRateParams_when_reserve_0(uint16,uint32,uint32,uint32) (runs: 1000, μ: 19289, ~: 19289)
[PASS] test_reverts_SetReserveInterestRateParams_when_reserve_0_override_method(uint16,uint32,uint32,uint32) (runs: 1000, μ: 18585, ~: 18585)
[PASS] test_reverts_SetReserveInterestRateParams_when_slope1_gt_slope2(uint16,uint32,uint32,uint32) (runs: 1000, μ: 23928, ~: 23928)
[PASS] test_reverts_SetReserveInterestRateParams_when_slope1_gt_slope2_override_method(uint16,uint32,uint32,uint32) (runs: 1000, μ: 23927, ~: 23927)
Suite result: ok. 32 passed; 0 failed; 0 skipped; finished in 18.39s (18.35s CPU time)

Ran 2 tests for tests/core/RatesOverflow.t.sol:RatesOverflowCheckTests
[PASS] test_overflow_liquidity_rates() (gas: 97840)
[PASS] test_overflow_variable_rates() (gas: 433017)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 35.96ms (863.23µs CPU time)

Ran 15 tests for tests/periphery/RevenueSplitter.t.sol:RevenueSplitterTest
[PASS] test_constructor() (gas: 15325)
[PASS] test_constructor_fuzzing(uint16) (runs: 1000, μ: 465959, ~: 465959)
[PASS] test_constructor_revert_invalid_split_percentage() (gas: 174125)
[PASS] test_splitFund_oneToken() (gas: 425638)
[PASS] test_splitFund_reverts_randomAddress() (gas: 53913)
[PASS] test_splitFund_zeroAmount_noOp() (gas: 386483)
[PASS] test_splitFund_zeroFunds_noOp() (gas: 50987)
[PASS] test_splitFund_zeroTokens_noOp() (gas: 385400)
[PASS] test_splitFunds_fixed() (gas: 462602)
[PASS] test_splitFunds_fuzz_max(uint256,uint256) (runs: 1000, μ: 462946, ~: 464784)
[PASS] test_splitFunds_fuzz_realistic(uint256,uint256) (runs: 1000, μ: 462213, ~: 463248)
[PASS] test_splitNativeFund_fixedAmount() (gas: 100550)
[PASS] test_splitNativeFund_walletNotAcceptingFunds() (gas: 546103)
[PASS] test_splitNativeFund_zeroAmount_noOp() (gas: 29788)
[PASS] test_splitNativeFunds_fuzz_max(uint256) (runs: 1000, μ: 100437, ~: 101976)
Suite result: ok. 15 passed; 0 failed; 0 skipped; finished in 3.43s (3.43s CPU time)

Ran 14 tests for tests/core/Pool.Repay.t.sol:PoolRepayTests
[PASS] test_full_repay_borrow_variable_in_isolation() (gas: 611488)
[PASS] test_partial_repay_borrow_variable_in_isolation() (gas: 664540)
[PASS] test_repayWithATokens_full_collateral_variable_borrow() (gas: 648157)
[PASS] test_repayWithATokens_full_variable_borrow() (gas: 436196)
[PASS] test_repayWithATokens_fuzz_collateral_variable_borrow(uint256,uint32) (runs: 1000, μ: 634908, ~: 636270)
[PASS] test_repayWithPermit(uint128,uint120,uint120,uint120,uint120) (runs: 1000, μ: 606611, ~: 598145)
[PASS] test_repayWithPermit_not_failing_if_permit_was_used(uint128,uint120,uint120,uint120,uint120) (runs: 1000, μ: 611411, ~: 603664)
[PASS] test_repayWithPermit_should_revert_if_permit_is_less_then_repay_amount(uint128,uint120,uint120,uint120,uint120) (runs: 1000, μ: 560439, ~: 551553)
[PASS] test_repay_full_variable_borrow() (gas: 423173)
[PASS] test_reverts_borrow_invalidAmount() (gas: 64118)
[PASS] test_reverts_borrow_reserveInactive() (gas: 145501)
[PASS] test_reverts_borrow_reservePaused() (gas: 104892)
[PASS] test_reverts_no_explicit_repay_on_behalf() (gas: 347524)
[PASS] test_reverts_repay_no_debt() (gas: 64740)
Suite result: ok. 14 passed; 0 failed; 0 skipped; finished in 8.87s (12.26s CPU time)

Ran 28 tests for tests/periphery/static-a-token/ERC4626StataTokenUpgradeable.t.sol:ERC4626StataTokenUpgradeableTest
[PASS] test_7201() (gas: 3429)
[PASS] test_convertersAndPreviews(uint128) (runs: 1000, μ: 43250, ~: 43250)
[PASS] test_depositATokens(uint128,address) (runs: 1000, μ: 537672, ~: 537603)
[PASS] test_depositATokens_self() (gas: 537607)
Logs:
  Bound result 1000000000000000000

[PASS] test_depositWithPermit_aToken(uint128,address) (runs: 1000, μ: 566579, ~: 566514)
[PASS] test_depositWithPermit_emptyPermit_aToken_preApproval(uint128,address) (runs: 1000, μ: 543927, ~: 543863)
[PASS] test_depositWithPermit_emptyPermit_underlying_preApproval(uint128,address) (runs: 1000, μ: 479404, ~: 479329)
[PASS] test_depositWithPermit_shouldRevert_emptyPermit_noPreApproval(uint128) (runs: 1000, μ: 408203, ~: 408096)
[PASS] test_depositWithPermit_underlying(uint128,address) (runs: 1000, μ: 497728, ~: 497660)
[PASS] test_deposit_shouldRevert_insufficientAllowance(uint128) (runs: 1000, μ: 398942, ~: 398841)
[PASS] test_latestAnswer_priceShouldBeEqualOnDefaultIndex() (gas: 37252)
[PASS] test_latestAnswer_priceShouldReflectIndexAccrual(uint256) (runs: 1000, μ: 42187, ~: 42218)
[PASS] test_maxDeposit_cap(uint256) (runs: 1000, μ: 112155, ~: 112467)
[PASS] test_maxDeposit_freeze() (gas: 118764)
[PASS] test_maxDeposit_noCap() (gas: 100247)
[PASS] test_maxDeposit_paused() (gas: 92064)
[PASS] test_maxRedeem_inSufficientAvailableLiquidity(uint256) (runs: 1000, μ: 1011107, ~: 1011245)
[PASS] test_maxRedeem_paused(uint128) (runs: 1000, μ: 566342, ~: 566252)
[PASS] test_maxRedeem_sufficientAvailableLiquidity(uint128) (runs: 1000, μ: 534807, ~: 534700)
[PASS] test_mint(uint256,address) (runs: 1000, μ: 470244, ~: 470074)
[PASS] test_mint_shouldRevert_mintMoreThenBalance(uint256,address) (runs: 1000, μ: 253090, ~: 252924)
[PASS] test_redeem(uint256,address) (runs: 1000, μ: 596990, ~: 596829)
[PASS] test_redeemATokens(uint256,address) (runs: 1000, μ: 599526, ~: 599359)
[PASS] test_redeemATokens_onBehalf(uint256) (runs: 1000, μ: 620104, ~: 619893)
[PASS] test_redeemATokens_onBehalf_shouldRevert_insufficientAllowance(uint256,uint256) (runs: 1000, μ: 551396, ~: 552168)
[PASS] test_totalAssets_shouldbeZeroOnZeroSupply() (gas: 26075)
[PASS] test_withdraw(uint256,address) (runs: 1000, μ: 600736, ~: 600565)
[PASS] test_withdraw_shouldRevert_moreThenAvailable(uint256,address) (runs: 1000, μ: 539012, ~: 538827)
Suite result: ok. 28 passed; 0 failed; 0 skipped; finished in 19.71s (26.24s CPU time)

Ran 59 test suites in 38.55s (143.37s CPU time): 770 tests passed, 0 failed, 0 skipped (770 total tests)

@sakulstra sakulstra changed the base branch from main to stata-token-v2 September 11, 2024 12:39
@sakulstra sakulstra merged commit 9afd54a into aave-dao:stata-token-v2 Sep 11, 2024
3 of 27 checks passed
sakulstra added a commit that referenced this pull request Sep 12, 2024
sakulstra added a commit to bgd-labs/aave-v3-origin that referenced this pull request Sep 19, 2024
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