{"workflow":null,"planning":null,"id":"ffdcc1e1-936c-4343-b3d5-c8b1c9e9a0ff","state":"blocked","template":"shape:chain","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);","blockedReason":"node build_contract_project: 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?","createdAt":"2026-10-08T08:29:24.874Z","updatedAt":"2026-10-08T08:30:33.426Z","paidBy":"0x5b95a971b4583a5f011e9da082acdd679b870d06","parentJobId":null,"project":{"id":"ffdcc1e1-936c-4343-b3d5-c8b1c9e9a0ff","head":"ffdcc1e1-936c-4343-b3d5-c8b1c9e9a0ff","running":null,"versions":[{"jobId":"ffdcc1e1-936c-4343-b3d5-c8b1c9e9a0ff","workflowId":null,"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);","baseCommit":"0243d7da4a4337ae8b16bcdf15bb4ead736fd68f","state":"blocked","createdAt":"2026-10-08T08:29:24.874Z"}]},"deliver":true,"host":false,"site":null,"launch":{"requested":true,"kind":"evm_contracts","id":null,"status":null,"chainId":1},"oracleRequestId":null,"delivery":null,"media":null,"nodes":[{"key":"audit_economics","role":"review","state":"waiting","attempt":0,"revisions":0,"judgeRevisions":0,"dependsOn":["build_contract_project"],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-08T08:29:24.874Z","verdict":null,"seat":null,"live":null},{"key":"audit_flow","role":"review","state":"waiting","attempt":0,"revisions":0,"judgeRevisions":0,"dependsOn":["build_contract_project"],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-08T08:29:24.874Z","verdict":null,"seat":null,"live":null},{"key":"audit_judge","role":"review","state":"waiting","attempt":0,"revisions":0,"judgeRevisions":0,"dependsOn":["build_contract_project","write_foundry_tests","manifest","audit_math","audit_permissions","audit_economics","audit_flow"],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-08T08:29:24.874Z","verdict":null,"seat":null,"live":null},{"key":"audit_math","role":"review","state":"waiting","attempt":0,"revisions":0,"judgeRevisions":0,"dependsOn":["build_contract_project"],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-08T08:29:24.874Z","verdict":null,"seat":null,"live":null},{"key":"audit_permissions","role":"review","state":"waiting","attempt":0,"revisions":0,"judgeRevisions":0,"dependsOn":["build_contract_project"],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-08T08:29:24.874Z","verdict":null,"seat":null,"live":null},{"key":"build_contract_project","role":"implement","state":"failed","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":[],"allowedPaths":[],"failureReason":"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?","dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-08T08:30:33.426Z","verdict":null,"seat":null,"live":null},{"key":"manifest","role":"integrate","state":"waiting","attempt":0,"revisions":0,"judgeRevisions":0,"dependsOn":["build_contract_project"],"allowedPaths":["launch.json"],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-08T08:29:24.874Z","verdict":null,"seat":null,"live":null},{"key":"write_foundry_tests","role":"tests","state":"waiting","attempt":0,"revisions":0,"judgeRevisions":0,"dependsOn":["build_contract_project"],"allowedPaths":["test","test/**"],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-08T08:29:24.874Z","verdict":null,"seat":null,"live":null}],"reviews":[{"status":"queued","chainId":1,"txHash":null,"blockNumber":null,"sentAt":null,"entries":[]}]}