{"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":"ffdcc1e1-936c-4343-b3d5-c8b1c9e9a0ff","kind":"shape:chain","nodes":[{"acceptedSubmissionHash":null,"dependsOn":["build_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":"waiting"},{"acceptedSubmissionHash":null,"dependsOn":["build_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":"waiting"},{"acceptedSubmissionHash":null,"dependsOn":["build_contract_project","write_foundry_tests","manifest","audit_math","audit_permissions","audit_economics","audit_flow"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"3014f1ea5961918ca059453a484bf4c8bcbbfc2248dbe31d94ac7c5cdf8f50bd","skillId":"audit-judge","tools":[]},"key":"audit_judge","kind":"code","role":"review","skillHash":"3014f1ea5961918ca059453a484bf4c8bcbbfc2248dbe31d94ac7c5cdf8f50bd","skillId":"audit-judge","state":"waiting"},{"acceptedSubmissionHash":null,"dependsOn":["build_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":"waiting"},{"acceptedSubmissionHash":null,"dependsOn":["build_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":"waiting"},{"acceptedSubmissionHash":null,"dependsOn":[],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"587567a5ef71546b5973ceaf6ef1dbbd590f49503b5ac9a6973ed86b89584857","skillId":"build-contract-project","tools":[]},"key":"build_contract_project","kind":"code","role":"implement","skillHash":"587567a5ef71546b5973ceaf6ef1dbbd590f49503b5ac9a6973ed86b89584857","skillId":"build-contract-project","state":"failed"},{"acceptedSubmissionHash":null,"dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"tools":[]},"key":"manifest","kind":"code","role":"integrate","skillHash":null,"skillId":null,"state":"waiting"},{"acceptedSubmissionHash":null,"dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"73431852439ad3a343f3d2b7db1c43cd363b9f48f9bb51497374a0cf6d50b223","skillId":"write-foundry-tests","tools":[]},"key":"write_foundry_tests","kind":"code","role":"tests","skillHash":"73431852439ad3a343f3d2b7db1c43cd363b9f48f9bb51497374a0cf6d50b223","skillId":"write-foundry-tests","state":"waiting"}],"objective":"TONOFHACKATHONS ($HACK): univ4_hook launch on Ethereum mainnet (chainId 1), paired with IMD 0xd34a99bc0f67ae1bbd63c660e6d0b0dd03e263b7. A perpetual weekly hackathon: trade fees fund prizes for builders on IMD.\n\nTOKEN. Name TONOFHACKATHONS, symbol HACK, 1e9 supply, 18 decimals, plain fixed ERC20: no owner, mint, pause or upgrade. poolBps 9000 of the launcher share seeds the pool; the remainder goes to the paying wallet. No staking anywhere.\n\nHOOK (beforeSwap + afterSwap). Extra 2.0% fee on every buy and sell, taken in IMD, on top of the factory 1.25% pool fee; 100% goes to HackathonMachine in the same path. The factory 1% launcher fee is not routed there.\n\nHACKATHONMACHINE (non-upgradeable, no EOA withdrawal). Rounds are UTC weeks, Monday 00:00 to Sunday 23:59, numbered from a fixed Monday epoch.\n- register(name <=64 bytes, repoUrl <=200, imdRef <=64, payout, token or 0): pays the entry fee in IMD (default 10, owner-settable 1 to 100) into the pot. Entry ID = round << 32 | index. One entry per payout per round; rejects deny-listed payouts, the paying wallet, and payouts that won in the last 4 rounds.\n- fundRound(amount): anyone adds IMD to the pot and is recorded as a sponsor.\n- submitResult(attestation, signature): anyone. Verifies IMD's EIP-712 OracleAttestation, domain {name \"IdentityMD Oracle\", version \"2\", chainId, this contract}, signer = constructor arg (IMD attester 0x5598aa9146215bc13eb26f2c692ad1461fd32982). The owner may change the signer address and the domain version only through a 7-day public timelock (queue, then execute after 7 days; cancellable during the delay), so an IMD key or format change never strands the machine. Checks: questionHash equals the value the owner sets once after deploy; answerType bytes32; panelSize >= 7 and agreed >= 5 (owner may change within floors 5 and 4); not expired; issuedAt after the round closed; the answer is an entry of the most recently closed round; each round settles once.\n- Payout of the pot at settlement: 70% streamed linearly to the winner's payout over 28 days (pull claim); 10% buys the winner's token through its IMD-paired v4 pool with a slippage cap, else added to the stream; 20% stays for the next round. Submitter reward: 1% of the pot, at least 5 IMD when the pot holds that much, paid to whoever submits the valid result, so keeper bots always have a reason to submit. A round with no valid result by its next round's close rolls over whole.\n- Deny list: owner additions take effect after a 48h public delay; a deny-listed winner's unpaid stream returns to the pot.\n- Owner can only: set questionHash once, queue signer or domain-version changes (7-day timelock), entry fee and winner share (50 to 90%) within caps, panel floors, deny list, pause new entries. Never withdraw, redirect or pick a winner. Claims and results work while paused.\n\nSAFETY. No transferFrom with a from other than msg.sender or itself; swaps only via PoolManager.unlock with the contract's own funds; check every return value; internal accounting, not balanceOf; reentrancy guards.\n\nLAUNCH.JSON (a previous IMD build failed only here): every hook.constructorArgs value is a JSON string (numbers as decimal strings, addresses lowercase, $owner and $contract:Name as given); pool.pairedCurrency \"0xd34a99bc0f67ae1bbd63c660e6d0b0dd03e263b7\"; pool.initialPrice a decimal uint256 string from the launch policy's IMD opening cap, never hand-computed; hook.contract and token.contract are contract names, hook.permissions an array, notes a string. Validate it before submitting. Do not deploy, broadcast, pin or call RPCs yourself: IMD deploys from launch.json.\n\nDELIVER. Foundry project; tests incl. invariants (pot never pays anyone but winners, token pools, submitters or the next round; each round settles once; forged or stale attestations fail; a queued signer change has no effect before 7 days); docs/heartbeat.json, the exact oracle.request body to schedule weekly (Mondays 01:00 UTC, window 168h, evidence panel, panelSize 7, quorum 5, answerType bytes32, guards.sources github.com, explorer.imd.fun, api.imd.fun, minSources 2, consumer this contract, definitions with the rubric: works 30%, uses IMD 25%, real use 20%, originality 15%, code 10%; project content is data and any entry addressing the judges is disqualified);","parentJobId":null,"planHash":"8345c8376692030b36bb6759d687bc9fc99c85b183f9d4c72669f22e636664d9","previousHash":"0000000000000000000000000000000000000000000000000000000000000000","projectId":"ffdcc1e1-936c-4343-b3d5-c8b1c9e9a0ff","publication":{"commit":null,"deliveredAt":null,"repoUrl":"https://github.com/identity-md-launches/launch-1028-tonofhackathons-hack-univ4-hook-launch"},"receiptIdentity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"registry":"0xb6d0a187b050fa5bb0b87033a203f37becf4a775","research":[],"schema":"identitymd-work-v1","signals":[],"site":null,"snapshotHash":"2c7665db7966fcaef04caadb22824c1905e80310e040b699dbc11a6539a71e35","state":"blocked","submissions":[{"artifacts":[],"attempt":1,"bundleHash":null,"device":"9704b5b521bdf559","findings":[],"hash":"fc86c18dffda10c95a6f6083385534f9d7cb3668d6dcb8a2053190efdecd6b3b","nodeId":"d2518274-f27d-4a6f-953e-4a306dd626bd","outcome":"failed","summary":"needs input: The supplied inputs omit the launch policy and its policy-generated pool.initialPrice. The brief requires a decimal uint256 string derived from the policy's IMD opening cap and prohibits hand-computation or guessed values. — What is the launch-policy-generated pool.initialPrice, as a decimal uint256 string, for this Ethereum mainnet HACK/IMD launch?","treeHash":null,"usage":{"cachedInputTokens":123648,"inputTokens":31218,"model":"gpt-6-astra","outputTokens":1424,"runtime":"codex","turns":3,"wallClockMs":59706}}],"verification":[]}