{"assessments":[],"deployments":[],"fuzz":[],"identity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"interpretation":"Records acceptance and evidence. Neither completion nor an AI assessment establishes correctness, safety, or independent review.","jobId":"2aa0f8fa-379e-459b-a814-480f8c428c4f","kind":"skill:build-contract-project","nodes":[{"acceptedSubmissionHash":"ea3e992895ac53d06d815804b468402a36155c72f4e150b35f38e64dd2324f29","dependsOn":[],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"6b8d2c2ebd3301cff2be8edb1e1cc6ba65c858c02fe7247be81722b969842265","skillId":"build-contract-project","tools":[]},"key":"build_contract_project","kind":"code","role":"implement","skillHash":"6b8d2c2ebd3301cff2be8edb1e1cc6ba65c858c02fe7247be81722b969842265","skillId":"build-contract-project","state":"accepted"}],"objective":"PROJECT: BMC ILLUMINATI PASS — 500 NFT COLLECTION\n\nBuild a complete, production-ready Ethereum ERC-721 NFT collection with an immutable BMC token-burning mint mechanism, secure random assignment, and a responsive mint website.\n\nCOLLECTION\nName: BMC Illuminati Pass\nSymbol: BMCPASS\nNetwork: Ethereum Mainnet\nTotal supply: exactly 500 NFTs\nWebsite name: bmc-pass\n\nBMC TOKEN\nContract: 0x38224239f2BDae357D47cb864BC533d7f72dF961\n\nVerify the deployed BMC token's decimals, burnFrom implementation, and allowance behavior before deployment. Use 18-decimal units only after confirming the token's decimals.\n\nMINTING PHASE 1 — FIRST 40 GENESIS\n\nThe first 40 successful mints must be Genesis NFTs.\n\nMint price: 1,000,000 BMC each, permanently burned through burnFrom.\n\nMint #1:\n- Token ID 1\n- Genesis artwork genesis-01.png\n- Legendary Genesis rarity\n- The rarest NFT in the entire collection\n- Guaranteed to the first successful minter\n\nMints #2–40:\n- Token IDs 2–40\n- Genesis artworks genesis-02.png through genesis-40.png\n- All have Genesis rarity\n\nEnforce strict sequential allocation of token IDs and artwork for the first 40 mints.\n\nMINTING PHASE 2 — RANDOM MYSTERY MINT\n\nAfter the first 40 successful mints, open the remaining 460 mint positions.\n\nMint price: 350,000 BMC each, permanently burned through burnFrom.\n\nRemaining inventory:\n- 37 Genesis NFTs with artworks genesis-41.png through genesis-77.png\n- 423 Standard NFTs with fully on-chain SVG artwork\n\nRandomly distribute these 460 outcomes without replacement.\n\nEvery mystery mint must receive exactly one outcome, either Genesis or Standard.\n\nUse Chainlink VRF v2.5 or a comparably secure verifiable randomness solution. Do not derive outcomes from block.timestamp, blockhash, prevrandao alone, or user-controlled values.\n\nAll 37 remaining Genesis and all 423 Standard outcomes must be assigned exactly once by full mint-out.\n\nEach buyer pays the same 350,000 BMC mystery-mint price regardless of the result.\n\nMINTING AND TOKEN IDS\n\nUse token IDs 1–500 in global mint order.\n\nFor token IDs 41–500, do not infer Genesis or Standard rarity from token ID. Store the randomly assigned tier and artwork identifier separately.\n\nMint one ERC-721 NFT to the buyer per successful mint.\n\nFor VRF-based mystery mints, mint a pending-reveal NFT after the BMC burn, then finalize its tier and artwork after verified randomness is fulfilled.\n\nNo user or administrator may reroll an outcome or select a specific mystery artwork.\n\nARTWORK — GENESIS\n\nUse exactly 77 unique square PNG artworks, minimum 1024x1024, named genesis-01.png through genesis-77.png.\n\nAll Genesis artworks feature the same original mysterious cartoon frog in a black hooded cloak, premium gold-and-black styling, glowing golden third eye, and floating golden eye-in-triangle.\n\nGenesis #1 must be visually the most exclusive, with its own unique Legendary attributes.\n\nAll artwork is original. Do not copy Pepe the Frog or any existing character.\n\nGenesis artwork location:\nipfs://[IMAGES_CID]/genesis-NN.png\n\nThe Genesis directory CID must be finalized and hardcoded before mainnet deployment. Do not deploy with a placeholder CID.\n\nARTWORK — STANDARD\n\nGenerate exactly 423 distinct Standard NFT artworks fully on-chain as SVG.\n\nUse an original cartoon frog in a dark hooded cloak, with:\n- 6 backgrounds\n- 5 cloak variations\n- 6 eye variations\n- 5 symbols\n- 6 accessories\n\nGuarantee unique combinations for all 423 Standard NFTs.\n\nStandard NFTs must never contain the Genesis-exclusive golden third eye, floating golden eye-in-triangle, or golden cloak.\n\nMETADATA\n\nGenerate on-chain JSON metadata through tokenURI.\n\nInclude:\n- NFT name\n- Description\n- Tier: Legendary Genesis, Genesis, or Standard\n- Artwork identifier\n- Relevant visual attributes\n\nFor pending mystery NFTs, return neutral pending-reveal metadata that does not disclose the future outcome.\n\nOnce assigned, the NFT metadata and artwork must be permanent and immutable.\n\nSMART CONTRACT SECURITY\n\nUse audited OpenZeppelin ERC721, Base64, Strings, and ReentrancyGuard libraries where appropriate.\n\nUse the verified BMC burnFrom method after exact allowance approval.\n\nPrevent reentrancy, duplicate assignments, excess minting, and incorrect burns.\n\nTrack total BMC burned through this NFT contract.\n\nUse a gas-bounded random-without-replacement algorithm.\n\nMap every VRF request to its pending NFT.\n\nSupport concurrent pending mystery mints, out-of-order VRF fulfillments, and permissionless finalization of stored randomness.\n\nDefine a safe handling procedure for unavailable randomness that does not permit rerolls or manipulable fallback randomness.\n\nNo owner minting, privileged artwork assignments, metadata changes, price changes, contract upgrades, or administrator withdrawals.\n\nIf Chainlink VRF requires a subscription manager, disclose those operational permissions and dependencies. Do not falsely describe a system with privileged VRF configuration as fully permissionless.\n\nProvide ownerOf(), tierOf(), supply counters, remaining mystery inventory, and totalBurned().\n\nWEBSITE — BMC-PASS\n\nBuild a responsive mint website with:\n\n- MetaMask and Rabby wallet connection\n- BMC balance and allowance display\n- Genesis mint button for the first 40\n- Mystery mint button for the remaining 460\n- Current mint price and remaining supply\n- Total BMC burned counter\n- NFT preview gallery\n- Genesis #1 Legendary showcase\n- Pending-reveal status for mystery mints\n- Transaction links to Etherscan\n- Clear explanations of Ethereum gas and VRF reveal delays\n\nDo not promise fixed odds after the mystery phase begins. Show odds based on the remaining inventory, or explain when outstanding pending reveals make those odds provisional.\n\nTESTING AND DELIVERY\n\nProvide complete Solidity source code and Foundry tests.\n\nTest:\n- First minter receives Legendary Genesis #1\n- Mints 2–40 receive Genesis #2–40\n- Phase 1 costs exactly 1,000,000 BMC\n- Phase 2 costs exactly 350,000 BMC\n- Exactly 77 Genesis and 423 Standard NFTs exist at full mint-out\n- Random assignment without replacement\n- Out-of-order VRF fulfillment\n- No duplicate artwork\n- BMC burn and allowance failures\n- Reentrancy protection\n- Metadata correctness\n- Full 500-mint simulation\n- Maximum BMC burned equals 201,000,000 BMC\n\nDeliver:\n1. Solidity source code\n2. Foundry tests and execution results\n3. GitHub repository or pull request\n4. Independent security review findings\n5. Ethereum deployment instructions\n6. Mint website source code\n\nIMPORTANT:\nRun the IMD free check first. Report blockers, including missing artwork CID, BMC incompatibility, VRF configuration, or unavailable image-generation capabilities.\n\nDo not deploy to Ethereum mainnet, pay service charges, or request token approvals until I explicitly authorize those actions after review.\n\nTransfer rules: Standard ERC-721 transfers. NFTs are freely transferable with no transfer fees, blacklist, or transfer limits. BMC tokens are burned only when minting, not when transferring NFTs.","parentJobId":null,"planHash":"a9a737d22eda8c873af2e394d6ad33f00f877c3c4a69549a415177c319fe0acc","previousHash":"0000000000000000000000000000000000000000000000000000000000000000","projectId":"2aa0f8fa-379e-459b-a814-480f8c428c4f","publication":{"commit":null,"deliveredAt":null,"repoUrl":"https://github.com/identity-md-launches/launch-1356-project-bmc-illuminati-pass"},"receiptIdentity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"registry":"0xb6d0a187b050fa5bb0b87033a203f37becf4a775","research":[],"schema":"identitymd-work-v1","signals":[{"agentId":"52256","feedbackHash":"92c8c1e50ae7de6a881b70b48ef591abf7a91324d2df4e7cddd03e02e408623a","nodeKey":"build_contract_project","submissionHash":"ea3e992895ac53d06d815804b468402a36155c72f4e150b35f38e64dd2324f29","tag1":"verification:checks","tag2":"acceptance-v2","value":1}],"site":null,"snapshotHash":"375188e8aa26589a94f2bcfeda7a58e5b9db156825d9df195d0d004f4e863000","state":"completed","submissions":[{"artifacts":[],"attempt":1,"bundleHash":"1e7b709f3fb924816986f802024b5a150412ee411d3ce21b58df242b8421b9bb","device":"72f49cf84b9ab056","findings":[],"hash":"ea3e992895ac53d06d815804b468402a36155c72f4e150b35f38e64dd2324f29","nodeId":"94f7a4f3-1f01-4ca4-b296-4186da05d6f7","outcome":"completed","summary":"The work is complete and committed on `main` (commit `40bb510`). A fresh clone builds and passes offline.\n\n**Delivered**\n\n- `src/BMCIlluminatiPass.sol`: ERC-721 with 40 sequential Genesis mints at 1,000,000 BMC, then 460 mystery mints at 350,000 BMC, both paid by `burnFrom` with on-chain verification that supply and payer balance dropped by exactly the price. Mystery mints receive a pending NFT and one Chainlink VRF v2.5 request. Randomness is stored, then reveals are finalized permissionlessly in strict mint order via a virtual Fisher-Yates draw without replacement. Tier and artwork are stored per token. Metadata is on-chain JSON, with neutral pending metadata.\n- `src/StandardArt.sol`: 423 unique fully on-chain SVG Standard artworks from the 6x5x6x5x6 trait space, with no gold cloak, third eye, or eye-in-triangle.\n- `artwork/genesis/`: 77 original 1024x1024 PNGs from a deterministic Pillow generator. Genesis #1 has a crown, halo, veil, and double sigil.\n- `website/`: dependency-free bmc-pass mint site for MetaMask and Rabby with balance, allowance, phase, price, burned counter, provisional odds, reveal lookup, Etherscan links, and gas and VRF explanations.\n- `README.md`, `docs/SECURITY-REVIEW.md`, `docs/TEST-RESULTS.md`, and `script/Deploy.s.sol`.\n\n**Checks**\n\n| Check | Result |\n| --- | --- |\n| forge build, forge test, forge fmt --check | pass, 43 tests, solc 0.8.26 pinned |\n| Contract size | 23,529 bytes, under the EIP-170 limit |\n| BMC token on mainnet | 18 decimals, burnFrom selector present, not a proxy |\n| VRF coordinator on mainnet | code present, LINK() matches |\n\n**Blockers for mainnet, all documented in the README**\n\n- The Genesis IPFS directory CID must be produced by uploading the artwork, then set once on-chain. Minting is impossible before that, so no placeholder is ever deployed.\n- A funded VRF v2.5 subscription with the pass as consumer must be created and set by the owner.\n- Live `burnFrom` could not be exercised against the real token from here. The on-chain mismatch guard fails closed if semantics differ.\n- The security review is a self-review. An independent adversarial review by a separate contributor is still required.\n\nNothing was deployed, no service was paid, and no approvals were requested.","treeHash":"ec9ca0aa7315f0c36800edce7640c6a1fff04e46","usage":{"cachedInputTokens":5055901,"inputTokens":1570,"model":"claude-fable-5-1","outputTokens":98360,"runtime":"claude","turns":50,"wallClockMs":1202179}}],"verification":[{"checks":[{"durationMs":5066,"exitCode":0,"name":"build","output":"Compiling 62 files with Solc 0.8.26\nSolc 0.8.26 finished in 4.90s\nCompiler run successful!\n","passed":true},{"durationMs":779,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 4 tests for test/ChainlinkMockIntegration.t.sol:ChainlinkMockIntegrationTest\n[PASS] test_NotAConsumerReverts() (gas: 369271)\n[PASS] test_RequestAndFulfilThroughChainlinkMock() (gas: 759243)\n[PASS] test_SeveralRequestsOutOfOrderThroughChainlinkMock() (gas: 1890718)\n[PASS] test_UnfundedSubscriptionKeepsTokenPendingUntilFunded() (gas: 949212)\nSuite result: ok. 4 passed; 0 failed; 0 skipped; finished in 14.38ms (3.20ms CPU time)\n\nRan 39 tests for test/BMCIlluminatiPass.t.sol:BMCIlluminatiPassTest\n[PASS] testFuzz_SingleRevealAlwaysInInventory(uint256) (runs: 64, μ: 11045607, ~: 11043523)\n[PASS] test_CIDSetOnce() (gas: 176633)\n[PASS] test_CallbackBatchIsGasAware() (gas: 12140393)\n[PASS] test_Constants() (gas: 82402)\n[PASS] test_DeployScriptConfig() (gas: 10655354)\n[PASS] test_DeployScriptRequiresOwner() (gas: 5700916)\n[PASS] test_ExcessAllowanceOnlyBurnsPrice() (gas: 343854)\n[PASS] test_FinalizationOrderCannotBeChosen() (gas: 12020044)\n[PASS] test_FirstMinterGetsLegendaryGenesis1() (gas: 2027697)\n[PASS] test_FulfillRevealsAndLocksMetadata() (gas: 17335801)\n[PASS] test_Full500MintSimulation() (gas: 269030345)\n[PASS] test_FullMintOutWithInOrderFulfillment() (gas: 235375333)\n[PASS] test_GenesisRevertsAfterPhase1() (gas: 10618021)\n[PASS] test_Mints2To40AreSequentialGenesis() (gas: 14434063)\n[PASS] test_MysteryBurnRevertsIfVRFRequestFails() (gas: 10752056)\n[PASS] test_MysteryRevertsDuringPhase1() (gas: 460015)\n[PASS] test_MysteryRevertsWhenVRFUnconfigured() (gas: 10677451)\n[PASS] test_NoOwnerMintOrWithdrawSurface() (gas: 87601)\n[PASS] test_OnlyCoordinatorCanFulfill() (gas: 10961327)\n[PASS] test_OutOfOrderFulfillmentFinalizesInMintOrder() (gas: 12222761)\n[PASS] test_PendingMetadataIsNeutral() (gas: 13645572)\n[PASS] test_PermissionlessFinalizationWhenCallbackGasTooLow() (gas: 11129061)\n[PASS] test_Phase1CostsExactlyOneMillion() (gas: 392359)\n[PASS] test_Phase2CostsExactly350k() (gas: 11016795)\n[PASS] test_ReentrancyGenesisBlocked() (gas: 895560)\n[PASS] test_ReentrancyMysteryBlocked() (gas: 11439471)\n[PASS] test_RevertInsufficientAllowance() (gas: 181320)\n[PASS] test_RevertInsufficientBalance() (gas: 195192)\n[PASS] test_RevertNoAllowance() (gas: 146266)\n[PASS] test_RevertWhenTokenDecimalsUnexpected() (gas: 810941)\n[PASS] test_RevertWhenTokenDoesNotActuallyBurn() (gas: 827407)\n[PASS] test_StandardArtCombinationsUnique() (gas: 1482850)\n[PASS] test_StandardArtCoversEveryTrait() (gas: 743721)\n[PASS] test_StandardArtRendersWithoutGenesisTraits() (gas: 30070221)\n[PASS] test_StandardMetadataAfterReveal() (gas: 20024385)\n[PASS] test_TransfersAreStandard() (gas: 471691)\n[PASS] test_UnavailableRandomnessStaysPendingNoFallback() (gas: 11056275)\n[PASS] test_VRFConfigValidation() (gas: 252736)\n[PASS] test_ViewsRevertForNonexistent() (gas: 33573)\nSuite result: ok. 39 passed; 0 failed; 0 skipped; finished in 581.96ms (1.81s CPU time)\n\nRan 2 test suites in 584.62ms (596.34ms CPU time): 43 tests passed, 0 failed, 0 skipped (43 total tests)\n","passed":true},{"durationMs":325,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"BMCIlluminatiPass.approve(address,uint256)\",\"BMCIlluminatiPass.finalizeReveals(uint256)\",\"BMCIlluminatiPass.mintGenesis()\",\"BMCIlluminatiPass.mintMystery()\",\"BMCIlluminatiPass.rawFulfillRandomWords(uint256,uint256[])\",\"BMCIlluminatiPass.renounceOwnership()\",\"BMCIlluminatiPass.safeTransferFrom(address,address,uint256)\",\"BMCIlluminatiPass.safeTransferFrom(address,address,uint256,bytes)\",\"BMCIlluminatiPass.setApprovalForAll(address,bool)\",\"BMCIlluminatiPass.setGenesisImagesCID(string)\",\"BMCIlluminatiPass.setVRFConfig(uint256,bytes32,uint32,uint16,bool)\",\"BMCIlluminatiPass.transferFrom(address,address,uint256)\",\"BMCIlluminatiPass.transferOwnership(address)\"],\"files\":{\".gitignore\":5,\"README.md\":134,\"artwork/genesis/genesis-01.png\":584,\"artwork/genesis/genesis-02.png\":384,\"artwork/genesis/genesis-03.png\":412,\"artwork/genesis/genesis-04.png\":407,\"artwork/genesis/genesis-05.png\":361,\"artwork/genesis/genesis-06.png\":396,\"artwork/genesis/genesis-07.png\":348,\"artwork/genesis/genesis-08.png\":390,\"artwork/genesis/genesis-09.png\":393,\"artwork/genesis/genesis-10.png\":388,\"artwork/genesis/genesis-11.png\":420,\"artwork/genesis/genesis-12.png\":386,\"artwork/genesis/genesis-13.png\":424,\"artwork/genesis/genesis-14.png\":347,\"artwork/genesis/genesis-15.png\":452,\"artwork/genesis/genesis-16.png\":451,\"artwork/genesis/genesis-17.png\":345,\"artwork/genesis/genesis-18.png\":399,\"artwork/genesis/genesis-19.png\":369,\"artwork/genesis/genesis-20.png\":359,\"artwork/genesis/genesis-21.png\":330,\"artwork/genesis/genesis-22.png\":385,\"artwork/genesis/genesis-23.png\":391,\"artwork/genesis/genesis-24.png\":411,\"artwork/genesis/genesis-25.png\":393,\"artwork/genesis/genesis-26.png\":390,\"artwork/genesis/genesis-27.png\":386,\"artwork/genesis/genesis-28.png\":402,\"artwork/genesis/genesis-29.png\":375,\"artwork/genesis/genesis-30.png\":369,\"artwork/genesis/genesis-31.png\":421,\"artwork/genesis/genesis-32.png\":338,\"artwork/genesis/genesis-33.png\":389,\"artwork/genesis/genesis-34.png\":365,\"artwork/genesis/genesis-35.png\":352,\"artwork/genesis/genesis-36.png\":384,\"artwork/genesis/genesis-37.png\":365,\"artwork/genesis/genesis-38.png\":438,\"artwork/genesis/genesis-39.png\":374,\"artwork/genesis/genesis-40.png\":411,\"artwork/genesis/genesis-41.png\":380,\"artwork/genesis/genesis-42.png\":377,\"artwork/genesis/genesis-43.png\":399,\"artwork/genesis/genesis-44.png\":385,\"artwork/genesis/genesis-45.png\":352,\"artwork/genesis/genesis-46.png\":343,\"artwork/genesis/genesis-47.png\":362,\"artwork/genesis/genesis-48.png\":408,\"artwork/genesis/genesis-49.png\":325,\"artwork/genesis/genesis-50.png\":433,\"artwork/genesis/genesis-51.png\":377,\"artwork/genesis/genesis-52.png\":376,\"artwork/genesis/genesis-53.png\":401,\"artwork/genesis/genesis-54.png\":389,\"artwork/genesis/genesis-55.png\":361,\"artwork/genesis/genesis-56.png\":332,\"artwork/genesis/genesis-57.png\":414,\"artwork/genesis/genesis-58.png\":405,\"artwork/genesis/genesis-59.png\":409,\"artwork/genesis/genesis-60.png\":405,\"artwork/genesis/genesis-61.png\":369,\"artwork/genesis/genesis-62.png\":366,\"artwork/genesis/genesis-63.png\":379,\"artwork/genesis/genesis-64.png\":425,\"artwork/genesis/genesis-65.png\":406,\"artwork/genesis/genesis-66.png\":413,\"artwork/genesis/genesis-67.png\":350,\"artwork/genesis/genesis-68.png\":404,\"artwork/genesis/genesis-69.png\":392,\"artwork/genesis/genesis-70.png\":378,\"artwork/genesis/genesis-71.png\":401,\"artwork/genesis/genesis-72.png\":355,\"artwork/genesis/genesis-73.png\":405,\"artwork/genesis/genesis-74.png\":394,\"artwork/genesis/genesis-75.png\":390,\"artwork/genesis/genesis-76.png\":424,\"artwork/genesis/genesis-77.png\":381,\"artwork/tools/generate_genesis.py\":206,\"docs/SECURITY-REVIEW.md\":46,\"docs/TEST-RESULTS.md\":57,\"foundry.toml\":24,\"remappings.txt\":3,\"script/Deploy.s.sol\":38,\"src/BMCIlluminatiPass.sol\":514,\"src/StandardArt.sol\":236,\"src/interfaces/IBMCToken.sol\":18,\"test/BMCIlluminatiPass.t.sol\":848,\"test/ChainlinkMockIntegration.t.sol\":120,\"test/mocks/MockBMC.sol\":42,\"test/mocks/MockVRFCoordinator.sol\":72,\"website/app.js\":192,\"website/config.js\":11,\"website/index.html\":95,\"website/styles.css\":44},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true},{"durationMs":3631,"exitCode":0,"name":"slither","output":"[high/medium] reentrancy-balance at src/BMCIlluminatiPass.sol:272: Reentrancy in BMCIlluminatiPass._burnExact(address,uint256) (src/BMCIlluminatiPass.sol#272-283):\n[medium/medium] reentrancy-no-eth at src/BMCIlluminatiPass.sol:241: Reentrancy in BMCIlluminatiPass.mintMystery() (src/BMCIlluminatiPass.sol#241-269):\n[medium/medium] reentrancy-no-eth at src/BMCIlluminatiPass.sol:224: Reentrancy in BMCIlluminatiPass.mintGenesis() (src/BMCIlluminatiPass.sol#224-238):\n[medium/medium] unused-return at src/BMCIlluminatiPass.sol:292: BMCIlluminatiPass.rawFulfillRandomWords(uint256,uint256[]) (src/BMCIlluminatiPass.sol#292-313) ignores return value by this.finalizeReveals(batch) (src/BMCIlluminatiPass.sol#312)\n[low/medium] reentrancy-benign at src/BMCIlluminatiPass.sol:272: Reentrancy in BMCIlluminatiPass._burnExact(address,uint256) (src/BMCIlluminatiPass.sol#272-283):\n[low/medium] reentrancy-benign at src/BMCIlluminatiPass.sol:224: Reentrancy in BMCIlluminatiPass.mintGenesis() (src/BMCIlluminatiPass.sol#224-238):\n[low/medium] reentrancy-benign at src/BMCIlluminatiPass.sol:241: Reentrancy in BMCIlluminatiPass.mintMystery() (src/BMCIlluminatiPass.sol#241-269):\n[low/medium] reentrancy-benign at src/BMCIlluminatiPass.sol:241: Reentrancy in BMCIlluminatiPass.mintMystery() (src/BMCIlluminatiPass.sol#241-269):","passed":true},{"durationMs":755,"exitCode":0,"name":"aderyn","output":"[high] reentrancy-state-change at src/BMCIlluminatiPass.sol:253: Reentrancy: State change after external call\n[low] centralization-risk at src/BMCIlluminatiPass.sol:40: Centralization Risk (3 places)\n[low] costly-loop at src/BMCIlluminatiPass.sol:321: Costly operations inside loop\n[low] internal-function-used-once at src/StandardArt.sol:59: Internal Function Used Only Once (5 places)\n[low] large-numeric-literal at src/BMCIlluminatiPass.sol:83: Large Numeric Literal (7 places)\n[low] literal-instead-of-constant at src/StandardArt.sol:36: Literal Instead of Constant (27 places)","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"ea3e992895ac53d06d815804b468402a36155c72f4e150b35f38e64dd2324f29","verifiedTreeHash":"ec9ca0aa7315f0c36800edce7640c6a1fff04e46","verifierVersion":"0.1.0+fb8278c5"}]}