No files changed, compilation skipped

Ran 2 tests for test/invariants/Inv09_TimeBoundedTerminalPath.t.sol:Inv09_TimeBoundedTerminalPath
[PASS] test_expired_bond_has_permissionless_force_exit_that_credits_principal() (gas: 94101)
[PASS] test_unassigned_task_has_permissionless_deadline_refund() (gas: 150193)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 1.34ms (119.20µs CPU time)

Ran 1 test for test/invariants/Inv10_UpheldChallengesPersist.t.sol:Inv10_UpheldChallengesPersist
[PASS] test_upheld_breach_persists_through_finalization_and_gates_distribution() (gas: 185677)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 1.21ms (179.86µs CPU time)

Ran 1 test for test/invariants/Inv11_PausePreservesWithdrawals.t.sol:Inv11_PausePreservesWithdrawals
[PASS] test_credit_and_withdraw_native_after_notional_pause() (gas: 53924)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 128.36µs (37.17µs CPU time)

Ran 1 test for test/invariants/Inv12_NoUnboundedLoops.t.sol:Inv12_NoUnboundedLoops
[PASS] test_max_bids_cap_enforced() (gas: 1015665)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 555.81µs (420.94µs CPU time)

Ran 1 test for test/invariants/Inv13_PrivatePublicParity.t.sol:Inv13_PrivatePublicParity
[PASS] test_opaque_private_commitment_has_the_same_verified_weight_as_public_evidence() (gas: 315460)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 449.04µs (84.93µs CPU time)

Ran 1 test for test/invariants/Inv14_ForcedTransferSafe.t.sol:Inv14_ForcedTransferSafe
[PASS] test_skim_moves_donations_leaves_credits_alone() (gas: 118397)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 319.78µs (49.52µs CPU time)

Ran 1 test for test/invariants/Inv15_NoSelfBonds.t.sol:Inv15_NoSelfBonds
[PASS] test_self_bond_rejected() (gas: 17392)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 259.35µs (32.08µs CPU time)

Ran 1 test for test/invariants/Inv01_AssetsCoverLiabilities.t.sol:Inv01_AssetsCoverLiabilities
[PASS] invariant_01_AssetsCoverLiabilities() (runs: 64, calls: 2048, reverts: 1873)

