{"workflow":null,"planning":null,"id":"5e569a31-ee5f-44e6-ab31-eff054268003","state":"blocked","template":"shape:chain","objective":"Launch 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 a fixed oracle budget address (the paying wallet); 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\nREQUIRED TESTS: tiers switch exactly at 5%, 15%, 30% drawdown; a sell moving price from not-down to 20% down pays 20%; splitting one large sell into 10 small sells pays at least as much total tax; 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":"node write_foundry_tests: runtime_error","createdAt":"2026-10-07T10:40:23.448Z","updatedAt":"2026-10-07T11:05:01.632Z","paidBy":"0xa55d176bf16e296099a94707592fad6bcb8754c8","parentJobId":null,"project":{"id":"5e569a31-ee5f-44e6-ab31-eff054268003","head":"5e569a31-ee5f-44e6-ab31-eff054268003","running":null,"versions":[{"jobId":"5e569a31-ee5f-44e6-ab31-eff054268003","workflowId":null,"objective":"Launch 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 a fixed oracle budget address (the paying wallet); 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\nREQUIRED TESTS: tiers switch exactly at 5%, 15%, 30% drawdown; a sell moving price from not-down to 20% down pays 20%; splitting one large sell into 10 small sells pays at least as much total tax; 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":"blocked","createdAt":"2026-10-07T10:40:23.448Z"}]},"deliver":true,"host":false,"site":null,"launch":{"requested":true,"kind":"univ4_hook","id":null,"status":null,"chainId":1},"oracleRequestId":null,"delivery":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-07T11:19:16.015Z","verdict":null,"seat":{"tokenId":"125","agentId":"51154"},"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-07T11:19:43.498Z","verdict":null,"seat":{"tokenId":"1489","agentId":"52251"},"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-07T10:40:23.448Z","verdict":null,"seat":null,"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-07T11:19:07.259Z","verdict":null,"seat":{"tokenId":"355","agentId":"51027"},"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-07T11:18:02.226Z","verdict":null,"seat":{"tokenId":"202","agentId":"52100"},"live":null},{"key":"build_contract_project","role":"implement","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":[],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-07T11:01:47.714Z","verdict":{"status":"accepted","profile":"foundry","evaluation":"checks","rejectionCode":null,"detail":"all checks passed","verifierVersion":"0.1.0+be003835","verifiedTreeHash":"4532a116b9bfa2ef46ee10b4447745d169b820ad","at":"2026-10-07T11:01:47.731Z","failedChecks":[]},"seat":{"tokenId":"1846","agentId":"51297"},"live":null},{"key":"manifest","role":"integrate","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":["build_contract_project"],"allowedPaths":["launch.json"],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-07T11:05:43.553Z","verdict":{"status":"accepted","profile":"foundry","evaluation":"checks","rejectionCode":null,"detail":"all checks passed","verifierVersion":"0.1.0+be003835","verifiedTreeHash":"aa9fb777e53755d2b168a74f920bb700d55b66a7","at":"2026-10-07T11:05:43.554Z","failedChecks":[]},"seat":{"tokenId":"52","agentId":"51194"},"live":null},{"key":"write_foundry_tests","role":"tests","state":"failed","attempt":3,"revisions":0,"judgeRevisions":0,"dependsOn":["build_contract_project"],"allowedPaths":["test","test/**"],"failureReason":"runtime_error","dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-07T11:05:01.632Z","verdict":null,"seat":null,"live":null}],"reviews":[{"status":"sent","chainId":1,"txHash":"0x6006644cb1db9165e20d2b8b85ce7c176cf789c47bcaad3585cc33e7822c79c1","blockNumber":26140093,"sentAt":"2026-10-07T11:05:25.332Z","entries":[{"nodeKey":"build_contract_project","agentId":"51297","value":1,"role":"verification:checks"}]}]}