TW
Tripwire
Find contracts. Test them. Review real vulns.

Analysis Run

019bb490-f3b0-72b8-bc22-2e4219ff2cd1

complete
Chain ID
1
Address
Block Number
Created
Mon, Jan 12, 2026 11:35 PM
Review Summary

What survived the funnel

Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?

Confirmed
0
Validated
0
Source
Verified
Review Backing
Present
Best current signal
Untrusted DELEGATECALL target reachable
crit 0 high 0 proxy context implementation known
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
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

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: yes confirmed
Verified Source: yes
Proxy evidence
{
    "method": "etherscan+onchain",
    "status": "confirmed",
    "etherscan_hint": {
        "source": "etherscan",
        "etherscan": {
            "proxy_flag": true,
            "implementation": "0xc186e6f0163e21be057e95aa135edd52508d14d3"
        }
    },
    "implementation": "0xc186e6f0163e21be057e95aa135edd52508d14d3",
    "onchain_method": "eip1967"
}

Slither

tool.slither
Status
complete
Attempts
1 / 2
Findings
0
Solc
0.5.0 (solc-select)
View stderr
'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
Metadata
{
    "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"
}

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
2
No findings?
no
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.
View stdout
{"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"]}]}
View stderr
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
Metadata
{
    "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
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
2
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
1
EXT*/BALANCE
1
Total opcodes
932
Flags
delegatecall_present
View cast disassembly output
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

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high upgradeability detector Untrusted DELEGATECALL target reachable 55 no no
view
trace_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
view
evidence_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
view
trace_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
view
trace_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
view
evidence_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
view
evidence_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."
}