feat: certora cvl v0.5.11 - #1292
Open
yan-man wants to merge 22 commits into
Open
Conversation
Co-authored-by: DhairyaSethi <55102840+DhairyaSethi@users.noreply.github.com>
🌈 Test ResultsNo files changed, compilation skipped
Ran 2 tests for tests/contracts/tokenization-spoke/TokenizationSpoke.MaxGetters.t.sol:TokenizationSpokeMaxGettersAddCapVariableEmptyTest
[PASS] test_maxDeposit_returnsCapTimesUnits() (gas: 50171)
[PASS] test_maxMint_returnsSharesOfCap() (gas: 63283)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 34.42ms (343.25µs CPU time)
Ran 2 tests for tests/contracts/tokenization-spoke/TokenizationSpoke.MaxGetters.t.sol:TokenizationSpokeMaxGettersAddCapVariablePartialTest
[PASS] test_maxDeposit_returnsRemaining() (gas: 55189)
[PASS] test_maxMint_returnsSharesOfRemaining() (gas: 68238)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 29.44ms (402.85µs CPU time)
Ran 2 tests for tests/contracts/tokenization-spoke/TokenizationSpoke.MaxGetters.t.sol:TokenizationSpokeMaxGettersAddCapZeroTest
[PASS] test_maxDeposit_returnsZero() (gas: 46658)
[PASS] test_maxMint_returnsZero() (gas: 51164)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 29.18ms (291.74µs CPU time)
Ran 2 tests for tests/contracts/tokenization-spoke/TokenizationSpoke.MaxGetters.t.sol:TokenizationSpokeMaxGettersCapExceededByYieldTest
[PASS] test_maxDeposit_returnsZero() (gas: 46669)
[PASS] test_maxMint_returnsZero() (gas: 51153)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 29.93ms (314.15µs CPU time)
Ran 2 tests for tests/contracts/tokenization-spoke/TokenizationSpoke.MaxGetters.t.sol:TokenizationSpokeMaxGettersExactBoundaryAfterYieldTest
[PASS] test_maxDeposit_exactBoundary_succeeds() (gas: 144076)
[PASS] test_maxMint_exactBoundary_succeeds() (gas: 153486)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 30.14ms (657.34µs CPU time)
Ran 2 tests for tests/contracts/tokenization-spoke/TokenizationSpoke.MaxGetters.t.sol:TokenizationSpokeMaxGettersExactBoundaryLimitedLiquidityTest
[PASS] test_maxRedeem_exactBoundary_limitedLiquidity_succeeds() (gas: 110933)
[PASS] test_maxWithdraw_exactBoundary_limitedLiquidity_succeeds() (gas: 106557)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 30.69ms (546.01µs CPU time)
Ran 4 tests for tests/contracts/tokenization-spoke/TokenizationSpoke.MaxGetters.t.sol:TokenizationSpokeMaxGettersHaltedTest
[PASS] test_maxDeposit_returnsZero() (gas: 28305)
[PASS] test_maxMint_returnsZero() (gas: 44847)
[PASS] test_maxRedeem_returnsZero() (gas: 47038)
[PASS] test_maxWithdraw_returnsZero() (gas: 46940)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 30.19ms (515.18µs CPU time)
Ran 2 tests for tests/contracts/tokenization-spoke/TokenizationSpoke.MaxGetters.t.sol:TokenizationSpokeMaxGettersLiquidityGreaterThanBalanceTest
[PASS] test_maxRedeem_returnsSharesOfBalance() (gas: 62494)
[PASS] test_maxWithdraw_returnsBalance() (gas: 62159)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 30.47ms (390.45µs CPU time)
Ran 2 tests for tests/contracts/tokenization-spoke/TokenizationSpoke.MaxGetters.t.sol:TokenizationSpokeMaxGettersLiquidityLessThanBalanceTest
[PASS] test_maxRedeem_returnsSharesOfLiquidity() (gas: 62483)
[PASS] test_maxWithdraw_returnsLiquidity() (gas: 62158)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 30.40ms (390.55µs CPU time)
Ran 4 tests for tests/contracts/tokenization-spoke/TokenizationSpoke.MaxGetters.t.sol:TokenizationSpokeMaxGettersNotActiveAndHaltedTest
[PASS] test_maxDeposit_returnsZero() (gas: 28291)
[PASS] test_maxMint_returnsZero() (gas: 44833)
[PASS] test_maxRedeem_returnsZero() (gas: 47024)
[PASS] test_maxWithdraw_returnsZero() (gas: 46926)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 31.23ms (498.03µs CPU time)
Ran 4 tests for tests/contracts/tokenization-spoke/TokenizationSpoke.MaxGetters.t.sol:TokenizationSpokeMaxGettersNotActiveTest
[PASS] test_maxDeposit_returnsZero() (gas: 28291)
[PASS] test_maxMint_returnsZero() (gas: 44833)
[PASS] test_maxRedeem_returnsZero() (gas: 47024)
[PASS] test_maxWithdraw_returnsZero() (gas: 46926)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 30.22ms (465.34µs CPU time)
Ran 2 tests for tests/contracts/tokenization-spoke/TokenizationSpoke.MaxGetters.t.sol:TokenizationSpokeMaxGettersOwnerZeroSharesTest
[PASS] test_maxRedeem_returnsZero() (gas: 48857)
[PASS] test_maxWithdraw_returnsZero() (gas: 48748)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 30.19ms (271.85µs CPU time)
Ran 2 tests for tests/contracts/tokenization-spoke/TokenizationSpoke.MaxGetters.t.sol:TokenizationSpokeMaxGettersZeroLiquidityTest
[PASS] test_maxRedeem_returnsZero() (gas: 48857)
[PASS] test_maxWithdraw_returnsZero() (gas: 48770)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 30.49ms (284.18µs CPU time)
Ran 9 tests for tests/gas/TokenizationSpoke.Operations.gas.t.sol:TokenizationSpokeOperations_Gas_Tests
[PASS] test_deposit() (gas: 129545)
[PASS] test_depositWithSig() (gas: 215233)
[PASS] test_mint() (gas: 162401)
[PASS] test_mintWithSig() (gas: 250186)
[PASS] test_permit() (gas: 118561)
[PASS] test_redeem() (gas: 880797)
[PASS] test_redeemWithSig() (gas: 331091)
[PASS] test_withdraw() (gas: 846243)
[PASS] test_withdrawWithSig() (gas: 331976)
Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 53.05ms (7.07ms CPU time)
Ran 19 tests for tests/contracts/spoke/AaveOracle.t.sol:AaveOracleTest
[PASS] test_constructor() (gas: 15250)
[PASS] test_decimals() (gas: 8358)
[PASS] test_fuzz_constructor(uint8) (runs: 5000, μ: 16691, ~: 17009)
Logs:
Bound result 18
[PASS] test_getReservePrice() (gas: 46794)
[PASS] test_getReservePrice_revertsWith_InvalidPrice() (gas: 44558)
[PASS] test_getReservePrice_revertsWith_InvalidSource() (gas: 10899)
[PASS] test_getReservePrices() (gas: 76746)
[PASS] test_getReservePrices_revertsWith_InvalidSource() (gas: 48933)
[PASS] test_getReserveSource() (gas: 47184)
[PASS] test_setReserveSource() (gas: 44204)
[PASS] test_setReserveSource_revertsWith_InvalidPrice() (gas: 97493)
[PASS] test_setReserveSource_revertsWith_InvalidSource() (gas: 17205)
[PASS] test_setReserveSource_revertsWith_InvalidSourceDecimals() (gas: 16954)
[PASS] test_setReserveSource_revertsWith_OnlySpoke() (gas: 12996)
[PASS] test_setReserveSource_revertsWith_OracleMismatch() (gas: 5010870)
[PASS] test_setSpoke() (gas: 5039232)
[PASS] test_setSpoke_revertsWith_InvalidAddress() (gas: 10892)
[PASS] test_setSpoke_revertsWith_OnlyDeployer(address) (runs: 5000, μ: 13465, ~: 13465)
[PASS] test_setSpoke_revertsWith_SpokeAlreadySet() (gas: 15102)
Suite result: ok. 19 passed; 0 failed; 0 skipped; finished in 1.52s (1.48s CPU time)
Ran 2 tests for tests/deployments/procedures/deploy/spoke/AaveV4AaveOracleDeployProcedure.t.sol:AaveV4AaveOracleDeployProcedureTest
[PASS] test_deployAaveOracle() (gas: 524367)
[PASS] test_deployAaveOracle_reverts_inputValidation() (gas: 8466)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 5.33ms (103.76µs CPU time)
Ran 2 tests for tests/deployments/procedures/deploy/AaveV4AccessManagerEnumerableDeployProcedure.t.sol:AaveV4AccessManagerEnumerableDeployProcedureTest
[PASS] test_deployAccessManagerEnumerable() (gas: 4403059)
[PASS] test_deployAccessManagerEnumerable_reverts() (gas: 10562)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 5.92ms (573.31µs CPU time)
Ran 6 tests for tests/deployments/procedures/deploy/roles/AaveV4AccessManagerRolesProcedure.t.sol:AaveV4AccessManagerRolesProcedureTest
[PASS] test_grantAccessManagerAdminRole() (gas: 177653)
[PASS] test_grantAccessManagerAdminRole_reverts() (gas: 14087)
[PASS] test_labelAllRoles() (gas: 1713955)
[PASS] test_labelAllRoles_reverts_zeroAddress() (gas: 8466)
[PASS] test_replaceDefaultAdminRole() (gas: 144664)
[PASS] test_replaceDefaultAdminRole_reverts() (gas: 178594)
Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 7.01ms (1.96ms CPU time)
Ran 5 tests for tests/deployments/batches/AaveV4AuthorityBatch.t.sol:AaveV4AuthorityBatchTest
[PASS] test_adminRoleMemberTracking() (gas: 21955)
[PASS] test_differentSaltProducesDifferentAddress() (gas: 14349)
[PASS] test_getReport() (gas: 19926)
[PASS] test_noOtherRolesInitialized() (gas: 15847)
[PASS] test_revert_zeroAdmin() (gas: 3765)
Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 6.59ms (1.08ms CPU time)
Ran 10 tests for tests/contracts/tokenization-spoke/TokenizationSpoke.Permit.t.sol:TokenizationSpokePermitTest
[PASS] test_nonces_uses_permit_nonce_key_namespace(bytes32) (runs: 5000, μ: 17692, ~: 17692)
[PASS] test_permit() (gas: 93108)
[PASS] test_permit_revertsWith_InvalidAddress_dueTo_ZeroAddressOwner() (gas: 50986)
[PASS] test_permit_revertsWith_InvalidSignature_dueTo_ExpiredDeadline() (gas: 28602)
[PASS] test_permit_revertsWith_InvalidSignature_dueTo_InvalidSigner() (gas: 51462)
[PASS] test_permit_revertsWith_InvalidSignature_dueTo_invalid_nonce_at_arbitrary_namespace(bytes32) (runs: 5000, μ: 55234, ~: 55234)
[PASS] test_permit_revertsWith_InvalidSignature_dueTo_invalid_nonce_at_permit_key_namespace(bytes32) (runs: 5000, μ: 57112, ~: 57112)
[PASS] test_renounceAllowance() (gas: 35330)
[PASS] test_renounceAllowance_noop() (gas: 24209)
[PASS] test_usePermitNonce(bytes32) (runs: 5000, μ: 18112, ~: 18112)
Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 8.27s (8.24s CPU time)
Ran 4 tests for tests/contracts/tokenization-spoke/TokenizationSpoke.Reverts.InsufficientAllowance.t.sol:TokenizationSpokeInsufficientAllowanceTest
[PASS] test_depositWithSig_revertsWith_ERC20InsufficientAllowance() (gas: 316735)
[PASS] test_deposit_revertsWith_ERC20InsufficientAllowance() (gas: 71641)
[PASS] test_mintWithSig_revertsWith_ERC20InsufficientAllowance() (gas: 328278)
[PASS] test_mint_revertsWith_ERC20InsufficientAllowance() (gas: 76522)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 37.13ms (5.22ms CPU time)
Ran 6 tests for tests/contracts/tokenization-spoke/TokenizationSpoke.Upgradeable.t.sol:TokenizationSpokeUpgradeableTest
[PASS] test_implementation_constructor_fuzz(uint64) (runs: 5000, μ: 2840521, ~: 2840521)
[PASS] test_proxy_constructor_fuzz(uint64) (runs: 5000, μ: 2861686, ~: 2861679)
Logs:
Bound result 1000000000
[PASS] test_proxy_constructor_fuzz_revertsWith_InvalidInitialization(uint64) (runs: 5000, μ: 5665607, ~: 5665600)
Logs:
Bound result 1000000000
[PASS] test_proxy_constructor_revertsWith_InvalidInitialization_ZeroRevision() (gas: 2837244)
[PASS] test_proxy_reinitialization_fuzz(uint64) (runs: 5000, μ: 5681774, ~: 5681758)
Logs:
Bound result 1000000000
[PASS] test_proxy_reinitialization_revertsWith_CallerNotProxyAdmin() (gas: 5654429)
Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 16.52s (16.49s CPU time)
Ran 21 tests for tests/contracts/position-manager/SignatureGateway/SignatureGateway.Reverts.InvalidSignature.t.sol:SignatureGatewayInvalidSignatureTest
[PASS] test_borrowWithSig_revertsWith_InvalidAccountNonce(bytes32) (runs: 5000, μ: 154394, ~: 153972)
[PASS] test_borrowWithSig_revertsWith_InvalidSignature_dueTo_ExpiredDeadline() (gas: 39263)
[PASS] test_borrowWithSig_revertsWith_InvalidSignature_dueTo_InvalidSigner() (gas: 37609)
[PASS] test_repayWithSig_revertsWith_InvalidAccountNonce(bytes32) (runs: 5000, μ: 154350, ~: 153928)
[PASS] test_repayWithSig_revertsWith_InvalidSignature_dueTo_ExpiredDeadline() (gas: 39284)
[PASS] test_repayWithSig_revertsWith_InvalidSignature_dueTo_InvalidSigner() (gas: 37588)
[PASS] test_setUsingAsCollateralWithSig_revertsWith_InvalidAccountNonce(bytes32) (runs: 5000, μ: 155455, ~: 155631)
[PASS] test_setUsingAsCollateralWithSig_revertsWith_InvalidSignature_dueTo_ExpiredDeadline() (gas: 39358)
[PASS] test_setUsingAsCollateralWithSig_revertsWith_InvalidSignature_dueTo_InvalidSigner() (gas: 37680)
[PASS] test_supplyWithSig_revertsWith_InvalidAccountNonce(bytes32) (runs: 5000, μ: 154412, ~: 153990)
[PASS] test_supplyWithSig_revertsWith_InvalidSignature_dueTo_ExpiredDeadline() (gas: 39329)
[PASS] test_supplyWithSig_revertsWith_InvalidSignature_dueTo_InvalidSigner() (gas: 37620)
[PASS] test_updateUserDynamicConfigWithSig_revertsWith_InvalidAccountNonce(bytes32) (runs: 5000, μ: 142703, ~: 143557)
[PASS] test_updateUserDynamicConfigWithSig_revertsWith_InvalidSignatureDueTo_InvalidSigner() (gas: 25576)
[PASS] test_updateUserDynamicConfigWithSig_revertsWith_InvalidSignature_dueTo_ExpiredDeadline() (gas: 27259)
[PASS] test_updateUserRiskPremiumWithSig_revertsWith_InvalidAccountNonce(bytes32) (runs: 5000, μ: 142696, ~: 143550)
[PASS] test_updateUserRiskPremiumWithSig_revertsWith_InvalidSignatureDueTo_InvalidSigner() (gas: 25486)
[PASS] test_updateUserRiskPremiumWithSig_revertsWith_InvalidSignature_dueTo_ExpiredDeadline() (gas: 27230)
[PASS] test_withdrawWithSig_revertsWith_InvalidAccountNonce(bytes32) (runs: 5000, μ: 154391, ~: 153969)
[PASS] test_withdrawWithSig_revertsWith_InvalidSignature_dueTo_ExpiredDeadline() (gas: 39370)
[PASS] test_withdrawWithSig_revertsWith_InvalidSignature_dueTo_InvalidSigner() (gas: 37609)
Suite result: ok. 21 passed; 0 failed; 0 skipped; finished in 43.05s (43.00s CPU time)
Ran 12 tests for tests/contracts/tokenization-spoke/TokenizationSpoke.WithSig.Reverts.InvalidSignature.t.sol:TokenizationSpokeWithSigInvalidSignatureTest
[PASS] test_depositWithSig_revertsWith_InvalidAccountNonce(bytes32) (runs: 5000, μ: 167574, ~: 167016)
[PASS] test_depositWithSig_revertsWith_InvalidSignature_dueTo_ExpiredDeadline() (gas: 29553)
[PASS] test_depositWithSig_revertsWith_InvalidSignature_dueTo_InvalidSigner() (gas: 27803)
[PASS] test_mintWithSig_revertsWith_InvalidAccountNonce(bytes32) (runs: 5000, μ: 167505, ~: 166947)
[PASS] test_mintWithSig_revertsWith_InvalidSignature_dueTo_ExpiredDeadline() (gas: 29531)
[PASS] test_mintWithSig_revertsWith_InvalidSignature_dueTo_InvalidSigner() (gas: 27833)
[PASS] test_redeemWithSig_revertsWith_InvalidAccountNonce(bytes32) (runs: 5000, μ: 167529, ~: 166971)
[PASS] test_redeemWithSig_revertsWith_InvalidSignature_dueTo_ExpiredDeadline() (gas: 29490)
[PASS] test_redeemWithSig_revertsWith_InvalidSignature_dueTo_InvalidSigner() (gas: 27814)
[PASS] test_withdrawWithSig_revertsWith_InvalidAccountNonce(bytes32) (runs: 5000, μ: 167549, ~: 166991)
[PASS] test_withdrawWithSig_revertsWith_InvalidSignature_dueTo_ExpiredDeadline() (gas: 29551)
[PASS] test_withdrawWithSig_revertsWith_InvalidSignature_dueTo_InvalidSigner() (gas: 27856)
Suite result: ok. 12 passed; 0 failed; 0 skipped; finished in 27.01s (26.98s CPU time)
Ran 7 tests for tests/contracts/position-manager/SignatureGateway/SignatureGateway.Reverts.SpokeNotRegistered.t.sol:SignatureGateway_SpokeNotRegistered_Test
[PASS] test_borrowWithSig_revertsWith_SpokeNotRegistered((address,uint256,uint256,address,uint256,uint256)) (runs: 5000, μ: 13433, ~: 13433)
[PASS] test_repayWithSig_revertsWith_SpokeNotRegistered((address,uint256,uint256,address,uint256,uint256)) (runs: 5000, μ: 13411, ~: 13411)
[PASS] test_setUsingAsCollateralWithSig_revertsWith_SpokeNotRegistered((address,uint256,bool,address,uint256,uint256)) (runs: 5000, μ: 13446, ~: 13446)
[PASS] test_supplyWithSig_revertsWith_SpokeNotRegistered((address,uint256,uint256,address,uint256,uint256)) (runs: 5000, μ: 13476, ~: 13476)
[PASS] test_updateUserDynamicConfigWithSig_revertsWith_SpokeNotRegistered((address,address,uint256,uint256)) (runs: 5000, μ: 13709, ~: 13709)
[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, μ: 13476, ~: 13476)
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 17.01s (16.98s CPU time)
Ran 7 tests for tests/contracts/position-manager/SignatureGateway/SignatureGateway.Reverts.Unauthorized.t.sol:SignatureGateway_Unauthorized_PositionManagerActive_Test
[PASS] test_borrowWithSig_revertsWith_Unauthorized() (gas: 80669)
[PASS] test_repayWithSig_revertsWith_Unauthorized() (gas: 118700)
[PASS] test_setUsingAsCollateralWithSig_revertsWith_Unauthorized() (gas: 73255)
[PASS] test_supplyWithSig_revertsWith_Unauthorized() (gas: 140299)
[PASS] test_updateUserDynamicConfigWithSig_revertsWith_Unauthorized() (gas: 81545)
[PASS] test_updateUserRiskPremiumWithSig_revertsWith_Unauthorized() (gas: 81655)
[PASS] test_withdrawWithSig_revertsWith_Unauthorized() (gas: 79681)
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 34.28ms (4.58ms CPU time)
Ran 7 tests for tests/contracts/position-manager/SignatureGateway/SignatureGateway.Reverts.Unauthorized.t.sol:SignatureGateway_Unauthorized_PositionManagerNotActive_Test
[PASS] test_borrowWithSig_revertsWith_Unauthorized() (gas: 78461)
[PASS] test_repayWithSig_revertsWith_Unauthorized() (gas: 116492)
[PASS] test_setUsingAsCollateralWithSig_revertsWith_Unauthorized() (gas: 71047)
[PASS] test_supplyWithSig_revertsWith_Unauthorized() (gas: 138091)
[PASS] test_updateUserDynamicConfigWithSig_revertsWith_Unauthorized() (gas: 79337)
[PASS] test_updateUserRiskPremiumWithSig_revertsWith_Unauthorized() (gas: 79447)
[PASS] test_withdrawWithSig_revertsWith_Unauthorized() (gas: 77473)
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 35.85ms (4.74ms CPU time)
Ran 4 tests for tests/contracts/position-manager/SignatureGateway/SignatureGateway.SetSelfAsUserPositionManagerWithSig.t.sol:SignatureGatewaySetSelfAsUserPositionManagerTest
[PASS] test_setSelfAsUserPositionManagerWithSig() (gas: 140247)
[PASS] test_setSelfAsUserPositionManagerWithSig_forwards_correct_call() (gas: 32698)
[PASS] test_setSelfAsUserPositionManagerWithSig_ignores_underlying_spoke_reverts() (gas: 29754)
[PASS] test_setSelfAsUserPositionManagerWithSig_revertsWith_SpokeNotRegistered() (gas: 16553)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 31.43ms (1.20ms CPU time)
Ran 14 tests for tests/contracts/position-manager/SignatureGateway/SignatureGateway.t.sol:SignatureGatewayTest
[PASS] test_borrowWithSig() (gas: 843431)
[PASS] test_multicall() (gas: 681960)
[PASS] test_multicall_atomicity_on_revert() (gas: 551378)
[PASS] test_multicall_no_atomicity_with_trycatch() (gas: 653662)
[PASS] test_renouncePositionManagerRole() (gas: 29776)
[PASS] test_renouncePositionManagerRole_revertsWith_OnlyOwner() (gas: 18135)
[PASS] test_repayWithSig() (gas: 856488)
[PASS] test_setSelfAsUserPositionManagerWithSig() (gas: 336990)
[PASS] test_setUsingAsCollateralWithSig() (gas: 543151)
[PASS] test_supplyWithSig() (gas: 629653)
[PASS] test_updateUserDynamicConfigWithSig() (gas: 361979)
[PASS] test_updateUserRiskPremiumWithSig() (gas: 1068979)
[PASS] test_useNonce_monotonic(bytes32) (runs: 5000, μ: 13346, ~: 13346)
[PASS] test_withdrawWithSig() (gas: 633591)
Suite result: ok. 14 passed; 0 failed; 0 skipped; finished in 554.98ms (524.51ms CPU time)
Ran 3 tests for tests/contracts/spoke/misc/Spoke.Access.t.sol:SpokeAccessTest
[PASS] testAccess_change_authority() (gas: 519305)
[PASS] testAccess_hub_functions_callable_by_spokes() (gas: 603850)
[PASS] testAccess_spoke_admin_config_access() (gas: 496807)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 31.85ms (3.19ms CPU time)
Ran 5 tests for tests/contracts/tokenization-spoke/TokenizationSpoke.WithSig.t.sol:TokenizationSpokeWithSigTest
[PASS] test_depositWithSig(bytes32) (runs: 5000, μ: 354040, ~: 353483)
[PASS] test_mintWithSig(bytes32) (runs: 5000, μ: 353289, ~: 352732)
[PASS] test_redeemWithSig(bytes32) (runs: 5000, μ: 334943, ~: 334301)
[PASS] test_useNonce_monotonic(bytes32) (runs: 5000, μ: 17145, ~: 17145)
[PASS] test_withdrawWithSig(bytes32) (runs: 5000, μ: 335966, ~: 335297)
Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 53.70s (53.67s CPU time)
Ran 8 tests for tests/contracts/tokenization-spoke/TokenizationSpoke.t.sol:TokenizationSpokeTest
[PASS] test_deposit() (gas: 242373)
[PASS] test_deposit_receiverDifferentFromCaller() (gas: 228828)
[PASS] test_mint() (gas: 241592)
[PASS] test_mint_receiverDifferentFromCaller() (gas: 228096)
[PASS] test_redeem() (gas: 226496)
[PASS] test_redeem_ownerDifferentFromCaller() (gas: 258221)
[PASS] test_withdraw() (gas: 222553)
[PASS] test_withdraw_ownerDifferentFromCaller() (gas: 254263)
Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 43.09ms (12.95ms CPU time)
Ran 7 tests for tests/contracts/treasury-spoke/TreasurySpoke.Upgradeable.t.sol:TreasurySpokeUpgradeableTest
[PASS] test_implementation_constructor_fuzz(uint64) (runs: 5000, μ: 888998, ~: 888998)
[PASS] test_proxy_constructor_fuzz(uint64) (runs: 5000, μ: 904197, ~: 904190)
Logs:
Bound result 1000000000
[PASS] test_proxy_constructor_fuzz_revertsWith_InvalidInitialization(uint64) (runs: 5000, μ: 1778359, ~: 1778352)
Logs:
Bound result 1000000000
[PASS] test_proxy_constructor_revertsWith_InvalidAddress() (gas: 7098)
[PASS] test_proxy_constructor_revertsWith_InvalidInitialization_ZeroRevision() (gas: 886490)
[PASS] test_proxy_reinitialization_fuzz(uint64) (runs: 5000, μ: 1780969, ~: 1780953)
Logs:
Bound result 1000000000
[PASS] test_proxy_reinitialization_revertsWith_CallerNotProxyAdmin() (gas: 14290)
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 11.45s (11.42s CPU time)
Ran 23 tests for tests/contracts/treasury-spoke/TreasurySpoke.t.sol:TreasurySpokeTest
[PASS] test_deploy_reverts_on_invalid_params() (gas: 7142)
[PASS] test_getters() (gas: 1470232)
[PASS] test_initial_state() (gas: 433743)
[PASS] test_supply(uint256) (runs: 5000, μ: 143344, ~: 143134)
Logs:
Bound result 700000000000000000
[PASS] test_supplySkimmed(uint256) (runs: 5000, μ: 141501, ~: 141291)
Logs:
Bound result 700000000000000000
[PASS] test_supplySkimmed_multiHub_differentAsset(uint256,uint256) (runs: 5000, μ: 263850, ~: 264116)
Logs:
Bound result 80000000000000000000000000
Bound result 2596000000000000000
[PASS] test_supplySkimmed_multiHub_sameAsset(uint256) (runs: 5000, μ: 253583, ~: 253372)
Logs:
Bound result 700000000000000000
[PASS] test_supplySkimmed_revertsWith_InsufficientTransferred(uint256) (runs: 5000, μ: 83423, ~: 84009)
Logs:
Bound result 700000000000000000
[PASS] test_supplySkimmed_revertsWith_OwnableUnauthorizedAccount() (gas: 25250)
[PASS] test_supply_multiHub_differentAsset(uint256,uint256) (runs: 5000, μ: 268260, ~: 268526)
Logs:
Bound result 80000000000000000000000000
Bound result 2596000000000000000
[PASS] test_supply_multiHub_sameAsset(uint256) (runs: 5000, μ: 255949, ~: 255738)
Logs:
Bound result 700000000000000000
[PASS] test_supply_revertsWith_OwnableUnauthorizedAccount() (gas: 25319)
[PASS] test_transfer_fuzz(address,uint256,uint256) (runs: 5000, μ: 105296, ~: 106178)
Logs:
Bound result 896916018860441862045596081631317837
Bound result 620530605117181186887565112005323131
[PASS] test_transfer_revertsWith_ERC20InsufficientBalance(uint256) (runs: 5000, μ: 609042, ~: 609042)
[PASS] test_transfer_revertsWith_OwnableUnauthorizedAccount() (gas: 21897)
[PASS] test_withdraw_fuzz_amount_feesOnly(uint256) (runs: 5000, μ: 819379, ~: 819094)
Logs:
Bound result 700000000000000000
[PASS] test_withdraw_fuzz_amount_interestAndFees(uint256) (runs: 5000, μ: 817067, ~: 816893)
Logs:
Bound result 700000000000000000
[PASS] test_withdraw_fuzz_amount_interestOnly(uint256) (runs: 5000, μ: 851623, ~: 851333)
Logs:
Bound result 999999999999999999999999999998
[PASS] test_withdraw_fuzz_maxLiquidityFee(uint256,uint256,uint256) (runs: 5000, μ: 883146, ~: 881756)
Logs:
Bound result 0
Bound result 409652
Bound result 80677111
[PASS] test_withdraw_maxLiquidityFee() (gas: 882499)
Logs:
Bound result 2
Bound result 1000000000000000000000
Bound result 29376000
[PASS] test_withdraw_multiHub_differentAsset(uint256,uint256) (runs: 5000, μ: 291165, ~: 291277)
Logs:
Bound result 80000000000000000000000000
Bound result 2596000000000000000
[PASS] test_withdraw_multiHub_sameAsset(uint256) (runs: 5000, μ: 281600, ~: 281310)
Logs:
Bound result 700000000000000000
[PASS] test_withdraw_revertsWith_OwnableUnauthorizedAccount() (gas: 25330)
Suite result: ok. 23 passed; 0 failed; 0 skipped; finished in 71.88s (71.85s CPU time)
Ran 12 tests for tests/contracts/spoke/libraries/UserPositionUtils.t.sol:UserPositionUtilsTest
[PASS] test_applyPremiumDelta() (gas: 26238)
[PASS] test_calculatePremiumDelta() (gas: 17570)
[PASS] test_calculatePremiumRay() (gas: 19422)
[PASS] test_calculateRestoreAmount() (gas: 24251)
[PASS] test_fuzz_applyPremiumDelta((int256,int256,uint256)) (runs: 5000, μ: 34335, ~: 34453)
Logs:
Bound result 111909824546585946303881311519
Bound result 0
[PASS] test_fuzz_calculatePremiumDelta((uint256,uint256,int256,uint256,uint256,uint256,uint256)) (runs: 5000, μ: 49056, ~: 49220)
Logs:
Bound result 1000000000000000000000000003
Bound result 3
Bound result -587592131872415209524341566500
Bound result 228622787900151
Bound result 122170668579645
Bound result 99999
Bound result 26635120011735472905607663553
[PASS] test_fuzz_calculatePremiumRay(uint256,int256,uint256) (runs: 5000, μ: 33347, ~: 33280)
Logs:
Bound result 99000000000000000000000000773
Bound result 898842046793144366833378630708
Bound result 17869
[PASS] test_fuzz_calculateRestoreAmount(uint256,uint256,int256,uint256,uint256) (runs: 5000, μ: 42578, ~: 42560)
Logs:
Bound result 71892158194320522147230230861
Bound result 14876628525845802083213
Bound result 193402794099889712078177319665859792404
Bound result 2683139293619584261203042
Bound result 15305
[PASS] test_fuzz_getUserDebt_DrawnIndex(uint256,uint256,int256,uint256) (runs: 5000, μ: 39637, ~: 39603)
Logs:
Bound result 10285931761460056055964513929
Bound result 364256759614167806228868235117
Bound result -178462056718704601941898858
Bound result 370041050254979127254336089444
[PASS] test_fuzz_getUserDebt_HubAndAssetId(uint256,uint256,int256,uint256) (runs: 5000, μ: 45598, ~: 45564)
Logs:
Bound result 10285931761460056055964513929
Bound result 364256759614167806228868235117
Bound result -178462056718704601941898858
Bound result 370041050254979127254336089444
[PASS] test_getUserDebt_DrawnIndex() (gas: 23467)
[PASS] test_getUserDebt_HubAndAssetId() (gas: 30216)
Suite result: ok. 12 passed; 0 failed; 0 skipped; finished in 4.37s (4.36s CPU time)
Ran 17 tests for tests/contracts/libraries/math/WadRayMath.t.sol:WadRayMathDifferentialTest
[PASS] test_bpsToRay_fuzz(uint256) (runs: 5000, μ: 11777, ~: 11826)
[PASS] test_bpsToWad_fuzz(uint256) (runs: 5000, μ: 11773, ~: 11813)
[PASS] test_constants() (gas: 12879)
[PASS] test_fromRayUp_fuzz(uint256) (runs: 5000, μ: 11047, ~: 11072)
[PASS] test_fromWadDown_fuzz(uint256) (runs: 5000, μ: 9378, ~: 9378)
[PASS] test_fuzz_rayDiv(uint256,uint256) (runs: 5000, μ: 12434, ~: 12807)
[PASS] test_fuzz_rayMul(uint256,uint256) (runs: 5000, μ: 11618, ~: 12155)
[PASS] test_fuzz_wadDiv(uint256,uint256) (runs: 5000, μ: 12620, ~: 12918)
[PASS] test_fuzz_wadMul(uint256,uint256) (runs: 5000, μ: 11577, ~: 12134)
[PASS] test_rayDiv() (gas: 39659)
[PASS] test_rayMul() (gas: 28767)
[PASS] test_roundRayUp_fuzz(uint256) (runs: 5000, μ: 12770, ~: 12909)
[PASS] test_roundRayUp_overflow() (gas: 14831)
[PASS] test_toRay_fuzz(uint256) (runs: 5000, μ: 11693, ~: 12264)
[PASS] test_toWad_fuzz(uint256) (runs: 5000, μ: 11836, ~: 12262)
[PASS] test_wadDiv() (gas: 40065)
[PASS] test_wadMul() (gas: 28408)
Suite result: ok. 17 passed; 0 failed; 0 skipped; finished in 2.58s (2.57s CPU time)
Ran 7 tests for tests/contracts/spoke/libraries/EIP712Hash.t.sol:EIP712HashTest
[PASS] test_constants() (gas: 9906)
[PASS] test_hash_positionManagerUpdate_fuzz((address,bool)) (runs: 5000, μ: 5339, ~: 5339)
[PASS] test_hash_setUserPositionManagers_fuzz((address,(address,bool)[],uint256,uint256)) (runs: 5000, μ: 279945, ~: 282010)
[PASS] test_hash_tokenizedDeposit_fuzz((address,uint256,address,uint256,uint256)) (runs: 5000, μ: 6515, ~: 6515)
[PASS] test_hash_tokenizedMint_fuzz((address,uint256,address,uint256,uint256)) (runs: 5000, μ: 6514, ~: 6514)
[PASS] test_hash_tokenizedRedeem_fuzz((address,uint256,address,uint256,uint256)) (runs: 5000, μ: 6515, ~: 6515)
[PASS] test_hash_tokenizedWithdraw_fuzz((address,uint256,address,uint256,uint256)) (runs: 5000, μ: 6536, ~: 6536)
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 16.79s (16.79s CPU time)
Ran 1 test for tests/contracts/spoke/accrual/Spoke.AccrueInterest.Scenario.t.sol:SpokeAccrueInterestScenarioTest
[PASS] test_accrueInterest_fuzz_RPBorrowAndSkipTime_twoActions((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256),uint40) (runs: 5000, μ: 6656417, ~: 6506258)
Logs:
Bound result 688246027879663861870333934469
Bound result 611751555254259661766551983360
Bound result 7559
Bound result 12784
Bound result 1977
Bound result 19868821230087
Bound result 499999800000000001
Bound result 18107
Bound result 531
Bound result 1977
Bound result 19868821230087
Bound result 499999800000000001
Bound result 18107
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 160.60s (160.57s CPU time)
Ran 6 tests for tests/contracts/hub/fees/Hub.PayFee.t.sol:HubPayFeeTest
[PASS] test_payFee_fuzz(uint256,uint256) (runs: 5000, μ: 712220, ~: 712380)
Logs:
Bound result 80000000000000000000000000
Bound result 0
Bound result 2596000000000000000
[PASS] test_payFee_fuzz_with_interest(uint256,uint256,uint256) (runs: 5000, μ: 712652, ~: 712929)
Logs:
Bound result 1
Bound result 331140237
Bound result 1
[PASS] test_payFee_revertsWith_InvalidShares() (gas: 25298)
[PASS] test_payFee_revertsWith_SpokeNotActive() (gas: 67924)
[PASS] test_payFee_revertsWith_underflow_added_shares_exceeded() (gas: 142707)
[PASS] test_payFee_revertsWith_underflow_added_shares_exceeded_with_interest() (gas: 646910)
Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 27.77s (27.74s CPU time)
Ran 20 tests for tests/contracts/spoke/risk-premium/Spoke.RiskPremium.t.sol:SpokeRiskPremiumTest
[PASS] test_getUserRiskPremium_fuzz_applyInterest_two_reserves_borrowed(uint256,uint256,uint256,uint256,uint256) (runs: 5000, μ: 2358985, ~: 2410922)
Logs:
Bound result 399689378631262050030180083907
Bound result 91213558025843298110010426369
Bound result 137194839325814207
Bound result 22060124320603096060
Bound result 17638653339653610861
[PASS] test_getUserRiskPremium_fuzz_applyingInterest(uint256,uint256,uint256,uint256) (runs: 5000, μ: 1673268, ~: 1730549)
Logs:
Bound result 4475075785254438
Bound result 346803276684397183850384383239
Bound result 145253857480925558
Bound result 28168306973900195421
[PASS] test_getUserRiskPremium_fuzz_four_reserves_change_cr(uint256,uint256,uint256,uint256,uint256,uint24) (runs: 5000, μ: 2090531, ~: 2072980)
Logs:
Bound result 677
Bound result 189
Bound result 2989705018929936598
Bound result 0
Bound result 99389463372627470674
Bound result 952516542933738469136203552
[PASS] test_getUserRiskPremium_fuzz_four_reserves_change_one_price(uint256,uint256,uint256,uint256,uint256,uint256) (runs: 5000, μ: 2268604, ~: 2252681)
Logs:
Bound result 2667053080410069
Bound result 189
Bound result 2989705018929936598
Bound result 0
Bound result 99389463372627470674
Bound result 952516542933738469136203552
[PASS] test_getUserRiskPremium_fuzz_four_reserves_prices_supply_debt((uint256,uint256,uint256,uint256,uint24,uint256),(uint256,uint256,uint256,uint256,uint24,uint256),(uint256,uint256,uint256,uint256,uint24,uint256),(uint256,uint256,uint256,uint256,uint24,uint256)) (runs: 5000, μ: 1988852, ~: 1996295)
Logs:
Bound result 18
Bound result 27
Bound result 259200000
Bound result 9259
Bound result 2
Bound result 7
Bound result 23086
Bound result 2705
Bound result 10000000000000000
Bound result 1565
Bound result 6634652662230263
Bound result 3201
Bound result 18922
Bound result 7032
Bound result 58622
Bound result 94591
[PASS] test_getUserRiskPremium_fuzz_four_reserves_supply_and_borrow(uint256,uint256,uint256,uint256,uint256) (runs: 5000, μ: 1582607, ~: 1579543)
Logs:
Bound result 399689378631262050030180083907
Bound result 487079309328974541148217920208
Bound result 12850229434672365
Bound result 22060124320603096060
Bound result 17638653339653610861
[PASS] test_getUserRiskPremium_fuzz_single_reserve_collateral_borrowed_amount(uint256) (runs: 5000, μ: 427673, ~: 427177)
Logs:
Bound result 700000000000000000
[PASS] test_getUserRiskPremium_fuzz_supply_does_not_impact(uint256,uint256) (runs: 5000, μ: 607022, ~: 606905)
Logs:
Bound result 80000000000000000000000000
Bound result 596000000000000000
[PASS] test_getUserRiskPremium_fuzz_three_reserves_supply_and_borrow(uint256,uint256,uint256,uint256) (runs: 5000, μ: 1254683, ~: 1295105)
Logs:
Bound result 4475075785254438
Bound result 149854217388389874189986683847
Bound result 42830599330452951
Bound result 28168306973900195421
[PASS] test_getUserRiskPremium_fuzz_two_reserves_supply_and_borrow(uint256,uint256,uint256) (runs: 5000, μ: 1048332, ~: 1082497)
Logs:
Bound result 0
Bound result 409652
Bound result 161864027721225736371419722135
[PASS] test_getUserRiskPremium_multi_reserve_collateral() (gas: 969150)
[PASS] test_getUserRiskPremium_multi_reserve_collateral_lower_rp_than_highest_cr() (gas: 1735618)
[PASS] test_getUserRiskPremium_multi_reserve_collateral_weth_partial_cover() (gas: 1309006)
[PASS] test_getUserRiskPremium_no_collateral() (gas: 98052)
[PASS] test_getUserRiskPremium_no_collateral_set() (gas: 200717)
[PASS] test_getUserRiskPremium_single_reserve_collateral() (gas: 211079)
[PASS] test_getUserRiskPremium_single_reserve_collateral_borrowed() (gas: 421913)
[PASS] test_getUserRiskPremium_two_reserves_equal_parts() (gas: 1122489)
[PASS] test_riskPremium_collateral_insufficient_to_cover_debt() (gas: 2469247)
[PASS] test_riskPremium_postActions() (gas: 1342164)
Suite result: ok. 20 passed; 0 failed; 0 skipped; finished in 243.89s (243.85s CPU time)
Ran 11 tests for tests/contracts/hub/add-remove/Hub.Reclaim.t.sol:HubReclaimTest
[PASS] test_reclaim() (gas: 642334)
Logs:
Bound result 1000000000000000000000
Bound result 500000000000000000000
Bound result 200000000000000000000
[PASS] test_reclaim_fullAmount() (gas: 623453)
[PASS] test_reclaim_fuzz(uint256,uint256,uint256) (runs: 5000, μ: 644011, ~: 643310)
Logs:
Bound result 1
Bound result 1
Bound result 1
[PASS] test_reclaim_multipleSweepsAndReclaims() (gas: 734012)
[PASS] test_reclaim_revertsWith_AssetNotListed() (gas: 18447)
[PASS] test_reclaim_revertsWith_InsufficientTransferred() (gas: 442924)
[PASS] test_reclaim_revertsWith_InsufficientTransferred_noSwept() (gas: 109383)
[PASS] test_reclaim_revertsWith_InvalidAmount_zero() (gas: 99136)
[PASS] test_reclaim_revertsWith_OnlyReinvestmentController(address) (runs: 5000, μ: 98357, ~: 98357)
[PASS] test_reclaim_revertsWith_OnlyReinvestmentController_init() (gas: 46036)
[PASS] test_reclaim_revertsWith_underflow_exceedsSwept_afterSweep() (gas: 606671)
Suite result: ok. 11 passed; 0 failed; 0 skipped; finished in 16.19s (16.16s CPU time)
Ran 12 tests for tests/contracts/hub/draw-restore/Hub.RefreshPremium.t.sol:HubRefreshPremiumTest
[PASS] test_refreshPremium_emitsEvent() (gas: 264186)
[PASS] test_refreshPremium_fuzz_positiveDeltas(uint256,int256,int256) (runs: 5000, μ: 502794, ~: 509033)
Logs:
Bound result 1000000000000000000000000000000
Bound result 108632842769905402063264967525
Bound result 100000000000
[PASS] test_refreshPremium_fuzz_withAccrual(uint256,uint256,uint256,uint256) (runs: 5000, μ: 480937, ~: 490442)
Logs:
Bound result 4475075785254438
Bound result 414479499784986
Bound result 451223520496473717365188934664917977241033
Bound result 134801555566947040342414729001
[PASS] test_refreshPremium_haltedSpokesAllowed() (gas: 129404)
[PASS] test_refreshPremium_maxRiskPremiumThreshold() (gas: 910790)
[PASS] test_refreshPremium_negativeDeltas(uint256) (runs: 5000, μ: 472542, ~: 472498)
Logs:
Bound result 700000000000000000
[PASS] test_refreshPremium_negativeDeltas_withAccrual(uint256) (runs: 5000, μ: 544243, ~: 544467)
Logs:
Bound result 700000000000000000
[PASS] test_refreshPremium_revertsWith_InvalidPremiumChange_NonZeroRestoredPremiumRay() (gas: 867378)
[PASS] test_refreshPremium_revertsWith_InvalidPremiumChange_RiskPremiumThresholdExceeded_DecreasingPremium() (gas: 886242)
[PASS] test_refreshPremium_revertsWith_SpokeNotActive() (gas: 65397)
[PASS] test_refreshPremium_riskPremiumThreshold() (gas: 933880)
[PASS] test_refreshPremium_spokePremiumUpdateIsContained() (gas: 723261)
Suite result: ok. 12 passed; 0 failed; 0 skipped; finished in 20.29s (20.26s CPU time)
Ran 15 tests for tests/contracts/spoke/position-manager/Spoke.SetUserPositionManagerWithSig.t.sol:SpokeSetUserPositionManagersWithSigTest
[PASS] test_DOMAIN_SEPARATOR() (gas: 5039341)
[PASS] test_eip712Domain() (gas: 5044742)
[PASS] test_positionManagerUpdate_typeHash() (gas: 3903)
[PASS] test_setUserPositionManager_typeHash() (gas: 15642)
[PASS] test_setUserPositionManagersWithSig() (gas: 287767)
[PASS] test_setUserPositionManagersWithSig_ERC1271() (gas: 374521)
[PASS] test_setUserPositionManagersWithSig_ERC1271_revertsWith_InvalidAccountNonce(bytes32) (runs: 5000, μ: 460278, ~: 461824)
[PASS] test_setUserPositionManagersWithSig_ERC1271_revertsWith_InvalidSignature_dueTo_ExpiredDeadline() (gas: 277122)
[PASS] test_setUserPositionManagersWithSig_ERC1271_revertsWith_InvalidSignature_dueTo_InvalidHash() (gas: 328428)
[PASS] test_setUserPositionManagersWithSig_multiple_updates((address,bool)[]) (runs: 5000, μ: 2443496, ~: 2411000)
[PASS] test_setUserPositionManagersWithSig_revertsWith_InvalidAccountNonce(bytes32) (runs: 5000, μ: 258300, ~: 257501)
[PASS] test_setUserPositionManagersWithSig_revertsWith_InvalidSignature_dueTo_ExpiredDeadline() (gas: 33302)
[PASS] test_setUserPositionManagersWithSig_revertsWith_InvalidSignature_dueTo_InvalidSigner() (gas: 33695)
[PASS] test_setUserPositionManagersWithSig_zero_updates() (gas: 256432)
[PASS] test_useNonce_monotonic(bytes32) (runs: 5000, μ: 19474, ~: 19474)
Suite result: ok. 15 passed; 0 failed; 0 skipped; finished in 60.24s (60.21s CPU time)
Ran 9 tests for tests/contracts/spoke/misc/Spoke.SetUsingAsCollateral.t.sol:SpokeSetUsingAsCollateralTest
[PASS] test_setUsingAsCollateral() (gas: 314916)
[PASS] test_setUsingAsCollateral_collateralStatusUnchanged() (gas: 474354)
[PASS] test_setUsingAsCollateral_revertsWith_MaximumUserReservesExceeded() (gas: 5706493)
[PASS] test_setUsingAsCollateral_revertsWith_ReentrancyGuardReentrantCall() (gas: 777432)
[PASS] test_setUsingAsCollateral_revertsWith_ReserveFrozen() (gas: 106635)
[PASS] test_setUsingAsCollateral_revertsWith_ReserveNotListed() (gas: 28527)
[PASS] test_setUsingAsCollateral_revertsWith_ReservePaused() (gas: 65885)
[PASS] test_setUsingAsCollateral_to_limit_disable_enable_again() (gas: 5963016)
[PASS] test_setUsingAsCollateral_unlimited_whenLimitIsMax() (gas: 826611)
Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 43.94ms (11.65ms CPU time)
Ran 15 tests for tests/contracts/hub/add-remove/Hub.Remove.t.sol:HubRemoveTest
[PASS] test_remove() (gas: 221433)
Logs:
Bound result 2
Bound result 100000000000000000000
[PASS] test_remove_all_with_interest() (gas: 387732)
[PASS] test_remove_fuzz(uint256,uint256) (runs: 5000, μ: 220242, ~: 220306)
Logs:
Bound result 0
Bound result 2596000000000000000
[PASS] test_remove_fuzz_all_liquidity_with_interest(uint256,uint256) (runs: 5000, μ: 438434, ~: 438707)
Logs:
Bound result 100000000000000000000
Bound result 544000000
[PASS] test_remove_fuzz_multi_spoke(uint256,uint256) (runs: 5000, μ: 304344, ~: 304458)
Logs:
Bound result 80000000000000000000000000
Bound result 2596000000000000000
[PASS] test_remove_fuzz_multi_spoke_with_interest(uint256,uint256,uint256,uint256) (runs: 5000, μ: 439473, ~: 439978)
Logs:
Bound result 4475075785254438
Bound result 27990576729831268045496833807
Bound result 16891460059776472506697061478
Bound result 541975908
[PASS] test_remove_revertsWith_InsufficientLiquidity() (gas: 162043)
[PASS] test_remove_revertsWith_InsufficientLiquidity_exceeding_added_amount() (gas: 151233)
[PASS] test_remove_revertsWith_InsufficientLiquidity_zero_added() (gas: 26348)
[PASS] test_remove_revertsWith_InvalidAddress() (gas: 21463)
[PASS] test_remove_revertsWith_InvalidAmount() (gas: 23620)
[PASS] test_remove_revertsWith_SpokeHalted() (gas: 68400)
[PASS] test_remove_revertsWith_SpokeNotActive() (gas: 68398)
[PASS] test_remove_revertsWith_underflow_exceeding_added_amount() (gas: 186917)
[PASS] test_remove_revertsWtih_underflow_one_extra_wei() (gas: 367420)
Suite result: ok. 15 passed; 0 failed; 0 skipped; finished in 31.85s (31.82s CPU time)
Ran 7 tests for tests/contracts/hub/deficit/Hub.ReportDeficit.t.sol:HubReportDeficitTest
[PASS] test_reportDeficit_fuzz_revertsWith_SurplusDrawnDeficitReported(uint256) (runs: 5000, μ: 229168, ~: 229606)
Logs:
Bound result 700000000000000000
[PASS] test_reportDeficit_fuzz_revertsWith_SurplusPremiumRayDeficitReported(uint256) (runs: 5000, μ: 229858, ~: 230296)
Logs:
Bound result 700000000000000000
[PASS] test_reportDeficit_fuzz_with_premium(uint256,uint256,uint256,uint256) (runs: 5000, μ: 381756, ~: 382431)
Logs:
Bound result 792
Bound result 10
Bound result 102
Bound result 63
[PASS] test_reportDeficit_halted() (gas: 274045)
[PASS] test_reportDeficit_revertsWith_InvalidAmount() (gas: 27786)
[PASS] test_reportDeficit_revertsWith_SpokeNotActive(address) (runs: 5000, μ: 40042, ~: 40042)
[PASS] test_reportDeficit_with_premium() (gas: 381054)
Logs:
Bound result 10000000000
Bound result 31536000
Bound result 5000000000
Bound result 0
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 15.40s (15.37s CPU time)
Ran 3 tests for tests/contracts/hub/misc/Hub.Rescue.t.sol:HubRescueTest
[PASS] test_cannot_rescue_liquidity_fee_reverts_with_InsufficientTransferred() (gas: 277182)
[PASS] test_rescue_fuzz_with_interest(uint256,uint256) (runs: 5000, μ: 520756, ~: 520712)
Logs:
Bound result 546449777
Bound result 100000000000000000000000000000
[PASS] test_rescue_scenario_fuzz(uint256) (runs: 5000, μ: 458913, ~: 458708)
Logs:
Bound result 700000000000000000
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 17.17s (17.14s CPU time)
Ran 23 tests for tests/contracts/hub/draw-restore/Hub.Restore.t.sol:HubRestoreTest
[PASS] test_restore_full_amount_with_interest() (gas: 379923)
Logs:
Bound result 1000000000000000000000
Bound result 500000000000000000000
Bound result 31536000
[PASS] test_restore_full_amount_with_interest_and_premium() (gas: 695434)
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, μ: 381204, ~: 381298)
Logs:
Bound result 1
Bound result 1
Bound result 80677111
[PASS] test_restore_fuzz_full_amount_with_interest_and_premium(uint256,uint256,uint256,uint256) (runs: 5000, μ: 685590, ~: 697386)
Logs:
Bound result 4475075785254438
Bound result 1195560508342773
Bound result 73429313
Bound result 14401321381430
[PASS] test_restore_fuzz_revertsWith_SurplusDrawnRestored_with_interest(uint256,uint256,uint256) (runs: 5000, μ: 255558, ~: 256677)
Logs:
Bound result 1
Bound result 1
Bound result 80677111
[PASS] test_restore_fuzz_revertsWith_SurplusDrawnRestored_with_interest_and_premium(uint256,uint256,uint256,uint256) (runs: 5000, μ: 655141, ~: 655404)
Logs:
Bound result 4475075785254438
Bound result 1195560508342773
Bound result 73429313
Bound result 14401321381430
[PASS] test_restore_one_share_delta_increase_revertsWith_InvalidPremiumChange() (gas: 246388)
[PASS] test_restore_partial_drawn() (gas: 341434)
[PASS] test_restore_partial_same_block() (gas: 340516)
[PASS] test_restore_premiumDeltas_twoWeiIncrease_realizedDelta() (gas: 244814)
[PASS] test_restore_revertsWith_InsufficientTransferred() (gas: 264148)
[PASS] test_restore_revertsWith_InvalidAmount_zero() (gas: 67795)
[PASS] test_restore_revertsWith_InvalidPremiumChange_premiumIncrease() (gas: 253321)
[PASS] test_restore_revertsWith_InvalidPremiumChange_premiumSharesIncrease() (gas: 253365)
[PASS] test_restore_revertsWith_SpokeHalted() (gas: 110434)
[PASS] test_restore_revertsWith_SpokeNotActive_whenPaused() (gas: 196951)
[PASS] test_restore_revertsWith_SurplusDrawnRestored() (gas: 371756)
[PASS] test_restore_revertsWith_SurplusDrawnRestored_with_interest() (gas: 255279)
Logs:
Bound result 100000000000000000000
Bound result 50000000000000000000
Bound result 15768000
[PASS] test_restore_revertsWith_SurplusDrawnRestored_with_interest_and_premium() (gas: 653344)
Logs:
Bound result 100000000000000000000
Bound result 50000000000000000000
Bound result 31536000
Bound result 1
[PASS] test_restore_revertsWith_SurplusPremiumRayRestored() (gas: 517967)
[PASS] test_restore_revertsWith_underflow_offsetIncrease() (gas: 262202)
[PASS] test_restore_tooMuchDrawn_revertsWith_SurplusDrawnRestored() (gas: 222111)
[PASS] test_restore_when_asset_caps_reset() (gas: 459000)
Suite result: ok. 23 passed; 0 failed; 0 skipped; finished in 19.08s (19.05s CPU time)
Ran 7 tests for tests/contracts/spoke/accrual/Spoke.AccrueInterest.t.sol:SpokeAccrueInterestTest
[PASS] test_accrueInterest_NoActionTaken() (gas: 155586)
[PASS] test_accrueInterest_NoInterest_NoDebt(uint40) (runs: 5000, μ: 711048, ~: 710886)
Logs:
Bound result 4757
[PASS] test_accrueInterest_NoInterest_OnlySupply(uint40) (runs: 5000, μ: 273095, ~: 273088)
Logs:
Bound result 4757
[PASS] test_accrueInterest_TenPercentRp(uint256,uint40) (runs: 5000, μ: 613266, ~: 613715)
Logs:
Bound result 80000000000000000000000000
Bound result 724598919
[PASS] test_accrueInterest_fuzz_BorrowAmountAndSkipTime(uint256,uint40) (runs: 5000, μ: 572533, ~: 572913)
Logs:
Bound result 80000000000000000000000000
Bound result 724598919
[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, μ: 4871790, ~: 4892338)
Logs:
Bound result 305375510110605085784250
Bound result 838324472593858632247811151037
Bound result 479838552462878223
Bound result 78332134910116782229
Bound result 320722892869241549999882771013
Bound result 208534014331542203242891652683
Bound result 601072247187333131
Bound result 38467602528369177241
Bound result 185
Bound result 53845
Bound result 30746
Bound result 61159
Bound result 198027
Bound result 320722892869241549999882771013
Bound result 208534014331542203242891652683
Bound result 601072247187333131
Bound result 38467602528369177241
Suite result: ok. 6 passed; 0 failed; 1 skipped; finished in 139.75s (139.71s CPU time)
Ran 1 test for tests/contracts/hub/misc/Hub.Rounding.t.sol:HubRoundingTest
[PASS] test_sharePriceWithMultipleDonations() (gas: 681921221)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 2.90s (2.87s CPU time)
Ran 5 tests for tests/contracts/spoke/accrual/Spoke.AccrueLiquidityFee.EdgeCases.t.sol:SpokeAccrueLiquidityFeeEdgeCasesTest
[PASS] test_accrueLiquidityFee_fuzz_maxLiquidityFee_with_premium(uint256,uint256,uint256,uint256) (runs: 5000, μ: 558029, ~: 558105)
Logs:
Bound result 75908
Bound result 73429313
Bound result 3
Bound result 360452665066617555
[PASS] test_accrueLiquidityFee_fuzz_maxLiquidityFee_with_premium_multiple_users(uint256,uint256,uint256,uint256,uint256) (runs: 5000, μ: 819029, ~: 819122)
Logs:
Bound result 10861
Bound result 91588948
Bound result 2
Bound result 237267049552026281710378789740
Bound result 95530386142700665705760270418
[PASS] test_accrueLiquidityFee_maxLiquidityFee_multi_spoke() (gas: 281470908)
[PASS] test_accrueLiquidityFee_maxLiquidityFee_multi_user() (gas: 197683658)
[PASS] test_accrueLiquidityFee_maxLiquidityFee_with_premium() (gas: 558123)
Logs:
Bound result 5000
Bound result 34560000
Bound result 2
Bound result 500000000000000000000
Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 18.10s (18.07s CPU time)
Ran 15 tests for tests/contracts/spoke/supply/Spoke.Supply.t.sol:SpokeSupplyTest
[PASS] test_fuzz_supply_effect_on_ex_rates(uint256,uint256) (runs: 5000, μ: 716831, ~: 717825)
Logs:
Bound result 544000000
Bound result 80000000000000000000000000
[PASS] test_supply() (gas: 379017)
[PASS] test_supply_does_not_update_risk_premium() (gas: 2096070)
[PASS] test_supply_fuzz_amounts(uint256) (runs: 5000, μ: 503452, ~: 503121)
Logs:
Bound result 700000000000000000
[PASS] test_supply_fuzz_index_increase_no_premium(uint256,uint256,uint256,uint256) (runs: 5000, μ: 1263826, ~: 1271819)
Logs:
Bound result 1000000000000000000000000000000
Bound result 52352
Bound result 3
Bound result 688857307
[PASS] test_supply_fuzz_index_increase_with_premium(uint256,uint256,uint256,uint256) (runs: 5000, μ: 1456156, ~: 1464045)
Logs:
Bound result 1000000000000000000000000000000
Bound result 52352
Bound result 3
Bound result 688857307
[PASS] test_supply_fuzz_revertsWith_ERC20InsufficientBalance(uint256) (runs: 5000, μ: 62088, ~: 61801)
Logs:
Bound result 700000000000000000
[PASS] test_supply_index_increase_no_premium() (gas: 1347847)
[PASS] test_supply_index_increase_with_premium() (gas: 1406237)
[PASS] test_supply_revertsWith_ERC20InsufficientAllowance() (gas: 39662)
[PASS] test_supply_revertsWith_InvalidSupplyAmount() (gas: 47318)
[PASS] test_supply_revertsWith_ReentrancyGuardReentrantCall() (gas: 278566)
[PASS] test_supply_revertsWith_ReserveFrozen() (gas: 63609)
[PASS] test_supply_revertsWith_ReserveNotListed() (gas: 22912)
[PASS] test_supply_revertsWith_ReservePaused() (gas: 63538)
Suite result: ok. 15 passed; 0 failed; 0 skipped; finished in 90.34s (90.31s CPU time)
Ran 1 test for tests/contracts/spoke/configuration/Spoke.UpdateUserDynamicConfig.t.sol:SpokeUpdateUserDynamicConfigTest
[PASS] test_updateUserDynamicConfig_revertsWith_ReentrancyGuardReentrantCall() (gas: 641500)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 30.18ms (846.54µs CPU time)
Ran 1 test for tests/contracts/spoke/risk-premium/Spoke.UpdateUserRiskPremium.t.sol:SpokeUpdateUserRiskPremiumTest
[PASS] test_updateUserRiskPremium_revertsWith_ReentrancyGuardReentrantCall() (gas: 640502)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 30.34ms (902.46µs CPU time)
Ran 4 tests for tests/contracts/hub/misc/Hub.Skim.t.sol:HubSkimTest
[PASS] test_skimAdd_fuzz_donationAfterAdd(uint256,uint256,uint256) (runs: 5000, μ: 241467, ~: 241427)
Logs:
Bound result 0
Bound result 409652
Bound result 61864027721225739099728677111
[PASS] test_skimAdd_fuzz_donationBeforeAdd(uint256,uint256,uint256) (runs: 5000, μ: 241477, ~: 241437)
Logs:
Bound result 0
Bound result 409652
Bound result 61864027721225739099728677111
[PASS] test_skimAdd_fuzz_wrongSpokeTransfer(uint256,uint256,uint256) (runs: 5000, μ: 230536, ~: 230486)
Logs:
Bound result 0
Bound result 409652
Bound result 124013
[PASS] test_skimRestore_fuzz_liquidityDonation(uint256,uint256,uint256) (runs: 5000, μ: 282218, ~: 283377)
Logs:
Bound result 0
Bound result 409652
Bound result 328839
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 33.79s (33.76s CPU time)
Ran 7 tests for tests/contracts/spoke/accrual/Spoke.AccrueLiquidityFee.t.sol:SpokeAccrueLiquidityFeeTest
[PASS] test_accrueLiquidityFee() (gas: 923020)
[PASS] test_accrueLiquidityFee_NoActionTaken() (gas: 138320)
[PASS] test_accrueLiquidityFee_NoInterest_OnlySupply(uint40) (runs: 5000, μ: 261787, ~: 261744)
Logs:
Bound result 4510
[PASS] test_accrueLiquidityFee_exact() (gas: 929328)
[PASS] test_accrueLiquidityFee_fuzz_BorrowAmountAndSkipTime(uint256,uint40) (runs: 5000, μ: 1007277, ~: 1031646)
Logs:
Bound result 80000000000000000000000000
Bound result 214295263
[PASS] test_accrueLiquidityFee_maxLiquidityFee() (gas: 563962)
[PASS] test_accrueLiquidityFee_setUsingAsCollateral() (gas: 922952)
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 20.86s (20.83s CPU time)
Ran 10 tests for tests/contracts/hub/configuration/Hub.SpokeConfig.t.sol:HubSpokeConfigTest
[PASS] test_add_active_halted_scenarios() (gas: 320777)
[PASS] test_draw_active_halted_scenarios() (gas: 323360)
[PASS] test_eliminateDeficit_active_halted_scenarios() (gas: 859545)
[PASS] test_mintFeeShares_active_halted_scenarios() (gas: 854206)
[PASS] test_payFeeShares_active_halted_scenarios() (gas: 390412)
[PASS] test_refreshPremium_active_halted_scenarios() (gas: 286040)
[PASS] test_remove_active_halted_scenarios() (gas: 337215)
[PASS] test_reportDeficit_active_halted_scenarios() (gas: 466692)
[PASS] test_restore_active_halted_scenarios() (gas: 372855)
[PASS] test_transferShares_fuzz_active_halted_scenarios(bool,bool,bool,bool) (runs: 5000, μ: 223479, ~: 223453)
Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 4.09s (4.06s CPU time)
Ran 10 tests for tests/contracts/spoke/misc/Spoke.Upgradeable.t.sol:SpokeUpgradeableTest
[PASS] test_implementation_constructor_fuzz(uint64) (runs: 5000, μ: 6787198, ~: 6787198)
[PASS] test_proxy_constructor_fuzz(uint64) (runs: 5000, μ: 6815819, ~: 6815812)
Logs:
Bound result 1000000000
[PASS] test_proxy_constructor_fuzz_revertsWith_InvalidInitialization(uint64) (runs: 5000, μ: 13565312, ~: 13565305)
Logs:
Bound result 1000000000
[PASS] test_proxy_constructor_revertsWith_InvalidAddress() (gas: 5010664)
[PASS] test_proxy_constructor_revertsWith_InvalidInitialization_ZeroRevision() (gas: 6784571)
[PASS] test_proxy_reinitialization_fuzz(uint64) (runs: 5000, μ: 14842006, ~: 14841990)
Logs:
Bound result 1000000000
[PASS] test_proxy_reinitialization_revertsWith_CallerNotProxyAdmin() (gas: 11790763)
[PASS] test_proxy_reinitialization_revertsWith_InvalidAddress() (gas: 11791497)
[PASS] test_proxy_storage_persists_across_upgrade() (gas: 14830499)
[PASS] test_spoke_revision_accessible() (gas: 5015138)
Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 25.15s (25.12s CPU time)
Ran 6 tests for tests/contracts/spoke/misc/Spoke.UserAccountData.t.sol:SpokeUserAccountDataTest
[PASS] test_userAccountData_scenario1() (gas: 512094)
[PASS] test_userAccountData_scenario2() (gas: 573068)
[PASS] test_userAccountData_scenario3() (gas: 573269)
[PASS] test_userAccountData_scenario4() (gas: 851337)
[PASS] test_userAccountData_scenario5() (gas: 734661)
[PASS] test_userAccountData_scenario6() (gas: 703086)
Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 35.16ms (4.36ms CPU time)
Ran 8 tests for tests/contracts/hub/misc/Hub.Sweep.t.sol:HubSweepTest
[PASS] test_sweep() (gas: 471853)
Logs:
Bound result 1000000000000000000000
Bound result 1000000000000000000000
[PASS] test_sweep_does_not_impact_utilization(uint256,uint256) (runs: 5000, μ: 653590, ~: 654743)
Logs:
Bound result 80000000000000000000000000
Bound result 2596000000000000000
[PASS] test_sweep_fuzz(uint256,uint256) (runs: 5000, μ: 476271, ~: 476465)
Logs:
Bound result 80000000000000000000000000
Bound result 2596000000000000000
[PASS] test_sweep_revertsWith_AssetNotListed() (gas: 17956)
[PASS] test_sweep_revertsWith_InsufficientLiquidity() (gas: 227157)
[PASS] test_sweep_revertsWith_InvalidAmount() (gas: 110855)
[PASS] test_sweep_revertsWith_OnlyReinvestmentController(address) (runs: 5000, μ: 98425, ~: 98425)
[PASS] test_sweep_revertsWith_OnlyReinvestmentController_init() (gas: 45573)
Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 20.05s (20.02s CPU time)
Ran 7 tests for tests/contracts/hub/add-remove/Hub.TransferShares.t.sol:HubTransferSharesTest
[PASS] test_transferShares() (gas: 199716)
Logs:
Bound result 1000000000000000000000
Bound result 1000000000000000000000
[PASS] test_transferShares_fuzz(uint256,uint256) (runs: 5000, μ: 203094, ~: 203299)
Logs:
Bound result 80000000000000000000000000
Bound result 2596000000000000000
[PASS] test_transferShares_fuzz_revertsWith_underflow_spoke_added_shares_exceeded(uint256) (runs: 5000, μ: 155824, ~: 155537)
Logs:
Bound result 700000000000000000
[PASS] test_transferShares_revertsWith_AddCapExceeded() (gas: 211348)
[PASS] test_transferShares_revertsWith_SpokeHalted() (gas: 190902)
[PASS] test_transferShares_revertsWith_SpokeNotActive() (gas: 184103)
[PASS] test_transferShares_zeroShares_revertsWith_InvalidShares() (gas: 27543)
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 9.03s (9.00s CPU time)
Ran 10 tests for tests/contracts/hub/misc/Hub.Upgradeable.t.sol:HubUpgradeableTest
[PASS] test_hub_revision_accessible() (gas: 5003152)
[PASS] test_implementation_constructor_fuzz(uint64) (runs: 5000, μ: 6332111, ~: 6332111)
[PASS] test_proxy_constructor_fuzz(uint64) (runs: 5000, μ: 6350276, ~: 6350269)
Logs:
Bound result 1000000000
[PASS] test_proxy_constructor_fuzz_revertsWith_InvalidInitialization(uint64) (runs: 5000, μ: 12660275, ~: 12660268)
Logs:
Bound result 1000000000
[PASS] test_proxy_constructor_revertsWith_InvalidAddress() (gas: 4998882)
[PASS] test_proxy_constructor_revertsWith_InvalidInitialization_ZeroRevision() (gas: 6329422)
[PASS] test_proxy_reinitialization_fuzz(uint64) (runs: 5000, μ: 14073221, ~: 14073206)
Logs:
Bound result 1000000000
[PASS] test_proxy_reinitialization_revertsWith_CallerNotProxyAdmin() (gas: 12650654)
[PASS] test_proxy_reinitialization_revertsWith_InvalidAddress() (gas: 12651077)
[PASS] test_proxy_storage_persists_across_upgrade() (gas: 14073302)
Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 20.50s (20.47s CPU time)
Ran 8 tests for tests/contracts/hub/misc/HubAccrueInterest.t.sol:HubAccrueInterestTest
[PASS] test_accrueInterest_NoActionTaken() (gas: 48710)
[PASS] test_accrueInterest_NoInterest_NoDebt(uint40) (runs: 5000, μ: 406996, ~: 406870)
Logs:
Bound result 4279
[PASS] test_accrueInterest_NoInterest_OnlyAdd(uint40) (runs: 5000, μ: 210195, ~: 210139)
Logs:
Bound result 4279
[PASS] test_accrueInterest_fuzz_BorrowAmountAndElapsed(uint256,uint40) (runs: 5000, μ: 279989, ~: 279897)
Logs:
Bound result 80000000000000000000000000
Bound result 169539317360
[PASS] test_accrueInterest_fuzz_BorrowAmountRateAndElapsed(uint256,uint256,uint40) (runs: 5000, μ: 398614, ~: 398372)
Logs:
Bound result 1
Bound result 9648
Bound result 166135
[PASS] test_accrueInterest_fuzz_BorrowAndWait(uint40) (runs: 5000, μ: 278696, ~: 278605)
Logs:
Bound result 4279
[PASS] test_getAssetDrawnRate_MatchesStoredAfterAction() (gas: 195004)
[PASS] test_getAssetDrawnRate_fuzz_DiffersAfterTimePasses(uint40) (runs: 5000, μ: 219590, ~: 219462)
Logs:
Bound result 4279
Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 27.60s (27.57s CPU time)
Ran 13 tests for tests/contracts/hub/configurator/HubConfigurator.GranularAccessControl.t.sol:HubConfiguratorGranularAccessControlTest
[PASS] test_assetManager_canCall_deactivateAsset() (gas: 149209)
[PASS] test_assetManager_canCall_haltAsset() (gas: 149223)
[PASS] test_assetManager_canCall_resetAssetCaps() (gas: 149707)
[PASS] test_assetManager_canCall_updateLiquidityFee() (gas: 90157)
[PASS] test_assetManager_cannotCall_anySpokeManagerMethod() (gas: 354221)
[PASS] test_fuzz_unauthorized_cannotCall_assetManagerMethods(address) (runs: 5000, μ: 279962, ~: 279962)
[PASS] test_fuzz_unauthorized_cannotCall_spokeManagerMethods(address) (runs: 5000, μ: 354590, ~: 354590)
[PASS] test_spokeManager_canCall_addSpoke() (gas: 132156)
[PASS] test_spokeManager_canCall_resetSpokeCaps() (gas: 205666)
[PASS] test_spokeManager_canCall_updateSpokeActive() (gas: 71977)
[PASS] test_spokeManager_canCall_updateSpokeCaps() (gas: 72523)
[PASS] test_spokeManager_canCall_updateSpokeHalted() (gas: 71946)
[PASS] test_spokeManager_cannotCall_anyAssetManagerMethod() (gas: 279027)
Suite result: ok. 13 passed; 0 failed; 0 skipped; finished in 5.60s (5.57s CPU time)
Ran 60 tests for tests/contracts/hub/configurator/HubConfigurator.t.sol:HubConfiguratorTest
[PASS] test_addAsset_fuzz(bool,address,uint8,address,uint256,uint16,uint32,uint32,uint32) (runs: 5000, μ: 457866, ~: 458540)
Logs:
Bound result 13
Bound result 103
Bound result 7821
Bound result 28531
Bound result 751
Bound result 44090
[PASS] test_addAsset_fuzz_revertsWith_AccessManagedUnauthorized(address) (runs: 5000, μ: 48838, ~: 49221)
[PASS] test_addAsset_fuzz_revertsWith_InvalidAssetDecimals(bool,address,uint8,address,uint256,address) (runs: 5000, μ: 70257, ~: 70214)
Logs:
Bound result 19
Bound result 2878
[PASS] test_addAsset_revertsWith_InvalidAddress_irStrategy() (gas: 63250)
[PASS] test_addAsset_revertsWith_InvalidAddress_underlying() (gas: 63187)
[PASS] test_addAsset_revertsWith_InvalidLiquidityFee() (gas: 356185)
[PASS] test_addAsset_reverts_invalidIrData() (gas: 81471)
[PASS] test_addSpoke() (gas: 140965)
[PASS] test_addSpokeToAssets() (gas: 239204)
[PASS] test_addSpokeToAssets_revertsWith_AccessManagedUnauthorized() (gas: 28169)
[PASS] test_addSpokeToAssets_revertsWith_MismatchedConfigs() (gas: 35971)
[PASS] test_addSpoke_revertsWith_AccessManagedUnauthorized() (gas: 27836)
[PASS] test_deactivateAsset() (gas: 191176)
[PASS] test_deactivateAsset_revertsWith_AccessManagedUnauthorized() (gas: 29021)
[PASS] test_deactivateSpoke() (gas: 192554)
[PASS] test_deactivateSpoke_revertsWith_AccessManagedUnauthorized() (gas: 29035)
[PASS] test_haltAsset() (gas: 191232)
[PASS] test_haltAsset_revertsWith_AccessManagedUnauthorized() (gas: 28977)
[PASS] test_haltSpoke() (gas: 192574)
[PASS] test_haltSpoke_revertsWith_AccessManagedUnauthorized() (gas: 29023)
[PASS] test_resetAssetCaps() (gas: 265416)
[PASS] test_resetAssetCaps_revertsWith_AccessManagedUnauthorized() (gas: 28952)
[PASS] test_resetSpokeCaps() (gas: 285587)
[PASS] test_resetSpokeCaps_revertsWith_AccessManagedUnauthorized() (gas: 29087)
[PASS] test_updateFeeConfig_Scenario() (gas: 366884)
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, μ: 202966, ~: 203255)
Logs:
Bound result 4
Bound result 5784
[PASS] test_updateFeeConfig_fuzz_revertsWith_AccessManagedUnauthorized(address) (runs: 5000, μ: 35062, ~: 35062)
[PASS] test_updateFeeConfig_revertsWith_InvalidAddress_spoke() (gas: 65284)
[PASS] test_updateFeeConfig_revertsWith_InvalidLiquidityFee() (gas: 68932)
[PASS] test_updateFeeReceiver_Scenario() (gas: 237399)
[PASS] test_updateFeeReceiver_WithdrawFromOldSpoke() (gas: 2132208)
[PASS] test_updateFeeReceiver_correctAccruals() (gas: 2170340)
[PASS] test_updateFeeReceiver_fuzz(address) (runs: 5000, μ: 196109, ~: 196127)
[PASS] test_updateFeeReceiver_fuzz_revertsWith_AccessManagedUnauthorized(address) (runs: 5000, μ: 34746, ~: 34746)
[PASS] test_updateFeeReceiver_revertsWith_InvalidAddress_spoke() (gas: 69939)
[PASS] test_updateFeeReceiver_revertsWith_SpokeAlreadyListed() (gas: 95268)
[PASS] test_updateInterestRateData() (gas: 86852)
[PASS] test_updateInterestRateData_revertsWith_AccessManagedUnauthorized() (gas: 30180)
[PASS] test_updateInterestRateStrategy() (gas: 109286)
[PASS] test_updateInterestRateStrategy_fuzz_revertsWith_AccessManagedUnauthorized(address) (runs: 5000, μ: 46099, ~: 46099)
[PASS] test_updateInterestRateStrategy_revertsWith_DrawnRateStrategyReverts() (gas: 91881)
[PASS] test_updateInterestRateStrategy_revertsWith_InvalidAddress_irStrategy() (gas: 81455)
[PASS] test_updateInterestRateStrategy_revertsWith_InvalidInterestRateStrategy() (gas: 81656)
[PASS] test_updateLiquidityFee_fuzz(uint256,uint16) (runs: 5000, μ: 107267, ~: 108851)
Logs:
Bound result 2
Bound result 4000
[PASS] test_updateLiquidityFee_revertsWith_AccessManagedUnauthorized() (gas: 27622)
[PASS] test_updateLiquidityFee_revertsWith_InvalidLiquidityFee() (gas: 70079)
[PASS] test_updateReinvestmentController() (gas: 117309)
[PASS] test_updateReinvestmentController_fuzz_revertsWith_AccessManagedUnauthorized(address) (runs: 5000, μ: 34703, ~: 34703)
[PASS] test_updateSpokeActive() (gas: 107347)
[PASS] test_updateSpokeActive_revertsWith_AccessManagedUnauthorized() (gas: 31321)
[PASS] test_updateSpokeAddCap() (gas: 81852)
[PASS] test_updateSpokeAddCap_revertsWith_AccessManagedUnauthorized() (gas: 31290)
[PASS] test_updateSpokeCaps() (gas: 81965)
[PASS] test_updateSpokeCaps_revertsWith_AccessManagedUnauthorized() (gas: 31300)
[PASS] test_updateSpokeDrawCap() (gas: 81770)
[PASS] test_updateSpokeDrawCap_revertsWith_AccessManagedUnauthorized() (gas: 31289)
[PASS] test_updateSpokeHalted() (gas: 110103)
[PASS] test_updateSpokeHalted_revertsWith_AccessManagedUnauthorized() (gas: 31276)
[PASS] test_updateSpokeRiskPremiumThreshold() (gas: 81837)
[PASS] test_updateSpokeRiskPremiumThreshold_revertsWith_AccessManagedUnauthorized() (gas: 31301)
Suite result: ok. 60 passed; 0 failed; 0 skipped; finished in 13.16s (13.13s CPU time)
Ran 46 tests for tests/config-engine/HubEngine.t.sol:HubEngineTest
[PASS] test_computeImplementationAddress() (gas: 23584)
[PASS] test_executeHubAssetCapsResets() (gas: 181431)
[PASS] test_executeHubAssetConfigUpdates_allFields() (gas: 334425)
[PASS] test_executeHubAssetConfigUpdates_crossHub() (gas: 247710)
[PASS] test_executeHubAssetConfigUpdates_feeBoth() (gas: 240719)
[PASS] test_executeHubAssetConf...*[Comment body truncated]* |
Forge Build Sizes🔕 Unchanged
|
♻️ Forge Gas Snapshots🔕 Unchanged
|
yan-man
marked this pull request as ready for review
March 30, 2026 17:15
yan-man
commented
Mar 30, 2026
| # certora/conf/libs/LiquidationLogic.conf --rule collateralToLiquidateValueLessThanDebtToLiquidate | ||
| # certora/conf/HubValidState.conf --rule totalAssetsVsShares_eliminateDeficit | ||
| # certora/conf/LiquidationReportDeficit.conf | ||
| # certora/conf/Liquidation.conf |
Contributor
Author
There was a problem hiding this comment.
note: Liquidation spec is flaky and commented out here (but succeeds on local run)
yan-man
commented
Mar 30, 2026
yan-man
commented
Mar 30, 2026
Closed
DhairyaSethi
reviewed
Apr 1, 2026
There was a problem hiding this comment.
Verified Rules
- Group ID: 5445aa6d-1449-4cef-9539-6e3b7d63ea85
- Commit: 87e03ba
| Job | Result | TIMEOUT | VERIFIED | Link |
|---|---|---|---|---|
| Spoke.conf --rule realizedPremiumRayConsistency | ❌ | 1 | 1 | Link |
Successful Jobs
| Job | Result | TIMEOUT | VERIFIED | Link |
|---|---|---|---|---|
| SpokeWithHub.conf --rule userSuppliedShareConsistency | ✅ | 0 | 2 | Link |
| SpokeWithHub.conf --rule userPremiumShareConsistency | ✅ | 0 | 2 | Link |
| SpokeWithHub.conf --rule userPremiumOffsetConsistency | ✅ | 0 | 2 | Link |
| SpokeWithHub.conf --rule userDrawnShareConsistency | ✅ | 0 | 2 | Link |
| SpokeWithHub.conf --exclude_rule userDrawnShareConsistency userPremiumShareConsistency userPremiumOffsetConsistency userSuppliedShareConsistency | ✅ | 0 | 3 | Link |
| SpokeUserIntegrity.conf | ✅ | 0 | 1 | Link |
| SpokeIntegrity.conf | ✅ | 0 | 10 | Link |
| SpokeHealthFactor.conf --exclude_rule userHealthAboveThreshold userHealthBelowThresholdCanOnlyIncreaseHealthFactor | ✅ | 0 | 1 | Link |
| SpokeHealthCheck.conf | ✅ | 0 | 2 | Link |
| Spoke.conf --rule increaseCollateralOrReduceDebtFunctions | ✅ | 0 | 2 | Link |
| Spoke.conf --rule drawnSharesZero | ✅ | 0 | 2 | Link |
| Spoke.conf --rule collateralFactorNotZero | ✅ | 0 | 2 | Link |
| Spoke.conf --exclude_rule drawnSharesZero noCollateralNoDebt increaseCollateralOrReduceDebtFunctions collateralFactorNotZero realizedPremiumRayConsistency | ✅ | 0 | 13 | Link |
| LiquidationUserIntegrity.conf | ✅ | 0 | 1 | Link |
| LiquidationIntegrity.conf | ✅ | 0 | 2 | Link |
| libs/VerifySymbolicPositionStatus.conf | ✅ | 0 | 8 | Link |
| libs/SpokeUtils_toValue.conf | ✅ | 0 | 2 | Link |
| libs/SharesMath.conf | ✅ | 0 | 10 | Link |
| libs/Premium.conf | ✅ | 0 | 2 | Link |
| libs/PositionStatus.conf | ✅ | 0 | 9 | Link |
| libs/Math.conf | ✅ | 0 | 19 | Link |
| libs/LiquidationLogic_debtToLiquidate.conf | ✅ | 0 | 4 | Link |
| libs/LiquidationLogic.conf --exclude_rule collateralToLiquidateValueLessThanDebtToLiquidate collateralToLiquidateValueLessThanDebtToLiquidate_general | ✅ | 0 | 5 | Link |
| libs/LiquidationLogic_Bonus.conf | ✅ | 0 | 8 | Link |
| libs/LibBit.conf | ✅ | 0 | 6 | Link |
| HubValidState.conf --exclude_rule totalAssetsVsShares_eliminateDeficit totalAssetsVsShares | ✅ | 0 | 12 | Link |
| HubIntegrity.conf | ✅ | 0 | 17 | Link |
| Hub.conf --rule noChangeToOtherSpoke | ✅ | 0 | 1 | Link |
| Hub.conf --exclude_rule noChangeToOtherSpoke supplyExchangeRateIsMonotonic supplyExchangeRateIsMonotonic_eliminateDeficit_simplified totalAssetsCompareToSuppliedAmount_noVirtual | ✅ | 0 | 3 | Link |
| HubAccrueUnrealizedFee.conf | ✅ | 0 | 3 | Link |
| HubAccrueSupplyRate.conf --exclude_rule previewRemoveByShares_withoutAccrue_time_monotonic previewRemoveByAssets_withoutAccrue_time_monotonic | ✅ | 0 | 10 | Link |
| HubAccrueIntegrity.conf | ✅ | 0 | 9 | Link |
There was a problem hiding this comment.
Verified Rules
- Group ID: e9cca798-2dd3-44b2-a484-fae5c30d0cf8
- Commit: 7c3067f
| Job | Result | TIMEOUT | VERIFIED | Link |
|---|---|---|---|---|
| libs/SharesMath.conf | ❌ | 1 | 9 | Link |
Successful Jobs
| Job | Result | TIMEOUT | VERIFIED | Link |
|---|---|---|---|---|
| SpokeWithHub.conf --rule userSuppliedShareConsistency | ✅ | 0 | 2 | Link |
| SpokeWithHub.conf --rule userPremiumShareConsistency | ✅ | 0 | 2 | Link |
| SpokeWithHub.conf --rule userPremiumOffsetConsistency | ✅ | 0 | 2 | Link |
| SpokeWithHub.conf --rule userDrawnShareConsistency | ✅ | 0 | 2 | Link |
| SpokeWithHub.conf --exclude_rule userDrawnShareConsistency userPremiumShareConsistency userPremiumOffsetConsistency userSuppliedShareConsistency | ✅ | 0 | 3 | Link |
| SpokeUserIntegrity.conf | ✅ | 0 | 1 | Link |
| SpokeIntegrity.conf | ✅ | 0 | 10 | Link |
| SpokeHealthFactor.conf --exclude_rule userHealthAboveThreshold userHealthBelowThresholdCanOnlyIncreaseHealthFactor | ✅ | 0 | 1 | Link |
| SpokeHealthCheck.conf | ✅ | 0 | 2 | Link |
| Spoke.conf --rule increaseCollateralOrReduceDebtFunctions | ✅ | 0 | 2 | Link |
| Spoke.conf --rule drawnSharesZero | ✅ | 0 | 2 | Link |
| Spoke.conf --rule collateralFactorNotZero | ✅ | 0 | 2 | Link |
| Spoke.conf --exclude_rule drawnSharesZero noCollateralNoDebt increaseCollateralOrReduceDebtFunctions collateralFactorNotZero realizedPremiumRayConsistency | ✅ | 0 | 13 | Link |
| LiquidationUserIntegrity.conf | ✅ | 0 | 1 | Link |
| LiquidationIntegrity.conf | ✅ | 0 | 2 | Link |
| libs/VerifySymbolicPositionStatus.conf | ✅ | 0 | 8 | Link |
| libs/SpokeUtils_toValue.conf | ✅ | 0 | 2 | Link |
| libs/Premium.conf | ✅ | 0 | 2 | Link |
| libs/PositionStatus.conf | ✅ | 0 | 9 | Link |
| libs/Math.conf | ✅ | 0 | 19 | Link |
| libs/LiquidationLogic_debtToLiquidate.conf | ✅ | 0 | 4 | Link |
| libs/LiquidationLogic.conf --exclude_rule collateralToLiquidateValueLessThanDebtToLiquidate collateralToLiquidateValueLessThanDebtToLiquidate_general | ✅ | 0 | 5 | Link |
| libs/LiquidationLogic_Bonus.conf | ✅ | 0 | 8 | Link |
| libs/LibBit.conf | ✅ | 0 | 6 | Link |
| HubValidState.conf --exclude_rule totalAssetsVsShares_eliminateDeficit totalAssetsVsShares | ✅ | 0 | 12 | Link |
| HubIntegrity.conf | ✅ | 0 | 17 | Link |
| Hub.conf --rule noChangeToOtherSpoke | ✅ | 0 | 1 | Link |
| Hub.conf --exclude_rule noChangeToOtherSpoke supplyExchangeRateIsMonotonic supplyExchangeRateIsMonotonic_eliminateDeficit_simplified totalAssetsCompareToSuppliedAmount_noVirtual | ✅ | 0 | 3 | Link |
| HubAccrueUnrealizedFee.conf | ✅ | 0 | 3 | Link |
| HubAccrueSupplyRate.conf --exclude_rule previewRemoveByShares_withoutAccrue_time_monotonic previewRemoveByAssets_withoutAccrue_time_monotonic | ✅ | 0 | 10 | Link |
| HubAccrueIntegrity.conf | ✅ | 0 | 9 | Link |
DhairyaSethi
previously approved these changes
May 1, 2026
There was a problem hiding this comment.
Verified Rules
- Group ID: 06704f9e-bf1f-4b76-a8ed-bf4cf9f53f20
- Commit: a4cd8f6
| Job | Result | VERIFIED | Link |
|---|
Successful Jobs
| Job | Result | VERIFIED | Link |
|---|---|---|---|
| SpokeWithHub.conf --rule userSuppliedShareConsistency | ✅ | 2 | Link |
| SpokeWithHub.conf --rule userPremiumShareConsistency | ✅ | 2 | Link |
| SpokeWithHub.conf --rule userPremiumOffsetConsistency | ✅ | 2 | Link |
| SpokeWithHub.conf --rule userDrawnShareConsistency | ✅ | 2 | Link |
| SpokeWithHub.conf --exclude_rule userDrawnShareConsistency userPremiumShareConsistency userPremiumOffsetConsistency userSuppliedShareConsistency | ✅ | 3 | Link |
| SpokeUserIntegrity.conf | ✅ | 1 | Link |
| SpokeIntegrity.conf | ✅ | 10 | Link |
| SpokeHealthFactor.conf --exclude_rule userHealthAboveThreshold userHealthBelowThresholdCanOnlyIncreaseHealthFactor | ✅ | 1 | Link |
| SpokeHealthCheck.conf | ✅ | 2 | Link |
| Spoke.conf --rule increaseCollateralOrReduceDebtFunctions | ✅ | 2 | Link |
| Spoke.conf --rule drawnSharesZero | ✅ | 2 | Link |
| Spoke.conf --rule collateralFactorNotZero | ✅ | 2 | Link |
| Spoke.conf --exclude_rule drawnSharesZero noCollateralNoDebt increaseCollateralOrReduceDebtFunctions collateralFactorNotZero realizedPremiumRayConsistency | ✅ | 13 | Link |
| LiquidationUserIntegrity.conf | ✅ | 1 | Link |
| LiquidationIntegrity.conf | ✅ | 2 | Link |
| libs/VerifySymbolicPositionStatus.conf | ✅ | 8 | Link |
| libs/SpokeUtils_toValue.conf | ✅ | 2 | Link |
| libs/Premium.conf | ✅ | 2 | Link |
| libs/PositionStatus.conf | ✅ | 9 | Link |
| libs/Math.conf | ✅ | 19 | Link |
| libs/LiquidationLogic_debtToLiquidate.conf | ✅ | 4 | Link |
| libs/LiquidationLogic.conf --exclude_rule collateralToLiquidateValueLessThanDebtToLiquidate collateralToLiquidateValueLessThanDebtToLiquidate_general | ✅ | 5 | Link |
| libs/LiquidationLogic_Bonus.conf | ✅ | 8 | Link |
| libs/LibBit.conf | ✅ | 6 | Link |
| HubValidState.conf --exclude_rule totalAssetsVsShares_eliminateDeficit totalAssetsVsShares | ✅ | 12 | Link |
| HubIntegrity.conf | ✅ | 17 | Link |
| Hub.conf --rule noChangeToOtherSpoke | ✅ | 1 | Link |
| Hub.conf --exclude_rule noChangeToOtherSpoke supplyExchangeRateIsMonotonic supplyExchangeRateIsMonotonic_eliminateDeficit_simplified totalAssetsCompareToSuppliedAmount_noVirtual | ✅ | 3 | Link |
| HubAccrueUnrealizedFee.conf | ✅ | 3 | Link |
| HubAccrueSupplyRate.conf --exclude_rule previewRemoveByShares_withoutAccrue_time_monotonic previewRemoveByAssets_withoutAccrue_time_monotonic | ✅ | 10 | Link |
| HubAccrueIntegrity.conf | ✅ | 9 | Link |
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.
Uh oh!
There was an error while loading. Please reload this page.