{"workflow":null,"planning":null,"id":"bf51d2c0-b390-4a8d-bd1e-c6c6e86d3c69","state":"completed","template":"shape:chain","objective":"[SIMD-LAUNCH]\nToken name: SIMDTEST\nToken symbol: SIMDTEST\n\nSIMDTESTHook (the launch pool's hook):\n1. Immutable constants: buyerRewardFeeBps = 200 (2%), minBuyUnits = 10 IMD units, poolFeeBps = 12500 (1.25%).\n2. Fee application: Take a 2% fee on the paired currency side (IMD) of every swap via beforeSwap/afterSwap return deltas, accruing fees in the hook contract balance.\n3. Reward recording: On each qualifying buy (swap where the recipient is the buyer), if the paired currency amount spent is at least minBuyUnits (10), record a reward equal to 1% of that amount for the buyer address.\n4. Reward claims: Buyers call claimRewards() to receive their accrued rewards in paired currency; anyone can call payRecorded(address) to pay the recorded reward directly to its beneficiary; payRecorded cannot redirect rewards.\n5. Rewards are never paid or triggered inside swap callbacks to avoid reentrancy or accounting issues.\n6. Views: pending(address buyer) returns the buyer's claimable reward amount; owedTotal() returns total pending rewards owed by the hook.\n7. No owner, no admin functions; all parameters are fixed at deployment and immutable.\n\nTOKEN:\n- Symbol: SIMDTEST\n- Name: SIMDTEST\n- Standard ERC20 token with 1,000,000,000 supply and 18 decimals, no transfer taxes or custom logic.\n- The entire supply is minted once on deployment.\n- 90% of the total supply is seeded to the pool; the swarm's 10% allocation is handled externally by the launch factory.\n\nTESTS AND REVIEW:\n1. Swap test: buying SIMDTEST with IMD for amounts below and above 10 IMD units, verifying rewards are recorded only for buys >= 10 units.\n2. Claim test: buyers successfully claim pending rewards via claimRewards().\n3. payRecorded test: third parties can pay recorded rewards without redirect.\n4. Confirm no rewards accrue or pay during non-buyer swaps (e.g., sells).\n5. Mainnet fork tests with real pool deployment to verify correct fee accrual, reward recording, and claiming.\n6. Adversarial security audits covering reentrancy, fee accounting, and invariants.\n\nThis launch implements a simple, immutable buyer rewards hook aligned with SIMD rules: a 2% fee funds 1% buyer rewards on buys of at least 10 IMD units, fully compatible with Uniswap v4, and ensuring safe, transparent, and incentive-driven token launches on the SIMD Launchpad.\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 swap.\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-08T04:01:42.015Z","updatedAt":"2026-10-08T06:13:12.912Z","paidBy":"0x9fadab91f6fa03dbd7f4f8a08a338704baacf63f","parentJobId":null,"project":{"id":"bf51d2c0-b390-4a8d-bd1e-c6c6e86d3c69","head":"bf51d2c0-b390-4a8d-bd1e-c6c6e86d3c69","running":null,"versions":[{"jobId":"bf51d2c0-b390-4a8d-bd1e-c6c6e86d3c69","workflowId":null,"objective":"[SIMD-LAUNCH]\nToken name: SIMDTEST\nToken symbol: SIMDTEST\n\nSIMDTESTHook (the launch pool's hook):\n1. Immutable constants: buyerRewardFeeBps = 200 (2%), minBuyUnits = 10 IMD units, poolFeeBps = 12500 (1.25%).\n2. Fee application: Take a 2% fee on the paired currency side (IMD) of every swap via beforeSwap/afterSwap return deltas, accruing fees in the hook contract balance.\n3. Reward recording: On each qualifying buy (swap where the recipient is the buyer), if the paired currency amount spent is at least minBuyUnits (10), record a reward equal to 1% of that amount for the buyer address.\n4. Reward claims: Buyers call claimRewards() to receive their accrued rewards in paired currency; anyone can call payRecorded(address) to pay the recorded reward directly to its beneficiary; payRecorded cannot redirect rewards.\n5. Rewards are never paid or triggered inside swap callbacks to avoid reentrancy or accounting issues.\n6. Views: pending(address buyer) returns the buyer's claimable reward amount; owedTotal() returns total pending rewards owed by the hook.\n7. No owner, no admin functions; all parameters are fixed at deployment and immutable.\n\nTOKEN:\n- Symbol: SIMDTEST\n- Name: SIMDTEST\n- Standard ERC20 token with 1,000,000,000 supply and 18 decimals, no transfer taxes or custom logic.\n- The entire supply is minted once on deployment.\n- 90% of the total supply is seeded to the pool; the swarm's 10% allocation is handled externally by the launch factory.\n\nTESTS AND REVIEW:\n1. Swap test: buying SIMDTEST with IMD for amounts below and above 10 IMD units, verifying rewards are recorded only for buys >= 10 units.\n2. Claim test: buyers successfully claim pending rewards via claimRewards().\n3. payRecorded test: third parties can pay recorded rewards without redirect.\n4. Confirm no rewards accrue or pay during non-buyer swaps (e.g., sells).\n5. Mainnet fork tests with real pool deployment to verify correct fee accrual, reward recording, and claiming.\n6. Adversarial security audits covering reentrancy, fee accounting, and invariants.\n\nThis launch implements a simple, immutable buyer rewards hook aligned with SIMD rules: a 2% fee funds 1% buyer rewards on buys of at least 10 IMD units, fully compatible with Uniswap v4, and ensuring safe, transparent, and incentive-driven token launches on the SIMD Launchpad.\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 swap.\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-08T04:01:42.015Z"}]},"deliver":true,"host":false,"site":null,"launch":{"requested":true,"kind":"univ4_hook","id":"a68ec328-bbf8-412e-b357-0eae7022ab6a","status":"live","chainId":1},"oracleRequestId":null,"delivery":{"repoUrl":"https://github.com/identity-md-launches/launch-996-simdtest","pullRequestUrl":"https://github.com/identity-md-launches/launch-996-simdtest/pull/1","commit":"37c1238441fc9feb9cb07270da0ed1aa53756f1c","deliveredAt":"2026-10-08T06:13:47.209Z","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:02:02.086Z","verdict":null,"seat":{"tokenId":"1530","agentId":"51025"},"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-08T05:46:11.826Z","verdict":null,"seat":{"tokenId":"1626","agentId":"50969"},"live":null},{"key":"audit_judge","role":"review","state":"accepted","attempt":1,"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-08T06:13:12.912Z","verdict":null,"seat":{"tokenId":"76","agentId":"52292"},"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-08T05:53:43.952Z","verdict":null,"seat":{"tokenId":"1560","agentId":"50989"},"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-08T05:47:36.258Z","verdict":null,"seat":{"tokenId":"127","agentId":"51020"},"live":null},{"key":"build_contract_project","role":"implement","state":"accepted","attempt":3,"revisions":0,"judgeRevisions":0,"dependsOn":[],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-08T05:07:13.754Z","verdict":{"status":"accepted","profile":"foundry","evaluation":"checks","rejectionCode":null,"detail":"all checks passed","verifierVersion":"0.1.0+ad90ce4c","verifiedTreeHash":"5c52b3b7f6a4338cc8ec467ec9d953cbb51d104a","at":"2026-10-08T05:07:14.353Z","failedChecks":[]},"seat":{"tokenId":"1311","agentId":"51417"},"live":null},{"key":"manifest","role":"integrate","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":["build_contract_project","write_foundry_tests"],"allowedPaths":["launch.json"],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-08T05:41:20.868Z","verdict":{"status":"accepted","profile":"foundry","evaluation":"checks","rejectionCode":null,"detail":"all checks passed","verifierVersion":"0.1.0+ad90ce4c","verifiedTreeHash":"ffbe2011af13167210ff6daa7927022c29e444b2","at":"2026-10-08T05:41:20.868Z","failedChecks":[]},"seat":{"tokenId":"1129","agentId":"51017"},"live":null},{"key":"write_foundry_tests","role":"tests","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":["build_contract_project"],"allowedPaths":["test","test/**"],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-08T05:38:21.980Z","verdict":{"status":"accepted","profile":"foundry","evaluation":"checks","rejectionCode":null,"detail":"all checks passed","verifierVersion":"0.1.0+ad90ce4c","verifiedTreeHash":"d36e6968112da7d138c5a739e8991743ada4dedb","at":"2026-10-08T05:38:21.981Z","failedChecks":[]},"seat":{"tokenId":"1649","agentId":"50975"},"live":null}],"reviews":[{"status":"queued","chainId":1,"txHash":null,"blockNumber":null,"sentAt":null,"entries":[{"nodeKey":"audit_economics","agentId":"51025","value":1,"role":"review:submission"},{"nodeKey":"audit_flow","agentId":"50969","value":1,"role":"review:submission"},{"nodeKey":"audit_judge","agentId":"52292","value":1,"role":"review:submission"},{"nodeKey":"audit_math","agentId":"50989","value":1,"role":"review:submission"},{"nodeKey":"audit_permissions","agentId":"51020","value":1,"role":"review:submission"},{"nodeKey":"build_contract_project","agentId":"51417","value":1,"role":"verification:checks"},{"nodeKey":"build_contract_project","agentId":"52213","value":0,"role":"verification:checks"},{"nodeKey":"build_contract_project","agentId":"51747","value":0,"role":"verification:checks"},{"nodeKey":"manifest","agentId":"51017","value":1,"role":"verification:checks"},{"nodeKey":"write_foundry_tests","agentId":"50975","value":1,"role":"verification:checks"}]}]}