{"workflow":null,"planning":null,"id":"8540825c-a412-4c3d-be82-73cdf9002e30","state":"completed","template":"shape:chain","objective":"START FROM EXISTING CODE: reuse https://github.com/identity-md-launches/launch-905-launch-panic-monkeys-panic at commit fe78b5defb150e3071181c675534e5e438a120da (fully built, tested and audited). Only two changes: set oracleFund to 0x788C311500FD3C15b8e44d6e2935fe7fF13E674b in launch.json/constructor, and remove the anti-splitting test. Keep everything else identical.\n\nLaunch Panic Monkeys ($PANIC, ERC-20 name \"Panic Monkeys\", symbol \"PANIC\") with a Uniswap v4 hook. The hook punishes selling while the price is down and makes dip buying cheap.\n\nREFERENCE PRICE: the hook keeps its own 1-hour time-weighted average price (TWAP) of this pool. It records at most one observation per block, using the pool price before the first swap of that block, so trades in the current block can never move the reference. Drawdown = how far the price is below the reference, in percent. \"Down\" means drawdown of 5% or more.\n\nHOOK FEE (on top of the pool's base fee), taken in the paired currency (the non-PANIC side): from the input on buys (beforeSwap return delta), from the output on sells (afterSwap return delta).\n- Buys, judged on the price before the buy: 0% when drawdown < 5%; 1% when drawdown >= 5%.\n- Sells, judged on the price AFTER the sell: 2% when drawdown < 5%; 10% when 5% <= drawdown < 15%; 20% when 15% <= drawdown < 30%; 30% when drawdown >= 30%.\n- No exemptions for any address. Hook fee never exceeds 30%.\n\nFEE SPLIT of every hook fee: 60% accrues to a Panic Oracle Fund claimable only to the fixed oracle budget address 0x788C311500FD3C15b8e44d6e2935fe7fF13E674b (hardcode this literal address as the oracleFund recipient in the deploy manifest and constructor; never the zero address); 30% is donated to in-range liquidity providers with PoolManager.donate; 10% accrues to a burn bucket: a permissionless buybackAndBurn() swaps it for PANIC in this pool and sends the PANIC to 0x000000000000000000000000000000000000dEaD; it reverts if it would receive less than 98% of the PANIC implied by the 1-hour reference price, and spends at most a capped amount per call. Claim, donate and buybackAndBurn are permissionless functions anyone can call. No dust may stay stuck.\n\nADMIN: nobody can change fees, thresholds, splits or the reference window after deployment. No owner, no pause, no upgrade.\n\nKNOWN AND ACCEPTED: splitting one large sell into many small sells pays less total tax than one sell (early chunks land at lower tiers). This is intended; do not add per-wallet tracking.\n\nREQUIRED TESTS: tiers switch exactly at 5%, 15%, 30% drawdown; a sell moving price from not-down to 20% down pays 20%; a buy and a sell in the same block cannot move the reference; after the price sits down but flat for 1 hour the panic tier no longer applies; the fee split sums to exactly 100%; hook fee capped at 30%; buybackAndBurn reverts when the price is more than 2% above the reference and all PANIC it buys ends at 0x...dEaD.","blockedReason":null,"createdAt":"2026-10-07T16:24:18.298Z","updatedAt":"2026-10-07T19:39:35.112Z","paidBy":"0x788c311500fd3c15b8e44d6e2935fe7ff13e674b","parentJobId":null,"project":{"id":"8540825c-a412-4c3d-be82-73cdf9002e30","head":"8540825c-a412-4c3d-be82-73cdf9002e30","running":null,"versions":[{"jobId":"8540825c-a412-4c3d-be82-73cdf9002e30","workflowId":null,"objective":"START FROM EXISTING CODE: reuse https://github.com/identity-md-launches/launch-905-launch-panic-monkeys-panic at commit fe78b5defb150e3071181c675534e5e438a120da (fully built, tested and audited). Only two changes: set oracleFund to 0x788C311500FD3C15b8e44d6e2935fe7fF13E674b in launch.json/constructor, and remove the anti-splitting test. Keep everything else identical.\n\nLaunch Panic Monkeys ($PANIC, ERC-20 name \"Panic Monkeys\", symbol \"PANIC\") with a Uniswap v4 hook. The hook punishes selling while the price is down and makes dip buying cheap.\n\nREFERENCE PRICE: the hook keeps its own 1-hour time-weighted average price (TWAP) of this pool. It records at most one observation per block, using the pool price before the first swap of that block, so trades in the current block can never move the reference. Drawdown = how far the price is below the reference, in percent. \"Down\" means drawdown of 5% or more.\n\nHOOK FEE (on top of the pool's base fee), taken in the paired currency (the non-PANIC side): from the input on buys (beforeSwap return delta), from the output on sells (afterSwap return delta).\n- Buys, judged on the price before the buy: 0% when drawdown < 5%; 1% when drawdown >= 5%.\n- Sells, judged on the price AFTER the sell: 2% when drawdown < 5%; 10% when 5% <= drawdown < 15%; 20% when 15% <= drawdown < 30%; 30% when drawdown >= 30%.\n- No exemptions for any address. Hook fee never exceeds 30%.\n\nFEE SPLIT of every hook fee: 60% accrues to a Panic Oracle Fund claimable only to the fixed oracle budget address 0x788C311500FD3C15b8e44d6e2935fe7fF13E674b (hardcode this literal address as the oracleFund recipient in the deploy manifest and constructor; never the zero address); 30% is donated to in-range liquidity providers with PoolManager.donate; 10% accrues to a burn bucket: a permissionless buybackAndBurn() swaps it for PANIC in this pool and sends the PANIC to 0x000000000000000000000000000000000000dEaD; it reverts if it would receive less than 98% of the PANIC implied by the 1-hour reference price, and spends at most a capped amount per call. Claim, donate and buybackAndBurn are permissionless functions anyone can call. No dust may stay stuck.\n\nADMIN: nobody can change fees, thresholds, splits or the reference window after deployment. No owner, no pause, no upgrade.\n\nKNOWN AND ACCEPTED: splitting one large sell into many small sells pays less total tax than one sell (early chunks land at lower tiers). This is intended; do not add per-wallet tracking.\n\nREQUIRED TESTS: tiers switch exactly at 5%, 15%, 30% drawdown; a sell moving price from not-down to 20% down pays 20%; a buy and a sell in the same block cannot move the reference; after the price sits down but flat for 1 hour the panic tier no longer applies; the fee split sums to exactly 100%; hook fee capped at 30%; buybackAndBurn reverts when the price is more than 2% above the reference and all PANIC it buys ends at 0x...dEaD.","baseCommit":"0243d7da4a4337ae8b16bcdf15bb4ead736fd68f","state":"completed","createdAt":"2026-10-07T16:24:18.298Z"}]},"deliver":true,"host":false,"site":null,"launch":{"requested":true,"kind":"univ4_hook","id":"78f747c8-2875-4984-a053-c0777cff1904","status":"live","chainId":1},"oracleRequestId":null,"delivery":{"repoUrl":"https://github.com/identity-md-launches/launch-922-start-existing-code-reuse","pullRequestUrl":"https://github.com/identity-md-launches/launch-922-start-existing-code-reuse/pull/1","commit":"3638b78b9a22e168e6ed477187e4d00712bfcbb6","deliveredAt":"2026-10-07T19:39:57.228Z","media":null},"media":null,"nodes":[{"key":"audit_economics","role":"review","state":"accepted","attempt":2,"revisions":0,"judgeRevisions":0,"dependsOn":["build_contract_project"],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-07T17:02:09.939Z","verdict":null,"seat":{"tokenId":"131","agentId":"51130"},"live":null},{"key":"audit_flow","role":"review","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":["build_contract_project"],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-07T16:51:24.176Z","verdict":null,"seat":{"tokenId":"1038","agentId":"51453"},"live":null},{"key":"audit_judge","role":"review","state":"accepted","attempt":1,"revisions":1,"judgeRevisions":1,"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-07T19:39:35.112Z","verdict":null,"seat":{"tokenId":"999","agentId":"52287"},"live":null},{"key":"audit_math","role":"review","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":["build_contract_project"],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-07T16:51:17.546Z","verdict":null,"seat":{"tokenId":"1013","agentId":"52196"},"live":null},{"key":"audit_permissions","role":"review","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":["build_contract_project"],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-07T16:45:38.858Z","verdict":null,"seat":{"tokenId":"591","agentId":"51192"},"live":null},{"key":"build_contract_project","role":"implement","state":"accepted","attempt":3,"revisions":1,"judgeRevisions":1,"dependsOn":[],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-07T19:11:00.029Z","verdict":{"status":"accepted","profile":"foundry","evaluation":"checks","rejectionCode":null,"detail":"all checks passed","verifierVersion":"0.1.0+a2d9a899","verifiedTreeHash":"c08b4e0f62de09d5ae86c3d2213b63822bfb5dbb","at":"2026-10-07T19:11:00.326Z","failedChecks":[]},"seat":{"tokenId":"1606","agentId":"50958"},"live":null},{"key":"manifest","role":"integrate","state":"accepted","attempt":1,"revisions":1,"judgeRevisions":1,"dependsOn":["build_contract_project"],"allowedPaths":["launch.json"],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-07T19:25:13.875Z","verdict":{"status":"accepted","profile":"foundry","evaluation":"checks","rejectionCode":null,"detail":"all checks passed","verifierVersion":"0.1.0+a2d9a899","verifiedTreeHash":"777ee493c79a0df760de7c79fdfaa4925a2be9cb","at":"2026-10-07T19:25:14.045Z","failedChecks":[]},"seat":{"tokenId":"801","agentId":"52220"},"live":null},{"key":"write_foundry_tests","role":"tests","state":"accepted","attempt":1,"revisions":1,"judgeRevisions":1,"dependsOn":["build_contract_project"],"allowedPaths":["test","test/**"],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-07T19:26:30.767Z","verdict":{"status":"accepted","profile":"foundry","evaluation":"checks","rejectionCode":null,"detail":"all checks passed","verifierVersion":"0.1.0+a2d9a899","verifiedTreeHash":"25de6272f0f8a812f9330563211ec1f499c99717","at":"2026-10-07T19:26:30.812Z","failedChecks":[]},"seat":{"tokenId":"1778","agentId":"52215"},"live":null}],"reviews":[{"status":"queued","chainId":1,"txHash":null,"blockNumber":null,"sentAt":null,"entries":[{"nodeKey":"audit_economics","agentId":"51130","value":1,"role":"review:submission"},{"nodeKey":"audit_flow","agentId":"51453","value":1,"role":"review:submission"},{"nodeKey":"audit_judge","agentId":"52152","value":1,"role":"review:submission"},{"nodeKey":"audit_judge","agentId":"52287","value":1,"role":"review:submission"},{"nodeKey":"audit_math","agentId":"52196","value":1,"role":"review:submission"},{"nodeKey":"audit_permissions","agentId":"51192","value":1,"role":"review:submission"},{"nodeKey":"build_contract_project","agentId":"51229","value":0,"role":"verification:checks"},{"nodeKey":"build_contract_project","agentId":"51389","value":1,"role":"verification:checks"},{"nodeKey":"build_contract_project","agentId":"50958","value":1,"role":"verification:checks"},{"nodeKey":"build_contract_project","agentId":"50986","value":0,"role":"verification:checks"},{"nodeKey":"manifest","agentId":"51394","value":1,"role":"verification:checks"},{"nodeKey":"manifest","agentId":"52220","value":1,"role":"verification:checks"},{"nodeKey":"write_foundry_tests","agentId":"51410","value":1,"role":"verification:checks"},{"nodeKey":"write_foundry_tests","agentId":"52215","value":1,"role":"verification:checks"}]}]}