╭---------------------------------+----------------------+-------+---------+----------╮
| Contract                        | Selector             | Calls | Reverts | Discards |
+=====================================================================================+
| AccountabilityBondV3Safe        | advanceToFinalizable | 38    | 38      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| AccountabilityBondV3Safe        | attestBreach         | 30    | 30      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| AccountabilityBondV3Safe        | createBond           | 37    | 37      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| AccountabilityBondV3Safe        | forceExit            | 22    | 22      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| AccountabilityBondV3Safe        | freezeSettlement     | 25    | 25      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| AccountabilityBondV3Safe        | fundNative           | 26    | 26      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| AccountabilityBondV3Safe        | markExpired          | 27    | 27      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| AccountabilityBondV3Safe        | pause                | 24    | 24      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| AccountabilityBondV3Safe        | settle               | 32    | 32      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| AccountabilityBondV3Safe        | unpause              | 30    | 30      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| AccountabilityBondV3Safe        | withdrawCredit       | 21    | 21      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| PartnershipBondV3Safe           | advanceToFinalizable | 27    | 27      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| PartnershipBondV3Safe           | cancelBeforeFunding  | 32    | 32      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| PartnershipBondV3Safe           | createBond           | 28    | 28      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| PartnershipBondV3Safe           | forceExit            | 32    | 32      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| PartnershipBondV3Safe           | freezeSettlement     | 24    | 24      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| PartnershipBondV3Safe           | fundNative           | 30    | 30      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| PartnershipBondV3Safe           | markExpired          | 46    | 46      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| PartnershipBondV3Safe           | pause                | 23    | 23      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| PartnershipBondV3Safe           | requestSettlement    | 34    | 34      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| PartnershipBondV3Safe           | settle               | 30    | 30      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| PartnershipBondV3Safe           | skimSurplus          | 29    | 29      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| PartnershipBondV3Safe           | unpause              | 36    | 36      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| PartnershipBondV3Safe           | withdrawCredit       | 27    | 27      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| RewardProgramV3                 | cancelProgram        | 29    | 29      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| RewardProgramV3                 | claimReward          | 29    | 29      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| RewardProgramV3                 | commit               | 25    | 25      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| RewardProgramV3                 | createProgram        | 37    | 0       | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| RewardProgramV3                 | fundERC20            | 29    | 29      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| RewardProgramV3                 | fundNative           | 26    | 1       | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| RewardProgramV3                 | issue                | 21    | 21      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| RewardProgramV3                 | release              | 27    | 27      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| RewardProgramV3                 | setAuthorizedIssuer  | 28    | 28      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| RewardProgramV3                 | withdrawUnused       | 32    | 32      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| DisputeRegistryV3               | fileDispute          | 31    | 17      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| DisputeRegistryV3               | finalizeByTimeout    | 21    | 21      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| DisputeRegistryV3               | respond              | 25    | 24      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| DisputeRegistryV3               | setAdjudicator       | 29    | 29      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| DisputeRegistryV3               | vote                 | 24    | 24      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| DisputeRegistryV3               | withdrawCredit       | 26    | 26      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| TaskEscrowV3                    | acceptBid            | 21    | 21      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| TaskEscrowV3                    | approve              | 23    | 23      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| TaskEscrowV3                    | createTaskNative     | 22    | 18      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| TaskEscrowV3                    | dispute              | 28    | 28      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| TaskEscrowV3                    | forceRefund          | 28    | 28      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| TaskEscrowV3                    | placeBid             | 27    | 27      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| TaskEscrowV3                    | resolveDispute       | 31    | 31      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| TaskEscrowV3                    | setProtocolFee       | 28    | 28      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| TaskEscrowV3                    | setTreasury          | 20    | 20      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| TaskEscrowV3                    | submitWork           | 29    | 29      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| TaskEscrowV3                    | withdrawCredit       | 26    | 26      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| MutualAidPoolV3                 | contributeERC20      | 26    | 26      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| MutualAidPoolV3                 | pay                  | 23    | 23      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| MutualAidPoolV3                 | setCaps              | 28    | 28      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| ERC8004ValidationRegistryV3Safe | registerNative       | 31    | 31      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| ERC8004ValidationRegistryV3Safe | setMinStake          | 25    | 25      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| ERC8004ValidationRegistryV3Safe | setTreasury          | 27    | 27      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| ERC8004ValidationRegistryV3Safe | slash                | 30    | 30      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| ERC8004ValidationRegistryV3Safe | withdraw             | 28    | 28      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| ERC8004ValidationRegistryV3Safe | withdrawSlashedStake | 28    | 28      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| VaultfireBIPVaultV3             | approve              | 39    | 0       | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| VaultfireBIPVaultV3             | deposit              | 27    | 27      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| VaultfireBIPVaultV3             | mint                 | 31    | 31      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| VaultfireBIPVaultV3             | redeem               | 30    | 30      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| VaultfireBIPVaultV3             | setOwner             | 38    | 38      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| VaultfireBIPVaultV3             | transfer             | 26    | 25      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| VaultfireBIPVaultV3             | transferFrom         | 29    | 28      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| VaultfireBIPVaultV3             | withdraw             | 27    | 27      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| MockERC20                       | approve              | 28    | 0       | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| MockERC20                       | mint                 | 25    | 0       | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| MockERC20                       | transfer             | 34    | 34      | 0        |
|---------------------------------+----------------------+-------+---------+----------|
| MockERC20                       | transferFrom         | 36    | 36      | 0        |
╰---------------------------------+----------------------+-------+---------+----------╯

Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 81.94ms (77.89ms CPU time)

Ran 1 test for test/invariants/Inv02_NoOrphanPrincipal.t.sol:Inv02_NoOrphanPrincipal
[PASS] test_posted_principal_is_fully_accounted_for_at_settlement() (gas: 149053)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 1.75ms (510.50µs CPU time)

