Skip to content

Conversation

@sakulstra
Copy link
Contributor

No description provided.

@github-actions
Copy link

github-actions bot commented Jul 30, 2025

♻️ Forge Gas Snapshots

Seems like you are not measuring gas of any operations yet. 🤔
Consider adding some snapshot tests to measure regressions & improvements.

@github-actions
Copy link

🌈 Test Results
No files changed, compilation skipped
2025-07-30T09:22:31.381428Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. To mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 9 tests for tests/rewards/RewardsDistributorMultipleAssets.t.sol:RewardsDistributorTest
[PASS] test_claimAllRewardsByClaimer() (gas: 884481)
[PASS] test_claimAllRewardsByNotClaimer() (gas: 634960)
[PASS] test_claimAllRewardsByUser() (gas: 862476)
[PASS] test_claimAllRewardsByUserInvalidAssets() (gas: 5993332)
[PASS] test_claimSelectedRewardsByClaimer() (gas: 880968)
[PASS] test_claimSelectedRewardsByNotClaimer() (gas: 637045)
[PASS] test_claimSelectedRewardsByUser() (gas: 858851)
[PASS] test_claimSelectedRewardsByUserWontRevertWithInvalidReward() (gas: 716726)
[PASS] test_initializeZeroAddressAdmin() (gas: 4558005)
Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 49.70ms (24.53ms CPU time)

Ran 4 tests for tests/helpers/Pause.t.sol:PauseTests
[PASS] test_setPauseByAdmin() (gas: 20369)
[PASS] test_setPauseNotByAdmin(address) (runs: 1024, μ: 15387, ~: 15387)
[PASS] test_shouldRevertWhenPauseIsActive() (gas: 93929)
[PASS] test_zeroChecks() (gas: 101584)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 1.42s (1.38s CPU time)

Ran 3 tests for tests/stewards/Rescueable.t.sol:RescuableACLTest
[PASS] test_rescue() (gas: 211799)
[PASS] test_rescueEther() (gas: 50996)
[PASS] test_rescueFromNotAdmin(address) (runs: 1024, μ: 188907, ~: 188892)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 2.09s (2.08s CPU time)

Ran 5 tests for tests/stakeToken/Slashing.t.sol:SlashingTests
[PASS] test_slash(uint192,uint192) (runs: 1024, μ: 379545, ~: 379567)
[PASS] test_slashNotByAdmin(address) (runs: 1024, μ: 23689, ~: 23689)
[PASS] test_slash_shouldRevertWithAmountZero() (gas: 22686)
[PASS] test_slash_shouldRevertWithFundsLteMinimum(uint256) (runs: 1024, μ: 315317, ~: 315511)
[PASS] test_stakeAfterSlash(uint96,uint96) (runs: 1024, μ: 525935, ~: 526094)
Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 4.16s (4.15s CPU time)

Ran 6 tests for tests/automation/SlashingRobot.t.sol:SlashingRobot_Test
[PASS] test_reserveDisabled() (gas: 493506)
[PASS] test_revert_setDisable(address,address,bool) (runs: 1024, μ: 12440, ~: 12440)
[PASS] test_revert_slashReserve_zeroFundsOnStakeToken() (gas: 125856)
[PASS] test_setDisable(address) (runs: 1024, μ: 30975, ~: 30958)
[PASS] test_slashReserve() (gas: 468058)
[PASS] test_slashReserve_multiple() (gas: 826100)
Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 908.23ms (898.23ms CPU time)

Ran 3 tests for tests/stakeToken/PermitDeposit.t.sol:PermitDepositTests
[PASS] test_permitAndDepositSeparate(uint192) (runs: 1024, μ: 344507, ~: 344464)
[PASS] test_permitDeposit(uint192) (runs: 1024, μ: 344989, ~: 344948)
[PASS] test_permitDepositInvalidSignature(uint192) (runs: 1024, μ: 229812, ~: 229817)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 4.42s (4.42s CPU time)
2025-07-30T09:22:37.223210Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. To mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 5 tests for tests/stakeToken/StakeTokenConfig.t.sol:StakeTokenConfigTests
[PASS] test_decimals() (gas: 15736)
[PASS] test_renounceOwnership() (gas: 19339)
[PASS] test_setCooldown(uint32) (runs: 1024, μ: 26168, ~: 26168)
[PASS] test_setUnstakeWindow(uint32) (runs: 1024, μ: 26256, ~: 26256)
[PASS] test_transferOwnership(address) (runs: 1024, μ: 24870, ~: 24870)
Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 1.30s (1.29s CPU time)

Ran 5 tests for tests/helpers/Rescuable.t.sol:RescuableTests
[PASS] test_checkWhoCanRescue() (gas: 12733)
[PASS] test_rescue() (gas: 234088)
[PASS] test_rescueEther() (gas: 69765)
[PASS] test_rescueFromNotAdmin(address) (runs: 1024, μ: 248336, ~: 248320)
[PASS] test_zeroChecks() (gas: 101584)
Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 1.00s (970.16ms CPU time)

Ran 4 tests for tests/rewards/RescuableACL.t.sol:RescuableACLTest
[PASS] test_initializeZeroAddressAdmin() (gas: 4558005)
[PASS] test_rescue() (gas: 214913)
[PASS] test_rescueEther() (gas: 74859)
[PASS] test_rescueFromNotAdmin(address) (runs: 1024, μ: 236611, ~: 236595)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 952.58ms (947.30ms CPU time)
2025-07-30T09:22:39.179898Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. To mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 5 tests for tests/helpers/UmbrellaBatchHelperWithRewards.t.sol:UmbrellaTokenHelperWithRewards
[PASS] test_claimRewardsStata() (gas: 511814)
[PASS] test_claimRewardsWithoutStata() (gas: 241600)
[PASS] test_restakeRewardsStata() (gas: 618088)
[PASS] test_restakeRewardsWithoutStata() (gas: 271678)
[PASS] test_zeroChecks() (gas: 101584)
Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 43.57ms (6.48ms CPU time)

Ran 26 tests for tests/rewards/RewardsController.t.sol:RewardsControllerTest
[PASS] test_configureAssetDisableRewardWithEmission() (gas: 190394)
[PASS] test_configureAssetDisableRewardWithTime() (gas: 190333)
[PASS] test_configureAssetWithRewards18With18(uint256,uint256) (runs: 1024, μ: 173033, ~: 173172)
[PASS] test_configureAssetWithRewards18With6(uint256,uint256) (runs: 1024, μ: 211264, ~: 211497)
[PASS] test_configureAssetWithRewards6With18(uint256,uint256) (runs: 1024, μ: 174101, ~: 174237)
[PASS] test_configureAssetWithRewards6With6(uint256,uint256) (runs: 1024, μ: 212402, ~: 212626)
[PASS] test_configureAssetWithRewardsByNotAdmin() (gas: 26845)
[PASS] test_configureAssetWithRewardsWithInvalidDistributionEnd() (gas: 102374)
[PASS] test_configureAssetWithRewardsWithInvalidEmissionTooHigh(uint256,uint256) (runs: 1024, μ: 67667, ~: 68060)
[PASS] test_configureAssetWithRewardsWithInvalidEmissionTooLow(uint256,uint256) (runs: 1024, μ: 67825, ~: 67588)
[PASS] test_configureAssetWithRewardsWithInvalidTarget(uint256) (runs: 1024, μ: 90110, ~: 89817)
[PASS] test_configureRewardsDisableRewardWithEmission() (gas: 188602)
[PASS] test_configureRewardsDisableRewardWithTime() (gas: 188584)
[PASS] test_configureRewardsNotByRewardAdmin() (gas: 158968)
[PASS] test_configureRewardsWithInvalidEmissionTooHigh(uint256,uint256) (runs: 1024, μ: 175328, ~: 175215)
[PASS] test_configureRewardsWithInvalidEmissionTooLow(uint256,uint256) (runs: 1024, μ: 175261, ~: 175155)
[PASS] test_configureRewardsWithNotInitializedReward() (gas: 47535)
[PASS] test_configureZeroAddresses() (gas: 140564)
[PASS] test_handleActionUninitializedAsset() (gas: 248252)
[PASS] test_handleActionWithRewards() (gas: 651037)
[PASS] test_initializeZeroAddressAdmin() (gas: 4558028)
[PASS] test_updateAssetAndRewardDataOnDeposit() (gas: 503104)
[PASS] test_updateAssetAndRewardDataOnSlash() (gas: 439867)
[PASS] test_updateAssetAndRewardDataOnTransfer() (gas: 487617)
[PASS] test_updateAssetAndRewardDataOnWithdraw() (gas: 537467)
[PASS] test_updateAssetWithoutRewards() (gas: 323046)
Suite result: ok. 26 passed; 0 failed; 0 skipped; finished in 5.76s (5.75s CPU time)

