{"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":"52dcac2f-c372-4fd5-beeb-d7c6fa49c86b","kind":"shape:chain","nodes":[{"acceptedSubmissionHash":"e7103e309ea8259e16eebcf4c5c75a81eb22d5e8b062947dbf5d68e3fdf9b979","dependsOn":["audit_imported_code"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"ea5db8ea23a93d7611f9ab749d6255ad6596ee76a985c1261d43e63612dfc3cf","skillId":"adapt-contract-project","tools":[]},"key":"adapt_contract_project","kind":"code","role":"implement","skillHash":"ea5db8ea23a93d7611f9ab749d6255ad6596ee76a985c1261d43e63612dfc3cf","skillId":"adapt-contract-project","state":"accepted"},{"acceptedSubmissionHash":"ad1205fb67b206e682540d84ccc6cfc129bcdb288450769b37beb8c960672f51","dependsOn":["adapt_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"bc5bfc8455464381f2db18badb2b55cf8bec1e535c019349a0378fa990741171","skillId":"audit-specialist","subagents":3,"tools":[]},"key":"audit_economics","kind":"code","role":"review","skillHash":"bc5bfc8455464381f2db18badb2b55cf8bec1e535c019349a0378fa990741171","skillId":"audit-specialist","state":"accepted"},{"acceptedSubmissionHash":"8873edc2b033793ab5a1c64d0804c5fea23f855d2f1129f4a5037b1c246965af","dependsOn":["adapt_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"bc5bfc8455464381f2db18badb2b55cf8bec1e535c019349a0378fa990741171","skillId":"audit-specialist","subagents":3,"tools":[]},"key":"audit_flow","kind":"code","role":"review","skillHash":"bc5bfc8455464381f2db18badb2b55cf8bec1e535c019349a0378fa990741171","skillId":"audit-specialist","state":"accepted"},{"acceptedSubmissionHash":"9cab75d0469cac4a0a8ddb175238e6af6ffc0653b4c0252da8dfe7fd46494878","dependsOn":[],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"b72293c3366fff3f0b93151bca72cc6cbd189dad31d1ccd1d34dd483f2165a36","skillId":"audit-imported-code","subagents":4,"tools":[]},"key":"audit_imported_code","kind":"code","role":"review","skillHash":"b72293c3366fff3f0b93151bca72cc6cbd189dad31d1ccd1d34dd483f2165a36","skillId":"audit-imported-code","state":"accepted"},{"acceptedSubmissionHash":null,"dependsOn":["adapt_contract_project","write_foundry_tests","manifest","audit_math","audit_permissions","audit_economics","audit_flow"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"b89279670f5a00f5d26286edee00c97dd158b997031350a01cafe6e0329ad227","skillId":"audit-judge","subagents":4,"tools":[]},"key":"audit_judge","kind":"code","role":"review","skillHash":"b89279670f5a00f5d26286edee00c97dd158b997031350a01cafe6e0329ad227","skillId":"audit-judge","state":"waiting"},{"acceptedSubmissionHash":"ae527f2a05d4d69ea5739a1995ada4e2e678a81b978a59d05c15897c1e62b52d","dependsOn":["adapt_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"bc5bfc8455464381f2db18badb2b55cf8bec1e535c019349a0378fa990741171","skillId":"audit-specialist","subagents":3,"tools":[]},"key":"audit_math","kind":"code","role":"review","skillHash":"bc5bfc8455464381f2db18badb2b55cf8bec1e535c019349a0378fa990741171","skillId":"audit-specialist","state":"accepted"},{"acceptedSubmissionHash":"e2c863ce4077d16f6d2129403d821f44065093a418b663b479b81f6a9e0118b8","dependsOn":["adapt_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"bc5bfc8455464381f2db18badb2b55cf8bec1e535c019349a0378fa990741171","skillId":"audit-specialist","subagents":3,"tools":[]},"key":"audit_permissions","kind":"code","role":"review","skillHash":"bc5bfc8455464381f2db18badb2b55cf8bec1e535c019349a0378fa990741171","skillId":"audit-specialist","state":"accepted"},{"acceptedSubmissionHash":null,"dependsOn":["adapt_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"tools":[]},"key":"manifest","kind":"code","role":"integrate","skillHash":null,"skillId":null,"state":"working"},{"acceptedSubmissionHash":null,"dependsOn":["adapt_contract_project"],"execution":{"forkChains":[1],"network":false,"profile":"foundry","requires":[],"skillHash":"606842ccca0e7c5d3017a54684625438eab9b351eb51dcf0cf88c43d1ea41464","skillId":"write-foundry-tests","subagents":4,"tools":[]},"key":"write_foundry_tests","kind":"code","role":"tests","skillHash":"606842ccca0e7c5d3017a54684625438eab9b351eb51dcf0cf88c43d1ea41464","skillId":"write-foundry-tests","state":"failed"}],"objective":"Deploy the profiles contract of moneycanbuy.fun as it is: Profiles, an evm_contracts launch from this repository on Ethereum mainnet (no token), one contract. No core contract reads it and it reads no core contract; it calls two Ethereum mainnet contracts given to its constructor.\n\nContracts, in this order:\n1. Profiles, constructorArgs [\"0xAdfe6bd2C17dB514241e1A9B3342F88876073B7F\", \"0x00000000000000447e69651d841bD8D104Bed493\"]\n\nThe first argument is textRules: the TextRules helper of moneycanbuy.fun on Ethereum mainnet (its runtime code is src/helpers/TextRules.sol of this repository); Profiles calls only its pure checkScreenshotUrl(string). The second is delegateRegistry: the delegate.xyz v2 registry; Profiles calls only checkDelegateForERC721(address,address,address,uint256,bytes32).\n\nProfiles keeps one display name and one picture per wallet. set(name, pic, nft, tokenId, link) replaces the caller's whole record and emits ProfileSet; clear() erases it, frees its name at once and emits ProfileCleared. A name is 3..20 bytes of A-Z a-z 0-9 _, not starting with 0x or 0X, otherwise BadName. Names are unique by skeleton: lower case, _ dropped, 0 becomes o, 1 and i become l; the skeleton has at least 3 characters (BadName), a skeleton held by another wallet reverts NameTaken. These 17 skeletons are reserved for nobody and revert NameReserved, compared as whole skeletons only (a name that merely contains one is allowed): moneycanbuy, moneycanbuyfun, mcb, lmd, lmdfun, swarm, yolo, admln, offlclal, support, team, treasury, oracle, mod, moderator, system, deployer. The name may be empty when there is a picture; name and picture both empty reverts BadName. pic 0 none (nft, tokenId and link empty); pic 1 an ERC-721 and pic 2 an ERC-1155 token (link empty, nft must answer supportsInterface 0x80ac58cd or 0xd9b67a26, the caller must hold tokenId now, for ERC-721 also through a delegate.xyz v2 delegation, otherwise NotNftOwner); pic 3 an https link (nft and tokenId zero) accepted by textRules.checkScreenshotUrl, whose errors HostNotAllowed and BadEvidence pass through unchanged; anything else BadPicture. Every call to a token contract or the registry is a STATICCALL capped at CALL_GAS = 30000 gas that reads 32 bytes; a failure counts as not owned. profileOf(user) returns (name, pic, nft, tokenId, link, owned, since) with owned re-checked on every read (true for a link, false for none); profilesOf(users) returns one per address; ownerOfName(name) returns the wallet holding that skeleton, address(0) when free or invalid. Hiding a profile is not part of this contract: the site's hide list HiddenList takes (the Profiles address, 3, the wallet as uint160) like any other item.\n\nFixed parameters, fail, don't change: the two constructor arguments above, in this order; the name rules, the skeleton mapping and exactly the 17 reserved skeletons above, none added or removed and no substring match; PIC_NONE() = 0, PIC_ERC721() = 1, PIC_ERC1155() = 2, PIC_LINK() = 3, CALL_GAS() = 30000; the functions set(string,uint8,address,uint256,string), clear(), profileOf(address), profilesOf(address[]), ownerOfName(string), nameOwner(bytes20), textRules(), delegateRegistry(), with the return tuple of profileOf in the order above; the events ProfileSet(address indexed user, string name, uint8 pic, address nft, uint256 tokenId, string link) and ProfileCleared(address indexed user); the errors BadName(), NameTaken(), NameReserved(), BadPicture(), NotNftOwner(), ZeroAddress(), HostNotAllowed(), BadEvidence(). The site decodes exactly these; if a reproduced finding would need any of them changed, fail the job instead of changing it.\n\nProfiles has no owner, no admin, no role, no pause and no upgrade path; no payable function, no receive or fallback, no token transfer; it holds no money. The constructor only stores the two addresses (textRules must not be zero, ZeroAddress).\n\nKnown limitations (accepted rules, not findings): anyone may set a profile, gas is the only cost and a free name goes to the first wallet that takes it; a name stays with its wallet when the picture token is sold, only owned turns false; the picture token is any contract that answers the checks, a token contract that reverts, burns gas or returns a large payload only makes its own owned false; the link is checked by host and length only, not by content; names are not filtered beyond the charset, the skeleton and the reserved list.\n\nThe tests must keep passing: forge test (743 tests), of them 34 in test/Profiles.t.sol for this contract; test/fork/ProfilesFork.t.sol runs against the two constructor contracts on a mainnet fork (FORK_URL).\n\nAudit it as it arrived. Adapt only what the launch rules or a reproduced audit finding require, and record each change in ADAPTATION.md. Do not change the fixed parameters above, and do not add an owner, a pause, an upgrade path, a fee, a payable function or a token transfer.\nKnown limitations listed in docs are accepted rules, not findings; do not change them.","parentJobId":null,"planHash":"6260d21b58a1fdbfd5d4a8dd0dc7cf91846c24fe5cc8160cca06513d518f3f96","previousHash":"0000000000000000000000000000000000000000000000000000000000000000","projectId":"52dcac2f-c372-4fd5-beeb-d7c6fa49c86b","publication":{"commit":null,"deliveredAt":null,"repoUrl":"https://github.com/identity-md-launches/launch-2665-deploy-profiles-contract-moneycanbuy-fun"},"receiptIdentity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"registry":"0xb6d0a187b050fa5bb0b87033a203f37becf4a775","research":[],"schema":"identitymd-work-v1","signals":[{"agentId":"52159","feedbackHash":"6b0c938ea15d31a4d2f1b1759878b9a09d71e76fe4d5fd86932e0a4040338698","nodeKey":"adapt_contract_project","submissionHash":"e7103e309ea8259e16eebcf4c5c75a81eb22d5e8b062947dbf5d68e3fdf9b979","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"52189","feedbackHash":"7664f71431d67638fd1a0584d1cd7276431d88d6dbb34a91249ae0794b27f91f","nodeKey":"audit_economics","submissionHash":"ad1205fb67b206e682540d84ccc6cfc129bcdb288450769b37beb8c960672f51","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51081","feedbackHash":"9a246d2e9e5e628ca72ce0d32d077824df9fbde2a4a995b7a9289bc40a114177","nodeKey":"audit_flow","submissionHash":"8873edc2b033793ab5a1c64d0804c5fea23f855d2f1129f4a5037b1c246965af","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51423","feedbackHash":"21c28fecf8081ae2d652b3a3b9f2049e9ee11be6d28717aff19f18e50864d4f3","nodeKey":"audit_imported_code","submissionHash":"9cab75d0469cac4a0a8ddb175238e6af6ffc0653b4c0252da8dfe7fd46494878","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51154","feedbackHash":"c6c5e2b1eaf72414b09f2bb1dd54b0f2b90969f254c902faf5516d50f6c927e7","nodeKey":"audit_math","submissionHash":"ae527f2a05d4d69ea5739a1995ada4e2e678a81b978a59d05c15897c1e62b52d","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51195","feedbackHash":"847bad05d21f940b9e16658aa32d03aea6256a39713e984b96f22a75e5cffb79","nodeKey":"audit_permissions","submissionHash":"e2c863ce4077d16f6d2129403d821f44065093a418b663b479b81f6a9e0118b8","tag1":"review:submission","tag2":"acceptance-v2","value":1}],"site":null,"snapshotHash":"4267ac0c40ae8cbba04821b52ea233ce7e2b65447c726ac5baa4e4836a4ddcf2","state":"blocked","submissions":[{"artifacts":[],"attempt":2,"bundleHash":null,"device":"a406deaac63a93b0","findings":[],"hash":"103d040d066a98c2337f0609a12eace08832f93588301ce877bf33e00b5c6a85","nodeId":"dceeaee3-d555-4a24-b38e-f14abf89dffe","outcome":"failed","summary":"this task's fork tests did not run here, because the local build did not finish, so it was not submitted","treeHash":null,"usage":{"cachedInputTokens":1807265,"inputTokens":48,"model":"claude-opus-5-5","outputTokens":42805,"runtime":"claude","turns":25,"wallClockMs":2897656}},{"artifacts":[],"attempt":3,"bundleHash":null,"device":"5739ce0d803a43cd","findings":[],"hash":"2e6ce60a965904f929c359db1826ae5739c5f540d55fc30901b829842e9e4b79","nodeId":"dceeaee3-d555-4a24-b38e-f14abf89dffe","outcome":"failed","summary":"this task's fork tests did not run here, because the local build did not finish, so it was not submitted","treeHash":null,"usage":{"cachedInputTokens":2137892,"inputTokens":56,"model":"claude-opus-5-5","outputTokens":47965,"runtime":"claude","turns":32,"wallClockMs":1270075}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"943650541094145e","findings":[],"hash":"70d326dd46d59c40fc77a3da12b1eda63fb4e525e0bfdf50c67a39b680fcacc5","nodeId":"dceeaee3-d555-4a24-b38e-f14abf89dffe","outcome":"failed","summary":"this task's fork tests did not run here, because the local build did not finish, so it was not submitted","treeHash":null,"usage":{"cachedInputTokens":4720640,"inputTokens":123393,"model":"gpt-6-astra","outputTokens":38888,"runtime":"codex","turns":16,"wallClockMs":2036764}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"2c968e88904ec22b","findings":[{"citation":"resolved","description":"Periphery / first-principles note, no change required by the brief. _owned asks the registry with rights = bytes32(0). In delegate.xyz v2 a zero rights argument matches only delegations made with empty rights (wallet, contract or token level); a delegation the holder created with a specific rights string (for example a hot wallet given only the rights \"profile\" or a marketplace-specific rights key) returns false, so the hot wallet gets NotNftOwner at set and owned = false on read. This matches the comment on IDelegateRegistry (\"rights = 0 means all rights\") and the brief's wording (\"through a delegate.xyz v2 delegation\") does not distinguish rights-scoped delegations, so it is recorded as documented behaviour for the site's help text, not as a defect. Verified on a mainnet fork against the real registry (test/scratch/ProfilesForkProbe.t.sol): token-level and wallet-level all-rights delegations make owned true inside CALL_GAS (about 8.5k gas per registry read, hit or miss), a delegateAll with rights \"profile\" does not.","line":245,"path":"src/Profiles.sol","reproduction":"Mainnet fork, Profiles(0xAdfe6bd2C17dB514241e1A9B3342F88876073B7F, 0x00000000000000447e69651d841bD8D104Bed493). holder = ownerOf(827) on 0x0000eC93127BAA929E58E97dd0095A2BFb38ec1D. (1) vm.prank(holder); registry.delegateAll(HOT, bytes32(\"profile\"), true). (2) vm.prank(HOT); profiles.set(\"hot\", 1, NFT, 827, \"\") -> reverts NotNftOwner. Expected by a reader of the brief: a delegate.xyz v2 delegation exists, so HOT may use the picture. Actual: only a delegation with rights == bytes32(0) is honoured (delegateAll(HOT, bytes32(0), true) makes the same set succeed and profileOf(HOT).owned == true).","severity":"info","snippet":"                    IDelegateRegistry.checkDelegateForERC721.selector, user, holder, nft, tokenId, bytes32(0)","title":"Rights-scoped delegate.xyz v2 delegations never count as holding the ERC-721 picture (only all-rights delegations do)"},{"citation":"resolved","description":"First-principles note, no change required: the brief fixes the rule as \"not starting with 0x or 0X\" and this line implements exactly that. All other look-alike rules of the contract work on the skeleton (0 -> o, 1/i -> l, case folded), but this one does not, so a spelling that is visually the same as a forbidden one (\"Oxdead\", \"OXdead\") is accepted, and ownerOfName(\"0xdead\") then answers address(0) while ownerOfName(\"oxdead\") answers the holder. The site therefore cannot assume that a profile name can never look like a hex prefix. Reproduced in test/scratch/ProfilesProbe.t.sol::test_NameStartingOx_AllowedButSkeletonLooksLikeHex.","line":166,"path":"src/Profiles.sol","reproduction":"vm.prank(ALICE); profiles.set(\"0xabc\", 0, address(0), 0, \"\") -> BadName (as specified). vm.prank(ALICE); profiles.set(\"Oxabc\", 0, address(0), 0, \"\") -> succeeds, ProfileSet(ALICE, \"Oxabc\", ...). Then ownerOfName(\"0xabc\") == address(0) and ownerOfName(\"oxabc\") == ALICE. Expected if the rule were meant to be skeleton-based: BadName for \"Oxabc\" too. Actual: accepted; consistent with the literal rule in the brief.","severity":"info","snippet":"        if (b[0] == \"0\" && (b[1] == \"x\" || b[1] == \"X\")) return (false, 0, 0);","title":"The 0x prefix rule is applied to the raw spelling only, so \"Oxabc\" is accepted and occupies the skeleton \"oxabc\" that the refused \"0xabc\" would have"}],"hash":"8873edc2b033793ab5a1c64d0804c5fea23f855d2f1129f4a5037b1c246965af","nodeId":"3f8b583c-c709-48dd-8906-daf0f0f29c5b","outcome":"completed","summary":"Review complete. The findings file is in place and the working tree has no source changes.\n\n**Outcome:** no defect found in the control-flow area of `src/Profiles.sol`. The contract behaves as the brief specifies on every path I traced. The findings file holds two informational notes, both with concrete reproductions, and a coverage row for all 116 listed entry points plus four invariant rows.\n\n**What I checked (Execution Trace, Periphery, First Principles passes):**\n- `set`: name parse, skeleton mapping, the 17 reserved skeletons as whole-skeleton matches, NameTaken ordering, all four picture branches, the registry update when the skeleton changes, `since`, link deletion, and the event.\n- `clear`: frees the skeleton key before deleting the record. The registry invariant held under fuzzed set/clear sequences over three wallets and six spellings.\n- Periphery: every token and registry read is a STATICCALL capped at CALL_GAS reading 32 bytes. Probes with an Error(string) revert, a 31-byte answer, a 64-byte answer, dirty high address bits and `supportsInterface` returning 2 all produced owned=false or BadPicture without reverting reads.\n- Mainnet fork via a public RPC: the deployed TextRules runtime equals the local source, HostNotAllowed and BadEvidence pass through unchanged, and a real delegate.xyz v2 delegation makes `owned` true inside the cap. One registry read costs about 8.5k gas on a hit or a miss.\n- Constructor runs on an empty chain, no owner, pause, upgrade path, payable function, receive or fallback.\n\n**Informational notes recorded (no change required by the brief):**\n1. Only all-rights delegate.xyz delegations count. A delegation made with a specific rights string gives NotNftOwner. This matches the interface comment, so it is a documentation point for the site.\n2. The 0x prefix rule is literal. \"Oxabc\" is accepted and takes the skeleton \"oxabc\" that the refused \"0xabc\" would have had.\n\n**Test status:** the full suite passes.\n\n| Suite | Result |\n|---|---|\n| forge test (without scratch) | 749 passed, 0 failed, 5 skipped |\n| test/fork/ProfilesFork.t.sol on mainnet | 3 passed |\n| scratch probes (local and fork) | 10 passed |\n\nThe scratch files under test/scratch/ are mine and are not part of the submission. Entry points of the other contracts are marked holds with the reason that Profiles neither calls nor is called by them; they were not reviewed.","treeHash":null,"usage":{"cachedInputTokens":1334241,"inputTokens":420,"model":"claude-fable-5-1","outputTokens":37814,"runtime":"claude","turns":28,"wallClockMs":1629905}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"a43d0c18792c5628","findings":[],"hash":"8c4c8e21a27fa811c5623db501e82a61963c74baae1809e347ff1268e2665c20","nodeId":"61948724-46aa-4ca4-bd19-62e8d83e48db","outcome":"failed","summary":"git checkout -B imd-submission failed: stopped by SIGTERM at its 1 ms limit","treeHash":null,"usage":{"cachedInputTokens":7175808,"inputTokens":102845,"model":"gpt-6-astra","outputTokens":32586,"runtime":"codex","turns":18,"wallClockMs":2152207}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"56e50117311155be","findings":[{"citation":"resolved","description":"CALL_GAS is a fixed parameter of the launch and the accepted limitation covers token contracts that burn gas, so this is recorded for documentation, not for a code change. ERC721A and similar collections store ownership only at the first id of a batch mint; ownerOf(id) walks backwards one cold SLOAD (2100 gas) per position until it finds the stored owner. Under the 30000 gas cap of _call32 the walk is cut off at roughly the 13th position of a batch, so a wallet that genuinely holds such a token gets NotNftOwner from set() and, if it had set the token while the batch was shallower, profileOf().owned reads false. Holders of tokens minted in batches of 13 or more (team mints, airdrops, large allowlist mints) cannot use them as a picture. No funds or state are at risk; the site should document that only tokens whose ownerOf answers within 30000 gas are accepted.","line":29,"path":"src/Profiles.sol","reproduction":"test/scratch/ProfilesReview.t.sol test_BatchNft_DeepTokenNotOwned: a BatchNft mock (ownerOf walks back over unwritten slots exactly as ERC721A's _packedOwnershipOf does, supportsInterface answers 0x80ac58cd) mints ids 1..40 to ALICE in one batch. ALICE calls profiles.set(\"\", 1, nft, id, \"\") for id = 1, 2, 3, ... Expected per the brief: the caller holds every id, so each set succeeds. Actual: ids 1..12 succeed, id 13 (offset 12, ownerOf measured at about 34,500 gas from outside) reverts NotNftOwner, as do all deeper ids; a direct nft.ownerOf(13) call returns ALICE.","severity":"info","snippet":"    uint256 public constant CALL_GAS = 30_000;","title":"CALL_GAS 30000 rejects legitimately held ERC-721 tokens whose ownerOf walks a batch (ERC721A-style) deeper than ~12 positions"},{"citation":"resolved","description":"clear() does not check that a record exists: on an empty record it deletes nothing, frees no name and still emits ProfileCleared. Any wallet can emit an unlimited number of ProfileCleared events for itself at gas cost only, which an indexer that treats the event as 'a profile was removed' processes as no-op removals. No state is affected and no other wallet is touched; the cost is log noise only. A minimal guard (return or revert when p.name == 0 and p.pic == 0) would remove it, but the brief's wording for clear() does not require one, so this is informational.","line":125,"path":"src/Profiles.sol","reproduction":"test/scratch/ProfilesReview.t.sol test_ClearEmptyEmits: fresh Profiles, vm.prank(0xA11CE); profiles.clear(); with vm.recordLogs(). Expected: no event for a wallet that never set a profile (or a revert). Actual: one ProfileCleared(0xA11CE) log is recorded and the call succeeds.","severity":"info","snippet":"        emit ProfileCleared(msg.sender);","title":"clear() emits ProfileCleared for a wallet that has no profile"}],"hash":"9cab75d0469cac4a0a8ddb175238e6af6ffc0653b4c0252da8dfe7fd46494878","nodeId":"95ecabab-e665-4a5c-867f-54318d3d3454","outcome":"completed","summary":"Review complete. The findings file holds two informational items and no defect that opens a revision.\n\n**Verdict.** `src/Profiles.sol` matches the brief as it arrived. I found no loss, no broken invariant, no access gap and nothing the launch forbids. Both items in `.imd-findings.json` are informational.\n\n**What I read.** `src/Profiles.sol` in full, `src/helpers/TextRules.sol` (checkScreenshotUrl, checkHost, the host list), `src/interfaces/IDelegateRegistry.sol`, `test/Profiles.t.sol`, `test/fork/ProfilesFork.t.sol`, the mocks, `docs/LAUNCH-PROFILES.md`, and the two protected floor tests. Both constructor contracts were reached on mainnet through a public RPC. The live TextRules runtime is byte-identical to the local build, and the live delegate.xyz v2 registry answers the exact selector Profiles sends with a 32-byte word.\n\n**What I verified by running code.**\n- The 34 Profiles tests and the 3 fork tests pass on a fork of current mainnet.\n- A 256-run fuzz over random valid names confirms the stored-name skeleton and the parse-time skeleton agree. Renaming and clearing free exactly the skeleton another wallet can then take, and the reserved list matches the 17 skeletons in the brief.\n- Delegation through the real registry works under the 30k cap: token-level and wallet-level delegations with all rights count, a specific-rights delegation does not, and a revoked one turns `owned` false. The repo's fork test only covers the holder path, so this was an untested edge.\n- Deployed with the two mainnet addresses on an empty chain, the constructor succeeds and the runtime (5,489 bytes) has no DELEGATECALL, CALLCODE or SELFDESTRUCT on any reachable path.\n- No owner, role, payable path, receive or fallback exists. Every outside call is a STATICCALL, so no reentrancy surface.\n\n**Findings (both info).**\n- **Batch-minted ERC-721 tokens.** ERC721A-style `ownerOf` walks back one cold SLOAD per position. Under the fixed 30,000 gas cap, a token held at position 13 or deeper in a batch gets NotNftOwner from `set` and reads as not owned. CALL_GAS is a fixed parameter and the accepted limitation covers gas-heavy tokens, so this is for the site's documentation only.\n- **`clear()` on an empty record** emits ProfileCleared without changing state. Harmless log noise.\n\n**Not completed.** The full `forge test` run for the 743 count did not finish within the 10-minute foreground limit, even with reduced fuzz and invariant runs. The Profiles, fork and protected-style checks that this launch depends on all pass. Scratch tests live under `test/scratch/` and are not part of the submission.","treeHash":null,"usage":{"cachedInputTokens":782303,"inputTokens":354,"model":"claude-fable-5-1","outputTokens":27764,"runtime":"claude","turns":30,"wallClockMs":1679317}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"fe5e46fb044c6af1","findings":[{"citation":"resolved","description":"Invariant guide, 'diverge view from write' / Flow Gap seam execution x periphery. The brief promises that a token picture accepted by set is one the caller holds and that profileOf re-checks the same ownership on every read. Both checks go through _owned with the same CALL_GAS = 30000 stipend, but they do not run under the same conditions. In set, _checkPicture first calls supportsInterface on the token (Profiles.sol:222) and only then _owned (Profiles.sol:224), inside the same transaction. For a token behind a proxy (ERC-1967 / transparent / UUPS, the common deployment of ERC721A collections) the ERC-165 call warms the proxy's implementation slot (2100 -> 100 gas) and the implementation account (2600 -> 100 gas), so the ownerOf call in set has about 4,500 more gas available inside the 30,000 cap than the ownerOf call of a later profileOf, where the user's tx starts cold. For an ERC721A-style ownerOf that walks back one cold SLOAD per batch position, the write check accepts positions 10 and 11 of a batch while every cold read answers owned = false for the same token, holder and tokenId, with nothing changed on the token. The accepted limitation ('a token contract that burns gas only makes its own owned false') covers a token that is too expensive for both paths; it does not cover set succeeding for a picture the contract itself will never show. Impact: the wallet pays a set that stores a picture nobody will ever see as owned, and the site shows a profile with a picture flagged unowned although the wallet holds the token; no funds involved. CALL_GAS is a fixed parameter and must not change. Minimal fix that keeps every fixed parameter: in _checkPicture call _owned(msg.sender, ...) before the supportsInterface call (the token account itself is warmed by nft.code.length in both orders, and that cost is charged to the caller outside the stipend, so after the reorder the write check sees the same cold implementation slot and implementation account a cold read sees). Alternatively document that proxied batch-minted tokens beyond position ~9 of a batch may be accepted by set yet read as not owned. Measured gas of the two live dependencies for reference (eth_estimateGas through a public RPC, minus the 21000 base and calldata): delegate.xyz v2 checkDelegateForERC721 ~8,300 including the cold account, identity.md ownerOf ~3,000; both fit the cap with margin, so the real constructor dependencies are not affected.","line":222,"path":"src/Profiles.sol","proof":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.28;\n\nimport {Test, console} from \"forge-std/Test.sol\";\n\nimport {Profiles} from \"src/Profiles.sol\";\nimport {TextRules} from \"src/helpers/TextRules.sol\";\n\n/// @dev ERC721A-style ownership: only the first id of a batch stores its owner and ownerOf walks back one cold SLOAD\n///      per position (as ERC721A's _packedOwnershipOf does). Deployed behind an ERC-1967 proxy, as many collections are.\ncontract BatchImpl {\n    mapping(uint256 => address) internal _owners;\n    uint256 public nextId;\n\n    function supportsInterface(bytes4 id) external pure returns (bool) {\n        return id == 0x80ac58cd || id == 0x01ffc9a7;\n    }\n\n    function mintBatch(address to, uint256 count) external {\n        uint256 first = nextId == 0 ? 1 : nextId;\n        _owners[first] = to;\n        nextId = first + count;\n    }\n\n    function ownerOf(uint256 id) external view returns (address) {\n        require(id != 0 && id < nextId, \"no token\");\n        uint256 cur = id;\n        while (true) {\n            address o = _owners[cur];\n            if (o != address(0)) return o;\n            --cur;\n        }\n        return address(0);\n    }\n}\n\n/// @dev Minimal ERC-1967 proxy: one SLOAD of the implementation slot, then DELEGATECALL.\ncontract Proxy {\n    bytes32 constant SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n\n    constructor(address impl) {\n        assembly {\n            sstore(SLOT, impl)\n        }\n    }\n\n    fallback() external payable {\n        assembly {\n            let impl := sload(SLOT)\n            calldatacopy(0, 0, calldatasize())\n            let ok := delegatecall(gas(), impl, 0, calldatasize(), 0, 0)\n            returndatacopy(0, 0, returndatasize())\n            if iszero(ok) { revert(0, returndatasize()) }\n            return(0, returndatasize())\n        }\n    }\n}\n\n/// @title ProfilesWarmthTest\n/// @notice A token picture that `set` accepts must read as owned in the next transaction (nothing changed on the\n///         token). Each call runs against cold state (vm.cool), as separate mainnet transactions do.\n///         Fails on the current code: in `set`, the ERC-165 call through the proxy warms the implementation slot and\n///         the implementation account before `ownerOf` runs under CALL_GAS, so `ownerOf` gets ~4,500 more gas inside\n///         the cap than a cold `profileOf` gives it; batch positions 10 and 11 pass `set` and read as not owned.\n///         Passes when `set` checks ownership under the same cold conditions a read has (e.g. `_owned` before the\n///         ERC-165 call), or when the ownership check and the read are otherwise given the same budget.\ncontract ProfilesWarmthTest is Test {\n    address constant ALICE = address(0xA11CE);\n\n    function _cool(address a, address b, address c) internal {\n        vm.cool(a);\n        vm.cool(b);\n        vm.cool(c);\n    }\n\n    function test_PictureAcceptedBySet_ReadsOwnedWhenCold() public {\n        Profiles p = new Profiles(address(new TextRules()), address(0));\n        BatchImpl impl = new BatchImpl();\n        address nft = address(new Proxy(address(impl)));\n        BatchImpl(nft).mintBatch(ALICE, 40);\n\n        uint256 firstDivergent;\n        uint256 lastSetOk;\n        for (uint256 id = 1; id <= 40; ++id) {\n            _cool(nft, address(impl), address(p));\n            vm.prank(ALICE);\n            (bool ok,) = address(p).call(abi.encodeCall(Profiles.set, (\"\", uint8(1), nft, id, \"\")));\n            if (!ok) continue;\n            lastSetOk = id;\n            _cool(nft, address(impl), address(p));\n            bool owned = p.profileOf(ALICE).owned;\n            console.log(\"id\", id, \"accepted by set; cold profileOf owned:\", owned);\n            if (!owned && firstDivergent == 0) firstDivergent = id;\n        }\n        console.log(\"last id accepted by set\", lastSetOk);\n        console.log(\"first id accepted by set but read cold as not owned\", firstDivergent);\n        assertEq(firstDivergent, 0, \"set accepted a picture that a cold profileOf reports as not owned\");\n    }\n}","reproduction":"State: a token T = ERC-1967 proxy -> implementation with ERC721A-style ownership (only the first id of a batch stores the owner; ownerOf(id) walks back one cold SLOAD per position); T.mintBatch(ALICE, 40) so ids 1..40 belong to ALICE and T.supportsInterface(0x80ac58cd) is true. Profiles deployed with any TextRules and delegateRegistry = address(0) (the registry is never reached since ownerOf returns ALICE or fails). Each call below starts from cold state (separate transactions on mainnet; vm.cool on T, the implementation and Profiles in the test). Tx 1: ALICE calls set(\"\", 1, T, 10, \"\"). Expected per the brief: either NotNftOwner or an accepted picture that reads as owned. Actual: the call succeeds (supportsInterface warms the implementation slot and account; ownerOf(10) then finishes within the 30,000 cap and returns ALICE). Tx 2: anyone calls profileOf(ALICE). Expected: owned = true (ALICE still holds id 10, nothing changed). Actual: owned = false (ownerOf(10) now starts with a cold implementation slot and a cold implementation account inside the cap and runs out of gas; _call32 returns ok = false). The same holds for id 11; from id 12 on set reverts NotNftOwner, and for ids 1..9 both paths agree. Run: forge test --match-path test/scratch/ProfilesWarmth.t.sol -vv ; fails on this code with 'set accepted a picture that a cold profileOf reports as not owned: 10 != 0' and logs the per-id table.","severity":"low","snippet":"            (bool ok, uint256 yes) = _call32(nft, abi.encodeWithSelector(0x01ffc9a7, iface));\n            if (!ok || yes != 1) revert BadPicture();\n            if (!_owned(msg.sender, pic, nft, tokenId)) revert NotNftOwner();","title":"set accepts an ERC-721 picture that every later cold profileOf reports as not owned: the ERC-165 call warms a proxied token before ownerOf runs under CALL_GAS, so the write check has ~4,500 more gas t"}],"hash":"ad1205fb67b206e682540d84ccc6cfc129bcdb288450769b37beb8c960672f51","nodeId":"3a6b22f5-404b-4f44-8386-06ef427d4525","outcome":"completed","summary":"Review complete. The findings file is written at `.imd-findings.json` with one finding and 123 coverage rows (all 116 listed entry points plus 7 invariant and dependency rows).\n\n**What I audited.** The Profiles contract against the Pashov Economic Security, Invariant and Flow Gap guides, plus the Mindset. I traced both state-changing entry points and the three views, confirmed the 17 reserved skeletons match the brief exactly, and ran a stateful fuzz over set and clear with 15,000 calls checking that every stored name maps back to its wallet, no key is ever stranded, no reserved skeleton is ever held, and the contract never holds ETH. All held. The existing 40 Profiles tests pass.\n\n**Live dependencies.** Through a public RPC, the deployed TextRules runtime is byte-identical to the local build, and it accepts an arweave link while rejecting an unlisted host. The delegate.xyz v2 registry call and the identity.md ownerOf both fit comfortably inside the 30,000 gas cap.\n\n**One finding, low severity.** In `set`, the ERC-165 call runs before the ownership check inside the same transaction. For a token behind a proxy, that first call warms the implementation slot and account, so the ownerOf call in `set` has roughly 4,500 more gas inside the cap than a cold `profileOf` has later. With an ERC721A-style proxied collection, batch positions 10 and 11 are accepted by `set` but every later cold read reports them as not owned, although the wallet still holds the token. A proof test under `test/scratch/ProfilesWarmth.t.sol` fails on the current code and is included in the file. The minimal fix that keeps every fixed parameter is to call the ownership check before the ERC-165 call. This touches an accepted limitation, so the judge may downgrade it to documentation.\n\n**Not found.** No path lets a wallet take or free another wallet's name, no value moves anywhere, and no external call can reenter or block another user. The other 114 entry points belong to contracts this launch does not deploy and that have no code path to Profiles; they are marked as untouched by this review's area rather than verified.","treeHash":null,"usage":{"cachedInputTokens":1191491,"inputTokens":356,"model":"claude-fable-5-1","outputTokens":37856,"runtime":"claude","turns":32,"wallClockMs":1534574}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"27168b1ff68f84d2","findings":[{"citation":"resolved","description":"Boundary x invariant seam (Numerical Gap). Every other name rule is applied to the skeleton (lower case, `_` dropped, `0`->`o`, `1`/`i`->`l`): uniqueness, the 3-character minimum and the reserved list. The `0x` rule alone is applied to the first two raw bytes. The skeleton of the forbidden `0x123` is `oxl23`, and that skeleton is reachable through spellings the raw check does not see: `Ox123` (capital O), `0_x123` (underscore between), `O_X123`, `0X_123` and so on. The contract therefore refuses only the literal spelling of an address-looking name, while its look-alikes are registered under the very skeleton the rule meant to keep out; `ownerOfName(\"0x123\")` then answers address(0) although skeleton `oxl23` is held by a wallet. This is the behaviour of the brief's fixed name rule as written (\"not starting with 0x or 0X\" is a rule on the bytes), so it is recorded as information for the author and the site, not as a defect to fix in the contract: the site should not treat the `0x` rule as protection against address-looking display names, or the rule should be restated on the skeleton (`ox` prefix) in a later version. No funds, no other wallet's record and no fixed parameter are affected.","line":166,"path":"src/Profiles.sol","reproduction":"Fresh Profiles(textRules, registry). (1) vm.prank(ALICE); set(\"0x123\", 0, 0, 0, \"\") -> reverts BadName (expected). (2) vm.prank(ALICE); set(\"Ox123\", 0, 0, 0, \"\") -> succeeds; profileOf(ALICE).name == \"Ox123\". (3) vm.prank(BOB); set(\"0_x123\", 0, 0, 0, \"\") -> reverts NameTaken, proving the skeleton `oxl23` is the one `0x123` would have had. (4) vm.prank(ALICE); set(\"0_x123\", 0, 0, 0, \"\") -> succeeds; the stored display name is now `0_x123`. (5) ownerOfName(\"0x123\") == address(0) while ownerOfName(\"ox123\") == ALICE. Expected by the brief's letter: exactly this. Expected by the rule's evident purpose (no address-looking names): (2) and (4) would be refused. Verified with a scratch Foundry test (test_ZeroXRule_vsSkeleton), all five steps as stated.","severity":"info","snippet":"        if (b[0] == \"0\" && (b[1] == \"x\" || b[1] == \"X\")) return (false, 0, 0);","title":"The `0x` prefix rule is checked on raw bytes while identity is by skeleton: `Ox123`, `0_x123`, `O_X123` are accepted and read as the forbidden `0x123`"}],"hash":"ae527f2a05d4d69ea5739a1995ada4e2e678a81b978a59d05c15897c1e62b52d","nodeId":"b5dda5f1-d8e6-4598-af33-0bf7d13abb3a","outcome":"completed","summary":"The review is complete. The findings file is written, scratch tests are removed, and no tracked file changed.\n\n**Outcome: the math, boundary and numerical-gap area of Profiles holds.** I found no defect that opens a revision. The file `.imd-findings.json` holds one informational note and a coverage record of 124 rows, one for each of the 116 listed entry points plus 8 invariant rows.\n\n**What I checked in Profiles.sol**\n\n- Name parsing: length bounds, charset, the shift arithmetic that packs the name and its skeleton into 20 bytes (index never exceeds 19, so nothing truncates), and the 3-character skeleton floor.\n- Skeleton consistency: the parse-time skeleton and the stored-name skeleton apply the same case fold, underscore drop and 0/1/i substitutions, confirmed by the existing fuzz test and by extra cases such as 20-byte names that collapse to a reserved word.\n- Reserved list: exactly 17 whole-skeleton equalities, matching the brief. Substrings pass as intended.\n- The 32-byte STATICCALL helper: gas cap, returndata size check, and every consumer tests the success flag before using the word. Dirty upper bits, short returns, huge returns, reverts and gas burners all resolve to not owned.\n- Name registry invariant across set, rename, re-spelling and clear.\n- The two live mainnet dependencies, read through the local endpoint: the TextRules runtime at the first constructor address is byte-identical to the local build, and the delegate.xyz registry answers every delegation level in under 11,000 gas, well inside the 30,000 cap. The fork test suite passed against mainnet.\n\n**The one note (info):** the rule against names starting with `0x` is applied to raw bytes, while every other rule works on the skeleton. Spellings like `Ox123` or `0_x123` are accepted and share the skeleton that `0x123` would have had. This is exactly what the fixed name rule says, so it is recorded for the author and the site rather than as a defect.\n\n**Not reached:** the other contracts in the entry-point list are outside this launch and are marked as such in the coverage record. They were not reviewed here.","treeHash":null,"usage":{"cachedInputTokens":779102,"inputTokens":290,"model":"claude-fable-5-1","outputTokens":29817,"runtime":"claude","turns":26,"wallClockMs":1019729}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"e02ee782fe2a91c3","findings":[],"hash":"e2c863ce4077d16f6d2129403d821f44065093a418b663b479b81f6a9e0118b8","nodeId":"14924bbd-d8cb-41fe-b675-b4f60281a609","outcome":"completed","summary":"The review is complete. Nothing further is needed.\n\n**Result: no defects found in the permissions area of Profiles.** The findings file at the repository root holds an empty findings list and a full coverage record, one row for every listed entry point plus the invariants checked.\n\n| Item | State |\n|---|---|\n| Findings | 0 |\n| Coverage rows | 126 (all entry points listed, plus Profiles views and invariants) |\n| Full `forge test` | 749 passed, 0 failed, 5 skipped (fork tests without FORK_URL) |\n| Scratch test directory | removed; tree clean apart from the findings file |\n\n**What I covered in depth**\n\n- **Access Control.** The contract has no owner, role, pause, upgrade path, payable function, receive or fallback. Both state-changing functions act only on the caller's own record. The constructor stores two immutables and hands nothing to the factory or tx.origin.\n- **Asymmetry.** I diffed set against clear, the four picture branches of the picture check, and the parse and skeleton helpers. Each picture branch forces the other branches' fields empty, link is deleted when the picture type changes, and the name registry is rewritten only when the skeleton changes with the old key deleted first. The invariant that each stored name maps back to its holder and that only the holder can displace it holds on every path.\n- **Trust Gap.** The two external dependencies are immutable. Every call to a token or the registry is a STATICCALL under the 30k cap reading 32 bytes, and the success flag is checked before the word is used. I ran a scratch fork test against the real delegate.xyz v2 registry on mainnet, which the existing fork test never exercises. Token-level, contract-level and wallet-level delegations with \"all rights\" are honoured, a delegation granted with specific rights is correctly refused, and a delegated ownership read costs about 27.7k gas cold, inside the cap.\n\n**Noted but not reported as findings.** The batch-mint ownerOf gas cut and the no-precondition clear are already recorded in ADAPTATION.md as accepted limitations. A link picture on a chain where textRules has no code reverts without a reason instead of BadPicture, which cannot happen on mainnet and is not a defect of the launch.\n\n**Not reached.** The other contracts in the repository are outside this launch and were marked as holding only in the sense that Profiles neither reads nor is read by them. Their own permission models were not traced.","treeHash":null,"usage":{"cachedInputTokens":977662,"inputTokens":82,"model":"claude-fable-5-1","outputTokens":31455,"runtime":"claude","turns":32,"wallClockMs":1324692}},{"artifacts":[],"attempt":1,"bundleHash":"5b508af441e41325e50b8ad97d4c8dc7a0c15ad2ca7cf3e0e8aa51d3f66414e5","device":"6b37e4ab65246705","findings":[],"hash":"e7103e309ea8259e16eebcf4c5c75a81eb22d5e8b062947dbf5d68e3fdf9b979","nodeId":"af42f0db-e801-42b3-9e2d-9d5ff1ecfbfb","outcome":"completed","summary":"Done. `src/Profiles.sol` ships unchanged: it already meets every launch rule, and neither imported finding required a code change.\n\n**What I verified**\n\n- Launch rules against the code as arrived: nonpayable constructor with two static address arguments, no external call or code requirement in the constructor, no owner or role, nothing handed to the factory, no DELEGATECALL/CALLCODE/SELFDESTRUCT reachable in the bytecode, runtime 5,489 bytes, no payable path, no library linking, none of the Slither hard rejects.\n- Mainnet dependencies: both constructor addresses have code (checked through a public RPC). The fork test in `test/fork/ProfilesFork.t.sol` passed against live mainnet: the deployed TextRules runtime is byte-identical to the local source, and the real delegate.xyz registry and identity.md #827 work as expected.\n- Own audit passes (reentrancy, external-call boundary cases, name-registry invariant, arithmetic, delegation signature) found nothing above informational. Details are in ADAPTATION.md.\n\n**Imported findings**\n\n- ERC721A-style `ownerOf` under CALL_GAS: reproduced exactly. Ids 1 to 12 of a batch are accepted, id 13 onward gets NotNftOwner. CALL_GAS is a fixed parameter and the gas-burning-token rule is an accepted limitation, so it is documented, not changed.\n- `clear()` on an empty record emits ProfileCleared: reproduced. The brief defines clear() without a precondition and fixes the error list, so the behaviour stays and is documented for indexers.\n\n**Files changed**\n\n- `ADAPTATION.md` (new): the launch-rule table, the audit record, the two findings with reproductions and the reasons for no code change.\n- `test/ProfilesLaunch.t.sol` (new, 6 tests): CREATE2 deployment through a factory stand-in on an empty chain, nonpayable constructor, runtime size and forbidden-opcode scan, the two findings pinned, and a skeleton-spelling fuzz property.\n- `docs/LAUNCH-PROFILES.md`: two sentences in Known limitations and the updated test counts.\n\n**Test results** with the verifier's fuzz seed:\n\n| Run | Result |\n|---|---|\n| `forge build` | success |\n| `forge test` (full suite) | 749 passed, 0 failed, 5 skipped (fork tests without FORK_URL) |\n| `test/Profiles.t.sol` | 34 passed, untouched |\n| `test/ProfilesLaunch.t.sol` | 6 passed |\n| fork test via public RPC | 3 passed |\n\nNo launch.json was written and no protected file was touched. Nothing is committed; the working tree holds the three files above for the submission step.","treeHash":"bf7c353e1c2e90345bfc10c3cfa494dee2a0d981","usage":{"cachedInputTokens":2104238,"inputTokens":678,"model":"claude-fable-5-1","outputTokens":31864,"runtime":"claude","turns":40,"wallClockMs":1307503}}],"verification":[{"checks":[{"durationMs":501855,"exitCode":0,"name":"build","output":"Compiling 194 files with Solc 0.8.28\nSolc 0.8.28 finished in 501.65s\nCompiler run successful with warnings:\nWarning (3628): This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.\n  --> src/TaskVault.sol:67:1:\n   |\n67 | contract TaskVault {\n   | ^ (Relevant source part starts here and spans across multiple lines).\nNote: The payable fallback function is defined here.\n   --> src/TaskVault.sol:183:5:\n    |\n183 |     fallback() external payable {\n    |     ^ (Relevant source part starts here and spans across multiple lines).\n\nWarning (3628): This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.\n --> foundry-pp/DeployHelper104.sol:7:1:\n  |\n7 | abstract contract DeployHelper104 is TaskVault {\n  | ^ (Relevant source part starts here and spans across multiple lines).\nNote: The payable fallback function is defined here.\n   --> src/TaskVault.sol:183:5:\n    |\n183 |     fallback() external payable {\n    |     ^ (Relevant source part starts here and spans across multiple lines).\n\nWarning (2072): Unused local variable.\n  --> test/audit/swarm117/SwarmAudit117.t.sol:29:10:\n   |\n29 |         (uint256 t, uint256 s) = _decidedAccept();\n   |          ^^^^^^^^^\n\n","passed":true},{"durationMs":16821,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 5 tests for test/Profiles.t.sol:ProfilesGasTest\n[PASS] test_Gas_Clear() (gas: 42049)\n[PASS] test_Gas_NameLink() (gas: 194922)\n[PASS] test_Gas_NameNft() (gas: 139750)\n[PASS] test_Gas_NameOnlyFirst() (gas: 90900)\n[PASS] test_Gas_Rename() (gas: 78005)\nSuite result: ok. 5 passed; 0 failed; 0 skipped; finished in 1.55ms (403.07µs CPU time)\n\nRan 4 tests for test/DevPrices.t.sol:DevPricesTest\n[PASS] test_OnlyTheOwner_EmitsTheEvent() (gas: 67482)\n[PASS] test_TypoGuard_AtMostTenTimesPerCall_BothBounds() (gas: 361730)\n[PASS] test_YoloPriceIsThePriceOfOneToken() (gas: 47183)\n[PASS] test_ZeroRefused_InTheConstructorAndEverySetter() (gas: 13072)\nSuite result: ok. 4 passed; 0 failed; 0 skipped; finished in 1.90ms (625.12µs CPU time)\n\nRan 1 test for test/fork/ExtrasOnLiveCore.fork.t.sol:ExtrasOnLiveCoreForkTest\n[SKIP: skipped] setUp() (gas: 0)\nSuite result: ok. 0 passed; 0 failed; 1 skipped; finished in 599.25µs (0.00ns CPU time)\n\nRan 1 test for test/audit/AuditA.t.sol:AuditAUnit\n[PASS] test_Guard_vestingClocksStartAtTheSplit() (gas: 4074385)\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 3.45ms (2.03ms CPU time)\n\nRan 2 tests for test/audit/AuditSweetenerBonus.t.sol:AuditVestingClock\n[PASS] test_clockStartsAtTheFirstReleaseWithABalance() (gas: 1732627)\n[PASS] test_splitStartsTheClocks() (gas: 4709047)\nSuite result: ok. 2 passed; 0 failed; 0 skipped; finished in 3.43ms (2.46ms CPU time)\n\nRan 1 test for test/fork/LaunchRehearsal.fork.t.sol:LaunchRehearsalForkTest\n[SKIP: skipped] setUp() (gas: 0)\nSuite result: ok. 0 passed; 0 failed; 1 skipped; finished in 3.70ms (0.00ns CPU time)\n\nRan 1 test for test/fork/ProfilesFork.t.sol:ProfilesForkTest\n[SKIP: skipped] setUp() (gas: 0)\nSuite result: ok. 0 passed; 0 failed; 1 skipped; finished in 201.65µs (0.00ns CPU time)\n\nRan 2 tests for test/ExtrasBareChain.t.sol:ExtrasBareChainTest\n[PASS] test_BareChain_NoVaultCode_AllSixDeploy() (gas: 9163095)\n[PASS] test_BareChain_NoVaultCode_ModulesInert() (gas: 9182900)\nSuite result: ok. 2 passed; 0 failed; 0 skipped; finished in 4.17ms (3.72ms CPU time)\n\nRan 1 test for test/audit/MaxImdInCap.t.sol:MaxImdInCapTest\n[PASS] test_AppealPullsMoreImdThanMaxImdIn() (gas: 1643322)\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 9.37ms (1.98ms CPU time)\n\nRan 3 tests for test/audit/LazyAppealVoidWindow.t.sol:LazyAppealVoidWindowTest\n[PASS] test_LateReAppealAfterTheVoidWindow_Reverts() (gas: 2274205)\n[PASS] test_PokeAfterVoidPlusWindow_IsFinal() (gas: 2344563)\n[PASS] test_WindowAfterVoid_StartsAtTheVoidMoment() (gas: 2111458)\nSuite result: ok. 3 passed; 0 failed; 0 skipped; finished in 22.58ms (3.26ms CPU time)\n\nRan 1 test for test/LogReconstruction.t.sol:LogReconstructionTest\n[PASS] test_AllTextsRecoverableFromLogsByteForByte() (gas: 1451239)\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 25.02ms (1.06ms CPU time)\n\nRan 4 tests for test/GasTextSize.t.sol:GasTextSizeTest\n[PASS] test_CallSwarm_MaxResupply() (gas: 2621001)\nLogs:\n  callSwarm (resupply: 3x512B rules + reason 512B + disputerProofUri 512B, hash+calldata scheme): 1024246\n\n[PASS] test_CreateTask_RealExamples_And_MaxText() (gas: 1513059)\nLogs:\n  createTask (1+1+1 B rules, floor): 332309\n  createTask (forehead: 114+376+219=709 B): 335361\n    of which text-size delta over floor: 3052\n  createTask (supermarket: 307+405+188=900 B): 335186\n    of which text-size delta over floor: 2877\n  createTask (3x512=1536 B, ceiling): 348242\n    of which text-size delta over floor: 15933\n\n[PASS] test_Dispute_MaxReason() (gas: 1297904)\nLogs:\n  dispute (reason 512B + disputerProofUri 512B): 510241\n\n[PASS] test_Submit_MaxProofAndExplanation() (gas: 1871942)\nLogs:\n  submit (proof 512B link + explanation/doerNote 200B, the max note): 1480118\n\nSuite result: ok. 4 passed; 0 failed; 0 skipped; finished in 26.11ms (4.82ms CPU time)\n\nRan 4 tests for test/Hosts.t.sol:HostsTest\n[PASS] test_BadHostsRevert() (gas: 482113)\n[PASS] test_EveryHostPasses() (gas: 3502196)\n[PASS] test_LengthLimit() (gas: 271540)\n[PASS] test_SubmitRejectsOffListLinks() (gas: 1296364)\nSuite result: ok. 4 passed; 0 failed; 0 skipped; finished in 26.10ms (6.92ms CPU time)\n\nRan 14 tests for test/Desks.t.sol:DesksTest\n[PASS] test_BurnerMustHaveCode_DoerStakeMayBeLater() (gas: 45181)\n[PASS] test_DeskErrorsBubbleUnchanged() (gas: 46884)\n[PASS] test_DeskInternalFunctionsRefuseStrangers() (gas: 248781)\n[PASS] test_DeskUserFunctionsOnlyThroughTheVault() (gas: 501038)\n[PASS] test_DesksAreWiredToThisVaultOnce() (gas: 97671)\n[PASS] test_DoerStakeHub_FailingOrOversizedAnswer() (gas: 8165878)\n[PASS] test_ForwardedCallsKeepTheSender() (gas: 874537)\n[PASS] test_LaunchParamsEqualTheTestedOnes() (gas: 149109)\n[PASS] test_ParamsOfIsTheRegistrySnapshot() (gas: 716560)\n[PASS] test_UnknownFunctionAndStrayEthRevert() (gas: 65149)\n[PASS] test_ValueOnlyToPayableRoutes() (gas: 877026)\n[PASS] test_VaultBankAndTaskHooksRefuseStrangers() (gas: 253905)\n[PASS] test_VaultRefusesCheckerOfAnotherRegistry() (gas: 28313)\n[PASS] test_VaultRefusesDesksOfAnotherEnvironment() (gas: 25694)\nSuite result: ok. 14 passed; 0 failed; 0 skipped; finished in 26.39ms (12.19ms CPU time)\n\nRan 2 tests for test/audit/AddonAfterSub.t.sol:AddonAfterSubmissionTest\n[PASS] test_AddonAfterSubmission_BatchClaimPaysSweetener() (gas: 2687916)\n[PASS] test_AddonBeforeSubmission_BatchClaimPaysSweetener() (gas: 2585347)\nSuite result: ok. 2 passed; 0 failed; 0 skipped; finished in 28.16ms (3.39ms CPU time)\n\nRan 3 tests for test/DisputeLinkOptional.t.sol:DisputeLinkOptionalTest\n[PASS] test_EmptyLinkPasses() (gas: 3032258)\nLogs:\n  dispute gas, empty link (test env): 358971\n\n[PASS] test_NonEmptyLinkStillChecked() (gas: 2575051)\nLogs:\n  dispute gas, with link (test env): 366969\n\n[PASS] test_ReasonStillMandatory() (gas: 1126632)\nSuite result: ok. 3 passed; 0 failed; 0 skipped; finished in 28.74ms (6.57ms CPU time)\n\nRan 1 test for test/audit/PredictAfterTimer.t.sol:PredictAfterTimerTest\n[PASS] test_PredictAfterTimerEnded_WithoutPoke_IsAllowed() (gas: 2290358)\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 29.23ms (1.55ms CPU time)\n\nRan 2 tests for test/audit/PredictZeroPoints.t.sol:PredictZeroPointsWinnerTest\n[PASS] test_ZeroPointWinner_TakesTheLosingPool() (gas: 1898347)\n[PASS] test_ZeroPointWinners_SplitByPosition() (gas: 2071515)\nSuite result: ok. 2 passed; 0 failed; 0 skipped; finished in 29.24ms (2.64ms CPU time)\n\nRan 6 tests for test/Directory.t.sol:DirectoryTest\n[PASS] test_ConstructorChecks() (gas: 6526)\n[PASS] test_CurrentMayGoBack() (gas: 596847)\n[PASS] test_OnlySafeProposesAndCancels() (gas: 587178)\n[PASS] test_ProposalChecks() (gas: 217526)\n[PASS] test_V2SideBySide_AfterTimelock() (gas: 7803719)\n[PASS] test_Version1FromConstructor() (gas: 66747)\nSuite result: ok. 6 passed; 0 failed; 0 skipped; finished in 30.26ms (9.97ms CPU time)\n\nRan 5 tests for test/review/ReviewLaunch.t.sol:ReviewLaunchStatic\n[PASS] test_L0_docLaunch0Args_matchPlan() (gas: 524751)\n[PASS] test_L1_perContractCodeMargin_matchesDoc() (gas: 37699193)\nLogs:\n  DevPrices 2467 runtime, margin 22109\n  UniswapV3SwapAdapter 1673 runtime, margin 22903\n  ParamsRegistry 13552 runtime, margin 11024\n  TextRules 5249 runtime, margin 19327\n  SwarmQuestionBuilder 5506 runtime, margin 19070\n  VotePower 942 runtime, margin 23634\n  AttestationChecker 2125 runtime, margin 22451\n  BuybackBurner 2614 runtime, margin 21962\n  NftGate (launch 0) 1916 runtime, margin 22660\n  IncentivesVesting (launch 0) 1936 runtime, margin 22640\n  DevVesting (launch 0) 1888 runtime, margin 22688\n  TeamVesting (launch 0) 1888 runtime, margin 22688\n  TreasuryVesting (launch 0) 1936 runtime, margin 22640\n  YoloSplitter (launch 0) 2113 runtime, margin 22463\n  YoloToken 4526 runtime, margin 20050\n  YoloLockHub 3219 runtime, margin 21357\n  CaseDesk 20064 runtime, margin 4512\n  DisputeDesk 21489 runtime, margin 3087\n  TaskVault 20601 runtime, margin 3975\n  YoloSweetener 6748 runtime, margin 17828\n  TrophyCatalog 4228 runtime, margin 20348\n  DareTrophy 11777 runtime, margin 12799\n  ProtocolDirectory 4562 runtime, margin 20014\n  HiddenList 3789 runtime, margin 20787\n  YoloPredict 6385 runtime, margin 18191\n\n[PASS] test_L2_docLaunch1Args_matchPlan() (gas: 894953)\n[PASS] test_L3_docLaunch2Args_matchPlan() (gas: 1361721)\n[PASS] test_L5_docLaunch3Args_matchPlan() (gas: 685090)\nSuite result: ok. 5 passed; 0 failed; 0 skipped; finished in 8.51ms (7.01ms CPU time)\n\nRan 45 tests for test/HiddenList.t.sol:HiddenListTest\n[PASS] test_10Of10NftsPassesAfterRoundEnd() (gas: 1666842)\n[PASS] test_2Of3WalletsDoesNotPassEvenWith10Nfts() (gas: 825276)\n[PASS] test_3Of3WalletsWith10NftsPasses() (gas: 929019)\n[PASS] test_9Of10NftsDoesNotPass() (gas: 1505280)\n[PASS] test_AllBadTokenIdsDoesNotOpenARound() (gas: 131924)\n[PASS] test_ConstructorAllowsZeroDelegateRegistry() (gas: 7024)\n[PASS] test_ConstructorFixesOwnerNoTransferFunction() (gas: 17154)\n[PASS] test_ConstructorRejectsZeroOwnerOrNft() (gas: 9295)\n[PASS] test_DelegateXyzDelegateCanVote() (gas: 267602)\n[PASS] test_EmptyTokenIdsDoesNotOpenARound() (gas: 41527)\n[PASS] test_EthWithDataReverts() (gas: 37829)\n[PASS] test_FailedRoundCanRetryAfter7Days() (gas: 2009461)\n[PASS] test_FailedRoundCannotRetryBefore7Days() (gas: 3173626)\n[PASS] test_GasNftHolderVote1NftLaterVote() (gas: 312434)\nLogs:\n  NFT holder vote, 1 NFT (later vote): 50089\n\n[PASS] test_GasNftHolderVote1NftOpensRound() (gas: 209782)\nLogs:\n  NFT holder vote, 1 NFT (opens a round): 130352\n\n[PASS] test_GasOwnerHides1Item() (gas: 61056)\nLogs:\n  owner hides 1 item: 54438\n\n[PASS] test_GasOwnerHides20Items() (gas: 584538)\nLogs:\n  owner hides 20 items (batch): 567305\n\n[PASS] test_GasOwnerUnhides1Item() (gas: 94224)\nLogs:\n  owner unhides 1 item: 32830\n\n[PASS] test_HideVoteEventCarriesVaultKindId() (gas: 211555)\n[PASS] test_KeepVoteWithNoActiveRoundIsANoOp() (gas: 112110)\n[PASS] test_KeptBlocksNewRounds() (gas: 163090)\n[PASS] test_LocalConstantsMatchContract() (gas: 29212)\n[PASS] test_NonOwnerSetStateReverts() (gas: 32708)\n[PASS] test_NonexistentTokenIdSkippedNotReverted() (gas: 49881)\n[PASS] test_OwnerHidesAnItemNoVoteEverPassed() (gas: 62775)\n[PASS] test_OwnerHidesUnhidesKeepsABatch() (gas: 206197)\n[PASS] test_OwnerOfNftCanVote() (gas: 212441)\n[PASS] test_OwnerOverridesAPassedVoteBackToVisible() (gas: 1711534)\n[PASS] test_OwnerRestoreVisibleStartsCooldown() (gas: 1813396)\n[PASS] test_PlainEthTransferReverts() (gas: 36475)\n[PASS] test_SameIdDifferentVaultsAreIndependent() (gas: 70415)\n[PASS] test_SameWalletMoreNftsLaterAddToTallyNotWallets() (gas: 313708)\n[PASS] test_SelfContestRepeatsEvery8DaysHonestVoteStillCounts() (gas: 4120541)\n[PASS] test_SelfContestUnderQuorumDoesNotBlockHonestVoteNextDay() (gas: 2010992)\n[PASS] test_SetStateEmitsStateSetWithVaultKindId() (gas: 61729)\n[PASS] test_SetStateInstantNoTimelock() (gas: 63017)\n[PASS] test_SetStateRejectsBadStateValue() (gas: 32653)\n[PASS] test_StatusHiddenOnlyAfterRoundEndEvenIfQuorumAlreadyMet() (gas: 1690048)\n[PASS] test_StrangerCannotVoteWithSomeoneElsesNft() (gas: 132543)\n[PASS] test_TaskAndProofKindsAreIndependent() (gas: 69865)\n[PASS] test_TieHideEqualsKeepDoesNotPass() (gas: 3042275)\n[PASS] test_TokenIdCountsOnceInARound() (gas: 243556)\n[PASS] test_UncontestedFailedRoundRetriesAtOnce() (gas: 570419)\n[PASS] test_VotePassingCannotUnhideAnOwnerHiddenItem() (gas: 1036389)\n[PASS] test_WalletKeepsOneSidePerRoundOtherSideSkipped() (gas: 295427)\nSuite result: ok. 45 passed; 0 failed; 0 skipped; finished in 11.74ms (11.21ms CPU time)\n\nRan 2 tests for test/review/ReviewProofFormat.t.sol:ReviewProofFormat\n[PASS] test_VideoAndTx() (gas: 133853)\n[PASS] test_XPostForms() (gas: 190014)\nSuite result: ok. 2 passed; 0 failed; 0 skipped; finished in 937.93µs (792.59µs CPU time)\n\nRan 4 tests for test/audit/AuditNoFallbackOwnVote.t.sol:AuditNoFallbackOwnVoteTest\n[PASS] test_DoerCannotDispute() (gas: 9092555)\n[PASS] test_LostCallbackIsSilence_NoPublicFallback() (gas: 8540419)\n[PASS] test_NoDecisionBelowInstantDelta() (gas: 8684088)\n[PASS] test_PartialCountRelayedByAnOutsiderDecidesNothing() (gas: 8572847)\nSuite result: ok. 4 passed; 0 failed; 0 skipped; finished in 40.00ms (31.78ms CPU time)\n\nRan 2 tests for test/Gas.t.sol:GasTest\n[PASS] test_GasProfile() (gas: 8438891)\nLogs:\n  createTask (USDC, mode B): 364269\n  createTask (ETH): 327447\n  topUp (idle task): 176641\n  submit (small task, mode B): 443457\n  topUp (pending, during submission): 195996\n  dispute (starts the vote): 369425\n  vote (2 NFTs, not the first vote): 116580\n  vote (20 NFTs, not the first vote): 226796\n  poke (vote end -> decided): 104867\n  appeal: 205816\n  askAppealSwarm (asks the filed appeal; builds body, pays Intake): 692497\n  onOracleResult (inside the 200k callback budget): 40971\n  poke (final settlement, rejected): 284985\n  claimDisputer (bond + share + ETH): 173844\n  claimVoterReward (bond share): 120868\n  poke (accept + fee split): 243661\n  withdraw (IMD credit): 70092\n  withdrawContribution (expires the task on the way): 79722\n  callSwarm (no NFT decision: bond + fee, builds body, pays Intake): 741407\n  poke (swarm silent -> back to the undecided window): 218168\n  submit ($500 task, no Intake request): 392083\n\n[PASS] test_GasSubmitEvidence() (gas: 5659964)\nLogs:\n  $100 task: submit, proof link only: 451594\n  $100 task: submit, + screenshot: 542433\n    extra gas: 90839\n  $100 task: submit, + 35-byte note: 525350\n    extra gas: 73756\n  $100 task: submit, + screenshot + 200-byte note: 938458\n    extra gas: 486864\n  $500 task: submit, proof link only: 451595\n  $500 task: submit, + screenshot: 542437\n    extra gas: 90842\n  $500 task: submit, + 35-byte note: 525354\n    extra gas: 73759\n  $500 task: submit, + screenshot + 200-byte note: 938467\n    extra gas: 486872\n\nSuite result: ok. 2 passed; 0 failed; 0 skipped; finished in 42.87ms (11.98ms CPU time)\n\nRan 8 tests for test/CancelTask.t.sol:CancelTaskTest\n[PASS] test_Cancel_AcceptedByTimerButUnpoked_Reverts() (gas: 1204069)\n[PASS] test_Cancel_AfterExpiry_Reverts() (gas: 513097)\n[PASS] test_Cancel_AfterThePayout_Reverts() (gas: 1254688)\n[PASS] test_Cancel_EveryoneTakesBackExactlyWhatHePutIn_DevGetsNothing() (gas: 7019133)\n[PASS] test_Cancel_NothingNewAfterwards() (gas: 781799)\n[PASS] test_Cancel_OnlyTheDevWallet() (gas: 1335574)\n[PASS] test_Cancel_OpenTaskNoSubmission_PredictPositionsBackInFull() (gas: 1312564)\n[PASS] test_Cancel_UnknownTaskReverts() (gas: 35428)\nSuite result: ok. 8 passed; 0 failed; 0 skipped; finished in 23.40ms (7.96ms CPU time)\n\nRan 1 test for test/audit/round2/Proof_ced07852b14f.t.sol:HiddenListSnipeTest\n[PASS] test_lastSecondSnipeHidesWithoutReply() (gas: 505448)\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 662.90µs (285.34µs CPU time)\n\nRan 3 tests for test/review/ReviewQuestionSize.t.sol:ReviewQuestionSize\n[PASS] test_FixedPartIs193BytesAtMaxIds() (gas: 1194279)\nLogs:\n  fixed part bytes at max ids: 193\n\n[PASS] test_TaskIdCountsOnceInFixedPart() (gas: 1932129)\nLogs:\n  bytes added by a 20-digit task id: 19\n\n[PASS] test_WorstCaseQuestionFitsIntakeLimit() (gas: 1194039)\nLogs:\n  worst-case question bytes: 2000\n\nSuite result: ok. 3 passed; 0 failed; 0 skipped; finished in 10.92ms (10.81ms CPU time)\n\nRan 1 test for test/review/ReviewLaunch.t.sol:ReviewLaunchFork\n[SKIP: skipped] setUp() (gas: 0)\nSuite result: ok. 0 passed; 0 failed; 1 skipped; finished in 1.24ms (0.00ns CPU time)\n\nRan 10 tests for test/Evidence.t.sol:EvidenceTest\n[PASS] test_AskedQuestionCarriesEvidence() (gas: 3588367)\n[PASS] test_BadEvidenceReverts() (gas: 3486848)\n[PASS] test_EvidenceOptional_OnchainTxAndLink_NoScreenshotOk() (gas: 1628669)\n[PASS] test_EvidenceRequired_ScreenshotStillReachesQuestion() (gas: 2330777)\n[PASS] test_EvidenceRequired_XPostAndVideo_RevertWithoutScreenshot() (gas: 2576424)\n[PASS] test_NoEvidence_NothingAddedNoEvent() (gas: 2950251)\n[PASS] test_OnlyOnePart() (gas: 5784669)\n[PASS] test_StoredEmittedAndAsked() (gas: 4457235)\n[PASS] test_WorstBodyFitsIntakeLimit() (gas: 7930045)\nLogs:\n  max claims accepted at maxTextBytes 512: 10\n  worst body bytes: 15503\n\n[PASS] test_WorstQuestionFitsIntakeLimit() (gas: 3466727)\nLogs:\n  worst question bytes: 2000\n  worst question: qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqTASK: definitions task, task_proof and task_no | PROOF: pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp | PROOF TYPE: onchain_tx | DOER: 0xabcdef0123456789abcdef0123456789abcdef01 | CASE: 18446744073709551615/18446744073709551615/4294967296\n\nSuite result: ok. 10 passed; 0 failed; 0 skipped; finished in 62.23ms (40.51ms CPU time)\n\nRan 1 test for test/review/ReviewSplitAccess.t.sol:ReviewSplitAccessIsolated\n[PASS] test_Guard_WireClosesWithTheDeployTx() (gas: 69322)\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 969.81µs (887.68µs CPU time)\n\nRan 1 test for test/fork/UniswapV3AdapterFork.t.sol:UniswapV3AdapterFork\n[SKIP] test_Fork_EthToImd() (gas: 0)\nSuite result: ok. 0 passed; 0 failed; 1 skipped; finished in 106.53µs (27.74µs CPU time)\n\nRan 1 test for test/audit/swarm117/VestingClockPreStart.t.sol:VestingClockPreStartTest\n[PASS] test_clockCannotBeStartedBeforeTheShareArrives() (gas: 447627)\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 370.77µs (131.75µs CPU time)\n\nRan 12 tests for test/Payments.t.sol:PaymentsTest\n[PASS] test_BlockedReceiver_PaidAsCredit() (gas: 2017711)\n[PASS] test_EthRefundToRejectingContract_IsCredited() (gas: 896898)\n[PASS] test_ModeA_CallSwarmWithEth() (gas: 8048392)\n[PASS] test_ModeA_CreateImdTaskWithEth() (gas: 3886097)\n[PASS] test_ModeA_Disabled() (gas: 3660281)\n[PASS] test_ModeA_DisputeWithUsdc() (gas: 7121099)\n[PASS] test_ModeA_Reverts() (gas: 2181377)\n[PASS] test_ModeA_SubmitWithEth_SurplusAndExcessRefunded() (gas: 6816992)\n[PASS] test_ReentrancyOnEthPayout_BlockedAndCredited() (gas: 2741643)\n[PASS] test_TopUpHasNoFee() (gas: 4019552)\n[PASS] test_TreasurySweep_TakesEverything() (gas: 6637475)\n[PASS] test_WithdrawTo_ZeroAddress_Reverts() (gas: 765442)\nSuite result: ok. 12 passed; 0 failed; 0 skipped; finished in 66.44ms (45.33ms CPU time)\n\nRan 3 tests for test/audit/swarm117/VestingClockPreStart.t.sol:VestingStarterBindingTest\n[PASS] test_bindingClosesWithTheDeploymentTransaction() (gas: 39262)\n[PASS] test_starterIsTheSplitterAndCannotBeRebound() (gas: 35402)\n[PASS] test_unboundVestingStartsNoClock() (gas: 627278)\nSuite result: ok. 3 passed; 0 failed; 0 skipped; finished in 406.46µs (280.45µs CPU time)\n\nRan 12 tests for test/review/ReviewSplitAccess.t.sol:ReviewSplitAccess\n[PASS] test_Guard_ForgedSuffixDirectToDeskReverts() (gas: 1275565)\n[PASS] test_Guard_LocalFactoryLaunchesOnlyForItsDeployer() (gas: 15786110)\n[PASS] test_Guard_NoEmergencyExit_PokeAlwaysResolves() (gas: 1139159)\n[PASS] test_Guard_NoRewireAfterLaunch() (gas: 74617)\n[PASS] test_Guard_ReentryFromEthRefundIsLocked() (gas: 1594081)\n[PASS] test_Guard_ReentryFromSwapHookIsLocked() (gas: 1649346)\n[PASS] test_Guard_RoutedSelectorsMatchDeskAbi() (gas: 382)\n[PASS] test_Guard_SiblingAndVaultCannotCrossCall() (gas: 383550)\n[PASS] test_Guard_SwappedDesksRevertTheDeployment() (gas: 39035)\n[PASS] test_Guard_UserSuffixThroughVaultIsIgnored() (gas: 1575780)\n[PASS] test_Guard_VaultRoutesNoDeskInternalSelector() (gas: 408709)\n[PASS] test_Guard_WireIsFirstComeInsideTheCreatingTx() (gas: 262400)\nSuite result: ok. 12 passed; 0 failed; 0 skipped; finished in 38.69ms (9.73ms CPU time)\n\nRan 7 tests for test/Cover.t.sol:CoverTest\n[PASS] test_CategoryStoredAndCoverEmitted() (gas: 389973)\n[PASS] test_CategoryUnchangedThroughDispute() (gas: 7923263)\n[PASS] test_CoverLinksAccepted() (gas: 1741012)\n[PASS] test_CoverLinksRejected() (gas: 1780674)\n[PASS] test_CoverNotInSwarmQuestion() (gas: 3517223)\n[PASS] test_EmptyCoverAndEveryCategory() (gas: 3268000)\n[PASS] test_GasCover() (gas: 1058759)\nLogs:\n  createTask, no cover: 322196\n  createTask, ipfs cover 66 bytes: 340032\n  cover in the event, extra gas: 17836\n  66-byte cover kept in storage (4 new slots): 112545\n  66-byte cover only in an event: 25869\n\nSuite result: ok. 7 passed; 0 failed; 0 skipped; finished in 44.23ms (22.35ms CPU time)\n\nRan 3 tests for test/review/ReviewProofLabel.t.sol:ReviewProofLabel\n[PASS] test_PromptSaysTheLabelIsOptional() (gas: 2106261)\n[PASS] test_QuestionHasNoDoerCode() (gas: 2894580)\n[PASS] test_SameLinkFirst_SameQuestionButDoerAndCase() (gas: 4384288)\nSuite result: ok. 3 passed; 0 failed; 0 skipped; finished in 36.38ms (15.31ms CPU time)\n\nRan 9 tests for test/ContractRules.t.sol:ContractRulesTest\n[PASS] test_AddonInPowerBase_FullBonusOnBoth() (gas: 7407649)\n[PASS] test_BigAddon_BonusNeedsLockAgainstRewardPlusAddon() (gas: 12394280)\n[PASS] test_EthTopUpDuringCheck_PaidToTheDoer() (gas: 6801911)\n[PASS] test_FriendTopUp_BonusNeedsLockAgainstTheWholePool() (gas: 11979363)\n[PASS] test_Stake5PercentOfReward_Bonus02Percent() (gas: 6981852)\n[PASS] test_TinyStake_WholeBpsRoundedDown() (gas: 1965860)\n[PASS] test_TopUpDuringRejectedCheck_PaidToTheNextDoer() (gas: 10503079)\n[PASS] test_TopUpInPowerBase_BonusOnTheWholeReward() (gas: 7206630)\n[PASS] test_UsdcTopUpDuringCheck_InTheDoersPayout() (gas: 7043120)\nSuite result: ok. 9 passed; 0 failed; 0 skipped; finished in 76.02ms (86.52ms CPU time)\n\nRan 1 test for test/VoteCountWidth.t.sol:VoteCountWidthTest\n[PASS] test_PastUint16Limit_StuckBefore_FineAfter() (gas: 11546)\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 136.50µs (24.59µs CPU time)\n\nRan 2 tests for test/review/ReviewGas.t.sol:ReviewGas\n[PASS] test_AppealAskGas_Under1_5M() (gas: 4618000)\nLogs:\n  askAppealSwarm -> swarm question (lazy ask, with resupply), gas: 836419\n  body bytes: 2679\n\n[PASS] test_CallSwarmGas_MaxBody() (gas: 3660241)\nLogs:\n  callSwarm max body (with resupply), gas: 957165\n  body bytes: 2679\n\nSuite result: ok. 2 passed; 0 failed; 0 skipped; finished in 18.98ms (4.58ms CPU time)\n\nRan 8 tests for test/review/ReviewSplitRegression.t.sol:ReviewSplitRegression\n[PASS] test_events_EmitterMap() (gas: 22688427)\n[PASS] test_golden_AcceptedAfterDispute_NftRight() (gas: 9760483)\nLogs:\n  ledger after settlement: 0x4830ea4fcc6dc5027c1f37bcad5852e0b11e2b542d5bf3a1b4e0bf9f8b5d8d55\n  settlement record: 0xa4018a5ae1f016fc869c28d2e27ea22d88e1d937e0efb0592baa756f921319ad\n  ledger after every payout: 0x65dcffba9fa5f218c43b4c3f810b8d61e0676b615cd88c2200be717a94fa422b\n\n[PASS] test_golden_AppealSwarmOverturnsNft() (gas: 10297057)\nLogs:\n  ledger after settlement: 0x08d27cc2a8693d93d430a64d7a89b5d993f0bc3aaa0f468e9d26ec43c1adc65d\n  settlement record: 0x7d5a35e896f5cc60c3cebee7443c57120a4abf9130d2d794c36a86769c152705\n  ledger after every payout: 0x808551d4f18f1c9f9021bde675a4cd14dd60e843467f3bfd666fd1221b8bddd1\n\n[PASS] test_golden_CallSwarmSilentThenCalledAgain() (gas: 10587005)\nLogs:\n  ledger after settlement: 0x38cc28fed888cc3bcd65c4d5b72aa4ec16f7b4731c45419596c21cda6e366d7a\n  settlement record: 0x12641fdf0b0d28314e7cdd711051407e007d2e0d2c3006ec555db150a1bb11c5\n  ledger after every payout: 0xa82fdb047f774ed464eb049c7e6b261d5bc214d5978856d853700b07460f2f09\n\n[PASS] test_golden_RejectedThenQueuedAccepted() (gas: 11975747)\nLogs:\n  ledger after settlement: 0x76984c0edfd7138e1eeafbca442dc75eac4cdca48dfce84a332a3dbe3eb570fd\n  settlement record: 0xdb27e0d67237b840a3897b3e94d0bc38e88d80d4f00b209c05909985a9e9b9f4\n  ledger after every payout: 0xf9dbd032a0ab92846b8ead6e767bad8491ba22ce779070f3e67373d796740420\n\n[PASS] test_golden_UndecidedNobodyCallsSwarm() (gas: 8826619)\nLogs:\n  ledger after settlement: 0xbb589401078dd43b88cbc7c1c174981c2ee68b3027a30d9ffdcf05a917cc491d\n  settlement record: 0x880d35a1a6c101757740019ffe504083f1353824cf6c05eb99c4e48fe76bf58a\n  ledger after every payout: 0x4755fc921943fe650cc0871884c69218df089678208e1ea5cc2d2410865f21ce\n\n[PASS] test_minor_HeaviestLazyStepGasCost() (gas: 3854059)\nLogs:\n  gas of the heaviest separate step (askAppealSwarm): 727451\n\n[PASS] test_minor_NoEthInDisputes_VoterSendsOwnBallot() (gas: 1544143)\nSuite result: ok. 8 passed; 0 failed; 0 skipped; finished in 89.97ms (70.18ms CPU time)\n\nRan 1 test for test/review/ReviewSwarmOrders.t.sol:ReviewSwarmOrders\n[PASS] test_printTestQuestions() (gas: 153072)\nLogs:\n  T1 1719\n  {\"v\":1,\"question\":\"moneycanbuy.fun task check. Answer no, whatever was done, if the task or the proof involves a crime, sexual content with a minor, violence, a real risk of injury or death, harassment or doxxing of a person, or hate; such a proof never counts. Did the doer fulfil the task condition with this proof? The text moneycanbuy.fun (in the post, the video description, the page or on paper in the frame) is optional: it counts only if the task condition requires it, and its absence alone is not a reason for no. For PROOF TYPE onchain_tx the transaction must be sent from DOER. If the proof or screenshot link does not open, there is no proof. TASK: definitions task, task_proof and task_no | PROOF: https://etherscan.io/tx/0x0f7efe38f007c795e60cc01f900e4c7eeb3a74418879e9d7dfbd5c527225fb5b | PROOF TYPE: onchain_tx | DOER: 0xcf472e2a100e7c97d3440f34eb21be470b8335a5 | CASE: 1/1/1\",\"definitions\":{\"parties\":\"claim_N, doer_note and appeal are untrusted statements of the parties, not evidence; doer_shot is the doer's untrusted screenshot: it may help to find the proof and never replaces it\",\"task\":\"Ethereum mainnet tx from DOER to 0xd34a99bc0f67ae1bbd63c660e6d0b0dd03e263b7; calls transfer(address,uint256); transfers at least 10 tokens to any address; succeeded, mined after 2026-10-11 00:00 UTC\",\"task_proof\":\"WINDOW: made after 2026-10-11 00:00 UTC. WHO: DOER = wallet that submits. SOURCE: Etherscan\",\"task_no\":\"NO if: failed, not from DOER, outside WINDOW, any step missing, unclear\"},\"chainId\":1,\"window\":{\"hours\":720},\"answerType\":\"bool\",\"evidence\":\"panel\",\"panelSize\":7,\"quorum\":5,\"validForSeconds\":2592000,\"consumer\":{\"chainId\":1,\"verifyingContract\":\"0x0000000000000000000000000000000000000001\"}}\n  0xe0161177113a03c1dce7415ed9e1c076c939b5968441681ed1fdd3a3632bfed6\n  T2 1719\n  {\"v\":1,\"question\":\"moneycanbuy.fun task check. Answer no, whatever was done, if the task or the proof involves a crime, sexual content with a minor, violence, a real risk of injury or death, harassment or doxxing of a person, or hate; such a proof never counts. Did the doer fulfil the task condition with this proof? The text moneycanbuy.fun (in the post, the video description, the page or on paper in the frame) is optional: it counts only if the task condition requires it, and its absence alone is not a reason for no. For PROOF TYPE onchain_tx the transaction must be sent from DOER. If the proof or screenshot link does not open, there is no proof. TASK: definitions task, task_proof and task_no | PROOF: https://etherscan.io/tx/0x0f7efe38f007c795e60cc01f900e4c7eeb3a74418879e9d7dfbd5c527225fb5b | PROOF TYPE: onchain_tx | DOER: 0xe132be23ce6255930556a45406075e62fb6340c0 | CASE: 1/1/1\",\"definitions\":{\"parties\":\"claim_N, doer_note and appeal are untrusted statements of the parties, not evidence; doer_shot is the doer's untrusted screenshot: it may help to find the proof and never replaces it\",\"task\":\"Ethereum mainnet tx from DOER to 0xd34a99bc0f67ae1bbd63c660e6d0b0dd03e263b7; calls transfer(address,uint256); transfers at least 10 tokens to any address; succeeded, mined after 2026-10-11 00:00 UTC\",\"task_proof\":\"WINDOW: made after 2026-10-11 00:00 UTC. WHO: DOER = wallet that submits. SOURCE: Etherscan\",\"task_no\":\"NO if: failed, not from DOER, outside WINDOW, any step missing, unclear\"},\"chainId\":1,\"window\":{\"hours\":720},\"answerType\":\"bool\",\"evidence\":\"panel\",\"panelSize\":7,\"quorum\":5,\"validForSeconds\":2592000,\"consumer\":{\"chainId\":1,\"verifyingContract\":\"0x0000000000000000000000000000000000000001\"}}\n  0x9adb7cd61bdff19f992b83d1a9ea1517767d60fbec90fc4c558de186b04525b4\n  T3 1999\n  {\"v\":1,\"question\":\"moneycanbuy.fun task check. Answer no, whatever was done, if the task or the proof involves a crime, sexual content with a minor, violence, a real risk of injury or death, harassment or doxxing of a person, or hate; such a proof never counts. Did the doer fulfil the task condition with this proof? The text moneycanbuy.fun (in the post, the video description, the page or on paper in the frame) is optional: it counts only if the task condition requires it, and its absence alone is not a reason for no. For PROOF TYPE onchain_tx the transaction must be sent from DOER. If the proof or screenshot link does not open, there is no proof. TASK: definitions task, task_proof and task_no | PROOF: https://etherscan.io/tx/0x0f7efe38f007c795e60cc01f900e4c7eeb3a74418879e9d7dfbd5c527225fb5b | PROOF TYPE: onchain_tx | DOER: 0xcf472e2a100e7c97d3440f34eb21be470b8335a5 | CASE: 1/1/2\",\"definitions\":{\"parties\":\"claim_N, doer_note and appeal are untrusted statements of the parties, not evidence; doer_shot is the doer's untrusted screenshot: it may help to find the proof and never replaces it\",\"task\":\"Ethereum mainnet tx from DOER to 0xd34a99bc0f67ae1bbd63c660e6d0b0dd03e263b7; calls transfer(address,uint256); transfers at least 10 tokens to any address; succeeded, mined after 2026-10-11 00:00 UTC\",\"task_proof\":\"WINDOW: made after 2026-10-11 00:00 UTC. WHO: DOER = wallet that submits. SOURCE: Etherscan\",\"task_no\":\"NO if: failed, not from DOER, outside WINDOW, any step missing, unclear\",\"claim_1\":\"The transaction moved only 5 IMD, less than the 10 the task requires.\",\"claim_1_proof\":\"https://etherscan.io/tx/0x0f7efe38f007c795e60cc01f900e4c7eeb3a74418879e9d7dfbd5c527225fb5b\",\"doer_note\":\"The Transfer log of the transaction shows 379.22 IMD sent from my address.\"},\"chainId\":1,\"window\":{\"hours\":720},\"answerType\":\"bool\",\"evidence\":\"panel\",\"panelSize\":7,\"quorum\":5,\"validForSeconds\":2592000,\"consumer\":{\"chainId\":1,\"verifyingContract\":\"0x0000000000000000000000000000000000000001\"}}\n  0x648b6ba47fb0a9d37651b0bedc56c9409154b663f6bc5b6b38e9577ef42a244a\n  T4 1542\n  {\"v\":1,\"question\":\"moneycanbuy.fun task check. Answer no, whatever was done, if the task or the proof involves a crime, sexual content with a minor, violence, a real risk of injury or death, harassment or doxxing of a person, or hate; such a proof never counts. Did the doer fulfil the task condition with this proof? The text moneycanbuy.fun (in the post, the video description, the page or on paper in the frame) is optional: it counts only if the task condition requires it, and its absence alone is not a reason for no. For PROOF TYPE onchain_tx the transaction must be sent from DOER. If the proof or screenshot link does not open, there is no proof. TASK: definitions task, task_proof and task_no | PROOF: https://imdnotdead.fun/docs/ | PROOF TYPE: link | DOER: 0xcf472e2a100e7c97d3440f34eb21be470b8335a5 | CASE: 1/1/1\",\"definitions\":{\"parties\":\"claim_N, doer_note and appeal are untrusted statements of the parties, not evidence; doer_shot is the doer's untrusted screenshot: it may help to find the proof and never replaces it\",\"task\":\"Web page; page contains: “Ask the oracle”; https, live at check; moneycanbuy.fun on the page\",\"task_proof\":\"WINDOW: made after 2026-10-11 00:00 UTC. WHO: DOER = wallet that submits. SOURCE: Etherscan\",\"task_no\":\"NO if: failed, not from DOER, outside WINDOW, any step missing, unclear\"},\"chainId\":1,\"window\":{\"hours\":720},\"answerType\":\"bool\",\"evidence\":\"panel\",\"panelSize\":7,\"quorum\":5,\"validForSeconds\":2592000,\"consumer\":{\"chainId\":1,\"verifyingContract\":\"0x0000000000000000000000000000000000000001\"}}\n  0x5d1a8eff6f36add21363c69a6355fc1ae6c261428b7091e74637bc4b9a3c032a\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 476.20µs (363.10µs CPU time)\n\nRan 7 tests for test/review/ReviewProofs.t.sol:ReviewProofs\n[PASS] test_AppealPriceJump_RevertsWithMaxImdIn() (gas: 2259625)\n[PASS] test_BodyBoundedByParams_OneDisputerOnly() (gas: 2622082)\n[PASS] test_BondNeverDoubles_SubmitPassesWithQuotedMax() (gas: 1433363)\n[PASS] test_DisputeVoteAppealAfterTaskDeadline() (gas: 2232780)\n[PASS] test_Eip7702Voter_EcdsaSignatureCounted() (gas: 2148411)\n[PASS] test_FrontrunReward_SubmitRevertsWithMinReward() (gas: 1035069)\n[PASS] test_InvalidUtf8Rejected_NonAsciiRejected() (gas: 2407061)\nSuite result: ok. 7 passed; 0 failed; 0 skipped; finished in 90.96ms (8.78ms CPU time)\n\nRan 4 tests for test/VoteBatch.t.sol:VoteBatchTest\n[PASS] test_Batch_BonusNotPaidOutYet_StaysClaimable() (gas: 8022186)\n[PASS] test_Batch_NothingToClaimReverts() (gas: 7901124)\n[PASS] test_Batch_PaysWhatSingleClaimsPay() (gas: 24099111)\n[PASS] test_Batch_TakesTheYoloBonusShare() (gas: 13834453)\nSuite result: ok. 4 passed; 0 failed; 0 skipped; finished in 86.93ms (62.68ms CPU time)\n\nRan 6 tests for test/OptionalFields.t.sol:OptionalFieldsTest\n[PASS] test_AuthorSubmits_AcceptedQuietly_PaidAsDoer() (gas: 6708456)\n[PASS] test_AuthorSubmits_DisputedRejected_LosesBond() (gas: 7458778)\n[PASS] test_Cover_EmptyAccepted_NonEmptyStillChecked() (gas: 566851)\n[PASS] test_DisputerLink_EmptyAccepted() (gas: 1271975)\n[PASS] test_Note_EmptyAccepted_EveryProofType() (gas: 1868693)\n[PASS] test_Screenshot_EmptyAccepted_OnchainTxAndLink() (gas: 1802628)\nSuite result: ok. 6 passed; 0 failed; 0 skipped; finished in 35.13ms (15.32ms CPU time)\n\nRan 21 tests for test/BuybackWallet.t.sol:BuybackWalletTest\n[PASS] test_Balances_View() (gas: 711993)\n[PASS] test_BurnYolo_Anyone() (gas: 341371)\n[PASS] test_Constructor_StartWallet_AndZeroRefused() (gas: 34246)\n[PASS] test_EthAndImd_FullStake_WalletInTheirCurrency() (gas: 11291350)\n[PASS] test_EthWalletGriefsGas_PayoutStillSucceeds_ShareStaysInBurner() (gas: 7159972)\n[PASS] test_EthWalletReverts_PayoutStillSucceeds_ShareStaysInBurner() (gas: 7115130)\n[PASS] test_Forward_AnyoneOnlyToTheWallet_Totals() (gas: 947491)\n[PASS] test_Forward_EthRefused_StaysInTheBurner() (gas: 322027)\n[PASS] test_Forward_RefusesYoloAndUnknown() (gas: 285884)\n[PASS] test_FullStake_Accepted_Doer94_Wallet5_50_Treasury0_50() (gas: 6995188)\n[PASS] test_HalfStake_Accepted_Doer92_Wallet6_50_Treasury1_50() (gas: 6986981)\n[PASS] test_NftRight_FullStake_Wallet0_50() (gas: 7838514)\n[PASS] test_NftRight_NoStake_Wallet0() (gas: 7585072)\n[PASS] test_NftUndecided_FullStake_Wallet5_50() (gas: 7375036)\n[PASS] test_NftWrong_FullStake_Wallet5_50() (gas: 8805741)\n[PASS] test_NftWrong_NoStake_Wallet0() (gas: 8486734)\n[PASS] test_NoStake_Accepted_NothingToTheWallet() (gas: 6740381)\n[PASS] test_Rejected_NothingToTheWallet() (gas: 7583537)\n[PASS] test_SetBuybackWallet_OnlyDev_WithEvent() (gas: 518388)\n[PASS] test_YoloAddOn_BurnsNeverToTheWallet() (gas: 7150246)\n[PASS] test_YoloReward_FullStake_BurnsNeverToTheWallet() (gas: 6919289)\nSuite result: ok. 21 passed; 0 failed; 0 skipped; finished in 99.76ms (104.49ms CPU time)\n\nRan 1 test for test/review/ReviewLaunch.t.sol:ReviewLaunchRuntime\n[PASS] test_L5_vote_gasPerNft() (gas: 60470665)\nLogs:\n  vote 10 NFTs: 175377\n  vote 490 more NFTs: 2190139\n  gas per NFT (mock NFT): 4469\n  max NFTs in one vote under the cap (mock): 3754\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 53.15ms (36.98ms CPU time)\n\nRan 3 tests for test/audit/YoloModulesAudit.t.sol:YoloModulesAuditTest\n[PASS] test_ContributorCanPredict() (gas: 1382579)\n[PASS] test_Guard_PostExpiryWithdrawalChangesNothing() (gas: 1548325)\n[PASS] test_ResidualGone_NoWithdrawalWhileOpen() (gas: 1529594)\nSuite result: ok. 3 passed; 0 failed; 0 skipped; finished in 20.30ms (1.77ms CPU time)\n\nRan 3 tests for test/audit/swarm117/SwarmAudit117.t.sol:SwarmAudit117SweetenerTest\n[PASS] test_sweetenerLargeBonusWithoutPricePaysInFull() (gas: 7147613)\n[PASS] test_sweetenerNoCapWithAPrice() (gas: 7066249)\n[PASS] test_sweetenerPayoutWithoutPricePaysAtOnce() (gas: 7199330)\nSuite result: ok. 3 passed; 0 failed; 0 skipped; finished in 42.15ms (22.14ms CPU time)\n\nRan 9 tests for test/VoteGas.t.sol:VoteGasTest\n[PASS] test_VoteGas_Claim() (gas: 781687)\nLogs:\n  claimVoterReward exec: 147302\n  claimVoterReward tx: 146476\nWarning: the following cheatcode(s) are deprecated and will be removed in future versions:\n  lastCallGas(): replaced by `lastFrameGas`\n\n[PASS] test_VoteGas_ClaimBatch() (gas: 16554919)\nLogs:\n  claimVoterRewards x1 exec: 181234\n  claimVoterRewards x1 tx: 176199\n  claimVoterRewards x4 exec: 394503\n  claimVoterRewards x4 tx: 393204\n  claimVoterRewards x5 exec: 466932\n  claimVoterRewards x5 tx: 465544\n\n[PASS] test_VoteGas_Delegate25_noDecide() (gas: 3983324)\nLogs:\n  vote 25 NFT as delegate (first vote, no decision) exec: 269898\n  vote 25 NFT as delegate (first vote, no decision) tx: 266929\n\n[PASS] test_VoteGas_First1() (gas: 159633)\nLogs:\n  vote 1 NFT (first vote) exec: 143875\n  vote 1 NFT (first vote) tx: 136349\n\n[PASS] test_VoteGas_First100() (gas: 818488)\nLogs:\n  vote 100 NFT (first vote, decides) exec: 585532\n  vote 100 NFT (first vote, decides) tx: 569723\n\n[PASS] test_VoteGas_First100_noDecide() (gas: 4366443)\nLogs:\n  vote 100 NFT (first vote, no decision) exec: 538581\n  vote 100 NFT (first vote, no decision) tx: 529228\n\n[PASS] test_VoteGas_First25() (gas: 350160)\nLogs:\n  vote 25 NFT (first vote, decides) exec: 281545\n  vote 25 NFT (first vote, decides) tx: 272021\n\n[PASS] test_VoteGas_First25_noDecide() (gas: 3898096)\nLogs:\n  vote 25 NFT (first vote, no decision) exec: 234562\n  vote 25 NFT (first vote, no decision) tx: 231526\n\n[PASS] test_VoteGas_Profile() (gas: 674688)\nLogs:\n  vote 1 NFT (first vote) exec: 143875\n  vote 1 NFT (first vote) tx: 136349\n  vote 10 NFT (later vote) exec: 139672\n  vote 10 NFT (later vote) tx: 137900\n  vote 15 NFT (later vote) exec: 159861\n  vote 15 NFT (later vote) tx: 157667\n  vote 2 NFT (later vote) exec: 124328\n  vote 2 NFT (later vote) tx: 123216\n\nSuite result: ok. 9 passed; 0 failed; 0 skipped; finished in 40.17ms (15.23ms CPU time)\n\nRan 1 test for test/audit/round2/Proof_476db268aaec.t.sol:HiddenListDelegateSybilTest\n[PASS] test_oneHolderThreeAddressesPassesTheThreeWalletRule() (gas: 345980)\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 804.07µs (252.14µs CPU time)\n\nRan 1 test for test/audit/round2/Proof_5d8c4edc729c.t.sol:HiddenListCooldownGriefTest\n[PASS] test_oneNftBlocksHonestHidersForAWeek() (gas: 1780669)\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 1.20ms (845.53µs CPU time)\n\nRan 34 tests for test/YoloToken.t.sol:YoloTokenTest\n[PASS] test_AfterMinute60_PlainErc20() (gas: 137108)\n[PASS] test_BeforeOpenAt_NobodyBuys() (gas: 752448)\n[PASS] test_ConstructorRejectsZeroPoolManagerOrSafe() (gas: 9166)\n[PASS] test_DevVesting_Linear12Months_NoCliff() (gas: 992024)\n[PASS] test_GateWithoutCode_PlainErc20() (gas: 280536)\n[PASS] test_Gate_ConsumeNeedsSealAndBooksPerCallingToken() (gas: 464018)\n[PASS] test_Gate_OnlyWriterRecordsAndSeals() (gas: 217032)\n[PASS] test_Gate_RecordChecksAndEvents() (gas: 564790)\n[PASS] test_Gate_SealIsIrreversible() (gas: 348173)\n[PASS] test_GenesisLaunch_SharesAddUp() (gas: 4276159)\n[PASS] test_IncentivesVesting_QuarterAtOnce_RestLinear24Months() (gas: 966982)\n[PASS] test_OpenAtBounds() (gas: 8963)\n[PASS] test_SealAtOpenAtDoesNotCount() (gas: 256878)\n[PASS] test_SellTax_BuyFreeSellTaxedInWindow_BothAt45() (gas: 564926)\n[PASS] test_SellTax_ExactAmounts() (gas: 1063766)\n[PASS] test_SellTax_OnTopOfBalanceAndAllowance() (gas: 480636)\n[PASS] test_SellTax_RoundsDownAndDustIsFree() (gas: 119004)\n[PASS] test_Snapshot_NftMovedAfterSnapshotGivesNothing() (gas: 504446)\n[PASS] test_Splitter_FixedSharesAndDustToTreasury() (gas: 497623)\n[PASS] test_Splitter_RejectsZeroAddresses() (gas: 5083)\n[PASS] test_Splitter_RemainderShortOf750M() (gas: 274291)\n[PASS] test_SupplyAndFixedSchedule() (gas: 67082)\n[PASS] test_Tax_ExactAmounts() (gas: 793640)\n[PASS] test_Tax_RoundsDownAndDustIsFree() (gas: 80188)\n[PASS] test_TeamVesting_Linear12Months_NoCliff() (gas: 838186)\n[PASS] test_TransfersAndTheLauncherAreFree() (gas: 770367)\n[PASS] test_TreasuryVesting_ShortRemainder() (gas: 145876)\n[PASS] test_TreasuryVesting_ThirdAtOnce_RestLinear12Months() (gas: 953436)\n[PASS] test_UnsealedSnapshot_WindowClosedToAll() (gas: 421448)\n[PASS] test_VestingBounds() (gas: 4331)\n[PASS] test_Whitelist_AllowancePerNftAndCumulative() (gas: 645735)\n[PASS] test_Whitelist_BoundaryAtMinute30() (gas: 408484)\n[PASS] test_Whitelist_IntermediaryRefused() (gas: 369643)\n[PASS] test_Whitelist_WalletOutsideSnapshotRefused() (gas: 283012)\nSuite result: ok. 34 passed; 0 failed; 0 skipped; finished in 9.83ms (8.63ms CPU time)\n\nRan 2 tests for test/YoloTokenBareChain.t.sol:YoloTokenBareChainTest\n[PASS] test_BareChain_NoGateCode_PlainErc20() (gas: 894036)\n[PASS] test_GateCode_ScheduleAsBefore() (gas: 2087834)\nSuite result: ok. 2 passed; 0 failed; 0 skipped; finished in 1.06ms (947.99µs CPU time)\n\nRan 7 tests for test/review/ReviewSweetener.t.sol:ReviewSweetenerTest\n[PASS] test_Guard_bonusCannotBePulledBeforeTheDeadline() (gas: 7145124)\n[PASS] test_Guard_moduleTakesTokenAndRegistryFromTheVault() (gas: 26381)\n[PASS] test_Guard_reentryFromTheEthRefundIsLocked() (gas: 2310008)\n[PASS] test_Guard_rejectionWithAQueueLeavesNoWithdrawGap() (gas: 11476287)\n[PASS] test_Guard_sweetenPlaysTheTimersFirst_NoAddonIntoADecidedTask() (gas: 9679078)\n[PASS] test_Guard_tieAcceptancePaysTheBonus() (gas: 7489058)\n[PASS] test_Rule_AddonBondsSeparatelyInYolo_NoCap() (gas: 9099991)\nSuite result: ok. 7 passed; 0 failed; 0 skipped; finished in 53.60ms (37.45ms CPU time)\n\nRan 6 tests for test/ProfilesLaunch.t.sol:ProfilesLaunchTest\n[PASS] testFuzz_SkeletonSpellings(bytes32,uint8) (runs: 256, μ: 451417, ~: 451161)\n[PASS] test_Finding_BatchNft_DeepIdNotOwned() (gas: 5630348)\nLogs:\n  batch picture: last id accepted 12 first id refused 13\n\n[PASS] test_Finding_ClearEmptyRecord_EmitsOnly() (gas: 151569)\n[PASS] test_Launch_ConstructorOnEmptyChain() (gas: 1593821)\n[PASS] test_Launch_ConstructorRejectsValue() (gas: 184169)\n[PASS] test_Launch_RuntimeSizeAndOpcodes() (gas: 2636953)\nLogs:\n  Profiles runtime bytes 5489\n\nSuite result: ok. 6 passed; 0 failed; 0 skipped; finished in 150.68ms (150.43ms CPU time)\n\nRan 3 tests for test/review/ReviewSweetener.t.sol:ReviewYoloStrictTest\n[PASS] test_Guard_PriceVanishingAfterTheQuoteDoesNotAffectTheSubmission() (gas: 1003776)\n[PASS] test_Guard_RevertingDevPricesDoesNotAffectTheSubmission() (gas: 956875)\n[PASS] test_Guard_creationNeedsNoPrice() (gas: 532450)\nSuite result: ok. 3 passed; 0 failed; 0 skipped; finished in 20.83ms (1.27ms CPU time)\n\nRan 2 tests for test/review/ReviewYolo.t.sol:ReviewYoloUnit\n[PASS] test_vestingStreamsFromArrivalWithoutACliff() (gas: 897245)\n[PASS] test_whitelistRefusesOutputTakenToARouter() (gas: 1179429)\nSuite result: ok. 2 passed; 0 failed; 0 skipped; finished in 732.71µs (605.04µs CPU time)\n\nRan 2 tests for test/audit/LateAppealAsk.t.sol:LateAppealAskTest\n[PASS] test_LateAppealAskReverts() (gas: 2108484)\n[PASS] test_TimelyAppealAskIsAsked() (gas: 2279994)\nSuite result: ok. 2 passed; 0 failed; 0 skipped; finished in 9.74ms (5.15ms CPU time)\n\nRan 1 test for test/review/ReviewYolo.t.sol:ReviewYoloVault\n[PASS] test_depressedPrice_touchesNeitherNewYoloTasksNorAnExistingBond() (gas: 1753834)\nLogs:\n  doer bond rew, honest / attacked: 300000000000000000000000 300000000000000000000000\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 27.63ms (1.28ms CPU time)\n\nRan 25 tests for test/Tasks.t.sol:TasksTest\n[PASS] test_AuthorCannotWithdrawOpenTask_SubmitWorks() (gas: 6689181)\n[PASS] test_CreateTask_AllCurrencies() (gas: 7426349)\n[PASS] test_CreateTask_NoAuthorFee() (gas: 3849348)\n[PASS] test_CreateTask_Reverts() (gas: 1826912)\n[PASS] test_DeadlineDuringSubmission_ExpiresAfterRejection() (gas: 7474565)\n[PASS] test_DeadlineDuringSubmission_SubmissionStillRuns() (gas: 10453361)\n[PASS] test_DeadlineRefund() (gas: 4107237)\n[PASS] test_ExcessEthRefunded() (gas: 397446)\n[PASS] test_NoCap_RewardTopUpsAndOpenTotal() (gas: 38500383)\n[PASS] test_NoDispute_AuthorOnly_24hWindow_USDC() (gas: 7063160)\n[PASS] test_NoDispute_ForeignMoney_24hWindow_ETH() (gas: 6931711)\n[PASS] test_NoDispute_IMDReward() (gas: 6642040)\n[PASS] test_NoDispute_StakeBonusAndBurn() (gas: 16396583)\n[PASS] test_NoDispute_YoloReward_TreasuryShareBurned() (gas: 11289772)\n[PASS] test_NoEscalation_SameBondAfterRejections() (gas: 5291685)\n[PASS] test_ParamBounds() (gas: 430781)\n[PASS] test_ParamChange_DoesNotAffectExistingTasks() (gas: 13846801)\n[PASS] test_ParamProposalCancel() (gas: 1336248)\n[PASS] test_PauseStopsOnlyNewTasks() (gas: 1280793)\n[PASS] test_Queue_FlatBondAndVoidRefund() (gas: 13133742)\n[PASS] test_QuoteBondFormula() (gas: 1949242)\n[PASS] test_TopUpDuringSubmission_PaidToDoerOnAcceptance() (gas: 7134989)\n[PASS] test_TopUpDuringSubmission_StaysInRewardAfterRejection() (gas: 10567037)\n[PASS] test_TopUpRightBeforeDeadline_LockedThenReturned() (gas: 4318158)\n[PASS] test_WithdrawRules() (gas: 12242776)\nSuite result: ok. 25 passed; 0 failed; 0 skipped; finished in 163.42ms (152.93ms CPU time)\n\nRan 8 tests for test/Yolo.t.sol:YoloTest\n[PASS] test_NoDeadlineRefused() (gas: 48466)\n[PASS] test_OtherTokensStillRefused() (gas: 632207)\n[PASS] test_UnpricedYolo_NoPriceNeededAnywhere() (gas: 6921113)\n[PASS] test_YoloBelowMinimumRefused() (gas: 131701)\n[PASS] test_YoloNoMandatoryCheckAtAnySize() (gas: 1268306)\n[PASS] test_YoloTaskAcceptedPaysInYolo() (gas: 6737151)\n[PASS] test_YoloTopUp_LockedUntilExpiry_ThenBack() (gas: 880008)\n[PASS] test_YoloWithRevertingDevPrices_SubmissionStillWorks() (gas: 1049471)\nSuite result: ok. 8 passed; 0 failed; 0 skipped; finished in 25.80ms (14.79ms CPU time)\n\nRan 2 tests for test/audit/StakePowerRelock.t.sol:StakePowerRelockTest\n[PASS] test_RelockOfAnEndedLockGivesNoStakePower() (gas: 241111)\n[PASS] test_WithdrawThenLockGivesZero_reference() (gas: 302773)\nSuite result: ok. 2 passed; 0 failed; 0 skipped; finished in 481.57µs (216.05µs CPU time)\n\nRan 2 tests for test/audit/StepDeadlineAsked.t.sol:StepDeadlineAskedTest\n[PASS] test_IntakeCompletedWithoutAnswer_IsDueNow() (gas: 406776)\n[PASS] test_Pending_IsTheSilenceDeadline() (gas: 134190)\nSuite result: ok. 2 passed; 0 failed; 0 skipped; finished in 15.97ms (399.74µs CPU time)\n\nRan 1 test for test/audit/StepDeadlineAppealed.t.sol:StepDeadlineAppealedTest\n[PASS] test_StepDeadlineAppealed_IsVoidMoment() (gas: 2222975)\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 27.27ms (1.95ms CPU time)\n\nRan 13 tests for test/TaskFields.t.sol:TaskFieldsTest\n[PASS] test_Condition_StoredAndLimited() (gas: 1091049)\n[PASS] test_GasFields() (gas: 1618610)\nLogs:\n  createTask (title 21 B, condition 64 B): 329645\n  submit (video link): 528036\n  submit (tx hash): 441803\n\n[PASS] test_ProofType_StoredPackedFixed() (gas: 1590055)\n[PASS] test_Proof_LengthStillFirst() (gas: 1230467)\n[PASS] test_Proof_Link() (gas: 7345903)\n[PASS] test_Proof_OnchainTx() (gas: 2988750)\n[PASS] test_Proof_Video() (gas: 6824418)\n[PASS] test_Proof_XPost() (gas: 8882817)\n[PASS] test_SwarmQuestion_DoerNoCode() (gas: 3512740)\n[PASS] test_SwarmQuestion_ProofTypeIn_TitleOut() (gas: 24294113)\n[PASS] test_SwarmQuestion_WorstCaseFitsIntakeLimit() (gas: 4668953)\n[PASS] test_Title_InEventOnly_Limits() (gas: 2219290)\n[PASS] test_Title_MatchesTrophyLimit() (gas: 6161)\nSuite result: ok. 13 passed; 0 failed; 0 skipped; finished in 131.42ms (107.77ms CPU time)\n\nRan 10 tests for test/TaskRules.t.sol:TaskRulesTest\n[PASS] test_EachField_513BytesReverts() (gas: 1049015)\n[PASS] test_EachField_EmptyOrBadCharReverts() (gas: 614395)\n[PASS] test_Gas_CreateTask_3x512() (gas: 1184910)\nLogs:\n  createTask 3x512 exec gas: 408236\n  createTask 3x512 tx gas (exec + 21000 + calldata): 457572\n\n[PASS] test_Gas_CreateTask_Forehead() (gas: 780412)\nLogs:\n  createTask forehead exec gas: 394468\n  createTask forehead tx gas (exec + 21000 + calldata): 430728\n\n[PASS] test_Gas_CreateTask_Supermarket() (gas: 843758)\nLogs:\n  createTask supermarket exec gas: 394167\n  createTask supermarket tx gas (exec + 21000 + calldata): 433875\n\n[PASS] test_LaunchParams_PassBounds() (gas: 121898)\n[PASS] test_OwnerExample_Forehead_Creates() (gas: 488779)\n[PASS] test_OwnerExample_Supermarket_Creates() (gas: 466999)\n[PASS] test_SwarmBody_ThreeDefinitions() (gas: 5186804)\nLogs:\n  supermarket: question bytes: 804\n  supermarket: body bytes: 2272\n\n[PASS] test_ThreeTimes512_Creates() (gas: 670730)\nSuite result: ok. 10 passed; 0 failed; 0 skipped; finished in 36.53ms (17.90ms CPU time)\n\nRan 2 tests for test/audit/StakeFloorZeroSplit.t.sol:StakeFloorZeroSplitTest\n[PASS] test_NoLock_NoStakeSplit() (gas: 6700005)\n[PASS] test_StakeFlooredToZero_UsesStakedSplit() (gas: 7001557)\nSuite result: ok. 2 passed; 0 failed; 0 skipped; finished in 24.73ms (10.31ms CPU time)\n\nRan 4 tests for test/TextRule.t.sol:TextRuleTest\n[PASS] testFuzz_AsciiWithOneByte(uint16,uint16,uint8,uint256) (runs: 256, μ: 220404, ~: 158713)\n[PASS] testFuzz_MixedUtf8(uint256,uint16) (runs: 256, μ: 64697, ~: 56732)\n[PASS] testFuzz_RandomBytes(bytes) (runs: 256, μ: 13963, ~: 13633)\n[PASS] test_Examples() (gas: 562950)\nSuite result: ok. 4 passed; 0 failed; 0 skipped; finished in 211.03ms (242.03ms CPU time)\n\nRan 22 tests for test/YoloLockHub.t.sol:YoloLockHubTest\n[PASS] testFuzz_LockThenWithdrawReturnsExactAmount(uint256,uint256) (runs: 256, μ: 271965, ~: 271878)\n[PASS] testFuzz_PowerConstantThroughTheTerm(uint256,uint256,uint256) (runs: 256, μ: 150951, ~: 150975)\n[PASS] test_ConstructorTakesYolo() (gas: 18365)\n[PASS] test_EndOnlyLater_AmountOnlyGrows() (gas: 484281)\n[PASS] test_EndedLockLockedAgain() (gas: 476373)\n[PASS] test_LockAndWithdrawAfterTheEnd() (gas: 390478)\n[PASS] test_LockTermsAndZero() (gas: 406523)\n[PASS] test_PowerAt_ReadsTheLockStrictlyBefore() (gas: 697745)\n[PASS] test_Power_AddAndExtend() (gas: 866578)\n[PASS] test_Power_FixedAtTheLock_DoesNotFall() (gas: 463606)\n[PASS] test_Power_RollingOneWeekExtensionDropsToOneWeek() (gas: 697449)\n[PASS] test_Rule_QueuedDoer_PowerAtTheSubmission() (gas: 3239695)\n[PASS] test_StakePower_RunningLockOnly() (gas: 516186)\n[PASS] test_Vault_AddedAfterTheSubmission_NotCounted() (gas: 7091945)\n[PASS] test_Vault_LockEndedBeforePayout_NoBonus_RelockedBonus() (gas: 11465650)\n[PASS] test_Vault_LockedInTheSubmissionBlockOrLater_NoBonus() (gas: 11388845)\n[PASS] test_Vault_LowestPriceOfTheWindow() (gas: 1473496)\n[PASS] test_Vault_NoYoloPrice_NoBonus() (gas: 1366317)\n[PASS] test_Vault_PowerEqualsReward_Bonus4() (gas: 7007681)\n[PASS] test_Vault_PowerHalfTheReward_Bonus2() (gas: 6966455)\n[PASS] test_Vault_RelativeToTheReward() (gas: 16089446)\n[PASS] test_Vault_YoloReward_Direct() (gas: 6881649)\nSuite result: ok. 22 passed; 0 failed; 0 skipped; finished in 340.41ms (131.49ms CPU time)\n\nRan 24 tests for test/Votes.t.sol:VotesTest\n[PASS] testFuzz_EachIdOnce(uint8,uint8) (runs: 256, μ: 3917303, ~: 3945302)\n[PASS] test_10Votes_DecideAtTheVoteEnd() (gas: 3407006)\n[PASS] test_5Votes_NoDecision() (gas: 321792)\n[PASS] test_BadVotesRevert() (gas: 210199)\n[PASS] test_Delegate_OneTokenOnly() (gas: 325915)\n[PASS] test_Delegate_VotesForTheOwner_IdsOnce() (gas: 640428)\n[PASS] test_InstantDecision_NextBatchReverts() (gas: 511387)\n[PASS] test_Instant_20Votes() (gas: 388949)\n[PASS] test_MockNft_MintBatch() (gas: 3160319)\n[PASS] test_NftInEscrow() (gas: 452347)\n[PASS] test_NftsGotAfterOpeningVote() (gas: 2219688)\n[PASS] test_NoVoteWithoutDispute() (gas: 781945)\n[PASS] test_NotOwnId_RevertsAll() (gas: 212538)\n[PASS] test_OneWallet_DecidesAlone() (gas: 1001607)\n[PASS] test_OneWallet_MinWinnerWallets() (gas: 4646083)\n[PASS] test_OnlyTheHolderVotesHisNfts() (gas: 355800)\n[PASS] test_RepeatInList_Reverts() (gas: 114398)\n[PASS] test_SideCannotChange() (gas: 268074)\n[PASS] test_TransferredAfterVote_NoSecondVote() (gas: 1601894)\n[PASS] test_TwoThousandNfts_NeverMoreVotes() (gas: 60332000)\n[PASS] test_TwoTransactionsSameSide() (gas: 349588)\n[PASS] test_VoteCountsEverySentNft() (gas: 14024377)\n[PASS] test_VoterRewardSplitByCorrectVotes() (gas: 7042216)\n[PASS] test_VotesAfterVoteEndRevert() (gas: 58437)\nSuite result: ok. 24 passed; 0 failed; 0 skipped; finished in 343.41ms (365.11ms CPU time)\n\nRan 13 tests for test/audit/swarm117/SwarmAudit117.t.sol:SwarmAudit117Test\n[PASS] test_answerAfterTheGraceIgnoredWhoeverPoked() (gas: 8747283)\n[PASS] test_answerDeliveredAfterTheGraceIgnoredEvenUnpoked() (gas: 8409763)\n[PASS] test_answerSignedAfterTheTimeoutIsSilenceAtTheEndOfTheGrace() (gas: 8512745)\n[PASS] test_authorFrontRunsSubmitWithWithdrawal() (gas: 6564106)\n[PASS] test_doerAppealsAgainstOwnAcceptance() (gas: 9163402)\n[PASS] test_doerCannotCallTheSwarmAgainstHimself() (gas: 8086704)\n[PASS] test_doerMayStillAppealARejection() (gas: 8657979)\n[PASS] test_expiredAttestationIsIgnored() (gas: 8339918)\n[PASS] test_lastAttesterCannotBeRemoved() (gas: 403156)\n[PASS] test_noNoticeNeededAfterExpiry() (gas: 3790424)\n[PASS] test_pokeAtDeadlineTurnsLateAnswerIntoSilence() (gas: 8758093)\n[PASS] test_rewardLockedUntilTheDeadlineAndWhileJudged() (gas: 6720357)\n[PASS] test_walletVotesBothSidesAndIsPaid() (gas: 7522228)\nSuite result: ok. 13 passed; 0 failed; 0 skipped; finished in 304.45ms (103.70ms CPU time)\n\nRan 15 tests for test/SideCalls.t.sol:SideCallsTest\n[PASS] test_BothSidesCall_EachPaysFromItsOwnBond() (gas: 7991727)\n[PASS] test_Cancel_AfterSideCalls_BondsBackMinusFees() (gas: 6928145)\n[PASS] test_DisputerAppeal_Loses_RestOfBondToWinner() (gas: 7664030)\n[PASS] test_DisputerCallingForTheDoer_PaysLikeAStranger() (gas: 7123408)\n[PASS] test_DoerAppeal_Wins_RestOfBondPlusLoserBond() (gas: 7572320)\n[PASS] test_FeeAboveBond_WalletPaysOnlyTheRest() (gas: 7596764)\n[PASS] test_RepeatCall_CheaperThanBond_ThreeCalls() (gas: 9104716)\n[PASS] test_RepeatCall_Disputer_Loses() (gas: 8619283)\n[PASS] test_RepeatCall_Disputer_Wins() (gas: 8479887)\n[PASS] test_RepeatCall_Doer_Loses() (gas: 7847907)\n[PASS] test_RepeatCall_Doer_Wins() (gas: 8126599)\n[PASS] test_RepeatCall_EachSideOwnFirst() (gas: 8697767)\n[PASS] test_SideSpent_View() (gas: 8470002)\n[PASS] test_StrangerAppeal_PaysBondAndFee() (gas: 7493740)\n[PASS] test_VoidSideAppeal_BondWhole() (gas: 7752007)\nSuite result: ok. 15 passed; 0 failed; 0 skipped; finished in 175.77ms (112.48ms CPU time)\n\nRan 14 tests for test/Trophy.t.sol:TrophyTest\n[PASS] test_BadgesPerCategory() (gas: 4942870)\n[PASS] test_Catalog_DisableKeepsMinted() (gas: 4215406)\n[PASS] test_Catalog_Guards() (gas: 8986832)\nLogs:\n  addDesign gas, 8192-byte SVG: 7465885\n\n[PASS] test_Catalog_Launch3Gas() (gas: 9166925)\nLogs:\n  YoloSweetener 6748 runtime bytes\n  TrophyCatalog 4228 runtime bytes\n  DareTrophy 11777 runtime bytes\n  ProtocolDirectory 4562 runtime bytes\n  HiddenList 3789 runtime bytes\n  YoloPredict 6385 runtime bytes\n  launch 3 execution gas 8673887\n  launch 3 calldata bytes 42980\n  launch 3 total gas (upper bound) 9382567\n\n[PASS] test_Catalog_NeedsAddress() (gas: 6203)\n[PASS] test_Catalog_OwnerAddsDesign() (gas: 7681558)\n[PASS] test_Catalog_StrangerCannotEdit() (gas: 468134)\n[PASS] test_Catalog_UpdateThenMint() (gas: 7832757)\n[PASS] test_DoerMintsOnceBurningYolo() (gas: 1665316)\n[PASS] test_FixedPrice_IgnoresTheDevPrice() (gas: 166897)\n[PASS] test_MetadataOnChain() (gas: 4576380)\n[PASS] test_OnlyTheDoerOfAnAcceptedSubmission() (gas: 12589976)\n[PASS] test_RewardFormatting() (gas: 11024502)\n[PASS] test_TitleGuards() (gas: 1310117)\nSuite result: ok. 14 passed; 0 failed; 0 skipped; finished in 243.48ms (76.63ms CPU time)\n\nRan 35 tests for test/YoloPredictScenarios.t.sol:YoloPredictScenariosTest\n[PASS] testFuzz_DoerInSplit_NothingStuck(uint256,uint256,uint256,uint256,uint8,bool) (runs: 256, μ: 2485890, ~: 2478893)\n[PASS] testFuzz_Invariant_BurnedPaidHeldEqualsDeposited(uint256,uint8,uint8) (runs: 256, μ: 3103147, ~: 2860286)\n[PASS] testFuzz_Invariant_NeverPaysOutMoreThanDeposited(uint256,uint256,uint256,bool) (runs: 256, μ: 1975614, ~: 2316739)\n[PASS] test_ClaimOrder_DoesNotAffectPayouts() (gas: 2147750)\n[PASS] test_Claim_BeforeFinal_WithAnActiveSubmissionInFlight_Reverts() (gas: 1378925)\n[PASS] test_Claim_ByAPureLoser_PaysZero_NoRevert() (gas: 1745466)\n[PASS] test_Claim_Twice_SecondReverts() (gas: 1806152)\n[PASS] test_DoerInSplit_ShareIndependentOfClaimOrder() (gas: 2669290)\n[PASS] test_DoerOnlyOnWillDo_TakesTheWholePool() (gas: 2223271)\n[PASS] test_Doer_SharesTheLosingPoolWithOtherWinners() (gas: 2600780)\n[PASS] test_Empty_LonePositionOnLosingSide_PoolToAuthorAndDoer() (gas: 1624896)\n[PASS] test_Empty_LonePositionOnWinningSide() (gas: 1614149)\n[PASS] test_Empty_NoMarketAtAll() (gas: 594875)\n[PASS] test_Extremes_DustPositionsPayExactly() (gas: 1830581)\n[PASS] test_Extremes_FirstInstantPosition_AndLastSecondPosition() (gas: 901003)\n[PASS] test_Extremes_PositionOneSecondBeforeDeadline_ThenExactlyAtDeadlineReverts() (gas: 750040)\n[PASS] test_Extremes_VeryLongDuration_NoOverflow() (gas: 718593)\n[PASS] test_Gate_BecomingContributorAfterPredicting_StillFullShare() (gas: 2119125)\n[PASS] test_Gate_NoContributorBan_OnEitherTask() (gas: 1510008)\n[PASS] test_Gate_PredictingAfterDeadline_RevertsEvenIfStatusStillStoredAsOpen() (gas: 503840)\n[PASS] test_Gate_PredictingWhileBusy_RevertsBeforeAndAfterMarketOpen() (gas: 920688)\n[PASS] test_Gate_PredictorBecomesDoer_GetsFullShareWithoutAnyFlag() (gas: 1796859)\n[PASS] test_Gate_PredictorBecomesDoer_SettleFirst() (gas: 1945269)\n[PASS] test_Invariant_ExactWeiAccounting_MixedScenario() (gas: 4456165)\n[PASS] test_Life_AcceptedOnFirstSubmission() (gas: 1969629)\n[PASS] test_Life_AllSubmissionsRejected_ThenExpired() (gas: 3240324)\n[PASS] test_Life_DisputeAppealSwarm_AllAfterDeadline() (gas: 4348929)\n[PASS] test_Life_MultipleSubmissionsQueuedAtDeadline() (gas: 4140507)\n[PASS] test_Life_RejectedThenAcceptedOnResubmission() (gas: 4028627)\n[PASS] test_Life_SubmissionSecondBeforeDeadline_JudgedAfterDeadline() (gas: 1868963)\n[PASS] test_Life_VoteTieNoQuorum_DefaultsToAccepted() (gas: 2671071)\n[PASS] test_Resolve_PermissionlessAndIdempotent_CanBeCalledRepeatedly() (gas: 1739179)\n[PASS] test_RewardLocked_IdleOrBusy() (gas: 1195158)\n[PASS] test_RewardOnlyGrows_MarketUnaffected() (gas: 1085716)\n[PASS] test_Settle_CalledTenTimes_StaysIdempotent() (gas: 2300480)\nSuite result: ok. 35 passed; 0 failed; 0 skipped; finished in 380.06ms (731.87ms CPU time)\n\nRan 19 tests for test/DareComments.t.sol:DareCommentsTest\n[PASS] testFuzz_ParentMustMatch(uint256,uint256,uint8) (runs: 256, μ: 128880, ~: 128690)\n[PASS] testFuzz_WalkFindsEveryComment(uint256) (runs: 256, μ: 4272909, ~: 4274141)\n[PASS] test_500BytesOk_501Reverts() (gas: 343757)\n[PASS] test_AnyTargetIdAccepted() (gas: 179512)\n[PASS] test_ChainWalksBackThroughOneThread() (gas: 665162)\n[PASS] test_EmptyTextReverts() (gas: 30904)\n[PASS] test_EventCarriesEveryField() (gas: 170631)\n[PASS] test_FirstCommentPrevBlockZero() (gas: 209397)\n[PASS] test_GasReport() (gas: 617242)\nLogs:\n  exec gas post 100B 79456\n  exec gas post 280B 63717\n  exec gas post 500B 69132\n  exec gas reply 280B 65961\n\n[PASS] test_HiddenListTakesCommentAsKind3() (gas: 2628492)\n[PASS] test_KindOnlyTaskOrProof() (gas: 226273)\n[PASS] test_NoEthAccepted() (gas: 67482)\n[PASS] test_OneByteOk() (gas: 99230)\n[PASS] test_ParentFromOtherThreadReverts() (gas: 181230)\n[PASS] test_ParentNotYetExistingReverts() (gas: 154884)\n[PASS] test_ReplyToSameThreadOk() (gas: 221811)\n[PASS] test_RevertedPostLeavesChain() (gas: 227806)\n[PASS] test_ThreadsKindsVaultsHaveSeparateChains() (gas: 990662)\n[PASS] test_Utf8CountedInBytes() (gas: 306286)\nSuite result: ok. 19 passed; 0 failed; 0 skipped; finished in 407.21ms (411.40ms CPU time)\n\nRan 6 tests for test/BondBase.t.sol:BondBaseTest\n[PASS] test_Accepted_BondBackWithoutYolo() (gas: 7044636)\n[PASS] test_AuthorsTopUpDuringCheck_CountsOnceInThePot() (gas: 10792136)\n[PASS] test_EthRewardWithYoloAddon_BondIsImdPlusThreePercentEth() (gas: 1674268)\n[PASS] test_QueuedSubmission_BondFixedAtSubmission() (gas: 9407512)\n[PASS] test_Rejected_LoserBondSplitInImdAndEthOnly() (gas: 7719547)\n[PASS] test_TopUps_OnlyTheAuthorsCount() (gas: 7354812)\nSuite result: ok. 6 passed; 0 failed; 0 skipped; finished in 457.94ms (34.94ms CPU time)\n\nRan 8 tests for test/audit/AuditB.t.sol:AuditBTest\n[PASS] testFuzz_Guard_ModeAPaymentsBookExactly(uint256,uint96,uint96,bool) (runs: 256, μ: 7310415, ~: 7335798)\n[PASS] testFuzz_Guard_PinnedVersionNeverChanges(uint16,uint32) (runs: 256, μ: 3173276, ~: 3173215)\n[PASS] test_Guard_BankOnlyForDesks() (gas: 132520)\n[PASS] test_Guard_FailedPushesBecomeCreditsAndBooksClose() (gas: 9658237)\n[PASS] test_Guard_LeakedAttesterKeyAloneCannotDecideDuringTheRemovalTimelock() (gas: 2884860)\n[PASS] test_Guard_LongestDueChainFitsOneCall() (gas: 10895594)\n[PASS] test_Guard_RevertingPinnedDevPricesNeverBlocksWithdrawals() (gas: 3992617)\n[PASS] test_Guard_ThirdPartyAnswerToACopiedQuestionCannotDecideOurCase() (gas: 9436443)\nSuite result: ok. 8 passed; 0 failed; 0 skipped; finished in 576.51ms (927.27ms CPU time)\n\nRan 2 tests for test/review/ReviewGasGrief.t.sol:ReviewGasGrief\n[PASS] test_CallSwarmWithTightGas_CannotSkipTheQuestion() (gas: 7996607)\nLogs:\n  callSwarm gas that skips the question: 0\n\n[PASS] test_PokeWithTightGas_CannotVoidAppeal() (gas: 3570998)\nLogs:\n  askAppealSwarm gas that voids the appeal: 0\n\nSuite result: ok. 2 passed; 0 failed; 0 skipped; finished in 652.49ms (273.56ms CPU time)\n\nRan 1 test for test/review/ReviewQueue.t.sol:ReviewQueue\n[PASS] testFuzz_QueueContributorsGetExactlyTheirs((uint8,uint256)) (runs: 256, μ: 8866935, ~: 7736582)\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 594.41ms (574.32ms CPU time)\n\nRan 4 tests for test/Emergency.t.sol:EmergencyTest\n[PASS] test_AppealAskedLazily_ResolvesByTimer() (gas: 9135153)\n[PASS] test_NoDecision_ResolvesItselfByTimer() (gas: 7814841)\n[PASS] test_ResolvesByTimer_WhenTheStateMachineCanResolve() (gas: 8210033)\n[PASS] test_SwarmNeverAnswers_ResolvesByTimer() (gas: 8765260)\nSuite result: ok. 4 passed; 0 failed; 0 skipped; finished in 649.07ms (32.22ms CPU time)\n\nRan 43 tests for test/MoneyRules.t.sol:MoneyRulesTest\n[PASS] test_AddonInPowerBase() (gas: 2911144)\n[PASS] test_BondsIgnoreTheAddon() (gas: 1852916)\n[PASS] test_Burner_NoOwner_AnyoneBurns() (gas: 171089)\n[PASS] test_Burner_PullsFailedPush() (gas: 7136748)\n[PASS] test_ContributorAfterSubmission_GetsBonus() (gas: 1645296)\n[PASS] test_DeadlineRequired() (gas: 532034)\n[PASS] test_DisputeBond_FixedImdPlusOnePercent() (gas: 1711620)\n[PASS] test_DoerBond_FixedImdPlusThreePercent() (gas: 1424001)\n[PASS] test_Example_HundredDollarReward() (gas: 1847508)\n[PASS] test_Expired_AuthorGetsAllBack() (gas: 539899)\n[PASS] test_FakeLeavesStakeAlone() (gas: 2132225)\n[PASS] test_Fake_RewardStaysTaskOpen() (gas: 7597640)\n[PASS] test_HubWithoutCode_PaysAsWithoutStake() (gas: 1281973)\n[PASS] test_LockEndedBeforePayout_NoBonus() (gas: 1515872)\n[PASS] test_MinRewardPerCurrency() (gas: 1945142)\n[PASS] test_NftRight_NoStake() (gas: 7805945)\n[PASS] test_NftRight_Staked() (gas: 8006721)\n[PASS] test_NftWrong_SwarmAccepts() (gas: 15019578)\n[PASS] test_NoAddonLimit() (gas: 892567)\n[PASS] test_NoCap_LargeRewardOpenTotalAndTopUp() (gas: 6825071)\n[PASS] test_NoCreationFee() (gas: 441343)\n[PASS] test_NoDispute_NoStake() (gas: 6754751)\n[PASS] test_NoDispute_Staked() (gas: 7039758)\n[PASS] test_NoDoubling_SameBondForEverySubmission() (gas: 2378755)\n[PASS] test_NoMandatorySwarmCheck() (gas: 1250323)\n[PASS] test_NoPriceReadAtCreation() (gas: 479020)\n[PASS] test_NoSwarmFeeRefund_ThreeCallsByTheDoer() (gas: 10049707)\n[PASS] test_OneLock_FullPowerOnEveryConcurrentSubmission() (gas: 2447970)\n[PASS] test_PowerFixed_SubmissionMomentCounts() (gas: 3811745)\n[PASS] test_Predict_Entry_5_5_90_And_Deferred_2_5_Each() (gas: 1809444)\n[PASS] test_RelativeToTheReward_LowestPrice() (gas: 3586673)\n[PASS] test_RewardLockedUntilDeadline() (gas: 7853767)\n[PASS] test_SweetenerBoundOnceByTheOwner() (gas: 538439)\n[PASS] test_ThirdSilence_EndsAsWithoutCall_Decided() (gas: 10456412)\n[PASS] test_ThirdSilence_EndsAsWithoutCall_Undecided() (gas: 9909669)\n[PASS] test_Tie_DoerTakesEveryDisputerBond() (gas: 7345550)\n[PASS] test_TreasuryGetsOnlyItsShare() (gas: 11978013)\n[PASS] test_VoidAppealsCountTowardsThree() (gas: 9505160)\n[PASS] test_WithdrawnAndRelocked_NoBonus() (gas: 1578700)\n[PASS] test_WorkedExamples() (gas: 21018449)\n[PASS] test_YoloBonus_LockedUntilExpiry() (gas: 758340)\n[PASS] test_YoloBonus_SameRuleAsReward() (gas: 4135603)\n[PASS] test_YoloReward_TreasuryShareBurned() (gas: 11264227)\nSuite result: ok. 43 passed; 0 failed; 0 skipped; finished in 1.05s (214.06ms CPU time)\n\nRan 21 tests for test/Swarm.t.sol:SwarmTest\n[PASS] testFuzz_NoMandatoryCheck_AnyRewardSize(uint256,uint8) (runs: 256, μ: 796609, ~: 780947)\n[PASS] test_ActionNotSold_LargeSubmitStillWorks() (gas: 11068463)\n[PASS] test_AnswerAfterSilenceIgnored() (gas: 6385369)\n[PASS] test_AnswerSignedEarly_DeliveredLate_Counts() (gas: 6117856)\n[PASS] test_AttesterRotationTimelocked() (gas: 2407774)\n[PASS] test_CallSwarm_IntakeBroken_Reverts_NothingTaken() (gas: 1713608)\n[PASS] test_CallbackGasUnder100k() (gas: 215841)\nLogs:\n  callback gas: 40971\n\n[PASS] test_CallbackSelectorMatchesDocs() (gas: 734)\n[PASS] test_DuplicateAnswerIgnored_FirstWins() (gas: 6128882)\n[PASS] test_IntakeBroken_LargeSubmitUnaffected() (gas: 10580110)\n[PASS] test_LargeTask_DisputedAtOnce_Rejected() (gas: 11212370)\n[PASS] test_LargeTask_DisputedNftAccepts_Fee5To5() (gas: 11338738)\n[PASS] test_LargeTask_QueuedSubmission_ActivatedWithoutQuestion() (gas: 14304618)\n[PASS] test_LateAnswerIgnored_Timeout() (gas: 6339449)\n[PASS] test_LostCallback_IsSilence_NoPublicFallback() (gas: 6460570)\n[PASS] test_NoMandatoryCheck_ImdTask_NoDispute_AcceptedBondBack() (gas: 10546770)\n[PASS] test_NoMandatoryCheck_MaxReward_NothingAsked_AcceptedByTimer() (gas: 10505102)\n[PASS] test_NoPublicFallback_ForAnyAttestation() (gas: 314829)\n[PASS] test_RefusedBody_Status1_IsSilence() (gas: 6208832)\n[PASS] test_RequestShapeAndBody() (gas: 4786337)\n[PASS] test_SpoofedCallbackIgnored() (gas: 494441)\nSuite result: ok. 21 passed; 0 failed; 0 skipped; finished in 1.20s (271.17ms CPU time)\n\nRan 1 test for test/review/ReviewRoles.t.sol:ReviewRoles\n[PASS] testFuzz_RoleOverlap((uint8,uint8,uint8,uint8,uint8,uint8,uint8,bool,uint32)) (runs: 256, μ: 9214719, ~: 9377312)\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 1.19s (1.17s CPU time)\n\nRan 51 tests for test/Disputes.t.sol:DisputesTest\n[PASS] test_Appeal_ActionNotSold() (gas: 6864596)\n[PASS] test_Appeal_ByDoerSide_Flip() (gas: 7695257)\n[PASS] test_Appeal_IntakeReverts_AppealVoided() (gas: 7415363)\n[PASS] test_Appeal_LateAnswerAfterSilenceIgnored() (gas: 8066747)\n[PASS] test_Appeal_NeverAsked_ThirdTimeEndsUncalled() (gas: 7704323)\n[PASS] test_Appeal_NeverAsked_TimesOut() (gas: 7254199)\n[PASS] test_Appeal_PriceRaised_AppealVoided() (gas: 7280648)\n[PASS] test_Appeal_Silent_DecisionStands_NewWindow() (gas: 8170156)\n[PASS] test_Appeal_Silent_ReappealFlips() (gas: 8887509)\n[PASS] test_Appeal_SwarmAgrees() (gas: 8167733)\n[PASS] test_Appeal_SwarmFlips_NoFeeRefund_WinnerTakesAll() (gas: 7835415)\n[PASS] test_Appeal_WindowClosed() (gas: 1082479)\n[PASS] test_CallSwarm_ActionNotSold_DefaultStands() (gas: 6415919)\n[PASS] test_CallSwarm_LowerPrice_NoFeeRefund() (gas: 7311298)\n[PASS] test_CallSwarm_WrongPhase() (gas: 599802)\n[PASS] test_ClaimsPlayTimersThemselves_NoPokeNeeded() (gas: 6560724)\n[PASS] test_ContributorAppellantWins_GetsHisShareLikeAnyWinner() (gas: 8067674)\n[PASS] test_ContributorDisputerWins_SameShareAsAnyDisputer() (gas: 6980549)\n[PASS] test_ContributorDoerWins_GetsHisShareLikeAnyWinner() (gas: 11143394)\n[PASS] test_DisputeWindowClosedAndLimits() (gas: 1668234)\n[PASS] test_Dispute_NftAccepts_Fee5To5_Bond5050() (gas: 7024448)\n[PASS] test_Dispute_NftRejects_BondSplit5050() (gas: 6895298)\n[PASS] test_DisputerWhoTopsUpLater_StillGetsHisFullShare() (gas: 6838709)\n[PASS] test_DoerReply() (gas: 1578863)\n[PASS] test_InstantDecision_FiresOnceTheDeltaIsCrossed() (gas: 8334609)\n[PASS] test_NoDecision_CallAfterWindow_Reverts() (gas: 6536840)\n[PASS] test_NoDecision_CallSwarm_Accepts_CallerLosesBondAndFee() (gas: 7480603)\n[PASS] test_NoDecision_CallSwarm_Rejects_CallerGetsOnlyHisShare() (gas: 7696960)\n[PASS] test_NoDecision_DoerCallsSwarm_Confirmed() (gas: 7428625)\n[PASS] test_NoDecision_DoerCallsSwarm_Rejected() (gas: 7271366)\n[PASS] test_NoDecision_NobodyCalls_Accepted_DisputerBondsAllToDoer() (gas: 7554184)\n[PASS] test_NoDecision_SilentStatus2_NobodyCallsAgain_GeneralRule() (gas: 7792974)\n[PASS] test_NoDecision_SilentTimeout_WindowFromSilence() (gas: 7502108)\n[PASS] test_NoDecision_Silent_CalledAgain_Answers_NoFeeRefund() (gas: 8541684)\n[PASS] test_SilenceLoop_ThirdSilenceEndsTheCase() (gas: 9561302)\n[PASS] test_Stake_ContributedAfterSubmission_StillGetsBonus() (gas: 10734777)\n[PASS] test_Stake_EthAndImdBurnShareToBurner() (gas: 15022607)\n[PASS] test_Stake_FullPower_NftRight_VotesFive_BurnHalf_TreasuryHalf() (gas: 11404889)\n[PASS] test_Stake_FullPower_NftUndecided_BurnFiveAndHalf() (gas: 10916260)\n[PASS] test_Stake_FullPower_NoDispute_Bonus_AndBurnToBurner() (gas: 10513959)\n[PASS] test_Stake_LockEndedBeforePayout_NoBonus_RelockCounts() (gas: 15288659)\n[PASS] test_Stake_LockedInTheSubmissionBlock_NoBonus() (gas: 6869376)\n[PASS] test_Stake_None_FeeToTreasury() (gas: 10257379)\n[PASS] test_Stake_PartPower_NoDispute() (gas: 10512481)\n[PASS] test_Stake_ToppedUpAfterSubmission_OnlyThePowerBeforeCounts() (gas: 10600546)\n[PASS] test_SwarmFees_NoRefund_TwoSilencesThenAnswer() (gas: 14442736)\n[PASS] test_SwarmFees_WinnerSideOnly_DoerSilentCallRefunded() (gas: 12768102)\n[PASS] test_ThirdSilence_Decided_NftDecisionStands() (gas: 10223293)\n[PASS] test_ThirdSilence_NoDecision_AcceptedDisputerBondToDoer() (gas: 9644760)\n[PASS] test_YoloReward_FeeSplitsLikeAnyReward_Votes5_Doer4_Burner1() (gas: 11465614)\n[PASS] test_YoloReward_TreasuryPartToBurner_FullPowerSix() (gas: 15101226)\nSuite result: ok. 51 passed; 0 failed; 0 skipped; finished in 1.44s (495.59ms CPU time)\n\nRan 6 tests for test/audit/AuditSweetenerBonus.t.sol:AuditSweetenerBonus\n[PASS] test_backOnceNobodyCanSubmit() (gas: 909567)\n[PASS] test_noCap_wholeBonusPaidByTheRewardRule() (gas: 7510462)\n[PASS] test_noWithdrawFromAnOpenTask() (gas: 8427285)\n[PASS] test_payoutNeedsNoPrice() (gas: 7009383)\n[PASS] test_silentSwarmCallStillPaysTheWholeBonus() (gas: 8499535)\n[PASS] test_splitFollowsTheRewardRule_NftVotesAndStake() (gas: 14867270)\nSuite result: ok. 6 passed; 0 failed; 0 skipped; finished in 1.47s (47.61ms CPU time)\n\nRan 23 tests for test/YoloPredict.t.sol:YoloPredictTest\n[PASS] testFuzz_BurnedPlusPaidEqualsDeposited(uint256,uint256,uint256,bool) (runs: 256, μ: 2004182, ~: 2345379)\n[PASS] test_AuthorCanPredict() (gas: 716964)\n[PASS] test_BelowMinPositionReverts() (gas: 465549)\n[PASS] test_ClaimBeforeFinalReverts() (gas: 800954)\n[PASS] test_ClosesAtDeadline_PausesWhileBusy() (gas: 3223161)\n[PASS] test_CompletedTask_PotPaidOut_StillWillDoWon() (gas: 1655594)\n[PASS] test_ConstructorChecks() (gas: 4332)\n[PASS] test_ContributorAfterPosition_StillGetsHerFullSplitShare() (gas: 2401060)\n[PASS] test_Deferred_BurnedOnExpiry() (gas: 1311560)\n[PASS] test_Deferred_HalfToAuthorHalfToDoer() (gas: 2011732)\n[PASS] test_Deferred_NobodyOnWillDo_PoolToAuthorAndDoer() (gas: 1688698)\n[PASS] test_Doer_ClaimingFirst_StillGetsFullShare() (gas: 1883063)\n[PASS] test_Doer_PositionBeforeSubmission_GetsFullWinnerShare() (gas: 2037903)\n[PASS] test_Doer_SharesTheLosingPoolByPoints() (gas: 2129769)\n[PASS] test_EntrySplit_5_5_90() (gas: 776650)\n[PASS] test_EveryTaskHasADeadline() (gas: 755805)\n[PASS] test_NoCap_LargePositionAccepted() (gas: 2047256)\n[PASS] test_NoPriceNeeded_ImdAndUsdcRewards_MarketOpensAnyway() (gas: 1377575)\n[PASS] test_NumericExample_AliceBobCarl() (gas: 7778863)\n[PASS] test_RewardLockedUntilDeadline_WinnersPaidInFull() (gas: 2201623)\n[PASS] test_SweetenerAfterPosition_StillGetsFullShare() (gas: 2154201)\n[PASS] test_TotalPointsRoundingToZero_SplitByPositionInsteadOfReverting() (gas: 1273629)\n[PASS] test_Weight_CountsFromTaskCreation() (gas: 735882)\nSuite result: ok. 23 passed; 0 failed; 0 skipped; finished in 1.44s (1.44s CPU time)\n\nRan 8 tests for test/review/ReviewAttestation.t.sol:ReviewAttestation\n[PASS] test_InconsistentCountsAreIgnored() (gas: 6412739)\n[PASS] test_NoFallback_NeitherOnePersonNorOrderedPanel() (gas: 2373699)\n[PASS] test_OnePersonPanelIsSilenceOnAppeal() (gas: 4598475)\n[PASS] test_OnePersonPanelIsSilenceOnCall() (gas: 2840857)\n[PASS] test_OrderedPanelCounts() (gas: 4402532)\n[PASS] test_PanelBounds() (gas: 1799342)\n[PASS] test_PanelChangeWaitsTimelock() (gas: 3580554)\n[PASS] test_QuorumBelowOrderedIsIgnored() (gas: 2315546)\nSuite result: ok. 8 passed; 0 failed; 0 skipped; finished in 1.49s (20.72ms CPU time)\n\nRan 1 test for test/Scenarios.t.sol:ScenariosTest\n[PASS] testFuzz_Scenario((uint8,uint256,bool,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint256,bool,uint32,uint16,uint16)) (runs: 256, μ: 10976075, ~: 9981994)\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 1.35s (1.32s CPU time)\n\nRan 6 tests for test/audit/AuditC.t.sol:AuditCTest\n[PASS] testFuzz_ValidTextMatchesReference(bytes,uint8,uint8) (runs: 256, μ: 262631, ~: 262347)\n[PASS] test_Fix_ContractWalletVotesItself() (gas: 2222949)\n[PASS] test_Guard_DoerCannotAnswerHisOwnAppealInTheNameOfTheDisputers() (gas: 6302877)\n[PASS] test_Guard_FrontRunnerCannotLiftABallotAndDecide() (gas: 14898889)\n[PASS] test_Guard_HoldersOwnVotesDecideAtTheVoteEnd() (gas: 10882048)\n[PASS] test_NoBatchToPoison() (gas: 1804806)\nSuite result: ok. 6 passed; 0 failed; 0 skipped; finished in 1.54s (67.65ms CPU time)\n\nRan 14 tests for test/Sweetener.t.sol:SweetenerTest\n[PASS] test_AcceptedDoerGetsTheBonusMinusFee() (gas: 6969434)\n[PASS] test_DoerWhoSweetened_StakeExtraOnTheBonus() (gas: 6970058)\n[PASS] test_ExpiredTaskReturnsTheBonus() (gas: 5535056)\n[PASS] test_IdleBeforeDeadlineLocked_AfterDeadlineBack(uint256) (runs: 256, μ: 346881, ~: 346550)\n[PASS] test_LockedWhileOpen_EvenAfterRejection_FreeAfterDeadline() (gas: 8460809)\n[PASS] test_NftDecidedRight_VotesGetFivePercent() (gas: 7892558)\n[PASS] test_NftWrong_SwarmAccepts_VotesGetNothing() (gas: 8539975)\n[PASS] test_PayoutGoesToTheAcceptedSubmissionOfThatTask() (gas: 11277825)\n[PASS] test_PayoutNeedsNoYoloPrice() (gas: 1159011)\n[PASS] test_RefusedInputs() (gas: 127035)\n[PASS] test_StakedDoer_FullPower_GetsFourMore() (gas: 6849195)\n[PASS] test_StakedDoer_NftRight_VotesFiveDoerFourMore() (gas: 7868875)\n[PASS] test_StakedDoer_PartPowerAndSmallPower() (gas: 11839014)\n[PASS] test_TinyAddon_NoBondPart_NothingStuck() (gas: 8875182)\nSuite result: ok. 14 passed; 0 failed; 0 skipped; finished in 3.91s (157.22ms CPU time)\n\nRan 2 tests for test/VotePowerFuzz.t.sol:VotePowerFuzzTest\n[PASS] testFuzz_OneVotePerNft(uint256) (runs: 256, μ: 96307835, ~: 97739375)\n[PASS] test_OneVotePerNft_Fixed() (gas: 387092570)\nSuite result: ok. 2 passed; 0 failed; 0 skipped; finished in 3.99s (4.35s CPU time)\n\nRan 5 tests for test/audit/AuditNoMandatoryCheck.t.sol:AuditNoMandatoryCheckTest\n[PASS] test_AppealOnlyAgainstAnNftDecision() (gas: 12991969)\n[PASS] test_NoCheck_AtAnyRewardSize() (gas: 3982698)\n[PASS] test_NoDoubleAppeal() (gas: 7307331)\n[PASS] test_NothingToAppeal_WithoutAnNftDecision() (gas: 6043570)\n[PASS] test_Undisputed_AcceptedByTimer_BondBack() (gas: 5886824)\nSuite result: ok. 5 passed; 0 failed; 0 skipped; finished in 4.03s (31.35ms CPU time)\n\nRan 29 tests for test/Profiles.t.sol:ProfilesTest\n[PASS] test_BadPicture() (gas: 369828)\n[PASS] test_ClearFreesName() (gas: 258377)\n[PASS] test_ConstructorZeroTextRules() (gas: 6970)\n[PASS] test_Cyrillic_BadName() (gas: 58769)\n[PASS] test_Dots_BadName() (gas: 116191)\n[PASS] test_Emoji_BadName() (gas: 61664)\n[PASS] test_EvilNft1155_ReadNeverBreaks() (gas: 462943)\n[PASS] test_EvilNft_CannotSetWhileHostile() (gas: 148646)\n[PASS] test_EvilNft_ReadNeverBreaks() (gas: 997540)\nLogs:\n  evil mode 1 profilesOf(3) gas 47909\n  evil mode 2 profilesOf(3) gas 75442\n  evil mode 3 profilesOf(3) gas 75465\n  evil mode 4 profilesOf(3) gas 47953\n  evil mode 5 profilesOf(3) gas 48174\n\n[PASS] test_Link_ArweaveOk() (gas: 284798)\n[PASS] test_Link_EvilHost() (gas: 202692)\n[PASS] test_Link_OtherAllowlistedHosts() (gas: 274155)\n[PASS] test_Link_TooLongOrBadChars() (gas: 694010)\n[PASS] test_Nft1155_SetOwnedAndSold() (gas: 428222)\n[PASS] test_Nft721_Delegate() (gas: 408562)\n[PASS] test_Nft721_NoRegistry_NoDelegate() (gas: 95905)\n[PASS] test_Nft721_NotOwner() (gas: 91811)\n[PASS] test_Nft721_SetAndOwned() (gas: 163475)\n[PASS] test_Nft721_SoldThenOwnedFalse_NewOwnerSetsIt() (gas: 404468)\n[PASS] test_NoMoney() (gas: 67476)\n[PASS] test_OtherBadNames() (gas: 298949)\n[PASS] test_PictureOnly_ThenNameFreed() (gas: 210888)\n[PASS] test_ProfilesOf100() (gas: 21772190)\nLogs:\n  profilesOf(100 x name+NFT) gas 1585092\n\n[PASS] test_RenameFreesOldName() (gas: 275268)\n[PASS] test_Reserved() (gas: 949156)\n[PASS] test_SinceKeptOnUpdate() (gas: 185541)\n[PASS] test_SkeletonUnique() (gas: 628651)\n[PASS] test_Space_BadName() (gas: 88581)\n[PASS] test_ValidNames() (gas: 477450)\nSuite result: ok. 29 passed; 0 failed; 0 skipped; finished in 4.03s (37.57ms CPU time)\n\nRan 1 test for test/Invariant.t.sol:InvariantTest\n[PASS]\nInvariantTest invariants:\n[PASS] invariant_BalanceEqualsLiabilities\n[PASS] invariant_HubHoldsEveryLock_StakePowerBounded\n[PASS] invariant_RewardLockedUntilDeadline\n[PASS] invariant_SweetenerHoldsEveryBonus\n[PASS] invariant_TrophiesOnlyForAcceptedDoersAndEveryYoloBurned\n InvariantTest invariants (runs: 100, calls: 15000, reverts: 0)\n\n╭----------+----------------------+-------+---------+----------╮\n| Contract | Selector             | Calls | Reverts | Discards |\n+==============================================================+\n| Handler  | answer               | 548   | 0       | 0        |\n|----------+----------------------+-------+---------+----------|\n| Handler  | appeal               | 571   | 0       | 0        |\n|----------+----------------------+-------+---------+----------|\n| Handler  | askAppealSwarm       | 522   | 0       | 0        |\n|----------+----------------------+-------+---------+----------|\n| Handler  | breakIntake          | 542   | 0       | 0        |\n|----------+----------------------+-------+---------+----------|\n| Handler  | callSwarm            | 517   | 0       | 0        |\n|----------+----------------------+-------+---------+----------|\n| Handler  | claim                | 525   | 0       | 0        |\n|----------+----------------------+-------+---------+----------|\n| Handler  | createTask           | 558   | 0       | 0        |\n|----------+----------------------+-------+---------+----------|\n| Handler  | dispute              | 557   | 0       | 0        |\n|----------+----------------------+-------+---------+----------|\n| Handler  | expireAndWithdraw    | 522   | 0       | 0        |\n|----------+----------------------+-------+---------+----------|\n| Handler  | lock                 | 538   | 0       | 0        |\n|----------+----------------------+-------+---------+----------|\n| Handler  | mintTrophy           | 537   | 0       | 0        |\n|----------+----------------------+-------+---------+----------|\n| Handler  | payoutBonus          | 548   | 0       | 0        |\n|----------+----------------------+-------+---------+----------|\n| Handler  | poke                 | 551   | 0       | 0        |\n|----------+----------------------+-------+---------+----------|\n| Handler  | progress             | 538   | 0       | 0        |\n|----------+----------------------+-------+---------+----------|\n| Handler  | progressA            | 533   | 0       | 0        |\n|----------+----------------------+-------+---------+----------|\n| Handler  | progressB            | 539   | 0       | 0        |\n|----------+----------------------+-------+---------+----------|\n| Handler  | progressC            | 515   | 0       | 0        |\n|----------+----------------------+-------+---------+----------|\n| Handler  | progressD            | 544   | 0       | 0        |\n|----------+----------------------+-------+---------+----------|\n| Handler  | setIntakePrice       | 563   | 0       | 0        |\n|----------+----------------------+-------+---------+----------|\n| Handler  | submit               | 527   | 0       | 0        |\n|----------+----------------------+-------+---------+----------|\n| Handler  | sweep                | 526   | 0       | 0        |\n|----------+----------------------+-------+---------+----------|\n| Handler  | sweeten              | 467   | 0       | 0        |\n|----------+----------------------+-------+---------+----------|\n| Handler  | topUp                | 553   | 0       | 0        |\n|----------+----------------------+-------+---------+----------|\n| Handler  | vote                 | 557   | 0       | 0        |\n|----------+----------------------+-------+---------+----------|\n| Handler  | warp                 | 531   | 0       | 0        |\n|----------+----------------------+-------+---------+----------|\n| Handler  | withdrawBonus        | 531   | 0       | 0        |\n|----------+----------------------+-------+---------+----------|\n| Handler  | withdrawContribution | 526   | 0       | 0        |\n|----------+----------------------+-------+---------+----------|\n| Handler  | withdrawLock         | 514   | 0       | 0        |\n╰----------+----------------------+-------+---------+----------╯\n\nLogs:\n  createTask: 2\n  topUp: 0\n  submit: 0\n  dispute: 0\n  vote: 0\n  appeal: 0\n  breakIntake: 3\n  callSwarm: 0\n  answer: 0\n  claimDisputer: 0\n  claimVoter: 0\n  claimVoid: 0\n  withdrawContribution: 1\n  withdrawExpired: 1\n  progress: 0\n  sweeten: 1\n  withdrawBonus: 0\n  payoutBonus: 0\n  mintTrophy: 0\n  lock: 4\n  withdrawLock: 0\n  repeatedAsk: 0\n  progress at phase 2: 0\n  progress at phase 3: 0\n  progress at phase 4: 0\n  progress at phase 5: 0\n  progress at phase 6: 0\n  progress at phase 7: 0\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 16.63s (16.61s CPU time)\n\nRan 95 test suites in 16.66s (52.14s CPU time): 749 tests passed, 0 failed, 5 skipped (754 total tests)\n","passed":true},{"durationMs":207,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"BuybackBurner.burnYolo()\",\"BuybackBurner.forward(address)\",\"BuybackBurner.pull(address,address)\",\"BuybackBurner.receive()\",\"BuybackBurner.setBuybackWallet(address)\",\"CaseDesk.advanced(uint256)\",\"CaseDesk.askAppeal(uint256,uint256,(string,string,string,string,string))\",\"CaseDesk.askEscalation(uint256,uint256,(string,string,string,string,string))\",\"CaseDesk.claimVoidSubmission(uint256)\",\"CaseDesk.markAppealed(uint256)\",\"CaseDesk.startVote(uint256,uint32)\",\"CaseDesk.step(uint256)\",\"CaseDesk.submit(uint256,string,(string,string),uint256,uint256,(address,uint256,uint256,uint64,bytes))\",\"CaseDesk.tryInstantDecision(uint256,(uint256,uint256,uint256,uint256))\",\"CaseDesk.unwind(uint256)\",\"CaseDesk.wire(address,address,address,address,address)\",\"DareComments.post(address,uint8,uint256,uint256,string)\",\"DareTrophy.approve(address,uint256)\",\"DareTrophy.mint(uint256,string)\",\"DareTrophy.safeTransferFrom(address,address,uint256)\",\"DareTrophy.safeTransferFrom(address,address,uint256,bytes)\",\"DareTrophy.setApprovalForAll(address,bool)\",\"DareTrophy.transferFrom(address,address,uint256)\",\"DevPrices.acceptOwnership()\",\"DevPrices.renounceOwnership()\",\"DevPrices.setEthUsd(uint256)\",\"DevPrices.setImdUsd(uint256)\",\"DevPrices.setYoloPriceUsd(uint256)\",\"DevPrices.transferOwnership(address)\",\"DevVesting.bindStarter()\",\"DevVesting.release(address)\",\"DisputeDesk.appeal(uint256,uint256,(address,uint256,uint256,uint64,bytes))\",\"DisputeDesk.appealAsked(uint256,uint256)\",\"DisputeDesk.askAppealSwarm(uint256,(string,string,string,string,string))\",\"DisputeDesk.callSwarm(uint256,bool,uint256,(address,uint256,uint256,uint64,bytes),(string,string,string,string,string))\",\"DisputeDesk.claimDisputer(uint256)\",\"DisputeDesk.claimVoterReward(uint256,address)\",\"DisputeDesk.claimVoterRewards(uint256[],address)\",\"DisputeDesk.dispute(uint256,string,string,(address,uint256,uint256,uint64,bytes))\",\"DisputeDesk.dropCaller(uint256)\",\"DisputeDesk.settle(uint256,uint8,(uint64,uint32,address,address,uint8,uint256,(uint256,uint256),uint64,uint16,bool))\",\"DisputeDesk.vote(uint256,uint8,address,uint256[])\",\"DisputeDesk.wire(address,address,address,address,address)\",\"HiddenList.setState((address,uint8,uint256)[],uint8)\",\"HiddenList.vote(address,uint8,uint256,bool,uint256[])\",\"IncentivesVesting.bindStarter()\",\"IncentivesVesting.release(address)\",\"NftGate.consume(address,uint256)\",\"NftGate.record(address[],uint256[])\",\"NftGate.seal(uint256)\",\"ParamsRegistry.acceptOwnership()\",\"ParamsRegistry.activateParams()\",\"ParamsRegistry.cancelAttester(address,bool)\",\"ParamsRegistry.cancelParams()\",\"ParamsRegistry.executeAttester(address,bool)\",\"ParamsRegistry.proposeAttester(address,bool)\",\"ParamsRegistry.renounceOwnership()\",\"ParamsRegistry.setNewTasksPaused(bool)\",\"ParamsRegistry.transferOwnership(address)\",\"Profiles.clear()\",\"Profiles.set(string,uint8,address,uint256,string)\",\"ProjectVesting.bindStarter()\",\"ProjectVesting.release(address)\",\"ProtocolDirectory.addVersion()\",\"ProtocolDirectory.cancelCurrent()\",\"ProtocolDirectory.cancelVersion()\",\"ProtocolDirectory.proposeCurrent(uint256)\",\"ProtocolDirectory.proposeVersion((address,address,address,uint64,uint64,string))\",\"ProtocolDirectory.setCurrent()\",\"TaskVault.addTreasury(address,uint256)\",\"TaskVault.advance(uint256)\",\"TaskVault.ask((uint64,uint8,uint16,uint16,address,bytes32,bytes32,uint256),bytes)\",\"TaskVault.bindSweetener(address)\",\"TaskVault.burn(address,uint256)\",\"TaskVault.cancelTask(uint256)\",\"TaskVault.closeSubmission(uint256,uint8,uint256)\",\"TaskVault.collectBondPart(address,uint256,address,uint256)\",\"TaskVault.collectImd(address,uint256,uint256,address,(address,uint256,uint256,uint64,bytes))\",\"TaskVault.createTask(address,uint256,uint64,string,(string,string,string),uint8,uint8,string,(address,uint256,uint256,uint64,bytes))\",\"TaskVault.credit(address,address,uint256)\",\"TaskVault.fallback()\",\"TaskVault.onOracleResult(bytes32,(bytes32,uint256,bytes32,uint8,bytes,uint256,uint64,uint64,bytes32,bytes32,uint16,uint16,uint16,uint64,uint64),bytes)\",\"TaskVault.pay(address,address,uint256)\",\"TaskVault.place(uint256,uint256,bool)\",\"TaskVault.poke(uint256)\",\"TaskVault.settleValue(address,uint256,uint256)\",\"TaskVault.sweepTreasury(address)\",\"TaskVault.topUp(uint256,uint256,(address,uint256,uint256,uint64,bytes))\",\"TaskVault.withdraw(address)\",\"TaskVault.withdrawContribution(uint256)\",\"TaskVault.withdrawTo(address,address)\",\"TeamVesting.bindStarter()\",\"TeamVesting.release(address)\",\"TreasuryVesting.bindStarter()\",\"TreasuryVesting.release(address)\",\"TrophyCatalog.acceptOwnership()\",\"TrophyCatalog.addDesign(string,bytes)\",\"TrophyCatalog.renounceOwnership()\",\"TrophyCatalog.setCategoryDesign(uint8,uint256)\",\"TrophyCatalog.setDefaultDesign(uint256)\",\"TrophyCatalog.setDesignEnabled(uint256,bool)\",\"TrophyCatalog.transferOwnership(address)\",\"UniswapV3SwapAdapter.swapExactIn(address,address,uint256,uint256,uint256,bytes,address)\",\"YoloLockHub.lock(uint256,uint256)\",\"YoloLockHub.withdraw()\",\"YoloPredict.claim(uint256)\",\"YoloPredict.predict(uint256,bool,uint256)\",\"YoloPredict.settle(uint256)\",\"YoloSplitter.split(address)\",\"YoloSweetener.claimVoter(uint256,address)\",\"YoloSweetener.payout(uint256)\",\"YoloSweetener.sweeten(uint256,uint256)\",\"YoloSweetener.withdraw(uint256)\",\"YoloToken.approve(address,uint256)\",\"YoloToken.transfer(address,uint256)\",\"YoloToken.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":5,\".gitmodules\":9,\"ADAPTATION.md\":106,\"CONTRACTS.md\":180,\"README.md\":101,\"brand/BRANDBOOK.md\":79,\"brand/avatar-400.png\":168,\"brand/favicon-16.png\":3,\"brand/favicon-32.png\":7,\"brand/mark-1024.png\":317,\"brand/mark-pixel-64.png\":6,\"brand/mark-transparent-1024.png\":385,\"brand/og-1200x630.png\":912,\"brand/sheet.png\":2363,\"brand/wordmark-2400x600.png\":283,\"brand/x-banner-1500x500.png\":725,\"docs/LAUNCH-COMMENTS.md\":37,\"docs/LAUNCH-PROFILES.md\":51,\"docs/LAUNCH-TASK.md\":202,\"docs/MECHANICS.md\":454,\"docs/TOKENOMICS.md\":101,\"docs/YOLO.md\":289,\"foundry.lock\":11,\"foundry.toml\":33,\"landing/assets/fonts/LICENSE-ibm-plex-mono.txt\":93,\"landing/assets/fonts/LICENSE-quicksand.txt\":93,\"landing/assets/fonts/plexmono-500.woff2\":62,\"landing/assets/fonts/quicksand-500.woff2\":55,\"landing/assets/fonts/quicksand-600.woff2\":57,\"landing/assets/fonts/quicksand-700.woff2\":78,\"landing/assets/img/avatar-400.png\":168,\"landing/assets/img/dare1.jpg\":150,\"landing/assets/img/dare2.jpg\":148,\"landing/assets/img/dare3.jpg\":201,\"landing/assets/img/dare4.jpg\":140,\"landing/assets/img/favicon-16.png\":3,\"landing/assets/img/favicon-32.png\":7,\"landing/assets/img/nft-1.svg\":1,\"landing/assets/img/nft-1000.svg\":1,\"landing/assets/img/nft-4.svg\":1,\"landing/assets/img/og-1200x630.png\":912,\"landing/assets/img/toad-640.png\":459,\"landing/assets/img/wordmark.png\":221,\"landing/assets/video/poster.jpg\":297,\"landing/index.html\":286,\"landing/main.js\":396,\"landing/style.css\":490,\"script/DeployMainnet.s.sol\":187,\"script/LaunchPlan.sol\":422,\"script/check-launch-task.py\":32,\"script/snapshot/snapshot.py\":187,\"src/BuybackBurner.sol\":126,\"src/DareComments.sol\":65,\"src/DareTrophy.sol\":222,\"src/DevPrices.sol\":129,\"src/HiddenList.sol\":297,\"src/OracleAttestation.sol\":57,\"src/ParamsRegistry.sol\":216,\"src/Profiles.sol\":272,\"src/ProtocolDirectory.sol\":169,\"src/TaskVault.sol\":838,\"src/TrophyCatalog.sol\":119,\"src/VaultParams.sol\":250,\"src/VaultTypes.sol\":450,\"src/VotePower.sol\":52,\"src/YoloLockHub.sol\":154,\"src/YoloPredict.sol\":305,\"src/YoloSweetener.sol\":177,\"src/adapters/UniswapV3SwapAdapter.sol\":71,\"src/desks/CaseDesk.sol\":556,\"src/desks/Desk.sol\":143,\"src/desks/DeskApi.sol\":137,\"src/desks/DisputeDesk.sol\":807,\"src/helpers/AttestationChecker.sol\":59,\"src/helpers/SwarmQuestion.sol\":177,\"src/helpers/TextRules.sol\":245,\"src/interfaces/IDelegateRegistry.sol\":12,\"src/interfaces/IIntake.sol\":33,\"src/interfaces/ISwapAdapter.sol\":22,\"src/interfaces/ITaskVault.sol\":167,\"src/libraries/VoteLib.sol\":33,\"src/token/NftGate.sol\":115,\"src/token/ProjectVesting.sol\":104,\"src/token/Vestings.sol\":38,\"src/token/YoloSplitter.sol\":103,\"src/token/YoloToken.sol\":176,\"test/Base.t.sol\":652,\"test/BondBase.t.sol\":146,\"test/BuybackWallet.t.sol\":434,\"test/CancelTask.t.sol\":250,\"test/ContractRules.t.sol\":208,\"test/Cover.t.sol\":207,\"test/DareComments.t.sol\":326,\"test/Desks.t.sol\":433,\"test/DevPrices.t.sol\":86,\"test/Directory.t.sol\":186,\"test/DisputeLinkOptional.t.sol\":82,\"test/Disputes.t.sol\":1309,\"test/Emergency.t.sol\":76,\"test/Evidence.t.sol\":338,\"test/ExtrasBareChain.t.sol\":91,\"test/Gas.t.sol\":183,\"test/GasTextSize.t.sol\":108,\"test/HiddenList.t.sol\":671,\"test/Hosts.t.sol\":112,\"test/Invariant.t.sol\":674,\"test/LogReconstruction.t.sol\":70,\"test/MoneyRules.t.sol\":937,\"test/OptionalFields.t.sol\":103,\"test/Payments.t.sol\":295,\"test/Profiles.t.sol\":576,\"test/ProfilesLaunch.t.sol\":248,\"test/Scenarios.t.sol\":217,\"test/SideCalls.t.sol\":388,\"test/Swarm.t.sol\":435,\"test/Sweetener.t.sol\":379,\"test/TaskFields.t.sol\":391,\"test/TaskRules.t.sol\":201,\"test/Tasks.t.sol\":619,\"test/TextRule.t.sol\":105,\"test/Trophy.t.sol\":402,\"test/VoteBatch.t.sol\":155,\"test/VoteCountWidth.t.sol\":31,\"test/VoteGas.t.sol\":150,\"test/VotePowerFuzz.t.sol\":122,\"test/Votes.t.sol\":418,\"test/Yolo.t.sol\":138,\"test/YoloLockHub.t.sol\":487,\"test/YoloPredict.t.sol\":641,\"test/YoloPredictScenarios.t.sol\":951,\"test/YoloToken.t.sol\":734,\"test/YoloTokenBareChain.t.sol\":130,\"test/audit/AddonAfterSub.t.sol\":52,\"test/audit/AuditA.t.sol\":74,\"test/audit/AuditB.t.sol\":314,\"test/audit/AuditC.t.sol\":264,\"test/audit/AuditNoFallbackOwnVote.t.sol\":118,\"test/audit/AuditNoMandatoryCheck.t.sol\":106,\"test/audit/AuditSweetenerBonus.t.sol\":298,\"test/audit/LateAppealAsk.t.sol\":125,\"test/audit/LazyAppealVoidWindow.t.sol\":59,\"test/audit/MaxImdInCap.t.sol\":224,\"test/audit/PredictAfterTimer.t.sol\":41,\"test/audit/PredictZeroPoints.t.sol\":84,\"test/audit/StakeFloorZeroSplit.t.sol\":41,\"test/audit/StakePowerRelock.t.sol\":64,\"test/audit/StepDeadlineAppealed.t.sol\":28,\"test/audit/StepDeadlineAsked.t.sol\":35,\"test/audit/YoloModulesAudit.t.sol\":116,\"test/audit/round2/Proof_476db268aaec.t.sol\":80,\"test/audit/round2/Proof_5d8c4edc729c.t.sol\":67,\"test/audit/round2/Proof_ced07852b14f.t.sol\":50,\"test/audit/swarm117/SwarmAudit117.t.sol\":338,\"test/audit/swarm117/VestingClockPreStart.t.sol\":92,\"test/fork/ExtrasOnLiveCore.fork.t.sol\":149,\"test/fork/LaunchForkBase.sol\":193,\"test/fork/LaunchRehearsal.fork.t.sol\":1173,\"test/fork/ProfilesFork.t.sol\":128,\"test/fork/UniswapV3AdapterFork.t.sol\":37,\"test/mocks/MockDelegateRegistry.sol\":26,\"test/mocks/MockERC20.sol\":31,\"test/mocks/MockIntake.sol\":120,\"test/mocks/MockNFT.sol\":17,\"test/mocks/MockPriceOracle.sol\":74,\"test/mocks/MockStarter.sol\":28,\"test/mocks/MockSwapAdapter.sol\":32,\"test/mocks/TaskRulesFixture.sol\":32,\"test/review/ReviewAttestation.t.sol\":218,\"test/review/ReviewGas.t.sol\":93,\"test/review/ReviewGasGrief.t.sol\":76,\"test/review/ReviewLaunch.t.sol\":601,\"test/review/ReviewProofFormat.t.sol\":54,\"test/review/ReviewProofLabel.t.sol\":123,\"test/review/ReviewProofs.t.sol\":166,\"test/review/ReviewQuestionSize.t.sol\":100,\"test/review/ReviewQueue.t.sol\":95,\"test/review/ReviewRoles.t.sol\":127,\"test/review/ReviewSplitAccess.t.sol\":522,\"test/review/ReviewSplitRegression.t.sol\":402,\"test/review/ReviewSwarmOrders.t.sol\":88,\"test/review/ReviewSweetener.t.sol\":304,\"test/review/ReviewYolo.t.sol\":96},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":true}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"e7103e309ea8259e16eebcf4c5c75a81eb22d5e8b062947dbf5d68e3fdf9b979","verifiedTreeHash":"bf7c353e1c2e90345bfc10c3cfa494dee2a0d981","verifierVersion":"0.1.0+d372f99e"}]}