019bb490-f3b0-72b8-bc22-2e4219ff2cd1
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 40144 | artifact.fetch | complete | 1 / 3 | 3 months ago |
| 40145 | proxy.resolve | complete | 1 / 3 | 3 months ago |
| 40146 | tool.cast_disasm | complete | 1 / 3 | 3 months ago |
| 40147 | analysis.bundle | complete | 1 / 3 | 3 months ago |
| 40148 | capability.graph | complete | 1 / 3 | 3 months ago |
| 40149 | detector.run | complete | 1 / 3 | 3 months ago |
| 40150 | validation.fork | complete | 1 / 3 | 3 months ago |
| 40257 | report.consolidate | complete | 1 / 6 | 3 months ago |
| 40258 | tool.slither | complete | 1 / 2 | 3 months ago |
{
"method": "etherscan+onchain",
"status": "confirmed",
"etherscan_hint": {
"source": "etherscan",
"etherscan": {
"proxy_flag": true,
"implementation": "0xc186e6f0163e21be057e95aa135edd52508d14d3"
}
},
"implementation": "0xc186e6f0163e21be057e95aa135edd52508d14d3",
"onchain_method": "eip1967"
}
'forge clean' running (wd: /tmp/slither-x5vr83sz) 'forge config --json' running 'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-x5vr83sz) AdminUpgradeabilityProxy.constructor(address,address,bytes)._admin (contracts/Contract.sol#333) shadows: - BaseAdminUpgradeabilityProxy._admin() (contracts/Contract.sol#278-281) (function) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#local-variable-shadowing UpgradeabilityProxy.constructor(address,bytes)._logic (contracts/Contract.sol#182) lacks a zero-check on : - (success,None) = _logic.delegatecall(_data) (contracts/Contract.sol#185-186) BaseAdminUpgradeabilityProxy.upgradeToAndCall(address,bytes).newImplementation (contracts/Contract.sol#276) lacks a zero-check on : - (success,None) = newImplementation.delegatecall(data) (contracts/Contract.sol#277-278) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation Modifier BaseAdminUpgradeabilityProxy.ifAdmin() (contracts/Contract.sol#222-225) does not always execute _; or revert Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-modifier Proxy._delegate(address) (contracts/Contract.sol#30-49) uses assembly - INLINE ASM (contracts/Contract.sol#32-49) OpenZeppelinUpgradesAddress.isContract(address) (contracts/Contract.sol#88-99) uses assembly - INLINE ASM (contracts/Contract.sol#97-99) BaseUpgradeabilityProxy._implementation() (contracts/Contract.sol#129-135) uses assembly - INLINE ASM (contracts/Contract.sol#133-135) BaseUpgradeabilityProxy._setImplementation(address) (contracts/Contract.sol#148-156) uses assembly - INLINE ASM (contracts/Contract.sol#156) BaseAdminUpgradeabilityProxy._admin() (contracts/Contract.sol#278-281) uses assembly - INLINE ASM (contracts/Contract.sol#280-281) BaseAdminUpgradeabilityProxy._setAdmin(address) (contracts/Contract.sol#287-291) uses assembly - INLINE ASM (contracts/Contract.sol#289-291) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage Version constraint ^0.5.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html) - DirtyBytesArrayToStorage - ABIDecodeTwoDimensionalArrayMemory - KeccakCaching - EmptyByteArrayCopy - DynamicArrayCleanup - ImplicitConstructorCallvalueCheck - TupleAssignmentMultiStackSlotComponents - MemoryArrayCreationOverflow - privateCanBeOverridden - SignedArrayStorageCopy - ABIEncoderV2StorageArrayWithMultiSlotElement - DynamicConstructorArgumentsClippedABIV2 - UninitializedFunctionPointerInConstructor - IncorrectEventSignatureInLibraries - ABIEncoderV2PackedStorage. It is used by: - ^0.5.0 (contracts/Contract.sol#2-3) - ^0.5.0 (contracts/Contract.sol#68-71) - ^0.5.0 (contracts/Contract.sol#101-105) - ^0.5.0 (contracts/Contract.sol#158-160) - ^0.5.0 (contracts/Contract.sol#188-189) - ^0.5.0 (contracts/Contract.sol#309) solc-0.5.0 is an outdated solc version. Use a more recent version (at least 0.8.0), if possible. Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity Low level call in UpgradeabilityProxy.constructor(address,bytes) (contracts/Contract.sol#182-186): - (success,None) = _logic.delegatecall(_data) (contracts/Contract.sol#185-186) Low level call in BaseAdminUpgradeabilityProxy.upgradeToAndCall(address,bytes) (contracts/Contract.sol#276-278): - (success,None) = newImplementation.delegatecall(data) (contracts/Contract.sol#277-278) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls . analyzed (6 contracts with 100 detectors), 14 result(s) found
{
"solc": {
"status": "ok",
"use_rc": 0,
"version": "0.5.0",
"strategy": "solc-select",
"solc_path": "/var/www/tripwire/.venv/bin/solc",
"install_rc": 0,
"use_stderr": null,
"use_stdout": "Switched global version to 0.5.0",
"install_stderr": null,
"install_stdout": "Version '0.5.0' is already installed, skipping..."
},
"solc_args": "--base-path /tmp/slither-x5vr83sz --allow-paths /tmp/slither-x5vr83sz,/tmp/slither-x5vr83sz/lib,/tmp/slither-x5vr83sz/src",
"remappings": [],
"source_files": [
"contracts/Contract.sol"
],
"contract_count": 0,
"contract_names": [],
"detector_count": 14,
"workspace_hash": "44a56688b2825de8e15382eb184759a52c07c32dbff286f29c734f89656c9411",
"duration_seconds": 0.5159950256347656,
"solc_version_requested": "0.5.3"
}
{"no_findings":false,"summary":"Bytecode-only review of the implementation shows multiple CALLs to computed targets (with potential ETH value) and state writes to fixed slots without any detected guards; confirm these paths are properly restricted and validated.","findings":[{"severity":"medium","category":"other","title":"External CALLs to computed targets with possible ETH value","exploit_scenario":"If any publicly reachable function allows attacker-controlled inputs to influence the CALL target/value, an attacker could force arbitrary external calls or ETH transfers. This could be used to drain funds or reenter if state changes occur after the call. Target/value control is uncertain from bytecode alone, but callsites show computed targets/values and no guards were detected.","recommendation":"Restrict CALL targets/values (allowlists or fixed addresses), add explicit access control for privileged flows, and consider reentrancy guards around external value-carrying calls.","evidence":"Calls at pcs 0xf98/0x1257/0x1308/0x1354/0x1779 are CALL with computed target/value; detector flagged untrusted CALL target/value and ETH value transfer possible.","locations":["pc:0xf98","pc:0x1257","pc:0x1308","pc:0x1354","pc:0x1779"]},{"severity":"low","category":"access_control","title":"State writes to fixed storage slots with no detected guards","exploit_scenario":"Storage slots 0x0, 0x4b, and 0x2c68af0bb140000 are written (SSTORE). If these slots hold privileged configuration (e.g., owner/admin parameters or critical settings), and functions are externally callable, any user could modify them. The bytecode analysis did not detect guard patterns, so access control is uncertain.","recommendation":"Verify that all functions reaching these SSTOREs enforce appropriate access control (e.g., onlyOwner/admin checks) and that initialization is properly locked.","evidence":"SSTORE ops at pc 0xb4e (slot 0x0), pc 0xd1c (slot 0x4b), pc 0xd2b (slot 0x2c68af0bb140000); auth.guards list is empty in artifact.","locations":["pc:0xb4e","pc:0xd1c","pc:0xd2b"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-_ntfk5at
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bb4c0-13cc-78f1-aec9-3eb3fcf32327
--------
user
Context: The user requested the proxy at 0x764c64b2a09b09acb100b80d8c505aa6a0302ef2.
Audit the implementation at 0xc186e6f0163e21be057e95aa135edd52508d14d3.
Findings should refer to the implementation unless explicitly about proxy mechanics.
You are a security auditor. You ONLY have runtime bytecode + analysis artifacts.
You MUST read `BYTECODE_BUNDLE.json` before concluding; it contains the bytecode summary,
evidence bundle, callsites, storage slots, and detector findings.
Special cases when reasoning from bytecode (be explicit about uncertainty):
- Selector inference is best-effort; missing selectors are common.
- Fallback/receive paths may be the only entrypoints.
- CALL vs DELEGATECALL semantics differ; DELEGATECALL executes in caller storage.
- Proxy patterns (EIP-1967, minimal proxies, beacon) change which storage is authoritative.
- Storage slots are raw; mappings/arrays appear via keccak patterns, names are unknown.
- Guard detection is heuristic; absence of guards does NOT mean unguarded.
- Returndata checking is unknown unless explicitly shown in evidence.
- Precompiles (0x1..0x9) and common ERC20 transfer selectors may appear; do not over-claim.
Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title.
- Locations can be pc references like "pc:0x123" or selectors like "selector:0xa9059cbb".
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation,
accounting/invariant breaks, dangerous delegatecall, and untrusted external calls.
Be conservative: if evidence is weak, mark severity low/medium and explain why.
mcp startup: no servers
thinking
**Reading BYTECODE_BUNDLE.json**
exec
/bin/bash -lc ls in /tmp/codex-_ntfk5at succeeded in 7ms:
BYTECODE_BUNDLE.json
codex-output-schema.json
exec
/bin/bash -lc 'cat BYTECODE_BUNDLE.json' in /tmp/codex-_ntfk5at succeeded in 7ms:
{
"analysis_artifact": {
"address": "0xc186e6f0163e21be057e95aa135edd52508d14d3",
"artifact_hash": "0xe89224d20e3e5313c1e93c60154ecc190f900624dae94604f3303a540eeb9aab",
"artifact_json": {
"auth": {
"guards": []
},
"basic_blocks": [
{
"end_pc": 12,
"hash": "0xee9b7a008adde9eceacb0e9b1b218268e62be2482c6626c86a298ad72e5335c2",
"opcodes": [
"PUSH1",
"PUSH1",
"MSTORE",
"PUSH1",
"CALLDATASIZE",
"LT",
"PUSH2",
thinking
**Searching for storage_slots references**
exec
/bin/bash -lc 'rg -n "storage" BYTECODE_BUNDLE.json | head' in /tmp/codex-_ntfk5at succeeded in 16ms:
9404: "storage": {
9568: "storage": {
9732: "storage": {
9896: "storage": {
10060: "storage": {
10224: "storage": {
10388: "storage": {
10552: "storage": {
10716: "storage": {
10880: "storage": {
thinking
**Choosing parsing approach**
exec
/bin/bash -lc "python - <<'PY'
import json
from pprint import pprint
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
print('keys',data.keys())
print('detector_findings',len(data.get('detector_findings',[])))
print('heuristics_summary',data.get('heuristics_summary'))
PY" in /tmp/codex-_ntfk5at succeeded in 55ms:
keys dict_keys(['analysis_artifact', 'analysis_run', 'artifact', 'capability_graph', 'detector_findings', 'heuristics_summary'])
detector_findings 2
heuristics_summary {'create2_count': 0, 'delegatecall_count': 0, 'flags': ['heavy_ext_balance_usage'], 'selfdestruct_count': 0}
thinking
**Inspecting additional keys**
exec
/bin/bash -lc "python - <<'PY'
import json, itertools
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
for k in data:
print(k, type(data[k]))
print('analysis_artifact keys', data['analysis_artifact'].keys())
print('analysis_artifact.artifact_json keys', data['analysis_artifact']['artifact_json'].keys())
PY" in /tmp/codex-_ntfk5at succeeded in 30ms:
analysis_artifact <class 'dict'>
analysis_run <class 'dict'>
artifact <class 'dict'>
capability_graph <class 'dict'>
detector_findings <class 'list'>
heuristics_summary <class 'dict'>
analysis_artifact keys dict_keys(['address', 'artifact_hash', 'artifact_json', 'block_number', 'chain_id', 'codehash', 'created_at', 'id', 'updated_at', 'version'])
analysis_artifact.artifact_json keys dict_keys(['auth', 'basic_blocks', 'callsites', 'cfg_edges', 'cfg_hash', 'dispatcher_type', 'function_entries', 'functions', 'selectors', 'sinks', 'storage', 'version'])
thinking
**Analyzing function security and access controls**
exec
/bin/bash -lc "python - <<'PY'
import json
from pprint import pprint
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
functions=data['analysis_artifact']['artifact_json']['functions']
print('function count',len(functions))
# list selectors and entry pcs
for fn in functions:
print(fn)
PY" in /tmp/codex-_ntfk5at succeeded in 44ms:
function count 25
{'auth': {'guards': []}, 'entry_pc': 3799544837, 'selector': '0xe2787405', 'sinks': {'call': 5, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 4}, 'storage': {'reads': 46, 'slots': [{'op': 'SLOAD', 'pc': 2025, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2073, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 2096, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2259, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 2265, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2609, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 2645, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2749, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SSTORE', 'pc': 2894, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SSTORE', 'pc': 3356, 'slot': '0x000000000000000000000000000000000000000000000000000000000000004b'}, {'op': 'SSTORE', 'pc': 3371, 'slot': '0x00000000000000000000000000000000000000000000000002c68af0bb140000'}, {'op': 'SLOAD', 'pc': 3758, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 3793, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 3819, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4037, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4444, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 4470, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4758, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4991, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5154, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5199, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5370, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 5471, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5529, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5636, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5784, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5950, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 6323, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 7964, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}], 'writes': 20}}
{'auth': {'guards': []}, 'entry_pc': 4230097163, 'selector': '0xec58f4b8', 'sinks': {'call': 5, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 4}, 'storage': {'reads': 46, 'slots': [{'op': 'SLOAD', 'pc': 2025, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2073, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 2096, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2259, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 2265, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2609, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 2645, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2749, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SSTORE', 'pc': 2894, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SSTORE', 'pc': 3356, 'slot': '0x000000000000000000000000000000000000000000000000000000000000004b'}, {'op': 'SSTORE', 'pc': 3371, 'slot': '0x00000000000000000000000000000000000000000000000002c68af0bb140000'}, {'op': 'SLOAD', 'pc': 3758, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 3793, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 3819, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4037, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4444, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 4470, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4758, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4991, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5154, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5199, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5370, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 5471, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5529, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5636, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5784, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5950, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 6323, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 7964, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}], 'writes': 20}}
{'auth': {'guards': []}, 'entry_pc': 4273586057, 'selector': '0xfc22290b', 'sinks': {'call': 5, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 4}, 'storage': {'reads': 46, 'slots': [{'op': 'SLOAD', 'pc': 2025, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2073, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 2096, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2259, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 2265, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2609, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 2645, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2749, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SSTORE', 'pc': 2894, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SSTORE', 'pc': 3356, 'slot': '0x000000000000000000000000000000000000000000000000000000000000004b'}, {'op': 'SSTORE', 'pc': 3371, 'slot': '0x00000000000000000000000000000000000000000000000002c68af0bb140000'}, {'op': 'SLOAD', 'pc': 3758, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 3793, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 3819, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4037, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4444, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 4470, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4758, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4991, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5154, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5199, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5370, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 5471, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5529, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5636, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5784, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5950, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 6323, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 7964, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}], 'writes': 20}}
{'auth': {'guards': []}, 'entry_pc': None, 'selector': '0xfeb9bf89', 'sinks': {'call': 5, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 4}, 'storage': {'reads': 46, 'slots': [{'op': 'SLOAD', 'pc': 2025, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2073, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 2096, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2259, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 2265, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2609, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 2645, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2749, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SSTORE', 'pc': 2894, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SSTORE', 'pc': 3356, 'slot': '0x000000000000000000000000000000000000000000000000000000000000004b'}, {'op': 'SSTORE', 'pc': 3371, 'slot': '0x00000000000000000000000000000000000000000000000002c68af0bb140000'}, {'op': 'SLOAD', 'pc': 3758, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 3793, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 3819, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4037, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4444, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 4470, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4758, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4991, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5154, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5199, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5370, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 5471, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5529, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5636, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5784, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5950, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 6323, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 7964, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}], 'writes': 20}}
{'auth': {'guards': []}, 'entry_pc': 3680243577, 'selector': '0xd547741f', 'sinks': {'call': 5, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 4}, 'storage': {'reads': 46, 'slots': [{'op': 'SLOAD', 'pc': 2025, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2073, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 2096, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2259, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 2265, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2609, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 2645, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2749, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SSTORE', 'pc': 2894, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SSTORE', 'pc': 3356, 'slot': '0x000000000000000000000000000000000000000000000000000000000000004b'}, {'op': 'SSTORE', 'pc': 3371, 'slot': '0x00000000000000000000000000000000000000000000000002c68af0bb140000'}, {'op': 'SLOAD', 'pc': 3758, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 3793, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 3819, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4037, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4444, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 4470, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4758, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4991, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5154, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5199, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5370, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 5471, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5529, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5636, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5784, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5950, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 6323, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 7964, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}], 'writes': 20}}
{'auth': {'guards': []}, 'entry_pc': 3766937068, 'selector': '0xdb5c0f79', 'sinks': {'call': 5, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 4}, 'storage': {'reads': 46, 'slots': [{'op': 'SLOAD', 'pc': 2025, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2073, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 2096, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2259, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 2265, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2609, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 2645, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2749, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SSTORE', 'pc': 2894, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SSTORE', 'pc': 3356, 'slot': '0x000000000000000000000000000000000000000000000000000000000000004b'}, {'op': 'SSTORE', 'pc': 3371, 'slot': '0x00000000000000000000000000000000000000000000000002c68af0bb140000'}, {'op': 'SLOAD', 'pc': 3758, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 3793, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 3819, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4037, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4444, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 4470, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4758, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4991, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5154, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5199, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5370, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 5471, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5529, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5636, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5784, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5950, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 6323, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 7964, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}], 'writes': 20}}
{'auth': {'guards': []}, 'entry_pc': None, 'selector': '0xe086e5ec', 'sinks': {'call': 5, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 4}, 'storage': {'reads': 46, 'slots': [{'op': 'SLOAD', 'pc': 2025, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2073, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 2096, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2259, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 2265, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2609, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 2645, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2749, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SSTORE', 'pc': 2894, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SSTORE', 'pc': 3356, 'slot': '0x000000000000000000000000000000000000000000000000000000000000004b'}, {'op': 'SSTORE', 'pc': 3371, 'slot': '0x00000000000000000000000000000000000000000000000002c68af0bb140000'}, {'op': 'SLOAD', 'pc': 3758, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 3793, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 3819, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4037, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4444, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 4470, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4758, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4991, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5154, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5199, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5370, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 5471, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5529, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5636, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5784, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5950, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 6323, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 7964, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}], 'writes': 20}}
{'auth': {'guards': []}, 'entry_pc': 3295785227, 'selector': '0xa217fddf', 'sinks': {'call': 5, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 4}, 'storage': {'reads': 46, 'slots': [{'op': 'SLOAD', 'pc': 2025, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2073, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 2096, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2259, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 2265, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2609, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 2645, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2749, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SSTORE', 'pc': 2894, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SSTORE', 'pc': 3356, 'slot': '0x000000000000000000000000000000000000000000000000000000000000004b'}, {'op': 'SSTORE', 'pc': 3371, 'slot': '0x00000000000000000000000000000000000000000000000002c68af0bb140000'}, {'op': 'SLOAD', 'pc': 3758, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 3793, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 3819, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4037, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4444, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 4470, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4758, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4991, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5154, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5199, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5370, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 5471, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5529, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5636, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5784, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5950, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 6323, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 7964, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}], 'writes': 20}}
{'auth': {'guards': []}, 'entry_pc': 3304935426, 'selector': '0xc471b10b', 'sinks': {'call': 5, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 4}, 'storage': {'reads': 46, 'slots': [{'op': 'SLOAD', 'pc': 2025, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2073, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 2096, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2259, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 2265, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2609, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 2645, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2749, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SSTORE', 'pc': 2894, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SSTORE', 'pc': 3356, 'slot': '0x000000000000000000000000000000000000000000000000000000000000004b'}, {'op': 'SSTORE', 'pc': 3371, 'slot': '0x00000000000000000000000000000000000000000000000002c68af0bb140000'}, {'op': 'SLOAD', 'pc': 3758, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 3793, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 3819, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4037, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4444, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 4470, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4758, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4991, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5154, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5199, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5370, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 5471, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5529, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5636, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5784, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5950, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 6323, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 7964, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}], 'writes': 20}}
{'auth': {'guards': []}, 'entry_pc': 3315422771, 'selector': '0xc4fd5002', 'sinks': {'call': 5, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 4}, 'storage': {'reads': 46, 'slots': [{'op': 'SLOAD', 'pc': 2025, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2073, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 2096, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2259, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 2265, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2609, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 2645, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2749, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SSTORE', 'pc': 2894, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SSTORE', 'pc': 3356, 'slot': '0x000000000000000000000000000000000000000000000000000000000000004b'}, {'op': 'SSTORE', 'pc': 3371, 'slot': '0x00000000000000000000000000000000000000000000000002c68af0bb140000'}, {'op': 'SLOAD', 'pc': 3758, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 3793, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 3819, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4037, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4444, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 4470, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4758, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4991, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5154, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5199, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5370, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 5471, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5529, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5636, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5784, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5950, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 6323, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 7964, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}], 'writes': 20}}
{'auth': {'guards': []}, 'entry_pc': 3390425203, 'selector': '0xc59d5633', 'sinks': {'call': 5, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 4}, 'storage': {'reads': 46, 'slots': [{'op': 'SLOAD', 'pc': 2025, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2073, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 2096, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2259, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 2265, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2609, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 2645, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2749, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SSTORE', 'pc': 2894, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SSTORE', 'pc': 3356, 'slot': '0x000000000000000000000000000000000000000000000000000000000000004b'}, {'op': 'SSTORE', 'pc': 3371, 'slot': '0x00000000000000000000000000000000000000000000000002c68af0bb140000'}, {'op': 'SLOAD', 'pc': 3758, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 3793, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 3819, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4037, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4444, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 4470, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4758, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4991, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5154, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5199, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5370, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 5471, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5529, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5636, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5784, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5950, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 6323, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 7964, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}], 'writes': 20}}
{'auth': {'guards': []}, 'entry_pc': 3442643934, 'selector': '0xca15c873', 'sinks': {'call': 5, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 4}, 'storage': {'reads': 46, 'slots': [{'op': 'SLOAD', 'pc': 2025, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2073, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 2096, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2259, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 2265, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2609, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 2645, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2749, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SSTORE', 'pc': 2894, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SSTORE', 'pc': 3356, 'slot': '0x000000000000000000000000000000000000000000000000000000000000004b'}, {'op': 'SSTORE', 'pc': 3371, 'slot': '0x00000000000000000000000000000000000000000000000002c68af0bb140000'}, {'op': 'SLOAD', 'pc': 3758, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 3793, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 3819, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4037, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4444, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 4470, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4758, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4991, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5154, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5199, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5370, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 5471, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5529, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5636, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5784, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5950, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 6323, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 7964, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}], 'writes': 20}}
{'auth': {'guards': []}, 'entry_pc': None, 'selector': '0xcd3293de', 'sinks': {'call': 5, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 4}, 'storage': {'reads': 46, 'slots': [{'op': 'SLOAD', 'pc': 2025, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2073, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 2096, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2259, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 2265, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2609, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 2645, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2749, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SSTORE', 'pc': 2894, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SSTORE', 'pc': 3356, 'slot': '0x000000000000000000000000000000000000000000000000000000000000004b'}, {'op': 'SSTORE', 'pc': 3371, 'slot': '0x00000000000000000000000000000000000000000000000002c68af0bb140000'}, {'op': 'SLOAD', 'pc': 3758, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 3793, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 3819, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4037, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4444, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 4470, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4758, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4991, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5154, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5199, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5370, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 5471, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5529, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5636, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5784, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5950, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 6323, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 7964, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}], 'writes': 20}}
{'auth': {'guards': []}, 'entry_pc': 1325528817, 'selector': '0x4f01f6f1', 'sinks': {'call': 5, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 4}, 'storage': {'reads': 46, 'slots': [{'op': 'SLOAD', 'pc': 2025, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2073, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 2096, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2259, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 2265, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2609, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 2645, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2749, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SSTORE', 'pc': 2894, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SSTORE', 'pc': 3356, 'slot': '0x000000000000000000000000000000000000000000000000000000000000004b'}, {'op': 'SSTORE', 'pc': 3371, 'slot': '0x00000000000000000000000000000000000000000000000002c68af0bb140000'}, {'op': 'SLOAD', 'pc': 3758, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 3793, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 3819, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4037, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4444, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 4470, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4758, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4991, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5154, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5199, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5370, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 5471, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5529, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5636, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5784, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5950, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 6323, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 7964, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}], 'writes': 20}}
{'auth': {'guards': []}, 'entry_pc': 2401890558, 'selector': '0x6b7cd7c8', 'sinks': {'call': 5, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 4}, 'storage': {'reads': 46, 'slots': [{'op': 'SLOAD', 'pc': 2025, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2073, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 2096, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2259, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 2265, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2609, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 2645, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2749, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SSTORE', 'pc': 2894, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SSTORE', 'pc': 3356, 'slot': '0x000000000000000000000000000000000000000000000000000000000000004b'}, {'op': 'SSTORE', 'pc': 3371, 'slot': '0x00000000000000000000000000000000000000000000000002c68af0bb140000'}, {'op': 'SLOAD', 'pc': 3758, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 3793, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 3819, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4037, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4444, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 4470, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4758, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4991, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5154, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5199, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5370, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 5471, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5529, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5636, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5784, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5950, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 6323, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 7964, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}], 'writes': 20}}
{'auth': {'guards': []}, 'entry_pc': 2417021052, 'selector': '0x8f29f0fe', 'sinks': {'call': 5, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 4}, 'storage': {'reads': 46, 'slots': [{'op': 'SLOAD', 'pc': 2025, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2073, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 2096, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2259, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 2265, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2609, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 2645, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2749, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SSTORE', 'pc': 2894, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SSTORE', 'pc': 3356, 'slot': '0x000000000000000000000000000000000000000000000000000000000000004b'}, {'op': 'SSTORE', 'pc': 3371, 'slot': '0x00000000000000000000000000000000000000000000000002c68af0bb140000'}, {'op': 'SLOAD', 'pc': 3758, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 3793, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 3819, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4037, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4444, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 4470, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4758, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4991, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5154, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5199, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5370, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 5471, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5529, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5636, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5784, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5950, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 6323, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 7964, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}], 'writes': 20}}
{'auth': {'guards': []}, 'entry_pc': 2446411860, 'selector': '0x9010d07c', 'sinks': {'call': 5, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 4}, 'storage': {'reads': 46, 'slots': [{'op': 'SLOAD', 'pc': 2025, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2073, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 2096, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2259, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 2265, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2609, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 2645, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2749, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SSTORE', 'pc': 2894, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SSTORE', 'pc': 3356, 'slot': '0x000000000000000000000000000000000000000000000000000000000000004b'}, {'op': 'SSTORE', 'pc': 3371, 'slot': '0x00000000000000000000000000000000000000000000000002c68af0bb140000'}, {'op': 'SLOAD', 'pc': 3758, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 3793, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 3819, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4037, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4444, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 4470, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4758, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4991, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5154, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5199, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5370, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 5471, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5529, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5636, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5784, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5950, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 6323, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 7964, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}], 'writes': 20}}
{'auth': {'guards': []}, 'entry_pc': 2687066645, 'selector': '0x91d14854', 'sinks': {'call': 5, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 4}, 'storage': {'reads': 46, 'slots': [{'op': 'SLOAD', 'pc': 2025, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2073, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 2096, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2259, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 2265, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2609, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 2645, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2749, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SSTORE', 'pc': 2894, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SSTORE', 'pc': 3356, 'slot': '0x000000000000000000000000000000000000000000000000000000000000004b'}, {'op': 'SSTORE', 'pc': 3371, 'slot': '0x00000000000000000000000000000000000000000000000002c68af0bb140000'}, {'op': 'SLOAD', 'pc': 3758, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 3793, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 3819, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4037, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4444, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 4470, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4758, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4991, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5154, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5199, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5370, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 5471, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5529, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5636, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5784, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5950, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 6323, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 7964, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}], 'writes': 20}}
{'auth': {'guards': []}, 'entry_pc': None, 'selector': '0xa0296215', 'sinks': {'call': 5, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 4}, 'storage': {'reads': 46, 'slots': [{'op': 'SLOAD', 'pc': 2025, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2073, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 2096, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2259, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 2265, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2609, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 2645, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2749, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SSTORE', 'pc': 2894, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SSTORE', 'pc': 3356, 'slot': '0x000000000000000000000000000000000000000000000000000000000000004b'}, {'op': 'SSTORE', 'pc': 3371, 'slot': '0x00000000000000000000000000000000000000000000000002c68af0bb140000'}, {'op': 'SLOAD', 'pc': 3758, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 3793, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 3819, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4037, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4444, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 4470, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4758, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4991, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5154, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5199, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5370, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 5471, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5529, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5636, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5784, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 5950, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 6323, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 7964, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}], 'writes': 20}}
thinking
**Investigating function selectors mapping**
exec
/bin/bash -lc "python - <<'PY'
import json
from pprint import pprint
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
sel=data['analysis_artifact']['artifact_json']['selectors']
print('selectors count',len(sel))
# show first 30
for s in sel[:30]:
print(s)
PY" in /tmp/codex-_ntfk5at succeeded in 46ms:
selectors count 25
0xe2787405
0xec58f4b8
0xfc22290b
0xfeb9bf89
0xd547741f
0xdb5c0f79
0xe086e5ec
0xa217fddf
0xc471b10b
0xc4fd5002
0xc59d5633
0xca15c873
0xcd3293de
0x4f01f6f1
0x6b7cd7c8
0x8f29f0fe
0x9010d07c
0x91d14854
0xa0296215
thinking
**Inspecting storage changes in artifact**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
store=data['analysis_artifact']['artifact_json']['storage']
print(type(store))
print(store.keys())
print('reads',store.get('reads'),'writes',store.get('writes'))
print('slots count', len(store.get('slots',[])))
print(store.get('slots',[])[:10])
PY" in /tmp/codex-_ntfk5at succeeded in 52ms:
<class 'dict'>
dict_keys(['keccak_count', 'reads', 'slots', 'writes'])
reads 46 writes 20
slots count 29
[{'op': 'SLOAD', 'pc': 2025, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2073, 'slot': '0x000000000000000000000000000000000000000000000000000000000000009a'}, {'op': 'SLOAD', 'pc': 2096, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2259, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000098'}, {'op': 'SLOAD', 'pc': 2265, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000099'}, {'op': 'SLOAD', 'pc': 2609, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 2645, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2749, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SSTORE', 'pc': 2894, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SSTORE', 'pc': 3356, 'slot': '0x000000000000000000000000000000000000000000000000000000000000004b'}]
thinking
**Considering function dispatch strategy**
exec
/bin/bash -lc "python - <<'PY'
import json
from pprint import pprint
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
callsites=data['analysis_artifact']['artifact_json']['callsites']
print('callsite count',len(callsites))
print(callsites)
PY" in /tmp/codex-_ntfk5at succeeded in 74ms:
callsite count 9
[{'opcode': 'STATICCALL', 'pc': 2197, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'n/a'}, {'opcode': 'CALL', 'pc': 3992, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'computed'}, {'opcode': 'STATICCALL', 'pc': 4252, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'n/a'}, {'opcode': 'CALL', 'pc': 4695, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'computed'}, {'opcode': 'CALL', 'pc': 4872, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'computed'}, {'opcode': 'CALL', 'pc': 4948, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'computed'}, {'opcode': 'STATICCALL', 'pc': 5092, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'n/a'}, {'opcode': 'STATICCALL', 'pc': 5300, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'n/a'}, {'opcode': 'CALL', 'pc': 6009, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'computed'}]
thinking
**Analyzing call traces and security evidence**
I'm planning to dig into the capability graph and artifacts to find callsites, decoded strings, and storage usage relevant to security. I want to watch out for risky patterns like unguarded external calls, missing access control guards, and potential reentrancy by examining call flows and state changes, while carefully avoiding overclaims since some info might be missing or incomplete. I'll also verify indicators like heavy external balance usage and note all findings for a thorough JSON audit summary.
exec
/bin/bash -lc "python - <<'PY'
import json, textwrap
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
for k in ['analysis_run','artifact','capability_graph']:
print(k, type(data.get(k)))
if isinstance(data.get(k), dict):
print(' keys', list(data[k].keys())[:20])
PY" in /tmp/codex-_ntfk5at succeeded in 64ms:
analysis_run <class 'dict'>
keys ['address', 'block_number', 'chain_id', 'child_links', 'created_at', 'id', 'parent_links', 'status', 'updated_at']
artifact <class 'dict'>
keys ['codehash', 'compiler_json', 'implementation_address', 'is_proxy', 'runtime_bytecode', 'verified_source']
capability_graph <class 'dict'>
keys ['address', 'block_number', 'chain_id', 'codehash', 'created_at', 'graph_hash', 'graph_json', 'id', 'updated_at', 'version']
thinking
**Checking artifact for proxy indicators**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
print('artifact', {k:data['artifact'].get(k) for k in ['is_proxy','implementation_address','verified_source']})
print('runtime_bytecode length', len(data['artifact'].get('runtime_bytecode','')))
PY" in /tmp/codex-_ntfk5at succeeded in 52ms:
artifact {'is_proxy': False, 'implementation_address': None, 'verified_source': False}
runtime_bytecode length 5
thinking
**Inspecting runtime bytecode details**
exec
/bin/bash -lc "python - <<'PY'
import json
from pprint import pprint
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
print(data['capability_graph'].keys())
print('graph_json keys', data['capability_graph']['graph_json'].keys())
PY" in /tmp/codex-_ntfk5at succeeded in 43ms:
dict_keys(['address', 'block_number', 'chain_id', 'codehash', 'created_at', 'graph_hash', 'graph_json', 'id', 'updated_at', 'version'])
graph_json keys dict_keys(['edges', 'nodes', 'version'])
thinking
**Inspecting graph_json callsite nodes**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
nodes=data['capability_graph']['graph_json']['nodes']
# count types
from collections import Counter
c=Counter(n.get('type') for n in nodes)
print('node types', c)
# show callsite nodes
calls=[n for n in nodes if n.get('type')=='callsite']
print('callsite nodes', len(calls))
print(calls[:5])
# show sink nodes
sinks=[n for n in nodes if n.get('type')=='sink']
print('sink nodes', sinks)
PY" in /tmp/codex-_ntfk5at succeeded in 41ms:
node types Counter({'basic_block': 396, 'function': 25, 'callsite': 9, 'sink': 2})
callsite nodes 9
[{'id': 'call:2197', 'opcode': 'STATICCALL', 'pc': 2197, 'type': 'callsite'}, {'id': 'call:3992', 'opcode': 'CALL', 'pc': 3992, 'type': 'callsite'}, {'id': 'call:4252', 'opcode': 'STATICCALL', 'pc': 4252, 'type': 'callsite'}, {'id': 'call:4695', 'opcode': 'CALL', 'pc': 4695, 'type': 'callsite'}, {'id': 'call:4872', 'opcode': 'CALL', 'pc': 4872, 'type': 'callsite'}]
sink nodes [{'id': 'sink:staticcall', 'type': 'sink'}, {'id': 'sink:call', 'type': 'sink'}]
thinking
**Checking function-to-callsite edges**
exec
/bin/bash -lc "python - <<'PY'
import json
from collections import defaultdict
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
edges=data['capability_graph']['graph_json']['edges']
# build adjacency from source to targets
adj=defaultdict(list)
for e in edges:
adj[e['source']].append(e['target'])
# list function nodes and their targets
func_nodes=[n['id'] for n in data['capability_graph']['graph_json']['nodes'] if n['type']=='function']
for fid in func_nodes:
targets=adj.get(fid,[])
if targets:
print(fid, '->', targets[:10])
PY" in /tmp/codex-_ntfk5at exited 1 in 34ms:
Traceback (most recent call last):
File "<stdin>", line 9, in <module>
KeyError: 'source'
thinking
**Inspecting edge structure**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
edges=data['capability_graph']['graph_json']['edges']
print('edge sample', edges[:5])
print('edge keys', edges[0].keys())
PY" in /tmp/codex-_ntfk5at succeeded in 53ms:
edge sample [{'from': 'bb:0', 'to': 'bb:358', 'type': 'control_flow'}, {'from': 'bb:0', 'to': 'bb:13', 'type': 'control_flow_fallthrough'}, {'from': 'bb:13', 'to': 'bb:209', 'type': 'control_flow'}, {'from': 'bb:13', 'to': 'bb:30', 'type': 'control_flow_fallthrough'}, {'from': 'bb:30', 'to': 'bb:138', 'type': 'control_flow'}]
edge keys dict_keys(['from', 'to', 'type'])
thinking
**Filtering edges for control flow**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
edges=data['capability_graph']['graph_json']['edges']
fn_edges=[e for e in edges if str(e['from']).startswith('fn:') or str(e['to']).startswith('fn:')]
print('fn edges',len(fn_edges))
print(fn_edges[:10])
PY" in /tmp/codex-_ntfk5at succeeded in 33ms:
fn edges 21
[{'from': 'fn:0xe2787405', 'to': 'bb:3799544837', 'type': 'entry'}, {'from': 'fn:0xec58f4b8', 'to': 'bb:4230097163', 'type': 'entry'}, {'from': 'fn:0xfc22290b', 'to': 'bb:4273586057', 'type': 'entry'}, {'from': 'fn:0xd547741f', 'to': 'bb:3680243577', 'type': 'entry'}, {'from': 'fn:0xdb5c0f79', 'to': 'bb:3766937068', 'type': 'entry'}, {'from': 'fn:0xa217fddf', 'to': 'bb:3295785227', 'type': 'entry'}, {'from': 'fn:0xc471b10b', 'to': 'bb:3304935426', 'type': 'entry'}, {'from': 'fn:0xc4fd5002', 'to': 'bb:3315422771', 'type': 'entry'}, {'from': 'fn:0xc59d5633', 'to': 'bb:3390425203', 'type': 'entry'}, {'from': 'fn:0xca15c873', 'to': 'bb:3442643934', 'type': 'entry'}]
thinking
**Analyzing callsite connectivity in graph**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
blocks=data['analysis_artifact']['artifact_json']['basic_blocks']
call_pcs=[2197,3992,4252,4695,4872,4948,5092,5300,6009]
# find block containing pc
for pc in call_pcs:
blk=next((b for b in blocks if b['start_pc']<=pc<=b['end_pc']), None)
print('pc',pc,'block',blk['start_pc'] if blk else None,'end',blk['end_pc'] if blk else None)
if blk:
print('opcodes', blk['opcodes'])
print('---')
PY" in /tmp/codex-_ntfk5at succeeded in 59ms:
pc 2197 block 2194 end 2204
opcodes ['JUMPDEST', 'POP', 'GAS', 'STATICCALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
---
pc 3992 block 3989 end 3999
opcodes ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
---
pc 4252 block 4249 end 4259
opcodes ['JUMPDEST', 'POP', 'GAS', 'STATICCALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
---
pc 4695 block 4692 end 4702
opcodes ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
---
pc 4872 block 4869 end 4879
opcodes ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
---
pc 4948 block 4901 end 4960
opcodes ['JUMPDEST', 'PUSH20', 'AND', 'PUSH2', 'OP_82', 'OP_90', 'OP_81', 'ISZERO', 'MUL', 'OP_90', 'PUSH1', 'MLOAD', 'PUSH1', 'PUSH1', 'MLOAD', 'OP_80', 'OP_83', 'SUB', 'OP_81', 'OP_85', 'OP_88', 'OP_88', 'CALL', 'OP_93', 'POP', 'POP', 'POP', 'POP', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
---
pc 5092 block 5089 end 5099
opcodes ['JUMPDEST', 'POP', 'GAS', 'STATICCALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
thinking
**Analyzing CALL pattern with conditional revert**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
# build edge list from bb id
edges=data['capability_graph']['graph_json']['edges']
# find edges from bb:3989 etc
for bb in ['bb:2194','bb:3989','bb:4249','bb:4692','bb:4869','bb:4901','bb:5089','bb:5297','bb:5988']:
outs=[e for e in edges if e['from']==bb]
print(bb,'->',outs)
PY" in /tmp/codex-_ntfk5at succeeded in 29ms:
bb:2194 -> [{'from': 'bb:2194', 'to': 'bb:2214', 'type': 'control_flow'}, {'from': 'bb:2194', 'to': 'bb:2205', 'type': 'control_flow_fallthrough'}, {'from': 'bb:2194', 'to': 'call:2197', 'type': 'contains'}]
bb:3989 -> [{'from': 'bb:3989', 'to': 'bb:4009', 'type': 'control_flow'}, {'from': 'bb:3989', 'to': 'bb:4000', 'type': 'control_flow_fallthrough'}, {'from': 'bb:3989', 'to': 'call:3992', 'type': 'contains'}]
bb:4249 -> [{'from': 'bb:4249', 'to': 'bb:4269', 'type': 'control_flow'}, {'from': 'bb:4249', 'to': 'bb:4260', 'type': 'control_flow_fallthrough'}, {'from': 'bb:4249', 'to': 'call:4252', 'type': 'contains'}]
bb:4692 -> [{'from': 'bb:4692', 'to': 'bb:4712', 'type': 'control_flow'}, {'from': 'bb:4692', 'to': 'bb:4703', 'type': 'control_flow_fallthrough'}, {'from': 'bb:4692', 'to': 'call:4695', 'type': 'contains'}]
bb:4869 -> [{'from': 'bb:4869', 'to': 'bb:4889', 'type': 'control_flow'}, {'from': 'bb:4869', 'to': 'bb:4880', 'type': 'control_flow_fallthrough'}, {'from': 'bb:4869', 'to': 'call:4872', 'type': 'contains'}]
bb:4901 -> [{'from': 'bb:4901', 'to': 'bb:4970', 'type': 'control_flow'}, {'from': 'bb:4901', 'to': 'bb:4961', 'type': 'control_flow_fallthrough'}, {'from': 'bb:4901', 'to': 'call:4948', 'type': 'contains'}]
bb:5089 -> [{'from': 'bb:5089', 'to': 'bb:5109', 'type': 'control_flow'}, {'from': 'bb:5089', 'to': 'bb:5100', 'type': 'control_flow_fallthrough'}, {'from': 'bb:5089', 'to': 'call:5092', 'type': 'contains'}]
bb:5297 -> [{'from': 'bb:5297', 'to': 'bb:5317', 'type': 'control_flow'}, {'from': 'bb:5297', 'to': 'bb:5308', 'type': 'control_flow_fallthrough'}, {'from': 'bb:5297', 'to': 'call:5300', 'type': 'contains'}]
bb:5988 -> [{'from': 'bb:5988', 'to': 'bb:6031', 'type': 'control_flow'}, {'from': 'bb:5988', 'to': 'bb:6022', 'type': 'control_flow_fallthrough'}, {'from': 'bb:5988', 'to': 'call:6009', 'type': 'contains'}]
thinking
**Inspecting specific code blocks**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
blocks={b['start_pc']:b for b in data['analysis_artifact']['artifact_json']['basic_blocks']}
# find blocks by id? we have start_pc. look at 4000,4009 etc
for start in [4000,4009,2205,2214,4260,4269,4703,4712,4880,4889,4961,4970,5100,5109,5308,5317,6022,6031]:
blk=blocks.get(start)
print('block',start, blk['opcodes'] if blk else None)
PY" in /tmp/codex-_ntfk5at succeeded in 30ms:
block 4000 ['RETURNDATASIZE', 'PUSH1', 'OP_80', 'RETURNDATACOPY', 'RETURNDATASIZE', 'PUSH1', 'REVERT']
block 4009 ['JUMPDEST', 'POP', 'POP', 'POP', 'POP', 'CALLVALUE', 'OP_90', 'POP', 'OP_91', 'OP_90', 'POP', 'JUMP']
block 2205 ['RETURNDATASIZE', 'PUSH1', 'OP_80', 'RETURNDATACOPY', 'RETURNDATASIZE', 'PUSH1', 'REVERT']
block 2214 ['JUMPDEST', 'POP', 'POP', 'POP', 'POP', 'PUSH1', 'MLOAD', 'RETURNDATASIZE', 'PUSH1', 'OP_81', 'LT', 'ISZERO', 'PUSH2', 'JUMPI']
block 4260 ['RETURNDATASIZE', 'PUSH1', 'OP_80', 'RETURNDATACOPY', 'RETURNDATASIZE', 'PUSH1', 'REVERT']
block 4269 ['JUMPDEST', 'POP', 'POP', 'POP', 'POP', 'PUSH1', 'MLOAD', 'RETURNDATASIZE', 'PUSH1', 'OP_81', 'LT', 'ISZERO', 'PUSH2', 'JUMPI']
block 4703 ['RETURNDATASIZE', 'PUSH1', 'OP_80', 'RETURNDATACOPY', 'RETURNDATASIZE', 'PUSH1', 'REVERT']
block 4712 ['JUMPDEST', 'POP', 'POP', 'POP', 'POP', 'PUSH1', 'MLOAD', 'RETURNDATASIZE', 'PUSH1', 'OP_81', 'LT', 'ISZERO', 'PUSH2', 'JUMPI']
block 4880 ['RETURNDATASIZE', 'PUSH1', 'OP_80', 'RETURNDATACOPY', 'RETURNDATASIZE', 'PUSH1', 'REVERT']
block 4889 ['JUMPDEST', 'POP', 'POP', 'POP', 'POP', 'PUSH2', 'PUSH2', 'JUMP']
block 4961 ['RETURNDATASIZE', 'PUSH1', 'OP_80', 'RETURNDATACOPY', 'RETURNDATASIZE', 'PUSH1', 'REVERT']
block 4970 ['JUMPDEST', 'POP', 'OP_80', 'OP_91', 'POP', 'POP', 'OP_91', 'OP_90', 'POP', 'JUMP']
block 5100 ['RETURNDATASIZE', 'PUSH1', 'OP_80', 'RETURNDATACOPY', 'RETURNDATASIZE', 'PUSH1', 'REVERT']
block 5109 ['JUMPDEST', 'POP', 'POP', 'POP', 'POP', 'PUSH1', 'MLOAD', 'RETURNDATASIZE', 'PUSH1', 'OP_81', 'LT', 'ISZERO', 'PUSH2', 'JUMPI']
block 5308 ['RETURNDATASIZE', 'PUSH1', 'OP_80', 'RETURNDATACOPY', 'RETURNDATASIZE', 'PUSH1', 'REVERT']
block 5317 ['JUMPDEST', 'POP', 'POP', 'POP', 'POP', 'PUSH1', 'MLOAD', 'RETURNDATASIZE', 'PUSH1', 'OP_81', 'LT', 'ISZERO', 'PUSH2', 'JUMPI']
block 6022 ['RETURNDATASIZE', 'PUSH1', 'OP_80', 'RETURNDATACOPY', 'RETURNDATASIZE', 'PUSH1', 'REVERT']
block 6031 ['JUMPDEST', 'POP', 'JUMP']
thinking
**Analyzing external call risks and control flows**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
edges=data['capability_graph']['graph_json']['edges']
for bb in ['bb:4869','bb:4901','bb:5988','bb:3989','bb:4692']:
incoming=[e for e in edges if e['to']==bb]
print(bb,'incoming',incoming[:5])
PY" in /tmp/codex-_ntfk5at succeeded in 34ms:
bb:4869 incoming [{'from': 'bb:4734', 'to': 'bb:4869', 'type': 'control_flow'}]
bb:4901 incoming []
bb:5988 incoming []
bb:3989 incoming [{'from': 'bb:3883', 'to': 'bb:3989', 'type': 'control_flow'}]
bb:4692 incoming [{'from': 'bb:4534', 'to': 'bb:4692', 'type': 'control_flow'}]
thinking
**Inspecting opcode sequences around blocks**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
blocks=data['analysis_artifact']['artifact_json']['basic_blocks']
# filter blocks with start_pc between 4600 and 4905
for b in blocks:
if 4600 <= b['start_pc'] <= 4905:
print('bb',b['start_pc'],'-',b['end_pc'], b['opcodes'])
PY" in /tmp/codex-_ntfk5at succeeded in 32ms:
bb 4688 - 4691 ['PUSH1', 'OP_80', 'REVERT']
bb 4692 - 4702 ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
bb 4703 - 4711 ['RETURNDATASIZE', 'PUSH1', 'OP_80', 'RETURNDATACOPY', 'RETURNDATASIZE', 'PUSH1', 'REVERT']
bb 4712 - 4729 ['JUMPDEST', 'POP', 'POP', 'POP', 'POP', 'PUSH1', 'MLOAD', 'RETURNDATASIZE', 'PUSH1', 'OP_81', 'LT', 'ISZERO', 'PUSH2', 'JUMPI']
bb 4730 - 4733 ['PUSH1', 'OP_80', 'REVERT']
bb 4734 - 4864 ['JUMPDEST', 'OP_81', 'ADD', 'OP_90', 'OP_80', 'OP_80', 'MLOAD', 'OP_90', 'PUSH1', 'ADD', 'OP_90', 'OP_92', 'OP_91', 'OP_90', 'POP', 'POP', 'POP', 'POP', 'PUSH1', 'PUSH1', 'OP_90', 'SLOAD', 'OP_90', 'PUSH2', 'EXP', 'OP_90', 'DIV', 'PUSH20', 'AND', 'PUSH20', 'AND', 'PUSH4', 'OP_84', 'PUSH1', 'MLOAD', 'OP_82', 'PUSH4', 'AND', 'PUSH1', 'SHL', 'OP_81', 'MSTORE', 'PUSH1', 'ADD', 'OP_80', 'OP_82', 'OP_81', 'MSTORE', 'PUSH1', 'ADD', 'OP_91', 'POP', 'POP', 'PUSH1', 'PUSH1', 'MLOAD', 'OP_80', 'OP_83', 'SUB', 'OP_81', 'PUSH1', 'OP_87', 'OP_80', 'EXTCODESIZE', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
bb 4865 - 4868 ['PUSH1', 'OP_80', 'REVERT']
bb 4869 - 4879 ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
bb 4880 - 4888 ['RETURNDATASIZE', 'PUSH1', 'OP_80', 'RETURNDATACOPY', 'RETURNDATASIZE', 'PUSH1', 'REVERT']
bb 4889 - 4900 ['JUMPDEST', 'POP', 'POP', 'POP', 'POP', 'PUSH2', 'PUSH2', 'JUMP']
bb 4901 - 4960 ['JUMPDEST', 'PUSH20', 'AND', 'PUSH2', 'OP_82', 'OP_90', 'OP_81', 'ISZERO', 'MUL', 'OP_90', 'PUSH1', 'MLOAD', 'PUSH1', 'PUSH1', 'MLOAD', 'OP_80', 'OP_83', 'SUB', 'OP_81', 'OP_85', 'OP_88', 'OP_88', 'CALL', 'OP_93', 'POP', 'POP', 'POP', 'POP', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
thinking
**Analyzing external call patterns**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
blocks=data['analysis_artifact']['artifact_json']['basic_blocks']
for b in blocks:
if 5900 <= b['start_pc'] <= 6040:
print('bb',b['start_pc'],'-',b['end_pc'], b['opcodes'])
PY" in /tmp/codex-_ntfk5at succeeded in 34ms:
bb 5911 - 5918 ['JUMPDEST', 'PUSH2', 'PUSH2', 'JUMP']
bb 5919 - 5987 ['JUMPDEST', 'PUSH20', 'AND', 'PUSH2', 'PUSH2', 'PUSH1', 'SLOAD', 'ADDRESS', 'PUSH20', 'AND', 'BALANCE', 'PUSH2', 'OP_90', 'OP_91', 'OP_90', 'PUSH4', 'AND', 'JUMP']
bb 5988 - 6021 ['JUMPDEST', 'OP_90', 'OP_81', 'ISZERO', 'MUL', 'OP_90', 'PUSH1', 'MLOAD', 'PUSH1', 'PUSH1', 'MLOAD', 'OP_80', 'OP_83', 'SUB', 'OP_81', 'OP_85', 'OP_88', 'OP_88', 'CALL', 'OP_93', 'POP', 'POP', 'POP', 'POP', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
bb 6022 - 6030 ['RETURNDATASIZE', 'PUSH1', 'OP_80', 'RETURNDATACOPY', 'RETURNDATASIZE', 'PUSH1', 'REVERT']
bb 6031 - 6033 ['JUMPDEST', 'POP', 'JUMP']
bb 6034 - 6090 ['JUMPDEST', 'PUSH1', 'MLOAD', 'OP_80', 'OP_80', 'PUSH32', 'OP_81', 'MSTORE', 'POP', 'PUSH1', 'ADD', 'OP_90', 'POP', 'PUSH1', 'MLOAD', 'OP_80', 'OP_91', 'SUB', 'OP_90', 'SHA3', 'OP_81', 'JUMP']
thinking
**Analyzing contract call operations**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
blocks=data['analysis_artifact']['artifact_json']['basic_blocks']
for b in blocks:
if 3880 <= b['start_pc'] <= 4070:
print('bb',b['start_pc'],'-',b['end_pc'], b['opcodes'])
PY" in /tmp/codex-_ntfk5at succeeded in 40ms:
bb 3883 - 3984 ['JUMPDEST', 'OP_84', 'PUSH1', 'MLOAD', 'OP_83', 'PUSH4', 'AND', 'PUSH1', 'SHL', 'OP_81', 'MSTORE', 'PUSH1', 'ADD', 'OP_80', 'OP_83', 'PUSH20', 'AND', 'PUSH20', 'AND', 'OP_81', 'MSTORE', 'PUSH1', 'ADD', 'OP_82', 'OP_81', 'MSTORE', 'PUSH1', 'ADD', 'OP_92', 'POP', 'POP', 'POP', 'PUSH1', 'PUSH1', 'MLOAD', 'OP_80', 'OP_83', 'SUB', 'OP_81', 'PUSH1', 'OP_87', 'OP_80', 'EXTCODESIZE', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
bb 3985 - 3988 ['PUSH1', 'OP_80', 'REVERT']
bb 3989 - 3999 ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
bb 4000 - 4008 ['RETURNDATASIZE', 'PUSH1', 'OP_80', 'RETURNDATACOPY', 'RETURNDATASIZE', 'PUSH1', 'REVERT']
bb 4009 - 4020 ['JUMPDEST', 'POP', 'POP', 'POP', 'POP', 'CALLVALUE', 'OP_90', 'POP', 'OP_91', 'OP_90', 'POP', 'JUMP']
bb 4021 - 4027 ['JUMPDEST', 'PUSH1', 'OP_80', 'SHL', 'OP_81', 'JUMP']
bb 4028 - 4100 ['JUMPDEST', 'PUSH1', 'OP_81', 'PUSH1', 'PUSH1', 'OP_90', 'SLOAD', 'OP_90', 'PUSH2', 'EXP', 'OP_90', 'DIV', 'PUSH20', 'AND', 'PUSH20', 'AND', 'PUSH4', 'PUSH2', 'PUSH2', 'JUMP']
thinking
**Analyzing call and storage operations**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
blocks=data['analysis_artifact']['artifact_json']['basic_blocks']
# find blocks with SSTORE around call pcs
sstore_blocks=[b for b in blocks if any(op=='SSTORE' for op in b['opcodes'])]
print('SSTORE blocks', len(sstore_blocks))
print('first few', [(b['start_pc'],b['end_pc']) for b in sstore_blocks[:10]])
# show blocks around 2800-3500 etc (since sstore at pc 2894 etc)
for b in blocks:
if 2800 <= b['start_pc'] <= 3500 and any(op=='SSTORE' for op in b['opcodes']):
print('bb',b['start_pc'],'-',b['end_pc'], b['opcodes'])
PY" in /tmp/codex-_ntfk5at succeeded in 43ms:
SSTORE blocks 12
first few [(2769, 2821), (2822, 2902), (3318, 3343), (3349, 3373), (3536, 3545), (3807, 3882), (4458, 4533), (5798, 5805), (6932, 6962), (7954, 8037)]
bb 2822 - 2902 ['JUMPDEST', 'OP_82', 'PUSH1', 'PUSH1', 'PUSH2', 'EXP', 'OP_81', 'SLOAD', 'OP_81', 'PUSH20', 'MUL', 'NOT', 'AND', 'OP_90', 'OP_83', 'PUSH20', 'AND', 'MUL', 'OR', 'OP_90', 'SSTORE', 'POP', 'PUSH1', 'PUSH1', 'OP_81', 'OP_90', 'SSTORE', 'POP', 'PUSH2', 'PUSH2', 'JUMP']
bb 3318 - 3343 ['PUSH1', 'OP_80', 'PUSH1', 'PUSH2', 'EXP', 'OP_81', 'SLOAD', 'OP_81', 'PUSH1', 'MUL', 'NOT', 'AND', 'OP_90', 'OP_83', 'ISZERO', 'ISZERO', 'MUL', 'OR', 'OP_90', 'SSTORE', 'POP']
bb 3349 - 3373 ['JUMPDEST', 'PUSH1', 'PUSH1', 'OP_81', 'OP_90', 'SSTORE', 'POP', 'PUSH8', 'PUSH1', 'OP_81', 'OP_90', 'SSTORE', 'POP', 'JUMP']
thinking
**Investigating SSTORE around calls**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
blocks=data['analysis_artifact']['artifact_json']['basic_blocks']
for b in blocks:
if b['start_pc']==3807:
print(b['opcodes'])
PY" in /tmp/codex-_ntfk5at succeeded in 32ms:
['JUMPDEST', 'PUSH1', 'OP_81', 'OP_90', 'SSTORE', 'POP', 'PUSH1', 'PUSH1', 'OP_90', 'SLOAD', 'OP_90', 'PUSH2', 'EXP', 'OP_90', 'DIV', 'PUSH20', 'AND', 'PUSH20', 'AND', 'PUSH4', 'PUSH2', 'PUSH2', 'JUMP']
thinking
**Analyzing SSTORE and call sequences**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
blocks=data['analysis_artifact']['artifact_json']['basic_blocks']
for b in blocks:
if b['start_pc']==4458:
print(b['opcodes'])
PY" in /tmp/codex-_ntfk5at succeeded in 31ms:
['JUMPDEST', 'PUSH1', 'OP_81', 'OP_90', 'SSTORE', 'POP', 'PUSH1', 'PUSH1', 'OP_90', 'SLOAD', 'OP_90', 'PUSH2', 'EXP', 'OP_90', 'DIV', 'PUSH20', 'AND', 'PUSH20', 'AND', 'PUSH4', 'PUSH2', 'PUSH2', 'JUMP']
thinking
**Analyzing storage operations before calls**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
blocks=data['analysis_artifact']['artifact_json']['basic_blocks']
for b in blocks:
if b['start_pc']==5798:
print(b['opcodes'])
PY" in /tmp/codex-_ntfk5at succeeded in 38ms:
['JUMPDEST', 'PUSH1', 'OP_81', 'OP_90', 'SSTORE', 'POP', 'JUMP']
thinking
**Analyzing state updates and access controls**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
print('dispatcher_type', data['analysis_artifact']['artifact_json'].get('dispatcher_type'))
PY" in /tmp/codex-_ntfk5at succeeded in 45ms:
dispatcher_type selector_jump_table
thinking
**Analyzing external calls and reentrancy risks**
exec
/bin/bash -lc "python - <<'PY'
import json
from collections import defaultdict
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
slots=[s for s in data['analysis_artifact']['artifact_json']['storage']['slots'] if s['op']=='SSTORE']
print('SSTORE slots', len(slots))
for s in slots:
print(s)
PY" in /tmp/codex-_ntfk5at succeeded in 49ms:
SSTORE slots 3
{'op': 'SSTORE', 'pc': 2894, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}
{'op': 'SSTORE', 'pc': 3356, 'slot': '0x000000000000000000000000000000000000000000000000000000000000004b'}
{'op': 'SSTORE', 'pc': 3371, 'slot': '0x00000000000000000000000000000000000000000000000002c68af0bb140000'}
thinking
**Analyzing security risks and access control**
I'm examining storage slot usage, callsites with computed targets and values, and guard detection to assess potential untrusted external calls and missing access controls. There’s no clear evidence of guards, so I’m cautiously rating the untrusted calls as medium risk and the storage write access control as low risk, while noting possible reentrancy scenarios intertwined with unsafe calls.
exec
/bin/bash -lc "python - <<'PY'
pcs=[2197,3992,4252,4695,4872,4948,5092,5300,6009,2894,3356,3371]
for pc in pcs:
print(pc, hex(pc))
PY" in /tmp/codex-_ntfk5at succeeded in 20ms:
2197 0x895
3992 0xf98
4252 0x109c
4695 0x1257
4872 0x1308
4948 0x1354
5092 0x13e4
5300 0x14b4
6009 0x1779
2894 0xb4e
3356 0xd1c
3371 0xd2b
thinking
**Constructing detailed security findings**
codex
{"no_findings":false,"summary":"Bytecode-only review of the implementation shows multiple CALLs to computed targets (with potential ETH value) and state writes to fixed slots without any detected guards; confirm these paths are properly restricted and validated.","findings":[{"severity":"medium","category":"other","title":"External CALLs to computed targets with possible ETH value","exploit_scenario":"If any publicly reachable function allows attacker-controlled inputs to influence the CALL target/value, an attacker could force arbitrary external calls or ETH transfers. This could be used to drain funds or reenter if state changes occur after the call. Target/value control is uncertain from bytecode alone, but callsites show computed targets/values and no guards were detected.","recommendation":"Restrict CALL targets/values (allowlists or fixed addresses), add explicit access control for privileged flows, and consider reentrancy guards around external value-carrying calls.","evidence":"Calls at pcs 0xf98/0x1257/0x1308/0x1354/0x1779 are CALL with computed target/value; detector flagged untrusted CALL target/value and ETH value transfer possible.","locations":["pc:0xf98","pc:0x1257","pc:0x1308","pc:0x1354","pc:0x1779"]},{"severity":"low","category":"access_control","title":"State writes to fixed storage slots with no detected guards","exploit_scenario":"Storage slots 0x0, 0x4b, and 0x2c68af0bb140000 are written (SSTORE). If these slots hold privileged configuration (e.g., owner/admin parameters or critical settings), and functions are externally callable, any user could modify them. The bytecode analysis did not detect guard patterns, so access control is uncertain.","recommendation":"Verify that all functions reaching these SSTOREs enforce appropriate access control (e.g., onlyOwner/admin checks) and that initialization is properly locked.","evidence":"SSTORE ops at pc 0xb4e (slot 0x0), pc 0xd1c (slot 0x4b), pc 0xd2b (slot 0x2c68af0bb140000); auth.guards list is empty in artifact.","locations":["pc:0xb4e","pc:0xd1c","pc:0xd2b"]}]}
tokens used
88,948
{
"codex": {
"ran_at": "2026-01-13T00:31:22.525585+00:00",
"returncode": 0
},
"project": {
"mode": "bytecode",
"bytecode_length": 17444,
"bytecode_truncated": false,
"capability_graph_present": true,
"analysis_artifact_present": true
},
"summary": "Bytecode-only review of the implementation shows multiple CALLs to computed targets (with potential ETH value) and state writes to fixed slots without any detected guards; confirm these paths are properly restricted and validated.",
"raw_final": {
"summary": "Bytecode-only review of the implementation shows multiple CALLs to computed targets (with potential ETH value) and state writes to fixed slots without any detected guards; confirm these paths are properly restricted and validated.",
"findings": [
{
"title": "External CALLs to computed targets with possible ETH value",
"category": "other",
"evidence": "Calls at pcs 0xf98/0x1257/0x1308/0x1354/0x1779 are CALL with computed target/value; detector flagged untrusted CALL target/value and ETH value transfer possible.",
"severity": "medium",
"locations": [
"pc:0xf98",
"pc:0x1257",
"pc:0x1308",
"pc:0x1354",
"pc:0x1779"
],
"recommendation": "Restrict CALL targets/values (allowlists or fixed addresses), add explicit access control for privileged flows, and consider reentrancy guards around external value-carrying calls.",
"exploit_scenario": "If any publicly reachable function allows attacker-controlled inputs to influence the CALL target/value, an attacker could force arbitrary external calls or ETH transfers. This could be used to drain funds or reenter if state changes occur after the call. Target/value control is uncertain from bytecode alone, but callsites show computed targets/values and no guards were detected."
},
{
"title": "State writes to fixed storage slots with no detected guards",
"category": "access_control",
"evidence": "SSTORE ops at pc 0xb4e (slot 0x0), pc 0xd1c (slot 0x4b), pc 0xd2b (slot 0x2c68af0bb140000); auth.guards list is empty in artifact.",
"severity": "low",
"locations": [
"pc:0xb4e",
"pc:0xd1c",
"pc:0xd2b"
],
"recommendation": "Verify that all functions reaching these SSTOREs enforce appropriate access control (e.g., onlyOwner/admin checks) and that initialization is properly locked.",
"exploit_scenario": "Storage slots 0x0, 0x4b, and 0x2c68af0bb140000 are written (SSTORE). If these slots hold privileged configuration (e.g., owner/admin parameters or critical settings), and functions are externally callable, any user could modify them. The bytecode analysis did not detect guard patterns, so access control is uncertain."
}
],
"no_findings": false
},
"no_findings": false,
"proxy_context": {
"proxy_run_id": "019bb490-f3b0-72b8-bc22-2e4219ff2cd1",
"proxy_address": "0x764c64b2a09b09acb100b80d8c505aa6a0302ef2",
"implementation_run_id": "019bb491-abe0-7015-aafa-7b767eaf03d1",
"implementation_address": "0xc186e6f0163e21be057e95aa135edd52508d14d3"
},
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x004a 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x3659cfe6 00000019: EQ 0000001a: PUSH2 0x0054 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0x4f1ef286 00000024: EQ 00000025: PUSH2 0x00a5 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0x5c60da1b 0000002f: EQ 00000030: PUSH2 0x013e 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0x8f283970 0000003a: EQ 0000003b: PUSH2 0x0195 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xf851a440 00000045: EQ 00000046: PUSH2 0x01e6 00000049: JUMPI 0000004a: JUMPDEST 0000004b: PUSH2 0x0052 0000004e: PUSH2 0x023d 00000051: JUMP 00000052: JUMPDEST 00000053: STOP 00000054: JUMPDEST 00000055: CALLVALUE 00000056: DUP1 00000057: ISZERO 00000058: PUSH2 0x0060 0000005b: JUMPI 0000005c: PUSH1 0x00 0000005e: DUP1 0000005f: REVERT 00000060: JUMPDEST 00000061: POP 00000062: PUSH2 0x00a3 00000065: PUSH1 0x04 00000067: DUP1 00000068: CALLDATASIZE 00000069: SUB 0000006a: PUSH1 0x20 0000006c: DUP2 0000006d: LT 0000006e: ISZERO 0000006f: PUSH2 0x0077 00000072: JUMPI 00000073: PUSH1 0x00 00000075: DUP1 00000076: REVERT 00000077: JUMPDEST 00000078: DUP2 00000079: ADD 0000007a: SWAP1 0000007b: DUP1 0000007c: DUP1 0000007d: CALLDATALOAD 0000007e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000093: AND 00000094: SWAP1 00000095: PUSH1 0x20 00000097: ADD 00000098: SWAP1 00000099: SWAP3 0000009a: SWAP2 0000009b: SWAP1 0000009c: POP 0000009d: POP 0000009e: POP 0000009f: PUSH2 0x0257 000000a2: JUMP 000000a3: JUMPDEST 000000a4: STOP 000000a5: JUMPDEST 000000a6: PUSH2 0x013c 000000a9: PUSH1 0x04 000000ab: DUP1 000000ac: CALLDATASIZE 000000ad: SUB 000000ae: PUSH1 0x40 000000b0: DUP2 000000b1: LT 000000b2: ISZERO 000000b3: PUSH2 0x00bb 000000b6: JUMPI 000000b7: PUSH1 0x00 000000b9: DUP1 000000ba: REVERT 000000bb: JUMPDEST 000000bc: DUP2 000000bd: ADD 000000be: SWAP1 000000bf: DUP1 000000c0: DUP1 000000c1: CALLDATALOAD 000000c2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000000d7: AND 000000d8: SWAP1 000000d9: PUSH1 0x20 000000db: ADD 000000dc: SWAP1 000000dd: SWAP3 000000de: SWAP2 000000df: SWAP1 000000e0: DUP1 000000e1: CALLDATALOAD 000000e2: SWAP1 000000e3: PUSH1 0x20 000000e5: ADD 000000e6: SWAP1 000000e7: PUSH5 0x0100000000 000000ed: DUP2 000000ee: GT 000000ef: ISZERO 000000f0: PUSH2 0x00f8 000000f3: JUMPI 000000f4: PUSH1 0x00 000000f6: DUP1 000000f7: REVERT 000000f8: JUMPDEST 000000f9: DUP3 000000fa: ADD 000000fb: DUP4 000000fc: PUSH1 0x20 000000fe: DUP3 000000ff: ADD 00000100: GT 00000101: ISZERO 00000102: PUSH2 0x010a 00000105: JUMPI 00000106: PUSH1 0x00 00000108: DUP1 00000109: REVERT 0000010a: JUMPDEST 0000010b: DUP1 0000010c: CALLDATALOAD 0000010d: SWAP1 0000010e: PUSH1 0x20 00000110: ADD 00000111: SWAP2 00000112: DUP5 00000113: PUSH1 0x01 00000115: DUP4 00000116: MUL 00000117: DUP5 00000118: ADD 00000119: GT 0000011a: PUSH5 0x0100000000 00000120: DUP4 00000121: GT 00000122: OR 00000123: ISZERO 00000124: PUSH2 0x012c 00000127: JUMPI 00000128: PUSH1 0x00 0000012a: DUP1 0000012b: REVERT 0000012c: JUMPDEST 0000012d: SWAP1 0000012e: SWAP2 0000012f: SWAP3 00000130: SWAP4 00000131: SWAP2 00000132: SWAP3 00000133: SWAP4 00000134: SWAP1 00000135: POP 00000136: POP 00000137: POP 00000138: PUSH2 0x02ac 0000013b: JUMP 0000013c: JUMPDEST 0000013d: STOP 0000013e: JUMPDEST 0000013f: CALLVALUE 00000140: DUP1 00000141: ISZERO 00000142: PUSH2 0x014a 00000145: JUMPI 00000146: PUSH1 0x00 00000148: DUP1 00000149: REVERT 0000014a: JUMPDEST 0000014b: POP 0000014c: PUSH2 0x0153 0000014f: PUSH2 0x0384 00000152: JUMP 00000153: JUMPDEST 00000154: PUSH1 0x40 00000156: MLOAD 00000157: DUP1 00000158: DUP3 00000159: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000016e: AND 0000016f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000184: AND 00000185: DUP2 00000186: MSTORE 00000187: PUSH1 0x20 00000189: ADD 0000018a: SWAP2 0000018b: POP 0000018c: POP 0000018d: PUSH1 0x40 0000018f: MLOAD 00000190: DUP1 00000191: SWAP2 00000192: SUB 00000193: SWAP1 00000194: RETURN 00000195: JUMPDEST 00000196: CALLVALUE 00000197: DUP1 00000198: ISZERO 00000199: PUSH2 0x01a1 0000019c: JUMPI 0000019d: PUSH1 0x00 0000019f: DUP1 000001a0: REVERT 000001a1: JUMPDEST 000001a2: POP 000001a3: PUSH2 0x01e4 000001a6: PUSH1 0x04 000001a8: DUP1 000001a9: CALLDATASIZE 000001aa: SUB 000001ab: PUSH1 0x20 000001ad: DUP2 000001ae: LT 000001af: ISZERO 000001b0: PUSH2 0x01b8 000001b3: JUMPI 000001b4: PUSH1 0x00 000001b6: DUP1 000001b7: REVERT 000001b8: JUMPDEST 000001b9: DUP2 000001ba: ADD 000001bb: SWAP1 000001bc: DUP1 000001bd: DUP1 000001be: CALLDATALOAD 000001bf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000001d4: AND 000001d5: SWAP1 000001d6: PUSH1 0x20 000001d8: ADD 000001d9: SWAP1 000001da: SWAP3 000001db: SWAP2 000001dc: SWAP1 000001dd: POP 000001de: POP 000001df: POP 000001e0: PUSH2 0x03dc 000001e3: JUMP 000001e4: JUMPDEST 000001e5: STOP 000001e6: JUMPDEST 000001e7: CALLVALUE 000001e8: DUP1 000001e9: ISZERO 000001ea: PUSH2 0x01f2 000001ed: JUMPI 000001ee: PUSH1 0x00 000001f0: DUP1 000001f1: REVERT 000001f2: JUMPDEST 000001f3: POP 000001f4: PUSH2 0x01fb 000001f7: PUSH2 0x0557 000001fa: JUMP 000001fb: JUMPDEST 000001fc: PUSH1 0x40 000001fe: MLOAD 000001ff: DUP1 00000200: DUP3 00000201: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000216: AND 00000217: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000022c: AND 0000022d: DUP2 0000022e: MSTORE 0000022f: PUSH1 0x20 00000231: ADD 00000232: SWAP2 00000233: POP 00000234: POP 00000235: PUSH1 0x40 00000237: MLOAD 00000238: DUP1 00000239: SWAP2 0000023a: SUB 0000023b: SWAP1 0000023c: RETURN 0000023d: JUMPDEST 0000023e: PUSH2 0x0245 00000241: PUSH2 0x05af 00000244: JUMP 00000245: JUMPDEST 00000246: PUSH2 0x0255 00000249: PUSH2 0x0250 0000024c: PUSH2 0x0647 0000024f: JUMP 00000250: JUMPDEST 00000251: PUSH2 0x0678 00000254: JUMP 00000255: JUMPDEST 00000256: JUMP 00000257: JUMPDEST 00000258: PUSH2 0x025f 0000025b: PUSH2 0x069e 0000025e: JUMP 0000025f: JUMPDEST 00000260: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000275: AND 00000276: CALLER 00000277: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000028c: AND 0000028d: EQ 0000028e: ISZERO 0000028f: PUSH2 0x02a0 00000292: JUMPI 00000293: PUSH2 0x029b 00000296: DUP2 00000297: PUSH2 0x06cf 0000029a: JUMP 0000029b: JUMPDEST 0000029c: PUSH2 0x02a9 0000029f: JUMP 000002a0: JUMPDEST 000002a1: PUSH2 0x02a8 000002a4: PUSH2 0x023d 000002a7: JUMP 000002a8: JUMPDEST 000002a9: JUMPDEST 000002aa: POP 000002ab: JUMP 000002ac: JUMPDEST 000002ad: PUSH2 0x02b4 000002b0: PUSH2 0x069e 000002b3: JUMP 000002b4: JUMPDEST 000002b5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000002ca: AND 000002cb: CALLER 000002cc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000002e1: AND 000002e2: EQ 000002e3: ISZERO 000002e4: PUSH2 0x0376 000002e7: JUMPI 000002e8: PUSH2 0x02f0 000002eb: DUP4 000002ec: PUSH2 0x06cf 000002ef: JUMP 000002f0: JUMPDEST 000002f1: PUSH1 0x00 000002f3: DUP4 000002f4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000309: AND 0000030a: DUP4 0000030b: DUP4 0000030c: PUSH1 0x40 0000030e: MLOAD 0000030f: DUP1 00000310: DUP4 00000311: DUP4 00000312: DUP1 00000313: DUP3 00000314: DUP5 00000315: CALLDATACOPY 00000316: DUP1 00000317: DUP4 00000318: ADD 00000319: SWAP3 0000031a: POP 0000031b: POP 0000031c: POP 0000031d: SWAP3 0000031e: POP 0000031f: POP 00000320: POP 00000321: PUSH1 0x00 00000323: PUSH1 0x40 00000325: MLOAD 00000326: DUP1 00000327: DUP4 00000328: SUB 00000329: DUP2 0000032a: DUP6 0000032b: GAS 0000032c: DELEGATECALL 0000032d: SWAP2 0000032e: POP 0000032f: POP 00000330: RETURNDATASIZE 00000331: DUP1 00000332: PUSH1 0x00 00000334: DUP2 00000335: EQ 00000336: PUSH2 0x035b 00000339: JUMPI 0000033a: PUSH1 0x40 0000033c: MLOAD 0000033d: SWAP2 0000033e: POP 0000033f: PUSH1 0x1f 00000341: NOT 00000342: PUSH1 0x3f 00000344: RETURNDATASIZE 00000345: ADD 00000346: AND 00000347: DUP3 00000348: ADD 00000349: PUSH1 0x40 0000034b: MSTORE 0000034c: RETURNDATASIZE 0000034d: DUP3 0000034e: MSTORE 0000034f: RETURNDATASIZE 00000350: PUSH1 0x00 00000352: PUSH1 0x20 00000354: DUP5 00000355: ADD 00000356: RETURNDATACOPY 00000357: PUSH2 0x0360 0000035a: JUMP 0000035b: JUMPDEST 0000035c: PUSH1 0x60 0000035e: SWAP2 0000035f: POP 00000360: JUMPDEST 00000361: POP 00000362: POP 00000363: SWAP1 00000364: POP 00000365: DUP1 00000366: ISZERO 00000367: ISZERO 00000368: PUSH2 0x0370 0000036b: JUMPI 0000036c: PUSH1 0x00 0000036e: DUP1 0000036f: REVERT 00000370: JUMPDEST 00000371: POP 00000372: PUSH2 0x037f 00000375: JUMP 00000376: JUMPDEST 00000377: PUSH2 0x037e 0000037a: PUSH2 0x023d 0000037d: JUMP 0000037e: JUMPDEST 0000037f: JUMPDEST 00000380: POP 00000381: POP 00000382: POP 00000383: JUMP 00000384: JUMPDEST 00000385: PUSH1 0x00 00000387: PUSH2 0x038e 0000038a: PUSH2 0x069e 0000038d: JUMP 0000038e: JUMPDEST 0000038f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003a4: AND 000003a5: CALLER 000003a6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003bb: AND 000003bc: EQ 000003bd: ISZERO 000003be: PUSH2 0x03d0 000003c1: JUMPI 000003c2: PUSH2 0x03c9 000003c5: PUSH2 0x0647 000003c8: JUMP 000003c9: JUMPDEST 000003ca: SWAP1 000003cb: POP 000003cc: PUSH2 0x03d9 000003cf: JUMP 000003d0: JUMPDEST 000003d1: PUSH2 0x03d8 000003d4: PUSH2 0x023d 000003d7: JUMP 000003d8: JUMPDEST 000003d9: JUMPDEST 000003da: SWAP1 000003db: JUMP 000003dc: JUMPDEST 000003dd: PUSH2 0x03e4 000003e0: PUSH2 0x069e 000003e3: JUMP 000003e4: JUMPDEST 000003e5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003fa: AND 000003fb: CALLER 000003fc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000411: AND 00000412: EQ 00000413: ISZERO 00000414: PUSH2 0x054b 00000417: JUMPI 00000418: PUSH1 0x00 0000041a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000042f: AND 00000430: DUP2 00000431: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000446: AND 00000447: EQ 00000448: ISZERO 00000449: ISZERO 0000044a: ISZERO 0000044b: PUSH2 0x049f 0000044e: JUMPI 0000044f: PUSH1 0x40 00000451: MLOAD 00000452: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000473: DUP2 00000474: MSTORE 00000475: PUSH1 0x04 00000477: ADD 00000478: DUP1 00000479: DUP1 0000047a: PUSH1 0x20 0000047c: ADD 0000047d: DUP3 0000047e: DUP2 0000047f: SUB 00000480: DUP3 00000481: MSTORE 00000482: PUSH1 0x36 00000484: DUP2 00000485: MSTORE 00000486: PUSH1 0x20 00000488: ADD 00000489: DUP1 0000048a: PUSH2 0x0824 0000048d: PUSH1 0x36 0000048f: SWAP2 00000490: CODECOPY 00000491: PUSH1 0x40 00000493: ADD 00000494: SWAP2 00000495: POP 00000496: POP 00000497: PUSH1 0x40 00000499: MLOAD 0000049a: DUP1 0000049b: SWAP2 0000049c: SUB 0000049d: SWAP1 0000049e: REVERT 0000049f: JUMPDEST 000004a0: PUSH32 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f 000004c1: PUSH2 0x04c8 000004c4: PUSH2 0x069e 000004c7: JUMP 000004c8: JUMPDEST 000004c9: DUP3 000004ca: PUSH1 0x40 000004cc: MLOAD 000004cd: DUP1 000004ce: DUP4 000004cf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004e4: AND 000004e5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004fa: AND 000004fb: DUP2 000004fc: MSTORE 000004fd: PUSH1 0x20 000004ff: ADD 00000500: DUP3 00000501: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000516: AND 00000517: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000052c: AND 0000052d: DUP2 0000052e: MSTORE 0000052f: PUSH1 0x20 00000531: ADD 00000532: SWAP3 00000533: POP 00000534: POP 00000535: POP 00000536: PUSH1 0x40 00000538: MLOAD 00000539: DUP1 0000053a: SWAP2 0000053b: SUB 0000053c: SWAP1 0000053d: LOG1 0000053e: PUSH2 0x0546 00000541: DUP2 00000542: PUSH2 0x071e 00000545: JUMP 00000546: JUMPDEST 00000547: PUSH2 0x0554 0000054a: JUMP 0000054b: JUMPDEST 0000054c: PUSH2 0x0553 0000054f: PUSH2 0x023d 00000552: JUMP 00000553: JUMPDEST 00000554: JUMPDEST 00000555: POP 00000556: JUMP 00000557: JUMPDEST 00000558: PUSH1 0x00 0000055a: PUSH2 0x0561 0000055d: PUSH2 0x069e 00000560: JUMP 00000561: JUMPDEST 00000562: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000577: AND 00000578: CALLER 00000579: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000058e: AND 0000058f: EQ 00000590: ISZERO 00000591: PUSH2 0x05a3 00000594: JUMPI 00000595: PUSH2 0x059c 00000598: PUSH2 0x069e 0000059b: JUMP 0000059c: JUMPDEST 0000059d: SWAP1 0000059e: POP 0000059f: PUSH2 0x05ac 000005a2: JUMP 000005a3: JUMPDEST 000005a4: PUSH2 0x05ab 000005a7: PUSH2 0x023d 000005aa: JUMP 000005ab: JUMPDEST 000005ac: JUMPDEST 000005ad: SWAP1 000005ae: JUMP 000005af: JUMPDEST 000005b0: PUSH2 0x05b7 000005b3: PUSH2 0x069e 000005b6: JUMP 000005b7: JUMPDEST 000005b8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000005cd: AND 000005ce: CALLER 000005cf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000005e4: AND 000005e5: EQ 000005e6: ISZERO 000005e7: ISZERO 000005e8: ISZERO 000005e9: PUSH2 0x063d 000005ec: JUMPI 000005ed: PUSH1 0x40 000005ef: MLOAD 000005f0: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000611: DUP2 00000612: MSTORE 00000613: PUSH1 0x04 00000615: ADD 00000616: DUP1 00000617: DUP1 00000618: PUSH1 0x20 0000061a: ADD 0000061b: DUP3 0000061c: DUP2 0000061d: SUB 0000061e: DUP3 0000061f: MSTORE 00000620: PUSH1 0x32 00000622: DUP2 00000623: MSTORE 00000624: PUSH1 0x20 00000626: ADD 00000627: DUP1 00000628: PUSH2 0x07f2 0000062b: PUSH1 0x32 0000062d: SWAP2 0000062e: CODECOPY 0000062f: PUSH1 0x40 00000631: ADD 00000632: SWAP2 00000633: POP 00000634: POP 00000635: PUSH1 0x40 00000637: MLOAD 00000638: DUP1 00000639: SWAP2 0000063a: SUB 0000063b: SWAP1 0000063c: REVERT 0000063d: JUMPDEST 0000063e: PUSH2 0x0645 00000641: PUSH2 0x074d 00000644: JUMP 00000645: JUMPDEST 00000646: JUMP 00000647: JUMPDEST 00000648: PUSH1 0x00 0000064a: DUP1 0000064b: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc 0000066c: PUSH1 0x00 0000066e: SHL 0000066f: SWAP1 00000670: POP 00000671: DUP1 00000672: SLOAD 00000673: SWAP2 00000674: POP 00000675: POP 00000676: SWAP1 00000677: JUMP 00000678: JUMPDEST 00000679: CALLDATASIZE 0000067a: PUSH1 0x00 0000067c: DUP1 0000067d: CALLDATACOPY 0000067e: PUSH1 0x00 00000680: DUP1 00000681: CALLDATASIZE 00000682: PUSH1 0x00 00000684: DUP5 00000685: GAS 00000686: DELEGATECALL 00000687: RETURNDATASIZE 00000688: PUSH1 0x00 0000068a: DUP1 0000068b: RETURNDATACOPY 0000068c: DUP1 0000068d: PUSH1 0x00 0000068f: DUP2 00000690: EQ 00000691: PUSH2 0x0699 00000694: JUMPI 00000695: RETURNDATASIZE 00000696: PUSH1 0x00 00000698: RETURN 00000699: JUMPDEST 0000069a: RETURNDATASIZE 0000069b: PUSH1 0x00 0000069d: REVERT 0000069e: JUMPDEST 0000069f: PUSH1 0x00 000006a1: DUP1 000006a2: PUSH32 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103 000006c3: PUSH1 0x00 000006c5: SHL 000006c6: SWAP1 000006c7: POP 000006c8: DUP1 000006c9: SLOAD 000006ca: SWAP2 000006cb: POP 000006cc: POP 000006cd: SWAP1 000006ce: JUMP 000006cf: JUMPDEST 000006d0: PUSH2 0x06d8 000006d3: DUP2 000006d4: PUSH2 0x074f 000006d7: JUMP 000006d8: JUMPDEST 000006d9: DUP1 000006da: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006ef: AND 000006f0: PUSH32 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b 00000711: PUSH1 0x40 00000713: MLOAD 00000714: PUSH1 0x40 00000716: MLOAD 00000717: DUP1 00000718: SWAP2 00000719: SUB 0000071a: SWAP1 0000071b: LOG2 0000071c: POP 0000071d: JUMP 0000071e: JUMPDEST 0000071f: PUSH1 0x00 00000721: PUSH32 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103 00000742: PUSH1 0x00 00000744: SHL 00000745: SWAP1 00000746: POP 00000747: DUP2 00000748: DUP2 00000749: SSTORE 0000074a: POP 0000074b: POP 0000074c: JUMP 0000074d: JUMPDEST 0000074e: JUMP 0000074f: JUMPDEST 00000750: PUSH2 0x0758 00000753: DUP2 00000754: PUSH2 0x07de 00000757: JUMP 00000758: JUMPDEST 00000759: ISZERO 0000075a: ISZERO 0000075b: PUSH2 0x07af 0000075e: JUMPI 0000075f: PUSH1 0x40 00000761: MLOAD 00000762: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000783: DUP2 00000784: MSTORE 00000785: PUSH1 0x04 00000787: ADD 00000788: DUP1 00000789: DUP1 0000078a: PUSH1 0x20 0000078c: ADD 0000078d: DUP3 0000078e: DUP2 0000078f: SUB 00000790: DUP3 00000791: MSTORE 00000792: PUSH1 0x3b 00000794: DUP2 00000795: MSTORE 00000796: PUSH1 0x20 00000798: ADD 00000799: DUP1 0000079a: PUSH2 0x085a 0000079d: PUSH1 0x3b 0000079f: SWAP2 000007a0: CODECOPY 000007a1: PUSH1 0x40 000007a3: ADD 000007a4: SWAP2 000007a5: POP 000007a6: POP 000007a7: PUSH1 0x40 000007a9: MLOAD 000007aa: DUP1 000007ab: SWAP2 000007ac: SUB 000007ad: SWAP1 000007ae: REVERT 000007af: JUMPDEST 000007b0: PUSH1 0x00 000007b2: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc 000007d3: PUSH1 0x00 000007d5: SHL 000007d6: SWAP1 000007d7: POP 000007d8: DUP2 000007d9: DUP2 000007da: SSTORE 000007db: POP 000007dc: POP 000007dd: JUMP 000007de: JUMPDEST 000007df: PUSH1 0x00 000007e1: DUP1 000007e2: DUP3 000007e3: EXTCODESIZE 000007e4: SWAP1 000007e5: POP 000007e6: PUSH1 0x00 000007e8: DUP2 000007e9: GT 000007ea: SWAP2 000007eb: POP 000007ec: POP 000007ed: SWAP2 000007ee: SWAP1 000007ef: POP 000007f0: JUMP 000007f1: INVALID 000007f2: NUMBER 000007f3: PUSH2 0x6e6e 000007f6: PUSH16 0x742063616c6c2066616c6c6261636b20 00000807: PUSH7 0x756e6374696f6e 0000080f: KECCAK256 00000810: PUSH7 0x726f6d20746865 00000818: KECCAK256 00000819: PUSH17 0x726f78792061646d696e43616e6e6f7420 0000082b: PUSH4 0x68616e67 00000830: PUSH6 0x207468652061 00000837: PUSH5 0x6d696e206f 0000083d: PUSH7 0x20612070726f78 00000845: PUSH26 0x20746f20746865207a65726f206164647265737343616e6e6f74 00000860: KECCAK256 00000861: PUSH20 0x657420612070726f787920696d706c656d656e74 00000876: PUSH2 0x7469 00000879: PUSH16 0x6e20746f2061206e6f6e2d636f6e7472 0000088a: PUSH2 0x6374 0000088d: KECCAK256 0000088e: PUSH2 0x6464 00000891: PUSH19 0x657373a165627a7a723058203a61cbfff803b0 000008a5: MSTORE8 000008a6: UNKNOWN(0xD8) 000008a7: RETURN 000008a8: SWAP8 000008a9: UNKNOWN(0xCF) 000008aa: SWAP6 000008ab: UNKNOWN(0xCF) 000008ac: LOG0 000008ad: UNKNOWN(0xC8) 000008ae: UNKNOWN(0xC5) 000008af: RETURNDATACOPY 000008b0: CALL 000008b1: UNKNOWN(0x2C) 000008b2: UNKNOWN(0xE9) 000008b3: UNKNOWN(0x21) 000008b4: UNKNOWN(0xC5) 000008b5: UNKNOWN(0xD4) 000008b6: DUP5 000008b7: UNKNOWN(0xB2) 000008b8: PUSH22
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | upgradeability | detector | Untrusted DELEGATECALL target reachable | 55 | no | no |
viewtrace_id: 0x7b754e815e5b8f269abf34942890f3a31a734925506ad27b04b291cf5e375e0b
call_targets:
0xc186e6f0163e21be057e95aa135edd52508d14d3
target_varies:
no
classification:
constant_target
validation_json{
"sink": "DELEGATECALL",
"errors": 0,
"status": "sink_reached",
"attempts": 2,
"trace_id": "0x7b754e815e5b8f269abf34942890f3a31a734925506ad27b04b291cf5e375e0b",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xc186e6f0163e21be057e95aa135edd52508d14d3"
],
"matched_probe": null,
"target_varies": false,
"classification": "constant_target"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x3659cfe6",
"selector": "0x3659cfe6",
"calldata_variants": [
"0x3659cfe6",
"0x3659cfe60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4f1ef286",
"selector": "0x4f1ef286",
"calldata_variants": [
"0x4f1ef286",
"0x4f1ef2860000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x5c60da1b",
"selector": "0x5c60da1b",
"calldata_variants": [
"0x5c60da1b",
"0x5c60da1b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8f283970",
"selector": "0x8f283970",
"calldata_variants": [
"0x8f283970",
"0x8f2839700000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf851a440",
"selector": "0xf851a440",
"calldata_variants": [
"0xf851a440",
"0xf851a4400000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 812,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
},
{
"pc": 1670,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
}
],
"guards_detected": [
{
"pc": 630,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 715,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 933,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1019,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1400,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1486,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"delegatecall_count": 2,
"untrusted_delegatecall_count": 2
}
|
| medium | upgradeability | cast | DELEGATECALL present | 80 | no | — |
viewevidence_json{
"notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
"delegatecall_count": 2
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0x0714228b9aca0fe43340fc4dac4e571f92a5cf9e956a7ae9219f104e80b7c6bc
call_targets:
0x764c64b2a09b09acb100b80d8c505aa6a0302ef2
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x0714228b9aca0fe43340fc4dac4e571f92a5cf9e956a7ae9219f104e80b7c6bc",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x764c64b2a09b09acb100b80d8c505aa6a0302ef2"
],
"matched_probe": null,
"target_varies": false,
"classification": "constant_target"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x3659cfe6",
"selector": "0x3659cfe6",
"calldata_variants": [
"0x3659cfe6",
"0x3659cfe60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4f1ef286",
"selector": "0x4f1ef286",
"calldata_variants": [
"0x4f1ef286",
"0x4f1ef2860000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x5c60da1b",
"selector": "0x5c60da1b",
"calldata_variants": [
"0x5c60da1b",
"0x5c60da1b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8f283970",
"selector": "0x8f283970",
"calldata_variants": [
"0x8f283970",
"0x8f2839700000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf851a440",
"selector": "0xf851a440",
"calldata_variants": [
"0xf851a440",
"0xf851a4400000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2224,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 1,
"guards_detected": [
{
"pc": 630,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 715,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 933,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1019,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1400,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1486,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"untrusted_call_count": 1
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0x0714228b9aca0fe43340fc4dac4e571f92a5cf9e956a7ae9219f104e80b7c6bc
call_targets:
0x764c64b2a09b09acb100b80d8c505aa6a0302ef2
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x0714228b9aca0fe43340fc4dac4e571f92a5cf9e956a7ae9219f104e80b7c6bc",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x764c64b2a09b09acb100b80d8c505aa6a0302ef2"
],
"matched_probe": null,
"target_varies": false,
"classification": "constant_target"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x3659cfe6",
"selector": "0x3659cfe6",
"calldata_variants": [
"0x3659cfe6",
"0x3659cfe60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4f1ef286",
"selector": "0x4f1ef286",
"calldata_variants": [
"0x4f1ef286",
"0x4f1ef2860000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x5c60da1b",
"selector": "0x5c60da1b",
"calldata_variants": [
"0x5c60da1b",
"0x5c60da1b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8f283970",
"selector": "0x8f283970",
"calldata_variants": [
"0x8f283970",
"0x8f2839700000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf851a440",
"selector": "0xf851a440",
"calldata_variants": [
"0xf851a440",
"0xf851a4400000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2224,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 1,
"guards_detected": [
{
"pc": 630,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 715,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 933,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1019,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1400,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1486,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
}
|
| medium | other | codex | External CALLs to computed targets with possible ETH value | 75 | no | — |
viewevidence_json{
"evidence": "Calls at pcs 0xf98/0x1257/0x1308/0x1354/0x1779 are CALL with computed target/value; detector flagged untrusted CALL target/value and ETH value transfer possible.",
"locations": [
"pc:0xf98",
"pc:0x1257",
"pc:0x1308",
"pc:0x1354",
"pc:0x1779"
],
"recommendation": "Restrict CALL targets/values (allowlists or fixed addresses), add explicit access control for privileged flows, and consider reentrancy guards around external value-carrying calls.",
"exploit_scenario": "If any publicly reachable function allows attacker-controlled inputs to influence the CALL target/value, an attacker could force arbitrary external calls or ETH transfers. This could be used to drain funds or reenter if state changes occur after the call. Target/value control is uncertain from bytecode alone, but callsites show computed targets/values and no guards were detected."
}
|
| low | access_control | codex | State writes to fixed storage slots with no detected guards | 65 | no | — |
viewevidence_json{
"evidence": "SSTORE ops at pc 0xb4e (slot 0x0), pc 0xd1c (slot 0x4b), pc 0xd2b (slot 0x2c68af0bb140000); auth.guards list is empty in artifact.",
"locations": [
"pc:0xb4e",
"pc:0xd1c",
"pc:0xd2b"
],
"recommendation": "Verify that all functions reaching these SSTOREs enforce appropriate access control (e.g., onlyOwner/admin checks) and that initialization is properly locked.",
"exploit_scenario": "Storage slots 0x0, 0x4b, and 0x2c68af0bb140000 are written (SSTORE). If these slots hold privileged configuration (e.g., owner/admin parameters or critical settings), and functions are externally callable, any user could modify them. The bytecode analysis did not detect guard patterns, so access control is uncertain."
}
|