Ran 1 test for tests/rewards/utils/RewardsControllerBase.t.sol:RewardsControllerBaseTest
[PASS] test_initializeZeroAddressAdmin() (gas: 4557940)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 6.93ms (948.75µs CPU time)
2025-07-30T09:22:39.227171Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. To mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 1 test for tests/helpers/utils/UmbrellaBatchHelperWithRewardsBase.t.sol:UmbrellaBatchHelperWithRewardsTestBase
[PASS] test_zeroChecks() (gas: 101584)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 43.19ms (924.24µs CPU time)

Ran 20 tests for tests/rewards/RewardsControllerView.t.sol:RewardsControllerViewTest
[PASS] test_calculateCurrentEmissionReturnNonZero() (gas: 434280)
[PASS] test_calculateCurrentEmissionReturnZeroData() (gas: 325496)
[PASS] test_calculateCurrentEmissionScaledReturnNonZero() (gas: 433485)
[PASS] test_calculateCurrentEmissionScaledReturnZeroData() (gas: 324514)
[PASS] test_calculateCurrentUserRewardReturnFreshData() (gas: 489430)
[PASS] test_calculateCurrentUserRewardReturnZeroData() (gas: 79154)
[PASS] test_calculateCurrentUserRewardsReturnFreshData() (gas: 498176)
[PASS] test_calculateCurrentUserRewardsReturnZeroData() (gas: 82495)
[PASS] test_calculateRewardIndex() (gas: 365358)
[PASS] test_calculateRewardIndexes() (gas: 366326)
[PASS] test_getAllAssets() (gas: 101416)
[PASS] test_getAllRewards() (gas: 168630)
[PASS] test_getAssetAndRewardsData() (gas: 355503)
[PASS] test_getAssetData() (gas: 334966)
[PASS] test_getEmissionData() (gas: 336648)
[PASS] test_getRewardData() (gas: 362861)
[PASS] test_getUserDataByAsset() (gas: 487263)
[PASS] test_getUserDataByReward() (gas: 471875)
[PASS] test_initialize() (gas: 41983)
[PASS] test_initializeZeroAddressAdmin() (gas: 4558006)
Suite result: ok. 20 passed; 0 failed; 0 skipped; finished in 34.26ms (25.93ms CPU time)

Ran 17 tests for tests/rewards/RewardsDistributor.t.sol:RewardsDistributorTest
[PASS] test_claimAllRewardsByClaimer() (gas: 521097)
[PASS] test_claimAllRewardsByNotClaimer() (gas: 325020)
[PASS] test_claimAllRewardsByUser() (gas: 493538)
[PASS] test_claimAllRewardsExpiredDeadline() (gas: 54884)
[PASS] test_claimAllRewardsInvalidSig() (gas: 65510)
[PASS] test_claimAllRewardsUsingSignature() (gas: 539489)
[PASS] test_claimSelectedRewardsByClaimer() (gas: 538393)
[PASS] test_claimSelectedRewardsByNotClaimer() (gas: 314072)
[PASS] test_claimSelectedRewardsByUser() (gas: 435701)
[PASS] test_claimSelectedRewardsByUserWontRevertWithInvalidReward() (gas: 374957)
[PASS] test_claimSelectedRewardsExpiredDeadline() (gas: 58108)
[PASS] test_claimSelectedRewardsInvalidSig() (gas: 69079)
[PASS] test_claimSelectedRewardsUsingSignature() (gas: 571121)
[PASS] test_initializeZeroAddressAdmin() (gas: 4558005)
[PASS] test_setClaimer() (gas: 36656)
[PASS] test_setClaimerByAdmin() (gas: 40796)
[PASS] test_setClaimerByNonAdmin() (gas: 21642)
Suite result: ok. 17 passed; 0 failed; 0 skipped; finished in 27.17ms (19.61ms CPU time)

Ran 19 tests for tests/umbrella/UmbrellaConfiguration.t.sol:Umbrella_Configuration_Test
[PASS] test_InvalidRoles() (gas: 26481)
[PASS] test_getSlashingConfigsOrPrice() (gas: 35149)
[PASS] test_getStakeTokenData() (gas: 238217)
[PASS] test_invalidInit() (gas: 4328749)
[PASS] test_isReserveSlashable() (gas: 356791)
[PASS] test_latestUnderlyingAnswer() (gas: 267036)
[PASS] test_removeSlashingConfigs() (gas: 407642)
[PASS] test_removeSlashingConfigsUnexestingConfig() (gas: 48028)
[PASS] test_setup() (gas: 47764)
[PASS] test_shouldRevertLatestAnswerBeforeConfig() (gas: 25772)
[PASS] test_updateSlashingConfigTwoTimes() (gas: 393632)
[PASS] test_updateSlashingConfigsDifferentDecimals() (gas: 41042)
[PASS] test_updateSlashingConfigsInitDeficit() (gas: 337606)
[PASS] test_updateSlashingConfigsInvalidOracleAndReserve(uint128) (runs: 1024, μ: 191510, ~: 191821)
[PASS] test_updateSlashingConfigsInvalidStake() (gas: 27156)
[PASS] test_updateSlashingConfigsLBGreaterThan100() (gas: 24619)
[PASS] test_updateSlashingConfigsMultipleSetupOfOneStakeToken() (gas: 273669)
[PASS] test_updateSlashingConfigsOkSetup() (gas: 459457)
[PASS] test_updateSlashingConfigsZeroAddresses() (gas: 152077)
Suite result: ok. 19 passed; 0 failed; 0 skipped; finished in 509.37ms (500.54ms CPU time)

Ran 3 tests for tests/payloads/UmbrellaExtendedPayload.t.sol:UmbrellaExtendedPayloadTest
[PASS] test_UmbrellaConfigEngineZeroAddress() (gas: 118114)
[PASS] test_complexCreation() (gas: 3548022)
[PASS] test_complexRemoval() (gas: 4020337)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 13.83ms (5.08ms CPU time)

Ran 1 test for tests/payloads/utils/UmbrellaPayloadSetup.t.sol:UmbrellaPayloadSetup
[PASS] test_UmbrellaConfigEngineZeroAddress() (gas: 118027)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 7.95ms (247.63µs CPU time)

