Certora v0.5.9 - #1263
Closed
DhairyaSethi wants to merge 6 commits into
Closed
Conversation
This comment was marked as outdated.
This comment was marked as outdated.
There was a problem hiding this comment.
Verified Rules
- Group ID: 60c9f20a-a3b6-4d91-8983-ce741aa1e9fb
- Commit: 23e7115
| Job | Result | ERROR | TIMEOUT | VERIFIED | Link |
|---|---|---|---|---|---|
| HubValidState_totalAssets.conf | ❌ | 2 | 0 | 0 | Link |
| Hub.conf --exclude_rule noChangeToOtherSpoke supplyExchangeRateIsMonotonic supplyExchangeRateIsMonotonic_eliminateDeficit_simplified | ❌ | 0 | 1 | 3 | Link |
| SpokeWithHub.conf --rule userSuppliedShareConsistency | ✅ | 0 | 0 | 2 | Link |
| SpokeWithHub.conf --rule userPremiumShareConsistency | ✅ | 0 | 0 | 2 | Link |
| SpokeWithHub.conf --rule userPremiumOffsetConsistency | ✅ | 0 | 0 | 2 | Link |
| SpokeWithHub.conf --rule userDrawnShareConsistency | ✅ | 0 | 0 | 2 | Link |
| SpokeWithHub.conf --exclude_rule userDrawnShareConsistency userPremiumShareConsistency userPremiumOffsetConsistency userSuppliedShareConsistency | ✅ | 0 | 0 | 3 | Link |
| SpokeUserIntegrity.conf | ✅ | 0 | 0 | 1 | Link |
| SpokeIntegrity.conf | ✅ | 0 | 0 | 10 | Link |
| SpokeHealthFactor.conf --exclude_rule userHealthAboveThreshold userHealthBelowThresholdCanOnlyIncreaseHealthFactor | ✅ | 0 | 0 | 1 | Link |
| SpokeHealthCheck.conf | ✅ | 0 | 0 | 2 | Link |
| Spoke.conf --rule increaseCollateralOrReduceDebtFunctions | ✅ | 0 | 0 | 2 | Link |
| Spoke.conf --rule drawnSharesZero | ✅ | 0 | 0 | 2 | Link |
| Spoke.conf --exclude_rule drawnSharesZero noCollateralNoDebt increaseCollateralOrReduceDebtFunctions | ✅ | 0 | 0 | 15 | Link |
| LiquidationUserIntegrity.conf | ✅ | 0 | 0 | 1 | Link |
| LiquidationIntegrity.conf | ✅ | 0 | 0 | 2 | Link |
| Liquidation.conf | ✅ | 0 | 0 | 7 | Link |
| libs/VerifySymbolicPositionStatus.conf | ✅ | 0 | 0 | 8 | Link |
| libs/SpokeUtils_toValue.conf | ✅ | 0 | 0 | 2 | Link |
| libs/SharesMath.conf | ✅ | 0 | 0 | 10 | Link |
| libs/Premium.conf | ✅ | 0 | 0 | 2 | Link |
| libs/PositionStatus.conf | ✅ | 0 | 0 | 9 | Link |
| libs/Math.conf | ✅ | 0 | 0 | 19 | Link |
| libs/LiquidationLogic_debtToLiquidate.conf | ✅ | 0 | 0 | 4 | Link |
| libs/LiquidationLogic.conf --exclude_rule collateralToLiquidateValueLessThanDebtToLiquidate collateralToLiquidateValueLessThanDebtToLiquidate_general | ✅ | 0 | 0 | 5 | Link |
| libs/LiquidationLogic_Bonus.conf | ✅ | 0 | 0 | 8 | Link |
| libs/LibBit.conf | ✅ | 0 | 0 | 6 | Link |
| HubValidState.conf --exclude_rule totalAssetsVsShares_eliminateDeficit totalAssetsVsShares | ✅ | 0 | 0 | 12 | Link |
| HubIntegrity.conf | ✅ | 0 | 0 | 17 | Link |
| Hub.conf --rule noChangeToOtherSpoke | ✅ | 0 | 0 | 1 | Link |
| HubAccrueUnrealizedFee.conf | ✅ | 0 | 0 | 3 | Link |
| HubAccrueSupplyRate.conf --exclude_rule previewRemoveByShares_withoutAccrue_time_monotonic previewRemoveByAssets_withoutAccrue_time_monotonic | ✅ | 0 | 0 | 10 | Link |
| HubAccrueIntegrity.conf | ✅ | 0 | 0 | 9 | Link |
🌈 Test ResultsNo files changed, compilation skipped
Ran 2 tests for tests/unit/position-manager/SignatureGateway/SignatureGateway.Reverts.InsufficientAllowance.t.sol:SignatureGateway_InsufficientAllowance_Test
[PASS] test_repayWithSig_revertsWith_ERC20InsufficientAllowance() (gas: 463345)
[PASS] test_supplyWithSig_revertsWith_ERC20InsufficientAllowance() (gas: 87268)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 40.58ms (4.62ms CPU time)
Ran 5 tests for tests/gas/Spoke.Getters.gas.t.sol:SpokeGetters_Gas_Tests
[PASS] test_getUserAccountData() (gas: 23594)
[PASS] test_getUserAccountData_oneSupplies() (gas: 295149)
[PASS] test_getUserAccountData_twoSupplies() (gas: 537038)
[PASS] test_getUserAccountData_twoSupplies_oneBorrows() (gas: 1078922)
[PASS] test_getUserAccountData_twoSupplies_twoBorrows() (gas: 1661219)
Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 56.57ms (5.02ms CPU time)
Ran 19 tests for tests/unit/AaveOracle.t.sol:AaveOracleTest
[PASS] test_constructor() (gas: 15306)
[PASS] test_decimals() (gas: 8313)
[PASS] test_fuzz_constructor(uint8) (runs: 5000, μ: 16713, ~: 17038)
Logs:
Bound result 1
[PASS] test_getReservePrice() (gas: 46772)
[PASS] test_getReservePrice_revertsWith_InvalidPrice() (gas: 44558)
[PASS] test_getReservePrice_revertsWith_InvalidSource() (gas: 10876)
[PASS] test_getReservePrices() (gas: 76731)
[PASS] test_getReservePrices_revertsWith_InvalidSource() (gas: 48897)
[PASS] test_getReserveSource() (gas: 47161)
[PASS] test_setReserveSource() (gas: 44226)
[PASS] test_setReserveSource_revertsWith_InvalidPrice() (gas: 97405)
[PASS] test_setReserveSource_revertsWith_InvalidSource() (gas: 17138)
[PASS] test_setReserveSource_revertsWith_InvalidSourceDecimals() (gas: 16953)
[PASS] test_setReserveSource_revertsWith_OnlySpoke() (gas: 12996)
[PASS] test_setReserveSource_revertsWith_OracleMismatch() (gas: 5029298)
[PASS] test_setSpoke() (gas: 5057662)
[PASS] test_setSpoke_revertsWith_InvalidAddress() (gas: 10914)
[PASS] test_setSpoke_revertsWith_OnlyDeployer(address) (runs: 5000, μ: 13485, ~: 13485)
[PASS] test_setSpoke_revertsWith_SpokeAlreadySet() (gas: 15102)
Suite result: ok. 19 passed; 0 failed; 0 skipped; finished in 1.05s (1.02s CPU time)
Ran 6 tests for tests/unit/Spoke/Spoke.Getters.t.sol:SpokeGettersTest
[PASS] test_getLiquidationBonus_configured() (gas: 100838)
Logs:
Bound result 2
Bound result 1000000000000000000
Bound result 4000
Bound result 900000000000000000
[PASS] test_getLiquidationBonus_fuzz_configured(uint256,uint256,uint16,uint64) (runs: 5000, μ: 99656, ~: 100012)
Logs:
Bound result 1
Bound result 19919
Bound result 300
Bound result 715913659187738250
[PASS] test_getLiquidationBonus_fuzz_notConfigured(uint256,uint256) (runs: 5000, μ: 77603, ~: 77823)
Logs:
Bound result 4
Bound result 100
[PASS] test_getLiquidationBonus_notConfigured() (gas: 78811)
Logs:
Bound result 2
Bound result 1000000000000000000
[PASS] test_premiumRayGetters() (gas: 1563435)
[PASS] test_protocol_getters() (gas: 303359)
Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 2.58s (2.55s CPU time)
Ran 4 tests for tests/unit/Spoke/Liquidations/Spoke.LiquidationCall.Dust.t.sol:SpokeLiquidationCallDustTest
[PASS] test_collateralDust_min_debtToTarget() (gas: 17780056)
[PASS] test_debtToCover_exceeds_collateralValue() (gas: 17768461)
[PASS] test_dustColl_allowed() (gas: 17627459)
[PASS] test_dustDebt_allowed() (gas: 17758850)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 57.03ms (23.92ms CPU time)
Ran 14 tests for tests/unit/Spoke/Liquidations/Spoke.LiquidationCall.Scenarios.t.sol:SpokeLiquidationCallScenariosTest
[PASS] test_liquidationCall_revertsWith_ReentrancyGuardReentrantCall_hubRefreshPremium() (gas: 25973290)
[PASS] test_liquidationCall_revertsWith_ReentrancyGuardReentrantCall_hubRemove() (gas: 25842900)
[PASS] test_liquidationCall_revertsWith_ReentrancyGuardReentrantCall_hubReportDeficit() (gas: 25955753)
[PASS] test_liquidationCall_revertsWith_ReentrancyGuardReentrantCall_hubRestore() (gas: 25919189)
[PASS] test_liquidationCall_scenario1() (gas: 3940945)
[PASS] test_liquidationCall_scenario2() (gas: 3949271)
[PASS] test_liquidationCall_scenario3() (gas: 3335802)
[PASS] test_liquidationCall_scenario4() (gas: 27566397)
[PASS] test_liquidationCall_scenario5() (gas: 3475793)
[PASS] test_liquidationCall_scenario6() (gas: 2258456)
[PASS] test_liquidationCall_scenario7() (gas: 3010562)
[PASS] test_liquidationCall_scenario8() (gas: 2240567)
[PASS] test_scenario_halted_asset() (gas: 26605106)
[PASS] test_scenario_halted_asset_with_deficit() (gas: 26448048)
Suite result: ok. 14 passed; 0 failed; 0 skipped; finished in 178.54ms (144.64ms CPU time)
Ran 4 tests for tests/unit/libraries/LiquidationLogic/LiquidationLogic.LiquidateDebt.t.sol:LiquidationLogicLiquidateDebtTest
[PASS] test_liquidateDebt_fuzz(uint256) (runs: 5000, μ: 236435, ~: 226637)
[PASS] test_liquidateDebt_revertsWith_ArithmeticUnderflow() (gas: 111883)
[PASS] test_liquidateDebt_revertsWith_InsufficientAllowance() (gas: 121317)
[PASS] test_liquidateDebt_revertsWith_InsufficientBalance() (gas: 181775)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 2.94s (2.90s CPU time)
Ran 4 tests for tests/unit/libraries/LiquidationLogic/LiquidationLogic.LiquidateUser.t.sol:LiquidationLogicLiquidateUserTest
[PASS] test_liquidateUser() (gas: 384009)
[PASS] test_liquidateUser_revertsWith_InvalidDebtToCover() (gas: 78723)
[PASS] test_liquidateUser_revertsWith_MustNotLeaveDust_Collateral() (gas: 149775)
[PASS] test_liquidateUser_revertsWith_MustNotLeaveDust_Debt() (gas: 153950)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 35.11ms (1.81ms CPU time)
Ran 50 tests for tests/unit/AccessManagerEnumerable.t.sol:AccessManagerEnumerableTest
[PASS] test_getLabelOfRole_revertsForAdminRole() (gas: 15937)
[PASS] test_getLabelOfRole_revertsForPublicRole() (gas: 15996)
[PASS] test_getLabelOfRole_revertsForUnlabeledRole() (gas: 15965)
[PASS] test_getLabelRole_revertsWithUnregisteredLabel() (gas: 11859)
[PASS] test_getRoleMembers_fuzz(uint256,uint256) (runs: 5000, μ: 2096801, ~: 2095721)
Logs:
Bound result 9
Bound result 10
[PASS] test_getRoleOfTargetSelector() (gas: 505164)
[PASS] test_getRoleOfTargetSelector_afterReassignment() (gas: 364143)
[PASS] test_getRoleTargetSelectors_fuzz(uint256,uint256) (runs: 5000, μ: 1743611, ~: 1742778)
Logs:
Bound result 9
Bound result 10
[PASS] test_grantRole() (gas: 435571)
[PASS] test_grantRole_fuzz(uint64,uint256) (runs: 5000, μ: 1030716, ~: 1034661)
Logs:
Bound result 9
[PASS] test_isAdminRole() (gas: 245794)
[PASS] test_isAdminRole_excludesAdminRole() (gas: 89137)
[PASS] test_isAdminRole_multipleRoles() (gas: 441098)
[PASS] test_isLabelAssigned() (gas: 206189)
[PASS] test_isLabelAssigned_afterRelabel() (gas: 257137)
[PASS] test_isLabelAssigned_afterRemoval() (gas: 164483)
[PASS] test_isRole() (gas: 245831)
[PASS] test_isRoleLabeled() (gas: 204928)
[PASS] test_isRoleLabeled_afterRelabel() (gas: 256147)
[PASS] test_isRoleLabeled_afterRemoval() (gas: 163819)
[PASS] test_isRole_afterLabel() (gas: 201007)
[PASS] test_isRole_excludesAdminAndPublicRole() (gas: 218195)
[PASS] test_labelRole_onlyAuthorized_revertsWithUnauthorizedAccount() (gas: 13327)
[PASS] test_labelRole_relabel() (gas: 268258)
[PASS] test_labelRole_relabelTrackedRole_noDuplicate() (gas: 264781)
[PASS] test_labelRole_removeLabel() (gas: 175413)
[PASS] test_labelRole_removeLabelOnUnlabeledRole_revertsWithUnlabeledRole() (gas: 20083)
[PASS] test_labelRole_revertsWithAlreadyLabeledRole() (gas: 204993)
[PASS] test_labelRole_revertsWithAlreadyLabeledRole_evenIfLabelAlsoUsed() (gas: 347242)
[PASS] test_labelRole_revertsWithDuplicateLabel() (gas: 208101)
[PASS] test_labelRole_trackLabels() (gas: 368802)
[PASS] test_labelRole_tracksAlreadyTrackedRole_noDuplicate() (gas: 214156)
[PASS] test_labelRole_tracksUntrackedRole() (gas: 206424)
[PASS] test_renounceRole() (gas: 435727)
[PASS] test_renounceRole_shouldNotTrack() (gas: 24687)
[PASS] test_revokeRole() (gas: 437941)
[PASS] test_revokeRole_shouldNotTrack() (gas: 33311)
[PASS] test_setRoleAdmin_fuzz_trackAdminRoles_multipleRoles_multipleAdmins(uint256) (runs: 5000, μ: 2141258, ~: 2197017)
Logs:
Bound result 12
[PASS] test_setRoleAdmin_fuzz_trackRolesAndTrackAdminRoles_multipleRoles(uint256) (runs: 5000, μ: 1957919, ~: 1899644)
Logs:
Bound result 12
[PASS] test_setRoleAdmin_trackAdminOfRoles() (gas: 606296)
[PASS] test_setRoleAdmin_trackAdminOfRoles_changeAdminRole() (gas: 577396)
[PASS] test_setRoleAdmin_trackAdminRoles() (gas: 609417)
[PASS] test_setRoleAdmin_trackRolesAndTrackAdminRoles() (gas: 386651)
[PASS] test_setRoleGuardian_trackRoles() (gas: 266703)
[PASS] test_setTargetFunctionRole() (gas: 611297)
[PASS] test_setTargetFunctionRole_multipleTargets() (gas: 1198461)
[PASS] test_setTargetFunctionRole_removeTarget() (gas: 1029312)
[PASS] test_setTargetFunctionRole_skipAddPublicRole() (gas: 211675)
[PASS] test_setTargetFunctionRole_skipAddToAdminRole() (gas: 39629)
[PASS] test_setTargetFunctionRole_withReplace() (gas: 884760)
Suite result: ok. 50 passed; 0 failed; 0 skipped; finished in 24.54s (24.54s CPU time)
Ran 22 tests for tests/unit/AssetInterestRateStrategy.t.sol:AssetInterestRateStrategyTest
[PASS] test_calculateInterestRate_AtMaxUtilization() (gas: 24621)
Logs:
Bound result 10000
Bound result 778565440757296803935461404101
[PASS] test_calculateInterestRate_AtOptimalPoint() (gas: 24281)
Logs:
Bound result 2000
Bound result 778565440757296803935461404101
[PASS] test_calculateInterestRate_LeftToOptimalPoint(uint256) (runs: 5000, μ: 24193, ~: 24330)
Logs:
Bound result 137
Bound result 252173843969976304268974536488
[PASS] test_calculateInterestRate_RightToOptimalPoint(uint256) (runs: 5000, μ: 25298, ~: 25349)
Logs:
Bound result 8137
Bound result 252173843969976304268974536488
[PASS] test_calculateInterestRate_ZeroDebtZeroLiquidity() (gas: 18793)
Logs:
Bound result 0
[PASS] test_calculateInterestRate_fuzz_ZeroDebt(uint256) (runs: 5000, μ: 19074, ~: 18822)
Logs:
Bound result 3124043968137
[PASS] test_calculateInterestRate_revertsWith_InterestRateDataNotSet() (gas: 11207)
[PASS] test_deploy_revertsWith_InvalidAddress() (gas: 3728)
[PASS] test_getBaseDrawnRate() (gas: 14746)
[PASS] test_getInterestRateData() (gas: 19268)
[PASS] test_getMaxDrawnRate() (gas: 15234)
[PASS] test_getOptimalUsageRatio() (gas: 14727)
[PASS] test_getRateGrowthAfterOptimal() (gas: 14791)
[PASS] test_getRateGrowthBeforeOptimal() (gas: 14791)
[PASS] test_maxDrawnRate() (gas: 8314)
[PASS] test_maxOptimalRatio() (gas: 8357)
[PASS] test_minOptimalRatio() (gas: 8299)
[PASS] test_setInterestRateData() (gas: 68942)
[PASS] test_setInterestRateData_revertsWith_InvalidMaxDrawnRate() (gas: 41762)
[PASS] test_setInterestRateData_revertsWith_InvalidOptimalUsageRatio() (gas: 42403)
[PASS] test_setInterestRateData_revertsWith_InvalidRateData() (gas: 35291)
[PASS] test_setInterestRateData_revertsWith_OnlyHub() (gas: 23510)
Suite result: ok. 22 passed; 0 failed; 0 skipped; finished in 1.19s (1.18s CPU time)
Ran 6 tests for tests/unit/position-manager/libraries/ConfigPermissions.t.sol:ConfigPermissionsTests
[PASS] test_constants() (gas: 12031)
[PASS] test_getConfigPermissionValues(uint8) (runs: 5000, μ: 13703, ~: 13703)
[PASS] test_setCanSetUsingAsCollateral_fuzz(uint8,bool) (runs: 5000, μ: 10578, ~: 10566)
[PASS] test_setCanUpdateUserDynamicConfig_fuzz(uint8,bool) (runs: 5000, μ: 10602, ~: 10590)
[PASS] test_setCanUpdateUserRiskPremium_fuzz(uint8,bool) (runs: 5000, μ: 10634, ~: 10622)
[PASS] test_setGlobalPermissions_fuzz(bool) (runs: 5000, μ: 13145, ~: 13155)
Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 1.05s (1.05s CPU time)
Ran 8 tests for tests/unit/libraries/LiquidationLogic/LiquidationLogic.LiquidationAmounts.t.sol:LiquidationLogicLiquidationAmountsTest
[PASS] test_calculateLiquidationAmounts_EnoughCollateral() (gas: 175239)
[PASS] test_calculateLiquidationAmounts_InsufficientCollateral() (gas: 175945)
[PASS] test_calculateLiquidationAmounts_fuzz_EnoughCollateral_CollateralDust((address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)) (runs: 5000, μ: 297833, ~: 286434)
Logs:
Bound result 3
Bound result 2767
Bound result 443124196721905572
Bound result 14843
Bound result 8
Bound result 18
Bound result 13290
Bound result 5661
Bound result 1999999999999999997
Bound result 443124196721905572
Bound result 9304570613870847
Bound result 9
Bound result 999999999999999999999999999997
Bound result 1000000000000000000000000000
Bound result 28591
Bound result 54527
Bound result 6504484831365108
Bound result 7
Bound result 1109
Bound result 18850239771387979476210927906
Bound result 0
Bound result 6504484831365108
Bound result 26
Bound result 115792089237316195423570985008687907853269984665640564039457584007913129639935
[PASS] test_calculateLiquidationAmounts_fuzz_EnoughCollateral_NoCollateralDust((address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)) (runs: 5000, μ: 250545, ~: 238381)
Logs:
Bound result 3
Bound result 2767
Bound result 443124196721905572
Bound result 14843
Bound result 8
Bound result 18
Bound result 13290
Bound result 5661
Bound result 1999999999999999997
Bound result 443124196721905572
Bound result 9304570613870847
Bound result 9
Bound result 999999999999999999999999999997
Bound result 1000000000000000000000000000
Bound result 28591
Bound result 54527
Bound result 6504484831365108
Bound result 7
Bound result 1109
Bound result 18850239771387979476210927906
Bound result 0
Bound result 18850239771387979476210927906
Bound result 999999999999999999999999999997
[PASS] test_calculateLiquidationAmounts_fuzz_EnoughCollateral_NoDebtLeft((address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)) (runs: 5000, μ: 269203, ~: 257048)
Logs:
Bound result 449773931704024038
Bound result 2028
Bound result 970149253731343283
Bound result 13212
Bound result 18
Bound result 690117525930955846287473086629380880116853955985747504966589821774
Bound result 10789
Bound result 6911
Bound result 1000000000000000045
Bound result 970149253731343283
Bound result 2508165906222592
Bound result 14
Bound result 3470
Bound result 99000000000000000003084225061
Bound result 636885750
Bound result 343
Bound result 604800
Bound result 6
Bound result 2399
Bound result 127
Bound result 2
Bound result 690117525930955846287473086629380880116853955985747504966589821774
Bound result 10789
Bound result 6911
Bound result 1000000000000000045
Bound result 970149253731343283
Bound result 2508165906222592
Bound result 14
Bound result 3470
Bound result 99000000000000000003084225061
Bound result 636885750
Bound result 343
Bound result 2508165906222592
Bound result 3229547
Bound result 1000000000000000000000000000128
Bound result 115792089237316195423570985008687907853269984665640564039457584007912783058021
[PASS] test_calculateLiquidationAmounts_fuzz_InsufficientCollateral((address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)) (runs: 5000, μ: 255443, ~: 243528)
Logs:
Bound result 299522334936
Bound result 1
Bound result 589223561358703260
Bound result 14443
Bound result 15
Bound result 171797809707559895051017667503932891821577443003696256
Bound result 11825
Bound result 8079
Bound result 1999999999999999999
Bound result 589223561358703260
Bound result 9473283084724366
Bound result 12
Bound result 514869905065601802273404597916
Bound result 98162813433527337154680798412
Bound result 102985383
Bound result 44074024
Bound result 8252128500031471
Bound result 6
Bound result 7441
Bound result 515782700797349594929371737209
Bound result 1
Bound result 9
Bound result 514869905065601802273404597916
[PASS] test_calculateLiquidationAmounts_fuzz_revertsWith_MustNotLeaveDust_Collateral((address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)) (runs: 5000, μ: 280274, ~: 268396)
Logs:
Bound result 3886412
Bound result 2
Bound result 147
Bound result 12468
Bound result 6
Bound result 28951245481117846533722652
Bound result 12468
Bound result 3739
Bound result 1000109044247905327
Bound result 147
Bound result 1766670143596910
Bound result 14
Bound result 885000589634409638603543244567
Bound result 45625495039344622427514351693
Bound result 1
Bound result 45089934476
Bound result 9035404749081580
Bound result 15
Bound result 274
Bound result 471071379138868438154450132077
Bound result 5
Bound result 9035404749081580
Bound result 3252684925
Bound result 115792089237316195423570985008687907853269984665640564039457584007913129639935
[PASS] test_calculateLiquidationAmounts_fuzz_revertsWith_MustNotLeaveDust_Debt((address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)) (runs: 5000, μ: 260577, ~: 248325)
Logs:
Bound result 449773931704024038
Bound result 2028
Bound result 970149253731343283
Bound result 13212
Bound result 18
Bound result 690117525930955846287473086629380880116853955985747504966589821774
Bound result 10789
Bound result 6911
Bound result 1000000000000000045
Bound result 970149253731343283
Bound result 2508165906222592
Bound result 14
Bound result 3470
Bound result 99000000000000000003084225061
Bound result 636885750
Bound result 343
Bound result 604800
Bound result 6
Bound result 2399
Bound result 127
Bound result 2
Bound result 690117525930955846287473086629380880116853955985747504966589821774
Bound result 10789
Bound result 6911
Bound result 1000000000000000045
Bound result 970149253731343283
Bound result 2508165906222592
Bound result 14
Bound result 3470
Bound result 99000000000000000003084225061
Bound result 636885750
Bound result 343
Bound result 2508165906222592
Bound result 3229547
Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 36.59s (36.56s CPU time)
Ran 4 tests for tests/unit/libraries/LiquidationLogic/LiquidationLogic.LiquidationBonus.t.sol:LiquidationLogicLiquidationBonusTest
[PASS] test_calculateLiquidationBonus_MinBonusDueToRounding() (gas: 12488)
[PASS] test_calculateLiquidationBonus_PartialBonus() (gas: 12509)
[PASS] test_calculateLiquidationBonus_fuzz_ConstantBonus(uint256,uint256,uint256,uint256) (runs: 5000, μ: 20356, ~: 20128)
Logs:
Bound result 20022
Bound result 2893
Bound result 6000000000
Bound result 11234
[PASS] test_calculateLiquidationBonus_fuzz_MaxBonus(uint256,uint256,uint256,uint256) (runs: 5000, μ: 23300, ~: 23072)
Logs:
Bound result 20022
Bound result 2893
Bound result 6000000000
Bound result 11234
Bound result 7935
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 1.17s (1.14s CPU time)
Ran 11 tests for tests/unit/libraries/LiquidationLogic/LiquidationLogic.ValidateLiquidationCall.t.sol:LiquidationLogicValidateLiquidationCallTest
[PASS] test_validateLiquidationCall() (gas: 26036)
[PASS] test_validateLiquidationCall_revertsWith_CannotReceiveShares() (gas: 259738)
[PASS] test_validateLiquidationCall_revertsWith_HealthFactorNotBelowThreshold() (gas: 31769)
[PASS] test_validateLiquidationCall_revertsWith_InvalidDebtToCover() (gas: 26861)
[PASS] test_validateLiquidationCall_revertsWith_ReserveNotBorrowed() (gas: 26980)
[PASS] test_validateLiquidationCall_revertsWith_ReserveNotEnabledAsCollateral_NotUsingAsCollateral() (gas: 27033)
[PASS] test_validateLiquidationCall_revertsWith_ReserveNotEnabledAsCollateral_ZeroCollateralFactor() (gas: 27018)
[PASS] test_validateLiquidationCall_revertsWith_ReserveNotSupplied() (gas: 26947)
[PASS] test_validateLiquidationCall_revertsWith_ReservePaused_CollateralPaused() (gas: 31989)
[PASS] test_validateLiquidationCall_revertsWith_ReservePaused_DebtPaused() (gas: 31989)
[PASS] test_validateLiquidationCall_revertsWith_SelfLiquidation() (gas: 33724)
Suite result: ok. 11 passed; 0 failed; 0 skipped; finished in 26.81ms (1.47ms CPU time)
Ran 21 tests for tests/unit/position-manager/SignatureGateway/SignatureGateway.Reverts.InvalidSignature.t.sol:SignatureGatewayInvalidSignatureTest
[PASS] test_borrowWithSig_revertsWith_InvalidAccountNonce(bytes32) (runs: 5000, μ: 154991, ~: 154552)
[PASS] test_borrowWithSig_revertsWith_InvalidSignature_dueTo_ExpiredDeadline() (gas: 39084)
[PASS] test_borrowWithSig_revertsWith_InvalidSignature_dueTo_InvalidSigner() (gas: 37322)
[PASS] test_repayWithSig_revertsWith_InvalidAccountNonce(bytes32) (runs: 5000, μ: 154947, ~: 154508)
[PASS] test_repayWithSig_revertsWith_InvalidSignature_dueTo_ExpiredDeadline() (gas: 39017)
[PASS] test_repayWithSig_revertsWith_InvalidSignature_dueTo_InvalidSigner() (gas: 37344)
[PASS] test_setUsingAsCollateralWithSig_revertsWith_InvalidAccountNonce(bytes32) (runs: 5000, μ: 154325, ~: 155416)
[PASS] test_setUsingAsCollateralWithSig_revertsWith_InvalidSignature_dueTo_ExpiredDeadline() (gas: 39067)
[PASS] test_setUsingAsCollateralWithSig_revertsWith_InvalidSignature_dueTo_InvalidSigner() (gas: 37411)
[PASS] test_supplyWithSig_revertsWith_InvalidAccountNonce(bytes32) (runs: 5000, μ: 155010, ~: 154571)
[PASS] test_supplyWithSig_revertsWith_InvalidSignature_dueTo_ExpiredDeadline() (gas: 39084)
[PASS] test_supplyWithSig_revertsWith_InvalidSignature_dueTo_InvalidSigner() (gas: 37376)
[PASS] test_updateUserDynamicConfigWithSig_revertsWith_InvalidAccountNonce(bytes32) (runs: 5000, μ: 141405, ~: 140132)
[PASS] test_updateUserDynamicConfigWithSig_revertsWith_InvalidSignatureDueTo_InvalidSigner() (gas: 25399)
[PASS] test_updateUserDynamicConfigWithSig_revertsWith_InvalidSignature_dueTo_ExpiredDeadline() (gas: 27083)
[PASS] test_updateUserRiskPremiumWithSig_revertsWith_InvalidAccountNonce(bytes32) (runs: 5000, μ: 141354, ~: 140081)
[PASS] test_updateUserRiskPremiumWithSig_revertsWith_InvalidSignatureDueTo_InvalidSigner() (gas: 25333)
[PASS] test_updateUserRiskPremiumWithSig_revertsWith_InvalidSignature_dueTo_ExpiredDeadline() (gas: 27032)
[PASS] test_withdrawWithSig_revertsWith_InvalidAccountNonce(bytes32) (runs: 5000, μ: 155011, ~: 154572)
[PASS] test_withdrawWithSig_revertsWith_InvalidSignature_dueTo_ExpiredDeadline() (gas: 39126)
[PASS] test_withdrawWithSig_revertsWith_InvalidSignature_dueTo_InvalidSigner() (gas: 37386)
Suite result: ok. 21 passed; 0 failed; 0 skipped; finished in 43.34s (43.31s CPU time)
Ran 29 tests for tests/unit/MathUtils.t.sol:MathUtilsTest
[PASS] test_add_edge_cases() (gas: 4679)
[PASS] test_add_negative_operand(uint256,int256) (runs: 5000, μ: 9049, ~: 8812)
Logs:
Bound result -57896044618658097711785492504343953926634992332820282013197946218740589849150
[PASS] test_add_positive_operand(uint256,int256) (runs: 5000, μ: 3920, ~: 3916)
[PASS] test_calculateLinearInterest() (gas: 4368)
[PASS] test_calculateLinearInterest_add_edge() (gas: 4890)
[PASS] test_calculateLinearInterest_edge_cases() (gas: 16246)
Logs:
Bound result 0
Bound result 1
Bound result 864000000
Bound result 864000000
[PASS] test_calculateLinearInterest_reverts_on_past_timestamp(uint40) (runs: 5000, μ: 7542, ~: 7381)
Logs:
Bound result 9
[PASS] test_constants() (gas: 3133)
[PASS] test_fuzz_calculateLinearInterest(uint96,uint40,uint256) (runs: 5000, μ: 8586, ~: 8824)
Logs:
Bound result 10765498
[PASS] test_fuzz_divUp(uint256,uint256) (runs: 5000, μ: 3540, ~: 3544)
[PASS] test_fuzz_mulDivDown(uint256,uint256,uint256) (runs: 5000, μ: 3513, ~: 3577)
[PASS] test_fuzz_mulDivUp(uint256,uint256,uint256) (runs: 5000, μ: 3591, ~: 3724)
[PASS] test_min(uint256,uint256) (runs: 5000, μ: 3281, ~: 3281)
[PASS] test_mulDivDown_NoRemainder() (gas: 3223)
[PASS] test_mulDivDown_RevertOnDivByZero() (gas: 3107)
[PASS] test_mulDivDown_RevertOnOverflow() (gas: 3183)
[PASS] test_mulDivDown_WithRemainder() (gas: 3268)
[PASS] test_mulDivDown_ZeroAOrB() (gas: 3721)
[PASS] test_mulDivUp_NoRemainder() (gas: 3272)
[PASS] test_mulDivUp_RevertOnDivByZero() (gas: 3084)
[PASS] test_mulDivUp_RevertOnOverflow() (gas: 3184)
[PASS] test_mulDivUp_WithRemainder() (gas: 3293)
[PASS] test_mulDivUp_ZeroAOrB() (gas: 3792)
[PASS] test_signedSub(uint256,uint256) (runs: 5000, μ: 8599, ~: 8530)
Logs:
Bound result 68691281934999
Bound result 100
[PASS] test_signedSub_revertsWith_SafeCastOverflowedUintToInt(uint256) (runs: 5000, μ: 7651, ~: 7702)
Logs:
Bound result 57896044618658097711785492504343953926634992332820282019728792007080608788105
[PASS] test_uncheckedAdd(uint256,uint256) (runs: 5000, μ: 3447, ~: 3438)
[PASS] test_uncheckedExp(uint256,uint256) (runs: 5000, μ: 12554, ~: 9958)
[PASS] test_uncheckedSub(uint256,uint256) (runs: 5000, μ: 3442, ~: 3362)
[PASS] test_zeroFloorSub(uint256,uint256) (runs: 5000, μ: 3290, ~: 3326)
Suite result: ok. 29 passed; 0 failed; 0 skipped; finished in 2.79s (2.77s CPU time)
Ran 7 tests for tests/unit/position-manager/SignatureGateway/SignatureGateway.Reverts.SpokeNotRegistered.t.sol:SignatureGateway_SpokeNotRegistered_Test
[PASS] test_borrowWithSig_revertsWith_SpokeNotRegistered((address,uint256,uint256,address,uint256,uint256)) (runs: 5000, μ: 13410, ~: 13410)
[PASS] test_repayWithSig_revertsWith_SpokeNotRegistered((address,uint256,uint256,address,uint256,uint256)) (runs: 5000, μ: 13410, ~: 13410)
[PASS] test_setUsingAsCollateralWithSig_revertsWith_SpokeNotRegistered((address,uint256,bool,address,uint256,uint256)) (runs: 5000, μ: 13401, ~: 13401)
[PASS] test_supplyWithSig_revertsWith_SpokeNotRegistered((address,uint256,uint256,address,uint256,uint256)) (runs: 5000, μ: 13475, ~: 13475)
[PASS] test_updateUserDynamicConfigWithSig_revertsWith_SpokeNotRegistered((address,address,uint256,uint256)) (runs: 5000, μ: 13686, ~: 13686)
[PASS] test_updateUserRiskPremiumWithSig_revertsWith_SpokeNotRegistered((address,address,uint256,uint256)) (runs: 5000, μ: 13665, ~: 13665)
[PASS] test_withdrawWithSig_revertsWith_SpokeNotRegistered((address,uint256,uint256,address,uint256,uint256)) (runs: 5000, μ: 13497, ~: 13497)
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 17.70s (17.67s CPU time)
Ran 7 tests for tests/unit/position-manager/SignatureGateway/SignatureGateway.Reverts.Unauthorized.t.sol:SignatureGateway_Unauthorized_PositionManagerActive_Test
[PASS] test_borrowWithSig_revertsWith_Unauthorized() (gas: 80414)
[PASS] test_repayWithSig_revertsWith_Unauthorized() (gas: 118466)
[PASS] test_setUsingAsCollateralWithSig_revertsWith_Unauthorized() (gas: 72985)
[PASS] test_supplyWithSig_revertsWith_Unauthorized() (gas: 140065)
[PASS] test_updateUserDynamicConfigWithSig_revertsWith_Unauthorized() (gas: 81402)
[PASS] test_updateUserRiskPremiumWithSig_revertsWith_Unauthorized() (gas: 81491)
[PASS] test_withdrawWithSig_revertsWith_Unauthorized() (gas: 79447)
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 31.13ms (4.45ms CPU time)
Ran 7 tests for tests/unit/position-manager/SignatureGateway/SignatureGateway.Reverts.Unauthorized.t.sol:SignatureGateway_Unauthorized_PositionManagerNotActive_Test
[PASS] test_borrowWithSig_revertsWith_Unauthorized() (gas: 78206)
[PASS] test_repayWithSig_revertsWith_Unauthorized() (gas: 116258)
[PASS] test_setUsingAsCollateralWithSig_revertsWith_Unauthorized() (gas: 70777)
[PASS] test_supplyWithSig_revertsWith_Unauthorized() (gas: 137857)
[PASS] test_updateUserDynamicConfigWithSig_revertsWith_Unauthorized() (gas: 79194)
[PASS] test_updateUserRiskPremiumWithSig_revertsWith_Unauthorized() (gas: 79283)
[PASS] test_withdrawWithSig_revertsWith_Unauthorized() (gas: 77239)
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 30.85ms (4.62ms CPU time)
Ran 4 tests for tests/unit/position-manager/SignatureGateway/SignatureGateway.SetSelfAsUserPositionManagerWithSig.t.sol:SignatureGatewaySetSelfAsUserPositionManagerTest
[PASS] test_setSelfAsUserPositionManagerWithSig() (gas: 140203)
[PASS] test_setSelfAsUserPositionManagerWithSig_forwards_correct_call() (gas: 32642)
[PASS] test_setSelfAsUserPositionManagerWithSig_ignores_underlying_spoke_reverts() (gas: 29661)
[PASS] test_setSelfAsUserPositionManagerWithSig_revertsWith_SpokeNotRegistered() (gas: 16473)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 27.01ms (1.23ms CPU time)
Ran 14 tests for tests/unit/position-manager/SignatureGateway/SignatureGateway.t.sol:SignatureGatewayTest
[PASS] test_borrowWithSig() (gas: 823457)
[PASS] test_multicall() (gas: 636852)
[PASS] test_multicall_atomicity_on_revert() (gas: 531184)
[PASS] test_multicall_no_atomicity_with_trycatch() (gas: 633549)
[PASS] test_renouncePositionManagerRole() (gas: 29749)
[PASS] test_renouncePositionManagerRole_revertsWith_OnlyOwner() (gas: 18068)
[PASS] test_repayWithSig() (gas: 831511)
[PASS] test_setSelfAsUserPositionManagerWithSig() (gas: 336825)
[PASS] test_setUsingAsCollateralWithSig() (gas: 638802)
[PASS] test_supplyWithSig() (gas: 609572)
[PASS] test_updateUserDynamicConfigWithSig() (gas: 347006)
[PASS] test_updateUserRiskPremiumWithSig() (gas: 1052846)
[PASS] test_useNonce_monotonic(bytes32) (runs: 5000, μ: 13323, ~: 13323)
[PASS] test_withdrawWithSig() (gas: 613572)
Suite result: ok. 14 passed; 0 failed; 0 skipped; finished in 509.15ms (483.04ms CPU time)
Ran 3 tests for tests/unit/Spoke/Spoke.Access.t.sol:SpokeAccessTest
[PASS] testAccess_change_authority() (gas: 519268)
[PASS] testAccess_hub_functions_callable_by_spokes() (gas: 603704)
[PASS] testAccess_spoke_admin_config_access() (gas: 496676)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 27.87ms (2.99ms CPU time)
Ran 26 tests for tests/unit/position-manager/ConfigPositionManager/ConfigPositionManager.Permit.t.sol:ConfigPositionManagerPermitTest
[PASS] test_DOMAIN_SEPARATOR() (gas: 5688)
[PASS] test_eip712Domain() (gas: 10941)
[PASS] test_setCanSetUsingAsCollateralPermissionPermit_typeHash() (gas: 9951)
[PASS] test_setCanSetUsingAsCollateralPermissionWithSig_fuzz(address,bool) (runs: 5000, μ: 158568, ~: 158959)
[PASS] test_setCanSetUsingAsCollateralPermissionWithSig_revertsWith_InvalidAccountNonce(bytes32) (runs: 5000, μ: 144916, ~: 142519)
[PASS] test_setCanSetUsingAsCollateralPermissionWithSig_revertsWith_InvalidSignature_dueTo_ExpiredDeadline() (gas: 28199)
[PASS] test_setCanSetUsingAsCollateralPermissionWithSig_revertsWith_InvalidSignature_dueTo_InvalidSigner() (gas: 32591)
[PASS] test_setCanSetUsingAsCollateralPermissionWithSig_revertsWith_SpokeNotRegistered() (gas: 61515)
[PASS] test_setCanUpdateUserDynamicConfigPermissionPermit_typeHash() (gas: 9863)
[PASS] test_setCanUpdateUserDynamicConfigPermissionWithSig_fuzz(address,bool) (runs: 5000, μ: 158574, ~: 158965)
[PASS] test_setCanUpdateUserDynamicConfigPermissionWithSig_revertsWith_InvalidAccountNonce(bytes32) (runs: 5000, μ: 144938, ~: 142541)
[PASS] test_setCanUpdateUserDynamicConfigPermissionWithSig_revertsWith_InvalidSignature_dueTo_ExpiredDeadline() (gas: 28190)
[PASS] test_setCanUpdateUserDynamicConfigPermissionWithSig_revertsWith_InvalidSignature_dueTo_InvalidSigner() (gas: 32571)
[PASS] test_setCanUpdateUserDynamicConfigPermissionWithSig_revertsWith_SpokeNotRegistered() (gas: 61528)
[PASS] test_setCanUpdateUserRiskPremiumPermissionPermit_typeHash() (gas: 9949)
[PASS] test_setCanUpdateUserRiskPremiumPermissionWithSig_fuzz(address,bool) (runs: 5000, μ: 158551, ~: 158942)
[PASS] test_setCanUpdateUserRiskPremiumPermissionWithSig_revertsWith_InvalidAccountNonce(bytes32) (runs: 5000, μ: 144873, ~: 142476)
[PASS] test_setCanUpdateUserRiskPremiumPermissionWithSig_revertsWith_InvalidSignature_dueTo_ExpiredDeadline() (gas: 28189)
[PASS] test_setCanUpdateUserRiskPremiumPermissionWithSig_revertsWith_InvalidSignature_dueTo_InvalidSigner() (gas: 32560)
[PASS] test_setCanUpdateUserRiskPremiumPermissionWithSig_revertsWith_SpokeNotRegistered() (gas: 61460)
[PASS] test_setGlobalPermissionPermit_typeHash() (gas: 9957)
[PASS] test_setGlobalPermissionWithSig_fuzz(address,bool) (runs: 5000, μ: 163012, ~: 163450)
[PASS] test_setGlobalPermissionWithSig_revertsWith_InvalidAccountNonce(bytes32) (runs: 5000, μ: 144899, ~: 142502)
[PASS] test_setGlobalPermissionWithSig_revertsWith_InvalidSignature_dueTo_ExpiredDeadline() (gas: 28176)
[PASS] test_setGlobalPermissionWithSig_revertsWith_InvalidSignature_dueTo_InvalidSigner() (gas: 32532)
[PASS] test_setGlobalPermissionWithSig_revertsWith_SpokeNotRegistered() (gas: 61468)
Suite result: ok. 26 passed; 0 failed; 0 skipped; finished in 48.52s (48.49s CPU time)
Ran 39 tests for tests/unit/position-manager/ConfigPositionManager/ConfigPositionManager.t.sol:ConfigPositionManagerTest
[PASS] test_multicall() (gas: 85120)
[PASS] test_renounceCanUpdateUserDynamicConfigPermission() (gas: 43783)
[PASS] test_renounceCanUpdateUserDynamicConfigPermission_revertsWith_SpokeNotRegistered() (gas: 17489)
[PASS] test_renounceCanUpdateUserRiskPremiumPermission() (gas: 43695)
[PASS] test_renounceCanUpdateUserRiskPremiumPermission_revertsWith_SpokeNotRegistered() (gas: 17380)
[PASS] test_renounceCanUpdateUsingAsCollateralPermission() (gas: 43712)
[PASS] test_renounceCanUpdateUsingAsCollateralPermission_revertsWith_SpokeNotRegistered() (gas: 17402)
[PASS] test_renounceGlobalPermission() (gas: 43007)
[PASS] test_renounceGlobalPermission_revertsWith_SpokeNotRegistered() (gas: 17423)
[PASS] test_setCanSetUsingAsCollateralPermission() (gas: 54687)
[PASS] test_setCanSetUsingAsCollateralPermission_remove() (gas: 43800)
[PASS] test_setCanSetUsingAsCollateralPermission_revertsWith_InvalidAddress_zeroDelegatee() (gas: 17885)
[PASS] test_setCanSetUsingAsCollateralPermission_revertsWith_SpokeNotRegistered() (gas: 17497)
[PASS] test_setCanUpdateUserDynamicConfigPermission() (gas: 54710)
[PASS] test_setCanUpdateUserDynamicConfigPermission_remove() (gas: 43856)
[PASS] test_setCanUpdateUserDynamicConfigPermission_revertsWith_InvalidAddress_zeroDelegatee() (gas: 17937)
[PASS] test_setCanUpdateUserDynamicConfigPermission_revertsWith_SpokeNotRegistered() (gas: 17561)
[PASS] test_setCanUpdateUserRiskPremiumPermission() (gas: 54711)
[PASS] test_setCanUpdateUserRiskPremiumPermission_remove() (gas: 43838)
[PASS] test_setCanUpdateUserRiskPremiumPermission_revertsWith_InvalidAddress_zeroDelegatee() (gas: 17916)
[PASS] test_setCanUpdateUserRiskPremiumPermission_revertsWith_SpokeNotRegistered() (gas: 17542)
[PASS] test_setGlobalPermission() (gas: 56290)
[PASS] test_setGlobalPermission_removeAllPermissions() (gas: 43148)
[PASS] test_setGlobalPermission_removePreviousPermissions() (gas: 49384)
[PASS] test_setGlobalPermission_revertsWith_InvalidAddress_zeroDelegatee() (gas: 17869)
[PASS] test_setGlobalPermission_revertsWith_SpokeNotRegistered() (gas: 17540)
[PASS] test_setGlobalPermission_setThenRemove() (gas: 50988)
[PASS] test_setUsingAsCollateralOnBehalfOf_fuzz_withGlobalPermission(uint256,bool) (runs: 5000, μ: 111719, ~: 116557)
Logs:
Bound result 2
[PASS] test_setUsingAsCollateralOnBehalfOf_fuzz_withPermission(uint256,bool) (runs: 5000, μ: 111779, ~: 116617)
Logs:
Bound result 2
[PASS] test_setUsingAsCollateralOnBehalfOf_revertsWith_CallerNotAllowed() (gas: 22151)
[PASS] test_setUsingAsCollateralOnBehalfOf_revertsWith_SpokeNotRegistered() (gas: 17584)
[PASS] test_updateUserDynamicConfigOnBehalfOf_revertsWith_CallerNotAllowed() (gas: 19908)
[PASS] test_updateUserDynamicConfigOnBehalfOf_revertsWith_SpokeNotRegistered() (gas: 17422)
[PASS] test_updateUserDynamicConfigOnBehalfOf_withGlobalPermission() (gas: 74616)
[PASS] test_updateUserDynamicConfigOnBehalfOf_withPermission() (gas: 74718)
[PASS] test_updateUserRiskPremiumOnBehalfOf_revertsWith_CallerNotAllowed() (gas: 19909)
[PASS] test_updateUserRiskPremiumOnBehalfOf_revertsWith_SpokeNotRegistered() (gas: 17469)
[PASS] test_updateUserRiskPremiumOnBehalfOf_withGlobalPermission() (gas: 828252)
[PASS] test_updateUserRiskPremiumOnBehalfOf_withPermission() (gas: 828265)
Suite result: ok. 39 passed; 0 failed; 0 skipped; finished in 10.27s (10.24s CPU time)
Ran 41 tests for tests/unit/position-manager/NativeTokenGateway.t.sol:NativeTokenGatewayTest
[PASS] test_borrowNative() (gas: 676305)
Logs:
Bound result 5000000000000000000
[PASS] test_borrowNative_fuzz(uint256) (runs: 5000, μ: 675797, ~: 677038)
Logs:
Bound result 3124043968137
[PASS] test_borrowNative_revertsWith_InvalidAmount() (gas: 32444)
[PASS] test_borrowNative_revertsWith_NotNativeWrappedAsset() (gas: 32519)
[PASS] test_borrowNative_revertsWith_ReentrancyGuardReentrantCall_hubDraw() (gas: 283143)
[PASS] test_borrowNative_revertsWith_ReentrancyGuardReentrantCall_spokeBorrow() (gas: 271222)
[PASS] test_borrowNative_revertsWith_SpokeNotRegistered() (gas: 25378)
[PASS] test_constructor() (gas: 12675)
[PASS] test_constructor_revertsWith_InvalidAddress() (gas: 5958)
[PASS] test_fallback_revertsWith_UnsupportedAction() (gas: 17595)
[PASS] test_multicall_revertsWith_UnsupportedAction() (gas: 11265)
[PASS] test_receive_revertsWith_UnsupportedAction() (gas: 17408)
[PASS] test_repayNative() (gas: 773094)
Logs:
Bound result 5000000000000000000
[PASS] test_repayNative_excessAmount() (gas: 681647)
[PASS] test_repayNative_fuzz(uint256) (runs: 5000, μ: 769032, ~: 773727)
Logs:
Bound result 3124043968137
[PASS] test_repayNative_fuzz_withInterest(uint256,uint256) (runs: 5000, μ: 692587, ~: 687726)
Logs:
Bound result 90000068691281935000
Bound result 25920101
[PASS] test_repayNative_revertsWith_InvalidAmount() (gas: 32481)
[PASS] test_repayNative_revertsWith_NativeAmountMismatch() (gas: 30002)
[PASS] test_repayNative_revertsWith_NotNativeWrappedAsset() (gas: 39249)
[PASS] test_repayNative_revertsWith_ReentrancyGuardReentrantCall_hubRestore() (gas: 331639)
[PASS] test_repayNative_revertsWith_ReentrancyGuardReentrantCall_spokeRepay() (gas: 308258)
[PASS] test_repayNative_revertsWith_SpokeNotRegistered() (gas: 38722)
[PASS] test_supplyAndCollateralNative() (gas: 340286)
Logs:
Bound result 100000000000000000000
[PASS] test_supplyAndCollateralNative_fuzz(uint256) (runs: 5000, μ: 340608, ~: 340314)
Logs:
Bound result 3124043968137
[PASS] test_supplyNative() (gas: 311980)
Logs:
Bound result 100000000000000000000
[PASS] test_supplyNative_fuzz(uint256) (runs: 5000, μ: 312301, ~: 312007)
Logs:
Bound result 3124043968137
[PASS] test_supplyNative_revertsWith_InvalidAmount() (gas: 32457)
[PASS] test_supplyNative_revertsWith_NativeAmountMismatch() (gas: 29986)
[PASS] test_supplyNative_revertsWith_NotNativeWrappedAsset() (gas: 39237)
[PASS] test_supplyNative_revertsWith_ReentrancyGuardReentrantCall_hubAdd() (gas: 374260)
[PASS] test_supplyNative_revertsWith_ReentrancyGuardReentrantCall_spokeSupply() (gas: 336151)
[PASS] test_supplyNative_revertsWith_SpokeNotRegistered() (gas: 38734)
[PASS] test_withdrawNative() (gas: 340005)
Logs:
Bound result 100000000000000000000
[PASS] test_withdrawNative_fuzz(uint256) (runs: 5000, μ: 339516, ~: 340011)
Logs:
Bound result 3124043968137
[PASS] test_withdrawNative_fuzz_allBalance(uint256) (runs: 5000, μ: 273432, ~: 273224)
Logs:
Bound result 3124043968137
[PASS] test_withdrawNative_fuzz_allBalanceWithInterest(uint256,uint256) (runs: 5000, μ: 625024, ~: 624956)
Logs:
Bound result 68691281934999
Bound result 100
[PASS] test_withdrawNative_revertsWith_InvalidAmount() (gas: 32475)
[PASS] test_withdrawNative_revertsWith_NotNativeWrappedAsset() (gas: 32508)
[PASS] test_withdrawNative_revertsWith_ReentrancyGuardReentrantCall_hubRemove() (gas: 304946)
[PASS] test_withdrawNative_revertsWith_ReentrancyGuardReentrantCall_spokeWithdraw() (gas: 271196)
[PASS] test_withdrawNative_revertsWith_SpokeNotRegistered() (gas: 25345)
Suite result: ok. 41 passed; 0 failed; 0 skipped; finished in 70.15s (70.12s CPU time)
Ran 3 tests for tests/unit/NoncesKeyed.t.sol:NoncesKeyedTest
[PASS] test_useCheckedNonce_monotonic(bytes32) (runs: 5000, μ: 12902, ~: 12902)
[PASS] test_useCheckedNonce_revertsWith_InvalidAccountNonce(bytes32) (runs: 5000, μ: 95279, ~: 94374)
[PASS] test_useNonce_monotonic(bytes32) (runs: 5000, μ: 13570, ~: 13570)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 4.00s (4.00s CPU time)
Ran 10 tests for tests/unit/PercentageMath.t.sol:PercentageMathTests
[PASS] test_constants() (gas: 8604)
[PASS] test_fromBpsDown() (gas: 9654)
[PASS] test_percentDiv() (gas: 14993)
[PASS] test_percentDivUp_ge_value(uint256,uint256) (runs: 5000, μ: 15139, ~: 15261)
Logs:
Bound result 100
Bound result 68691281934999
[PASS] test_percentDivUp_le_value(uint256,uint256) (runs: 5000, μ: 15346, ~: 15347)
Logs:
Bound result 90101
Bound result 68691281934999
[PASS] test_percentDiv_fuzz(uint256,uint256) (runs: 5000, μ: 12595, ~: 12760)
[PASS] test_percentMul() (gas: 14932)
[PASS] test_percentMulUp_ge_value(uint256,uint256) (runs: 5000, μ: 15329, ~: 15330)
Logs:
Bound result 90101
Bound result 68691281934999
[PASS] test_percentMulUp_le_value(uint256,uint256) (runs: 5000, μ: 15142, ~: 15264)
Logs:
Bound result 100
Bound result 68691281934999
[PASS] test_percentMul_fuzz(uint256,uint256) (runs: 5000, μ: 11513, ~: 12063)
Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 1.51s (1.51s CPU time)
Ran 17 tests for tests/unit/position-manager/PositionManagerBase.t.sol:PositionManagerBaseTest
[PASS] test_constructor() (gas: 17209)
[PASS] test_getReserveUnderlying_fuzz(uint256) (runs: 5000, μ: 36890, ~: 36947)
Logs:
Bound result 2
[PASS] test_getReserveUnderlying_revertsWith_ReserveNotListed() (gas: 25763)
[PASS] test_multicall() (gas: 73158)
[PASS] test_multicall_atomicity_on_revert() (gas: 48181)
[PASS] test_multicall_revertsWith_UnsupportedAction() (gas: 11243)
[PASS] test_permitReserveUnderlying() (gas: 128765)
[PASS] test_permitReserveUnderlying_forwards_correct_call() (gas: 78195)
[PASS] test_permitReserveUnderlying_ignores_permit_reverts() (gas: 67273)
[PASS] test_permitReserveUnderlying_revertsWith_ReserveNotListed() (gas: 58153)
[PASS] test_registerSpoke_fuzz(address) (runs: 5000, μ: 41640, ~: 41640)
[PASS] test_registerSpoke_revertsWith_InvalidAddress() (gas: 13087)
[PASS] test_registerSpoke_revertsWith_OwnableUnauthorizedAccount() (gas: 15935)
[PASS] test_registerSpoke_unregister() (gas: 36116)
[PASS] test_renouncePositionManagerRole() (gas: 65459)
[PASS] test_renouncePositionManagerRole_revertsWith_OwnableUnauthorizedAccount() (gas: 74572)
[PASS] test_setSelfAsUserPositionManagerWithSig() (gas: 131425)
Suite result: ok. 17 passed; 0 failed; 0 skipped; finished in 1.02s (991.29ms CPU time)
Ran 10 tests for tests/unit/position-manager/libraries/PositionManagerEIP712Hash.t.sol:PositionManagerEIP712HashTest
[PASS] test_constants() (gas: 13441)
[PASS] test_hash_borrowPermit_fuzz((address,uint256,address,address,uint256,uint256,uint256)) (runs: 5000, μ: 4833, ~: 4833)
[PASS] test_hash_borrow_fuzz((address,uint256,uint256,address,uint256,uint256)) (runs: 5000, μ: 6689, ~: 6689)
[PASS] test_hash_repay_fuzz((address,uint256,uint256,address,uint256,uint256)) (runs: 5000, μ: 6690, ~: 6690)
[PASS] test_hash_setUsingAsCollateral_fuzz((address,uint256,bool,address,uint256,uint256)) (runs: 5000, μ: 7126, ~: 7126)
[PASS] test_hash_supply_fuzz((address,uint256,uint256,address,uint256,uint256)) (runs: 5000, μ: 6733, ~: 6733)
[PASS] test_hash_updateUserDynamicConfig_fuzz((address,address,uint256,uint256)) (runs: 5000, μ: 6349, ~: 6349)
[PASS] test_hash_updateUserRiskPremium_fuzz((address,address,uint256,uint256)) (runs: 5000, μ: 6370, ~: 6370)
[PASS] test_hash_withdrawPermit_fuzz((address,uint256,address,address,uint256,uint256,uint256)) (runs: 5000, μ: 4832, ~: 4832)
[PASS] test_hash_withdraw_fuzz((address,uint256,uint256,address,uint256,uint256)) (runs: 5000, μ: 6689, ~: 6689)
Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 5.67s (5.67s CPU time)
Ran 11 tests for tests/gas/PositionManagers.Operations.gas.t.sol:ConfigPositionManager_Gas_Tests
[PASS] test_renounceCanUpdateUserDynamicConfigPermission() (gas: 93933)
[PASS] test_renounceCanUpdateUserRiskPremiumPermission() (gas: 93910)
[PASS] test_renounceCanUpdateUsingAsCollateralPermission() (gas: 93845)
[PASS] test_renounceGlobalPermission() (gas: 93782)
[PASS] test_setCanSetUsingAsCollateralPermission() (gas: 69541)
[PASS] test_setCanUpdateUserDynamicConfigPermission() (gas: 69560)
[PASS] test_setCanUpdateUserRiskPremiumPermission() (gas: 69583)
[PASS] test_setGlobalPermission() (gas: 69474)
[PASS] test_setUsingAsCollateralOnBehalfOf_fuzz_withGlobalPermission() (gas: 147842)
[PASS] test_updateUserDynamicConfigOnBehalfOf_withGlobalPermission() (gas: 122977)
[PASS] test_updateUserRiskPremiumOnBehalfOf_withGlobalPermission() (gas: 733902)
Suite result: ok. 11 passed; 0 failed; 0 skipped; finished in 51.64ms (2.78ms CPU time)
Ran 2 tests for tests/gas/PositionManagers.Operations.gas.t.sol:GiverPositionManager_Gas_Tests
[PASS] test_repayOnBehalfOf() (gas: 950233)
[PASS] test_supplyOnBehalfOf() (gas: 292408)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 49.56ms (1.87ms CPU time)
Ran 1 test for tests/gas/PositionManagers.Operations.gas.t.sol:PositionManager_Gas_Tests
[PASS] test_setSelfAsUserPositionManagerWithSig() (gas: 215923)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 48.25ms (930.98µs CPU time)
Ran 8 tests for tests/gas/PositionManagers.Operations.gas.t.sol:TakerPositionManager_Gas_Tests
[PASS] test_approveBorrow() (gas: 69175)
[PASS] test_approveBorrowWithSig() (gas: 155440)
[PASS] test_approveWithdraw() (gas: 69184)
[PASS] test_approveWithdrawWithSig() (gas: 155426)
[PASS] test_borrowOnBehalfOf() (gas: 794060)
[PASS] test_renounceBorrowAllowance() (gas: 93655)
[PASS] test_renounceWithdrawAllowance() (gas: 93740)
[PASS] test_withdrawOnBehalfOf() (gas: 607569)
Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 50.40ms (3.73ms CPU time)
Ran 3 tests for tests/unit/misc/ExtSload.t.sol:ExtSloadTest
[PASS] test_extSload(bytes32) (runs: 5000, μ: 9767, ~: 9767)
[PASS] test_extSloads(uint256) (runs: 5000, μ: 954937, ~: 921410)
Logs:
Bound result 812
[PASS] test_extSloads(uint256,bytes) (runs: 5000, μ: 1006866, ~: 966798)
Logs:
Bound result 362
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 60.32s (60.32s CPU time)
Ran 5 tests for tests/gas/Gateways.Operations.gas.t.sol:NativeTokenGateway_Gas_Tests
[PASS] test_borrowNative() (gas: 947960)
[PASS] test_repayNative() (gas: 1020469)
[PASS] test_supplyAndCollateralNative() (gas: 315086)
[PASS] test_supplyNative() (gas: 294559)
[PASS] test_withdrawNative() (gas: 527770)
Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 50.11ms (4.30ms CPU time)
Ran 8 tests for tests/gas/Gateways.Operations.gas.t.sol:SignatureGateway_Gas_Tests
[PASS] test_borrowWithSig() (gas: 766879)
[PASS] test_repayWithSig() (gas: 982944)
[PASS] test_setSelfAsUserPositionManagerWithSig() (gas: 209293)
[PASS] test_setUsingAsCollateralWithSig() (gas: 294271)
[PASS] test_supplyWithSig() (gas: 447193)
[PASS] test_updateUserDynamicConfigWithSig() (gas: 145250)
[PASS] test_updateUserRiskPremiumWithSig() (gas: 143115)
[PASS] test_withdrawWithSig() (gas: 423498)
Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 56.05ms (8.85ms CPU time)
Ran 12 tests for tests/unit/position-manager/GiverPositionManager.t.sol:GiverPositionManagerTest
[PASS] test_multicall() (gas: 348029)
[PASS] test_repayOnBehalfOf() (gas: 662303)
Logs:
Bound result 50000000000000000000
[PASS] test_repayOnBehalfOf_fuzz(uint256) (runs: 5000, μ: 659509, ~: 662598)
Logs:
Bound result 3124043968137
[PASS] test_repayOnBehalfOf_fuzz_withInterest(uint256,uint256) (runs: 5000, μ: 593782, ~: 590121)
Logs:
Bound result 900000068691281935000
Bound result 25920101
[PASS] test_repayOnBehalfOf_maxRepay() (gas: 583937)
[PASS] test_repayOnBehalfOf_maxRepay_revertsWith_InvalidRepayAmount() (gas: 490693)
[PASS] test_repayOnBehalfOf_revertsWith_ReserveNotListed() (gas: 32366)
[PASS] test_repayOnBehalfOf_revertsWith_SpokeNotRegistered() (gas: 28744)
[PASS] test_supplyOnBehalfOf() (gas: 315270)
Logs:
Bound result 100000000000000000000
[PASS] test_supplyOnBehalfOf_fuzz(uint256) (runs: 5000, μ: 315541, ~: 315320)
Logs:
Bound result 3124043968137
[PASS] test_supplyOnBehalfOf_revertsWith_ReserveNotListed() (gas: 32405)
[PASS] test_supplyOnBehalfOf_revertsWith_SpokeNotRegistered() (gas: 28794)
Suite result: ok. 12 passed; 0 failed; 0 skipped; finished in 30.30s (30.27s CPU time)
Ran 6 tests for tests/unit/Hub/Hub.Access.t.sol:HubAccessTest
[PASS] test_change_authority() (gas: 214011)
[PASS] test_change_role_responsibility() (gas: 131718)
[PASS] test_hub_access_manager_exposure() (gas: 18377)
[PASS] test_hub_admin_access() (gas: 1364048)
[PASS] test_migrate_role_responsibility() (gas: 718082)
[PASS] test_setInterestRateData_access() (gas: 113514)
Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 31.92ms (4.34ms CPU time)
Ran 1 test for tests/unit/Spoke/Spoke.AccrueInterest.Scenario.t.sol:SpokeAccrueInterestScenarioTest
[PASS] test_accrueInterest_fuzz_RPBorrowAndSkipTime_twoActions((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256),uint40) (runs: 5000, μ: 5778243, ~: 5625479)
Logs:
Bound result 416966230219621053938274952927
Bound result 0
Bound result 255831241153786906
Bound result 41191294854201435881
Bound result 124281697546210950467266407747
Bound result 33522909571553656
Bound result 481970306954558904
Bound result 12412
Bound result 6
Bound result 124281697546210950467266407747
Bound result 33522909571553656
Bound result 481970306954558904
Bound result 12412
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 139.45s (139.43s CPU time)
Ran 19 tests for tests/unit/Hub/Hub.Add.t.sol:HubAddTest
[PASS] test_add_AddCapReachedButNotExceeded_rounding() (gas: 675822)
[PASS] test_add_fuzz_AddCapReachedButNotExceeded(uint40) (runs: 5000, μ: 164153, ~: 164111)
Logs:
Bound result 9
[PASS] test_add_fuzz_multi_asset_multi_spoke(uint256,uint256,uint256) (runs: 5000, μ: 348017, ~: 348177)
Logs:
Bound result 3
Bound result 218470873395738003579119570309
Bound result 446067553769140138733721804
[PASS] test_add_fuzz_revertsWith_AddCapExceeded(uint40) (runs: 5000, μ: 118295, ~: 118253)
Logs:
Bound result 9
[PASS] test_add_fuzz_revertsWith_AddCapExceeded_due_to_interest(uint40,uint256,uint256) (runs: 5000, μ: 272508, ~: 272370)
Logs:
Bound result 1291
Bound result 1071208440522043736492
Bound result 173721804
[PASS] test_add_fuzz_revertsWith_InvalidShares_due_to_index(uint256,uint256,uint256) (runs: 5000, μ: 227961, ~: 228157)
Logs:
Bound result 100000000000000000000
Bound result 3122171755
Bound result 3
[PASS] test_add_fuzz_single_asset(uint256,address,uint256) (runs: 5000, μ: 350691, ~: 350711)
Logs:
Bound result 0
Bound result 570
[PASS] test_add_fuzz_single_spoke_multi_add(uint256,uint256) (runs: 5000, μ: 839186, ~: 839210)
Logs:
Bound result 68691281934999
Bound result 100
[PASS] test_add_multi_add_minimal_shares() (gas: 332332)
[PASS] test_add_revertsWith_AmountDowncastOverflow() (gas: 363523)
[PASS] test_add_revertsWith_InsufficientTransferred() (gas: 69426)
[PASS] test_add_revertsWith_InvalidAmount() (gas: 18550)
[PASS] test_add_revertsWith_InvalidShares() (gas: 227980)
[PASS] test_add_revertsWith_SharesDowncastOverflow() (gas: 228632)
[PASS] test_add_revertsWith_SpokeHalted() (gas: 106042)
[PASS] test_add_revertsWith_SpokeNotActive() (gas: 106078)
[PASS] test_add_single_asset() (gas: 339265)
Logs:
Bound result 2
Bound result 100000000000000000000
[PASS] test_add_with_increased_index() (gas: 312516)
[PASS] test_add_with_increased_index_with_premium() (gas: 692393)
Suite result: ok. 19 passed; 0 failed; 0 skipped; finished in 47.21s (47.18s CPU time)
Ran 32 tests for tests/unit/libraries/PositionStatusMap.t.sol:PositionStatusMapTest
[PASS] test_borrowCount() (gas: 108134)
[PASS] test_borrowCount(uint256) (runs: 5000, μ: 1937004, ~: 1776924)
Logs:
Bound result 812
[PASS] test_borrowCount_ignoresInvalidBits() (gas: 122795)
[PASS] test_bucketId() (gas: 8922)
[PASS] test_collateralCount() (gas: 108082)
[PASS] test_collateralCount(uint256) (runs: 5000, μ: 1952767, ~: 1792174)
Logs:
Bound result 812
[PASS] test_collateralCount_ignoresInvalidBits() (gas: 122986)
[PASS] test_constants() (gas: 44556)
[PASS] test_fls() (gas: 509035)
[PASS] test_fromBitId(uint256,uint256) (runs: 5000, μ: 14041, ~: 14336)
Logs:
Bound result 151
Bound result 100
[PASS] test_fuzz_setBorrowing(uint256,bool) (runs: 5000, μ: 22255, ~: 32137)
[PASS] test_fuzz_setUseAsCollateral(uint256,bool) (runs: 5000, μ: 22307, ~: 32189)
[PASS] test_getBucketWord(uint256) (runs: 5000, μ: 14179, ~: 14179)
[PASS] test_isUsingAsCollateralOrBorrowing_slot0() (gas: 108352)
[PASS] test_isUsingAsCollateralOrBorrowing_slot1() (gas: 43997)
[PASS] test_isolateBorrowing(uint256) (runs: 5000, μ: 153030, ~: 153030)
[PASS] test_isolateBorrowingUntil(uint256,uint256) (runs: 5000, μ: 144752, ~: 144548)
[PASS] test_isolateCollateral(uint256) (runs: 5000, μ: 152949, ~: 152949)
[PASS] test_isolateCollateralUntil(uint256,uint256) (runs: 5000, μ: 144687, ~: 144483)
[PASS] test_isolateUntil(uint256,uint256) (runs: 5000, μ: 134620, ~: 134616)
[PASS] test_next(uint256) (runs: 5000, μ: 20051, ~: 18925)
Logs:
Bound result 649
[PASS] test_nextBorrowing(uint256) (runs: 5000, μ: 18005, ~: 16874)
Logs:
Bound result 649
[PASS] test_nextBorrowing_continuous() (gas: 61801685)
[PASS] test_nextCollateral(uint256) (runs: 5000, μ: 18180, ~: 16983)
Logs:
Bound result 649
[PASS] test_nextCollateral_continuous() (gas: 62157760)
[PASS] test_next_continuous() (gas: 89136467)
[PASS] test_popCount(bytes32) (runs: 5000, μ: 37881, ~: 38011)
[PASS] test_setBorrowing_slot0() (gas: 43906)
[PASS] test_setBorrowing_slot1() (gas: 43942)
[PASS] test_setUseAsCollateral_slot0() (gas: 44158)
[PASS] test_setUseAsCollateral_slot1() (gas: 44140)
[PASS] test_setters_use_correct_slot(uint256) (runs: 5000, μ: 36549, ~: 41309)
Suite result: ok. 32 passed; 0 failed; 0 skipped; finished in 163.70s (163.69s CPU time)
Ran 5 tests for tests/unit/Rescuable.t.sol:RescuableTest
[PASS] test_constructor() (gas: 12535)
[PASS] test_rescueNative_fuzz(uint256) (runs: 5000, μ: 33300, ~: 33478)
Logs:
Bound result 3124043968137
[PASS] test_rescueNative_revertsWith_OnlyRescueGuardian() (gas: 11089)
[PASS] test_rescueToken_fuzz(uint256) (runs: 5000, μ: 206664, ~: 206784)
Logs:
Bound result 3124043968137
[PASS] test_rescueToken_revertsWith_OnlyRescueGuardian() (gas: 180581)
Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 3.32s (3.29s CPU time)
Ran 7 tests for tests/unit/ReserveFlags.t.sol:ReserveFlagsTests
[PASS] test_constants() (gas: 12118)
[PASS] test_create_fuzz(bool,bool,bool,bool) (runs: 5000, μ: 14707, ~: 14707)
[PASS] test_setBorrowable_fuzz(uint8) (runs: 5000, μ: 13338, ~: 13338)
[PASS] test_setFrozen_fuzz(uint8) (runs: 5000, μ: 13280, ~: 13280)
[PASS] test_setPaused_fuzz(uint8) (runs: 5000, μ: 13289, ~: 13289)
[PASS] test_setReceiveSharesEnabled_fuzz(uint8) (runs: 5000, μ: 13196, ~: 13196)
[PASS] test_set_flags() (gas: 65513)
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 1.33s (1.33s CPU time)
Ran 10 tests for tests/unit/position-manager/SignatureGateway/SignatureGateway.Constants.t.sol:SignatureGatewayConstantsTest
[PASS] test_DOMAIN_SEPARATOR() (gas: 5628)
[PASS] test_borrow_typeHash() (gas: 9733)
[PASS] test_constructor() (gas: 3749)
[PASS] test_eip712Domain() (gas: 10940)
[PASS] test_repay_typeHash() (gas: 9857)
[PASS] test_setUsingAsCollateral_typeHash() (gas: 9780)
[PASS] test_supply_typeHash() (gas: 9871)
[PASS] test_updateUserDynamicConfig_typeHash() (gas: 9758)
[PASS] test_updateUserRiskPremium_typeHash() (gas: 9779)
[PASS] test_withdraw_typeHash() (gas: 9756)
Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 29.82ms (2.81ms CPU time)
Ran 5 tests for tests/unit/position-manager/SignatureGateway/SignatureGateway.PermitReserve.t.sol:SignatureGatewayPermitReserveTest
[PASS] test_permitReserve() (gas: 101550)
[PASS] test_permitReserve_forwards_correct_call() (gas: 51045)
[PASS] test_permitReserve_ignores_permit_reverts() (gas: 40070)
[PASS] test_permitReserve_revertsWith_ReserveNotListed() (gas: 30985)
[PASS] test_permitReserve_revertsWith_SpokeNotRegistered() (gas: 29349)
Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 27.05ms (1.42ms CPU time)
Ran 5 tests for tests/unit/Spoke/Spoke.AccrueLiquidityFee.EdgeCases.t.sol:SpokeAccrueLiquidityFeeEdgeCasesTest
[PASS] test_accrueLiquidityFee_fuzz_maxLiquidityFee_with_premium(uint256,uint256,uint256,uint256) (runs: 5000, μ: 558270, ~: 558318)
Logs:
Bound result 23084
Bound result 816000000
Bound result 1
Bound result 12970
[PASS] test_accrueLiquidityFee_fuzz_maxLiquidityFee_with_premium_multiple_users(uint256,uint256,uint256,uint256,uint256) (runs: 5000, μ: 819606, ~: 819703)
Logs:
Bound result 20939
Bound result 30000
Bound result 2
Bound result 447
Bound result 7929
[PASS] test_accrueLiquidityFee_maxLiquidityFee_multi_spoke() (gas: 646785780)
[PASS] test_accrueLiquidityFee_maxLiquidityFee_multi_user() (gas: 265144206)
[PASS] test_accrueLiquidityFee_maxLiquidityFee_with_premium() (gas: 558380)
Logs:
Bound result 5000
Bound result 34560000
Bound result 2
Bound result 500000000000000000000
Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 19.26s (19.23s CPU time)
Ran 7 tests for tests/unit/Spoke/Spoke.AccrueInterest.t.sol:SpokeAccrueInterestTest
[PASS] test_accrueInterest_NoActionTaken() (gas: 144102)
[PASS] test_accrueInterest_NoInterest_NoDebt(uint40) (runs: 5000, μ: 670433, ~: 670263)
Logs:
Bound result 9
[PASS] test_accrueInterest_NoInterest_OnlySupply(uint40) (runs: 5000, μ: 261597, ~: 261602)
Logs:
Bound result 9
[PASS] test_accrueInterest_TenPercentRp(uint256,uint40) (runs: 5000, μ: 599716, ~: 600151)
Logs:
Bound result 68691281934999
Bound result 0
[PASS] test_accrueInterest_fuzz_BorrowAmountAndSkipTime(uint256,uint40) (runs: 5000, μ: 559060, ~: 559422)
Logs:
Bound result 68691281934999
Bound result 0
[SKIP: pending rft] test_accrueInterest_fuzz_RPBorrowAndSkipTime((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256),uint40) (runs: 0, μ: 0, ~: 0)
[PASS] test_accrueInterest_fuzz_RatesRPBorrowAndSkipTime((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256),(uint96,uint96,uint96,uint96),uint40) (runs: 5000, μ: 4138208, ~: 4155392)
Logs:
Bound result 503120575084156721827397182537
Bound result 111
Bound result 7613
Bound result 17469
Bound result 15940
Bound result 2212
Bound result 9010
Bound result 107914
Bound result 14366
Bound result 38671
Bound result 15273
Bound result 1
Bound result 9347
Bound result 15940
Bound result 2212
Bound result 9010
Bound result 107914
Suite result: ok. 6 passed; 0 failed; 1 skipped; finished in 116.93s (116.90s CPU time)
Ran 38 tests for tests/unit/Hub/Hub.Config.t.sol:HubConfigTest
[PASS] test_addAsset_fuzz(address,uint8,address) (runs: 5000, μ: 399554, ~: 399593)
Logs:
Bound result 18
[PASS] test_addAsset_fuzz_revertsWith_InvalidAddress_feeReceiver(address,uint8,address) (runs: 5000, μ: 50273, ~: 49972)
Logs:
Bound result 12
[PASS] test_addAsset_fuzz_revertsWith_InvalidAddress_irStrategy(address,uint8,address) (runs: 5000, μ: 50338, ~: 50037)
Logs:
Bound result 12
[PASS] test_addAsset_fuzz_revertsWith_InvalidAddress_underlying(uint8,address,address) (runs: 5000, μ: 41634, ~: 41634)
[PASS] test_addAsset_fuzz_revertsWith_InvalidAssetDecimals(address,uint8,address,address) (runs: 5000, μ: 50878, ~: 50921)
Logs:
Bound result 20
[PASS] test_addAsset_fuzz_revertsWith_InvalidAssetDecimals_tooLow(address,uint8,address,address) (runs: 5000, μ: 51024, ~: 51310)
Logs:
Bound result 1
[PASS] test_addAsset_fuzz_reverts_InvalidIrData(address,uint8,address,address) (runs: 5000, μ: 74672694308, ~: 39959)
Logs:
Bound result 1
[PASS] test_addAsset_revertsWith_BlockTimestampDowncastOverflow() (gas: 961539)
[PASS] test_addAsset_revertsWith_DrawnRateDowncastOverflow() (gas: 958665)
[PASS] test_addAsset_reverts_UnderlyingAlreadyListed() (gas: 54310)
[PASS] test_addSpoke_fuzz(uint256,(uint40,uint40,uint24,bool,bool)) (runs: 5000, μ: 132570, ~: 132620)
Logs:
Bound result 2
[PASS] test_addSpoke_fuzz_revertsWith_AssetNotListed(uint256,(uint40,uint40,uint24,bool,bool)) (runs: 5000, μ: 40664, ~: 40653)
Logs:
Bound result 2210
[PASS] test_addSpoke_fuzz_revertsWith_InvalidAddress_spoke(uint256,(uint40,uint40,uint24,bool,bool)) (runs: 5000, μ: 39261, ~: 39311)
Logs:
Bound result 2
[PASS] test_addSpoke_revertsWith_SpokeAlreadyListed() (gas: 45259)
[PASS] test_getAssetId() (gas: 80435)
[PASS] test_getAssetId_fuzz_revertsWith_AssetNotListed(address) (runs: 5000, μ: 23543, ~: 23543)
[PASS] test_hub_deploy_reverts_on_InvalidConstructorInput() (gas: 772358)
[PASS] test_hub_max_riskPremium() (gas: 13555)
[PASS] test_isUnderlyingListed() (gas: 1184175)
[PASS] test_updateAssetConfig_NewFeeReceiver_noFees() (gas: 730725)
[PASS] test_updateAssetConfig_NewFeeReceiver_revertsWith_SpokeNotActive_noFees() (gas: 627634)
[PASS] test_updateAssetConfig_UseExistingSpokeAndListedAsFeeReceiver_revertsWith_SpokeAlreadyListed() (gas: 76581)
[PASS] test_updateAssetConfig_fuzz(uint256,(address,uint16,address,address)) (runs: 5000, μ: 280273, ~: 280585)
Logs:
Bound result 3
Bound result 41
[PASS] test_updateAssetConfig_fuzz_FromZeroLiquidityFee(uint256,uint16) (runs: 5000, μ: 845199, ~: 845021)
Logs:
Bound result 3
Bound result 1
Bound result 3
Bound result 0
Bound result 3
Bound result 1
[PASS] test_updateAssetConfig_fuzz_LiquidityFee(uint256,uint16) (runs: 5000, μ: 745776, ~: 745598)
Logs:
Bound result 3
Bound result 1
Bound result 3
Bound result 1
[PASS] test_updateAssetConfig_fuzz_NewDrawnRateStrategy(uint256) (runs: 5000, μ: 716936, ~: 716937)
Logs:
Bound result 3
[PASS] test_updateAssetConfig_fuzz_NewFeeReceiver(uint256) (runs: 5000, μ: 844401, ~: 844402)
Logs:
Bound result 3
Bound result 3
Bound result 1000
[PASS] test_updateAssetConfig_fuzz_ReuseFeeReceiver_revertsWith_SpokeAlreadyListed(uint256) (runs: 5000, μ: 902501, ~: 902502)
Logs:
Bound result 3
Bound result 3
Bound result 3
Bound result 1000
[PASS] test_updateAssetConfig_fuzz_Scenario(uint256) (runs: 5000, μ: 745238, ~: 745291)
Logs:
Bound result 3
Bound result 3
Bound result 1000
Bound result 3
Bound result 1000
Bound result 3
Bound result 0
Bound result 3
Bound result 0
Bound result 3
Bound result 0
Bound result 3
Bound result 0
[PASS] test_updateAssetConfig_fuzz_revertsWith_InvalidInterestRateStrategy(uint256) (runs: 5000, μ: 66974, ~: 67027)
Logs:
Bound result 3
[PASS] test_updateAssetConfig_fuzz_revertsWith_InvalidLiquidityFee(uint256,(address,uint16,address,address)) (runs: 5000, μ: 45516, ~: 45416)
Logs:
Bound result 3
Bound result 41
[PASS] test_updateAssetConfig_fuzz_revertsWith_InvalidReinvestmentController() (gas: 483161)
[PASS] test_updateAssetConfig_fuzz_revertsWith_calculateInterestRateReverts(uint256,(address,uint16,address,address)) (runs: 5000, μ: 204749, ~: 204715)
Logs:
Bound result 5
Bound result 249
[PASS] test_updateAssetConfig_fuzz_revertsWith_setInterestRateDataReverts(uint256,(address,uint16,address,address)) (runs: 5000, μ: 102190, ~: 102162)
Logs:
Bound result 3
Bound result 0
[PASS] test_updateAssetConfig_oldFeeReceiver_flags() (gas: 929318)
Logs:
Bound result 1
Bound result 500
Bound result 3
Bound result 1000
Bound result 5
Bound result 500
Bound result 3
Bound result 1000
[PASS] test_updateSpokeConfig_fuzz(uint256,(uint40,uint40,uint24,bool,bool)) (runs: 5000, μ: 65030, ~: 65089)
Logs:
Bound result 2
[PASS] test_updateSpokeConfig_fuzz_revertsWith_SpokeNotListed(uint256,address,(uint40,uint40,uint24,bool,bool)) (runs: 5000, μ: 45921, ~: 45988)
Logs:
Bound result 0
[PASS] test_updateSpokeConfig_revertsWith_AssetNotListed() (gas: 35035)
Suite result: ok. 38 passed; 0 failed; 0 skipped; finished in 99.98s (99.95s CPU time)
Ran 7 tests for tests/unit/Spoke/Spoke.AccrueLiquidityFee.t.sol:SpokeAccrueLiquidityFeeTest
[PASS] test_accrueLiquidityFee() (gas: 905647)
[PASS] test_accrueLiquidityFee_NoActionTaken() (gas: 131585)
[PASS] test_accrueLiquidityFee_NoInterest_OnlySupply(uint40) (runs: 5000, μ: 255048, ~: 254998)
Logs:
Bound result 9
[PASS] test_accrueLiquidityFee_exact() (gas: 911971)
[PASS] test_accrueLiquidityFee_fuzz_BorrowAmountAndSkipTime(uint256,uint40) (runs: 5000, μ: 985739, ~: 1013206)
Logs:
Bound result 68691281934999
Bound result 0
[PASS] test_accrueLiquidityFee_maxLiquidityFee() (gas: 560566)
[PASS] test_accrueLiquidityFee_setUsingAsCollateral() (gas: 916132)
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 20.61s (20.58s CPU time)
Ran 16 tests for tests/unit/Hub/Hub.Draw.t.sol:HubDrawTest
[PASS] test_draw_DifferentSpokes() (gas: 364091)
[PASS] test_draw_fuzz_IncreasedDrawnRate(uint256,uint256) (runs: 5000, μ: 712365, ~: 712...*[Comment body truncated]* |
♻️ Forge Gas Snapshots🔕 Unchanged
|
Forge Build Sizes🔕 Unchanged
|
Contributor
|
updated by Certora for v0.5.11 here: #1292 |
This file contains hidden or 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
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.
No description provided.