Ran 2 tests for test/invariants/Inv03_MutualConsent.t.sol:Inv03_MutualConsent
[PASS] test_matching_signatures_from_both_parties_create_bond() (gas: 385382)
[PASS] test_signature_for_different_terms_cannot_supply_mutual_consent() (gas: 40624)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 1.42ms (883.94µs CPU time)

Ran 2 tests for test/invariants/Inv04_NoSignatureReplay.t.sol:Inv04_NoSignatureReplay
[PASS] test_nonce_reuse_rejected_after_a_valid_first_submission() (gas: 336327)
[PASS] test_wrong_chainId_rejected() (gas: 17466)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 1.02ms (500.72µs CPU time)

Ran 1 test for test/invariants/Inv05_NoSelfReportPayout.t.sol:Inv05_NoSelfReportPayout
[PASS] test_subject_cannot_self_report_and_settle_without_oracle_freeze() (gas: 164495)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 1.05ms (102.56µs CPU time)

Ran 1 test for test/invariants/Inv06_TotalPayoutBounded.t.sol:Inv06_TotalPayoutBounded
[PASS] test_settlement_cannot_pay_more_than_collateral_and_rewards_are_reserve_bounded() (gas: 342640)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 1.15ms (123.54µs CPU time)

Ran 1 test for test/invariants/Inv07_GovCannotWithdrawPending.t.sol:Inv07_GovCannotWithdrawPending
[PASS] test_multisig_cannot_skim_pending_bond_principal() (gas: 289479)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 1.12ms (92.76µs CPU time)

Ran 1 test for test/invariants/Inv08_SettlementInputsFrozen.t.sol:Inv08_SettlementInputsFrozen
[PASS] test_only_oracle_can_freeze_and_settlement_requires_the_frozen_state() (gas: 100846)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 1.13ms (155.86µs CPU time)

Ran 14 tests for test/vault/VaultfireBIPVaultV3ERC4626.t.sol:VaultfireBIPVaultV3ERC4626Test
[PASS] testFuzz_allPreviewsUseRequiredRoundingDirections(uint96,uint96) (runs: 100000, μ: 170492, ~: 170422)
[PASS] testFuzz_depositMintsExactlyPreviewedSharesAndTransfersAssets(uint96) (runs: 100000, μ: 156017, ~: 155981)
[PASS] testFuzz_directDonationMintsNoSharesAndCannotProfitTheFirstDepositor(uint96) (runs: 100000, μ: 158807, ~: 158771)
[PASS] testFuzz_followerReceivesSharesAfterFirstDepositorDonation(uint96) (runs: 100000, μ: 223086, ~: 223064)
[PASS] testFuzz_roundTripDepositThenSelfWithdrawReturnsAllAssets(uint96) (runs: 100000, μ: 164375, ~: 164354)
[PASS] testFuzz_roundTripMintThenSelfRedeemReturnsAllAssets(uint96) (runs: 100000, μ: 164006, ~: 163984)
[PASS] testFuzz_totalSharesReconcileAndOutstandingSharesAreSolvent(uint96,uint96,uint96) (runs: 100000, μ: 229176, ~: 229279)
[PASS] test_donationInflationCannotPullAssetsForZeroShares() (gas: 210088)
[PASS] test_erc4626SurfaceAndMaxFunctions() (gas: 163356)
[PASS] test_failedAssetPullCannotCreateFreeShares() (gas: 84058)
[PASS] test_feeOnTransferAssetCannotCreateUnbackedShares() (gas: 1514303)
[PASS] test_shareTransfersAndDelegatedWithdrawSpendAllowance() (gas: 230625)
[PASS] test_unauthorizedUserAndProtocolOwnerCannotWithdrawDepositorAssets() (gas: 165480)
[PASS] test_zeroValueActionsAreRejected() (gas: 35145)
Suite result: ok. 14 passed; 0 failed; 0 skipped; finished in 46.17s (83.93s CPU time)

Ran 16 test suites in 46.19s (46.27s CPU time): 32 tests passed, 0 failed, 0 skipped (32 total tests)
