{"assessments":[],"deployments":[{"attestationHash":"4c5bfadab1749a156314b65dca47a58add902e8061d007ed77526816d206e72d","chainId":1,"contracts":[{"address":"0xc820b13be072a1f181aef72371f877cd76907261","blockNumber":26264412,"name":"MerkleDistributor","role":"distributor","txHash":"0x18ca83fe36ea05c5439bcc1f2de882122087a7a696b92ae72da53872c748a343"},{"address":"0xd0da5e87a46c7300e492c518f0dec2dfff67727b","blockNumber":26264412,"name":"NightshiftTestToken","role":"token","txHash":"0x18ca83fe36ea05c5439bcc1f2de882122087a7a696b92ae72da53872c748a343"},{"address":"0x784ff9a3ac5d88a30bfff6f7f2a270161fbe6000","blockNumber":26264412,"name":"PoolInitializationGuard","role":"hook","txHash":"0x18ca83fe36ea05c5439bcc1f2de882122087a7a696b92ae72da53872c748a343"}],"id":"8660fe2e-0639-4c80-8074-27a76dbad96e","manifestHash":"55cb92562f9e521bfeeabfca9e097b4a0f36f648ed999480ef97adc2376d7521","status":"live"}],"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":"b816abeb-aa88-4cb6-9825-dd44c6ba84a0","kind":"shape:chain","nodes":[{"acceptedSubmissionHash":"de2164a541853d7d61b62af9afc984b8ec6981175b567379c7eb159b2eec6b30","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":"e9b1aae2f29351ac4e4bed6d3a1c4b819d7ad87a9b50e740c2484e4e3c7df2fe","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":"f9c7c578d8850a0149044fb7e71be25bbeec91b6c06afc36a74d5adba6251e06","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":"8e7ba82e646ab4869401f7977b43498fc2fa6fbe7f7d0af784513ee868ff8245","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":"1264a447420ccd4516a65cda652ff08bb62173ea52cce1490191686320f0aa72","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":"3a647fa9d73b6c33f2b14284a5295205cc8f5f57ee34ed81152322d9bd5b2b7d","dependsOn":[],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"816fe39c7efd64504a19175b0f4dd9186d61069f37a22684c90358a18c60bddc","skillId":"build-contract-project","tools":[]},"key":"build_contract_project","kind":"code","role":"implement","skillHash":"816fe39c7efd64504a19175b0f4dd9186d61069f37a22684c90358a18c60bddc","skillId":"build-contract-project","state":"accepted"},{"acceptedSubmissionHash":"d7a042310be26ddaf4fda574cc1a08dd1a890a52f0ecfa4d64339ad6337a24b2","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"tools":[]},"key":"manifest","kind":"code","role":"integrate","skillHash":null,"skillId":null,"state":"accepted"},{"acceptedSubmissionHash":"93e2c2bd9e295f5be12451077bab2ee9e6661a05abf1ece64ecba4b0cfa82edf","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"ab3f8f2aa4e7f3b3ada558c0dcf522ba733ca3df3b1da92c707a0fe305816d5f","skillId":"write-foundry-tests","tools":[]},"key":"write_foundry_tests","kind":"code","role":"tests","skillHash":"ab3f8f2aa4e7f3b3ada558c0dcf522ba733ca3df3b1da92c707a0fe305816d5f","skillId":"write-foundry-tests","state":"accepted"}],"objective":"A custom token: Test from Nightshift launchpad (TESTNS).\nToken name: Test from Nightshift launchpad\nToken symbol: TESTNS\nToken supply: 100 with 18 decimals, all minted once to the deployer in the constructor.\nTransfers: plain ERC-20 transfers with no fee, tax or limit. Fixed supply: no owner, nobody can mint more.\nWhat it does: A community coin as a test\nLogo: A frog with dark skin and hoodie. Glowing eyes .\nLaunched with the NIGHTSHIFT Launchpad, getnightshift.tech/launchpad.","parentJobId":null,"planHash":"429666513f4c270dde49396eee1ce9365475627e998259f48f2a796eb218fa9b","previousHash":"41987c7c9473a701b0d16605823e81fdd1b79777a0ad031a85375d6f08bd1e10","projectId":"b816abeb-aa88-4cb6-9825-dd44c6ba84a0","publication":{"commit":"4ef1adcdc448fc1a3d7400485193a34b5bedc2de","deliveredAt":"2026-10-24T18:49:40.762Z","repoUrl":"https://github.com/identity-md-launches/launch-2553-test-from-nightshift-launchpad"},"receiptIdentity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"registry":"0xb6d0a187b050fa5bb0b87033a203f37becf4a775","research":[],"schema":"identitymd-work-v1","signals":[],"site":null,"snapshotHash":"8497a05b70d7bf9912a13f12df80842a273afdd84bb8e076ac2f5aecf6ebea82","state":"completed","submissions":[{"artifacts":[],"attempt":1,"bundleHash":null,"device":"1731fbfe0c4574fb","findings":[],"hash":"1264a447420ccd4516a65cda652ff08bb62173ea52cce1490191686320f0aa72","nodeId":"baa9075e-ce67-4b3e-a362-de78ecccf35b","outcome":"completed","summary":"The review is complete and `.imd-findings.json` holds the result: zero defects and ten coverage rows.\n\n**Outcome.** The Access Control, Trust Gap and Asymmetry passes found no defect in `src/NightshiftTestToken.sol`. The token is a 36-line subclass of OpenZeppelin v5.1.0 `ERC20` that mints 100e18 to `msg.sender` once and overrides `decimals()` to a constant 18. Nothing else is added.\n\n**What I checked, per area:**\n- **Access control.** The compiled ABI exposes exactly three state-changing functions, all unrestricted by design, plus views. There are no roles, modifiers, initializers, owner slots, receive or fallback. Twenty-two admin, mint, freeze and pause selectors revert for both a stranger and the deployer. The deployer gains no power: pulling a holder's tokens without allowance reverts, and under CREATE2 from a factory contract the supply lands on the factory, not on `tx.origin`.\n- **Trust gap.** No seam exists between authorization and economics because there is no privileged actor and no formula. The only trust dependency is the vendored library, so I diffed all five vendored OpenZeppelin files against the upstream v5.1.0 tag. They are byte-identical, and `Context._msgSender` is plain `msg.sender`.\n- **Asymmetry.** `transfer` and `transferFrom` share `_transfer` and `_update`. Both reject the zero address on either side, so no path reaches a mint or burn after construction. Allowances are keyed per owner and spender, with no self-exemption or caller-class branch. Fee and exemption logic is absent, so every launch flow moves the exact amount.\n- **Bytecode.** A reachability-aware opcode scan finds no reachable DELEGATECALL, CALLCODE, SELFDESTRUCT, CREATE or external CALL. Raw byte hits for `0xFF` and `0xF0` sit in unreachable data.\n\n**Verification run.** The project suite passes with 29 tests including the 128,000-call invariant run. A scratch suite of seven extra edge cases also passed and was removed afterwards. Slither and Aderyn reported nothing, consistent with my reading.\n\n**Not reached.** Nothing in the assigned area was left unverified. The deploy script is a local review aid and gets a `holds` row since nothing in my area touches it.","treeHash":null,"usage":{"cachedInputTokens":718518,"inputTokens":290,"model":"claude-fable-5-1","outputTokens":11822,"runtime":"claude","turns":29,"wallClockMs":197104}},{"artifacts":[],"attempt":1,"bundleHash":"03b510a24a33dd9ed58feeaeb1c791cc645c82a816489d65f343baf50c4a00d8","device":"686fbab25113a42b","findings":[],"hash":"3a647fa9d73b6c33f2b14284a5295205cc8f5f57ee34ed81152322d9bd5b2b7d","nodeId":"29056d30-b74a-4a05-8ab2-a747146b4921","outcome":"completed","summary":"Done. The TESTNS token project is built, tested and committed on `main` as commit `32410aa`.\n\n**What was delivered**\n\n- `src/NightshiftTestToken.sol` is the token. It inherits OpenZeppelin v5.1.0 `ERC20`, mints 100 tokens with 18 decimals to `msg.sender` once in the constructor, and has no owner, no mint path, no fee, no limit, no pause and no blacklist. The contract name is 19 characters, with the long name only in `name()`. It takes no constructor arguments.\n- `foundry.toml` pins solc 0.8.26 with `bytecode_hash = \"none\"`, `cbor_metadata = false`, ffi off and empty filesystem permissions.\n- Dependencies are vendored as plain files, not submodules. forge-std v1.9.7 source plus the five OpenZeppelin files the ERC-20 needs. I removed forge-std's own `foundry.toml` since it grants read-write filesystem permissions.\n- `script/DeployNightshiftTestToken.s.sol` is a dry-run deploy script that reads no environment. Its `deploy()` function is tested directly.\n- `README.md` documents parameters, assumptions, the launch economics as given, the empty \"after launch\" list, operational responsibilities, the logo description, test coverage and the security checklist review.\n\n**Checks**\n\n| Check | Result |\n| --- | --- |\n| `forge build` | passes |\n| `forge test` with the verifier's fuzz seed | 29 passed, 0 failed |\n| `forge fmt --check` | passes |\n\nTests cover success paths, failure paths with exact custom errors, 22 common mint and admin selectors that must not exist for stranger or deployer, a reachable-opcode scan for DELEGATECALL, CALLCODE and SELFDESTRUCT, five fuzz tests and two supply-conservation invariants. The public ABI is the 9 standard ERC-20 functions plus 4 constant getters.\n\n**Notes for the reviewer**\n\n- Slither and Mythril are not on this machine, so they did not run. By inspection none of the six rejected detectors apply to this code.\n- The protected tests pinned for this task exercise the launch harness itself and need the verifier's environment. The token meets every requirement they check: supply minted whole to the factory, plain transfers for all launch flows, no supply growth and no privileged hand.\n- The workspace contains sandbox-mounted dotfiles such as `.gitmodules` and `.claude/launch.json` that are unreadable devices. They are not tracked and `.claude/` is ignored, so no stray manifest or submodule is in the commit.","treeHash":"ce9ba51a0e81bdd4a4068f97e5b5ce76700a6586","usage":{"cachedInputTokens":981551,"inputTokens":514,"model":"claude-fable-5-1","outputTokens":21896,"runtime":"claude","turns":27,"wallClockMs":418412}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"fcb71e606c933181","findings":[],"hash":"8e7ba82e646ab4869401f7977b43498fc2fa6fbe7f7d0af784513ee868ff8245","nodeId":"e6903ed6-ffa1-4d58-b545-e37da5906be2","outcome":"completed","summary":"The review is complete. `.imd-findings.json` holds an empty findings list and seven coverage rows, and the tree is otherwise untouched.\n\n**Result: no defects in the math, boundary or numerical-gap area.** The token is OpenZeppelin v5.1.0 `ERC20` with a single constant mint and a `decimals()` override. I confirmed all five vendored OpenZeppelin files are byte-identical to the upstream v5.1.0 release, so the accounting under review is the audited library code.\n\nWhat I checked, per guide:\n\n- **Math Precision.** The only arithmetic the token adds is the constant supply, which evaluates to exactly 1e20 with no downcast and the exponent binding first. There is no division, no scaling, no fixed-point conversion. The two `unchecked` blocks in `_update` and `_spendAllowance` are each preceded by the guard that makes them safe. The launch percentages on this supply divide exactly with no dust.\n- **Boundary.** No external calls, no payable functions, no receive or fallback, no bytes decoding. The zero-address branches in `_update` cannot be reached from any public entry point. Probed inputs: zero amount, 1 wei, whole balance, self-transfer and self-transferFrom, max uint, max-minus-one allowance, exact-allowance spend, zero spender, zero sender. Each either moved the exact amount or reverted with the expected error.\n- **Numerical Gap.** Sum of balances equals total supply under the project's invariant run and my own fuzz probes. Supply cannot change after construction since no path reaches mint or burn.\n\nCoverage rows: all three entry points `holds`, plus four invariant rows. Nothing was left unreached. Static analysis reported nothing and I found nothing to promote. The scratch probe file was removed after running, and since no finding is critical or high, no proof file is attached.","treeHash":null,"usage":{"cachedInputTokens":473593,"inputTokens":194,"model":"claude-fable-5-1","outputTokens":11204,"runtime":"claude","turns":22,"wallClockMs":188081}},{"artifacts":[],"attempt":1,"bundleHash":"c791a27f2339f665af980371bad1e23a3617fb691f53ca841ed7c9228c615bdd","device":"294694a214b6ec04","findings":[],"hash":"93e2c2bd9e295f5be12451077bab2ee9e6661a05abf1ece64ecba4b0cfa82edf","nodeId":"7f44187d-4fa8-4214-8193-1e8d8bb26e73","outcome":"completed","summary":"Added 22 tests covering failure paths, rollback, allowance revocation, and boundary values. Strengthened five stateful invariants across six actors.\n\n`forge build` and `forge test` pass with the required seed: 51 reported tests and 32,768 invariant calls.\n\nOnly `test/` changed. No contract defects found.","treeHash":"10976504f13c55016f7e657f566473bbf3b9e4eb","usage":{"cachedInputTokens":505216,"inputTokens":66631,"model":"gpt-6-astra","outputTokens":15623,"runtime":"codex","turns":5,"wallClockMs":376109}},{"artifacts":[],"attempt":1,"bundleHash":"ab14803569257bd8e923d18be143a3c928e15d0913770cc6decafe8050c0dcb4","device":"92352b60f8e93ddd","findings":[],"hash":"d7a042310be26ddaf4fda574cc1a08dd1a890a52f0ecfa4d64339ad6337a24b2","nodeId":"42bf3e2b-514e-49cd-a135-123d7615c68d","outcome":"completed","summary":"Created `launch.json` matching `NightshiftTestToken`: no constructor arguments, exact fixed supply, required pool and economics values, and no application contracts.\n\n`forge build` passed. All 29 tests passed with the supplied fuzz seed. Only `launch.json` is changed for submission.","treeHash":"f6f404f9de215f024080848248e825007b143845","usage":{"cachedInputTokens":223744,"inputTokens":23504,"model":"gpt-6-astra","outputTokens":2597,"runtime":"codex","turns":4,"wallClockMs":78401}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"a406deaac63a93b0","findings":[],"hash":"de2164a541853d7d61b62af9afc984b8ec6981175b567379c7eb159b2eec6b30","nodeId":"0d8f6ab8-535d-4812-85f5-5ab0180caf66","outcome":"completed","summary":"The review is complete. The findings file is written, the JSON validates, and no tracked file in the tree was changed.\n\n**Result: no defects found** in the Economic Security, Invariant and Flow Gap areas. The findings list is empty, and the coverage record answers all three entry points as `holds`, plus six invariant and economics rows.\n\n**What I verified**\n\n- The token in `src/NightshiftTestToken.sol` is OpenZeppelin v5.1.0 ERC20 with one constructor mint and a constant `decimals()` override. All five vendored OpenZeppelin files hash byte-for-byte to the upstream v5.1.0 tag, so nothing was altered inside the library.\n- The compiled ABI has 13 functions, all standard ERC-20 plus four constant getters. No mint, burn, pause, blacklist, owner or fallback path exists, so the supply of 100e18 cannot change after construction.\n- The project's own suite passes under the verifier's fuzz seed, including the invariant run of 128,000 handler calls that kept the sum of balances equal to total supply. `forge fmt --check` is clean.\n- A scratch test deployed the token through CREATE2 from a contract, as the factory does, and drove the launch flows: swarm share, pool seed, remainder, 1,241 claim payouts, and a trader round-trip using transferFrom with balance-delta settlement. Every flow moved exactly the requested amount and returned true.\n- The economics check out: 25,000 IMD cap over 100 tokens gives a price of 250 IMD per token. The resulting tick and sqrt price sit well inside Uniswap v4 bounds in either currency order, and single-sided seed liquidity fits in uint128. The IMD pair token on chain 1 answers symbol `IMD` with 18 decimals.\n\n**One observation, not a defect.** The `remainderTo` address on chain 1 carries EIP-7702 delegation code. ERC-20 transfer never calls the recipient, so the 14-token remainder lands regardless. I recorded it as a coverage note so the judge knows it was looked at.\n\n**Not reached.** Nothing within my area was left unchecked. The deploy script and the read-only getters were traced but are outside the listed entry points, so they have no rows.","treeHash":null,"usage":{"cachedInputTokens":636193,"inputTokens":290,"model":"claude-fable-5-1","outputTokens":15948,"runtime":"claude","turns":27,"wallClockMs":296529}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"c4617da5f1fd5ce8","findings":[],"hash":"e9b1aae2f29351ac4e4bed6d3a1c4b819d7ad87a9b50e740c2484e4e3c7df2fe","nodeId":"3ff1122f-93dd-43a0-93cc-6454457746d7","outcome":"completed","summary":"The review is complete. The findings file holds an empty findings list and a full coverage record. The working tree is otherwise clean, as the status check showed.\n\n**Result: no defects found.** `src/NightshiftTestToken.sol` is OpenZeppelin v5.1.0 `ERC20` with a constant `decimals()` override and a single constructor mint of 100e18 to the deployer. Nothing else is in the contract.\n\nWhat I checked, per the three assigned guides:\n\n- **Execution Trace.** Traced `approve`, `transfer` and `transferFrom` through the OpenZeppelin internals. Zero-address sender, receiver and spender all revert. Over-balance and over-allowance revert with typed errors. Infinite allowance is not decremented. No external calls, callbacks, sentinel paths or partial state updates exist. A scratch Foundry test confirmed CREATE2 deployment from a contract mints the whole supply to that contract, that zero-value and self transfers are harmless, and that ether and unknown selectors are rejected.\n- **Periphery.** The five vendored OpenZeppelin files are byte-identical to the upstream v5.1.0 tag. `Context` has no forwarder logic. The deploy script is a review aid with no environment reads.\n- **First Principles.** Name, symbol, decimals and supply match the objective and the stated manifest values. No mint, burn, owner, pause, blacklist or upgrade path is in the compiled ABI, and the runtime bytecode has no reachable DELEGATECALL, CALLCODE or SELFDESTRUCT. Launch flows need no exemptions because transfers are exact.\n\n**Coverage.** All three listed entry points are marked `holds`, plus seven invariant rows. Nothing was left unreached.\n\nOne note for the judge, not a finding: the standard ERC-20 approve front-running race exists, as it does in every plain OpenZeppelin token. It is a property of the requested design rather than a defect in this code. The existing suite of 29 tests also passed under forge 1.8.3.","treeHash":null,"usage":{"cachedInputTokens":571267,"inputTokens":226,"model":"claude-fable-5-1","outputTokens":11800,"runtime":"claude","turns":25,"wallClockMs":226284}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"66ceb1fcb4b0b455","findings":[],"hash":"f9c7c578d8850a0149044fb7e71be25bbeec91b6c06afc36a74d5adba6251e06","nodeId":"512afb07-78c8-4c1a-839a-54773cd6036e","outcome":"completed","summary":"The review found no defects. I wrote `.imd-findings.json` with an empty findings list and a coverage record that marks all three entry points `holds`.\n\n**Why it's clean:**\n- **The specialists:** none of the four, nor the test writer, reported a finding, so there was nothing to reproduce or merge. Slither and aderyn reported nothing either.\n- **The token:** `src/NightshiftTestToken.sol` is a stock OpenZeppelin v5.1 ERC-20. It overrides nothing except `decimals()`, which returns 18. I checked the vendored `ERC20.sol` and it is unmodified.\n- **Transfers:** `transfer`, `transferFrom` and `approve` move or approve exactly the amount given, with no fee, tax or limit. So the swarm's share, the pool seed and trades all arrive in full.\n- **Supply and control:** the only mint is in the constructor at line 29, which gives 100 × 10^18 to the deployer (the factory). There is no owner and no way to mint, burn, pause or seize.\n- **Deployment:** the constructor takes no parameters, matching `\"constructorArgs\": []` in `launch.json`. The deployed code is 2,186 bytes and the creation code 3,372, far under the 24,576 and 49,152 limits. There are no linked libraries, and no `delegatecall` or `selfdestruct`.\n- **Manifest:** `launch.json` uses only schema keys. Its addresses are lowercase, the supply and decimals match the code, and the contract name `NightshiftTestToken` is 19 characters. The pool and economics values are the same as in the task's reference manifest.\n- **Tests:** all 51 project tests pass. I couldn't run the protected launch tests locally because they need files and settings this repo doesn't include.\n\nNo files in the repository were changed.","treeHash":null,"usage":{"cachedInputTokens":299397,"inputTokens":16,"model":"claude-opus-5-5","outputTokens":3269,"runtime":"claude","turns":8,"wallClockMs":114000}}],"verification":[{"checks":[{"durationMs":1368,"exitCode":0,"name":"build","output":"Compiling 30 files with Solc 0.8.26\nSolc 0.8.26 finished in 1.27s\nCompiler run successful!\n","passed":true},{"durationMs":8845,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 1 test for test/DeployNightshiftTestToken.t.sol:DeployNightshiftTestTokenTest\n[PASS] test_deployMintsSupplyToTheCaller() (gas: 1550898)\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 455.08µs (225.13µs CPU time)\n\nRan 27 tests for test/NightshiftTestToken.t.sol:NightshiftTestTokenTest\n[PASS] testFuzz_RevertWhen_transferExceedsBalance(address,uint256) (runs: 256, μ: 42672, ~: 42487)\nLogs:\n  Bound result 115792089237316195423570985008687907853269984665640564039357584007913129640904\n\n[PASS] testFuzz_RevertWhen_transferFromExceedsAllowance(uint256,uint256) (runs: 256, μ: 95457, ~: 95658)\nLogs:\n  Bound result 16659\n  Bound result 99999999999999983437\n\n[PASS] testFuzz_roundTripReturnsExactly(uint256) (runs: 256, μ: 117394, ~: 117088)\nLogs:\n  Bound result 35000000000000000000\n\n[PASS] testFuzz_transferFromWithinAllowance(uint256,uint256) (runs: 256, μ: 157612, ~: 158971)\nLogs:\n  Bound result 84752703971000393058\n  Bound result 37801713102758732938\n\n[PASS] testFuzz_transferIsExactAndConservesSupply(address,uint256) (runs: 256, μ: 99738, ~: 99917)\nLogs:\n  Bound result 48510830367260010316\n\n[PASS] test_RevertWhen_deployerPullsFromHolderWithoutAllowance() (gas: 98198)\n[PASS] test_RevertWhen_sendingEther() (gas: 39722)\n[PASS] test_RevertWhen_transferExceedsBalance() (gas: 92736)\n[PASS] test_RevertWhen_transferFromEmptyAccount() (gas: 37747)\n[PASS] test_RevertWhen_transferFromExceedsAllowance() (gas: 88077)\n[PASS] test_RevertWhen_transferFromExceedsBalanceDespiteAllowance() (gas: 148465)\n[PASS] test_RevertWhen_transferFromWithoutAllowance() (gas: 38430)\n[PASS] test_RevertWhen_transferToZeroAddress() (gas: 32982)\n[PASS] test_approveSetsAllowanceAndEmits() (gas: 68181)\n[PASS] test_chainOfTransfersConservesSupply() (gas: 259533)\n[PASS] test_constructorEmitsSingleMintTransfer() (gas: 11582)\n[PASS] test_constructorMintsWholeSupplyToDeployerOnce() (gas: 62854)\n[PASS] test_infiniteAllowanceIsNotDecremented() (gas: 123397)\n[PASS] test_metadata() (gas: 80714)\n[PASS] test_noMintOrAdminSelectorExists() (gas: 1074596)\n[PASS] test_runtimeHasNoDelegatecallOrSelfdestruct() (gas: 3063952)\n[PASS] test_supplyGoesToWhoeverDeploys() (gas: 21553)\n[PASS] test_transferFromSpendsAllowanceExactly() (gas: 164230)\n[PASS] test_transferMovesExactAmountWithNoFee() (gas: 96833)\n[PASS] test_transferToSelfKeepsBalance() (gas: 43934)\n[PASS] test_transferWholeBalanceHasNoLimit() (gas: 78432)\n[PASS] test_transferZeroAmountSucceeds() (gas: 47769)\nSuite result: ok. 27 passed; 0 failed; 0 skipped; finished in 17.08ms (81.28ms CPU time)\n\nRan 1 test for test/NightshiftTestToken.invariant.t.sol:NightshiftTestTokenInvariantTest\n[PASS]\nNightshiftTestTokenInvariantTest invariants:\n[PASS] invariant_balancesSumToSupply\n[PASS] invariant_totalSupplyIsFixed\n NightshiftTestTokenInvariantTest invariants (runs: 256, calls: 128000, reverts: 0)\n\n╭--------------+--------------+-------+---------+----------╮\n| Contract     | Selector     | Calls | Reverts | Discards |\n+==========================================================+\n| TokenHandler | approve      | 42819 | 0       | 0        |\n|--------------+--------------+-------+---------+----------|\n| TokenHandler | transfer     | 42258 | 0       | 0        |\n|--------------+--------------+-------+---------+----------|\n| TokenHandler | transferFrom | 42923 | 0       | 0        |\n╰--------------+--------------+-------+---------+----------╯\n\nLogs:\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 25000000000000000000\n  Bound result 0\n  Bound result 127\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 1\n  Bound result 0\n  Bound result 5\n  Bound result 0\n  Bound result 0\n  Bound result 1\n  Bound result 60000000000000000000\n  Bound result 0\n  Bound result 96\n  Bound result 0\n  Bound result 4857\n  Bound result 997\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 10\n  Bound result 343\n  Bound result 200\n  Bound result 0\n  Bound result 8\n  Bound result 17\n  Bound result 0\n  Bound result 87\n  Bound result 10000000000000000756\n  Bound result 1896\n  Bound result 20\n  Bound result 4811\n  Bound result 0\n  Bound result 0\n  Bound result 734\n  Bound result 2081\n  Bound result 2050\n  Bound result 0\n  Bound result 35\n  Bound result 3817262401995418571\n  Bound result 0\n  Bound result 21\n  Bound result 20000000000000000000\n  Bound result 5\n  Bound result 5494724320744919373\n  Bound result 4185\n  Bound result 470\n  Bound result 3617155993734787769\n  Bound result 100\n  Bound result 11\n  Bound result 10\n  Bound result 1503\n  Bound result 95\n  Bound result 168\n  Bound result 242\n  Bound result 1534\n  Bound result 2741063970068707020\n  Bound result 23\n  Bound result 1000000000000000000\n  Bound result 342475267517798320\n  Bound result 2863\n  Bound result 253\n  Bound result 0\n  Bound result 1559\n  Bound result 1278\n  Bound result 3003363985704234807\n  Bound result 443\n  Bound result 67406597466612755755\n  Bound result 358655743022319212\n  Bound result 3868130630203731536\n  Bound result 57641435937153499988\n  Bound result 10\n  Bound result 323058229026257757\n  Bound result 638212885\n  Bound result 135\n  Bound result 0\n  Bound result 149\n  Bound result 4336\n  Bound result 0\n  Bound result 5694\n  Bound result 73547208928212129547\n  Bound result 4676\n  Bound result 12\n  Bound result 0\n  Bound result 5864986629396260060\n  Bound result 2589465326310052\n  Bound result 24576\n  Bound result 1976\n  Bound result 1275\n  Bound result 2\n  Bound result 24576\n  Bound result 0\n  Bound result 3230375165250035352\n  Bound result 1311722474850950405\n  Bound result 9\n  Bound result 0\n  Bound result 341\n  Bound result 0\n  Bound result 3455080536821181521\n  Bound result 5000000000000000000\n  Bound result 3404159446\n  Bound result 127\n  Bound result 2\n  Bound result 0\n  Bound result 46\n  Bound result 2784094399866918080\n  Bound result 794\n  Bound result 333489641531682040\n  Bound result 1074745323020333255\n  Bound result 992148645470041123\n  Bound result 115\n  Bound result 1000000000000000001\n  Bound result 3\n  Bound result 3974\n  Bound result 4139\n  Bound result 460\n  Bound result 94846830136933953\n  Bound result 254\n  Bound result 411177983\n  Bound result 95\n  Bound result 3\n  Bound result 2143\n  Bound result 253\n  Bound result 13083921985444125434\n  Bound result 261\n  Bound result 22\n  Bound result 734627502674613024\n  Bound result 55\n  Bound result 1313373040\n  Bound result 377\n  Bound result 245\n  Bound result 510852059188390257\n  Bound result 1637832440013493438\n  Bound result 1\n  Bound result 745659932373514265\n  Bound result 29\n  Bound result 704855213290270672\n  Bound result 204670969827867961\n  Bound result 5940\n  Bound result 293799595525861457\n  Bound result 86\n  Bound result 570\n  Bound result 4637498413618990037\n  Bound result 1850547383954901432\n  Bound result 71815971629282\n  Bound result 0\n  Bound result 233\n  Bound result 13235928\n  Bound result 1004\n  Bound result 1\n  Bound result 463\n  Bound result 5728381569694831012\n  Bound result 21154583735285843343\n  Bound result 1000000000000000000\n  Bound result 25000000000000000000\n  Bound result 128\n  Bound result 2492\n  Bound result 0\n  Bound result 3358742936950496\n  Bound result 5\n  Bound result 1\n  Bound result 2338\n  Bound result 15750\n  Bound result 22\n  Bound result 1160\n  Bound result 86\n  Bound result 115\n  Bound result 0\n  Bound result 4971\n  Bound result 1966\n  Bound result 362142192417105360\n  Bound result 2920\n  Bound result 453\n  Bound result 34015810415951539985\n  Bound result 0\n  Bound result 86\n  Bound result 42984651013921682\n  Bound result 173\n  Bound result 96\n  Bound result 127\n  Bound result 1\n  Bound result 17\n  Bound result 100\n  Bound result 372264917047463\n  Bound result 2701\n  Bound result 90\n  Bound result 1489016162894\n  Bound result 95\n  Bound result 22\n  Bound result 14944461852718110935\n  Bound result 86212919187647010350\n  Bound result 23490679005200521\n  Bound result 2085708828204413\n  Bound result 6266978519936600\n  Bound result 5715\n  Bound result 242\n  Bound result 4875\n  Bound result 254\n  Bound result 1\n  Bound result 1572227572072035\n  Bound result 4694\n  Bound result 4569\n  Bound result 21737820442541491567\n  Bound result 295083700\n  Bound result 21478388052708791480\n  Bound result 480\n  Bound result 3817262401995419532\n  Bound result 118\n  Bound result 2651761492879733\n  Bound result 130282210392408403\n  Bound result 2219996476051895456\n  Bound result 3591\n  Bound result 22\n  Bound result 264857819768801525\n  Bound result 40\n  Bound result 7\n  Bound result 788548596407243214\n  Bound result 32040199683546501\n  Bound result 0\n  Bound result 2\n  Bound result 86\n  Bound result 0\n  Bound result 825852421279187001\n  Bound result 583236707255648224\n  Bound result 3636\n  Bound result 95\n  Bound result 16102459250852082\n  Bound result 5850958532926423680\n  Bound result 280\n  Bound result 2\n  Bound result 11188277525149049596\n  Bound result 255\n  Bound result 1571\n  Bound result 1016\n  Bound result 1\n  Bound result 618451701859806428\n  Bound result 1719639409\n  Bound result 67343686719278903\n  Bound result 4844\n  Bound result 118204941123347790\n  Bound result 243\n  Bound result 2332089376864954775\n  Bound result 5508\n  Bound result 486\n  Bound result 1\n  Bound result 9797256882295372\n  Bound result 95\n  Bound result 868\n  Bound result 3238687616318286\n  Bound result 4987\n  Bound result 53988749946956511\n  Bound result 91\n  Bound result 242\n  Bound result 661108505974471964\n  Bound result 689\n  Bound result 270794601306910173\n  Bound result 24576\n  Bound result 2846\n  Bound result 5066137737104225806\n  Bound result 65\n  Bound result 3\n  Bound result 22\n  Bound result 0\n  Bound result 1813706570368470721\n  Bound result 36\n  Bound result 7\n  Bound result 1015\n  Bound result 11415528975724377\n  Bound result 3\n  Bound result 6425788\n  Bound result 39476128109269161\n  Bound result 999999999999997155\n  Bound result 985185084944335876\n  Bound result 6762574539262486557\n  Bound result 18\n  Bound result 0\n  Bound result 137\n  Bound result 5000000000000000001\n  Bound result 4185\n  Bound result 100\n  Bound result 1534\n  Bound result 2\n  Bound result 86\n  Bound result 96\n  Bound result 1976304921095974161\n  Bound result 253570096248082441\n  Bound result 9898697893960441211\n  Bound result 22\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 8.72s (8.71s CPU time)\n\nRan 3 test suites in 8.72s (8.73s CPU time): 29 tests passed, 0 failed, 0 skipped (29 total tests)\n","passed":true},{"durationMs":70,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"NightshiftTestToken.approve(address,uint256)\",\"NightshiftTestToken.transfer(address,uint256)\",\"NightshiftTestToken.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":9,\"README.md\":165,\"foundry.toml\":23,\"remappings.txt\":2,\"script/DeployNightshiftTestToken.s.sol\":25,\"src/NightshiftTestToken.sol\":36,\"test/DeployNightshiftTestToken.t.sol\":23,\"test/NightshiftTestToken.invariant.t.sol\":81,\"test/NightshiftTestToken.t.sol\":343},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true},{"durationMs":821,"exitCode":0,"name":"slither","output":"slither: no results at low impact or above","passed":true},{"durationMs":282,"exitCode":0,"name":"aderyn","output":"aderyn: no results at low impact or above","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"3a647fa9d73b6c33f2b14284a5295205cc8f5f57ee34ed81152322d9bd5b2b7d","verifiedTreeHash":"ce9ba51a0e81bdd4a4068f97e5b5ce76700a6586","verifierVersion":"0.1.0+4d02833d"},{"checks":[{"durationMs":1745,"exitCode":0,"name":"build","output":"Compiling 31 files with Solc 0.8.26\nSolc 0.8.26 finished in 1.66s\nCompiler run successful!\n","passed":true},{"durationMs":16736,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 1 test for test/DeployNightshiftTestToken.t.sol:DeployNightshiftTestTokenTest\n[PASS] test_deployMintsSupplyToTheCaller() (gas: 1550898)\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 400.36µs (216.66µs CPU time)\n\nRan 27 tests for test/NightshiftTestToken.t.sol:NightshiftTestTokenTest\n[PASS] testFuzz_RevertWhen_transferExceedsBalance(address,uint256) (runs: 1000, μ: 43199, ~: 42968)\nLogs:\n  Bound result 585681230246407595352808300127114466908084778575\n  Bound result 209204421048417573211426261493710284603143422621468088094900627\n\n[PASS] testFuzz_RevertWhen_transferFromExceedsAllowance(uint256,uint256) (runs: 1000, μ: 95259, ~: 95646)\nLogs:\n  Bound result 22\n  Bound result 5000000000000000000\n\n[PASS] testFuzz_roundTripReturnsExactly(uint256) (runs: 1000, μ: 117095, ~: 117112)\nLogs:\n  Bound result 242\n\n[PASS] testFuzz_transferFromWithinAllowance(uint256,uint256) (runs: 1000, μ: 157444, ~: 158941)\nLogs:\n  Bound result 91\n  Bound result 46\n\n[PASS] testFuzz_transferIsExactAndConservesSupply(address,uint256) (runs: 1000, μ: 100235, ~: 100367)\nLogs:\n  Bound result 585681230246407595352808300127114466908084778575\n  Bound result 80448635827006190127\n\n[PASS] test_RevertWhen_deployerPullsFromHolderWithoutAllowance() (gas: 98210)\n[PASS] test_RevertWhen_sendingEther() (gas: 39722)\n[PASS] test_RevertWhen_transferExceedsBalance() (gas: 92736)\n[PASS] test_RevertWhen_transferFromEmptyAccount() (gas: 37747)\n[PASS] test_RevertWhen_transferFromExceedsAllowance() (gas: 88077)\n[PASS] test_RevertWhen_transferFromExceedsBalanceDespiteAllowance() (gas: 148465)\n[PASS] test_RevertWhen_transferFromWithoutAllowance() (gas: 38430)\n[PASS] test_RevertWhen_transferToZeroAddress() (gas: 32982)\n[PASS] test_approveSetsAllowanceAndEmits() (gas: 68181)\n[PASS] test_chainOfTransfersConservesSupply() (gas: 259533)\n[PASS] test_constructorEmitsSingleMintTransfer() (gas: 11582)\n[PASS] test_constructorMintsWholeSupplyToDeployerOnce() (gas: 62854)\n[PASS] test_infiniteAllowanceIsNotDecremented() (gas: 123397)\n[PASS] test_metadata() (gas: 80714)\n[PASS] test_noMintOrAdminSelectorExists() (gas: 2213866)\n[PASS] test_runtimeHasNoDelegatecallOrSelfdestruct() (gas: 3063952)\n[PASS] test_supplyGoesToWhoeverDeploys() (gas: 21553)\n[PASS] test_transferFromSpendsAllowanceExactly() (gas: 164230)\n[PASS] test_transferMovesExactAmountWithNoFee() (gas: 96833)\n[PASS] test_transferToSelfKeepsBalance() (gas: 43934)\n[PASS] test_transferWholeBalanceHasNoLimit() (gas: 78432)\n[PASS] test_transferZeroAmountSucceeds() (gas: 47769)\nSuite result: ok. 27 passed; 0 failed; 0 skipped; finished in 157.97ms (663.32ms CPU time)\n\nRan 22 tests for test/NightshiftTestToken.edge.t.sol:NightshiftTestTokenEdgeTest\n[PASS] testFuzz_approvalReplacementIsIsolated(uint256,uint256) (runs: 1000, μ: 276952, ~: 277051)\n[PASS] testFuzz_insufficientBalanceRollsBackAllowanceAndAllowsFundedRetry(uint256,uint256) (runs: 1000, μ: 692899, ~: 693125)\nLogs:\n  Bound result 40000000000000000000\n  Bound result 60000000000000001887\n\n[PASS] testFuzz_onlyApprovedSpenderCanPull(uint256) (runs: 1000, μ: 584165, ~: 583969)\nLogs:\n  Bound result 60430475586891736516\n\n[PASS] testFuzz_partitionedSpendsExhaustAllowanceAndCannotReplay(uint256,uint256) (runs: 1000, μ: 644509, ~: 645102)\nLogs:\n  Bound result 40000000000000000000\n  Bound result 1887\n\n[PASS] test_approvalReplacementAndRevocationEmitExactValues() (gas: 260773)\n[PASS] test_contractDeploymentMintsToImmediateDeployerNotOrigin() (gas: 240176)\n[PASS] test_delegatedSelfTransferConsumesAllowanceWithoutMovingBalance() (gas: 171697)\n[PASS] test_fullSupplyCanBeSpentByApprovedThirdParty() (gas: 220509)\n[PASS] test_infiniteAllowanceSurvivesRepeatedSpendsButCanBeRevoked() (gas: 818116)\n[PASS] test_maxMinusOneAllowanceIsFinite() (gas: 152855)\n[PASS] test_maxTransferAmountsRevertWithoutOverflowOrStateChanges() (gas: 892508)\n[PASS] test_oneWeiCanBeTransferredAndSpentWithoutRoundingOrFee() (gas: 238136)\n[PASS] test_selfTransferOfWholeSupplyEmitsWithoutChangingState() (gas: 423423)\n[PASS] test_selfTransferStillRequiresSufficientBalance() (gas: 892002)\n[PASS] test_transferFromByHolderDoesNotBypassAllowance() (gas: 550565)\n[PASS] test_transferFromZeroRecipientPreservesInfiniteAllowance() (gas: 470836)\n[PASS] test_transferFromZeroRecipientRollsBackFiniteAllowanceAndCanRetry() (gas: 1008639)\n[PASS] test_transferFromZeroSourceCannotMintEvenWithZeroAmount() (gas: 430101)\n[PASS] test_zeroRecipientRejectedEvenForZeroTransfer() (gas: 871394)\n[PASS] test_zeroSpenderRejectedEvenForZeroApproval() (gas: 899877)\n[PASS] test_zeroTransferFromEmptyHolderEmitsTransfer() (gas: 425475)\n[PASS] test_zeroTransferFromNeedsNoBalanceOrAllowanceAndEmitsTransfer() (gas: 428859)\nSuite result: ok. 22 passed; 0 failed; 0 skipped; finished in 157.99ms (634.28ms CPU time)\n\nRan 1 test for test/NightshiftTestToken.invariant.t.sol:NightshiftTestTokenInvariantTest\n[PASS]\nNightshiftTestTokenInvariantTest invariants:\n[PASS] invariant_allowancesMatchApprovalsAndSpends\n[PASS] invariant_balancesMatchAuthorizedTransfers\n[PASS] invariant_balancesSumToSupply\n[PASS] invariant_totalSupplyIsFixed\n[PASS] invariant_zeroAddressHasNoTokensOrApprovals\n NightshiftTestTokenInvariantTest invariants (runs: 256, calls: 32768, reverts: 0)\n\n╭--------------+-----------------------+-------+---------+----------╮\n| Contract     | Selector              | Calls | Reverts | Discards |\n+===================================================================+\n| TokenHandler | approve               | 3223  | 0       | 0        |\n|--------------+-----------------------+-------+---------+----------|\n| TokenHandler | approveZeroSpender    | 3296  | 0       | 0        |\n|--------------+-----------------------+-------+---------+----------|\n| TokenHandler | forbiddenCall         | 3190  | 0       | 0        |\n|--------------+-----------------------+-------+---------+----------|\n| TokenHandler | revoke                | 3295  | 0       | 0        |\n|--------------+-----------------------+-------+---------+----------|\n| TokenHandler | transfer              | 3341  | 0       | 0        |\n|--------------+-----------------------+-------+---------+----------|\n| TokenHandler | transferFrom          | 3312  | 0       | 0        |\n|--------------+-----------------------+-------+---------+----------|\n| TokenHandler | transferFromOverLimit | 3317  | 0       | 0        |\n|--------------+-----------------------+-------+---------+----------|\n| TokenHandler | transferFromToZero    | 3273  | 0       | 0        |\n|--------------+-----------------------+-------+---------+----------|\n| TokenHandler | transferOverBalance   | 3198  | 0       | 0        |\n|--------------+-----------------------+-------+---------+----------|\n| TokenHandler | transferToZero        | 3323  | 0       | 0        |\n╰--------------+-----------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 10000000000000000000\n  Bound result 10000000000000000000\n  Bound result 10000000000000000000\n  Bound result 10000000000000000000\n  Bound result 10000000000000000000\n  Bound result 1\n  Bound result 0\n  Bound result 26409663560779159245957853369630291191693597991513560285392977449354095080820\n  Bound result 115792089237316195423570985008687907853269984665640564039447584007913198868597\n  Bound result 0\n  Bound result 0\n  Bound result 100000000000000000000\n  Bound result 0\n  Bound result 0\n  Bound result 4999999999999999998\n  Bound result 0\n  Bound result 0\n  Bound result 1311853793271462430\n  Bound result 8688146206728537569\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 8179665415773591974\n  Bound result 115792089237316195423570985008687907853269984665640564039414960300326586721501\n  Bound result 243\n  Bound result 86\n  Bound result 1998\n  Bound result 0\n  Bound result 0\n  Bound result 1313373042\n  Bound result 8\n  Bound result 7997\n  Bound result 0\n  Bound result 1189470633725180524875226956603400803898538603941617225308075732612244071\n  Bound result 115792089237316195423570985008687907853269984665640564039447584007913129640425\n  Bound result 10519\n  Bound result 0\n  Bound result 10000000000000000247\n  Bound result 1000000000000000001\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 115792089237316195423570985008687907853269984665640564039447584007913129649857\n  Bound result 115792089237316195423570985008687907853269984665640564039447584007914312608836\n  Bound result 10000000000000000002\n  Bound result 1998\n  Bound result 7443\n  Bound result 0\n  Bound result 2000000000000000000\n  Bound result 8703600700925723493\n  Bound result 133\n  Bound result 253\n  Bound result 91\n  Bound result 18\n  Bound result 1\n  Bound result 2000000000000000000\n  Bound result 0\n  Bound result 0\n  Bound result 115792089237316195423570985008687907853269984665640564039447584007913129639971\n  Bound result 115792089237316195423570985008687907853269984665640564039440207715499672575993\n  Bound result 0\n  Bound result 0\n  Bound result 3299036730\n  Bound result 0\n  Bound result 4012916998441954725090046277726557941838873832\n  Bound result 115792089237316195423570985008687907853269984665640564039447584007913129632746\n  Bound result 0\n  Bound result 18\n  Bound result 969\n  Bound result 115792089237316195423570985008687907853269984665640564039447584007913129636855\n  Bound result 0\n  Bound result 4728\n  Bound result 244\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 16.62s (16.61s CPU time)\n\nRan 4 test suites in 16.62s (16.93s CPU time): 51 tests passed, 0 failed, 0 skipped (51 total tests)\n","passed":true},{"durationMs":46,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"NightshiftTestToken.approve(address,uint256)\",\"NightshiftTestToken.transfer(address,uint256)\",\"NightshiftTestToken.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":9,\"README.md\":165,\"foundry.toml\":23,\"remappings.txt\":2,\"script/DeployNightshiftTestToken.s.sol\":25,\"src/NightshiftTestToken.sol\":36,\"test/DeployNightshiftTestToken.t.sol\":23,\"test/NightshiftTestToken.edge.t.sol\":384,\"test/NightshiftTestToken.invariant.t.sol\":241,\"test/NightshiftTestToken.t.sol\":354},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"93e2c2bd9e295f5be12451077bab2ee9e6661a05abf1ece64ecba4b0cfa82edf","verifiedTreeHash":"10976504f13c55016f7e657f566473bbf3b9e4eb","verifierVersion":"0.1.0+4d02833d"},{"checks":[{"durationMs":1333,"exitCode":0,"name":"build","output":"Compiling 30 files with Solc 0.8.26\nSolc 0.8.26 finished in 1.26s\nCompiler run successful!\n","passed":true},{"durationMs":8927,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 1 test for test/DeployNightshiftTestToken.t.sol:DeployNightshiftTestTokenTest\n[PASS] test_deployMintsSupplyToTheCaller() (gas: 1550898)\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 904.62µs (723.11µs CPU time)\n\nRan 27 tests for test/NightshiftTestToken.t.sol:NightshiftTestTokenTest\n[PASS] testFuzz_RevertWhen_transferExceedsBalance(address,uint256) (runs: 256, μ: 42672, ~: 42487)\nLogs:\n  Bound result 5150548730606851241751503308659868319249607741905835565103927139530363312438\n\n[PASS] testFuzz_RevertWhen_transferFromExceedsAllowance(uint256,uint256) (runs: 256, μ: 95457, ~: 95658)\nLogs:\n  Bound result 89480447421604536436\n  Bound result 92968143458524994825\n\n[PASS] testFuzz_roundTripReturnsExactly(uint256) (runs: 256, μ: 117394, ~: 117088)\nLogs:\n  Bound result 35000000000000000000\n\n[PASS] testFuzz_transferFromWithinAllowance(uint256,uint256) (runs: 256, μ: 157612, ~: 158971)\nLogs:\n  Bound result 89480318477866473129\n  Bound result 52053066740282354407\n\n[PASS] testFuzz_transferIsExactAndConservesSupply(address,uint256) (runs: 256, μ: 99738, ~: 99917)\nLogs:\n  Bound result 35601061893440336768\n\n[PASS] test_RevertWhen_deployerPullsFromHolderWithoutAllowance() (gas: 98198)\n[PASS] test_RevertWhen_sendingEther() (gas: 39722)\n[PASS] test_RevertWhen_transferExceedsBalance() (gas: 92736)\n[PASS] test_RevertWhen_transferFromEmptyAccount() (gas: 37747)\n[PASS] test_RevertWhen_transferFromExceedsAllowance() (gas: 88077)\n[PASS] test_RevertWhen_transferFromExceedsBalanceDespiteAllowance() (gas: 148465)\n[PASS] test_RevertWhen_transferFromWithoutAllowance() (gas: 38430)\n[PASS] test_RevertWhen_transferToZeroAddress() (gas: 32982)\n[PASS] test_approveSetsAllowanceAndEmits() (gas: 68181)\n[PASS] test_chainOfTransfersConservesSupply() (gas: 259533)\n[PASS] test_constructorEmitsSingleMintTransfer() (gas: 11582)\n[PASS] test_constructorMintsWholeSupplyToDeployerOnce() (gas: 62854)\n[PASS] test_infiniteAllowanceIsNotDecremented() (gas: 123397)\n[PASS] test_metadata() (gas: 80714)\n[PASS] test_noMintOrAdminSelectorExists() (gas: 1074596)\n[PASS] test_runtimeHasNoDelegatecallOrSelfdestruct() (gas: 3063952)\n[PASS] test_supplyGoesToWhoeverDeploys() (gas: 21553)\n[PASS] test_transferFromSpendsAllowanceExactly() (gas: 164230)\n[PASS] test_transferMovesExactAmountWithNoFee() (gas: 96833)\n[PASS] test_transferToSelfKeepsBalance() (gas: 43934)\n[PASS] test_transferWholeBalanceHasNoLimit() (gas: 78432)\n[PASS] test_transferZeroAmountSucceeds() (gas: 47769)\nSuite result: ok. 27 passed; 0 failed; 0 skipped; finished in 26.44ms (120.91ms CPU time)\n\nRan 1 test for test/NightshiftTestToken.invariant.t.sol:NightshiftTestTokenInvariantTest\n[PASS]\nNightshiftTestTokenInvariantTest invariants:\n[PASS] invariant_balancesSumToSupply\n[PASS] invariant_totalSupplyIsFixed\n NightshiftTestTokenInvariantTest invariants (runs: 256, calls: 128000, reverts: 0)\n\n╭--------------+--------------+-------+---------+----------╮\n| Contract     | Selector     | Calls | Reverts | Discards |\n+==========================================================+\n| TokenHandler | approve      | 42819 | 0       | 0        |\n|--------------+--------------+-------+---------+----------|\n| TokenHandler | transfer     | 42258 | 0       | 0        |\n|--------------+--------------+-------+---------+----------|\n| TokenHandler | transferFrom | 42923 | 0       | 0        |\n╰--------------+--------------+-------+---------+----------╯\n\nLogs:\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 25000000000000000000\n  Bound result 0\n  Bound result 127\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 1\n  Bound result 0\n  Bound result 5\n  Bound result 0\n  Bound result 0\n  Bound result 1\n  Bound result 60000000000000000000\n  Bound result 0\n  Bound result 96\n  Bound result 0\n  Bound result 4857\n  Bound result 997\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 10\n  Bound result 343\n  Bound result 200\n  Bound result 0\n  Bound result 8\n  Bound result 17\n  Bound result 0\n  Bound result 87\n  Bound result 10000000000000000756\n  Bound result 1896\n  Bound result 20\n  Bound result 4811\n  Bound result 0\n  Bound result 0\n  Bound result 734\n  Bound result 0\n  Bound result 69\n  Bound result 100\n  Bound result 130\n  Bound result 3241999802992405376\n  Bound result 0\n  Bound result 23\n  Bound result 20000000000000000000\n  Bound result 5\n  Bound result 5494724320744919373\n  Bound result 0\n  Bound result 582\n  Bound result 503\n  Bound result 0\n  Bound result 9\n  Bound result 10\n  Bound result 1650\n  Bound result 95\n  Bound result 2592286111\n  Bound result 242\n  Bound result 3479559837\n  Bound result 1644003499475507568\n  Bound result 25\n  Bound result 1000000000000000000\n  Bound result 1276140367850913722\n  Bound result 2772\n  Bound result 253\n  Bound result 0\n  Bound result 2\n  Bound result 2110234841\n  Bound result 152\n  Bound result 588\n  Bound result 25438407460689435303\n  Bound result 98\n  Bound result 14999999999112725566\n  Bound result 39\n  Bound result 10\n  Bound result 1000000000000000000\n  Bound result 5332\n  Bound result 1623\n  Bound result 0\n  Bound result 843781132337069128\n  Bound result 4290\n  Bound result 3180\n  Bound result 5529\n  Bound result 4768986054575648443\n  Bound result 4615\n  Bound result 868\n  Bound result 0\n  Bound result 527\n  Bound result 282\n  Bound result 24576\n  Bound result 404098526\n  Bound result 5246\n  Bound result 2\n  Bound result 24576\n  Bound result 0\n  Bound result 835352514700604017\n  Bound result 12\n  Bound result 96\n  Bound result 0\n  Bound result 68\n  Bound result 0\n  Bound result 42\n  Bound result 459\n  Bound result 115952087426787568\n  Bound result 127\n  Bound result 2\n  Bound result 48\n  Bound result 314175841\n  Bound result 7404384084331380607\n  Bound result 2592286112\n  Bound result 1486891944\n  Bound result 7000000000000000000\n  Bound result 29663813148015667279\n  Bound result 114\n  Bound result 1000000000000000001\n  Bound result 3\n  Bound result 2920\n  Bound result 4140\n  Bound result 251\n  Bound result 13452323066722927468\n  Bound result 254\n  Bound result 13\n  Bound result 95\n  Bound result 0\n  Bound result 762\n  Bound result 253\n  Bound result 346\n  Bound result 283\n  Bound result 22\n  Bound result 37204614850623250\n  Bound result 0\n  Bound result 5759\n  Bound result 162751755\n  Bound result 55\n  Bound result 5000000001774554433\n  Bound result 13643929479358851\n  Bound result 0\n  Bound result 20000000000887274434\n  Bound result 95\n  Bound result 256\n  Bound result 511937258426467281\n  Bound result 50\n  Bound result 176143665248864273\n  Bound result 86\n  Bound result 27\n  Bound result 6400582849235917253\n  Bound result 42\n  Bound result 162296776117060113\n  Bound result 0\n  Bound result 0\n  Bound result 13235928\n  Bound result 248091608124953053\n  Bound result 1\n  Bound result 3\n  Bound result 408397189997746544\n  Bound result 3337335985751903180\n  Bound result 41439057264959857\n  Bound result 124\n  Bound result 2342\n  Bound result 2112\n  Bound result 0\n  Bound result 8565094192842568082\n  Bound result 2801\n  Bound result 1\n  Bound result 4276\n  Bound result 15750\n  Bound result 22\n  Bound result 2694187454735600\n  Bound result 86\n  Bound result 0\n  Bound result 0\n  Bound result 7\n  Bound result 641\n  Bound result 118646493455122339\n  Bound result 435\n  Bound result 1473\n  Bound result 17417728871309451469\n  Bound result 100\n  Bound result 86\n  Bound result 2000000000000000000\n  Bound result 3297311791005698273\n  Bound result 96\n  Bound result 127\n  Bound result 971394157119708669\n  Bound result 183065254689391237\n  Bound result 100\n  Bound result 7252724517752516694\n  Bound result 518392162\n  Bound result 169\n  Bound result 1489016162894\n  Bound result 95\n  Bound result 22\n  Bound result 9145232502813672970\n  Bound result 10586647319663684878\n  Bound result 632671418016330781\n  Bound result 32334950339138252\n  Bound result 20000000000000000000\n  Bound result 477\n  Bound result 3241999802992407912\n  Bound result 763600050\n  Bound result 254\n  Bound result 253\n  Bound result 2093\n  Bound result 4651\n  Bound result 4536\n  Bound result 718\n  Bound result 3093743780\n  Bound result 4852902545438012427\n  Bound result 1616\n  Bound result 3560\n  Bound result 284\n  Bound result 9928685301965360008\n  Bound result 4780514590751162274\n  Bound result 20854767496667934866\n  Bound result 3504\n  Bound result 22\n  Bound result 106911017020124769\n  Bound result 148\n  Bound result 3831\n  Bound result 5502432291052469547\n  Bound result 6763256369075123400\n  Bound result 17\n  Bound result 2\n  Bound result 86\n  Bound result 0\n  Bound result 30757410796361852272\n  Bound result 8565094192842568082\n  Bound result 36\n  Bound result 95\n  Bound result 6960600949682935934\n  Bound result 1784091869455192432\n  Bound result 32\n  Bound result 2\n  Bound result 1916971594116193246\n  Bound result 255\n  Bound result 411177984\n  Bound result 967\n  Bound result 1\n  Bound result 1542327072250137530\n  Bound result 209\n  Bound result 14056980368900537\n  Bound result 2592286111\n  Bound result 663258060480310085\n  Bound result 243\n  Bound result 683\n  Bound result 401\n  Bound result 319\n  Bound result 1\n  Bound result 25664795871188295\n  Bound result 95\n  Bound result 867\n  Bound result 459936903\n  Bound result 4925\n  Bound result 23739508436022419\n  Bound result 91\n  Bound result 242\n  Bound result 1\n  Bound result 689\n  Bound result 370399114030545962\n  Bound result 24576\n  Bound result 2789\n  Bound result 749425898151000355\n  Bound result 1\n  Bound result 3\n  Bound result 22\n  Bound result 0\n  Bound result 36\n  Bound result 36\n  Bound result 4505275677144852451\n  Bound result 2132\n  Bound result 11415528975724377\n  Bound result 8842478610233754458\n  Bound result 10000000000000000000\n  Bound result 44549270673411285\n  Bound result 151095349460391682\n  Bound result 15538365548979837\n  Bound result 7252724517752513761\n  Bound result 18\n  Bound result 3358\n  Bound result 448\n  Bound result 5000000000000000001\n  Bound result 4059\n  Bound result 100\n  Bound result 53\n  Bound result 2\n  Bound result 86\n  Bound result 96\n  Bound result 5466904532195720257\n  Bound result 78282133205959708\n  Bound result 1401108225577250236\n  Bound result 22\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 8.82s (8.81s CPU time)\n\nRan 3 test suites in 8.83s (8.84s CPU time): 29 tests passed, 0 failed, 0 skipped (29 total tests)\n","passed":true},{"durationMs":49,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"NightshiftTestToken.approve(address,uint256)\",\"NightshiftTestToken.transfer(address,uint256)\",\"NightshiftTestToken.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":9,\"README.md\":165,\"foundry.toml\":23,\"launch.json\":24,\"remappings.txt\":2,\"script/DeployNightshiftTestToken.s.sol\":25,\"src/NightshiftTestToken.sol\":36,\"test/DeployNightshiftTestToken.t.sol\":23,\"test/NightshiftTestToken.invariant.t.sol\":81,\"test/NightshiftTestToken.t.sol\":343},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"d7a042310be26ddaf4fda574cc1a08dd1a890a52f0ecfa4d64339ad6337a24b2","verifiedTreeHash":"f6f404f9de215f024080848248e825007b143845","verifierVersion":"0.1.0+4d02833d"}]}