{"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":"c8d298d7-2d2f-4260-a188-d96c91e29c59","kind":"shape:chain","nodes":[{"acceptedSubmissionHash":"90cf69ffd00feddcc8b199851c410c0b7b9c17b1b03adea772711f4afe2aaa4d","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":"ae438daef123ce6e83cb2c4d2c917eca0fbd8f5f74ff17e10da56546bd9ce646","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":"41f28d43f3c1e63bf12d234ca768ebeae04354b3463077c3b4d6694b243e1a86","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":"6e2e2a1ba06078964dbdc409ab49006d7c0775d529da57cc5ac68566de8fd58e","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":"57b571d540698dfd624dbb1122d4fbd08d26522dd0362e6ce48860cf9052f17a","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":"4dc4d20c73683661019eb9b386187eaa1f48f7c91372862ea519c900d35e943d","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":"f242c9cee2c364ce9c91b0a3f682a2956123b03518f3225ca14365f200a03e21","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"tools":[]},"key":"manifest","kind":"code","role":"integrate","skillHash":null,"skillId":null,"state":"accepted"},{"acceptedSubmissionHash":"1550f88c2254bd67d830e51cebf8ad338464840d8d277f587599e36a74fc0241","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: Company.md (COMD).\nToken name: Company.md\nToken symbol: COMD\nToken supply: 1,000,000,000 with 18 decimals, all minted once to the deployer in the constructor.","parentJobId":null,"planHash":"dad06cf27223066c4588a6094b2ebb8041d122cd15d9822d1fe63caa788520a8","previousHash":"0000000000000000000000000000000000000000000000000000000000000000","projectId":"c8d298d7-2d2f-4260-a188-d96c91e29c59","publication":{"commit":null,"deliveredAt":null,"repoUrl":"https://github.com/identity-md-launches/launch-1820-company-md"},"receiptIdentity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"registry":"0xb6d0a187b050fa5bb0b87033a203f37becf4a775","research":[],"schema":"identitymd-work-v1","signals":[{"agentId":"52605","feedbackHash":"03a5dfe41dd3337292e83702c47ae91cef4f9095ead40104f0dcf81e13a84694","nodeKey":"audit_economics","submissionHash":"90cf69ffd00feddcc8b199851c410c0b7b9c17b1b03adea772711f4afe2aaa4d","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51515","feedbackHash":"4a8522983c2aaafd11d5c2059642c417e162f40c0dd7894ea84f9d953b3831a9","nodeKey":"audit_flow","submissionHash":"ae438daef123ce6e83cb2c4d2c917eca0fbd8f5f74ff17e10da56546bd9ce646","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51432","feedbackHash":"57fc98be35362b03a93b02b2d027a6742b14811ef5d50da99d201f10ad08882d","nodeKey":"audit_judge","submissionHash":"41f28d43f3c1e63bf12d234ca768ebeae04354b3463077c3b4d6694b243e1a86","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52200","feedbackHash":"39eca0a423a413f2f248331a68c3b2d9f1abb8562ddeaf66e468434c03acf8a2","nodeKey":"audit_math","submissionHash":"6e2e2a1ba06078964dbdc409ab49006d7c0775d529da57cc5ac68566de8fd58e","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52621","feedbackHash":"4569ab7642bf8fe28150d5c31d541edc0e340d91d69301b1a4d9c8b7201a5138","nodeKey":"audit_permissions","submissionHash":"57b571d540698dfd624dbb1122d4fbd08d26522dd0362e6ce48860cf9052f17a","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51221","feedbackHash":"82ebccbaea2435fb36d2a07ee28e7492a86aba995f680b7c1f635a203fd32c1c","nodeKey":"build_contract_project","submissionHash":"4dc4d20c73683661019eb9b386187eaa1f48f7c91372862ea519c900d35e943d","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"52224","feedbackHash":"0dbc52c9d7a8817cc1387739b5339f1ae6c9018a219d66d77969c936edb12b98","nodeKey":"manifest","submissionHash":"f242c9cee2c364ce9c91b0a3f682a2956123b03518f3225ca14365f200a03e21","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"52273","feedbackHash":"292c3944993e73436d731577b815d87d465636826ad7f75c4d6b74d041760cce","nodeKey":"write_foundry_tests","submissionHash":"1550f88c2254bd67d830e51cebf8ad338464840d8d277f587599e36a74fc0241","tag1":"verification:checks","tag2":"acceptance-v2","value":1}],"site":null,"snapshotHash":"297a3e59f60aee0b061bde34e243b6dac24be96cce5138a5c4bcbe041d823b34","state":"completed","submissions":[{"artifacts":[],"attempt":1,"bundleHash":"03e85eaf969cf0609d49e587b1b9eeb518906cb63ddfb0aaa28bf5dcf62e90bc","device":"d13d3bb393e39302","findings":[],"hash":"1550f88c2254bd67d830e51cebf8ad338464840d8d277f587599e36a74fc0241","nodeId":"0c0ad293-0bdb-4fd2-9772-812ebd39be79","outcome":"completed","summary":"Added 10 unit/fuzz tests and 3 stateful invariants covering failure rollback, allowance isolation, approval revocation, edge amounts, and supply conservation.\n\nValidation passed: `forge build`, seeded `forge test`, and formatting checks. Invariants exercised 16,384 random handler calls.\n\nOnly added files under `test/`. No implementation defects found.","treeHash":"4667851837cb16e740037dd04c131fd7cb0c014e","usage":{"cachedInputTokens":426068,"inputTokens":70658,"model":"gpt-6.1-sol","outputTokens":8650,"runtime":"codex","turns":4,"wallClockMs":167231}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"03f15d1296244279","findings":[],"hash":"41f28d43f3c1e63bf12d234ca768ebeae04354b3463077c3b4d6694b243e1a86","nodeId":"af4741b6-7e8e-4bec-9e20-e105cbbbdcb7","outcome":"completed","summary":"The review is complete. The Company.md token has no defects, and .imd-findings.json records an empty findings list with a coverage row for all three entry points plus four invariants. Only the untracked findings file was written; the working tree is otherwise clean.\n\n**What I verified**\n\n- The contract is a stock OpenZeppelin v5.0.2 ERC20 with a parameterless constructor that mints the whole supply to msg.sender once. The minted value equals the manifest's totalSupply exactly, and decimals, name and symbol match launch.json.\n- All five vendored OpenZeppelin files are byte-identical to the upstream v5.0.2 release archive, so the inherited transfer, approve and transferFrom logic is the audited upstream code.\n- The three entry points behave as stock ERC-20: zero-address and insufficient-balance reverts, finite allowance decremented, infinite allowance left alone, and the deployer has no power to pull a holder's balance.\n- A CREATE2 deployment from a stand-in factory held the entire supply, and the launch flows of factory to distributor to claimant arrived whole with the supply unchanged.\n- Runtime code contains no DELEGATECALL, CALLCODE or SELFDESTRUCT. Creation and runtime sizes are far under the protocol limits. The ABI exposes no owner, pause, blocklist, mint or burn.\n- The project's own 39 unit, property and invariant tests pass under solc 0.8.26.\n\n**Specialist and tool leads**\n\nAll five specialist reports had no findings, so there was nothing to reproduce or merge. Aderyn's low-severity large-numeric-literal lead is a style note only. The literal is correctly digit-separated and evaluates to the exact manifest supply, so it was not kept as a finding.","treeHash":null,"usage":{"cachedInputTokens":450762,"inputTokens":290,"model":"claude-fable-5-1","outputTokens":8135,"runtime":"claude","turns":10,"wallClockMs":142996}},{"artifacts":[],"attempt":1,"bundleHash":"c96ea9c2699f95107bda59541ff9f01e4ff9efd2faa3f5a53f55ca782058db5d","device":"9d2479a5270b8df1","findings":[],"hash":"4dc4d20c73683661019eb9b386187eaa1f48f7c91372862ea519c900d35e943d","nodeId":"2386286e-0406-49bb-9ac6-15088273e383","outcome":"completed","summary":"Implemented Company.md (COMD): 1 billion tokens, 18 decimals, minted once entirely to the deployer.\n\nDependencies are vendored for offline builds. Deployment assumptions and operational responsibilities are documented in `README.md`.\n\nVerified with Solidity 0.8.26:\n\n- `forge build` passed.\n- All 28 tests passed, including 4,000 fuzz cases using the supplied seed.\n- `forge fmt --check` passed.","treeHash":"dad480e7036e41c3337d92548acf56ce7d75fc42","usage":{"cachedInputTokens":278203,"inputTokens":54626,"model":"gpt-6.1-sol","outputTokens":9007,"runtime":"codex","turns":4,"wallClockMs":169688}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"bfeaa965edf57623","findings":[],"hash":"57b571d540698dfd624dbb1122d4fbd08d26522dd0362e6ce48860cf9052f17a","nodeId":"ea5e2d4f-0054-4e9b-9000-cb7be6bdce65","outcome":"completed","summary":"The review is complete. The findings file at `.imd-findings.json` holds an empty findings list and seven coverage rows, and the working tree is unchanged apart from that file.\n\n**Outcome: no defects in the permissions area.** The token is a thin subclass of OpenZeppelin's ERC20 with a constructor that mints the whole supply once to the deployer. There is nothing to escalate, no guard to bypass, and no asymmetric branch to exploit.\n\nWhat I checked, following the Access Control, Trust Gap and Asymmetry guides:\n\n- **Permission map.** The compiled ABI exposes exactly three state-changing functions: approve, transfer and transferFrom. There are no roles, modifiers, initializers, owner slots, mint or burn entry points, receive or fallback. Unknown selectors and ETH both revert.\n- **Vendored library integrity.** I downloaded the pinned OpenZeppelin v5.0.2 release and diffed every vendored file. All five are byte-identical to upstream, so no hidden hook or backdoor exists in the inherited code.\n- **Asymmetry.** transfer and transferFrom share the same internal path, so there is no fee, exemption or branch that treats one caller class differently. Zero-address checks and allowance spending behave as the ERC-20 standard and the README describe.\n- **Trust gap.** The deployer, which will be the launch factory, keeps no power after it forwards the supply. A scratch test confirmed it cannot pull tokens back or impersonate holders, and a stranger approving themself gains nothing.\n- **Supply and launch flows.** Supply is fixed at one billion tokens with 18 decimals and cannot grow. Every transfer moves the exact amount, so the distributor, pool seed and remainder flows arrive whole. The runtime contains no DELEGATECALL, CALLCODE or SELFDESTRUCT.\n\nThe project's 28 tests pass, the formatter check passes, and the Slither and Aderyn leads were only a large-literal style note. The standard ERC-20 approve ordering race is recorded in coverage as a trust note rather than a finding, since it is inherent to the standard and already documented in the README. The protected launch harness could not be run locally because its Uniswap v4 dependencies are not in this tree, so the actual pool seed and swap remain for the launch verifier.","treeHash":null,"usage":{"cachedInputTokens":475786,"inputTokens":258,"model":"claude-fable-5-1","outputTokens":7941,"runtime":"claude","turns":21,"wallClockMs":109143}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"fdbedee33322a6ef","findings":[],"hash":"6e2e2a1ba06078964dbdc409ab49006d7c0775d529da57cc5ac68566de8fd58e","nodeId":"609412b7-3f5c-4d54-b4b6-9d7d0f7929a7","outcome":"completed","summary":"I found no math defects in COMD (Company.md). `.imd-findings.json` holds an empty findings list and a coverage row for each of the three entry points, all `holds`. It parses as valid JSON, and I changed no other files.\n\n**What the code is:** `src/CompanyToken.sol` is a plain OpenZeppelin v5.0.2 ERC-20. The constructor mints `INITIAL_SUPPLY = 1_000_000_000 * 10**18` to the deployer, and nothing else is added: no fees, no burning, no further minting, no admin roles. I downloaded the five OpenZeppelin files it imports from the official v5.0.2 tag, and they match the copies in `lib/` exactly.\n\n**Precision, boundary and overflow checks:**\n- **Supply:** it is exactly 1e27, far below the uint256 limit (about 1.2e77). The analyser's \"large numeric literal\" warning only concerns how the number is written; the value is correct. Supply can never grow, because minting happens only in the constructor.\n- **`transfer` / `transferFrom`:** the balance check comes before the subtraction, which skips Solidity's overflow checks. The addition to the recipient's balance also skips those checks, but it can't overflow because no balance can exceed the fixed 1e27 supply. Amounts of 0, 1, a whole balance and the whole supply all behave correctly.\n- **Allowances:** an allowance is checked before it is reduced. The maximum value means \"unlimited\" and is never reduced, and a zero-amount `transferFrom` needs no allowance.\n- **`approve`:** it stores the value as given and does no arithmetic.\n- **Launch flows:** there is no division or rounding anywhere, so the 10% swarm share, the 88% pool seed and the remainder all arrive exactly. `decimals()` is 18, as the manifest requires.\n\nThe project's 28 existing tests pass. I didn't write a proof test, since there was nothing to reproduce. One point is outside the math area: the usual ERC-20 risk when an allowance is changed from one non-zero value to another is behaviour the standard defines, not a defect in this code, so I didn't report it.","treeHash":null,"usage":{"cachedInputTokens":273926,"inputTokens":14,"model":"claude-opus-5-5","outputTokens":3187,"runtime":"claude","turns":7,"wallClockMs":46515}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"c79042525fc4a50d","findings":[],"hash":"90cf69ffd00feddcc8b199851c410c0b7b9c17b1b03adea772711f4afe2aaa4d","nodeId":"d970053e-a721-4a75-933f-959b2564aba2","outcome":"completed","summary":"The review is complete. The findings file is valid JSON, and no tracked file changed. The scratch test lives in the gitignored test/scratch/ directory.\n\n**Outcome: no defects found.** The economics review of the Company.md (COMD) token found nothing to report, and the findings file holds an empty list with ten coverage rows.\n\n**What the token is.** CompanyToken is the stock OpenZeppelin v5.0.2 ERC20 with one constructor that mints 1,000,000,000 tokens at 18 decimals to msg.sender. It has no owner, no fee, no hooks, no external calls, and no constructor arguments. The compiled ABI exposes only approve, transfer and transferFrom as state-changing functions.\n\n**What I verified.**\n- The vendored OpenZeppelin files are byte-identical to the upstream v5.0.2 tarball from GitHub, so no modified library logic hides under the token.\n- A scratch invariant suite ran random transfer, approve and transferFrom calls among seven actors for 256 runs and 128,000 calls with zero reverts. Total supply stayed constant and balances always summed to supply.\n- A random-selector sweep of 1,000 runs confirmed no selector outside the three entry points changes supply. Boundary amounts of 1 wei and the whole supply moved exactly.\n- The launch split of ten percent, eighty-eight percent and the remainder lands whole in any order, so the swarm share, pool seed and requester remainder cannot arrive short.\n- The existing 28-test suite passes with the pinned fuzz seed.\n\n**Coverage.** All three entry points are marked holds, plus rows for the supply and conservation invariants, the constructor mint, launch flows, external dependencies, privileged calls and opcodes. The Uniswap v4 protected harness itself was not executed because v4-core is not vendored. The token surface it depends on is plain ERC-20, so I recorded that flow as holds with that caveat stated.\n\n**Not reported.** The ERC-20 approve ordering race and the missing Approval event on transferFrom are standard OpenZeppelin v5 semantics, documented in the README. The aderyn large-numeric-literal line is a style lint, not a defect.","treeHash":null,"usage":{"cachedInputTokens":758455,"inputTokens":322,"model":"claude-fable-5-1","outputTokens":12578,"runtime":"claude","turns":26,"wallClockMs":209751}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"ea89e16822824c6f","findings":[],"hash":"ae438daef123ce6e83cb2c4d2c917eca0fbd8f5f74ff17e10da56546bd9ce646","nodeId":"dd3b4821-d8d4-41bd-bb97-92e36b213183","outcome":"completed","summary":"The review is complete and the findings file is written. Nothing further is needed from the tree.\n\n**Outcome: no defects found.** The file `.imd-findings.json` holds an empty findings list and nine coverage rows, one for each of the three state-changing entry points plus the constructor, the fixed-supply invariant, the opcode invariant, the vendored periphery, the launch flows and the manifest.\n\n**What I traced in my area:**\n\n- **Execution Trace.** Each of approve, transfer and transferFrom was followed through the OpenZeppelin v5 internals with concrete values. Zero recipient, zero spender, zero `from`, overdraw and over-allowance all revert with the expected ERC-6093 error and leave no partial state. A finite allowance is checked before it is decremented, and any later revert rolls the decrement back. The unlimited allowance is never decremented.\n- **Periphery.** The five vendored OpenZeppelin files were read line by line and match the upstream v5.0.x text, with no edits to the update, approve or spend-allowance paths. A byte-for-byte diff against upstream was not possible because the network proxy refused the fetch, so that row says so.\n- **First Principles.** The constructor takes no arguments and mints one billion tokens with 18 decimals once to the deploying address. A scratch test deployed the raw creation code through a CREATE2 factory probe, confirmed the factory held the whole supply, moved the 10, 88 and 2 percent shares whole, and confirmed that stray appended constructor words change nothing. Calls with value or unknown selectors revert. The compiled runtime has no DELEGATECALL, CALLCODE, SELFDESTRUCT, CALL or CREATE opcodes.\n\n**Checks run:** forge build, the project's 28 tests with the README's fuzz seed, forge fmt in check mode, the scratch deployment test, and an opcode scan of the compiled runtime. All passed. The scratch test was removed afterwards and no repository file was changed.\n\n**Not reached:** the protected Uniswap v4 seed-and-swap harness could not be executed here because its v4-core and launch helper sources are not in this tree. Since the token has no transfer rules at all, no code path exists that could make the seed or a swap behave differently from a plain transfer.","treeHash":null,"usage":{"cachedInputTokens":513281,"inputTokens":226,"model":"claude-fable-5-1","outputTokens":12661,"runtime":"claude","turns":25,"wallClockMs":192456}},{"artifacts":[],"attempt":1,"bundleHash":"65ce52a90acb8bfddc5b0f65714c06b1ca1a27fba5344101ce4dd4412cb1e25d","device":"2a2028177fd413f2","findings":[],"hash":"f242c9cee2c364ce9c91b0a3f682a2956123b03518f3225ca14365f200a03e21","nodeId":"6a9dbb44-7519-4bbe-a796-e93c465284d7","outcome":"completed","summary":"Created [launch.json](/home/imd1/.identitymd/work/c8d298d7-2d2f-4260-a188-d96c91e29c59/6a9dbb44-7519-4bbe-a796-e93c465284d7/launch.json) matching `CompanyToken`, its parameterless constructor, exact supply, and required pool and economics.\n\n`forge build` succeeded. All 28 tests passed with the supplied fuzz seed. Only `launch.json` is changed for submission.","treeHash":"63ae4ea0e1977570dfa5cdd1ecc3f96af22f88da","usage":{"cachedInputTokens":174592,"inputTokens":30396,"model":"gpt-6-astra","outputTokens":2386,"runtime":"codex","turns":3,"wallClockMs":109427}}],"verification":[{"checks":[{"durationMs":1408,"exitCode":0,"name":"build","output":"Compiling 27 files with Solc 0.8.26\nSolc 0.8.26 finished in 1.34s\nCompiler run successful!\n","passed":true},{"durationMs":5696,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 28 tests for test/CompanyToken.t.sol:CompanyTokenTest\n[PASS] testFuzz_ArbitraryRecipientGetsExactTransfer(address,uint256) (runs: 1000, μ: 100569, ~: 100817)\nLogs:\n  Bound result 562509468061484226975431417\n\n[PASS] testFuzz_DelegatedTransferAccountsExactly(uint256,uint256) (runs: 1000, μ: 163376, ~: 165259)\nLogs:\n  Bound result 23504\n  Bound result 23503\n\n[PASS] testFuzz_OverdrawRevertsWithoutChangingState(uint256) (runs: 1000, μ: 69068, ~: 69413)\nLogs:\n  Bound result 115792089237316195423570985008687907853269984665639564039457584007913129640179\n\n[PASS] testFuzz_TransfersConserveSupply(uint256,uint256) (runs: 1000, μ: 194133, ~: 195974)\nLogs:\n  Bound result 10707\n  Bound result 3515\n\n[PASS] test_ApprovalIsIndependentOfBalanceAndOtherOwners() (gas: 106195)\n[PASS] test_ApproveEmitsEventAndCanReplaceOrRevoke() (gas: 182901)\n[PASS] test_ApproveZeroSpenderReverts() (gas: 30386)\n[PASS] test_ConstructorEmitsOneMintEvent() (gas: 26579)\n[PASS] test_ContractDeploymentAndLaunchDistributionArriveWhole() (gas: 623438)\n[PASS] test_DeployerCannotTakeTokensBackWithoutApproval() (gas: 157893)\n[PASS] test_InfiniteAllowanceIsNotDecreased() (gas: 128887)\n[PASS] test_InsufficientBalanceRestoresSpentAllowanceOnRevert() (gas: 126109)\n[PASS] test_InvalidRecipientRestoresAllowanceOnRevert() (gas: 103735)\n[PASS] test_MetadataAndInitialSupply() (gas: 107584)\n[PASS] test_NoMintBurnFreezeOrUpgradeEntryPoints() (gas: 570647)\n[PASS] test_RuntimeHasNoForbiddenOpcodes() (gas: 1038945)\n[PASS] test_SelfTransferFromConsumesAllowanceWithoutMovingBalance() (gas: 105159)\n[PASS] test_SelfTransferPreservesBalance() (gas: 51463)\n[PASS] test_TransferEmitsEventAndDeliversExactAmount() (gas: 91526)\n[PASS] test_TransferEntireSupply() (gas: 75809)\n[PASS] test_TransferFromAboveAllowanceReverts() (gas: 115676)\n[PASS] test_TransferFromSpendsAllowanceAndEmitsTransfer() (gas: 231562)\n[PASS] test_TransferFromWithoutAllowanceReverts() (gas: 57758)\n[PASS] test_TransferMoreThanBalanceReverts() (gas: 54928)\n[PASS] test_TransferToZeroRevertsEvenForZeroAmount() (gas: 71925)\n[PASS] test_ZeroTransferFromEmptyAccountEmitsEvent() (gas: 73419)\n[PASS] test_ZeroTransferFromNeedsNoAllowance() (gas: 66175)\n[PASS] test_ZeroTransferFromZeroSenderReverts() (gas: 35298)\nSuite result: ok. 28 passed; 0 failed; 0 skipped; finished in 47.62ms (193.79ms CPU time)\n\nRan 10 tests for test/CompanyTokenProperties.t.sol:CompanyTokenPropertiesTest\n[PASS] testFuzz_InsufficientFiniteAllowanceIsAtomic(uint256,uint256) (runs: 1000, μ: 133098, ~: 133305)\nLogs:\n  Bound result 7458\n  Bound result 795\n\n[PASS] testFuzz_OverdrawPreservesFiniteOrInfiniteApproval(uint256,uint256,bool) (runs: 1000, μ: 205069, ~: 205207)\nLogs:\n  Bound result 424321850716129728606511208\n  Bound result 350580666258888816321575168988167980455258002854093293\n\n[PASS] testFuzz_SplitSpendingExhaustsExactlyTheGrantedBudget(uint256,uint256) (runs: 1000, μ: 273357, ~: 276408)\nLogs:\n  Bound result 829493218692235974003836735\n  Bound result 322707158856981120588616775\n\n[PASS] testFuzz_TransferRoundTripRestoresBothBalances(uint256) (runs: 1000, μ: 148583, ~: 148624)\nLogs:\n  Bound result 244\n\n[PASS] test_InfiniteApprovalCanBeReplacedThenRevoked() (gas: 370180)\n[PASS] test_MaximumAmountCannotOverflowTransferAccounting() (gas: 156969)\n[PASS] test_OneBaseUnitCanBeTransferredAndReturnedExactly() (gas: 143041)\n[PASS] test_OneSpenderCannotUseAnothersAllowance() (gas: 259992)\n[PASS] test_OwnerMustApproveItselfForTransferFrom() (gas: 167366)\n[PASS] test_ZeroApprovalToZeroSpenderRevertsWithoutAffectingValidApproval() (gas: 97545)\nSuite result: ok. 10 passed; 0 failed; 0 skipped; finished in 47.60ms (185.34ms CPU time)\n\nRan 1 test for test/CompanyToken.invariant.t.sol:CompanyTokenInvariantTest\n[PASS]\nCompanyTokenInvariantTest invariants:\n[PASS] invariant_BalancesMatchRequestedMovements\n[PASS] invariant_FixedSupplyEqualsAllBalances\n[PASS] invariant_OnlyAuthorizedSpendingChangesAllowances\n CompanyTokenInvariantTest invariants (runs: 256, calls: 16384, reverts: 0)\n\n╭---------------------+----------------------+-------+---------+----------╮\n| Contract            | Selector             | Calls | Reverts | Discards |\n+=========================================================================+\n| CompanyTokenHandler | approve              | 2096  | 0       | 0        |\n|---------------------+----------------------+-------+---------+----------|\n| CompanyTokenHandler | donateToToken        | 1981  | 0       | 0        |\n|---------------------+----------------------+-------+---------+----------|\n| CompanyTokenHandler | rejectedTransfer     | 2051  | 0       | 0        |\n|---------------------+----------------------+-------+---------+----------|\n| CompanyTokenHandler | rejectedTransferFrom | 2068  | 0       | 0        |\n|---------------------+----------------------+-------+---------+----------|\n| CompanyTokenHandler | rejectedZeroAddress  | 2048  | 0       | 0        |\n|---------------------+----------------------+-------+---------+----------|\n| CompanyTokenHandler | roundTrip            | 1994  | 0       | 0        |\n|---------------------+----------------------+-------+---------+----------|\n| CompanyTokenHandler | transfer             | 2070  | 0       | 0        |\n|---------------------+----------------------+-------+---------+----------|\n| CompanyTokenHandler | transferFrom         | 2076  | 0       | 0        |\n╰---------------------+----------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 292738670142496638836901510\n  Bound result 11\n  Bound result 115792089237316195423570985008687907853269984665640314039457584007913129640746\n  Bound result 115792089237316195423570985008687907853269984665640314039457584007913129642070\n  Bound result 250000000000000000000000000\n  Bound result 127\n  Bound result 115792089237316195423570985008687907853269984665640314039457584007913129639941\n  Bound result 4931\n  Bound result 76574372902129893851595128480474800025020982718137508001913697707054747929177\n  Bound result 115792089237316195423570985008687907853269984665640314039457584007913129639979\n  Bound result 6318\n  Bound result 0\n  Bound result 1\n  Bound result 115792089237316195423570985008687907853269984665640314039457584007913129649350\n  Bound result 96\n  Bound result 6\n  Bound result 0\n  Bound result 361\n  Bound result 763600051\n  Bound result 40\n  Bound result 0\n  Bound result 115792089237316195423570985008687907853269984665640314039457584007913129648833\n  Bound result 0\n  Bound result 1543478560468943804672337485017115708842503945517192687175854423957119252824\n  Bound result 0\n  Bound result 253722726377658712038492900388606336405\n  Bound result 0\n  Bound result 100\n  Bound result 98190806\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 5.59s (5.59s CPU time)\n\nRan 3 test suites in 5.59s (5.69s CPU time): 39 tests passed, 0 failed, 0 skipped (39 total tests)\n","passed":true},{"durationMs":36,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"CompanyToken.approve(address,uint256)\",\"CompanyToken.transfer(address,uint256)\",\"CompanyToken.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":3,\"LICENSE\":21,\"README.md\":103,\"foundry.toml\":16,\"remappings.txt\":2,\"src/CompanyToken.sol\":16,\"test/CompanyToken.invariant.t.sol\":229,\"test/CompanyToken.t.sol\":351,\"test/CompanyTokenProperties.t.sol\":171},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"1550f88c2254bd67d830e51cebf8ad338464840d8d277f587599e36a74fc0241","verifiedTreeHash":"4667851837cb16e740037dd04c131fd7cb0c014e","verifierVersion":"0.1.0+8fbf00a5"},{"checks":[{"durationMs":925,"exitCode":0,"name":"build","output":"Compiling 25 files with Solc 0.8.26\nSolc 0.8.26 finished in 842.02ms\nCompiler run successful!\n","passed":true},{"durationMs":132,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 28 tests for test/CompanyToken.t.sol:CompanyTokenTest\n[PASS] testFuzz_ArbitraryRecipientGetsExactTransfer(address,uint256) (runs: 1000, μ: 100578, ~: 100817)\nLogs:\n  Bound result 93141041964787542\n\n[PASS] testFuzz_DelegatedTransferAccountsExactly(uint256,uint256) (runs: 1000, μ: 163164, ~: 165259)\nLogs:\n  Bound result 829493218692235974003836735\n  Bound result 322707158856981120588616775\n\n[PASS] testFuzz_OverdrawRevertsWithoutChangingState(uint256) (runs: 1000, μ: 69066, ~: 69413)\nLogs:\n  Bound result 115792089237316195423570985008687907853269984665639564039457584007913129640030\n\n[PASS] testFuzz_TransfersConserveSupply(uint256,uint256) (runs: 1000, μ: 193930, ~: 195974)\nLogs:\n  Bound result 2\n  Bound result 0\n\n[PASS] test_ApprovalIsIndependentOfBalanceAndOtherOwners() (gas: 106195)\n[PASS] test_ApproveEmitsEventAndCanReplaceOrRevoke() (gas: 182901)\n[PASS] test_ApproveZeroSpenderReverts() (gas: 30386)\n[PASS] test_ConstructorEmitsOneMintEvent() (gas: 26579)\n[PASS] test_ContractDeploymentAndLaunchDistributionArriveWhole() (gas: 623438)\n[PASS] test_DeployerCannotTakeTokensBackWithoutApproval() (gas: 157893)\n[PASS] test_InfiniteAllowanceIsNotDecreased() (gas: 128887)\n[PASS] test_InsufficientBalanceRestoresSpentAllowanceOnRevert() (gas: 126109)\n[PASS] test_InvalidRecipientRestoresAllowanceOnRevert() (gas: 103735)\n[PASS] test_MetadataAndInitialSupply() (gas: 107584)\n[PASS] test_NoMintBurnFreezeOrUpgradeEntryPoints() (gas: 570647)\n[PASS] test_RuntimeHasNoForbiddenOpcodes() (gas: 1038945)\n[PASS] test_SelfTransferFromConsumesAllowanceWithoutMovingBalance() (gas: 105159)\n[PASS] test_SelfTransferPreservesBalance() (gas: 51463)\n[PASS] test_TransferEmitsEventAndDeliversExactAmount() (gas: 91526)\n[PASS] test_TransferEntireSupply() (gas: 75809)\n[PASS] test_TransferFromAboveAllowanceReverts() (gas: 115676)\n[PASS] test_TransferFromSpendsAllowanceAndEmitsTransfer() (gas: 231562)\n[PASS] test_TransferFromWithoutAllowanceReverts() (gas: 57758)\n[PASS] test_TransferMoreThanBalanceReverts() (gas: 54928)\n[PASS] test_TransferToZeroRevertsEvenForZeroAmount() (gas: 71925)\n[PASS] test_ZeroTransferFromEmptyAccountEmitsEvent() (gas: 73419)\n[PASS] test_ZeroTransferFromNeedsNoAllowance() (gas: 66175)\n[PASS] test_ZeroTransferFromZeroSenderReverts() (gas: 35298)\nSuite result: ok. 28 passed; 0 failed; 0 skipped; finished in 35.92ms (138.00ms CPU time)\n\nRan 1 test suite in 36.75ms (35.92ms CPU time): 28 tests passed, 0 failed, 0 skipped (28 total tests)\n","passed":true},{"durationMs":62,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"CompanyToken.approve(address,uint256)\",\"CompanyToken.transfer(address,uint256)\",\"CompanyToken.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":3,\"LICENSE\":21,\"README.md\":103,\"foundry.toml\":16,\"remappings.txt\":2,\"src/CompanyToken.sol\":16,\"test/CompanyToken.t.sol\":351},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true},{"durationMs":582,"exitCode":0,"name":"slither","output":"slither: no results at low impact or above","passed":true},{"durationMs":681,"exitCode":0,"name":"aderyn","output":"[low] large-numeric-literal at src/CompanyToken.sol:11: Large Numeric Literal","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"4dc4d20c73683661019eb9b386187eaa1f48f7c91372862ea519c900d35e943d","verifiedTreeHash":"dad480e7036e41c3337d92548acf56ce7d75fc42","verifierVersion":"0.1.0+8fbf00a5"},{"checks":[{"durationMs":845,"exitCode":0,"name":"build","output":"Compiling 25 files with Solc 0.8.26\nSolc 0.8.26 finished in 775.56ms\nCompiler run successful!\n","passed":true},{"durationMs":105,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 28 tests for test/CompanyToken.t.sol:CompanyTokenTest\n[PASS] testFuzz_ArbitraryRecipientGetsExactTransfer(address,uint256) (runs: 1000, μ: 100578, ~: 100817)\nLogs:\n  Bound result 93141041964787542\n\n[PASS] testFuzz_DelegatedTransferAccountsExactly(uint256,uint256) (runs: 1000, μ: 163164, ~: 165259)\nLogs:\n  Bound result 999999999999999999999999998\n  Bound result 1\n\n[PASS] testFuzz_OverdrawRevertsWithoutChangingState(uint256) (runs: 1000, μ: 69066, ~: 69413)\nLogs:\n  Bound result 115792089237316195423570985008687907853269984665639564039457584007913129781388\n\n[PASS] testFuzz_TransfersConserveSupply(uint256,uint256) (runs: 1000, μ: 193930, ~: 195974)\nLogs:\n  Bound result 829493218692235974003836735\n  Bound result 322707158856981120588616775\n\n[PASS] test_ApprovalIsIndependentOfBalanceAndOtherOwners() (gas: 106195)\n[PASS] test_ApproveEmitsEventAndCanReplaceOrRevoke() (gas: 182901)\n[PASS] test_ApproveZeroSpenderReverts() (gas: 30386)\n[PASS] test_ConstructorEmitsOneMintEvent() (gas: 26579)\n[PASS] test_ContractDeploymentAndLaunchDistributionArriveWhole() (gas: 623438)\n[PASS] test_DeployerCannotTakeTokensBackWithoutApproval() (gas: 157893)\n[PASS] test_InfiniteAllowanceIsNotDecreased() (gas: 128887)\n[PASS] test_InsufficientBalanceRestoresSpentAllowanceOnRevert() (gas: 126109)\n[PASS] test_InvalidRecipientRestoresAllowanceOnRevert() (gas: 103735)\n[PASS] test_MetadataAndInitialSupply() (gas: 107584)\n[PASS] test_NoMintBurnFreezeOrUpgradeEntryPoints() (gas: 570647)\n[PASS] test_RuntimeHasNoForbiddenOpcodes() (gas: 1038945)\n[PASS] test_SelfTransferFromConsumesAllowanceWithoutMovingBalance() (gas: 105159)\n[PASS] test_SelfTransferPreservesBalance() (gas: 51463)\n[PASS] test_TransferEmitsEventAndDeliversExactAmount() (gas: 91526)\n[PASS] test_TransferEntireSupply() (gas: 75809)\n[PASS] test_TransferFromAboveAllowanceReverts() (gas: 115676)\n[PASS] test_TransferFromSpendsAllowanceAndEmitsTransfer() (gas: 231562)\n[PASS] test_TransferFromWithoutAllowanceReverts() (gas: 57758)\n[PASS] test_TransferMoreThanBalanceReverts() (gas: 54928)\n[PASS] test_TransferToZeroRevertsEvenForZeroAmount() (gas: 71925)\n[PASS] test_ZeroTransferFromEmptyAccountEmitsEvent() (gas: 73419)\n[PASS] test_ZeroTransferFromNeedsNoAllowance() (gas: 66175)\n[PASS] test_ZeroTransferFromZeroSenderReverts() (gas: 35298)\nSuite result: ok. 28 passed; 0 failed; 0 skipped; finished in 34.05ms (147.85ms CPU time)\n\nRan 1 test suite in 34.84ms (34.05ms CPU time): 28 tests passed, 0 failed, 0 skipped (28 total tests)\n","passed":true},{"durationMs":47,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"CompanyToken.approve(address,uint256)\",\"CompanyToken.transfer(address,uint256)\",\"CompanyToken.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":3,\"LICENSE\":21,\"README.md\":103,\"foundry.toml\":16,\"launch.json\":24,\"remappings.txt\":2,\"src/CompanyToken.sol\":16,\"test/CompanyToken.t.sol\":351},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"f242c9cee2c364ce9c91b0a3f682a2956123b03518f3225ca14365f200a03e21","verifiedTreeHash":"63ae4ea0e1977570dfa5cdd1ecc3f96af22f88da","verifierVersion":"0.1.0+8fbf00a5"}]}