Comment on page
Test Report
Below is an report of all smart contract level tests that are run against the protocol, in all repos.
Current number of tests in this report is: 1683 tests.
Running 3 tests for tests/integration/ActivatePoolManager.t.sol:ActivatePoolManagerFailureTests
[PASS] test_activatePoolManager_failIfNotGlobals() (gas: 37438)
[PASS] test_activatePoolManager_failIfNotGovernor() (gas: 19239)
[PASS] test_activatePoolManager_failIfProtocolIsPaused() (gas: 71359)
Test result: ok. 3 passed; 0 failed; finished in 15.55ms
Running 4 tests for tests/integration/FinishCollateralLiquidation.t.sol:FinishCollateralLiquidationFailureTests
[PASS] test_finishCollateralLiquidation_notAuthorized() (gas: 51297)
[PASS] test_finishCollateralLiquidation_notFinished() (gas: 653421)
[PASS] test_finishCollateralLiquidation_notPoolManager() (gas: 54718)
[PASS] test_finishCollateralLiquidation_whenImpaired() (gas: 288423)
Test result: ok. 4 passed; 0 failed; finished in 18.10ms
Running 1 test for tests/integration/DeployLoan.t.sol:DeployFixedTermLoanTests
[PASS] test_deployFixedTermLoan_feeManagerCheck() (gas: 902611)
Test result: ok. 1 passed; 0 failed; finished in 18.60ms
Running 5 tests for tests/integration/PoolAccountingViewFunctions.t.sol:TotalAssetsTests
[PASS] test_totalAssets_singleDeposit() (gas: 246427)
[PASS] test_totalAssets_singleLoanFunded() (gas: 1529736)
[PASS] test_totalAssets_singleLoanFundedWithInterest() (gas: 1564475)
[PASS] test_totalAssets_singleLoanFundedWithPayment() (gas: 1794288)
[PASS] test_totalAssets_zeroTotalSupply() (gas: 65301)
Test result: ok. 5 passed; 0 failed; finished in 22.24ms
Running 1 test for tests/integration/MakePayment.t.sol:MakePaymentTestsDomainStartGtDomainEnd
[PASS] test_makePayment_domainStart_gt_domainEnd() (gas: 3729409)
Test result: ok. 1 passed; 0 failed; finished in 24.32ms
Running 3 tests for tests/e2e/RefinanceScenario.t.sol:RefinanceScenariosTests
[PASS] test_impairOTL_refinanceToHigherPrincipal_oneLoanImpaired_underflow() (gas: 1293546)
[PASS] test_impairOTL_refinanceToHigherPrincipal_twoLoansImpaired() (gas: 1480056)
[PASS] test_impairOTL_refinanceToLowerPrincipal_singleLoanImpaired() (gas: 1350545)
Test result: ok. 3 passed; 0 failed; finished in 26.17ms
Running 1 test for tests/integration/ActivatePoolManager.t.sol:ActivatePoolManagerTests
[PASS] test_activatePoolManager() (gas: 83147)
Test result: ok. 1 passed; 0 failed; finished in 15.21ms
Running 1 test for tests/integration/MakePayment.t.sol:MakePaymentTestsPastDomainEnd
[PASS] test_makePayment_lateLoan3_loan1NotPaid_loan2NotPaid() (gas: 1036370)
Test result: ok. 1 passed; 0 failed; finished in 19.70ms
Running 18 tests for tests/integration/DeployPool.t.sol:DeployPoolTests
[PASS] test_deployPool_failIfCalledPMFactoryDirectly() (gas: 31166)
[PASS] test_deployPool_failIfCalledWMFactoryDirectly() (gas: 33519)
[PASS] test_deployPool_failWithAssetNotAllowed() (gas: 314528)
[PASS] test_deployPool_failWithInsufficientPDApproval() (gas: 6155769)
[PASS] test_deployPool_failWithInvalidAsset() (gas: 412345)
[PASS] test_deployPool_failWithInvalidLMFactory() (gas: 5501693)
[PASS] test_deployPool_failWithInvalidManagementFee() (gas: 6154689)
[PASS] test_deployPool_failWithInvalidPD() (gas: 45111)
[PASS] test_deployPool_failWithInvalidPMFactory() (gas: 62922)
[PASS] test_deployPool_failWithInvalidWMFactory() (gas: 67843)
[PASS] test_deployPool_failWithNonZeroSupplyAndZeroMigrationAdmin() (gas: 398031)
[PASS] test_deployPool_failWithOwnedPoolManager() (gas: 6498356)
[PASS] test_deployPool_failWithWindowDurationGtCycleDuration() (gas: 5375406)
[PASS] test_deployPool_failWithZeroAsset() (gas: 273015)
[PASS] test_deployPool_failWithZeroWindowDuration() (gas: 5375469)
[PASS] test_deployPool_success() (gas: 6424066)
[PASS] test_deployPool_successWithInitialSupply() (gas: 6363501)
[PASS] test_deployPool_successWithZeroMigrationAdmin() (gas: 6326031)
Test result: ok. 18 passed; 0 failed; finished in 26.19ms
Running 1 test for tests/e2e/PoolLifecycle.t.sol:PoolLifecycleTest
[PASS] test_poolLifecycle() (gas: 11473749)
Test result: ok. 1 passed; 0 failed; finished in 25.36ms
Running 1 test for tests/integration/BasicInterestAccrual.t.sol:BasicInterestAccrualTest
[PASS] test_basicInterestAccrual() (gas: 2408975)
Test result: ok. 1 passed; 0 failed; finished in 19.43ms
Running 9 tests for tests/integration/Fund.t.sol:FixedTermLoanManagerFundTests
[PASS] test_fund_failIfAmountGreaterThanLockedLiquidity() (gas: 1735672)
[PASS] test_fund_failIfInsufficientCover() (gas: 261795)
[PASS] test_fund_failIfLoanActive() (gas: 960840)
[PASS] test_fund_failIfNotPoolDelegate() (gas: 56239)
[PASS] test_fund_failIfPoolDoesNotApprovePM() (gas: 284362)
[PASS] test_fund_failIfProtocolIsPaused() (gas: 59874)
[PASS] test_fund_failIfTotalSupplyIsZero() (gas: 460194)
[PASS] test_fund_oneLoan() (gas: 856865)
[PASS] test_fund_twoLoans() (gas: 1400668)
Test result: ok. 9 passed; 0 failed; finished in 32.31ms
Running 3 tests for tests/integration/MakePayment.t.sol:MakePaymentTestsSingleLoanAmortized
[PASS] test_makePayment_earlyPayment_amortized() (gas: 791012)
[PASS] test_makePayment_latePayment_amortized() (gas: 804283)
[PASS] test_makePayment_onTimePayment_amortized() (gas: 791040)
Test result: ok. 3 passed; 0 failed; finished in 27.65ms
Running 17 tests for tests/integration/Fund.t.sol:OpenTermLoanManagerFundTests
[PASS] test_fund_insufficientCover() (gas: 378858)
[PASS] test_fund_invalidBorrower() (gas: 102273)
[PASS] test_fund_invalidLoanFactory() (gas: 88338)
[PASS] test_fund_invalidLoanInstance() (gas: 220191)
[PASS] test_fund_invalidLoanManagerFactory() (gas: 138794)
[PASS] test_fund_loanActive() (gas: 744955)
[PASS] test_fund_loanManagerApproveFailure() (gas: 453290)
[PASS] test_fund_loanNotActive() (gas: 692657)
[PASS] test_fund_loanTransferFailure() (gas: 512573)
[PASS] test_fund_lockedLiquidity() (gas: 572376)
[PASS] test_fund_notLender() (gas: 38541)
[PASS] test_fund_notLoanManager() (gas: 378332)
[PASS] test_fund_notPoolDelegate() (gas: 56262)
[PASS] test_fund_poolManagerTransferFailure() (gas: 398853)
[PASS] test_fund_protocolPause() (gas: 52061)
[PASS] test_fund_success() (gas: 651659)
[PASS] test_fund_zeroSupply() (gas: 592480)
Test result: ok. 17 passed; 0 failed; finished in 36.81ms
Running 3 tests for tests/integration/MakePayment.t.sol:MakePaymentTestsSingleLoanInterestOnly
[PASS] test_makePayment_earlyPayment_interestOnly() (gas: 762013)
[PASS] test_makePayment_latePayment_interestOnly() (gas: 772333)
[PASS] test_makePayment_onTimePayment_interestOnly() (gas: 759351)
Test result: ok. 3 passed; 0 failed; finished in 19.42ms
Running 4 tests for tests/integration/MakePayment.t.sol:MakePaymentTestsSingleLoanOpenTerm
[PASS] test_makePayment_OT_latePayment() (gas: 719021)
[PASS] test_makePayment_OT_onTimePayment() (gas: 710731)
[PASS] test_makePayment_OT_withCall() (gas: 682948)
[PASS] test_makePayment_OT_withImpairment() (gas: 763567)
Test result: ok. 4 passed; 0 failed; finished in 21.26ms
Running 3 tests for tests/integration/MakePayment.t.sol:MakePaymentTestsTwoLoans
[PASS] test_makePayment_earlyPayment_interestOnly_onTimePayment_interestOnly() (gas: 1526790)
[PASS] test_makePayment_latePayment_interestOnly_onTimePayment_interestOnly() (gas: 1541357)
[PASS] test_makePayment_onTimePayment_interestOnly_onTimePayment_interestOnly() (gas: 1526818)
Test result: ok. 3 passed; 0 failed; finished in 27.28ms
Running 1 test for tests/fuzz/Deposit.t.sol:DepositFuzzTests
[PASS] testDeepFuzz_deposit_all(address,address,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 100, μ: 447748, ~: 472773)
Test result: ok. 1 passed; 0 failed; finished in 170.69ms
Running 6 tests for tests/integration/DepositAndMint.t.sol:DepositFailureTests
[PASS] test_deposit_insufficientApproval() (gas: 317094)
[PASS] test_deposit_liquidityCapExceeded() (gas: 388301)
[PASS] test_deposit_notActive() (gas: 57722)
[PASS] test_deposit_privatePoolInvalidRecipient() (gas: 345967)
[PASS] test_deposit_privatePoolInvalidRecipient_openPoolToPublic() (gas: 311031)
[PASS] test_deposit_protocolPaused() (gas: 107504)
Test result: ok. 6 passed; 0 failed; finished in 14.48ms
Running 2 tests for tests/e2e/Regression.t.sol:RegressionTest
[PASS] test_ftlRegression() (gas: 35970346)
[PASS] test_otlRegression() (gas: 60907423)
Test result: ok. 2 passed; 0 failed; finished in 289.20ms
Running 1 test for tests/fuzz/Mint.t.sol:MintFuzzTests
[PASS] testDeepFuzz_mint_all(address,address,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 100, μ: 462643, ~: 498675)
Test result: ok. 1 passed; 0 failed; finished in 183.89ms
Running 4 tests for tests/integration/RemoveCall.t.sol:RemoveCallFailureTests
[PASS] test_callPrincipal_notCalled() (gas: 81479)
[PASS] test_callPrincipal_notLender() (gas: 38193)
[PASS] test_callPrincipal_notPoolDelegate() (gas: 51179)
[PASS] test_callPrincipal_paused() (gas: 52014)
Test result: ok. 4 passed; 0 failed; finished in 14.24ms
Running 3 tests for tests/integration/RemoveCall.t.sol:RemoveCallTests
[PASS] test_removeCall_impaired() (gas: 421664)
[PASS] test_removeCall_latePayment() (gas: 153833)
[PASS] test_removeCall_paymentOnTime() (gas: 155467)
Test result: ok. 3 passed; 0 failed; finished in 20.90ms
Running 1 test for tests/e2e/MultiLoanManager.sol:MultiLoanManagerTests
[PASS] test_4loans_3lps() (gas: 7302453)
Test result: ok. 1 passed; 0 failed; finished in 32.61ms
Running 5 tests for tests/integration/RemoveLoanImpairment.t.sol:RemoveLoanImpairmentFailureTests
[PASS] test_removeLoanImpairment_notAuthorized() (gas: 69404)
[PASS] test_removeLoanImpairment_notGovernor() (gas: 265110)
[PASS] test_removeLoanImpairment_notImpaired() (gas: 82722)
[PASS] test_removeLoanImpairment_notLender() (gas: 37797)
[PASS] test_removeLoanImpairment_pastDate() (gas: 348360)
Test result: ok. 5 passed; 0 failed; finished in 17.07ms
Running 3 tests for tests/integration/UnrealizedLosses.t.sol:UnrealizedLossesTests
[PASS] test_unrealizedLosses_depositWithUnrealizedLosses() (gas: 470592)
[PASS] test_unrealizedLosses_redeemWithUnrealizedLosses_fullLiquidity() (gas: 602195)
[PASS] test_unrealizedLosses_redeemWithUnrealizedLosses_partialLiquidity() (gas: 1903209)
Test result: ok. 3 passed; 0 failed; finished in 21.60ms
Running 9 tests for tests/integration/RemoveShares.t.sol:RemoveSharesFailureTests
[PASS] test_removeShares_failIfInsufficientApproval() (gas: 192333)
[PASS] test_removeShares_failIfInvalidShares() (gas: 93525)
[PASS] test_removeShares_failIfInvalidSharesWithZero() (gas: 93489)
[PASS] test_removeShares_failIfNotPool() (gas: 46054)
[PASS] test_removeShares_failIfNotPoolManager() (gas: 19241)
[PASS] test_removeShares_failIfProtocolIsPaused() (gas: 67089)
[PASS] test_removeShares_failIfRemovedTwice() (gas: 171973)
[PASS] test_removeShares_failIfTransferFail() (gas: 157501)
[PASS] test_removeShares_failIfWithdrawalIsPending() (gas: 212306)
Test result: ok. 9 passed; 0 failed; finished in 15.43ms
Running 2 tests for tests/integration/Upgrade.t.sol:GlobalsUpgradeTests
[PASS] test_upgradeGlobals() (gas: 25931)
[PASS] test_upgradeGlobals_notAdmin() (gas: 30346)
Test result: ok. 2 passed; 0 failed; finished in 12.95ms
Running 4 tests for tests/integration/RemoveShares.t.sol:RemoveSharesTests
[PASS] test_removeShares_pastTheRedemptionWindow() (gas: 156911)
[PASS] test_removeShares_sameAddressCallingTwice() (gas: 544381)
[PASS] test_removeShares_success() (gas: 157017)
[PASS] test_removeShares_withApproval() (gas: 174430)
Test result: ok. 4 passed; 0 failed; finished in 15.65ms
Running 7 tests for tests/integration/BootstrapMintAndDeposit.t.sol:BootstrapMintWithPermitTests
[PASS] testFuzz_mintWithPermit_gtBootstrapMintAmount(uint256) (runs: 100, μ: 380013, ~: 380287)
[PASS] testFuzz_mintWithPermit_ltBootstrapMintAmount(uint256) (runs: 100, μ: 242869, ~: 243286)
[PASS] testFuzz_mintWithPermit_secondDepositorGetsCorrectShares(uint256) (runs: 100, μ: 573976, ~: 573302)
[PASS] test_mintWithPermit_exactBootstrapMintAmount() (gas: 353730)
[PASS] test_mintWithPermit_gtBootstrapMintAmount() (gas: 374429)
[PASS] test_mintWithPermit_ltBootstrapMintAmount() (gas: 286105)
[PASS] test_mintWithPermit_secondDepositorGetsCorrectShares() (gas: 568587)
Test result: ok. 7 passed; 0 failed; finished in 407.40ms
Running 6 tests for tests/integration/Upgrade.t.sol:LiquidationUpgradeTests
[PASS] test_upgradeLiquidator_delayNotPassed() (gas: 169380)
[PASS] test_upgradeLiquidator_durationPassed() (gas: 170166)
[PASS] test_upgradeLiquidator_governor_noTimelockNeeded() (gas: 208290)
[PASS] test_upgradeLiquidator_noTimelock() (gas: 177775)
[PASS] test_upgradeLiquidator_timelockExtended() (gas: 300903)
[PASS] test_upgradeLiquidator_timelockShortened() (gas: 301751)
Test result: ok. 6 passed; 0 failed; finished in 19.02ms
Running 4 tests for tests/integration/SetMinRatioAndSlippage.t.sol:SetMinRatioTests
[PASS] test_setMinRatio_notAuthorized() (gas: 57357)
[PASS] test_setMinRatio_notPoolManager() (gas: 57357)
[PASS] test_setMinRatio_withGovernor() (gas: 85497)
[PASS] test_setMinRatio_withPoolDelegate() (gas: 79675)
Test result: ok. 4 passed; 0 failed; finished in 12.99ms
Running 6 tests for tests/integration/Upgrade.t.sol:LoanManagerUpgradeTests
[PASS] test_upgradeLoanManager_delayNotPassed() (gas: 168576)
[PASS] test_upgradeLoanManager_durationPassed() (gas: 169382)
[PASS] test_upgradeLoanManager_governor_noTimelockNeeded() (gas: 195561)
[PASS] test_upgradeLoanManager_noTimelock() (gas: 177017)
[PASS] test_upgradeLoanManager_timelockExtended() (gas: 294954)
[PASS] test_upgradeLoanManager_timelockShortened() (gas: 295735)
Test result: ok. 6 passed; 0 failed; finished in 18.43ms
Running 5 tests for tests/integration/SetMinRatioAndSlippage.t.sol:SetSlippageTests
[PASS] test_setAllowedSlippage_invalidSlippage() (gas: 131128)
[PASS] test_setAllowedSlippage_notAuthorized() (gas: 57292)
[PASS] test_setAllowedSlippage_notPoolManager() (gas: 57358)
[PASS] test_setAllowedSlippage_withGovernor() (gas: 85480)
[PASS] test_setAllowedSlippage_withPoolDelegate() (gas: 79615)
Test result: ok. 5 passed; 0 failed; finished in 13.41ms
Running 6 tests for tests/integration/Upgrade.t.sol:PoolManagerUpgradeTests
[PASS] test_upgradePoolManager_delayNotPassed() (gas: 146996)
[PASS] test_upgradePoolManager_durationPassed() (gas: 147869)
[PASS] test_upgradePoolManager_governor_noTimelockNeeded() (gas: 174025)
[PASS] test_upgradePoolManager_noTimelock() (gas: 155457)
[PASS] test_upgradePoolManager_timelockExtended() (gas: 251991)
[PASS] test_upgradePoolManager_timelockShortened() (gas: 252750)
Test result: ok. 6 passed; 0 failed; finished in 17.61ms
Running 10 tests for tests/integration/Transfer.t.sol:TransferTests
[PASS] test_transferFrom_privatePoolInvalidLender() (gas: 366211)
[PASS] test_transferFrom_privatePoolInvalidLender_openPoolToPublic() (gas: 345220)
[PASS] test_transferFrom_protocolPaused() (gas: 310397)
[PASS] test_transferFrom_publicPool() (gas: 293991)
[PASS] test_transferFrom_publicPool_insufficientApproval() (gas: 296464)
[PASS] test_transferFrom_publicPool_noApproval() (gas: 271368)
[PASS] test_transfer_privatePoolInvalidLender() (gas: 351825)
[PASS] test_transfer_privatePoolInvalidLender_openPoolToPublic() (gas: 330879)
[PASS] test_transfer_protocolPaused() (gas: 282303)
[PASS] test_transfer_publicPool() (gas: 279820)
Test result: ok. 10 passed; 0 failed; finished in 21.23ms
Running 1 test for tests/integration/Upgrade.t.sol:UnscheduleCallTests
[PASS] test_unscheduleCall_governor() (gas: 89456)
Test result: ok. 1 passed; 0 failed; finished in 14.21ms
Running 7 tests for tests/integration/TransferPoolOwnership.t.sol:TransferPoolOwnershipTests
[PASS] test_acceptPoolDelegate() (gas: 111052)
[PASS] test_acceptPoolDelegate_notPendingPoolDelegate() (gas: 117564)
[PASS] test_setPendingPoolDelegate() (gas: 68174)
[PASS] test_setPendingPoolDelegate_notPD() (gas: 99288)
[PASS] test_transferOwnedPoolManager_alreadyPoolDelegate() (gas: 151722)
[PASS] test_transferOwnedPoolManager_notPoolManager() (gas: 117633)
[PASS] test_transferOwnedPoolManager_notValidPoolDelegate() (gas: 126708)
Test result: ok. 7 passed; 0 failed; finished in 14.44ms
Running 6 tests for tests/integration/Upgrade.t.sol:WithdrawalManagerUpgradeTests
[PASS] test_upgradeWithdrawalManager_delayNotPassed() (gas: 147881)
[PASS] test_upgradeWithdrawalManager_durationPassed() (gas: 148621)
[PASS] test_upgradeWithdrawalManager_governor_noTimelockNeeded() (gas: 178450)
[PASS] test_upgradeWithdrawalManager_noTimelock() (gas: 156234)
[PASS] test_upgradeWithdrawalManager_timelockExtended() (gas: 257793)
[PASS] test_upgradeWithdrawalManager_timelockShortened() (gas: 258640)
Test result: ok. 6 passed; 0 failed; finished in 15.14ms
Running 1 test for tests/integration/ValidCollateral.t.sol:ValidCollateralTests
[PASS] test_setIsCollateral_invalidCollateral() (gas: 829206)
Test result: ok. 1 passed; 0 failed; finished in 13.24ms
Running 10 tests for tests/integration/TriggerDefault.t.sol:OpenTermLoanTriggerDefaultFailureTests
[PASS] test_triggerDefault_invalidLoanManager() (gas: 4866080)
[PASS] test_triggerDefault_notAuthorized() (gas: 53786)
[PASS] test_triggerDefault_notFactory() (gas: 54889)
[PASS] test_triggerDefault_notInDefault_boundary() (gas: 604391)
[PASS] test_triggerDefault_notLoan() (gas: 94125)
[PASS] test_triggerDefault_notPM() (gas: 443450)
[PASS] test_triggerDefault_protocolPaused_loanManager() (gas: 55221)
[PASS] test_triggerDefault_protocolPaused_poolManager() (gas: 54657)
[PASS] test_triggerDefault_repossess_notLender() (gas: 40765)
[PASS] test_triggerDefault_treasuryZeroAddress() (gas: 562196)
Test result: ok. 10 passed; 0 failed; finished in 24.53ms
Running 3 tests for tests/integration/Withdraw.t.sol:RequestWithdrawFailureTests
[PASS] test_requestWithdraw_failIfInsufficientApproval() (gas: 269773)
[PASS] test_requestWithdraw_failIfNotPM() (gas: 18940)
[PASS] test_requestWithdraw_failIfNotPool() (gas: 46216)
Test result: ok. 3 passed; 0 failed; finished in 20.22ms
Running 4 tests for tests/integration/DepositAndMint.t.sol:DepositTest
[PASS] testDeepFuzz_deposit_singleUser(uint256) (runs: 100, μ: 286075, ~: 285987)
[PASS] testDeepFuzz_deposit_variableExchangeRate(uint256,uint256) (runs: 100, μ: 1547384, ~: 1553230)
[PASS] test_deposit_singleUser_oneToOne() (gas: 281109)
[PASS] test_deposit_twoUsers_oneToOne() (gas: 400197)
Test result: ok. 4 passed; 0 failed; finished in 295.79ms
Running 8 tests for tests/integration/TriggerDefault.t.sol:OpenTermLoanTriggerDefaultTests
[PASS] test_triggerDefault_called() (gas: 622565)
[PASS] test_triggerDefault_feesAndFullRecovery() (gas: 327367)
[PASS] test_triggerDefault_feesAndPartialRecovery() (gas: 316946)
[PASS] test_triggerDefault_impaired() (gas: 641749)
[PASS] test_triggerDefault_impaired_feesAndFullRecovery() (gas: 364520)
[PASS] test_triggerDefault_impaired_onlyFeesRecovered() (gas: 345414)
[PASS] test_triggerDefault_latePayment() (gas: 521797)
[PASS] test_triggerDefault_onlyFeesRecovered() (gas: 303560)
Test result: ok. 8 passed; 0 failed; finished in 28.54ms
Running 3 tests for tests/integration/TriggerDefault.t.sol:TriggerDefaultFailureTests
[PASS] test_triggerDefault_notAuthorized() (gas: 53830)
[PASS] test_triggerDefault_notFactory() (gas: 54867)
[PASS] test_triggerDefault_notPoolManager() (gas: 57065)
Test result: ok. 3 passed; 0 failed; finished in 14.66ms
Running 6 tests for tests/integration/DepositAndMint.t.sol:DepositWithPermitFailureTests
[PASS] test_depositWithPermit_invalidSignature() (gas: 481691)
[PASS] test_depositWithPermit_liquidityCapExceeded() (gas: 453801)
[PASS] test_depositWithPermit_notActive() (gas: 98986)
[PASS] test_depositWithPermit_privatePoolInvalidRecipient() (gas: 393762)
[PASS] test_depositWithPermit_privatePoolInvalidRecipient_openPoolToPublic() (gas: 358846)
[PASS] test_depositWithPermit_protocolPaused() (gas: 144047)
Test result: ok. 6 passed; 0 failed; finished in 17.54ms
Running 4 tests for tests/integration/CallPrincipal.t.sol:CallPrincipalTests
[PASS] test_callPrincipal_impaired() (gas: 448895)
[PASS] test_callPrincipal_latePayment() (gas: 183187)
[PASS] test_callPrincipal_notFullPrincipal() (gas: 183021)
[PASS] test_callPrincipal_paymentOnTime() (gas: 182726)
Test result: ok. 4 passed; 0 failed; finished in 16.82ms
Running 5 tests for tests/integration/CloseLoan.t.sol:CloseLoanTests
[PASS] test_closeLoan_failIfLoanIsLate() (gas: 112861)
[PASS] test_closeLoan_failIfNotEnoughFundsSent() (gas: 214370)
[PASS] test_closeLoan_failIfNotLoan() (gas: 66869)
[PASS] test_closeLoan_failWithInsufficientApproval() (gas: 123833)
[PASS] test_closeLoan_success() (gas: 490220)
Test result: ok. 5 passed; 0 failed; finished in 33.07ms
Running 3 tests for tests/integration/Withdraw.t.sol:RequestWithdrawTests
[PASS] testDeepFuzz_requestWithdraw(uint256,uint256) (runs: 100, μ: 355448, ~: 356824)
[PASS] test_requestWithdraw() (gas: 327261)
[PASS] test_requestWithdraw_withApproval() (gas: 342141)
Test result: ok. 3 passed; 0 failed; finished in 85.30ms
Running 4 tests for tests/integration/Withdraw.t.sol:WithdrawFailureTests
[PASS] testDeepFuzz_withdraw(uint256,address,address) (runs: 100, μ: 63428, ~: 63428)
[PASS] test_withdraw_failIfNotPool() (gas: 46711)
[PASS] test_withdraw_failIfNotPoolManager() (gas: 19435)
[PASS] test_withdraw_zeroAssetInput() (gas: 65063)
Test result: ok. 4 passed; 0 failed; finished in 39.85ms
Running 2 tests for tests/integration/DepositAndMint.t.sol:DepositWithPermitTests
[PASS] testDeepFuzz_depositWithPermit_singleUser(uint256) (runs: 100, μ: 331726, ~: 331666)
[PASS] test_depositWithPermit_singleUser() (gas: 326658)
Test result: ok. 2 passed; 0 failed; finished in 101.16ms
Running 6 tests for tests/integration/DepositAndMint.t.sol:MintFailureTests
[PASS] test_mint_insufficientApproval() (gas: 320766)
[PASS] test_mint_liquidityCapExceeded() (gas: 432328)
[PASS] test_mint_notActive() (gas: 102614)
[PASS] test_mint_privatePoolInvalidRecipient() (gas: 355260)
[PASS] test_mint_privatePoolInvalidRecipient_openPoolToPublic() (gas: 320411)
[PASS] test_mint_protocolPaused() (gas: 144539)
Test result: ok. 6 passed; 0 failed; finished in 15.33ms
Running 1 test for tests/fuzz/Withdraw.t.sol:WithdrawFuzzTests
[PASS] testDeepFuzz_withdraw_all(address,address,address,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 100, μ: 382486, ~: 375730)
Test result: ok. 1 passed; 0 failed; finished in 117.73ms
Running 1 test for tests/integration/Withdraw.t.sol:WithdrawOnPermissionedPool
[PASS] test_withdraw_withUnwhitelistedUser() (gas: 495499)
Test result: ok. 1 passed; 0 failed; finished in 13.41ms
Running 3 tests for tests/integration/Withdraw.t.sol:WithdrawScenarios
[PASS] test_withdrawals_cashInjection() (gas: 4916241)
[PASS] test_withdrawals_poorExchangeRates() (gas: 4604105)
[PASS] test_withdrawals_withUpdateAccounting() (gas: 4577739)
Test result: ok. 3 passed; 0 failed; finished in 46.22ms
Running 7 tests for tests/e2e/WithdrawManagerScenario.t.sol:WithdrawalManagerScenarioTests
[PASS] test_scenario_fundPayAndRefinanceLoanWithPartialRedemptions_removeSharesAndCloseLoan() (gas: 3683193)
[PASS] test_scenario_impairLoanAndRedeem_defaultLoanAndWithdraw() (gas: 2556269)
[PASS] test_scenario_impairLoanAndRedeem_removeImpairAndRedeem() (gas: 2761178)
[PASS] test_scenario_impairLoanAndRedeem_removeSharesRepayLoanAndRedeem() (gas: 2553446)
[PASS] test_scenario_impairLoanAndRedeem_repayLoanAndWithdraw() (gas: 2653068)
[PASS] test_scenario_impairLoanAndRedeem_startLiquidationAndRedeem_finishLiquidationAndRedeem() (gas: 3965349)
[PASS] test_scenario_multipleUsers_impairLoanAndRedeem_repayLoanAndRedeem() (gas: 21120904)
Test result: ok. 7 passed; 0 failed; finished in 123.41ms
Running 4 tests for tests/integration/DepositAndMint.t.sol:MintTest
[PASS] testDeepFuzz_mint_singleUser(uint256) (runs: 100, μ: 289519, ~: 289475)
[PASS] testDeepFuzz_mint_variableExchangeRate(uint256,uint256) (runs: 100, μ: 1588218, ~: 1587868)
[PASS] test_mint_singleUser_oneToOne() (gas: 284553)
[PASS] test_mint_twoUsers_oneToOne() (gas: 429133)
Test result: ok. 4 passed; 0 failed; finished in 305.71ms
Running 2 tests for tests/integration/ImpairLoan.t.sol:FixedTermLoanManagerImpairSuccessTests
[PASS] test_impairLoan_thenCancel() (gas: 910562)
[PASS] test_impairLoan_thenRepay() (gas: 920517)
Test result: ok. 2 passed; 0 failed; finished in 24.45ms
Running 6 tests for tests/integration/DepositAndMint.t.sol:MintWithPermitFailureTests
[PASS] test_mintWithPermit_insufficientPermit() (gas: 484269)
[PASS] test_mintWithPermit_liquidityCapExceeded() (gas: 499104)
[PASS] test_mintWithPermit_notActive() (gas: 107063)
[PASS] test_mintWithPermit_privatePoolInvalidRecipient() (gas: 403843)
[PASS] test_mintWithPermit_privatePoolInvalidRecipient_openPoolToPublic() (gas: 368950)
[PASS] test_mintWithPermit_protocolPaused() (gas: 148177)
Test result: ok. 6 passed; 0 failed; finished in 21.97ms
Running 9 tests for tests/integration/ImpairLoan.t.sol:OpenTermLoanManagerImpairTests
[PASS] testFail_impairLoan_notLoanContract() (gas: 40511)
[PASS] test_impairLoan_early() (gas: 240676)
[PASS] test_impairLoan_governorAcl() (gas: 127168)
[PASS] test_impairLoan_late() (gas: 242167)
[PASS] test_impairLoan_loanInactive() (gas: 230471)
[PASS] test_impairLoan_notAuthorized() (gas: 59339)
[PASS] test_impairLoan_notLender() (gas: 38282)
[PASS] test_impairLoan_notLoanInLoanManager() (gas: 481101)
[PASS] test_impairLoan_protocolPaused() (gas: 52060)
Test result: ok. 9 passed; 0 failed; finished in 24.91ms
Running 9 tests for tests/integration/ImpairLoan.t.sol:OpenTermLoanManagerRemoveImpairmentTests
[PASS] test_removeLoanImpairment_early() (gas: 257880)
[PASS] test_removeLoanImpairment_late() (gas: 258929)
[PASS] test_removeLoanImpairment_late_withLateImpairment() (gas: 259115)
[PASS] test_removeLoanImpairment_notAuthorized() (gas: 72600)
[PASS] test_removeLoanImpairment_notImpaired() (gas: 93587)
[PASS] test_removeLoanImpairment_notLender() (gas: 38326)
[PASS] test_removeLoanImpairment_notLoan() (gas: 41091)
[PASS] test_removeLoanImpairment_poolDelegateAfterGovernor() (gas: 153256)
[PASS] test_removeLoanImpairment_protocolPaused() (gas: 52060)
Test result: ok. 9 passed; 0 failed; finished in 17.64ms
Running 2 tests for tests/integration/DepositAndMint.t.sol:MintWithPermitTests
[PASS] testDeepFuzz_mintWithPermit_singleUser(uint256) (runs: 100, μ: 332126, ~: 332118)
[PASS] test_mintWithPermit_singleUser() (gas: 330709)
Test result: ok. 2 passed; 0 failed; finished in 115.25ms
Running 8 tests for tests/integration/GetExpectedAmount.t.sol:GetExpectedAmountTests
[PASS] test_getExpectedAmount_currentPrice() (gas: 114828)
[PASS] test_getExpectedAmount_manualOverride() (gas: 90915)
[PASS] test_getExpectedAmount_oracleNotSet() (gas: 57950)
[PASS] test_getExpectedAmount_withMinRatio() (gas: 164219)
[PASS] test_getExpectedAmount_withSlippage() (gas: 164182)
[PASS] test_getExpectedAmount_withSlippageAndMinRatio_minRatioHigher() (gas: 198298)
[PASS] test_getExpectedAmount_withSlippageAndMinRatio_slippageHigher() (gas: 198244)
[PASS] test_getExpectedAmount_zeroAmount() (gas: 114878)
Test result: ok. 8 passed; 0 failed; finished in 1.98s
Running 3 tests for tests/integration/GetLatestPrice.t.sol:GetLatestPriceTests
[PASS] test_getLatestPrice_currentPrice() (gas: 74324)
[PASS] test_getLatestPrice_manualOverride() (gas: 48309)
[PASS] test_getLatestPrice_unknownAsset() (gas: 21528)
Test result: ok. 3 passed; 0 failed; finished in 14.92ms
Running 1 test for tests/protocol-upgrade/GlobalsMigration.t.sol:GlobalsMigration
[PASS] test_globals_upgrade() (gas: 1063954)
Test result: ok. 1 passed; 0 failed; finished in 227.12ms
Running 1 test for tests/protocol-upgrade/FTLoanV4ToV5.t.sol:FTLoansFromV4ToV5
[PASS] test_mainnet_upgradeLoansV4ToV5() (gas: 2228289)
Test result: ok. 1 passed; 0 failed; finished in 1.27s
Running 3 tests for tests/integration/FetchValuesFromLM.t.sol:LoanManagerIsLiquidationActiveGetterTests
[PASS] test_isLiquidationActive_afterLiquidation() (gas: 1104474)
[PASS] test_isLiquidationActive_beforeLiquidation() (gas: 15920)
[PASS] test_isLiquidationActive_duringLiquidation() (gas: 628253)
Test result: ok. 3 passed; 0 failed; finished in 16.03ms
Running 4 tests for tests/integration/FetchValuesFromPM.t.sol:PoolManagerGetterTests
[PASS] testDeepFuzz_getEscrowParams_shouldReturnValues(uint256) (runs: 100, μ: 22691, ~: 22156)
[PASS] test_addressGetters() (gas: 37876)
[PASS] test_hasSufficientCover_insufficientCover(uint256) (runs: 100, μ: 141208, ~: 141922)
[PASS] test_hasSufficientCover_sufficientCover(uint256) (runs: 100, μ: 153687, ~: 153759)
Test result: ok. 4 passed; 0 failed; finished in 85.58ms
Running 2 tests for tests/integration/ImpairLoan.t.sol:FixedTermLoanManagerImpairAndRefinanceTests
[PASS] test_impairLoan_earlyThenRefinance() (gas: 1224262)
[PASS] test_impairLoan_lateThenRefinance() (gas: 987440)
Test result: ok. 2 passed; 0 failed; finished in 23.94ms
Running 4 tests for tests/integration/ImpairLoan.t.sol:FixedTermLoanManagerImpairFailureTests
[PASS] test_impairLoan_alreadyImpaired() (gas: 252528)
[PASS] test_impairLoan_notAuthorized() (gas: 57063)
[PASS] test_impairLoan_notLender() (gas: 37816)
[PASS] test_impairLoan_protocolPaused() (gas: 52038)
Test result: ok. 4 passed; 0 failed; finished in 20.28ms
Running 12 tests for tests/integration/Liquidation.t.sol:LoanLiquidationTests
[PASS] test_loanDefault_fullCover_noCollateral_noImpairment() (gas: 1525975)
[PASS] test_loanDefault_fullCover_noCollateral_withImpairment() (gas: 1614056)
[PASS] test_loanDefault_fullCover_withCollateral_noImpairment() (gas: 2546886)
[PASS] test_loanDefault_fullCover_withCollateral_withImpairment() (gas: 2579238)
[PASS] test_loanDefault_noCover_noCollateral_noImpairment() (gas: 1427540)
[PASS] test_loanDefault_noCover_noCollateral_withImpairment() (gas: 1519800)
[PASS] test_loanDefault_noCover_withCollateral_noImpairment() (gas: 2462353)
[PASS] test_loanDefault_noCover_withCollateral_withImpairment() (gas: 2496803)
[PASS] test_loanDefault_partialCover_noCollateral_noImpairment() (gas: 1525608)
[PASS] test_loanDefault_partialCover_noCollateral_withImpairment() (gas: 1614054)
[PASS] test_loanDefault_partialCover_withCollateral_noImpairment() (gas: 2546457)
[PASS] test_loanDefault_partialCover_withCollateral_withImpairment() (gas: 2579237)
Test result: ok. 12 passed; 0 failed; finished in 54.20ms
Running 5 tests for tests/integration/LoanManagerGetters.t.sol:LoanManagerGetterTests
[PASS] test_loanManagerGetters_addresses() (gas: 21380)
[PASS] test_loanManagerGetters_liquidationInformation() (gas: 1151936)
[PASS] test_loanManagerGetters_paymentInformation() (gas: 29877)
[PASS] test_loanManagerGetters_sortedPayments() (gas: 1317035)
[PASS] test_loanManagerGetters_uints() (gas: 32847)
Test result: ok. 5 passed; 0 failed; finished in 17.91ms
Running 3 tests for tests/integration/MakePayment.t.sol:MakePaymentFailureTests
[PASS] test_makePayment_failIfNotLoan() (gas: 69767)
[PASS] test_makePayment_failWithTransferFailed() (gas: 234851)
[PASS] test_makePayment_failWithTransferFromFailed() (gas: 143646)
Test result: ok. 3 passed; 0 failed; finished in 15.09ms
Running 9 tests for tests/integration/MakePayment.t.sol:MakePaymentOpenTermFailureTests
[PASS] test_makePayment_inactiveLoan() (gas: 477855)
[PASS] test_makePayment_invalidPrincipalIncrease() (gas: 55540)
[PASS] test_makePayment_notLoan() (gas: 520964)
[PASS] test_makePayment_tooLittlePrincipal() (gas: 139006)
[PASS] test_makePayment_tooMuchPrincipal() (gas: 43991)
[PASS] test_makePayment_transferFailed() (gas: 84745)
[PASS] test_makePayment_transferToPoolBoundary() (gas: 261561)
[PASS] test_makePayment_transferToPoolDelegateBoundary() (gas: 309994)
[PASS] test_makePayment_transferToTreasuryBoundary() (gas: 396694)
Test result: ok. 9 passed; 0 failed; finished in 17.19ms
Running 2 tests for tests/fuzz/OpenTermFuzz.t.sol:OpenTermLoanFuzz
[PASS] testFuzz_otlFuzzedSetup_makePayment(uint256) (runs: 100, μ: 9983533, ~: 10025330)
[PASS] testFuzz_otlFuzzedSetup_triggerDefault(uint256) (runs: 100, μ: 9943922, ~: 10002018)
Test result: ok. 2 passed; 0 failed; finished in 4.13s
Running 2 tests for tests/fuzz/Call.t.sol:OpenTermLoanFuzz
[PASS] testFuzz_call_otl(uint256) (runs: 100, μ: 11243289, ~: 11268937)
[PASS] testFuzz_removeCall_otl(uint256) (runs: 100, μ: 10751933, ~: 10827403)
Test result: ok. 2 passed; 0 failed; finished in 4.09s
Running 5 tests for tests/integration/CallPrincipal.t.sol:CallPrincipalFailureTests
[PASS] test_callPrincipal_invalidAmount_boundary() (gas: 516067)
[PASS] test_callPrincipal_loanActive() (gas: 56539)
[PASS] test_callPrincipal_notLender() (gas: 38696)
[PASS] test_callPrincipal_notPoolDelegate() (gas: 51519)
[PASS] test_callPrincipal_paused() (gas: 52377)
Test result: ok. 5 passed; 0 failed; finished in 16.83ms
Running 5 tests for tests/integration/PoolAccountingViewFunctions.t.sol:MaxMintTests
[PASS] testDeepFuzz_maxMint_exchangeRateGtOne(uint256,uint256,uint256) (runs: 100, μ: 382872, ~: 382779)
[PASS] testDeepFuzz_maxMint_totalAssetsIncrease(uint256,uint256) (runs: 100, μ: 226175, ~: 226193)
[PASS] test_maxMint_closedPool() (gas: 233747)
[PASS] test_maxMint_exchangeRateGtOne() (gas: 370959)
[PASS] test_maxMint_totalAssetsIncrease() (gas: 218922)
Test result: ok. 5 passed; 0 failed; finished in 123.36ms
Running 3 tests for tests/integration/PoolAccountingViewFunctions.t.sol:MaxRedeemTests
[PASS] test_maxRedeem_lockedShares_inExitWindow() (gas: 430483)
[PASS] test_maxRedeem_lockedShares_notInExitWindow() (gas: 419448)
[PASS] test_maxRedeem_noLockedShares_notInExitWindow() (gas: 261862)
Test result: ok. 3 passed; 0 failed; finished in 18.31ms
Running 4 tests for tests/integration/PoolAccountingViewFunctions.t.sol:MaxWithdrawTests
[PASS] testDeepFuzz_maxWithdraw_lockedShares_inExitWindow(uint256) (runs: 100, μ: 421631, ~: 421026)
[PASS] test_maxWithdraw_lockedShares_inExitWindow() (gas: 416311)
[PASS] test_maxWithdraw_lockedShares_notInExitWindow() (gas: 412483)
[PASS] test_maxWithdraw_noLockedShares_notInExitWindow() (gas: 255058)
Test result: ok. 4 passed; 0 failed; finished in 75.74ms
Running 4 tests for tests/integration/PoolAccountingViewFunctions.t.sol:PreviewDepositTests
[PASS] test_previewDeposit_multipleUsers() (gas: 459108)
[PASS] test_previewDeposit_multipleUsers_changeTotalAssets() (gas: 482792)
[PASS] test_previewDeposit_nonZeroTotalSupply() (gas: 271995)
[PASS] test_previewDeposit_zeroTotalSupply() (gas: 12511)
Test result: ok. 4 passed; 0 failed; finished in 15.34ms
Running 4 tests for tests/integration/PoolAccountingViewFunctions.t.sol:PreviewMintTests
[PASS] test_previewMint_multipleUsers() (gas: 460057)
[PASS] test_previewMint_multipleUsers_changeTotalAssets() (gas: 483760)
[PASS] test_previewMint_nonZeroTotalSupply() (gas: 273069)
[PASS] test_previewMint_zeroTotalSupply() (gas: 12363)
Test result: ok. 4 passed; 0 failed; finished in 19.17ms
Running 4 tests for tests/integration/PoolAccountingViewFunctions.t.sol:PreviewRedeemTests
[PASS] test_previewRedeem_invalidShares() (gas: 405036)
[PASS] test_previewRedeem_lockedShares_inExitWindow() (gas: 439269)
[PASS] test_previewRedeem_lockedShares_notInExitWindow() (gas: 409423)
[PASS] test_previewRedeem_noLockedShares_notInExitWindow() (gas: 37023)
Test result: ok. 4 passed; 0 failed; finished in 16.16ms
Running 6 tests for tests/integration/PoolAccountingViewFunctions.t.sol:PreviewWithdrawTests
[PASS] testDeepFuzz_previewWithdraw(uint256) (runs: 100, μ: 35062, ~: 35062)
[PASS] testDeepFuzz_previewWithdraw_lockedShares_inExitWindow(uint256) (runs: 100, μ: 411690, ~: 411331)
[PASS] testDeepFuzz_previewWithdraw_lockedShares_notInExitWindow(uint256) (runs: 100, μ: 411706, ~: 411158)
[PASS] test_previewWithdraw() (gas: 250010)
[PASS] test_previewWithdraw_zeroAssetsWithDeposit() (gas: 250010)
[PASS] test_previewWithdraw_zeroAssetsWithoutDeposit() (gas: 34931)
Test result: ok. 6 passed; 0 failed; finished in 130.98ms
Running 2 tests for tests/fuzz/Impair.t.sol:OpenTermLoanFuzz
[PASS] testFuzz_impair_otl(uint256) (runs: 100, μ: 11338100, ~: 11272555)
[PASS] testFuzz_removeImpairment_otl(uint256) (runs: 100, μ: 10757460, ~: 10757565)
Test result: ok. 2 passed; 0 failed; finished in 2.49s
Running 7 tests for tests/integration/BootstrapMintAndDeposit.t.sol:BootstrapDepositWithPermitTests
[PASS] testFuzz_depositWithPermit_gtBootstrapMintAmount(uint256) (runs: 100, μ: 375983, ~: 376238)
[PASS] testFuzz_depositWithPermit_ltBootstrapMintAmount(uint256) (runs: 100, μ: 240465, ~: 240370)
[PASS] testFuzz_depositWithPermit_secondDepositorGetsCorrectShares(uint256) (runs: 100, μ: 544231, ~: 543618)
[PASS] test_depositWithPermit_exactBootstrapMintAmount() (gas: 349790)
[PASS] test_depositWithPermit_gtBootstrapMintAmount() (gas: 370467)
[PASS] test_depositWithPermit_ltBootstrapMintAmount() (gas: 283584)
[PASS] test_depositWithPermit_secondDepositorGetsCorrectShares() (gas: 538927)
Test result: ok. 7 passed; 0 failed; finished in 386.06ms
Running 1 test for tests/fuzz/Redeem.t.sol:RedeemFuzzTests
[PASS] testDeepFuzz_redeem_all(address[3],uint256[8]) (runs: 100, μ: 879250, ~: 904449)
Test result: ok. 1 passed; 0 failed; finished in 156.66ms
Running 3 tests for tests/integration/Redeem.t.sol:RedeemIntegrationTests
[PASS] test_redeem_oneLPWithImpairedLoan() (gas: 1834085)
[PASS] test_redeem_twoLPSWithImpairedLoanAndTriggerDefault() (gas: 1981496)
[PASS] test_redeem_twoLPsWithImpairedLoan() (gas: 2149639)
Test result: ok. 3 passed; 0 failed; finished in 31.34ms
Running 3 tests for tests/invariants/OpenTermInvariants.t.sol:OpenTermInvariants
[PASS] invariant_openTermLoanManager_E() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_openTermLoanManager_G() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_openTermLoan_A_B_C_D_E_F_G_H_I_openTermLoanManager_A_B_C_D_F_H_I_J() (runs: 10, calls: 1000, reverts: 0)
Test result: ok. 3 passed; 0 failed; finished in 949.92ms
Running 6 tests for tests/integration/Redeem.t.sol:RedeemTests
[PASS] testDeepFuzz_redeem_singleUser_fullLiquidity_oneToOne(uint256,uint256) (runs: 100, μ: 534904, ~: 532994)
[PASS] test_redeem_singleUser_fullLiquidity_fullRedeem() (gas: 545320)
[PASS] test_redeem_singleUser_fullLiquidity_oneToOne() (gas: 541745)
[PASS] test_redeem_singleUser_noLiquidity() (gas: 1812136)
[PASS] test_redeem_singleUser_noLiquidity_notOwner() (gas: 1873553)
[PASS] test_redeem_singleUser_withApprovals() (gas: 603628)
Test result: ok. 6 passed; 0 failed; finished in 119.13ms
Running 7 tests for tests/integration/BootstrapMintAndDeposit.t.sol:BootstrapMintTests
[PASS] testFuzz_mint_gtBootstrapMintAmount(uint256) (runs: 100, μ: 333890, ~: 334130)
[PASS] testFuzz_mint_ltBootstrapMintAmount(uint256) (runs: 100, μ: 244574, ~: 245067)
[PASS] testFuzz_mint_secondDepositorGetsCorrectShares(uint256) (runs: 100, μ: 485784, ~: 485192)
[PASS] test_mint_exactBootstrapMintAmount() (gas: 307688)
[PASS] test_mint_gtBootstrapMintAmount() (gas: 328343)
[PASS] test_mint_ltBootstrapMintAmount() (gas: 239406)
[PASS] test_mint_secondDepositorGetsCorrectShares() (gas: 480477)
Test result: ok. 7 passed; 0 failed; finished in 223.38ms
Running 4 tests for tests/integration/Redeem.t.sol:RequestRedeemFailureTests
[PASS] test_requestRedeem_failIfAlreadyLockedShares() (gas: 314017)
[PASS] test_requestRedeem_failIfInsufficientApproval() (gas: 133372)
[PASS] test_requestRedeem_failIfNotPM() (gas: 18940)
[PASS] test_requestRedeem_failIfNotPool() (gas: 46284)
Test result: ok. 4 passed; 0 failed; finished in 13.69ms
Running 6 tests for tests/integration/Redeem.t.sol:RequestRedeemTests
[PASS] testDeepFuzz_requestRedeem(uint256,uint256) (runs: 100, μ: 453541, ~: 454646)
[PASS] test_requestRedeem() (gas: 423648)
[PASS] test_requestRedeem_refresh() (gas: 507405)
[PASS] test_requestRedeem_refresh_notOwnerAndNoApproval() (gas: 467284)
[PASS] test_requestRedeem_refresh_notOwnerWithApproval() (gas: 540348)
[PASS] test_requestRedeem_withApproval() (gas: 450797)
Test result: ok. 6 passed; 0 failed; finished in 92.28ms
Running 13 tests for tests/integration/Refinance.t.sol:AcceptNewTermsFailureTests
[PASS] testFail_acceptNewTerms_failIfNotValidLoanManager() (gas: 79196)
[PASS] test_acceptNewTerms_failIfDeadlineExpired() (gas: 216706)
[PASS] test_acceptNewTerms_failIfInsufficientCover() (gas: 269153)
[PASS] test_acceptNewTerms_failIfLockedLiquidity() (gas: 496176)
[PASS] test_acceptNewTerms_failIfNotLender() (gas: 41895)
[PASS] test_acceptNewTerms_failIfNotPoolDelegate() (gas: 60269)
[PASS] test_acceptNewTerms_failIfProtocolIsPaused() (gas: 63925)
[PASS] test_acceptNewTerms_failIfRefinanceCallFails() (gas: 343340)
[PASS] test_acceptNewTerms_failIfRefinanceMismatch() (gas: 158962)
[PASS] test_acceptNewTerms_failWithFailedTransfer() (gas: 287073)
[PASS] test_acceptNewTerms_failWithInsufficientCollateral() (gas: 616584)
[PASS] test_acceptNewTerms_failWithInvalidRefinancer() (gas: 243370)
[PASS] test_acceptNewTerms_failWithUnexpectedFunds() (gas: 607582)
Test result: ok. 13 passed; 0 failed; finished in 27.86ms
Running 3 tests for tests/integration/Refinance.t.sol:RefinanceOpenTermLoan
[PASS] test_refinance_calledLoan_withoutPrincipalChange() (gas: 791863)
[PASS] test_refinance_early_increasePrincipal() (gas: 791387)
[PASS] test_refinance_late_decreasePrincipal() (gas: 704712)
Test result: ok. 3 passed; 0 failed; finished in 21.91ms
Running 5 tests for tests/integration/Refinance.t.sol:RefinanceTestsSingleLoan
[PASS] test_refinance_onLateLoan_changePaymentInterval() (gas: 1149966)
[PASS] test_refinance_onLoanPaymentDueDate_changeInterestRate() (gas: 1140682)
[PASS] test_refinance_onLoanPaymentDueDate_changePaymentInterval() (gas: 1140598)
[PASS] test_refinance_onLoanPaymentDueDate_changeToAmortized() (gas: 1143391)
[PASS] test_refinance_onLoanPaymentDueDate_increasePrincipal() (gas: 1201983)
Test result: ok. 5 passed; 0 failed; finished in 29.09ms
Running 7 tests for tests/integration/BootstrapMintAndDeposit.t.sol:BootstrapDepositTests
[PASS] testFuzz_deposit_gtBootstrapMintAmount(uint256) (runs: 100, μ: 330388, ~: 330711)
[PASS] testFuzz_deposit_ltBootstrapMintAmount(uint256) (runs: 100, μ: 242539, ~: 241865)
[PASS] testFuzz_deposit_secondDepositorGetsCorrectShares(uint256) (runs: 100, μ: 457090, ~: 456439)
[PASS] test_deposit_exactBootstrapMintAmount() (gas: 304204)
[PASS] test_deposit_gtBootstrapMintAmount() (gas: 324901)
[PASS] test_deposit_ltBootstrapMintAmount() (gas: 237550)
[PASS] test_deposit_secondDepositorGetsCorrectShares() (gas: 451703)
Test result: ok. 7 passed; 0 failed; finished in 202.00ms
Running 2 tests for tests/integration/PoolAccountingViewFunctions.t.sol:BalanceOfAssetsTests
[PASS] testDeepFuzz_balanceOfAssets(uint256,uint256,uint256) (runs: 100, μ: 418757, ~: 418600)
[PASS] test_balanceOfAssets() (gas: 406751)
Test result: ok. 2 passed; 0 failed; finished in 92.23ms
Running 4 tests for tests/integration/PoolAccountingViewFunctions.t.sol:ConvertToAssetsTests
[PASS] test_convertToAssets_multipleUsers() (gas: 458906)
[PASS] test_convertToAssets_multipleUsers_changeTotalAssets() (gas: 482592)
[PASS] test_convertToAssets_singleUser() (gas: 271654)
[PASS] test_convertToAssets_zeroTotalSupply() (gas: 12237)
Test result: ok. 4 passed; 0 failed; finished in 15.00ms
Running 4 tests for tests/integration/Pause.t.sol:PauseTests
[PASS] test_contractPause() (gas: 5714400)
[PASS] test_functionUnpauseAfterContractPause() (gas: 49477527)
[PASS] test_functionUnpauseAfterProtocolPause() (gas: 48622608)
[PASS] test_globalPause() (gas: 8601682)
Test result: ok. 4 passed; 0 failed; finished in 326.71ms
Running 4 tests for tests/integration/PoolAccountingViewFunctions.t.sol:ConvertToSharesTests
[PASS] test_convertToShares_multipleUsers() (gas: 458937)
[PASS] test_convertToShares_multipleUsers_changeTotalAssets() (gas: 482657)
[PASS] test_convertToShares_singleUser() (gas: 271802)
[PASS] test_convertToShares_zeroTotalSupply() (gas: 12274)
Test result: ok. 4 passed; 0 failed; finished in 14.94ms
Running 3 tests for tests/integration/Liquidation.t.sol:FinishLiquidationFailureTests
[PASS] test_finishLiquidation_failIfLiquidationNotActive() (gas: 102914)
[PASS] test_finishLiquidation_failIfNotPD() (gas: 51341)
[PASS] test_finishLiquidation_failIfNotPoolManager() (gas: 54784)
Test result: ok. 3 passed; 0 failed; finished in 16.04ms
Running 3 tests for tests/integration/PoolAccountingViewFunctions.t.sol:MaxDepositTests
[PASS] testDeepFuzz_maxDeposit_totalAssetsIncrease(uint256,uint256) (runs: 100, μ: 216560, ~: 216056)
[PASS] test_maxDeposit_closedPool() (gas: 220747)
[PASS] test_maxDeposit_totalAssetsIncrease() (gas: 209574)
Test result: ok. 3 passed; 0 failed; finished in 48.31ms
Running 3 tests for tests/integration/Redeem.t.sol:MultiUserRedeemTests
[PASS] test_redeem_partialLiquidity_sameCash_differentExchangeRate() (gas: 2547073)
[PASS] test_redeem_partialLiquidity_sameCash_sameExchangeRate() (gas: 2421952)
[PASS] test_redeem_partialLiquidity_sameCash_sameExchangeRate_exposeRounding() (gas: 4784962)
Test result: ok. 3 passed; 0 failed; finished in 32.81ms
Running 9 tests for tests/integration/Redeem.t.sol:RedeemFailureTests
[PASS] test_redeem_failIfNoApprove() (gas: 255501)
[PASS] test_redeem_failIfNoBalanceOnWM() (gas: 362618)
[PASS] test_redeem_failIfNoRequest() (gas: 85556)
[PASS] test_redeem_failIfNotInWindow() (gas: 287721)
[PASS] test_redeem_failIfNotPool() (gas: 46733)
[PASS] test_redeem_failIfNotPoolManager() (gas: 19480)
[PASS] test_redeem_failWithInsufficientApproval() (gas: 342544)
[PASS] test_redeem_failWithInvalidAmountOfShares() (gas: 282085)
[PASS] test_redeem_failWithZeroReceiver() (gas: 318774)
Test result: ok. 9 passed; 0 failed; finished in 16.75ms
Running 1 test for tests/protocol-upgrade/ProtocolUpgrade.t.sol:ProtocolUpgradeTest
[PASS] test_mainnet_upgradeProtocol() (gas: 54728112)
Test result: ok. 1 passed; 0 failed; finished in 65.90ms
Running 11 tests for tests/fuzz/PoolViewFunctionsFuzzTest.t.sol:PoolViewFunctionsFuzzTests
[PASS] testFuzz_convertToAssets_whenTotalSupplyExists(uint256,uint256,uint256,uint256) (runs: 100, μ: 313443, ~: 313707)
[PASS] testFuzz_convertToAssets_whenTotalSupplyIsZero(uint256) (runs: 100, μ: 14942, ~: 14527)
[PASS] testFuzz_convertToExitShares(uint256,uint256,uint256,uint256,uint256) (runs: 100, μ: 347527, ~: 347620)
[PASS] testFuzz_convertToShares_whenTotalSupplyExists(uint256,uint256,uint256,uint256) (runs: 100, μ: 313546, ~: 313704)
[PASS] testFuzz_convertToShares_whenTotalSupplyIsZero(uint256) (runs: 100, μ: 15170, ~: 14569)
[PASS] testFuzz_getTotalAssetsFromPM(uint256,uint256) (runs: 100, μ: 124273, ~: 124389)
[PASS] testFuzz_getUnrealizedLossesFromPM(uint256) (runs: 100, μ: 109009, ~: 108485)
[PASS] testFuzz_previewDeposit_whenTotalSupplyExists(uint256,uint256) (runs: 100, μ: 263332, ~: 263621)
[PASS] testFuzz_previewDeposit_whenTotalSupplyIsZero(uint256) (runs: 100, μ: 15104, ~: 14609)
[PASS] testFuzz_previewMint_whenTotalSupplyExists(uint256,uint256,uint256,uint256) (runs: 100, μ: 314317, ~: 314475)
[PASS] testFuzz_previewMint_whenTotalSupplyIsZero(uint256) (runs: 100, μ: 15005, ~: 14590)
Test result: ok. 11 passed; 0 failed; finished in 507.49ms
Running 1 test for tests/fuzz/ClosePoolFuzz.t.sol:ClosePoolFuzz
[PASS] testFuzz_fuzzedSetup_closePool(uint256) (runs: 100, μ: 20727170, ~: 20232138)
Test result: ok. 1 passed; 0 failed; finished in 6.07s
Running 11 tests for tests/e2e/PoolScenarios.t.sol:PoolScenarioTests
[PASS] testFuzz_poolScenarios_OTLWithBigPaymentInterval(uint256) (runs: 100, μ: 1045315, ~: 1045143)
[PASS] testFuzz_poolScenarios_exposeAccountedInterestDust(uint24,uint24) (runs: 100, μ: 1767997, ~: 1775886)
[PASS] testFuzz_poolScenarios_multipleOTLWithBigPaymentInterval(uint256,uint256,uint256) (runs: 100, μ: 39194405, ~: 39194708)
[PASS] test_poolScenario_fundLoanAndNeverTouchIt() (gas: 5897025)
[PASS] test_poolScenario_impairLoanWithLatePaymentAndRefinance() (gas: 2655066)
[PASS] test_poolScenario_loanWithVeryHighInterestRate() (gas: 1592445)
[PASS] test_poolScenario_loanWithZeroInterestRate() (gas: 2136350)
[PASS] test_poolScenario_loanWithZeroInterestRateAndDefaultWithCover() (gas: 1590740)
[PASS] test_poolScenarios_refinanceATwoPeriodsLateLoan() (gas: 2249891)
[PASS] test_poolScenarios_refinanceLateLoanAndDefault() (gas: 2019073)
[PASS] test_poolScenarios_stressTestAdvanceGlobalPaymentAccounting() (gas: 170615648)
Test result: ok. 11 passed; 0 failed; finished in 7.88s
Running 27 tests for tests/invariants/DefaultsInvariants.t.sol:DefaultsInvariants
[PASS] invariant_fixedTermLoanManager_A() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_fixedTermLoanManager_B() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_fixedTermLoanManager_C() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_fixedTermLoanManager_D() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_fixedTermLoanManager_E() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_fixedTermLoanManager_F() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_fixedTermLoanManager_H() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_fixedTermLoanManager_I() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_fixedTermLoanManager_J() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_fixedTermLoanManager_K() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_fixedTermLoan_A_B_fixedTermLoanManager_M_N() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_poolManager_A() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_poolManager_B() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_pool_A() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_pool_B_F_G() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_pool_D() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_pool_E() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_pool_I() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_pool_J() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_pool_K() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_withdrawalManager_A_F_G_H_I_J_K_L() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_withdrawalManager_B() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_withdrawalManager_C() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_withdrawalManager_D() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_withdrawalManager_E() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_withdrawalManager_M() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_withdrawalManager_N() (runs: 10, calls: 1000, reverts: 0)
Test result: ok. 27 passed; 0 failed; finished in 13.82s
Running 27 tests for tests/invariants/ImpairInvariants.t.sol:ImpairInvariants
[PASS] invariant_fixedTermLoanManager_A() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_fixedTermLoanManager_B() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_fixedTermLoanManager_C() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_fixedTermLoanManager_D() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_fixedTermLoanManager_E() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_fixedTermLoanManager_F() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_fixedTermLoanManager_H() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_fixedTermLoanManager_I() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_fixedTermLoanManager_J() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_fixedTermLoanManager_K() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_fixedTermLoan_A_B_fixedTermLoanManager_L_M_N() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_poolManager_A() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_poolManager_B() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_pool_A() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_pool_B_F_G() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_pool_D() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_pool_E() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_pool_I() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_pool_J() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_pool_K() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_withdrawalManager_A_F_G_H_I_J_K_L() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_withdrawalManager_B() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_withdrawalManager_C() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_withdrawalManager_D() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_withdrawalManager_E() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_withdrawalManager_M() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_withdrawalManager_N() (runs: 10, calls: 1000, reverts: 0)
Test result: ok. 27 passed; 0 failed; finished in 38.19s
Running 30 tests for tests/invariants/BasicInvariants.t.sol:BasicInvariants
[PASS] invariant_fixedTermLoanManager_A() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_fixedTermLoanManager_B() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_fixedTermLoanManager_C() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_fixedTermLoanManager_D() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_fixedTermLoanManager_E() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_fixedTermLoanManager_F() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_fixedTermLoanManager_G() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_fixedTermLoanManager_H() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_fixedTermLoanManager_I() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_fixedTermLoanManager_J() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_fixedTermLoanManager_K() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_fixedTermLoan_A_B_C_fixedTermLoanManager_L_M_N() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_poolManager_A_totalAssetsEqCashPlusAUM() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_poolManager_B() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_pool_A() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_pool_B_F_G() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_pool_C() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_pool_D() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_pool_E() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_pool_H() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_pool_I() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_pool_J() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_pool_K() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_withdrawalManager_A_F_G_H_I_J_K_L() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_withdrawalManager_B() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_withdrawalManager_C() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_withdrawalManager_D() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_withdrawalManager_E() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_withdrawalManager_M() (runs: 10, calls: 1000, reverts: 0)
[PASS] invariant_withdrawalManager_N() (runs: 10, calls: 1000, reverts: 0)
Test result: ok. 30 passed; 0 failed; finished in 42.55s
Running 1 test for tests/protocol-upgrade/Lifecycles.t.sol:FixedTermLifecycle
[PASS] test_fixedTermLifecycle() (gas: 182847904)
Test result: ok. 1 passed; 0 failed; finished in 406.91s
Running 1 test for tests/protocol-upgrade/Lifecycles.t.sol:OpenTermOnboardLifecycle
[PASS] test_openTermOnboardLifecycle() (gas: 263370105)
Test result: ok. 1 passed; 0 failed; finished in 402.61s
Running 1 test for tests/protocol-upgrade/Lifecycles.t.sol:OpenAndFixedTermLifecycle
[PASS] test_openAndFixedTermLifecycle() (gas: 334090133)
Test result: ok. 1 passed; 0 failed; finished in 407.95s
Running 1 test for contracts/test/ERC20.t.sol:ERC20Invariants
[PASS] invariant_balanceSum() (runs: 256, calls: 3840, reverts: 2331)
Test result: ok. 1 passed; 0 failed; finished in 187.83ms
Running 14 tests for contracts/test/ERC20.t.sol:ERC20PermitTest
[PASS] testFuzz_permit(uint256) (runs: 256, μ: 85817, ~: 86353)
[PASS] testFuzz_permit_multiple(bytes32) (runs: 256, μ: 257340, ~: 257338)
[PASS] test_domainSeparator() (gas: 8326)
[PASS] test_initialState() (gas: 15788)
[PASS] test_permit_badS() (gas: 31538)
[PASS] test_permit_badV() (gas: 1041107)
[PASS] test_permit_differentSpender() (gas: 58233)
[PASS] test_permit_differentVerifier() (gas: 701463)
[PASS] test_permit_earlyNonce() (gas: 58301)
[PASS] test_permit_ownerSignerMismatch() (gas: 58300)
[PASS] test_permit_replay() (gas: 90422)
[PASS] test_permit_withExpiry() (gas: 94098)
[PASS] test_permit_zeroAddress() (gas: 58231)
[PASS] test_typehash() (gas: 5566)
Test result: ok. 14 passed; 0 failed; finished in 885.91ms
Running 14 tests for contracts/test/ERC20.t.sol:ERC20BaseTest
[PASS] invariant_metadata() (runs: 256, calls: 3840, reverts: 2399)
[PASS] testFuzz_approve(address,uint256) (runs: 256, μ: 30703, ~: 31714)
[PASS] testFuzz_burn(address,uint256,uint256) (runs: 256, μ: 27823, ~: 419)
[PASS] testFuzz_decreaseAllowance_infiniteApproval(address,uint256) (runs: 256, μ: 35435, ~: 35448)
[PASS] testFuzz_decreaseAllowance_nonInfiniteApproval(address,uint256,uint256) (runs: 256, μ: 36505, ~: 38339)
[PASS] testFuzz_increaseAllowance(address,uint256,uint256) (runs: 256, μ: 38358, ~: 38358)
[PASS] testFuzz_metadata(string,string,uint8) (runs: 256, μ: 786502, ~: 781402)
[PASS] testFuzz_mint(address,uint256) (runs: 256, μ: 53217, ~: 54306)
[PASS] testFuzz_transfer(address,uint256) (runs: 256, μ: 59230, ~: 61407)
[PASS] testFuzz_transferFrom(address,uint256,uint256) (runs: 256, μ: 346420, ~: 354380)
[PASS] testFuzz_transferFrom_infiniteApproval(address,uint256) (runs: 256, μ: 351306, ~: 355204)
[PASS] testFuzz_transferFrom_insufficientAllowance(address,uint256) (runs: 256, μ: 341073, ~: 340590)
[PASS] testFuzz_transferFrom_insufficientBalance(address,uint256) (runs: 256, μ: 322652, ~: 322238)
[PASS] testFuzz_transfer_insufficientBalance(address,uint256) (runs: 256, μ: 332520, ~: 332521)
Test result: ok. 14 passed; 0 failed; finished in 1.08s
Running 2 tests for tests/InitializerAndMigrator.t.sol:MapleLoanInitializerAndMigratorTests
[PASS] test_initializer_setters() (gas: 89831)
[PASS] test_migration_ratesChange() (gas: 104275)
Test result: ok. 2 passed; 0 failed; finished in 4.66ms
Running 4 tests for tests/MapleLoanFeeManager.t.sol:PayOriginationFeesTests
[PASS] test_payOriginationFees() (gas: 304424)
[PASS] test_payOriginationFees_insufficientFunds_poolDelegate() (gas: 167097)
[PASS] test_payOriginationFees_insufficientFunds_treasury() (gas: 197140)
[PASS] test_payOriginationFees_zeroTreasury() (gas: 198162)
Test result: ok. 4 passed; 0 failed; finished in 4.98ms
Running 3 tests for tests/MapleLoan.t.sol:MapleLoanRoleTests
[PASS] test_transferBorrowerRole() (gas: 180471)
[PASS] test_transferBorrowerRole_failIfInvalidBorrower() (gas: 77496)
[PASS] test_transferLenderRole() (gas: 291194)
Test result: ok. 3 passed; 0 failed; finished in 5.16ms
Running 1 test for tests/Refinancer.t.sol:RefinancerInterestTests
[PASS] test_acceptNewTerms_makePayment_withRefinanceInterest() (gas: 5405192)
Test result: ok. 1 passed; 0 failed; finished in 5.90ms
Running 7 tests for tests/MapleLoanLogic.t.sol:MapleLoanLogic_RepossessTests
[PASS] test_repossess() (gas: 143815)
[PASS] test_repossess_beforePaymentDue() (gas: 54249)
[PASS] test_repossess_collateralTransferFailed() (gas: 207861)
[PASS] test_repossess_fundsTransferFailed() (gas: 238417)
[PASS] test_repossess_onGracePeriod() (gas: 54256)
[PASS] test_repossess_onPaymentDue() (gas: 54115)
[PASS] test_repossess_withinGracePeriod() (gas: 54211)
Test result: ok. 7 passed; 0 failed; finished in 7.33ms
Running 2 tests for tests/MapleLoanFeeManager.t.sol:PayServiceFeesTests
[PASS] test_payServiceFees() (gas: 239653)
[PASS] test_payServiceFees_zeroTreasury() (gas: 209439)
Test result: ok. 2 passed; 0 failed; finished in 2.33ms
Running 1 test for tests/MapleLoanFeeManager.t.sol:UpdateFeeTerms_SetterTests
[PASS] test_updateDelegateFeeTerms() (gas: 105747)
Test result: ok. 1 passed; 0 failed; finished in 2.19ms
Running 1 test for tests/Refinancer.t.sol:RefinancerMiscellaneousTests
[PASS] test_refinance_invalidRefinancer() (gas: 5174106)
Test result: ok. 1 passed; 0 failed; finished in 3.65ms
Running 3 tests for tests/MapleLoanLogic.t.sol:MapleLoanLogic_SkimTests
[PASS] test_skimCollateralAsset() (gas: 76920)
[PASS] test_skimFundsAsset() (gas: 76975)
[PASS] test_skim_otherAsset() (gas: 791886)
Test result: ok. 3 passed; 0 failed; finished in 13.20ms
Running 1 test for tests/MapleLoanFeeManager.t.sol:UpdatePlatformServiceFeeTests
[PASS] test_updatePlatformServiceFee() (gas: 1661262)
Test result: ok. 1 passed; 0 failed; finished in 6.07ms
Running 3 tests for tests/MapleLoanScenarios.t.sol:MapleLoanScenariosTests
[PASS] test_scenario_fullyAmortized() (gas: 5387932)
[PASS] test_scenario_interestOnly() (gas: 5388054)
[PASS] test_scenario_lateLoanRefinanceInterest() (gas: 5226226)
Test result: ok. 3 passed; 0 failed; finished in 5.19ms
Running 9 tests for tests/MapleLoanLogic.t.sol:MapleLoanLogic_AcceptNewTermsTests
[PASS] test_acceptNewTerms() (gas: 155547)
[PASS] test_acceptNewTerms_afterDeadline() (gas: 76044)
[PASS] test_acceptNewTerms_callFailed() (gas: 111555)
[PASS] test_acceptNewTerms_commitmentMismatch_emptyCallsArray() (gas: 72232)
[PASS] test_acceptNewTerms_commitmentMismatch_mismatchedCalls() (gas: 73083)
[PASS] test_acceptNewTerms_commitmentMismatch_mismatchedDeadline() (gas: 72894)
[PASS] test_acceptNewTerms_commitmentMismatch_mismatchedRefinancer() (gas: 72763)
[PASS] test_acceptNewTerms_insufficientCollateral() (gas: 315469)
[PASS] test_acceptNewTerms_invalidRefinancer() (gas: 73234)
Test result: ok. 9 passed; 0 failed; finished in 3.02ms
Running 73 tests for tests/MapleLoan.t.sol:MapleLoanTests
[PASS] test_acceptBorrower_acl() (gas: 51750)
[PASS] test_acceptBorrower_failWhenPaused() (gas: 29573)
[PASS] test_acceptLender_acl() (gas: 50060)
[PASS] test_acceptLender_failWhenPaused() (gas: 29638)
[PASS] test_acceptNewTerms() (gas: 1031225)
[PASS] test_acceptNewTerms_acl() (gas: 980809)
[PASS] test_acceptNewTerms_failWhenPaused() (gas: 30347)
[PASS] test_closeLoan_failWhenPaused() (gas: 29795)
[PASS] test_closeLoan_pullPatternAsBorrower() (gas: 944772)
[PASS] test_closeLoan_pullPatternAsNonBorrower() (gas: 947793)
[PASS] test_closeLoan_pullPatternUsingDrawable() (gas: 947765)
[PASS] test_closeLoan_pushPatternAsBorrower() (gas: 961469)
[PASS] test_closeLoan_pushPatternAsNonBorrower() (gas: 962468)
[PASS] test_closeLoan_pushPatternUsingDrawable() (gas: 920680)
[PASS] test_drawdownFunds_acl() (gas: 902011)
[PASS] test_drawdownFunds_failWhenPaused() (gas: 29932)
[PASS] test_drawdownFunds_pullPatternForCollateral() (gas: 1773448)
[PASS] test_drawdownFunds_pushPatternForCollateral() (gas: 1756409)
[PASS] test_drawdownFunds_withoutAdditionalCollateralRequired() (gas: 1601570)
[PASS] test_excessCollateral_varyCollateral() (gas: 138216)
[PASS] test_excessCollateral_varyDrawableFunds() (gas: 126736)
[PASS] test_excessCollateral_varyPrincipal() (gas: 88803)
[PASS] test_fundLoan_failWhenPaused() (gas: 29705)
[PASS] test_fundLoan_pushPattern() (gas: 1051154)
[PASS] test_getAdditionalCollateralRequiredFor_varyAmount() (gas: 120528)
[PASS] test_getAdditionalCollateralRequiredFor_varyCollateralRequired() (gas: 110128)
[PASS] test_getAdditionalCollateralRequiredFor_varyDrawableFunds() (gas: 112228)
[PASS] test_getAdditionalCollateralRequiredFor_varyPrincipal() (gas: 132674)
[PASS] test_impairLoan() (gas: 78842)
[PASS] test_impairLoan_acl() (gas: 91475)
[PASS] test_impairLoan_failWhenPaused() (gas: 29634)
[PASS] test_impairLoan_lateLoan() (gas: 78870)
[PASS] test_makePayment_failWhenPaused() (gas: 29852)
[PASS] test_makePayment_pullPatternAsBorrower() (gas: 995962)
[PASS] test_makePayment_pullPatternAsNonBorrower() (gas: 998243)
[PASS] test_makePayment_pullPatternUsingDrawable() (gas: 1026547)
[PASS] test_makePayment_pushPatternAsBorrower() (gas: 997619)
[PASS] test_makePayment_pushPatternAsNonBorrower() (gas: 997898)
[PASS] test_makePayment_pushPatternUsingDrawable() (gas: 999502)
[PASS] test_migrate_acl() (gas: 86584)
[PASS] test_migrate_failWhenPaused() (gas: 30250)
[PASS] test_postCollateral_failWhenPaused() (gas: 29757)
[PASS] test_postCollateral_pullPattern() (gas: 868920)
[PASS] test_postCollateral_pushPattern() (gas: 825858)
[PASS] test_proposeNewTerms() (gas: 106373)
[PASS] test_proposeNewTerms_acl() (gas: 123901)
[PASS] test_proposeNewTerms_failWhenPaused() (gas: 30382)
[PASS] test_proposeNewTerms_invalidDeadline() (gas: 123946)
[PASS] test_rejectNewTerms_acl() (gas: 127896)
[PASS] test_rejectNewTerms_failWhenPaused() (gas: 30435)
[PASS] test_removeCollateral_acl() (gas: 861116)
[PASS] test_removeCollateral_failWhenPaused() (gas: 29756)
[PASS] test_removeLoanImpairment_acl() (gas: 72173)
[PASS] test_removeLoanImpairment_failWhenPaused() (gas: 29658)
[PASS] test_removeLoanImpairment_notImpaired() (gas: 30656)
[PASS] test_removeLoanImpairment_pastDate() (gas: 52075)
[PASS] test_removeLoanImpairment_success() (gas: 58056)
[PASS] test_repossess_acl() (gas: 841153)
[PASS] test_repossess_failWhenPaused() (gas: 29929)
[PASS] test_returnFunds_failWhenPaused() (gas: 29790)
[PASS] test_returnFunds_pullPattern() (gas: 869007)
[PASS] test_returnFunds_pushPattern() (gas: 825914)
[PASS] test_setImplementation_acl() (gas: 107226)
[PASS] test_setImplementation_failWhenPaused() (gas: 29751)
[PASS] test_setPendingBorrower_acl() (gas: 92933)
[PASS] test_setPendingBorrower_failWhenPaused() (gas: 29686)
[PASS] test_setPendingLender_acl() (gas: 70263)
[PASS] test_setPendingLender_failWhenPaused() (gas: 29775)
[PASS] test_skim_failWhenPaused() (gas: 29939)
[PASS] test_upgrade_acl_noAuth() (gas: 3631758)
[PASS] test_upgrade_acl_noAuth_asBorrower() (gas: 3634333)
[PASS] test_upgrade_acl_securityAdmin() (gas: 3663970)
[PASS] test_upgrade_failWhenPaused() (gas: 29920)
Test result: ok. 73 passed; 0 failed; finished in 15.48ms
Running 1 test for tests/MapleLoanLogic.t.sol:MapleLoanLogic_GetCollateralRequiredForTests
[PASS] test_getCollateralRequiredFor() (gas: 12282)
Test result: ok. 1 passed; 0 failed; finished in 1.29ms
Running 2 tests for tests/Payments.t.sol:ClosingTests
[PASS] test_payments_closing_flatRate_case1() (gas: 1223634)
[PASS] test_payments_closing_flatRate_case2() (gas: 1110264)
Test result: ok. 2 passed; 0 failed; finished in 4.39ms
Running 2 tests for tests/Payments.t.sol:FullyAmortizedPaymentsTests
[PASS] test_payments_fullyAmortized_case1() (gas: 1413222)
[PASS] test_payments_fullyAmortized_case2() (gas: 1413169)
Test result: ok. 2 passed; 0 failed; finished in 6.11ms
Running 3 tests for tests/MapleLoanLogic.t.sol:MapleLoanLogic_GetInstallmentTests
[PASS] test_getInstallment_edgeCases() (gas: 15000)
[PASS] test_getInstallment_genericFuzzing(uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 10937, ~: 11006)
[PASS] test_getInstallment_withFixtures() (gas: 8769)
Test result: ok. 3 passed; 0 failed; finished in 12.41ms
Running 2 tests for tests/MapleLoanLogic.t.sol:MapleLoanLogic_ReturnFundsTests
[PASS] test_returnFunds(uint256) (runs: 256, μ: 117286, ~: 119331)
[PASS] test_returnFundsCollateralAsset() (gas: 814157)
Test result: ok. 2 passed; 0 failed; finished in 27.79ms
Running 2 tests for tests/Payments.t.sol:InterestOnlyPaymentsTests
[PASS] test_payments_interestOnly_case1() (gas: 1429056)
[PASS] test_payments_interestOnly_case2() (gas: 1429105)
Test result: ok. 2 passed; 0 failed; finished in 6.12ms
Running 1 test for tests/MapleLoanLogic.t.sol:MapleLoanLogic_GetInterestTests
[PASS] test_getInterest() (gas: 7966)
Test result: ok. 1 passed; 0 failed; finished in 510.54µs
Running 2 tests for tests/MapleLoanLogic.t.sol:MapleLoanLogic_ScaledExponentTests
[PASS] test_scaledExponent_setOne() (gas: 22590)
[PASS] test_scaledExponent_setTwo() (gas: 36769)
Test result: ok. 2 passed; 0 failed; finished in 756.96µs
Running 5 tests for tests/MapleLoanLogic.t.sol:MapleLoanLogic_RejectNewTermsTests
[PASS] test_rejectNewTerms() (gas: 55611)
[PASS] test_rejectNewTerms_commitmentMismatch_emptyCallsArray() (gas: 67664)
[PASS] test_rejectNewTerms_commitmentMismatch_mismatchedCalls() (gas: 68537)
[PASS] test_rejectNewTerms_commitmentMismatch_mismatchedDeadline() (gas: 68468)
[PASS] test_rejectNewTerms_commitmentMismatch_mismatchedRefinancer() (gas: 467314)
Test result: ok. 5 passed; 0 failed; finished in 1.22ms
Running 2 tests for tests/Payments.t.sol:PartiallyAmortizedPaymentsTests
[PASS] test_payments_partiallyAmortized_case1() (gas: 1429072)
[PASS] test_payments_partiallyAmortized_case2() (gas: 1429107)
Test result: ok. 2 passed; 0 failed; finished in 6.22ms
Running 1 test for tests/MapleLoanLogic.t.sol:MapleLoanLogic_GetNextPaymentBreakdownTests
[PASS] test_getNextPaymentBreakdown(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 497823, ~: 501006)
Test result: ok. 1 passed; 0 failed; finished in 41.43ms
Running 5 tests for tests/Payments.t.sol:LateRepaymentsTests
[PASS] test_payments_dailyInterestAccrual() (gas: 942936)
[PASS] test_payments_lateRepayment_flatRateAndDefaultRate_case1() (gas: 1430476)
[PASS] test_payments_lateRepayment_flatRateAndDefaultRate_case2() (gas: 1437441)
[PASS] test_payments_lateRepayment_flatRate_case1() (gas: 1426884)
[PASS] test_payments_lateRepayment_flatRate_case2() (gas: 1424722)
Test result: ok. 5 passed; 0 failed; finished in 11.26ms
Running 6 tests for tests/MapleLoanLogic.t.sol:MapleLoanLogic_GetPaymentBreakdownTests
[PASS] test_getPaymentBreakdown_onePaymentFourPeriodsLate() (gas: 27674)
[PASS] test_getPaymentBreakdown_onePaymentOnePeriodBeforeDue() (gas: 26411)
[PASS] test_getPaymentBreakdown_onePaymentOnePeriodLate() (gas: 27696)
[PASS] test_getPaymentBreakdown_onePaymentOneSecondBeforeDue() (gas: 26465)
[PASS] test_getPaymentBreakdown_onePaymentThreePeriodsLate() (gas: 27629)
[PASS] test_getPaymentBreakdown_onePaymentTwoPeriodsLate() (gas: 27651)
Test result: ok. 6 passed; 0 failed; finished in 839.63µs
Running 1 test for tests/MapleLoanLogic.t.sol:MapleLoanLogic_GetPeriodicInterestRateTests
[PASS] test_getPeriodicInterestRate() (gas: 7567)
Test result: ok. 1 passed; 0 failed; finished in 525.46µs
Running 3 tests for tests/MapleLoanLogic.t.sol:MapleLoanLogic_ProposeNewTermsTests
[PASS] test_proposeNewTerms(address,uint256,uint256,uint256,uint256) (runs: 256, μ: 70217, ~: 70333)
[PASS] test_proposeNewTerms_emptyArray(address,uint256) (runs: 256, μ: 34095, ~: 34226)
[PASS] test_proposeNewTerms_invalidRefinancer() (gas: 79364)
Test result: ok. 3 passed; 0 failed; finished in 48.78ms
Running 2 tests for tests/MapleLoanFeeManager.t.sol:FeeManager_Getters
[PASS] test_getDelegateServiceFeesForPeriod() (gas: 663177)
[PASS] test_getPlatformServiceFeeForPeriod() (gas: 950007)
Test result: ok. 2 passed; 0 failed; finished in 2.26ms
Running 1 test for tests/MapleLoanFeeManager.t.sol:PayClosingFeesTests
[PASS] test_payClosingServiceFees() (gas: 252303)
Test result: ok. 1 passed; 0 failed; finished in 2.15ms
Running 8 tests for tests/MapleLoanFactory.t.sol:MapleLoanFactoryTest
[PASS] testFail_createInstance_saltAndArgumentsCollision() (gas: 8937393460516744904)
[PASS] test_createInstance(bytes32) (runs: 256, μ: 502970, ~: 502970)
[PASS] test_createInstance_differentFundsAsset() (gas: 707004)
[PASS] test_createInstance_invalidCollateralAsset() (gas: 679268)
[PASS] test_createInstance_invalidFactory() (gas: 712260)
[PASS] test_createInstance_invalidInstance() (gas: 717499)
[PASS] test_createInstance_invalidPoolAsset() (gas: 676047)
[PASS] test_createInstance_zeroLender() (gas: 691693)
Test result: ok. 8 passed; 0 failed; finished in 107.26ms
Running 11 tests for tests/MapleLoanLogic.t.sol:MapleLoanLogic_FundLoanTests
[PASS] test_fundLoan_approveFail() (gas: 227089)
[PASS] test_fundLoan_doubleFund(uint256) (runs: 256, μ: 267918, ~: 267803)
[PASS] test_fundLoan_fullFunding(uint256) (runs: 256, μ: 289220, ~: 289087)
[PASS] test_fundLoan_fullFundingWithExistingDrawableFunds(uint256) (runs: 256, μ: 290388, ~: 290266)
[PASS] test_fundLoan_invalidFundsAsset() (gas: 923378)
[PASS] test_fundLoan_nextPaymentDueDateAlreadySet() (gas: 172438)
[PASS] test_fundLoan_noPaymentsRemaining() (gas: 82119)
[PASS] test_fundLoan_notLender() (gas: 25960)
[PASS] test_fundLoan_partialFunding(uint256) (runs: 256, μ: 213871, ~: 216867)
[PASS] test_fundLoan_withUnaccountedCollateralAsset() (gas: 1037312)
[PASS] test_fundLoan_withoutSendingAsset() (gas: 171239)
Test result: ok. 11 passed; 0 failed; finished in 127.49ms
Running 3 tests for tests/MapleLoanLogic.t.sol:MapleLoanLogic_CollateralMaintainedTests
[PASS] test_isCollateralMaintained(uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 118602, ~: 122474)
[PASS] test_isCollateralMaintained_edgeCases() (gas: 168417)
[PASS] test_isCollateralMaintained_roundUp() (gas: 81134)
Test result: ok. 3 passed; 0 failed; finished in 12.02ms
Running 12 tests for tests/MapleLoanLogic.t.sol:MapleLoanLogic_GetUnaccountedAmountTests
[PASS] test_getUnaccountedAmount_collateral(uint256,uint256) (runs: 256, μ: 87121, ~: 87198)
[PASS] test_getUnaccountedAmount_collateralAsset() (gas: 74375)
[PASS] test_getUnaccountedAmount_complex(uint256,uint256,uint256) (runs: 256, μ: 816927, ~: 818613)
[PASS] test_getUnaccountedAmount_drawableFunds(uint256,uint256) (runs: 256, μ: 87022, ~: 87100)
[PASS] test_getUnaccountedAmount_drawableFundsAndAndCollateral(uint256,uint256,uint256,uint256) (runs: 256, μ: 165292, ~: 165164)
[PASS] test_getUnaccountedAmount_drawableFundsAndAndCollateral_fundsAssetEqCollateralAsset(uint256,uint256,uint256) (runs: 256, μ: 114695, ~: 114675)
[PASS] test_getUnaccountedAmount_fundsAsset() (gas: 74365)
[PASS] test_getUnaccountedAmount_newFundsLtCollateral(uint256) (runs: 256, μ: 102087, ~: 102077)
[PASS] test_getUnaccountedAmount_newFundsLtDrawableFunds(uint256) (runs: 256, μ: 102034, ~: 102022)
[PASS] test_getUnaccountedAmount_randomToken() (gas: 107912)
[PASS] test_getUnaccountedAmount_withCollateral(uint256,uint256) (runs: 256, μ: 80951, ~: 86573)
[PASS] test_getUnaccountedAmount_withDrawableFunds(uint256,uint256) (runs: 256, μ: 82245, ~: 86455)
Test result: ok. 12 passed; 0 failed; finished in 145.00ms
Running 9 tests for tests/MapleLoanLogic.t.sol:MapleLoanLogic_InitializeTests
[PASS] test_initialize() (gas: 5053250)
[PASS] test_initialize_invalidBorrower() (gas: 1124358)
[PASS] test_initialize_invalidEndingPrincipal() (gas: 1089287)
[PASS] test_initialize_invalidGracePeriodBoundary() (gas: 6067497)
[PASS] test_initialize_invalidOriginationFeeBoundary() (gas: 6067710)
[PASS] test_initialize_invalidPaymentInterval() (gas: 1095791)
[PASS] test_initialize_invalidPaymentsRemaining() (gas: 1095760)
[PASS] test_initialize_invalidPrincipal() (gas: 1089147)
[PASS] test_initialize_zeroBorrower() (gas: 1098706)
Test result: ok. 9 passed; 0 failed; finished in 14.88ms
Running 1 test for tests/Refinancer.t.sol:RefinancerCollateralRequiredTests
[PASS] test_refinance_collateralRequired(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 5387360, ~: 5382729)
Test result: ok. 1 passed; 0 failed; finished in 319.01ms
Running 7 tests for tests/MapleLoanLogic.t.sol:MapleLoanLogic_CloseLoanTests
[PASS] test_closeLoan(uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 275751, ~: 277597)
[PASS] test_closeLoan_amountSmallerThanFees() (gas: 436673)
[PASS] test_closeLoan_insufficientAmount(uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 334229, ~: 334720)
[PASS] test_closeLoan_latePayment(uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 284354, ~: 285880)
[PASS] test_closeLoan_noAmount() (gas: 430815)
[PASS] test_closeLoan_withDrawableFunds(uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 283238, ~: 284631)
[PASS] test_closeLoan_withRefinanceInterest(uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 278499, ~: 278525)
Test result: ok. 7 passed; 0 failed; finished in 316.19ms
Running 1 test for tests/MapleLoanLogic.t.sol:MapleLoanLogic_GetClosingPaymentBreakdownTests
[PASS] test_getClosingPaymentBreakdown(uint256,uint256,uint256) (runs: 256, μ: 5079282, ~: 5079204)
Test result: ok. 1 passed; 0 failed; finished in 194.97ms
Running 1 test for tests/Refinancer.t.sol:RefinancerMultipleParameterTests
[PASS] test_refinance_multipleParameters(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 5402907, ~: 5400043)
Test result: ok. 1 passed; 0 failed; finished in 349.88ms
Running 1 test for tests/Refinancer.t.sol:RefinancerGracePeriodTests
[PASS] test_refinance_gracePeriod(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 5351635, ~: 5360772)
Test result: ok. 1 passed; 0 failed; finished in 284.50ms
Running 2 tests for tests/Refinancer.t.sol:RefinancerPaymentIntervalTests
[PASS] test_refinance_paymentInterval(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 5358587, ~: 5362055)
[PASS] test_refinance_paymentInterval_zeroAmount() (gas: 5302939)
Test result: ok. 2 passed; 0 failed; finished in 291.88ms
Running 4 tests for tests/MapleLoanLogic.t.sol:MapleLoanLogic_PostCollateralTests
[PASS] test_postCollateral_invalidCollateralAsset() (gas: 790783)
[PASS] test_postCollateral_multiple(uint256,uint256) (runs: 256, μ: 148284, ~: 145680)
[PASS] test_postCollateral_once(uint256) (runs: 256, μ: 95868, ~: 100984)
[PASS] test_postCollateral_withUnaccountedFundsAsset() (gas: 877361)
Test result: ok. 4 passed; 0 failed; finished in 83.14ms
Running 8 tests for tests/MapleLoanLogic.t.sol:MapleLoanLogic_MakePaymentTests
[PASS] test_makePayment(uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 352359, ~: 358432)
[PASS] test_makePayment_amountSmallerThanFees() (gas: 450322)
[PASS] test_makePayment_collateralNotMaintained() (gas: 798306)
[PASS] test_makePayment_insufficientAmount(uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 366775, ~: 371181)
[PASS] test_makePayment_lastPaymentClearsLoan(uint256,uint256,uint256,uint256) (runs: 256, μ: 337857, ~: 340369)
[PASS] test_makePayment_noAmount() (gas: 442964)
[PASS] test_makePayment_withDrawableFunds(uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 357246, ~: 362978)
[PASS] test_makePayment_withRefinanceInterest(uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 340840, ~: 341891)
Test result: ok. 8 passed; 0 failed; finished in 357.30ms
Running 1 test for tests/Refinancer.t.sol:RefinancerInterestRateTests
[PASS] test_refinance_interestRate(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 5357983, ~: 5361392)
Test result: ok. 1 passed; 0 failed; finished in 261.71ms
Running 2 tests for tests/Refinancer.t.sol:RefinancerPaymentsRemainingTests
[PASS] test_refinance_paymentRemaining(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 5358661, ~: 5361961)
[PASS] test_refinance_paymentRemaining_zeroAmount() (gas: 5302930)
Test result: ok. 2 passed; 0 failed; finished in 303.77ms
Running 2 tests for tests/Refinancer.t.sol:RefinancerDeadlineTests
[PASS] test_refinance_afterDeadline(uint256,uint256,uint256) (runs: 256, μ: 5308629, ~: 5309027)
[PASS] test_refinance_differentDeadline(uint256,uint256,uint256) (runs: 256, μ: 5284481, ~: 5284511)
Test result: ok. 2 passed; 0 failed; finished in 568.61ms
Running 2 tests for tests/Refinancer.t.sol:RefinancerPrincipalRequestedTests
[PASS] test_refinance_increasePrincipalRequested(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 5420929, ~: 5423662)
[PASS] test_refinance_increasePrincipalRequestedWithInsufficientFunds(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 5359959, ~: 5363392)
Test result: ok. 2 passed; 0 failed; finished in 594.81ms
Running 3 tests for tests/Refinancer.t.sol:RefinancerFeeTests
[PASS] test_refinance_closingRate(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 5357856, ~: 5361864)
[PASS] test_refinance_lateFeeRate(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 5357726, ~: 5361656)
[PASS] test_refinance_lateInterestPremiumRate(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 5378206, ~: 5381823)
Test result: ok. 3 passed; 0 failed; finished in 789.69ms
Running 3 tests for tests/Refinancer.t.sol:RefinancerEndingPrincipalTests
[PASS] test_refinance_endingPrincipal_amortizedToInterestOnly(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 5376151, ~: 5379438)
[PASS] test_refinance_endingPrincipal_failLargerThanPrincipal(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 5342019, ~: 5350410)
[PASS] test_refinance_endingPrincipal_interestOnlyToAmortized(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 5369828, ~: 5377334)
Test result: ok. 3 passed; 0 failed; finished in 482.67ms
Running 11 tests for tests/MapleLoanLogic.t.sol:MapleLoanLogic_RemoveCollateralTests
[PASS] test_removeCollateral_cannotRemoveAnyAmountWithEncumbrances() (gas: 191583)
[PASS] test_removeCollateral_cannotRemoveFullAmountWithEncumbrances(uint256) (runs: 256, μ: 152052, ~: 152041)
[PASS] test_removeCollateral_cannotRemovePartialAmountWithEncumbrances(uint256,uint256) (runs: 256, μ: 192346, ~: 192456)
[PASS] test_removeCollateral_fullAmountWithNoEncumbrances(uint256) (runs: 256, μ: 118021, ~: 118023)
[PASS] test_removeCollateral_fullAmount_drawableFundsGtPrincipal(uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 178527, ~: 180648)
[PASS] test_removeCollateral_fullAmount_noPrincipal(uint256) (runs: 256, μ: 135479, ~: 135489)
[PASS] test_removeCollateral_insufficientCollateralWithNoEncumbrances(uint256) (runs: 256, μ: 109012, ~: 115062)
[PASS] test_removeCollateral_partialAmountWithEncumbrances(uint256,uint256) (runs: 256, μ: 232002, ~: 235551)
[PASS] test_removeCollateral_partialAmountWithNoEncumbrances(uint256,uint256) (runs: 256, μ: 151152, ~: 153156)
[PASS] test_removeCollateral_sameAssetAsFundingAsset(uint256) (runs: 256, μ: 138132, ~: 138113)
[PASS] test_removeCollateral_transferFailed() (gas: 191682)
Test result: ok. 11 passed; 0 failed; finished in 907.62ms
Running 7 tests for tests/Refinancer.t.sol:RefinancingFeesTerms
[PASS] testFuzz_refinance_payOriginationFees(uint256,uint256) (runs: 256, μ: 6313909, ~: 6313893)
[PASS] testFuzz_refinance_pdOriginationFeeTransferFail(uint256) (runs: 256, μ: 6237664, ~: 6239094)
[PASS] testFuzz_refinance_treasuryOriginationFeeTransferFail(uint256,uint256) (runs: 256, μ: 6249329, ~: 6249358)
[PASS] testFuzz_refinance_updateFeeTerms(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 6260486, ~: 6265317)
[PASS] testFuzz_refinance_updatesPlatformServiceFees(uint256) (runs: 256, μ: 6232180, ~: 6232317)
[PASS] test_refinance_updateRefinanceServiceFees() (gas: 6313437)
[PASS] test_refinance_updateRefinanceServiceFeesOnDoubleRefinance() (gas: 6384830)
Test result: ok. 7 passed; 0 failed; finished in 701.78ms
Running 6 tests for tests/MapleLoanLogic.t.sol:MapleLoanLogic_DrawdownFundsTests
[PASS] test_drawdownFunds_collateralNotMaintained(uint256,uint256,uint256) (runs: 256, μ: 255403, ~: 262778)
[PASS] test_drawdownFunds_insufficientDrawableFunds(uint256,uint256) (runs: 256, μ: 152110, ~: 152181)
[PASS] test_drawdownFunds_multipleDrawdowns(uint256,uint256,uint256) (runs: 256, μ: 259980, ~: 259885)
[PASS] test_drawdownFunds_postedCollateral(uint256,uint256,uint256) (runs: 256, μ: 278738, ~: 283286)
[PASS] test_drawdownFunds_transferFailed() (gas: 52355)
[PASS] test_drawdownFunds_withoutPostedCollateral(uint256,uint256) (runs: 256, μ: 185465, ~: 189518)
Test result: ok. 6 passed; 0 failed; finished in 1.02s
Running 2 tests for tests/LoanManager.t.sol:UpdateAccountingFailureTests
[PASS] test_updateAccounting_notGovernor() (gas: 97740)
[PASS] test_updateAccounting_notPoolDelegate() (gas: 95622)
Test result: ok. 2 passed; 0 failed; finished in 1.88ms
Running 1 test for tests/LoanManager.t.sol:AcceptNewTermsTests
[PASS] test_acceptNewTerms_invalidBorrower() (gas: 204711)
Test result: ok. 1 passed; 0 failed; finished in 1.84ms
Running 3 tests for tests/LoanManager.t.sol:DistributeLiquidationFundsTests
[PASS] test_distributeLiquidationFunds_borrowerNotSet() (gas: 682145)
[PASS] test_distributeLiquidationFunds_mapleTreasuryNotSet() (gas: 726119)
[PASS] test_distributeLiquidationFunds_poolNotSet() (gas: 712840)
Test result: ok. 3 passed; 0 failed; finished in 1.84ms
Running 2 tests for tests/LoanManager.t.sol:ClaimTests
[PASS] test_claim_notLoan() (gas: 349709)
[PASS] test_claim_paused() (gas: 39902)
Test result: ok. 2 passed; 0 failed; finished in 2.20ms
Running 3 tests for tests/LoanManager.t.sol:SetImplementationTests
[PASS] test_setImplementation_notFactory() (gas: 31132)
[PASS] test_setImplementation_paused() (gas: 36797)
[PASS] test_setImplementation_success() (gas: 41083)
Test result: ok. 3 passed; 0 failed; finished in 2.11ms
Running 7 tests for tests/LoanManager.t.sol:FundLoanTests
[PASS] test_fund() (gas: 417732)
[PASS] test_fund_failIfNotPoolDelegate() (gas: 89003)
[PASS] test_fund_inactiveLoan() (gas: 65518)
[PASS] test_fund_invalidBorrower() (gas: 69446)
[PASS] test_fund_invalidFactory() (gas: 59975)
[PASS] test_fund_invalidLoan() (gas: 60457)
[PASS] test_fund_paused() (gas: 44453)
Test result: ok. 7 passed; 0 failed; finished in 2.25ms
Running 4 tests for tests/CreateInstanceTests.t.sol:CreateInstanceTests
[PASS] testFail_createInstance_collision() (gas: 16089)
[PASS] testFail_createInstance_notPool() (gas: 14001)
[PASS] test_createInstance_notPoolDeployer() (gas: 19076)
[PASS] test_createInstance_success_asPoolDeployer() (gas: 260048)
Test result: ok. 4 passed; 0 failed; finished in 2.97ms
Running 3 tests for tests/LoanManager.t.sol:RejectNewTermsTests
[PASS] test_rejectNewTerms_notPoolDelegate() (gas: 37313)
[PASS] test_rejectNewTerms_paused() (gas: 35526)
[PASS] test_rejectNewTerms_success() (gas: 606613)
Test result: ok. 3 passed; 0 failed; finished in 3.55ms
Running 4 tests for tests/LoanManager.t.sol:SetMinRatio_SetterTests
[PASS] test_setMinRatio_noAuth() (gas: 40866)
[PASS] test_setMinRatio_paused() (gas: 36871)
[PASS] test_setMinRatio_success_asGovernor() (gas: 68179)
[PASS] test_setMinRatio_success_asPoolDelegate() (gas: 66083)
Test result: ok. 4 passed; 0 failed; finished in 1.55ms
Running 2 tests for tests/LoanManager.t.sol:DistributeClaimedFunds
[PASS] test_distributeClaimedFunds_mapleTreasuryNotSet() (gas: 884911)
[PASS] test_distributeLiquidationFunds_poolNotSet() (gas: 824987)
Test result: ok. 2 passed; 0 failed; finished in 1.73ms
Running 2 tests for tests/LoanManager.t.sol:GetterTests
[PASS] test_accruedInterest() (gas: 35284)
[PASS] test_getAssetsUnderManagement() (gas: 40617)
Test result: ok. 2 passed; 0 failed; finished in 1.64ms
Running 4 tests for tests/LoanManager.t.sol:UpdateAccountingTests
[PASS] test_updateAccounting_afterDomainEnd() (gas: 111856)
[PASS] test_updateAccounting_afterTwoDomainEnds() (gas: 105163)
[PASS] test_updateAccounting_beforeDomainEnd() (gas: 95639)
[PASS] test_updateAccounting_failIfPaused() (gas: 37152)
Test result: ok. 4 passed; 0 failed; finished in 2.62ms
Running 1 test for tests/LoanManager.t.sol:ClaimDomainStartGtDomainEnd
[PASS] test_claim_domainStart_gt_domainEnd() (gas: 627425)
Test result: ok. 1 passed; 0 failed; finished in 2.56ms
Running 5 tests for tests/LoanManager.t.sol:FinishCollateralLiquidationTests
[PASS] test_finishCollateralLiquidation_callAfterTriggerDefaultOnUncollateralizedLoan() (gas: 120405)
[PASS] test_finishCollateralLiquidation_callBeforeTriggerDefault() (gas: 62644)
[PASS] test_finishCollateralLiquidation_notManager() (gas: 286580)
[PASS] test_finishCollateralLiquidation_paused() (gas: 42051)
[PASS] test_finishCollateralLiquidation_success_withCollateral() (gas: 352686)
Test result: ok. 5 passed; 0 failed; finished in 2.62ms
Running 6 tests for tests/LoanManager.t.sol:UpgradeTests
[PASS] test_upgrade_noAuth() (gas: 40856)
[PASS] test_upgrade_notScheduled() (gas: 43295)
[PASS] test_upgrade_paused() (gas: 34992)
[PASS] test_upgrade_success_asPoolDelegate() (gas: 84424)
[PASS] test_upgrade_success_asSecurityAdmin() (gas: 75528)
[PASS] test_upgrade_upgradeFailed() (gas: 79374)