{"workflow":null,"planning":null,"id":"3dde4444-a257-47fc-aa52-62677afe414f","state":"completed","template":"shape:chain","objective":"Deploy Worker Frens' art on Ethereum, exactly as it is in the repository: the ART launch, three contracts in this order: WorkerArt1 and WorkerArt2 (src/art/WorkerArt.sol, no constructor arguments: data contracts whose code is the new art, framed so every byte is PUSH data), then WorkerFrensRenderer (src/frens/WorkerFrensRenderer.sol) with two arguments, $contract:WorkerArt1 and $contract:WorkerArt2. The renderer draws each fren on chain from those two chunks and the IMD swarm's FrenArtChunk1..7 already on Ethereum, checking every chunk's code hash on every read; its constructor checks the two new chunks' code hashes (BadArt) and calls nothing, so it deploys on a fresh chain too. None of the three has an owner or any role. About 13.6M gas in one transaction, all in. The collection (PlaceFrens, PlaceModules) is a separate launch; the team wallet points it at this renderer (script/frens/DeployFrens.s.sol setup(), RENDERER). FrensPlacementForkTest (MAINNET_RPC_URL) checks the renderer draws exactly the art kit's reference renders byte for byte (script/art/data/expected.json). This code was already audited and hardened by IMD job fd3018ee (launch 1043): its fixes are merged as delivered. That launch could not run because IMD's launcher creates all of a launch's contracts in one transaction and the four together needed about 25M gas, over EIP-7825's 2^24 (its simulation reverted DeploymentFailed); the only change since is the split into two independent launches, the collection and the art. Do not change src/frens/, src/art/, src/FrensCode.sol, src/FrensPlan.sol, the salts or foundry.toml: any changed byte moves the 0x6900 addresses the Ethereum timelock is set to, or breaks the art's code hashes. test_EachLaunchFitsOneTransaction prices each launch whole (creations, calldata at EIP-7623's rates, the launcher's overhead from two earlier launches' receipts) with 1M gas to spare. Everything builds offline (lib/ is vendored). The two validator tests that use transient storage (test_AuthorizationDoesNotOutliveTheSale, test_LiveValidatorGuardsTrades) need forge's --isolate with forge 1.4; they pass as is with 1.8.","blockedReason":null,"createdAt":"2026-10-08T16:19:44.274Z","updatedAt":"2026-10-08T18:30:49.068Z","paidBy":"0xc94400e90bb652afa02740bff50824e14069c133","parentJobId":null,"project":{"id":"3dde4444-a257-47fc-aa52-62677afe414f","head":"3dde4444-a257-47fc-aa52-62677afe414f","running":null,"versions":[{"jobId":"3dde4444-a257-47fc-aa52-62677afe414f","workflowId":null,"objective":"Deploy Worker Frens' art on Ethereum, exactly as it is in the repository: the ART launch, three contracts in this order: WorkerArt1 and WorkerArt2 (src/art/WorkerArt.sol, no constructor arguments: data contracts whose code is the new art, framed so every byte is PUSH data), then WorkerFrensRenderer (src/frens/WorkerFrensRenderer.sol) with two arguments, $contract:WorkerArt1 and $contract:WorkerArt2. The renderer draws each fren on chain from those two chunks and the IMD swarm's FrenArtChunk1..7 already on Ethereum, checking every chunk's code hash on every read; its constructor checks the two new chunks' code hashes (BadArt) and calls nothing, so it deploys on a fresh chain too. None of the three has an owner or any role. About 13.6M gas in one transaction, all in. The collection (PlaceFrens, PlaceModules) is a separate launch; the team wallet points it at this renderer (script/frens/DeployFrens.s.sol setup(), RENDERER). FrensPlacementForkTest (MAINNET_RPC_URL) checks the renderer draws exactly the art kit's reference renders byte for byte (script/art/data/expected.json). This code was already audited and hardened by IMD job fd3018ee (launch 1043): its fixes are merged as delivered. That launch could not run because IMD's launcher creates all of a launch's contracts in one transaction and the four together needed about 25M gas, over EIP-7825's 2^24 (its simulation reverted DeploymentFailed); the only change since is the split into two independent launches, the collection and the art. Do not change src/frens/, src/art/, src/FrensCode.sol, src/FrensPlan.sol, the salts or foundry.toml: any changed byte moves the 0x6900 addresses the Ethereum timelock is set to, or breaks the art's code hashes. test_EachLaunchFitsOneTransaction prices each launch whole (creations, calldata at EIP-7623's rates, the launcher's overhead from two earlier launches' receipts) with 1M gas to spare. Everything builds offline (lib/ is vendored). The two validator tests that use transient storage (test_AuthorizationDoesNotOutliveTheSale, test_LiveValidatorGuardsTrades) need forge's --isolate with forge 1.4; they pass as is with 1.8.","baseCommit":"e1bdafdaba5da6f6570504d4c8081f355ca6f6f3","state":"completed","createdAt":"2026-10-08T16:19:44.274Z"}]},"deliver":true,"host":false,"site":null,"launch":{"requested":true,"kind":"evm_contracts","id":"d70912ef-442c-4917-b8fd-2b581cdab2a0","status":"live","chainId":1},"oracleRequestId":null,"delivery":{"repoUrl":"https://github.com/identity-md-launches/launch-1067-workerart1-workerart2-workerfrensrendere","pullRequestUrl":"https://github.com/identity-md-launches/launch-1067-workerart1-workerart2-workerfrensrendere/pull/1","commit":"2c599add059198c1794d4786c08a8f4cc3dcc89d","deliveredAt":"2026-10-08T18:31:01.749Z","media":null},"media":null,"nodes":[{"key":"adapt_contract_project","role":"implement","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":["audit_imported_code"],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-08T16:58:07.829Z","verdict":{"status":"accepted","profile":"foundry","evaluation":"checks","rejectionCode":null,"detail":"all checks passed","verifierVersion":"0.1.0+ad90ce4c","verifiedTreeHash":"54e12cfbcf21dd2ff7c0021da42672b13dbd7783","at":"2026-10-08T16:58:07.828Z","failedChecks":[]},"seat":{"tokenId":"935","agentId":"51265"},"live":null},{"key":"audit_economics","role":"review","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":["adapt_contract_project"],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-08T17:16:15.011Z","verdict":null,"seat":{"tokenId":"399","agentId":"51334"},"live":null},{"key":"audit_flow","role":"review","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":["adapt_contract_project"],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-08T17:15:06.292Z","verdict":null,"seat":{"tokenId":"2","agentId":"50959"},"live":null},{"key":"audit_imported_code","role":"review","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":[],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-08T16:36:04.390Z","verdict":null,"seat":{"tokenId":"1446","agentId":"51420"},"live":null},{"key":"audit_judge","role":"review","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":["adapt_contract_project","write_foundry_tests","manifest","audit_math","audit_permissions","audit_economics","audit_flow"],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-08T18:30:49.068Z","verdict":null,"seat":{"tokenId":"286","agentId":"52252"},"live":null},{"key":"audit_math","role":"review","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":["adapt_contract_project"],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-08T17:15:17.060Z","verdict":null,"seat":{"tokenId":"1489","agentId":"52251"},"live":null},{"key":"audit_permissions","role":"review","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":["adapt_contract_project"],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-08T17:07:24.319Z","verdict":null,"seat":{"tokenId":"355","agentId":"51027"},"live":null},{"key":"manifest","role":"integrate","state":"accepted","attempt":2,"revisions":0,"judgeRevisions":0,"dependsOn":["adapt_contract_project"],"allowedPaths":["launch.json"],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-08T18:16:52.669Z","verdict":{"status":"accepted","profile":"foundry","evaluation":"checks","rejectionCode":null,"detail":"all checks passed","verifierVersion":"0.1.0+ad90ce4c","verifiedTreeHash":"6576345185199b4b4bbbea3e408a6739482087ac","at":"2026-10-08T18:16:52.669Z","failedChecks":[]},"seat":{"tokenId":"222","agentId":"50963"},"live":null},{"key":"write_foundry_tests","role":"tests","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":["adapt_contract_project"],"allowedPaths":["test","test/**"],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-08T17:33:25.380Z","verdict":{"status":"accepted","profile":"foundry","evaluation":"checks","rejectionCode":null,"detail":"all checks passed","verifierVersion":"0.1.0+ad90ce4c","verifiedTreeHash":"0ddc491c0fdf247fd1b1752930b9ad452a0a406f","at":"2026-10-08T17:33:25.395Z","failedChecks":[]},"seat":{"tokenId":"410","agentId":"51606"},"live":null}],"reviews":[{"status":"queued","chainId":1,"txHash":null,"blockNumber":null,"sentAt":null,"entries":[{"nodeKey":"adapt_contract_project","agentId":"51265","value":1,"role":"verification:checks"},{"nodeKey":"audit_economics","agentId":"51334","value":1,"role":"review:submission"},{"nodeKey":"audit_flow","agentId":"50959","value":1,"role":"review:submission"},{"nodeKey":"audit_imported_code","agentId":"51420","value":1,"role":"review:submission"},{"nodeKey":"audit_judge","agentId":"52252","value":1,"role":"review:submission"},{"nodeKey":"audit_math","agentId":"52251","value":1,"role":"review:submission"},{"nodeKey":"audit_permissions","agentId":"51027","value":1,"role":"review:submission"},{"nodeKey":"manifest","agentId":"50963","value":1,"role":"verification:checks"},{"nodeKey":"write_foundry_tests","agentId":"51606","value":1,"role":"verification:checks"}]}]}