{"assessments":[],"deployments":[],"fuzz":[],"identity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"interpretation":"Records acceptance and evidence. Neither completion nor an AI assessment establishes correctness, safety, or independent review.","jobId":"304442c7-ace1-442b-b54a-6c79a2f5eeb9","kind":"shape:chain","nodes":[{"acceptedSubmissionHash":"81d1ae7be674a6afa69208b60d034e00ceb479f9c280cbb40a962076e628bf30","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","tools":[]},"key":"audit_economics","kind":"code","role":"review","skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","state":"accepted"},{"acceptedSubmissionHash":"dd04bda73d8795c55f6836000d862c668ece873f3230bd5517f0bfd4f8e5eb5e","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","tools":[]},"key":"audit_flow","kind":"code","role":"review","skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","state":"accepted"},{"acceptedSubmissionHash":"910be4bfbb0c4687e17b830724d61e3f6a8c06c8d286c261ad13cd3e5e71b671","dependsOn":["build_contract_project","write_foundry_tests","manifest","audit_math","audit_permissions","audit_economics","audit_flow"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"af3aa01159bbf354f621cafa5c0006f6169e0938a8b015be508b7377dbf165bc","skillId":"audit-judge","tools":[]},"key":"audit_judge","kind":"code","role":"review","skillHash":"af3aa01159bbf354f621cafa5c0006f6169e0938a8b015be508b7377dbf165bc","skillId":"audit-judge","state":"accepted"},{"acceptedSubmissionHash":"dc8ec36cb02584007bfc7a57445c99b59bbc1ac1a2d73439f812aed09ba95a10","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","tools":[]},"key":"audit_math","kind":"code","role":"review","skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","state":"accepted"},{"acceptedSubmissionHash":"8ca9c53234c218dbc6a9688ef57de9e5d85a826dc5ce61182d731f8d04f24f2a","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","tools":[]},"key":"audit_permissions","kind":"code","role":"review","skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","state":"accepted"},{"acceptedSubmissionHash":"872112c97b879f1ec2602a9eb7db1c8ddab886945bc53ad9e6148924c87e96d5","dependsOn":[],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"6b8d2c2ebd3301cff2be8edb1e1cc6ba65c858c02fe7247be81722b969842265","skillId":"build-contract-project","tools":[]},"key":"build_contract_project","kind":"code","role":"implement","skillHash":"6b8d2c2ebd3301cff2be8edb1e1cc6ba65c858c02fe7247be81722b969842265","skillId":"build-contract-project","state":"accepted"},{"acceptedSubmissionHash":"2350197327e0f5ca1354c52a9939d7cb570386d730ecb2949bfed01bc18b7b3f","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"tools":[]},"key":"manifest","kind":"code","role":"integrate","skillHash":null,"skillId":null,"state":"accepted"},{"acceptedSubmissionHash":"6ba4075b6f29555606827a89491727a55a5cdb851ec9a79c6b57dfefc1566c46","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"4c76766b00591dfe982fe85d3de589fdb2f810e5137c301155d1c5e36a1d3b23","skillId":"write-foundry-tests","tools":[]},"key":"write_foundry_tests","kind":"code","role":"tests","skillHash":"4c76766b00591dfe982fe85d3de589fdb2f810e5137c301155d1c5e36a1d3b23","skillId":"write-foundry-tests","state":"accepted"}],"objective":"A custom token: Aligned (ALIGN).\nToken name: Aligned\nToken symbol: ALIGN\nToken supply: 1,000,000,000 with 18 decimals, all minted once to the deployer in the constructor.","parentJobId":null,"planHash":"8da26c45484a73d485b5733e548654d4cdcd3479305c8b34423c62f96aecba34","previousHash":"0000000000000000000000000000000000000000000000000000000000000000","projectId":"304442c7-ace1-442b-b54a-6c79a2f5eeb9","publication":{"commit":null,"deliveredAt":null,"repoUrl":"https://github.com/identity-md-launches/launch-1705-aligned"},"receiptIdentity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"registry":"0xb6d0a187b050fa5bb0b87033a203f37becf4a775","research":[],"schema":"identitymd-work-v1","signals":[{"agentId":"51168","feedbackHash":"e141e8634d76056889eff24172eb52f1349b21770e0c1b4b37420b59701a9d74","nodeKey":"audit_economics","submissionHash":"81d1ae7be674a6afa69208b60d034e00ceb479f9c280cbb40a962076e628bf30","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52161","feedbackHash":"93b17c2d105153cf6cea33cc9862ed7ddcb08b344762f21c977a683036e14a58","nodeKey":"audit_flow","submissionHash":"dd04bda73d8795c55f6836000d862c668ece873f3230bd5517f0bfd4f8e5eb5e","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51145","feedbackHash":"9f2540b7689da35875305e830e12b85e04297f92f05223d278fa26a64a6e3006","nodeKey":"audit_judge","submissionHash":"910be4bfbb0c4687e17b830724d61e3f6a8c06c8d286c261ad13cd3e5e71b671","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51319","feedbackHash":"887f0f83025356b616280f703b4091ee3dffb94494ccd4f5ad6a2788fa073f35","nodeKey":"audit_math","submissionHash":"dc8ec36cb02584007bfc7a57445c99b59bbc1ac1a2d73439f812aed09ba95a10","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52173","feedbackHash":"26699b07deac71bc5295ea6069a689cf10bac4b9423f5979c0d6df4c87d380c2","nodeKey":"audit_permissions","submissionHash":"8ca9c53234c218dbc6a9688ef57de9e5d85a826dc5ce61182d731f8d04f24f2a","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52588","feedbackHash":"6f497e65386563bc071ca17db7b2a40ff0b9ff0e9f0f0fc907eee522396de500","nodeKey":"build_contract_project","submissionHash":"872112c97b879f1ec2602a9eb7db1c8ddab886945bc53ad9e6148924c87e96d5","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"51184","feedbackHash":"fe01ffdbaeca4a274203face306a96b8cd9a6b933659119e2c97a236d849a918","nodeKey":"manifest","submissionHash":"2350197327e0f5ca1354c52a9939d7cb570386d730ecb2949bfed01bc18b7b3f","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"52212","feedbackHash":"27adb5f507a44da72d06ff1b02e9d8ef43c8519ed523802366d60188352de323","nodeKey":"write_foundry_tests","submissionHash":"6ba4075b6f29555606827a89491727a55a5cdb851ec9a79c6b57dfefc1566c46","tag1":"verification:checks","tag2":"acceptance-v2","value":1}],"site":null,"snapshotHash":"21271a57c6d5b7691d8a06e687321874af678f2c55b711d411608b850b97f75a","state":"completed","submissions":[{"artifacts":[],"attempt":1,"bundleHash":null,"device":"4539d3d0693a7444","findings":[],"hash":"07eb1dde9e8bd434a4ac84771c86a7ba19968cf753527266a5bf955d365689a6","nodeId":"95fa2037-c385-4bb0-a9e7-d9dc34ab87fd","outcome":"failed","summary":"Selected model is at capacity. Please try a different model.","treeHash":null,"usage":{"cachedInputTokens":0,"inputTokens":0,"model":"gpt-6-astra","outputTokens":0,"runtime":"codex","turns":3,"wallClockMs":396568}},{"artifacts":[],"attempt":1,"bundleHash":"8cd0f82ff8f2021cbfa604f7d5f366abb359b3d3820f6516f0f1a7128aa72b03","device":"540f6378761dba26","findings":[],"hash":"2350197327e0f5ca1354c52a9939d7cb570386d730ecb2949bfed01bc18b7b3f","nodeId":"aa797880-6a13-4001-8269-98d71281d763","outcome":"completed","summary":"Created `launch.json` matching Aligned’s constructor, exact supply, and required pool and economics values. No application contracts are listed.\n\n`forge build` succeeded. All 28 tests passed with the supplied fuzz seed. Only `launch.json` is changed for submission.","treeHash":"93781b56c344635f7c0564016700a147ecc63614","usage":{"cachedInputTokens":170624,"inputTokens":21719,"model":"gpt-6-astra","outputTokens":2010,"runtime":"codex","turns":3,"wallClockMs":126388}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"500cef6ec1073663","findings":[],"hash":"5413fe2490dddbeb75615b7b7ed4b7fdc15201568c2448093f9c998d819c9b77","nodeId":"95fa2037-c385-4bb0-a9e7-d9dc34ab87fd","outcome":"failed","summary":"Selected model is at capacity. Please try a different model.","treeHash":null,"usage":{"cachedInputTokens":0,"inputTokens":0,"model":"gpt-6-astra","outputTokens":0,"runtime":"codex","turns":1,"wallClockMs":34463}},{"artifacts":[],"attempt":1,"bundleHash":"8302a444a24fce11f52ca33ec729565ae31e52ec9b0e7c582c73fa2abeeba451","device":"68fdf4cb027a7a1f","findings":[],"hash":"6ba4075b6f29555606827a89491727a55a5cdb851ec9a79c6b57dfefc1566c46","nodeId":"84ca065d-e72f-40ea-9503-f46a9cb13789","outcome":"completed","summary":"Added failure-path and boundary tests, six fuzz properties, and three multi-actor invariants under `test/`.\n\n`forge build` and the full `forge test` pass with the required seed, including 32,768 randomized handler calls. No reproducible defects found. All changes are confined to `test/`.","treeHash":"8dd30e3869c0f9ceeddfcdd89da9c0fc31a0685e","usage":{"cachedInputTokens":961024,"inputTokens":144590,"model":"gpt-6-astra","outputTokens":14559,"runtime":"codex","turns":5,"wallClockMs":604635}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"6208734cdf5317a1","findings":[],"hash":"81d1ae7be674a6afa69208b60d034e00ceb479f9c280cbb40a962076e628bf30","nodeId":"935380f3-3e0e-4a80-97a7-85037deacc70","outcome":"completed","summary":"The review is complete and the findings file is written. Nothing else depends on further tool calls.\n\n**Result: no defects found.** The economic review of the Aligned (ALIGN) token is clean, and `.imd-findings.json` holds an empty findings list with eight coverage rows, one per entry point plus five invariant and flow rows.\n\n**What was checked**\n\n- **Source and dependencies.** The token is a 15-line contract: a constant and a constructor mint on top of OpenZeppelin ERC20. The five vendored OpenZeppelin files hash-match upstream v5.1.0 byte for byte, so the transfer logic is exactly the audited library code.\n- **Entry points.** approve, transfer and transferFrom are the only state-changing functions in the compiled ABI. Each was traced through its checks, state writes and revert paths. All three hold.\n- **Invariants.** Total supply is fixed at 1e27 from the constructor and no mint, burn or admin path exists. Sum of balances equals total supply under the repository's fuzz suite and a scratch fuzz suite I ran.\n- **Launch flows.** A scratch suite drove the factory to distributor transfer, a claim out of the distributor, a PoolManager-style balance-delta settle for the seed, the remainder forward, and a trader buy and sell round trip. Every flow moved exactly the stated amount with no callbacks or external calls in the path.\n- **Floor checks.** Runtime bytecode contains no DELEGATECALL, CALLCODE or SELFDESTRUCT. Ether sent to the token reverts. The factory cannot move a holder's balance without an approval.\n- **Static analysis leads.** Slither reported nothing. Aderyn's large-literal lead on line 10 is a compile-time constant equal to the manifest supply, confirmed benign.\n\n**Tools run.** forge build, the 28 repository tests with the README seed, a 6-test scratch suite under test/scratch (removed afterwards so the tree is unchanged), and forge fmt. All passed.\n\n**Open items, not defects.** No launch.json exists yet, which is expected at this stage. The README's supply, 18 decimals and empty constructor arguments match the token and are what the manifest step should write. The ERC-20 approve race and the unrecoverability of tokens sent to the contract itself are inherent to a no-admin fixed-supply token and are documented in the README as trust notes.","treeHash":null,"usage":{"cachedInputTokens":918381,"inputTokens":482,"model":"claude-fable-5-1","outputTokens":10393,"runtime":"claude","turns":16,"wallClockMs":163097}},{"artifacts":[],"attempt":1,"bundleHash":"4c44388ab643715032b51704a3b30dbf2d64c1ffee6c05ae0c8560df4f5f2d8d","device":"44450269f7620ab4","findings":[],"hash":"872112c97b879f1ec2602a9eb7db1c8ddab886945bc53ad9e6148924c87e96d5","nodeId":"95fa2037-c385-4bb0-a9e7-d9dc34ab87fd","outcome":"completed","summary":"Implemented Aligned (ALIGN): 1 billion tokens with 18 decimals, minted once to the deployer.\n\nIncluded vendored dependencies, 28 success/failure tests, and documentation covering deployment, assumptions, and responsibilities.\n\nVerified:\n- `forge build`, including an offline rebuild\n- `forge test` with the supplied fuzz seed: 28 passed\n- `forge fmt --check`","treeHash":"3a8506bec8236d6292d1c37cdbf68c658cbba1a2","usage":{"cachedInputTokens":284288,"inputTokens":40548,"model":"gpt-6.1-sol","outputTokens":8255,"runtime":"codex","turns":5,"wallClockMs":268101}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"c2e167266d13dcf4","findings":[{"citation":"resolved","description":"Asymmetry guide, approve <-> pull pair. Aligned inherits OpenZeppelin v5.1.0 ERC20 unmodified (vendored files hash-identical to upstream v5.1.0). approve() overwrites the allowance rather than adjusting it, and v5 ships no increaseAllowance/decreaseAllowance, so a holder who changes a nonzero allowance for an untrusted spender can be front-run and have both the old and the new allowance spent. This is the behaviour of the ERC-20 standard itself and the README (lines 79-83) already tells holders to zero an allowance first. It is recorded here so the judge has the trace; it needs no code change and must not be fixed by altering the agreed design (no owner, no extra entry points).","line":8,"path":"src/Aligned.sol","reproduction":"State: factory holds supply, has done approve(spender, 100). Sequence: (1) factory submits approve(spender, 50); (2) spender sees it in the mempool and front-runs transferFrom(factory, spender, 100) -> succeeds, allowance 0; (3) factory's approve(spender, 50) lands, allowance 50; (4) spender calls transferFrom(factory, spender, 50) -> succeeds. Expected by a naive owner: at most 100 spendable. Actual: 150 spent. Mitigation is procedural (approve 0 first, as README states), not a contract change.","severity":"info","snippet":"contract Aligned is ERC20 {","title":"Inherited ERC-20 approve/transferFrom allowance race (standard behaviour, not an implementation defect)"}],"hash":"8ca9c53234c218dbc6a9688ef57de9e5d85a826dc5ce61182d731f8d04f24f2a","nodeId":"a25399e2-1f36-4c9c-a1b9-172ce3d28e4a","outcome":"completed","summary":"The review is complete and `.imd-findings.json` is written. The Aligned token is clean in my area.\n\n**Result: no defects in Access Control, Trust Gap or Asymmetry.** One informational note is recorded.\n\n**What I checked**\n\n- **Access control surface.** The compiled ABI exposes only the ERC-20 functions and one constant getter. There is no owner, role, pause, blacklist, mint, burn, initializer, fallback or receive. Unknown selectors and plain ETH sends revert.\n- **Guard consistency.** Both transfer paths write balances through the same internal update with identical checks. The allowance row can only be set by its owner and only decremented by the approved spender, bounded by the current allowance. The factory, which holds the whole supply at launch, has no bypass and needs an allowance like any holder.\n- **Trust gap.** No privileged actor, fee or settable recipient exists, so there is no seam between authorization, economics and asymmetry to exploit.\n- **Vendored library.** All five OpenZeppelin files hash identically to upstream v5.1.0, so the inherited logic is the audited one.\n- **Launch floor.** The constructor mints exactly 1e27 units to the immediate caller, with no arguments and no external calls. The runtime bytecode, scanned with the floor test's own loop, contains no DELEGATECALL, CALLCODE or SELFDESTRUCT. The aderyn large-literal lead evaluates to exactly one billion tokens and is not a defect.\n\n**Verification run**\n\n| Check | Outcome |\n| --- | --- |\n| forge build, forge fmt --check | pass |\n| Project suite (28 tests, pinned seed) | all pass |\n| Scratch probes (8 tests, removed afterwards) | all pass |\n\n**Informational finding.** The inherited approve-then-transferFrom allowance race is recorded at info severity with a concrete trace, because the Asymmetry guide's approve/pull pair points at it. It is standard ERC-20 behaviour, the README already documents the mitigation, and it needs no code change.\n\n**Coverage.** All three listed entry points are marked `holds`, plus five invariant rows covering the constructor, access map, trust gap, storage symmetry and floor compatibility. No files in the repository were modified.","treeHash":null,"usage":{"cachedInputTokens":405943,"inputTokens":194,"model":"claude-fable-5-1","outputTokens":13702,"runtime":"claude","turns":20,"wallClockMs":228710}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"3b9f88f55251764d","findings":[{"citation":"resolved","description":"Merged from audit_permissions (its only finding); audit_math, audit_flow, audit_economics and write_foundry_tests reported nothing. Aligned inherits OpenZeppelin Contracts v5.1.0 ERC20 unmodified: every vendored file under lib/openzeppelin-contracts was compared by SHA-256 against the upstream v5.1.0 tag and matches. approve() calls _approve(owner, spender, value) which overwrites the stored allowance instead of adjusting it, and v5 ships no increaseAllowance/decreaseAllowance. A holder who replaces a nonzero allowance for an untrusted spender in one transaction can be front-run so that both the old and the new allowance are spent. This is the behaviour of the ERC-20 standard itself, is present in every OpenZeppelin-based token, and README.md ('When replacing a nonzero allowance for an untrusted spender, first set it to zero...') already states the procedural mitigation. It is recorded for the author's trace only; it is not an implementation defect, does not affect supply, launch flows, the pool seed or swaps, and needs no revision. Adding increase/decrease helpers or a zero-first guard would add entry points the agreed design does not have and is not recommended.","line":8,"path":"src/Aligned.sol","reproduction":"Reproduced with a Foundry test against the current tree (scratch test, removed). State: holder H deploys Aligned (balance 1e27), calls approve(S, 100). Sequence: (1) H broadcasts approve(S, 50); (2) S front-runs with transferFrom(H, S, 100): _spendAllowance sees 100 >= 100, allowance becomes 0, transfer succeeds; (3) H's approve(S, 50) lands: allowance is set to 50; (4) S calls transferFrom(H, S, 50): succeeds. Expected by a naive holder: at most 100 base units spendable. Actual: balanceOf(S) == 150, totalSupply unchanged at 1_000_000_000e18. Mitigation is procedural (approve(S, 0) first and wait for inclusion), as README.md documents.","severity":"info","snippet":"contract Aligned is ERC20 {","title":"Standard ERC-20 approve overwrite race (inherited OpenZeppelin v5.1.0 behaviour, no code change required)"}],"hash":"910be4bfbb0c4687e17b830724d61e3f6a8c06c8d286c261ad13cd3e5e71b671","nodeId":"9c665021-b368-4da2-94bf-e92d0c100338","outcome":"completed","summary":"Review complete. The findings file is valid JSON and the working tree is clean apart from the gitignored build output.\n\n**Outcome:** the Aligned token has no defects. One informational note is kept, and no revision is needed.\n\n**What I checked**\n\n- The token is a 15-line contract inheriting OpenZeppelin v5.1.0 ERC20 with a zero-argument constructor that mints the supply to the caller. Every vendored OpenZeppelin file matched the upstream v5.1.0 tag by SHA-256.\n- I traced all three entry points through the library: zero-address rejection, balance and allowance reverts, exact amount movement, no fees or callbacks, and no supply change.\n- The constant equals the manifest supply exactly, decimals are 18, and the manifest has valid keys, types, lowercase addresses and an empty constructor argument list matching the constructor.\n- Deployed and creation code sizes are far under the limits, and no DELEGATECALL, CALLCODE or SELFDESTRUCT is present. No mint, burn, owner, pause, blacklist or upgrade path exists, so the protected floor tests cannot be tripped.\n- The project suite of 46 tests passed with the pinned fuzz seed, and the format check passed.\n\n**Specialist findings**\n\n- Four areas reported nothing. The permissions specialist's single info note, the standard ERC-20 approve overwrite race, reproduced: I ran a scratch test showing a front-running spender collecting 150 units from allowances of 100 then 50. I kept it at info with the explicit statement that it is standard behaviour, already documented in the README, and requires no code change.\n\n**Coverage** answers all three entry points, plus rows for the supply, privilege, launch-flow and manifest invariants.","treeHash":null,"usage":{"cachedInputTokens":462504,"inputTokens":322,"model":"claude-fable-5-1","outputTokens":7866,"runtime":"claude","turns":11,"wallClockMs":147128}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"3214f8c0db0ff7b5","findings":[],"hash":"c563e1dcf3254c1f047e2f1852e247ce8f44b045930b45cbc28c16b95a2eaef8","nodeId":"95fa2037-c385-4bb0-a9e7-d9dc34ab87fd","outcome":"failed","summary":"Selected model is at capacity. Please try a different model.","treeHash":null,"usage":{"cachedInputTokens":0,"inputTokens":0,"model":"gpt-6.1-sol","outputTokens":0,"runtime":"codex","turns":1,"wallClockMs":34429}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"8eebc53449bafe7b","findings":[],"hash":"dc8ec36cb02584007bfc7a57445c99b59bbc1ac1a2d73439f812aed09ba95a10","nodeId":"afdc4e1e-c66c-4ea6-a6df-1472741c175a","outcome":"completed","summary":"The review is complete and the result is clean. `.imd-findings.json` holds zero findings and eight coverage rows, one per entry point plus the invariants and boundaries I checked.\n\n**What the token is.** `src/Aligned.sol` is a bare OpenZeppelin v5 ERC-20 with one constructor mint of exactly one billion tokens at 18 decimals to the deployer. There is no custom arithmetic, no override of transfer logic, no mint, burn, pause, owner, receive or fallback.\n\n**What I checked in my area (Math Precision, Boundary, Numerical Gap):**\n- **Supply constant.** The literal `1_000_000_000 * 10 ** 18` evaluates to exactly 1e27, well under 2^128. The aderyn \"large numeric literal\" lead is a style note, not a defect.\n- **Transfer boundaries.** 1 wei, full supply, supply plus one, uint256 max, self-transfer of the full supply, and zero-amount to the zero address all behave as intended. Insufficient balance reverts before the unchecked subtraction. The receiver add cannot overflow because balances sum to the fixed supply.\n- **Allowance boundaries.** Exact spend leaves zero, off-by-one reverts with allowance untouched, max minus one is finite and decremented, max is treated as infinite and preserved, zero-amount with zero allowance succeeds and moves nothing, and a balance shortfall reverts even with a huge allowance.\n- **Invariants.** Fuzzed conservation of supply across transfers, plus the existing 28 project tests, all pass. No path reaches a mint or burn after the constructor.\n- **External boundaries.** No external calls, payable functions, sentinel branches beyond OZ's zero-address checks, or bytes decoding exist.\n- **Launch floor opcode scan.** A disassembly matching the protected test's PUSH-skipping walk finds no real DELEGATECALL, CALLCODE or SELFDESTRUCT in the compiled runtime.\n\n**Scratch work.** I wrote an 18-test boundary suite under test/scratch/, ran it (all passed), and removed it so the only file I leave is the findings record.\n\n**Note for the manifest step.** No launch.json exists yet. The constructor takes no parameters, so constructorArgs must be an empty list, totalSupply must be the 28-digit string for 1e27, decimals 18, contract name Aligned.","treeHash":null,"usage":{"cachedInputTokens":514563,"inputTokens":322,"model":"claude-fable-5-1","outputTokens":10948,"runtime":"claude","turns":17,"wallClockMs":180865}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"ca075d17c94a854b","findings":[],"hash":"dd04bda73d8795c55f6836000d862c668ece873f3230bd5517f0bfd4f8e5eb5e","nodeId":"c2e0ef0c-4b1e-49b5-8af0-c024dc5f8c72","outcome":"completed","summary":"The review is complete and the findings file is written. The working tree has no changes other than the findings file, which is gitignored or untracked as intended.\n\n**Result: no defects found.** The review file `.imd-findings.json` holds an empty findings list and nine coverage rows, all `holds`.\n\n**What was reviewed, against the Execution Trace, Periphery and First Principles guides:**\n\n- **Source.** The token is fifteen lines: an OpenZeppelin ERC20 subclass with a constant supply and a constructor that mints it to the caller. No owner, hooks, fees, exemptions, receive or fallback.\n- **Execution trace.** Traced approve, transfer and transferFrom through the vendored implementation. Every failure path reverts atomically, allowance is spent before the balance moves, infinite allowance is preserved, zero receiver and zero approver revert, and malformed calldata is rejected at decode time.\n- **Periphery.** The five vendored OpenZeppelin files hash-match the upstream v5.1.0 tag byte for byte. The compiled creation and runtime code contain no DELEGATECALL, CALLCODE, SELFDESTRUCT or CALL.\n- **First principles.** The supply constant evaluates at compile time to exactly the brief's base-unit figure. The mint goes to the immediate caller, which is the CREATE2 factory in the launch, confirmed by the project's factory probe test. No selector outside the ERC-20 set exists, so no supply growth or holder freeze is reachable.\n- **Checks run.** The project's 28 tests pass with the README's fuzz seed. Ten scratch edge tests I wrote also passed, covering self-spend, near-max allowance decrement, self-to-self transferFrom, transfer to the token address, ether rejection, unknown selectors, short and dirty calldata, a contract holder, and three-party conservation. The scratch directory was removed afterwards.\n\n**Not run.** The protected launch test needs Uniswap v4 sources and launch environment variables that are not in this tree, so the launch flows were traced rather than executed. Since the token has no transfer customisation, every launch flow is a plain balance move.\n\n**One note, not a defect.** The runtime uses PUSH0 and MCOPY because the pinned profile is Cancun, so the target chain must support Cancun. Ethereum mainnet and the major L2s do. The aderyn large-numeric-literal lead is style only.","treeHash":null,"usage":{"cachedInputTokens":419616,"inputTokens":194,"model":"claude-fable-5-1","outputTokens":10937,"runtime":"claude","turns":22,"wallClockMs":169082}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"a7313281793d3077","findings":[],"hash":"f9591860fd9d4253a224456338347cdfaaeffc942505c85eb31e555f955ede9a","nodeId":"95fa2037-c385-4bb0-a9e7-d9dc34ab87fd","outcome":"failed","summary":"Selected model is at capacity. Please try a different model.","treeHash":null,"usage":{"cachedInputTokens":0,"inputTokens":0,"model":"gpt-6-astra","outputTokens":0,"runtime":"codex","turns":1,"wallClockMs":78829}}],"verification":[{"checks":[{"durationMs":885,"exitCode":0,"name":"build","output":"Compiling 25 files with Solc 0.8.26\nSolc 0.8.26 finished in 808.91ms\nCompiler run successful!\n","passed":true},{"durationMs":245,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 28 tests for test/Aligned.t.sol:AlignedTest\n[PASS] testFuzz_MixedOperationSequenceConservesSupply(bytes32) (runs: 256, μ: 3808179, ~: 3801736)\n[PASS] testFuzz_OverspendingRevertsWithoutMutation(uint256) (runs: 256, μ: 119381, ~: 119349)\nLogs:\n  Bound result 100000000000000000000\n\n[PASS] testFuzz_TransferConservesSupply(address,uint256) (runs: 256, μ: 93034, ~: 93242)\nLogs:\n  Bound result 2861827\n\n[PASS] testFuzz_TransferFromTracksAllowance(uint256,uint256) (runs: 256, μ: 162258, ~: 164901)\nLogs:\n  Bound result 818945817491484126255179780\n  Bound result 792504611139272911311226159\n\n[PASS] test_ApprovalCannotBeUsedByOtherCaller() (gas: 105182)\n[PASS] test_ApproveEmitsOverwritesAndRevokes() (gas: 157886)\n[PASS] test_ConstructorEmitsMint() (gas: 5464)\n[PASS] test_Create2MintsEntireSupplyToFactory() (gas: 209004)\n[PASS] test_InfiniteAllowanceIsPreserved() (gas: 133705)\n[PASS] test_MetadataAndInitialSupply() (gas: 107502)\n[PASS] test_NoMintBurnFreezeOrUpgradeEntryPoints() (gas: 513656)\n[PASS] test_RevertApproveZeroSpender() (gas: 37574)\n[PASS] test_RevertInsufficientBalance() (gas: 57399)\n[PASS] test_RevertTransferFromExceedingAllowance() (gas: 103141)\n[PASS] test_RevertTransferFromInsufficientBalanceRollsBackAllowance() (gas: 113562)\n[PASS] test_RevertTransferFromToZeroRollsBackAllowance() (gas: 103780)\n[PASS] test_RevertTransferFromWithoutAllowance() (gas: 57838)\n[PASS] test_RevertTransferFromZeroSender() (gas: 35343)\n[PASS] test_RevertTransferMoreThanSupply() (gas: 42362)\n[PASS] test_RevertTransferToZeroEvenForZeroAmount() (gas: 71927)\n[PASS] test_RevokedApprovalCannotSpend() (gas: 110397)\n[PASS] test_SelfTransferPreservesBalance() (gas: 51441)\n[PASS] test_TransferEmitsAndDeliversExactAmount() (gas: 91496)\n[PASS] test_TransferEntireSupply() (gas: 161712)\n[PASS] test_TransferFromConsumesAllowanceAndEmitsTransfer() (gas: 231713)\n[PASS] test_TransferToContractNeedsNoReceiverHook() (gas: 227015)\n[PASS] test_ZeroTransferFromEmptyAccountEmits() (gas: 73331)\n[PASS] test_ZeroTransferFromNeedsNoAllowance() (gas: 63892)\nSuite result: ok. 28 passed; 0 failed; 0 skipped; finished in 137.71ms (169.88ms CPU time)\n\nRan 1 test suite in 138.76ms (137.71ms CPU time): 28 tests passed, 0 failed, 0 skipped (28 total tests)\n","passed":true},{"durationMs":35,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"Aligned.approve(address,uint256)\",\"Aligned.transfer(address,uint256)\",\"Aligned.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":3,\"README.md\":104,\"foundry.toml\":13,\"launch.json\":24,\"remappings.txt\":2,\"src/Aligned.sol\":15,\"test/Aligned.t.sol\":330},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"2350197327e0f5ca1354c52a9939d7cb570386d730ecb2949bfed01bc18b7b3f","verifiedTreeHash":"93781b56c344635f7c0564016700a147ecc63614","verifierVersion":"0.1.0+67c588fa"},{"checks":[{"durationMs":1365,"exitCode":0,"name":"build","output":"Compiling 28 files with Solc 0.8.26\nSolc 0.8.26 finished in 1.30s\nCompiler run successful!\n","passed":true},{"durationMs":14129,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 16 tests for test/Aligned.adversarial.t.sol:AlignedAdversarialTest\n[PASS] testFuzz_ApprovalReplacementIsIdempotentAndIsolated(uint256,uint256) (runs: 1000, μ: 292081, ~: 293126)\n[PASS] testFuzz_FailedBalanceCheckPreservesFiniteAllowance(uint256,uint256) (runs: 1000, μ: 206647, ~: 207392)\nLogs:\n  Bound result 52071775403932843268014208\n  Bound result 103834806785108843909665476006890875870523\n\n[PASS] testFuzz_InsufficientAllowanceFailsEvenWithSufficientBalance(uint256,uint256,uint256) (runs: 1000, μ: 203608, ~: 205423)\nLogs:\n  Bound result 171754917040224558538400589\n  Bound result 117521601722235\n  Bound result 171754917040107489290384547\n\n[PASS] testFuzz_InvalidReceiverPreservesFiniteOrInfiniteAllowance(uint256,bool) (runs: 1000, μ: 126756, ~: 126053)\nLogs:\n  Bound result 192521606467397139634856742\n\n[PASS] testFuzz_SplitSpendingHasSameNetEffect(uint256,uint256,uint256) (runs: 1000, μ: 274315, ~: 275875)\nLogs:\n  Bound result 97094197666465\n  Bound result 39823989138994\n  Bound result 115792089237316195423570985008687907853269984665640564039457583910818931973512\n\n[PASS] testFuzz_TransferRoundTripPreservesBalancesAndPermissions(uint256,uint256) (runs: 1000, μ: 187089, ~: 187685)\nLogs:\n  Bound result 52071775403932843268014208\n\n[PASS] test_DelegatedSelfTransferConsumesPermissionAndCannotBeReplayed() (gas: 158521)\n[PASS] test_DeployerCannotClawBackDistributedTokens() (gas: 163973)\n[PASS] test_FullSupplyDelegatedTransferExhaustsAllowance() (gas: 259979)\n[PASS] test_InfiniteAllowanceSurvivesEmptyBalanceAndCanBeReplacedAndRevoked() (gas: 540443)\n[PASS] test_MaximumMinusOneApprovalIsFinite() (gas: 229854)\n[PASS] test_MaximumTransferAmountsRevertWithoutOverflowOrAllowanceLoss() (gas: 158348)\n[PASS] test_OwnerCallingTransferFromNeedsSelfApproval() (gas: 179532)\n[PASS] test_SelfTransferStillRequiresEnoughBalance() (gas: 105718)\n[PASS] test_ZeroDelegatedTransferEmitsButZeroRecipientStillReverts() (gas: 177602)\n[PASS] test_ZeroSpenderRejectsZeroAndMaximumApproval() (gas: 72814)\nSuite result: ok. 16 passed; 0 failed; 0 skipped; finished in 116.40ms (390.37ms CPU time)\n\nRan 28 tests for test/Aligned.t.sol:AlignedTest\n[PASS] testFuzz_MixedOperationSequenceConservesSupply(bytes32) (runs: 256, μ: 3804561, ~: 3799103)\n[PASS] testFuzz_OverspendingRevertsWithoutMutation(uint256) (runs: 256, μ: 119383, ~: 119349)\nLogs:\n  Bound result 923\n\n[PASS] testFuzz_TransferConservesSupply(address,uint256) (runs: 256, μ: 93152, ~: 93254)\nLogs:\n  Bound result 2861827\n\n[PASS] testFuzz_TransferFromTracksAllowance(uint256,uint256) (runs: 256, μ: 162201, ~: 164901)\nLogs:\n  Bound result 2278062917074753723\n  Bound result 1352879807577533615\n\n[PASS] test_ApprovalCannotBeUsedByOtherCaller() (gas: 105182)\n[PASS] test_ApproveEmitsOverwritesAndRevokes() (gas: 157886)\n[PASS] test_ConstructorEmitsMint() (gas: 5464)\n[PASS] test_Create2MintsEntireSupplyToFactory() (gas: 209004)\n[PASS] test_InfiniteAllowanceIsPreserved() (gas: 133705)\n[PASS] test_MetadataAndInitialSupply() (gas: 107502)\n[PASS] test_NoMintBurnFreezeOrUpgradeEntryPoints() (gas: 513656)\n[PASS] test_RevertApproveZeroSpender() (gas: 37574)\n[PASS] test_RevertInsufficientBalance() (gas: 57399)\n[PASS] test_RevertTransferFromExceedingAllowance() (gas: 103141)\n[PASS] test_RevertTransferFromInsufficientBalanceRollsBackAllowance() (gas: 113562)\n[PASS] test_RevertTransferFromToZeroRollsBackAllowance() (gas: 103780)\n[PASS] test_RevertTransferFromWithoutAllowance() (gas: 57838)\n[PASS] test_RevertTransferFromZeroSender() (gas: 35343)\n[PASS] test_RevertTransferMoreThanSupply() (gas: 42362)\n[PASS] test_RevertTransferToZeroEvenForZeroAmount() (gas: 71927)\n[PASS] test_RevokedApprovalCannotSpend() (gas: 110397)\n[PASS] test_SelfTransferPreservesBalance() (gas: 51441)\n[PASS] test_TransferEmitsAndDeliversExactAmount() (gas: 91496)\n[PASS] test_TransferEntireSupply() (gas: 161712)\n[PASS] test_TransferFromConsumesAllowanceAndEmitsTransfer() (gas: 231713)\n[PASS] test_TransferToContractNeedsNoReceiverHook() (gas: 227015)\n[PASS] test_ZeroTransferFromEmptyAccountEmits() (gas: 73331)\n[PASS] test_ZeroTransferFromNeedsNoAllowance() (gas: 63892)\nSuite result: ok. 28 passed; 0 failed; 0 skipped; finished in 130.05ms (261.51ms CPU time)\n\nRan 2 tests for test/Aligned.invariant.t.sol:AlignedInvariantTest\n[PASS]\nAlignedInvariantTest invariants:\n[PASS] invariant_eachBalanceMatchesRequestedFlows\n[PASS] invariant_fixedSupplyEqualsAllHolderBalances\n[PASS] invariant_onlyApprovedSpendingConsumesAllowance\n AlignedInvariantTest invariants (runs: 256, calls: 32768, reverts: 0)\n\n╭----------------+-----------------------------+-------+---------+----------╮\n| Contract       | Selector                    | Calls | Reverts | Discards |\n+===========================================================================+\n| AlignedHandler | approve                     | 3253  | 0       | 0        |\n|----------------+-----------------------------+-------+---------+----------|\n| AlignedHandler | approveUnlimited            | 3380  | 0       | 0        |\n|----------------+-----------------------------+-------+---------+----------|\n| AlignedHandler | approveZero                 | 3130  | 0       | 0        |\n|----------------+-----------------------------+-------+---------+----------|\n| AlignedHandler | revoke                      | 3246  | 0       | 0        |\n|----------------+-----------------------------+-------+---------+----------|\n| AlignedHandler | transfer                    | 3237  | 0       | 0        |\n|----------------+-----------------------------+-------+---------+----------|\n| AlignedHandler | transferBeyondBalance       | 3279  | 0       | 0        |\n|----------------+-----------------------------+-------+---------+----------|\n| AlignedHandler | transferFrom                | 3352  | 0       | 0        |\n|----------------+-----------------------------+-------+---------+----------|\n| AlignedHandler | transferFromBeyondAllowance | 3291  | 0       | 0        |\n|----------------+-----------------------------+-------+---------+----------|\n| AlignedHandler | transferFromBeyondBalance   | 3373  | 0       | 0        |\n|----------------+-----------------------------+-------+---------+----------|\n| AlignedHandler | transferToZero              | 3227  | 0       | 0        |\n╰----------------+-----------------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 0\n  Bound result 1\n  Bound result 1\n  Bound result 2\n  Bound result 2\n  Bound result 3\n  Bound result 3\n  Bound result 4\n  Bound result 4\n  Bound result 0\n  Bound result 0\n  Bound result 2\n  Bound result 2\n  Bound result 1\n  Bound result 4\n  Bound result 3\n  Bound result 0\n  Bound result 0\n  Bound result 3\n  Bound result 115792089237316195423570985008687907853269984665640314039457584072398103748163\n  Bound result 0\n  Bound result 2\n  Bound result 2\n  Bound result 4\n  Bound result 2\n  Bound result 1\n  Bound result 137912378138441384155485006\n  Bound result 2\n  Bound result 0\n  Bound result 5\n  Bound result 4\n  Bound result 3\n  Bound result 5097\n  Bound result 4\n  Bound result 3\n  Bound result 0\n  Bound result 1\n  Bound result 1\n  Bound result 4\n  Bound result 3\n  Bound result 0\n  Bound result 4\n  Bound result 1\n  Bound result 2\n  Bound result 9609\n  Bound result 1\n  Bound result 0\n  Bound result 7810\n  Bound result 4\n  Bound result 0\n  Bound result 0\n  Bound result 2\n  Bound result 3\n  Bound result 3\n  Bound result 91478857427986161599543527\n  Bound result 4\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 2\n  Bound result 4\n  Bound result 163752297477748867540324487\n  Bound result 1\n  Bound result 1\n  Bound result 110608697675127208096399146\n  Bound result 1\n  Bound result 0\n  Bound result 115792089237316195423570985008687907853269984665640176127079445566528974162755\n  Bound result 3\n  Bound result 1\n  Bound result 4\n  Bound result 0\n  Bound result 2\n  Bound result 2\n  Bound result 0\n  Bound result 4\n  Bound result 4\n  Bound result 3\n  Bound result 1\n  Bound result 115792089237316195423570985008687907853269984665640222560600156021751530097004\n  Bound result 3\n  Bound result 2\n  Bound result 2\n  Bound result 1\n  Bound result 115792089237316195423570985008687907853269984665640564039457584007913129639934\n  Bound result 1\n  Bound result 0\n  Bound result 1\n  Bound result 0\n  Bound result 2\n  Bound result 1\n  Bound result 115792089237316195423570985008687907853269984665640543430693150435458884668473\n  Bound result 0\n  Bound result 4\n  Bound result 0\n  Bound result 7450580596923828124\n  Bound result 3\n  Bound result 2\n  Bound result 0\n  Bound result 3\n  Bound result 1\n  Bound result 0\n  Bound result 4\n  Bound result 1\n  Bound result 3\n  Bound result 4\n  Bound result 7\n  Bound result 0\n  Bound result 3\n  Bound result 1\n  Bound result 3327641368\n  Bound result 0\n  Bound result 4\n  Bound result 2\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 930\n  Bound result 1\n  Bound result 4\n  Bound result 0\n  Bound result 1\n  Bound result 86983612129976015188354312440054161487238549837098804\n  Bound result 2\n  Bound result 1\n  Bound result 2137\n  Bound result 0\n  Bound result 0\n  Bound result 4\n  Bound result 115792089237316195423570985008687907853269984665640314039457584007916457278078\n  Bound result 3\n  Bound result 2\n  Bound result 0\n  Bound result 2\n  Bound result 4\n  Bound result 3\n  Bound result 0\n  Bound result 1\n  Bound result 2\n  Bound result 2\n  Bound result 0\n  Bound result 0\n  Bound result 3\n  Bound result 46754820693794097096043366\n  Bound result 4\n  Bound result 4\n  Bound result 2\n  Bound result 3\n  Bound result 0\n  Bound result 1\n  Bound result 0\n  Bound result 962513405939451249774879029678615529712361978\n  Bound result 1\n  Bound result 0\n  Bound result 0\n  Bound result 1\n  Bound result 0\n  Bound result 2\n  Bound result 1660\n  Bound result 1\n  Bound result 4\n  Bound result 3\n  Bound result 4\n  Bound result 3\n  Bound result 0\n  Bound result 3\n  Bound result 1\n  Bound result 0\n  Bound result 0\n  Bound result 2\n  Bound result 0\n  Bound result 0\n  Bound result 14581091520345533225760946\n  Bound result 0\n  Bound result 0\n  Bound result 1\n  Bound result 4\n  Bound result 351266674058723635368748701\n  Bound result 4\n  Bound result 0\n  Bound result 3\n  Bound result 0\n  Bound result 1\n  Bound result 0\n  Bound result 3\n  Bound result 115792089237316195423570985008687907853269984665640176127139445566525646519235\n  Bound result 4\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 2\n  Bound result 1\n  Bound result 3\n  Bound result 3\n  Bound result 1\n  Bound result 2\n  Bound result 3\n  Bound result 1429922045\n  Bound result 4\n  Bound result 1\n  Bound result 3\n  Bound result 1\n  Bound result 0\n  Bound result 3\n  Bound result 2\n  Bound result 5\n  Bound result 0\n  Bound result 1\n  Bound result 0\n  Bound result 0\n  Bound result 3\n  Bound result 0\n  Bound result 3\n  Bound result 3\n  Bound result 1\n  Bound result 0\n  Bound result 3\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 1000000000\n  Bound result 3\n  Bound result 0\n  Bound result 1\n  Bound result 7000000000000000000\n  Bound result 4\n  Bound result 0\n  Bound result 3\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 3\n  Bound result 2\n  Bound result 115792089237316195423570985008687907853269984665640360794278277802013553326284\n  Bound result 4\n  Bound result 1\n  Bound result 1\n  Bound result 0\n  Bound result 2\n  Bound result 0\n  Bound result 0\n  Bound result 4\n  Bound result 0\n  Bound result 2055399071376372883828\n  Bound result 0\n  Bound result 1\n  Bound result 3\n  Bound result 115792089237316195423570985008687907853269984665640360794278277802013553325228\n  Bound result 3\n  Bound result 4\n  Bound result 4\n  Bound result 388233678121780258695586895\n  Bound result 0\n  Bound result 3\n  Bound result 0\n  Bound result 0\n  Bound result 4\n  Bound result 0\n  Bound result 3\n  Bound result 3\n  Bound result 2\n  Bound result 833392870621247196\n  Bound result 2\n  Bound result 0\n  Bound result 7000000000000000000\n  Bound result 2\n  Bound result 3\n  Bound result 20608764433572454244970989\n  Bound result 2\n  Bound result 1\n  Bound result 2\n  Bound result 1\n  Bound result 1\n  Bound result 8502536684177104257400926347\n  Bound result 2\n  Bound result 0\n  Bound result 688489897409112044\n  Bound result 3\n  Bound result 2\n  Bound result 1\n  Bound result 1\n  Bound result 0\n  Bound result 115792089237316195423570985008687907853269984665640176127079445566525646519241\n  Bound result 0\n  Bound result 3\n  Bound result 6032\n  Bound result 1\n  Bound result 2\n  Bound result 207232778700262789583663645\n  Bound result 0\n  Bound result 1\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 408335133130656037269879624\n  Bound result 1\n  Bound result 0\n  Bound result 2\n  Bound result 0\n  Bound result 1\n  Bound result 0\n  Bound result 0\n  Bound result 2\n  Bound result 3\n  Bound result 4\n  Bound result 0\n  Bound result 115792089237316195423570985008687907853269984665640155197015862048070810334120\n  Bound result 2\n  Bound result 3\n  Bound result 2\n  Bound result 3\n  Bound result 4\n  Bound result 115792089237316195423570985008687907853269984665640564039457439104939917504790\n  Bound result 3\n  Bound result 1\n  Bound result 7\n  Bound result 3\n  Bound result 1\n  Bound result 0\n  Bound result 115792089237316195423570985008687907853269984665640155197015862048070810337677\n  Bound result 4\n  Bound result 2\n  Bound result 1\n  Bound result 144902973212135148\n  Bound result 4\n  Bound result 4\n  Bound result 2\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 16\n  Bound result 0\n  Bound result 3\n  Bound result 3\n  Bound result 115792089237316195423570985008687907853269984665640360794277589312116356007948\n  Bound result 3\n  Bound result 4\n  Bound result 1\n  Bound result 2\n  Bound result 32\n  Bound result 0\n  Bound result 0\n  Bound result 4\n  Bound result 4\n  Bound result 2\n  Bound result 0\n  Bound result 3\n  Bound result 4\n  Bound result 4\n  Bound result 2\n  Bound result 0\n  Bound result 4\n  Bound result 4\n  Bound result 2\n  Bound result 87411403250044297251424992\n  Bound result 4\n  Bound result 0\n  Bound result 2\n  Bound result 0\n  Bound result 0\n  Bound result 2\n  Bound result 1\n  Bound result 203245179994695796985433465\n  Bound result 0\n  Bound result 0\n  Bound result 1\n  Bound result 4395472870990523278607940596164354907998656297079222\n  Bound result 3\n  Bound result 0\n  Bound result 1\n  Bound result 1\n  Bound result 115792089237316195423570985008687907853269984665640222881900139360626070205621\n  Bound result 1\n  Bound result 2\n  Bound result 0\n  Bound result 99\n  Bound result 3\n  Bound result 3\n  Bound result 115792089237316195423570985008687907853269984665640155197015862048070810329261\n  Bound result 3\n  Bound result 4\n  Bound result 182315116556080315361378634\n  Bound result 0\n  Bound result 2\n  Bound result 115792089237316195423570985008687907853269984665640499027955711092374839793369\n  Bound result 1\n  Bound result 3\n  Bound result 4\n  Bound result 0\n  Bound result 12\n  Bound result 0\n  Bound result 1\n  Bound result 3\n  Bound result 187019280021216812058266152\n\n[PASS] test_HandlerExercisesTransfersAndExpectedFailures() (gas: 1991837)\nLogs:\n  Bound result 0\n  Bound result 1\n  Bound result 1\n  Bound result 2\n  Bound result 2\n  Bound result 3\n  Bound result 3\n  Bound result 4\n  Bound result 4\n  Bound result 0\n  Bound result 0\n  Bound result 2\n  Bound result 0\n  Bound result 1\n  Bound result 1\n  Bound result 0\n  Bound result 2\n  Bound result 4\n  Bound result 1\n  Bound result 1\n  Bound result 2\n  Bound result 1\n  Bound result 2\n  Bound result 1\n  Bound result 3\n  Bound result 1\n  Bound result 2\n  Bound result 4\n  Bound result 4\n  Bound result 115792089237316195423570985008687907853269984665640564039457584007913129639935\n  Bound result 1\n  Bound result 2\n  Bound result 4\n  Bound result 0\n  Bound result 4\n  Bound result 2\n  Bound result 1\n  Bound result 2\n  Bound result 4\n  Bound result 2\n  Bound result 1\n  Bound result 115792089237316195423570985008687907853269984665640564039457584007913129639935\n  Bound result 1\n  Bound result 2\n  Bound result 1\n  Bound result 1\n  Bound result 2\n  Bound result 0\n  Bound result 1\n\nSuite result: ok. 2 passed; 0 failed; 0 skipped; finished in 14.05s (14.05s CPU time)\n\nRan 3 test suites in 14.05s (14.30s CPU time): 46 tests passed, 0 failed, 0 skipped (46 total tests)\n","passed":true},{"durationMs":31,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"Aligned.approve(address,uint256)\",\"Aligned.transfer(address,uint256)\",\"Aligned.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":3,\"README.md\":104,\"foundry.toml\":13,\"remappings.txt\":2,\"src/Aligned.sol\":15,\"test/Aligned.adversarial.t.sol\":306,\"test/Aligned.invariant.t.sol\":113,\"test/Aligned.t.sol\":330,\"test/helpers/AlignedHandler.sol\":151},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"6ba4075b6f29555606827a89491727a55a5cdb851ec9a79c6b57dfefc1566c46","verifiedTreeHash":"8dd30e3869c0f9ceeddfcdd89da9c0fc31a0685e","verifierVersion":"0.1.0+67c588fa"},{"checks":[{"durationMs":778,"exitCode":0,"name":"build","output":"Compiling 25 files with Solc 0.8.26\nSolc 0.8.26 finished in 711.20ms\nCompiler run successful!\n","passed":true},{"durationMs":176,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 28 tests for test/Aligned.t.sol:AlignedTest\n[PASS] testFuzz_MixedOperationSequenceConservesSupply(bytes32) (runs: 256, μ: 3808179, ~: 3801736)\n[PASS] testFuzz_OverspendingRevertsWithoutMutation(uint256) (runs: 256, μ: 119381, ~: 119349)\nLogs:\n  Bound result 203\n\n[PASS] testFuzz_TransferConservesSupply(address,uint256) (runs: 256, μ: 93034, ~: 93242)\nLogs:\n  Bound result 10883369605256733825865\n\n[PASS] testFuzz_TransferFromTracksAllowance(uint256,uint256) (runs: 256, μ: 162258, ~: 164901)\nLogs:\n  Bound result 1000000000000000000000000000\n  Bound result 60000000000000000000\n\n[PASS] test_ApprovalCannotBeUsedByOtherCaller() (gas: 105182)\n[PASS] test_ApproveEmitsOverwritesAndRevokes() (gas: 157886)\n[PASS] test_ConstructorEmitsMint() (gas: 5464)\n[PASS] test_Create2MintsEntireSupplyToFactory() (gas: 209004)\n[PASS] test_InfiniteAllowanceIsPreserved() (gas: 133705)\n[PASS] test_MetadataAndInitialSupply() (gas: 107502)\n[PASS] test_NoMintBurnFreezeOrUpgradeEntryPoints() (gas: 513656)\n[PASS] test_RevertApproveZeroSpender() (gas: 37574)\n[PASS] test_RevertInsufficientBalance() (gas: 57399)\n[PASS] test_RevertTransferFromExceedingAllowance() (gas: 103141)\n[PASS] test_RevertTransferFromInsufficientBalanceRollsBackAllowance() (gas: 113562)\n[PASS] test_RevertTransferFromToZeroRollsBackAllowance() (gas: 103780)\n[PASS] test_RevertTransferFromWithoutAllowance() (gas: 57838)\n[PASS] test_RevertTransferFromZeroSender() (gas: 35343)\n[PASS] test_RevertTransferMoreThanSupply() (gas: 42362)\n[PASS] test_RevertTransferToZeroEvenForZeroAmount() (gas: 71927)\n[PASS] test_RevokedApprovalCannotSpend() (gas: 110397)\n[PASS] test_SelfTransferPreservesBalance() (gas: 51441)\n[PASS] test_TransferEmitsAndDeliversExactAmount() (gas: 91496)\n[PASS] test_TransferEntireSupply() (gas: 161712)\n[PASS] test_TransferFromConsumesAllowanceAndEmitsTransfer() (gas: 231713)\n[PASS] test_TransferToContractNeedsNoReceiverHook() (gas: 227015)\n[PASS] test_ZeroTransferFromEmptyAccountEmits() (gas: 73331)\n[PASS] test_ZeroTransferFromNeedsNoAllowance() (gas: 63892)\nSuite result: ok. 28 passed; 0 failed; 0 skipped; finished in 94.48ms (123.31ms CPU time)\n\nRan 1 test suite in 95.29ms (94.48ms CPU time): 28 tests passed, 0 failed, 0 skipped (28 total tests)\n","passed":true},{"durationMs":32,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"Aligned.approve(address,uint256)\",\"Aligned.transfer(address,uint256)\",\"Aligned.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":3,\"README.md\":104,\"foundry.toml\":13,\"remappings.txt\":2,\"src/Aligned.sol\":15,\"test/Aligned.t.sol\":330},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true},{"durationMs":361,"exitCode":0,"name":"slither","output":"slither: no results at low impact or above","passed":true},{"durationMs":191,"exitCode":0,"name":"aderyn","output":"[low] large-numeric-literal at src/Aligned.sol:10: Large Numeric Literal","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"872112c97b879f1ec2602a9eb7db1c8ddab886945bc53ad9e6148924c87e96d5","verifiedTreeHash":"3a8506bec8236d6292d1c37cdbf68c658cbba1a2","verifierVersion":"0.1.0+67c588fa"}]}