Ran 11 tests for tests/umbrella/UmbrellaStkManager.t.sol:Umbrella_StkManager_Test
[PASS] test_InvalidRoles() (gas: 77863)
[PASS] test_InvalidStakeTokenOnStkFunctions() (gas: 85039)
[PASS] test_createStakeTokenWithEmptyUnderlying() (gas: 26823)
[PASS] test_createStakeTokens() (gas: 923314)
[PASS] test_createStakeTokensWithoutSuffix() (gas: 922799)
[PASS] test_frontrunTokenCreation() (gas: 942263)
[PASS] test_getStkTokens() (gas: 925956)
[PASS] test_isUmbrellaStkToken() (gas: 928832)
[PASS] test_pauseStk() (gas: 49190)
[PASS] test_setCooldownStk() (gas: 52731)
[PASS] test_setUnstakeWindowStk() (gas: 52809)
Suite result: ok. 11 passed; 0 failed; 0 skipped; finished in 16.62ms (6.87ms CPU time)

Ran 4 tests for tests/payloads/Rescuable.t.sol:RescuableTests
[PASS] test_UmbrellaConfigEngineZeroAddress() (gas: 118257)
[PASS] test_rescue() (gas: 209055)
[PASS] test_rescueEther() (gas: 68225)
[PASS] test_rescueFromNotAdmin(address) (runs: 1024, μ: 223468, ~: 223452)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 980.57ms (973.21ms CPU time)

Ran 3 tests for tests/stakeToken/Pause.t.sol:PauseTests
[PASS] test_setPauseByAdmin() (gas: 35367)
[PASS] test_setPauseNotByAdmin(address) (runs: 1024, μ: 25133, ~: 25133)
[PASS] test_shouldRevertWhenPauseIsActive() (gas: 541836)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 412.00ms (407.18ms CPU time)

Ran 4 tests for tests/stakeToken/Rescuable.t.sol:RescuableTests
[PASS] test_checkWhoCanRescue() (gas: 17777)
[PASS] test_rescue() (gas: 239046)
[PASS] test_rescueEther() (gas: 74825)
[PASS] test_rescueFromNotAdmin(address) (runs: 1024, μ: 259552, ~: 259539)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 1.05s (1.05s CPU time)

Ran 26 tests for tests/umbrella/Umbrella.t.sol:Umbrella_Test
[PASS] test_InvalidRoles() (gas: 36626)
[PASS] test_coverDeficitOffsetInvalidAmount() (gas: 801621)
[PASS] test_coverDeficitOffsetReserveVirtualOff() (gas: 599196)
[PASS] test_coverDeficitOffsetReserveVirtualOffWithManualIncrease() (gas: 552628)
[PASS] test_coverDeficitOffsetReserveVirtualOn() (gas: 600644)
[PASS] test_coverDeficitOffsetZeroDeficit() (gas: 226628)
[PASS] test_coverPendingDeficitReserveVirtualOff() (gas: 997976)
[PASS] test_coverPendingDeficitReserveVirtualOn() (gas: 1000754)
[PASS] test_coverPendingDeficitVirtualOnATokenTransferred() (gas: 1130891)
[PASS] test_coverPendingDeficitsetInvalidAmount() (gas: 861929)
[PASS] test_coverPendingDeficitsetZeroDeficit() (gas: 786045)
[PASS] test_coverReserveDeficit() (gas: 323754)
[PASS] test_coverReserveDeficitForConfiguredReserve() (gas: 860952)
[PASS] test_coverReserveDeficitForConfiguredReserveWithOffset() (gas: 548884)
[PASS] test_predictAndCreate(string) (runs: 1024, μ: 1050679, ~: 1071472)
[PASS] test_setDeficitOffset(uint256) (runs: 1024, μ: 359888, ~: 359596)
[PASS] test_setDeficitOffsetLowerThanActualDeficit(uint256) (runs: 1024, μ: 339230, ~: 339542)
[PASS] test_setDeficitOffsetNotSetup(uint256) (runs: 1024, μ: 23643, ~: 23643)
[PASS] test_slash() (gas: 715094)
[PASS] test_slashHalfDeficit() (gas: 715365)
[PASS] test_slashNoConfig() (gas: 601628)
[PASS] test_slashNoDeficit() (gas: 602430)
[PASS] test_slashSeveralConfigs() (gas: 1763815)
[PASS] test_slashWithNonZeroLb(uint256) (runs: 1024, μ: 738216, ~: 738677)
[PASS] test_slashWithNonZeroLbExceedDeficit(uint256) (runs: 1024, μ: 737383, ~: 737776)
[PASS] test_tokenForDeficitCoverage() (gas: 64187)
Suite result: ok. 26 passed; 0 failed; 0 skipped; finished in 5.62s (5.62s CPU time)

Ran 18 tests for tests/payloads/UmbrellaBasePayload.t.sol:UmbrellaBasePayloadTest
[PASS] test_UmbrellaConfigEngineZeroAddress() (gas: 118279)
[PASS] test_configureRewards() (gas: 1686098)
[PASS] test_configureRewardsUpdate() (gas: 1746290)
[PASS] test_configureStakeAndRewards() (gas: 1043454)
[PASS] test_configureStakeAndRewardsAndUpdate() (gas: 1807937)
[PASS] test_constructor() (gas: 480021)
[PASS] test_constructorZeroAddress() (gas: 36616)
[PASS] test_coverDeficitOffsetWithApprove() (gas: 2513977)
[PASS] test_coverDeficitOffsetWithoutApprove() (gas: 2523273)
[PASS] test_coverPendingDeficitWithApprove() (gas: 2613949)
[PASS] test_coverPendingDeficitWithoutApprove() (gas: 2623926)
[PASS] test_coverReserveDeficitWithApprove() (gas: 1043377)
[PASS] test_coverReserveDeficitWithoutApprove() (gas: 1071735)
[PASS] test_createStkTokens() (gas: 2353564)
[PASS] test_removeSlashingConfig() (gas: 1466991)
[PASS] test_setDeficitOffset() (gas: 1651939)
[PASS] test_updateCooldownsAndUnstake() (gas: 640913)
[PASS] test_updateSlashingConfig() (gas: 1068872)
Suite result: ok. 18 passed; 0 failed; 0 skipped; finished in 46.09ms (34.05ms CPU time)
2025-07-30T09:22:43.461108Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. To mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 7 tests for tests/umbrella/RescuableACL.t.sol:RescuableACLTest
[PASS] test_maxRescue(address) (runs: 1024, μ: 13731, ~: 13731)
[PASS] test_rescue() (gas: 215128)
[PASS] test_rescueEther() (gas: 75004)
[PASS] test_rescueEtherStk() (gas: 90071)
[PASS] test_rescueFromNotAdmin(address) (runs: 1024, μ: 242089, ~: 242073)
[PASS] test_rescueFromNotAdminStk(address) (runs: 1024, μ: 245928, ~: 245912)
[PASS] test_rescueFromStk() (gas: 233133)
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 2.52s (2.51s CPU time)

