Open
Conversation
There was a problem hiding this comment.
Pull request overview
Updates the test deployment helpers to use CREATE (Create1) when no salt is provided, avoiding the Create2 factory path and aligning revert expectations accordingly.
Changes:
- Added
Create1Utilshelper library for CREATE-based deployments and address computation in tests. - Updated
DeployUtilsno-salt deploy paths (deployHub,deploySpokeImplementation, and proxy deploy flow) to useCreate1Utils.create1Deploy. - Adjusted config tests to expect the
Create1DeploymentFailedcustom error on failed deployments; expandedDeployWrapperwith salted overloads.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| tests/unit/Spoke/Spoke.Config.t.sol | Updates revert expectations to Create1DeploymentFailed for CREATE-based deploy failures. |
| tests/unit/Hub/Hub.Config.t.sol | Updates revert expectation to Create1DeploymentFailed for CREATE-based deploy failure. |
| tests/mocks/DeployWrapper.sol | Adds overloads to support both no-salt (Create1) and salted (Create2) deployment helper calls. |
| tests/DeployUtils.sol | Switches no-salt hub/spoke implementation deploys to Create1; keeps salted variants on Create2. |
| tests/Create1Utils.sol | Introduces Create1 deployment utility + computeCreate1Address wrapper. |
| tests/Base.t.sol | Adds an import for Create1Utils (currently unused). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Member
There was a problem hiding this comment.
tysm
still not a fan of the silent continue if deployed already exists i would revert there
Contributor
Author
There was a problem hiding this comment.
true, will change that too.
🌈 Test ResultsNo files changed, compilation skipped
Ran 4 tests for tests/unit/TokenizationSpoke/TokenizationSpoke.MaxGetters.t.sol:TokenizationSpokeMaxGettersHaltedTest
[PASS] test_maxDeposit_returnsZero() (gas: 23325)
[PASS] test_maxMint_returnsZero() (gas: 39383)
[PASS] test_maxRedeem_returnsZero() (gas: 41573)
[PASS] test_maxWithdraw_returnsZero() (gas: 41475)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 45.58ms (470.56µs CPU time)
Ran 2 tests for tests/unit/TokenizationSpoke/TokenizationSpoke.MaxGetters.t.sol:TokenizationSpokeMaxGettersLiquidityGreaterThanBalanceTest
[PASS] test_maxRedeem_returnsSharesOfBalance() (gas: 55737)
[PASS] test_maxWithdraw_returnsBalance() (gas: 55446)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 33.20ms (412.52µs CPU time)
Ran 2 tests for tests/unit/TokenizationSpoke/TokenizationSpoke.MaxGetters.t.sol:TokenizationSpokeMaxGettersLiquidityLessThanBalanceTest
[PASS] test_maxRedeem_returnsSharesOfLiquidity() (gas: 55704)
[PASS] test_maxWithdraw_returnsLiquidity() (gas: 55445)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 26.13ms (415.98µs CPU time)
Ran 4 tests for tests/unit/TokenizationSpoke/TokenizationSpoke.MaxGetters.t.sol:TokenizationSpokeMaxGettersNotActiveAndHaltedTest
[PASS] test_maxDeposit_returnsZero() (gas: 23311)
[PASS] test_maxMint_returnsZero() (gas: 39369)
[PASS] test_maxRedeem_returnsZero() (gas: 41559)
[PASS] test_maxWithdraw_returnsZero() (gas: 41461)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 23.75ms (508.40µs CPU time)
Ran 4 tests for tests/unit/TokenizationSpoke/TokenizationSpoke.MaxGetters.t.sol:TokenizationSpokeMaxGettersNotActiveTest
[PASS] test_maxDeposit_returnsZero() (gas: 23311)
[PASS] test_maxMint_returnsZero() (gas: 39369)
[PASS] test_maxRedeem_returnsZero() (gas: 41559)
[PASS] test_maxWithdraw_returnsZero() (gas: 41461)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 23.44ms (478.05µs CPU time)
Ran 13 tests for tests/unit/Spoke/Liquidations/Spoke.LiquidationCall.Scenarios.t.sol:SpokeLiquidationCallScenariosTest
[PASS] test_liquidationCall_revertsWith_ReentrancyGuardReentrantCall_hubRefreshPremium() (gas: 25951869)
[PASS] test_liquidationCall_revertsWith_ReentrancyGuardReentrantCall_hubRemove() (gas: 25823524)
[PASS] test_liquidationCall_revertsWith_ReentrancyGuardReentrantCall_hubReportDeficit() (gas: 25934643)
[PASS] test_liquidationCall_revertsWith_ReentrancyGuardReentrantCall_hubRestore() (gas: 25898930)
[PASS] test_liquidationCall_scenario1() (gas: 3855259)
[PASS] test_liquidationCall_scenario2() (gas: 3863585)
[PASS] test_liquidationCall_scenario3() (gas: 3332566)
[PASS] test_liquidationCall_scenario4() (gas: 27491077)
[PASS] test_liquidationCall_scenario5() (gas: 3470220)
[PASS] test_liquidationCall_scenario6() (gas: 2305391)
[PASS] test_liquidationCall_scenario7() (gas: 3049621)
[PASS] test_scenario_halted_asset() (gas: 26576257)
[PASS] test_scenario_halted_asset_with_deficit() (gas: 26419386)
Suite result: ok. 13 passed; 0 failed; 0 skipped; finished in 167.76ms (131.78ms CPU time)
Ran 2 tests for tests/unit/TokenizationSpoke/TokenizationSpoke.MaxGetters.t.sol:TokenizationSpokeMaxGettersOwnerZeroSharesTest
[PASS] test_maxRedeem_returnsZero() (gas: 42977)
[PASS] test_maxWithdraw_returnsZero() (gas: 42890)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 23.41ms (286.26µs CPU time)
Ran 2 tests for tests/unit/TokenizationSpoke/TokenizationSpoke.MaxGetters.t.sol:TokenizationSpokeMaxGettersZeroLiquidityTest
[PASS] test_maxRedeem_returnsZero() (gas: 42977)
[PASS] test_maxWithdraw_returnsZero() (gas: 42912)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 23.49ms (303.18µs CPU time)
Ran 9 tests for tests/gas/TokenizationSpoke.Operations.gas.t.sol:TokenizationSpokeOperations_Gas_Tests
[PASS] test_deposit() (gas: 124100)
[PASS] test_depositWithSig() (gas: 209891)
[PASS] test_mint() (gas: 152102)
[PASS] test_mintWithSig() (gas: 239936)
[PASS] test_permit() (gas: 118522)
[PASS] test_redeem() (gas: 838771)
[PASS] test_redeemWithSig() (gas: 320341)
[PASS] test_withdraw() (gas: 804181)
[PASS] test_withdrawWithSig() (gas: 321171)
Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 51.61ms (7.07ms 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, μ: 19888, ~: 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: 4960888)
[PASS] test_setSpoke() (gas: 4988906)
[PASS] test_setSpoke_revertsWith_InvalidAddress() (gas: 10870)
[PASS] test_setSpoke_revertsWith_OnlyDeployer(address) (runs: 5000, μ: 13396, ~: 13397)
[PASS] test_setSpoke_revertsWith_SpokeAlreadySet() (gas: 15080)
Suite result: ok. 20 passed; 0 failed; 0 skipped; finished in 1.15s (1.12s CPU time)
Ran 6 tests for tests/unit/Spoke/Spoke.Withdraw.Validation.t.sol:SpokeWithdrawValidationTest
[PASS] test_withdraw_fuzz_revertsWith_InsufficientLiquidity_with_debt(uint256,uint256,uint256,uint256,uint256) (runs: 5000, μ: 430336, ~: 430437)
Logs:
Bound result 0
Bound result 23249
Bound result 2814
Bound result 21168
Bound result 32000000
[PASS] test_withdraw_fuzz_revertsWith_InsufficientSupply_zero_supplied(uint256) (runs: 5000, μ: 55105, ~: 54812)
Logs:
Bound result 3124043968137
[PASS] test_withdraw_revertsWith_InsufficientLiquidity_with_debt() (gas: 426855)
[PASS] test_withdraw_revertsWith_InvalidAmount_zero_supplied() (gas: 51432)
[PASS] test_withdraw_revertsWith_ReserveNotListed() (gas: 22408)
[PASS] test_withdraw_revertsWith_ReservePaused() (gas: 62929)
Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 5.76s (5.73s CPU time)
Ran 10 tests for tests/unit/TokenizationSpoke/TokenizationSpoke.Permit.t.sol:TokenizationSpokePermitTest
[PASS] test_nonces_uses_permit_nonce_key_namespace(bytes32) (runs: 5000, μ: 17679, ~: 17679)
[PASS] test_permit() (gas: 189761)
[PASS] test_permit_revertsWith_InvalidAddress_dueTo_ZeroAddressOwner() (gas: 51015)
[PASS] test_permit_revertsWith_InvalidSignature_dueTo_ExpiredDeadline() (gas: 28541)
[PASS] test_permit_revertsWith_InvalidSignature_dueTo_InvalidSigner() (gas: 51490)
[PASS] test_permit_revertsWith_InvalidSignature_dueTo_invalid_nonce_at_arbitrary_namespace(bytes32) (runs: 5000, μ: 55264, ~: 55264)
[PASS] test_permit_revertsWith_InvalidSignature_dueTo_invalid_nonce_at_permit_key_namespace(bytes32) (runs: 5000, μ: 57097, ~: 57097)
[PASS] test_renounceAllowance() (gas: 35296)
[PASS] test_renounceAllowance_noop() (gas: 24125)
[PASS] test_usePermitNonce(bytes32) (runs: 5000, μ: 18166, ~: 18166)
Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 6.23s (6.21s CPU time)
Ran 4 tests for tests/unit/TokenizationSpoke/TokenizationSpoke.Reverts.InsufficientAllowance.t.sol:TokenizationSpokeInsufficientAllowanceTest
[PASS] test_depositWithSig_revertsWith_ERC20InsufficientAllowance() (gas: 155503)
[PASS] test_deposit_revertsWith_ERC20InsufficientAllowance() (gas: 66648)
[PASS] test_mintWithSig_revertsWith_ERC20InsufficientAllowance() (gas: 166264)
[PASS] test_mint_revertsWith_ERC20InsufficientAllowance() (gas: 71178)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 26.35ms (2.51ms CPU time)
Ran 6 tests for tests/unit/TokenizationSpoke/TokenizationSpoke.Upgradeable.t.sol:TokenizationSpokeUpgradeableTest
[PASS] test_implementation_constructor_fuzz(uint64) (runs: 5000, μ: 2807532, ~: 2807532)
[PASS] test_proxy_constructor_fuzz(uint64) (runs: 5000, μ: 2824610, ~: 2824602)
Logs:
Bound result 649
[PASS] test_proxy_constructor_fuzz_revertsWith_InvalidInitialization(uint64) (runs: 5000, μ: 5604148, ~: 5604140)
Logs:
Bound result 649
[PASS] test_proxy_constructor_revertsWith_InvalidInitialization_ZeroRevision() (gas: 2804292)
[PASS] test_proxy_reinitialization_fuzz(uint64) (runs: 5000, μ: 5614706, ~: 5614690)
Logs:
Bound result 649
[PASS] test_proxy_reinitialization_revertsWith_CallerNotProxyAdmin() (gas: 5592997)
Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 14.21s (14.18s CPU time)
Ran 20 tests for tests/unit/AccessManagerEnumerable.t.sol:AccessManagerEnumerableTest
[PASS] test_getRoleMembers_fuzz(uint256,uint256) (runs: 5000, μ: 1981627, ~: 1980422)
Logs:
Bound result 9
Bound result 10
[PASS] test_getRoleTargetSelectors_fuzz(uint256,uint256) (runs: 5000, μ: 1528912, ~: 1527977)
Logs:
Bound result 9
Bound result 10
[PASS] test_grantRole() (gas: 315853)
[PASS] test_grantRole_fuzz(uint64,uint256) (runs: 5000, μ: 915080, ~: 919819)
Logs:
Bound result 5
[PASS] test_renounceRole() (gas: 320971)
[PASS] test_renounceRole_shouldNotTrack() (gas: 24510)
[PASS] test_revokeRole() (gas: 323142)
[PASS] test_revokeRole_shouldNotTrack() (gas: 33091)
[PASS] test_setRoleAdmin_fuzz_trackAdminRoles_multipleRoles_multipleAdmins(uint256) (runs: 5000, μ: 2153968, ~: 2256960)
Logs:
Bound result 12
[PASS] test_setRoleAdmin_fuzz_trackRolesAndTrackAdminRoles_multipleRoles(uint256) (runs: 5000, μ: 1968386, ~: 2114243)
Logs:
Bound result 12
[PASS] test_setRoleAdmin_trackAdminOfRoles() (gas: 605988)
[PASS] test_setRoleAdmin_trackAdminOfRoles_changeAdminRole() (gas: 576953)
[PASS] test_setRoleAdmin_trackAdminRoles() (gas: 602234)
[PASS] test_setRoleAdmin_trackRolesAndTrackAdminRoles() (gas: 378157)
[PASS] test_setRoleGuardian_trackRoles() (gas: 263878)
[PASS] test_setTargetFunctionRole() (gas: 414440)
[PASS] test_setTargetFunctionRole_multipleTargets() (gas: 1103888)
[PASS] test_setTargetFunctionRole_removeTarget() (gas: 894968)
[PASS] test_setTargetFunctionRole_skipAddToAdminRole() (gas: 30951)
[PASS] test_setTargetFunctionRole_withReplace() (gas: 548994)
Suite result: ok. 20 passed; 0 failed; 0 skipped; finished in 22.68s (22.68s CPU time)
Ran 23 tests for tests/unit/AssetInterestRateStrategy.t.sol:AssetInterestRateStrategyTest
[PASS] test_calculateInterestRate_AtKinkPoint() (gas: 24326)
Logs:
Bound result 2000
Bound result 778565440757296803935461404101
[PASS] test_calculateInterestRate_AtMaxUtilization() (gas: 24621)
Logs:
Bound result 10000
Bound result 778565440757296803935461404101
[PASS] test_calculateInterestRate_LeftToKinkPoint(uint256) (runs: 5000, μ: 24190, ~: 24330)
Logs:
Bound result 137
Bound result 252173843969976304268974536488
[PASS] test_calculateInterestRate_RightToKinkPoint(uint256) (runs: 5000, μ: 25304, ~: 25351)
Logs:
Bound result 8137
Bound result 252173843969976304268974536488
[PASS] test_calculateInterestRate_ZeroDebtZeroLiquidity() (gas: 18771)
Logs:
Bound result 0
[PASS] test_calculateInterestRate_fuzz_ZeroDebt(uint256) (runs: 5000, μ: 19074, ~: 18822)
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.13s (1.12s CPU time)
Ran 14 tests for tests/unit/misc/EIP712Hash.t.sol:EIP712HashTest
[PASS] test_constants() (gas: 18335)
[PASS] test_hash_borrow_fuzz((address,uint256,uint256,address,uint256,uint256)) (runs: 5000, μ: 6689, ~: 6689)
[PASS] test_hash_positionManagerUpdate_fuzz((address,bool)) (runs: 5000, μ: 5361, ~: 5361)
[PASS] test_hash_repay_fuzz((address,uint256,uint256,address,uint256,uint256)) (runs: 5000, μ: 6734, ~: 6734)
[PASS] test_hash_setUserPositionManagers_fuzz((address,(address,bool)[],uint256,uint256)) (runs: 5000, μ: 278419, ~: 277841)
[PASS] test_hash_setUsingAsCollateral_fuzz((address,uint256,bool,address,uint256,uint256)) (runs: 5000, μ: 7148, ~: 7148)
[PASS] test_hash_supply_fuzz((address,uint256,uint256,address,uint256,uint256)) (runs: 5000, μ: 6755, ~: 6755)
[PASS] test_hash_tokenizedDeposit_fuzz((address,uint256,address,uint256,uint256)) (runs: 5000, μ: 6561, ~: 6561)
[PASS] test_hash_tokenizedMint_fuzz((address,uint256,address,uint256,uint256)) (runs: 5000, μ: 6538, ~: 6538)
[PASS] test_hash_tokenizedRedeem_fuzz((address,uint256,address,uint256,uint256)) (runs: 5000, μ: 6561, ~: 6561)
[PASS] test_hash_tokenizedWithdraw_fuzz((address,uint256,address,uint256,uint256)) (runs: 5000, μ: 6582, ~: 6582)
[PASS] test_hash_updateUserDynamicConfig_fuzz((address,address,uint256,uint256)) (runs: 5000, μ: 6349, ~: 6349)
[PASS] test_hash_updateUserRiskPremium_fuzz((address,address,uint256,uint256)) (runs: 5000, μ: 6348, ~: 6348)
[PASS] test_hash_withdraw_fuzz((address,uint256,uint256,address,uint256,uint256)) (runs: 5000, μ: 6711, ~: 6711)
Suite result: ok. 14 passed; 0 failed; 0 skipped; finished in 19.65s (19.64s CPU time)
Ran 12 tests for tests/unit/TokenizationSpoke/TokenizationSpoke.WithSig.Reverts.InvalidSignature.t.sol:TokenizationSpokeWithSigInvalidSignatureTest
[PASS] test_depositWithSig_revertsWith_InvalidAccountNonce(bytes32) (runs: 5000, μ: 168645, ~: 171080)
[PASS] test_depositWithSig_revertsWith_InvalidSignature_dueTo_ExpiredDeadline() (gas: 29560)
[PASS] test_depositWithSig_revertsWith_InvalidSignature_dueTo_InvalidSigner() (gas: 27829)
[PASS] test_mintWithSig_revertsWith_InvalidAccountNonce(bytes32) (runs: 5000, μ: 168665, ~: 171100)
[PASS] test_mintWithSig_revertsWith_InvalidSignature_dueTo_ExpiredDeadline() (gas: 29515)
[PASS] test_mintWithSig_revertsWith_InvalidSignature_dueTo_InvalidSigner() (gas: 27793)
[PASS] test_redeemWithSig_revertsWith_InvalidAccountNonce(bytes32) (runs: 5000, μ: 168667, ~: 171102)
[PASS] test_redeemWithSig_revertsWith_InvalidSignature_dueTo_ExpiredDeadline() (gas: 29519)
[PASS] test_redeemWithSig_revertsWith_InvalidSignature_dueTo_InvalidSigner() (gas: 27819)
[PASS] test_withdrawWithSig_revertsWith_InvalidAccountNonce(bytes32) (runs: 5000, μ: 168664, ~: 171099)
[PASS] test_withdrawWithSig_revertsWith_InvalidSignature_dueTo_ExpiredDeadline() (gas: 29558)
[PASS] test_withdrawWithSig_revertsWith_InvalidSignature_dueTo_InvalidSigner() (gas: 27838)
Suite result: ok. 12 passed; 0 failed; 0 skipped; finished in 26.90s (26.87s CPU time)
Ran 14 tests for tests/unit/Spoke/Spoke.Withdraw.t.sol:SpokeWithdrawTest
[PASS] test_fuzz_withdraw_effect_on_ex_rates(uint256,uint256) (runs: 5000, μ: 730610, ~: 732565)
Logs:
Bound result 100
Bound result 68691281934999
[PASS] test_withdraw_all_liquidity() (gas: 238623)
[PASS] test_withdraw_all_liquidity_with_interest_no_premium() (gas: 798185)
[PASS] test_withdraw_all_liquidity_with_interest_with_premium() (gas: 805716)
[PASS] test_withdraw_fuzz_all_elapsed_with_interest(uint256,uint256,uint40) (runs: 5000, μ: 660650, ~: 660565)
Logs:
Bound result 6599
Bound result 2538
Bound result 2687
[PASS] test_withdraw_fuzz_all_greater_than_supplied(uint256) (runs: 5000, μ: 241648, ~: 241441)
Logs:
Bound result 3124043968137
[PASS] test_withdraw_fuzz_all_liquidity_with_interest_no_premium((uint256,uint256,uint256,uint256,uint256)) (runs: 5000, μ: 871195, ~: 871703)
Logs:
Bound result 0
Bound result 2
Bound result 1
Bound result 2
Bound result 286517826
[PASS] test_withdraw_fuzz_all_liquidity_with_interest_with_premium((uint256,uint256,uint256,uint256,uint256)) (runs: 5000, μ: 875681, ~: 875720)
Logs:
Bound result 0
Bound result 2
Bound result 1
Bound result 2
Bound result 286517826
[PASS] test_withdraw_fuzz_all_with_interest(uint256,uint256) (runs: 5000, μ: 673805, ~: 673746)
Logs:
Bound result 68691281934999
Bound result 100
[PASS] test_withdraw_fuzz_suppliedAmount(uint256) (runs: 5000, μ: 243241, ~: 243034)
Logs:
Bound result 3124043968137
[PASS] test_withdraw_max_greater_than_supplied() (gas: 222068)
[PASS] test_withdraw_revertsWith_ReentrancyGuardReentrantCall_hubRefreshPremium() (gas: 654522)
[PASS] test_withdraw_revertsWith_ReentrancyGuardReentrantCall_hubRemove() (gas: 402082)
[PASS] test_withdraw_same_block() (gas: 243752)
Suite result: ok. 14 passed; 0 failed; 0 skipped; finished in 75.04s (75.02s CPU time)
Ran 16 tests for tests/unit/SpokeConfigurator.GranularAccessControl.t.sol:SpokeConfiguratorGranularAccessControlTest
[PASS] test_fuzz_unauthorized_cannotCall_liquidationConfigManagerMethods(address) (runs: 5000, μ: 117059, ~: 117059)
[PASS] test_fuzz_unauthorized_cannotCall_positionManagerAdminMethods(address) (runs: 5000, μ: 39761, ~: 39761)
[PASS] test_fuzz_unauthorized_cannotCall_reserveManagerMethods(address) (runs: 5000, μ: 483447, ~: 483447)
[PASS] test_liquidationConfigManager_canCall_updateLiquidationConfig() (gas: 62503)
[PASS] test_liquidationConfigManager_canCall_updateLiquidationTargetHealthFactor() (gas: 62044)
[PASS] test_liquidationConfigManager_cannotCall_anyPositionManagerAdminMethod() (gas: 38976)
[PASS] test_liquidationConfigManager_cannotCall_anyReserveMethod() (gas: 486121)
[PASS] test_positionManagerAdmin_canCall_updatePositionManager() (gas: 75206)
[PASS] test_positionManagerAdmin_cannotCall_anyLiquidationConfigMethod() (gas: 117021)
[PASS] test_positionManagerAdmin_cannotCall_anyReserveMethod() (gas: 485869)
[PASS] test_reserveManager_canCall_freezeAllReserves() (gas: 156806)
[PASS] test_reserveManager_canCall_pauseAllReserves() (gas: 156791)
[PASS] test_reserveManager_canCall_updateFrozen() (gas: 65173)
[PASS] test_reserveManager_canCall_updatePaused() (gas: 65119)
[PASS] test_reserveManager_cannotCall_anyLiquidationConfigMethod() (gas: 116976)
[PASS] test_reserveManager_cannotCall_anyPositionManagerAdminMethod() (gas: 38975)
Suite result: ok. 16 passed; 0 failed; 0 skipped; finished in 6.34s (6.32s CPU time)
Ran 51 tests for tests/unit/SpokeConfigurator.t.sol:SpokeConfiguratorTest
[PASS] test_addCollateralFactor() (gas: 125612)
[PASS] test_addCollateralFactor_revertsWith_AccessManagedUnauthorized() (gas: 29173)
[PASS] test_addDynamicReserveConfig() (gas: 105426)
[PASS] test_addDynamicReserveConfig_revertsWith_AccessManagedUnauthorized() (gas: 29344)
[PASS] test_addLiquidationBonus_revertsWith_AccessManagedUnauthorized() (gas: 29072)
[PASS] test_addLiquidationFee() (gas: 125599)
[PASS] test_addLiquidationFee_revertsWith_AccessManagedUnauthorized() (gas: 29073)
[PASS] test_addMaxLiquidationBonus() (gas: 125649)
[PASS] test_addReserve() (gas: 456691)
[PASS] test_addReserve_revertsWith_AccessManagedUnauthorized() (gas: 30019)
[PASS] test_addReserve_revertsWith_MaximumReservesReached() (gas: 289228)
[PASS] test_freezeAllReserves() (gas: 202537)
[PASS] test_freezeAllReserves_revertsWith_AccessManagedUnauthorized() (gas: 26853)
[PASS] test_freezeReserve() (gas: 72270)
[PASS] test_freezeReserve_revertsWith_AccessManagedUnauthorized() (gas: 28955)
[PASS] test_pauseAllReserves() (gas: 202439)
[PASS] test_pauseAllReserves_revertsWith_AccessManagedUnauthorized() (gas: 26808)
[PASS] test_pauseReserve() (gas: 72242)
[PASS] test_pauseReserve_revertsWith_AccessManagedUnauthorized() (gas: 28976)
[PASS] test_updateBorrowable() (gas: 102761)
[PASS] test_updateBorrowable_revertsWith_AccessManagedUnauthorized() (gas: 29057)
[PASS] test_updateCollateralFactor() (gas: 82716)
[PASS] test_updateCollateralFactor_revertsWith_AccessManagedUnauthorized() (gas: 29198)
[PASS] test_updateCollateralRisk() (gas: 76914)
[PASS] test_updateCollateralRisk_revertsWith_AccessManagedUnauthorized() (gas: 29028)
[PASS] test_updateDynamicReserveConfig() (gas: 201314)
[PASS] test_updateDynamicReserveConfig_revertsWith_AccessManagedUnauthorized() (gas: 29433)
[PASS] test_updateFrozen() (gas: 105528)
[PASS] test_updateFrozen_revertsWith_AccessManagedUnauthorized() (gas: 29056)
[PASS] test_updateHealthFactorForMaxBonus() (gas: 68162)
[PASS] test_updateHealthFactorForMaxBonus_revertsWith_AccessManagedUnauthorized() (gas: 26799)
[PASS] test_updateLiquidationBonusFactor() (gas: 71077)
[PASS] test_updateLiquidationBonusFactor_revertsWith_AccessManagedUnauthorized() (gas: 26844)
[PASS] test_updateLiquidationConfig() (gas: 65754)
[PASS] test_updateLiquidationConfig_revertsWith_AccessManagedUnauthorized() (gas: 27193)
[PASS] test_updateLiquidationFee() (gas: 82776)
[PASS] test_updateLiquidationFee_revertsWith_AccessManagedUnauthorized() (gas: 29173)
[PASS] test_updateLiquidationTargetHealthFactor() (gas: 71040)
[PASS] test_updateLiquidationTargetHealthFactor_revertsWith_AccessManagedUnauthorized() (gas: 26909)
[PASS] test_updateMaxLiquidationBonus() (gas: 82712)
[PASS] test_updateMaxLiquidationBonus_revertsWith_AccessManagedUnauthorized() (gas: 29109)
[PASS] test_updateMaxReserves() (gas: 53669)
[PASS] test_updateMaxReserves_revertsWith_AccessManagedUnauthorized() (gas: 26909)
[PASS] test_updatePaused() (gas: 105530)
[PASS] test_updatePaused_revertsWith_AccessManagedUnauthorized() (gas: 29077)
[PASS] test_updatePositionManager() (gas: 74325)
[PASS] test_updatePositionManager_revertsWith_AccessManagedUnauthorized() (gas: 26996)
[PASS] test_updateReceiveSharesEnabled() (gas: 102858)
[PASS] test_updateReceiveSharesEnabled_revertsWith_AccessManagedUnauthorized() (gas: 29121)
[PASS] test_updateReservePriceSource() (gas: 280160)
[PASS] test_updateReservePriceSource_revertsWith_AccessManagedUnauthorized() (gas: 29052)
Suite result: ok. 51 passed; 0 failed; 0 skipped; finished in 38.42ms (14.34ms CPU time)
Ran 6 tests for tests/unit/libraries/SpokeUtils.t.sol:SpokeUtilsTest
[PASS] test_fuzz_toValue(uint256,uint256,uint256) (runs: 5000, μ: 15787, ~: 15844)
Logs:
Bound result 615514462186775432459
Bound result 9
Bound result 9140094126966428
[PASS] test_get() (gas: 180696)
[PASS] test_get_revertsWith_ReserveNotListed() (gas: 167195)
[PASS] test_toValue() (gas: 8806)
[PASS] test_toValue_revertsWith_ArithmeticOverflow() (gas: 8959)
[PASS] test_toValue_revertsWith_ArithmeticUnderflow() (gas: 8734)
Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 440.50ms (417.66ms CPU time)
Ran 4 tests for tests/unit/TokenizationSpoke/TokenizationSpoke.Config.t.sol:TokenizationSpokeConfigTest
[PASS] test_configuration() (gas: 22899)
[PASS] test_constructor_asset_correctly_set() (gas: 42793)
[PASS] test_constructor_reverts_when_invalid_setup() (gas: 12222)
[PASS] test_setUp() (gas: 69892)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 24.25ms (1.02ms CPU time)
Ran 7 tests for tests/unit/TokenizationSpoke/TokenizationSpoke.Constants.t.sol:TokenizationSpokeConstantsTest
[PASS] test_DOMAIN_SEPARATOR() (gas: 14481)
[PASS] test_deposit_typeHash() (gas: 15183)
[PASS] test_eip712Domain() (gas: 19690)
[PASS] test_mint_typeHash() (gas: 15232)
[PASS] test_permit_typeHash() (gas: 15126)
[PASS] test_redeem_typeHash() (gas: 15126)
[PASS] test_withdraw_typeHash() (gas: 15129)
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 24.98ms (2.00ms CPU time)
Ran 4 tests for tests/unit/TokenizationSpoke/TokenizationSpoke.DepositWithPermit.t.sol:TokenizationSpokeDepositWithPermitTest
[PASS] test_depositWithPermit() (gas: 238120)
[PASS] test_depositWithPermit_forwards_correct_call() (gas: 194314)
[PASS] test_depositWithPermit_ignores_permit_reverts() (gas: 183502)
[PASS] test_depositWithPermit_works_with_existing_allowance() (gas: 203611)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 25.72ms (2.79ms CPU time)
Ran 5 tests for tests/unit/TokenizationSpoke/TokenizationSpoke.WithSig.t.sol:TokenizationSpokeWithSigTest
[PASS] test_depositWithSig(bytes32) (runs: 5000, μ: 349294, ~: 351730)
[PASS] test_mintWithSig(bytes32) (runs: 5000, μ: 348631, ~: 351067)
[PASS] test_redeemWithSig(bytes32) (runs: 5000, μ: 330392, ~: 332195)
[PASS] test_useNonce_monotonic(bytes32) (runs: 5000, μ: 17155, ~: 17155)
[PASS] test_withdrawWithSig(bytes32) (runs: 5000, μ: 331337, ~: 333120)
Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 49.22s (49.20s CPU time)
Ran 8 tests for tests/unit/TokenizationSpoke/TokenizationSpoke.t.sol:TokenizationSpokeTest
[PASS] test_deposit() (gas: 234699)
[PASS] test_deposit_receiverDifferentFromCaller() (gas: 222970)
[PASS] test_mint() (gas: 234051)
[PASS] test_mint_receiverDifferentFromCaller() (gas: 222349)
[PASS] test_redeem() (gas: 220093)
[PASS] test_redeem_ownerDifferentFromCaller() (gas: 252513)
[PASS] test_withdraw() (gas: 216427)
[PASS] test_withdraw_ownerDifferentFromCaller() (gas: 248832)
Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 35.19ms (11.32ms 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, μ: 948716, ~: 917460)
Logs:
Bound result 812
[PASS] test_extSloads(uint256,bytes) (runs: 5000, μ: 1008978, ~: 975202)
Logs:
Bound result 362
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 59.87s (59.87s 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: 65293)
[PASS] test_renouncePositionManagerRole_revertsWith_InvalidAddress() (gas: 74220)
[PASS] test_renouncePositionManagerRole_revertsWith_OwnableUnauthorizedAccount() (gas: 74439)
Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 400.57ms (377.70ms CPU time)
Ran 5 tests for tests/gas/Gateways.Operations.gas.t.sol:NativeTokenGateway_Gas_Tests
[PASS] test_borrowNative() (gas: 917897)
[PASS] test_repayNative() (gas: 989322)
[PASS] test_supplyAndCollateralNative() (gas: 305177)
[PASS] test_supplyNative() (gas: 286660)
[PASS] test_withdrawNative() (gas: 508744)
Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 47.26ms (4.24ms CPU time)
Ran 8 tests for tests/gas/Gateways.Operations.gas.t.sol:SignatureGateway_Gas_Tests
[PASS] test_borrowWithSig() (gas: 745226)
[PASS] test_repayWithSig() (gas: 953430)
[PASS] test_setSelfAsUserPositionManagerWithSig() (gas: 209285)
[PASS] test_setUsingAsCollateralWithSig() (gas: 289338)
[PASS] test_supplyWithSig() (gas: 434257)
[PASS] test_updateUserDynamicConfigWithSig() (gas: 145235)
[PASS] test_updateUserRiskPremiumWithSig() (gas: 143188)
[PASS] test_withdrawWithSig() (gas: 409909)
Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 56.76ms (7.93ms CPU time)
Ran 6 tests for tests/unit/Hub/Hub.Access.t.sol:HubAccessTest
[PASS] test_change_authority() (gas: 206679)
[PASS] test_change_role_responsibility() (gas: 121247)
[PASS] test_hub_access_manager_exposure() (gas: 13439)
[PASS] test_hub_admin_access() (gas: 1350377)
[PASS] test_migrate_role_responsibility() (gas: 708944)
[PASS] test_setInterestRateData_access() (gas: 102656)
Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 26.65ms (3.83ms CPU time)
Ran 19 tests for tests/unit/Hub/Hub.Add.t.sol:HubAddTest
[PASS] test_add_AddCapReachedButNotExceeded_rounding() (gas: 660714)
[PASS] test_add_fuzz_AddCapReachedButNotExceeded(uint40) (runs: 5000, μ: 157881, ~: 157837)
Logs:
Bound result 9
[PASS] test_add_fuzz_multi_asset_multi_spoke(uint256,uint256,uint256) (runs: 5000, μ: 332467, ~: 332622)
Logs:
Bound result 3
Bound result 218470873395738003579119570309
Bound result 446067553769140138733721804
[PASS] test_add_fuzz_revertsWith_AddCapExceeded(uint40) (runs: 5000, μ: 112437, ~: 112393)
Logs:
Bound result 9
[PASS] test_add_fuzz_revertsWith_AddCapExceeded_due_to_interest(uint40,uint256,uint256) (runs: 5000, μ: 263826, ~: 263690)
Logs:
Bound result 1291
Bound result 1071208440522043736492
Bound result 173721804
[PASS] test_add_fuzz_revertsWith_InvalidShares_due_to_index(uint256,uint256,uint256) (runs: 5000, μ: 220655, ~: 220858)
Logs:
Bound result 999999999900000000000000020883
Bound result 290047970
Bound result 1
[PASS] test_add_fuzz_single_asset(uint256,address,uint256) (runs: 5000, μ: 342354, ~: 342395)
Logs:
Bound result 3
Bound result 24801959478194250780329
[PASS] test_add_fuzz_single_spoke_multi_add(uint256,uint256) (runs: 5000, μ: 785689, ~: 785711)
Logs:
Bound result 68691281934999
Bound result 100
[PASS] test_add_multi_add_minimal_shares() (gas: 316011)
[PASS] test_add_revertsWith_AmountDowncastOverflow() (gas: 357696)
[PASS] test_add_revertsWith_InsufficientTransferred() (gas: 64504)
[PASS] test_add_revertsWith_InvalidAmount() (gas: 13631)
[PASS] test_add_revertsWith_InvalidShares() (gas: 220197)
[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: 330246)
Logs:
Bound result 2
Bound result 100000000000000000000
[PASS] test_add_with_increased_index() (gas: 298042)
[PASS] test_add_with_increased_index_with_premium() (gas: 674207)
Suite result: ok. 19 passed; 0 failed; 0 skipped; finished in 43.54s (43.51s CPU time)
Ran 17 tests for tests/unit/Spoke/TreasurySpoke.t.sol:TreasurySpokeTest
[PASS] test_borrow_revertsWith_UnsupportedAction() (gas: 9654)
[PASS] test_deploy_reverts_on_invalid_params() (gas: 4182)
[PASS] test_getters() (gas: 740264)
[PASS] test_initial_state() (gas: 167956)
[PASS] test_liquidationCall_revertsWith_UnsupportedAction() (gas: 10473)
[PASS] test_repay_revertsWith_UnsupportedAction() (gas: 9656)
[PASS] test_supply(uint256) (runs: 5000, μ: 124848, ~: 124633)
Logs:
Bound result 3124043968137
[PASS] test_supply_revertsWith_Unauthorized(address) (runs: 5000, μ: 16116, ~: 16116)
[PASS] test_transfer_fuzz(address,uint256,uint256) (runs: 5000, μ: 100161, ~: 101182)
Logs:
Bound result 15286
Bound result 10544
[PASS] test_transfer_revertsWith_ERC20InsufficientBalance(uint256) (runs: 5000, μ: 604011, ~: 604011)
[PASS] test_transfer_revertsWith_Unauthorized(address) (runs: 5000, μ: 14829, ~: 14829)
[PASS] test_withdraw_fuzz_amount_feesOnly(uint256) (runs: 5000, μ: 786057, ~: 785765)
Logs:
Bound result 3124043968137
[PASS] test_withdraw_fuzz_amount_interestAndFees(uint256) (runs: 5000, μ: 773028, ~: 772859)
Logs:
Bound result 3124043968137
[PASS] test_withdraw_fuzz_amount_interestOnly(uint256) (runs: 5000, μ: 806149, ~: 805851)
Logs:
Bound result 399452744467735387087512641102
[PASS] test_withdraw_fuzz_maxLiquidityFee(uint256,uint256,uint256) (runs: 5000, μ: 851332, ~: 851427)
Logs:
Bound result 4
Bound result 218470873395738003579119570309
Bound result 173721804
[PASS] test_withdraw_maxLiquidityFee() (gas: 852027)
Logs:
Bound result 2
Bound result 1000000000000000000000
Bound result 29376000
[PASS] test_withdraw_revertsWith_Unauthorized(address) (runs: 5000, μ: 16479, ~: 16479)
Suite result: ok. 17 passed; 0 failed; 0 skipped; finished in 52.81s (52.78s CPU time)
Ran 8 tests for tests/unit/UnitPriceFeed.t.sol:UnitPriceFeedTest
[PASS] testDECIMALS() (gas: 8305)
[PASS] test_constructor_revertsWith_Uint8Overflow() (gas: 4674)
[PASS] test_description() (gas: 11865)
[PASS] test_fuzz_latestRoundData(uint80) (runs: 5000, μ: 11105, ~: 11105)
[PASS] test_fuzz_latestRoundData_DifferentDecimals(uint8) (runs: 5000, μ: 14421, ~: 14578)
Logs:
Bound result 1
[PASS] test_getRoundData() (gas: 12402)
[PASS] test_getRoundData_futureRound() (gas: 12325)
[PASS] test_version() (gas: 8261)
Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 1.02s (1.00s CPU time)
Ran 12 tests for tests/unit/libraries/UserPositionDebt.t.sol:UserPositionUtilsTest
[PASS] test_applyPremiumDelta() (gas: 26101)
[PASS] test_calculatePremiumDelta() (gas: 17592)
[PASS] test_calculatePremiumRay() (gas: 19352)
[PASS] test_calculateRestoreAmount() (gas: 24204)
[PASS] test_fuzz_applyPremiumDelta((int256,int256,uint256)) (runs: 5000, μ: 34087, ~: 34184)
Logs:
Bound result 215016815803108445248527167096
Bound result 331073717946348281691194968263
[PASS] test_fuzz_calculatePremiumDelta((uint256,uint256,int256,uint256,uint256,uint256,uint256)) (runs: 5000, μ: 48848, ~: 49023)
Logs:
Bound result 99000000050384421173548891413
Bound result 267064735
Bound result 15166708452425474209087810086592205507
Bound result 310273141488122044938099248275
Bound result 16212485736382855360724910945
Bound result 99999
Bound result 11272700326030427879754413608164415047
[PASS] test_fuzz_calculatePremiumRay(uint256,int256,uint256) (runs: 5000, μ: 33203, ~: 33326)
Logs:
Bound result 99000000000000000000136025644
Bound result 412200000000000000000000000000
Bound result -1
[PASS] test_fuzz_calculateRestoreAmount(uint256,uint256,int256,uint256,uint256) (runs: 5000, μ: 42325, ~: 42301)
Logs:
Bound result 69295509040982496176622344798
Bound result 1050000000000000000
Bound result 70202434575273040264490339297944340988520946371
Bound result 12361
Bound result 11100
[PASS] test_fuzz_getUserDebt_DrawnIndex(uint256,uint256,int256,uint256) (runs: 5000, μ: 39434, ~: 39396)
Logs:
Bound result 99080000000000000000000000001
Bound result 720000000000000000
Bound result -40000000000000000000
Bound result 249264818036790566556173706948
[PASS] test_fuzz_getUserDebt_HubAndAssetId(uint256,uint256,int256,uint256) (runs: 5000, μ: 45394, ~: 45356)
Logs:
Bound result 99080000000000000000000000001
Bound result 720000000000000000
Bound result -40000000000000000000
Bound result 249264818036790566556173706948
[PASS] test_getUserDebt_DrawnIndex() (gas: 23419)
[PASS] test_getUserDebt_HubAndAssetId() (gas: 30124)
Suite result: ok. 12 passed; 0 failed; 0 skipped; finished in 4.27s (4.27s CPU time)
Ran 12 tests for tests/unit/libraries/UserPositionUtils.t.sol:UserPositionUtilsTest
[PASS] test_applyPremiumDelta() (gas: 26101)
[PASS] test_calculatePremiumDelta() (gas: 17592)
[PASS] test_calculatePremiumRay() (gas: 19352)
[PASS] test_calculateRestoreAmount() (gas: 24204)
[PASS] test_fuzz_applyPremiumDelta((int256,int256,uint256)) (runs: 5000, μ: 34087, ~: 34184)
Logs:
Bound result 215016815803108445248527167096
Bound result 331073717946348281691194968263
[PASS] test_fuzz_calculatePremiumDelta((uint256,uint256,int256,uint256,uint256,uint256,uint256)) (runs: 5000, μ: 48848, ~: 49023)
Logs:
Bound result 99000000050384421173548891413
Bound result 267064735
Bound result 15166708452425474209087810086592205507
Bound result 310273141488122044938099248275
Bound result 16212485736382855360724910945
Bound result 99999
Bound result 11272700326030427879754413608164415047
[PASS] test_fuzz_calculatePremiumRay(uint256,int256,uint256) (runs: 5000, μ: 33203, ~: 33326)
Logs:
Bound result 99000000000000000000136025644
Bound result 412200000000000000000000000000
Bound result -1
[PASS] test_fuzz_calculateRestoreAmount(uint256,uint256,int256,uint256,uint256) (runs: 5000, μ: 42325, ~: 42301)
Logs:
Bound result 69295509040982496176622344798
Bound result 1050000000000000000
Bound result 70202434575273040264490339297944340988520946371
Bound result 12361
Bound result 11100
[PASS] test_fuzz_getUserDebt_DrawnIndex(uint256,uint256,int256,uint256) (runs: 5000, μ: 39434, ~: 39396)
Logs:
Bound result 99080000000000000000000000001
Bound result 720000000000000000
Bound result -40000000000000000000
Bound result 249264818036790566556173706948
[PASS] test_fuzz_getUserDebt_HubAndAssetId(uint256,uint256,int256,uint256) (runs: 5000, μ: 45394, ~: 45356)
Logs:
Bound result 99080000000000000000000000001
Bound result 720000000000000000
Bound result -40000000000000000000
Bound result 249264818036790566556173706948
[PASS] test_getUserDebt_DrawnIndex() (gas: 23419)
[PASS] test_getUserDebt_HubAndAssetId() (gas: 30124)
Suite result: ok. 12 passed; 0 failed; 0 skipped; finished in 4.37s (4.36s CPU time)
Ran 17 tests for tests/unit/WadRayMath.t.sol:WadRayMathDifferentialTests
[PASS] test_bpsToRay_fuzz(uint256) (runs: 5000, μ: 11773, ~: 11826)
[PASS] test_bpsToWad_fuzz(uint256) (runs: 5000, μ: 11769, ~: 11813)
[PASS] test_constants() (gas: 12879)
[PASS] test_fromRayUp_fuzz(uint256) (runs: 5000, μ: 11046, ~: 11072)
[PASS] test_fromWadDown_fuzz(uint256) (runs: 5000, μ: 9378, ~: 9378)
[PASS] test_fuzz_rayDiv(uint256,uint256) (runs: 5000, μ: 12432, ~: 12807)
[PASS] test_fuzz_rayMul(uint256,uint256) (runs: 5000, μ: 11626, ~: 12155)
[PASS] test_fuzz_wadDiv(uint256,uint256) (runs: 5000, μ: 12613, ~: 12918)
[PASS] test_fuzz_wadMul(uint256,uint256) (runs: 5000, μ: 11585, ~: 12134)
[PASS] test_rayDiv() (gas: 39659)
[PASS] test_rayMul() (gas: 28767)
[PASS] test_roundRayUp_fuzz(uint256) (runs: 5000, μ: 12759, ~: 12909)
[PASS] test_roundRayUp_overflow() (gas: 14831)
[PASS] test_toRay_fuzz(uint256) (runs: 5000, μ: 11685, ~: 12264)
[PASS] test_toWad_fuzz(uint256) (runs: 5000, μ: 11834, ~: 12262)
[PASS] test_wadDiv() (gas: 40065)
[PASS] test_wadMul() (gas: 28408)
Suite result: ok. 17 passed; 0 failed; 0 skipped; finished in 2.36s (2.36s CPU time)
Ran 4 tests for tests/unit/libraries/LiquidationLogic/LiquidationLogic.LiquidateDebt.t.sol:LiquidationLogicLiquidateDebtTest
[PASS] test_liquidateDebt_fuzz(uint256) (runs: 5000, μ: 228386, ~: 218588)
[PASS] test_liquidateDebt_revertsWith_ArithmeticUnderflow() (gas: 106091)
[PASS] test_liquidateDebt_revertsWith_InsufficientAllowance() (gas: 115525)
[PASS] test_liquidateDebt_revertsWith_InsufficientBalance() (gas: 177141)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 2.74s (2.71s CPU time)
Ran 4 tests for tests/unit/libraries/LiquidationLogic/LiquidationLogic.LiquidateUser.t.sol:LiquidationLogicLiquidateUserTest
[PASS] test_liquidateUser() (gas: 369635)
[PASS] test_liquidateUser_revertsWith_InvalidDebtToCover() (gas: 73786)
[PASS] test_liquidateUser_revertsWith_MustNotLeaveDust_Collateral() (gas: 138106)
[PASS] test_liquidateUser_revertsWith_MustNotLeaveDust_Debt() (gas: 142699)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 32.55ms (1.84ms CPU time)
Ran 8 tests for tests/unit/libraries/LiquidationLogic/LiquidationLogic.LiquidationAmounts.t.sol:LiquidationLogicLiquidationAmountsTest
[PASS] test_calculateLiquidationAmounts_EnoughCollateral() (gas: 166635)
[PASS] test_calculateLiquidationAmounts_InsufficientCollateral() (gas: 167363)
[PASS] test_calculateLiquidationAmounts_fuzz_EnoughCollateral_CollateralDust((address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)) (runs: 5000, μ: 285222, ~: 274480)
Logs:
Bound result 3
Bound result 2767
Bound result 443124196721905572
Bound result 14843
Bound result 8
Bound result 18
Bound result 13290
Bound result 5661
Bound result 1999999999999999997
Bound result 443124196721905572
Bound result 9304570613870847
Bound result 9
Bound result 999999999999999999999999999997
Bound result 1000000000000000000000000000
Bound result 28591
Bound result 54527
Bound result 6504484831365108
Bound result 7
Bound result 1109
Bound result 18850239771387979476210927906
Bound result 0
Bound result 6504484831365108
Bound result 26
Bound result 115792089237316195423570985008687907853269984665640564039457584007913129639935
[PASS] test_calculateLiquidationAmounts_fuzz_EnoughCollateral_NoCollateralDust((address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)) (runs: 5000, μ: 240136, ~: 228767)
Logs:
Bound result 3
Bound result 2767
Bound result 443124196721905572
Bound result 14843
Bound result 8
Bound result 18
Bound result 13290
Bound result 5661
Bound result 1999999999999999997
Bound result 443124196721905572
Bound result 9304570613870847
Bound result 9
Bound result 999999999999999999999999999997
Bound result 1000000000000000000000000000
Bound result 28591
Bound result 54527
Bound result 6504484831365108
Bound result 7
Bound result 1109
Bound result 18850239771387979476210927906
Bound result 0
Bound result 18850239771387979476210927906
Bound result 999999999999999999999999999997
[PASS] test_calculateLiquidationAmounts_fuzz_EnoughCollateral_NoDebtLeft((address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)) (runs: 5000, μ: 259258, ~: 247824)
Logs:
Bound result 393391615779283980
Bound result 1995
Bound result 970149253731343284
Bound result 10009
Bound result 14
Bound result 100000000000000000000
Bound result 10001
Bound result 6002
Bound result 1999999999999999252
Bound result 970149253731343284
Bound result 20
Bound result 9
Bound result 16924
Bound result 99000000000422212465731181600
Bound result 1040000000000000000
Bound result 133
Bound result 10
Bound result 10
Bound result 9990
Bound result 129
Bound result 4
Bound result 100000000000000000000
Bound result 10001
Bound result 6002
Bound result 1999999999999999252
Bound result 970149253731343284
Bound result 20
Bound result 9
Bound result 16924
Bound result 99000000000422212465731181600
Bound result 1040000000000000000
Bound result 133
Bound result 20
Bound result 9080618258008148
Bound result 1000000000000000000000000000130
Bound result 115792089237316195423570985008687907853269984665640564039456638998479862134145
[PASS] test_calculateLiquidationAmounts_fuzz_InsufficientCollateral((address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)) (runs: 5000, μ: 245250, ~: 233985)
Logs:
Bound result 2096
Bound result 9946
Bound result 13565
Bound result 10012
Bound result 7
Bound result 4165237424
Bound result 10011
Bound result 56
Bound result 1000000000000000811
Bound result 13565
Bound result 16705
Bound result 10
Bound result 120000000000000000000
Bound result 99000000000000000000000005131
Bound result 5429
Bound result 3399
Bound result 1397
Bound result 10
Bound result 2958
Bound result 200000000000000000
Bound result 3
Bound result 282755648
Bound result 120000000000000000000
[PASS] test_calculateLiquidationAmounts_fuzz_revertsWith_MustNotLeaveDust_Collateral((address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)) (runs: 5000, μ: 268149, ~: 257013)
Logs:
Bound result 3886412
Bound result 2
Bound result 147
Bound result 12468
Bound result 6
Bound result 28951245481117846533722652
Bound result 12468
Bound result 3739
Bound result 1000109044247905327
Bound result 147
Bound result 1766670143596910
Bound result 14
Bound result 885000589634409638603543244567
Bound result 45625495039344622427514351693
Bound result 1
Bound result 45089934476
Bound result 9035404749081580
Bound result 15
Bound result 274
Bound result 471071379138868438154450132077
Bound result 5
Bound result 9035404749081580
Bound result 3252684925
Bound result 115792089237316195423570985008687907853269984665640564039457584007913129639935
[PASS] test_calculateLiquidationAmounts_fuzz_revertsWith_MustNotLeaveDust_Debt((address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)) (runs: 5000, μ: 251097, ~: 239611)
Logs:
Bound result 393391615779283980
Bound result 1995
Bound result 970149253731343284
Bound result 10009
Bound result 14
Bound result 100000000000000000000
Bound result 10001
Bound result 6002
Bound result 1999999999999999252
Bound result 970149253731343284
Bound result 20
Bound result 9
Bound result 16924
Bound result 99000000000422212465731181600
Bound result 1040000000000000000
Bound result 133
Bound result 10
Bound result 10
Bound result 9990
Bound result 129
Bound result 4
Bound result 100000000000000000000
Bound result 10001
Bound result 6002
Bound result 1999999999999999252
Bound result 970149253731343284
Bound result 20
Bound result 9
Bound result 16924
Bound result 99000000000422212465731181600
Bound result 1040000000000000000
Bound result 133
Bound result 20
Bound result 9080618258008148
Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 34.73s (34.71s CPU time)
Ran 4 tests for tests/unit/libraries/LiquidationLogic/LiquidationLogic.LiquidationBonus.t.sol:LiquidationLogicLiquidationBonusTest
[PASS] test_calculateLiquidationBonus_MinBonusDueToRounding() (gas: 12488)
[PASS] test_calculateLiquidationBonus_PartialBonus() (gas: 12509)
[PASS] test_calculateLiquidationBonus_fuzz_ConstantBonus(uint256,uint256,uint256,uint256) (runs: 5000, μ: 20357, ~: 20128)
Logs:
Bound result 3787
Bound result 9181
Bound result 7500000000000000
Bound result 13894
[PASS] test_calculateLiquidationBonus_fuzz_MaxBonus(uint256,uint256,uint256,uint256) (runs: 5000, μ: 23301, ~: 23072)
Logs:
Bound result 3787
Bound result 9181
Bound result 7500000000000000
Bound result 13894
Bound result 1724
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 1.20s (1.16s CPU time)
Ran 11 tests for tests/unit/libraries/LiquidationLogic/LiquidationLogic.ValidateLiquidationCall.t.sol:LiquidationLogicValidateLiquidationCallTest
[PASS] test_validateLiquidationCall() (gas: 26036)
[PASS] test_validateLiquidationCall_revertsWith_CannotReceiveShares() (gas: 259738)
[PASS] test_validateLiquidationCall_revertsWith_HealthFactorNotBelowThreshold() (gas: 31769)
[PASS] test_validateLiquidationCall_revertsWith_InvalidDebtToCover() (gas: 26861)
[PASS] test_validateLiquidationCall_revertsWith_ReserveNotBorrowed() (gas: 26980)
[PASS] test_validateLiquidationCall_revertsWith_ReserveNotEnabledAsCollateral_NotUsingAsCollateral() (gas: 27033)
[PASS] test_validateLiquidationCall_revertsWith_ReserveNotEnabledAsCollateral_ZeroCollateralFactor() (gas: 27018)
[PASS] test_validateLiquidationCall_revertsWith_ReserveNotSupplied() (gas: 26947)
[PASS] test_validateLiquidationCall_revertsWith_ReservePaused_CollateralPaused() (gas: 31989)
[PASS] test_validateLiquidationCall_revertsWith_ReservePaused_DebtPaused() (gas: 31989)
[PASS] test_validateLiquidationCall_revertsWith_SelfLiquidation() (gas: 33724)
Suite result: ok. 11 passed; 0 failed; 0 skipped; finished in 25.69ms (1.46ms CPU time)
Ran 29 tests for tests/unit/MathUtils.t.sol:MathUtilsTest
[PASS] test_add_edge_cases() (gas: 4679)
[PASS] test_add_negative_operand(uint256,int256) (runs: 5000, μ: 9051, ~: 8812)
Logs:
Bound result -57896044618658097711785492504343953926634992332820282013197946218740589849150
[PASS] test_add_positive_operand(uint256,int256) (runs: 5000, μ: 3920, ~: 3916)
[PASS] test_calculateLinearInterest() (gas: 4368)
[PASS] test_calculateLinearInterest_add_edge() (gas: 4890)
[PASS] test_calculateLinearInterest_edge_cases() (gas: 16246)
Logs:
Bound result 0
Bound result 1
Bound result 864000000
Bound result 864000000
[PASS] test_calculateLinearInterest_reverts_on_past_timestamp(uint40) (runs: 5000, μ: 7543, ~: 7381)
Logs:
Bound result 9
[PASS] test_constants() (gas: 3133)
[PASS] test_fuzz_calculateLinearInterest(uint96,uint40,uint256) (runs: 5000, μ: 8586, ~: 8824)
Logs:
Bound result 10765498
[PASS] test_fuzz_divUp(uint256,uint256) (runs: 5000, μ: 3540, ~: 3544)
[PASS] test_fuzz_mulDivDown(uint256,uint256,uint256) (runs: 5000, μ: 3515, ~: 3577)
[PASS] test_fuzz_mulDivUp(uint256,uint256,uint256) (runs: 5000, μ: 3594, ~: 3724)
[PASS] test_min(uint256,uint256) (runs: 5000, μ: 3281, ~: 3281)
[PASS] test_mulDivDown_NoRemainder() (gas: 3223)
[PASS] test_mulDivDown_RevertOnDivByZero() (gas: 3107)
[PASS] test_mulDivDown_RevertOnOverflow() (gas: 3183)
[PASS] test_mulDivDown_WithRemainder() (gas: 3268)
[PASS] test_mulDivDown_ZeroAOrB() (gas: 3721)
[PASS] test_mulDivUp_NoRemainder() (gas: 3272)
[PASS] test_mulDivUp_RevertOnDivByZero() (gas: 3084)
[PASS] test_mulDivUp_RevertOnOverflow() (gas: 3184)
[PASS] test_mulDivUp_WithRemainder() (gas: 3293)
[PASS] test_mulDivUp_ZeroAOrB() (gas: 3792)
[PASS] test_signedSub(uint256,uint256) (runs: 5000, μ: 8593, ~: 8530)
Logs:
Bound result 68691281934999
Bound result 100
[PASS] test_signedSub_revertsWith_SafeCastOverflowedUintToInt(uint256) (runs: 5000, μ: 7652, ~: 7702)
Logs:
Bound result 57896044618658097711785492504343953926634992332820282019728792007080608788105
[PASS] test_uncheckedAdd(uint256,uint256) (runs: 5000, μ: 3447, ~: 3438)
[PASS] test_uncheckedExp(uint256,uint256) (runs: 5000, μ: 12453, ~: 9800)
[PASS] test_uncheckedSub(uint256,uint256) (runs: 5000, μ: 3443, ~: 3362)
[PASS] test_zeroFloorSub(uint256,uint256) (runs: 5000, μ: 3290, ~: 3326)
Suite result: ok. 29 passed; 0 failed; 0 skipped; finished in 2.72s (2.70s CPU time)
Ran 38 tests for tests/unit/Hub/Hub.Config.t.sol:HubConfigTest
[PASS] test_addAsset_fuzz(address,uint8,address) (runs: 5000, μ: 390352, ~: 390384)
Logs:
Bound result 18
[PASS] test_addAsset_fuzz_revertsWith_InvalidAddress_feeReceiver(address,uint8,address) (runs: 5000, μ: 45339, ~: 45523)
Logs:
Bound result 0
[PASS] test_addAsset_fuzz_revertsWith_InvalidAddress_irStrategy(address,uint8,address) (runs: 5000, μ: 45382, ~: 45566)
Logs:
Bound result 0
[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, μ: 45919, ~: 45706)
Logs:
Bound result 224
[PASS] test_addAsset_fuzz_revertsWith_InvalidAssetDecimals_tooLow(address,uint8,address,address) (runs: 5000, μ: 46066, ~: 46308)
Logs:
Bound result 2
[PASS] test_addAsset_fuzz_reverts_InvalidIrData(address,uint8,address,address) (runs: 5000, μ: 50474, ~: 34963)
Logs:
Bound result 15
[PASS] test_addAsset_revertsWith_BlockTimestampDowncastOverflow() (gas: 956634)
[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 3
[PASS] test_addSpoke_fuzz_revertsWith_AssetNotListed(uint256,(uint40,uint40,uint24,bool,bool)) (runs: 5000, μ: 35246, ~: 35235)
Logs:
Bound result 20046778210887091122393997403894044484021514954076855380656162745479176283391
[PASS] test_addSpoke_fuzz_revertsWith_InvalidAddress_spoke(uint256,(uint40,uint40,uint24,bool,bool)) (runs: 5000, μ: 33929, ~: 33979)
Logs:
Bound result 3
[PASS] test_addSpoke_revertsWith_SpokeAlreadyListed() (gas: 39773)
[PASS] test_getAssetId() (gas: 73160)
[PASS] test_getAssetId_fuzz_revertsWith_AssetNotListed(address) (runs: 5000, μ: 18560, ~: 18561)
[PASS] test_hub_deploy_reverts_on_InvalidConstructorInput() (gas: 887838)
[PASS] test_hub_max_riskPremium() (gas: 8610)
[PASS] test_isUnderlyingListed() (gas: 1178402)
[PASS] test_updateAssetConfig_NewFeeReceiver_noFees() (gas: 716089)
[PASS] test_updateAssetConfig_NewFeeReceiver_revertsWith_SpokeNotActive_noFees() (gas: 613421)
[PASS] test_updateAssetConfig_UseExistingSpokeAndListedAsFeeReceiver_revertsWith_SpokeAlreadyListed() (gas: 70708)
[PASS] test_updateAssetConfig_fuzz(uint256,(address,uint16,address,address)) (runs: 5000, μ: 269283, ~: 269598)
Logs:
Bound result 2
Bound result 14
[PASS] test_updateAssetConfig_fuzz_FromZeroLiquidityFee(uint256,uint16) (runs: 5000, μ: 818999, ~: 818822)
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, μ: 721403, ~: 721226)
Logs:
Bound result 3
Bound result 1
Bound result 3
Bound result 1
[PASS] test_updateAssetConfig_fuzz_NewFeeReceiver(uint256) (runs: 5000, μ: 820395, ~: 820396)
Logs:
Bound result 3
Bound result 3
Bound result 1000
[PASS] test_updateAssetConfig_fuzz_NewInterestRateStrategy(uint256) (runs: 5000, μ: 698373, ~: 698374)
Logs:
Bound result 3
[PASS] test_updateAssetConfig_fuzz_ReuseFeeReceiver_revertsWith_SpokeAlreadyListed(uint256) (runs: 5000, μ: 871986, ~: 871987)
Logs:
Bound result 3
Bound result 3
Bound result 3
Bound result 1000
[PASS] test_updateAssetConfig_fuzz_Scenario(uint256) (runs: 5000, μ: 700486, ~: 700539)
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 14
[PASS] test_updateAssetConfig_fuzz_revertsWith_InvalidReinvestmentController() (gas: 469753)
[PASS] test_updateAssetConfig_fuzz_revertsWith_calculateInterestRateReverts(uint256,(address,uint16,address,address)) (runs: 5000, μ: 198751, ~: 199295)
Logs:
Bound result 0
Bound result 9230
[PASS] test_updateAssetConfig_fuzz_revertsWith_setInterestRateDataReverts(uint256,(address,uint16,address,address)) (runs: 5000, μ: 95986, ~: 96293)
Logs:
Bound result 2
Bound result 16
[PASS] test_updateAssetConfig_oldFeeReceiver_flags() (gas: 880112)
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, μ: 59224, ~: 59284)
Logs:
Bound result 3
[PASS] test_updateSpokeConfig_fuzz_revertsWith_SpokeNotListed(uint256,address,(uint40,uint40,uint24,bool,bool)) (runs: 5000, μ: 40532, ~: 40592)
Logs:
Bound result 3
[PASS] test_updateSpokeConfig_revertsWith_AssetNotListed() (gas: 29639)
Suite result: ok. 38 passed; 0 failed; 0 skipped; finished in 92.66s (92.64s CPU time)
Ran 16 tests for tests/unit/Hub/Hub.Draw.t.sol:HubDrawTest
[PASS] test_draw_DifferentSpokes() (gas: 352240)
[PASS] test_draw_fuzz_IncreasedBorrowRate(uint256,uint256) (runs: 5000, μ: 693441, ~: 693678)
Logs:
Bound result 3
Bound result 100
[PASS] test_draw_fuzz_amounts_same_block(uint256,uint256) (runs: 5000, μ: 285893, ~: 286025)
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, μ: 283789, ~: 284032)
Logs:
Bound result 1291
Bound result 70309
Bound result 173721804
[PASS] test_draw_fuzz_revertsWith_InsufficientLiquidity(uint256,uint256) (runs: 5000, μ: 34737, ~: 34512)
Logs:
Bound result 3
Bound result 100
[PASS] test_draw_fuzz_revertsWith_InsufficientLiquidity_due_to_draw(uint256) (runs: 5000, μ: 169517, ~: 169225)
Logs:
Bound result 3124043968137
[PASS] test_draw_fuzz_revertsWith_InsufficientLiquidity_due_to_remove(uint256) (runs: 5000, μ: 131888, ~: 131682)
Logs:
Bound result 3124043968137
[PASS] test_draw_fuzz_revertsWith_InvalidAddress(uint256) (runs: 5000, μ: 16138, ~: 16138)
[PASS] test_draw_revertsWith_DrawCapExceeded_due_to_deficit() (gas: 267210)
[PASS] test_draw_revertsWith_InsufficientLiquidity() (gas: 28289)
[PASS] test_draw_revertsWith_InsufficientLiquidity_due_to_draw() (gas: 165836)
[PASS] test_draw_revertsWith_InsufficientLiquidity_due_to_remove() (gas: 129018)
[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 22.40s (22.38s CPU time)
Ran 26 tests for tests/unit/TokenizationSpoke/TokenizationSpoke.ERC4626Compliance.t.sol:TokenizationSpokeERC4626ComplianceTest
[PASS] test_RT_deposit_redeem((address[4],uint256[4],uint256[4],int256),uint256) (runs: 5000, μ: 631820, ~: 592537)
Logs:
Bound result 267493948838121913344373507661
Bound result 461
[PASS] test_RT_deposit_withdraw((address[4],uint256[4],uint256[4],int256),uint256) (runs: 5000, μ: 632276, ~: 592988)
Logs:
Bound result 267493948838121913344373507661
Bound result 461
[PASS] test_RT_mint_redeem((address[4],uint256[4],uint256[4],int256),uint256) (runs: 5000, μ: 637263, ~: 596756)
Logs:
Bound result 299528256040888800571
Bound result 723860050114565765353153520581
[PASS] test_RT_mint_withdraw((address[4],uint256[4],uint256[4],int256),uint256) (runs: 5000, μ: 637670, ~: 597172)
Logs:
Bound result 299528256040888800571
Bound result 723860050114565765353153520581
[PASS] test_RT_redeem_deposit((address[4],uint256[4],uint256[4],int256),uint256) (runs: 5000, μ: 632077, ~: 592949)
Logs:
Bound result 2600000000
[PASS] test_RT_redeem_mint((address[4],uint256[4],uint256[4],int256),uint256) (runs: 5000, μ: 632395, ~: 592728)
Logs:
Bound result 19602
Bound result 22854
[PASS] test_RT_withdraw_deposit((address[4],uint256[4],uint256[4],int256),uint256) (runs: 5000, μ: 637651, ~: 597764)
Logs:
Bound result 21609
[PASS] test_RT_withdraw_mint((address[4],uint256[4],uint256[4],int256),uint256) (runs: 5000, μ: 637881, ~: 597524)
Logs:
Bound result 10065
Bound result 658717359889789388123682475132
[PASS] test_asset((address[4],uint256[4],uint256[4],int256)) (runs: 5000, μ: 552275, ~: 518791)
[PASS] test_convertToAssets((address[4],uint256[4],uint256[4],int256),uint256) (runs: 5000, μ: 560841, ~: 527191)
[PASS] test_convertToShares((address[4],uint256[4],uint256[4],int256),uint256) (runs: 5000, μ: 560951, ~: 527288)
[PASS] test_deposit((address[4],uint256[4],uint256[4],int256),uint256,uint256) (runs: 5000, μ: 616526, ~: 577452)
Logs:
Bound result 6098
Bound result 8476
[PASS] test_maxDeposit((address[4],uint256[4],uint256[4],int256)) (runs: 5000, μ: 555328, ~: 521516)
[PASS] test_maxMint((address[4],uint256[4],uint256[4],int256)) (runs: 5000, μ: 555402, ~: 521582)
[PASS] test_maxRedeem((address[4],uint256[4],uint256[4],int256)) (runs: 5000, μ: 560364, ~: 526011)
[PASS] test_maxWithdraw((address[4],uint256[4],uint256[4],int256)) (runs: 5000, μ: 560250, ~: 525909)
[PASS] test_mint((address[4],uint256[4],uint256[4],int256),uint256,uint256) (runs: 5000, μ: 622046, ~: 581636)
Logs:
Bound result 374484405103742918162435491297
Bound result 4212641
[PASS] test_previewDeposit((address[4],uint256[4],uint256[4],int256),uint256) (runs: 5000, μ: 610726, ~: 573756)
Logs:
Bound result 267493948838121913344373507661
Bound result 461
[PASS] test_previewMint((address[4],uint256[4],uint256[4],int256),uint256) (runs: 5000, μ: 615693, ~: 577644)
Logs:
Bound result 299528256040888800571
Bound result 723860050114565765353153520581
[PASS] test_previewRedeem((address[4],uint256[4],uint256[4],int256),uint256) (runs: 5000, μ: 614463, ~: 576432)
Logs:
Bound result 1164406824131945490836872
[PASS] test_previewWithdraw((address[4],uint256[4],uint256[4],int256),uint256) (runs: 5000, μ: 620317, ~: 581609)
Logs:
Bound result 1164406824131945490836872
[PASS] test_redeem((address[4],uint256[4],uint256[4],int256),uint256,uint256) (runs: 5000, μ: 618263, ~: 581394)
Logs:
Bound result 33580
[PASS] test_redeem_zero_allowance((address[4],uint256[4],uint256[4],int256),uint256) (runs: 5000, μ: 580854, ~: 537737)
Logs:
Bound result 5550
[PASS] test_totalAssets((address[4],uint256[4],uint256[4],int256)) (runs: 5000, μ: 555752, ~: 521895)
[PASS] test_withdraw((address[4],uint256[4],uint256[4],int256),uint256,uint256) (runs: 5000, μ: 623628, ~: 586156)
Logs:
Bound result 489173949914814192910191036209
Bound result 104
[PASS] test_withdraw_zero_allowance((address[4],uint256[4],uint256[4],int256),uint256) (runs: 5000, μ: 586230, ~: 542527)
Logs:
Bound result 5550
Suite result: ok. 26 passed; 0 failed; 0 skipped; finished in 179.40s (179.37s CPU time)
Ran 16 tests for tests/unit/TokenizationSpoke/TokenizationSpoke.Edge.t.sol:TokenizationSpokeEdgeTest
[PASS] test_depositZero_revertsWith_InvalidAmount() (gas: 48685)
[PASS] test_deposit_revertsWith_ERC20InsufficientAllowance_noApproval() (gas: 55989)
[PASS] test_mintZero_revertsWith_InvalidAmount() (gas: 48332)
[PASS] test_mint_revertsWith_ERC20InsufficientAllowance_noApproval() (gas: 61568)
[PASS] test_multipleMintDepositRedeemWithdraw() (gas: 595766)
[PASS] test_redeemZero_revertsWith_InvalidAmount() (gas: 191353)
[PASS] test_redeem_revertsWith_ERC20InsufficientAllowance_callerNotOwner() (gas: 191569)
[PASS] test_redeem_revertsWith_ERC20InsufficientBalance_noShares() (gas: 37311)
[PASS] test_redeem_revertsWith_ERC20InsufficientBalance_on_InsufficientShares() (gas: 187551)
[PASS] test_singleDepositWithdraw() (gas: 227041)
[PASS] test_singleMintRedeem() (gas: 231090)
[PASS] test_vaultInteractionsForSomeoneElse() (gas: 311568)
[PASS] test_withdrawZero_revertsWith_InvalidAmount() (gas: 191851)
[PASS] test_withdraw_revertsWith_ERC20InsufficientAllowance_callerNotOwner() (gas: 197576)
[PASS] test_withdraw_revertsWith_ERC20InsufficientBalance() (gas: 195176)
[PASS] test_withdraw_revertsWith_ERC20InsufficientBalance_noBalance() (gas: 43354)
Suite result: ok. 16 passed; 0 failed; 0 skipped; finished in 32.25ms (6.83ms CPU time)
Ran 2 tests for tests/unit/TokenizationSpoke/TokenizationSpoke.MaxGetters.t.sol:TokenizationSpokeMaxGettersAddCapExactlyReachedTest
[PASS] test_maxDeposit_returnsZero() (gas: 41194)
[PASS] test_maxMint_returnsZero() (gas: 45260)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 24.50ms (306.47µs CPU time)
Ran 2 tests for tests/unit/TokenizationSpoke/TokenizationSpoke.MaxGetters.t.sol:TokenizationSpokeMaxGettersAddCapMaxTest
[PASS] test_maxDeposit_returnsMaxUint() (gas: 23335)
[PASS] test_maxMint_returnsMaxUint() (gas: 23506)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 23.54ms (248.43µs CPU time)
Ran 2 tests for tests/unit/TokenizationSpoke/TokenizationSpoke.MaxGetters.t.sol:TokenizationSpokeMaxGettersAddCapVariableEmptyTest
[PASS] test_maxDeposit_returnsCapTimesUnits() (gas: 44721)
[PASS] test_maxMint_returnsSharesOfCap() (gas: 56909)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 23.66ms (341.06µs CPU time)
Ran 2 tests for tests/unit/TokenizationSpoke/TokenizationSpoke.MaxGetters.t.sol:TokenizationSpokeMaxGettersAddCapVariablePartialTest
[PASS] test_maxDeposit_returnsRemaining() (gas: 49351)
[PASS] test_maxMint_returnsSharesOfRemaining() (gas: 61475)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 23.61ms (373.29µs CPU time)
Ran 2 tests for tests/unit/TokenizationSpoke/TokenizationSpoke.MaxGetters.t.sol:TokenizationSpokeMaxGettersAddCapZeroTest
[PASS] test_maxDeposit_returnsZero() (gas: 41194)
[PASS] test_maxMint_returnsZero() (gas: 45282)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 23.48ms (280.68µs CPU time)
Ran 2 tests for tests/unit/TokenizationSpoke/TokenizationSpoke.MaxGetters.t.sol:TokenizationSpokeMaxGettersCapExceededByYieldTest
[PASS] test_maxDeposit_returnsZero() (gas: 41205)
[PASS] test_maxMint_returnsZero() (gas: 45271)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 24.10ms (296.50µs CPU time)
Ran 2 tests for tests/unit/TokenizationSpoke/TokenizationSpoke.MaxGetters.t.sol:TokenizationSpokeMaxGettersExactBoundaryAfterYieldTest
[PASS] test_maxDeposit_exactBoundary_succeeds() (gas: 137781)
[PASS] test_maxMint_exactBoundary_succeeds() (gas: 146334)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 24.52ms (696.07µs CPU time)
Ran 2 tests for tests/unit/TokenizationSpoke/TokenizationSpoke.MaxGetters.t.sol:TokenizationSpokeMaxGettersExactBoundaryLimitedLiquidityTest
[PASS] test_maxRedeem_exactBoundary_limitedLiquidity_succeeds() (gas: 104190)
[PASS] test_maxWithdraw_exactBoundary_limitedLiquidity_succeeds() (gas: 99769)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 24.06ms (524.44µs CPU time)
Ran 40 tests for tests/unit/misc/NativeTokenGateway.t.sol:NativeTokenGatewayTest
[PASS] test_borrowNative() (...*[Comment body truncated]* |
♻️ Forge Gas Snapshots🔕 Unchanged
|
Forge Build Sizes
🔕 Unchanged
|
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.
Use Create1 instead of Create2 in tests when no salt is used for deploy.