Open
Conversation
🌈 Test ResultsNo files changed, compilation skipped
Ran 4 tests for tests/unit/Spoke/Liquidations/Spoke.LiquidationCall.Dust.t.sol:SpokeLiquidationCallDustTest
[PASS] test_collateralDust_min_debtToTarget() (gas: 9624399)
[PASS] test_debtToCover_exceeds_collateralValue() (gas: 9616804)
[PASS] test_dustColl_allowed() (gas: 9482508)
[PASS] test_dustDebt_allowed() (gas: 9611795)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 56.46ms (20.16ms CPU time)
Ran 14 tests for tests/gas/Spoke.Operations.gas.t.sol:SpokeOperations_Gas_Tests
[PASS] test_borrow() (gas: 1337668)
[PASS] test_liquidation_full() (gas: 1906667)
[PASS] test_liquidation_partial() (gas: 1906384)
[PASS] test_liquidation_receiveShares_full() (gas: 1897234)
[PASS] test_liquidation_receiveShares_partial() (gas: 1896953)
[PASS] test_liquidation_reportDeficit_full() (gas: 1886283)
[PASS] test_multicall_ops() (gas: 1412423)
[PASS] test_repay() (gas: 872889)
[PASS] test_setUserPositionManagersWithSig() (gas: 307284)
[PASS] test_supply() (gas: 542426)
[PASS] test_updateRiskPremium() (gas: 1318956)
[PASS] test_updateUserDynamicConfig() (gas: 594111)
[PASS] test_usingAsCollateral() (gas: 1484992)
[PASS] test_withdraw() (gas: 1959387)
Suite result: ok. 14 passed; 0 failed; 0 skipped; finished in 87.65ms (32.33ms CPU time)
Ran 14 tests for tests/gas/Spoke.Operations.gas.t.sol:SpokeOperations_ZeroRiskPremium_Gas_Tests
[PASS] test_borrow() (gas: 1103962)
[PASS] test_liquidation_full() (gas: 1771814)
[PASS] test_liquidation_partial() (gas: 1771531)
[PASS] test_liquidation_receiveShares_full() (gas: 1762381)
[PASS] test_liquidation_receiveShares_partial() (gas: 1762100)
[PASS] test_liquidation_reportDeficit_full() (gas: 1808089)
[PASS] test_multicall_ops() (gas: 1329761)
[PASS] test_repay() (gas: 781995)
[PASS] test_setUserPositionManagersWithSig() (gas: 311738)
[PASS] test_supply() (gas: 545107)
[PASS] test_updateRiskPremium() (gas: 946508)
[PASS] test_updateUserDynamicConfig() (gas: 598565)
[PASS] test_usingAsCollateral() (gas: 1103244)
[PASS] test_withdraw() (gas: 1599601)
Suite result: ok. 14 passed; 0 failed; 0 skipped; finished in 75.32ms (28.68ms CPU time)
Ran 4 tests for tests/unit/Spoke/Spoke.PermitReserve.t.sol:SpokePermitReserveTest
[PASS] test_permitReserve() (gas: 88249)
[PASS] test_permitReserve_forwards_correct_call() (gas: 35576)
[PASS] test_permitReserve_ignores_permit_reverts() (gas: 24412)
[PASS] test_permitReserve_revertsWith_ReserveNotListedIn() (gas: 22993)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 25.36ms (1.13ms CPU time)
Ran 10 tests for tests/unit/Spoke/Spoke.PositionManager.t.sol:SpokePositionManagerTest
[PASS] test_onlyPositionManager_on_borrow() (gas: 541089)
[PASS] test_onlyPositionManager_on_repay() (gas: 563031)
[PASS] test_onlyPositionManager_on_supply() (gas: 291990)
[PASS] test_onlyPositionManager_on_updateUserDynamicConfig() (gas: 1294726)
[PASS] test_onlyPositionManager_on_updateUserRiskPremium() (gas: 1416204)
[PASS] test_onlyPositionManager_on_usingAsCollateral() (gas: 147821)
[PASS] test_onlyPositionManager_on_withdraw() (gas: 320944)
[PASS] test_renouncePositionManagerRole() (gas: 20290)
[PASS] test_renouncePositionManagerRole_noop_from_disabled() (gas: 21926)
[PASS] test_setApprovalForPositionManager(bytes32) (runs: 5000, μ: 18133, ~: 18133)
Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 405.48ms (381.90ms CPU time)
Ran 20 tests for tests/unit/AaveOracle.t.sol:AaveOracleTest
[PASS] test_DECIMALS() (gas: 8326)
[PASS] test_constructor() (gas: 18428)
[PASS] test_description() (gas: 12039)
[PASS] test_fuzz_constructor(uint8) (runs: 5000, μ: 19887, ~: 20214)
Logs:
Bound result 1
[PASS] test_getReservePrice() (gas: 48776)
[PASS] test_getReservePrice_revertsWith_InvalidPrice() (gas: 48047)
[PASS] test_getReservePrice_revertsWith_InvalidSource() (gas: 10898)
[PASS] test_getReservePrices() (gas: 80715)
[PASS] test_getReservePrices_revertsWith_InvalidSource() (gas: 50930)
[PASS] test_getReserveSource() (gas: 48946)
[PASS] test_setReserveSource() (gas: 45988)
[PASS] test_setReserveSource_revertsWith_InvalidPrice() (gas: 102779)
[PASS] test_setReserveSource_revertsWith_InvalidSource() (gas: 17228)
[PASS] test_setReserveSource_revertsWith_InvalidSourceDecimals() (gas: 17065)
[PASS] test_setReserveSource_revertsWith_OnlySpoke() (gas: 13021)
[PASS] test_setReserveSource_revertsWith_OracleMismatch() (gas: 5051592)
[PASS] test_setSpoke() (gas: 5079493)
[PASS] test_setSpoke_revertsWith_InvalidAddress() (gas: 10870)
[PASS] test_setSpoke_revertsWith_OnlyDeployer(address) (runs: 5000, μ: 13397, ~: 13397)
[PASS] test_setSpoke_revertsWith_SpokeAlreadySet() (gas: 15080)
Suite result: ok. 20 passed; 0 failed; 0 skipped; finished in 1.14s (1.12s CPU time)
Ran 7 tests for tests/unit/Spoke/Spoke.Repay.EdgeCases.t.sol:SpokeRepayEdgeCaseTest
[PASS] test_fuzz_repay_effect_on_ex_rates(uint256,uint256) (runs: 5000, μ: 688696, ~: 688517)
Logs:
Bound result 97612385398899630614842
Bound result 138010191
Bound result 94575821765687438291648
[PASS] test_repay_less_than_share() (gas: 581455)
[PASS] test_repay_only_base_debt_interest() (gas: 759850)
[PASS] test_repay_only_base_debt_no_premium() (gas: 643157)
[PASS] test_repay_supply_ex_rate_decr() (gas: 1477481)
[PASS] test_repay_supply_ex_rate_decr_skip_time() (gas: 1474097)
[PASS] test_repay_zero_shares_nonzero_premium_debt() (gas: 762648)
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 15.03s (15.00s CPU time)
Ran 17 tests for tests/unit/AccessManagerEnumerable.t.sol:AccessManagerEnumerableTest
[PASS] test_getRoleMembers_fuzz(uint256,uint256) (runs: 5000, μ: 1981485, ~: 1980367)
Logs:
Bound result 9
Bound result 10
[PASS] test_getRoleTargetSelectors_fuzz(uint256,uint256) (runs: 5000, μ: 1528839, ~: 1527966)
Logs:
Bound result 9
Bound result 10
[PASS] test_grantRole() (gas: 315886)
[PASS] test_grantRole_fuzz(uint64,uint256) (runs: 5000, μ: 922902, ~: 919753)
Logs:
Bound result 5
[PASS] test_revokeRole() (gas: 323138)
[PASS] test_setRoleAdmin_fuzz_trackAdminRoles_multipleRoles_multipleAdmins(uint256) (runs: 5000, μ: 2161397, ~: 2244247)
Logs:
Bound result 12
[PASS] test_setRoleAdmin_fuzz_trackRolesAndTrackAdminRoles_multipleRoles(uint256) (runs: 5000, μ: 1975394, ~: 2114661)
Logs:
Bound result 12
[PASS] test_setRoleAdmin_trackAdminOfRoles() (gas: 606131)
[PASS] test_setRoleAdmin_trackAdminOfRoles_changeAdminRole() (gas: 577217)
[PASS] test_setRoleAdmin_trackAdminRoles() (gas: 602311)
[PASS] test_setRoleAdmin_trackRolesAndTrackAdminRoles() (gas: 378311)
[PASS] test_setRoleGuardian_trackRoles() (gas: 263932)
[PASS] test_setTargetFunctionRole() (gas: 414440)
[PASS] test_setTargetFunctionRole_multipleTargets() (gas: 1103911)
[PASS] test_setTargetFunctionRole_removeTarget() (gas: 894967)
[PASS] test_setTargetFunctionRole_skipAddToAdminRole() (gas: 30940)
[PASS] test_setTargetFunctionRole_withReplace() (gas: 549104)
Suite result: ok. 17 passed; 0 failed; 0 skipped; finished in 22.38s (22.38s CPU time)
Ran 23 tests for tests/unit/AssetInterestRateStrategy.t.sol:AssetInterestRateStrategyTest
[PASS] test_calculateInterestRate_AtKinkPoint() (gas: 24368)
Logs:
Bound result 2000
Bound result 778565440757296803935461404101
[PASS] test_calculateInterestRate_AtMaxUtilization() (gas: 24681)
Logs:
Bound result 10000
Bound result 778565440757296803935461404101
[PASS] test_calculateInterestRate_LeftToKinkPoint(uint256) (runs: 5000, μ: 24231, ~: 24372)
Logs:
Bound result 137
Bound result 252173843969976304268974536488
[PASS] test_calculateInterestRate_RightToKinkPoint(uint256) (runs: 5000, μ: 25364, ~: 25411)
Logs:
Bound result 8137
Bound result 252173843969976304268974536488
[PASS] test_calculateInterestRate_ZeroDebtZeroLiquidity() (gas: 18783)
Logs:
Bound result 0
[PASS] test_calculateInterestRate_fuzz_ZeroDebt(uint256) (runs: 5000, μ: 19083, ~: 18834)
Logs:
Bound result 3124043968137
[PASS] test_calculateInterestRate_revertsWith_InterestRateDataNotSet() (gas: 11225)
[PASS] test_deploy_revertsWith_InvalidAddress() (gas: 3746)
[PASS] test_getBaseVariableBorrowRate() (gas: 14812)
[PASS] test_getInterestRateData() (gas: 19290)
[PASS] test_getMaxVariableBorrowRate() (gas: 15258)
[PASS] test_getOptimalUsageRatio() (gas: 14705)
[PASS] test_getVariableRateSlope1() (gas: 14791)
[PASS] test_getVariableRateSlope2() (gas: 14746)
[PASS] test_maxBorrowRate() (gas: 8312)
[PASS] test_maxOptimalRatio() (gas: 8312)
[PASS] test_minOptimalRatio() (gas: 8321)
[PASS] test_setInterestRateData() (gas: 68999)
[PASS] test_setInterestRateData_revertsWith_InvalidMaxRate() (gas: 41819)
[PASS] test_setInterestRateData_revertsWith_InvalidOptimalUsageRatio() (gas: 42380)
[PASS] test_setInterestRateData_revertsWith_InvalidRateData() (gas: 35269)
[PASS] test_setInterestRateData_revertsWith_OnlyHub() (gas: 23502)
[PASS] test_setInterestRateData_revertsWith_Slope2MustBeGteSlope1() (gas: 37658)
Suite result: ok. 23 passed; 0 failed; 0 skipped; finished in 1.14s (1.12s CPU time)
Ran 10 tests for tests/unit/misc/EIP712Hash.t.sol:EIP712HashTest
[PASS] test_constants() (gas: 13531)
[PASS] test_hash_borrow_fuzz((address,uint256,uint256,address,uint256,uint256)) (runs: 5000, μ: 6805, ~: 6805)
[PASS] test_hash_positionManagerUpdate_fuzz((address,bool)) (runs: 5000, μ: 6193, ~: 6193)
[PASS] test_hash_repay_fuzz((address,uint256,uint256,address,uint256,uint256)) (runs: 5000, μ: 6806, ~: 6806)
[PASS] test_hash_setUserPositionManagers_fuzz((address,(address,bool)[],uint256,uint256)) (runs: 5000, μ: 453554, ~: 449260)
[PASS] test_hash_setUsingAsCollateral_fuzz((address,uint256,bool,address,uint256,uint256)) (runs: 5000, μ: 7305, ~: 7305)
[PASS] test_hash_supply_fuzz((address,uint256,uint256,address,uint256,uint256)) (runs: 5000, μ: 6849, ~: 6849)
[PASS] test_hash_updateUserDynamicConfig_fuzz((address,address,uint256,uint256)) (runs: 5000, μ: 6450, ~: 6450)
[PASS] test_hash_updateUserRiskPremium_fuzz((address,address,uint256,uint256)) (runs: 5000, μ: 6471, ~: 6471)
[PASS] test_hash_withdraw_fuzz((address,uint256,uint256,address,uint256,uint256)) (runs: 5000, μ: 6805, ~: 6805)
Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 21.43s (21.43s 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, μ: 960846, ~: 936230)
Logs:
Bound result 812
[PASS] test_extSloads(uint256,bytes) (runs: 5000, μ: 1005357, ~: 937179)
Logs:
Bound result 362
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 60.21s (60.21s CPU time)
Ran 8 tests for tests/unit/misc/GatewayBase.t.sol:GatewayBaseTest
[PASS] test_constructor() (gas: 17151)
[PASS] test_registerSpoke_fuzz(address) (runs: 5000, μ: 41629, ~: 41629)
[PASS] test_registerSpoke_revertsWith_InvalidAddress() (gas: 13119)
[PASS] test_registerSpoke_revertsWith_OwnableUnauthorizedAccount() (gas: 13791)
[PASS] test_registerSpoke_unregister() (gas: 36076)
[PASS] test_renouncePositionManagerRole() (gas: 65337)
[PASS] test_renouncePositionManagerRole_revertsWith_InvalidAddress() (gas: 74242)
[PASS] test_renouncePositionManagerRole_revertsWith_OwnableUnauthorizedAccount() (gas: 74461)
Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 422.71ms (398.34ms CPU time)
Ran 5 tests for tests/gas/Gateways.Operations.gas.t.sol:NativeTokenGateway_Gas_Tests
[PASS] test_borrowNative() (gas: 924353)
[PASS] test_repayNative() (gas: 993918)
[PASS] test_supplyAndCollateralNative() (gas: 308505)
[PASS] test_supplyNative() (gas: 286736)
[PASS] test_withdrawNative() (gas: 508864)
Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 48.77ms (4.28ms CPU time)
Ran 8 tests for tests/gas/Gateways.Operations.gas.t.sol:SignatureGateway_Gas_Tests
[PASS] test_borrowWithSig() (gas: 751488)
[PASS] test_repayWithSig() (gas: 984427)
[PASS] test_setSelfAsUserPositionManagerWithSig() (gas: 209662)
[PASS] test_setUsingAsCollateralWithSig() (gas: 292627)
[PASS] test_supplyWithSig() (gas: 461059)
[PASS] test_updateUserDynamicConfigWithSig() (gas: 149565)
[PASS] test_updateUserRiskPremiumWithSig() (gas: 143206)
[PASS] test_withdrawWithSig() (gas: 409988)
Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 52.44ms (7.91ms CPU time)
Ran 6 tests for tests/unit/Hub/Hub.Access.t.sol:HubAccessTest
[PASS] test_change_authority() (gas: 206696)
[PASS] test_change_role_responsibility() (gas: 121264)
[PASS] test_hub_access_manager_exposure() (gas: 13439)
[PASS] test_hub_admin_access() (gas: 1350400)
[PASS] test_migrate_role_responsibility() (gas: 709031)
[PASS] test_setInterestRateData_access() (gas: 102679)
Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 27.97ms (3.91ms 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, μ: 5308040, ~: 5133525)
Logs:
Bound result 416966230219621053938274952927
Bound result 0
Bound result 796581240052418918521216347353
Bound result 563389367259961125742974148930
Bound result 124281697546210950467266407747
Bound result 33522909571553656
Bound result 198784650842049752704523792805
Bound result 12412
Bound result 6
Bound result 124281697546210950467266407747
Bound result 33522909571553656
Bound result 198784650842049752704523792805
Bound result 12412
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 126.69s (126.66s CPU time)
Ran 19 tests for tests/unit/Hub/Hub.Add.t.sol:HubAddTest
[PASS] test_add_AddCapReachedButNotExceeded_rounding() (gas: 667324)
[PASS] test_add_fuzz_AddCapReachedButNotExceeded(uint40) (runs: 5000, μ: 157899, ~: 157854)
Logs:
Bound result 9
[PASS] test_add_fuzz_multi_asset_multi_spoke(uint256,uint256,uint256) (runs: 5000, μ: 332517, ~: 332656)
Logs:
Bound result 3
Bound result 218470873395738003579119570309
Bound result 446067553769140138733721804
[PASS] test_add_fuzz_revertsWith_AddCapExceeded(uint40) (runs: 5000, μ: 112438, ~: 112393)
Logs:
Bound result 9
[PASS] test_add_fuzz_revertsWith_AddCapExceeded_due_to_interest(uint40,uint256,uint256) (runs: 5000, μ: 267110, ~: 266975)
Logs:
Bound result 1291
Bound result 1071208440522043736492
Bound result 173721804
[PASS] test_add_fuzz_revertsWith_InvalidShares_due_to_index(uint256,uint256,uint256) (runs: 5000, μ: 223949, ~: 224149)
Logs:
Bound result 472857025091776839778846927542
Bound result 775698876
Bound result 1
[PASS] test_add_fuzz_single_asset(uint256,address,uint256) (runs: 5000, μ: 342390, ~: 342416)
Logs:
Bound result 3
Bound result 24801959478194250780329
[PASS] test_add_fuzz_single_spoke_multi_add(uint256,uint256) (runs: 5000, μ: 805374, ~: 805403)
Logs:
Bound result 68691281934999
Bound result 100
[PASS] test_add_multi_add_minimal_shares() (gas: 322574)
[PASS] test_add_revertsWith_AmountDowncastOverflow() (gas: 360330)
[PASS] test_add_revertsWith_InsufficientTransferred() (gas: 64504)
[PASS] test_add_revertsWith_InvalidAmount() (gas: 13631)
[PASS] test_add_revertsWith_InvalidShares() (gas: 223488)
[PASS] test_add_revertsWith_SharesDowncastOverflow() (gas: 224358)
[PASS] test_add_revertsWith_SpokeHalted() (gas: 99705)
[PASS] test_add_revertsWith_SpokeNotActive() (gas: 99741)
[PASS] test_add_single_asset() (gas: 330264)
Logs:
Bound result 2
Bound result 100000000000000000000
[PASS] test_add_with_increased_index() (gas: 301390)
[PASS] test_add_with_increased_index_with_premium() (gas: 680841)
Suite result: ok. 19 passed; 0 failed; 0 skipped; finished in 44.33s (44.31s CPU time)
Ran 38 tests for tests/unit/Hub/Hub.Config.t.sol:HubConfigTest
[PASS] test_addAsset_fuzz(address,uint8,address) (runs: 5000, μ: 390363, ~: 390402)
Logs:
Bound result 18
[PASS] test_addAsset_fuzz_revertsWith_InvalidAddress_feeReceiver(address,uint8,address) (runs: 5000, μ: 45287, ~: 44992)
Logs:
Bound result 14
[PASS] test_addAsset_fuzz_revertsWith_InvalidAddress_irStrategy(address,uint8,address) (runs: 5000, μ: 45330, ~: 45035)
Logs:
Bound result 14
[PASS] test_addAsset_fuzz_revertsWith_InvalidAddress_underlying(uint8,address,address) (runs: 5000, μ: 36719, ~: 36719)
[PASS] test_addAsset_fuzz_revertsWith_InvalidAssetDecimals(address,uint8,address,address) (runs: 5000, μ: 45943, ~: 45986)
Logs:
Bound result 19
[PASS] test_addAsset_fuzz_revertsWith_InvalidAssetDecimals_tooLow(address,uint8,address,address) (runs: 5000, μ: 46020, ~: 46308)
Logs:
Bound result 0
[PASS] test_addAsset_fuzz_reverts_InvalidIrData(address,uint8,address,address) (runs: 5000, μ: 80332735023, ~: 34963)
Logs:
Bound result 0
[PASS] test_addAsset_revertsWith_BlockTimestampDowncastOverflow() (gas: 956640)
[PASS] test_addAsset_revertsWith_DrawnRateDowncastOverflow() (gas: 953770)
[PASS] test_addAsset_reverts_UnderlyingAlreadyListed() (gas: 48980)
[PASS] test_addSpoke_fuzz(uint256,(uint40,uint40,uint24,bool,bool)) (runs: 5000, μ: 126676, ~: 126726)
Logs:
Bound result 2
[PASS] test_addSpoke_fuzz_revertsWith_AssetNotListed(uint256,(uint40,uint40,uint24,bool,bool)) (runs: 5000, μ: 35246, ~: 35235)
Logs:
Bound result 115792089237210883131902427821989989825587643461317453859929938703719099006974
[PASS] test_addSpoke_fuzz_revertsWith_InvalidAddress_spoke(uint256,(uint40,uint40,uint24,bool,bool)) (runs: 5000, μ: 33929, ~: 33979)
Logs:
Bound result 2
[PASS] test_addSpoke_revertsWith_SpokeAlreadyListed() (gas: 39773)
[PASS] test_getAssetId() (gas: 73160)
[PASS] test_getAssetId_fuzz_revertsWith_AssetNotListed(address) (runs: 5000, μ: 18561, ~: 18561)
[PASS] test_hub_deploy_reverts_on_InvalidConstructorInput() (gas: 828595)
[PASS] test_hub_max_riskPremium() (gas: 8610)
[PASS] test_isUnderlyingListed() (gas: 1178408)
[PASS] test_updateAssetConfig_NewFeeReceiver_noFees() (gas: 719507)
[PASS] test_updateAssetConfig_NewFeeReceiver_revertsWith_SpokeNotActive_noFees() (gas: 618803)
[PASS] test_updateAssetConfig_UseExistingSpokeAndListedAsFeeReceiver_revertsWith_SpokeAlreadyListed() (gas: 70708)
[PASS] test_updateAssetConfig_fuzz(uint256,(address,uint16,address,address)) (runs: 5000, μ: 269305, ~: 269621)
Logs:
Bound result 2
Bound result 5526
[PASS] test_updateAssetConfig_fuzz_FromZeroLiquidityFee(uint256,uint16) (runs: 5000, μ: 822268, ~: 822129)
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, μ: 724733, ~: 724594)
Logs:
Bound result 3
Bound result 1
Bound result 3
Bound result 1
[PASS] test_updateAssetConfig_fuzz_NewFeeReceiver(uint256) (runs: 5000, μ: 823730, ~: 823764)
Logs:
Bound result 3
Bound result 3
Bound result 1000
[PASS] test_updateAssetConfig_fuzz_NewInterestRateStrategy(uint256) (runs: 5000, μ: 698324, ~: 698358)
Logs:
Bound result 3
[PASS] test_updateAssetConfig_fuzz_ReuseFeeReceiver_revertsWith_SpokeAlreadyListed(uint256) (runs: 5000, μ: 875331, ~: 875365)
Logs:
Bound result 3
Bound result 3
Bound result 3
Bound result 1000
[PASS] test_updateAssetConfig_fuzz_Scenario(uint256) (runs: 5000, μ: 700588, ~: 700641)
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, μ: 61083, ~: 61136)
Logs:
Bound result 3
[PASS] test_updateAssetConfig_fuzz_revertsWith_InvalidLiquidityFee(uint256,(address,uint16,address,address)) (runs: 5000, μ: 40144, ~: 40042)
Logs:
Bound result 2
Bound result 5526
[PASS] test_updateAssetConfig_fuzz_revertsWith_InvalidReinvestmentController() (gas: 485665)
[PASS] test_updateAssetConfig_fuzz_revertsWith_calculateInterestRateReverts(uint256,(address,uint16,address,address)) (runs: 5000, μ: 198818, ~: 199256)
Logs:
Bound result 0
Bound result 1
[PASS] test_updateAssetConfig_fuzz_revertsWith_setInterestRateDataReverts(uint256,(address,uint16,address,address)) (runs: 5000, μ: 95909, ~: 96293)
Logs:
Bound result 3
Bound result 0
[PASS] test_updateAssetConfig_oldFeeReceiver_flags() (gas: 880180)
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, μ: 59225, ~: 59284)
Logs:
Bound result 2
[PASS] test_updateSpokeConfig_fuzz_revertsWith_SpokeNotListed(uint256,address,(uint40,uint40,uint24,bool,bool)) (runs: 5000, μ: 40525, ~: 40592)
Logs:
Bound result 1
[PASS] test_updateSpokeConfig_revertsWith_AssetNotListed() (gas: 29639)
Suite result: ok. 38 passed; 0 failed; 0 skipped; finished in 94.95s (94.92s CPU time)
Ran 16 tests for tests/unit/Hub/Hub.Draw.t.sol:HubDrawTest
[PASS] test_draw_DifferentSpokes() (gas: 355609)
[PASS] test_draw_fuzz_IncreasedBorrowRate(uint256,uint256) (runs: 5000, μ: 696808, ~: 696945)
Logs:
Bound result 3
Bound result 100
[PASS] test_draw_fuzz_amounts_same_block(uint256,uint256) (runs: 5000, μ: 289182, ~: 289205)
Logs:
Bound result 3
Bound result 100
[PASS] test_draw_fuzz_revertsWith_DrawCapExceeded(uint40) (runs: 5000, μ: 82329, ~: 82284)
Logs:
Bound result 9
[PASS] test_draw_fuzz_revertsWith_DrawCapExceeded_due_to_interest(uint40,uint256,uint256) (runs: 5000, μ: 287070, ~: 287319)
Logs:
Bound result 1291
Bound result 70309
Bound result 173721804
[PASS] test_draw_fuzz_revertsWith_InsufficientLiquidity(uint256,uint256) (runs: 5000, μ: 34736, ~: 34512)
Logs:
Bound result 3
Bound result 100
[PASS] test_draw_fuzz_revertsWith_InsufficientLiquidity_due_to_draw(uint256) (runs: 5000, μ: 172812, ~: 172522)
Logs:
Bound result 3124043968137
[PASS] test_draw_fuzz_revertsWith_InsufficientLiquidity_due_to_remove(uint256) (runs: 5000, μ: 134510, ~: 134305)
Logs:
Bound result 3124043968137
[PASS] test_draw_fuzz_revertsWith_InvalidAddress(uint256) (runs: 5000, μ: 16138, ~: 16138)
[PASS] test_draw_revertsWith_DrawCapExceeded_due_to_deficit() (gas: 270524)
[PASS] test_draw_revertsWith_InsufficientLiquidity() (gas: 28289)
[PASS] test_draw_revertsWith_InsufficientLiquidity_due_to_draw() (gas: 169133)
[PASS] test_draw_revertsWith_InsufficientLiquidity_due_to_remove() (gas: 131641)
[PASS] test_draw_revertsWith_InvalidAmount() (gas: 16269)
[PASS] test_draw_revertsWith_SpokeHalted() (gas: 61452)
[PASS] test_draw_revertsWith_SpokeNotActive() (gas: 61391)
Suite result: ok. 16 passed; 0 failed; 0 skipped; finished in 23.21s (23.18s CPU time)
Ran 8 tests for tests/unit/Hub/Hub.EliminateDeficit.t.sol:HubEliminateDeficitTest
[PASS] test_eliminateDeficit(uint256) (runs: 5000, μ: 663621, ~: 663621)
[PASS] test_eliminateDeficit_fuzz_revertsWith_AccessManagedUnauthorized(address) (runs: 5000, μ: 32580, ~: 32580)
[PASS] test_eliminateDeficit_fuzz_revertsWith_ArithmeticUnderflow_CallerSpokeNoFunds(uint256) (runs: 5000, μ: 352014, ~: 352014)
[PASS] test_eliminateDeficit_revertsWith_InvalidAmount_ZeroAmountNoDeficit() (gas: 36025)
[PASS] test_eliminateDeficit_revertsWith_InvalidAmount_ZeroAmountWithDeficit() (gas: 348189)
[PASS] test_eliminateDeficit_revertsWith_InvalidAmount_on_UnregisteredCoveredSpoke() (gas: 36412)
[PASS] test_eliminateDeficit_revertsWith_SpokeNotActive_on_UnregisteredAsset() (gas: 384011)
[PASS] test_eliminateDeficit_revertsWith_callerSpokeNotActive() (gas: 159412)
Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 16.34s (16.31s CPU time)
Ran 6 tests for tests/unit/Hub/Hub.MintFeeShares.t.sol:HubMintFeeSharesTest
[PASS] test_mintFeeShares() (gas: 311952)
[PASS] test_mintFeeShares_noFees() (gas: 367852)
[PASS] test_mintFeeShares_noShares() (gas: 293098)
[PASS] test_mintFeeShares_revertsWith_AccessManagedUnauthorized() (gas: 24139)
[PASS] test_mintFeeShares_revertsWith_AssetNotListed() (gas: 27553)
[PASS] test_mintFeeShares_revertsWith_SpokeNotActive() (gas: 242798)
Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 28.23ms (3.94ms CPU time)
Ran 9 tests for tests/gas/Hub.Operations.gas.t.sol:HubOperations_Gas_Tests
[PASS] test_add() (gas: 270142)
[PASS] test_deficit() (gas: 1332851)
[PASS] test_draw() (gas: 418616)
[PASS] test_mintFeeShares() (gas: 500015)
[PASS] test_payFee_transferShares() (gas: 973359)
[PASS] test_refreshPremium() (gas: 639194)
[PASS] test_remove() (gas: 310715)
[PASS] test_restore() (gas: 877950)
[PASS] test_restore_with_transfer() (gas: 878615)
Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 49.95ms (6.90ms CPU time)
Ran 6 tests for tests/unit/Hub/Hub.PayFee.t.sol:HubPayFeeTest
[PASS] test_payFee_fuzz(uint256,uint256) (runs: 5000, μ: 704006, ~: 704154)
Logs:
Bound result 68691281934999
Bound result 0
Bound result 100
[PASS] test_payFee_fuzz_with_interest(uint256,uint256,uint256) (runs: 5000, μ: 704459, ~: 704702)
Logs:
Bound result 615514462186775432459
Bound result 10765498
Bound result 571193127101173104469
[PASS] test_payFee_revertsWith_InvalidShares() (gas: 20356)
[PASS] test_payFee_revertsWith_SpokeNotActive() (gas: 61390)
[PASS] test_payFee_revertsWith_underflow_added_shares_exceeded() (gas: 138746)
[PASS] test_payFee_revertsWith_underflow_added_shares_exceeded_with_interest() (gas: 643497)
Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 24.71s (24.69s CPU time)
Ran 8 tests for tests/unit/Spoke/Spoke.Repay.Scenario.t.sol:SpokeRepayScenarioTest
[PASS] test_fuzz_repay_borrow_twice_repay_twice((uint256,uint256,uint256,uint40),(uint256,uint256,uint256,uint40)) (runs: 5000, μ: 1212455, ~: 1217258)
Logs:
Bound result 9671
Bound result 11280
Bound result 24024024024024024025
Bound result 17470
Bound result 796
Bound result 9608
[PASS] test_fuzz_repay_multiple_users_repay_same_reserve((uint256,uint256,uint256,uint256,uint256,uint256,address),(uint256,uint256,uint256,uint256,uint256,uint256,address),(uint256,uint256,uint256,uint256,uint256,uint256,address),uint256) (runs: 5000, μ: 2015202, ~: 1985454)
Logs:
Bound result 17691
Bound result 34560000
Bound result 1000000000
Bound result 17876
Bound result 2000000000000000000
Bound result 10000000000000000000000000000
Bound result 842
[PASS] test_repay_fuzz_multiple_users_multiple_assets(((uint256,uint256,uint256,uint256,uint256),(uint256,uint256,uint256,uint256,uint256),(uint256,uint256,uint256,uint256,uint256),(uint256,uint256,uint256,uint256,uint256),address),((uint256,uint256,uint256,uint256,uint256),(uint256,uint256,uint256,uint256,uint256),(uint256,uint256,uint256,uint256,uint256),(uint256,uint256,uint256,uint256,uint256),address),((uint256,uint256,uint256,uint256,uint256),(uint256,uint256,uint256,uint256,uint256),(uint256,uint256,uint256,uint256,uint256),(uint256,uint256,uint256,uint256,uint256),address),uint40) (runs: 5000, μ: 5938116, ~: 5938397)
Logs:
Bound result 21880
Bound result 100000000000000000
Bound result 113
Bound result 2037
Bound result 931100000000000000
Bound result 216
Bound result 53660280083298761863322250544944886152122880547192670768272673805321799360845
Bound result 192
Bound result 17605
Bound result 86400
Bound result 21387
Bound result 17306
Bound result 7600
Bound result 9000000000000000000000
Bound result 11599
Bound result 8587
Bound result 11
Bound result 78340066645871065499466465281
Bound result 23376
Bound result 111
Bound result 10000
Bound result 604800
Bound result 61091349063465911747873899044606992885496025680114747940094786284142442053633
Bound result 19887
Bound result 10514
[PASS] test_repay_fuzz_two_users_multiple_assets(((uint256,uint256,uint256,uint256,uint256),(uint256,uint256,uint256,uint256,uint256),(uint256,uint256,uint256,uint256,uint256),(uint256,uint256,uint256,uint256,uint256),address),((uint256,uint256,uint256,uint256,uint256),(uint256,uint256,uint256,uint256,uint256),(uint256,uint256,uint256,uint256,uint256),(uint256,uint256,uint256,uint256,uint256),address),uint40) (runs: 5000, μ: 4208146, ~: 4208401)
Logs:
Bound result 81046247085328807221424381188
Bound result 107988334739669479149889503479
Bound result 7000000000000000000
Bound result 90032235805375033957940302488
Bound result 2000000000000000000000000000
Bound result 200000000000
Bound result 10500000000000000000000
Bound result 14849
Bound result 6000000000000000000000000000
Bound result 4294967295
Bound result 1323
Bound result 9216
Bound result 23723
Bound result 1006300000000000000
Bound result 8009
Bound result 8500
Bound result 8456
[PASS] test_repay_partial_then_max() (gas: 686117)
[PASS] test_repay_round_trip_borrow_repay(uint256,uint256,uint40,address,uint256) (runs: 5000, μ: 865708, ~: 868231)
Logs:
Bound result 2
Bound result 40156480554970129807
Bound result 470178205
Bound result 17274227773553515385346548028
[PASS] test_repay_round_trip_repay_borrow(uint256,uint256,uint256,uint40,address,uint256) (runs: 5000, μ: 949390, ~: 959123)
Logs:
Bound result 0
Bound result 2022
Bound result 15188
Bound result 856
Bound result 264231834955014069151771058332
[PASS] test_repay_two_users_repay_same_reserve((uint256,uint256,uint256,uint256,uint256,uint256,address),(uint256,uint256,uint256,uint256,uint256,uint256,address),uint256) (runs: 5000, μ: 1454834, ~: 1484641)
Logs:
Bound result 5401549876140600956580819487
Bound result 65251468040295843421393
Bound result 11263328023241632836759
Bound result 7707153379656042561281651440489383780992440
Bound result 681445185
Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 296.71s (296.68s CPU time)
Ran 2 tests for tests/unit/Spoke/Spoke.Repay.Validation.t.sol:SpokeRepayValidationTest
[PASS] test_repay_revertsWith_ReserveNotListed() (gas: 23272)
[PASS] test_repay_revertsWith_ReservePaused() (gas: 63808)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 24.76ms (382.78µs CPU time)
Ran 7 tests for tests/unit/Spoke/Spoke.AccrueInterest.t.sol:SpokeAccrueInterestTest
[PASS] test_accrueInterest_NoActionTaken() (gas: 133063)
[PASS] test_accrueInterest_NoInterest_NoDebt(uint40) (runs: 5000, μ: 633940, ~: 633769)
Logs:
Bound result 9
[PASS] test_accrueInterest_NoInterest_OnlySupply(uint40) (runs: 5000, μ: 250190, ~: 250184)
Logs:
Bound result 9
[PASS] test_accrueInterest_TenPercentRp(uint256,uint40) (runs: 5000, μ: 580500, ~: 580877)
Logs:
Bound result 68691281934999
Bound result 0
[PASS] test_accrueInterest_fuzz_BorrowAmountAndSkipTime(uint256,uint40) (runs: 5000, μ: 540222, ~: 540672)
Logs:
Bound result 68691281934999
Bound result 0
[PASS] test_accrueInterest_fuzz_RPBorrowAndSkipTime((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256),uint40) (runs: 5000, μ: 3866483, ~: 3882597)
Logs:
Bound result 416966230219621053938274952927
Bound result 0
Bound result 796581240052418918521216347353
Bound result 563389367259961125742974148930
Bound result 124281697546210950467266407747
Bound result 33522909571553656
Bound result 198784650842049752704523792805
Bound result 12412
Bound result 6
Bound result 124281697546210950467266407747
Bound result 33522909571553656
Bound result 198784650842049752704523792805
Bound result 12412
[PASS] test_accrueInterest_fuzz_RatesRPBorrowAndSkipTime((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256),(uint96,uint96,uint96,uint96),uint40) (runs: 5000, μ: 3937465, ~: 3952620)
Logs:
Bound result 558026838861657873908459897617
Bound result 3000
Bound result 1890
Bound result 719206528
Bound result 8022
Bound result 4138529641
Bound result 10627200
Bound result 1985529411
Bound result 6205
Bound result 97567
Bound result 1
Bound result 11483
Bound result 12272
Bound result 8022
Bound result 4138529641
Bound result 10627200
Bound result 1985529411
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 187.71s (187.68s CPU time)
Ran 11 tests for tests/unit/Hub/Hub.Reclaim.t.sol:HubReclaimTest
[PASS] test_reclaim() (gas: 652798)
Logs:
Bound result 1000000000000000000000
Bound result 500000000000000000000
Bound result 200000000000000000000
[PASS] test_reclaim_fullAmount() (gas: 635244)
[PASS] test_reclaim_fuzz(uint256,uint256,uint256) (runs: 5000, μ: 654502, ~: 653739)
Logs:
Bound result 615514462186775432459
Bound result 571193127101173104469
Bound result 564283877115702805413
[PASS] test_reclaim_multipleSweepsAndReclaims() (gas: 743856)
[PASS] test_reclaim_revertsWith_AssetNotListed() (gas: 13093)
[PASS] test_reclaim_revertsWith_InsufficientTransferred() (gas: 456531)
[PASS] test_reclaim_revertsWith_InsufficientTransferred_noSwept() (gas: 102557)
[PASS] test_reclaim_revertsWith_InvalidAmount_zero() (gas: 92727)
[PASS] test_reclaim_revertsWith_OnlyReinvestmentController(address) (runs: 5000, μ: 93610, ~: 93610)
[PASS] test_reclaim_revertsWith_OnlyReinvestmentController_init() (gas: 40516)
[PASS] test_reclaim_revertsWith_underflow_exceedsSwept_afterSweep() (gas: 619883)
Suite result: ok. 11 passed; 0 failed; 0 skipped; finished in 14.71s (14.68s 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, μ: 541426, ~: 541560)
Logs:
Bound result 2160
Bound result 13496
Bound result 160000000
Bound result 4
[PASS] test_accrueLiquidityFee_fuzz_maxLiquidityFee_with_premium_multiple_users(uint256,uint256,uint256,uint256,uint256) (runs: 5000, μ: 797026, ~: 797128)
Logs:
Bound result 7769
Bound result 10582
Bound result 6379
Bound result 192000000
Bound result 0
[PASS] test_accrueLiquidityFee_maxLiquidityFee_multi_spoke() (gas: 646785655)
[PASS] test_accrueLiquidityFee_maxLiquidityFee_multi_user() (gas: 258501100)
[PASS] test_accrueLiquidityFee_maxLiquidityFee_with_premium() (gas: 541722)
Logs:
Bound result 500000000000000000000
Bound result 5000
Bound result 34560000
Bound result 2
Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 18.62s (18.59s CPU time)
Ran 12 tests for tests/unit/Hub/Hub.RefreshPremium.t.sol:HubRefreshPremiumTest
[PASS] test_refreshPremium_emitsEvent() (gas: 254820)
[PASS] test_refreshPremium_fuzz_positiveDeltas(uint256,int256,int256) (runs: 5000, μ: 491040, ~: 496401)
Logs:
Bound result 999999999910000000000000000001
Bound result 1
Bound result 5386
[PASS] test_refreshPremium_fuzz_withAccrual(uint256,uint256,uint256,uint256) (runs: 5000, μ: 468352, ~: 477762)
Logs:
Bound result 7290
Bound result 370
Bound result 25000000000000000
Bound result 15832
[PASS] test_refreshPremium_haltedSpokesAllowed() (gas: 121447)
[PASS] test_refreshPremium_maxRiskPremiumThreshold() (gas: 892996)
[PASS] test_refreshPremium_negativeDeltas(uint256) (runs: 5000, μ: 461293, ~: 461846)
Logs:
Bound result 3124043968137
[PASS] test_refreshPremium_negativeDeltas_withAccrual(uint256) (runs: 5000, μ: 532673, ~: 532891)
Logs:
Bound result 3124043968137
[PASS] test_refreshPremium_revertsWith_InvalidPremiumChange_NonZeroRestoredPremiumRay() (gas: 848404)
[PASS] test_refreshPremium_revertsWith_InvalidPremiumChange_RiskPremiumThresholdExceeded_DecreasingPremium() (gas: 869682)
[PASS] test_refreshPremium_revertsWith_SpokeNotActive() (gas: 58921)
[PASS] test_refreshPremium_riskPremiumThreshold() (gas: 915174)
[PASS] test_refreshPremium_spokePremiumUpdateIsContained() (gas: 712877)
Suite result: ok. 12 passed; 0 failed; 0 skipped; finished in 20.43s (20.41s CPU time)
Ran 7 tests for tests/unit/Spoke/Spoke.AccrueLiquidityFee.t.sol:SpokeAccrueLiquidityFeeTest
[PASS] test_accrueLiquidityFee() (gas: 863407)
[PASS] test_accrueLiquidityFee_NoActionTaken() (gas: 122022)
[PASS] test_accrueLiquidityFee_NoInterest_OnlySupply(uint40) (runs: 5000, μ: 245143, ~: 245100)
Logs:
Bound result 9
[PASS] test_accrueLiquidityFee_exact() (gas: 869271)
[PASS] test_accrueLiquidityFee_fuzz_BorrowAmountAndSkipTime(uint256,uint40) (runs: 5000, μ: 941534, ~: 963442)
Logs:
Bound result 68691281934999
Bound result 0
[PASS] test_accrueLiquidityFee_maxLiquidityFee() (gas: 547569)
[PASS] test_accrueLiquidityFee_setUsingAsCollateral() (gas: 897933)
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 19.45s (19.42s CPU time)
Ran 15 tests for tests/unit/Hub/Hub.Remove.t.sol:HubRemoveTest
[PASS] test_remove() (gas: 209059)
Logs:
Bound result 2
Bound result 100000000000000000000
[PASS] test_remove_all_with_interest() (gas: 368462)
[PASS] test_remove_fuzz(uint256,uint256) (runs: 5000, μ: 207827, ~: 207765)
Logs:
Bound result 4
Bound result 100
[PASS] test_remove_fuzz_all_liquidity_with_interest(uint256,uint256) (runs: 5000, μ: 419670, ~: 419908)
Logs:
Bound result 68691281934999
Bound result 100
[PASS] test_remove_fuzz_multi_spoke(uint256,uint256) (runs: 5000, μ: 289084, ~: 289186)
Logs:
Bound result 68691281934999
Bound result 100
[PASS] test_remove_fuzz_multi_spoke_with_interest(uint256,uint256,uint256,uint256) (runs: 5000, μ: 422451, ~: 422934)
Logs:
Bound result 7162
Bound result 44562075618179104787922082173
Bound result 25000000000000000
Bound result 14916
[PASS] test_remove_revertsWith_InsufficientLiquidity() (gas: 158441)
[PASS] test_remove_revertsWith_InsufficientLiquidity_exceeding_added_amount() (gas: 147506)
[PASS] test_remove_revertsWith_InsufficientLiquidity_zero_added() (gas: 21376)
[PASS] test_remove_revertsWith_InvalidAddress() (gas: 16471)
[PASS] test_remove_revertsWith_InvalidAmount() (gas: 18628)
[PASS] test_remove_revertsWith_SpokeHalted() (gas: 61971)
[PASS] test_remove_revertsWith_SpokeNotActive() (gas: 61880)
[PASS] test_remove_revertsWith_underflow_exceeding_added_amount() (gas: 185398)
[PASS] test_remove_revertsWtih_underflow_one_extra_wei() (gas: 364768)
Suite result: ok. 15 passed; 0 failed; 0 skipped; finished in 29.98s (29.95s CPU time)
Ran 7 tests for tests/unit/Hub/Hub.ReportDeficit.t.sol:HubReportDeficitTest
[PASS] test_reportDeficit_fuzz_revertsWith_SurplusDrawnDeficitReported(uint256) (runs: 5000, μ: 218039, ~: 217740)
Logs:
Bound result 3124043968137
[PASS] test_reportDeficit_fuzz_revertsWith_SurplusPremiumRayDeficitReported(uint256) (runs: 5000, μ: 219065, ~: 218765)
Logs:
Bound result 3124043968137
[PASS] test_reportDeficit_fuzz_with_premium(uint256,uint256,uint256,uint256) (runs: 5000, μ: 674843, ~: 675725)
Logs:
Bound result 7438
Bound result 13539
Bound result 2257
Bound result 25000000000000000
[PASS] test_reportDeficit_halted() (gas: 265224)
[PASS] test_reportDeficit_revertsWith_InvalidAmount() (gas: 24893)
[PASS] test_reportDeficit_revertsWith_SpokeNotActive(address) (runs: 5000, μ: 33865, ~: 33865)
[PASS] test_reportDeficit_with_premium() (gas: 674304)
Logs:
Bound result 10000000000
Bound result 31536000
Bound result 5000000000
Bound result 0
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 17.93s (17.90s CPU time)
Ran 3 tests for tests/unit/Hub/Hub.Rescue.t.sol:HubRescueTest
[PASS] test_cannot_rescue_liquidity_fee_reverts_with_InsufficientTransferred() (gas: 274485)
[PASS] test_rescue_fuzz_with_interest(uint256,uint256) (runs: 5000, μ: 514740, ~: 514697)
Logs:
Bound result 351500639
Bound result 1256746
[PASS] test_rescue_scenario_fuzz(uint256) (runs: 5000, μ: 454260, ~: 454052)
Logs:
Bound result 3124043968137
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 17.62s (17.60s CPU time)
Ran 5 tests for tests/unit/Spoke/Spoke.Borrow.EdgeCases.t.sol:SpokeBorrowEdgeCasesTest
[PASS] test_borrow_fuzz_rounding_effect(uint256,uint256) (runs: 5000, μ: 1051035, ~: 1051130)
Logs:
Bound result 68691281934999
Bound result 100
[PASS] test_borrow_fuzz_rounding_effect_inflated_ex_rate(uint256,uint256,uint256) (runs: 5000, μ: 1426709, ~: 1426790)
Logs:
Bound result 6398
Bound result 1979
Bound result 81647149
[PASS] test_borrow_fuzz_rounding_effect_shares(uint256,uint256) (runs: 5000, μ: 1092178, ~: 1091926)
Logs:
Bound result 68691281934999
Bound result 832464101
[PASS] test_borrow_rounding_effect_multiple_actions() (gas: 1155831)
[PASS] test_borrow_rounding_effect_shares() (gas: 1091188)
Logs:
Bound result 5000000000000000000
Bound result 94608000
Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 59.05s (59.02s CPU time)
Ran 23 tests for tests/unit/Hub/Hub.Restore.t.sol:HubRestoreTest
[PASS] test_restore_full_amount_with_interest() (gas: 364467)
Logs:
Bound result 1000000000000000000000
Bound result 500000000000000000000
Bound result 31536000
[PASS] test_restore_full_amount_with_interest_and_premium() (gas: 677228)
Logs:
Bound result 100000000000000000000
Bound result 50000000000000000000
Bound result 31536000
Bound result 1
[PASS] test_restore_fuzz_full_amount_with_interest(uint256,uint256,uint256) (runs: 5000, μ: 365791, ~: 365885)
Logs:
Bound result 615514462186775432459
Bound result 571193127101173104469
Bound result 173721804
[PASS] test_restore_fuzz_full_amount_with_interest_and_premium(uint256,uint256,uint256,uint256) (runs: 5000, μ: 668096, ~: 679169)
Logs:
Bound result 8001
Bound result 3074
Bound result 160000000
Bound result 59
[PASS] test_restore_fuzz_revertsWith_SurplusDrawnRestored_with_interest(uint256,uint256,uint256) (runs: 5000, μ: 243864, ~: 245029)
Logs:
Bound result 615514462186775432459
Bound result 571193127101173104469
Bound result 173721804
[PASS] test_restore_fuzz_revertsWith_SurplusDrawnRestored_with_interest_and_premium(uint256,uint256,uint256,uint256) (runs: 5000, μ: 641783, ~: 641967)
Logs:
Bound result 8001
Bound result 3074
Bound result 160000000
Bound result 59
[PASS] test_restore_one_share_delta_increase_revertsWith_InvalidPremiumChange() (gas: 212023)
[PASS] test_restore_partial_drawn() (gas: 322839)
[PASS] test_restore_partial_same_block() (gas: 322965)
[PASS] test_restore_premiumDeltas_twoWeiIncrease_realizedDelta() (gas: 232750)
[PASS] test_restore_revertsWith_InsufficientTransferred() (gas: 252534)
[PASS] test_restore_revertsWith_InvalidAmount_zero() (gas: 55190)
[PASS] test_restore_revertsWith_InvalidPremiumChange_premiumIncrease() (gas: 219010)
[PASS] test_restore_revertsWith_InvalidPremiumChange_premiumSharesIncrease() (gas: 218987)
[PASS] test_restore_revertsWith_SpokeHalted() (gas: 96400)
[PASS] test_restore_revertsWith_SpokeNotActive_whenPaused() (gas: 178529)
[PASS] test_restore_revertsWith_SurplusDrawnRestored() (gas: 361711)
[PASS] test_restore_revertsWith_SurplusDrawnRestored_with_interest() (gas: 243654)
Logs:
Bound result 100000000000000000000
Bound result 50000000000000000000
Bound result 15768000
[PASS] test_restore_revertsWith_SurplusDrawnRestored_with_interest_and_premium() (gas: 640049)
Logs:
Bound result 100000000000000000000
Bound result 50000000000000000000
Bound result 31536000
Bound result 1
[PASS] test_restore_revertsWith_SurplusPremiumRayRestored() (gas: 527106)
[PASS] test_restore_revertsWith_underflow_offsetIncrease() (gas: 227844)
[PASS] test_restore_tooMuchDrawn_revertsWith_SurplusDrawnRestored() (gas: 217219)
[PASS] test_restore_when_asset_frozen() (gas: 435785)
Suite result: ok. 23 passed; 0 failed; 0 skipped; finished in 18.69s (18.67s CPU time)
Ran 1 test for tests/unit/Hub/Hub.Rounding.t.sol:HubRoundingTest
[PASS] test_sharePriceWithMultipleDonations() (gas: 664838367)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 3.00s (2.97s CPU time)
Ran 4 tests for tests/unit/Hub/Hub.Skim.t.sol:HubSkimTest
[PASS] test_skimAdd_fuzz_donationAfterAdd(uint256,uint256,uint256) (runs: 5000, μ: 228253, ~: 228322)
Logs:
Bound result 3
Bound result 18470873395738003579119570309
Bound result 446067553769140138733721804
[PASS] test_skimAdd_fuzz_donationBeforeAdd(uint256,uint256,uint256) (runs: 5000, μ: 228285, ~: 228354)
Logs:
Bound result 3
Bound result 18470873395738003579119570309
Bound result 446067553769140138733721804
[PASS] test_skimAdd_fuzz_wrongSpokeTransfer(uint256,uint256,uint256) (runs: 5000, μ: 217376, ~: 217318)
Logs:
Bound result 3
Bound result 18132171100462486213502917929
Bound result 446067553769140138733721804
[PASS] test_skimRestore_fuzz_liquidityDonation(uint256,uint256,uint256) (runs: 5000, μ: 272681, ~: 274099)
Logs:
Bound result 3
Bound result 18470873395738003579119570309
Bound result 446067553769140138733721804
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 27.51s (27.47s CPU time)
Ran 10 tests for tests/unit/Hub/Hub.SpokeConfig.t.sol:HubSpokeConfigTest
[PASS] test_add_active_halted_scenarios() (gas: 303697)
[PASS] test_draw_active_halted_scenarios() (gas: 304401)
[PASS] test_eliminateDeficit_active_halted_scenarios() (gas: 839045)
[PASS] test_mintFeeShares_active_halted_scenarios() (gas: 840127)
[PASS] test_payFeeShares_active_halted_scenarios() (gas: 369293)
[PASS] test_refreshPremium_active_halted_scenarios() (gas: 267114)
[PASS] test_remove_active_halted_scenarios() (gas: 319533)
[PASS] test_reportDeficit_active_halted_scenarios() (gas: 444976)
[PASS] test_restore_active_halted_scenarios() (gas: 355320)
[PASS] test_transferShares_fuzz_active_halted_scenarios(bool,bool,bool,bool) (runs: 5000, μ: 213534, ~: 213548)
Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 4.16s (4.14s CPU time)
Ran 8 tests for tests/unit/Hub/Hub.Sweep.t.sol:HubSweepTest
[PASS] test_sweep() (gas: 483313)
Logs:
Bound result 1000000000000000000000
Bound result 1000000000000000000000
[PASS] test_sweep_does_not_impact_utilization(uint256,uint256) (runs: 5000, μ: 630393, ~: 631544)
Logs:
Bound result 68691281934999
Bound result 100
[PASS] test_sweep_fuzz(uint256,uint256) (runs: 5000, μ: 483843, ~: 483833)
Logs:
Bound result 68691281934999
Bound result 100
[PASS] test_sweep_revertsWith_AssetNotListed() (gas: 12581)
[PASS] test_sweep_revertsWith_InsufficientLiquidity() (gas: 219906)
[PASS] test_sweep_revertsWith_InvalidAmount() (gas: 103891)
[PASS] test_sweep_revertsWith_OnlyReinvestmentController(address) (runs: 5000, μ: 93952, ~: 93952)
[PASS] test_sweep_revertsWith_OnlyReinvestmentController_init() (gas: 40055)
Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 18.32s (18.30s CPU time)
Ran 7 tests for tests/unit/Hub/Hub.TransferShares.t.sol:HubTransferSharesTest
[PASS] test_transferShares() (gas: 191458)
Logs:
Bound result 1000000000000000000000
Bound result 1000000000000000000000
[PASS] test_transferShares_fuzz(uint256,uint256) (runs: 5000, μ: 194838, ~: 195041)
Logs:
Bound result 68691281934999
Bound result 100
[PASS] test_transferShares_fuzz_revertsWith_underflow_spoke_added_shares_exceeded(uint256) (runs: 5000, μ: 151444, ~: 151155)
Logs:
Bound result 3124043968137
[PASS] test_transferShares_revertsWith_AddCapExceeded() (gas: 195772)
[PASS] test_transferShares_revertsWith_SpokeHalted() (gas: 184926)
[PASS] test_transferShares_revertsWith_SpokeNotActive() (gas: 178190)
[PASS] test_transferShares_zeroShares_revertsWith_InvalidShares() (gas: 22595)
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 7.62s (7.59s CPU time)
Ran 17 tests for tests/unit/Spoke/Spoke.Repay.t.sol:SpokeRepayTest
[PASS] test_fuzz_amounts_repay_only_premium(uint256,uint256,uint40) (runs: 5000, μ: 870020, ~: 873220)
Logs:
Bound result 615514462186775432459
Bound result 6348
Bound result 363243867333215
[PASS] test_fuzz_repay_amounts_only_interest(uint256,uint256,uint40) (runs: 5000, μ: 881666, ~: 886973)
Logs:
Bound result 615514462186775432459
Bound result 6348
Bound result 6773030186390597
[PASS] test_fuzz_repay_only_premium(uint256,uint40) (runs: 5000, μ: 757191, ~: 757499)
Logs:
Bound result 68691281934999
Bound result 1
Bound result 1
[PASS] test_fuzz_repay_same_block_fuzz_amounts(uint256,uint256) (runs: 5000, μ: 887304, ~: 897717)
Logs:
Bound result 68691281934999
Bound result 100
[PASS] test_fuzz_repay_x_y_shares(uint256,uint40) (runs: 5000, μ: 620334, ~: 620558)
Logs:
Bound result 68691281934999
Bound result 1
[PASS] test_repay() (gas: 698570)
[PASS] test_repay_all_with_accruals() (gas: 419558)
[PASS] test_repay_fuzz_amountsAndWait(uint256,uint256,uint40) (runs: 5000, μ: 928195, ~: 930143)
Logs:
Bound result 615514462186775432459
Bound result 571193127101173104469
Bound result 6348
[PASS] test_repay_fuzz_amounts_base_debt(uint256,uint256,uint40) (runs: 5000, μ: 926249, ~: 939367)
Logs:
Bound result 615514462186775432459
Bound result 6348
Bound result 12587671819954927
[PASS] test_repay_fuzz_amounts_base_debt_no_premium(uint256,uint256,uint40) (runs: 5000, μ: 806023, ~: 815301)
Logs:
Bound result 615514462186775432459
Bound result 6348
Bound result 12587671819954927
[PASS] test_repay_fuzz_revertsWith_ERC20InsufficientBalance(uint256) (runs: 5000, μ: 556319, ~: 556480)
Logs:
Bound result 3124043968137
[PASS] test_repay_max() (gas: 599375)
[PASS] test_repay_multiple_reserves_fuzz_amountsAndWait(uint256,uint256,uint256,uint256,uint256,uint40) (runs: 5000, μ: 3286217, ~: 3292312)
Logs:
Bound result 248111466093868109584737499669
Bound result 1
Bound result 292118375570773983824922877658
Bound result 497988695728090053839266215334
Bound result 5861
Bound result 2947297
[PASS] test_repay_only_interest() (gas: 721830)
[PASS] test_repay_revertsWith_ERC20InsufficientAllowance() (gas: 558683)
[PASS] test_repay_revertsWith_ReentrancyGuardReentrantCall() (gas: 650672)
[PASS] test_repay_same_block() (gas: 680899)
Suite result: ok. 17 passed; 0 failed; 0 skipped; finished in 185.72s (185.70s CPU time)
Ran 5 tests for tests/unit/Spoke/Spoke.ReserveConfig.t.sol:SpokeReserveConfigTest
[PASS] test_borrow_fuzz_borrowable_paused_frozen_scenarios(bool,bool,bool) (runs: 5000, μ: 284025, ~: 258581)
[PASS] test_repay_fuzz_paused_scenarios(bool) (runs: 5000, μ: 555646, ~: 554286)
[PASS] test_setUsingAsCollateral_fuzz_paused_frozen_scenarios(bool) (runs: 5000, μ: 187846, ~: 187858)
[PASS] test_supply_paused_frozen_scenarios() (gas: 322293)
[PASS] test_withdraw_paused_scenarios() (gas: 297680)
Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 16.13s (16.10s CPU time)
Ran 6 tests for tests/unit/Hub/HubAccrueInterest.t.sol:HubAccrueInterestTest
[PASS] test_accrueInterest_NoActionTaken() (gas: 42658)
[PASS] test_accrueInterest_NoInterest_NoDebt(uint40) (runs: 5000, μ: 391668, ~: 391564)
Logs:
Bound result 9
[PASS] test_accrueInterest_NoInterest_OnlyAdd(uint40) (runs: 5000, μ: 206818, ~: 206752)
Logs:
Bound result 9
[PASS] test_accrueInterest_fuzz_BorrowAmountAndElapsed(uint256,uint40) (runs: 5000, μ: 271354, ~: 271241)
Logs:
Bound result 68691281934999
Bound result 1
[PASS] test_accrueInterest_fuzz_BorrowAmountRateAndElapsed(uint256,uint256,uint40) (runs: 5000, μ: 392439, ~: 392185)
Logs:
Bound result 615514462186775432459
Bound result 27544
Bound result 6348
[PASS] test_accrueInterest_fuzz_BorrowAndWait(uint40) (runs: 5000, μ: 270073, ~: 269969)
Logs:
Bound result 9
Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 24.60s (24.57s CPU time)
Ran 13 tests for tests/unit/HubConfigurator.GranularAccessControl.t.sol:HubConfiguratorGranularAccessControlTest
[PASS] test_assetManager_canCall_deactivateAsset() (gas: 138311)
[PASS] test_assetManager_canCall_freezeAsset() (gas: 138808)
[PASS] test_assetManager_canCall_haltAsset() (gas: 138304)
[PASS] test_assetManager_canCall_updateLiquidityFee() (gas: 84252)
[PASS] test_assetManager_cannotCall_anySpokeManagerMethod() (gas: 354044)
[PASS] test_fuzz_unauthorized_cannotCall_assetManagerMethods(address) (runs: 5000, μ: 277851, ~: 277851)
[PASS] test_fuzz_unauthorized_cannotCall_spokeManagerMethods(address) (runs: 5000, μ: 352501, ~: 352501)
[PASS] test_spokeManager_canCall_addSpoke() (gas: 126788)
[PASS] test_spokeManager_canCall_freezeSpoke() (gas: 185593)
[PASS] test_spokeManager_canCall_updateSpokeActive() (gas: 65981)
[PASS] test_spokeManager_canCall_updateSpokeCaps() (gas: 66571)
[PASS] test_spokeManager_canCall_updateSpokeHalted() (gas: 65950)
[PASS] test_spokeManager_cannotCall_anyAssetManagerMethod() (gas: 278828)
Suite result: ok. 13 passed; 0 failed; 0 skipped; finished in 5.78s (5.75s CPU time)
Ran 60 tests for tests/unit/HubConfigurator.t.sol:HubConfiguratorTest
[PASS] test_addAsset_fuzz(bool,address,uint8,address,uint256,uint16,uint32,uint32,uint32) (runs: 5000, μ: 448783, ~: 449354)
Logs:
Bound result 18
Bound result 402
Bound result 7903
Bound result 1001
Bound result 792
Bound result 794
[PASS] test_addAsset_fuzz_revertsWith_AccessManagedUnauthorized(address) (runs: 5000, μ: 42288, ~: 42657)
[PASS] test_addAsset_fuzz_revertsWith_InvalidAssetDecimals(bool,address,uint8,address,uint256,address) (runs: 5000, μ: 65192, ~: 65166)
Logs:
Bound result 21
Bound result 5098
[PASS] test_addAsset_revertsWith_InvalidAddress_irStrategy() (gas: 58278)
[PASS] test_addAsset_revertsWith_InvalidAddress_underlying() (gas: 58215)
[PASS] test_addAsset_revertsWith_InvalidLiquidityFee() (gas: 350383)
[PASS] test_addAsset_reverts_invalidIrData() (gas: 76481)
[PASS] test_addSpoke() (gas: 135454)
[PASS] test_addSpokeToAssets() (gas: 232696)
[PASS] test_addSpokeToAssets_revertsWith_AccessManagedUnauthorized() (gas: 28173)
[PASS] test_addSpokeToAssets_revertsWith_MismatchedConfigs() (gas: 35927)
[PASS] test_addSpoke_revertsWith_AccessManagedUnauthorized() (gas: 27817)
[PASS] test_deactivateAsset() (gas: 176571)
[PASS] test_deactivateAsset_revertsWith_AccessManagedUnauthorized() (gas: 28980)
[PASS] test_deactivateSpoke() (gas: 175379)
[PASS] test_deactivateSpoke_revertsWith_AccessManagedUnauthorized() (gas: 29017)
[PASS] test_freezeAsset() (gas: 250720)
[PASS] test_freezeAsset_revertsWith_AccessManagedUnauthorized() (gas: 28957)
[PASS] test_freezeSpoke() (gas: 268347)
[PASS] test_freezeSpoke_revertsWith_AccessManagedUnauthorized() (gas: 28983)
[PASS] test_haltAsset() (gas: 176538)
[PASS] test_haltAsset_revertsWith_AccessManagedUnauthorized() (gas: 28959)
[PASS] test_haltSpoke() (gas: 175422)
[PASS] test_haltSpoke_revertsWith_AccessManagedUnauthorized() (gas: 29047)
[PASS] test_updateFeeConfig_Scenario() (gas: 353334)
Logs:
Bound result 0
Bound result 1800
Bound result 0
Bound result 400
Bound result 0
Bound result 0
[PASS] test_updateFeeConfig_fuzz(uint256,uint16,address) (runs: 5000, μ: 195306, ~: 195589)
Logs:
Bound result 1
Bound result 5528
[PASS] test_updateFeeConfig_fuzz_revertsWith_AccessManagedUnauthorized(address) (runs: 5000, μ: 28541, ~: 28541)
[PASS] test_updateFeeConfig_revertsWith_InvalidAddress_spoke() (gas: 59417)
[PASS] test_updateFeeConfig_revertsWith_InvalidLiquidityFee() (gas: 62571)
[PASS] test_updateFeeReceiver_Scenario() (gas: 227747)
[PASS] test_updateFeeReceiver_WithdrawFromOldSpoke() (gas: 429680)
[PASS] test_updateFeeReceiver_correctAccruals() (gas: 466644)
[PASS] test_updateFeeReceiver_fuzz(address) (runs: 5000, μ: 188860, ~: 188895)
[PASS] test_updateFeeReceiver_fuzz_revertsWith_AccessManagedUnauthorized(address) (runs: 5000, μ: 28203, ~: 28203)
[PASS] test_updateFeeReceiver_revertsWith_InvalidAddress_spoke() (gas: 64073)
[PASS] test_updateFeeReceiver_revertsWith_SpokeAlreadyListed() (gas: 89414)
[PASS] test_updateInterestRateData() (gas: 81945)
[PASS] test_updateInterestRateData_revertsWith_AccessManagedUnauthorized() (gas: 30139)
[PASS] test_updateInterestRateStrategy() (gas: 102783)
[PASS] test_updateInterestRateStrategy_fuzz_revertsWith_AccessManagedUnauthorized(address) (runs: 5000, μ: 39578, ~: 39578)
[PASS] test_updateInterestRateStrategy_revertsWith_InterestRateStrategyReverts() (gas: 85998)
[PASS] test_updateInterestRateStrategy_revertsWith_InvalidAddress_irStrategy() (gas: 75564)
[PASS] test_updateInterestRateStrategy_revertsWith_InvalidInterestRateStrategy() (gas: 76199)
[PASS] test_updateLiquidityFee_fuzz(uint256,uint16) (runs: 5000, μ: 100461, ~: 102085)
Logs:
Bound result 3
Bound result 0
[PASS] test_updateLiquidityFee_revertsWith_AccessManagedUnauthorized() (gas: 27627)
[PASS] test_updateLiquidityFee_revertsWith_InvalidLiquidityFee() (gas: 64212)
[PASS] test_updateReinvestmentController() (gas: 110937)
[PASS] test_updateReinvestmentController_fuzz_revertsWith_AccessManagedUnauthorized(address) (runs: 5000, μ: 28182, ~: 28182)
[PASS] test_updateSpokeActive() (gas: 99319)
[PASS] test_updateSpokeActive_revertsWith_AccessManagedUnauthorized() (gas: 31303)
[PASS] test_updateSpokeCaps() (gas: 75455)
[PASS] test_updateSpokeCaps_revertsWith_AccessManagedUnauthorized() (gas: 31260)
[PASS] test_updateSpokeDrawCap() (gas: 75282)
[PASS] test_updateSpokeDrawCap_revertsWith_AccessManagedUnauthorized() (gas: 31293)
[PASS] test_updateSpokeHalted() (gas: 102032)
[PASS] test_updateSpokeHalted_revertsWith_AccessManagedUnauthorized() (gas: 31302)
[PASS] test_updateSpokeRiskPremiumThreshold() (gas: 75305)
[PASS] test_updateSpokeRiskPremiumThreshold_revertsWith_AccessManagedUnauthorized() (gas: 31261)
[PASS] test_updateSpokeSupplyCap() (gas: 75277)
[PASS] test_updateSpokeSupplyCap_revertsWith_AccessManagedUnauthorized() (gas: 31271)
Suite result: ok. 60 passed; 0 failed; 0 skipped; finished in 12.40s (12.37s CPU time)
Ran 17 tests for tests/unit/Spoke/Spoke.Borrow.HealthFactor.t.sol:SpokeBorrowHealthFactorTest
[PASS] test_borrow_fuzz_revertsWith_HealthFactorBelowThreshold_collateral_price_drop(uint256,uint256) (runs: 5000, μ: 912443, ~: 912411)
Logs:
Bound result 100
Bound result 68691281934999
[PASS] test_borrow_fuzz_revertsWith_HealthFactorBelowThreshold_multiple_colls(uint256,uint256) (runs: 5000, μ: 859465, ~: 860078)
Logs:
Bound result 90000000000000000000
Bound result 12821
[PASS] test_borrow_fuzz_revertsWith_HealthFactorBelowThreshold_multiple_colls_with_interest(uint256,uint256,uint256) (runs: 5000, μ: 895122, ~: 895439)
Logs:
Bound result 16978197397541
Bound result 14961168679241
Bound result 3
[PASS] test_borrow_fuzz_revertsWith_HealthFactorBelowThreshold_multiple_debts(uint256,uint256) (runs: 5000, μ: 1099098, ~: 1099313)
Logs:
Bound result 99999999999068691281935000
Bound result 99999999999000000000000101
[PASS] test_borrow_fuzz_revertsWith_HealthFactorBelowThreshold_multiple_debts_with_interest(uint256,uint256,uint256) (runs: 5000, μ: 1137152, ~: 1136991)
Logs:
Bound result 27
Bound result 489855705179353925200836329530
Bound result 156030498
[PASS] test_borrow_fuzz_revertsWith_HealthFactorBelowThreshold_with_interest(uint256,uint256) (runs: 5000, μ: 675020, ~: 675300)
Logs:
Bound result 25000000000000000
Bound result 352000000
[PASS] test_borrow_revertsWith_HealthFactorBelowThreshold() (gas: 643419)
[PASS] test_borrow_revertsWith_HealthFactorBelowThreshold_collateral_price_drop_weth() (gas: 906661)
[PASS] test_borrow_revertsWith_HealthFactorBelowThreshold_multiple_colls() (gas: 853841)
[PASS] test_borrow_revertsWith_HealthFactorBelowThreshold_multiple_colls_collateral_price_drop_dai() (gas: 1126741)
[PASS] test_borrow_revertsWith_HealthFactorBelowThreshold_multiple_colls_collateral_price_drop_weth() (gas: 1126785)
[PASS] test_borrow_revertsWith_HealthFactorBelowThreshold_multiple_colls_with_interest() (gas: 890448)
[PASS] test_borrow_revertsWith_HealthFactorBelowThreshold_multiple_debts() (gas: 1092636)
[PASS] test_borrow_revertsWith_HealthFactorBelowThreshold_multiple_debts_with_interest() (gas: 1129970)
[PASS] test_borrow_revertsWith_HealthFactorBelowThreshold_with_interest() (gas: 670006)
[PASS] test_fuzz_borrow_revertsWith_HealthFactorBelowThreshold_multiple_colls_collateral_price_drop_dai(uint256,uint256,uint256) (runs: 5000, μ: 1130684, ~: 1131288)
Logs:
Bound result 77482892411
Bound result 54994262
Bound result 194401
[PASS] test_fuzz_borrow_revertsWith_HealthFactorBelowThreshold_multiple_colls_collateral_price_drop_weth(uint256,uint256,uint256) (runs: 5000, μ: 1131154, ~: 1131310)
Logs:
Bound result 77482892411
Bound result 54994262
Bound result 194401
Suite result: ok. 17 passed; 0 failed; 0 skipped; finished in 121.93s (121.90s CPU time)
Ran 9 tests for tests/unit/libraries/KeyValueList.t.sol:KeyValueListTest
[PASS] test_add_unique() (gas: 354262)
[PASS] test_fuzz_add(uint256,uint256) (runs: 5000, μ: 231324, ~: 232296)
[PASS] test_fuzz_add_unique(uint256,uint256) (runs: 5000, μ: 254140, ~: 254508)
Logs:
Bound result 100
[PASS] test_fuzz_get(uint256[]) (runs: 5000, μ: 408309, ~: 409179)
[PASS] test_fuzz_get_uninitialized(uint256[]) (runs: 5000, μ: 279586, ~: 261724)
[PASS] test_fuzz_get_uninitialized_sorted(uint256[]) (runs: 5000, μ: 186023, ~: 161277)
[PASS] test_fuzz_sortByKey(uint256[]) (runs: 5000, μ: 466196, ~: 460979)
[PASS] test_fuzz_sortByKey_length(uint256) (runs: 5000, μ: 217117, ~: 216306)
Logs:
Bound result 37
[PASS] test_fuzz_sortByKey_with_collision(uint256[]) (runs: 5000, μ: 545242, ~: 542639)
Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 69.63s (69.63s CPU time)
Ran 3 tests for tests/unit/libraries/LiquidationLogic/LiquidationLogic.DebtToLiquidate.t.sol:LiquidationLogicDebtToLiquidateTest
[PASS] test_calculateDebtToLiquidate_fuzz((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)) (runs: 5000, μ: 30200, ~: 30267)
Logs:
Bound result 1
Bound result 11604
Bound result 8176
Bound result 1101723444617478663
Bound result 12412
Bound result 4101085102398758
Bound result 9
Bound result 624281697546212355234969681685
Bound result 0
[PASS] test_calculateDebtToLiquidate_fuzz_AmountAdjustedDueToDust((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)) (runs: 5000, μ: 31929, ~: 32003)
Logs:
Bound result 1
Bound result 11604
Bound result 8176
Bound result 1101723444617478663
Bound result 12412
Bound result 4101085102398758
Bound result 9
Bound result 624281697546212355234969681685
Bound result 0
Bound result 2
[PASS] test_calculateDebtToLiquidate_fuzz_ImpossibleToAdjustForDust((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)) (runs: 5000, μ: 33999, ~: 33950)
Logs:
Bound result 1
Bound result 11604
Bound result 8176
Bound result 1101723444617478663
Bound result 12412
Bound result 4101085102398758
Bound result 9
Bound result 624281697546212355234969681685
Bound result 0
Bound result 5
Bound result 10000000000000000
Bound result 1
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 3.47s (3.45s CPU time)
Ran 7 tests for tests/unit/libraries/LiquidationLogic/LiquidationLogic.DebtToTargetHealthFactor.t.sol:LiquidationLogicDebtToTargetHealthFactorTest
[PASS] test_calculateDebtToTargetHealthFactor_HealthFactorEqualsTargetHealthFactor((uint256,uint256,uint256,uint256,uint256,uint256,uint256)) (runs: 5000, μ: 22804, ~: 22724)
Logs:
Bound result 3116123919
Bound result 10725
Bound result 2977
Bound result 1486249897798496545
Bound result 555054242782847130
Bound result 6199474701275945
Bound result 9
[PASS] test_calculateDebtToTargetHealthFactor_NoPrecisionLoss() (gas: 24870)
[PASS] test_calculateDebtToTargetHealthFactor_PrecisionLoss() (gas: 14911)
[PASS] test_calculateDebtToTargetHealthFactor_UnitPrice() (gas: 24870)
[PASS] test_calculateDebtToTargetHealthFactor_fuzz_NoRevert((uint256,uint256,uint256,uint256,uint256,uint256,uint256)) (runs: 5000, μ: 19930, ~: 19850)
Logs:
Bound result 3116123919
Bound result 10725
Bound result 2977
Bound result 1486249897798496545
Bound result 555054242782847130
Bound result 6199474701275945
Bound result 9
[PASS] test_calculateDebtToTargetHealthFactor_fuzz_revertsWith_DivisionByZero_ZeroAssetPrice((uint256,uint256,uint256,uint256,uint256,uint256,uint256)) (runs: 5000, μ: 22562, ~: 22482)
Logs:
Bound result 3116123919
Bound result 10725
Bound result 2977
Bound result 1486249897798496545
Bound result 555054242782847130
Bound result 6199474701275945
Bound result 9
[PASS] test_calculateDebtToTargetHealthFactor_revertsWith_ArithmeticError_TargetHealthFactorLessThanHealthFactor((uint256,uint256,uint256,uint256,uint256,uint256,uint256)) (runs: 5000, μ: 22545, ~: 22465)
Logs:
Bound result 3116123919
Bound result 10725
Bound result 2977
Bound result 1486249897798496545
Bound result 555054242782847130
Bound result 6199474701275945
Bound result 9
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 2.97s (2.95s CPU time)
Ran 16 tests for tests/unit/libraries/LiquidationLogic/LiquidationLogic.EvaluateDeficit.t.sol:LiquidationLogicEvaluateDeficitTest
[PASS] test_evaluateDeficit_CRE_SCCM_DRE_BRCM() (gas: 8885)
[PASS] test_evaluateDeficit_CRE_SCCM_DRE_BRCO() (gas: 8853)
[PASS] test_evaluateDeficit_CRE_SCCM_DRN_BRCM() (gas: 8874)
[PASS] test_evaluateDeficit_CRE_SCCM_DRN_BRCO() (gas: 8841)
[PASS] test_evaluateDeficit_CRE_SCCO_DRE_BRCM() (gas: 8867)
[PASS] test_evaluateDeficit_CRE_SCCO_DRE_BRCO() (gas: 8934)
[PASS] test_evaluateDeficit_CRE_SCCO_DRN_BRCM() (gas: 8899)
[PASS] test_evaluateDeficit_CRE_SCCO_DRN_BRCO() (gas: 8887)
[PASS] test_evaluateDeficit_CRN_SCCM_DRE_BRCM() (gas: 8887)
[PASS] test_evaluateDeficit_CRN_SCCM_DRE_BRCO() (gas: 8876)
[PASS] test_evaluateDeficit_CRN_SCCM_DRN_BRCM() (gas: 8810)
[PASS] test_evaluateDeficit_CRN_SCCM_DRN_BRCO() (gas: 8843)
[PASS] test_evaluateDeficit_CRN_SCCO_DRE_BRCM() (gas: 8820)
[PASS] test_evaluateDeficit_CRN_SC...*[Comment body truncated]* |
♻️ Forge Gas Snapshots
🔕 Unchanged
|
Forge Build Sizes
🔕 Unchanged
|
miguelmtzinf
reviewed
Feb 5, 2026
miguelmtzinf
reviewed
Feb 5, 2026
| "updateUserDynamicConfig: 1 collateral": "74603", | ||
| "updateUserDynamicConfig: 2 collaterals": "89520", | ||
| "updateUserDynamicConfig: 1 collateral": "76744", | ||
| "updateUserDynamicConfig: 2 collaterals": "91661", |
Member
There was a problem hiding this comment.
shouldn't be the same increase as for 2 collaterals? ~2.1k
gas increase isn't flat now?
Contributor
There was a problem hiding this comment.
the gas increase between both old snasphots and new ones is flat here (+2141 on both)
miguelmtzinf
reviewed
Feb 5, 2026
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.