d8602a45-4bec-466d-8f05-3238a798ab2d
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 30743 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 75454 | artifact.fetch | complete | 1 / 3 | 2 weeks ago |
| 75455 | tool.cast_disasm | complete | 1 / 3 | 2 weeks ago |
| 75456 | analysis.bundle | complete | 1 / 3 | 2 weeks ago |
| 75457 | capability.graph | complete | 1 / 3 | 2 weeks ago |
| 75458 | detector.run | complete | 1 / 3 | 2 weeks ago |
| 75459 | validation.fork | complete | 1 / 3 | 2 weeks ago |
No slither job recorded yet.
[codex:1248531] OpenAI Codex v0.77.0 (research preview)
[codex:1248531] --------
[codex:1248531] workdir: /tmp/codex-multi-uog3g8zh
[codex:1248531] model: gpt-5.2-codex
[codex:1248531] provider: openai
[codex:1248531] approval: never
[codex:1248531] sandbox: read-only
[codex:1248531] reasoning effort: xhigh
[codex:1248531] reasoning summaries: auto
[codex:1248531] session id: 019b70c4-3a08-7ac1-a297-99cf8eb13bd6
[codex:1248531] --------
[codex:1248531] user
[codex:1248531] You are a security auditor. You are given EVM runtime bytecode (and possibly a disassembly) for a contract with NO verified source.
[codex:1248531] This is best-effort. Do not hallucinate: only flag issues when there's a concrete, explainable angle from bytecode/disasm patterns.
[codex:1248531]
[codex:1248531] You MUST read the full `BYTECODE_BUNDLE.txt` before concluding.
[codex:1248531]
[codex:1248531] Output MUST be valid JSON matching the provided schema.
[codex:1248531] - If you cannot identify a concrete issue from bytecode/disasm alone: set no_findings=true and findings=[].
[codex:1248531] - Otherwise: include findings with severity/category/title/evidence and point locations to BYTECODE_BUNDLE.txt line ranges when possible.
[codex:1248531]
[codex:1248531] Output constraints (IMPORTANT):
[codex:1248531] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1248531] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1248531] mcp startup: no servers
[codex:1248531]
[codex:1248531] thinking
[codex:1248531] **Preparing to read BYTECODE_BUNDLE.txt**
[codex:1248531] exec
[codex:1248531] /bin/bash -lc 'cat BYTECODE_BUNDLE.txt' in /tmp/codex-multi-uog3g8zh succeeded in 5ms:
[codex:1248531] Runtime bytecode bundle for best-effort auditing.
[codex:1248531] Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:1248531]
[codex:1248531] FILE: runtime_bytecode.hex
[codex:1248531] 0x608060405234801561001057600080fd5b50600436106100be5760003560e01c8063715018a6116100765780639e96a23a1161005b5780639e96a23a1461017b578063b2a02ff11461019b578063f2fde38b146101ae57600080fd5b8063715018a6146101555780638da5cb5b1461015d57600080fd5b80634c0f38c2116100a75780634c0f38c2146100eb578063512d00d0146101075780636d4ce63c1461011057600080fd5b80630de05659146100c3578063379607f5146100d8575b600080fd5b6100d66100d1366004610967565b6101c1565b005b6100d66100e6366004610993565b6101cf565b6100f460025481565b6040519081526020015b60405180910390f35b6100f460045481565b6001546101309073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100fe565b6100d66101dc565b60005473ffffffffffffffffffffffffffffffffffffffff16610130565b6003546101309073ffffffffffffffffffffffffffffffffffffffff1681565b6100d66101a93660046109ac565b6101f0565b6100d66101bc3660046109ed565b610285565b6101cb828261033e565b5050565b6101d9338261033e565b50565b6101e46103f7565b6101ee6000610478565b565b6101f86103f7565b61021973ffffffffffffffffffffffffffffffffffffffff841683836104ed565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f0eaaadac87f199d46d8127736588b675533df9cfc4aee1f85c448ff39fc01c818360405161027891815260200190565b60405180910390a3505050565b61028d6103f7565b73ffffffffffffffffffffffffffffffffffffffff8116610335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6101d981610478565b6001546103639073ffffffffffffffffffffffffffffffffffffffff163330846105c6565b6000600254600454836103769190610a11565b6103809190610a75565b6003549091506103a79073ffffffffffffffffffffffffffffffffffffffff1684836104ed565b604080518381526020810183905273ffffffffffffffffffffffffffffffffffffffff85169133917f2f6639d24651730c7bf57c95ddbf96d66d11477e4ec626876f92c22e5f365e689101610278565b60005473ffffffffffffffffffffffffffffffffffffffff1633146101ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161032c565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526105c19084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915261062a565b505050565b60405173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044820152606481018290526106249085907f23b872dd000000000000000000000000000000000000000000000000000000009060840161053f565b50505050565b600061068c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166107399092919063ffffffff16565b90508051600014806106ad5750808060200190518101906106ad9190610ab0565b6105c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161032c565b60606107488484600085610750565b949350505050565b6060824710156107e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161032c565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161080b9190610afe565b60006040518083038185875af1925050503d8060008114610848576040519150601f19603f3d011682016040523d82523d6000602084013e61084d565b606091505b509150915061085e87838387610869565b979650505050505050565b606083156108fc5782516108f55773ffffffffffffffffffffffffffffffffffffffff85163b6108f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161032c565b5081610748565b61074883838151156109115781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032c9190610b1a565b73ffffffffffffffffffffffffffffffffffffffff811681146101d957600080fd5b6000806040838503121561097a57600080fd5b823561098581610945565b946020939093013593505050565b6000602082840312156109a557600080fd5b5035919050565b6000806000606084860312156109c157600080fd5b83356109cc81610945565b925060208401356109dc81610945565b929592945050506040919091013590565b6000602082840312156109ff57600080fd5b8135610a0a81610945565b9392505050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610a70577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500290565b600082610aab577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600060208284031215610ac257600080fd5b81518015158114610a0a57600080fd5b60005b83811015610aed578181015183820152602001610ad5565b838111156106245750506000910152565b60008251610b10818460208701610ad2565b9190910192915050565b6020815260008251806020840152610b39816040850160208701610ad2565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea26469706673582212203d282628085128265ed8b3df32d20a1b4ec2fce98becb21ccbd53c2ad6173c0a64736f6c63430008090033
[codex:1248531]
[codex:1248531] thinking
[codex:1248531] **Analyzing contract bytecode and functions**
[codex:1248531]
[codex:1248531] I'm examining bytecode selectors and revert strings to infer that this contract follows OpenZeppelin's Ownable and SafeERC20 patterns, likely involving token transfers and ownership controls. I plan to write a Python script to disassemble the bytecode offline, identify functions, and check for potential vulnerabilities like unprotected external calls or improper token rescues.
[codex:1248531] exec
[codex:1248531] /bin/bash -lc "python - <<'PY'
[codex:1248531] from binascii import unhexlify
[codex:1248531] import textwrap
[codex:1248531] hexstr=open('BYTECODE_BUNDLE.txt').read().split('0x',1)[1].strip() # naive? actually contains multiple; but after 0x at runtime
[codex:1248531] # Actually file content includes note + file and bytecode in same line. We'll parse line containing 0x
[codex:1248531] for line in open('BYTECODE_BUNDLE.txt'):
[codex:1248531] if line.startswith('0x'):
[codex:1248531] hexstr=line.strip()[2:]
[codex:1248531] break
[codex:1248531] else:
[codex:1248531] raise SystemExit('no bytecode')
[codex:1248531] code=unhexlify(hexstr)
[codex:1248531] # opcode map
[codex:1248531] opcodes={
[codex:1248531] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1248531] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:1248531] 0x20:'SHA3',
[codex:1248531] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1248531] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1248531] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:1248531] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1248531] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1248531] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1248531] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1248531] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT',
[codex:1248531] }
[codex:1248531]
[codex:1248531] i=0
[codex:1248531] out=[]
[codex:1248531] while i<len(code):
[codex:1248531] op=code[i]
[codex:1248531] name=opcodes.get(op, f'OP{op:02x}')
[codex:1248531] if 0x60<=op<=0x7f:
[codex:1248531] n=op-0x5f
[codex:1248531] data=code[i+1:i+1+n]
[codex:1248531] out.append(f'{i:04x}: {name} 0x{data.hex()}')
[codex:1248531] i+=1+n
[codex:1248531] else:
[codex:1248531] out.append(f'{i:04x}: {name}')
[codex:1248531] i+=1
[codex:1248531] # print first 300 lines for view
[codex:1248531] print('\\n'.join(out[:400]))
[codex:1248531] PY" in /tmp/codex-multi-uog3g8zh succeeded in 27ms:
[codex:1248531] 0000: PUSH1 0x80
[codex:1248531] 0002: PUSH1 0x40
[codex:1248531] 0004: MSTORE
[codex:1248531] 0005: CALLVALUE
[codex:1248531] 0006: DUP1
[codex:1248531] 0007: ISZERO
[codex:1248531] 0008: PUSH2 0x0010
[codex:1248531] 000b: JUMPI
[codex:1248531] 000c: PUSH1 0x00
[codex:1248531] 000e: DUP1
[codex:1248531] 000f: REVERT
[codex:1248531] 0010: JUMPDEST
[codex:1248531] 0011: POP
[codex:1248531] 0012: PUSH1 0x04
[codex:1248531] 0014: CALLDATASIZE
[codex:1248531] 0015: LT
[codex:1248531] 0016: PUSH2 0x00be
[codex:1248531] 0019: JUMPI
[codex:1248531] 001a: PUSH1 0x00
[codex:1248531] 001c: CALLDATALOAD
[codex:1248531]
[codex:1248531] thinking
[codex:1248531] **Analyzing contract disassembly**
[codex:1248531] exec
[codex:1248531] /bin/bash -lc "python - <<'PY'
[codex:1248531] from binascii import unhexlify
[codex:1248531] hexstr=None
[codex:1248531] for line in open('BYTECODE_BUNDLE.txt'):
[codex:1248531] if line.startswith('0x'):
[codex:1248531] hexstr=line.strip()[2:]
[codex:1248531] break
[codex:1248531] code=unhexlify(hexstr)
[codex:1248531] opcodes={
[codex:1248531] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1248531] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:1248531] 0x20:'SHA3',
[codex:1248531] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1248531] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1248531] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:1248531] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1248531] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1248531] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1248531] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1248531] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT',
[codex:1248531] }
[codex:1248531]
[codex:1248531] def disasm(start=0, end=None):
[codex:1248531] i=0
[codex:1248531] out=[]
[codex:1248531] while i<len(code):
[codex:1248531] if i<start:
[codex:1248531] op=code[i]
[codex:1248531] if 0x60<=op<=0x7f:
[codex:1248531] i+=1+(op-0x5f)
[codex:1248531] else:
[codex:1248531] i+=1
[codex:1248531] continue
[codex:1248531] if end is not None and i>=end:
[codex:1248531] break
[codex:1248531] op=code[i]
[codex:1248531] name=opcodes.get(op, f'OP{op:02x}')
[codex:1248531] if 0x60<=op<=0x7f:
[codex:1248531] n=op-0x5f
[codex:1248531] data=code[i+1:i+1+n]
[codex:1248531] out.append(f'{i:04x}: {name} 0x{data.hex()}')
[codex:1248531] i+=1+n
[codex:1248531] else:
[codex:1248531] out.append(f'{i:04x}: {name}')
[codex:1248531] i+=1
[codex:1248531] return out
[codex:1248531]
[codex:1248531] # print section around 0x03a0-0x0500
[codex:1248531] print('\\n'.join(disasm(0x03a0, 0x0500)))
[codex:1248531] PY" in /tmp/codex-multi-uog3g8zh succeeded in 18ms:
[codex:1248531] 03a0: AND
[codex:1248531] 03a1: DUP5
[codex:1248531] 03a2: DUP4
[codex:1248531] 03a3: PUSH2 0x04ed
[codex:1248531] 03a6: JUMP
[codex:1248531] 03a7: JUMPDEST
[codex:1248531] 03a8: PUSH1 0x40
[codex:1248531] 03aa: DUP1
[codex:1248531] 03ab: MLOAD
[codex:1248531] 03ac: DUP4
[codex:1248531] 03ad: DUP2
[codex:1248531] 03ae: MSTORE
[codex:1248531] 03af: PUSH1 0x20
[codex:1248531] 03b1: DUP2
[codex:1248531] 03b2: ADD
[codex:1248531] 03b3: DUP4
[codex:1248531] 03b4: SWAP1
[codex:1248531] 03b5: MSTORE
[codex:1248531] 03b6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
[codex:1248531] 03cb: DUP6
[codex:1248531]
[codex:1248531] thinking
[codex:1248531] **Continuing exploration from checkpoint**
[codex:1248531] exec
[codex:1248531] /bin/bash -lc "python - <<'PY'
[codex:1248531] from binascii import unhexlify
[codex:1248531] hexstr=None
[codex:1248531] for line in open('BYTECODE_BUNDLE.txt'):
[codex:1248531] if line.startswith('0x'):
[codex:1248531] hexstr=line.strip()[2:]
[codex:1248531] break
[codex:1248531] code=unhexlify(hexstr)
[codex:1248531] opcodes={
[codex:1248531] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1248531] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:1248531] 0x20:'SHA3',
[codex:1248531] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1248531] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1248531] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:1248531] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1248531] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1248531] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1248531] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1248531] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT',
[codex:1248531] }
[codex:1248531]
[codex:1248531] # disasm from 0x04ed onward
[codex:1248531]
[codex:1248531] def disasm(start=0, end=None):
[codex:1248531] i=0
[codex:1248531] out=[]
[codex:1248531] while i<len(code):
[codex:1248531] if i<start:
[codex:1248531] op=code[i]
[codex:1248531] if 0x60<=op<=0x7f:
[codex:1248531] i+=1+(op-0x5f)
[codex:1248531] else:
[codex:1248531] i+=1
[codex:1248531] continue
[codex:1248531] if end is not None and i>=end:
[codex:1248531] break
[codex:1248531] op=code[i]
[codex:1248531] name=opcodes.get(op, f'OP{op:02x}')
[codex:1248531] if 0x60<=op<=0x7f:
[codex:1248531] n=op-0x5f
[codex:1248531] data=code[i+1:i+1+n]
[codex:1248531] out.append(f'{i:04x}: {name} 0x{data.hex()}')
[codex:1248531] i+=1+n
[codex:1248531] else:
[codex:1248531] out.append(f'{i:04x}: {name}')
[codex:1248531] i+=1
[codex:1248531] return out
[codex:1248531]
[codex:1248531] print('\\n'.join(disasm(0x04ed, 0x0650)))
[codex:1248531] PY" in /tmp/codex-multi-uog3g8zh succeeded in 26ms:
[codex:1248531] 04ed: JUMPDEST
[codex:1248531] 04ee: PUSH1 0x40
[codex:1248531] 04f0: MLOAD
[codex:1248531] 04f1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
[codex:1248531] 0506: DUP4
[codex:1248531] 0507: AND
[codex:1248531] 0508: PUSH1 0x24
[codex:1248531] 050a: DUP3
[codex:1248531] 050b: ADD
[codex:1248531] 050c: MSTORE
[codex:1248531] 050d: PUSH1 0x44
[codex:1248531] 050f: DUP2
[codex:1248531] 0510: ADD
[codex:1248531] 0511: DUP3
[codex:1248531] 0512: SWAP1
[codex:1248531] 0513: MSTORE
[codex:1248531] 0514: PUSH2 0x05c1
[codex:1248531] 0517: SWAP1
[codex:1248531] 0518: DUP5
[codex:1248531] 0519: SWAP1
[codex:1248531]
[codex:1248531] thinking
[codex:1248531] **Proceeding with task**
[codex:1248531] exec
[codex:1248531] /bin/bash -lc "python - <<'PY'
[codex:1248531] from binascii import unhexlify
[codex:1248531] hexstr=None
[codex:1248531] for line in open('BYTECODE_BUNDLE.txt'):
[codex:1248531] if line.startswith('0x'):
[codex:1248531] hexstr=line.strip()[2:]
[codex:1248531] break
[codex:1248531] code=unhexlify(hexstr)
[codex:1248531] opcodes={
[codex:1248531] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1248531] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:1248531] 0x20:'SHA3',
[codex:1248531] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1248531] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1248531] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:1248531] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1248531] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1248531] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1248531] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1248531] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT',
[codex:1248531] }
[codex:1248531]
[codex:1248531] # disasm from 0x062a onward
[codex:1248531]
[codex:1248531] def disasm(start=0, end=None):
[codex:1248531] i=0
[codex:1248531] out=[]
[codex:1248531] while i<len(code):
[codex:1248531] if i<start:
[codex:1248531] op=code[i]
[codex:1248531] if 0x60<=op<=0x7f:
[codex:1248531] i+=1+(op-0x5f)
[codex:1248531] else:
[codex:1248531] i+=1
[codex:1248531] continue
[codex:1248531] if end is not None and i>=end:
[codex:1248531] break
[codex:1248531] op=code[i]
[codex:1248531] name=opcodes.get(op, f'OP{op:02x}')
[codex:1248531] if 0x60<=op<=0x7f:
[codex:1248531] n=op-0x5f
[codex:1248531] data=code[i+1:i+1+n]
[codex:1248531] out.append(f'{i:04x}: {name} 0x{data.hex()}')
[codex:1248531] i+=1+n
[codex:1248531] else:
[codex:1248531] out.append(f'{i:04x}: {name}')
[codex:1248531] i+=1
[codex:1248531] return out
[codex:1248531]
[codex:1248531] print('\\n'.join(disasm(0x062a, 0x0850)))
[codex:1248531] PY" in /tmp/codex-multi-uog3g8zh succeeded in 23ms:
[codex:1248531] 062a: JUMPDEST
[codex:1248531] 062b: PUSH1 0x00
[codex:1248531] 062d: PUSH2 0x068c
[codex:1248531] 0630: DUP3
[codex:1248531] 0631: PUSH1 0x40
[codex:1248531] 0633: MLOAD
[codex:1248531] 0634: DUP1
[codex:1248531] 0635: PUSH1 0x40
[codex:1248531] 0637: ADD
[codex:1248531] 0638: PUSH1 0x40
[codex:1248531] 063a: MSTORE
[codex:1248531] 063b: DUP1
[codex:1248531] 063c: PUSH1 0x20
[codex:1248531] 063e: DUP2
[codex:1248531] 063f: MSTORE
[codex:1248531] 0640: PUSH1 0x20
[codex:1248531] 0642: ADD
[codex:1248531] 0643: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564
[codex:1248531] 0664: DUP2
[codex:1248531] 0665: MSTORE
[codex:1248531]
[codex:1248531] thinking
[codex:1248531] **Planning further disassembly**
[codex:1248531] exec
[codex:1248531] /bin/bash -lc "python - <<'PY'
[codex:1248531] from binascii import unhexlify
[codex:1248531] hexstr=None
[codex:1248531] for line in open('BYTECODE_BUNDLE.txt'):
[codex:1248531] if line.startswith('0x'):
[codex:1248531] hexstr=line.strip()[2:]
[codex:1248531] break
[codex:1248531] code=unhexlify(hexstr)
[codex:1248531] opcodes={
[codex:1248531] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1248531] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:1248531] 0x20:'SHA3',
[codex:1248531] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1248531] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1248531] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:1248531] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1248531] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1248531] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1248531] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1248531] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT',
[codex:1248531] }
[codex:1248531]
[codex:1248531]
[codex:1248531] def disasm(start=0, end=None):
[codex:1248531] i=0
[codex:1248531] out=[]
[codex:1248531] while i<len(code):
[codex:1248531] if i<start:
[codex:1248531] op=code[i]
[codex:1248531] if 0x60<=op<=0x7f:
[codex:1248531] i+=1+(op-0x5f)
[codex:1248531] else:
[codex:1248531] i+=1
[codex:1248531] continue
[codex:1248531] if end is not None and i>=end:
[codex:1248531] break
[codex:1248531] op=code[i]
[codex:1248531] name=opcodes.get(op, f'OP{op:02x}')
[codex:1248531] if 0x60<=op<=0x7f:
[codex:1248531] n=op-0x5f
[codex:1248531] data=code[i+1:i+1+n]
[codex:1248531] out.append(f'{i:04x}: {name} 0x{data.hex()}')
[codex:1248531] i+=1+n
[codex:1248531] else:
[codex:1248531] out.append(f'{i:04x}: {name}')
[codex:1248531] i+=1
[codex:1248531] return out
[codex:1248531]
[codex:1248531] print('\\n'.join(disasm(0x084d, 0x0b50)))
[codex:1248531] PY" in /tmp/codex-multi-uog3g8zh succeeded in 17ms:
[codex:1248531] 084d: JUMPDEST
[codex:1248531] 084e: POP
[codex:1248531] 084f: SWAP2
[codex:1248531] 0850: POP
[codex:1248531] 0851: SWAP2
[codex:1248531] 0852: POP
[codex:1248531] 0853: PUSH2 0x085e
[codex:1248531] 0856: DUP8
[codex:1248531] 0857: DUP4
[codex:1248531] 0858: DUP4
[codex:1248531] 0859: DUP8
[codex:1248531] 085a: PUSH2 0x0869
[codex:1248531] 085d: JUMP
[codex:1248531] 085e: JUMPDEST
[codex:1248531] 085f: SWAP8
[codex:1248531] 0860: SWAP7
[codex:1248531] 0861: POP
[codex:1248531] 0862: POP
[codex:1248531] 0863: POP
[codex:1248531] 0864: POP
[codex:1248531]
[codex:1248531]
[codex:1248531] thinking
[codex:1248531] **Analyzing function selectors and ABI decoding**
[codex:1248531] thinking
[codex:1248531] **Tracing stack behavior and token transfer logic**
[codex:1248531]
[codex:1248531] I'm carefully tracking stack operations across calls to understand how arguments flow for token transfers and events; this helps clarify how deposit and withdrawal functions operate and if access control applies properly. I’m parsing intricate EVM stack manipulations to map parameters to handler functions and then verifying if any critical state variables can be modified without protection.
[codex:1248531] exec
[codex:1248531] /bin/bash -lc "python - <<'PY'
[codex:1248531] from binascii import unhexlify
[codex:1248531] hexstr=None
[codex:1248531] for line in open('BYTECODE_BUNDLE.txt'):
[codex:1248531] if line.startswith('0x'):
[codex:1248531] hexstr=line.strip()[2:]
[codex:1248531] break
[codex:1248531] code=unhexlify(hexstr)
[codex:1248531] positions=[]
[codex:1248531] for i,b in enumerate(code):
[codex:1248531] if b==0x55: # SSTORE
[codex:1248531] positions.append(i)
[codex:1248531] print('SSTORE positions:', positions)
[codex:1248531] PY" in /tmp/codex-multi-uog3g8zh succeeded in 19ms:
[codex:1248531] SSTORE positions: [101, 1211]
[codex:1248531]
[codex:1248531] thinking
[codex:1248531] **Analyzing SSTORE positions in bytecode**
[codex:1248531] exec
[codex:1248531] /bin/bash -lc "python - <<'PY'
[codex:1248531] from binascii import unhexlify
[codex:1248531] hexstr=None
[codex:1248531] for line in open('BYTECODE_BUNDLE.txt'):
[codex:1248531] if line.startswith('0x'):
[codex:1248531] hexstr=line.strip()[2:]
[codex:1248531] break
[codex:1248531] code=unhexlify(hexstr)
[codex:1248531] # print opcodes around offset 0x60 to 0x70
[codex:1248531] start=0x60
[codex:1248531] end=0x80
[codex:1248531] opcodes={
[codex:1248531] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1248531] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:1248531] 0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1248531] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1248531] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:1248531] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1248531] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1248531] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1248531] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1248531] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT',
[codex:1248531] }
[codex:1248531]
[codex:1248531] i=start
[codex:1248531] while i<end:
[codex:1248531] op=code[i]
[codex:1248531] name=opcodes.get(op, f'OP{op:02x}')
[codex:1248531] if 0x60<=op<=0x7f:
[codex:1248531] n=op-0x5f
[codex:1248531] data=code[i+1:i+1+n]
[codex:1248531] print(f'{i:04x}: {name} 0x{data.hex()}')
[codex:1248531] i+=1+n
[codex:1248531] else:
[codex:1248531] print(f'{i:04x}: {name}')
[codex:1248531] i+=1
[codex:1248531] PY" in /tmp/codex-multi-uog3g8zh succeeded in 17ms:
[codex:1248531] 0060: XOR
[codex:1248531] 0061: OPa6
[codex:1248531] 0062: EQ
[codex:1248531] 0063: PUSH2 0x0155
[codex:1248531] 0066: JUMPI
[codex:1248531] 0067: DUP1
[codex:1248531] 0068: PUSH4 0x8da5cb5b
[codex:1248531] 006d: EQ
[codex:1248531] 006e: PUSH2 0x015d
[codex:1248531] 0071: JUMPI
[codex:1248531] 0072: PUSH1 0x00
[codex:1248531] 0074: DUP1
[codex:1248531] 0075: REVERT
[codex:1248531] 0076: JUMPDEST
[codex:1248531] 0077: DUP1
[codex:1248531] 0078: PUSH4 0x4c0f38c2
[codex:1248531] 007d: GT
[codex:1248531] 007e: PUSH2 0x00a7
[codex:1248531]
[codex:1248531] thinking
[codex:1248531] **Analyzing contract bytecode for vulnerabilities**
[codex:1248531] codex
[codex:1248531] {"no_findings":true,"summary":"Scanned runtime bytecode in BYTECODE_BUNDLE.txt; observed standard Ownable + SafeERC20 patterns for ownership and ERC20 transfers, with no concrete vulnerability signatures identifiable from the bytecode alone.","findings":[]}
[codex:1248531] tokens used
[codex:1248531] 64,792
[codex:1248531] {"no_findings":true,"summary":"Scanned runtime bytecode in BYTECODE_BUNDLE.txt; observed standard Ownable + SafeERC20 patterns for ownership and ERC20 transfers, with no concrete vulnerability signatures identifiable from the bytecode alone.","findings":[]}
{
"codex": {
"ran_at": "2025-12-30T19:43:58.134330+00:00",
"returncode": 0
},
"summary": "Scanned runtime bytecode in BYTECODE_BUNDLE.txt; observed standard Ownable + SafeERC20 patterns for ownership and ERC20 transfers, with no concrete vulnerability signatures identifiable from the bytecode alone.",
"raw_final": {
"summary": "Scanned runtime bytecode in BYTECODE_BUNDLE.txt; observed standard Ownable + SafeERC20 patterns for ownership and ERC20 transfers, with no concrete vulnerability signatures identifiable from the bytecode alone.",
"findings": [],
"no_findings": true
},
"no_findings": true,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: CALLVALUE 00000006: DUP1 00000007: ISZERO 00000008: PUSH2 0x0010 0000000b: JUMPI 0000000c: PUSH1 0x00 0000000e: DUP1 0000000f: REVERT 00000010: JUMPDEST 00000011: POP 00000012: PUSH1 0x04 00000014: CALLDATASIZE 00000015: LT 00000016: PUSH2 0x00be 00000019: JUMPI 0000001a: PUSH1 0x00 0000001c: CALLDATALOAD 0000001d: PUSH1 0xe0 0000001f: SHR 00000020: DUP1 00000021: PUSH4 0x715018a6 00000026: GT 00000027: PUSH2 0x0076 0000002a: JUMPI 0000002b: DUP1 0000002c: PUSH4 0x9e96a23a 00000031: GT 00000032: PUSH2 0x005b 00000035: JUMPI 00000036: DUP1 00000037: PUSH4 0x9e96a23a 0000003c: EQ 0000003d: PUSH2 0x017b 00000040: JUMPI 00000041: DUP1 00000042: PUSH4 0xb2a02ff1 00000047: EQ 00000048: PUSH2 0x019b 0000004b: JUMPI 0000004c: DUP1 0000004d: PUSH4 0xf2fde38b 00000052: EQ 00000053: PUSH2 0x01ae 00000056: JUMPI 00000057: PUSH1 0x00 00000059: DUP1 0000005a: REVERT 0000005b: JUMPDEST 0000005c: DUP1 0000005d: PUSH4 0x715018a6 00000062: EQ 00000063: PUSH2 0x0155 00000066: JUMPI 00000067: DUP1 00000068: PUSH4 0x8da5cb5b 0000006d: EQ 0000006e: PUSH2 0x015d 00000071: JUMPI 00000072: PUSH1 0x00 00000074: DUP1 00000075: REVERT 00000076: JUMPDEST 00000077: DUP1 00000078: PUSH4 0x4c0f38c2 0000007d: GT 0000007e: PUSH2 0x00a7 00000081: JUMPI 00000082: DUP1 00000083: PUSH4 0x4c0f38c2 00000088: EQ 00000089: PUSH2 0x00eb 0000008c: JUMPI 0000008d: DUP1 0000008e: PUSH4 0x512d00d0 00000093: EQ 00000094: PUSH2 0x0107 00000097: JUMPI 00000098: DUP1 00000099: PUSH4 0x6d4ce63c 0000009e: EQ 0000009f: PUSH2 0x0110 000000a2: JUMPI 000000a3: PUSH1 0x00 000000a5: DUP1 000000a6: REVERT 000000a7: JUMPDEST 000000a8: DUP1 000000a9: PUSH4 0x0de05659 000000ae: EQ 000000af: PUSH2 0x00c3 000000b2: JUMPI 000000b3: DUP1 000000b4: PUSH4 0x379607f5 000000b9: EQ 000000ba: PUSH2 0x00d8 000000bd: JUMPI 000000be: JUMPDEST 000000bf: PUSH1 0x00 000000c1: DUP1 000000c2: REVERT 000000c3: JUMPDEST 000000c4: PUSH2 0x00d6 000000c7: PUSH2 0x00d1 000000ca: CALLDATASIZE 000000cb: PUSH1 0x04 000000cd: PUSH2 0x0967 000000d0: JUMP 000000d1: JUMPDEST 000000d2: PUSH2 0x01c1 000000d5: JUMP 000000d6: JUMPDEST 000000d7: STOP 000000d8: JUMPDEST 000000d9: PUSH2 0x00d6 000000dc: PUSH2 0x00e6 000000df: CALLDATASIZE 000000e0: PUSH1 0x04 000000e2: PUSH2 0x0993 000000e5: JUMP 000000e6: JUMPDEST 000000e7: PUSH2 0x01cf 000000ea: JUMP 000000eb: JUMPDEST 000000ec: PUSH2 0x00f4 000000ef: PUSH1 0x02 000000f1: SLOAD 000000f2: DUP2 000000f3: JUMP 000000f4: JUMPDEST 000000f5: PUSH1 0x40 000000f7: MLOAD 000000f8: SWAP1 000000f9: DUP2 000000fa: MSTORE 000000fb: PUSH1 0x20 000000fd: ADD 000000fe: JUMPDEST 000000ff: PUSH1 0x40 00000101: MLOAD 00000102: DUP1 00000103: SWAP2 00000104: SUB 00000105: SWAP1 00000106: RETURN 00000107: JUMPDEST 00000108: PUSH2 0x00f4 0000010b: PUSH1 0x04 0000010d: SLOAD 0000010e: DUP2 0000010f: JUMP 00000110: JUMPDEST 00000111: PUSH1 0x01 00000113: SLOAD 00000114: PUSH2 0x0130 00000117: SWAP1 00000118: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000012d: AND 0000012e: DUP2 0000012f: JUMP 00000130: JUMPDEST 00000131: PUSH1 0x40 00000133: MLOAD 00000134: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000149: SWAP1 0000014a: SWAP2 0000014b: AND 0000014c: DUP2 0000014d: MSTORE 0000014e: PUSH1 0x20 00000150: ADD 00000151: PUSH2 0x00fe 00000154: JUMP 00000155: JUMPDEST 00000156: PUSH2 0x00d6 00000159: PUSH2 0x01dc 0000015c: JUMP 0000015d: JUMPDEST 0000015e: PUSH1 0x00 00000160: SLOAD 00000161: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000176: AND 00000177: PUSH2 0x0130 0000017a: JUMP 0000017b: JUMPDEST 0000017c: PUSH1 0x03 0000017e: SLOAD 0000017f: PUSH2 0x0130 00000182: SWAP1 00000183: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000198: AND 00000199: DUP2 0000019a: JUMP 0000019b: JUMPDEST 0000019c: PUSH2 0x00d6 0000019f: PUSH2 0x01a9 000001a2: CALLDATASIZE 000001a3: PUSH1 0x04 000001a5: PUSH2 0x09ac 000001a8: JUMP 000001a9: JUMPDEST 000001aa: PUSH2 0x01f0 000001ad: JUMP 000001ae: JUMPDEST 000001af: PUSH2 0x00d6 000001b2: PUSH2 0x01bc 000001b5: CALLDATASIZE 000001b6: PUSH1 0x04 000001b8: PUSH2 0x09ed 000001bb: JUMP 000001bc: JUMPDEST 000001bd: PUSH2 0x0285 000001c0: JUMP 000001c1: JUMPDEST 000001c2: PUSH2 0x01cb 000001c5: DUP3 000001c6: DUP3 000001c7: PUSH2 0x033e 000001ca: JUMP 000001cb: JUMPDEST 000001cc: POP 000001cd: POP 000001ce: JUMP 000001cf: JUMPDEST 000001d0: PUSH2 0x01d9 000001d3: CALLER 000001d4: DUP3 000001d5: PUSH2 0x033e 000001d8: JUMP 000001d9: JUMPDEST 000001da: POP 000001db: JUMP 000001dc: JUMPDEST 000001dd: PUSH2 0x01e4 000001e0: PUSH2 0x03f7 000001e3: JUMP 000001e4: JUMPDEST 000001e5: PUSH2 0x01ee 000001e8: PUSH1 0x00 000001ea: PUSH2 0x0478 000001ed: JUMP 000001ee: JUMPDEST 000001ef: JUMP 000001f0: JUMPDEST 000001f1: PUSH2 0x01f8 000001f4: PUSH2 0x03f7 000001f7: JUMP 000001f8: JUMPDEST 000001f9: PUSH2 0x0219 000001fc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000211: DUP5 00000212: AND 00000213: DUP4 00000214: DUP4 00000215: PUSH2 0x04ed 00000218: JUMP 00000219: JUMPDEST 0000021a: DUP2 0000021b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000230: AND 00000231: DUP4 00000232: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000247: AND 00000248: PUSH32 0x0eaaadac87f199d46d8127736588b675533df9cfc4aee1f85c448ff39fc01c81 00000269: DUP4 0000026a: PUSH1 0x40 0000026c: MLOAD 0000026d: PUSH2 0x0278 00000270: SWAP2 00000271: DUP2 00000272: MSTORE 00000273: PUSH1 0x20 00000275: ADD 00000276: SWAP1 00000277: JUMP 00000278: JUMPDEST 00000279: PUSH1 0x40 0000027b: MLOAD 0000027c: DUP1 0000027d: SWAP2 0000027e: SUB 0000027f: SWAP1 00000280: LOG3 00000281: POP 00000282: POP 00000283: POP 00000284: JUMP 00000285: JUMPDEST 00000286: PUSH2 0x028d 00000289: PUSH2 0x03f7 0000028c: JUMP 0000028d: JUMPDEST 0000028e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000002a3: DUP2 000002a4: AND 000002a5: PUSH2 0x0335 000002a8: JUMPI 000002a9: PUSH1 0x40 000002ab: MLOAD 000002ac: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000002cd: DUP2 000002ce: MSTORE 000002cf: PUSH1 0x20 000002d1: PUSH1 0x04 000002d3: DUP3 000002d4: ADD 000002d5: MSTORE 000002d6: PUSH1 0x26 000002d8: PUSH1 0x24 000002da: DUP3 000002db: ADD 000002dc: MSTORE 000002dd: PUSH32 0x4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061 000002fe: PUSH1 0x44 00000300: DUP3 00000301: ADD 00000302: MSTORE 00000303: PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 00000324: PUSH1 0x64 00000326: DUP3 00000327: ADD 00000328: MSTORE 00000329: PUSH1 0x84 0000032b: ADD 0000032c: JUMPDEST 0000032d: PUSH1 0x40 0000032f: MLOAD 00000330: DUP1 00000331: SWAP2 00000332: SUB 00000333: SWAP1 00000334: REVERT 00000335: JUMPDEST 00000336: PUSH2 0x01d9 00000339: DUP2 0000033a: PUSH2 0x0478 0000033d: JUMP 0000033e: JUMPDEST 0000033f: PUSH1 0x01 00000341: SLOAD 00000342: PUSH2 0x0363 00000345: SWAP1 00000346: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000035b: AND 0000035c: CALLER 0000035d: ADDRESS 0000035e: DUP5 0000035f: PUSH2 0x05c6 00000362: JUMP 00000363: JUMPDEST 00000364: PUSH1 0x00 00000366: PUSH1 0x02 00000368: SLOAD 00000369: PUSH1 0x04 0000036b: SLOAD 0000036c: DUP4 0000036d: PUSH2 0x0376 00000370: SWAP2 00000371: SWAP1 00000372: PUSH2 0x0a11 00000375: JUMP 00000376: JUMPDEST 00000377: PUSH2 0x0380 0000037a: SWAP2 0000037b: SWAP1 0000037c: PUSH2 0x0a75 0000037f: JUMP 00000380: JUMPDEST 00000381: PUSH1 0x03 00000383: SLOAD 00000384: SWAP1 00000385: SWAP2 00000386: POP 00000387: PUSH2 0x03a7 0000038a: SWAP1 0000038b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003a0: AND 000003a1: DUP5 000003a2: DUP4 000003a3: PUSH2 0x04ed 000003a6: JUMP 000003a7: JUMPDEST 000003a8: PUSH1 0x40 000003aa: DUP1 000003ab: MLOAD 000003ac: DUP4 000003ad: DUP2 000003ae: MSTORE 000003af: PUSH1 0x20 000003b1: DUP2 000003b2: ADD 000003b3: DUP4 000003b4: SWAP1 000003b5: MSTORE 000003b6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003cb: DUP6 000003cc: AND 000003cd: SWAP2 000003ce: CALLER 000003cf: SWAP2 000003d0: PUSH32 0x2f6639d24651730c7bf57c95ddbf96d66d11477e4ec626876f92c22e5f365e68 000003f1: SWAP2 000003f2: ADD 000003f3: PUSH2 0x0278 000003f6: JUMP 000003f7: JUMPDEST 000003f8: PUSH1 0x00 000003fa: SLOAD 000003fb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000410: AND 00000411: CALLER 00000412: EQ 00000413: PUSH2 0x01ee 00000416: JUMPI 00000417: PUSH1 0x40 00000419: MLOAD 0000041a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000043b: DUP2 0000043c: MSTORE 0000043d: PUSH1 0x20 0000043f: PUSH1 0x04 00000441: DUP3 00000442: ADD 00000443: DUP2 00000444: SWAP1 00000445: MSTORE 00000446: PUSH1 0x24 00000448: DUP3 00000449: ADD 0000044a: MSTORE 0000044b: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 0000046c: PUSH1 0x44 0000046e: DUP3 0000046f: ADD 00000470: MSTORE 00000471: PUSH1 0x64 00000473: ADD 00000474: PUSH2 0x032c 00000477: JUMP 00000478: JUMPDEST 00000479: PUSH1 0x00 0000047b: DUP1 0000047c: SLOAD 0000047d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000492: DUP4 00000493: DUP2 00000494: AND 00000495: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 000004b6: DUP4 000004b7: AND 000004b8: DUP2 000004b9: OR 000004ba: DUP5 000004bb: SSTORE 000004bc: PUSH1 0x40 000004be: MLOAD 000004bf: SWAP2 000004c0: SWAP1 000004c1: SWAP3 000004c2: AND 000004c3: SWAP3 000004c4: DUP4 000004c5: SWAP2 000004c6: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 000004e7: SWAP2 000004e8: SWAP1 000004e9: LOG3 000004ea: POP 000004eb: POP 000004ec: JUMP 000004ed: JUMPDEST 000004ee: PUSH1 0x40 000004f0: MLOAD 000004f1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000506: DUP4 00000507: AND 00000508: PUSH1 0x24 0000050a: DUP3 0000050b: ADD 0000050c: MSTORE 0000050d: PUSH1 0x44 0000050f: DUP2 00000510: ADD 00000511: DUP3 00000512: SWAP1 00000513: MSTORE 00000514: PUSH2 0x05c1 00000517: SWAP1 00000518: DUP5 00000519: SWAP1 0000051a: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000 0000053b: SWAP1 0000053c: PUSH1 0x64 0000053e: ADD 0000053f: JUMPDEST 00000540: PUSH1 0x40 00000542: DUP1 00000543: MLOAD 00000544: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00000565: DUP2 00000566: DUP5 00000567: SUB 00000568: ADD 00000569: DUP2 0000056a: MSTORE 0000056b: SWAP2 0000056c: SWAP1 0000056d: MSTORE 0000056e: PUSH1 0x20 00000570: DUP2 00000571: ADD 00000572: DUP1 00000573: MLOAD 00000574: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00000591: AND 00000592: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 000005b3: SWAP1 000005b4: SWAP4 000005b5: AND 000005b6: SWAP3 000005b7: SWAP1 000005b8: SWAP3 000005b9: OR 000005ba: SWAP1 000005bb: SWAP2 000005bc: MSTORE 000005bd: PUSH2 0x062a 000005c0: JUMP 000005c1: JUMPDEST 000005c2: POP 000005c3: POP 000005c4: POP 000005c5: JUMP 000005c6: JUMPDEST 000005c7: PUSH1 0x40 000005c9: MLOAD 000005ca: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000005df: DUP1 000005e0: DUP6 000005e1: AND 000005e2: PUSH1 0x24 000005e4: DUP4 000005e5: ADD 000005e6: MSTORE 000005e7: DUP4 000005e8: AND 000005e9: PUSH1 0x44 000005eb: DUP3 000005ec: ADD 000005ed: MSTORE 000005ee: PUSH1 0x64 000005f0: DUP2 000005f1: ADD 000005f2: DUP3 000005f3: SWAP1 000005f4: MSTORE 000005f5: PUSH2 0x0624 000005f8: SWAP1 000005f9: DUP6 000005fa: SWAP1 000005fb: PUSH32 0x23b872dd00000000000000000000000000000000000000000000000000000000 0000061c: SWAP1 0000061d: PUSH1 0x84 0000061f: ADD 00000620: PUSH2 0x053f 00000623: JUMP 00000624: JUMPDEST 00000625: POP 00000626: POP 00000627: POP 00000628: POP 00000629: JUMP 0000062a: JUMPDEST 0000062b: PUSH1 0x00 0000062d: PUSH2 0x068c 00000630: DUP3 00000631: PUSH1 0x40 00000633: MLOAD 00000634: DUP1 00000635: PUSH1 0x40 00000637: ADD 00000638: PUSH1 0x40 0000063a: MSTORE 0000063b: DUP1 0000063c: PUSH1 0x20 0000063e: DUP2 0000063f: MSTORE 00000640: PUSH1 0x20 00000642: ADD 00000643: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564 00000664: DUP2 00000665: MSTORE 00000666: POP 00000667: DUP6 00000668: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000067d: AND 0000067e: PUSH2 0x0739 00000681: SWAP1 00000682: SWAP3 00000683: SWAP2 00000684: SWAP1 00000685: PUSH4 0xffffffff 0000068a: AND 0000068b: JUMP 0000068c: JUMPDEST 0000068d: SWAP1 0000068e: POP 0000068f: DUP1 00000690: MLOAD 00000691: PUSH1 0x00 00000693: EQ 00000694: DUP1 00000695: PUSH2 0x06ad 00000698: JUMPI 00000699: POP 0000069a: DUP1 0000069b: DUP1 0000069c: PUSH1 0x20 0000069e: ADD 0000069f: SWAP1 000006a0: MLOAD 000006a1: DUP2 000006a2: ADD 000006a3: SWAP1 000006a4: PUSH2 0x06ad 000006a7: SWAP2 000006a8: SWAP1 000006a9: PUSH2 0x0ab0 000006ac: JUMP 000006ad: JUMPDEST 000006ae: PUSH2 0x05c1 000006b1: JUMPI 000006b2: PUSH1 0x40 000006b4: MLOAD 000006b5: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000006d6: DUP2 000006d7: MSTORE 000006d8: PUSH1 0x20 000006da: PUSH1 0x04 000006dc: DUP3 000006dd: ADD 000006de: MSTORE 000006df: PUSH1 0x2a 000006e1: PUSH1 0x24 000006e3: DUP3 000006e4: ADD 000006e5: MSTORE 000006e6: PUSH32 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e 00000707: PUSH1 0x44 00000709: DUP3 0000070a: ADD 0000070b: MSTORE 0000070c: PUSH32 0x6f74207375636365656400000000000000000000000000000000000000000000 0000072d: PUSH1 0x64 0000072f: DUP3 00000730: ADD 00000731: MSTORE 00000732: PUSH1 0x84 00000734: ADD 00000735: PUSH2 0x032c 00000738: JUMP 00000739: JUMPDEST 0000073a: PUSH1 0x60 0000073c: PUSH2 0x0748 0000073f: DUP5 00000740: DUP5 00000741: PUSH1 0x00 00000743: DUP6 00000744: PUSH2 0x0750 00000747: JUMP 00000748: JUMPDEST 00000749: SWAP5 0000074a: SWAP4 0000074b: POP 0000074c: POP 0000074d: POP 0000074e: POP 0000074f: JUMP 00000750: JUMPDEST 00000751: PUSH1 0x60 00000753: DUP3 00000754: SELFBALANCE 00000755: LT 00000756: ISZERO 00000757: PUSH2 0x07e2 0000075a: JUMPI 0000075b: PUSH1 0x40 0000075d: MLOAD 0000075e: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000077f: DUP2 00000780: MSTORE 00000781: PUSH1 0x20 00000783: PUSH1 0x04 00000785: DUP3 00000786: ADD 00000787: MSTORE 00000788: PUSH1 0x26 0000078a: PUSH1 0x24 0000078c: DUP3 0000078d: ADD 0000078e: MSTORE 0000078f: PUSH32 0x416464726573733a20696e73756666696369656e742062616c616e636520666f 000007b0: PUSH1 0x44 000007b2: DUP3 000007b3: ADD 000007b4: MSTORE 000007b5: PUSH32 0x722063616c6c0000000000000000000000000000000000000000000000000000 000007d6: PUSH1 0x64 000007d8: DUP3 000007d9: ADD 000007da: MSTORE 000007db: PUSH1 0x84 000007dd: ADD 000007de: PUSH2 0x032c 000007e1: JUMP 000007e2: JUMPDEST 000007e3: PUSH1 0x00 000007e5: DUP1 000007e6: DUP7 000007e7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000007fc: AND 000007fd: DUP6 000007fe: DUP8 000007ff: PUSH1 0x40 00000801: MLOAD 00000802: PUSH2 0x080b 00000805: SWAP2 00000806: SWAP1 00000807: PUSH2 0x0afe 0000080a: JUMP 0000080b: JUMPDEST 0000080c: PUSH1 0x00 0000080e: PUSH1 0x40 00000810: MLOAD 00000811: DUP1 00000812: DUP4 00000813: SUB 00000814: DUP2 00000815: DUP6 00000816: DUP8 00000817: GAS 00000818: CALL 00000819: SWAP3 0000081a: POP 0000081b: POP 0000081c: POP 0000081d: RETURNDATASIZE 0000081e: DUP1 0000081f: PUSH1 0x00 00000821: DUP2 00000822: EQ 00000823: PUSH2 0x0848 00000826: JUMPI 00000827: PUSH1 0x40 00000829: MLOAD 0000082a: SWAP2 0000082b: POP 0000082c: PUSH1 0x1f 0000082e: NOT 0000082f: PUSH1 0x3f 00000831: RETURNDATASIZE 00000832: ADD 00000833: AND 00000834: DUP3 00000835: ADD 00000836: PUSH1 0x40 00000838: MSTORE 00000839: RETURNDATASIZE 0000083a: DUP3 0000083b: MSTORE 0000083c: RETURNDATASIZE 0000083d: PUSH1 0x00 0000083f: PUSH1 0x20 00000841: DUP5 00000842: ADD 00000843: RETURNDATACOPY 00000844: PUSH2 0x084d 00000847: JUMP 00000848: JUMPDEST 00000849: PUSH1 0x60 0000084b: SWAP2 0000084c: POP 0000084d: JUMPDEST 0000084e: POP 0000084f: SWAP2 00000850: POP 00000851: SWAP2 00000852: POP 00000853: PUSH2 0x085e 00000856: DUP8 00000857: DUP4 00000858: DUP4 00000859: DUP8 0000085a: PUSH2 0x0869 0000085d: JUMP 0000085e: JUMPDEST 0000085f: SWAP8 00000860: SWAP7 00000861: POP 00000862: POP 00000863: POP 00000864: POP 00000865: POP 00000866: POP 00000867: POP 00000868: JUMP 00000869: JUMPDEST 0000086a: PUSH1 0x60 0000086c: DUP4 0000086d: ISZERO 0000086e: PUSH2 0x08fc 00000871: JUMPI 00000872: DUP3 00000873: MLOAD 00000874: PUSH2 0x08f5 00000877: JUMPI 00000878: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000088d: DUP6 0000088e: AND 0000088f: EXTCODESIZE 00000890: PUSH2 0x08f5 00000893: JUMPI 00000894: PUSH1 0x40 00000896: MLOAD 00000897: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000008b8: DUP2 000008b9: MSTORE 000008ba: PUSH1 0x20 000008bc: PUSH1 0x04 000008be: DUP3 000008bf: ADD 000008c0: MSTORE 000008c1: PUSH1 0x1d 000008c3: PUSH1 0x24 000008c5: DUP3 000008c6: ADD 000008c7: MSTORE 000008c8: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000 000008e9: PUSH1 0x44 000008eb: DUP3 000008ec: ADD 000008ed: MSTORE 000008ee: PUSH1 0x64 000008f0: ADD 000008f1: PUSH2 0x032c 000008f4: JUMP 000008f5: JUMPDEST 000008f6: POP 000008f7: DUP2 000008f8: PUSH2 0x0748 000008fb: JUMP 000008fc: JUMPDEST 000008fd: PUSH2 0x0748 00000900: DUP4 00000901: DUP4 00000902: DUP2 00000903: MLOAD 00000904: ISZERO 00000905: PUSH2 0x0911 00000908: JUMPI 00000909: DUP2 0000090a: MLOAD 0000090b: DUP1 0000090c: DUP4 0000090d: PUSH1 0x20 0000090f: ADD 00000910: REVERT 00000911: JUMPDEST 00000912: DUP1 00000913: PUSH1 0x40 00000915: MLOAD 00000916: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000937: DUP2 00000938: MSTORE 00000939: PUSH1 0x04 0000093b: ADD 0000093c: PUSH2 0x032c 0000093f: SWAP2 00000940: SWAP1 00000941: PUSH2 0x0b1a 00000944: JUMP 00000945: JUMPDEST 00000946: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000095b: DUP2 0000095c: AND 0000095d: DUP2 0000095e: EQ 0000095f: PUSH2 0x01d9 00000962: JUMPI 00000963: PUSH1 0x00 00000965: DUP1 00000966: REVERT 00000967: JUMPDEST 00000968: PUSH1 0x00 0000096a: DUP1 0000096b: PUSH1 0x40 0000096d: DUP4 0000096e: DUP6 0000096f: SUB 00000970: SLT 00000971: ISZERO 00000972: PUSH2 0x097a 00000975: JUMPI 00000976: PUSH1 0x00 00000978: DUP1 00000979: REVERT 0000097a: JUMPDEST 0000097b: DUP3 0000097c: CALLDATALOAD 0000097d: PUSH2 0x0985 00000980: DUP2 00000981: PUSH2 0x0945 00000984: JUMP 00000985: JUMPDEST 00000986: SWAP5 00000987: PUSH1 0x20 00000989: SWAP4 0000098a: SWAP1 0000098b: SWAP4 0000098c: ADD 0000098d: CALLDATALOAD 0000098e: SWAP4 0000098f: POP 00000990: POP 00000991: POP 00000992: JUMP 00000993: JUMPDEST 00000994: PUSH1 0x00 00000996: PUSH1 0x20 00000998: DUP3 00000999: DUP5 0000099a: SUB 0000099b: SLT 0000099c: ISZERO 0000099d: PUSH2 0x09a5 000009a0: JUMPI 000009a1: PUSH1 0x00 000009a3: DUP1 000009a4: REVERT 000009a5: JUMPDEST 000009a6: POP 000009a7: CALLDATALOAD 000009a8: SWAP2 000009a9: SWAP1 000009aa: POP 000009ab: JUMP 000009ac: JUMPDEST 000009ad: PUSH1 0x00 000009af: DUP1 000009b0: PUSH1 0x00 000009b2: PUSH1 0x60 000009b4: DUP5 000009b5: DUP7 000009b6: SUB 000009b7: SLT 000009b8: ISZERO 000009b9: PUSH2 0x09c1 000009bc: JUMPI 000009bd: PUSH1 0x00 000009bf: DUP1 000009c0: REVERT 000009c1: JUMPDEST 000009c2: DUP4 000009c3: CALLDATALOAD 000009c4: PUSH2 0x09cc 000009c7: DUP2 000009c8: PUSH2 0x0945 000009cb: JUMP 000009cc: JUMPDEST 000009cd: SWAP3 000009ce: POP 000009cf: PUSH1 0x20 000009d1: DUP5 000009d2: ADD 000009d3: CALLDATALOAD 000009d4: PUSH2 0x09dc 000009d7: DUP2 000009d8: PUSH2 0x0945 000009db: JUMP 000009dc: JUMPDEST 000009dd: SWAP3 000009de: SWAP6 000009df: SWAP3 000009e0: SWAP5 000009e1: POP 000009e2: POP 000009e3: POP 000009e4: PUSH1 0x40 000009e6: SWAP2 000009e7: SWAP1 000009e8: SWAP2 000009e9: ADD 000009ea: CALLDATALOAD 000009eb: SWAP1 000009ec: JUMP 000009ed: JUMPDEST 000009ee: PUSH1 0x00 000009f0: PUSH1 0x20 000009f2: DUP3 000009f3: DUP5 000009f4: SUB 000009f5: SLT 000009f6: ISZERO 000009f7: PUSH2 0x09ff 000009fa: JUMPI 000009fb: PUSH1 0x00 000009fd: DUP1 000009fe: REVERT 000009ff: JUMPDEST 00000a00: DUP2 00000a01: CALLDATALOAD 00000a02: PUSH2 0x0a0a 00000a05: DUP2 00000a06: PUSH2 0x0945 00000a09: JUMP 00000a0a: JUMPDEST 00000a0b: SWAP4 00000a0c: SWAP3 00000a0d: POP 00000a0e: POP 00000a0f: POP 00000a10: JUMP 00000a11: JUMPDEST 00000a12: PUSH1 0x00 00000a14: DUP2 00000a15: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00000a36: DIV 00000a37: DUP4 00000a38: GT 00000a39: DUP3 00000a3a: ISZERO 00000a3b: ISZERO 00000a3c: AND 00000a3d: ISZERO 00000a3e: PUSH2 0x0a70 00000a41: JUMPI 00000a42: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00000a63: PUSH1 0x00 00000a65: MSTORE 00000a66: PUSH1 0x11 00000a68: PUSH1 0x04 00000a6a: MSTORE 00000a6b: PUSH1 0x24 00000a6d: PUSH1 0x00 00000a6f: REVERT 00000a70: JUMPDEST 00000a71: POP 00000a72: MUL 00000a73: SWAP1 00000a74: JUMP 00000a75: JUMPDEST 00000a76: PUSH1 0x00 00000a78: DUP3 00000a79: PUSH2 0x0aab 00000a7c: JUMPI 00000a7d: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00000a9e: PUSH1 0x00 00000aa0: MSTORE 00000aa1: PUSH1 0x12 00000aa3: PUSH1 0x04 00000aa5: MSTORE 00000aa6: PUSH1 0x24 00000aa8: PUSH1 0x00 00000aaa: REVERT 00000aab: JUMPDEST 00000aac: POP 00000aad: DIV 00000aae: SWAP1 00000aaf: JUMP 00000ab0: JUMPDEST 00000ab1: PUSH1 0x00 00000ab3: PUSH1 0x20 00000ab5: DUP3 00000ab6: DUP5 00000ab7: SUB 00000ab8: SLT 00000ab9: ISZERO 00000aba: PUSH2 0x0ac2 00000abd: JUMPI 00000abe: PUSH1 0x00 00000ac0: DUP1 00000ac1: REVERT 00000ac2: JUMPDEST 00000ac3: DUP2 00000ac4: MLOAD 00000ac5: DUP1 00000ac6: ISZERO 00000ac7: ISZERO 00000ac8: DUP2 00000ac9: EQ 00000aca: PUSH2 0x0a0a 00000acd: JUMPI 00000ace: PUSH1 0x00 00000ad0: DUP1 00000ad1: REVERT 00000ad2: JUMPDEST 00000ad3: PUSH1 0x00 00000ad5: JUMPDEST 00000ad6: DUP4 00000ad7: DUP2 00000ad8: LT 00000ad9: ISZERO 00000ada: PUSH2 0x0aed 00000add: JUMPI 00000ade: DUP2 00000adf: DUP2 00000ae0: ADD 00000ae1: MLOAD 00000ae2: DUP4 00000ae3: DUP3 00000ae4: ADD 00000ae5: MSTORE 00000ae6: PUSH1 0x20 00000ae8: ADD 00000ae9: PUSH2 0x0ad5 00000aec: JUMP 00000aed: JUMPDEST 00000aee: DUP4 00000aef: DUP2 00000af0: GT 00000af1: ISZERO 00000af2: PUSH2 0x0624 00000af5: JUMPI 00000af6: POP 00000af7: POP 00000af8: PUSH1 0x00 00000afa: SWAP2 00000afb: ADD 00000afc: MSTORE 00000afd: JUMP 00000afe: JUMPDEST 00000aff: PUSH1 0x00 00000b01: DUP3 00000b02: MLOAD 00000b03: PUSH2 0x0b10 00000b06: DUP2 00000b07: DUP5 00000b08: PUSH1 0x20 00000b0a: DUP8 00000b0b: ADD 00000b0c: PUSH2 0x0ad2 00000b0f: JUMP 00000b10: JUMPDEST 00000b11: SWAP2 00000b12: SWAP1 00000b13: SWAP2 00000b14: ADD 00000b15: SWAP3 00000b16: SWAP2 00000b17: POP 00000b18: POP 00000b19: JUMP 00000b1a: JUMPDEST 00000b1b: PUSH1 0x20 00000b1d: DUP2 00000b1e: MSTORE 00000b1f: PUSH1 0x00 00000b21: DUP3 00000b22: MLOAD 00000b23: DUP1 00000b24: PUSH1 0x20 00000b26: DUP5 00000b27: ADD 00000b28: MSTORE 00000b29: PUSH2 0x0b39 00000b2c: DUP2 00000b2d: PUSH1 0x40 00000b2f: DUP6 00000b30: ADD 00000b31: PUSH1 0x20 00000b33: DUP8 00000b34: ADD 00000b35: PUSH2 0x0ad2 00000b38: JUMP 00000b39: JUMPDEST 00000b3a: PUSH1 0x1f 00000b3c: ADD 00000b3d: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00000b5e: AND 00000b5f: SWAP2 00000b60: SWAP1 00000b61: SWAP2 00000b62: ADD 00000b63: PUSH1 0x40 00000b65: ADD 00000b66: SWAP3 00000b67: SWAP2 00000b68: POP 00000b69: POP 00000b6a: JUMP 00000b6b: INVALID 00000b6c: LOG2 00000b6d: PUSH5 0x6970667358 00000b73: UNKNOWN(0x22) 00000b74: SLT 00000b75: KECCAK256 00000b76: RETURNDATASIZE 00000b77: UNKNOWN(0x28) 00000b78: UNKNOWN(0x26) 00000b79: UNKNOWN(0x28) 00000b7a: ADDMOD 00000b7b: MLOAD 00000b7c: UNKNOWN(0x28) 00000b7d: UNKNOWN(0x26) 00000b7e: MCOPY 00000b7f: UNKNOWN(0xD8) 00000b80: UNKNOWN(0xB3) 00000b81: UNKNOWN(0xDF) 00000b82: ORIGIN 00000b83: UNKNOWN(0xD2) 00000b84: EXP 00000b85: SHL 00000b86: UNKNOWN(0x4E) 00000b87: UNKNOWN(0xC2) 00000b88: UNKNOWN(0xFC) 00000b89: UNKNOWN(0xE9) 00000b8a: DUP12 00000b8b: UNKNOWN(0xEC) 00000b8c: UNKNOWN(0xB2) 00000b8d: SHR 00000b8e: UNKNOWN(0xCB) 00000b8f: UNKNOWN(0xD5) 00000b90: EXTCODECOPY 00000b91: UNKNOWN(0x2A) 00000b92: UNKNOWN(0xD6) 00000b93: OR 00000b94: EXTCODECOPY 00000b95: EXP 00000b96: PUSH5 0x736f6c6343 00000b9c: STOP 00000b9d: ADDMOD 00000b9e: MULMOD 00000b9f: STOP 00000ba0: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | auth | detector | Authorization based on tx.origin | 70 | no | — |
viewvalidation_json{
"reason": "missing sink mapping",
"status": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x9e96a23a",
"selector": "0x9e96a23a",
"calldata_variants": [
"0x9e96a23a",
"0x9e96a23a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb2a02ff1",
"selector": "0xb2a02ff1",
"calldata_variants": [
"0xb2a02ff1",
"0xb2a02ff10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x715018a6",
"selector": "0x715018a6",
"calldata_variants": [
"0x715018a6",
"0x715018a60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8da5cb5b",
"selector": "0x8da5cb5b",
"calldata_variants": [
"0x8da5cb5b",
"0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4c0f38c2",
"selector": "0x4c0f38c2",
"calldata_variants": [
"0x4c0f38c2",
"0x4c0f38c20000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x512d00d0",
"selector": "0x512d00d0",
"calldata_variants": [
"0x512d00d0",
"0x512d00d00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x6d4ce63c",
"selector": "0x6d4ce63c",
"calldata_variants": [
"0x6d4ce63c",
"0x6d4ce63c0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 2946,
"type": "tx_origin_used"
}
]
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0x04ae3d35a68731e0402b626278ed47e299c0d3d6af35b3e8486d8f5cc23bf865
call_targets:
0xd9333c858a620712b5b387bc4463173d82c38a61
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x04ae3d35a68731e0402b626278ed47e299c0d3d6af35b3e8486d8f5cc23bf865",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xd9333c858a620712b5b387bc4463173d82c38a61"
],
"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": "0x9e96a23a",
"selector": "0x9e96a23a",
"calldata_variants": [
"0x9e96a23a",
"0x9e96a23a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb2a02ff1",
"selector": "0xb2a02ff1",
"calldata_variants": [
"0xb2a02ff1",
"0xb2a02ff10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x715018a6",
"selector": "0x715018a6",
"calldata_variants": [
"0x715018a6",
"0x715018a60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8da5cb5b",
"selector": "0x8da5cb5b",
"calldata_variants": [
"0x8da5cb5b",
"0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4c0f38c2",
"selector": "0x4c0f38c2",
"calldata_variants": [
"0x4c0f38c2",
"0x4c0f38c20000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x512d00d0",
"selector": "0x512d00d0",
"calldata_variants": [
"0x512d00d0",
"0x512d00d00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x6d4ce63c",
"selector": "0x6d4ce63c",
"calldata_variants": [
"0x6d4ce63c",
"0x6d4ce63c0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2072,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 1,
"guards_detected": [
{
"pc": 2946,
"type": "tx_origin_used"
}
],
"untrusted_call_count": 1
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0x04ae3d35a68731e0402b626278ed47e299c0d3d6af35b3e8486d8f5cc23bf865
call_targets:
0xd9333c858a620712b5b387bc4463173d82c38a61
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x04ae3d35a68731e0402b626278ed47e299c0d3d6af35b3e8486d8f5cc23bf865",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xd9333c858a620712b5b387bc4463173d82c38a61"
],
"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": "0x9e96a23a",
"selector": "0x9e96a23a",
"calldata_variants": [
"0x9e96a23a",
"0x9e96a23a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb2a02ff1",
"selector": "0xb2a02ff1",
"calldata_variants": [
"0xb2a02ff1",
"0xb2a02ff10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x715018a6",
"selector": "0x715018a6",
"calldata_variants": [
"0x715018a6",
"0x715018a60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8da5cb5b",
"selector": "0x8da5cb5b",
"calldata_variants": [
"0x8da5cb5b",
"0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4c0f38c2",
"selector": "0x4c0f38c2",
"calldata_variants": [
"0x4c0f38c2",
"0x4c0f38c20000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x512d00d0",
"selector": "0x512d00d0",
"calldata_variants": [
"0x512d00d0",
"0x512d00d00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x6d4ce63c",
"selector": "0x6d4ce63c",
"calldata_variants": [
"0x6d4ce63c",
"0x6d4ce63c0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2072,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 1,
"guards_detected": [
{
"pc": 2946,
"type": "tx_origin_used"
}
]
}
|