{"workflow":null,"planning":null,"id":"f963ea4d-f3a8-4ff7-9f13-1d330a275035","state":"completed","template":"audit","objective":"Project: PepesFamily launchpad v5, re-check after audit 8f96baf6\nRepo: github.com/0xtenang/PepesFamily (commit 5e84e99)\nScope: contracts/src/PepesFamily.sol, contracts/src/PepesFamilyLens.sol, contracts/src/PepesFamilyRouter.sol\nTests: contracts/test/PepesFamily.t.sol (section “v5 audit (8f96baf6)”), contracts/test/Fork.t.sol\n\nChanges since 8f96baf6\n\nFinding 1: afterSwap reverts with PartialFill unless the pool traded the whole specified amount, net of the specified-side fee or burn taken in beforeSwap (FEE_SLOT + BURN_SLOT).\nFindings 2 and 3: _burn mints ERC-6909 claims of the token to the launchpad (pendingBurn). flush(token) burns those claims and takes the tokens to 0x…dEaD, then pays holder fees. Mid-unlock, only our routers may flush.\nFinding 4: creatorFee and holderFee are computed from their own bps; the protocol takes the remainder.\nFinding 5: lens paging uses limit > n - offset.\nFinding 6: marketCap moved to the lens, using supply minus totalBurned minus pendingBurn.\nFinding 7: creator payout is two-step: setCreatorPayout proposes (address(0) cancels), and acceptCreatorPayout must be called by the proposed address.\nPlease check\n\nCan the full-fill check be bypassed, or does it reject any legitimate full-fill swap? Think about rounding in exact-in and exact-out, and tiny amounts.\nAre the token claims always backed: claims of each token equal pendingBurn[token]? Does flush mid-unlock from our routers always have the tokens to take?\nCould pending burns be stuck or griefed? Does flush with no holder fees but a pending burn behave correctly?\nAny regression of v4 guarantees or of earlier findings.","blockedReason":null,"createdAt":"2026-10-09T06:43:57.778Z","updatedAt":"2026-10-09T07:21:43.674Z","paidBy":"0x40699cf5c05b0da76ab1f2c9308a5c0aafa916df","parentJobId":null,"project":{"id":"f963ea4d-f3a8-4ff7-9f13-1d330a275035","head":"f963ea4d-f3a8-4ff7-9f13-1d330a275035","running":null,"versions":[{"jobId":"f963ea4d-f3a8-4ff7-9f13-1d330a275035","workflowId":null,"objective":"Project: PepesFamily launchpad v5, re-check after audit 8f96baf6\nRepo: github.com/0xtenang/PepesFamily (commit 5e84e99)\nScope: contracts/src/PepesFamily.sol, contracts/src/PepesFamilyLens.sol, contracts/src/PepesFamilyRouter.sol\nTests: contracts/test/PepesFamily.t.sol (section “v5 audit (8f96baf6)”), contracts/test/Fork.t.sol\n\nChanges since 8f96baf6\n\nFinding 1: afterSwap reverts with PartialFill unless the pool traded the whole specified amount, net of the specified-side fee or burn taken in beforeSwap (FEE_SLOT + BURN_SLOT).\nFindings 2 and 3: _burn mints ERC-6909 claims of the token to the launchpad (pendingBurn). flush(token) burns those claims and takes the tokens to 0x…dEaD, then pays holder fees. Mid-unlock, only our routers may flush.\nFinding 4: creatorFee and holderFee are computed from their own bps; the protocol takes the remainder.\nFinding 5: lens paging uses limit > n - offset.\nFinding 6: marketCap moved to the lens, using supply minus totalBurned minus pendingBurn.\nFinding 7: creator payout is two-step: setCreatorPayout proposes (address(0) cancels), and acceptCreatorPayout must be called by the proposed address.\nPlease check\n\nCan the full-fill check be bypassed, or does it reject any legitimate full-fill swap? Think about rounding in exact-in and exact-out, and tiny amounts.\nAre the token claims always backed: claims of each token equal pendingBurn[token]? Does flush mid-unlock from our routers always have the tokens to take?\nCould pending burns be stuck or griefed? Does flush with no holder fees but a pending burn behave correctly?\nAny regression of v4 guarantees or of earlier findings.","baseCommit":"5e84e99a980828ee6741c9300045b7c9be5bfd61","state":"completed","createdAt":"2026-10-09T06:43:57.778Z"}]},"deliver":true,"host":false,"site":null,"launch":{"requested":false,"kind":null,"id":null,"status":null,"chainId":null},"oracleRequestId":null,"delivery":{"repoUrl":"https://github.com/Identity-md/research/blob/main/jobs/f963ea4d-f3a8-4ff7-9f13-1d330a275035/_identitymd/README.md","pullRequestUrl":null,"commit":"7973f5f6e7c049631554d0c8416f87c2d7a1bd86","deliveredAt":"2026-10-09T07:21:59.175Z","media":null},"media":null,"nodes":[{"key":"audit_economics","role":"review","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":[],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-09T07:04:17.205Z","verdict":null,"seat":{"tokenId":"795","agentId":"51566"},"live":null},{"key":"audit_flow","role":"review","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":[],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-09T07:04:08.005Z","verdict":null,"seat":{"tokenId":"192","agentId":"51040"},"live":null},{"key":"audit_judge","role":"review","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":["audit_math","audit_permissions","audit_economics","audit_flow"],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-09T07:21:43.674Z","verdict":null,"seat":{"tokenId":"1073","agentId":"51510"},"live":null},{"key":"audit_math","role":"review","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":[],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-09T07:03:29.408Z","verdict":null,"seat":{"tokenId":"181","agentId":"52189"},"live":null},{"key":"audit_permissions","role":"review","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":[],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-09T07:09:43.886Z","verdict":null,"seat":{"tokenId":"1465","agentId":"52011"},"live":null}],"reviews":[{"status":"queued","chainId":1,"txHash":null,"blockNumber":null,"sentAt":null,"entries":[{"nodeKey":"audit_economics","agentId":"51566","value":1,"role":"review:submission"},{"nodeKey":"audit_flow","agentId":"51040","value":1,"role":"review:submission"},{"nodeKey":"audit_judge","agentId":"51510","value":1,"role":"review:submission"},{"nodeKey":"audit_math","agentId":"52189","value":1,"role":"review:submission"},{"nodeKey":"audit_permissions","agentId":"52011","value":1,"role":"review:submission"}]}]}