{"assessments":[],"deployments":[{"attestationHash":"f4f74f3392f65f6bbf1b1dd4764f53265b13adb432687e37c131ec68d72d3d5b","chainId":1,"contracts":[{"address":"0x784ff9a3ac5d88a30bfff6f7f2a270161fbe6000","blockNumber":26328817,"name":"PoolInitializationGuard","role":"hook","txHash":"0x27193bdcb0f0cd18df33fbb0f19c547e6acc23a84dd7d7ec838fce7d1b532fdf"},{"address":"0xefa12105853404b8504676c1eb124ed73e3f46dd","blockNumber":26328817,"name":"Conditionals","role":"token","txHash":"0x27193bdcb0f0cd18df33fbb0f19c547e6acc23a84dd7d7ec838fce7d1b532fdf"},{"address":"0x0d3cd6fd8f2d5ae2294f8e9b3df0b16dd098a654","blockNumber":26328817,"name":"MerkleDistributor","role":"distributor","txHash":"0x27193bdcb0f0cd18df33fbb0f19c547e6acc23a84dd7d7ec838fce7d1b532fdf"}],"id":"03587665-1e59-4f52-a365-22551282f641","manifestHash":"5b92b4ab1ef55f425da2ef3e24e0ed3c8b4b864cf12d4ad93e4b398a0330f213","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":"e6088403-a55e-4524-a958-54e2b64d5fae","kind":"shape:chain","nodes":[{"acceptedSubmissionHash":"935f5daa0dea610b0e4be46ce1aa3300e8a380bab712e529cffd8fb548c00ec2","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"bc5bfc8455464381f2db18badb2b55cf8bec1e535c019349a0378fa990741171","skillId":"audit-specialist","subagents":3,"tools":[]},"key":"audit_economics","kind":"code","role":"review","skillHash":"bc5bfc8455464381f2db18badb2b55cf8bec1e535c019349a0378fa990741171","skillId":"audit-specialist","state":"accepted"},{"acceptedSubmissionHash":"09eb5f2529fa5a09b905713317f919930d31b39c8fe4b7f785cdc90881c85b54","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"bc5bfc8455464381f2db18badb2b55cf8bec1e535c019349a0378fa990741171","skillId":"audit-specialist","subagents":3,"tools":[]},"key":"audit_flow","kind":"code","role":"review","skillHash":"bc5bfc8455464381f2db18badb2b55cf8bec1e535c019349a0378fa990741171","skillId":"audit-specialist","state":"accepted"},{"acceptedSubmissionHash":"3e04cbac9508dc350b1e22f36e596f19106f0d55ff744c1eb9e06c4e9f246feb","dependsOn":["build_contract_project","write_foundry_tests","manifest","audit_math","audit_permissions","audit_economics","audit_flow"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"b89279670f5a00f5d26286edee00c97dd158b997031350a01cafe6e0329ad227","skillId":"audit-judge","subagents":4,"tools":[]},"key":"audit_judge","kind":"code","role":"review","skillHash":"b89279670f5a00f5d26286edee00c97dd158b997031350a01cafe6e0329ad227","skillId":"audit-judge","state":"accepted"},{"acceptedSubmissionHash":"8320d6e0086a684889438b568f49c2fa3798badb8f7dd986076cf0488ce77826","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"bc5bfc8455464381f2db18badb2b55cf8bec1e535c019349a0378fa990741171","skillId":"audit-specialist","subagents":3,"tools":[]},"key":"audit_math","kind":"code","role":"review","skillHash":"bc5bfc8455464381f2db18badb2b55cf8bec1e535c019349a0378fa990741171","skillId":"audit-specialist","state":"accepted"},{"acceptedSubmissionHash":"c8b4719648d136764bbe3b70982d5aa4b21094a608c2b513169f05451c47572a","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"bc5bfc8455464381f2db18badb2b55cf8bec1e535c019349a0378fa990741171","skillId":"audit-specialist","subagents":3,"tools":[]},"key":"audit_permissions","kind":"code","role":"review","skillHash":"bc5bfc8455464381f2db18badb2b55cf8bec1e535c019349a0378fa990741171","skillId":"audit-specialist","state":"accepted"},{"acceptedSubmissionHash":"c72f9a7d8072d4f0c816f3787dd832909417c1d50c53d75fbe836f2ef678b5a1","dependsOn":[],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"15b04fc8f60521936b9e2b37c09a804685ec689fc98cd5b04510d986d3106a15","skillId":"build-contract-project","tools":[]},"key":"build_contract_project","kind":"code","role":"implement","skillHash":"15b04fc8f60521936b9e2b37c09a804685ec689fc98cd5b04510d986d3106a15","skillId":"build-contract-project","state":"accepted"},{"acceptedSubmissionHash":"7a24fd60d93f4230f6dad7c0a76f310b0602de11f0941a15020f31f9b63f8f3e","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"tools":[]},"key":"manifest","kind":"code","role":"integrate","skillHash":null,"skillId":null,"state":"accepted"},{"acceptedSubmissionHash":"bca56de44f86e8aab721bc0af9e744dfcaa3910b8470729c43cb0b533d375036","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"606842ccca0e7c5d3017a54684625438eab9b351eb51dcf0cf88c43d1ea41464","skillId":"write-foundry-tests","subagents":4,"tools":[]},"key":"write_foundry_tests","kind":"code","role":"tests","skillHash":"606842ccca0e7c5d3017a54684625438eab9b351eb51dcf0cf88c43d1ea41464","skillId":"write-foundry-tests","state":"accepted"}],"objective":"A custom token: Conditionals (COND).\nToken name: Conditionals\nToken symbol: COND\nToken supply: 1,000,000,000 with 18 decimals, all minted once to the deployer in the constructor.","parentJobId":null,"planHash":"039ecdf6636e9a29ac183b56c93c3f05eefaf75e452bd1d9bd63c8e730d90e78","previousHash":"ff8a92d790caef0fcb188027520af0f7a2605ff40f4b485215584765e3190b38","projectId":"e6088403-a55e-4524-a958-54e2b64d5fae","publication":{"commit":"98a77349ff2f9de5d47568593a3952bce513f606","deliveredAt":"2026-11-02T18:13:30.205Z","repoUrl":"https://github.com/identity-md-launches/launch-2892-conditionals"},"receiptIdentity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"registry":"0xb6d0a187b050fa5bb0b87033a203f37becf4a775","research":[],"schema":"identitymd-work-v1","signals":[],"site":null,"snapshotHash":"69602f51b88df97dcc1c9037553f1fd2ea52f62e461e8b4de1e0b75ee2d94422","state":"completed","submissions":[{"artifacts":[],"attempt":1,"bundleHash":null,"device":"72ae9b5bbd1a54b6","findings":[],"hash":"09eb5f2529fa5a09b905713317f919930d31b39c8fe4b7f785cdc90881c85b54","nodeId":"1e90a35c-bb0c-4a46-8db1-8b8609162c7c","outcome":"completed","summary":"The review is complete and the result is written to `.imd-findings.json` with an empty findings list and eight coverage rows. The working tree is otherwise untouched.\n\n**Outcome: no defects found in the control-flow area.** The token is a 17-line contract that inherits OpenZeppelin ERC20 v5.0.2 and mints the full supply once to msg.sender in its constructor. There is no override of transfer logic, no owner, and no external call anywhere.\n\nWhat I verified, by guide:\n\n- **Execution Trace.** Traced approve, transfer and transferFrom through OpenZeppelin's internal functions. Allowance is spent before the balance moves, so any revert rolls back both. The infinite-allowance sentinel skips only the decrement, not the balance check. The constructor is non-payable and makes no calls, so a factory CREATE2 deployment lands the whole supply on the factory.\n- **Periphery.** The five vendored OpenZeppelin files are byte-identical to the upstream v5.0.2 tag, so the base contract the token trusts is the audited one.\n- **First Principles.** The only implicit assumption is that the deployer is the intended recipient, which the launch design makes true. The token's name suggests transfer conditions, but the brief asks for none and the README states that plainly.\n\nChecks I ran:\n\n- The project's own 34 tests, including fuzz and stateful invariants, all pass.\n- A scratch test mirroring the protected floor: launch flows arrive whole, 22 privileged selectors revert from both a stranger and the factory, the factory cannot move a holder's balance, and a reachable-opcode scan finds no DELEGATECALL, CALLCODE, SELFDESTRUCT or even CALL.\n- Formatting check passes.\n\nThe one static-analysis lead, the large numeric literal, is cosmetic. The constant equals exactly 10^27 and the project's test asserts that. I recorded it as a coverage row rather than a finding. All three listed entry points are marked `holds`, and nothing in my area was left unreached.","treeHash":null,"usage":{"cachedInputTokens":377683,"inputTokens":194,"model":"claude-fable-5-1","outputTokens":9653,"runtime":"claude","turns":19,"wallClockMs":138883}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"1731fbfe0c4574fb","findings":[],"hash":"3e04cbac9508dc350b1e22f36e596f19106f0d55ff744c1eb9e06c4e9f246feb","nodeId":"efb8aa76-8237-4b9f-b026-0a5b855846de","outcome":"completed","summary":"The review is complete. `.imd-findings.json` holds zero findings and a full coverage record. No specialist reported a finding, so there was nothing to reproduce or merge, and my own pass found no defect.\n\n**What I verified against the code**\n\n- **Token source** is a 17-line wrapper over OpenZeppelin ERC20 with a no-argument constructor that mints the constant supply once to msg.sender. Build artifacts show exactly three state-changing functions: approve, transfer, transferFrom. No receive, fallback, owner, mint, burn, pause or blacklist path exists.\n- **Vendored library** is genuine. I downloaded the upstream v5.0.2 archive, which matched the SHA-256 recorded in lib/DEPENDENCIES.md, and all five vendored Solidity files match upstream byte-for-byte.\n- **Launch floor** behaviour was reproduced in a scratch Foundry test. A CREATE2 factory probe deployed the token and held the whole supply of 1e27, decimals read 18, the factory-to-distributor-to-claimant flow arrived whole, finite allowances decremented and the unlimited allowance did not, over-allowance spends reverted, and unknown admin selectors reverted.\n- **Bytecode** is well under limits and a reachable-opcode scan matching the protected test's algorithm found no DELEGATECALL, CALLCODE or SELFDESTRUCT.\n- **Manifest** uses only schema keys, an empty constructorArgs list that matches the constructor, a totalSupply equal to what the constructor mints, lowercase addresses and a 12-character contract name.\n- **Static-analysis lead** from aderyn about a large numeric literal is a compile-time constant that evaluates to exactly 1e27, confirmed by the supply assertion.\n\nThe project's own 51 tests pass with the documented fuzz seed. The scratch test and the downloaded archive were removed, so the working tree contains only the findings file.","treeHash":null,"usage":{"cachedInputTokens":225749,"inputTokens":162,"model":"claude-fable-5-1","outputTokens":7050,"runtime":"claude","turns":17,"wallClockMs":100388}},{"artifacts":[],"attempt":1,"bundleHash":"d8fbf6d18596581c9795334b41d2d18808363378b04324034487cb68f621a330","device":"c872aaeb2e58b080","findings":[],"hash":"7a24fd60d93f4230f6dad7c0a76f310b0602de11f0941a15020f31f9b63f8f3e","nodeId":"8a8a5ea9-6984-4e9f-be18-25c404b1a448","outcome":"completed","summary":"I wrote `launch.json` for the Conditionals (COND) launch and committed it. It is the only file changed. `forge build` and `forge test` with the given fuzz seed both pass (34 of 34 tests). I couldn't run the two protected tests here because the files they import (`src/LaunchLiquidity.sol` and others) aren't in this tree, so they only run on the verifier.\n\nWhat the manifest says:\n- **Token:** contract `Conditionals`, name \"Conditionals\", symbol \"COND\", 18 decimals. `constructorArgs` is empty because the constructor takes no arguments. `totalSupply` is `\"1000000000000000000000000000\"`: the 1,000,000,000 × 10^18 the constructor mints once to `msg.sender`.\n- **Contracts:** none. The accepted tree only contains `src/Conditionals.sol`.\n- **Pool:** paired with IMD (`0xd34a99bc0f67ae1bbd63c660e6d0b0dd03e263b7`), fee 12500, tick spacing 60, initial price `79228162514264337593543950336` (one to one).\n- **Economics:** copied exactly from the job.\n- **Notes:** a short description of the token: no owner, no mint or burn after launch, no fees, pause, blacklist or upgrades, and no application contracts.","treeHash":"d706692b0716dfdd94501de9a8078a0c9d22e065","usage":{"cachedInputTokens":107581,"inputTokens":12,"model":"claude-opus-5-5","outputTokens":2453,"runtime":"claude","turns":7,"wallClockMs":52705}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"7c748c02cd2ee98f","findings":[],"hash":"8320d6e0086a684889438b568f49c2fa3798badb8f7dd986076cf0488ce77826","nodeId":"b35f1cf8-8f30-4a32-9980-166d83a87b10","outcome":"completed","summary":"The review is complete and the findings file is written with no defects and full coverage.\n\n**Outcome.** The Conditionals token has no math, boundary, or numerical-gap defects. The file `.imd-findings.json` holds an empty findings list and eight coverage rows, one for each of the three state-changing entry points plus five invariants and boundaries I checked.\n\n**What the code is.** The token is a fixed-supply ERC-20 that inherits OpenZeppelin v5.0.2 unchanged and adds only a constant and a constructor mint. It has no division, fee, scaling, cast, external call, payable path, or bytes decoding, so most failure modes in the three guides have nothing to attach to.\n\n**What I verified.**\n- All five vendored OpenZeppelin files hash identically to the upstream v5.0.2 sources fetched from GitHub, so the arithmetic under review is the audited upstream code.\n- The supply constant compiles to exactly 10^27, which divides into one billion whole tokens with no remainder. The aderyn \"large numeric literal\" lead is style only.\n- Transfer and transferFrom check balance and allowance before each unchecked subtraction, so max-uint amounts and supply-plus-one revert cleanly. Allowance at max minus one decrements, at max it does not, and a balance revert leaves the allowance untouched.\n- Zero-amount and self-transfer fast paths leave balances and allowances exact, so no invariant is skipped at the edge.\n- The launch's ten, eighty and ten percent split of 10^27 in basis points is exact with no truncation residue.\n- The project's own 34 tests pass, including the stateful invariant suite, and my eleven scratch probes passed before I removed them.\n\n**Not covered.** Nothing in my area was left unreached. Uniswap v4 seeding and swap arithmetic belong to the deployer and the protected integration suite, not to this token's code, and I did not model them beyond confirming the supply fits comfortably in the pool manager's signed 128-bit deltas.","treeHash":null,"usage":{"cachedInputTokens":395143,"inputTokens":194,"model":"claude-fable-5-1","outputTokens":11057,"runtime":"claude","turns":24,"wallClockMs":137239}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"b5e3297a04468fd3","findings":[],"hash":"87b7e45ba51b59e16bc6dddd505d8fea36731c06f5b382f7ab5c38988b32eb43","nodeId":"0d7f4e86-aa23-4b29-a778-7f11bcc27df6","outcome":"failed","summary":"Failed to authenticate: OAuth token revoked. Please log in again or contact your administrator.","treeHash":null,"usage":{"cachedInputTokens":0,"inputTokens":0,"model":null,"outputTokens":0,"runtime":"claude","turns":1,"wallClockMs":3954}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"82692ab5f7f7e54e","findings":[],"hash":"935f5daa0dea610b0e4be46ce1aa3300e8a380bab712e529cffd8fb548c00ec2","nodeId":"d770eb14-7cf6-426b-83f1-80543d6bcbcd","outcome":"completed","summary":"The findings file is in place and excluded from git by the repository's own exclude rules, and the working tree holds no other change.\n\n**Result: no defects found in the economics area.** The findings file at `.imd-findings.json` holds an empty findings list and seven coverage rows, all `holds`.\n\n**What the code is.** The only production contract is a bare OpenZeppelin v5.0.2 ERC20 whose constructor mints the full supply to msg.sender once. There is no owner, fee, burn, mint, pause, blacklist, callback, external call, receive or fallback. The compiled ABI exposes exactly the three state-changing entry points the verifier listed plus standard views.\n\n**What I checked, per guide:**\n- **Economic Security.** No external dependencies or oracles to break. No fee-on-transfer, rebase or blacklist behaviour, so every launch flow moves exactly what it says. A scratch test reproduced the 10/80/10 split and a PoolManager-style approve plus transferFrom pull, all arriving whole. ERC-20 compliance matches EIP-20, with the revert-on-zero-address choices documented in the README.\n- **Invariant.** Sum of balances equals total supply equals 1e27 forever. The single mint is at line 15 of the token file and nothing else writes supply. Boundaries tested: zero amount, full supply, supply plus one, max uint, self-transfer, over-allowance rollback and unlimited allowance.\n- **Flow Gap.** No periphery calls exist inside the token, so no execution-times-periphery seam. The token's stated purpose, a plain fixed-supply token despite the name, is what the code does. A runtime opcode scan found no DELEGATECALL, CALLCODE or SELFDESTRUCT on reachable paths.\n- **Dependency integrity.** All six vendored OpenZeppelin files hash identical to upstream v5.0.2 raw sources.\n\n**Test runs.** The project's own 34 tests pass with the README seed. My scratch suite of four tests, including a 1024-run conservation fuzz, passed and was then deleted.\n\n**Observation, not a defect.** The standard ERC-20 allowance replacement race applies, as it does to every OpenZeppelin v5 token. The README already tells clients to revoke before re-approving.\n\n**Not reached.** Nothing within the token. The Uniswap v4 seed and swap path itself runs only in the protected launch environment, which this workspace cannot execute. The token's transfers are standard, so that path has no token-side reason to fail.","treeHash":null,"usage":{"cachedInputTokens":557269,"inputTokens":322,"model":"claude-fable-5-1","outputTokens":11687,"runtime":"claude","turns":19,"wallClockMs":181833}},{"artifacts":[],"attempt":1,"bundleHash":"8746a6e5a5dd65c498f663fbb0df50f3320227915ecbebd9e2c36efd98e8f061","device":"b5370e603753d2ab","findings":[],"hash":"bca56de44f86e8aab721bc0af9e744dfcaa3910b8470729c43cb0b533d375036","nodeId":"63247302-e7e7-4ba6-b2a9-b4dad7ddfccf","outcome":"completed","summary":"Added failure-path, boundary, and fuzz tests; strengthened balance and allowance invariants. All changes are under `test/`.\n\n- Offline build passed.\n- Supplied-seed test run: **51 passed**.\n- Invariants: **32,768 randomized calls**, no unexpected reverts.\n- Formatting checks passed.\n\nNo implementation defects found.","treeHash":"a15eaf5d23d0d0d481b0a9fa8cef1d0483ef5f76","usage":{"cachedInputTokens":776704,"inputTokens":64645,"model":"gpt-6-astra","outputTokens":13312,"runtime":"codex","turns":6,"wallClockMs":362458}},{"artifacts":[],"attempt":1,"bundleHash":"f6417f4883471ec416db10a39d34afbe53e6f6093e4a744b1c3da6a5a7fbf61a","device":"6d3b3ab49d68191e","findings":[],"hash":"c72f9a7d8072d4f0c816f3787dd832909417c1d50c53d75fbe836f2ef678b5a1","nodeId":"bc4aff8b-b8ee-43fc-ba47-7cb94fdb5613","outcome":"completed","summary":"Implemented Conditionals (COND): 1 billion tokens with 18 decimals, minted once to the deployer. No admin or additional minting powers.\n\nIncludes offline dependencies, success/failure tests, fuzz and invariant coverage, and deployment documentation.\n\nVerified successfully:\n\n- `forge build`\n- `forge test` with the supplied seed\n- `forge fmt --check`","treeHash":"f78c172bec91e91d51290fc34b6560dd0577b36e","usage":{"cachedInputTokens":337024,"inputTokens":46032,"model":"gpt-6-astra","outputTokens":13839,"runtime":"codex","turns":5,"wallClockMs":296625}},{"artifacts":[],"attempt":2,"bundleHash":null,"device":"b0001bc8a5c908cd","findings":[],"hash":"c8b4719648d136764bbe3b70982d5aa4b21094a608c2b513169f05451c47572a","nodeId":"0d7f4e86-aa23-4b29-a778-7f11bcc27df6","outcome":"completed","summary":"I found no defects in the permissions area for Conditionals (COND), so `.imd-findings.json` has an empty findings list and five coverage rows. No source files were changed.\n\n**What the code is:** `src/Conditionals.sol` is a plain OpenZeppelin v5.0.2 ERC20. It sets the name `\"Conditionals\"`, the symbol `\"COND\"` and 18 decimals, and the constructor mints `1_000_000_000 * 10**18` once to `msg.sender`. Nothing in it overrides or adds to the library code. I checked the vendored library files the token uses (`ERC20.sol` and `Context`) against the v5.0.2 source, and they are unmodified.\n\n**Access Control:** no owner, roles, modifiers, initializer, `receive` or `fallback`. The only public functions that change state are the three standard ERC-20 ones. The constructor hands out no role, so after launch the factory is just an ordinary holder.\n\n**Trust Gap:** there is nothing privileged that could pause, freeze, blacklist, seize, burn or mint, so no one but the holder can move or freeze a balance. Every launch flow moves exactly the amount sent, because there are no fees, burns or exemptions: factory to distributor, distributor to claimant, seeding the pool through the PoolManager, and swaps. The runtime code contains no DELEGATECALL or SELFDESTRUCT.\n\n**Asymmetry:**\n- **`transfer`:** checks the sender's balance and rejects the zero address as receiver.\n- **`transferFrom`:** spends the allowance before moving tokens, reverts if the allowance is too small, and leaves an unlimited (maximum) allowance untouched.\n- **`approve`:** rejects the zero address as spender.\n\nThe library checks for minting and burning are consistent with these.\n\n**Coverage rows:** `approve`, `transfer` and `transferFrom` are all marked `holds`. There are also two invariant rows: the supply is fixed, and no privileged roles exist after deployment.\n\n**Static analysis:** the aderyn \"large numeric literal\" warning at line 11 is just the supply constant, and it is correct. Slither reported nothing.\n\n**Not reported:** the standard ERC-20 race where a spender can use the old allowance before an `approve` change lands. That is how the standard is designed, not a defect in this code.\n\n**Tests:** the project's own suite passes, 34 of 34. I wrote no proof tests because there are no findings. I didn't run the protected launch tests, because they need launch environment variables this checkout doesn't provide. I reviewed them by reading against the code instead.","treeHash":null,"usage":{"cachedInputTokens":179803,"inputTokens":12,"model":"claude-opus-5-5","outputTokens":2788,"runtime":"claude","turns":6,"wallClockMs":50831}}],"verification":[{"checks":[{"durationMs":1898,"exitCode":0,"name":"build","output":"Compiling 27 files with Solc 0.8.26\nSolc 0.8.26 finished in 1.80s\nCompiler run successful!\n","passed":true},{"durationMs":3603,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 33 tests for test/Conditionals.t.sol:ConditionalsTest\n[PASS] testFuzz_ApprovalReplacesPreviousValue(uint256,uint256) (runs: 1024, μ: 114389, ~: 114497)\n[PASS] testFuzz_RevertWhenTransferExceedsBalance(uint256,uint256) (runs: 1024, μ: 127163, ~: 127616)\nLogs:\n  Bound result 9539\n  Bound result 9000000000000000000\n\n[PASS] testFuzz_RevertWhenTransferFromExceedsAllowance(uint256,uint256) (runs: 1024, μ: 123180, ~: 123860)\nLogs:\n  Bound result 1\n  Bound result 1219755349247926171191479\n\n[PASS] testFuzz_TransferConservesSupply(address,uint256) (runs: 1024, μ: 92946, ~: 93198)\nLogs:\n  Bound result 830449314882270837063114016\n\n[PASS] testFuzz_TransferFromSpendsOnlyApprovedAmount(uint256,uint256) (runs: 1024, μ: 162897, ~: 165251)\nLogs:\n  Bound result 20833256774895768854135683\n  Bound result 5737249959569867445983302\n\n[PASS] test_AllowancesAreIsolatedByOwnerAndSpender() (gas: 205444)\n[PASS] test_ApprovalNeedsNoCurrentBalance() (gas: 78333)\n[PASS] test_ApproveReplacesAndRevokesAllowance() (gas: 205085)\n[PASS] test_ConstructorEmitsExactlyOneMint() (gas: 9740)\n[PASS] test_Create2MintsToFactoryAndLaunchTransfersArriveWhole() (gas: 690515)\n[PASS] test_DelegatedSelfTransferSpendsAllowanceWithoutMovingBalance() (gas: 110027)\n[PASS] test_EtherPaymentsAndUnknownCallsRevert() (gas: 64646)\n[PASS] test_InfiniteAllowanceIsNotDecremented() (gas: 215237)\n[PASS] test_MetadataAndInitialSupply() (gas: 107649)\n[PASS] test_NoAdministrativeMintBurnOrUpgradeEntrypoints() (gas: 744072)\n[PASS] test_RevertWhenApprovingZeroSpender() (gas: 37640)\n[PASS] test_RevertWhenEmptyAccountTransfersOneUnit() (gas: 44843)\n[PASS] test_RevertWhenHolderUsesTransferFromWithoutSelfApproval() (gas: 35703)\n[PASS] test_RevertWhenSelfTransferExceedsBalance() (gas: 40275)\n[PASS] test_RevertWhenTransferExceedsBalance() (gas: 65246)\n[PASS] test_RevertWhenTransferFromExceedsAllowancePreservesState() (gas: 116066)\n[PASS] test_RevertWhenTransferFromExceedsBalanceRollsBackAllowance() (gas: 189626)\n[PASS] test_RevertWhenTransferFromToZeroRollsBackAllowance() (gas: 114651)\n[PASS] test_RevertWhenTransferFromZeroAddressEvenForZeroAmount() (gas: 55164)\n[PASS] test_RevertWhenTransferToZeroEvenForZeroAmount() (gas: 71925)\n[PASS] test_RevertWhenUnapprovedSpenderTransfers() (gas: 116196)\n[PASS] test_SelfTransferDoesNotChangeBalance() (gas: 53969)\n[PASS] test_TransferEmitsEventAndDeliversExactAmount() (gas: 93493)\n[PASS] test_TransferEntireSupply() (gas: 161712)\n[PASS] test_TransferFromSpendsFiniteAllowanceAndEmitsTransfer() (gas: 278042)\n[PASS] test_TransferToContractDoesNotInvokeCallback() (gas: 171787)\n[PASS] test_ZeroTransferFromEmptyAccountEmitsEvent() (gas: 73355)\n[PASS] test_ZeroTransferFromNeedsNoAllowanceAndEmitsEvent() (gas: 81448)\nSuite result: ok. 33 passed; 0 failed; 0 skipped; finished in 70.20ms (283.83ms CPU time)\n\nRan 1 test for test/Conditionals.invariant.t.sol:ConditionalsInvariantTest\n[PASS]\nConditionalsInvariantTest invariants:\n[PASS] invariant_AllowancesMatchLedger\n[PASS] invariant_BalancesMatchLedgerAndSupplyIsConserved\n ConditionalsInvariantTest invariants (runs: 128, calls: 8192, reverts: 0)\n\n╭---------------------+--------------------------+-------+---------+----------╮\n| Contract            | Selector                 | Calls | Reverts | Discards |\n+=============================================================================+\n| ConditionalsHandler | approve                  | 1621  | 0       | 0        |\n|---------------------+--------------------------+-------+---------+----------|\n| ConditionalsHandler | transfer                 | 1649  | 0       | 0        |\n|---------------------+--------------------------+-------+---------+----------|\n| ConditionalsHandler | transferFrom             | 1695  | 0       | 0        |\n|---------------------+--------------------------+-------+---------+----------|\n| ConditionalsHandler | transferTooMuch          | 1606  | 0       | 0        |\n|---------------------+--------------------------+-------+---------+----------|\n| ConditionalsHandler | unauthorizedTransferFrom | 1621  | 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 5906\n  Bound result 7000000000000000000\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 0\n  Bound result 0\n  Bound result 8000000000000000000\n  Bound result 1312\n  Bound result 2000000000000001311\n  Bound result 760\n  Bound result 120209876281281145568259942\n  Bound result 1\n  Bound result 0\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 3.44s (3.43s CPU time)\n\nRan 2 test suites in 3.44s (3.51s CPU time): 34 tests passed, 0 failed, 0 skipped (34 total tests)\n","passed":true},{"durationMs":71,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"Conditionals.approve(address,uint256)\",\"Conditionals.transfer(address,uint256)\",\"Conditionals.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":5,\"LICENSE\":21,\"README.md\":129,\"foundry.toml\":19,\"launch.json\":24,\"remappings.txt\":2,\"src/Conditionals.sol\":17,\"test/Conditionals.invariant.t.sol\":126,\"test/Conditionals.t.sol\":438},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"7a24fd60d93f4230f6dad7c0a76f310b0602de11f0941a15020f31f9b63f8f3e","verifiedTreeHash":"d706692b0716dfdd94501de9a8078a0c9d22e065","verifierVersion":"0.1.0+879960cc"},{"checks":[{"durationMs":1911,"exitCode":0,"name":"build","output":"Compiling 28 files with Solc 0.8.26\nSolc 0.8.26 finished in 1.81s\nCompiler run successful!\n","passed":true},{"durationMs":12139,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 33 tests for test/Conditionals.t.sol:ConditionalsTest\n[PASS] testFuzz_ApprovalReplacesPreviousValue(uint256,uint256) (runs: 1024, μ: 114393, ~: 114515)\n[PASS] testFuzz_RevertWhenTransferExceedsBalance(uint256,uint256) (runs: 1024, μ: 127182, ~: 127640)\nLogs:\n  Bound result 4816194928883044\n  Bound result 2449051529386116602621980323074659678662472810731528\n\n[PASS] testFuzz_RevertWhenTransferFromExceedsAllowance(uint256,uint256) (runs: 1024, μ: 123186, ~: 123860)\nLogs:\n  Bound result 1\n  Bound result 1219755349247926171191479\n\n[PASS] testFuzz_TransferConservesSupply(address,uint256) (runs: 1024, μ: 92996, ~: 93198)\nLogs:\n  Bound result 830449314882270837063114016\n\n[PASS] testFuzz_TransferFromSpendsOnlyApprovedAmount(uint256,uint256) (runs: 1024, μ: 162902, ~: 165251)\nLogs:\n  Bound result 4816194928883044\n  Bound result 1473356631563313\n\n[PASS] test_AllowancesAreIsolatedByOwnerAndSpender() (gas: 205444)\n[PASS] test_ApprovalNeedsNoCurrentBalance() (gas: 78333)\n[PASS] test_ApproveReplacesAndRevokesAllowance() (gas: 205085)\n[PASS] test_ConstructorEmitsExactlyOneMint() (gas: 9740)\n[PASS] test_Create2MintsToFactoryAndLaunchTransfersArriveWhole() (gas: 690515)\n[PASS] test_DelegatedSelfTransferSpendsAllowanceWithoutMovingBalance() (gas: 110027)\n[PASS] test_EtherPaymentsAndUnknownCallsRevert() (gas: 64646)\n[PASS] test_InfiniteAllowanceIsNotDecremented() (gas: 215237)\n[PASS] test_MetadataAndInitialSupply() (gas: 107649)\n[PASS] test_NoAdministrativeMintBurnOrUpgradeEntrypoints() (gas: 744072)\n[PASS] test_RevertWhenApprovingZeroSpender() (gas: 37640)\n[PASS] test_RevertWhenEmptyAccountTransfersOneUnit() (gas: 44843)\n[PASS] test_RevertWhenHolderUsesTransferFromWithoutSelfApproval() (gas: 35703)\n[PASS] test_RevertWhenSelfTransferExceedsBalance() (gas: 40275)\n[PASS] test_RevertWhenTransferExceedsBalance() (gas: 65246)\n[PASS] test_RevertWhenTransferFromExceedsAllowancePreservesState() (gas: 116066)\n[PASS] test_RevertWhenTransferFromExceedsBalanceRollsBackAllowance() (gas: 189626)\n[PASS] test_RevertWhenTransferFromToZeroRollsBackAllowance() (gas: 114651)\n[PASS] test_RevertWhenTransferFromZeroAddressEvenForZeroAmount() (gas: 55164)\n[PASS] test_RevertWhenTransferToZeroEvenForZeroAmount() (gas: 71925)\n[PASS] test_RevertWhenUnapprovedSpenderTransfers() (gas: 116196)\n[PASS] test_SelfTransferDoesNotChangeBalance() (gas: 53969)\n[PASS] test_TransferEmitsEventAndDeliversExactAmount() (gas: 93493)\n[PASS] test_TransferEntireSupply() (gas: 161712)\n[PASS] test_TransferFromSpendsFiniteAllowanceAndEmitsTransfer() (gas: 278042)\n[PASS] test_TransferToContractDoesNotInvokeCallback() (gas: 171787)\n[PASS] test_ZeroTransferFromEmptyAccountEmitsEvent() (gas: 73355)\n[PASS] test_ZeroTransferFromNeedsNoAllowanceAndEmitsEvent() (gas: 81448)\nSuite result: ok. 33 passed; 0 failed; 0 skipped; finished in 130.21ms (598.42ms CPU time)\n\nRan 16 tests for test/Conditionals.edges.t.sol:ConditionalsEdgeTest\n[PASS] testFuzz_DirectAndDelegatedDeliveryAgree(uint256,uint256,uint256) (runs: 1024, μ: 362554, ~: 355095)\nLogs:\n  Bound result 1725468042904875\n  Bound result 0\n\n[PASS] testFuzz_FailedDelegatedTransferPreservesApprovalAndBalances(uint256,uint256) (runs: 1024, μ: 206979, ~: 207881)\nLogs:\n  Bound result 4816194928883044\n  Bound result 2449051529386116602621980323074659678662472810731528\n\n[PASS] testFuzz_InvalidReceiverDoesNotConsumeApprovalAndValidRetryWorks(uint256,uint256) (runs: 1024, μ: 233939, ~: 236713)\nLogs:\n  Bound result 4454\n\n[PASS] testFuzz_PartitionedSpendingCannotExceedApproval(uint256,uint256) (runs: 1024, μ: 275459, ~: 279290)\nLogs:\n  Bound result 489552237992618388317400513\n  Bound result 451827720631667977697656696\n\n[PASS] testFuzz_RepeatedRoundTripsRestoreBalances(uint256,uint256) (runs: 1024, μ: 682809, ~: 712292)\nLogs:\n  Bound result 202867156225013031009417189\n  Bound result 5\n\n[PASS] testFuzz_SplittingATransferDoesNotChangeDelivery(uint256,uint256) (runs: 1024, μ: 216483, ~: 218409)\nLogs:\n  Bound result 11000000000000000000\n  Bound result 0\n\n[PASS] test_ApprovalSurvivesEmptyBalanceAndCanBeSpentAfterRefill() (gas: 440979)\n[PASS] test_DelegatedSelfTransferStillNeedsBalanceAndRollsBackApproval() (gas: 174814)\n[PASS] test_LargestFiniteAllowanceIsSpentRatherThanTreatedAsUnlimited() (gas: 240420)\n[PASS] test_MaximumDelegatedTransferChecksBalanceDespiteUnlimitedApproval() (gas: 129336)\n[PASS] test_MaximumTransferRevertsWithoutOverflowOrStateChanges() (gas: 65251)\n[PASS] test_OneBaseUnitCanMakeARoundTrip() (gas: 142941)\n[PASS] test_SelfApprovalAllowsHolderToSpendButIsStillConsumed() (gas: 145470)\n[PASS] test_UnlimitedApprovalCanBeReducedAndRevokedAfterUse() (gas: 395977)\n[PASS] test_ZeroApprovalToZeroSpenderReverts() (gas: 110325)\n[PASS] test_ZeroDelegatedTransferToZeroRevertsWithFiniteAndUnlimitedApproval() (gas: 325126)\nSuite result: ok. 16 passed; 0 failed; 0 skipped; finished in 130.23ms (772.04ms CPU time)\n\nRan 2 tests for test/Conditionals.invariant.t.sol:ConditionalsInvariantTest\n[PASS]\nConditionalsInvariantTest invariants:\n[PASS] invariant_AllowancesMatchLedger\n[PASS] invariant_BalancesMatchLedgerAndSupplyIsConserved\n[PASS] invariant_MetadataAndSupplyConstantRemainUnchanged\n ConditionalsInvariantTest invariants (runs: 256, calls: 32768, reverts: 0)\n\n╭---------------------+--------------------------+-------+---------+----------╮\n| Contract            | Selector                 | Calls | Reverts | Discards |\n+=============================================================================+\n| ConditionalsHandler | approve                  | 3289  | 0       | 0        |\n|---------------------+--------------------------+-------+---------+----------|\n| ConditionalsHandler | approveBoundary          | 3285  | 0       | 0        |\n|---------------------+--------------------------+-------+---------+----------|\n| ConditionalsHandler | approveZeroSpender       | 3272  | 0       | 0        |\n|---------------------+--------------------------+-------+---------+----------|\n| ConditionalsHandler | transfer                 | 3243  | 0       | 0        |\n|---------------------+--------------------------+-------+---------+----------|\n| ConditionalsHandler | transferAll              | 3274  | 0       | 0        |\n|---------------------+--------------------------+-------+---------+----------|\n| ConditionalsHandler | transferFrom             | 3402  | 0       | 0        |\n|---------------------+--------------------------+-------+---------+----------|\n| ConditionalsHandler | transferFromBoundary     | 3194  | 0       | 0        |\n|---------------------+--------------------------+-------+---------+----------|\n| ConditionalsHandler | transferToZero           | 3249  | 0       | 0        |\n|---------------------+--------------------------+-------+---------+----------|\n| ConditionalsHandler | transferTooMuch          | 3192  | 0       | 0        |\n|---------------------+--------------------------+-------+---------+----------|\n| ConditionalsHandler | unauthorizedTransferFrom | 3368  | 0       | 0        |\n╰---------------------+--------------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 20000000000000000000\n  Bound result 0\n  Bound result 3\n  Bound result 19999999999999999997\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 3\n  Bound result 0\n  Bound result 0\n  Bound result 1817\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 7\n  Bound result 0\n  Bound result 1000000000000000000000000000\n  Bound result 0\n  Bound result 0\n  Bound result 1028\n  Bound result 0\n  Bound result 6000000000000000000\n  Bound result 0\n  Bound result 5027\n  Bound result 0\n  Bound result 0\n\n[PASS] test_HandlerAllowanceExhaustionRollbackRevocationAndRecovery() (gas: 6759354)\nLogs:\n  Bound result 1\n  Bound result 1\n\nSuite result: ok. 2 passed; 0 failed; 0 skipped; finished in 12.01s (12.01s CPU time)\n\nRan 3 test suites in 12.01s (12.27s CPU time): 51 tests passed, 0 failed, 0 skipped (51 total tests)\n","passed":true},{"durationMs":85,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"Conditionals.approve(address,uint256)\",\"Conditionals.transfer(address,uint256)\",\"Conditionals.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":5,\"LICENSE\":21,\"README.md\":129,\"foundry.toml\":19,\"remappings.txt\":2,\"src/Conditionals.sol\":17,\"test/Conditionals.edges.t.sol\":287,\"test/Conditionals.invariant.t.sol\":275,\"test/Conditionals.t.sol\":438,\"test/README.md\":64},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"bca56de44f86e8aab721bc0af9e744dfcaa3910b8470729c43cb0b533d375036","verifiedTreeHash":"a15eaf5d23d0d0d481b0a9fa8cef1d0483ef5f76","verifierVersion":"0.1.0+879960cc"},{"checks":[{"durationMs":1509,"exitCode":0,"name":"build","output":"Compiling 27 files with Solc 0.8.26\nSolc 0.8.26 finished in 1.39s\nCompiler run successful!\n","passed":true},{"durationMs":2908,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 33 tests for test/Conditionals.t.sol:ConditionalsTest\n[PASS] testFuzz_ApprovalReplacesPreviousValue(uint256,uint256) (runs: 1024, μ: 114389, ~: 114497)\n[PASS] testFuzz_RevertWhenTransferExceedsBalance(uint256,uint256) (runs: 1024, μ: 127163, ~: 127616)\nLogs:\n  Bound result 202867156225013031009417189\n  Bound result 826752129249897677693\n\n[PASS] testFuzz_RevertWhenTransferFromExceedsAllowance(uint256,uint256) (runs: 1024, μ: 123180, ~: 123860)\nLogs:\n  Bound result 4816194928883044\n  Bound result 808615370921955199100219844\n\n[PASS] testFuzz_TransferConservesSupply(address,uint256) (runs: 1024, μ: 92946, ~: 93198)\nLogs:\n  Bound result 999999999999999999999999999\n\n[PASS] testFuzz_TransferFromSpendsOnlyApprovedAmount(uint256,uint256) (runs: 1024, μ: 162897, ~: 165251)\nLogs:\n  Bound result 308311028271365700268087973\n  Bound result 28661138408641613268241532\n\n[PASS] test_AllowancesAreIsolatedByOwnerAndSpender() (gas: 205444)\n[PASS] test_ApprovalNeedsNoCurrentBalance() (gas: 78333)\n[PASS] test_ApproveReplacesAndRevokesAllowance() (gas: 205085)\n[PASS] test_ConstructorEmitsExactlyOneMint() (gas: 9740)\n[PASS] test_Create2MintsToFactoryAndLaunchTransfersArriveWhole() (gas: 690515)\n[PASS] test_DelegatedSelfTransferSpendsAllowanceWithoutMovingBalance() (gas: 110027)\n[PASS] test_EtherPaymentsAndUnknownCallsRevert() (gas: 64646)\n[PASS] test_InfiniteAllowanceIsNotDecremented() (gas: 215237)\n[PASS] test_MetadataAndInitialSupply() (gas: 107649)\n[PASS] test_NoAdministrativeMintBurnOrUpgradeEntrypoints() (gas: 744072)\n[PASS] test_RevertWhenApprovingZeroSpender() (gas: 37640)\n[PASS] test_RevertWhenEmptyAccountTransfersOneUnit() (gas: 44843)\n[PASS] test_RevertWhenHolderUsesTransferFromWithoutSelfApproval() (gas: 35703)\n[PASS] test_RevertWhenSelfTransferExceedsBalance() (gas: 40275)\n[PASS] test_RevertWhenTransferExceedsBalance() (gas: 65246)\n[PASS] test_RevertWhenTransferFromExceedsAllowancePreservesState() (gas: 116066)\n[PASS] test_RevertWhenTransferFromExceedsBalanceRollsBackAllowance() (gas: 189626)\n[PASS] test_RevertWhenTransferFromToZeroRollsBackAllowance() (gas: 114651)\n[PASS] test_RevertWhenTransferFromZeroAddressEvenForZeroAmount() (gas: 55164)\n[PASS] test_RevertWhenTransferToZeroEvenForZeroAmount() (gas: 71925)\n[PASS] test_RevertWhenUnapprovedSpenderTransfers() (gas: 116196)\n[PASS] test_SelfTransferDoesNotChangeBalance() (gas: 53969)\n[PASS] test_TransferEmitsEventAndDeliversExactAmount() (gas: 93493)\n[PASS] test_TransferEntireSupply() (gas: 161712)\n[PASS] test_TransferFromSpendsFiniteAllowanceAndEmitsTransfer() (gas: 278042)\n[PASS] test_TransferToContractDoesNotInvokeCallback() (gas: 171787)\n[PASS] test_ZeroTransferFromEmptyAccountEmitsEvent() (gas: 73355)\n[PASS] test_ZeroTransferFromNeedsNoAllowanceAndEmitsEvent() (gas: 81448)\nSuite result: ok. 33 passed; 0 failed; 0 skipped; finished in 49.28ms (216.39ms CPU time)\n\nRan 1 test for test/Conditionals.invariant.t.sol:ConditionalsInvariantTest\n[PASS]\nConditionalsInvariantTest invariants:\n[PASS] invariant_AllowancesMatchLedger\n[PASS] invariant_BalancesMatchLedgerAndSupplyIsConserved\n ConditionalsInvariantTest invariants (runs: 128, calls: 8192, reverts: 0)\n\n╭---------------------+--------------------------+-------+---------+----------╮\n| Contract            | Selector                 | Calls | Reverts | Discards |\n+=============================================================================+\n| ConditionalsHandler | approve                  | 1621  | 0       | 0        |\n|---------------------+--------------------------+-------+---------+----------|\n| ConditionalsHandler | transfer                 | 1649  | 0       | 0        |\n|---------------------+--------------------------+-------+---------+----------|\n| ConditionalsHandler | transferFrom             | 1695  | 0       | 0        |\n|---------------------+--------------------------+-------+---------+----------|\n| ConditionalsHandler | transferTooMuch          | 1606  | 0       | 0        |\n|---------------------+--------------------------+-------+---------+----------|\n| ConditionalsHandler | unauthorizedTransferFrom | 1621  | 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 5906\n  Bound result 7000000000000000000\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 0\n  Bound result 0\n  Bound result 8000000000000000000\n  Bound result 1312\n  Bound result 2000000000000001311\n  Bound result 760\n  Bound result 120209876281281145568259942\n  Bound result 1\n  Bound result 0\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 2.77s (2.77s CPU time)\n\nRan 2 test suites in 2.77s (2.82s CPU time): 34 tests passed, 0 failed, 0 skipped (34 total tests)\n","passed":true},{"durationMs":53,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"Conditionals.approve(address,uint256)\",\"Conditionals.transfer(address,uint256)\",\"Conditionals.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":5,\"LICENSE\":21,\"README.md\":129,\"foundry.toml\":19,\"remappings.txt\":2,\"src/Conditionals.sol\":17,\"test/Conditionals.invariant.t.sol\":126,\"test/Conditionals.t.sol\":438},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true},{"durationMs":677,"exitCode":0,"name":"slither","output":"slither: no results at low impact or above","passed":true},{"durationMs":313,"exitCode":0,"name":"aderyn","output":"[low] large-numeric-literal at src/Conditionals.sol:11: Large Numeric Literal","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"c72f9a7d8072d4f0c816f3787dd832909417c1d50c53d75fbe836f2ef678b5a1","verifiedTreeHash":"f78c172bec91e91d51290fc34b6560dd0577b36e","verifierVersion":"0.1.0+879960cc"}]}