{"assessments":[],"deployments":[],"fuzz":[],"identity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"interpretation":"Records acceptance and evidence. Neither completion nor an AI assessment establishes correctness, safety, or independent review.","jobId":"6ea78e03-89e0-424f-a664-902c790a57be","kind":"shape:chain","nodes":[{"acceptedSubmissionHash":"17aa50868751fc03b946a494ca7c64c74df9ed4255fce4f22b217b81675143e1","dependsOn":["write_foundry_tests"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"c26edc76dc7a76e09a42c3634054429c1679c6e247747d647a03f77e5b332d7e","skillId":"adversarial-review","tools":[]},"key":"adversarial_review","kind":"code","role":"review","skillHash":"c26edc76dc7a76e09a42c3634054429c1679c6e247747d647a03f77e5b332d7e","skillId":"adversarial-review","state":"accepted"},{"acceptedSubmissionHash":"f3d319f0a708b4e61932bde7ca0f1d71784e5c1f2675e1b49a13dbf551b42f2c","dependsOn":[],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"ff1fad07fad3b8e08a71e9c5201fd632e161ed8163eb407676ea8b0bedbe179e","skillId":"write-foundry-tests","tools":[]},"key":"write_foundry_tests","kind":"code","role":"tests","skillHash":"ff1fad07fad3b8e08a71e9c5201fd632e161ed8163eb407676ea8b0bedbe179e","skillId":"write-foundry-tests","state":"accepted"}],"objective":"Extend the invariant testing of MiniPair (launch 114, this commit; live on Sepolia at 0x898a07c8911f43218c5c2e1b7ae8146026f7e040 and still unused, totalShares() == 0 on 2026-09-27) with properties the existing suite does not cover, then review it. Tests only: new files under test/; do not change src/, foundry.toml or lib/.\n\nWhat MiniPair is (follow this, it is not a Uniswap V2 pair): one native-ETH / MSWAP pool with a 30 bps fee kept in the pool. Reserves are internal (getReserves()) and change only through addLiquidity, removeLiquidity, swapExactETHForTokens and swapExactTokensForETH; there is no sync, no skim and no LP token — providers hold internal shares (sharesOf, totalShares) and 1,000 shares are locked to address(0) on the first deposit. Later deposits either pull only the ratio-matched tokens (tokenOptimal rounded up) or use every token and refund surplus ETH. Plain ETH transfers revert (no receive). test/MiniPair.invariant.t.sol already checks reserves == balances with no donations, reserves == net flows, share conservation and quotes, and k per swap inside its handler; test/MiniPair.t.sol already fuzzes add-then-remove and round-trip swaps.\n\nAdd test/MiniPair.invariantDonations.t.sol with a new handler that also donates MSWAP directly, forces ETH in with vm.deal(address(pair), balance + x), deposits with deliberately mis-ratioed amounts to hit both deposit branches, and acts through a contract actor that rejects ETH (its removeLiquidity and token-to-ETH swaps must revert and leave all state unchanged). Invariants: (1) reserves ≤ balances at all times, and reserves still equal the ghost net flows, so donations never move reserves or quotes; (2) the value of one share never falls: k / totalShares² is non-decreasing across every action, checked as Math.mulDiv(kAfter, sharesBefore², sharesAfter²) ≥ kBefore; (3) for every actor, removing all its shares now would pay at most shares × reserve / totalShares of each side, and the sum over actors plus the locked shares' portion never exceeds the reserves; (4) once live, totalShares never drops below 1,000 and both reserves stay above zero; (5) a failed ETH send never leaves shares, reserves or balances changed. The profile sets fail_on_revert = true: bound inputs so every intended call succeeds, and model the rejecting actor's expected reverts with try/catch inside the handler. If a property fails on the unmodified contract, keep the test, write the shrunk sequence in a comment and let the review judge it; do not weaken it.","parentJobId":null,"planHash":"16360dbd05284ead3794e4e55f4522d0824fbc77eac768257d69062c69278bb9","previousHash":"0000000000000000000000000000000000000000000000000000000000000000","projectId":"6ea78e03-89e0-424f-a664-902c790a57be","publication":{"commit":null,"deliveredAt":null,"repoUrl":"https://github.com/identity-md-launches/launch-317-extend-invariant-testing-minipair"},"receiptIdentity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"registry":"0xb6d0a187b050fa5bb0b87033a203f37becf4a775","research":[],"schema":"identitymd-work-v1","signals":[{"agentId":"50990","feedbackHash":"d7423b43f830661f62cb433e1ede156101d27d271624cc2ddf382890c5f43e2c","nodeKey":"adversarial_review","submissionHash":"17aa50868751fc03b946a494ca7c64c74df9ed4255fce4f22b217b81675143e1","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"50960","feedbackHash":"9308c7deac105f12883a13fb0b078194d38dfcb4cdc8f48a5aa39a700a72b619","nodeKey":"write_foundry_tests","submissionHash":"f3d319f0a708b4e61932bde7ca0f1d71784e5c1f2675e1b49a13dbf551b42f2c","tag1":"verification:checks","tag2":"acceptance-v2","value":1}],"site":null,"snapshotHash":"aeaefe9e0549362eacf373ddf2996edc1cf5984239f861182c4ebbfdd773f77e","state":"completed","submissions":[{"artifacts":[],"attempt":1,"bundleHash":null,"device":"1f805d33d69c340e","findings":[],"hash":"17aa50868751fc03b946a494ca7c64c74df9ed4255fce4f22b217b81675143e1","nodeId":"c338c702-d6dd-4347-a1f4-1be253914a51","outcome":"completed","summary":"Wrote `{\"findings\":[]}` to [.imd-findings.json](/root/.identitymd/work/6ea78e03-89e0-424f-a664-902c790a57be/c338c702-d6dd-4347-a1f4-1be253914a51/.imd-findings.json).\n\nNo substantiated defects found. All six invariants passed across 16,384 actions; targeted rounding, donation, hostile-price, and ETH-send rollback checks passed. Source, tests, and configuration remain unchanged.","treeHash":null,"usage":{"cachedInputTokens":916608,"inputTokens":63204,"model":"gpt-6-astra","outputTokens":9804,"runtime":"codex","turns":5,"wallClockMs":417043}},{"artifacts":[],"attempt":1,"bundleHash":"d1350604ca5bb96d95d2c05af56476b9653f33251b8f9a8ac194e9b3ac2d669b","device":"e4a4ecf9fefd4a46","findings":[],"hash":"f3d319f0a708b4e61932bde7ca0f1d71784e5c1f2675e1b49a13dbf551b42f2c","nodeId":"9072161d-e557-473f-994f-466e0332eac8","outcome":"completed","summary":"Added and reviewed [MiniPair.invariantDonations.t.sol](/home/seat/.identitymd/work/6ea78e03-89e0-424f-a664-902c790a57be/9072161d-e557-473f-994f-466e0332eac8/test/MiniPair.invariantDonations.t.sol), covering all five properties, both deposit branches, failed ETH sends, and rounding boundaries.\n\nValidation: `forge build` passed; `forge test` passed all 59 tests. The deeper invariant run completed 32,768 calls with zero unexpected reverts.\n\nNo contract defects were found in these checks.","treeHash":"fee79b47c3dc7582a3211641d4bcba7be985429b","usage":{"cachedInputTokens":1059712,"inputTokens":72020,"model":"gpt-6-astra","outputTokens":20021,"runtime":"codex","turns":7,"wallClockMs":695865}}],"verification":[{"checks":[{"durationMs":2142,"exitCode":0,"name":"build","output":"Compiling 36 files with Solc 0.8.26\nSolc 0.8.26 finished in 2.08s\nCompiler run successful!\nwarning[erc20-unchecked-transfer]: ERC20 'transfer' and 'transferFrom' calls should check the return value\n   ╭▸ test/MiniSwapToken.t.sol:84:9\n   │\n84 │         token.transfer(bob, 1);\n   │         ━━━━━━━━━━━━━━━━━━━━━━\n   │\n   ╰ help: https://book.getfoundry.sh/reference/forge/forge-lint#erc20-unchecked-transfer\n\nwarning[unsafe-typecast]: typecasts that can truncate values should be checked\n   ╭▸ test/MiniPair.invariant.t.sol:26:37\n   │\n26 │             address actor = address(uint160(0xA11CE0 + i));\n   │                                     ━━━━━━━━━━━━━━━━━━━━━\n   │\n   ├ note: consider disabling this lint if you're certain the cast is safe\n   │       \n   │       // casting to 'uint160' is safe because [explain why]\n   │       // forge-lint: disable-next-line(unsafe-typecast)\n   │       \n   │       \n   ╰ help: https://book.getfoundry.sh/reference/forge/forge-lint#unsafe-typecast\n\nwarning[erc20-unchecked-transfer]: ERC20 'transfer' and 'transferFrom' calls should check the return value\n   ╭▸ test/MiniPair.t.sol:45:9\n   │\n45 │         token.transfer(who, tokens);\n   │         ━━━━━━━━━━━━━━━━━━━━━━━━━━━\n   │\n   ╰ help: https://book.getfoundry.sh/reference/forge/forge-lint#erc20-unchecked-transfer\n\nwarning[erc20-unchecked-transfer]: ERC20 'transfer' and 'transferFrom' calls should check the return value\n    ╭▸ test/MiniPair.invariantDonations.t.sol:400:13\n    │\n400 │             token.transfer(address(handler.actors(i)), 100_000_000e18);\n    │             ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n    │\n    ╰ help: https://book.getfoundry.sh/reference/forge/forge-lint#erc20-unchecked-transfer\n\nwarning[erc20-unchecked-transfer]: ERC20 'transfer' and 'transferFrom' calls should check the return value\n   ╭▸ test/MiniSwapToken.t.sol:90:9\n   │\n90 │         token.transferFrom(factory, bob, 1);\n   │         ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n   │\n   ╰ help: https://book.getfoundry.sh/reference/forge/forge-lint#erc20-unchecked-transfer\n\nwarning[erc20-unchecked-transfer]: ERC20 'transfer' and 'transferFrom' calls should check the return value\n   ╭▸ test/MiniPair.invariant.t.sol:38:13\n   │\n38 │             token.transfer(actors[i], each);\n   │             ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n   │\n   ╰ help: https://book.getfoundry.sh/reference/forge/forge-lint#erc20-unchecked-transfer\n\nwarning[erc20-unchecked-transfer]: ERC20 'transfer' and 'transferFrom' calls should check the return value\n    ╭▸ test/MiniSwapToken.t.sol:110:9\n    │\n110 │         token.transfer(to, amount);\n    │         ━━━━━━━━━━━━━━━━━━━━━━━━━━\n    │\n    ╰ help: https://book.getfoundry.sh/reference/forge/forge-lint#erc20-unchecked-transfer\n\nwarning[erc20-unchecked-transfer]: ERC20 'transfer' and 'transferFrom' calls should check the return value\n    ╭▸ test/MiniPair.t.sol:165:9\n    │\n165 │         token.transfer(dave, 1e18);\n    │         ━━━━━━━━━━━━━━━━━━━━━━━━━━\n    │\n    ╰ help: https://book.getfoundry.sh/reference/forge/forge-lint#erc20-unchecked-transfer\n\nwarning[erc20-unchecked-transfer]: ERC20 'transfer' and 'transferFrom' calls should check the return value\n    ╭▸ test/MiniPair.invariant.t.sol:140:9\n    │\n140 │         token.transfer(address(handler), 400_000_000e18);\n    │         ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n    │\n    ╰ help: https://book.getfoundry.sh/reference/forge/forge-lint#erc20-unchecked-transfer\n\nwarning[erc20-unchecked-transfer]: ERC20 'transfer' and 'transferFrom' calls should check the return value\n    ╭▸ test/MiniPair.t.sol:252:9\n    │\n252 │         token.transfer(address(rejecter), 100_000e18);\n    │         ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n    │\n    ╰ help: https://book.getfoundry.sh/reference/forge/forge-lint#erc20-unchecked-transfer\n\nwarning[erc20-unchecked-transfer]: ERC20 'transfer' and 'transferFrom' calls should check the return value\n    ╭▸ test/MiniPair.t.sol:376:9\n    │\n376 │         token.transfer(address(rejecter), 100_000e18);\n    │         ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n    │\n    ╰ help: https://book.getfoundry.sh/reference/forge/forge-lint#erc20-unchecked-transfer\n\nwarning[erc20-unchecked-transfer]: ERC20 'transfer' and 'transferFrom' calls should check the return value\n    ╭▸ test/MiniPair.t.sol:496:9\n    │\n496 │         token.transfer(dave, 1e18);\n    │         ━━━━━━━━━━━━━━━━━━━━━━━━━━\n    │\n    ╰ help: https://book.getfoundry.sh/reference/forge/forge-lint#erc20-unchecked-transfer\n\nwarning[erc20-unchecked-transfer]: ERC20 'transfer' and 'transferFrom' calls should check the return value\n    ╭▸ test/MiniPair.t.sol:507:9\n    │\n507 │         token.transfer(address(rejecter), 1_000e18);\n    │         ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n    │\n    ╰ help: https://book.getfoundry.sh/reference/forge/forge-lint#erc20-unchecked-transfer\n\nwarning[erc20-unchecked-transfer]: ERC20 'transfer' and 'transferFrom' calls should check the return value\n    ╭▸ test/MiniPair.t.sol:547:9\n    │\n547 │         token.transfer(address(pair), 10_000_000e18);\n    │         ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n    │\n    ╰ help: https://book.getfoundry.sh/reference/forge/forge-lint#erc20-unchecked-transfer\n\nwarning[erc20-unchecked-transfer]: ERC20 'transfer' and 'transferFrom' calls should check the return value\n    ╭▸ test/MiniPair.t.sol:605:9\n    │\n605 │         token.transfer(address(pair), 1_000_000e18);\n    │         ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n    │\n    ╰ help: https://book.getfoundry.sh/reference/forge/forge-lint#erc20-unchecked-transfer\n\nwarning[erc20-unchecked-transfer]: ERC20 'transfer' and 'transferFrom' calls should check the return value\n    ╭▸ test/MiniPair.t.sol:645:9\n    │\n645 │         token.transfer(address(attacker), 1_000_000e18);\n    │         ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n    │\n    ╰ help: https://book.getfoundry.sh/reference/forge/forge-lint#erc20-unchecked-transfer\n\nwarning[unsafe-typecast]: typecasts that can truncate values should be checked\n    ╭▸ test/MiniPair.t.sol:823:26\n    │\n823 │                 assertEq(bytes4(reason), MiniPair.ZeroAmount.selector);\n    │                          ━━━━━━━━━━━━━━\n    │\n    ├ note: consider disabling this lint if you're certain the cast is safe\n    │       \n    │       // casting to 'bytes4' is safe because [explain why]\n    │       // forge-lint: disable-next-line(unsafe-typecast)\n    │       \n    │       \n    ╰ help: https://book.getfoundry.sh/reference/forge/forge-lint#unsafe-typecast\n\nwarning[unsafe-typecast]: typecasts that can truncate values should be checked\n    ╭▸ test/MiniPair.t.sol:828:31\n    │\n828 │             bytes4 selector = bytes4(reason);\n    │                               ━━━━━━━━━━━━━━\n    │\n    ├ note: consider disabling this lint if you're certain the cast is safe\n    │       \n    │       // casting to 'bytes4' is safe because [explain why]\n    │       // forge-lint: disable-next-line(unsafe-typecast)\n    │       \n    │       \n    ╰ help: https://book.getfoundry.sh/reference/forge/forge-lint#unsafe-typecast\n\n","passed":true},{"durationMs":4042,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 9 tests for test/MiniSwapToken.t.sol:MiniSwapTokenTest\n[PASS] testFuzz_transfersConserveSupply(address,uint256) (runs: 256, μ: 50280, ~: 50302)\nLogs:\n  Bound result 979115122625483862871117456\n\n[PASS] test_creationCodeHasNoConstructorArguments() (gas: 477167)\n[PASS] test_metadata() (gas: 18053)\n[PASS] test_mintsWholeSupplyToDeployer() (gas: 17303)\n[PASS] test_noAdminOrMintEntryPoints() (gas: 38821)\n[PASS] test_runtimeHasNoDelegatecallCallcodeOrSelfdestruct() (gas: 1030897)\n[PASS] test_transferAndAllowanceAreExact() (gas: 90418)\n[PASS] test_transferFromRevertsWithoutAllowance() (gas: 16319)\n[PASS] test_transferRevertsWhenBalanceIsShort() (gas: 16099)\nSuite result: ok. 9 passed; 0 failed; 0 skipped; finished in 163.64ms (165.99ms CPU time)\n\nRan 43 tests for test/MiniPair.t.sol:MiniPairTest\n[PASS] testFuzz_addThenRemoveNeverProfits(uint256,uint256) (runs: 256, μ: 237404, ~: 249390)\nLogs:\n  Bound result 6441\n  Bound result 2631156186\n\n[PASS] testFuzz_firstDepositSharesFollowSqrt(uint256,uint256) (runs: 256, μ: 161944, ~: 181317)\nLogs:\n  Bound result 40897825657531535593\n  Bound result 4010609361620055514381995\n\n[PASS] testFuzz_kNeverDecreasesAcrossSwaps(uint256[8],uint8) (runs: 256, μ: 366958, ~: 372318)\nLogs:\n  Bound result 2130\n  Bound result 2000000000000000000\n  Bound result 100\n  Bound result 1003\n  Bound result 3197\n  Bound result 35469\n  Bound result 100000000000000000000\n  Bound result 24399\n\n[PASS] testFuzz_quotesMatchSwaps(uint256,uint256) (runs: 256, μ: 226248, ~: 233354)\nLogs:\n  Bound result 11230928404263378330\n  Bound result 4461057712130672689742630\n\n[PASS] testFuzz_roundTripEthNeverProfits(uint256) (runs: 256, μ: 234190, ~: 234256)\nLogs:\n  Bound result 286086307429508824995\n\n[PASS] testFuzz_roundTripTokenNeverProfits(uint256) (runs: 256, μ: 220670, ~: 237027)\nLogs:\n  Bound result 28879286086307429508824995\n\n[PASS] test_addLiquidityEnforcesMinShares() (gas: 49846)\n[PASS] test_addLiquidityRevertsOnZeroAmounts() (gas: 30541)\n[PASS] test_addLiquidityRevertsWhenRefundIsRejected() (gas: 539792)\n[PASS] test_addLiquidityRevertsWithoutApproval() (gas: 180661)\n[PASS] test_constructorIsNotPayable() (gas: 40787)\n[PASS] test_constructorRevertsOnExcessiveFee() (gas: 1117965)\n[PASS] test_constructorRevertsOnZeroToken() (gas: 59231)\n[PASS] test_constructorStoresParameters() (gas: 23086)\n[PASS] test_ethDonationDoesNotChangeQuotesOrReserves() (gas: 215294)\n[PASS] test_feesAccrueToLiquidityProviders() (gas: 378155)\n[PASS] test_firstDepositMintsSqrtMinusLockedMinimum() (gas: 190159)\n[PASS] test_firstDepositRevertsBelowLockedMinimum() (gas: 191563)\n[PASS] test_firstDepositorInflationAttackIsNotProfitable() (gas: 244969)\n[PASS] test_laterDepositEnforcesMinShares() (gas: 190217)\n[PASS] test_laterDepositPullsOnlyTheNeededTokens() (gas: 245989)\n[PASS] test_laterDepositRefundsExcessEth() (gas: 249695)\n[PASS] test_laterDepositTooSmallForAnyShareReverts() (gas: 188271)\n[PASS] test_pairRejectsFeeOnTransferToken() (gas: 1735554)\n[PASS] test_plainEthTransferReverts() (gas: 17893)\n[PASS] test_reentrancyOnAddLiquidityRefundIsBlocked() (gas: 1075672)\n[PASS] test_reentrancyOnRemoveLiquidityIsBlocked() (gas: 1039763)\n[PASS] test_reentrancyOnSwapTokensForEthIsBlocked() (gas: 1098985)\n[PASS] test_removeAllReturnsFundsMinusLockedMinimum() (gas: 243739)\n[PASS] test_removeLiquidityEnforcesMinimums() (gas: 188519)\n[PASS] test_removeLiquidityIsProportional() (gas: 211000)\n[PASS] test_removeLiquidityRevertsAboveBalance() (gas: 189620)\n[PASS] test_removeLiquidityRevertsOnZeroShares() (gas: 178481)\n[PASS] test_removeLiquidityRevertsWhenReceiverRejectsEth() (gas: 522846)\n[PASS] test_swapExactETHForTokensMatchesQuoteAndKeepsK() (gas: 217933)\n[PASS] test_swapExactTokensForETHMatchesQuoteAndKeepsK() (gas: 224417)\n[PASS] test_swapSlippageLimitsRevert() (gas: 237617)\n[PASS] test_swapTokensForEthRevertsWhenReceiverRejectsEth() (gas: 473892)\n[PASS] test_swapTokensRevertsWithoutApproval() (gas: 222610)\n[PASS] test_swapsRevertOnEmptyPool() (gas: 39772)\n[PASS] test_swapsRevertOnZeroInput() (gas: 189918)\n[PASS] test_swapsRevertWhenOutputRoundsToZero() (gas: 181683)\n[PASS] test_tokenDonationDoesNotChangeQuotesOrReserves() (gas: 225136)\nSuite result: ok. 43 passed; 0 failed; 0 skipped; finished in 163.74ms (447.39ms CPU time)\n\nRan 4 tests for test/MiniPair.invariant.t.sol:MiniPairInvariantTest\n[PASS] invariant_quotesFollowInternalReserves() (runs: 64, calls: 3072, reverts: 0)\n\n╭-----------------+------------------+-------+---------+----------╮\n| Contract        | Selector         | Calls | Reverts | Discards |\n+=================================================================+\n| MiniPairHandler | addLiquidity     | 792   | 0       | 0        |\n|-----------------+------------------+-------+---------+----------|\n| MiniPairHandler | removeLiquidity  | 793   | 0       | 0        |\n|-----------------+------------------+-------+---------+----------|\n| MiniPairHandler | swapEthForTokens | 734   | 0       | 0        |\n|-----------------+------------------+-------+---------+----------|\n| MiniPairHandler | swapTokensForEth | 753   | 0       | 0        |\n╰-----------------+------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 21312904008639575850\n  Bound result 669716118281951715111139\n  Bound result 100000000000000000000\n  Bound result 1000002\n  Bound result 9371376190865496477553943\n  Bound result 3460\n  Bound result 48411706838400345166\n  Bound result 643\n  Bound result 2\n  Bound result 1007\n  Bound result 11\n  Bound result 1\n  Bound result 5\n  Bound result 5438\n  Bound result 9\n  Bound result 124707766303292\n  Bound result 7777\n  Bound result 5050887938145132966\n  Bound result 5881782944965056650\n  Bound result 9970\n  Bound result 2\n  Bound result 3\n  Bound result 4173\n  Bound result 1\n  Bound result 1000000000\n  Bound result 25136234884755115062\n  Bound result 7967188487366065212\n  Bound result 9363086563\n  Bound result 95\n  Bound result 1\n  Bound result 4439\n  Bound result 1\n  Bound result 2\n  Bound result 122564760176361\n  Bound result 2000000000000000000\n  Bound result 2\n  Bound result 554874\n  Bound result 9\n  Bound result 8116569381049\n  Bound result 61258423259662907622\n  Bound result 4778005243282251851565776\n  Bound result 465\n  Bound result 1569843286845891478\n  Bound result 60\n  Bound result 5320753844573525710\n  Bound result 53905908525362434350\n  Bound result 767\n  Bound result 57218192\n  Bound result 4534897143749910114887404\n  Bound result 28603970491600686823\n  Bound result 49999999999999999999\n\n[PASS] invariant_reservesAreBackedByBalances() (runs: 64, calls: 3072, reverts: 0)\n\n╭-----------------+------------------+-------+---------+----------╮\n| Contract        | Selector         | Calls | Reverts | Discards |\n+=================================================================+\n| MiniPairHandler | addLiquidity     | 792   | 0       | 0        |\n|-----------------+------------------+-------+---------+----------|\n| MiniPairHandler | removeLiquidity  | 793   | 0       | 0        |\n|-----------------+------------------+-------+---------+----------|\n| MiniPairHandler | swapEthForTokens | 734   | 0       | 0        |\n|-----------------+------------------+-------+---------+----------|\n| MiniPairHandler | swapTokensForEth | 753   | 0       | 0        |\n╰-----------------+------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 21312904008639575850\n  Bound result 669716118281951715111139\n  Bound result 100000000000000000000\n  Bound result 1000002\n  Bound result 9371376190865496477553943\n  Bound result 3460\n  Bound result 48411706838400345166\n  Bound result 6728\n  Bound result 2\n  Bound result 1007\n  Bound result 11\n  Bound result 1\n  Bound result 5\n  Bound result 5413\n  Bound result 8\n  Bound result 124707766303292\n  Bound result 1863\n  Bound result 5050887938145132966\n  Bound result 5881782944965056650\n  Bound result 9970\n  Bound result 1\n  Bound result 3\n  Bound result 1031458998\n  Bound result 6\n  Bound result 1000000000\n  Bound result 25136234884755115062\n  Bound result 7967188487366065212\n  Bound result 9363086563\n  Bound result 1\n  Bound result 4447\n  Bound result 3\n  Bound result 2\n  Bound result 2000000000000000000\n  Bound result 2\n  Bound result 191389\n  Bound result 9\n  Bound result 8116569381049\n  Bound result 61258423259662907622\n  Bound result 2935027009705023173310242\n  Bound result 1569843286845891478\n  Bound result 5320753844573525710\n  Bound result 1144\n  Bound result 795\n  Bound result 57218192\n  Bound result 4534897143749910114887404\n  Bound result 28603970491600686823\n  Bound result 49999999999999999999\n\n[PASS] invariant_reservesEqualNetFlows() (runs: 64, calls: 3072, reverts: 0)\n\n╭-----------------+------------------+-------+---------+----------╮\n| Contract        | Selector         | Calls | Reverts | Discards |\n+=================================================================+\n| MiniPairHandler | addLiquidity     | 792   | 0       | 0        |\n|-----------------+------------------+-------+---------+----------|\n| MiniPairHandler | removeLiquidity  | 793   | 0       | 0        |\n|-----------------+------------------+-------+---------+----------|\n| MiniPairHandler | swapEthForTokens | 734   | 0       | 0        |\n|-----------------+------------------+-------+---------+----------|\n| MiniPairHandler | swapTokensForEth | 753   | 0       | 0        |\n╰-----------------+------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 21312904008639575850\n  Bound result 669716118281951715111139\n  Bound result 100000000000000000000\n  Bound result 1000002\n  Bound result 9371376190865496477553943\n  Bound result 3460\n  Bound result 48411706838400345166\n  Bound result 6728\n  Bound result 2\n  Bound result 1007\n  Bound result 11\n  Bound result 1\n  Bound result 5\n  Bound result 5414\n  Bound result 8\n  Bound result 124707766303292\n  Bound result 1864\n  Bound result 5050887938145132966\n  Bound result 5881782944965056650\n  Bound result 9970\n  Bound result 1\n  Bound result 3\n  Bound result 1031458999\n  Bound result 6\n  Bound result 1000000000\n  Bound result 25136234884755115062\n  Bound result 7967188487366065212\n  Bound result 9363086563\n  Bound result 1\n  Bound result 4448\n  Bound result 2\n  Bound result 2\n  Bound result 122554542564800\n  Bound result 2000000000000000000\n  Bound result 2\n  Bound result 50867\n  Bound result 9\n  Bound result 8116569381049\n  Bound result 61258423259662907622\n  Bound result 4412024160278210788006096\n  Bound result 1569843286845891478\n  Bound result 5320753844573525710\n  Bound result 990\n  Bound result 890\n  Bound result 57218192\n  Bound result 4534897143749910114887404\n  Bound result 28603970491600686823\n  Bound result 49999999999999999999\n\n[PASS] invariant_sharesAreConserved() (runs: 64, calls: 3072, reverts: 0)\n\n╭-----------------+------------------+-------+---------+----------╮\n| Contract        | Selector         | Calls | Reverts | Discards |\n+=================================================================+\n| MiniPairHandler | addLiquidity     | 792   | 0       | 0        |\n|-----------------+------------------+-------+---------+----------|\n| MiniPairHandler | removeLiquidity  | 793   | 0       | 0        |\n|-----------------+------------------+-------+---------+----------|\n| MiniPairHandler | swapEthForTokens | 734   | 0       | 0        |\n|-----------------+------------------+-------+---------+----------|\n| MiniPairHandler | swapTokensForEth | 753   | 0       | 0        |\n╰-----------------+------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 21312904008639575850\n  Bound result 669716118281951715111139\n  Bound result 100000000000000000000\n  Bound result 1000002\n  Bound result 9371376190865496477553943\n  Bound result 1575\n  Bound result 48411706838400345166\n  Bound result 644\n  Bound result 2\n  Bound result 1007\n  Bound result 11\n  Bound result 1\n  Bound result 5\n  Bound result 5437\n  Bound result 9\n  Bound result 124707766303292\n  Bound result 7778\n  Bound result 5050887938145132966\n  Bound result 5881782944965056650\n  Bound result 9970\n  Bound result 1\n  Bound result 3\n  Bound result 2302811998\n  Bound result 14\n  Bound result 1000000000\n  Bound result 25136234884755115062\n  Bound result 7967188487366065212\n  Bound result 6382299071\n  Bound result 95\n  Bound result 1\n  Bound result 4449\n  Bound result 1\n  Bound result 2\n  Bound result 2000000000000000000\n  Bound result 2\n  Bound result 385408\n  Bound result 9\n  Bound result 8116569381049\n  Bound result 61258423259662907622\n  Bound result 876034045180005157938506\n  Bound result 112628\n  Bound result 1569843286845891478\n  Bound result 4040\n  Bound result 5320753844573525710\n  Bound result 6513\n  Bound result 195525962\n  Bound result 57218192\n  Bound result 4534897143749910114887404\n  Bound result 28603970491600686823\n  Bound result 49999999999999999999\n\nSuite result: ok. 4 passed; 0 failed; 0 skipped; finished in 577.61ms (1.70s CPU time)\n\nRan 11 tests for test/MiniPair.invariantDonations.t.sol:MiniPairInvariantDonationsTest\n[PASS] invariant_allExitClaimsAreBoundedByReserves() (runs: 64, calls: 3072, reverts: 0)\n\n╭--------------------------+---------------------+-------+---------+----------╮\n| Contract                 | Selector            | Calls | Reverts | Discards |\n+=============================================================================+\n| MiniPairDonationsHandler | addWithEthRefund    | 274   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | addWithTokenSurplus | 273   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | buy                 | 285   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | donateTokens        | 264   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | forceEth            | 252   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | plainEth            | 291   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | rejectRefund        | 298   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | rejectRemove        | 276   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | rejectSell          | 301   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | remove              | 275   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | sell                | 283   | 0       | 0        |\n╰--------------------------+---------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 10000000000000000000\n  Bound result 1000000000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000000\n  Bound result 10000000000000000\n  Bound result 4743538490892068178921424\n  Bound result 31659608922265914385\n  Bound result 691026201674456859086\n  Bound result 2067722461777672325\n  Bound result 48047998316506113363622738\n  Bound result 188\n  Bound result 4722151697009405620643872\n  Bound result 774\n  Bound result 4999999999999999999900672\n  Bound result 433\n  Bound result 2326426780547511165230048\n  Bound result 20017579053529911631\n  Bound result 1691764169336062189700176\n  Bound result 14498\n  Bound result 2647000\n  Bound result 76000000\n  Bound result 2391594458465307858318371\n  Bound result 1000000\n  Bound result 139367205402954558275150\n  Bound result 88022058997504233041\n  Bound result 4629166088375494762732910\n  Bound result 4488410780521378369991246\n  Bound result 15495\n  Bound result 101005717\n  Bound result 206246325768423376032\n  Bound result 2594876507867192415632825\n  Bound result 31275417703096171498\n  Bound result 67327608284360843263\n  Bound result 3423612\n  Bound result 16776510\n  Bound result 3816089968086114780986775\n  Bound result 66716222147200687793\n  Bound result 3\n  Bound result 829171560013308798430627\n  Bound result 76335238913620659018\n  Bound result 229306\n  Bound result 7018\n  Bound result 4999999999999999999899808\n  Bound result 34184668941908715\n  Bound result 382952831031824641309136\n  Bound result 837728224564907820778699\n  Bound result 84651657212765068934\n  Bound result 1000000000000000000000000\n  Bound result 31\n  Bound result 386419469422118682\n  Bound result 893695073315714734\n  Bound result 4999999999999999999948638\n  Bound result 472709944360127724953\n  Bound result 3583195322347050776413416\n  Bound result 19828170507189369772\n  Bound result 3944\n  Bound result 51622\n  Bound result 99999999999999949808\n  Bound result 92456789005394877693\n  Bound result 399246131134356810213907\n  Bound result 1000000\n  Bound result 2794311137978331976121974\n  Bound result 1\n  Bound result 190535401239627919583\n  Bound result 49028084006527535405\n  Bound result 4548466748079420496991546\n  Bound result 586299364239782624\n\n[PASS] invariant_failedEthSendsAreAtomic() (runs: 64, calls: 3072, reverts: 0)\n\n╭--------------------------+---------------------+-------+---------+----------╮\n| Contract                 | Selector            | Calls | Reverts | Discards |\n+=============================================================================+\n| MiniPairDonationsHandler | addWithEthRefund    | 274   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | addWithTokenSurplus | 273   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | buy                 | 285   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | donateTokens        | 264   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | forceEth            | 252   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | plainEth            | 291   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | rejectRefund        | 298   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | rejectRemove        | 276   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | rejectSell          | 301   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | remove              | 275   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | sell                | 283   | 0       | 0        |\n╰--------------------------+---------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 10000000000000000000\n  Bound result 1000000000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000000\n  Bound result 10000000000000000\n  Bound result 4743538490892068178921424\n  Bound result 31659608922265914385\n  Bound result 691026201674456859086\n  Bound result 2067722461777672325\n  Bound result 48047998316506113363622738\n  Bound result 2418890149\n  Bound result 4110960958218893131594\n  Bound result 228\n  Bound result 4999999999999999999929797\n  Bound result 412\n  Bound result 2326426780547511165230048\n  Bound result 21012306604661071566\n  Bound result 1691764169336062189700176\n  Bound result 1091\n  Bound result 3172400\n  Bound result 76000000\n  Bound result 2391594458465307927221006\n  Bound result 1000000\n  Bound result 139367205402954558275150\n  Bound result 88022058997504233041\n  Bound result 605972315407717579845820\n  Bound result 240416327280174764414717\n  Bound result 15495\n  Bound result 101005717\n  Bound result 30528379293156741687\n  Bound result 298321663437483381337265\n  Bound result 42019323887762100260\n  Bound result 67327608284360843263\n  Bound result 3423612\n  Bound result 16776510\n  Bound result 421439450233838322003273\n  Bound result 88368838271322089395\n  Bound result 3\n  Bound result 840771507653224113174784\n  Bound result 26806165527482038576\n  Bound result 2753269878541316659595944\n  Bound result 6132\n  Bound result 4999999999999999999978464\n  Bound result 34184668941908715\n  Bound result 382952831031824641309136\n  Bound result 837728224564907820778699\n  Bound result 84651657212765068934\n  Bound result 1000000000000000000000000\n  Bound result 233\n  Bound result 86725972536570298110\n  Bound result 893695073315714734\n  Bound result 4999999999999999999980047\n  Bound result 472709944360127724953\n  Bound result 1934480247198184853543472\n  Bound result 3921323756107265947\n  Bound result 3822\n  Bound result 20307\n  Bound result 82304658471763665678\n  Bound result 92456789005394877693\n  Bound result 399246131134356810213907\n  Bound result 1000000\n  Bound result 1249108085690079447136091\n  Bound result 1\n  Bound result 192341607518123706279\n  Bound result 49028084006527535405\n  Bound result 1900143579068668719535573\n  Bound result 260999689439253133\n\n[PASS] invariant_livePoolRetainsLockedLiquidity() (runs: 64, calls: 3072, reverts: 0)\n\n╭--------------------------+---------------------+-------+---------+----------╮\n| Contract                 | Selector            | Calls | Reverts | Discards |\n+=============================================================================+\n| MiniPairDonationsHandler | addWithEthRefund    | 274   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | addWithTokenSurplus | 273   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | buy                 | 285   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | donateTokens        | 264   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | forceEth            | 252   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | plainEth            | 291   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | rejectRefund        | 298   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | rejectRemove        | 276   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | rejectSell          | 301   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | remove              | 275   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | sell                | 283   | 0       | 0        |\n╰--------------------------+---------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 10000000000000000000\n  Bound result 1000000000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000000\n  Bound result 10000000000000000\n  Bound result 4743538490892068178921424\n  Bound result 31659608922265914385\n  Bound result 691026201674456859086\n  Bound result 2067722461777672325\n  Bound result 48047998316506113363622738\n  Bound result 2418890148\n  Bound result 4110960958218893131596\n  Bound result 230\n  Bound result 1667592309\n  Bound result 414\n  Bound result 2326426780547511165230048\n  Bound result 6563398093931497219\n  Bound result 1691764169336062189700176\n  Bound result 19617\n  Bound result 8972160\n  Bound result 76000000\n  Bound result 2391594458465308687822521\n  Bound result 1000000\n  Bound result 139367205402954558275150\n  Bound result 88022058997504233041\n  Bound result 3233833846662623538518575\n  Bound result 4488411300912819578229860\n  Bound result 15495\n  Bound result 101005717\n  Bound result 156111821924957942091\n  Bound result 2862749655677931551262825\n  Bound result 14014428276939597950\n  Bound result 67327608284360843263\n  Bound result 3423612\n  Bound result 16776510\n  Bound result 781967594863396261873233\n  Bound result 98516019969020177485\n  Bound result 3\n  Bound result 829171560454137967981621\n  Bound result 33161262443394307538\n  Bound result 1053878\n  Bound result 6175\n  Bound result 4999999999999999999486281\n  Bound result 34184668941908715\n  Bound result 382952831031824641309136\n  Bound result 837728224564907820778699\n  Bound result 84651657212765068934\n  Bound result 1000000000000000000000000\n  Bound result 233\n  Bound result 303991561064913800892\n  Bound result 893695073315714734\n  Bound result 4999999999999999999885348\n  Bound result 472709944360127724953\n  Bound result 4077847053123601897597316\n  Bound result 54863602420579615246\n  Bound result 3821\n  Bound result 114722\n  Bound result 48362132205026262058\n  Bound result 92456789005394877693\n  Bound result 399246131134356810213907\n  Bound result 1000000\n  Bound result 4563880317022523791571380\n  Bound result 1\n  Bound result 85532085493434775513\n  Bound result 49028084006527535405\n  Bound result 3344762433428213892983602\n  Bound result 589236704559151147\n\n[PASS] invariant_quotesIgnoreDonations() (runs: 64, calls: 3072, reverts: 0)\n\n╭--------------------------+---------------------+-------+---------+----------╮\n| Contract                 | Selector            | Calls | Reverts | Discards |\n+=============================================================================+\n| MiniPairDonationsHandler | addWithEthRefund    | 274   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | addWithTokenSurplus | 273   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | buy                 | 285   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | donateTokens        | 264   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | forceEth            | 252   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | plainEth            | 291   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | rejectRefund        | 298   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | rejectRemove        | 276   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | rejectSell          | 301   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | remove              | 275   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | sell                | 283   | 0       | 0        |\n╰--------------------------+---------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 10000000000000000000\n  Bound result 1000000000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000000\n  Bound result 10000000000000000\n  Bound result 4743538490892068178921424\n  Bound result 31659608922265914385\n  Bound result 691026201674456859086\n  Bound result 2067722461777672325\n  Bound result 48047998316506113363622738\n  Bound result 2418890149\n  Bound result 4110960958218893131594\n  Bound result 228\n  Bound result 3836423772577455951709056\n  Bound result 412\n  Bound result 2326426780547511165230048\n  Bound result 21012306604661071566\n  Bound result 1691764169336062189700176\n  Bound result 19616\n  Bound result 3463180\n  Bound result 76000000\n  Bound result 2391594458465307965355551\n  Bound result 1000000\n  Bound result 139367205402954558275150\n  Bound result 88022058997504233041\n  Bound result 977744784606641502639022\n  Bound result 1236489118691453997992979\n  Bound result 15495\n  Bound result 101005717\n  Bound result 71091174795809419445\n  Bound result 2776232624414168711714519\n  Bound result 26801171228198238070\n  Bound result 67327608284360843263\n  Bound result 3423612\n  Bound result 16776510\n  Bound result 2890607469238532457246385\n  Bound result 28257489602212043770\n  Bound result 3\n  Bound result 1456511903778682934290904\n  Bound result 30807426802889891220\n  Bound result 1941716415522424101822156\n  Bound result 19741\n  Bound result 4999999999999999999974394\n  Bound result 34184668941908715\n  Bound result 382952831031824641309136\n  Bound result 837728224564907820778699\n  Bound result 84651657212765068934\n  Bound result 1000000000000000000000000\n  Bound result 233\n  Bound result 92140019237773042608\n  Bound result 893695073315714734\n  Bound result 4999999999999999999980448\n  Bound result 472709944360127724953\n  Bound result 1835555235987410753372149\n  Bound result 7233915555725832925\n  Bound result 3823\n  Bound result 19907\n  Bound result 4\n  Bound result 92456789005394877693\n  Bound result 399246131134356810213907\n  Bound result 1000000\n  Bound result 12150\n  Bound result 69147559675456628593\n  Bound result 135009854048977800009\n  Bound result 49028084006527535405\n  Bound result 2710082995276969242132331\n  Bound result 810534915707658246\n\n[PASS] invariant_reservesAreBackedAndEqualNetFlows() (runs: 64, calls: 3072, reverts: 0)\n\n╭--------------------------+---------------------+-------+---------+----------╮\n| Contract                 | Selector            | Calls | Reverts | Discards |\n+=============================================================================+\n| MiniPairDonationsHandler | addWithEthRefund    | 274   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | addWithTokenSurplus | 273   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | buy                 | 285   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | donateTokens        | 264   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | forceEth            | 252   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | plainEth            | 291   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | rejectRefund        | 298   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | rejectRemove        | 276   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | rejectSell          | 301   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | remove              | 275   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | sell                | 283   | 0       | 0        |\n╰--------------------------+---------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 10000000000000000000\n  Bound result 1000000000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000000\n  Bound result 10000000000000000\n  Bound result 4743538490892068178921424\n  Bound result 31659608922265914385\n  Bound result 691026201674456859086\n  Bound result 2067722461777672325\n  Bound result 48047998316506113363622738\n  Bound result 2418890148\n  Bound result 4110960958218893131596\n  Bound result 230\n  Bound result 1667592308\n  Bound result 412\n  Bound result 2326426780547511165230048\n  Bound result 6563398093931497219\n  Bound result 1691764169336062189700176\n  Bound result 19616\n  Bound result 8972160\n  Bound result 76000000\n  Bound result 2391594458465308687822521\n  Bound result 1000000\n  Bound result 139367205402954558275150\n  Bound result 88022058997504233041\n  Bound result 3233833846662623538518575\n  Bound result 4488411300912819578229860\n  Bound result 15495\n  Bound result 101005717\n  Bound result 156111821924957942091\n  Bound result 2862749655677931551262825\n  Bound result 14014428276939597950\n  Bound result 67327608284360843263\n  Bound result 3423612\n  Bound result 16776510\n  Bound result 781967594863396261873233\n  Bound result 98516019969020177485\n  Bound result 3\n  Bound result 829171560454137967981621\n  Bound result 33161262443394307538\n  Bound result 1053878\n  Bound result 19741\n  Bound result 4999999999999999999486281\n  Bound result 34184668941908715\n  Bound result 382952831031824641309136\n  Bound result 837728224564907820778699\n  Bound result 84651657212765068934\n  Bound result 1000000000000000000000000\n  Bound result 233\n  Bound result 303991561064913800892\n  Bound result 893695073315714734\n  Bound result 4999999999999999999885348\n  Bound result 472709944360127724953\n  Bound result 4077847053123601897597316\n  Bound result 54863602420579615246\n  Bound result 3821\n  Bound result 114722\n  Bound result 75511188204204728971\n  Bound result 92456789005394877693\n  Bound result 399246131134356810213907\n  Bound result 1000000\n  Bound result 4563880317022523791571380\n  Bound result 1\n  Bound result 85532085493434775513\n  Bound result 49028084006527535405\n  Bound result 3344762433428213892983602\n  Bound result 812060130788677363\n\n[PASS] invariant_shareValueNeverFalls() (runs: 64, calls: 3072, reverts: 0)\n\n╭--------------------------+---------------------+-------+---------+----------╮\n| Contract                 | Selector            | Calls | Reverts | Discards |\n+=============================================================================+\n| MiniPairDonationsHandler | addWithEthRefund    | 274   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | addWithTokenSurplus | 273   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | buy                 | 285   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | donateTokens        | 264   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | forceEth            | 252   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | plainEth            | 291   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | rejectRefund        | 298   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | rejectRemove        | 276   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | rejectSell          | 301   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | remove              | 275   | 0       | 0        |\n|--------------------------+---------------------+-------+---------+----------|\n| MiniPairDonationsHandler | sell                | 283   | 0       | 0        |\n╰--------------------------+---------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 10000000000000000000\n  Bound result 1000000000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000000\n  Bound result 10000000000000000\n  Bound result 4743538490892068178921424\n  Bound result 31659608922265914385\n  Bound result 691026201674456859086\n  Bound result 2067722461777672325\n  Bound result 48047998316506113363622738\n  Bound result 2418890149\n  Bound result 4110960958218893131594\n  Bound result 228\n  Bound result 4999999999999999999929797\n  Bound result 412\n  Bound result 2326426780547511165230048\n  Bound result 21012306604661071566\n  Bound result 1691764169336062189700176\n  Bound result 1091\n  Bound result 3172400\n  Bound result 76000000\n  Bound result 2391594458465307927221006\n  Bound result 1000000\n  Bound result 139367205402954558275150\n  Bound result 88022058997504233041\n  Bound result 605972315407717579845820\n  Bound result 240416327280174764414717\n  Bound result 15495\n  Bound result 101005717\n  Bound result 30528379293156741687\n  Bound result 298321663437483381337265\n  Bound result 42019323887762100260\n  Bound result 67327608284360843263\n  Bound result 3423612\n  Bound result 16776510\n  Bound result 421439450233838322003273\n  Bound result 88368838271322089395\n  Bound result 3\n  Bound result 840771507653224113174784\n  Bound result 26806165527482038576\n  Bound result 2753269878541316659595944\n  Bound result 6132\n  Bound result 4999999999999999999978464\n  Bound result 34184668941908715\n  Bound result 382952831031824641309136\n  Bound result 837728224564907820778699\n  Bound result 84651657212765068934\n  Bound result 1000000000000000000000000\n  Bound result 233\n  Bound result 86725972536570298110\n  Bound result 893695073315714734\n  Bound result 4999999999999999999980047\n  Bound result 472709944360127724953\n  Bound result 1934480247198184853543472\n  Bound result 3921323756107265947\n  Bound result 3822\n  Bound result 20307\n  Bound result 82304658471763665678\n  Bound result 92456789005394877693\n  Bound result 399246131134356810213907\n  Bound result 1000000\n  Bound result 1249108085690079447136091\n  Bound result 1\n  Bound result 192341607518123706279\n  Bound result 49028084006527535405\n  Bound result 1900143579068668719535573\n  Bound result 260999689439253134\n\n[PASS] testFuzz_failedEthSendsRollbackWithDonations(uint256,uint256,uint256) (runs: 256, μ: 1031191, ~: 1030885)\nLogs:\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 10000000000000000000\n  Bound result 1000000000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1002\n  Bound result 20006\n  Bound result 44894524835542245274\n  Bound result 4999999999999999999900702\n  Bound result 4999999999999999999901003\n  Bound result 20006\n\n[PASS] test_donationsBeforeDustSeedAndLastProviderExit() (gas: 8497050)\nLogs:\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 10000000000000000000\n  Bound result 1000000000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000000000\n  Bound result 100000000000000000000\n  Bound result 1001\n  Bound result 1001\n  Bound result 1\n  Bound result 1001\n  Bound result 1\n  Bound result 1001\n  Bound result 1\n  Bound result 1001\n  Bound result 1001\n\n[PASS] test_fullExitProbeChecksZeroPayoutDustReverts() (gas: 8279118)\nLogs:\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 10000000000000000000\n  Bound result 1000000000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1001\n  Bound result 4004\n  Bound result 1001\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n\n[PASS] test_mixedSequenceExercisesEveryAction() (gas: 1353459)\nLogs:\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 10000000000000000000\n  Bound result 1000000000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000000000\n  Bound result 100000000000000000000\n  Bound result 1000000000000000000\n  Bound result 50000000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 50000000000000000000000\n  Bound result 1000000000000000000\n  Bound result 316227766016837933199\n  Bound result 50000000000000000000000\n  Bound result 50000000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 3162277660168379330998\n\n[PASS] test_oneShareDepositsRoundInBothBranches() (gas: 8654427)\nLogs:\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 10000000000000000000\n  Bound result 1000000000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1001\n  Bound result 1003\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1\n  Bound result 1\n  Bound result 2\n  Bound result 1\n\nSuite result: ok. 11 passed; 0 failed; 0 skipped; finished in 3.96s (9.24s CPU time)\n\nRan 4 test suites in 3.96s (4.87s CPU time): 67 tests passed, 0 failed, 0 skipped (67 total tests)\n","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"f3d319f0a708b4e61932bde7ca0f1d71784e5c1f2675e1b49a13dbf551b42f2c","verifiedTreeHash":"fee79b47c3dc7582a3211641d4bcba7be985429b","verifierVersion":"0.1.0+ff982c0f"}]}