Ran 11 tests for tests/stakeToken/Cooldown.t.sol:CooldownTests
[PASS] test_changeWindowAndEndOfCooldownAfter() (gas: 423660)
[PASS] test_cooldown(uint192,uint192) (runs: 1024, μ: 419141, ~: 418882)
[PASS] test_cooldownChangeOnRedeem(uint192,uint224) (runs: 1024, μ: 433660, ~: 433582)
[PASS] test_cooldownChangeOnTransfer(uint192,uint224) (runs: 1024, μ: 422624, ~: 422634)
[PASS] test_cooldownInsufficientTime(uint192,uint32) (runs: 1024, μ: 332164, ~: 332176)
[PASS] test_cooldownNoIncreaseInAmount(uint192,uint192) (runs: 1024, μ: 747957, ~: 747767)
[PASS] test_cooldownOnBehalf(uint192,uint224) (runs: 1024, μ: 468846, ~: 468587)
[PASS] test_cooldownOnBehalfNotApproved(uint192) (runs: 1024, μ: 310183, ~: 310192)
[PASS] test_cooldownOnBehalfNotApprovedSecondTime(uint192) (runs: 1024, μ: 355721, ~: 355730)
[PASS] test_cooldownWindowClosed(uint192,uint32) (runs: 1024, μ: 333353, ~: 333356)
[PASS] test_cooldownZeroAmount() (gas: 20706)
Suite result: ok. 11 passed; 0 failed; 0 skipped; finished in 15.44s (15.44s CPU time)

Ran 5 tests for tests/stewards/DeficitOffsetClinicSteward.t.sol:DeficitOffsetClinicStewardTest
[PASS] test_coverDeficitOffset() (gas: 562565)
[PASS] test_coverDeficitOffsetRevert() (gas: 104349)
[PASS] test_deploy() (gas: 150798)
[PASS] test_onlyFinancialCommittee(address) (runs: 1024, μ: 16669, ~: 16669)
[PASS] test_setup() (gas: 125078)
Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 244.06ms (238.09ms CPU time)

Ran 4 tests for tests/stakeToken/ExchangeRate.t.sol:ExchangeRateTest
[PASS] test_precisionLossCombinedTest(uint96,uint96,uint96) (runs: 1024, μ: 385127, ~: 385282)
[PASS] test_precisionLossStartingWithAssets(uint192,uint192) (runs: 1024, μ: 317035, ~: 317039)
[PASS] test_precisionLossStartingWithShares(uint192,uint224) (runs: 1024, μ: 318959, ~: 318883)
[PASS] test_precisionLossWithSlash(uint192,uint192) (runs: 1024, μ: 378097, ~: 378124)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 4.67s (4.67s CPU time)

Ran 6 tests for tests/automation/GelatoSlashingRobot.t.sol:GelatoSlashingRobot_Test
[PASS] test_reserveDisabled() (gas: 495876)
[PASS] test_revert_setDisable(address,address,bool) (runs: 1024, μ: 12440, ~: 12440)
[PASS] test_revert_slashReserve_zeroFundsOnStakeToken() (gas: 126839)
[PASS] test_setDisable(address) (runs: 1024, μ: 30974, ~: 30958)
[PASS] test_slashReserve() (gas: 470046)
[PASS] test_slashReserve_multiple() (gas: 827761)
Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 515.81ms (507.45ms CPU time)

Ran 4 tests for tests/stakeToken/Invariants.t.sol:InvariantTest
[PASS] test_dataShouldBeNotUpdatedDuringDeposit() (gas: 481121)
[PASS] test_dataShouldBeNotUpdatedDuringWithdraw() (gas: 422629)
[PASS] test_dataShouldNotBeUpdatedDuringSlash() (gas: 376412)
[PASS] test_exchangeRateAfterSlashingAlwaysIncreasing(uint192,uint192) (runs: 1024, μ: 377192, ~: 377177)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 1.17s (1.17s CPU time)
2025-07-30T09:22:51.145159Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. To mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 1 test for tests/helpers/utils/UmbrellaBatchHelperBase.t.sol:UmbrellaBatchHelperTestBase
[PASS] test_zeroChecks() (gas: 101584)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 31.37ms (287.15µs CPU time)
2025-07-30T09:22:51.177206Z ERROR cheatcodes: non-empty stderr input=["bash", "-c", "response=\"$([ -e .env ] && grep -q \"FOUNDRY_LIBRARIES\" .env && echo true || echo false)\"; cast abi-encode \"response(bool)\" $response;"] stderr="Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. To mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment. \n\n"

Ran 4 tests for tests/helpers/UmbrellaBatchHelperWithATokensError.t.sol:UmbrellaTokenHelperWithRewards
[PASS] test_batchHelperDepositFromATokeRevertZeroBalance(uint96) (runs: 1024, μ: 281863, ~: 281860)
[PASS] test_batchHelperDepositFromATokenGreaterAmount(uint96) (runs: 1024, μ: 754895, ~: 754896)
[PASS] test_depositReplaceATokenWithMockWithTransferWeiLoss() (gas: 482861)
[PASS] test_zeroChecks() (gas: 101584)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 3.03s (2.99s CPU time)

Ran 10 tests for tests/stakeToken/ERC20.t.sol:ERC20Tests
[PASS] test_approve(uint192) (runs: 1024, μ: 42368, ~: 42563)
[PASS] test_mint(uint192) (runs: 1024, μ: 314459, ~: 314422)
[PASS] test_name() (gas: 17518)
[PASS] test_resetApproval(uint192) (runs: 1024, μ: 33173, ~: 33276)
[PASS] test_symbol() (gas: 17509)
[PASS] test_transferFrom(uint192,uint192) (runs: 1024, μ: 410101, ~: 410816)
[PASS] test_transferFromWithoutApprove(uint192,uint192) (runs: 1024, μ: 312802, ~: 312809)
[PASS] test_transferWithCooldownInStake(uint192,uint192) (runs: 1024, μ: 410365, ~: 410812)
[PASS] test_transferWithoutCooldownInStake(uint192,uint192) (runs: 1024, μ: 387623, ~: 387924)
[PASS] test_withdraw(uint192,uint192) (runs: 1024, μ: 417817, ~: 417641)
Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 8.86s (8.86s CPU time)

Ran 4 tests for tests/rewards/EmissonMath.t.sol:RewardsControllerTest
[PASS] test_CurveSector_1(uint256,uint256,uint256) (runs: 1024, μ: 401893, ~: 401854)
[PASS] test_CurveSector_2(uint256,uint256,uint256) (runs: 1024, μ: 402385, ~: 402500)
[PASS] test_CurveSector_3(uint256,uint256,uint256) (runs: 1024, μ: 401542, ~: 401674)
[PASS] test_initializeZeroAddressAdmin() (gas: 4558005)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 3.81s (3.80s CPU time)

Ran 15 tests for tests/helpers/UmbrellaBatchHelper.t.sol:UmbrellaTokenHelper
[PASS] test_batchCooldownPermits(uint96) (runs: 1024, μ: 1171036, ~: 1171036)
[PASS] test_batchCooldownPermitsInvalidSigReverts(uint96) (runs: 1024, μ: 619976, ~: 619977)
[PASS] test_batchHelperDepositFromAToken(uint96) (runs: 1024, μ: 905977, ~: 905977)
[PASS] test_batchHelperDepositFromStataToken(uint96) (runs: 1024, μ: 820987, ~: 820988)
[PASS] test_batchHelperDepositFromToken(uint96) (runs: 1024, μ: 1133082, ~: 1133082)
[PASS] test_batchHelperDepositFromWeth(uint96) (runs: 1024, μ: 484688, ~: 484687)
[PASS] test_batchHelperWithdrawToAToken(uint96) (runs: 1024, μ: 981590, ~: 981589)
[PASS] test_batchHelperWithdrawToStataToken(uint96) (runs: 1024, μ: 905703, ~: 905702)
[PASS] test_batchHelperWithdrawToToken(uint96) (runs: 1024, μ: 1420202, ~: 1420199)
[PASS] test_batchSomeTokensPermits(uint256) (runs: 1024, μ: 287099, ~: 287974)
[PASS] test_batchSomeTokensPermitsFrontRunSignature(uint256) (runs: 1024, μ: 316778, ~: 317478)
[PASS] test_depositNotRelatedTokenShouldRevert() (gas: 809708)
[PASS] test_initializationShouldRevert() (gas: 34505)
[PASS] test_initializeSomeStakeTokens() (gas: 246382)
[PASS] test_zeroChecks() (gas: 101584)
Suite result: ok. 15 passed; 0 failed; 0 skipped; finished in 357.30s (25.83s CPU time)

