feat: beacon proxify tokenization spoke#1315
Conversation
| /// @dev name The name for the TokenizationSpoke. | ||
| /// @dev symbol The symbol for the TokenizationSpoke. | ||
| struct TokenizationSpokeConfig { | ||
| address beacon; |
There was a problem hiding this comment.
should this be here or should as we add it as an immutable in hubEngine and it's non configurable? in the config engine or helpers we can abstract this by pulling from address-book (v3 takes the former approach)
There was a problem hiding this comment.
If the goal is to have 1 beacon per chain, should be an immutable in the Hub Engine, shouldn't allow to pass it to avoid mistakes.
If we want 1 beacon per market (for example between current one, and a whitelabel one or Horizon), then we should leave it configurable, or derived from the HubConfigurator managing a specific instance
| IHub internal _hub; | ||
|
|
||
| /// @dev The identifier of the tokenized asset on the Hub. | ||
| uint256 internal _assetId; // todo: change to 96 to save an sload, prob ok limitation |
There was a problem hiding this comment.
i wanna make this 96 such that these are packed in one slot, it makes the spoke limited, and i think it's probably ok limitation since reasonably should not be able to cross this asset id on a hub realistically (as its incremental)
normal spoke restricts to uint16
There was a problem hiding this comment.
or lower actually to bring in decimals here as well for the preview getters which read hub, assetId & decimals but not asset
There was a problem hiding this comment.
TokenizationSpoke must be closer to Hub than to the Spoke in general, given that goal would be provide easy access to Hubs' deposits. Having said that, 96 means 7.9e28 ids.. this is completely okay.
88 bits d fine as well, in case we wanna pack decimals but not sure if there is much benefit over there
There was a problem hiding this comment.
decimals packed here allows the same warm sload for supply preview getters where we need to normalize addCap with assetUnits
There was a problem hiding this comment.
Agree, packing all 3 together should be fine here, chance to reach the max possible assetId here is really low.
♻️ Forge Gas Snapshots
🔕 Unchanged
|
🌈 Test ResultsNo files changed, compilation skipped
Ran 4 tests for tests/contracts/spoke/libraries/liquidation-logic/LiquidationLogic.LiquidateUser.t.sol:LiquidationLogicLiquidateUserTest
[PASS] test_liquidateUser() (gas: 386562)
[PASS] test_liquidateUser_revertsWith_InvalidDebtToCover() (gas: 78781)
[PASS] test_liquidateUser_revertsWith_MustNotLeaveDust_Collateral() (gas: 152355)
[PASS] test_liquidateUser_revertsWith_MustNotLeaveDust_Debt() (gas: 156499)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 45.58ms (1.68ms 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, μ: 16688, ~: 17009)
Logs:
Bound result 1
[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.42s (1.37s 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.76ms (102.59µ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.61ms (594.05µ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 6.74ms (1.97ms 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.23ms (1.03ms CPU time)
Ran 6 tests for tests/contracts/hub/fees/Hub.PayFee.t.sol:HubPayFeeTest
[PASS] test_payFee_fuzz(uint256,uint256) (runs: 5000, μ: 712222, ~: 712380)
Logs:
Bound result 68691281934999
Bound result 0
Bound result 100
[PASS] test_payFee_fuzz_with_interest(uint256,uint256,uint256) (runs: 5000, μ: 712672, ~: 712929)
Logs:
Bound result 615514462186775432459
Bound result 10765498
Bound result 571193127101173104469
[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 28.44s (28.39s CPU time)
Ran 8 tests for tests/contracts/spoke/libraries/liquidation-logic/LiquidationLogic.LiquidationAmounts.t.sol:LiquidationLogicLiquidationAmountsTest
[PASS] test_calculateLiquidationAmounts_EnoughCollateral() (gas: 176648)
[PASS] test_calculateLiquidationAmounts_InsufficientCollateral() (gas: 177287)
[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, μ: 298234, ~: 287468)
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, μ: 251263, ~: 239722)
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, μ: 269968, ~: 258391)
Logs:
Bound result 305647192271866193
Bound result 8596
Bound result 375151818457824964
Bound result 10660
Bound result 18
Bound result 3
Bound result 10650
Bound result 2
Bound result 1320660900608901589
Bound result 375151818457824964
Bound result 2459529247883382
Bound result 14
Bound result 688868459503709026022276783765
Bound result 35620419098526773228444064473
Bound result 30663477167
Bound result 40658186962
Bound result 3642834413111126
Bound result 12
Bound result 6498
Bound result 945630876467233914863016616547
Bound result 0
Bound result 3
Bound result 10650
Bound result 2
Bound result 1320660900608901589
Bound result 375151818457824964
Bound result 2459529247883382
Bound result 14
Bound result 688868459503709026022276783765
Bound result 35620419098526773228444064473
Bound result 30663477167
Bound result 40658186962
Bound result 2459529247883382
Bound result 678767
Bound result 945630876467233914863016616547
Bound result 688868459503709026022276783765
[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, μ: 256218, ~: 244858)
Logs:
Bound result 8813
Bound result 9996
Bound result 0
Bound result 12522
Bound result 7
Bound result 316195423570985008687907853269984665640564039457584007913129639903
Bound result 12522
Bound result 2163
Bound result 1000001000000000001
Bound result 0
Bound result 6567564046434304
Bound result 10
Bound result 6987
Bound result 99000000000000000000000006466
Bound result 458402
Bound result 1027895
Bound result 13
Bound result 17
Bound result 7601
Bound result 12400
Bound result 4
Bound result 12400
Bound result 6987
[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, μ: 280710, ~: 269368)
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, μ: 261363, ~: 249714)
Logs:
Bound result 305647192271866193
Bound result 8596
Bound result 375151818457824964
Bound result 10660
Bound result 18
Bound result 3
Bound result 10650
Bound result 2
Bound result 1320660900608901589
Bound result 375151818457824964
Bound result 2459529247883382
Bound result 14
Bound result 688868459503709026022276783765
Bound result 35620419098526773228444064473
Bound result 30663477167
Bound result 40658186962
Bound result 3642834413111126
Bound result 12
Bound result 6498
Bound result 945630876467233914863016616547
Bound result 0
Bound result 3
Bound result 10650
Bound result 2
Bound result 1320660900608901589
Bound result 375151818457824964
Bound result 2459529247883382
Bound result 14
Bound result 688868459503709026022276783765
Bound result 35620419098526773228444064473
Bound result 30663477167
Bound result 40658186962
Bound result 2459529247883382
Bound result 678767
Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 41.10s (41.07s CPU time)
Ran 4 tests for tests/contracts/spoke/libraries/liquidation-logic/LiquidationLogic.LiquidationBonus.t.sol:LiquidationLogicLiquidationBonusTest
[PASS] test_calculateLiquidationBonus_MinBonusDueToRounding() (gas: 12533)
[PASS] test_calculateLiquidationBonus_PartialBonus() (gas: 12487)
[PASS] test_calculateLiquidationBonus_fuzz_ConstantBonus(uint256,uint256,uint256,uint256) (runs: 5000, μ: 20330, ~: 20129)
Logs:
Bound result 3757
Bound result 4074
Bound result 777777777777777777
Bound result 13283
[PASS] test_calculateLiquidationBonus_fuzz_MaxBonus(uint256,uint256,uint256,uint256) (runs: 5000, μ: 23231, ~: 23029)
Logs:
Bound result 3757
Bound result 4074
Bound result 777777777777777777
Bound result 13283
Bound result 3459
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 1.28s (1.25s CPU time)
Ran 11 tests for tests/contracts/spoke/libraries/liquidation-logic/LiquidationLogic.ValidateLiquidationCall.t.sol:LiquidationLogicValidateLiquidationCallTest
[PASS] test_validateLiquidationCall() (gas: 26014)
[PASS] test_validateLiquidationCall_revertsWith_CannotReceiveShares() (gas: 259368)
[PASS] test_validateLiquidationCall_revertsWith_HealthFactorNotBelowThreshold() (gas: 31813)
[PASS] test_validateLiquidationCall_revertsWith_InvalidDebtToCover() (gas: 26818)
[PASS] test_validateLiquidationCall_revertsWith_ReserveNotBorrowed() (gas: 26957)
[PASS] test_validateLiquidationCall_revertsWith_ReserveNotEnabledAsCollateral_NotUsingAsCollateral() (gas: 27034)
[PASS] test_validateLiquidationCall_revertsWith_ReserveNotEnabledAsCollateral_ZeroCollateralFactor() (gas: 27019)
[PASS] test_validateLiquidationCall_revertsWith_ReserveNotSupplied() (gas: 26948)
[PASS] test_validateLiquidationCall_revertsWith_ReservePaused_CollateralPaused() (gas: 31976)
[PASS] test_validateLiquidationCall_revertsWith_ReservePaused_DebtPaused() (gas: 31976)
[PASS] test_validateLiquidationCall_revertsWith_SelfLiquidation() (gas: 33747)
Suite result: ok. 11 passed; 0 failed; 0 skipped; finished in 31.04ms (1.27ms CPU time)
Ran 8 tests for tests/deployments/utils/Logger.t.sol:LoggerTest
[PASS] test_getJson_returnsAccumulatedState() (gas: 58377)
[PASS] test_multipleWrites() (gas: 87907)
[PASS] test_save() (gas: 69885)
Logs:
Saving log to output/reports/deployments/test/
[PASS] test_writeAddress() (gas: 55765)
[PASS] test_writeGroupAddress() (gas: 108836)
[PASS] test_writeGroupValue() (gas: 19751)
[PASS] test_writeString() (gas: 10351)
[PASS] test_writeUint() (gas: 9633)
Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 11.20ms (17.15ms 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, μ: 155226, ~: 154787)
[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, μ: 155182, ~: 154743)
[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, μ: 154539, ~: 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, μ: 155244, ~: 154805)
[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, μ: 141570, ~: 140298)
[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, μ: 141563, ~: 140291)
[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, μ: 155223, ~: 154784)
[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.21s (43.18s 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, μ: 644023, ~: 643310)
Logs:
Bound result 615514462186775432459
Bound result 571193127101173104469
Bound result 564283877115702805413
[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.10s (16.07s CPU time)
Ran 29 tests for tests/contracts/libraries/math/MathUtils.t.sol:MathUtilsTest
[PASS] test_add_edge_cases() (gas: 4680)
[PASS] test_add_negative_operand(uint256,int256) (runs: 5000, μ: 9159, ~: 8920)
Logs:
Bound result -57896044618658097711785492504343953926634992332820282013197946218740589849150
[PASS] test_add_positive_operand(uint256,int256) (runs: 5000, μ: 3898, ~: 3894)
[PASS] test_calculateLinearInterest() (gas: 4433)
[PASS] test_calculateLinearInterest_add_edge() (gas: 4890)
[PASS] test_calculateLinearInterest_edge_cases() (gas: 16223)
Logs:
Bound result 0
Bound result 1
Bound result 864000000
Bound result 864000000
[PASS] test_calculateLinearInterest_reverts_on_past_timestamp(uint40) (runs: 5000, μ: 7608, ~: 7438)
Logs:
Bound result 9
[PASS] test_constants() (gas: 3132)
[PASS] test_fuzz_calculateLinearInterest(uint96,uint40,uint256) (runs: 5000, μ: 8632, ~: 8869)
Logs:
Bound result 10765498
[PASS] test_fuzz_divUp(uint256,uint256) (runs: 5000, μ: 3540, ~: 3544)
[PASS] test_fuzz_mulDivDown(uint256,uint256,uint256) (runs: 5000, μ: 3535, ~: 3599)
[PASS] test_fuzz_mulDivUp(uint256,uint256,uint256) (runs: 5000, μ: 3636, ~: 3769)
[PASS] test_min(uint256,uint256) (runs: 5000, μ: 3259, ~: 3259)
[PASS] test_mulDivDown_NoRemainder() (gas: 3290)
[PASS] test_mulDivDown_RevertOnDivByZero() (gas: 3085)
[PASS] test_mulDivDown_RevertOnOverflow() (gas: 3173)
[PASS] test_mulDivDown_WithRemainder() (gas: 3246)
[PASS] test_mulDivDown_ZeroAOrB() (gas: 3721)
[PASS] test_mulDivUp_NoRemainder() (gas: 3293)
[PASS] test_mulDivUp_RevertOnDivByZero() (gas: 3150)
[PASS] test_mulDivUp_RevertOnOverflow() (gas: 3196)
[PASS] test_mulDivUp_WithRemainder() (gas: 3293)
[PASS] test_mulDivUp_ZeroAOrB() (gas: 3793)
[PASS] test_signedSub(uint256,uint256) (runs: 5000, μ: 8621, ~: 8553)
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, μ: 3469, ~: 3460)
[PASS] test_uncheckedExp(uint256,uint256) (runs: 5000, μ: 12555, ~: 9958)
[PASS] test_uncheckedSub(uint256,uint256) (runs: 5000, μ: 3443, ~: 3362)
[PASS] test_zeroFloorSub(uint256,uint256) (runs: 5000, μ: 3356, ~: 3392)
Suite result: ok. 29 passed; 0 failed; 0 skipped; finished in 4.32s (4.29s CPU time)
Ran 7 tests for tests/deployments/utils/MetadataLogger.t.sol:MetadataLoggerTest
[PASS] test_writeJsonReportMarket_emptyHubsAndSpokes() (gas: 377183)
[PASS] test_writeJsonReportMarket_fullReport() (gas: 1294111)
[PASS] test_writeJsonReportMarket_noGateways() (gas: 1161640)
[PASS] test_writeJsonReportMarket_noOptionalFields() (gas: 873884)
[PASS] test_writeJsonReportMarket_noPositionManagers() (gas: 1105854)
[PASS] test_writeJsonReportMarket_noTokenizationSpokeBeacon() (gas: 1160187)
[PASS] test_writeJsonReportMarket_singleHubSingleSpoke() (gas: 609370)
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 28.11ms (43.04ms 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 16.93s (16.90s 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.92ms (4.49ms 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 34.42ms (4.51ms 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 30.21ms (1.10ms 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 535.42ms (506.70ms 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 33.11ms (3.11ms 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, μ: 503686, ~: 509051)
Logs:
Bound result 999999999910000000000000000001
Bound result 1
Bound result 293422064736751621767603273306
[PASS] test_refreshPremium_fuzz_withAccrual(uint256,uint256,uint256,uint256) (runs: 5000, μ: 480531, ~: 490442)
Logs:
Bound result 2757
Bound result 47
Bound result 1777777777777777777777777777
Bound result 12667
[PASS] test_refreshPremium_haltedSpokesAllowed() (gas: 129404)
[PASS] test_refreshPremium_maxRiskPremiumThreshold() (gas: 910790)
[PASS] test_refreshPremium_negativeDeltas(uint256) (runs: 5000, μ: 472503, ~: 472498)
Logs:
Bound result 3124043968137
[PASS] test_refreshPremium_negativeDeltas_withAccrual(uint256) (runs: 5000, μ: 544244, ~: 544467)
Logs:
Bound result 3124043968137
[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.35s (20.32s 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, μ: 220248, ~: 220306)
Logs:
Bound result 4
Bound result 100
[PASS] test_remove_fuzz_all_liquidity_with_interest(uint256,uint256) (runs: 5000, μ: 438452, ~: 438707)
Logs:
Bound result 68691281934999
Bound result 100
[PASS] test_remove_fuzz_multi_spoke(uint256,uint256) (runs: 5000, μ: 304352, ~: 304458)
Logs:
Bound result 68691281934999
Bound result 100
[PASS] test_remove_fuzz_multi_spoke_with_interest(uint256,uint256,uint256,uint256) (runs: 5000, μ: 439420, ~: 439978)
Logs:
Bound result 33387594055579892976958851158
Bound result 4594636
Bound result 1777777777777777777777777777
Bound result 12344
[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 32.37s (32.34s CPU time)
Ran 7 tests for tests/contracts/hub/deficit/Hub.ReportDeficit.t.sol:HubReportDeficitTest
[PASS] test_reportDeficit_fuzz_revertsWith_SurplusDrawnDeficitReported(uint256) (runs: 5000, μ: 229177, ~: 229606)
Logs:
Bound result 3124043968137
[PASS] test_reportDeficit_fuzz_revertsWith_SurplusPremiumRayDeficitReported(uint256) (runs: 5000, μ: 229867, ~: 230296)
Logs:
Bound result 3124043968137
[PASS] test_reportDeficit_fuzz_with_premium(uint256,uint256,uint256,uint256) (runs: 5000, μ: 381705, ~: 382431)
Logs:
Bound result 2759
Bound result 12463
Bound result 2580
Bound result 33210705225768370857204529
[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.69s (15.66s CPU time)
Ran 41 tests for tests/contracts/position-manager/NativeTokenGateway.t.sol:NativeTokenGatewayTest
[PASS] test_borrowNative() (gas: 676349)
Logs:
Bound result 5000000000000000000
[PASS] test_borrowNative_fuzz(uint256) (runs: 5000, μ: 675828, ~: 676636)
Logs:
Bound result 3124043968137
[PASS] test_borrowNative_revertsWith_InvalidAmount() (gas: 32511)
[PASS] test_borrowNative_revertsWith_NotNativeWrappedAsset() (gas: 32564)
[PASS] test_borrowNative_revertsWith_ReentrancyGuardReentrantCall_hubDraw() (gas: 283116)
[PASS] test_borrowNative_revertsWith_ReentrancyGuardReentrantCall_spokeBorrow() (gas: 271200)
[PASS] test_borrowNative_revertsWith_SpokeNotRegistered() (gas: 25379)
[PASS] test_constructor() (gas: 12742)
[PASS] test_constructor_revertsWith_InvalidAddress() (gas: 5936)
[PASS] test_fallback_revertsWith_UnsupportedAction() (gas: 17640)
[PASS] test_multicall_revertsWith_UnsupportedAction() (gas: 11200)
[PASS] test_receive_revertsWith_UnsupportedAction() (gas: 17409)
[PASS] test_repayNative() (gas: 773244)
Logs:
Bound result 5000000000000000000
[PASS] test_repayNative_excessAmount() (gas: 681722)
[PASS] test_repayNative_fuzz(uint256) (runs: 5000, μ: 769325, ~: 773781)
Logs:
Bound result 3124043968137
[PASS] test_repayNative_fuzz_withInterest(uint256,uint256) (runs: 5000, μ: 692649, ~: 687805)
Logs:
Bound result 90000068691281935000
Bound result 25920101
[PASS] test_repayNative_revertsWith_InvalidAmount() (gas: 32459)
[PASS] test_repayNative_revertsWith_NativeAmountMismatch() (gas: 30069)
[PASS] test_repayNative_revertsWith_NotNativeWrappedAsset() (gas: 39272)
[PASS] test_repayNative_revertsWith_ReentrancyGuardReentrantCall_hubRestore() (gas: 331633)
[PASS] test_repayNative_revertsWith_ReentrancyGuardReentrantCall_spokeRepay() (gas: 308258)
[PASS] test_repayNative_revertsWith_SpokeNotRegistered() (gas: 38722)
[PASS] test_supplyAndCollateralNative() (gas: 340285)
Logs:
Bound result 100000000000000000000
[PASS] test_supplyAndCollateralNative_fuzz(uint256) (runs: 5000, μ: 340578, ~: 340291)
Logs:
Bound result 3124043968137
[PASS] test_supplyNative() (gas: 311958)
Logs:
Bound result 100000000000000000000
[PASS] test_supplyNative_fuzz(uint256) (runs: 5000, μ: 312294, ~: 312007)
Logs:
Bound result 3124043968137
[PASS] test_supplyNative_revertsWith_InvalidAmount() (gas: 32524)
[PASS] test_supplyNative_revertsWith_NativeAmountMismatch() (gas: 29942)
[PASS] test_supplyNative_revertsWith_NotNativeWrappedAsset() (gas: 39259)
[PASS] test_supplyNative_revertsWith_ReentrancyGuardReentrantCall_hubAdd() (gas: 374255)
[PASS] test_supplyNative_revertsWith_ReentrancyGuardReentrantCall_spokeSupply() (gas: 336151)
[PASS] test_supplyNative_revertsWith_SpokeNotRegistered() (gas: 38712)
[PASS] test_withdrawNative() (gas: 339961)
Logs:
Bound result 100000000000000000000
[PASS] test_withdrawNative_fuzz(uint256) (runs: 5000, μ: 339435, ~: 340011)
Logs:
Bound result 3124043968137
[PASS] test_withdrawNative_fuzz_allBalance(uint256) (runs: 5000, μ: 273445, ~: 273243)
Logs:
Bound result 3124043968137
[PASS] test_withdrawNative_fuzz_allBalanceWithInterest(uint256,uint256) (runs: 5000, μ: 625014, ~: 624956)
Logs:
Bound result 68691281934999
Bound result 100
[PASS] test_withdrawNative_revertsWith_InvalidAmount() (gas: 32497)
[PASS] test_withdrawNative_revertsWith_NotNativeWrappedAsset() (gas: 32509)
[PASS] test_withdrawNative_revertsWith_ReentrancyGuardReentrantCall_hubRemove() (gas: 304941)
[PASS] test_withdrawNative_revertsWith_ReentrancyGuardReentrantCall_spokeWithdraw() (gas: 271219)
[PASS] test_withdrawNative_revertsWith_SpokeNotRegistered() (gas: 25346)
Suite result: ok. 41 passed; 0 failed; 0 skipped; finished in 75.20s (75.17s CPU time)
Ran 3 tests for tests/contracts/utils/NoncesKeyed.t.sol:NoncesKeyedTest
[PASS] test_useCheckedNonce_monotonic(bytes32) (runs: 5000, μ: 12906, ~: 12906)
[PASS] test_useCheckedNonce_revertsWith_InvalidAccountNonce(bytes32) (runs: 5000, μ: 95329, ~: 94424)
[PASS] test_useNonce_monotonic(bytes32) (runs: 5000, μ: 13553, ~: 13553)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 3.83s (3.82s CPU time)
Ran 10 tests for tests/contracts/libraries/math/PercentageMath.t.sol:PercentageMathTest
[PASS] test_constants() (gas: 8604)
[PASS] test_fromBpsDown() (gas: 9654)
[PASS] test_percentDiv() (gas: 14993)
[PASS] test_percentDivUp_ge_value(uint256,uint256) (runs: 5000, μ: 15138, ~: 15261)
Logs:
Bound result 100
Bound result 68691281934999
[PASS] test_percentDivUp_le_value(uint256,uint256) (runs: 5000, μ: 15338, ~: 15347)
Logs:
Bound result 90101
Bound result 68691281934999
[PASS] test_percentDiv_fuzz(uint256,uint256) (runs: 5000, μ: 12602, ~: 12760)
[PASS] test_percentMul() (gas: 14932)
[PASS] test_percentMulUp_ge_value(uint256,uint256) (runs: 5000, μ: 15321, ~: 15330)
Logs:
Bound result 90101
Bound result 68691281934999
[PASS] test_percentMulUp_le_value(uint256,uint256) (runs: 5000, μ: 15141, ~: 15264)
Logs:
Bound result 100
Bound result 68691281934999
[PASS] test_percentMul_fuzz(uint256,uint256) (runs: 5000, μ: 11521, ~: 12063)
Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 1.57s (1.57s CPU time)
Ran 17 tests for tests/contracts/position-manager/PositionManagerBase.t.sol:PositionManagerBaseTest
[PASS] test_constructor() (gas: 17254)
[PASS] test_getReserveUnderlying_fuzz(uint256) (runs: 5000, μ: 36863, ~: 36919)
Logs:
Bound result 2
[PASS] test_getReserveUnderlying_revertsWith_ReserveNotListed() (gas: 25763)
[PASS] test_multicall() (gas: 73229)
[PASS] test_multicall_atomicity_on_revert() (gas: 48194)
[PASS] test_multicall_revertsWith_UnsupportedAction() (gas: 11221)
[PASS] test_permitReserveUnderlying() (gas: 128723)
[PASS] test_permitReserveUnderlying_forwards_correct_call() (gas: 78212)
[PASS] test_permitReserveUnderlying_ignores_permit_reverts() (gas: 67313)
[PASS] test_permitReserveUnderlying_revertsWith_ReserveNotListed() (gas: 58196)
[PASS] test_registerSpoke_fuzz(address) (runs: 5000, μ: 41688, ~: 41688)
[PASS] test_registerSpoke_revertsWith_InvalidAddress() (gas: 13110)
[PASS] test_registerSpoke_revertsWith_OwnableUnauthorizedAccount() (gas: 15958)
[PASS] test_registerSpoke_unregister() (gas: 36219)
[PASS] test_renouncePositionManagerRole() (gas: 65574)
[PASS] test_renouncePositionManagerRole_revertsWith_OwnableUnauthorizedAccount() (gas: 74573)
[PASS] test_setSelfAsUserPositionManagerWithSig() (gas: 131481)
Suite result: ok. 17 passed; 0 failed; 0 skipped; finished in 1.10s (1.08s 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, μ: 520751, ~: 520710)
Logs:
Bound result 351500639
Bound result 1256746
[PASS] test_rescue_scenario_fuzz(uint256) (runs: 5000, μ: 458915, ~: 458708)
Logs:
Bound result 3124043968137
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 17.72s (17.69s CPU time)
Ran 10 tests for tests/contracts/position-manager/libraries/PositionManagerEIP712Hash.t.sol:PositionManagerEIP712HashTest
[PASS] test_constants() (gas: 13441)
[PASS] test_hash_borrowPermit_fuzz((address,uint256,address,address,uint256,uint256,uint256)) (runs: 5000, μ: 4833, ~: 4833)
[PASS] test_hash_borrow_fuzz((address,uint256,uint256,address,uint256,uint256)) (runs: 5000, μ: 6689, ~: 6689)
[PASS] test_hash_repay_fuzz((address,uint256,uint256,address,uint256,uint256)) (runs: 5000, μ: 6690, ~: 6690)
[PASS] test_hash_setUsingAsCollateral_fuzz((address,uint256,bool,address,uint256,uint256)) (runs: 5000, μ: 7126, ~: 7126)
[PASS] test_hash_supply_fuzz((address,uint256,uint256,address,uint256,uint256)) (runs: 5000, μ: 6733, ~: 6733)
[PASS] test_hash_updateUserDynamicConfig_fuzz((address,address,uint256,uint256)) (runs: 5000, μ: 6349, ~: 6349)
[PASS] test_hash_updateUserRiskPremium_fuzz((address,address,uint256,uint256)) (runs: 5000, μ: 6370, ~: 6370)
[PASS] test_hash_withdrawPermit_fuzz((address,uint256,address,address,uint256,uint256,uint256)) (runs: 5000, μ: 4832, ~: 4832)
[PASS] test_hash_withdraw_fuzz((address,uint256,uint256,address,uint256,uint256)) (runs: 5000, μ: 6689, ~: 6689)
Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 6.57s (6.57s CPU time)
Ran 10 tests for tests/config-engine/PositionManagerEngine.t.sol:PositionManagerEngineTest
[PASS] test_executePositionManagerRoleRenouncements() (gas: 140230)
[PASS] test_executePositionManagerRoleRenouncements_nonExistentApproval() (gas: 129871)
[PASS] test_executePositionManagerRoleRenouncements_revert() (gas: 1099921)
[PASS] test_executePositionManagerSpokeRegistrations() (gas: 51256)
[PASS] test_executePositionManagerSpokeRegistrations_batchMultiplePositionManagers() (gas: 2239342)
[PASS] test_executePositionManagerSpokeRegistrations_batchMultipleSpokes() (gas: 107875)
[PASS] test_executePositionManagerSpokeRegistrations_deregister() (gas: 42514)
[PASS] test_executePositionManagerSpokeRegistrations_idempotent() (gas: 59789)
[PASS] test_executePositionManagerSpokeRegistrations_revert() (gas: 1097841)
[PASS] test_fuzz_executePositionManagerSpokeRegistrations(bool) (runs: 5000, μ: 38254, ~: 28460)
Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 424.86ms (405.53ms CPU time)
Ran 11 tests for tests/gas/PositionManagers.Operations.gas.t.sol:ConfigPositionManager_Gas_Tests
[PASS] test_renounceCanUpdateUserDynamicConfigPermission() (gas: 93952)
[PASS] test_renounceCanUpdateUserRiskPremiumPermission() (gas: 93842)
[PASS] test_renounceCanUpdateUsingAsCollateralPermission() (gas: 93843)
[PASS] test_renounceGlobalPermission() (gas: 93758)
[PASS] test_setCanSetUsingAsCollateralPermission() (gas: 69551)
[PASS] test_setCanUpdateUserDynamicConfigPermission() (gas: 69592)
[PASS] test_setCanUpdateUserRiskPremiumPermission() (gas: 69593)
[PASS] test_setGlobalPermission() (gas: 69483)
[PASS] test_setUsingAsCollateralOnBehalfOf_fuzz_withGlobalPermission() (gas: 150673)
[PASS] test_updateUserDynamicConfigOnBehalfOf_withGlobalPermission() (gas: 122987)
[PASS] test_updateUserRiskPremiumOnBehalfOf_withGlobalPermission() (gas: 733934)
Suite result: ok. 11 passed; 0 failed; 0 skipped; finished in 46.81ms (2.34ms CPU time)
Ran 2 tests for tests/gas/PositionManagers.Operations.gas.t.sol:GiverPositionManager_Gas_Tests
[PASS] test_repayOnBehalfOf() (gas: 950233)
[PASS] test_supplyOnBehalfOf() (gas: 292431)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 45.66ms (1.76ms CPU time)
Ran 1 test for tests/gas/PositionManagers.Operations.gas.t.sol:PositionManager_Gas_Tests
[PASS] test_setSelfAsUserPositionManagerWithSig() (gas: 216002)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 43.92ms (766.59µs CPU time)
Ran 8 tests for tests/gas/PositionManagers.Operations.gas.t.sol:TakerPositionManager_Gas_Tests
[PASS] test_approveBorrow() (gas: 69192)
[PASS] test_approveBorrowWithSig() (gas: 155479)
[PASS] test_approveWithdraw() (gas: 69199)
[PASS] test_approveWithdrawWithSig() (gas: 155442)
[PASS] test_borrowOnBehalfOf() (gas: 794026)
[PASS] test_renounceBorrowAllowance() (gas: 93688)
[PASS] test_renounceWithdrawAllowance() (gas: 93729)
[PASS] test_withdrawOnBehalfOf() (gas: 607579)
Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 47.70ms (3.60ms 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, μ: 381202, ~: 381298)
Logs:
Bound result 615514462186775432459
Bound result 571193127101173104469
Bound result 173721804
[PASS] test_restore_fuzz_full_amount_with_interest_and_premium(uint256,uint256,uint256,uint256) (runs: 5000, μ: 685626, ~: 697429)
Logs:
Bound result 2649
Bound result 524
Bound result 337777777
Bound result 21
[PASS] test_restore_fuzz_revertsWith_SurplusDrawnRestored_with_interest(uint256,uint256,uint256) (runs: 5000, μ: 255577, ~: 256677)
Logs:
Bound result 615514462186775432459
Bound result 571193127101173104469
Bound result 173721804
[PASS] test_restore_fuzz_revertsWith_SurplusDrawnRestored_with_interest_and_premium(uint256,uint256,uint256,uint256) (runs: 5000, μ: 655142, ~: 655404)
Logs:
Bound result 2649
Bound result 524
Bound result 337777777
Bound result 21
[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.26s (19.23s 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.93s (2.90s 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, μ: 241465, ~: 241427)
Logs:
Bound result 3
Bound result 18470873395738003579119570309
Bound result 446067553769140138733721804
[PASS] test_skimAdd_fuzz_donationBeforeAdd(uint256,uint256,uint256) (runs: 5000, μ: 241475, ~: 241437)
Logs:
Bound result 3
Bound result 18470873395738003579119570309
Bound result 446067553769140138733721804
[PASS] test_skimAdd_fuzz_wrongSpokeTransfer(uint256,uint256,uint256) (runs: 5000, μ: 230535, ~: 230486)
Logs:
Bound result 3
Bound result 18132171100462486213502917929
Bound result 446067553769140138733721804
[PASS] test_skimRestore_fuzz_liquidityDonation(uint256,uint256,uint256) (runs: 5000, μ: 282064, ~: 283377)
Logs:
Bound result 3
Bound result 18470873395738003579119570309
Bound result 446067553769140138733721804
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 33.93s (33.89s 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, μ: 223438, ~: 223453)
Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 4.16s (4.13s 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, μ: 653504, ~: 654743)
Logs:
Bound result 68691281934999
Bound result 100
[PASS] test_sweep_fuzz(uint256,uint256) (runs: 5000, μ: 476273, ~: 476465)
Logs:
Bound result 68691281934999
Bound result 100
[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.47s (20.43s 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, μ: 203090, ~: 203299)
Logs:
Bound result 68691281934999
Bound result 100
[PASS] test_transferShares_fuzz_revertsWith_underflow_spoke_added_shares_exceeded(uint256) (runs: 5000, μ: 155827, ~: 155537)
Logs:
Bound result 3124043968137
[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.20s (9.17s 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, μ: 6657928, ~: 6506700)
Logs:
Bound result 416966230219621053938274952927
Bound result 0
Bound result 255831241153786906
Bound result 41191294854201435881
Bound result 124281697546210950467266407747
Bound result 33522909571553656
Bound result 481970306954558904
Bound result 12412
Bound result 6
Bound result 124281697546210950467266407747
Bound result 33522909571553656
Bound result 481970306954558904
Bound result 12412
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 161.12s (161.09s 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 649
[PASS] test_proxy_constructor_fuzz_revertsWith_InvalidInitialization(uint64) (runs: 5000, μ: 12660275, ~: 12660268)
Logs:
Bound result 649
[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, μ: 14073222, ~: 14073206)
Logs:
Bound result 649
[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.00s (19.98s 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, μ: 406995, ~: 406870)
Logs:
Bound result 9
[PASS] test_accrueInterest_NoInterest_OnlyAdd(uint40) (runs: 5000, μ: 210196, ~: 210139)
Logs:
Bound result 9
[PASS] test_accrueInterest_fuzz_BorrowAmountAndElapsed(uint256,uint40) (runs: 5000, μ: 279992, ~: 279897)
Logs:
Bound result 68691281934999
Bound result 1
[PASS] test_accrueInterest_fuzz_BorrowAmountRateAndElapsed(uint256,uint256,uint40) (runs: 5000, μ: 398610, ~: 398372)
Logs:
Bound result 615514462186775432459
Bound result 27544
Bound result 6348
[PASS] test_accrueInterest_fuzz_BorrowAndWait(uint40) (runs: 5000, μ: 278696, ~: 278605)
Logs:
Bound result 9
[PASS] test_getAssetDrawnRate_MatchesStoredAfterAction() (gas: 195004)
[PASS] test_getAssetDrawnRate_fuzz_DiffersAfterTimePasses(uint40) (runs: 5000, μ: 219589, ~: 219462)
Logs:
Bound result 9
Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 28.17s (28.14s 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, μ: 279961, ~: 279962)
[PASS] test_fuzz_unauthorized_cannotCall_spokeManagerMethods(address) (runs: 5000, μ: 354589, ~: 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.63s (5.60s 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, μ: 457966, ~: 458540)
Logs:
Bound result 18
Bound result 7488
Bound result 1100
Bound result 301
Bound result 7370
Bound result 9999
[PASS] test_addAsset_fuzz_revertsWith_AccessManagedUnauthorized(address) (runs: 5000, μ: 48852, ~: 49221)
[PASS] test_addAsset_fuzz_revertsWith_InvalidAssetDecimals(bool,address,uint8,address,uint256,address) (runs: 5000, μ: 70234, ~: 70214)
Logs:
Bound result 20
Bound result 6405
[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, μ: 202968, ~: 203255)
Logs:
Bound result 4
Bound result 0
[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, μ: 196127, ~: 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, μ: 107238, ~: 108851)
Logs:
Bound result 3
Bound result 0
[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 12.91s (12.88s CPU time)
Ran 32 tests for tests/contracts/spoke/libraries/PositionStatusMap.t.sol:PositionStatusMapTest
[PASS] test_borrowCount() (gas: 108156)
[PASS] test_borrowCount(uint256) (runs: 5000, μ: 1919121, ~: 1775758)
Logs:
Bound result 812
[PASS] test_borrowCount_ignoresInvalidBits() (gas: 122818)
[PASS] test_bucketId() (gas: 8945)
[PASS] test_collateralCount() (gas: 108082)
[PASS] test_collateralCount(uint256) (runs: 5000, μ: 1934784, ~: 1790606)
Logs:
Bound result 812
[PASS] test_collateralCount_ignoresInvalidBits() (gas: 123031)
[PASS] test_constants() (gas: 44556)
[PASS] test_fls() (gas: 509035)
[PASS] test_fromBitId(uint256,uint256) (runs: 5000, μ: 14093, ~: 14384)
Logs:
Bound result 151
Bound result 100
[PASS] test_fuzz_setBorrowing(uint256,bool) (runs: 5000, μ: 22277, ~: 32159)
[PASS] test_fuzz_setUseAsCollateral(uint256,bool) (runs: 5000, μ: 22330, ~: 32212)
[PASS] test_getBucketWord(uint256) (runs: 5000, μ: 14232, ~: 14232)
[PASS] test_isUsingAsCollateralOrBorrowing_slot0() (gas: 108335)
[PASS] test_isUsingAsCollateralOrBorrowing_slot1() (gas: 44032)
[PASS] test_isolateBorrowing(uint256) (runs: 5000, μ: 153031, ~: 153031)
[PASS] test_isolateBorrowingUntil(uint256,uint256) (runs: 5000, μ: 144793, ~: 144548)
[PASS] test_isolateCollateral(uint256) (runs: 5000, μ: 152994, ~: 152994)
[PASS] test_isolateCollateralUntil(uint256,uint256) (runs: 5000, μ: 144795, ~: 144550)
[PASS] test_isolateUntil(uint256,uint256) (runs: 5000, μ: 134643, ~: 134638)
[PASS] test_next(uint256) (runs: 5000, μ: 20060, ~: 18950)
Logs:
Bound result 649
[PASS] test_nextBorrowing(uint256) (runs: 5000, μ: 18016, ~: 16920)
Logs:
Bound result 649
[PASS] test_nextBorrowing_continuous() (gas: 61801685)
[PASS] test_nextCollateral(uint256) (runs: 5000, μ: 18189, ~: 17007)
Logs:
Bound result 649
[PASS] test_nextCollateral_continuous() (gas: 62157760)
[PASS] test_next_continuous() (gas: 89136467)
[PASS] test_popCount(bytes32) (runs: 5000, μ: 37904, ~: 38034)
[PASS] test_setBorrowing_slot0() (gas: 43906)
[PASS] test_setBorrowing_slot1() (gas: 43942)
[PASS] test_setUseAsCollateral_slot0() (gas: 44158)
[PASS] test_setUseAsCollateral_slot1() (gas: 44176)
[PASS] test_setters_use_correct_slot(uint256) (runs: 5000, μ: 36801, ~: 41561)
Suite result: ok. 32 passed; 0 failed; 0 skipped; finished in 155.45s (155.44s CPU time)
Ran 46 tests for tests/config-engine/HubEngine.t.sol:HubEngineTest
[PASS] test_computeProxyAddress() (gas: 17302)
[PASS] test_executeHubAssetCapsResets() (gas: 181431)
[PASS] test_executeHubAssetConfigUpdates_allFields() (gas: 334439)
[PASS] test_executeHubAssetConfigUpdates_crossHub() (gas: 247710)
[PASS] test_executeHubAssetConfigUpdates_feeBoth() (gas: 240719)
[PASS] test_executeHubAssetConfigUpdates_feeNeither() (gas: 66927)
[PASS] test_executeHubAssetConfigUpdates_feeOnly() (gas: 143437)
[PASS] test_executeHubAssetConfigUpdates_irDataOnly() (gas: 128392)
[PASS] test_executeHubAssetConfigUpdates_irNoOp() (gas: 58043)
[PASS] test_executeHubAssetConfigUpdates_multipleAssets() (gas: 221260)
[PASS] test_executeHubAssetConfigUpdates_receiverOnly() (gas: 220005)
[PASS] test_executeHubAssetConfigUpdates_reinvestmentController() (gas: 139675)
[PASS] test_executeHubAssetConfigUpdates_revertsWith_partialSentinelIrDataOnStrategyChange() (gas: 46829)
[PASS] test_executeHubAssetConfigUpdates_revertsWith_sentinelIrDataOnStrategyChange() (gas: 46727)
[PASS] test_executeHubAssetConfigUpdates_strategyChange() (gas: 146588)
[PASS] test_executeHubAssetDeactivations() (gas: 239834)
[PASS] test_executeHubAssetHalts() (gas: 166746)
[PASS] test_executeHubAssetHalts_multipleAssets() (gas: 285432)
[PASS] test_executeHubAssetListings() (gas: 412500)
[PASS] test_executeHubAssetListings_multipleHubs() (gas: 772468)
[PASS] test_executeHubAssetListings_noTokenization() (gas: 407593)
[PASS] test_executeHubAssetListings_revert() (gas: 422430)
[PASS] test_executeHubAssetListings_tokenization_deterministicAddress() (gas: 788307)
[PASS] test_executeHubAssetListings_tokenization_skipsOnEmptyName() (gas: 425154)
[PASS] test_executeHubAssetListings_tokenization_skipsOnEmptySymbol() (gas: 425427)
[PASS] test_executeHubAssetListings_withTokenization() (gas: 793023)
[PASS] test_executeHubAssetListings_withTokenization_duplicateUnderlying_revertsBeforeCreate2() (gas: 795740)
[PASS] test_executeHubSpokeCapsResets() (gas: 169773)
[PASS] test_executeHubSpokeConfigUpdates_addCapOnly() (gas: 97371)
[PASS] test_executeHubSpokeConfigUpdates_allFields() (gas: 152623)
[PASS] test_executeHubSpokeConfigUpdates_capsBoth() (gas: 102569)
[PASS] test_executeHubSpokeConfigUpdates_capsNeither() (gas: 52361)
[PASS] test_executeHubSpokeConfigUpdates_drawCapOnly() (gas: 97314)
[PASS] test_executeHubSpokeConfigUpdates_haltedOnly() (gas: 93115)
[PASS] test_executeHubSpokeConfigUpdates_multipleHubs() (gas: 149848)
[PASS] test_executeHubSpokeConfigUpdates_multipleUpdates() (gas: 136451)
[PASS] test_executeHubSpokeConfigUpdates_riskPremiumThreshold() (gas: 93058)
[PASS] test_executeHubSpokeConfigUpdates_statusBoth() (gas: 109357)
[PASS] test_executeHubSpokeDeactivations() (gas: 162365)
[PASS] test_executeHubSpokeToAssetsAdditions() (gas: 7766075)
[PASS] test_executeHubSpokeToAssetsAdditions_revert_spokeAlreadyListed() (gas: 77413)
[PASS] test_fuzz_executeHubAssetConfigUpdates_feeOnly(uint256) (runs: 5000, μ: 147003, ~: 147413)
Logs:
Bound result 4978
[PASS] test_fuzz_executeHubSpokeConfigUpdates_addCap(uint256) (runs: 5000, μ: 101199, ~: 101505)
Logs:
Bound result 925020712585
[PASS] test_fuzz_executeHubSpokeConfigUpdates_capsBoth(uint256,uint256) (runs: 5000, μ: 102549, ~: 102422)
Logs:
Bound result 521561012887
Bound result 100
[PASS] test_fuzz_executeHubSpokeConfigUpdates_drawCap(uint256) (runs: 5000, μ: 101122, ~: 101428)
Logs:
Bound result 925020712585
[PASS] test_fuzz_executeHubSpokeConfigUpdates_riskPremiumThreshold(uint256) (runs: 5000, μ: 101494, ~: 101717)
Logs:
Bound result 8908425
Suite result: ok. 46 passed; 0 failed; 0 skipped; finished in 6.59s (6.57s 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, μ: 711055, ~: 710886)
Logs:
Bound result 9
[PASS] test_accrueInterest_NoInterest_OnlySupply(uint40) (runs: 5000, μ: 273095, ~: 273088)
Logs:
Bound result 9
[PASS] test_accrueInterest_TenPercentRp(uint256,uint40) (runs: 5000, μ: 613277, ~: 613715)
Logs:
Bound result 68691281934999
Bound result 0
[PASS] test_accrueInterest_fuzz_BorrowAmountAndSkipTime(uint256,uint40) (runs: 5000, μ: 572546, ~: 572913)
Logs:
Bound result 68691281934999
Bound result 0
[SKIP: pending rft] test_accrueInterest_fuzz_RPBorrowAndSkipTime((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256),uint40) (runs: 0, μ: 0, ~: 0)
[PASS] test_accrueInterest_fuzz_RatesRPBorrowAndSkipTime((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256),(uint96,uint96,uint96,uint96),uint40) (runs: 5000, μ: 4872616, ~: 4892338)
Logs:
Bound result 112746367998793297547044483035
Bound result 7600
Bound result 987295277390252180
Bound result 5694
Bound result 220555083794444185529929127954
Bound result 999999999999999999999999999993
Bound result 45000000
Bound result 37817
Bound result 16698
Bound result 999
Bound result 15967
Bound result 67040
Bound result 19931494
Bound result 220555083794444185529929127954
Bound result 71482433941268405671833003
Bound result 45000000
Bound result 37817
Suite result: ok. 6 passed; 0 failed; 1 skipped; finished in 139.66s (139.63s CPU time)
Ran 11 tests for tests/contracts/spoke/libraries/KeyValueList.t.sol:KeyValueListTest
[PASS] test_add_unique() (gas: 352075)
[PASS] test_fuzz_add(uint256,uint256) (runs: 5000, μ: 231251, ~: 232296)
[PASS] test_fuzz_add_unique(uint256,uint256) (runs: 5000, μ: 240649, ~: 245293)
Logs:
Bound result 100
[PASS] test_fuzz_get(uint256[]) (runs: 5000, μ: 377309, ~: 378109)
[PASS] test_fuzz_get_uninitialized(uint256[]) (runs: 5000, μ: 264434, ~: 249976)
[PASS] test_fuzz_get_uninitialized_sorted(uint256[]) (runs: 5000, μ: 179988, ~: 153393)
[PASS] test_fuzz_pack_unpack_roundtrip(uint256,uint256) (runs: 5000, μ: 9176, ~: 9363)
Logs:
Bound result 1869986064
Bound result 100
[PASS] test_fuzz_sortByKey(uint256[]) (runs: 5000, μ: 434663, ~: 428970)
[PASS] test_fuzz_sortByKey_length(uint256) (runs: 5000, μ: 201673, ~: 199685)
Logs:
Bound result 37
[PASS] test_fuzz_sortByKey_with_collision(uint256[]) (runs: 5000, μ: 513133, ~: 509095)
[PASS] test_fuzz_uncheckedAt(uint256[]) (runs: 5000, μ: 150000, ~: 150694)
Suite result: ok. 11 passed; 0 failed; 0 skipped; finished in 70.97s (70.97s CPU time)
Ran 2 tests for tests/contracts/spoke/libraries/liquidation-logic/LiquidationLogic.CollateralToLiquidate.t.sol:LiquidationLogicCollateralToLiquidateTest
[PASS] test_calculateCollateralAmountToLiquidate() (g...*[Comment body truncated]* |
Forge Build Sizes🔕 Unchanged
|
| /// @dev A single instance is shared by all TokenizationSpoke beacon proxies, so the Hub and | ||
| /// tokenized asset details are provided to the initializer rather than the constructor. |
There was a problem hiding this comment.
| /// @dev A single instance is shared by all TokenizationSpoke beacon proxies, so the Hub and | |
| /// tokenized asset details are provided to the initializer rather than the constructor. | |
| /// @dev A single stateless implementation is shared across all TokenizationSpoke beacon proxies. |
| /// @dev Sets the Hub and tokenized asset details and the vault share token's ERC20 name and | ||
| /// symbol. Must be called at first initialization. |
There was a problem hiding this comment.
| /// @dev Sets the Hub and tokenized asset details and the vault share token's ERC20 name and | |
| /// symbol. Must be called at first initialization. | |
| /// @dev Initializes the TokenizationSpoke vault parameters, including vault share token's ERC20 name and symbol. | |
| /// Must be called at first initialization. |
| address hub_, | ||
| address underlying_, |
There was a problem hiding this comment.
| address hub_, | |
| address underlying_, | |
| address hub, | |
| address underlying, |
fix docs too pls
There was a problem hiding this comment.
this was intentional because of shadow warning (we have hub() getter) but yeah will see
| address hub_, | ||
| address underlying_, |
There was a problem hiding this comment.
| address hub_, | |
| address underlying_, | |
| address hub, | |
| address underlying, |
No description provided.