{"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":"1eadd690-837e-4206-91db-786338cce344","kind":"shape:chain","nodes":[{"acceptedSubmissionHash":"bda41d37d69f573e09c62725692a1319e018e19d5f29065f54aca33bb2b45d66","dependsOn":["audit_imported_code"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"2d7d84a1a9972f1497e5bc68a704cbf42294d08c62d2868f102ffe3b909b9b51","skillId":"adapt-contract-project","tools":[]},"key":"adapt_contract_project","kind":"code","role":"implement","skillHash":"2d7d84a1a9972f1497e5bc68a704cbf42294d08c62d2868f102ffe3b909b9b51","skillId":"adapt-contract-project","state":"accepted"},{"acceptedSubmissionHash":"cae746a536de1ac509e38e2e621ed4e9feefaca9b2ff78e701042e30795eca08","dependsOn":["adapt_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","tools":[]},"key":"audit_economics","kind":"code","role":"review","skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","state":"accepted"},{"acceptedSubmissionHash":"8f18145adb5ee8988801e5d34bc9cfa51f87749f41512778b08d2f52f1ea42aa","dependsOn":["adapt_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","tools":[]},"key":"audit_flow","kind":"code","role":"review","skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","state":"accepted"},{"acceptedSubmissionHash":"842f1f4ece787e347dc86ee51fbdd9266794033ad0881765de73413e740b7550","dependsOn":[],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"9897597976b0e72440db7ca402d225aea20f3d37205ba53e7df2400ff80f29cc","skillId":"audit-imported-code","tools":[]},"key":"audit_imported_code","kind":"code","role":"review","skillHash":"9897597976b0e72440db7ca402d225aea20f3d37205ba53e7df2400ff80f29cc","skillId":"audit-imported-code","state":"accepted"},{"acceptedSubmissionHash":"3b56fd925bf9a9e9cbffab313243af4221ab3f2c1f5b6591f449b23454c75aaa","dependsOn":["adapt_contract_project","write_foundry_tests","manifest","audit_math","audit_permissions","audit_economics","audit_flow"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"af3aa01159bbf354f621cafa5c0006f6169e0938a8b015be508b7377dbf165bc","skillId":"audit-judge","tools":[]},"key":"audit_judge","kind":"code","role":"review","skillHash":"af3aa01159bbf354f621cafa5c0006f6169e0938a8b015be508b7377dbf165bc","skillId":"audit-judge","state":"accepted"},{"acceptedSubmissionHash":"dcce0dfab9b42c6c278ee5d361b5022f26e97d26ba31b47382dbcb51a2f9f96b","dependsOn":["adapt_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","tools":[]},"key":"audit_math","kind":"code","role":"review","skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","state":"accepted"},{"acceptedSubmissionHash":"54de4bee0de33a51ac7d35f4400e9bfe88ee7ff5797ff7818edefdbbdd088b68","dependsOn":["adapt_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","tools":[]},"key":"audit_permissions","kind":"code","role":"review","skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","state":"accepted"},{"acceptedSubmissionHash":"cbd2400e284101d44dd0b229365e4f683c011ffe1617aa829d071509598789c4","dependsOn":["adapt_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"tools":[]},"key":"manifest","kind":"code","role":"integrate","skillHash":null,"skillId":null,"state":"accepted"},{"acceptedSubmissionHash":"cb7d29b9b9098122a0741009c69b0aa85116da34b56e4d57c869e5329e102d57","dependsOn":["adapt_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"4c76766b00591dfe982fe85d3de589fdb2f810e5137c301155d1c5e36a1d3b23","skillId":"write-foundry-tests","tools":[]},"key":"write_foundry_tests","kind":"code","role":"tests","skillHash":"4c76766b00591dfe982fe85d3de589fdb2f810e5137c301155d1c5e36a1d3b23","skillId":"write-foundry-tests","state":"accepted"}],"objective":"Launch the Sworn registry (symbol SWORN) from this repository on Sepolia as the final rehearsal of tomorrow's mainnet launch of this exact commit, under the same rules, deployed in this order and with no other contracts: Renderer (no constructor arguments), Composer (no constructor arguments), then Registry with constructor arguments curator 0x0919ba50b206c3f31d516de818b1fbc7da21653d (MockCurator, Sepolia), idmd 0x2c3013c90a1bb65573aae9a7c64fafb82697e4e4 (MockIDMD, Sepolia), imd 0x44a1cd38474fb1748400e7deb5f8d786cce3f89a (Sepolia test IMD), intake 0xa43e6f75ee006411f79ac1c84120606c2330de82 (Intake v2), attester 0x5598aa9146215bc13eb26f2c692ad1461fd32982 (the IMD oracle signer), renderer $contract:Renderer, composer $contract:Composer, burnExecutor 0x097A19e0f021BBA5072701132625ad2401043A2E (a verified BurnExecutor V1 on Sepolia as a coded stand-in: it has no previewBridge(), so every sponsored claim records BurnSkipped(1) and refunds, and the burn rule below is effectively off here; never the zero address, which the manifest validator rejects). The three contracts have no owner roles. DECIDE, DO NOT ASK: a needs_input blocks the whole job and costs the payer; where this text is silent or conflicts with a required check, choose what leaves src/ and the build settings unchanged, and report it. DESIGN DECISIONS, not defects (each is documented in the repository unless noted, and must not be adapted): The Registry is ownerless and has no setters, pause or upgrade; the Intake, IMD token, action id and ECDSA attester are fixed. Its constructor always rejects a zero curator, idmd, imd, intake, attester, renderer or composer (a zero burnExecutor disables the burn rule) and skips its dependency checks only when all four of Curator, IDMD, IMD and Intake have no code, the pipeline's empty-chain floor. Otherwise it checks IDMD code, Curator settlement, a nonzero Intake price for IMD and code at a nonzero executor. These checks do not authenticate identities (attester, renderer and composer are checked only for nonzero), so the manifest must use the exact addresses above. Personal requests permit only their stored claimant to abandon after 14 days; shared facts permit anyone to abandon after that deadline. Every oracle question concerns Ethereum mainnet (attestation chainId 1), while the body's consumer.chainId and the EIP-712 signing domain use the deployment chain. Attester rotation, changed protocol formats or dependency retirement can require a successor deployment. Sponsored requests still spend the current Intake price after an attester rotation, even when the answers cannot verify; no administrator can recover sponsor-pool IMD. The sponsor pool funds eligible members' own catalog chain requests, including the ordinals: 1101 to 1104 are each true for one wallet only (FirstDeposit index 1, 1000, 10000, 19522) and 1105 for the first thousand, so most members miss them. Each accepted sponsored request spends its price and its daily and lifetime allowance regardless of the answer; a miss refunds neither. Burn rule, live on mainnet (described for review; off on Sepolia as above): after the Intake request, claimSponsored and upgradeSponsored call the executor's previewBridge() with at most 600,000 gas. If it returns at least 69 IMD and a fee of at most 0.005 ETH, msg.value must be at least that fee, or BurnFeeRequired reverts the whole claim, including the Intake request, its IMD payment and the allowance updates. With enough ETH the registry forwards all of msg.value to bridgeToBaseBurnReceiver and the executor refunds its surplus to the claimant. On 2026-10-16 the preview was 454.94 IMD for 0.000219 ETH at block 26,202,203 (the block the docs pin) and 455.40 IMD for 0.000206 ETH at 26,206,244, so callers must read a current quote; Sepolia's V1 executor reverts its preview, so no Sepolia run reaches this branch. The rule is best effort: a reverting preview (BurnSkipped code 1) or bridge (code 2), an amount below 69 IMD (no event) or a fee above the cap (code 3) returns this call's ETH, and a refund the caller rejects reverts BurnRefundFailed. V2's preview catches a reverting or gas-starved inner quote and answers zeros (README documents this), so a low caller gas limit skips the fee and the burn without an event; accepted. The docs do not yet say a caller can cause it, and their BurnSkipped(1) for exhausted preview gas (INTEGRATION.md section 5b, README's residuals) is a known docs erratum for V2, not a code defect. The executor and its OFT (today the IMD token itself) are owner-configurable external contracts; the registry gives them only this call's ETH (no IMD approval) and never distributes a pre-existing or force-sent balance. BurnTriggered proves a source-chain bridge submission, with the registry's preview as its fields; LayerZero delivery and the Base burn are asynchronous. Composer (ported from launch 1953): catalog targets and the trait-1301 parenthesis are fixed to MAINNET_CURATOR; the two legacy address arguments (catalogSpec's second, compose's fifth) stay in the ABI unused. On chain 1, community windows use the registry's block.number, unchanged by the port; elsewhere they use mainnetHeightBound(), one block per 12-second slot after mainnet block 15,537,395 (slot 4,700,014, the second proof-of-stake block). That bound is not a mainnet-head oracle: its slack (76,427 blocks, about 10.6 days, on 2026-10-16) can admit future windows, a skewed consumer-chain timestamp moves it, and it assumes mainnet keeps 12-second slots. Those limits are accepted off mainnet. Keep all executable source (src/, lib/), constructor behavior and build settings (foundry.toml, remappings.txt) equal to the frozen candidate, this job's baseCommit; do not redesign these decisions to satisfy a protocol recommendation. Adapt nothing in src/. A disputed design decision is a non-blocking finding and never authorizes a source change: report it and leave the code. If a failed mandatory check or a blocking finding would need different executable bytes or build settings, apply nothing: report it, the change it would need and that change's effect on creation and runtime bytes, and keep it blocking; the judge does not accept over it, so the launch parks undeployed (owner decision). Sepolia prices code deposit far above mainnet (Glamsterdam), so the deployment may exceed the gas preflight; that is expected: never shrink code, split contracts or change build settings to fit it. Acceptance is the frozen candidate unchanged: creation code with exactly the arguments above, and runtime code, byte-equal to its build. Report every change the adapt step makes.","parentJobId":null,"planHash":"652f5229d9ff144e47d8399b1d2389765869cf66babc3503e417e91fab42f5a6","previousHash":"0000000000000000000000000000000000000000000000000000000000000000","projectId":"1eadd690-837e-4206-91db-786338cce344","publication":{"commit":null,"deliveredAt":null,"repoUrl":"https://github.com/identity-md-launches/launch-2057-launch-sworn-registry-symbol"},"receiptIdentity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"registry":"0xb6d0a187b050fa5bb0b87033a203f37becf4a775","research":[],"schema":"identitymd-work-v1","signals":[{"agentId":"52672","feedbackHash":"a837327ac131697ba36483f22bdebd7c9dd641c493a9b7686785499c3713fa42","nodeKey":"adapt_contract_project","submissionHash":"bda41d37d69f573e09c62725692a1319e018e19d5f29065f54aca33bb2b45d66","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"52605","feedbackHash":"12158c95afdbc841a8078790d5570e69ff169742632a8f99fbb83ee38a40c702","nodeKey":"audit_economics","submissionHash":"cae746a536de1ac509e38e2e621ed4e9feefaca9b2ff78e701042e30795eca08","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51026","feedbackHash":"248487f798368d1bc8d3c06cf14129276de93587db21f3809d5d5fdee3a2ea58","nodeKey":"audit_flow","submissionHash":"8f18145adb5ee8988801e5d34bc9cfa51f87749f41512778b08d2f52f1ea42aa","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52252","feedbackHash":"7a3815b935ba24cb9e46d107087a15834c5b6239ef5aa321c375360984386a6f","nodeKey":"audit_imported_code","submissionHash":"842f1f4ece787e347dc86ee51fbdd9266794033ad0881765de73413e740b7550","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51538","feedbackHash":"af3dc9ceb1a18cd14f1569913473e4fa96ab4bf2fc6bba94b5c9af538fe398ad","nodeKey":"audit_judge","submissionHash":"3b56fd925bf9a9e9cbffab313243af4221ab3f2c1f5b6591f449b23454c75aaa","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52676","feedbackHash":"2d417c2fd56ffa0eca7861d15c1f20aa8f075547f4fdf79f48546b6f4bb99ce0","nodeKey":"audit_math","submissionHash":"dcce0dfab9b42c6c278ee5d361b5022f26e97d26ba31b47382dbcb51a2f9f96b","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52671","feedbackHash":"6b567c47c1d80b8f29d7b0615b1ae41b2b5cefedf9bec995e13db592954104e9","nodeKey":"audit_permissions","submissionHash":"54de4bee0de33a51ac7d35f4400e9bfe88ee7ff5797ff7818edefdbbdd088b68","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52208","feedbackHash":"8bdbee189808c7733cebbd0458e2446b48b2a46ab866f8d34c8ea05f57fe1824","nodeKey":"manifest","submissionHash":"cbd2400e284101d44dd0b229365e4f683c011ffe1617aa829d071509598789c4","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"52677","feedbackHash":"1cde8eb89afbc707b5e2d8575c225d41006398a32c7bef787b58e501fc69b173","nodeKey":"write_foundry_tests","submissionHash":"cb7d29b9b9098122a0741009c69b0aa85116da34b56e4d57c869e5329e102d57","tag1":"verification:checks","tag2":"acceptance-v2","value":1}],"site":null,"snapshotHash":"b9ad049fae34124457bf0dc5d706ac0af0d8bfce7d158da67606c8ddd2ec68e4","state":"completed","submissions":[{"artifacts":[],"attempt":1,"bundleHash":null,"device":"b57ae3a96321a0e1","findings":[{"citation":"resolved","description":"nextSpecId is declared `uint16 public nextSpecId;` (line 116), starts at FIRST_SPEC_ID = 10001 and is post-incremented with checked arithmetic. Registering the spec that receives id 65534 stores 65535 into the counter; the next registerSpec evaluates 65535 + 1 in uint16 and reverts with Panic(0x11), and so does every later call. The registry is ownerless and has no upgrade path, so community spec registration stops permanently after 55,534 specs (ids 10001 to 65534). Reaching the cap costs 55,534 x 6.4 IMD = 355,417.6 IMD, all paid into the sponsor pool, so this is a remote, expensive hard boundary rather than a cheap attack; the documentation does not mention it. Merged from audit_math (same root cause; the specialist said the last id is 65535, but the post-increment at 65535 itself overflows, so the last issued id is 65534). A fix (a wider counter) would change runtime bytes and is not authorised for this launch: non-blocking, informational for the docs.","line":635,"path":"src/Registry.sol","reproduction":"State: nextSpecId == 65534 (vm.store(registry, bytes32(uint256(24)), bytes32(uint256(65534))); slot 24 holds nextSpecId per the storage layout). Call registerSpec(validT1Spec) with 6.4 IMD approved: returns traitId 65534 and nextSpecId() == 65535. Call registerSpec(validT1Spec2) with 6.4 IMD approved: expected a new id; actual revert Panic(0x11) from `nextSpecId++`, repeated on every later call. Reproduced with test/scratch/Repro.t.sol test_specIdCounterOverflows (passes = defect present).","severity":"low","snippet":"        traitId = nextSpecId++;","title":"uint16 community spec id counter caps registrations at 55,534 and then registerSpec panics for ever"},{"citation":"resolved","description":"A community spec is named in upgrade(uint16[],uint256) only by its sequential id (FIRST_SPEC_ID + registration order). Nothing in the call binds the id to the spec content the caller intends: _request composes the stored spec at that id (composeBody -> specOf -> _specs[traitId]), pays the Intake price from the caller's IMD and records the pending pair for that id. Between a caller learning the id (from nextSpecId() or from preparing their own registration) and their upgrade landing, any address can call registerSpec, so the id the caller pays for can denote a spec they did not choose, and the oracle answer bought is for that other question. registerSpec validates correctly; the gap is the missing content binding (an expected spec hash or author argument) across the two transactions. Cost to the attacker is 6.4 IMD per shifted id against 0.5 IMD lost per victim request, and a victim who waits for their own SpecRegistered event and uses the id it carries is not affected, so the impact is low. Merged from audit_flow; also recorded as a residual in ADAPTATION.md. A fix changes the ABI and runtime bytes and is not authorised for this launch: non-blocking.","line":409,"path":"src/Registry.sol","reproduction":"Chain 1 fixture, registry with mocks, user U and attacker A each holding IMD approved to the registry. (1) U reads nextSpecId() == 10001 and prepares SpecU. (2) A calls registerSpec(SpecA): SpecA is stored at 10001, nextSpecId becomes 10002. (3) U calls registerSpec(SpecU): stored at 10002. (4) U calls upgrade([10001], 0.5e18): the per-id checks pass (kind 1, not shared), 0.5 IMD leaves U, pendingRequest(lastId).traitId == 10001 and specOf(10001).name is SpecA's name while specOf(10002).name is SpecU's. Expected: the id U paid for denotes the spec U chose; actual: it denotes whatever spec occupies the slot at execution time. Reproduced with test/scratch/Repro.t.sol test_upgradePaysForWhateverSpecOccupiesTheId (passes = defect present).","severity":"low","snippet":"                uint8 kind = _specs[id].kind;","title":"upgrade() binds a community spec by sequential id only, so a front-run registerSpec makes the caller pay for another author's spec"}],"hash":"3b56fd925bf9a9e9cbffab313243af4221ab3f2c1f5b6591f449b23454c75aaa","nodeId":"b6d29e26-26c2-464e-a616-30ab249ee07e","outcome":"completed","summary":"The review is complete and `.imd-findings.json` holds the result. The tree is otherwise unchanged (the findings file is git-ignored, and the scratch tests were removed).\n\n**Outcome: no blocking findings.** The frozen candidate can launch as the manifest describes. Two low findings survive, both already acknowledged as non-blocking residuals and neither authorises a source change.\n\n**Findings kept, both reproduced with Foundry tests I ran:**\n\n- **Low, spec id cap.** The community spec counter is a `uint16`, so registration stops for ever once id 65534 is issued. The post-increment overflows one id earlier than the specialist stated. Reaching it costs roughly 355,000 IMD in fees, so it is a hard undocumented bound, not an attack.\n- **Low, spec id binding.** The `upgrade` call names a community spec by sequential id only. A front-run `registerSpec` shifts what that id denotes, so a caller can pay 0.5 IMD for another author's question. Waiting for one's own registration event avoids it.\n\n**Dropped:** the two economics items. The oracle reference states the signed `chainId` is the question's chain, which matches the design (attestation chainId 1, domain on the deployment chain). The permissionless Sepolia mocks describe the rehearsal environment, not a code defect.\n\n**Verified independently:**\n\n- All 191 existing tests pass on this tree.\n- Live Sepolia reads confirm every non-floor constructor check passes with the manifest's arguments, and the V1 executor's preview reverts as the brief says.\n- Runtime sizes fit EIP-170 with 15 bytes to spare on Registry; no forbidden opcodes; manifest schema, argument order and checksum are correct.\n\nCoverage answers all 16 entry points plus three invariant rows (constructor on Sepolia, manifest, deployment limits).","treeHash":null,"usage":{"cachedInputTokens":1648880,"inputTokens":482,"model":"claude-fable-5-1","outputTokens":30104,"runtime":"claude","turns":24,"wallClockMs":484732}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"e293ff3324f7ddb5","findings":[],"hash":"54de4bee0de33a51ac7d35f4400e9bfe88ee7ff5797ff7818edefdbbdd088b68","nodeId":"dd99f21a-07f3-4bc5-a5af-d5681990ae37","outcome":"completed","summary":"I found no access-control defects in `src/Registry.sol`, so `.imd-findings.json` holds an empty findings list plus one coverage row for each of the 16 entry points, all marked `holds`, and an extra row for the constructor. I changed no repository files.\n\n**What I traced, against the Access Control, Trust Gap and Asymmetry guides:**\n- **Roles at deployment:** the registry has no owner, setters, pause, upgrade, `receive` or `fallback`, and the constructor hands out no roles. The card (ERC-721) functions use the standard OpenZeppelin permission checks; overriding the transfer hook only adds a metadata-refresh event.\n- **Oracle callbacks:** `onResult` and `onFailure` only accept calls from the Intake and only for a pending request the registry made itself. The request is cleared before any check runs. Answers must be signed by the fixed attester over a digest bound to this registry and chain, and the panel, block window, expiry and question hash are all checked. `onFailure` stores nothing and moves no funds.\n- **Abandon:** only the stored claimant can abandon a personal request, anyone can abandon a shared fact, and only after 14 days. This matches the documented design.\n- **Sponsor pool:**\n  - Pool claims require Curator membership and IDMD ownership. They are limited to the catalog chain traits, to one per wallet per UTC day, to one per wallet and trait, and to nine per IDMD token.\n  - Each limit is recorded before the request goes out.\n  - The burn-or-refund step only ever forwards or returns the ETH sent with that call.\n- **Fees:** `upgrade`, `requestSharedFact`, `mintCard` and `registerSpec` each take an exact amount from the caller. There is no way to withdraw IMD; the documentation says no administrator can recover sponsor-pool IMD.\n- **Shared facts:** `applySharedFact` only marks the caller, only once, and only if the submitted list matches the stored answer and the caller is within the allowed head of the list.\n\n**Sepolia constructor check (read-only `cast` against a public RPC):**\n- Curator, IDMD, IMD, Intake and the burn executor all have code.\n- `MockCurator.isSettled()` returns true.\n- `Intake.priceOf` returns 0.5 IMD for the oracle action.\n\nSo the Registry constructor will not revert with the given arguments.\n\n**Limits of this review:**\n- I reviewed Composer and Renderer only through the calls the registry makes into them.\n- I did not separately review the Composer's spec validation.\n- I wrote no Foundry tests, since there was nothing to prove.\n- I didn't check `launch.json`, because the repository doesn't have one yet.\n\nThe design decisions listed in the brief (who can abandon, the burn rule, membership coming from mock contracts on Sepolia) I treated as accepted trust assumptions, not findings.","treeHash":null,"usage":{"cachedInputTokens":251321,"inputTokens":10,"model":"claude-opus-5-5","outputTokens":4429,"runtime":"claude","turns":5,"wallClockMs":51048}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"c0fc4ea4f50e3380","findings":[{"citation":"resolved","description":"README (line 102) presents `upgradeSponsored` as an allowance of nine pool requests per IDMD token over its lifetime, including after transfer. The limit is not a guarantee: `claimSponsored` (line 708) has the same membership check, the same per-(wallet, trait) `poolUsed` rule and the same daily rule, spends the same pool and never reads `idmdSponsored`. Every request `upgradeSponsored` can make, `claimSponsored` can make for the same wallet on the same day, and a wallet holding an exhausted token simply switches entry point. The IDMD path therefore adds a strictly more restrictive duplicate of the same capability (extra `ownerOf` read, extra counter) and its counter never binds. No funds are at risk beyond what the pool rules already allow; this is a documented guarantee that the code does not provide. Design decision per the brief (sponsor pool rules); report only, no source change.","line":699,"path":"src/Registry.sol","reproduction":"Mocks, chain 1, pool funded with 50 IMD. Alice (Curator member) owns IDMD token 7 and calls upgradeSponsored(7, [id]) once per day for the nine catalog chain ids 701..1105; idmdSponsored(7) == 9. Token 7 is transferred to Bob (also a member). Bob calls upgradeSponsored(7, [701]): reverts IdmdSponsorExhausted(7). Bob then calls claimSponsored(701) in the same block: succeeds, pool drops by 0.5 IMD. Verified with a scratch Foundry test (test_exhaustedTokenHolderStillDrawsThroughClaimSponsored, passes on this code). Expected per README: the token's allowance is exhausted; actual: the allowance has no effect on what the wallet can draw.","severity":"low","snippet":"        if (idmdSponsored[idmdTokenId] >= MAX_SPONSORED) revert IdmdSponsorExhausted(idmdTokenId);","title":"upgradeSponsored's per-IDMD-token lifetime allowance restricts nobody: claimSponsored draws the same pool with no token gate"},{"citation":"resolved","description":"Community spec ids are assigned from a shared counter at registration time and `upgrade(uint16[] traitIds, uint256 maxPrice)` (line 399) accepts those ids with no binding to the spec content (no hash, no registrant check). A claimant who registers a spec and, in the same block or before seeing the SpecRegistered event, calls upgrade with the id they expected (`nextSpecId` read beforehand) will ask whichever spec actually received that id. The 0.5 IMD price is spent at the Intake immediately and a miss refunds nothing, so the claimant pays for and may be marked with a trait they never meant to request. An ordinary front-run or two users registering in the same block triggers it; no attacker privilege is needed. Fix would be an optional spec-hash or expected-registrant argument on upgrade; that changes the ABI and runtime bytes, so under this job's rules it is a non-blocking report, not a change.","line":635,"path":"src/Registry.sol","reproduction":"Mocks, chain 1, block 26,200,000. Alice reads nextSpecId() == 10001 and submits registerSpec(specA) followed by upgrade([10001], 1 ether). Bob's registerSpec(specB) is mined first and receives 10001; Alice's specA becomes 10002. Alice's upgrade([10001]) succeeds: pendingRequest(lastId) is (alice, 10001, ..., questionHash of specB composed for alice), specOf(10001).name == specB's name, 0.5 IMD left Alice. Verified with a scratch Foundry test (test_upgradeByExpectedSpecIdPaysForAnotherRegistrantsSpec, passes on this code). Expected: Alice's request concerns her own spec or reverts; actual: it concerns Bob's spec and is paid.","severity":"low","snippet":"        traitId = nextSpecId++;","title":"upgrade() names community specs by sequence number only, so a registerSpec that lands first makes the claimant pay for a stranger's question"},{"citation":"resolved","description":"Every answer must carry chainId 1 (the question's chain) while the body's consumer.chainId and the EIP-712 domain use 11155111. The protocol reference (oracle-consumer REFERENCE.md line 164) describes a.chainId as the chain the question was about, which supports this, and the five reference attestations all have chainId 1, but all five are for mainnet consumers, so nothing in the repository or the reference material demonstrates a Sepolia-domain attestation with chainId 1. The brief lists this as a design decision, so no change is proposed; the adapter should confirm it with the plane before spending TestIMD on the rehearsal.","line":551,"path":"src/Registry.sol","reproduction":"State: Registry on chain 11155111, a pending catalog request for (alice, 701). Input: an attestation signed by 0x5598...2982 in the registry's Sepolia domain with every field correct except chainId == 11155111. onResult emits Missed(requestId, 701, 3), clears the pair, the 0.5 TestIMD is spent and the trait is not marked. With chainId == 1 the same envelope verifies (existing tests test_mainnetQuestionAcceptedUnderSepoliaConsumerDomain and test_sepoliaQuestionMissesWithReasonThreeUnderSepoliaDomain show both branches with a local signer).","severity":"info","snippet":"        if (a.chainId != QUESTION_CHAIN_ID) return 3;","title":"Sepolia rehearsal assumes the plane signs attestation.chainId == 1 for a consumer in the Sepolia domain; no vector in the tree shows a non-mainnet consumer"},{"citation":"resolved","description":"A coded executor whose previewBridge() returns successfully with fewer than 96 bytes would revert every claimSponsored and upgradeSponsored call for ever, since ABI decoding happens after the try. This residual is already documented in test/NOTES.md. Checked over RPC on 2026-10-17: the Sepolia V1 executor 0x097A...3A2E (4,496 bytes of code) reverts on the previewBridge selector, so the registry takes the catch branch and emits BurnSkipped(1) as the brief states; the mainnet V2 executor 0xe293...c750 (7,405 bytes) and the Sepolia V1 both have an empty EIP-1967 implementation slot and no DELEGATECALL opcode, so their return shape cannot be changed by configuration. Not a defect in this code; recorded so the adapter does not re-open it.","line":737,"path":"src/Registry.sol","reproduction":"Only reachable with a hypothetical executor: deploy a contract whose previewBridge() returns (uint256) alone, pass it as burnExecutor; claimSponsored(701) by a member then reverts with an ABI decoding error after the Intake request, for every caller. Neither configured executor address can reach this state.","severity":"info","snippet":"            try burnExecutor.previewBridge{gas: PREVIEW_GAS}() returns (uint256 amount, uint256, uint256 fee) {","title":"Preview return words are decoded outside the try/catch; verified live that neither executor can produce short return data"},{"citation":"resolved","description":"Read in full: src/Registry.sol, src/Composer.sol, src/Renderer.sol, src/Types.sol, the five interfaces, script/Deploy.s.sol, reference/IntakeV2.sol (request, complete), test/mocks/Mocks.sol, both protected tests. Not read line by line: src/HiveData.sol and src/TemplateData.sol (generated string tables, exercised by the golden tests), lib/ (OpenZeppelin, forge-std). Checked against the Pashov list for every state-changing entry point: access (Intake-only callbacks, member-only pool, claimant-only abandon), value movement (IMD pulled before use, Intake paid from balance, ETH forwarded or refunded in full, no pre-existing balance distributed), reentrancy (nonReentrant on every IMD/ETH path, callbacks make no external calls), arithmetic (answer bounds, uint16 counters, Renderer exponent), replay (pending consumed once, questionHash bound to claimant and trait), forbidden opcodes and owner roles (none; no proxy, initializer, setter, pause or selfdestruct). forge test --offline without the invariant and fork suites: 177 passed, 0 failed. EIP-712 type string, domain name and version equal the protocol reference. Runtime sizes 24,561 / 23,655 / 21,570 bytes, no immutables. Live Sepolia reads on 2026-10-17: MockCurator 0x0919...653d isSettled() true, MockIDMD 0x2c30...e4e4 has code, TestIMD 0x44a1...f89a has code, Intake 0xa43e...de82 priceOf(action, TestIMD) = 0.5e18 and callbackGas 1,000,000, so the constructor's four non-floor checks pass with the brief's arguments. The deployment order and the eight arguments in the brief match the constructor; renderer and composer are backward references. No blocking finding; nothing in src/ or the build settings needs to change.","line":31,"path":"src/Registry.sol","reproduction":"Not a defect. Commands: forge build --offline; forge test --offline --no-match-contract 'Invariant|Fork'; cast call <dependency> over https://ethereum-sepolia-rpc.publicnode.com as listed in the description.","severity":"info","snippet":"contract Registry is ERC721, IERC4906, ReentrancyGuard, IOracleConsumer {","title":"Coverage: contracts read, live dependency checks, and what was not reached"}],"hash":"842f1f4ece787e347dc86ee51fbdd9266794033ad0881765de73413e740b7550","nodeId":"769655d3-ac3f-4c90-97d3-75b964d1d30c","outcome":"completed","summary":"The review is complete. The findings file is written, every snippet matches its line in the tree, the scratch test is removed, and the working tree shows no other changes (the findings file is git-ignored).\n\n**Verdict: no blocking finding.** Nothing in src/ or the build settings needs to change for the Sepolia rehearsal or the mainnet launch of this commit.\n\n**What I read.** Registry, Composer, Renderer, Types, all five interfaces, the deploy script, the Intake v2 reference (request and complete paths), the test mocks and both protected tests. I did not read the two generated string tables (HiveData, TemplateData) line by line or the OpenZeppelin and forge-std libraries. I checked every state-changing entry point against the Pashov checklist: access control, value movement, reentrancy, arithmetic bounds, replay and the launch-forbidden patterns. There is no owner, proxy, initializer, setter, pause, DELEGATECALL or SELFDESTRUCT.\n\n**Evidence gathered.**\n- The test suite without the invariant and fork suites passes: 177 tests, 0 failures.\n- The EIP-712 type string, domain name and version equal the protocol reference byte for byte.\n- Runtime sizes are 24,561, 23,655 and 21,570 bytes, all under EIP-170, with no immutables.\n- Live Sepolia reads today: the mock Curator reports settled, the mock IDMD and TestIMD have code, and the Intake prices the action at 0.5 TestIMD with a 1,000,000 gas callback stipend. The constructor's four non-floor checks therefore pass with the brief's exact arguments.\n- The Sepolia V1 executor reverts on the preview selector, so sponsored claims take the BurnSkipped(1) branch as the brief states. Neither executor is a proxy or contains DELEGATECALL, so the preview's return shape cannot change under it.\n\n**Findings written to .imd-findings.json.**\n- **Low:** the per-IDMD-token lifetime allowance in `upgradeSponsored` restricts nobody, because `claimSponsored` draws the same pool under the same rules with no token gate. Confirmed with a scratch test: a wallet holding an exhausted token is refused on one path and served on the other in the same block.\n- **Low:** `upgrade` names community specs by sequence number only, so a registration that lands first makes a claimant pay 0.5 IMD for a stranger's question. Confirmed with a scratch test. A fix would change the ABI, so it is reported and not applied.\n- **Info:** the rehearsal relies on the plane signing attestation chainId 1 for a Sepolia-domain consumer. The reference supports this reading, but no attestation in the tree is for a non-mainnet consumer. The adapter should confirm it with the plane before spending TestIMD.\n- **Info:** the documented short-return residual on the preview decode, verified non-triggerable for both configured executors.\n- **Info:** the coverage note above, so the report in the file stands on its own.\n\nNothing is left for me to do here. The adapter can proceed with the manifest as specified: Renderer, Composer, then Registry with the eight arguments in the brief's order.","treeHash":null,"usage":{"cachedInputTokens":1908883,"inputTokens":482,"model":"claude-fable-5-1","outputTokens":35453,"runtime":"claude","turns":31,"wallClockMs":555897}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"56b13350bba65fd7","findings":[{"citation":"resolved","description":"A community spec is identified in upgrade() only by its sequential id (FIRST_SPEC_ID + registration order). The id a caller acts on is learned from nextSpecId() or from an intended registration, and nothing in the request binds it to the spec the caller meant: _request composes the stored spec at that id (composeBody -> _specs[traitId]), pays the Intake price, and the delivered trait is the stored spec's. Between the caller reading the id and the upgrade landing, any address may call registerSpec, so the id the caller pays for can be a spec they did not author. registerSpec itself validates correctly; the defect is the missing content binding across the two transactions. This is the residual already noted in ADAPTATION.md; a fix (an expected spec hash argument) changes the ABI and runtime bytes, so it is non-blocking and left unchanged.","line":408,"path":"src/Registry.sol","reproduction":"1) Wallet U reads nextSpecId() == 10001 and prepares SpecU (a T1 question of their own). 2) Attacker A calls registerSpec(SpecA) with 6.4 IMD approved; A's spec is stored at 10001 and nextSpecId becomes 10002. 3) U calls upgrade([10001], 5e17). The per-id checks pass (kind 1, not shared), so _request composes SpecA's canonical question and questionHash via composeBody(10001, U) and pulls 0.5 IMD from U into the Intake. U has paid for an oracle answer to A's question, not SpecU's; U's own spec (had they registered it) occupies 10002. Expected: the id U paid for denotes the spec U chose; actual: it denotes whatever spec occupies the slot at execution time.","severity":"low","snippet":"            if (id >= FIRST_SPEC_ID) {\n                uint8 kind = _specs[id].kind;\n                if (kind == 0) revert NotAnOracleTrait(id);\n                if (kind == 3) revert NotASharedFact(id);","title":"upgrade() binds a community spec by sequential id only, so a later registration can make a caller pay for another author's spec"}],"hash":"8f18145adb5ee8988801e5d34bc9cfa51f87749f41512778b08d2f52f1ea42aa","nodeId":"c7d01401-e22b-43cc-8dff-d5dc06aea02b","outcome":"completed","summary":"The review is complete and written to `.imd-findings.json` (1 finding, 16/16 coverage rows). Nothing tracked by git changed; the findings file and my probe under `test/scratch/` are both gitignored, and `src/`, `foundry.toml` and `remappings.txt` are byte-identical to `HEAD`.\n\n**Covered:** the Registry's control flow across transactions, the Composer/Renderer periphery seams, and the launch path against the brief.\n\n**The one finding (low, non-blocking):** `upgrade()` identifies a community spec by its sequential id alone (`src/Registry.sol:408`). A `registerSpec` that lands between the caller reading `nextSpecId()` and their `upgrade` means the caller pays 0.5 IMD for a question another author wrote. `registerSpec` itself validates correctly; the gap is the missing content binding. A fix needs a new hash argument, which changes the ABI and runtime bytes, so per the brief it is reported and left in place. The author had already recorded this residual in `ADAPTATION.md`; my report confirms it replicates.\n\n**What holds, with evidence:** pool paths mutate `lastPoolDay`/`poolUsed` before the request and every revert rolls them back (my scratch probe confirms the failed-claim rollback restores both); `onResult` clears before checking, so a result arriving after a 14-day abandon stores nothing; `applySharedFact` on a re-requested fact is blocked by the stored hash and `AlreadyVerified`; the shared-fact envelope check is canonical and bounded at 64 entries. Sepolia facts, read live: MockCurator is settled, `priceOf(oracle.request@oracle-1, TestIMD)` is exactly 0.5e18, the V1 executor has 4,496 bytes of code and its `previewBridge()` reverts, so every sponsored claim there emits `BurnSkipped(1)` and refunds, exactly as the brief describes. Sepolia's Intake `callbackGas` is 1,000,000, which the docs state.\n\n**Unreached:** none of the 16 entry points. Fork-only behaviour (real BurnExecutor, OFT, LayerZero), real Sepolia broadcast behaviour, and the Renderer's golden image bytes were not re-derived beyond what the existing suite already asserts; the full hermetic suite passes (183 tests).\n\n**Adaptations made:** none to source or build settings. I created `test/scratch/ControlFlow.t.sol` (a four-test probe) and updated `.imd-findings.json`; both are outside the submission tree.","treeHash":null,"usage":{"cachedInputTokens":4894254,"inputTokens":112,"model":"claude-fable-5-1","outputTokens":132466,"runtime":"claude","turns":54,"wallClockMs":1876286}},{"artifacts":[],"attempt":1,"bundleHash":"b5d2db0764c4f10c62dff6695eaeb93e08b0e57094680e329c62c7e0929d4251","device":"223fd994d1a35f81","findings":[],"hash":"bda41d37d69f573e09c62725692a1319e018e19d5f29065f54aca33bb2b45d66","nodeId":"4534974e-63f8-4792-9949-1e56fd3e32b7","outcome":"completed","summary":"The project launches as it is, so I changed nothing in `src/`, `lib/` or the build settings. Creation code with your arguments and the runtime code are the frozen candidate's build, unchanged. `forge build` passes. `forge test --offline` with the verifier's fuzz seed passed 182 tests with 0 failures. 17 fork tests were skipped because there's no RPC here. The new test also passes on its own.\n\n**What I added (tests and docs only):**\n- `test/LaunchManifest.t.sol`: deploys Renderer, then Composer, then Registry with your exact eight arguments. It runs on an empty chain with Sepolia's chain id, which is the case where the Registry constructor skips its dependency checks. It checks every stored address and the name and symbol (`Sworn` / `SWORN`).\n- `ADAPTATION.md`: lists both changes and why nothing in the code had to change. It also gives the deploy order and arguments for the manifest step and covers each audit finding.\n\n**Why the code already fits the launch:** all three constructors are nonpayable and take only addresses (Registry 8, the other two none). None of the contracts has an owner, so `$owner` isn't used. There's no proxy, initializer, setter, pause, DELEGATECALL, CALLCODE or SELFDESTRUCT.\n\n**Audit findings — none blocking, none changed code:**\n- **Low, sponsor allowance:** the per-token allowance on `upgradeSponsored` restricts nobody, because `claimSponsored` draws from the same pool without it. This is a sponsor-pool design decision, so I only reported it. Fixing it would mean different runtime bytes.\n- **Low, community spec ids:** `upgrade()` picks a community spec by its number alone. If someone else's `registerSpec` lands first, the caller pays for that stranger's spec. Fixing it would change the ABI and the bytes, so I reported it and left it. Callers should wait for their own `SpecRegistered` event before calling `upgrade()`.\n- **Info, Sepolia chainId:** the rehearsal relies on the oracle signing `chainId 1` for a contract in the Sepolia signing domain. This is your stated design decision and existing tests cover both cases. Nothing in the repository shows a real signed answer for a Sepolia contract, so confirm this with the oracle team before spending TestIMD.\n- **Info, preview decoding:** a malformed preview reply from the burn executor could block every sponsored claim. Neither configured executor can return one, and it's already recorded in `test/NOTES.md`.\n- **Info, coverage:** the auditor's summary of what they read and checked, not a defect.\n\nThe protected checks you supplied wouldn't compile here: they need a compiler version (0.8.26) that isn't installed and helper files that aren't in the repo. I couldn't run them, so they're left to the verifier.","treeHash":"53593acf8d4b95bfac33f2c83beb9c826b139f4f","usage":{"cachedInputTokens":515166,"inputTokens":24,"model":"claude-opus-5-5","outputTokens":6148,"runtime":"claude","turns":14,"wallClockMs":223463}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"c79042525fc4a50d","findings":[{"citation":"resolved","description":"Design decision, documented (README, INTEGRATION.md section 4 check 3) and explicitly not to be adapted: the registry accepts only attestations whose signed `chainId` is 1 (the question's evidence chain) while the EIP-712 domain uses block.chainid (11155111 on Sepolia). Every attestation in reference/attestations/ and every completion in reference/intake/completions.json is a mainnet one, where the question chain and the consumer chain coincide, so nothing in the tree shows which value the plane writes into the signed `chainId` field when the consumer lives on Sepolia. The oracle-consumer reference says Sepolia serves 'only for an answer signed for a Sepolia contract' and does not say which chain the signed `chainId` names. Economic consequence if the plane signs the consumer chain: onResult clears the pending pair and emits Missed(requestId, traitId, 3) for every Sepolia request, each one having spent 0.5 TestIMD (or the pool's 0.5 TestIMD plus the claimant's daily and lifetime allowance for a sponsored claim), and the rehearsal verifies nothing. On mainnet both values are 1 and this cannot occur. Non-blocking: no source change is authorised or needed; the operator should confirm the signed chainId with one Sepolia request before relying on the rehearsal's results.","line":551,"path":"src/Registry.sol","reproduction":"Chain 11155111, registry R deployed with the brief's arguments, member M. (1) M calls R.upgrade([701], 0.5e18): 0.5 TestIMD leaves M, Intake records request id X. (2) The plane completes X with an attestation whose domain is {IdentityMD Oracle, 2, 11155111, R} and whose signed message.chainId is 11155111 instead of 1, correctly signed by 0x5598aa91...2982. Expected if the plane follows INTEGRATION.md: a.chainId == 1, check 3 passes, Verified(M, 701, X, uuid). Actual with a.chainId == 11155111: _check returns 3 at the quoted line, onResult emits Missed(X, 701, 3), pendingOf(M, 701) is cleared, hasTrait(M, 701) stays false, the 0.5 TestIMD is not returned. The same inputs with a.chainId = 1 verify (test/SepoliaRehearsal.t.sol test_sepoliaClaimantVerifies701ThroughMockIntake proves the chainId-1 path).","severity":"info","snippet":"        if (a.chainId != QUESTION_CHAIN_ID) return 3;","title":"Sepolia rehearsal rests on an unverified assumption that the plane signs attestation chainId 1 for a Sepolia consumer; if it signs the consumer chain, every rehearsal request is a Missed(3) with its p"},{"citation":"resolved","description":"Not a defect in the registry's code, which is byte-equal on both chains, and no change is proposed. Read on 2026-10-17 over a public Sepolia RPC: the Sepolia MockCurator at 0x0919ba50...653d accepts set(address,uint256,bool,uint256,uint256,uint256) from an arbitrary caller (eth_call simulation succeeds) and the MockIDMD at 0x2c3013c9...e4e4 accepts setOwner(uint256,address) likewise; both answer every view the registry reads (firstHourOf, txCountOf, contributedBy, pointsOf, weightOf, isSettled == true; balanceOf, ownerOf reverting ERC721NonexistentToken for an unminted id). The Intake quotes 0.5 TestIMD for oracle.request with callbackGas 1,000,000, and the V1 executor reverts on both the previewBridge() selector and empty calldata, so every sponsored claim on Sepolia takes the BurnSkipped(1) refund branch as the brief states. Consequence for the economics the rehearsal can prove: on Sepolia any wallet can make itself a member and an IDMD holder, so the pool's per-wallet, per-day and per-token limits are reachable by anyone and the pool (TestIMD, open mint) can be drawn down by strangers; the rehearsal therefore demonstrates the registry's accounting, not the mainnet eligibility set, which on mainnet is fixed by the settled Curator and the real IDMD.","line":21,"path":"script/Deploy.s.sol","reproduction":"Chain 11155111 after launch, any wallet W with no Curator history. (1) W calls 0x0919ba50...653d.set(W, 0, true, 1, 1, 1) (succeeds; no access control). (2) W calls Registry.claimSponsored(701) with the pool holding at least 0.5 TestIMD. Expected on mainnet for a non-member: revert NotMember(W). Actual on Sepolia: the claim is accepted, the pool pays 0.5 TestIMD to the Intake, poolUsed[W][701] and lastPoolDay[W] are set. Likewise setOwner(7, W) on the MockIDMD lets W pass upgradeSponsored(7, [801]) the next UTC day.","severity":"info","snippet":"    address public constant SEPOLIA_CURATOR = 0x0919ba50b206C3F31D516De818b1fBc7dA21653D;","title":"Rehearsal environment: the Sepolia MockCurator and MockIDMD accept state writes from any caller, so the sponsor-pool gates (membership, IDMD ownership) are not exercised adversarially on Sepolia"}],"hash":"cae746a536de1ac509e38e2e621ed4e9feefaca9b2ff78e701042e30795eca08","nodeId":"c0dffb2f-5eb9-42a8-9403-bef6cae4fd53","outcome":"completed","summary":"The review is complete and `.imd-findings.json` is written with two info-level findings and a coverage row for all 16 entry points plus five invariants. No file other than the findings file was changed, and nothing in `test/scratch/` was needed because no finding reached high or critical.\n\n**Outcome: no economic defect found in the frozen candidate.** The Registry, Composer and the Sepolia launch set hold against the Economic Security, Invariant and Flow Gap checklists. The existing 183-test suite re-ran green, and I verified the live dependency state on both chains over public RPCs.\n\nWhat I checked in depth:\n\n- **Value conservation.** Pool IMD leaves only through Intake requests; a paid upgrade leaves the pool balance unchanged; every claim either forwards all attached ETH to the executor, refunds it, or reverts atomically with the Intake request and the allowances.\n- **Pending and verified couplings.** One pending record per pair or fact, request ids consumed once, abandon releases without refunding allowance, late answers for abandoned ids never touch a successor.\n- **Burn rule seams.** The registry's preview fee equals the executor's in-call re-quote, surplus goes back to the claimant, a reverting or starved preview skips. Mainnet today quotes 456 IMD for about 0.0002 ETH with an estimated preview cost under the 600,000 forwarded.\n- **Sepolia constructor preconditions.** All five dependencies have code, the mock curator is settled, the Intake quotes 0.5 TestIMD, and the V1 executor reverts both its preview selector and empty calldata, so no silent-success decode trap exists.\n\nThe two recorded findings are non-blocking and need no source change:\n\n1. **Signed chainId on Sepolia is unverified.** Every attestation in the tree is from mainnet, where the question chain and consumer chain coincide. If the plane signs 11155111 for a Sepolia consumer, every rehearsal request becomes `Missed(…, 3)` with its price spent. This is a documented design decision; the operator should confirm it with one Sepolia request before trusting the rehearsal's results.\n2. **Sepolia mocks are open-settable.** Anyone can grant themselves membership or IDMD ownership, so the rehearsal exercises the registry's accounting, not the mainnet eligibility set.\n\nDesign decisions the brief listed as fixed were treated as such and not reported, including the IDMD route being no wider than the member route and sponsored requests still spending after an attester rotation.","treeHash":null,"usage":{"cachedInputTokens":1896794,"inputTokens":546,"model":"claude-fable-5-1","outputTokens":42599,"runtime":"claude","turns":38,"wallClockMs":691778}},{"artifacts":[],"attempt":1,"bundleHash":"067a2b4ce8ad59129f0c46a0775991b91c6164f8676ecabbdec14a5e6c0c40cd","device":"e49531c471ac7158","findings":[],"hash":"cb7d29b9b9098122a0741009c69b0aa85116da34b56e4d57c869e5329e102d57","nodeId":"49018792-4823-4d25-b33e-064722e29064","outcome":"completed","summary":"I added `test/SepoliaLaunchArgs.t.sol`, which tests the Registry with the exact Sepolia constructor arguments from the brief. The full `forge test` run with the verifier's fuzz seed passes: 191 passed, 0 failed. Another 17 tests are skipped; they were written to skip by earlier contributors, and none of them are mine.\n\nThe new file has 8 tests:\n- **Empty-chain launch check:** with no code at any dependency address, the Registry deploys with the brief's addresses. It stores each one and reports name \"Sworn\" and symbol \"SWORN\".\n- **Zero addresses:** a fuzz test sets each of the seven required arguments to zero, with and without contracts at the dependency addresses, and every case reverts `ZeroAddress`.\n- **Dependency checks:**\n  - If only the Curator has code, deployment reverts `DependencyHasNoCode` because IDMD has none.\n  - A zero Intake price reverts with \"Intake price\".\n  - An executor address with no code reverts `ExecutorHasNoCode`.\n- **The V1 executor stand-in:** I put a contract at `0x097A…2A2E` whose `previewBridge()` reverts. A sponsored claim sent with ETH then emits `BurnSkipped(1)` and refunds the ETH, but the Intake price and the allowance are still spent. A second sponsored claim the same day reverts `PoolDailyLimit`.\n\nThe existing suite already covered the rest, including invariant tests over random call sequences for the contract that holds value.\n\nI found no defects, so there is no `.imd-findings.json`. I changed nothing in `src/` or the build settings.","treeHash":"5f2e25a4bdc207c106e686028a1614bbd5af08d7","usage":{"cachedInputTokens":497643,"inputTokens":22,"model":"claude-opus-5-5","outputTokens":6035,"runtime":"claude","turns":11,"wallClockMs":197021}},{"artifacts":[],"attempt":1,"bundleHash":"7d3359d259e6d67771b43846c1c001de472242cd076c0303e36f3c8e66bd30c3","device":"9676188abd3783f2","findings":[],"hash":"cbd2400e284101d44dd0b229365e4f683c011ffe1617aa829d071509598789c4","nodeId":"212d950a-c211-482a-9eca-c590052c53bd","outcome":"completed","summary":"Created [launch.json](launch.json) with Renderer → Composer → Registry and the exact approved arguments. No source, library, or build-setting changes.\n\n`forge build` passed. Tests with the supplied fuzz seed: **183 passed, 0 failed, 17 skipped**.\n\nThe separate protected harness was not executed locally; it declares Solidity 0.8.26, while the frozen build remains 0.8.24.","treeHash":"df91382da18c1566915d23e345dcb0d3d2312289","usage":{"cachedInputTokens":984448,"inputTokens":49960,"model":"gpt-6-astra","outputTokens":8191,"runtime":"codex","turns":6,"wallClockMs":283977}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"970da38f1d564250","findings":[{"citation":"resolved","description":"nextSpecId is uint16 (line 116), starts at FIRST_SPEC_ID 10001, and is incremented with checked arithmetic. Once spec 65535 is registered, every later registerSpec call panics with 0x11. The registry has no owner and no upgrade path, so community spec registration stops for good. Each spec costs 6.4 IMD, so reaching the cap costs about 355,424 IMD in fees that go to the sponsor pool. That is expensive, but it is a hard boundary the docs do not mention. Fixing it would need a wider type and different bytecode, which this launch forbids, so the finding is non-blocking and informational for docs.","line":635,"path":"src/Registry.sol","reproduction":"State: nextSpecId == 65535 (after 55,534 successful registerSpec calls, or vm.store in a test). Call registerSpec(validSpec) once: it returns traitId 65535. Call registerSpec(validSpec2): expected a new spec id; actual revert Panic(0x11) from the nextSpecId++ overflow, on every later call.","severity":"low","snippet":"        traitId = nextSpecId++;","title":"uint16 community spec id counter caps registrations at 55,535 and then registerSpec reverts forever"}],"hash":"dcce0dfab9b42c6c278ee5d361b5022f26e97d26ba31b47382dbcb51a2f9f96b","nodeId":"64aff206-e5ae-4fb1-a53b-53e0b410f872","outcome":"completed","summary":"I found one low-severity defect in the math, boundary and numerical-gap area, and nothing blocking for the launch. The results are in `.imd-findings.json`. I changed no files and wrote no Foundry proof, since proofs are only required for critical or high findings.\n\n**Finding (low):** `src/Registry.sol:635` — `traitId = nextSpecId++;`\n- `nextSpecId` is a `uint16` that starts at 10001. Once spec 65535 has been registered, every later `registerSpec` call reverts (arithmetic overflow, panic 0x11).\n- The registry has no owner and no upgrade path, so community spec registration would stop for good.\n- Reaching the cap costs about 355,424 IMD in spec fees (6.4 IMD each), and that money goes into the sponsor pool.\n- To reproduce: set `nextSpecId` to 65535, register one spec (it gets id 65535), then try to register another. It reverts instead of returning a new id.\n- The fix would be a wider counter type, which means different bytecode. This launch forbids that, so the finding stays non-blocking and is mainly something the docs should mention.\n\n**Coverage:** All 16 entry points have a row: 15 hold and one (`registerSpec`) carries the finding. The checks that came out correct:\n- **Prices and fees:** `upgrade`'s `price * k` is overflow-checked, and the IMD it pulls equals what it spends. The burn-fee comparison and the 0.005 ETH cap work as the brief describes.\n- **Answer decoding:** the answer's length is checked before it is sliced. The shared-fact list length (at most 64) fits in `uint16` without loss, and the head limit is the smaller of the list length and the threshold (at most 32).\n- **Time limits:** the abandon deadline (request time plus 14 days) cannot overflow. The UTC-day boundary for sponsored claims is correct. The per-IDMD-token cap allows exactly 9 requests.\n- **Spec windows:** the spec window arithmetic is safe from overflow. The constants in `mainnetHeightBound` match the brief (block 15,537,395 at slot 4,700,014, 12-second slots).\n\nI did not go through the rest of Composer and Renderer (string building and rendering) beyond `validateSpec` and `mainnetHeightBound`.","treeHash":null,"usage":{"cachedInputTokens":354163,"inputTokens":14,"model":"claude-opus-5-5","outputTokens":3996,"runtime":"claude","turns":7,"wallClockMs":52524}}],"verification":[{"checks":[{"durationMs":37520,"exitCode":0,"name":"build","output":"Compiling 84 files with Solc 0.8.24\nSolc 0.8.24 finished in 36.37s\nCompiler run successful with warnings:\nWarning (5159): \"selfdestruct\" has been deprecated. Note that, starting from the Cancun hard fork, the underlying opcode no longer deletes the code and data associated with an account and only transfers its Ether to the beneficiary, unless executed in the same transaction in which the contract was created (see EIP-6780). Any use in newly deployed contracts is strongly discouraged even if the new behavior is taken into account. Future changes to the EVM might further reduce the functionality of the opcode.\n  --> test/mocks/MockBurnExecutor.sol:10:9:\n   |\n10 |         selfdestruct(payable(to));\n   |         ^^^^^^^^^^^^\n\nWarning (2018): Function state mutability can be restricted to pure\n  --> test/Goldens.t.sol:67:5:\n   |\n67 |     function _widthCard() internal view returns (Card memory c) {\n   |     ^ (Relevant source part starts here and spans across multiple lines).\n\nWarning (2018): Function state mutability can be restricted to pure\n   --> test/Goldens.t.sol:345:5:\n    |\n345 |     function _card(\n    |     ^ (Relevant source part starts here and spans across multiple lines).\n\n","passed":true},{"durationMs":24006,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 6 tests for test/fork/BurnRule.fork.t.sol:BurnRuleForkTest\n[SKIP] test_fork_coldFreeClaimExactFeeFromNonpayableContractClaimant() (gas: 0)\n[SKIP] test_fork_coldFreeClaimWithSurplusBurnsAndExecutorReturnsTheSurplus() (gas: 0)\n[SKIP] test_fork_coldFreeClaimWithoutTheFeeReverts() (gas: 0)\n[SKIP] test_fork_executorConfigurationAndPinnedQuote() (gas: 0)\n[SKIP] test_fork_realExecutorAndOFTForceRefundSurplusToNonpayableRecipient() (gas: 0)\n[SKIP] test_fork_realExecutorExactFeeForNonpayableRecipient() (gas: 0)\nSuite result: ok. 0 passed; 0 failed; 6 skipped; finished in 733.89µs (520.88µs CPU time)\n\nRan 1 test for test/LaunchManifest.t.sol:LaunchManifestTest\n[PASS] test_launchOrderAndArgumentsDeployOnEmptyChain() (gas: 89847)\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 1.27ms (1.07ms CPU time)\n\nRan 11 tests for test/fork/Mainnet.fork.t.sol:MainnetForkTest\n[SKIP] test_fork_attestationSignedForAnotherConsumerMissesOnTheRealIntake() (gas: 0)\n[SKIP] test_fork_curatorIsSettledWithTheBriefsConstants() (gas: 0)\n[SKIP] test_fork_firstContributorIsAnHourZeroEarlyBird() (gas: 0)\n[SKIP] test_fork_intakeV2SellsTheActionAsTheBriefRecords() (gas: 0)\n[SKIP] test_fork_lastContributorIsNoEarlyBird() (gas: 0)\n[SKIP] test_fork_memberMintsAndRendersAgainstTheRealCurator() (gas: 0)\n[SKIP] test_fork_nonMemberReadsZeroFalseAndHasNoCuratorTrait() (gas: 0)\n[SKIP] test_fork_operatorTraitReadsTheRealCollectionAndGuardsZero() (gas: 0)\n[SKIP] test_fork_pinnedBlockIsTheOneRecorded() (gas: 0)\n[SKIP] test_fork_thousandthContributorJoinedInsideTheFirstThousandWindow() (gas: 0)\n[SKIP] test_fork_upgradeThroughTheRealIntakeThenCompleteFromTheWriter() (gas: 0)\nSuite result: ok. 0 passed; 0 failed; 11 skipped; finished in 2.21ms (1.09ms CPU time)\n\nRan 8 tests for test/Rename.t.sol:RenameTest\n[PASS] test_catalogSpecNamesMatchTheTable() (gas: 496540)\n[PASS] test_collectionNameAndSymbol() (gas: 25005)\n[PASS] test_composerStaysUnderTheSizeLimitWithHeadroom() (gas: 13473)\n[PASS] test_metadataCarriesTheFinalFamilyNames() (gas: 3753529)\n[PASS] test_nameTableIsTheFinalTable() (gas: 609580)\n[PASS] test_noWorkingNameSurvivesInTheNameTable() (gas: 1060323)\n[PASS] test_unknownIdHasNoName() (gas: 25179)\n[PASS] test_upgradeRefusesTopWeightsAsASharedFact() (gas: 1641444)\nSuite result: ok. 8 passed; 0 failed; 0 skipped; finished in 28.70ms (24.96ms CPU time)\n\nRan 3 tests for test/Attestations.t.sol:AttestationsTest\n[PASS] test_allFiveRecoverTheAttesterUnderTheirOwnDomainOnly() (gas: 5269883)\n[PASS] test_loaderRejectsUnknownAnswerTypeNames() (gas: 4845)\n[PASS] test_protocolVectorDigestAndSelector() (gas: 2162970)\nSuite result: ok. 3 passed; 0 failed; 0 skipped; finished in 42.83ms (37.80ms CPU time)\n\nRan 10 tests for test/ReReview.t.sol:ReReviewTest\n[PASS] test_coldGas_firstCommunityVerificationWithACard() (gas: 2415584)\nLogs:\n  cold onResult gas, first community verification with a card: 133357\n\n[PASS] test_coldGas_sharedFact64Catalog() (gas: 1740251)\nLogs:\n  cold onResult gas, 64-address shared fact (catalog 1201): 164088\n\n[PASS] test_coldGas_sharedFact64Community() (gas: 2108985)\nLogs:\n  cold onResult gas, 64-address shared fact (community T3): 170446\n\n[PASS] test_communityAttributesAppearOnlyForVerifiedSpecs() (gas: 4751043)\n[PASS] test_constructorReadsIsSettledWithoutWriting() (gas: 137310)\n[PASS] test_hugeSignatureOnCommunitySharedFactAndCardRequestClearsUnderStipend() (gas: 12243108)\n[PASS] test_lowerOrdinalAcquiredLaterReplacesTheHigherOne() (gas: 8479122)\n[PASS] test_sameSignedEvidenceSatisfiesAnotherRequestWithTheSameQuestion() (gas: 3262910)\n[PASS] test_specIdsEndAt65534() (gas: 909597)\n[PASS] test_unusedFixedValIsRefusedAndAnEmptyFilterIsNotSerialised() (gas: 1334489)\nSuite result: ok. 10 passed; 0 failed; 0 skipped; finished in 43.05ms (73.75ms CPU time)\n\nRan 2 tests for test/Floor.t.sol:FloorTest\n[PASS] test_mainnetEmptyChainFloor() (gas: 72687056)\n[PASS] test_sepoliaEmptyChainFloor() (gas: 72687024)\nSuite result: ok. 2 passed; 0 failed; 0 skipped; finished in 322.23ms (313.67ms CPU time)\n\nRan 17 tests for test/RegistryRules.t.sol:RegistryRulesTest\n[PASS] test_constructorPriceCheckIsPassiveAndAcceptsAnyNonzeroPrice() (gas: 147502)\n[PASS] test_constructorRejectsEachSingleMistypedDependency() (gas: 19912)\n[PASS] test_constructorRejectsPartiallyCodedDependencyFloor() (gas: 19824)\n[PASS] test_constructorRejectsUnavailableIntake() (gas: 26489)\n[PASS] test_constructorRejectsWrongAsset() (gas: 548859)\n[PASS] test_constructorRejectsZeroIntakePrice() (gas: 42182)\n[PASS] test_fuzz_bothPoolPathsShareOneAllowancePerUtcDay(bool,bool,uint32) (runs: 256, μ: 3246789, ~: 3269983)\nLogs:\n  Bound result 23294\n\n[PASS] test_idmdCounterFollowsTransfersAndStopsAtNine() (gas: 15434120)\n[PASS] test_idmdHolderMustAlsoBeAListMember() (gas: 1763951)\n[PASS] test_memberClaimsOnDeploymentDayWithoutCardOrIdmd() (gas: 1675022)\n[PASS] test_noVerdictConsumesTheDayAndLifetimePair() (gas: 3269502)\n[PASS] test_paidUpgradeAndSharedFactDoNotUseOrObeyPoolDailyLimit() (gas: 8189294)\n[PASS] test_revertingIntakeDoesNotConsumePoolAllowances() (gas: 2028592)\n[PASS] test_specAndFirstClaimCostSixPointNineIMD() (gas: 1880817)\n[PASS] test_specRequiresFullFeeAndAllowance() (gas: 798883)\n[PASS] test_sponsoredUpgradeRequiresExactlyOneTrait() (gas: 1780326)\n[PASS] test_switchingIdmdDoesNotBypassDailyLimit() (gas: 3192030)\nSuite result: ok. 17 passed; 0 failed; 0 skipped; finished in 394.70ms (408.63ms CPU time)\n\nRan 8 tests for test/SepoliaRehearsal.t.sol:SepoliaRehearsalTest\n[PASS] testFuzz_heightBoundIsMonotone(uint64,uint64) (runs: 256, μ: 21009, ~: 20954)\n[PASS] test_catalogBodiesAndHashesStayMainnetAndIgnoreCuratorArgument() (gas: 3035811)\n[PASS] test_directReadsStillUseTheSepoliaCuratorAndIDMD() (gas: 1078460)\n[PASS] test_gameWindowAndDeployBlockNonceRegisterOnSepolia() (gas: 777584)\n[PASS] test_heightBoundCoversMeasuredMainnetHeadsAndAnchor() (gas: 97722)\n[PASS] test_mainnetUsesTheExactDeploymentHeightGuards() (gas: 890202)\n[PASS] test_sepoliaClaimantVerifies701ThroughMockIntake() (gas: 2226434)\n[PASS] test_sepoliaStillRejectsInvalidWindows() (gas: 1247014)\nSuite result: ok. 8 passed; 0 failed; 0 skipped; finished in 610.20ms (627.23ms CPU time)\n\nRan 7 tests for test/Templates.t.sol:TemplatesTest\n[PASS] test_allTenBodiesAreByteExact() (gas: 1457597)\n[PASS] test_allTenQuestionHashesEqualThePlanes() (gas: 2185841)\n[PASS] test_bodyIsDeterministicInClaimantAndDiffersAcrossClaimants() (gas: 464392)\n[PASS] test_directAndUnknownIdsHaveNoBody() (gas: 60713)\n[PASS] test_hexMinAndCatalogWindows() (gas: 147416)\n[PASS] test_sepoliaChangesOnlyConsumerChainAcrossAllTenBodies() (gas: 3075316)\n[PASS] test_traitNamesAndClasses() (gas: 112489)\nSuite result: ok. 7 passed; 0 failed; 0 skipped; finished in 708.20ms (54.29ms CPU time)\n\nRan 24 tests for test/BurnRule.t.sol:BurnRuleTest\n[PASS] testFuzz_belowThresholdRefundsWithoutFee(bool,uint96,uint96) (runs: 256, μ: 1560285, ~: 1547450)\nLogs:\n  Bound result 23264337593543950335\n  Bound result 6195\n\n[PASS] testFuzz_dueForwardsWholeValueAndExecutorForceRefunds(bool,uint96,uint96) (runs: 256, μ: 1829331, ~: 1816220)\nLogs:\n  Bound result 79228162514264337593543950335\n  Bound result 6195\n\n[PASS] testFuzz_dueWithoutEnoughFeeRevertsAtomically(bool,uint96,uint96) (runs: 256, μ: 3238507, ~: 3211359)\nLogs:\n  Bound result 79228162514264337593543950335\n  Bound result 6195\n\n[PASS] testFuzz_failedPreviewOrBridgeSkipsAndRefunds(bool,uint8,uint96) (runs: 256, μ: 1805419, ~: 1597979)\nLogs:\n  Bound result 4\n  Bound result 6195\n\n[PASS] testFuzz_nonpayableContractWorksWithNoValueExactFeeAndSurplus(bool,uint8) (runs: 256, μ: 1938100, ~: 1976404)\nLogs:\n  Bound result 0\n\n[PASS] testFuzz_previewExceedingTheBudgetSkipsWithCodeOneAndRefunds(bool,uint96) (runs: 256, μ: 2165410, ~: 2150697)\nLogs:\n  Bound result 6838\n\n[PASS] testFuzz_quoteAboveCapSkipsWithCodeThree(bool,uint96,uint96) (runs: 256, μ: 1564201, ~: 1551124)\nLogs:\n  Bound result 79228162514264337593543950335\n  Bound result 6195\n\n[PASS] testFuzz_unsetExecutorDisablesBurnAndRefunds(bool,uint96) (runs: 256, μ: 1581671, ~: 1567436)\nLogs:\n  Bound result 7273\n\n[PASS] test_constantsAndStorage() (gas: 29216)\n[PASS] test_constructorRejectsNonzeroExecutorWithoutCodeAndAcceptsZeroOrCode() (gas: 22214)\n[PASS] test_exactFeeAndCapAreInclusive() (gas: 1708610)\n[PASS] test_executorReentryIsGuarded() (gas: 1770521)\n[PASS] test_executorSurplusCallReentryIsGuarded() (gas: 2351890)\n[PASS] test_executorSurplusIsForcedOnARejectingRecipient() (gas: 1984962)\n[PASS] test_existingChecksAndIntakeFailurePrecedeBurnFeeCheck() (gas: 579753)\n[PASS] test_gasArgumentsIncludeOnlyTheValueStipend() (gas: 1694399)\n[PASS] test_noFeeAtExactThresholdReverts() (gas: 1537275)\n[PASS] test_nonpayableContractAcceptsZeroRefundOnPreviewFailure() (gas: 1791339)\n[PASS] test_paidFunctionsRejectOneWeiWhereZeroValueSucceeds() (gas: 3763404)\n[PASS] test_previewUsingMostOfTheBudgetIsQuotedAndBurns() (gas: 2236765)\n[PASS] test_registryRefundReentryIsGuarded() (gas: 2174439)\n[PASS] test_rejectedNonzeroRegistryRefundRevertsAllEffects() (gas: 1949413)\n[PASS] test_zeroQuoteStillTriggersWhenDue() (gas: 1643756)\n[PASS] test_zeroValueHasNoStipend() (gas: 1564856)\nSuite result: ok. 24 passed; 0 failed; 0 skipped; finished in 708.18ms (2.17s CPU time)\n\nRan 8 tests for test/Artifacts.t.sol:ArtifactsTest\n[PASS] test_constructorAcceptsUnavailableCuratorOnEmptyFloor() (gas: 16156)\n[PASS] test_constructorRejectsUnsettledOrUnavailableCurator() (gas: 262986)\n[PASS] test_constructorRejectsZeroAddressesAndStoresTheRest() (gas: 8024)\n[PASS] test_deployScriptUsesMainnetConstantsOnEveryOtherChain() (gas: 60662450)\n[PASS] test_deployScriptUsesSepoliaConstantsAndNonzeroExecutor() (gas: 31208855)\n[PASS] test_noForbiddenOpcodesInRuntime() (gas: 56309448)\n[PASS] test_noImmutableReferencesInAnyArtifact() (gas: 92554609)\n[PASS] test_twoDeploymentsHaveIdenticalRuntimeCode() (gas: 3577724)\nSuite result: ok. 8 passed; 0 failed; 0 skipped; finished in 708.52ms (362.22ms CPU time)\n\nRan 29 tests for test/Registry.t.sol:RegistryTest\n[PASS] test_abandonOnlyAfterFourteenDaysAndStaleCallbackLeavesSuccessor() (gas: 3333466)\n[PASS] test_anyoneReadsAnyWalletAndNothingUsesTxOrigin() (gas: 1943257)\n[PASS] test_attestationForAnotherConsumerOrChainIsNeverAccepted() (gas: 3213846)\n[PASS] test_callbacksRejectEveryoneButTheIntake() (gas: 1630434)\n[PASS] test_claimSponsoredRules() (gas: 5264004)\n[PASS] test_directTraitsAreLiveAndNeedNoCard() (gas: 605974)\n[PASS] test_fuzz_tiersAreMonotone(uint8,bool,uint32,uint128,uint32,uint8) (runs: 256, μ: 710987, ~: 695487)\n[PASS] test_mainnetQuestionAcceptedUnderSepoliaConsumerDomain() (gas: 1726675)\n[PASS] test_mainnetSignatureCannotAnswerSepoliaConsumer() (gas: 1667544)\n[PASS] test_malformedEnvelopeIsNotDeliveredAndStaysPending() (gas: 1561112)\n[PASS] test_mintOncePerWalletAndTransfersKeepClaimant() (gas: 956472)\n[PASS] test_mintWithoutFeeReverts() (gas: 47096)\n[PASS] test_missReasons() (gas: 29440347)\n[PASS] test_noReceiveOrFallback() (gas: 57774)\n[PASS] test_nonMemberIsNeverAnEarlyBird() (gas: 232419)\n[PASS] test_onFailureClearsAndAllowsRetry() (gas: 3006144)\n[PASS] test_onResultGasWorstCase() (gas: 2334293)\nLogs:\n  onResult worst-case gas: 164955\n\n[PASS] test_poolIsTheBalanceAndOnlyLeavesThroughSponsoredRequests() (gas: 5657704)\n[PASS] test_reentrantTokenCannotReenterMint() (gas: 2358744)\n[PASS] test_registerSpecAssignsSequentialIdsAndIsImmutable() (gas: 1231919)\n[PASS] test_sepoliaQuestionMissesWithReasonThreeUnderSepoliaDomain() (gas: 1654372)\n[PASS] test_sharedFactBadEnvelopeIsAMissAndCanBeRequestedAgain() (gas: 6925553)\n[PASS] test_sharedFactFlow() (gas: 2478075)\n[PASS] test_specGuards() (gas: 1337374)\n[PASS] test_strangerCannotDiscardLateValidAnswer() (gas: 1727693)\n[PASS] test_supportsERC4906AndERC721() (gas: 25952)\n[PASS] test_upgradeGuards() (gas: 6034862)\n[PASS] test_upgradeHappyPathMarksTraitAndRefreshesCard() (gas: 2537520)\n[PASS] test_upgradeWithoutCardAttachesToClaimant() (gas: 1895253)\nSuite result: ok. 29 passed; 0 failed; 0 skipped; finished in 708.42ms (347.77ms CPU time)\n\nRan 19 tests for test/Goldens.t.sol:GoldensTest\n[PASS] test_escapeJsonNeutralisesMarkup() (gas: 42645)\n[PASS] test_goldenSyntheticCollector() (gas: 20831323)\n[PASS] test_goldenSyntheticDirect() (gas: 5078827)\n[PASS] test_goldenSyntheticFullhouse() (gas: 21514473)\n[PASS] test_goldenSyntheticHoney() (gas: 23746288)\n[PASS] test_goldenSyntheticNewcomer() (gas: 3219081)\n[PASS] test_goldenSyntheticOracle() (gas: 8915956)\n[PASS] test_goldenSyntheticOutsider() (gas: 5211326)\n[PASS] test_goldenSyntheticWidthThroughTheRenderer() (gas: 24718798)\n[PASS] test_imageCommunityPathFollowsTheStepTable() (gas: 13547491)\n[PASS] test_imageIdsOutsideTheCatalogRenderWithoutReverting() (gas: 763825)\n[PASS] test_imageIsPureAndDeterministic() (gas: 16076101)\n[PASS] test_imageOverflowPathAbsentAtOrBelow39AndNeverOverflows() (gas: 13459611)\n[PASS] test_imageRareDotOnlyAtATopTierRareId() (gas: 17170837)\n[PASS] test_imageRingsByCommunityCount() (gas: 5559349)\n[PASS] test_imageStepsUseExponentiationNotXor() (gas: 6674005)\n[PASS] test_reportRendererRuntimeSize() (gas: 129606)\nLogs:\n  Renderer runtime bytes: 21570\n\n[PASS] test_reportTokenURIGas() (gas: 29841499)\nLogs:\n  tokenURI gas synthetic_width: 10810085\n  tokenURI gas synthetic_fullhouse: 9147472\n  tokenURI gas synthetic_honey: 9589924\n\n[PASS] test_templateArtifactsMatchTheCompiledConstants() (gas: 297819)\nSuite result: ok. 19 passed; 0 failed; 0 skipped; finished in 708.34ms (764.85ms CPU time)\n\nRan 32 tests for test/Adversarial.t.sol:AdversarialTest\n[PASS] test_abandonedSharedFactCanBeRequestedAgainAndTheLateAnswerIsIgnored() (gas: 3063452)\n[PASS] test_attestationForAnotherClaimantIsAMissForThisRequest() (gas: 3244206)\n[PASS] test_attestationForAnotherTraitWithTheSameWindowIsAMiss() (gas: 3247257)\n[PASS] test_callbackStarvedOfGasIsNotDeliveredAndStaysPending() (gas: 1692953)\n[PASS] test_cardShowsAtMostThirtyTwoCommunityIdsAndCountsThemAll() (gas: 86215566)\n[PASS] test_claimSponsoredWhilePendingOrVerifiedReverts() (gas: 2104530)\n[PASS] test_communityT3SpecIsASharedFactWithItsOwnHead() (gas: 2423017)\n[PASS] test_everyTemplateVerifiesUnderTheStipendWithACard() (gas: 11730795)\n[PASS] test_expiryAtTheExactSecondStillPassesAndOneLaterDoesNot() (gas: 3241538)\n[PASS] test_fuzz_abandonedPoolRequestKeepsPoolUsedAndLateCallbackIsIgnored(bool) (runs: 256, μ: 1908256, ~: 1923610)\n[PASS] test_fuzz_anyFieldAlteredAfterSigningIsASignatureMiss(uint8,uint256) (runs: 512, μ: 1653172, ~: 1654654)\nLogs:\n  Bound result 11\n\n[PASS] test_fuzz_applySharedFactOnlyWithinTheHead(uint8,uint8) (runs: 256, μ: 1783357, ~: 1773938)\nLogs:\n  Bound result 15\n  Bound result 12\n\n[PASS] test_fuzz_boolAnswerMustBeExactlyZeroOrOne(uint256) (runs: 512, μ: 2076085, ~: 2075794)\n[PASS] test_fuzz_countAnswerAgainstTheThreshold(uint256,bytes1,bool) (runs: 512, μ: 1656564, ~: 1684969)\n[PASS] test_fuzz_expiryAndClockSkewBoundaries(uint64,uint64) (runs: 512, μ: 1649117, ~: 1641459)\n[PASS] test_fuzz_hasTraitAndTraitsOfNeverRevert(address,uint16,uint8,bool,uint8) (runs: 512, μ: 323226, ~: 333447)\n[PASS] test_fuzz_maximalSpecRegistersComposesAndFitsTheBody(uint8,uint256,uint256) (runs: 64, μ: 2289742, ~: 2509411)\nLogs:\n  Bound result 1\n  Bound result 1403257471684225998596408800179664768521\n\n[PASS] test_fuzz_panelAndQuorumBoundaries(uint16,uint16,uint16) (runs: 512, μ: 1655843, ~: 1640604)\n[PASS] test_fuzz_panelTraitNeedsElevenAndSeven(uint16,uint16,uint16) (runs: 512, μ: 2084769, ~: 2069577)\n[PASS] test_fuzz_specBodyIsDeterministicAndClaimantBound(address,address) (runs: 256, μ: 864577, ~: 864577)\n[PASS] test_fuzz_upgradeChargesExactlyKTimesPriceAndLeavesThePoolAlone(uint8,uint256) (runs: 256, μ: 5515460, ~: 5334129)\nLogs:\n  Bound result 9\n  Bound result 77\n\n[PASS] test_fuzz_upgradeRejectsEveryIdThatIsNotAnOracleTrait(uint16) (runs: 256, μ: 209672, ~: 209246)\n[PASS] test_fuzz_windowMustEqualTheCanonicalOne(uint64,uint64) (runs: 512, μ: 1641000, ~: 1640990)\n[PASS] test_onFailureRecordsWhatItIsToldAndStoresNothing() (gas: 3064198)\n[PASS] test_questionHashIsBoundToTheClaimantAndTheTrait() (gas: 690361)\n[PASS] test_reentrantTokenCannotReenterAnyIMDMovingFunction() (gas: 7517031)\n[PASS] test_sharedFactWorstCaseEnvelopeUnderTheStipend() (gas: 3983876)\n[PASS] test_signatureShapesThatDoNotRecover() (gas: 9338096)\n[PASS] test_tokenURIDependsOnlyOnTheClaimantsFacts() (gas: 14700480)\n[PASS] test_traitClassForEveryCatalogIdAndRevertsForUnknown() (gas: 703103)\n[PASS] test_upgradeSponsoredDrawsAllNineOverNineDaysAndRefusesDuplicates() (gas: 12560682)\n[PASS] test_verifiedWindowIsTheCanonicalWindowForEveryOracleId() (gas: 16465073)\nSuite result: ok. 32 passed; 0 failed; 0 skipped; finished in 708.64ms (6.06s CPU time)\n\nRan 10 tests for test/ReviewChanges.t.sol:ReviewChangesTest\n[PASS] test_fuzz_emptyFixedArgRequiresZeroValueForT1AndT2(uint256) (runs: 256, μ: 3039006, ~: 3038853)\nLogs:\n  Bound result 140000000000000000000\n\n[PASS] test_fuzz_ordinalShowsLowestVerifiedId(uint8) (runs: 256, μ: 4840209, ~: 4866467)\nLogs:\n  Bound result 18\n\n[PASS] test_hugeAnswerClearsUintBoolAndSharedRequestsUnderStipend() (gas: 26379788)\n[PASS] test_hugeSignatureClearsPendingAndAllowsImmediateRetry() (gas: 6838211)\n[PASS] test_metadataReportsMinimaEvenWhenSignedPanelIsLarger() (gas: 6306433)\n[PASS] test_scalarAnswerLengthPrecedesChainSignerAndClaimedType() (gas: 17767584)\n[PASS] test_sharedAnswerUpperBoundPrecedesChainAndSigner() (gas: 4503532)\n[PASS] test_signatureLengthPrecedesAnswerLengthAndChain() (gas: 37652039)\n[PASS] test_unknownRequestStillPrecedesDynamicSizeChecks() (gas: 12871822)\n[PASS] test_validationPrecedenceAfterSizes() (gas: 18086010)\nSuite result: ok. 10 passed; 0 failed; 0 skipped; finished in 708.60ms (1.46s CPU time)\n\nRan 1 test for test/Invariants.t.sol:InvariantsTest\n[PASS]\nInvariantsTest invariants:\n[PASS] invariant_oneCardPerClaimantWithImmutableClaimant\n[PASS] invariant_poolOnlyLeavesThroughSponsoredRequests\n InvariantsTest invariants (runs: 256, calls: 16384, reverts: 0)\n\n╭----------+-------------------+-------+---------+----------╮\n| Contract | Selector          | Calls | Reverts | Discards |\n+===========================================================+\n| Handler  | claimSponsored    | 3304  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | mintCard          | 3250  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | sponsor           | 3344  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | transfer          | 3288  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | upgradeAndDeliver | 3198  | 0       | 0        |\n╰----------+-------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 862960809356412583\n  Bound result 1718674333304525371\n  Bound result 7791\n  Bound result 1301309790610393076\n  Bound result 8711\n  Bound result 2110264290\n  Bound result 759540257514102298\n  Bound result 488713551637545690\n  Bound result 73908485519737660\n  Bound result 2245\n  Bound result 735\n  Bound result 100000000000001048\n  Bound result 17169\n  Bound result 22196\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 9.65s (9.64s CPU time)\n\nRan 1 test for test/BurnInvariant.t.sol:BurnInvariantTest\n[PASS] invariant_registryRetainsNoClaimETHAndPoolOnlyFundsOracleRequests() (runs: 256, calls: 16384, reverts: 0)\n\n╭-------------+----------+-------+---------+----------╮\n| Contract    | Selector | Calls | Reverts | Discards |\n+=====================================================+\n| BurnHandler | claim    | 16384 | 0       | 0        |\n╰-------------+----------+-------+---------+----------╯\n\nLogs:\n  Bound result 800825\n  Bound result 8367751828660634\n  Bound result 4150096236033\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 2079\n  Bound result 340\n  Bound result 4740\n  Bound result 3238\n  Bound result 20547\n  Bound result 2925\n  Bound result 4463\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 2346063465569151\n  Bound result 150028186787124501\n  Bound result 431\n  Bound result 31922803\n  Bound result 8003\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 4\n  Bound result 7796\n  Bound result 4506664694523131\n  Bound result 74264337592978034889\n  Bound result 4715\n  Bound result 3681618466894064\n  Bound result 385\n  Bound result 20614\n  Bound result 4333632135824622\n  Bound result 23318\n  Bound result 893088943771720\n  Bound result 9675128872439518\n  Bound result 74264337592978034889\n  Bound result 7037093405242783\n  Bound result 8846061162513367\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 11901\n  Bound result 92804874252825\n  Bound result 3566198455\n  Bound result 13776835787051427\n  Bound result 74264337592978034889\n  Bound result 18714\n  Bound result 18738\n  Bound result 3519\n  Bound result 70273161562\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 5437\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 2613059034572768\n  Bound result 578\n  Bound result 29508839362007\n  Bound result 0\n  Bound result 43\n  Bound result 74264337592978034889\n  Bound result 2557\n  Bound result 4333632135824622\n  Bound result 17057\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 3319092338\n  Bound result 23149\n  Bound result 74264337592978034889\n  Bound result 2325\n  Bound result 4486944648393451\n  Bound result 23477\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 66650180051189776015\n  Bound result 1771\n  Bound result 3157\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 11265492500686375\n  Bound result 33267297523910874284\n  Bound result 2765722658759826\n  Bound result 6732159499091929\n  Bound result 12190772\n  Bound result 4329670727698908\n  Bound result 4333632135824620\n  Bound result 74264337592978034886\n  Bound result 1\n  Bound result 934317929031153\n  Bound result 36261029803722317750\n  Bound result 8406030304107086\n  Bound result 3583294\n  Bound result 74264337592978034889\n  Bound result 3432975794\n  Bound result 4333632135824622\n  Bound result 3834\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 646\n  Bound result 1209\n  Bound result 3967804813595340\n  Bound result 9024\n  Bound result 19486\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 15031\n  Bound result 7622953260471241\n  Bound result 16609\n  Bound result 16558\n  Bound result 1048592\n  Bound result 15284\n  Bound result 73489460551352745554\n  Bound result 4329670727698907\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 7002\n  Bound result 4333632135824622\n  Bound result 9425141646\n  Bound result 8871716810841816\n  Bound result 3012243814761864\n  Bound result 111056049307915099851\n  Bound result 13005\n  Bound result 4333632135824622\n  Bound result 22184\n  Bound result 4329670727698909\n  Bound result 14754423063234709\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 8659\n  Bound result 999999999999999\n  Bound result 6654\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 4058953370160397\n  Bound result 13198228636259327\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 5754\n  Bound result 3102\n  Bound result 175344265\n  Bound result 17060557136498273\n  Bound result 74264337592978034889\n  Bound result 1048597\n  Bound result 4333632135824622\n  Bound result 3577\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 9999999999997900\n  Bound result 7150759580767251\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 434843981399657\n  Bound result 74264337592978034889\n  Bound result 6995\n  Bound result 4333632135824622\n  Bound result 76679632464750881998\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 14754423063234701\n  Bound result 74264337592978034889\n  Bound result 1125\n  Bound result 4333632135824622\n  Bound result 64521212152417608851\n  Bound result 4814907602518271\n  Bound result 4333632135824622\n  Bound result 3902\n  Bound result 4329670727698909\n  Bound result 8905\n  Bound result 82725321153823228846\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 10619\n  Bound result 7192223893651763\n  Bound result 3792478066\n  Bound result 134499999999999999994\n  Bound result 4329670727698909\n  Bound result 490\n  Bound result 28196865638843447168\n  Bound result 4329670727698909\n  Bound result 20\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 19.87s (19.87s CPU time)\n\nRan 3 tests for test/InvariantsExtended.t.sol:InvariantsExtendedTest\n[PASS]\nInvariantsExtendedTest invariants:\n[PASS] invariant_markedExactlyWhenAPassingAttestationWasDelivered\n[PASS] invariant_oneCardPerClaimant\n[PASS] invariant_poolDailyAndLifetimeLimits\n[PASS] invariant_poolIsFeesPlusDonationsMinusSponsoredRequests\n[PASS] invariant_sharedFactsAreHashesStoredOnlyOnDelivery\n[PASS] invariant_specsAreImmutable\n InvariantsExtendedTest invariants (runs: 96, calls: 4608, reverts: 0)\n\n╭-------------+-------------------+-------+---------+----------╮\n| Contract    | Selector          | Calls | Reverts | Discards |\n+==============================================================+\n| FullHandler | abandonLate       | 270   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | advanceTime       | 264   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | applyShared       | 258   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | claimSponsored    | 238   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | deliverFalse      | 274   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | deliverTampered   | 275   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | deliverTrue       | 278   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | donate            | 255   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | failRequest       | 306   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | mintCard          | 253   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | registerSpec      | 282   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | replayConsumed    | 252   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | requestSharedFact | 269   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | sponsor           | 278   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | transfer          | 291   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | upgradePaid       | 290   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | upgradeSponsored  | 275   | 0       | 0        |\n╰-------------+-------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 5\n  Bound result 38\n  Bound result 13\n  Bound result 4\n  Bound result 14608\n  Bound result 15181\n  Bound result 3\n  Bound result 9024\n  Bound result 1\n  Bound result 300000003208537450\n  Bound result 1286166156\n  Bound result 2\n  Bound result 3469\n  Bound result 9592\n  Bound result 1\n  Bound result 4\n  Bound result 724319285909387770\n  Bound result 2\n  Bound result 535380015475851747\n  Bound result 1571829222943430369\n  Bound result 11440\n\n[PASS] test_handlerReplayOfAConsumedIdChangesNothing() (gas: 1920763)\n[PASS] test_handlerSponsoredSelectionAcceptsMaxSeed() (gas: 1764003)\nLogs:\n  Bound result 3000000000000000000\n\nSuite result: ok. 3 passed; 0 failed; 0 skipped; finished in 23.44s (23.44s CPU time)\n\nRan 19 test suites in 23.45s (59.37s CPU time): 183 tests passed, 0 failed, 17 skipped (200 total tests)\n","passed":true},{"durationMs":554,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"Registry.abandon(bytes32)\",\"Registry.applySharedFact(uint16,address[])\",\"Registry.approve(address,uint256)\",\"Registry.claimSponsored(uint16)\",\"Registry.mintCard()\",\"Registry.onFailure(bytes32,uint8,bytes32,uint16,uint16,bytes)\",\"Registry.onResult(bytes32,(bytes32,uint256,bytes32,uint8,bytes,uint256,uint64,uint64,bytes32,bytes32,uint16,uint16,uint16,uint64,uint64),bytes)\",\"Registry.registerSpec((uint8,address,string,string,string,uint256,string,uint8,uint256,uint64,uint64,string))\",\"Registry.requestSharedFact(uint16,uint256)\",\"Registry.safeTransferFrom(address,address,uint256)\",\"Registry.safeTransferFrom(address,address,uint256,bytes)\",\"Registry.setApprovalForAll(address,bool)\",\"Registry.sponsor(uint256)\",\"Registry.transferFrom(address,address,uint256)\",\"Registry.upgrade(uint16[],uint256)\",\"Registry.upgradeSponsored(uint256,uint16[])\"],\"files\":{\".gitignore\":8,\".gitmodules\":6,\"ADAPTATION.md\":55,\"CATALOG.md\":268,\"CONCEPT.md\":262,\"DISCLOSURE.md\":58,\"INTEGRATION.md\":467,\"LICENSE\":21,\"README.md\":439,\"TEMPLATES.md\":158,\"foundry.toml\":44,\"reference/Intake.sol\":5175,\"reference/IntakeV2.sol\":5240,\"reference/PROVENANCE.md\":44,\"reference/abi/IMD.json\":1684,\"reference/abi/IdentityMD.json\":894,\"reference/abi/Intake.json\":955,\"reference/abi/IntakeV2.json\":1070,\"reference/abi/WhitelistCurator.json\":794,\"reference/anchors/headers.json\":61,\"reference/attestations/2026-10-10-link-pilot.json\":92,\"reference/attestations/2026-10-10-meatbag-consumer.json\":104,\"reference/attestations/2026-10-11-feed-consumer-v2.json\":105,\"reference/attestations/2026-10-11-nonce-false.json\":92,\"reference/attestations/2026-10-11-nonce-true.json\":92,\"reference/attestations/README.md\":29,\"reference/burn/BurnExecutorV2.sol.txt\":314,\"reference/burn/abi.json\":1001,\"reference/burn/provenance.json\":17,\"reference/intake/completions.json\":147,\"reference/list-record/src/ListRecord.sol\":169,\"reference/list-record/src/ListRecordRenderer.sol\":126,\"reference/list-record/src/interfaces/IListRecordRenderer.sol\":29,\"reference/list-record/src/lib/SSTORE2.sol\":39,\"reference/list-record/src/lib/Str.sol\":54,\"reference/list-record/test/Renderer.t.sol\":165,\"reference/list-record/test/RendererMechanism.t.sol\":203,\"reference/list-record/test/Template.t.sol\":293,\"reference/list-record/test/fixtures/golden_synthetic_held_svg.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_held_uri.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_transferred_svg.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_transferred_uri.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_width_svg.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_width_uri.txt\":1,\"reference/plane/checks/1001-hour-savior.json\":81,\"reference/plane/checks/1102-ordinal-1000.json\":81,\"reference/plane/checks/1105-first-thousand.json\":81,\"reference/plane/checks/1201-top-32.json\":82,\"reference/plane/checks/1301-not-born-yesterday.json\":86,\"reference/plane/checks/701-still-here.json\":81,\"reference/plane/checks/801-last-stand.json\":81,\"reference/plane/checks/T2-log-sum-composed.json\":81,\"reference/plane/checks/T4-call-compare-reference.json\":81,\"reference/plane/checks/T5-community-composed.json\":86,\"reference/plane/questionHashes.json\":92,\"reference/plane/quotes/1001-hour-savior.json\":20,\"reference/plane/quotes/1102-ordinal-1000.json\":20,\"reference/plane/quotes/1105-first-thousand.json\":20,\"reference/plane/quotes/1201-top-32.json\":20,\"reference/plane/quotes/1301-not-born-yesterday.json\":20,\"reference/plane/quotes/701-still-here.json\":20,\"reference/plane/quotes/801-last-stand.json\":20,\"reference/plane/quotes/T2-log-sum-composed.json\":20,\"reference/plane/quotes/T4-call-compare-reference.json\":20,\"reference/plane/quotes/T5-community-composed.json\":20,\"remappings.txt\":2,\"script/Deploy.s.sol\":48,\"src/Composer.sol\":636,\"src/HiveData.sol\":75,\"src/Registry.sol\":761,\"src/Renderer.sol\":427,\"src/TemplateData.sol\":16,\"src/Types.sol\":41,\"src/interfaces/IBurnExecutor.sol\":12,\"src/interfaces/IIDMD.sol\":8,\"src/interfaces/IIntake.sol\":29,\"src/interfaces/IOracleConsumer.sol\":38,\"src/interfaces/IWhitelistCurator.sol\":53,\"template/blob.hex\":1,\"template/offsets.txt\":1,\"templates/fixtures/1001-hour-savior.json\":22,\"templates/fixtures/1102-ordinal-1000.json\":22,\"templates/fixtures/1105-first-thousand.json\":22,\"templates/fixtures/1201-top-32.json\":22,\"templates/fixtures/1301-not-born-yesterday.json\":24,\"templates/fixtures/701-still-here.json\":22,\"templates/fixtures/801-last-stand.json\":22,\"templates/fixtures/T2-log-sum-composed.json\":23,\"templates/fixtures/T4-call-compare-reference.json\":21,\"templates/fixtures/T5-community-composed.json\":24,\"test/.gitkeep\":0,\"test/Adversarial.t.sol\":832,\"test/Artifacts.t.sol\":209,\"test/Attestations.t.sol\":196,\"test/Base.t.sol\":158,\"test/BurnInvariant.t.sol\":120,\"test/BurnRule.t.sol\":405,\"test/Floor.t.sol\":134,\"test/Goldens.t.sol\":444,\"test/Invariants.t.sol\":124,\"test/InvariantsExtended.t.sol\":520,\"test/LaunchManifest.t.sol\":36,\"test/NOTES.md\":582,\"test/ReReview.t.sol\":263,\"test/Registry.t.sol\":822,\"test/RegistryRules.t.sol\":335,\"test/Rename.t.sol\":224,\"test/ReviewChanges.t.sol\":215,\"test/SepoliaRehearsal.t.sol\":249,\"test/Templates.t.sol\":171,\"test/fixtures/golden_synthetic_collector_preimage.txt\":1,\"test/fixtures/golden_synthetic_collector_svg.txt\":1,\"test/fixtures/golden_synthetic_collector_uri.txt\":1,\"test/fixtures/golden_synthetic_direct_preimage.txt\":1,\"test/fixtures/golden_synthetic_direct_svg.txt\":1,\"test/fixtures/golden_synthetic_direct_uri.txt\":1,\"test/fixtures/golden_synthetic_fullhouse_preimage.txt\":1,\"test/fixtures/golden_synthetic_fullhouse_svg.txt\":1,\"test/fixtures/golden_synthetic_fullhouse_uri.txt\":1,\"test/fixtures/golden_synthetic_honey_preimage.txt\":1,\"test/fixtures/golden_synthetic_honey_svg.txt\":1,\"test/fixtures/golden_synthetic_honey_uri.txt\":1,\"test/fixtures/golden_synthetic_newcomer_preimage.txt\":1,\"test/fixtures/golden_synthetic_newcomer_svg.txt\":1,\"test/fixtures/golden_synthetic_newcomer_uri.txt\":1,\"test/fixtures/golden_synthetic_oracle_preimage.txt\":1,\"test/fixtures/golden_synthetic_oracle_svg.txt\":1,\"test/fixtures/golden_synthetic_oracle_uri.txt\":1,\"test/fixtures/golden_synthetic_outsider_preimage.txt\":1,\"test/fixtures/golden_synthetic_outsider_svg.txt\":1,\"test/fixtures/golden_synthetic_outsider_uri.txt\":1,\"test/fixtures/golden_synthetic_width_preimage.txt\":1,\"test/fixtures/golden_synthetic_width_svg.txt\":1,\"test/fixtures/golden_synthetic_width_uri.txt\":1,\"test/fork/BurnRule.fork.t.sol\":193,\"test/fork/Mainnet.fork.t.sol\":338,\"test/mocks/MockBurnExecutor.sol\":157,\"test/mocks/Mocks.sol\":231,\"tools/gen_template.py\":898,\"tools/test_gen_template.py\":334},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"bda41d37d69f573e09c62725692a1319e018e19d5f29065f54aca33bb2b45d66","verifiedTreeHash":"53593acf8d4b95bfac33f2c83beb9c826b139f4f","verifierVersion":"0.1.0+c3fba9eb"},{"checks":[{"durationMs":36713,"exitCode":0,"name":"build","output":"Compiling 85 files with Solc 0.8.24\nSolc 0.8.24 finished in 35.75s\nCompiler run successful with warnings:\nWarning (5159): \"selfdestruct\" has been deprecated. Note that, starting from the Cancun hard fork, the underlying opcode no longer deletes the code and data associated with an account and only transfers its Ether to the beneficiary, unless executed in the same transaction in which the contract was created (see EIP-6780). Any use in newly deployed contracts is strongly discouraged even if the new behavior is taken into account. Future changes to the EVM might further reduce the functionality of the opcode.\n  --> test/mocks/MockBurnExecutor.sol:10:9:\n   |\n10 |         selfdestruct(payable(to));\n   |         ^^^^^^^^^^^^\n\nWarning (2018): Function state mutability can be restricted to pure\n  --> test/Goldens.t.sol:67:5:\n   |\n67 |     function _widthCard() internal view returns (Card memory c) {\n   |     ^ (Relevant source part starts here and spans across multiple lines).\n\nWarning (2018): Function state mutability can be restricted to pure\n   --> test/Goldens.t.sol:345:5:\n    |\n345 |     function _card(\n    |     ^ (Relevant source part starts here and spans across multiple lines).\n\n","passed":true},{"durationMs":23939,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 6 tests for test/fork/BurnRule.fork.t.sol:BurnRuleForkTest\n[SKIP] test_fork_coldFreeClaimExactFeeFromNonpayableContractClaimant() (gas: 0)\n[SKIP] test_fork_coldFreeClaimWithSurplusBurnsAndExecutorReturnsTheSurplus() (gas: 0)\n[SKIP] test_fork_coldFreeClaimWithoutTheFeeReverts() (gas: 0)\n[SKIP] test_fork_executorConfigurationAndPinnedQuote() (gas: 0)\n[SKIP] test_fork_realExecutorAndOFTForceRefundSurplusToNonpayableRecipient() (gas: 0)\n[SKIP] test_fork_realExecutorExactFeeForNonpayableRecipient() (gas: 0)\nSuite result: ok. 0 passed; 0 failed; 6 skipped; finished in 876.14µs (794.89µs CPU time)\n\nRan 11 tests for test/fork/Mainnet.fork.t.sol:MainnetForkTest\n[SKIP] test_fork_attestationSignedForAnotherConsumerMissesOnTheRealIntake() (gas: 0)\n[SKIP] test_fork_curatorIsSettledWithTheBriefsConstants() (gas: 0)\n[SKIP] test_fork_firstContributorIsAnHourZeroEarlyBird() (gas: 0)\n[SKIP] test_fork_intakeV2SellsTheActionAsTheBriefRecords() (gas: 0)\n[SKIP] test_fork_lastContributorIsNoEarlyBird() (gas: 0)\n[SKIP] test_fork_memberMintsAndRendersAgainstTheRealCurator() (gas: 0)\n[SKIP] test_fork_nonMemberReadsZeroFalseAndHasNoCuratorTrait() (gas: 0)\n[SKIP] test_fork_operatorTraitReadsTheRealCollectionAndGuardsZero() (gas: 0)\n[SKIP] test_fork_pinnedBlockIsTheOneRecorded() (gas: 0)\n[SKIP] test_fork_thousandthContributorJoinedInsideTheFirstThousandWindow() (gas: 0)\n[SKIP] test_fork_upgradeThroughTheRealIntakeThenCompleteFromTheWriter() (gas: 0)\nSuite result: ok. 0 passed; 0 failed; 11 skipped; finished in 730.08µs (492.06µs CPU time)\n\nRan 1 test for test/LaunchManifest.t.sol:LaunchManifestTest\n[PASS] test_launchOrderAndArgumentsDeployOnEmptyChain() (gas: 89847)\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 1.14ms (918.98µs CPU time)\n\nRan 8 tests for test/SepoliaRehearsal.t.sol:SepoliaRehearsalTest\n[PASS] testFuzz_heightBoundIsMonotone(uint64,uint64) (runs: 256, μ: 21009, ~: 20954)\n[PASS] test_catalogBodiesAndHashesStayMainnetAndIgnoreCuratorArgument() (gas: 3035811)\n[PASS] test_directReadsStillUseTheSepoliaCuratorAndIDMD() (gas: 1078460)\n[PASS] test_gameWindowAndDeployBlockNonceRegisterOnSepolia() (gas: 777584)\n[PASS] test_heightBoundCoversMeasuredMainnetHeadsAndAnchor() (gas: 97722)\n[PASS] test_mainnetUsesTheExactDeploymentHeightGuards() (gas: 890202)\n[PASS] test_sepoliaClaimantVerifies701ThroughMockIntake() (gas: 2226434)\n[PASS] test_sepoliaStillRejectsInvalidWindows() (gas: 1247014)\nSuite result: ok. 8 passed; 0 failed; 0 skipped; finished in 21.67ms (23.53ms CPU time)\n\nRan 8 tests for test/Rename.t.sol:RenameTest\n[PASS] test_catalogSpecNamesMatchTheTable() (gas: 496540)\n[PASS] test_collectionNameAndSymbol() (gas: 25005)\n[PASS] test_composerStaysUnderTheSizeLimitWithHeadroom() (gas: 13473)\n[PASS] test_metadataCarriesTheFinalFamilyNames() (gas: 3753529)\n[PASS] test_nameTableIsTheFinalTable() (gas: 609580)\n[PASS] test_noWorkingNameSurvivesInTheNameTable() (gas: 1060323)\n[PASS] test_unknownIdHasNoName() (gas: 25179)\n[PASS] test_upgradeRefusesTopWeightsAsASharedFact() (gas: 1641444)\nSuite result: ok. 8 passed; 0 failed; 0 skipped; finished in 28.92ms (26.53ms CPU time)\n\nRan 7 tests for test/Templates.t.sol:TemplatesTest\n[PASS] test_allTenBodiesAreByteExact() (gas: 1457597)\n[PASS] test_allTenQuestionHashesEqualThePlanes() (gas: 2185841)\n[PASS] test_bodyIsDeterministicInClaimantAndDiffersAcrossClaimants() (gas: 464392)\n[PASS] test_directAndUnknownIdsHaveNoBody() (gas: 60713)\n[PASS] test_hexMinAndCatalogWindows() (gas: 147416)\n[PASS] test_sepoliaChangesOnlyConsumerChainAcrossAllTenBodies() (gas: 3075316)\n[PASS] test_traitNamesAndClasses() (gas: 112489)\nSuite result: ok. 7 passed; 0 failed; 0 skipped; finished in 40.26ms (36.30ms CPU time)\n\nRan 10 tests for test/ReReview.t.sol:ReReviewTest\n[PASS] test_coldGas_firstCommunityVerificationWithACard() (gas: 2415584)\nLogs:\n  cold onResult gas, first community verification with a card: 133357\n\n[PASS] test_coldGas_sharedFact64Catalog() (gas: 1740251)\nLogs:\n  cold onResult gas, 64-address shared fact (catalog 1201): 164088\n\n[PASS] test_coldGas_sharedFact64Community() (gas: 2108985)\nLogs:\n  cold onResult gas, 64-address shared fact (community T3): 170446\n\n[PASS] test_communityAttributesAppearOnlyForVerifiedSpecs() (gas: 4751043)\n[PASS] test_constructorReadsIsSettledWithoutWriting() (gas: 137310)\n[PASS] test_hugeSignatureOnCommunitySharedFactAndCardRequestClearsUnderStipend() (gas: 12243108)\n[PASS] test_lowerOrdinalAcquiredLaterReplacesTheHigherOne() (gas: 8479122)\n[PASS] test_sameSignedEvidenceSatisfiesAnotherRequestWithTheSameQuestion() (gas: 3262910)\n[PASS] test_specIdsEndAt65534() (gas: 909597)\n[PASS] test_unusedFixedValIsRefusedAndAnEmptyFilterIsNotSerialised() (gas: 1334489)\nSuite result: ok. 10 passed; 0 failed; 0 skipped; finished in 116.46ms (54.98ms CPU time)\n\nRan 3 tests for test/Attestations.t.sol:AttestationsTest\n[PASS] test_allFiveRecoverTheAttesterUnderTheirOwnDomainOnly() (gas: 5269883)\n[PASS] test_loaderRejectsUnknownAnswerTypeNames() (gas: 4845)\n[PASS] test_protocolVectorDigestAndSelector() (gas: 2162970)\nSuite result: ok. 3 passed; 0 failed; 0 skipped; finished in 211.08ms (11.53ms CPU time)\n\nRan 2 tests for test/Floor.t.sol:FloorTest\n[PASS] test_mainnetEmptyChainFloor() (gas: 72687056)\n[PASS] test_sepoliaEmptyChainFloor() (gas: 72687024)\nSuite result: ok. 2 passed; 0 failed; 0 skipped; finished in 287.95ms (351.83ms CPU time)\n\nRan 29 tests for test/Registry.t.sol:RegistryTest\n[PASS] test_abandonOnlyAfterFourteenDaysAndStaleCallbackLeavesSuccessor() (gas: 3333466)\n[PASS] test_anyoneReadsAnyWalletAndNothingUsesTxOrigin() (gas: 1943257)\n[PASS] test_attestationForAnotherConsumerOrChainIsNeverAccepted() (gas: 3213846)\n[PASS] test_callbacksRejectEveryoneButTheIntake() (gas: 1630434)\n[PASS] test_claimSponsoredRules() (gas: 5264004)\n[PASS] test_directTraitsAreLiveAndNeedNoCard() (gas: 605974)\n[PASS] test_fuzz_tiersAreMonotone(uint8,bool,uint32,uint128,uint32,uint8) (runs: 256, μ: 710987, ~: 695487)\n[PASS] test_mainnetQuestionAcceptedUnderSepoliaConsumerDomain() (gas: 1726675)\n[PASS] test_mainnetSignatureCannotAnswerSepoliaConsumer() (gas: 1667544)\n[PASS] test_malformedEnvelopeIsNotDeliveredAndStaysPending() (gas: 1561112)\n[PASS] test_mintOncePerWalletAndTransfersKeepClaimant() (gas: 956472)\n[PASS] test_mintWithoutFeeReverts() (gas: 47096)\n[PASS] test_missReasons() (gas: 29440347)\n[PASS] test_noReceiveOrFallback() (gas: 57774)\n[PASS] test_nonMemberIsNeverAnEarlyBird() (gas: 232419)\n[PASS] test_onFailureClearsAndAllowsRetry() (gas: 3006144)\n[PASS] test_onResultGasWorstCase() (gas: 2334293)\nLogs:\n  onResult worst-case gas: 164955\n\n[PASS] test_poolIsTheBalanceAndOnlyLeavesThroughSponsoredRequests() (gas: 5657704)\n[PASS] test_reentrantTokenCannotReenterMint() (gas: 2358744)\n[PASS] test_registerSpecAssignsSequentialIdsAndIsImmutable() (gas: 1231919)\n[PASS] test_sepoliaQuestionMissesWithReasonThreeUnderSepoliaDomain() (gas: 1654372)\n[PASS] test_sharedFactBadEnvelopeIsAMissAndCanBeRequestedAgain() (gas: 6925553)\n[PASS] test_sharedFactFlow() (gas: 2478075)\n[PASS] test_specGuards() (gas: 1337374)\n[PASS] test_strangerCannotDiscardLateValidAnswer() (gas: 1727693)\n[PASS] test_supportsERC4906AndERC721() (gas: 25952)\n[PASS] test_upgradeGuards() (gas: 6034862)\n[PASS] test_upgradeHappyPathMarksTraitAndRefreshesCard() (gas: 2537520)\n[PASS] test_upgradeWithoutCardAttachesToClaimant() (gas: 1895253)\nSuite result: ok. 29 passed; 0 failed; 0 skipped; finished in 519.47ms (173.89ms CPU time)\n\nRan 17 tests for test/RegistryRules.t.sol:RegistryRulesTest\n[PASS] test_constructorPriceCheckIsPassiveAndAcceptsAnyNonzeroPrice() (gas: 147502)\n[PASS] test_constructorRejectsEachSingleMistypedDependency() (gas: 19912)\n[PASS] test_constructorRejectsPartiallyCodedDependencyFloor() (gas: 19824)\n[PASS] test_constructorRejectsUnavailableIntake() (gas: 26489)\n[PASS] test_constructorRejectsWrongAsset() (gas: 548859)\n[PASS] test_constructorRejectsZeroIntakePrice() (gas: 42182)\n[PASS] test_fuzz_bothPoolPathsShareOneAllowancePerUtcDay(bool,bool,uint32) (runs: 256, μ: 3246789, ~: 3269983)\nLogs:\n  Bound result 23294\n\n[PASS] test_idmdCounterFollowsTransfersAndStopsAtNine() (gas: 15434120)\n[PASS] test_idmdHolderMustAlsoBeAListMember() (gas: 1763951)\n[PASS] test_memberClaimsOnDeploymentDayWithoutCardOrIdmd() (gas: 1675022)\n[PASS] test_noVerdictConsumesTheDayAndLifetimePair() (gas: 3269502)\n[PASS] test_paidUpgradeAndSharedFactDoNotUseOrObeyPoolDailyLimit() (gas: 8189294)\n[PASS] test_revertingIntakeDoesNotConsumePoolAllowances() (gas: 2028592)\n[PASS] test_specAndFirstClaimCostSixPointNineIMD() (gas: 1880817)\n[PASS] test_specRequiresFullFeeAndAllowance() (gas: 798883)\n[PASS] test_sponsoredUpgradeRequiresExactlyOneTrait() (gas: 1780326)\n[PASS] test_switchingIdmdDoesNotBypassDailyLimit() (gas: 3192030)\nSuite result: ok. 17 passed; 0 failed; 0 skipped; finished in 639.72ms (294.51ms CPU time)\n\nRan 19 tests for test/Goldens.t.sol:GoldensTest\n[PASS] test_escapeJsonNeutralisesMarkup() (gas: 42645)\n[PASS] test_goldenSyntheticCollector() (gas: 20831323)\n[PASS] test_goldenSyntheticDirect() (gas: 5078827)\n[PASS] test_goldenSyntheticFullhouse() (gas: 21514473)\n[PASS] test_goldenSyntheticHoney() (gas: 23746288)\n[PASS] test_goldenSyntheticNewcomer() (gas: 3219081)\n[PASS] test_goldenSyntheticOracle() (gas: 8915956)\n[PASS] test_goldenSyntheticOutsider() (gas: 5211326)\n[PASS] test_goldenSyntheticWidthThroughTheRenderer() (gas: 24718798)\n[PASS] test_imageCommunityPathFollowsTheStepTable() (gas: 13547491)\n[PASS] test_imageIdsOutsideTheCatalogRenderWithoutReverting() (gas: 763825)\n[PASS] test_imageIsPureAndDeterministic() (gas: 16076101)\n[PASS] test_imageOverflowPathAbsentAtOrBelow39AndNeverOverflows() (gas: 13459611)\n[PASS] test_imageRareDotOnlyAtATopTierRareId() (gas: 17170837)\n[PASS] test_imageRingsByCommunityCount() (gas: 5559349)\n[PASS] test_imageStepsUseExponentiationNotXor() (gas: 6674005)\n[PASS] test_reportRendererRuntimeSize() (gas: 129606)\nLogs:\n  Renderer runtime bytes: 21570\n\n[PASS] test_reportTokenURIGas() (gas: 29841499)\nLogs:\n  tokenURI gas synthetic_width: 10810085\n  tokenURI gas synthetic_fullhouse: 9147472\n  tokenURI gas synthetic_honey: 9589924\n\n[PASS] test_templateArtifactsMatchTheCompiledConstants() (gas: 297819)\nSuite result: ok. 19 passed; 0 failed; 0 skipped; finished in 662.67ms (792.91ms CPU time)\n\nRan 24 tests for test/BurnRule.t.sol:BurnRuleTest\n[PASS] testFuzz_belowThresholdRefundsWithoutFee(bool,uint96,uint96) (runs: 256, μ: 1560285, ~: 1547450)\nLogs:\n  Bound result 23264337593543950335\n  Bound result 6195\n\n[PASS] testFuzz_dueForwardsWholeValueAndExecutorForceRefunds(bool,uint96,uint96) (runs: 256, μ: 1829331, ~: 1816220)\nLogs:\n  Bound result 79228162514264337593543950335\n  Bound result 6195\n\n[PASS] testFuzz_dueWithoutEnoughFeeRevertsAtomically(bool,uint96,uint96) (runs: 256, μ: 3238507, ~: 3211359)\nLogs:\n  Bound result 79228162514264337593543950335\n  Bound result 6195\n\n[PASS] testFuzz_failedPreviewOrBridgeSkipsAndRefunds(bool,uint8,uint96) (runs: 256, μ: 1805419, ~: 1597979)\nLogs:\n  Bound result 4\n  Bound result 6195\n\n[PASS] testFuzz_nonpayableContractWorksWithNoValueExactFeeAndSurplus(bool,uint8) (runs: 256, μ: 1938100, ~: 1976404)\nLogs:\n  Bound result 0\n\n[PASS] testFuzz_previewExceedingTheBudgetSkipsWithCodeOneAndRefunds(bool,uint96) (runs: 256, μ: 2165410, ~: 2150697)\nLogs:\n  Bound result 6838\n\n[PASS] testFuzz_quoteAboveCapSkipsWithCodeThree(bool,uint96,uint96) (runs: 256, μ: 1564201, ~: 1551124)\nLogs:\n  Bound result 79228162514264337593543950335\n  Bound result 6195\n\n[PASS] testFuzz_unsetExecutorDisablesBurnAndRefunds(bool,uint96) (runs: 256, μ: 1581671, ~: 1567436)\nLogs:\n  Bound result 4\n\n[PASS] test_constantsAndStorage() (gas: 29216)\n[PASS] test_constructorRejectsNonzeroExecutorWithoutCodeAndAcceptsZeroOrCode() (gas: 22214)\n[PASS] test_exactFeeAndCapAreInclusive() (gas: 1708610)\n[PASS] test_executorReentryIsGuarded() (gas: 1770521)\n[PASS] test_executorSurplusCallReentryIsGuarded() (gas: 2351890)\n[PASS] test_executorSurplusIsForcedOnARejectingRecipient() (gas: 1984962)\n[PASS] test_existingChecksAndIntakeFailurePrecedeBurnFeeCheck() (gas: 579753)\n[PASS] test_gasArgumentsIncludeOnlyTheValueStipend() (gas: 1694399)\n[PASS] test_noFeeAtExactThresholdReverts() (gas: 1537275)\n[PASS] test_nonpayableContractAcceptsZeroRefundOnPreviewFailure() (gas: 1791339)\n[PASS] test_paidFunctionsRejectOneWeiWhereZeroValueSucceeds() (gas: 3763404)\n[PASS] test_previewUsingMostOfTheBudgetIsQuotedAndBurns() (gas: 2236765)\n[PASS] test_registryRefundReentryIsGuarded() (gas: 2174439)\n[PASS] test_rejectedNonzeroRegistryRefundRevertsAllEffects() (gas: 1949413)\n[PASS] test_zeroQuoteStillTriggersWhenDue() (gas: 1643756)\n[PASS] test_zeroValueHasNoStipend() (gas: 1564856)\nSuite result: ok. 24 passed; 0 failed; 0 skipped; finished in 662.79ms (2.42s CPU time)\n\nRan 8 tests for test/Artifacts.t.sol:ArtifactsTest\n[PASS] test_constructorAcceptsUnavailableCuratorOnEmptyFloor() (gas: 16156)\n[PASS] test_constructorRejectsUnsettledOrUnavailableCurator() (gas: 262986)\n[PASS] test_constructorRejectsZeroAddressesAndStoresTheRest() (gas: 8024)\n[PASS] test_deployScriptUsesMainnetConstantsOnEveryOtherChain() (gas: 60662450)\n[PASS] test_deployScriptUsesSepoliaConstantsAndNonzeroExecutor() (gas: 31208855)\n[PASS] test_noForbiddenOpcodesInRuntime() (gas: 56309448)\n[PASS] test_noImmutableReferencesInAnyArtifact() (gas: 92554609)\n[PASS] test_twoDeploymentsHaveIdenticalRuntimeCode() (gas: 3577724)\nSuite result: ok. 8 passed; 0 failed; 0 skipped; finished in 662.84ms (325.26ms CPU time)\n\nRan 10 tests for test/ReviewChanges.t.sol:ReviewChangesTest\n[PASS] test_fuzz_emptyFixedArgRequiresZeroValueForT1AndT2(uint256) (runs: 256, μ: 3039006, ~: 3038853)\nLogs:\n  Bound result 74\n\n[PASS] test_fuzz_ordinalShowsLowestVerifiedId(uint8) (runs: 256, μ: 4840209, ~: 4866467)\nLogs:\n  Bound result 0\n\n[PASS] test_hugeAnswerClearsUintBoolAndSharedRequestsUnderStipend() (gas: 26379788)\n[PASS] test_hugeSignatureClearsPendingAndAllowsImmediateRetry() (gas: 6838211)\n[PASS] test_metadataReportsMinimaEvenWhenSignedPanelIsLarger() (gas: 6306433)\n[PASS] test_scalarAnswerLengthPrecedesChainSignerAndClaimedType() (gas: 17767584)\n[PASS] test_sharedAnswerUpperBoundPrecedesChainAndSigner() (gas: 4503532)\n[PASS] test_signatureLengthPrecedesAnswerLengthAndChain() (gas: 37652039)\n[PASS] test_unknownRequestStillPrecedesDynamicSizeChecks() (gas: 12871822)\n[PASS] test_validationPrecedenceAfterSizes() (gas: 18086010)\nSuite result: ok. 10 passed; 0 failed; 0 skipped; finished in 663.16ms (1.07s CPU time)\n\nRan 8 tests for test/SepoliaLaunchArgs.t.sol:SepoliaLaunchArgsTest\n[PASS] testFuzz_anyZeroAmongTheSevenRequiredRevertsZeroAddress(uint8,bool) (runs: 256, μ: 145077, ~: 14271)\nLogs:\n  Bound result 4\n\n[PASS] test_emptyChainFloorAcceptsTheExactArguments() (gas: 106616)\n[PASS] test_executorWithoutCodeRevertsOffTheFloor() (gas: 276210)\n[PASS] test_liveDependenciesAcceptTheExactArguments() (gas: 281418)\n[PASS] test_partialCodeLeavesTheFloorAndChecksIdmd() (gas: 41679)\n[PASS] test_v1ExecutorSecondSponsoredClaimSameDayStillHitsDailyLimit() (gas: 1916329)\n[PASS] test_v1ExecutorSkipsWithCodeOneAndRefundsTheClaimant() (gas: 1912927)\n[PASS] test_zeroIntakePriceReverts() (gas: 298056)\nSuite result: ok. 8 passed; 0 failed; 0 skipped; finished in 661.85ms (668.57ms CPU time)\n\nRan 32 tests for test/Adversarial.t.sol:AdversarialTest\n[PASS] test_abandonedSharedFactCanBeRequestedAgainAndTheLateAnswerIsIgnored() (gas: 3063452)\n[PASS] test_attestationForAnotherClaimantIsAMissForThisRequest() (gas: 3244206)\n[PASS] test_attestationForAnotherTraitWithTheSameWindowIsAMiss() (gas: 3247257)\n[PASS] test_callbackStarvedOfGasIsNotDeliveredAndStaysPending() (gas: 1692953)\n[PASS] test_cardShowsAtMostThirtyTwoCommunityIdsAndCountsThemAll() (gas: 86215566)\n[PASS] test_claimSponsoredWhilePendingOrVerifiedReverts() (gas: 2104530)\n[PASS] test_communityT3SpecIsASharedFactWithItsOwnHead() (gas: 2423017)\n[PASS] test_everyTemplateVerifiesUnderTheStipendWithACard() (gas: 11730795)\n[PASS] test_expiryAtTheExactSecondStillPassesAndOneLaterDoesNot() (gas: 3241538)\n[PASS] test_fuzz_abandonedPoolRequestKeepsPoolUsedAndLateCallbackIsIgnored(bool) (runs: 256, μ: 1908256, ~: 1923610)\n[PASS] test_fuzz_anyFieldAlteredAfterSigningIsASignatureMiss(uint8,uint256) (runs: 512, μ: 1653172, ~: 1654654)\nLogs:\n  Bound result 11\n\n[PASS] test_fuzz_applySharedFactOnlyWithinTheHead(uint8,uint8) (runs: 256, μ: 1783357, ~: 1773938)\nLogs:\n  Bound result 15\n  Bound result 12\n\n[PASS] test_fuzz_boolAnswerMustBeExactlyZeroOrOne(uint256) (runs: 512, μ: 2076085, ~: 2075794)\n[PASS] test_fuzz_countAnswerAgainstTheThreshold(uint256,bytes1,bool) (runs: 512, μ: 1656564, ~: 1684969)\n[PASS] test_fuzz_expiryAndClockSkewBoundaries(uint64,uint64) (runs: 512, μ: 1649116, ~: 1641459)\n[PASS] test_fuzz_hasTraitAndTraitsOfNeverRevert(address,uint16,uint8,bool,uint8) (runs: 512, μ: 323226, ~: 333447)\n[PASS] test_fuzz_maximalSpecRegistersComposesAndFitsTheBody(uint8,uint256,uint256) (runs: 64, μ: 2289742, ~: 2509411)\nLogs:\n  Bound result 1\n  Bound result 1403257471684225998596408800179664768521\n\n[PASS] test_fuzz_panelAndQuorumBoundaries(uint16,uint16,uint16) (runs: 512, μ: 1655843, ~: 1640604)\n[PASS] test_fuzz_panelTraitNeedsElevenAndSeven(uint16,uint16,uint16) (runs: 512, μ: 2084769, ~: 2069577)\n[PASS] test_fuzz_specBodyIsDeterministicAndClaimantBound(address,address) (runs: 256, μ: 864577, ~: 864577)\n[PASS] test_fuzz_upgradeChargesExactlyKTimesPriceAndLeavesThePoolAlone(uint8,uint256) (runs: 256, μ: 5515460, ~: 5334129)\nLogs:\n  Bound result 9\n  Bound result 77\n\n[PASS] test_fuzz_upgradeRejectsEveryIdThatIsNotAnOracleTrait(uint16) (runs: 256, μ: 209672, ~: 209246)\n[PASS] test_fuzz_windowMustEqualTheCanonicalOne(uint64,uint64) (runs: 512, μ: 1641000, ~: 1640990)\n[PASS] test_onFailureRecordsWhatItIsToldAndStoresNothing() (gas: 3064198)\n[PASS] test_questionHashIsBoundToTheClaimantAndTheTrait() (gas: 690361)\n[PASS] test_reentrantTokenCannotReenterAnyIMDMovingFunction() (gas: 7517031)\n[PASS] test_sharedFactWorstCaseEnvelopeUnderTheStipend() (gas: 3983876)\n[PASS] test_signatureShapesThatDoNotRecover() (gas: 9338096)\n[PASS] test_tokenURIDependsOnlyOnTheClaimantsFacts() (gas: 14700480)\n[PASS] test_traitClassForEveryCatalogIdAndRevertsForUnknown() (gas: 703103)\n[PASS] test_upgradeSponsoredDrawsAllNineOverNineDaysAndRefusesDuplicates() (gas: 12560682)\n[PASS] test_verifiedWindowIsTheCanonicalWindowForEveryOracleId() (gas: 16465073)\nSuite result: ok. 32 passed; 0 failed; 0 skipped; finished in 663.36ms (5.76s CPU time)\n\nRan 1 test for test/Invariants.t.sol:InvariantsTest\n[PASS]\nInvariantsTest invariants:\n[PASS] invariant_oneCardPerClaimantWithImmutableClaimant\n[PASS] invariant_poolOnlyLeavesThroughSponsoredRequests\n InvariantsTest invariants (runs: 256, calls: 16384, reverts: 0)\n\n╭----------+-------------------+-------+---------+----------╮\n| Contract | Selector          | Calls | Reverts | Discards |\n+===========================================================+\n| Handler  | claimSponsored    | 3304  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | mintCard          | 3250  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | sponsor           | 3344  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | transfer          | 3288  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | upgradeAndDeliver | 3198  | 0       | 0        |\n╰----------+-------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 607376788337156967\n  Bound result 103124760418176573\n  Bound result 7792\n  Bound result 1301309790610393076\n  Bound result 8571\n  Bound result 1927266787446629123\n  Bound result 1239194827978796419\n  Bound result 496048225513714169\n  Bound result 100000000000019705\n  Bound result 2695252810\n  Bound result 735\n  Bound result 180150168083562284\n  Bound result 17151\n  Bound result 22062\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 9.11s (9.10s CPU time)\n\nRan 1 test for test/BurnInvariant.t.sol:BurnInvariantTest\n[PASS] invariant_registryRetainsNoClaimETHAndPoolOnlyFundsOracleRequests() (runs: 256, calls: 16384, reverts: 0)\n\n╭-------------+----------+-------+---------+----------╮\n| Contract    | Selector | Calls | Reverts | Discards |\n+=====================================================+\n| BurnHandler | claim    | 16384 | 0       | 0        |\n╰-------------+----------+-------+---------+----------╯\n\nLogs:\n  Bound result 800825\n  Bound result 8367751828660634\n  Bound result 4150096236033\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 2079\n  Bound result 340\n  Bound result 4740\n  Bound result 3238\n  Bound result 20547\n  Bound result 2925\n  Bound result 4463\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 2050273901892361\n  Bound result 150028186787124501\n  Bound result 431\n  Bound result 31922803\n  Bound result 8003\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 4\n  Bound result 7796\n  Bound result 4506664694523131\n  Bound result 74264337592978034889\n  Bound result 4715\n  Bound result 3681618466894064\n  Bound result 385\n  Bound result 20614\n  Bound result 4333632135824622\n  Bound result 23318\n  Bound result 893088943771720\n  Bound result 9675128872439518\n  Bound result 74264337592978034889\n  Bound result 7037093405242783\n  Bound result 8846061162513388\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 11901\n  Bound result 92804874252825\n  Bound result 3566198455\n  Bound result 13776835787051427\n  Bound result 74264337592978034889\n  Bound result 18714\n  Bound result 18738\n  Bound result 3519\n  Bound result 70273161562\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 5437\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 2613059034572768\n  Bound result 578\n  Bound result 29508839362007\n  Bound result 0\n  Bound result 43\n  Bound result 74264337592978034889\n  Bound result 2557\n  Bound result 4333632135824622\n  Bound result 17057\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 3319092338\n  Bound result 23149\n  Bound result 74264337592978034889\n  Bound result 2325\n  Bound result 4486944648393451\n  Bound result 23477\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 66650180051189776015\n  Bound result 1771\n  Bound result 3157\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 11265492500686369\n  Bound result 33267297523910874284\n  Bound result 2765722658759826\n  Bound result 6732159499091929\n  Bound result 12190772\n  Bound result 4329670727698908\n  Bound result 4333632135824620\n  Bound result 74264337592978034886\n  Bound result 1\n  Bound result 934317929031153\n  Bound result 36261029803722317750\n  Bound result 8406030304107086\n  Bound result 3583294\n  Bound result 74264337592978034889\n  Bound result 3432975794\n  Bound result 4333632135824622\n  Bound result 3834\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 646\n  Bound result 1209\n  Bound result 1442460405463262\n  Bound result 9024\n  Bound result 19486\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 15031\n  Bound result 7622953260471241\n  Bound result 16609\n  Bound result 16558\n  Bound result 4751084984293855\n  Bound result 15284\n  Bound result 73489460551352745554\n  Bound result 4329670727698907\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 6948\n  Bound result 4333632135824622\n  Bound result 9425141646\n  Bound result 8871716810841816\n  Bound result 3012243814761864\n  Bound result 123725862208612480619\n  Bound result 13005\n  Bound result 4333632135824622\n  Bound result 22183\n  Bound result 4329670727698909\n  Bound result 14754423063234698\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 8658\n  Bound result 1325275266\n  Bound result 6654\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 5142358315486069\n  Bound result 8846061162513392\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 5777\n  Bound result 3102\n  Bound result 175344265\n  Bound result 17060557136498273\n  Bound result 74264337592978034889\n  Bound result 9999999999999100\n  Bound result 4333632135824622\n  Bound result 3579\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 3992649471032188\n  Bound result 7150759580767252\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 13297564886407918\n  Bound result 74264337592978034889\n  Bound result 6996\n  Bound result 4333632135824622\n  Bound result 131744686365292283092\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 1048592\n  Bound result 74264337592978034889\n  Bound result 1049\n  Bound result 4333632135824622\n  Bound result 1478\n  Bound result 5694090137093405\n  Bound result 4333632135824622\n  Bound result 3735\n  Bound result 4329670727698909\n  Bound result 8676\n  Bound result 6435297065371102104\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 10609\n  Bound result 6391213453871929\n  Bound result 463\n  Bound result 34024106891539921898\n  Bound result 4329670727698909\n  Bound result 423\n  Bound result 56671268779418242438\n  Bound result 4329670727698909\n  Bound result 2776\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 19.94s (19.94s CPU time)\n\nRan 3 tests for test/InvariantsExtended.t.sol:InvariantsExtendedTest\n[PASS]\nInvariantsExtendedTest invariants:\n[PASS] invariant_markedExactlyWhenAPassingAttestationWasDelivered\n[PASS] invariant_oneCardPerClaimant\n[PASS] invariant_poolDailyAndLifetimeLimits\n[PASS] invariant_poolIsFeesPlusDonationsMinusSponsoredRequests\n[PASS] invariant_sharedFactsAreHashesStoredOnlyOnDelivery\n[PASS] invariant_specsAreImmutable\n InvariantsExtendedTest invariants (runs: 96, calls: 4608, reverts: 0)\n\n╭-------------+-------------------+-------+---------+----------╮\n| Contract    | Selector          | Calls | Reverts | Discards |\n+==============================================================+\n| FullHandler | abandonLate       | 270   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | advanceTime       | 264   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | applyShared       | 258   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | claimSponsored    | 238   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | deliverFalse      | 274   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | deliverTampered   | 275   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | deliverTrue       | 278   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | donate            | 255   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | failRequest       | 306   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | mintCard          | 253   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | registerSpec      | 282   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | replayConsumed    | 252   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | requestSharedFact | 269   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | sponsor           | 278   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | transfer          | 291   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | upgradePaid       | 290   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | upgradeSponsored  | 275   | 0       | 0        |\n╰-------------+-------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 5\n  Bound result 38\n  Bound result 13\n  Bound result 4\n  Bound result 14608\n  Bound result 15181\n  Bound result 3\n  Bound result 425\n  Bound result 1\n  Bound result 300000003208537536\n  Bound result 1286166156\n  Bound result 4\n  Bound result 3479\n  Bound result 9665\n  Bound result 1\n  Bound result 5\n  Bound result 857393951023969568\n  Bound result 2\n  Bound result 535380015475842233\n  Bound result 2792979115925841857\n  Bound result 1\n  Bound result 21331\n\n[PASS] test_handlerReplayOfAConsumedIdChangesNothing() (gas: 1920763)\n[PASS] test_handlerSponsoredSelectionAcceptsMaxSeed() (gas: 1764003)\nLogs:\n  Bound result 3000000000000000000\n\nSuite result: ok. 3 passed; 0 failed; 0 skipped; finished in 23.40s (23.39s CPU time)\n\nRan 20 test suites in 23.40s (58.29s CPU time): 191 tests passed, 0 failed, 17 skipped (208 total tests)\n","passed":true},{"durationMs":518,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"Registry.abandon(bytes32)\",\"Registry.applySharedFact(uint16,address[])\",\"Registry.approve(address,uint256)\",\"Registry.claimSponsored(uint16)\",\"Registry.mintCard()\",\"Registry.onFailure(bytes32,uint8,bytes32,uint16,uint16,bytes)\",\"Registry.onResult(bytes32,(bytes32,uint256,bytes32,uint8,bytes,uint256,uint64,uint64,bytes32,bytes32,uint16,uint16,uint16,uint64,uint64),bytes)\",\"Registry.registerSpec((uint8,address,string,string,string,uint256,string,uint8,uint256,uint64,uint64,string))\",\"Registry.requestSharedFact(uint16,uint256)\",\"Registry.safeTransferFrom(address,address,uint256)\",\"Registry.safeTransferFrom(address,address,uint256,bytes)\",\"Registry.setApprovalForAll(address,bool)\",\"Registry.sponsor(uint256)\",\"Registry.transferFrom(address,address,uint256)\",\"Registry.upgrade(uint16[],uint256)\",\"Registry.upgradeSponsored(uint256,uint16[])\"],\"files\":{\".gitignore\":8,\".gitmodules\":6,\"ADAPTATION.md\":55,\"CATALOG.md\":268,\"CONCEPT.md\":262,\"DISCLOSURE.md\":58,\"INTEGRATION.md\":467,\"LICENSE\":21,\"README.md\":439,\"TEMPLATES.md\":158,\"foundry.toml\":44,\"reference/Intake.sol\":5175,\"reference/IntakeV2.sol\":5240,\"reference/PROVENANCE.md\":44,\"reference/abi/IMD.json\":1684,\"reference/abi/IdentityMD.json\":894,\"reference/abi/Intake.json\":955,\"reference/abi/IntakeV2.json\":1070,\"reference/abi/WhitelistCurator.json\":794,\"reference/anchors/headers.json\":61,\"reference/attestations/2026-10-10-link-pilot.json\":92,\"reference/attestations/2026-10-10-meatbag-consumer.json\":104,\"reference/attestations/2026-10-11-feed-consumer-v2.json\":105,\"reference/attestations/2026-10-11-nonce-false.json\":92,\"reference/attestations/2026-10-11-nonce-true.json\":92,\"reference/attestations/README.md\":29,\"reference/burn/BurnExecutorV2.sol.txt\":314,\"reference/burn/abi.json\":1001,\"reference/burn/provenance.json\":17,\"reference/intake/completions.json\":147,\"reference/list-record/src/ListRecord.sol\":169,\"reference/list-record/src/ListRecordRenderer.sol\":126,\"reference/list-record/src/interfaces/IListRecordRenderer.sol\":29,\"reference/list-record/src/lib/SSTORE2.sol\":39,\"reference/list-record/src/lib/Str.sol\":54,\"reference/list-record/test/Renderer.t.sol\":165,\"reference/list-record/test/RendererMechanism.t.sol\":203,\"reference/list-record/test/Template.t.sol\":293,\"reference/list-record/test/fixtures/golden_synthetic_held_svg.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_held_uri.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_transferred_svg.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_transferred_uri.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_width_svg.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_width_uri.txt\":1,\"reference/plane/checks/1001-hour-savior.json\":81,\"reference/plane/checks/1102-ordinal-1000.json\":81,\"reference/plane/checks/1105-first-thousand.json\":81,\"reference/plane/checks/1201-top-32.json\":82,\"reference/plane/checks/1301-not-born-yesterday.json\":86,\"reference/plane/checks/701-still-here.json\":81,\"reference/plane/checks/801-last-stand.json\":81,\"reference/plane/checks/T2-log-sum-composed.json\":81,\"reference/plane/checks/T4-call-compare-reference.json\":81,\"reference/plane/checks/T5-community-composed.json\":86,\"reference/plane/questionHashes.json\":92,\"reference/plane/quotes/1001-hour-savior.json\":20,\"reference/plane/quotes/1102-ordinal-1000.json\":20,\"reference/plane/quotes/1105-first-thousand.json\":20,\"reference/plane/quotes/1201-top-32.json\":20,\"reference/plane/quotes/1301-not-born-yesterday.json\":20,\"reference/plane/quotes/701-still-here.json\":20,\"reference/plane/quotes/801-last-stand.json\":20,\"reference/plane/quotes/T2-log-sum-composed.json\":20,\"reference/plane/quotes/T4-call-compare-reference.json\":20,\"reference/plane/quotes/T5-community-composed.json\":20,\"remappings.txt\":2,\"script/Deploy.s.sol\":48,\"src/Composer.sol\":636,\"src/HiveData.sol\":75,\"src/Registry.sol\":761,\"src/Renderer.sol\":427,\"src/TemplateData.sol\":16,\"src/Types.sol\":41,\"src/interfaces/IBurnExecutor.sol\":12,\"src/interfaces/IIDMD.sol\":8,\"src/interfaces/IIntake.sol\":29,\"src/interfaces/IOracleConsumer.sol\":38,\"src/interfaces/IWhitelistCurator.sol\":53,\"template/blob.hex\":1,\"template/offsets.txt\":1,\"templates/fixtures/1001-hour-savior.json\":22,\"templates/fixtures/1102-ordinal-1000.json\":22,\"templates/fixtures/1105-first-thousand.json\":22,\"templates/fixtures/1201-top-32.json\":22,\"templates/fixtures/1301-not-born-yesterday.json\":24,\"templates/fixtures/701-still-here.json\":22,\"templates/fixtures/801-last-stand.json\":22,\"templates/fixtures/T2-log-sum-composed.json\":23,\"templates/fixtures/T4-call-compare-reference.json\":21,\"templates/fixtures/T5-community-composed.json\":24,\"test/.gitkeep\":0,\"test/Adversarial.t.sol\":832,\"test/Artifacts.t.sol\":209,\"test/Attestations.t.sol\":196,\"test/Base.t.sol\":158,\"test/BurnInvariant.t.sol\":120,\"test/BurnRule.t.sol\":405,\"test/Floor.t.sol\":134,\"test/Goldens.t.sol\":444,\"test/Invariants.t.sol\":124,\"test/InvariantsExtended.t.sol\":520,\"test/LaunchManifest.t.sol\":36,\"test/NOTES.md\":582,\"test/ReReview.t.sol\":263,\"test/Registry.t.sol\":822,\"test/RegistryRules.t.sol\":335,\"test/Rename.t.sol\":224,\"test/ReviewChanges.t.sol\":215,\"test/SepoliaLaunchArgs.t.sol\":130,\"test/SepoliaRehearsal.t.sol\":249,\"test/Templates.t.sol\":171,\"test/fixtures/golden_synthetic_collector_preimage.txt\":1,\"test/fixtures/golden_synthetic_collector_svg.txt\":1,\"test/fixtures/golden_synthetic_collector_uri.txt\":1,\"test/fixtures/golden_synthetic_direct_preimage.txt\":1,\"test/fixtures/golden_synthetic_direct_svg.txt\":1,\"test/fixtures/golden_synthetic_direct_uri.txt\":1,\"test/fixtures/golden_synthetic_fullhouse_preimage.txt\":1,\"test/fixtures/golden_synthetic_fullhouse_svg.txt\":1,\"test/fixtures/golden_synthetic_fullhouse_uri.txt\":1,\"test/fixtures/golden_synthetic_honey_preimage.txt\":1,\"test/fixtures/golden_synthetic_honey_svg.txt\":1,\"test/fixtures/golden_synthetic_honey_uri.txt\":1,\"test/fixtures/golden_synthetic_newcomer_preimage.txt\":1,\"test/fixtures/golden_synthetic_newcomer_svg.txt\":1,\"test/fixtures/golden_synthetic_newcomer_uri.txt\":1,\"test/fixtures/golden_synthetic_oracle_preimage.txt\":1,\"test/fixtures/golden_synthetic_oracle_svg.txt\":1,\"test/fixtures/golden_synthetic_oracle_uri.txt\":1,\"test/fixtures/golden_synthetic_outsider_preimage.txt\":1,\"test/fixtures/golden_synthetic_outsider_svg.txt\":1,\"test/fixtures/golden_synthetic_outsider_uri.txt\":1,\"test/fixtures/golden_synthetic_width_preimage.txt\":1,\"test/fixtures/golden_synthetic_width_svg.txt\":1,\"test/fixtures/golden_synthetic_width_uri.txt\":1,\"test/fork/BurnRule.fork.t.sol\":193,\"test/fork/Mainnet.fork.t.sol\":338,\"test/mocks/MockBurnExecutor.sol\":157,\"test/mocks/Mocks.sol\":231,\"tools/gen_template.py\":898,\"tools/test_gen_template.py\":334},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"cb7d29b9b9098122a0741009c69b0aa85116da34b56e4d57c869e5329e102d57","verifiedTreeHash":"5f2e25a4bdc207c106e686028a1614bbd5af08d7","verifierVersion":"0.1.0+c3fba9eb"},{"checks":[{"durationMs":17794,"exitCode":0,"name":"build","output":"Compiling 84 files with Solc 0.8.24\nSolc 0.8.24 finished in 17.20s\nCompiler run successful with warnings:\nWarning (5159): \"selfdestruct\" has been deprecated. Note that, starting from the Cancun hard fork, the underlying opcode no longer deletes the code and data associated with an account and only transfers its Ether to the beneficiary, unless executed in the same transaction in which the contract was created (see EIP-6780). Any use in newly deployed contracts is strongly discouraged even if the new behavior is taken into account. Future changes to the EVM might further reduce the functionality of the opcode.\n  --> test/mocks/MockBurnExecutor.sol:10:9:\n   |\n10 |         selfdestruct(payable(to));\n   |         ^^^^^^^^^^^^\n\nWarning (2018): Function state mutability can be restricted to pure\n  --> test/Goldens.t.sol:67:5:\n   |\n67 |     function _widthCard() internal view returns (Card memory c) {\n   |     ^ (Relevant source part starts here and spans across multiple lines).\n\nWarning (2018): Function state mutability can be restricted to pure\n   --> test/Goldens.t.sol:345:5:\n    |\n345 |     function _card(\n    |     ^ (Relevant source part starts here and spans across multiple lines).\n\n","passed":true},{"durationMs":15211,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 6 tests for test/fork/BurnRule.fork.t.sol:BurnRuleForkTest\n[SKIP] test_fork_coldFreeClaimExactFeeFromNonpayableContractClaimant() (gas: 0)\n[SKIP] test_fork_coldFreeClaimWithSurplusBurnsAndExecutorReturnsTheSurplus() (gas: 0)\n[SKIP] test_fork_coldFreeClaimWithoutTheFeeReverts() (gas: 0)\n[SKIP] test_fork_executorConfigurationAndPinnedQuote() (gas: 0)\n[SKIP] test_fork_realExecutorAndOFTForceRefundSurplusToNonpayableRecipient() (gas: 0)\n[SKIP] test_fork_realExecutorExactFeeForNonpayableRecipient() (gas: 0)\nSuite result: ok. 0 passed; 0 failed; 6 skipped; finished in 632.51µs (646.54µs CPU time)\n\nRan 11 tests for test/fork/Mainnet.fork.t.sol:MainnetForkTest\n[SKIP] test_fork_attestationSignedForAnotherConsumerMissesOnTheRealIntake() (gas: 0)\n[SKIP] test_fork_curatorIsSettledWithTheBriefsConstants() (gas: 0)\n[SKIP] test_fork_firstContributorIsAnHourZeroEarlyBird() (gas: 0)\n[SKIP] test_fork_intakeV2SellsTheActionAsTheBriefRecords() (gas: 0)\n[SKIP] test_fork_lastContributorIsNoEarlyBird() (gas: 0)\n[SKIP] test_fork_memberMintsAndRendersAgainstTheRealCurator() (gas: 0)\n[SKIP] test_fork_nonMemberReadsZeroFalseAndHasNoCuratorTrait() (gas: 0)\n[SKIP] test_fork_operatorTraitReadsTheRealCollectionAndGuardsZero() (gas: 0)\n[SKIP] test_fork_pinnedBlockIsTheOneRecorded() (gas: 0)\n[SKIP] test_fork_thousandthContributorJoinedInsideTheFirstThousandWindow() (gas: 0)\n[SKIP] test_fork_upgradeThroughTheRealIntakeThenCompleteFromTheWriter() (gas: 0)\nSuite result: ok. 0 passed; 0 failed; 11 skipped; finished in 675.06µs (792.93µs CPU time)\n\nRan 1 test for test/LaunchManifest.t.sol:LaunchManifestTest\n[PASS] test_launchOrderAndArgumentsDeployOnEmptyChain() (gas: 89847)\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 1.65ms (1.48ms CPU time)\n\nRan 8 tests for test/SepoliaRehearsal.t.sol:SepoliaRehearsalTest\n[PASS] testFuzz_heightBoundIsMonotone(uint64,uint64) (runs: 256, μ: 21009, ~: 20954)\n[PASS] test_catalogBodiesAndHashesStayMainnetAndIgnoreCuratorArgument() (gas: 3035811)\n[PASS] test_directReadsStillUseTheSepoliaCuratorAndIDMD() (gas: 1078460)\n[PASS] test_gameWindowAndDeployBlockNonceRegisterOnSepolia() (gas: 777584)\n[PASS] test_heightBoundCoversMeasuredMainnetHeadsAndAnchor() (gas: 97722)\n[PASS] test_mainnetUsesTheExactDeploymentHeightGuards() (gas: 890202)\n[PASS] test_sepoliaClaimantVerifies701ThroughMockIntake() (gas: 2226434)\n[PASS] test_sepoliaStillRejectsInvalidWindows() (gas: 1247014)\nSuite result: ok. 8 passed; 0 failed; 0 skipped; finished in 13.42ms (15.00ms CPU time)\n\nRan 8 tests for test/Rename.t.sol:RenameTest\n[PASS] test_catalogSpecNamesMatchTheTable() (gas: 496540)\n[PASS] test_collectionNameAndSymbol() (gas: 25005)\n[PASS] test_composerStaysUnderTheSizeLimitWithHeadroom() (gas: 13473)\n[PASS] test_metadataCarriesTheFinalFamilyNames() (gas: 3753529)\n[PASS] test_nameTableIsTheFinalTable() (gas: 609580)\n[PASS] test_noWorkingNameSurvivesInTheNameTable() (gas: 1060323)\n[PASS] test_unknownIdHasNoName() (gas: 25179)\n[PASS] test_upgradeRefusesTopWeightsAsASharedFact() (gas: 1641444)\nSuite result: ok. 8 passed; 0 failed; 0 skipped; finished in 15.38ms (13.70ms CPU time)\n\nRan 10 tests for test/ReReview.t.sol:ReReviewTest\n[PASS] test_coldGas_firstCommunityVerificationWithACard() (gas: 2415584)\nLogs:\n  cold onResult gas, first community verification with a card: 133357\n\n[PASS] test_coldGas_sharedFact64Catalog() (gas: 1740251)\nLogs:\n  cold onResult gas, 64-address shared fact (catalog 1201): 164088\n\n[PASS] test_coldGas_sharedFact64Community() (gas: 2108985)\nLogs:\n  cold onResult gas, 64-address shared fact (community T3): 170446\n\n[PASS] test_communityAttributesAppearOnlyForVerifiedSpecs() (gas: 4751043)\n[PASS] test_constructorReadsIsSettledWithoutWriting() (gas: 137310)\n[PASS] test_hugeSignatureOnCommunitySharedFactAndCardRequestClearsUnderStipend() (gas: 12243108)\n[PASS] test_lowerOrdinalAcquiredLaterReplacesTheHigherOne() (gas: 8479122)\n[PASS] test_sameSignedEvidenceSatisfiesAnotherRequestWithTheSameQuestion() (gas: 3262910)\n[PASS] test_specIdsEndAt65534() (gas: 909597)\n[PASS] test_unusedFixedValIsRefusedAndAnEmptyFilterIsNotSerialised() (gas: 1334489)\nSuite result: ok. 10 passed; 0 failed; 0 skipped; finished in 28.98ms (36.41ms CPU time)\n\nRan 7 tests for test/Templates.t.sol:TemplatesTest\n[PASS] test_allTenBodiesAreByteExact() (gas: 1457597)\n[PASS] test_allTenQuestionHashesEqualThePlanes() (gas: 2185841)\n[PASS] test_bodyIsDeterministicInClaimantAndDiffersAcrossClaimants() (gas: 464392)\n[PASS] test_directAndUnknownIdsHaveNoBody() (gas: 60713)\n[PASS] test_hexMinAndCatalogWindows() (gas: 147416)\n[PASS] test_sepoliaChangesOnlyConsumerChainAcrossAllTenBodies() (gas: 3075316)\n[PASS] test_traitNamesAndClasses() (gas: 112489)\nSuite result: ok. 7 passed; 0 failed; 0 skipped; finished in 33.72ms (14.90ms CPU time)\n\nRan 29 tests for test/Registry.t.sol:RegistryTest\n[PASS] test_abandonOnlyAfterFourteenDaysAndStaleCallbackLeavesSuccessor() (gas: 3333466)\n[PASS] test_anyoneReadsAnyWalletAndNothingUsesTxOrigin() (gas: 1943257)\n[PASS] test_attestationForAnotherConsumerOrChainIsNeverAccepted() (gas: 3213846)\n[PASS] test_callbacksRejectEveryoneButTheIntake() (gas: 1630434)\n[PASS] test_claimSponsoredRules() (gas: 5264004)\n[PASS] test_directTraitsAreLiveAndNeedNoCard() (gas: 605974)\n[PASS] test_fuzz_tiersAreMonotone(uint8,bool,uint32,uint128,uint32,uint8) (runs: 256, μ: 710987, ~: 695487)\n[PASS] test_mainnetQuestionAcceptedUnderSepoliaConsumerDomain() (gas: 1726675)\n[PASS] test_mainnetSignatureCannotAnswerSepoliaConsumer() (gas: 1667544)\n[PASS] test_malformedEnvelopeIsNotDeliveredAndStaysPending() (gas: 1561112)\n[PASS] test_mintOncePerWalletAndTransfersKeepClaimant() (gas: 956472)\n[PASS] test_mintWithoutFeeReverts() (gas: 47096)\n[PASS] test_missReasons() (gas: 29440347)\n[PASS] test_noReceiveOrFallback() (gas: 57774)\n[PASS] test_nonMemberIsNeverAnEarlyBird() (gas: 232419)\n[PASS] test_onFailureClearsAndAllowsRetry() (gas: 3006144)\n[PASS] test_onResultGasWorstCase() (gas: 2334293)\nLogs:\n  onResult worst-case gas: 164955\n\n[PASS] test_poolIsTheBalanceAndOnlyLeavesThroughSponsoredRequests() (gas: 5657704)\n[PASS] test_reentrantTokenCannotReenterMint() (gas: 2358744)\n[PASS] test_registerSpecAssignsSequentialIdsAndIsImmutable() (gas: 1231919)\n[PASS] test_sepoliaQuestionMissesWithReasonThreeUnderSepoliaDomain() (gas: 1654372)\n[PASS] test_sharedFactBadEnvelopeIsAMissAndCanBeRequestedAgain() (gas: 6925553)\n[PASS] test_sharedFactFlow() (gas: 2478075)\n[PASS] test_specGuards() (gas: 1337374)\n[PASS] test_strangerCannotDiscardLateValidAnswer() (gas: 1727693)\n[PASS] test_supportsERC4906AndERC721() (gas: 25952)\n[PASS] test_upgradeGuards() (gas: 6034862)\n[PASS] test_upgradeHappyPathMarksTraitAndRefreshesCard() (gas: 2537520)\n[PASS] test_upgradeWithoutCardAttachesToClaimant() (gas: 1895253)\nSuite result: ok. 29 passed; 0 failed; 0 skipped; finished in 123.37ms (156.87ms CPU time)\n\nRan 2 tests for test/Floor.t.sol:FloorTest\n[PASS] test_mainnetEmptyChainFloor() (gas: 72687056)\n[PASS] test_sepoliaEmptyChainFloor() (gas: 72687024)\nSuite result: ok. 2 passed; 0 failed; 0 skipped; finished in 129.18ms (223.51ms CPU time)\n\nRan 3 tests for test/Attestations.t.sol:AttestationsTest\n[PASS] test_allFiveRecoverTheAttesterUnderTheirOwnDomainOnly() (gas: 5269883)\n[PASS] test_loaderRejectsUnknownAnswerTypeNames() (gas: 4845)\n[PASS] test_protocolVectorDigestAndSelector() (gas: 2162970)\nSuite result: ok. 3 passed; 0 failed; 0 skipped; finished in 226.34ms (11.73ms CPU time)\n\nRan 19 tests for test/Goldens.t.sol:GoldensTest\n[PASS] test_escapeJsonNeutralisesMarkup() (gas: 42645)\n[PASS] test_goldenSyntheticCollector() (gas: 20831323)\n[PASS] test_goldenSyntheticDirect() (gas: 5078827)\n[PASS] test_goldenSyntheticFullhouse() (gas: 21514473)\n[PASS] test_goldenSyntheticHoney() (gas: 23746288)\n[PASS] test_goldenSyntheticNewcomer() (gas: 3219081)\n[PASS] test_goldenSyntheticOracle() (gas: 8915956)\n[PASS] test_goldenSyntheticOutsider() (gas: 5211326)\n[PASS] test_goldenSyntheticWidthThroughTheRenderer() (gas: 24718798)\n[PASS] test_imageCommunityPathFollowsTheStepTable() (gas: 13547491)\n[PASS] test_imageIdsOutsideTheCatalogRenderWithoutReverting() (gas: 763825)\n[PASS] test_imageIsPureAndDeterministic() (gas: 16076101)\n[PASS] test_imageOverflowPathAbsentAtOrBelow39AndNeverOverflows() (gas: 13459611)\n[PASS] test_imageRareDotOnlyAtATopTierRareId() (gas: 17170837)\n[PASS] test_imageRingsByCommunityCount() (gas: 5559349)\n[PASS] test_imageStepsUseExponentiationNotXor() (gas: 6674005)\n[PASS] test_reportRendererRuntimeSize() (gas: 129606)\nLogs:\n  Renderer runtime bytes: 21570\n\n[PASS] test_reportTokenURIGas() (gas: 29841499)\nLogs:\n  tokenURI gas synthetic_width: 10810085\n  tokenURI gas synthetic_fullhouse: 9147472\n  tokenURI gas synthetic_honey: 9589924\n\n[PASS] test_templateArtifactsMatchTheCompiledConstants() (gas: 297819)\nSuite result: ok. 19 passed; 0 failed; 0 skipped; finished in 326.39ms (473.66ms CPU time)\n\nRan 8 tests for test/Artifacts.t.sol:ArtifactsTest\n[PASS] test_constructorAcceptsUnavailableCuratorOnEmptyFloor() (gas: 16156)\n[PASS] test_constructorRejectsUnsettledOrUnavailableCurator() (gas: 262986)\n[PASS] test_constructorRejectsZeroAddressesAndStoresTheRest() (gas: 8024)\n[PASS] test_deployScriptUsesMainnetConstantsOnEveryOtherChain() (gas: 60662450)\n[PASS] test_deployScriptUsesSepoliaConstantsAndNonzeroExecutor() (gas: 31208855)\n[PASS] test_noForbiddenOpcodesInRuntime() (gas: 56309448)\n[PASS] test_noImmutableReferencesInAnyArtifact() (gas: 92554609)\n[PASS] test_twoDeploymentsHaveIdenticalRuntimeCode() (gas: 3577724)\nSuite result: ok. 8 passed; 0 failed; 0 skipped; finished in 378.28ms (184.57ms CPU time)\n\nRan 24 tests for test/BurnRule.t.sol:BurnRuleTest\n[PASS] testFuzz_belowThresholdRefundsWithoutFee(bool,uint96,uint96) (runs: 256, μ: 1560285, ~: 1547450)\nLogs:\n  Bound result 23264337593543950335\n  Bound result 6195\n\n[PASS] testFuzz_dueForwardsWholeValueAndExecutorForceRefunds(bool,uint96,uint96) (runs: 256, μ: 1829331, ~: 1816220)\nLogs:\n  Bound result 79228162514264337593543950335\n  Bound result 6195\n\n[PASS] testFuzz_dueWithoutEnoughFeeRevertsAtomically(bool,uint96,uint96) (runs: 256, μ: 3238507, ~: 3211359)\nLogs:\n  Bound result 79228162514264337593543950335\n  Bound result 6195\n\n[PASS] testFuzz_failedPreviewOrBridgeSkipsAndRefunds(bool,uint8,uint96) (runs: 256, μ: 1805419, ~: 1597979)\nLogs:\n  Bound result 4\n  Bound result 6195\n\n[PASS] testFuzz_nonpayableContractWorksWithNoValueExactFeeAndSurplus(bool,uint8) (runs: 256, μ: 1938100, ~: 1976404)\nLogs:\n  Bound result 0\n\n[PASS] testFuzz_previewExceedingTheBudgetSkipsWithCodeOneAndRefunds(bool,uint96) (runs: 256, μ: 2165410, ~: 2150697)\nLogs:\n  Bound result 7273\n\n[PASS] testFuzz_quoteAboveCapSkipsWithCodeThree(bool,uint96,uint96) (runs: 256, μ: 1564201, ~: 1551124)\nLogs:\n  Bound result 79228162514264337593543950335\n  Bound result 6195\n\n[PASS] testFuzz_unsetExecutorDisablesBurnAndRefunds(bool,uint96) (runs: 256, μ: 1581671, ~: 1567436)\nLogs:\n  Bound result 4\n\n[PASS] test_constantsAndStorage() (gas: 29216)\n[PASS] test_constructorRejectsNonzeroExecutorWithoutCodeAndAcceptsZeroOrCode() (gas: 22214)\n[PASS] test_exactFeeAndCapAreInclusive() (gas: 1708610)\n[PASS] test_executorReentryIsGuarded() (gas: 1770521)\n[PASS] test_executorSurplusCallReentryIsGuarded() (gas: 2351890)\n[PASS] test_executorSurplusIsForcedOnARejectingRecipient() (gas: 1984962)\n[PASS] test_existingChecksAndIntakeFailurePrecedeBurnFeeCheck() (gas: 579753)\n[PASS] test_gasArgumentsIncludeOnlyTheValueStipend() (gas: 1694399)\n[PASS] test_noFeeAtExactThresholdReverts() (gas: 1537275)\n[PASS] test_nonpayableContractAcceptsZeroRefundOnPreviewFailure() (gas: 1791339)\n[PASS] test_paidFunctionsRejectOneWeiWhereZeroValueSucceeds() (gas: 3763404)\n[PASS] test_previewUsingMostOfTheBudgetIsQuotedAndBurns() (gas: 2236765)\n[PASS] test_registryRefundReentryIsGuarded() (gas: 2174439)\n[PASS] test_rejectedNonzeroRegistryRefundRevertsAllEffects() (gas: 1949413)\n[PASS] test_zeroQuoteStillTriggersWhenDue() (gas: 1643756)\n[PASS] test_zeroValueHasNoStipend() (gas: 1564856)\nSuite result: ok. 24 passed; 0 failed; 0 skipped; finished in 378.33ms (1.49s CPU time)\n\nRan 17 tests for test/RegistryRules.t.sol:RegistryRulesTest\n[PASS] test_constructorPriceCheckIsPassiveAndAcceptsAnyNonzeroPrice() (gas: 147502)\n[PASS] test_constructorRejectsEachSingleMistypedDependency() (gas: 19912)\n[PASS] test_constructorRejectsPartiallyCodedDependencyFloor() (gas: 19824)\n[PASS] test_constructorRejectsUnavailableIntake() (gas: 26489)\n[PASS] test_constructorRejectsWrongAsset() (gas: 548859)\n[PASS] test_constructorRejectsZeroIntakePrice() (gas: 42182)\n[PASS] test_fuzz_bothPoolPathsShareOneAllowancePerUtcDay(bool,bool,uint32) (runs: 256, μ: 3246789, ~: 3269983)\nLogs:\n  Bound result 23294\n\n[PASS] test_idmdCounterFollowsTransfersAndStopsAtNine() (gas: 15434120)\n[PASS] test_idmdHolderMustAlsoBeAListMember() (gas: 1763951)\n[PASS] test_memberClaimsOnDeploymentDayWithoutCardOrIdmd() (gas: 1675022)\n[PASS] test_noVerdictConsumesTheDayAndLifetimePair() (gas: 3269502)\n[PASS] test_paidUpgradeAndSharedFactDoNotUseOrObeyPoolDailyLimit() (gas: 8189294)\n[PASS] test_revertingIntakeDoesNotConsumePoolAllowances() (gas: 2028592)\n[PASS] test_specAndFirstClaimCostSixPointNineIMD() (gas: 1880817)\n[PASS] test_specRequiresFullFeeAndAllowance() (gas: 798883)\n[PASS] test_sponsoredUpgradeRequiresExactlyOneTrait() (gas: 1780326)\n[PASS] test_switchingIdmdDoesNotBypassDailyLimit() (gas: 3192030)\nSuite result: ok. 17 passed; 0 failed; 0 skipped; finished in 378.46ms (389.25ms CPU time)\n\nRan 32 tests for test/Adversarial.t.sol:AdversarialTest\n[PASS] test_abandonedSharedFactCanBeRequestedAgainAndTheLateAnswerIsIgnored() (gas: 3063452)\n[PASS] test_attestationForAnotherClaimantIsAMissForThisRequest() (gas: 3244206)\n[PASS] test_attestationForAnotherTraitWithTheSameWindowIsAMiss() (gas: 3247257)\n[PASS] test_callbackStarvedOfGasIsNotDeliveredAndStaysPending() (gas: 1692953)\n[PASS] test_cardShowsAtMostThirtyTwoCommunityIdsAndCountsThemAll() (gas: 86215566)\n[PASS] test_claimSponsoredWhilePendingOrVerifiedReverts() (gas: 2104530)\n[PASS] test_communityT3SpecIsASharedFactWithItsOwnHead() (gas: 2423017)\n[PASS] test_everyTemplateVerifiesUnderTheStipendWithACard() (gas: 11730795)\n[PASS] test_expiryAtTheExactSecondStillPassesAndOneLaterDoesNot() (gas: 3241538)\n[PASS] test_fuzz_abandonedPoolRequestKeepsPoolUsedAndLateCallbackIsIgnored(bool) (runs: 256, μ: 1908256, ~: 1923610)\n[PASS] test_fuzz_anyFieldAlteredAfterSigningIsASignatureMiss(uint8,uint256) (runs: 512, μ: 1653172, ~: 1654654)\nLogs:\n  Bound result 14\n\n[PASS] test_fuzz_applySharedFactOnlyWithinTheHead(uint8,uint8) (runs: 256, μ: 1783357, ~: 1773938)\nLogs:\n  Bound result 33\n  Bound result 11\n\n[PASS] test_fuzz_boolAnswerMustBeExactlyZeroOrOne(uint256) (runs: 512, μ: 2076085, ~: 2075794)\n[PASS] test_fuzz_countAnswerAgainstTheThreshold(uint256,bytes1,bool) (runs: 512, μ: 1656564, ~: 1684969)\n[PASS] test_fuzz_expiryAndClockSkewBoundaries(uint64,uint64) (runs: 512, μ: 1649117, ~: 1641459)\n[PASS] test_fuzz_hasTraitAndTraitsOfNeverRevert(address,uint16,uint8,bool,uint8) (runs: 512, μ: 323226, ~: 333447)\n[PASS] test_fuzz_maximalSpecRegistersComposesAndFitsTheBody(uint8,uint256,uint256) (runs: 64, μ: 2289742, ~: 2509411)\nLogs:\n  Bound result 1\n  Bound result 1403257471684225998596408800179664768521\n\n[PASS] test_fuzz_panelAndQuorumBoundaries(uint16,uint16,uint16) (runs: 512, μ: 1655843, ~: 1640604)\n[PASS] test_fuzz_panelTraitNeedsElevenAndSeven(uint16,uint16,uint16) (runs: 512, μ: 2084769, ~: 2069577)\n[PASS] test_fuzz_specBodyIsDeterministicAndClaimantBound(address,address) (runs: 256, μ: 864577, ~: 864577)\n[PASS] test_fuzz_upgradeChargesExactlyKTimesPriceAndLeavesThePoolAlone(uint8,uint256) (runs: 256, μ: 5515460, ~: 5334129)\nLogs:\n  Bound result 6\n  Bound result 54540\n\n[PASS] test_fuzz_upgradeRejectsEveryIdThatIsNotAnOracleTrait(uint16) (runs: 256, μ: 209672, ~: 209246)\n[PASS] test_fuzz_windowMustEqualTheCanonicalOne(uint64,uint64) (runs: 512, μ: 1641000, ~: 1640990)\n[PASS] test_onFailureRecordsWhatItIsToldAndStoresNothing() (gas: 3064198)\n[PASS] test_questionHashIsBoundToTheClaimantAndTheTrait() (gas: 690361)\n[PASS] test_reentrantTokenCannotReenterAnyIMDMovingFunction() (gas: 7517031)\n[PASS] test_sharedFactWorstCaseEnvelopeUnderTheStipend() (gas: 3983876)\n[PASS] test_signatureShapesThatDoNotRecover() (gas: 9338096)\n[PASS] test_tokenURIDependsOnlyOnTheClaimantsFacts() (gas: 14700480)\n[PASS] test_traitClassForEveryCatalogIdAndRevertsForUnknown() (gas: 703103)\n[PASS] test_upgradeSponsoredDrawsAllNineOverNineDaysAndRefusesDuplicates() (gas: 12560682)\n[PASS] test_verifiedWindowIsTheCanonicalWindowForEveryOracleId() (gas: 16465073)\nSuite result: ok. 32 passed; 0 failed; 0 skipped; finished in 378.63ms (3.31s CPU time)\n\nRan 10 tests for test/ReviewChanges.t.sol:ReviewChangesTest\n[PASS] test_fuzz_emptyFixedArgRequiresZeroValueForT1AndT2(uint256) (runs: 256, μ: 3039006, ~: 3038853)\nLogs:\n  Bound result 74\n\n[PASS] test_fuzz_ordinalShowsLowestVerifiedId(uint8) (runs: 256, μ: 4840209, ~: 4866467)\nLogs:\n  Bound result 0\n\n[PASS] test_hugeAnswerClearsUintBoolAndSharedRequestsUnderStipend() (gas: 26379788)\n[PASS] test_hugeSignatureClearsPendingAndAllowsImmediateRetry() (gas: 6838211)\n[PASS] test_metadataReportsMinimaEvenWhenSignedPanelIsLarger() (gas: 6306433)\n[PASS] test_scalarAnswerLengthPrecedesChainSignerAndClaimedType() (gas: 17767584)\n[PASS] test_sharedAnswerUpperBoundPrecedesChainAndSigner() (gas: 4503532)\n[PASS] test_signatureLengthPrecedesAnswerLengthAndChain() (gas: 37652039)\n[PASS] test_unknownRequestStillPrecedesDynamicSizeChecks() (gas: 12871822)\n[PASS] test_validationPrecedenceAfterSizes() (gas: 18086010)\nSuite result: ok. 10 passed; 0 failed; 0 skipped; finished in 390.68ms (794.05ms CPU time)\n\nRan 1 test for test/Invariants.t.sol:InvariantsTest\n[PASS]\nInvariantsTest invariants:\n[PASS] invariant_oneCardPerClaimantWithImmutableClaimant\n[PASS] invariant_poolOnlyLeavesThroughSponsoredRequests\n InvariantsTest invariants (runs: 256, calls: 16384, reverts: 0)\n\n╭----------+-------------------+-------+---------+----------╮\n| Contract | Selector          | Calls | Reverts | Discards |\n+===========================================================+\n| Handler  | claimSponsored    | 3304  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | mintCard          | 3250  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | sponsor           | 3344  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | transfer          | 3288  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | upgradeAndDeliver | 3198  | 0       | 0        |\n╰----------+-------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 630588659709219815\n  Bound result 25967268817896917\n  Bound result 2239\n  Bound result 1301309790610393076\n  Bound result 8572\n  Bound result 11134\n  Bound result 107440036541682219\n  Bound result 1874282229006814259\n  Bound result 1342136058136443316\n  Bound result 2695252810\n  Bound result 735\n  Bound result 300000000000016557\n  Bound result 17169\n  Bound result 22196\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 5.83s (5.82s CPU time)\n\nRan 1 test for test/BurnInvariant.t.sol:BurnInvariantTest\n[PASS] invariant_registryRetainsNoClaimETHAndPoolOnlyFundsOracleRequests() (runs: 256, calls: 16384, reverts: 0)\n\n╭-------------+----------+-------+---------+----------╮\n| Contract    | Selector | Calls | Reverts | Discards |\n+=====================================================+\n| BurnHandler | claim    | 16384 | 0       | 0        |\n╰-------------+----------+-------+---------+----------╯\n\nLogs:\n  Bound result 800825\n  Bound result 8367751828660634\n  Bound result 4150096236033\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 2079\n  Bound result 340\n  Bound result 4740\n  Bound result 3238\n  Bound result 20547\n  Bound result 2925\n  Bound result 4463\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 1800699095796501\n  Bound result 150028186787124501\n  Bound result 431\n  Bound result 31922803\n  Bound result 8003\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 4\n  Bound result 7796\n  Bound result 4506664694523131\n  Bound result 74264337592978034889\n  Bound result 4715\n  Bound result 3681618466894064\n  Bound result 385\n  Bound result 20614\n  Bound result 4333632135824622\n  Bound result 23318\n  Bound result 893088943771720\n  Bound result 9675128872439518\n  Bound result 74264337592978034889\n  Bound result 7037093405242783\n  Bound result 8846061162513392\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 11901\n  Bound result 92804874252825\n  Bound result 3566198455\n  Bound result 13776835787051427\n  Bound result 74264337592978034889\n  Bound result 18714\n  Bound result 18738\n  Bound result 3519\n  Bound result 70273161562\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 5437\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 2613059034572768\n  Bound result 578\n  Bound result 29508839362007\n  Bound result 0\n  Bound result 43\n  Bound result 74264337592978034889\n  Bound result 2557\n  Bound result 4333632135824622\n  Bound result 17057\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 3319092338\n  Bound result 23149\n  Bound result 74264337592978034889\n  Bound result 2325\n  Bound result 4486944648393451\n  Bound result 23477\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 66650180051189776015\n  Bound result 1771\n  Bound result 3157\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 11265492500686355\n  Bound result 33267297523910874284\n  Bound result 2765722658759826\n  Bound result 6732159499091929\n  Bound result 12190772\n  Bound result 4329670727698908\n  Bound result 4333632135824620\n  Bound result 74264337592978034886\n  Bound result 1\n  Bound result 934317929031153\n  Bound result 36261029803722317750\n  Bound result 8406030304107086\n  Bound result 3583294\n  Bound result 74264337592978034889\n  Bound result 3432975794\n  Bound result 4333632135824622\n  Bound result 3834\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 646\n  Bound result 1209\n  Bound result 7785463286972681\n  Bound result 9024\n  Bound result 19486\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 15031\n  Bound result 7622953260471241\n  Bound result 16609\n  Bound result 16558\n  Bound result 3303539923042553\n  Bound result 15284\n  Bound result 73489460551352745554\n  Bound result 4329670727698907\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 6948\n  Bound result 4333632135824622\n  Bound result 9425141646\n  Bound result 8871716810841816\n  Bound result 3012243814761864\n  Bound result 111056049307915099852\n  Bound result 13005\n  Bound result 4333632135824622\n  Bound result 22183\n  Bound result 4329670727698909\n  Bound result 14754423063234699\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 8658\n  Bound result 1325275266\n  Bound result 6654\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 5142358315486069\n  Bound result 3270078575289052\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 5777\n  Bound result 3102\n  Bound result 175344265\n  Bound result 17060557136498273\n  Bound result 74264337592978034889\n  Bound result 3257395624154156\n  Bound result 4333632135824622\n  Bound result 1020\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 2759538410975858\n  Bound result 15954061156456675\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 7615075426552602\n  Bound result 74264337592978034889\n  Bound result 7299\n  Bound result 4333632135824622\n  Bound result 126479516054727374932\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4573203128653726\n  Bound result 74264337592978034889\n  Bound result 5961\n  Bound result 4333632135824622\n  Bound result 127452729333875247025\n  Bound result 9366708716035085\n  Bound result 4333632135824622\n  Bound result 4016\n  Bound result 4329670727698909\n  Bound result 9215\n  Bound result 131985716114531846417\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 833783290\n  Bound result 92804874252825\n  Bound result 2233625730\n  Bound result 81408956705047058548\n  Bound result 4329670727698909\n  Bound result 1269\n  Bound result 28196865638843447146\n  Bound result 4329670727698909\n  Bound result 2819\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 12.35s (12.35s CPU time)\n\nRan 3 tests for test/InvariantsExtended.t.sol:InvariantsExtendedTest\n[PASS]\nInvariantsExtendedTest invariants:\n[PASS] invariant_markedExactlyWhenAPassingAttestationWasDelivered\n[PASS] invariant_oneCardPerClaimant\n[PASS] invariant_poolDailyAndLifetimeLimits\n[PASS] invariant_poolIsFeesPlusDonationsMinusSponsoredRequests\n[PASS] invariant_sharedFactsAreHashesStoredOnlyOnDelivery\n[PASS] invariant_specsAreImmutable\n InvariantsExtendedTest invariants (runs: 96, calls: 4608, reverts: 0)\n\n╭-------------+-------------------+-------+---------+----------╮\n| Contract    | Selector          | Calls | Reverts | Discards |\n+==============================================================+\n| FullHandler | abandonLate       | 270   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | advanceTime       | 264   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | applyShared       | 258   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | claimSponsored    | 238   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | deliverFalse      | 274   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | deliverTampered   | 275   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | deliverTrue       | 278   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | donate            | 255   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | failRequest       | 306   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | mintCard          | 253   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | registerSpec      | 282   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | replayConsumed    | 252   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | requestSharedFact | 269   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | sponsor           | 278   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | transfer          | 291   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | upgradePaid       | 290   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | upgradeSponsored  | 275   | 0       | 0        |\n╰-------------+-------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 5\n  Bound result 38\n  Bound result 13\n  Bound result 4\n  Bound result 14608\n  Bound result 15181\n  Bound result 3\n  Bound result 3613\n  Bound result 1\n  Bound result 900000003208528885\n  Bound result 1286166156\n  Bound result 23\n  Bound result 2478\n  Bound result 9361\n  Bound result 1\n  Bound result 2\n  Bound result 224319285909397652\n  Bound result 2\n  Bound result 135380015475842239\n  Bound result 617888389511145367\n  Bound result 8246\n\n[PASS] test_handlerReplayOfAConsumedIdChangesNothing() (gas: 1920763)\n[PASS] test_handlerSponsoredSelectionAcceptsMaxSeed() (gas: 1764003)\nLogs:\n  Bound result 3000000000000000000\n\nSuite result: ok. 3 passed; 0 failed; 0 skipped; finished in 14.90s (14.89s CPU time)\n\nRan 19 test suites in 14.90s (35.88s CPU time): 183 tests passed, 0 failed, 17 skipped (200 total tests)\n","passed":true},{"durationMs":232,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"Registry.abandon(bytes32)\",\"Registry.applySharedFact(uint16,address[])\",\"Registry.approve(address,uint256)\",\"Registry.claimSponsored(uint16)\",\"Registry.mintCard()\",\"Registry.onFailure(bytes32,uint8,bytes32,uint16,uint16,bytes)\",\"Registry.onResult(bytes32,(bytes32,uint256,bytes32,uint8,bytes,uint256,uint64,uint64,bytes32,bytes32,uint16,uint16,uint16,uint64,uint64),bytes)\",\"Registry.registerSpec((uint8,address,string,string,string,uint256,string,uint8,uint256,uint64,uint64,string))\",\"Registry.requestSharedFact(uint16,uint256)\",\"Registry.safeTransferFrom(address,address,uint256)\",\"Registry.safeTransferFrom(address,address,uint256,bytes)\",\"Registry.setApprovalForAll(address,bool)\",\"Registry.sponsor(uint256)\",\"Registry.transferFrom(address,address,uint256)\",\"Registry.upgrade(uint16[],uint256)\",\"Registry.upgradeSponsored(uint256,uint16[])\"],\"files\":{\".gitignore\":8,\".gitmodules\":6,\"ADAPTATION.md\":55,\"CATALOG.md\":268,\"CONCEPT.md\":262,\"DISCLOSURE.md\":58,\"INTEGRATION.md\":467,\"LICENSE\":21,\"README.md\":439,\"TEMPLATES.md\":158,\"foundry.toml\":44,\"launch.json\":27,\"reference/Intake.sol\":5175,\"reference/IntakeV2.sol\":5240,\"reference/PROVENANCE.md\":44,\"reference/abi/IMD.json\":1684,\"reference/abi/IdentityMD.json\":894,\"reference/abi/Intake.json\":955,\"reference/abi/IntakeV2.json\":1070,\"reference/abi/WhitelistCurator.json\":794,\"reference/anchors/headers.json\":61,\"reference/attestations/2026-10-10-link-pilot.json\":92,\"reference/attestations/2026-10-10-meatbag-consumer.json\":104,\"reference/attestations/2026-10-11-feed-consumer-v2.json\":105,\"reference/attestations/2026-10-11-nonce-false.json\":92,\"reference/attestations/2026-10-11-nonce-true.json\":92,\"reference/attestations/README.md\":29,\"reference/burn/BurnExecutorV2.sol.txt\":314,\"reference/burn/abi.json\":1001,\"reference/burn/provenance.json\":17,\"reference/intake/completions.json\":147,\"reference/list-record/src/ListRecord.sol\":169,\"reference/list-record/src/ListRecordRenderer.sol\":126,\"reference/list-record/src/interfaces/IListRecordRenderer.sol\":29,\"reference/list-record/src/lib/SSTORE2.sol\":39,\"reference/list-record/src/lib/Str.sol\":54,\"reference/list-record/test/Renderer.t.sol\":165,\"reference/list-record/test/RendererMechanism.t.sol\":203,\"reference/list-record/test/Template.t.sol\":293,\"reference/list-record/test/fixtures/golden_synthetic_held_svg.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_held_uri.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_transferred_svg.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_transferred_uri.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_width_svg.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_width_uri.txt\":1,\"reference/plane/checks/1001-hour-savior.json\":81,\"reference/plane/checks/1102-ordinal-1000.json\":81,\"reference/plane/checks/1105-first-thousand.json\":81,\"reference/plane/checks/1201-top-32.json\":82,\"reference/plane/checks/1301-not-born-yesterday.json\":86,\"reference/plane/checks/701-still-here.json\":81,\"reference/plane/checks/801-last-stand.json\":81,\"reference/plane/checks/T2-log-sum-composed.json\":81,\"reference/plane/checks/T4-call-compare-reference.json\":81,\"reference/plane/checks/T5-community-composed.json\":86,\"reference/plane/questionHashes.json\":92,\"reference/plane/quotes/1001-hour-savior.json\":20,\"reference/plane/quotes/1102-ordinal-1000.json\":20,\"reference/plane/quotes/1105-first-thousand.json\":20,\"reference/plane/quotes/1201-top-32.json\":20,\"reference/plane/quotes/1301-not-born-yesterday.json\":20,\"reference/plane/quotes/701-still-here.json\":20,\"reference/plane/quotes/801-last-stand.json\":20,\"reference/plane/quotes/T2-log-sum-composed.json\":20,\"reference/plane/quotes/T4-call-compare-reference.json\":20,\"reference/plane/quotes/T5-community-composed.json\":20,\"remappings.txt\":2,\"script/Deploy.s.sol\":48,\"src/Composer.sol\":636,\"src/HiveData.sol\":75,\"src/Registry.sol\":761,\"src/Renderer.sol\":427,\"src/TemplateData.sol\":16,\"src/Types.sol\":41,\"src/interfaces/IBurnExecutor.sol\":12,\"src/interfaces/IIDMD.sol\":8,\"src/interfaces/IIntake.sol\":29,\"src/interfaces/IOracleConsumer.sol\":38,\"src/interfaces/IWhitelistCurator.sol\":53,\"template/blob.hex\":1,\"template/offsets.txt\":1,\"templates/fixtures/1001-hour-savior.json\":22,\"templates/fixtures/1102-ordinal-1000.json\":22,\"templates/fixtures/1105-first-thousand.json\":22,\"templates/fixtures/1201-top-32.json\":22,\"templates/fixtures/1301-not-born-yesterday.json\":24,\"templates/fixtures/701-still-here.json\":22,\"templates/fixtures/801-last-stand.json\":22,\"templates/fixtures/T2-log-sum-composed.json\":23,\"templates/fixtures/T4-call-compare-reference.json\":21,\"templates/fixtures/T5-community-composed.json\":24,\"test/.gitkeep\":0,\"test/Adversarial.t.sol\":832,\"test/Artifacts.t.sol\":209,\"test/Attestations.t.sol\":196,\"test/Base.t.sol\":158,\"test/BurnInvariant.t.sol\":120,\"test/BurnRule.t.sol\":405,\"test/Floor.t.sol\":134,\"test/Goldens.t.sol\":444,\"test/Invariants.t.sol\":124,\"test/InvariantsExtended.t.sol\":520,\"test/LaunchManifest.t.sol\":36,\"test/NOTES.md\":582,\"test/ReReview.t.sol\":263,\"test/Registry.t.sol\":822,\"test/RegistryRules.t.sol\":335,\"test/Rename.t.sol\":224,\"test/ReviewChanges.t.sol\":215,\"test/SepoliaRehearsal.t.sol\":249,\"test/Templates.t.sol\":171,\"test/fixtures/golden_synthetic_collector_preimage.txt\":1,\"test/fixtures/golden_synthetic_collector_svg.txt\":1,\"test/fixtures/golden_synthetic_collector_uri.txt\":1,\"test/fixtures/golden_synthetic_direct_preimage.txt\":1,\"test/fixtures/golden_synthetic_direct_svg.txt\":1,\"test/fixtures/golden_synthetic_direct_uri.txt\":1,\"test/fixtures/golden_synthetic_fullhouse_preimage.txt\":1,\"test/fixtures/golden_synthetic_fullhouse_svg.txt\":1,\"test/fixtures/golden_synthetic_fullhouse_uri.txt\":1,\"test/fixtures/golden_synthetic_honey_preimage.txt\":1,\"test/fixtures/golden_synthetic_honey_svg.txt\":1,\"test/fixtures/golden_synthetic_honey_uri.txt\":1,\"test/fixtures/golden_synthetic_newcomer_preimage.txt\":1,\"test/fixtures/golden_synthetic_newcomer_svg.txt\":1,\"test/fixtures/golden_synthetic_newcomer_uri.txt\":1,\"test/fixtures/golden_synthetic_oracle_preimage.txt\":1,\"test/fixtures/golden_synthetic_oracle_svg.txt\":1,\"test/fixtures/golden_synthetic_oracle_uri.txt\":1,\"test/fixtures/golden_synthetic_outsider_preimage.txt\":1,\"test/fixtures/golden_synthetic_outsider_svg.txt\":1,\"test/fixtures/golden_synthetic_outsider_uri.txt\":1,\"test/fixtures/golden_synthetic_width_preimage.txt\":1,\"test/fixtures/golden_synthetic_width_svg.txt\":1,\"test/fixtures/golden_synthetic_width_uri.txt\":1,\"test/fork/BurnRule.fork.t.sol\":193,\"test/fork/Mainnet.fork.t.sol\":338,\"test/mocks/MockBurnExecutor.sol\":157,\"test/mocks/Mocks.sol\":231,\"tools/gen_template.py\":898,\"tools/test_gen_template.py\":334},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"cbd2400e284101d44dd0b229365e4f683c011ffe1617aa829d071509598789c4","verifiedTreeHash":"df91382da18c1566915d23e345dcb0d3d2312289","verifierVersion":"0.1.0+c3fba9eb"}]}