Ran 20 tests for tests/stakeToken/ERC4626.t.sol:ERC4626Tests
[PASS] test_baseFunctionsBeforeActions() (gas: 33354)
[PASS] test_deposit(uint192) (runs: 1024, μ: 310958, ~: 310968)
[PASS] test_depositToSomeone(uint192) (runs: 1024, μ: 312656, ~: 312668)
[PASS] test_donationDoesntChangeTotalAssets(uint192,uint192) (runs: 1024, μ: 475367, ~: 475372)
[PASS] test_events(uint192,uint224) (runs: 1024, μ: 417284, ~: 417248)
[PASS] test_maxRedeem(uint192) (runs: 1024, μ: 334147, ~: 334159)
[PASS] test_maxWithdraw(uint192) (runs: 1024, μ: 418970, ~: 418929)
[PASS] test_mint(uint192) (runs: 1024, μ: 315356, ~: 315365)
[PASS] test_mintToSomeone(uint192) (runs: 1024, μ: 317071, ~: 317080)
[PASS] test_previewFunctions(uint192) (runs: 1024, μ: 30272, ~: 30272)
[PASS] test_redeem(uint192,uint192) (runs: 1024, μ: 421779, ~: 421912)
[PASS] test_redeemMoreThanHave(uint192) (runs: 1024, μ: 331065, ~: 331075)
[PASS] test_redeemToSomeone(uint192,uint192) (runs: 1024, μ: 425017, ~: 425156)
[PASS] test_redeemWithApprove(uint192,uint192) (runs: 1024, μ: 447163, ~: 447301)
[PASS] test_redeemWithoutApprove(uint192,uint192) (runs: 1024, μ: 341354, ~: 341469)
[PASS] test_withdraw(uint192,uint192) (runs: 1024, μ: 423306, ~: 423387)
[PASS] test_withdrawMoreThanHave(uint192) (runs: 1024, μ: 332198, ~: 332158)
[PASS] test_withdrawToSomeone(uint192,uint192) (runs: 1024, μ: 426639, ~: 426722)
[PASS] test_withdrawWithApprove(uint192,uint192) (runs: 1024, μ: 448742, ~: 448830)
[PASS] test_withdrawWithoutApprove(uint192,uint192) (runs: 1024, μ: 342629, ~: 342768)
Suite result: ok. 20 passed; 0 failed; 0 skipped; finished in 356.22s (22.58s CPU time)

Ran 26 tests for tests/stakeToken/ERC4626a16z.t.sol:ERC4626StdTest
[PASS] test_RT_deposit_redeem((address[4],uint256[4],uint256[4],int256),uint256) (runs: 1024, μ: 600396, ~: 594088)
[PASS] test_RT_deposit_withdraw((address[4],uint256[4],uint256[4],int256),uint256) (runs: 1024, μ: 601665, ~: 595240)
[PASS] test_RT_mint_redeem((address[4],uint256[4],uint256[4],int256),uint256) (runs: 1024, μ: 602986, ~: 596631)
[PASS] test_RT_mint_withdraw((address[4],uint256[4],uint256[4],int256),uint256) (runs: 1024, μ: 602825, ~: 597682)
[PASS] test_RT_redeem_deposit((address[4],uint256[4],uint256[4],int256),uint256) (runs: 1024, μ: 589434, ~: 594020)
[PASS] test_RT_redeem_mint((address[4],uint256[4],uint256[4],int256),uint256) (runs: 1024, μ: 590263, ~: 594152)
[PASS] test_RT_withdraw_deposit((address[4],uint256[4],uint256[4],int256),uint256) (runs: 1024, μ: 597915, ~: 598067)
[PASS] test_RT_withdraw_mint((address[4],uint256[4],uint256[4],int256),uint256) (runs: 1024, μ: 596256, ~: 597947)
[PASS] test_asset((address[4],uint256[4],uint256[4],int256)) (runs: 1024, μ: 520210, ~: 519506)
[PASS] test_convertToAssets((address[4],uint256[4],uint256[4],int256),uint256) (runs: 1024, μ: 524507, ~: 523878)
[PASS] test_convertToShares((address[4],uint256[4],uint256[4],int256),uint256) (runs: 1024, μ: 525531, ~: 523913)
[PASS] test_deposit((address[4],uint256[4],uint256[4],int256),uint256,uint256) (runs: 1024, μ: 589142, ~: 586267)
[PASS] test_maxDeposit((address[4],uint256[4],uint256[4],int256)) (runs: 1024, μ: 521715, ~: 519584)
[PASS] test_maxMint((address[4],uint256[4],uint256[4],int256)) (runs: 1024, μ: 520639, ~: 519573)
[PASS] test_maxRedeem((address[4],uint256[4],uint256[4],int256)) (runs: 1024, μ: 523091, ~: 521689)
[PASS] test_maxWithdraw((address[4],uint256[4],uint256[4],int256)) (runs: 1024, μ: 524060, ~: 522825)
[PASS] test_mint((address[4],uint256[4],uint256[4],int256),uint256,uint256) (runs: 1024, μ: 591995, ~: 588777)
[PASS] test_previewDeposit((address[4],uint256[4],uint256[4],int256),uint256) (runs: 1024, μ: 582014, ~: 579669)
[PASS] test_previewMint((address[4],uint256[4],uint256[4],int256),uint256) (runs: 1024, μ: 584697, ~: 582322)
[PASS] test_previewRedeem((address[4],uint256[4],uint256[4],int256),uint256) (runs: 1024, μ: 579473, ~: 585155)
[PASS] test_previewWithdraw((address[4],uint256[4],uint256[4],int256),uint256) (runs: 1024, μ: 588973, ~: 589052)
[PASS] test_redeem((address[4],uint256[4],uint256[4],int256),uint256,uint256) (runs: 1024, μ: 587821, ~: 592751)
[PASS] test_redeem_zero_allowance((address[4],uint256[4],uint256[4],int256),uint256) (runs: 1024, μ: 539441, ~: 538425)
[PASS] test_totalAssets((address[4],uint256[4],uint256[4],int256)) (runs: 1024, μ: 520250, ~: 519433)
[PASS] test_withdraw((address[4],uint256[4],uint256[4],int256),uint256,uint256) (runs: 1024, μ: 595805, ~: 596621)
[PASS] test_withdraw_zero_allowance((address[4],uint256[4],uint256[4],int256),uint256) (runs: 1024, μ: 543377, ~: 541936)
Suite result: ok. 26 passed; 0 failed; 0 skipped; finished in 380.48s (1381.42s CPU time)

Ran 37 test suites in 388.41s (1165.18s CPU time): 320 tests passed, 0 failed, 0 skipped (320 total tests)

@github-actions
Copy link

