-
Notifications
You must be signed in to change notification settings - Fork 71
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
V3.3.0 #87
Merged
Merged
V3.3.0 #87
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Tracking of reserve deficit and instant removal of bad debt. This newly introduced feature allows the removal of excess debt. When a users collateral if fully liquidated but debt is left in the protocol, the debt generates yield although it is expected to never be payed back. With the reserve deficit tracking, this debt is immediately burned and tracked in a local state. In addition a new method is introduced which allows burning aTokens in order the resolve the realized debt. --------- Co-authored-by: Lukas <[email protected]>
* fix: refine docs * fix: typo
accessing the configuration cache should be save in this case and reduces gas overhead by around 300gas per access
umbrella should be a single address tied to the pool, so using acl is overkill, which also will be cheaper
- adding `getReserveVariableDebtToken` getter - adjusting close factor to apply to whole position, not per reserve - adjusting close factor to increase to 100% when debt/collateral are below a threshold - adjusting liquidations to force full liquidation/or keep a leftover that is high enough to allow further liqudiations
* fix: migrate to dedicated getters * test: cleanup tests * feat: add pdp getter * fix: remove unused validate * refacto: remove getReserveDataExtended
Co-authored-by: Lukas <[email protected]>
- refactor to assume the umbrella never has debt Co-authored-by: Ernesto Boado <[email protected]>
Co-authored-by: Lukas <[email protected]>
letsgo |
Currently repay & liquidationCall use the same codePath for updating isolated debt. This is problematic, as: 1. is simply wrong, given that on liquidationCall the function is called **after** removing the collateral flag 2. is inefficient. While on repay we don't know the collateral backing the debt - a lookup makes sense. On liquidationCall on the other hand, we already know the collateral of the user. Probably on repay the codepath could also be optimized, but as this is a 3.2/3.3 patch let's keep the code changes minimal.
vGHO has a special mechanic to handle the discount through stkAAVE, applied on any user action and when fetching the balance via `balanceOf`. When calculating the users debt balance, the protocol currently uses the scaledBalanceOf * index, to save roundtrips to token addresses. While for "usual" tokens, this optimisation makes sense, it will overaccount the vGHO balance by ignoring the discount since the last interaction, as scaledBalanceOf doesn't take it into account. Therefore, this patch relies on the fact that `!virtualAccounting == GHO` to enter a code-branch opting out of the optimization. This approach was chosen as it does not require an update on vGHO itself. We consider a more permanent solution in an upcoming upgrade. --- In other code paths like liquidations, the code already opts out of the optimization as it relies on balanceOf.
typos & unnecessary imports
…rotocol Co-authored-by: Elpacos <[email protected]> Co-authored-by: Víctor Nicolás Martínez Carralero <[email protected]>
🔮 Coverage report
|
Forge Build Sizes🔕 Unchanged
|
🌈 Test ResultsNo files changed, compilation skipped
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 20.85ms (10.91ms CPU time)
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 52.38ms (2.10ms CPU time)
Ran 10 tests for tests/protocol/pool/pool-configurator/PoolConfigurator.borrowCaps.t.sol:PoolConfiguratorBorrowCapTests
[PASS] test_borrow_eq_cap() (gas: 311493)
[PASS] test_borrow_interests_reach_cap() (gas: 313541)
[PASS] test_borrow_lt_cap() (gas: 299263)
[PASS] test_default_borrowCap_zero() (gas: 27547)
[PASS] test_reverts_borrow_after_borrow_interests_reach_cap() (gas: 359964)
[PASS] test_reverts_borrow_gt_cap() (gas: 142508)
[PASS] test_reverts_setBorrowCap_gt_max_cap() (gas: 48711)
[PASS] test_reverts_unauthorized_setBorrowCap() (gas: 35517)
[PASS] test_setBorrowCap() (gas: 76727)
[PASS] test_setBorrowCap_them_setBorrowCap_zero() (gas: 319830)
Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 83.75ms (12.48ms CPU time)
Ran 9 tests for tests/gas/AToken.Transfer.gas.t.sol:ATokenTransfer_gas_Tests
[PASS] test_transfer_fullAmount() (gas: 408452)
[PASS] test_transfer_fullAmount_dirtyReceiver() (gas: 710360)
[PASS] test_transfer_fullAmount_senderCollateralDisabled() (gas: 421878)
[PASS] test_transfer_fullAmount_senderCollateralDisabled_receiverNonZeroFunds() (gas: 635592)
[PASS] test_transfer_fullAmount_senderCollateralDisabled_receiverNonZeroFunds2() (gas: 622186)
[PASS] test_transfer_partialAmount() (gas: 421953)
[PASS] test_transfer_partialAmount_receiverNonZeroFunds() (gas: 635652)
[PASS] test_transfer_partialAmount_senderCollateralEnabled() (gas: 406919)
[PASS] test_transfer_partialAmount_senderCollateralEnabled_receiverNonZeroFunds() (gas: 620600)
Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 93.54ms (24.95ms CPU time)
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: 363934)
[PASS] test_getVirtualUnderlyingBalance() (gas: 26880)
Suite result: ok. 15 passed; 0 failed; 0 skipped; finished in 76.22ms (7.50ms CPU time)
Ran 13 tests for tests/protocol/pool/pool-configurator/PoolConfigurator.eMode.sol:PoolConfiguratorEModeConfigTests
[PASS] test_addAnotherAssetBorrowableInEMode() (gas: 269494)
[PASS] test_addAnotherAssetCollateralInEMode() (gas: 249745)
[PASS] test_configureEmodeCategory() (gas: 119120)
[PASS] test_removeBorrowableFromEmode() (gas: 182460)
[PASS] test_removeCollateralFromEmode() (gas: 223997)
[PASS] test_reverts_setEmodeCategory_lb_lte_percentageFactor() (gas: 59662)
[PASS] test_reverts_setEmodeCategory_liquidation_threshold_doesnt_match_bonus() (gas: 35793)
[PASS] test_reverts_setEmodeCategory_ltv_gt_liqThreshold() (gas: 34377)
[PASS] test_reverts_setEmodeCategory_zero_liqThreshold() (gas: 34249)
[PASS] test_reverts_setEmodeCategory_zero_ltv() (gas: 34162)
[PASS] test_setAssetBorrowableInEMode() (gas: 202372)
[PASS] test_setAssetCollateralInEMode() (gas: 182537)
[PASS] test_updateEModeCategory() (gas: 205647)
Suite result: ok. 13 passed; 0 failed; 0 skipped; finished in 67.19ms (8.87ms CPU time)
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: 259762)
[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 61.64ms (4.44ms CPU time)
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 59.66ms (12.46ms CPU time)
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 46.82ms (525.35µs CPU time)
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 51.65ms (6.41ms CPU time)
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 49.45ms (2.30ms CPU time)
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 47.61ms (776.95µs CPU time)
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, μ: 386532, ~: 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.36s (1.31s CPU time)
Ran 12 tests for tests/misc/AaveOracle.t.sol:AaveOracleTest
[PASS] testAddSingleSource() (gas: 936861)
[PASS] testAssetZeroPriceAndZeroFallbackPrice() (gas: 1076118)
[PASS] testAssetZeroPriceNonZeroFallback() (gas: 1096069)
[PASS] testAssetZeroPriceWithoutFallback() (gas: 918563)
[PASS] testEmptySource() (gas: 821588)
[PASS] testGetBaseCurrencyPrice() (gas: 12315)
[PASS] testGetPriceViaFallbackOracle() (gas: 1000286)
[PASS] testUpdateFallbackOracle() (gas: 178617)
[PASS] testUpdateSingleSource() (gas: 126963)
[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 48.94ms (3.08ms CPU time)
Ran 5 tests for tests/deployments/AaveV3BatchDeployment.t.sol:AaveV3BatchDeployment
[PASS] testAaveV3BatchDeploy() (gas: 53785481)
[PASS] testAaveV3BatchDeploymentCheck() (gas: 64891799)
[PASS] testAaveV3Batch_reuseIncentivesProxy() (gas: 53262299)
[PASS] testAaveV3L2BatchDeploymentCheck() (gas: 66721873)
[PASS] testAaveV3TreasuryPartnerBatchDeploymentCheck() (gas: 65398867)
Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 182.01ms (175.97ms CPU time)
Ran 12 tests for tests/deployments/AaveV3BatchTests.t.sol:AaveV3BatchTests
[PASS] test0AaveV3SetupDeployment() (gas: 4555943)
[PASS] test10StaticATokenDeployment() (gas: 6703331)
[PASS] test1AaveV3GettersDeployment() (gas: 7834796)
[PASS] test2AaveV3PoolDeployment() (gas: 8515008)
[PASS] test3AaveV3L2PoolDeployment() (gas: 8765684)
[PASS] test4PeripheralsRelease() (gas: 6462446)
[PASS] test5MiscDeployment() (gas: 929335)
[PASS] test6ParaswapRelease() (gas: 5156175)
[PASS] test7SetupMarket() (gas: 2690495)
[PASS] test8TokensMarket() (gas: 3900808)
[PASS] test9ConfigEngineDeployment() (gas: 6574908)
[PASS] testAaveV3FullBatchOrchestration() (gas: 53781872)
Suite result: ok. 12 passed; 0 failed; 0 skipped; finished in 27.89ms (15.95ms CPU time)
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, μ: 124161, ~: 124523)
[PASS] test_calculate_rates_below_op_usage((uint16,uint32,uint32,uint32),uint256,uint256,uint256) (runs: 1000, μ: 118802, ~: 121027)
[PASS] test_calculate_rates_below_op_usage_when_no_debt((uint16,uint32,uint32,uint32),uint256,uint256) (runs: 1000, μ: 75654, ~: 76058)
[PASS] test_calculate_rates_empty_reserve((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 44215, ~: 44123)
[PASS] test_calculate_rates_when_not_using_virtual_valance((uint16,uint32,uint32,uint32),uint256,uint256) (runs: 1000, μ: 68084, ~: 69107)
[PASS] test_calculate_rates_when_total_debt_0((uint16,uint32,uint32,uint32),uint256,uint256) (runs: 1000, μ: 68404, ~: 69327)
[PASS] test_fuzz_calculate_rates_80_percent_usage_added_and_virtual_equal(uint256) (runs: 1000, μ: 33325, ~: 32997)
[PASS] test_zero_rates_strategy_calculate_rates() (gas: 19289)
Suite result: ok. 13 passed; 0 failed; 0 skipped; finished in 5.94s (5.89s CPU time)
Ran 7 tests for tests/misc/rates/RateStrategy.setters.t.sol:RateStrategySettersTests
[PASS] test_new_SetReserveInterestRateParams((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 52559, ~: 52483)
[PASS] test_new_SetReserveInterestRateParams_when_not_configurator((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 26300, ~: 26215)
[PASS] test_reverts_SetReserveInterestRateParams_when_gt_maxRate((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 29741, ~: 29829)
[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, μ: 27203, ~: 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 2.74s (2.67s CPU time)
Ran 7 tests for tests/misc/rates/RateStrategy.setters.t.sol:RateStrategySettersTestsOverride
[PASS] test_new_SetReserveInterestRateParams((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 51955, ~: 51882)
[PASS] test_new_SetReserveInterestRateParams_when_not_configurator((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 25674, ~: 25598)
[PASS] test_reverts_SetReserveInterestRateParams_when_gt_maxRate((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 29114, ~: 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, μ: 26607, ~: 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 2.30s (2.24s CPU time)
Ran 15 tests for tests/misc/rates/RateStrategy.t.sol:RateStrategyBaseTests
[PASS] test_getInterestRateDataBps((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 40408, ~: 40356)
[PASS] test_getInterestRateDataRay((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 41334, ~: 41282)
[PASS] test_getMaxVariableBorrowRate((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 38864, ~: 38790)
[PASS] test_initialization() (gas: 27078)
[PASS] test_new_DefaultReserveInterestRateStrategy_wrong_provider() (gas: 42406)
[PASS] test_new_SetReserveInterestRateParams((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 52509, ~: 52454)
[PASS] test_new_SetReserveInterestRateParams_override_method((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 49733, ~: 49659)
[PASS] test_new_SetReserveInterestRateParams_when_not_configurator((uint16,uint32,uint32,uint32)) (runs: 1000, μ: 26305, ~: 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 4.33s (4.27s CPU time)
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, μ: 448022, ~: 449892)
[PASS] test_splitFunds_fuzz_realistic(uint256,uint256) (runs: 1000, μ: 447147, ~: 448359)
[PASS] test_splitNativeFund_fixedAmount() (gas: 100469)
[PASS] test_splitNativeFund_walletNotAcceptingFunds() (gas: 535352)
[PASS] test_splitNativeFund_zeroAmount_noOp() (gas: 29713)
[PASS] test_splitNativeFunds_fuzz_max(uint256) (runs: 1000, μ: 100609, ~: 101887)
Suite result: ok. 15 passed; 0 failed; 0 skipped; finished in 4.51s (4.51s CPU time)
Ran 19 tests for tests/rewards/RewardsController.t.sol:RewardsControllerTest
[PASS] test_accrueRewards() (gas: 930633)
[PASS] test_claimAllRewards() (gas: 886376)
[PASS] test_claimAllRewardsOnBehalf() (gas: 920081)
[PASS] test_claimAllRewardsToSelf() (gas: 886003)
[PASS] test_claimRewards() (gas: 883288)
[PASS] test_claimRewardsOnBehalf() (gas: 921807)
[PASS] test_claimRewardsToSelf() (gas: 882970)
[PASS] test_claimRewards_partial() (gas: 883625)
[PASS] test_claimRewards_zero() (gas: 636115)
[PASS] test_claimRewards_zero_with_rewards() (gas: 642727)
[PASS] test_configureAssets() (gas: 617301)
[PASS] test_initialize_no_op() (gas: 3625231)
[PASS] test_new_RewardsController() (gas: 3601581)
[PASS] test_reverts_initialize_twice() (gas: 3626810)
[PASS] test_setClaimer() (gas: 58252)
[PASS] test_setDistributionEnd() (gas: 633160)
[PASS] test_setEmissionPerSecond() (gas: 637169)
[PASS] test_setRewardOracle() (gas: 710918)
[PASS] test_setTransferStrategy_PullRewardsTransferStrategy() (gas: 913390)
Suite result: ok. 19 passed; 0 failed; 0 skipped; finished in 124.12ms (31.19ms CPU time)
Ran 1 test for tests/protocol/tokenization/ScaledBalanceTokenBase.t.sol:ScaledBalanceTokenBaseEdgeTests
[PASS] test_scaled_balance_token_base_alice_transfer_to_bob_accrues_interests() (gas: 98768)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 53.38ms (319.86µs CPU time)
Ran 5 tests for tests/rewards/StakedTokenTransferStrategy.t.sol:StakedTokenTransferStrategyTest
[PASS] test_dropApproval() (gas: 18982)
[PASS] test_emergencyTransfer() (gas: 211683)
[PASS] test_getters() (gas: 18731)
[PASS] test_performTransfer() (gas: 22028)
[PASS] test_renewApproval() (gas: 23102)
Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 70.21ms (2.22ms CPU time)
Ran 3 tests for tests/gas/StataToken.gas.t.sol:StataToken_gas_Tests
[PASS] test_claimRewards() (gas: 1812394)
[PASS] test_deposit() (gas: 489428)
[PASS] test_depositATokens() (gas: 538568)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 97.98ms (14.05ms CPU time)
Ran 2 tests for tests/extensions/stata-token/StataTokenV2Getters.sol:StataTokenV2GettersTest
[PASS] test_getters() (gas: 72123)
[PASS] test_initializeShouldRevert() (gas: 21687)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 57.52ms (450.18µs CPU time)
Ran 10 tests for tests/extensions/stata-token/StataTokenV2Pausable.t.sol:StataTokenV2PausableTest
[PASS] test_canPause() (gas: 26898)
[PASS] test_canPause_shouldReturnFalse(address) (runs: 1000, μ: 27394, ~: 27394)
[PASS] test_claimingRewards_shouldRevert() (gas: 547024)
[PASS] test_deposit_shouldRevert() (gas: 469980)
[PASS] test_mint_shouldRevert() (gas: 474056)
[PASS] test_redeem_shouldRevert() (gas: 566758)
[PASS] test_setPaused_shouldRevertForInvalidCaller(address) (runs: 1000, μ: 30455, ~: 30455)
[PASS] test_setPaused_shouldSucceedForOwner() (gas: 53972)
[PASS] test_transfer_shouldRevert() (gas: 544933)
[PASS] test_withdraw_shouldRevert() (gas: 562610)
Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 396.02ms (316.25ms CPU time)
Ran 3 tests for tests/extensions/stata-token/StataTokenV2Permit.sol:StataTokenV2PermitTest
[PASS] test_permit() (gas: 89457)
[PASS] test_permit_expired() (gas: 37491)
[PASS] test_permit_invalidSigner() (gas: 66080)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 58.54ms (2.02ms CPU time)
Ran 4 tests for tests/extensions/stata-token/StataTokenV2Rescuable.sol:StataTokenV2RescuableTest
[PASS] test_rescuable_shouldNotCauseInsolvency(uint256,uint256) (runs: 1000, μ: 764752, ~: 764758)
[PASS] test_rescuable_shouldRevertForInvalidCaller() (gas: 190095)
[PASS] test_rescuable_shouldTransferAssetsToCollector() (gas: 217036)
[PASS] test_rescuable_shouldWorkForAToken() (gas: 443989)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 3.83s (3.77s CPU time)
Ran 26 tests for tests/protocol/pool/Pool.Liquidations.t.sol:PoolLiquidationTests
[PASS] test_deficit_increased_after_liquidate_bad_debt() (gas: 812804)
[PASS] test_full_liquidate_atokens_multiple_variable_borrows() (gas: 949051)
[PASS] test_full_liquidate_multiple_supplies_and_variable_borrows() (gas: 1147466)
[PASS] test_full_liquidate_multiple_variable_borrows() (gas: 1008742)
[PASS] test_liquidate_borrow_bad_debt() (gas: 826108)
[PASS] test_liquidate_borrow_burn_multiple_assets_bad_debt() (gas: 1192311)
[PASS] test_liquidate_emode_position_without_emode_oracle() (gas: 1039068)
[PASS] test_liquidate_isolated_position() (gas: 898196)
[PASS] test_liquidate_variable_borrow_no_fee() (gas: 834625)
[PASS] test_liquidate_variable_borrow_repro() (gas: 1053061)
[PASS] test_liquidate_variable_borrow_same_collateral_and_borrow() (gas: 687650)
[PASS] test_liquidation_when_grace_period_disabled(uint40) (runs: 1000, μ: 875838, ~: 875774)
[PASS] test_liquidation_with_liquidation_grace_period_collateral_active(uint40) (runs: 1000, μ: 1086585, ~: 1093107)
[PASS] test_liquidation_with_liquidation_grace_period_debt_active(uint40) (runs: 1000, μ: 1086210, ~: 1089925)
[PASS] test_liquidation_with_liquidation_grace_period_debt_collateral_active(uint40) (runs: 1000, μ: 1103677, ~: 1107191)
[PASS] test_partial_liquidate_atokens_variable_borrow() (gas: 885481)
[PASS] test_partial_liquidate_variable_borrow() (gas: 837792)
[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: 852124)
[PASS] test_self_liquidate_isolated_position_shoulEnableCollateralIfIsolatedSupplier() (gas: 902318)
[PASS] test_self_liquidate_position_shoulKeepCollateralEnabled() (gas: 776888)
Suite result: ok. 26 passed; 0 failed; 0 skipped; finished in 24.78s (24.71s CPU time)
Ran 12 tests for tests/gas/Pool.Operations.gas.t.sol:PoolOperations_gas_Tests
[PASS] test_borrow() (gas: 617482)
[PASS] test_liquidationCall_deficit() (gas: 853978)
[PASS] test_liquidationCall_deficitInAdditionalReserve() (gas: 1077269)
[PASS] test_liquidationCall_full() (gas: 854084)
[PASS] test_liquidationCall_partial() (gas: 850942)
[PASS] test_liquidationCall_receive_ATokens_full() (gas: 867339)
[PASS] test_liquidationCall_receive_ATokens_partial() (gas: 863738)
[PASS] test_repay() (gas: 775306)
[PASS] test_repay_with_ATokens() (gas: 634105)
[PASS] test_supply() (gas: 1097352)
[PASS] test_withdraw() (gas: 432300)
[PASS] test_withdraw_with_active_borrows() (gas: 615483)
Suite result: ok. 12 passed; 0 failed; 0 skipped; finished in 98.41ms (42.98ms CPU time)
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 23.38s (23.33s CPU time)
Ran 2 tests for tests/deployments/AaveV3PermissionsTest.t.sol:AaveV3PermissionsTest
[PASS] testCheckPermissions() (gas: 52155874)
[PASS] testCheckPermissionsTreasuryPartner() (gas: 52645234)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 68.93ms (63.24ms CPU time)
Ran 7 tests for tests/protocol/configuration/AddressesProviderRegistry.t.sol:PoolAddressesProviderRegistryTest
[PASS] testAddAddressesProvider() (gas: 120613)
[PASS] testRemoveAddressesProvider() (gas: 97154)
[PASS] testRemoveMultipleAddressesProvider() (gas: 242924)
[PASS] test_addressesProviderAddedToRegistry() (gas: 16393)
[PASS] test_removesLastProvider() (gas: 32653)
[PASS] test_revert_registry_0() (gas: 15558)
[PASS] test_revert_removeNonExistingAddressesProvider() (gas: 27603)
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 49.77ms (2.07ms CPU time)
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 49.60ms (551.48µs CPU time)
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 65.14ms (16.68ms 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 7.29ms (385.47µs CPU time)
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 4.54ms (398.37µ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 4.30ms (636.99µs 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.81ms (3.26ms CPU time)
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 541.14ms (516.07ms CPU time)
Ran 13 tests for tests/deployments/DeploymentsGasLimits.t.sol:DeploymentsGasLimits
[PASS] test0AaveV3SetupDeployment() (gas: 4555856)
[PASS] test10ConfigEngineDeployment() (gas: 6574845)
[PASS] test11StaticATokenDeployment() (gas: 6703281)
[PASS] test12PeripheralsTreasuryPartner() (gas: 6949095)
[PASS] test1AaveV3GettersBatch1Deployment() (gas: 6573257)
[PASS] test2AaveV3GettersBatch2Deployment() (gas: 2063021)
[PASS] test3AaveV3PoolDeployment() (gas: 8514974)
[PASS] test4AaveV3L2PoolDeployment() (gas: 8765607)
[PASS] test5PeripheralsRelease() (gas: 6462424)
[PASS] test6MiscDeployment() (gas: 1360629)
[PASS] test7ParaswapDeployment() (gas: 5156198)
[PASS] test8SetupMarket() (gas: 2715171)
[PASS] test9TokensMarket() (gas: 3900799)
Suite result: ok. 13 passed; 0 failed; 0 skipped; finished in 30.21ms (8.90ms CPU time)
Ran 18 tests for tests/protocol/tokenization/VariableDebtToken.t.sol:VariableDebtTokenEventsTests
[PASS] test_balanceOf() (gas: 242104)
[PASS] test_cancel_delegationWithSig() (gas: 101800)
[PASS] test_delegationWithSig() (gas: 95276)
[PASS] test_initialize_VariableDebtToken((uint8,string,string,string,string,address,address,address,bool)) (runs: 1000, μ: 2737172, ~: 2736579)
[PASS] test_mint_variableDebt_caller_alice((uint8,string,string,string,string,address,address,address,bool)) (runs: 1000, μ: 2809598, ~: 2808753)
[PASS] test_mint_variableDebt_caller_bob_onBehalf_alice((uint8,string,string,string,string,address,address,address,bool)) (runs: 1000, μ: 2823405, ~: 2822958)
[PASS] test_new_VariableDebtToken_implementation() (gas: 1572834)
[PASS] test_partial_burn_variableDebt((uint8,string,string,string,string,address,address,address,bool)) (runs: 1000, μ: 2824701, ~: 2823074)
[PASS] test_reverts_bad_expiration_delegationWithSig() (gas: 34223)
[PASS] test_reverts_bad_nonce_delegationWithSig() (gas: 111067)
[PASS] test_reverts_initialize_pool_do_not_match((uint8,string,string,string,string,address,address,address,bool)) (runs: 1000, μ: 2623801, ~: 2623940)
[PASS] test_reverts_initialize_twice((uint8,string,string,string,string,address,address,address,bool)) (runs: 1000, μ: 3673113, ~: 3674018)
[PASS] test_reverts_operation_not_supported() (gas: 1591437)
[PASS] test_reverts_zero_address_delegationWithSig() (gas: 33532)
[PASS] test_scaledBalanceOf() (gas: 322070)
[PASS] test_totalScaledSupply() (gas: 360543)
[PASS] test_totalSupply() (gas: 360472)
[PASS] test_total_burn_variableDebt((uint8,string,string,string,string,address,address,address,bool)) (runs: 1000, μ: 2822927, ~: 2822982)
Suite result: ok. 18 passed; 0 failed; 0 skipped; finished in 6.82s (6.77s CPU time)
Ran 12 tests for tests/protocol/libraries/math/WadRayMath.t.sol:WadRayMathTests
[PASS] test_constants() (gas: 13279)
[PASS] test_rayDiv() (gas: 12752)
[PASS] test_rayMul() (gas: 11375)
[PASS] test_rayToWad() (gas: 11057)
[PASS] test_rayToWad_fuzz(uint256) (runs: 1000, μ: 13326, ~: 13278)
[PASS] test_wadDiv() (gas: 12873)
[PASS] test_wadDiv_fuzzing(uint256,uint256) (runs: 1000, μ: 10496, ~: 10723)
[PASS] test_wadMul() (gas: 11145)
[PASS] test_wadMul_edge() (gas: 11187)
[PASS] test_wadMul_fuzzing(uint256,uint256) (runs: 1000, μ: 10783, ~: 11341)
[PASS] test_wadToRay() (gas: 10867)
[PASS] test_wadToRay_fuzz(uint256) (runs: 1000, μ: 12146, ~: 12349)
Suite result: ok. 12 passed; 0 failed; 0 skipped; finished in 268.80ms (267.41ms CPU time)
Ran 15 tests for tests/helpers/WrappedTokenGateway.t.sol:WrappedTokenGatewayTests
[PASS] test_borrowDelegateApprove_repay() (gas: 468475)
[PASS] test_borrowVariableDebtWeth_repayWithEth() (gas: 798477)
[PASS] test_borrowVariableDebtWeth_repayWithEth_mismatchedValues() (gas: 795233)
[PASS] test_depositNativeEthInPool() (gas: 256060)
[PASS] test_fallback_revert() (gas: 10083)
[PASS] test_getWETHAddress() (gas: 10592)
[PASS] test_ownerCanRescueEth() (gas: 25228)
[PASS] test_ownerCanRescueTokens() (gas: 96960)
[PASS] test_sendEthFallback_revert() (gas: 16727)
[PASS] test_sendEth_revert() (gas: 16604)
[PASS] test_withdrawEth_full() (gas: 383329)
[PASS] test_withdrawEth_partial() (gas: 402850)
[PASS] test_withdrawEth_permit() (gas: 437228)
[PASS] test_withdrawEth_permit_frontrunRegression() (gas: 438846)
[PASS] test_withdrawEth_permit_full() (gas: 413946)
Suite result: ok. 15 passed; 0 failed; 0 skipped; finished in 61.54ms (14.57ms CPU time)
Ran 1 test for tests/gas/WrappedTokenGatewayV3.gas.t.sol:WrappedTokenGatewayV3_gas_Tests
[PASS] test_flow() (gas: 617108)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 58.25ms (2.56ms CPU time)
Ran 3 tests for tests/protocol/pool/pool-configurator/PoolConfigurator.pendingLTV.t.sol:PoolConfiguratorPendingLtvTests
[PASS] test_freezeReserve_ltvSetTo0() (gas: 105716)
[PASS] test_setLtv_ltvSetPendingLtvSet(uint256,uint256) (runs: 1000, μ: 141430, ~: 141430)
[PASS] test_unfreezeReserve_pendingSetToLtv() (gas: 106979)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 1.24s (1.20s CPU time)
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, μ: 603419, ~: 604727)
[PASS] test_repayWithPermit(uint128,uint128,uint128,uint128,uint128) (runs: 1000, μ: 572634, ~: 570969)
[PASS] test_repayWithPermit_not_failing_if_permit_was_used(uint128,uint128,uint128,uint128,uint128) (runs: 1000, μ: 578023, ~: 576461)
[PASS] test_repayWithPermit_should_revert_if_permit_is_less_then_repay_amount(uint128,uint128,uint128,uint128,uint128) (runs: 1000, μ: 528695, ~: 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 11.95s (11.89s CPU time)
Ran 2 tests for tests/gas/Pool.Setters.gas.t.sol:PoolSetters_gas_Tests
[PASS] test_setUserEMode() (gas: 948068)
[PASS] test_setUserUseReserveAsCollateral() (gas: 385921)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 57.17ms (5.68ms CPU time)
Ran 44 tests for tests/protocol/pool/pool-configurator/PoolConfigurator.reserveRiskConfig.t.sol:PoolConfiguratorReserveRiskConfigs
[PASS] test_EmergencyAdminSetReserveFreeze_true() (gas: 134948)
[PASS] test_PoolAdminSetReserveFreeze_true() (gas: 99213)
[PASS] test_RiskAdminSetReserveFreeze_true() (gas: 128637)
[PASS] test_bridgeProtocolFee() (gas: 73193)
[PASS] test_disableLiquidationGracePeriod() (gas: 78005)
[PASS] test_dropReserve() (gas: 148034)
[PASS] test_enableBorrowing((uint8,string,string,string,string,address,address,address,bool)) (runs: 1000, μ: 2626110, ~: 2625787)
[PASS] test_enableFlashBorrow((uint8,string,string,string,string,address,address,address,bool)) (runs: 1000, μ: 2616223, ~: 2616708)
[PASS] test_reverts_bridgeProtocolFee() (gas: 30151)
[PASS] test_reverts_dropReserve_notListed() (gas: 53404)
[PASS] test_reverts_dropReserve_supplyNotZero() (gas: 300232)
[PASS] test_reverts_dropReserve_variableDebtNotZero() (gas: 459538)
[PASS] test_reverts_dropReserve_zeroAddress() (gas: 47308)
[PASS] test_reverts_setCollateralConfig_invalidParams((uint8,string,string,string,string,address,address,address,bool)) (runs: 1000, μ: 2858522, ~: 2858311)
[PASS] test_reverts_setDebtCeiling_suppliers() (gas: 287295)
[PASS] test_reverts_setLiquidationProtocolFee_amount_gt_percentageFactor() (gas: 35632)
[PASS] test_reverts_setReserveActive_false_if_suppliers() (gas: 282164)
[PASS] test_reverts_setReserveFactor_gt_percentageFactor() (gas: 35651)
[PASS] test_reverts_setSiloedBorrowing_borrowers() (gas: 407073)
[PASS] test_reverts_updateFlashloanPremiumToProtocol() (gas: 30267)
[PASS] test_reverts_updateFlashloanPremiumTotal() (gas: 30287)
[PASS] test_setBorrowableInIsolation_false() (gas: 62901)
[PASS] test_setBorrowableInIsolation_true() (gas: 65718)
[PASS] test_setCollateralConfig((uint8,string,string,string,string,address,address,address,bool)) (runs: 1000, μ: 2605656, ~: 2603389)
[PASS] test_setDebtCeiling() (gas: 113540)
[PASS] test_setDebtCeiling_suppliers_ltZero() (gas: 288265)
[PASS] test_setDebtCeiling_to_zero() (gas: 138288)
[PASS] test_setFrozenReserveFreeze_true_revert() (gas: 106040)
[PASS] test_setLiquidationGracePeriodAboveCap(uint40) (runs: 1000, μ: 34809, ~: 34809)
[PASS] test_setLiquidationGracePeriodPool(uint40) (runs: 1000, μ: 163566, ~: 167336)
[PASS] test_setLiquidationGracePeriodReserve(uint40) (runs: 1000, μ: 135427, ~: 135748)
[PASS] test_setLiquidationProtocolFee_amount_gt_percentageFactor() (gas: 72726)
[PASS] test_setPoolPause() (gas: 165424)
[PASS] test_setPoolPause_unpause() (gas: 238300)
[PASS] test_setReserveActive_false() (gas: 110807)
[PASS] test_setReserveActive_true() (gas: 67150)
[PASS] test_setReserveFactor() (gas: 993558)
[PASS] test_setReserveFreeze_false() (gas: 98602)
[PASS] test_setReservePause_false() (gas: 66523)
[PASS] test_setReservePause_true() (gas: 69278)
[PASS] test_setSiloedBorrowing() (gas: 97847)
[PASS] test_setUnfrozenReserveFreeze_false_revert() (gas: 48826)
[PASS] test_updateFlashloanPremiumToProtocol() (gas: 58239)
[PASS] test_updateFlashloanPremiumTotal() (gas: 58131)
Suite result: ok. 44 passed; 0 failed; 0 skipped; finished in 8.37s (8.32s CPU time)
Ran 11 tests for tests/protocol/pool/pool-configurator/PoolConfigurator.supplyCaps.t.sol:PoolConfiguratorSupplyCapTests
[PASS] test_default_supplyCap_zero() (gas: 27525)
[PASS] test_multiple_setSupplyCap() (gas: 369124)
[PASS] test_reverts_interests_gt_cap_and_supply() (gas: 477618)
[PASS] test_reverts_setSupplyCap_gt_max_cap() (gas: 48667)
[PASS] test_reverts_supply_gt_cap() (gas: 122598)
[PASS] test_reverts_unauthorized_setSupplyCap() (gas: 35454)
[PASS] test_setSupplyCap() (gas: 76762)
[PASS] test_setSupplyCap_them_setBorrowCap_zero() (gas: 316749)
[PASS] test_supply_eq_cap() (gas: 298070)
[PASS] test_supply_interests_reach_cap() (gas: 439022)
[PASS] test_supply_lt_cap() (gas: 298071)
Suite result: ok. 11 passed; 0 failed; 0 skipped; finished in 63.19ms (7.43ms CPU time)
Ran 6 tests for tests/protocol/pool/pool-configurator/PoolConfigurator.upgradeabilty.t.sol:PoolConfiguratorUpgradeabilityTests
[PASS] test_getConfiguratorLogic() (gas: 13610)
[PASS] test_interestRateStrategy_update() (gas: 1851842)
[PASS] test_setReserveInterestRateData() (gas: 152244)
[PASS] test_setReserveInterestRateStrategyAddress() (gas: 1008800)
[PASS] test_updateAToken() (gas: 2284668)
[PASS] test_updateVariableDebtToken() (gas: 1681854)
Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 61.26ms (5.32ms CPU time)
Ran 3 tests for tests/protocol/libraries/logic/PoolLogic.initReserves.edge.t.sol:PoolLogicInitReservesTests
[PASS] test_initReserves_return_false_after_dropped_reserve() (gas: 680706)
[PASS] test_reverts_initReserves_max() (gas: 197181)
[PASS] test_reverts_initReserves_reserveAlreadyAdded() (gas: 220586)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 53.50ms (854.16µs CPU time)
Ran 4 tests for tests/protocol/pool/pool-configurator/PoolConfigurator.liquidationFee.t.sol:PoolConfiguratorLiquidationFeeTests
[PASS] test_revert_setLiquidationFee_gt_100() (gas: 59237)
[PASS] test_revert_setLiquidationFee_unauthorized() (gas: 59105)
[PASS] test_setLiquidationFee() (gas: 76574)
[PASS] test_setLiquidationFee_100() (gas: 76530)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 49.85ms (1.09ms 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, μ: 413678, ~: 413686)
[PASS] test_supplyWithPermit_not_failing_if_permit_was_used(uint128,uint128,uint128) (runs: 1000, μ: 413878, ~: 413894)
[PASS] test_supplyWithPermit_should_revert_if_permit_is_less_then_supply_amount(uint128,uint128) (runs: 1000, μ: 280942, ~: 280944)
[PASS] test_supply_after_collateral_enabled() (gas: 287552)
Suite result: ok. 13 passed; 0 failed; 0 skipped; finished in 6.48s (6.43s CPU time)
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 59.24ms (9.31ms CPU time)
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, μ: 81878, ~: 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, μ: 34747, ~: 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 1.31s (1.26s CPU time)
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 67.22ms (12.68ms CPU time)
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, μ: 833690, ~: 796595)
[PASS] test_claimRewardsOnBehalfOf_self(uint256,uint32,uint88,uint32) (runs: 1000, μ: 836101, ~: 796810)
[PASS] test_claimRewardsOnBehalfOf_shouldRevertForInvalidClaimer(uint256,uint32,uint88,uint32) (runs: 1000, μ: 771199, ~: 772820)
[PASS] test_claimRewardsOnBehalfOf_validClaimer(uint256,uint32,uint88,uint32) (runs: 1000, μ: 866403, ~: 829207)
[PASS] test_claimRewardsToSelf(uint256,uint32,uint88,uint32) (runs: 1000, μ: 834181, ~: 796508)
[PASS] test_claimableRewards(uint256,uint32,uint88,uint32) (runs: 1000, μ: 772287, ~: 773759)
[PASS] test_collectAndUpdateRewards(uint256,uint32,uint88,uint32) (runs: 1000, μ: 814079, ~: 792863)
[PASS] test_correctAccountingForDelayedRegistration() (gas: 822384)
[PASS] test_getReferenceAsset() (gas: 12908)
[PASS] test_isRegisteredRewardToken() (gas: 633216)
[PASS] test_noRewardsInitialized() (gas: 39241)
[PASS] test_noopWhenNotInitialized() (gas: 52824)
[PASS] test_rewardTokens() (gas: 631357)
[PASS] test_transfer(uint256,uint32,uint88,uint32,address,uint256) (runs: 1000, μ: 846599, ~: 863387)
[PASS] test_transfer_toSelf(uint256,uint32,uint88,uint32) (runs: 1000, μ: 804776, ~: 797439)
[PASS] test_zeroIncentivesController() (gas: 37692)
Suite result: ok. 17 passed; 0 failed; 0 skipped; finished in 22.09s (22.05s CPU time)
Ran 24 tests for tests/protocol/pool/pool-configurator/PoolConfigurator.ACLModifiers.t.sol:PoolConfiguratorACLModifiersTest
[PASS] test_reverts_disableLiquidationGracePeriod_on_unauth(address,address) (runs: 1000, μ: 38594, ~: 38594)
[PASS] test_reverts_notAdmin_dropReserve(address) (runs: 1000, μ: 36181, ~: 36181)
[PASS] test_reverts_notAdmin_initReserves((uint8,string,string,string,string,address,address,address,bool),address) (runs: 1000, μ: 1047198, ~: 1047269)
[PASS] test_reverts_notAdmin_setReserveActive(address) (runs: 1000, μ: 36287, ~: 36287)
[PASS] test_reverts_notAdmin_updateAToken(address) (runs: 1000, μ: 35272, ~: 35272)
[PASS] test_reverts_notAdmin_updateFlashLoanPremiumProtocol(address) (runs: 1000, μ: 34033, ~: 34033)
[PASS] test_reverts_notAdmin_updateFlashLoanPremiumTotal(address) (runs: 1000, μ: 34030, ~: 34030)
[PASS] test_reverts_notAdmin_updateVariableDebtToken(address) (runs: 1000, μ: 35015, ~: 35015)
[PASS] test_reverts_notRiskAdmin_configureReserveAsCollateral(address) (runs: 1000, μ: 38679, ~: 38679)
[PASS] test_reverts_notRiskAdmin_setAssetCollateralInEMode(address) (runs: 1000, μ: 38813, ~: 38813)
[PASS] test_reverts_notRiskAdmin_setBorrowCap(address) (runs: 1000, μ: 38605, ~: 38605)
[PASS] test_reverts_notRiskAdmin_setEModeCategory(address) (runs: 1000, μ: 39132, ~: 39132)
[PASS] test_reverts_notRiskAdmin_setReserveBorrowing(address) (runs: 1000, μ: 38645, ~: 38645)
[PASS] test_reverts_notRiskAdmin_setReserveFactor(address) (runs: 1000, μ: 38606, ~: 38606)
[PASS] test_reverts_notRiskAdmin_setReserveInterestRateData(address,address) (runs: 1000, μ: 39368, ~: 39368)
[PASS] test_reverts_notRiskAdmin_setReserveInterestRateStrategyAddress(address) (runs: 1000, μ: 39276, ~: 39276)
[PASS] test_reverts_notRiskAdmin_setSupplyCap(address) (runs: 1000, μ: 38517, ~: 38517)
[PASS] test_reverts_notRiskOrPoolOrEmergencyAdmin_setReserveFreeze(address) (runs: 1000, μ: 43151, ~: 43151)
[PASS] test_reverts_setDebtCeiling(address) (runs: 1000, μ: 38629, ~: 38629)
[PASS] test_reverts_setPoolPause_noGracePeriod_unauth(address,bool) (runs: 1000, μ: 38557, ~: 38557)
[PASS] test_reverts_setPoolPause_unauth(address,bool,uint40) (runs: 1000, μ: 56180, ~: 56180)
[PASS] test_reverts_setReservePause_noGracePeriod_off_unauth(address,address,bool) (runs: 1000, μ: 38851, ~: 38851)
[PASS] test_reverts_setReservePause_off_unauth(address,address,bool,uint40) (runs: 1000, μ: 39016, ~: 39016)
[PASS] test_reverts_setReservePause_on_unauth(address,address,bool,uint40) (runs: 1000, μ: 38993, ~: 38993)
Suite result: ok. 24 passed; 0 failed; 0 skipped; finished in 4.08s (4.02s CPU time)
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, μ: 630878, ~: 627817)
[PASS] test_l2_set_user_collateral() (gas: 267056)
[PASS] test_l2_supply() (gas: 250760)
[PASS] test_l2_supply_permit(uint128,uint128) (runs: 1000, μ: 419243, ~: 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, μ: 81912, ~: 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, μ: 34606, ~: 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.64s (6.58s 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 1.49ms (232.54µs CPU time)
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: 739972)
[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: 938488)
[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: 1044846)
[PASS] test_withdrawAndSwap() (gas: 808494)
[PASS] test_withdrawAndSwap_permit() (gas: 851613)
[PASS] test_withdrawSwapAdapter_reverts_flashloan() (gas: 532838)
Suite result: ok. 17 passed; 0 failed; 0 skipped; finished in 94.72ms (43.67ms 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, μ: 10550, ~: 10678)
[PASS] test_percentMul() (gas: 11154)
[PASS] test_percentMul_fuzz(uint256,uint256) (runs: 1000, μ: 10601, ~: 11209)
Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 112.57ms (111.33ms CPU time)
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 68.52ms (16.87ms CPU time)
Ran 17 tests for tests/protocol/pool/Pool.FlashLoans.t.sol:PoolFlashLoansTests
[PASS] test_flashloan() (gas: 215705)
[PASS] test_flashloan_borrow() (gas: 529292)
[PASS] test_flashloan_multiple() (gas: 328493)
[PASS] test_flashloan_simple() (gas: 180028)
[PASS] test_flashloan_simple_2() (gas: 180028)
[PASS] test_revert_flashloan_borrow_stable() (gas: 212552)
[PASS] test_reverts_flashLoan_invalid_return() (gas: 183528)
[PASS] test_reverts_flashLoan_reserve_inactive() (gas: 147686)
[PASS] test_reverts_flashLoan_reserve_not_flash_loan_enabled() (gas: 103415)
[PASS] test_reverts_flashLoan_reserve_paused() (gas: 100166)
[PASS] test_reverts_flashLoan_same_asset_more_then_once(uint8) (runs: 1000, μ: 163221, ~: 127073)
[PASS] test_reverts_flashLoan_simple_invalid_return() (gas: 144668)
[PASS] test_reverts_flashloan_simple_transferred_funds() (gas: 169198)
[PASS] test_reverts_flashloan_transferred_funds() (gas: 199551)
[PASS] test_reverts_flashloans_eoa() (gas: 113103)
[PASS] test_reverts_supply_flashloan_simple_transfer_withdraw() (gas: 839876)
[PASS] test_reverts_supply_flashloan_transfer_withdraw() (gas: 872317)
Suite result: ok. 17 passed; 0 failed; 0 skipped; finished in 1.45s (1.40s CPU time)
Ran 12 tests for tests/gas/Pool.Getters.gas.t.sol:PoolGetters_gas_Tests
[PASS] test_getEModeCategoryCollateralConfig() (gas: 16650)
[PASS] test_getEModeCategoryData() (gas: 20458)
[PASS] test_getLiquidationGracePeriod() (gas: 18160)
[PASS] test_getReserveData() (gas: 44283)
[PASS] test_getUserAccountData() (gas: 33160)
[PASS] test_getUserAccountData_oneSupplies() (gas: 364584)
[PASS] test_getUserAccountData_oneSupplies_with_eMode_enabled() (gas: 481273)
[PASS] test_getUserAccountData_twoSupplies() (gas: 676569)
[PASS] test_getUserAccountData_twoSupplies_oneBorrows() (gas: 1087311)
[PASS] test_getUserAccountData_twoSupplies_oneBorrows_with_eMode_enabled() (gas: 1250814)
[PASS] test_getUserAccountData_twoSupplies_with_eMode_enabled() (gas: 804836)
[PASS] test_getUserAccountData_with_eMode_enabled() (gas: 149667)
Suite result: ok. 12 passed; 0 failed; 0 skipped; finished in 78.12ms (20.32ms CPU time)
Ran 28 tests for tests/extensions/stata-token/ERC4626StataTokenUpgradeable.t.sol:ERC4626StataTokenUpgradeableTest
[PASS] test_7201() (gas: 3469)
[PASS] test_convertersAndPreviews(uint128) (runs: 1000, μ: 43755, ~: 43755)
[PASS] test_depositATokens(uint128,uint256,address) (runs: 1000, μ: 523420, ~: 523795)
[PASS] test_depositATokens_self() (gas: 523894)
Logs:
Bound result 1000000000000000000
Bound result 1000000000000000000
[PASS] test_depositWithPermit_aToken(uint128,uint256,address) (runs: 1000, μ: 556149, ~: 556710)
[PASS] test_depositWithPermit_emptyPermit_aToken_preApproval(uint128,uint256,address) (runs: 1000, μ: 529455, ~: 529846)
[PASS] test_depositWithPermit_emptyPermit_underlying_preApproval(uint128,uint256,address) (runs: 1000, μ: 466804, ~: 466678)
[PASS] test_depositWithPermit_shouldRevert_emptyPermit_noPreApproval(uint128) (runs: 1000, μ: 396135, ~: 396036)
[PASS] test_depositWithPermit_underlying(uint128,uint256,address) (runs: 1000, μ: 488036, ~: 487918)
[PASS] test_deposit_shouldRevert_insufficientAllowance(uint128) (runs: 1000, μ: 387020, ~: 386928)
[PASS] test_latestAnswer_priceShouldBeEqualOnDefaultIndex() (gas: 37293)
[PASS] test_latestAnswer_priceShouldReflectIndexAccrual(uint256) (runs: 1000, μ: 42234, ~: 42268)
[PASS] test_maxDeposit_cap(uint256) (runs: 1000, μ: 110161, ~: 110476)
[PASS] test_maxDeposit_freeze() (gas: 116746)
[PASS] test_maxDeposit_noCap() (gas: 98267)
[PASS] test_maxDeposit_paused() (gas: 90020)
[PASS] test_maxRedeem_inSufficientAvailableLiquidity(uint256) (runs: 1000, μ: 975532, ~: 975659)
[PASS] test_maxRedeem_paused(uint128) (runs: 1000, μ: 547095, ~: 547001)
[PASS] test_maxRedeem_sufficientAvailableLiquidity(uint128) (runs: 1000, μ: 518907, ~: 518814)
[PASS] test_mint(uint256,address) (runs: 1000, μ: 457044, ~: 456890)
[PASS] test_mint_shouldRevert_mintMoreThenBa...*[Comment body truncated]* |
♻️ Forge Gas Snapshots
🔕 Unchanged
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
v3.3 version of the Aave protocol, including:
Changelog
-> Core
ReserveConfiguration
Pool
eliminateReserveDeficit()
, by a new Umbrella role registered on the PoolAddressesProvider.getReserveDataExtended()
, marked as deprecated on 3.2.Errors
DataTypes
__deprecatedStableBorrowRate
(not exposed already) has been replaced bydeficit
ConfiguratorLogic
ReserveLogic
getIsVirtualAccActive()
.eliminateDeficit()
functionLiquidationLogic
-> Periphery
AaveProtocolDataProvider
getReserveDeficit()
getter.UIPoolDataProvider
getReservesData()
now has an extradeficit
field.WrappedTokenGatewayV3
ParaswapAdapters
EmissionManager
setRewardOracle()
now requires a different input type for rewardOracle, but backwards compatibleRewardsController
All instances of the ChainlinkOracle interface have been aligned to a single version containing all methods.
While we are aware that non of the contract actually needs all methods, it improves DX within the aave-v3-origin repo to assume they do.
Steps planned for upgrade stage
deficit
storage variables are zero, to assure that there is not “dirty” data from the previous __deprecatedStableBorrowRate. Not on initialise because that would be the only aspects added there, and it is not worth it.