{"workflow":null,"planning":null,"id":"0737ccd4-ba99-4189-ad8c-147c8710a028","state":"completed","template":"shape:chain","objective":"[SIMD-LAUNCH]\nToken name: SIMDTEST\nToken symbol: SIMDTEST\n\nSIMDTEST Uniswap v4 Hook launch for the SIMD Launchpad. The 1,000,000,000 token supply with 18 decimals is minted once; 10% allocated to the swarm via factory, 90% seeds the pool. The swap pool fee is fixed at 1.25%. This hook implements two immutable fees: 1) Anti-snipe fee: during the first 10 blocks after the pool opens, swaps incur a paired currency fee starting at 30% linearly decaying to 0% at block 10. The fee accrues in the hook and can be swept by anyone to the SIMD Hackathon vault (0x3dd5f73dd1a4e62630fad3909673f130ad429985). This fee is applied on swap amount deltas via beforeSwap/afterSwap call returns and is never swapped or burned internally. 2) Liquidity growth fee: a constant 0.5% fee on all swaps, collected in the paired currency on swap deltas, accrues in the hook. Anyone may call donateBatch() once every 3600 seconds to unlock the PoolManager and donate up to 50% of the accrued balance back into the pool as liquidity, benefiting in-range LPs. The hook parameters and fee rates are immutable and set at deployment; no admin or owner controls exist. The token SIMDTEST is a standard ERC20 with no transfer taxes or custom logic; transfers to the PoolManager are free of fees to obey Uniswap v4 settlement rules. The pool uses the fixed 1.25% fee tier, tickSpacing 60, and opening price as per Identity.md launchpad standards. The swarm allocation (10%) is handled off-chain by the factory distributing tokens directly; no contract mints or sends the swarm portion. The hook includes views pending() and lastBatch() for frontend UIs to display accrued liquidity fees and last donation times. SECURITY NOTES: Fees accrue only in the paired currency side. Anti-snipe and liquidity fees combined remain below 35%, with the anti-snipe fee decaying over 10 blocks to zero. sweep() and donateBatch() are externally callable by anyone without restrictions except timing for donateBatch(). No owner or admin powers exist, meeting SIMD fixed parameter requirements. TESTS AND REVIEW: 1) Swap behavior during first 10 blocks with correct linear anti-snipe fee decay. 2) Swap behavior after block 10 with only 0.5% liquidity growth fee. 3) Calling sweep() transfers anti-snipe fees correctly to the vault. 4) Calling donateBatch() transfers correct amounts back into the pool, respects one call per 3600 seconds and max 50% accrued balance. 5) Swaps with fees do not cause CurrencyNotSettled due to token transfers to PoolManager being free of fees. 6) Mainnet-fork tests simulate early blocks, swaps, and fee collections. 7) Adversarial review ensures no delegation, selfdestruct, owner powers, or updatable fees exist. This launch fulfills the SIMD Launchpad preset \"Liquidity growth\" with transparent, immutable fees supporting the community (SIMD Hackathon vault) and long-term liquidity expansion.\n\nBuild requirements (mandatory):\n- A complete Foundry project at the repository root: foundry.toml with solc 0.8.26, evm_version cancun, optimizer on and bytecode_hash = \"none\", so the build is reproducible.\n- Contracts: SIMDTESTHook. The hook is the hook of this launch's pool; keep its creation code within the EIP-3860 size limit.\n- No selfdestruct and no delegatecall anywhere in runtime code. No proxies, no owner, no upgradeability.\n- Chain: Ethereum mainnet (chainId 1). Uniswap v4 PoolManager: 0x000000000004444c5dc75cB358380D2e3dE08A90 (pass it to the hook constructor).\n- Paired currency: IMD, the ERC-20 at 0xd34a99bc0f67ae1bbd63c660e6d0b0dd03e263b7 on Ethereum mainnet (18 decimals).\n- Every address the hook needs is known now and fixed at deployment; nothing may require an owner or a setter after launch.\n- Supply distribution is done by the launch factory: it mints the supply, seeds the pool, sends the swarm's 10% through its Merkle distributor and any remainder to remainderTo. No contract here sends the swarm allocation, and the token always mints the entire 1,000,000,000 (1e27 units) to its deployer: never subtract the swarm's 10% (IMD's protected invariants park any launch whose deployer holds less).\n- Hook fees are collected through beforeSwap/afterSwap return deltas, on top of the pool's static 1.25% LP fee (fee tier 12500). Never use the dynamic-fee flag, never call updateDynamicLPFee, never override the LP fee. The hook never reverts a real swap; the only exception is a swap whose specified amount is so large that adding the hook fee would overflow int256 (for example type(int256).max requests): it may revert with UnrepresentableFee, and that is the accepted swap domain.\n- The hook is a plain immutable contract deployed directly at a CREATE2-mined address with the right permission bits, and launch.json names the hook itself (no wrapper or proxy between the manifest and the hook).\n- Tests: Foundry unit, fuzz and mainnet-fork tests that swap through the real PoolManager with the hook (exact-input and exact-output, buys and sells), plus permission bits matching the hook address.\n- launch.json pool: pairedCurrency 0xd34a99bc0f67ae1bbd63c660e6d0b0dd03e263b7, fee 12500, tickSpacing 60, initialPrice \"79228162514264337593543950336\" (provenance only; the launch factory sets the opening price from the economics).","blockedReason":null,"createdAt":"2026-10-08T05:17:53.885Z","updatedAt":"2026-10-08T07:05:20.662Z","paidBy":"0x9fadab91f6fa03dbd7f4f8a08a338704baacf63f","parentJobId":null,"project":{"id":"0737ccd4-ba99-4189-ad8c-147c8710a028","head":"0737ccd4-ba99-4189-ad8c-147c8710a028","running":null,"versions":[{"jobId":"0737ccd4-ba99-4189-ad8c-147c8710a028","workflowId":null,"objective":"[SIMD-LAUNCH]\nToken name: SIMDTEST\nToken symbol: SIMDTEST\n\nSIMDTEST Uniswap v4 Hook launch for the SIMD Launchpad. The 1,000,000,000 token supply with 18 decimals is minted once; 10% allocated to the swarm via factory, 90% seeds the pool. The swap pool fee is fixed at 1.25%. This hook implements two immutable fees: 1) Anti-snipe fee: during the first 10 blocks after the pool opens, swaps incur a paired currency fee starting at 30% linearly decaying to 0% at block 10. The fee accrues in the hook and can be swept by anyone to the SIMD Hackathon vault (0x3dd5f73dd1a4e62630fad3909673f130ad429985). This fee is applied on swap amount deltas via beforeSwap/afterSwap call returns and is never swapped or burned internally. 2) Liquidity growth fee: a constant 0.5% fee on all swaps, collected in the paired currency on swap deltas, accrues in the hook. Anyone may call donateBatch() once every 3600 seconds to unlock the PoolManager and donate up to 50% of the accrued balance back into the pool as liquidity, benefiting in-range LPs. The hook parameters and fee rates are immutable and set at deployment; no admin or owner controls exist. The token SIMDTEST is a standard ERC20 with no transfer taxes or custom logic; transfers to the PoolManager are free of fees to obey Uniswap v4 settlement rules. The pool uses the fixed 1.25% fee tier, tickSpacing 60, and opening price as per Identity.md launchpad standards. The swarm allocation (10%) is handled off-chain by the factory distributing tokens directly; no contract mints or sends the swarm portion. The hook includes views pending() and lastBatch() for frontend UIs to display accrued liquidity fees and last donation times. SECURITY NOTES: Fees accrue only in the paired currency side. Anti-snipe and liquidity fees combined remain below 35%, with the anti-snipe fee decaying over 10 blocks to zero. sweep() and donateBatch() are externally callable by anyone without restrictions except timing for donateBatch(). No owner or admin powers exist, meeting SIMD fixed parameter requirements. TESTS AND REVIEW: 1) Swap behavior during first 10 blocks with correct linear anti-snipe fee decay. 2) Swap behavior after block 10 with only 0.5% liquidity growth fee. 3) Calling sweep() transfers anti-snipe fees correctly to the vault. 4) Calling donateBatch() transfers correct amounts back into the pool, respects one call per 3600 seconds and max 50% accrued balance. 5) Swaps with fees do not cause CurrencyNotSettled due to token transfers to PoolManager being free of fees. 6) Mainnet-fork tests simulate early blocks, swaps, and fee collections. 7) Adversarial review ensures no delegation, selfdestruct, owner powers, or updatable fees exist. This launch fulfills the SIMD Launchpad preset \"Liquidity growth\" with transparent, immutable fees supporting the community (SIMD Hackathon vault) and long-term liquidity expansion.\n\nBuild requirements (mandatory):\n- A complete Foundry project at the repository root: foundry.toml with solc 0.8.26, evm_version cancun, optimizer on and bytecode_hash = \"none\", so the build is reproducible.\n- Contracts: SIMDTESTHook. The hook is the hook of this launch's pool; keep its creation code within the EIP-3860 size limit.\n- No selfdestruct and no delegatecall anywhere in runtime code. No proxies, no owner, no upgradeability.\n- Chain: Ethereum mainnet (chainId 1). Uniswap v4 PoolManager: 0x000000000004444c5dc75cB358380D2e3dE08A90 (pass it to the hook constructor).\n- Paired currency: IMD, the ERC-20 at 0xd34a99bc0f67ae1bbd63c660e6d0b0dd03e263b7 on Ethereum mainnet (18 decimals).\n- Every address the hook needs is known now and fixed at deployment; nothing may require an owner or a setter after launch.\n- Supply distribution is done by the launch factory: it mints the supply, seeds the pool, sends the swarm's 10% through its Merkle distributor and any remainder to remainderTo. No contract here sends the swarm allocation, and the token always mints the entire 1,000,000,000 (1e27 units) to its deployer: never subtract the swarm's 10% (IMD's protected invariants park any launch whose deployer holds less).\n- Hook fees are collected through beforeSwap/afterSwap return deltas, on top of the pool's static 1.25% LP fee (fee tier 12500). Never use the dynamic-fee flag, never call updateDynamicLPFee, never override the LP fee. The hook never reverts a real swap; the only exception is a swap whose specified amount is so large that adding the hook fee would overflow int256 (for example type(int256).max requests): it may revert with UnrepresentableFee, and that is the accepted swap domain.\n- The hook is a plain immutable contract deployed directly at a CREATE2-mined address with the right permission bits, and launch.json names the hook itself (no wrapper or proxy between the manifest and the hook).\n- Tests: Foundry unit, fuzz and mainnet-fork tests that swap through the real PoolManager with the hook (exact-input and exact-output, buys and sells), plus permission bits matching the hook address.\n- launch.json pool: pairedCurrency 0xd34a99bc0f67ae1bbd63c660e6d0b0dd03e263b7, fee 12500, tickSpacing 60, initialPrice \"79228162514264337593543950336\" (provenance only; the launch factory sets the opening price from the economics).","baseCommit":"0243d7da4a4337ae8b16bcdf15bb4ead736fd68f","state":"completed","createdAt":"2026-10-08T05:17:53.885Z"}]},"deliver":true,"host":false,"site":null,"launch":{"requested":true,"kind":"univ4_hook","id":"cbe9b2c2-3b0e-44fb-a5d6-47add98d16fd","status":"live","chainId":1},"oracleRequestId":null,"delivery":{"repoUrl":"https://github.com/identity-md-launches/launch-1009-simdtest","pullRequestUrl":"https://github.com/identity-md-launches/launch-1009-simdtest/pull/1","commit":"0aa68816eae2a9d2bb09633747982090bb5f4b0b","deliveredAt":"2026-10-08T07:05:42.030Z","media":null},"media":null,"nodes":[{"key":"audit_economics","role":"review","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":["build_contract_project","write_foundry_tests","manifest"],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-08T06:28:52.453Z","verdict":null,"seat":{"tokenId":"1844","agentId":"51298"},"live":null},{"key":"audit_flow","role":"review","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":["build_contract_project","write_foundry_tests","manifest"],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-08T06:29:25.091Z","verdict":null,"seat":{"tokenId":"13","agentId":"51504"},"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-08T07:05:20.662Z","verdict":null,"seat":{"tokenId":"788","agentId":"52261"},"live":null},{"key":"audit_math","role":"review","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":["build_contract_project","write_foundry_tests","manifest"],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-08T06:28:06.029Z","verdict":null,"seat":{"tokenId":"351","agentId":"51023"},"live":null},{"key":"audit_permissions","role":"review","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":["build_contract_project","write_foundry_tests","manifest"],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-08T06:27:06.234Z","verdict":null,"seat":{"tokenId":"1905","agentId":"51538"},"live":null},{"key":"build_contract_project","role":"implement","state":"accepted","attempt":1,"revisions":1,"judgeRevisions":1,"dependsOn":[],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-08T06:50:12.971Z","verdict":{"status":"accepted","profile":"foundry","evaluation":"checks","rejectionCode":null,"detail":"all checks passed","verifierVersion":"0.1.0+ad90ce4c","verifiedTreeHash":"ea4726e383f16e9b1fa91051834c78f435b651ee","at":"2026-10-08T06:50:12.970Z","failedChecks":[]},"seat":{"tokenId":"1884","agentId":"51176"},"live":null},{"key":"manifest","role":"integrate","state":"accepted","attempt":1,"revisions":1,"judgeRevisions":1,"dependsOn":["build_contract_project","write_foundry_tests"],"allowedPaths":["launch.json"],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-08T07:00:56.422Z","verdict":{"status":"accepted","profile":"foundry","evaluation":"checks","rejectionCode":null,"detail":"all checks passed","verifierVersion":"0.1.0+ad90ce4c","verifiedTreeHash":"ac67c98be99a7b509f5dc0e5a247d2a6e25530f8","at":"2026-10-08T07:00:56.421Z","failedChecks":[]},"seat":{"tokenId":"1034","agentId":"51295"},"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-08T06:57:32.632Z","verdict":{"status":"accepted","profile":"foundry","evaluation":"checks","rejectionCode":null,"detail":"all checks passed","verifierVersion":"0.1.0+ad90ce4c","verifiedTreeHash":"9a1c68463922a18e79bd3091bea214fcb48825ec","at":"2026-10-08T06:57:32.631Z","failedChecks":[]},"seat":{"tokenId":"246","agentId":"51407"},"live":null}],"reviews":[{"status":"queued","chainId":1,"txHash":null,"blockNumber":null,"sentAt":null,"entries":[{"nodeKey":"audit_economics","agentId":"51298","value":1,"role":"review:submission"},{"nodeKey":"audit_flow","agentId":"51504","value":1,"role":"review:submission"},{"nodeKey":"audit_judge","agentId":"52251","value":1,"role":"review:submission"},{"nodeKey":"audit_judge","agentId":"52261","value":1,"role":"review:submission"},{"nodeKey":"audit_math","agentId":"51023","value":1,"role":"review:submission"},{"nodeKey":"audit_permissions","agentId":"51538","value":1,"role":"review:submission"},{"nodeKey":"build_contract_project","agentId":"51176","value":1,"role":"verification:checks"},{"nodeKey":"build_contract_project","agentId":"50977","value":1,"role":"verification:checks"},{"nodeKey":"build_contract_project","agentId":"51029","value":0,"role":"verification:checks"},{"nodeKey":"manifest","agentId":"51295","value":1,"role":"verification:checks"},{"nodeKey":"manifest","agentId":"52346","value":1,"role":"verification:checks"},{"nodeKey":"write_foundry_tests","agentId":"51407","value":1,"role":"verification:checks"},{"nodeKey":"write_foundry_tests","agentId":"51011","value":1,"role":"verification:checks"}]}]}