Forge Build Sizes

🔕 Unchanged
Contract Runtime Size (B) Initcode Size (B) Runtime Margin (B) Initcode Margin (B)
ACLManager 3,493 4,082 21,083 45,070
ATokenInstance 10,162 11,017 14,414 38,135
ATokenMock 888 916 23,688 48,236
AaveOracle 2,610 3,719 21,966 45,433
AaveProtocolDataProvider 9,638 9,910 14,938 39,242
AaveV3BatchOrchestration 44 94 24,532 49,058
AaveV3ConfigEngine 7,430 8,959 17,146 40,193
AaveV3DefaultRateStrategyProcedure 21 47 24,555 49,105
AaveV3GettersBatchOne 229 33,096 24,347 16,056
AaveV3GettersBatchTwo 137 10,818 24,439 38,334
AaveV3GettersProcedureOne 21 47 24,555 49,105
AaveV3GettersProcedureTwo 21 47 24,555 49,105
AaveV3HelpersBatchOne 353 33,509 24,223 15,643
AaveV3HelpersBatchTwo 229 30,885 24,347 18,267
AaveV3HelpersProcedureOne 21 47 24,555 49,105
AaveV3HelpersProcedureTwo 21 47 24,555 49,105
AaveV3IncentiveProcedure 21 47 24,555 49,105
AaveV3L2PoolBatch 137 43,382 24,439 5,770
AaveV3L2PoolProcedure 21 47 24,555 49,105
AaveV3MiscBatch 137 6,843 24,439 42,309
AaveV3MiscProcedure 21 47 24,555 49,105
AaveV3OracleProcedure 21 47 24,555 49,105
AaveV3ParaswapBatch 189 28,315 24,387 20,837
AaveV3ParaswapProcedure 21 47 24,555 49,105
AaveV3PeripheryBatch 292 37,382 24,284 11,770
AaveV3PoolBatch 137 42,135 24,439 7,017
AaveV3PoolConfigProcedure 21 47 24,555 49,105
AaveV3PoolProcedure 21 47 24,555 49,105
AaveV3SetupBatch 11,328 24,662 13,248 24,490
AaveV3SetupProcedure 21 47 24,555 49,105
AaveV3TestListing 7,087 14,618 17,489 34,534
AaveV3TokensBatch 137 20,250 24,439 28,902
AaveV3TokensProcedure 21 47 24,555 49,105
AaveV3TreasuryProcedure 21 47 24,555 49,105
Address (lib/aave-v3-origin/lib/solidity-utils/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol) 44 94 24,532 49,058
Address (lib/aave-v3-origin/src/contracts/dependencies/openzeppelin/contracts/Address.sol) 44 94 24,532 49,058
BaseImmutableAdminUpgradeabilityProxy 1,304 1,471 23,272 47,681
BaseUpgradeabilityProxy 108 134 24,468 49,018
BorrowEngine 2,499 2,551 22,077 46,601
BorrowLogic 12,701 12,753 11,875 36,399
BridgeLogic 6,740 6,792 17,836 42,360
CalldataLogic 44 94 24,532 49,058
CapsEngine 1,149 1,201 23,427 47,951
ChainHelpers 44 94 24,532 49,058
ChainIds 44 94 24,532 49,058
CollateralEngine 2,704 2,756 21,872 46,396
Collector 6,471 6,685 18,105 42,467
ComplexCreation 3,925 4,261 20,651 44,891
ComplexRemoval 3,056 3,312 21,520 45,840
ConfiguratorInputTypes 44 94 24,532 49,058
ConfiguratorLogic 6,050 6,102 18,526 43,050
ConfigureRewards 2,775 3,056 21,801 46,096
ConfigureRewardsUpdate 3,045 3,340 21,531 45,812
ConfigureStakeAndRewards 2,813 3,094 21,763 46,058
ConfigureStakeAndRewardsUpdate 3,087 3,382 21,489 45,770
CoverDeficitOffsetWithApprove 2,546 2,763 22,030 46,389
CoverDeficitOffsetWithoutApprove 2,544 2,761 22,032 46,391
CoverPendingDeficitWithApprove 2,550 2,767 22,026 46,385
CoverPendingDeficitWithoutApprove 2,548 2,765 22,028 46,387
CoverReserveDeficitWithApprove 2,546 2,763 22,030 46,389
CoverReserveDeficitWithoutApprove 2,544 2,761 22,032 46,391
Create2Utils (lib/aave-v3-origin/lib/solidity-utils/src/contracts/utils/ScriptUtils.sol) 121 171 24,455 48,981
Create2Utils (lib/aave-v3-origin/src/deployments/contracts/utilities/Create2Utils.sol) 121 171 24,455 48,981
CreateStakeTokens 2,620 2,837 21,956 46,315
DataAggregationHelper 10,956 11,329 13,620 37,823
DataTypes 44 94 24,532 49,058
DefaultMarketInput 21 47 24,555 49,105
DefaultReserveInterestRateStrategyV2 4,008 4,302 20,568 44,850
DeficitOffsetClinicSteward 4,037 4,797 20,539 44,355
DeficitOffsetClinicStewardScripts 44 94 24,532 49,058
DeployUmbrellaSystem 44 94 24,532 49,058
DeployUtils 916 944 23,660 48,208
DumbPayload 2,213 2,385 22,363 46,767
ECDSA 44 94 24,532 49,058
EModeConfiguration 44 94 24,532 49,058
EModeEngine 4,419 4,471 20,157 44,681
EModeLogic 3,976 4,028 20,600 45,124
ERC1967Proxy 122 973 24,454 48,179
ERC1967Utils 44 94 24,532 49,058
ERC20 (lib/aave-v3-origin/src/contracts/dependencies/openzeppelin/contracts/ERC20.sol) 2,086 2,788 22,490 46,364
EXECUTOR 480 508 24,096 48,644
EmissionManager 3,444 3,905 21,132 45,247
EmissionMath 171 221 24,405 48,931
EngineFlags (lib/aave-v3-origin/src/contracts/extensions/v3-config-engine/EngineFlags.sol) 44 94 24,532 49,058
EngineFlags (src/contracts/payloads/EngineFlags.sol) 44 94 24,532 49,058
EngineUtils 44 94 24,532 49,058
EnumerableMap 44 94 24,532 49,058
EnumerableSet 44 94 24,532 49,058
Errors (lib/aave-v3-origin/lib/solidity-utils/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Errors.sol) 44 94 24,532 49,058
Errors (lib/aave-v3-origin/src/contracts/protocol/libraries/helpers/Errors.sol) 4,659 4,711 19,917 44,441
FlashLoanLogic 9,515 9,567 15,061 39,585
GPv2SafeERC20 44 94 24,532 49,058
GelatoSlashingRobot 3,921 4,253 20,655 44,899
GenericLogic 44 94 24,532 49,058
HelpersScripts 44 94 24,532 49,058
InitializableImmutableAdminUpgradeabilityProxy 1,863 2,030 22,713 47,122
InitializableUpgradeabilityProxy 879 907 23,697 48,245
InternalStructs 44 94 24,532 49,058
IsolationModeLogic 44 94 24,532 49,058
L2Encoder 3,741 3,936 20,835 45,216
L2PoolInstance 22,738 22,985 1,838 26,167
LiquidationLogic 14,879 14,931 9,697 34,221
ListingEngine 7,105 7,157 17,471 41,995
MarketReportUtils 44 94 24,532 49,058
Math 44 94 24,532 49,058
MathUtils 44 94 24,532 49,058
MessageHashUtils 44 94 24,532 49,058
MockAaveOracle 252 279 24,324 48,873
MockAggregator 134 273 24,442 48,879
MockERC20 1,744 2,202 22,832 46,950
MockERC20Permit 3,917 5,101 20,659 44,051
MockERC20_18_Decimals 1,934 2,627 22,642 46,525
MockERC20_6_Decimals 1,934 2,627 22,642 46,525
MockOracle 124 204 24,452 48,948
MockPool 1,473 1,598 23,103 47,554
MockPoolAddressesProvider 116 239 24,460 48,913
MockRewardsController 799 827 23,777 48,325
Ownable (lib/aave-v3-origin/src/contracts/dependencies/openzeppelin/contracts/Ownable.sol) 629 721 23,947 48,431
Panic 44 94 24,532 49,058
ParaSwapLiquiditySwapAdapter 8,151 9,238 16,425 39,914
ParaSwapRepayAdapter 8,726 9,902 15,850 39,250
ParaSwapWithdrawSwapAdapter 6,673 7,690 17,903 41,462
PercentageMath 44 94 24,532 49,058
PoolAddressesProvider 6,965 8,251 17,611 40,901
PoolAddressesProviderRegistry 2,147 2,608 22,429 46,544
PoolConfiguratorInstance 19,740 19,771 4,836 29,381
PoolInstance 21,491 21,738 3,085 27,414
PoolLogic 6,946 6,998 17,630 42,154
PoolStorage 21 47 24,555 49,105
PriceFeedEngine 1,544 1,596 23,032 47,556
PriceOracleSentinel 1,670 1,886 22,906 47,266
ProxyAdmin 998 1,234 23,578 47,918
RateEngine 2,331 2,383 22,245 46,769
ReceiveEther (tests/helpers/Rescuable.t.sol) 78 104 24,498 49,048
ReceiveEther (tests/payloads/Rescuable.t.sol) 78 104 24,498 49,048
ReceiveEther (tests/rewards/RescuableACL.t.sol) 78 104 24,498 49,048
ReceiveEther (tests/stakeToken/Rescuable.t.sol) 78 104 24,498 49,048
ReceiveEther (tests/umbrella/RescuableACL.t.sol) 78 104 24,498 49,048
RemoveSlashingConfig 2,584 2,865 21,992 46,287
ReserveConfiguration 128 178 24,448 48,974
ReserveLogic 44 94 24,532 49,058
RevenueSplitter 1,953 2,270 22,623 46,882
RewardsController (lib/aave-v3-origin/src/contracts/rewards/RewardsController.sol) 14,070 14,255 10,506 34,897
RewardsController (src/contracts/rewards/RewardsController.sol) 21,993 22,207 2,583 26,945
RewardsControllerScripts 44 94 24,532 49,058
RewardsDataTypes 44 94 24,532 49,058
SafeCast (lib/aave-v3-origin/lib/solidity-utils/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol) 44 94 24,532 49,058
SafeCast (lib/aave-v3-origin/src/contracts/dependencies/openzeppelin/contracts/SafeCast.sol) 44 94 24,532 49,058
SafeERC20 (lib/aave-v3-origin/lib/solidity-utils/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol) 44 94 24,532 49,058
SafeERC20 (lib/aave-v3-origin/src/contracts/dependencies/openzeppelin/contracts/SafeERC20.sol) 44 94 24,532 49,058
SafeMath 44 94 24,532 49,058
SetDeficitOffset 2,518 2,735 22,058 46,417
ShortStrings 44 94 24,532 49,058
SignedMath 44 94 24,532 49,058
SlashingRobot 3,765 4,092 20,811 45,060
StakeToken 14,581 14,961 9,995 34,191
StataTokenFactory 2,989 3,445 21,587 45,707
StataTokenV2 18,933 19,611 5,643 29,541
StorageSlot 44 94 24,532 49,058
Strings (lib/aave-v3-origin/lib/solidity-utils/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Strings.sol) 44 94 24,532 49,058
Strings (lib/aave-v3-origin/src/contracts/dependencies/openzeppelin/contracts/Strings.sol) 44 94 24,532 49,058
SupplyLogic 11,903 11,955 12,673 37,197
TestNetChainIds 44 94 24,532 49,058
TestnetERC20 3,982 5,340 20,594 43,812
TransparentProxyFactory 6,667 6,695 17,909 42,457
TransparentUpgradeableProxy 1,096 3,528 23,480 45,624
UiIncentiveDataProviderV3 9,118 9,146 15,458 40,006
UiPoolDataProviderV3 10,351 10,549 14,225 38,603
Umbrella 16,382 16,596 8,194 32,556
UmbrellaBatchHelper 8,340 8,704 16,236 40,448
UmbrellaConfigEngine 12,974 13,409 11,602 35,743
UmbrellaConfigEngineScripts 44 94 24,532 49,058
UmbrellaScripts 44 94 24,532 49,058
UmbrellaStakeToken 14,791 15,181 9,785 33,971
UmbrellaStakeTokenScripts 44 94 24,532 49,058
UpdateCooldownsAndUnstake 2,598 2,815 21,978 46,337
UpdateSlashingConfig 2,702 3,023 21,874 46,129
UserConfiguration 44 94 24,532 49,058
ValidationLogic 189 239 24,387 48,913
VariableDebtTokenInstance 7,277 8,116 17,299 41,036
WETH9 1,886 2,352 22,690 46,800
WadRayMath 44 94 24,532 49,058
WalletBalanceProvider 2,571 2,599 22,005 46,553
WrappedTokenGatewayV3 5,387 6,252 19,189 42,900

@github-actions
Copy link

🔮 Coverage report
File Line Coverage Function Coverage Branch Coverage
src/contracts/helpers/DataAggregationHelper.sol ${\color{red}0\%}$
$0 / 123$
94, 95, 97, 100, 114 and 118 more
${\color{red}0\%}$
$0 / 17$
DataAggregationHelper.constructor, DataAggregationHelper.getAllAggregatedData, DataAggregationHelper.getTokensAggregatedData, DataAggregationHelper.getTokensRouteData, DataAggregationHelper.getUserAggregatedData and 12 more
${\color{red}0\%}$
$0 / 17$
src/contracts/helpers/UmbrellaBatchHelper.sol ${\color{lightgreen}97.03\%}$
$98 / 101$
125, 129, 223
${\color{orange}93.75\%}$
$15 / 16$
UmbrellaBatchHelper.maxRescue
${\color{orange}86.11\%}$
$31 / 36$
src/contracts/payloads/UmbrellaBasePayload.sol ${\color{orange}82.14\%}$
$46 / 56$
73, 75, 77, 84, 91 and 5 more
${\color{red}41.18\%}$
$7 / 17$
UmbrellaBasePayload.createStkTokens, UmbrellaBasePayload.updateUnstakeConfig, UmbrellaBasePayload.removeSlashingConfigs, UmbrellaBasePayload.updateSlashingConfigs, UmbrellaBasePayload.setDeficitOffset and 5 more
${\color{green}100\%}$
$11 / 11$
src/contracts/payloads/UmbrellaExtendedPayload.sol ${\color{red}77.78\%}$
$7 / 9$
39, 48
${\color{red}33.33\%}$
$1 / 3$
UmbrellaExtendedPayload.complexTokenRemovals, UmbrellaExtendedPayload.complexTokenCreations
${\color{green}100\%}$
$2 / 2$
src/contracts/payloads/configEngine/UmbrellaConfigEngine.sol ${\color{orange}94.29\%}$
$66 / 70$
73, 77, 204, 208
${\color{red}77.78\%}$
$14 / 18$
UmbrellaConfigEngine.executeChangeCooldowns, UmbrellaConfigEngine.executeChangeUnstakeWindows, UmbrellaConfigEngine.whoCanRescue, UmbrellaConfigEngine.maxRescue
${\color{green}100\%}$
$5 / 5$
src/contracts/rewards/RewardsController.sol ${\color{lightgreen}99.6\%}$
$249 / 250$
437
${\color{lightgreen}97.5\%}$
$39 / 40$
RewardsController.maxRescue
${\color{orange}94.74\%}$
$36 / 38$
src/contracts/rewards/RewardsDistributor.sol ${\color{lightgreen}98.48\%}$
$65 / 66$
67
${\color{orange}94.74\%}$
$18 / 19$
RewardsDistributor.__RewardsDistributor_init_unchained
${\color{red}75\%}$
$9 / 12$
src/contracts/rewards/libraries/EmissionMath.sol ${\color{green}100\%}$
$40 / 40$
${\color{green}100\%}$
$12 / 12$
${\color{green}100\%}$
$9 / 9$
src/contracts/stakeToken/StakeToken.sol ${\color{orange}93.75\%}$
$60 / 64$
99, 116, 204, 210
${\color{orange}95\%}$
$19 / 20$
StakeToken.maxRescue
${\color{red}80\%}$
$8 / 10$
src/contracts/stakeToken/UmbrellaStakeToken.sol ${\color{green}100\%}$
$11 / 11$
${\color{green}100\%}$
$3 / 3$
${\color{green}100\%}$
$0 / 0$
src/contracts/stakeToken/extension/ERC4626StakeTokenUpgradeable.sol ${\color{lightgreen}95.5\%}$
$106 / 111$
67, 129, 130, 181, 295
${\color{orange}92.31\%}$
$24 / 26$
ERC4626StakeTokenUpgradeable.cooldownNonces, ERC4626StakeTokenUpgradeable.isCooldownOperator
${\color{orange}87.5\%}$
$14 / 16$
src/contracts/stewards/DeficitOffsetClinicSteward.sol ${\color{lightgreen}97.3\%}$
$36 / 37$
112
${\color{orange}88.89\%}$
$8 / 9$
DeficitOffsetClinicSteward.maxRescue
${\color{green}100\%}$
$8 / 8$
src/contracts/umbrella/Umbrella.sol ${\color{lightgreen}98.7\%}$
$76 / 77$
143
${\color{green}100\%}$
$11 / 11$
${\color{green}100\%}$
$19 / 19$
src/contracts/umbrella/UmbrellaConfiguration.sol ${\color{green}100\%}$
$92 / 92$
${\color{green}100\%}$
$20 / 20$
${\color{green}100\%}$
$25 / 25$
src/contracts/umbrella/UmbrellaStkManager.sol ${\color{green}100\%}$
$77 / 77$
${\color{green}100\%}$
$21 / 21$
${\color{orange}94.74\%}$
$18 / 19$

@sakulstra sakulstra merged commit d34359f into aave-dao:main Jul 30, 2025
2 checks passed
@sakulstra sakulstra deleted the feat/add-release-workflow branch July 30, 2025 09:32
@github-actions
Copy link

Certora Run Started (Certora Prover Run)

  • Group ID: 7e6cd18b-f1d0-444e-93ad-c3fe1ef9391a
Config Status Link Log File
rewards/double_reward.conf Submitted link certora/conf/rewards/double_reward.conf-0a8139027fa8.log
rewards/invariants.conf --rule accrued_is_0_for_non_existing_reward Submitted link certora/conf/rewards/invariants.conf-f1219fe61f73.log
rewards/invariants.conf --rule all_rewars_are_different Submitted link certora/conf/rewards/invariants.conf-9ae575ea3fec.log
rewards/invariants.conf --rule distributionEnd_NEQ_0 Submitted link certora/conf/rewards/invariants.conf-8cd54e546c8c.log
rewards/invariants.conf --rule distributionEnd_is_0_for_non_existing_reward Submitted link certora/conf/rewards/invariants.conf-076920172412.log
rewards/invariants.conf --rule lastUpdateTimestamp_LEQ_current_time Submitted link certora/conf/rewards/invariants.conf-44bc5ed41da2.log
rewards/invariants.conf --rule rewardIndex_is_0_for_non_existing_reward Submitted link certora/conf/rewards/invariants.conf-df806a3cf2a8.log
rewards/invariants.conf --rule same_distributionEnd_values Submitted link certora/conf/rewards/invariants.conf-c1b47bba216e.log
rewards/invariants.conf --rule targetLiquidity_NEQ_0 Submitted link certora/conf/rewards/invariants.conf-002d06be77a3.log
rewards/invariants.conf --rule userIndex_LEQ_rewardIndex Submitted link certora/conf/rewards/invariants.conf-da29f7e9f31d.log
rewards/invariants.conf --rule userIndex_is_0_for_non_existing_reward Submitted link certora/conf/rewards/invariants.conf-6ae0c4387937.log
rewards/mirrors.conf Submitted link certora/conf/rewards/mirrors.conf-97ce21d4849c.log
rewards/single_reward-depth0.conf --rule bob_cant_DOS_alice_to_claim Submitted link certora/conf/rewards/single_reward-depth0.conf-09cc24a11a0e.log
rewards/single_reward-depth0.conf --rule bob_cant_DOS_alice_to_claim__claimAllRewards Submitted link certora/conf/rewards/single_reward-depth0.conf-d83ab8fffc4b.log
rewards/single_reward-depth0.conf --rule bob_cant_DOS_alice_to_claim__claimSelectedRewards Submitted link certora/conf/rewards/single_reward-depth0.conf-e2722de3e048.log
rewards/single_reward-special_config.conf --rule bob_cant_affect_the_claimed_amount_of_alice Submitted link certora/conf/rewards/single_reward-special_config.conf-b5173ddf9ea9.log
rewards/single_reward.conf --exclude_rule bob_cant_DOS_alice_to_claim bob_cant_DOS_alice_to_claim__claimSelectedRewards bob_cant_DOS_alice_to_claim__claimAllRewards bob_cant_affect_the_claimed_amount_of_alice Submitted link certora/conf/rewards/single_reward.conf-807ef678adad.log
stakeToken/invariants.conf Submitted link certora/conf/stakeToken/invariants.conf-6d177033e8f1.log
stakeToken/rules.conf Submitted link certora/conf/stakeToken/rules.conf-abe9232708f7.log
umbrella/Umbrella.conf --exclude_rule slashing_cant_DOS_other_functions slashing_cant_DOS__coverDeficitOffset Failed (1) - certora/conf/umbrella/Umbrella.conf-19b863a17465.log
umbrella/Umbrella.conf --rule slashing_cant_DOS__coverDeficitOffset Failed (1) - certora/conf/umbrella/Umbrella.conf-fa6b493806d0.log
umbrella/Umbrella.conf --rule slashing_cant_DOS_other_functions Submitted link certora/conf/umbrella/Umbrella.conf-5f7ab9a442cb.log
umbrella/invariants.conf Submitted link certora/conf/umbrella/invariants.conf-c50a56938b2c.log

Certora Run Summary

  • Started 21 jobs
  • 2 jobs failed

Download Logs

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.

3 participants