019ba9e0-be43-721d-9b34-673f32360136
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 |
|---|---|---|---|---|
| 38110 | artifact.fetch | complete | 1 / 3 | 3 months ago |
| 38111 | proxy.resolve | complete | 1 / 3 | 3 months ago |
| 38112 | tool.cast_disasm | complete | 1 / 3 | 3 months ago |
| 38113 | analysis.bundle | complete | 1 / 3 | 3 months ago |
| 38114 | capability.graph | complete | 1 / 3 | 3 months ago |
| 38115 | detector.run | complete | 1 / 3 | 3 months ago |
| 38116 | validation.fork | complete | 1 / 3 | 3 months ago |
| 38188 | report.consolidate | complete | 1 / 6 | 3 months ago |
| 38189 | tool.slither | complete | 1 / 2 | 3 months ago |
{
"status": "not_proxy"
}
'forge clean' running (wd: /tmp/slither-9twyvf1t) 'forge config --json' running 'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-9twyvf1t) Context._msgData() (contracts/Contract.sol#98-103) is never used and should be removed ERC20._burn(address,uint256) (contracts/Contract.sol#554-567) is never used and should be removed ERC20._setupDecimals(uint8) (contracts/Contract.sol#597-598) is never used and should be removed Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code Version constraint >=0.6.0<0.8.0 is too complex. It is used by: - >=0.6.0<0.8.0 (contracts/Contract.sol#3-5) - >=0.6.0<0.8.0 (contracts/Contract.sol#81) - >=0.6.0<0.8.0 (contracts/Contract.sol#104-108) - >=0.6.0<0.8.0 (contracts/Contract.sol#315-317) - >=0.6.0<0.8.0 (contracts/Contract.sol#620-621) solc-0.6.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 Redundant expression "this (contracts/Contract.sol#99)" inContext (contracts/Contract.sol#93-103) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#redundant-statements . analyzed (5 contracts with 100 detectors), 6 result(s) found
{
"solc": {
"status": "ok",
"use_rc": 0,
"version": "0.6.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.6.0",
"install_stderr": null,
"install_stdout": "Installing solc '0.6.0'...\nVersion '0.6.0' installed."
},
"solc_args": "--base-path /tmp/slither-9twyvf1t --allow-paths /tmp/slither-9twyvf1t,/tmp/slither-9twyvf1t/lib,/tmp/slither-9twyvf1t/src",
"remappings": [],
"source_files": [
"contracts/Contract.sol"
],
"contract_count": 0,
"contract_names": [],
"detector_count": 6,
"workspace_hash": "b929711002393cb3ea5ad50fd9489907dd79dfbc896748f9be0d2342879e90b6",
"duration_seconds": 0.7029547691345215,
"solc_version_requested": "0.6.6"
}
{"no_findings":true,"summary":"No first-party Solidity logic beyond a simple ERC20 constructor mint; no exploitable issues identified in scope.","findings":[]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-2t0u55jt
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019baa72-9773-7d63-9a14-f38cd4b07e9c
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
Scope rules:
- You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party Solidity sources in this workspace.
- Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
- If there are only dependency files and no first-party sources, set no_findings=true and explain in summary.
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 and file/line locations when possible.
Output constraints (IMPORTANT):
- severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
- category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
Keep summary short and concrete.
mcp startup: no servers
thinking
**Preparing to read AUDIT_BUNDLE**
exec
/bin/bash -lc ls in /tmp/codex-2t0u55jt succeeded in 6ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
contracts
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-2t0u55jt succeeded in 6ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.
================================================================================
FILE: contracts/Contract.sol
================================================================================
// File: @openzeppelin/contracts/token/ERC20/IERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity >=0.6.0 <0.8.0;
/**
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20 {
/**
* @dev Returns the amount of tokens in existence.
*/
function totalSupply() external view returns (uint256);
thinking
**Summarizing token setup and validation**
codex
{"no_findings":true,"summary":"No first-party Solidity logic beyond a simple ERC20 constructor mint; no exploitable issues identified in scope.","findings":[]}
tokens used
7,971
{
"codex": {
"ran_at": "2026-01-11T00:26:40.538840+00:00",
"returncode": 0
},
"project": {
"mode": "source",
"file_count": 1,
"import_count": 0,
"first_party_contracts_count": 1
},
"summary": "No first-party Solidity logic beyond a simple ERC20 constructor mint; no exploitable issues identified in scope.",
"raw_final": {
"summary": "No first-party Solidity logic beyond a simple ERC20 constructor mint; no exploitable issues identified in scope.",
"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 0x00a9 00000019: JUMPI 0000001a: PUSH1 0x00 0000001c: CALLDATALOAD 0000001d: PUSH1 0xe0 0000001f: SHR 00000020: DUP1 00000021: PUSH4 0x39509351 00000026: GT 00000027: PUSH2 0x0071 0000002a: JUMPI 0000002b: DUP1 0000002c: PUSH4 0x39509351 00000031: EQ 00000032: PUSH2 0x025f 00000035: JUMPI 00000036: DUP1 00000037: PUSH4 0x70a08231 0000003c: EQ 0000003d: PUSH2 0x02c5 00000040: JUMPI 00000041: DUP1 00000042: PUSH4 0x95d89b41 00000047: EQ 00000048: PUSH2 0x031d 0000004b: JUMPI 0000004c: DUP1 0000004d: PUSH4 0xa457c2d7 00000052: EQ 00000053: PUSH2 0x03a0 00000056: JUMPI 00000057: DUP1 00000058: PUSH4 0xa9059cbb 0000005d: EQ 0000005e: PUSH2 0x0406 00000061: JUMPI 00000062: DUP1 00000063: PUSH4 0xdd62ed3e 00000068: EQ 00000069: PUSH2 0x046c 0000006c: JUMPI 0000006d: PUSH2 0x00a9 00000070: JUMP 00000071: JUMPDEST 00000072: DUP1 00000073: PUSH4 0x06fdde03 00000078: EQ 00000079: PUSH2 0x00ae 0000007c: JUMPI 0000007d: DUP1 0000007e: PUSH4 0x095ea7b3 00000083: EQ 00000084: PUSH2 0x0131 00000087: JUMPI 00000088: DUP1 00000089: PUSH4 0x18160ddd 0000008e: EQ 0000008f: PUSH2 0x0197 00000092: JUMPI 00000093: DUP1 00000094: PUSH4 0x23b872dd 00000099: EQ 0000009a: PUSH2 0x01b5 0000009d: JUMPI 0000009e: DUP1 0000009f: PUSH4 0x313ce567 000000a4: EQ 000000a5: PUSH2 0x023b 000000a8: JUMPI 000000a9: JUMPDEST 000000aa: PUSH1 0x00 000000ac: DUP1 000000ad: REVERT 000000ae: JUMPDEST 000000af: PUSH2 0x00b6 000000b2: PUSH2 0x04e4 000000b5: JUMP 000000b6: JUMPDEST 000000b7: PUSH1 0x40 000000b9: MLOAD 000000ba: DUP1 000000bb: DUP1 000000bc: PUSH1 0x20 000000be: ADD 000000bf: DUP3 000000c0: DUP2 000000c1: SUB 000000c2: DUP3 000000c3: MSTORE 000000c4: DUP4 000000c5: DUP2 000000c6: DUP2 000000c7: MLOAD 000000c8: DUP2 000000c9: MSTORE 000000ca: PUSH1 0x20 000000cc: ADD 000000cd: SWAP2 000000ce: POP 000000cf: DUP1 000000d0: MLOAD 000000d1: SWAP1 000000d2: PUSH1 0x20 000000d4: ADD 000000d5: SWAP1 000000d6: DUP1 000000d7: DUP4 000000d8: DUP4 000000d9: PUSH1 0x00 000000db: JUMPDEST 000000dc: DUP4 000000dd: DUP2 000000de: LT 000000df: ISZERO 000000e0: PUSH2 0x00f6 000000e3: JUMPI 000000e4: DUP1 000000e5: DUP3 000000e6: ADD 000000e7: MLOAD 000000e8: DUP2 000000e9: DUP5 000000ea: ADD 000000eb: MSTORE 000000ec: PUSH1 0x20 000000ee: DUP2 000000ef: ADD 000000f0: SWAP1 000000f1: POP 000000f2: PUSH2 0x00db 000000f5: JUMP 000000f6: JUMPDEST 000000f7: POP 000000f8: POP 000000f9: POP 000000fa: POP 000000fb: SWAP1 000000fc: POP 000000fd: SWAP1 000000fe: DUP2 000000ff: ADD 00000100: SWAP1 00000101: PUSH1 0x1f 00000103: AND 00000104: DUP1 00000105: ISZERO 00000106: PUSH2 0x0123 00000109: JUMPI 0000010a: DUP1 0000010b: DUP3 0000010c: SUB 0000010d: DUP1 0000010e: MLOAD 0000010f: PUSH1 0x01 00000111: DUP4 00000112: PUSH1 0x20 00000114: SUB 00000115: PUSH2 0x0100 00000118: EXP 00000119: SUB 0000011a: NOT 0000011b: AND 0000011c: DUP2 0000011d: MSTORE 0000011e: PUSH1 0x20 00000120: ADD 00000121: SWAP2 00000122: POP 00000123: JUMPDEST 00000124: POP 00000125: SWAP3 00000126: POP 00000127: POP 00000128: POP 00000129: PUSH1 0x40 0000012b: MLOAD 0000012c: DUP1 0000012d: SWAP2 0000012e: SUB 0000012f: SWAP1 00000130: RETURN 00000131: JUMPDEST 00000132: PUSH2 0x017d 00000135: PUSH1 0x04 00000137: DUP1 00000138: CALLDATASIZE 00000139: SUB 0000013a: PUSH1 0x40 0000013c: DUP2 0000013d: LT 0000013e: ISZERO 0000013f: PUSH2 0x0147 00000142: JUMPI 00000143: PUSH1 0x00 00000145: DUP1 00000146: REVERT 00000147: JUMPDEST 00000148: DUP2 00000149: ADD 0000014a: SWAP1 0000014b: DUP1 0000014c: DUP1 0000014d: CALLDATALOAD 0000014e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000163: AND 00000164: SWAP1 00000165: PUSH1 0x20 00000167: ADD 00000168: SWAP1 00000169: SWAP3 0000016a: SWAP2 0000016b: SWAP1 0000016c: DUP1 0000016d: CALLDATALOAD 0000016e: SWAP1 0000016f: PUSH1 0x20 00000171: ADD 00000172: SWAP1 00000173: SWAP3 00000174: SWAP2 00000175: SWAP1 00000176: POP 00000177: POP 00000178: POP 00000179: PUSH2 0x0586 0000017c: JUMP 0000017d: JUMPDEST 0000017e: PUSH1 0x40 00000180: MLOAD 00000181: DUP1 00000182: DUP3 00000183: ISZERO 00000184: ISZERO 00000185: ISZERO 00000186: ISZERO 00000187: DUP2 00000188: MSTORE 00000189: PUSH1 0x20 0000018b: ADD 0000018c: SWAP2 0000018d: POP 0000018e: POP 0000018f: PUSH1 0x40 00000191: MLOAD 00000192: DUP1 00000193: SWAP2 00000194: SUB 00000195: SWAP1 00000196: RETURN 00000197: JUMPDEST 00000198: PUSH2 0x019f 0000019b: PUSH2 0x05a4 0000019e: JUMP 0000019f: JUMPDEST 000001a0: PUSH1 0x40 000001a2: MLOAD 000001a3: DUP1 000001a4: DUP3 000001a5: DUP2 000001a6: MSTORE 000001a7: PUSH1 0x20 000001a9: ADD 000001aa: SWAP2 000001ab: POP 000001ac: POP 000001ad: PUSH1 0x40 000001af: MLOAD 000001b0: DUP1 000001b1: SWAP2 000001b2: SUB 000001b3: SWAP1 000001b4: RETURN 000001b5: JUMPDEST 000001b6: PUSH2 0x0221 000001b9: PUSH1 0x04 000001bb: DUP1 000001bc: CALLDATASIZE 000001bd: SUB 000001be: PUSH1 0x60 000001c0: DUP2 000001c1: LT 000001c2: ISZERO 000001c3: PUSH2 0x01cb 000001c6: JUMPI 000001c7: PUSH1 0x00 000001c9: DUP1 000001ca: REVERT 000001cb: JUMPDEST 000001cc: DUP2 000001cd: ADD 000001ce: SWAP1 000001cf: DUP1 000001d0: DUP1 000001d1: CALLDATALOAD 000001d2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000001e7: AND 000001e8: SWAP1 000001e9: PUSH1 0x20 000001eb: ADD 000001ec: SWAP1 000001ed: SWAP3 000001ee: SWAP2 000001ef: SWAP1 000001f0: DUP1 000001f1: CALLDATALOAD 000001f2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000207: AND 00000208: SWAP1 00000209: PUSH1 0x20 0000020b: ADD 0000020c: SWAP1 0000020d: SWAP3 0000020e: SWAP2 0000020f: SWAP1 00000210: DUP1 00000211: CALLDATALOAD 00000212: SWAP1 00000213: PUSH1 0x20 00000215: ADD 00000216: SWAP1 00000217: SWAP3 00000218: SWAP2 00000219: SWAP1 0000021a: POP 0000021b: POP 0000021c: POP 0000021d: PUSH2 0x05ae 00000220: JUMP 00000221: JUMPDEST 00000222: PUSH1 0x40 00000224: MLOAD 00000225: DUP1 00000226: DUP3 00000227: ISZERO 00000228: ISZERO 00000229: ISZERO 0000022a: ISZERO 0000022b: DUP2 0000022c: MSTORE 0000022d: PUSH1 0x20 0000022f: ADD 00000230: SWAP2 00000231: POP 00000232: POP 00000233: PUSH1 0x40 00000235: MLOAD 00000236: DUP1 00000237: SWAP2 00000238: SUB 00000239: SWAP1 0000023a: RETURN 0000023b: JUMPDEST 0000023c: PUSH2 0x0243 0000023f: PUSH2 0x0687 00000242: JUMP 00000243: JUMPDEST 00000244: PUSH1 0x40 00000246: MLOAD 00000247: DUP1 00000248: DUP3 00000249: PUSH1 0xff 0000024b: AND 0000024c: PUSH1 0xff 0000024e: AND 0000024f: DUP2 00000250: MSTORE 00000251: PUSH1 0x20 00000253: ADD 00000254: SWAP2 00000255: POP 00000256: POP 00000257: PUSH1 0x40 00000259: MLOAD 0000025a: DUP1 0000025b: SWAP2 0000025c: SUB 0000025d: SWAP1 0000025e: RETURN 0000025f: JUMPDEST 00000260: PUSH2 0x02ab 00000263: PUSH1 0x04 00000265: DUP1 00000266: CALLDATASIZE 00000267: SUB 00000268: PUSH1 0x40 0000026a: DUP2 0000026b: LT 0000026c: ISZERO 0000026d: PUSH2 0x0275 00000270: JUMPI 00000271: PUSH1 0x00 00000273: DUP1 00000274: REVERT 00000275: JUMPDEST 00000276: DUP2 00000277: ADD 00000278: SWAP1 00000279: DUP1 0000027a: DUP1 0000027b: CALLDATALOAD 0000027c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000291: AND 00000292: SWAP1 00000293: PUSH1 0x20 00000295: ADD 00000296: SWAP1 00000297: SWAP3 00000298: SWAP2 00000299: SWAP1 0000029a: DUP1 0000029b: CALLDATALOAD 0000029c: SWAP1 0000029d: PUSH1 0x20 0000029f: ADD 000002a0: SWAP1 000002a1: SWAP3 000002a2: SWAP2 000002a3: SWAP1 000002a4: POP 000002a5: POP 000002a6: POP 000002a7: PUSH2 0x069e 000002aa: JUMP 000002ab: JUMPDEST 000002ac: PUSH1 0x40 000002ae: MLOAD 000002af: DUP1 000002b0: DUP3 000002b1: ISZERO 000002b2: ISZERO 000002b3: ISZERO 000002b4: ISZERO 000002b5: DUP2 000002b6: MSTORE 000002b7: PUSH1 0x20 000002b9: ADD 000002ba: SWAP2 000002bb: POP 000002bc: POP 000002bd: PUSH1 0x40 000002bf: MLOAD 000002c0: DUP1 000002c1: SWAP2 000002c2: SUB 000002c3: SWAP1 000002c4: RETURN 000002c5: JUMPDEST 000002c6: PUSH2 0x0307 000002c9: PUSH1 0x04 000002cb: DUP1 000002cc: CALLDATASIZE 000002cd: SUB 000002ce: PUSH1 0x20 000002d0: DUP2 000002d1: LT 000002d2: ISZERO 000002d3: PUSH2 0x02db 000002d6: JUMPI 000002d7: PUSH1 0x00 000002d9: DUP1 000002da: REVERT 000002db: JUMPDEST 000002dc: DUP2 000002dd: ADD 000002de: SWAP1 000002df: DUP1 000002e0: DUP1 000002e1: CALLDATALOAD 000002e2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000002f7: AND 000002f8: SWAP1 000002f9: PUSH1 0x20 000002fb: ADD 000002fc: SWAP1 000002fd: SWAP3 000002fe: SWAP2 000002ff: SWAP1 00000300: POP 00000301: POP 00000302: POP 00000303: PUSH2 0x0751 00000306: JUMP 00000307: JUMPDEST 00000308: PUSH1 0x40 0000030a: MLOAD 0000030b: DUP1 0000030c: DUP3 0000030d: DUP2 0000030e: MSTORE 0000030f: PUSH1 0x20 00000311: ADD 00000312: SWAP2 00000313: POP 00000314: POP 00000315: PUSH1 0x40 00000317: MLOAD 00000318: DUP1 00000319: SWAP2 0000031a: SUB 0000031b: SWAP1 0000031c: RETURN 0000031d: JUMPDEST 0000031e: PUSH2 0x0325 00000321: PUSH2 0x0799 00000324: JUMP 00000325: JUMPDEST 00000326: PUSH1 0x40 00000328: MLOAD 00000329: DUP1 0000032a: DUP1 0000032b: PUSH1 0x20 0000032d: ADD 0000032e: DUP3 0000032f: DUP2 00000330: SUB 00000331: DUP3 00000332: MSTORE 00000333: DUP4 00000334: DUP2 00000335: DUP2 00000336: MLOAD 00000337: DUP2 00000338: MSTORE 00000339: PUSH1 0x20 0000033b: ADD 0000033c: SWAP2 0000033d: POP 0000033e: DUP1 0000033f: MLOAD 00000340: SWAP1 00000341: PUSH1 0x20 00000343: ADD 00000344: SWAP1 00000345: DUP1 00000346: DUP4 00000347: DUP4 00000348: PUSH1 0x00 0000034a: JUMPDEST 0000034b: DUP4 0000034c: DUP2 0000034d: LT 0000034e: ISZERO 0000034f: PUSH2 0x0365 00000352: JUMPI 00000353: DUP1 00000354: DUP3 00000355: ADD 00000356: MLOAD 00000357: DUP2 00000358: DUP5 00000359: ADD 0000035a: MSTORE 0000035b: PUSH1 0x20 0000035d: DUP2 0000035e: ADD 0000035f: SWAP1 00000360: POP 00000361: PUSH2 0x034a 00000364: JUMP 00000365: JUMPDEST 00000366: POP 00000367: POP 00000368: POP 00000369: POP 0000036a: SWAP1 0000036b: POP 0000036c: SWAP1 0000036d: DUP2 0000036e: ADD 0000036f: SWAP1 00000370: PUSH1 0x1f 00000372: AND 00000373: DUP1 00000374: ISZERO 00000375: PUSH2 0x0392 00000378: JUMPI 00000379: DUP1 0000037a: DUP3 0000037b: SUB 0000037c: DUP1 0000037d: MLOAD 0000037e: PUSH1 0x01 00000380: DUP4 00000381: PUSH1 0x20 00000383: SUB 00000384: PUSH2 0x0100 00000387: EXP 00000388: SUB 00000389: NOT 0000038a: AND 0000038b: DUP2 0000038c: MSTORE 0000038d: PUSH1 0x20 0000038f: ADD 00000390: SWAP2 00000391: POP 00000392: JUMPDEST 00000393: POP 00000394: SWAP3 00000395: POP 00000396: POP 00000397: POP 00000398: PUSH1 0x40 0000039a: MLOAD 0000039b: DUP1 0000039c: SWAP2 0000039d: SUB 0000039e: SWAP1 0000039f: RETURN 000003a0: JUMPDEST 000003a1: PUSH2 0x03ec 000003a4: PUSH1 0x04 000003a6: DUP1 000003a7: CALLDATASIZE 000003a8: SUB 000003a9: PUSH1 0x40 000003ab: DUP2 000003ac: LT 000003ad: ISZERO 000003ae: PUSH2 0x03b6 000003b1: JUMPI 000003b2: PUSH1 0x00 000003b4: DUP1 000003b5: REVERT 000003b6: JUMPDEST 000003b7: DUP2 000003b8: ADD 000003b9: SWAP1 000003ba: DUP1 000003bb: DUP1 000003bc: CALLDATALOAD 000003bd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003d2: AND 000003d3: SWAP1 000003d4: PUSH1 0x20 000003d6: ADD 000003d7: SWAP1 000003d8: SWAP3 000003d9: SWAP2 000003da: SWAP1 000003db: DUP1 000003dc: CALLDATALOAD 000003dd: SWAP1 000003de: PUSH1 0x20 000003e0: ADD 000003e1: SWAP1 000003e2: SWAP3 000003e3: SWAP2 000003e4: SWAP1 000003e5: POP 000003e6: POP 000003e7: POP 000003e8: PUSH2 0x083b 000003eb: JUMP 000003ec: JUMPDEST 000003ed: PUSH1 0x40 000003ef: MLOAD 000003f0: DUP1 000003f1: DUP3 000003f2: ISZERO 000003f3: ISZERO 000003f4: ISZERO 000003f5: ISZERO 000003f6: DUP2 000003f7: MSTORE 000003f8: PUSH1 0x20 000003fa: ADD 000003fb: SWAP2 000003fc: POP 000003fd: POP 000003fe: PUSH1 0x40 00000400: MLOAD 00000401: DUP1 00000402: SWAP2 00000403: SUB 00000404: SWAP1 00000405: RETURN 00000406: JUMPDEST 00000407: PUSH2 0x0452 0000040a: PUSH1 0x04 0000040c: DUP1 0000040d: CALLDATASIZE 0000040e: SUB 0000040f: PUSH1 0x40 00000411: DUP2 00000412: LT 00000413: ISZERO 00000414: PUSH2 0x041c 00000417: JUMPI 00000418: PUSH1 0x00 0000041a: DUP1 0000041b: REVERT 0000041c: JUMPDEST 0000041d: DUP2 0000041e: ADD 0000041f: SWAP1 00000420: DUP1 00000421: DUP1 00000422: CALLDATALOAD 00000423: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000438: AND 00000439: SWAP1 0000043a: PUSH1 0x20 0000043c: ADD 0000043d: SWAP1 0000043e: SWAP3 0000043f: SWAP2 00000440: SWAP1 00000441: DUP1 00000442: CALLDATALOAD 00000443: SWAP1 00000444: PUSH1 0x20 00000446: ADD 00000447: SWAP1 00000448: SWAP3 00000449: SWAP2 0000044a: SWAP1 0000044b: POP 0000044c: POP 0000044d: POP 0000044e: PUSH2 0x0908 00000451: JUMP 00000452: JUMPDEST 00000453: PUSH1 0x40 00000455: MLOAD 00000456: DUP1 00000457: DUP3 00000458: ISZERO 00000459: ISZERO 0000045a: ISZERO 0000045b: ISZERO 0000045c: DUP2 0000045d: MSTORE 0000045e: PUSH1 0x20 00000460: ADD 00000461: SWAP2 00000462: POP 00000463: POP 00000464: PUSH1 0x40 00000466: MLOAD 00000467: DUP1 00000468: SWAP2 00000469: SUB 0000046a: SWAP1 0000046b: RETURN 0000046c: JUMPDEST 0000046d: PUSH2 0x04ce 00000470: PUSH1 0x04 00000472: DUP1 00000473: CALLDATASIZE 00000474: SUB 00000475: PUSH1 0x40 00000477: DUP2 00000478: LT 00000479: ISZERO 0000047a: PUSH2 0x0482 0000047d: JUMPI 0000047e: PUSH1 0x00 00000480: DUP1 00000481: REVERT 00000482: JUMPDEST 00000483: DUP2 00000484: ADD 00000485: SWAP1 00000486: DUP1 00000487: DUP1 00000488: CALLDATALOAD 00000489: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000049e: AND 0000049f: SWAP1 000004a0: PUSH1 0x20 000004a2: ADD 000004a3: SWAP1 000004a4: SWAP3 000004a5: SWAP2 000004a6: SWAP1 000004a7: DUP1 000004a8: CALLDATALOAD 000004a9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004be: AND 000004bf: SWAP1 000004c0: PUSH1 0x20 000004c2: ADD 000004c3: SWAP1 000004c4: SWAP3 000004c5: SWAP2 000004c6: SWAP1 000004c7: POP 000004c8: POP 000004c9: POP 000004ca: PUSH2 0x0926 000004cd: JUMP 000004ce: JUMPDEST 000004cf: PUSH1 0x40 000004d1: MLOAD 000004d2: DUP1 000004d3: DUP3 000004d4: DUP2 000004d5: MSTORE 000004d6: PUSH1 0x20 000004d8: ADD 000004d9: SWAP2 000004da: POP 000004db: POP 000004dc: PUSH1 0x40 000004de: MLOAD 000004df: DUP1 000004e0: SWAP2 000004e1: SUB 000004e2: SWAP1 000004e3: RETURN 000004e4: JUMPDEST 000004e5: PUSH1 0x60 000004e7: PUSH1 0x03 000004e9: DUP1 000004ea: SLOAD 000004eb: PUSH1 0x01 000004ed: DUP2 000004ee: PUSH1 0x01 000004f0: AND 000004f1: ISZERO 000004f2: PUSH2 0x0100 000004f5: MUL 000004f6: SUB 000004f7: AND 000004f8: PUSH1 0x02 000004fa: SWAP1 000004fb: DIV 000004fc: DUP1 000004fd: PUSH1 0x1f 000004ff: ADD 00000500: PUSH1 0x20 00000502: DUP1 00000503: SWAP2 00000504: DIV 00000505: MUL 00000506: PUSH1 0x20 00000508: ADD 00000509: PUSH1 0x40 0000050b: MLOAD 0000050c: SWAP1 0000050d: DUP2 0000050e: ADD 0000050f: PUSH1 0x40 00000511: MSTORE 00000512: DUP1 00000513: SWAP3 00000514: SWAP2 00000515: SWAP1 00000516: DUP2 00000517: DUP2 00000518: MSTORE 00000519: PUSH1 0x20 0000051b: ADD 0000051c: DUP3 0000051d: DUP1 0000051e: SLOAD 0000051f: PUSH1 0x01 00000521: DUP2 00000522: PUSH1 0x01 00000524: AND 00000525: ISZERO 00000526: PUSH2 0x0100 00000529: MUL 0000052a: SUB 0000052b: AND 0000052c: PUSH1 0x02 0000052e: SWAP1 0000052f: DIV 00000530: DUP1 00000531: ISZERO 00000532: PUSH2 0x057c 00000535: JUMPI 00000536: DUP1 00000537: PUSH1 0x1f 00000539: LT 0000053a: PUSH2 0x0551 0000053d: JUMPI 0000053e: PUSH2 0x0100 00000541: DUP1 00000542: DUP4 00000543: SLOAD 00000544: DIV 00000545: MUL 00000546: DUP4 00000547: MSTORE 00000548: SWAP2 00000549: PUSH1 0x20 0000054b: ADD 0000054c: SWAP2 0000054d: PUSH2 0x057c 00000550: JUMP 00000551: JUMPDEST 00000552: DUP3 00000553: ADD 00000554: SWAP2 00000555: SWAP1 00000556: PUSH1 0x00 00000558: MSTORE 00000559: PUSH1 0x20 0000055b: PUSH1 0x00 0000055d: KECCAK256 0000055e: SWAP1 0000055f: JUMPDEST 00000560: DUP2 00000561: SLOAD 00000562: DUP2 00000563: MSTORE 00000564: SWAP1 00000565: PUSH1 0x01 00000567: ADD 00000568: SWAP1 00000569: PUSH1 0x20 0000056b: ADD 0000056c: DUP1 0000056d: DUP4 0000056e: GT 0000056f: PUSH2 0x055f 00000572: JUMPI 00000573: DUP3 00000574: SWAP1 00000575: SUB 00000576: PUSH1 0x1f 00000578: AND 00000579: DUP3 0000057a: ADD 0000057b: SWAP2 0000057c: JUMPDEST 0000057d: POP 0000057e: POP 0000057f: POP 00000580: POP 00000581: POP 00000582: SWAP1 00000583: POP 00000584: SWAP1 00000585: JUMP 00000586: JUMPDEST 00000587: PUSH1 0x00 00000589: PUSH2 0x059a 0000058c: PUSH2 0x0593 0000058f: PUSH2 0x09ad 00000592: JUMP 00000593: JUMPDEST 00000594: DUP5 00000595: DUP5 00000596: PUSH2 0x09b5 00000599: JUMP 0000059a: JUMPDEST 0000059b: PUSH1 0x01 0000059d: SWAP1 0000059e: POP 0000059f: SWAP3 000005a0: SWAP2 000005a1: POP 000005a2: POP 000005a3: JUMP 000005a4: JUMPDEST 000005a5: PUSH1 0x00 000005a7: PUSH1 0x02 000005a9: SLOAD 000005aa: SWAP1 000005ab: POP 000005ac: SWAP1 000005ad: JUMP 000005ae: JUMPDEST 000005af: PUSH1 0x00 000005b1: PUSH2 0x05bb 000005b4: DUP5 000005b5: DUP5 000005b6: DUP5 000005b7: PUSH2 0x0bac 000005ba: JUMP 000005bb: JUMPDEST 000005bc: PUSH2 0x067c 000005bf: DUP5 000005c0: PUSH2 0x05c7 000005c3: PUSH2 0x09ad 000005c6: JUMP 000005c7: JUMPDEST 000005c8: PUSH2 0x0677 000005cb: DUP6 000005cc: PUSH1 0x40 000005ce: MLOAD 000005cf: DUP1 000005d0: PUSH1 0x60 000005d2: ADD 000005d3: PUSH1 0x40 000005d5: MSTORE 000005d6: DUP1 000005d7: PUSH1 0x28 000005d9: DUP2 000005da: MSTORE 000005db: PUSH1 0x20 000005dd: ADD 000005de: PUSH2 0x1020 000005e1: PUSH1 0x28 000005e3: SWAP2 000005e4: CODECOPY 000005e5: PUSH1 0x01 000005e7: PUSH1 0x00 000005e9: DUP12 000005ea: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000005ff: AND 00000600: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000615: AND 00000616: DUP2 00000617: MSTORE 00000618: PUSH1 0x20 0000061a: ADD 0000061b: SWAP1 0000061c: DUP2 0000061d: MSTORE 0000061e: PUSH1 0x20 00000620: ADD 00000621: PUSH1 0x00 00000623: KECCAK256 00000624: PUSH1 0x00 00000626: PUSH2 0x062d 00000629: PUSH2 0x09ad 0000062c: JUMP 0000062d: JUMPDEST 0000062e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000643: AND 00000644: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000659: AND 0000065a: DUP2 0000065b: MSTORE 0000065c: PUSH1 0x20 0000065e: ADD 0000065f: SWAP1 00000660: DUP2 00000661: MSTORE 00000662: PUSH1 0x20 00000664: ADD 00000665: PUSH1 0x00 00000667: KECCAK256 00000668: SLOAD 00000669: PUSH2 0x0e6d 0000066c: SWAP1 0000066d: SWAP3 0000066e: SWAP2 0000066f: SWAP1 00000670: PUSH4 0xffffffff 00000675: AND 00000676: JUMP 00000677: JUMPDEST 00000678: PUSH2 0x09b5 0000067b: JUMP 0000067c: JUMPDEST 0000067d: PUSH1 0x01 0000067f: SWAP1 00000680: POP 00000681: SWAP4 00000682: SWAP3 00000683: POP 00000684: POP 00000685: POP 00000686: JUMP 00000687: JUMPDEST 00000688: PUSH1 0x00 0000068a: PUSH1 0x05 0000068c: PUSH1 0x00 0000068e: SWAP1 0000068f: SLOAD 00000690: SWAP1 00000691: PUSH2 0x0100 00000694: EXP 00000695: SWAP1 00000696: DIV 00000697: PUSH1 0xff 00000699: AND 0000069a: SWAP1 0000069b: POP 0000069c: SWAP1 0000069d: JUMP 0000069e: JUMPDEST 0000069f: PUSH1 0x00 000006a1: PUSH2 0x0747 000006a4: PUSH2 0x06ab 000006a7: PUSH2 0x09ad 000006aa: JUMP 000006ab: JUMPDEST 000006ac: DUP5 000006ad: PUSH2 0x0742 000006b0: DUP6 000006b1: PUSH1 0x01 000006b3: PUSH1 0x00 000006b5: PUSH2 0x06bc 000006b8: PUSH2 0x09ad 000006bb: JUMP 000006bc: JUMPDEST 000006bd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006d2: AND 000006d3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006e8: AND 000006e9: DUP2 000006ea: MSTORE 000006eb: PUSH1 0x20 000006ed: ADD 000006ee: SWAP1 000006ef: DUP2 000006f0: MSTORE 000006f1: PUSH1 0x20 000006f3: ADD 000006f4: PUSH1 0x00 000006f6: KECCAK256 000006f7: PUSH1 0x00 000006f9: DUP10 000006fa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000070f: AND 00000710: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000725: AND 00000726: DUP2 00000727: MSTORE 00000728: PUSH1 0x20 0000072a: ADD 0000072b: SWAP1 0000072c: DUP2 0000072d: MSTORE 0000072e: PUSH1 0x20 00000730: ADD 00000731: PUSH1 0x00 00000733: KECCAK256 00000734: SLOAD 00000735: PUSH2 0x0f27 00000738: SWAP1 00000739: SWAP2 0000073a: SWAP1 0000073b: PUSH4 0xffffffff 00000740: AND 00000741: JUMP 00000742: JUMPDEST 00000743: PUSH2 0x09b5 00000746: JUMP 00000747: JUMPDEST 00000748: PUSH1 0x01 0000074a: SWAP1 0000074b: POP 0000074c: SWAP3 0000074d: SWAP2 0000074e: POP 0000074f: POP 00000750: JUMP 00000751: JUMPDEST 00000752: PUSH1 0x00 00000754: DUP1 00000755: PUSH1 0x00 00000757: DUP4 00000758: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000076d: AND 0000076e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000783: AND 00000784: DUP2 00000785: MSTORE 00000786: PUSH1 0x20 00000788: ADD 00000789: SWAP1 0000078a: DUP2 0000078b: MSTORE 0000078c: PUSH1 0x20 0000078e: ADD 0000078f: PUSH1 0x00 00000791: KECCAK256 00000792: SLOAD 00000793: SWAP1 00000794: POP 00000795: SWAP2 00000796: SWAP1 00000797: POP 00000798: JUMP 00000799: JUMPDEST 0000079a: PUSH1 0x60 0000079c: PUSH1 0x04 0000079e: DUP1 0000079f: SLOAD 000007a0: PUSH1 0x01 000007a2: DUP2 000007a3: PUSH1 0x01 000007a5: AND 000007a6: ISZERO 000007a7: PUSH2 0x0100 000007aa: MUL 000007ab: SUB 000007ac: AND 000007ad: PUSH1 0x02 000007af: SWAP1 000007b0: DIV 000007b1: DUP1 000007b2: PUSH1 0x1f 000007b4: ADD 000007b5: PUSH1 0x20 000007b7: DUP1 000007b8: SWAP2 000007b9: DIV 000007ba: MUL 000007bb: PUSH1 0x20 000007bd: ADD 000007be: PUSH1 0x40 000007c0: MLOAD 000007c1: SWAP1 000007c2: DUP2 000007c3: ADD 000007c4: PUSH1 0x40 000007c6: MSTORE 000007c7: DUP1 000007c8: SWAP3 000007c9: SWAP2 000007ca: SWAP1 000007cb: DUP2 000007cc: DUP2 000007cd: MSTORE 000007ce: PUSH1 0x20 000007d0: ADD 000007d1: DUP3 000007d2: DUP1 000007d3: SLOAD 000007d4: PUSH1 0x01 000007d6: DUP2 000007d7: PUSH1 0x01 000007d9: AND 000007da: ISZERO 000007db: PUSH2 0x0100 000007de: MUL 000007df: SUB 000007e0: AND 000007e1: PUSH1 0x02 000007e3: SWAP1 000007e4: DIV 000007e5: DUP1 000007e6: ISZERO 000007e7: PUSH2 0x0831 000007ea: JUMPI 000007eb: DUP1 000007ec: PUSH1 0x1f 000007ee: LT 000007ef: PUSH2 0x0806 000007f2: JUMPI 000007f3: PUSH2 0x0100 000007f6: DUP1 000007f7: DUP4 000007f8: SLOAD 000007f9: DIV 000007fa: MUL 000007fb: DUP4 000007fc: MSTORE 000007fd: SWAP2 000007fe: PUSH1 0x20 00000800: ADD 00000801: SWAP2 00000802: PUSH2 0x0831 00000805: JUMP 00000806: JUMPDEST 00000807: DUP3 00000808: ADD 00000809: SWAP2 0000080a: SWAP1 0000080b: PUSH1 0x00 0000080d: MSTORE 0000080e: PUSH1 0x20 00000810: PUSH1 0x00 00000812: KECCAK256 00000813: SWAP1 00000814: JUMPDEST 00000815: DUP2 00000816: SLOAD 00000817: DUP2 00000818: MSTORE 00000819: SWAP1 0000081a: PUSH1 0x01 0000081c: ADD 0000081d: SWAP1 0000081e: PUSH1 0x20 00000820: ADD 00000821: DUP1 00000822: DUP4 00000823: GT 00000824: PUSH2 0x0814 00000827: JUMPI 00000828: DUP3 00000829: SWAP1 0000082a: SUB 0000082b: PUSH1 0x1f 0000082d: AND 0000082e: DUP3 0000082f: ADD 00000830: SWAP2 00000831: JUMPDEST 00000832: POP 00000833: POP 00000834: POP 00000835: POP 00000836: POP 00000837: SWAP1 00000838: POP 00000839: SWAP1 0000083a: JUMP 0000083b: JUMPDEST 0000083c: PUSH1 0x00 0000083e: PUSH2 0x08fe 00000841: PUSH2 0x0848 00000844: PUSH2 0x09ad 00000847: JUMP 00000848: JUMPDEST 00000849: DUP5 0000084a: PUSH2 0x08f9 0000084d: DUP6 0000084e: PUSH1 0x40 00000850: MLOAD 00000851: DUP1 00000852: PUSH1 0x60 00000854: ADD 00000855: PUSH1 0x40 00000857: MSTORE 00000858: DUP1 00000859: PUSH1 0x25 0000085b: DUP2 0000085c: MSTORE 0000085d: PUSH1 0x20 0000085f: ADD 00000860: PUSH2 0x1091 00000863: PUSH1 0x25 00000865: SWAP2 00000866: CODECOPY 00000867: PUSH1 0x01 00000869: PUSH1 0x00 0000086b: PUSH2 0x0872 0000086e: PUSH2 0x09ad 00000871: JUMP 00000872: JUMPDEST 00000873: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000888: AND 00000889: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000089e: AND 0000089f: DUP2 000008a0: MSTORE 000008a1: PUSH1 0x20 000008a3: ADD 000008a4: SWAP1 000008a5: DUP2 000008a6: MSTORE 000008a7: PUSH1 0x20 000008a9: ADD 000008aa: PUSH1 0x00 000008ac: KECCAK256 000008ad: PUSH1 0x00 000008af: DUP11 000008b0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000008c5: AND 000008c6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000008db: AND 000008dc: DUP2 000008dd: MSTORE 000008de: PUSH1 0x20 000008e0: ADD 000008e1: SWAP1 000008e2: DUP2 000008e3: MSTORE 000008e4: PUSH1 0x20 000008e6: ADD 000008e7: PUSH1 0x00 000008e9: KECCAK256 000008ea: SLOAD 000008eb: PUSH2 0x0e6d 000008ee: SWAP1 000008ef: SWAP3 000008f0: SWAP2 000008f1: SWAP1 000008f2: PUSH4 0xffffffff 000008f7: AND 000008f8: JUMP 000008f9: JUMPDEST 000008fa: PUSH2 0x09b5 000008fd: JUMP 000008fe: JUMPDEST 000008ff: PUSH1 0x01 00000901: SWAP1 00000902: POP 00000903: SWAP3 00000904: SWAP2 00000905: POP 00000906: POP 00000907: JUMP 00000908: JUMPDEST 00000909: PUSH1 0x00 0000090b: PUSH2 0x091c 0000090e: PUSH2 0x0915 00000911: PUSH2 0x09ad 00000914: JUMP 00000915: JUMPDEST 00000916: DUP5 00000917: DUP5 00000918: PUSH2 0x0bac 0000091b: JUMP 0000091c: JUMPDEST 0000091d: PUSH1 0x01 0000091f: SWAP1 00000920: POP 00000921: SWAP3 00000922: SWAP2 00000923: POP 00000924: POP 00000925: JUMP 00000926: JUMPDEST 00000927: PUSH1 0x00 00000929: PUSH1 0x01 0000092b: PUSH1 0x00 0000092d: DUP5 0000092e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000943: AND 00000944: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000959: AND 0000095a: DUP2 0000095b: MSTORE 0000095c: PUSH1 0x20 0000095e: ADD 0000095f: SWAP1 00000960: DUP2 00000961: MSTORE 00000962: PUSH1 0x20 00000964: ADD 00000965: PUSH1 0x00 00000967: KECCAK256 00000968: PUSH1 0x00 0000096a: DUP4 0000096b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000980: AND 00000981: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000996: AND 00000997: DUP2 00000998: MSTORE 00000999: PUSH1 0x20 0000099b: ADD 0000099c: SWAP1 0000099d: DUP2 0000099e: MSTORE 0000099f: PUSH1 0x20 000009a1: ADD 000009a2: PUSH1 0x00 000009a4: KECCAK256 000009a5: SLOAD 000009a6: SWAP1 000009a7: POP 000009a8: SWAP3 000009a9: SWAP2 000009aa: POP 000009ab: POP 000009ac: JUMP 000009ad: JUMPDEST 000009ae: PUSH1 0x00 000009b0: CALLER 000009b1: SWAP1 000009b2: POP 000009b3: SWAP1 000009b4: JUMP 000009b5: JUMPDEST 000009b6: PUSH1 0x00 000009b8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000009cd: AND 000009ce: DUP4 000009cf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000009e4: AND 000009e5: EQ 000009e6: ISZERO 000009e7: PUSH2 0x0a3b 000009ea: JUMPI 000009eb: PUSH1 0x40 000009ed: MLOAD 000009ee: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000a0f: DUP2 00000a10: MSTORE 00000a11: PUSH1 0x04 00000a13: ADD 00000a14: DUP1 00000a15: DUP1 00000a16: PUSH1 0x20 00000a18: ADD 00000a19: DUP3 00000a1a: DUP2 00000a1b: SUB 00000a1c: DUP3 00000a1d: MSTORE 00000a1e: PUSH1 0x24 00000a20: DUP2 00000a21: MSTORE 00000a22: PUSH1 0x20 00000a24: ADD 00000a25: DUP1 00000a26: PUSH2 0x106d 00000a29: PUSH1 0x24 00000a2b: SWAP2 00000a2c: CODECOPY 00000a2d: PUSH1 0x40 00000a2f: ADD 00000a30: SWAP2 00000a31: POP 00000a32: POP 00000a33: PUSH1 0x40 00000a35: MLOAD 00000a36: DUP1 00000a37: SWAP2 00000a38: SUB 00000a39: SWAP1 00000a3a: REVERT 00000a3b: JUMPDEST 00000a3c: PUSH1 0x00 00000a3e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a53: AND 00000a54: DUP3 00000a55: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a6a: AND 00000a6b: EQ 00000a6c: ISZERO 00000a6d: PUSH2 0x0ac1 00000a70: JUMPI 00000a71: PUSH1 0x40 00000a73: MLOAD 00000a74: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000a95: DUP2 00000a96: MSTORE 00000a97: PUSH1 0x04 00000a99: ADD 00000a9a: DUP1 00000a9b: DUP1 00000a9c: PUSH1 0x20 00000a9e: ADD 00000a9f: DUP3 00000aa0: DUP2 00000aa1: SUB 00000aa2: DUP3 00000aa3: MSTORE 00000aa4: PUSH1 0x22 00000aa6: DUP2 00000aa7: MSTORE 00000aa8: PUSH1 0x20 00000aaa: ADD 00000aab: DUP1 00000aac: PUSH2 0x0fd8 00000aaf: PUSH1 0x22 00000ab1: SWAP2 00000ab2: CODECOPY 00000ab3: PUSH1 0x40 00000ab5: ADD 00000ab6: SWAP2 00000ab7: POP 00000ab8: POP 00000ab9: PUSH1 0x40 00000abb: MLOAD 00000abc: DUP1 00000abd: SWAP2 00000abe: SUB 00000abf: SWAP1 00000ac0: REVERT 00000ac1: JUMPDEST 00000ac2: DUP1 00000ac3: PUSH1 0x01 00000ac5: PUSH1 0x00 00000ac7: DUP6 00000ac8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000add: AND 00000ade: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000af3: AND 00000af4: DUP2 00000af5: MSTORE 00000af6: PUSH1 0x20 00000af8: ADD 00000af9: SWAP1 00000afa: DUP2 00000afb: MSTORE 00000afc: PUSH1 0x20 00000afe: ADD 00000aff: PUSH1 0x00 00000b01: KECCAK256 00000b02: PUSH1 0x00 00000b04: DUP5 00000b05: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b1a: AND 00000b1b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b30: AND 00000b31: DUP2 00000b32: MSTORE 00000b33: PUSH1 0x20 00000b35: ADD 00000b36: SWAP1 00000b37: DUP2 00000b38: MSTORE 00000b39: PUSH1 0x20 00000b3b: ADD 00000b3c: PUSH1 0x00 00000b3e: KECCAK256 00000b3f: DUP2 00000b40: SWAP1 00000b41: SSTORE 00000b42: POP 00000b43: DUP2 00000b44: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b59: AND 00000b5a: DUP4 00000b5b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b70: AND 00000b71: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 00000b92: DUP4 00000b93: PUSH1 0x40 00000b95: MLOAD 00000b96: DUP1 00000b97: DUP3 00000b98: DUP2 00000b99: MSTORE 00000b9a: PUSH1 0x20 00000b9c: ADD 00000b9d: SWAP2 00000b9e: POP 00000b9f: POP 00000ba0: PUSH1 0x40 00000ba2: MLOAD 00000ba3: DUP1 00000ba4: SWAP2 00000ba5: SUB 00000ba6: SWAP1 00000ba7: LOG3 00000ba8: POP 00000ba9: POP 00000baa: POP 00000bab: JUMP 00000bac: JUMPDEST 00000bad: PUSH1 0x00 00000baf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000bc4: AND 00000bc5: DUP4 00000bc6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000bdb: AND 00000bdc: EQ 00000bdd: ISZERO 00000bde: PUSH2 0x0c32 00000be1: JUMPI 00000be2: PUSH1 0x40 00000be4: MLOAD 00000be5: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000c06: DUP2 00000c07: MSTORE 00000c08: PUSH1 0x04 00000c0a: ADD 00000c0b: DUP1 00000c0c: DUP1 00000c0d: PUSH1 0x20 00000c0f: ADD 00000c10: DUP3 00000c11: DUP2 00000c12: SUB 00000c13: DUP3 00000c14: MSTORE 00000c15: PUSH1 0x25 00000c17: DUP2 00000c18: MSTORE 00000c19: PUSH1 0x20 00000c1b: ADD 00000c1c: DUP1 00000c1d: PUSH2 0x1048 00000c20: PUSH1 0x25 00000c22: SWAP2 00000c23: CODECOPY 00000c24: PUSH1 0x40 00000c26: ADD 00000c27: SWAP2 00000c28: POP 00000c29: POP 00000c2a: PUSH1 0x40 00000c2c: MLOAD 00000c2d: DUP1 00000c2e: SWAP2 00000c2f: SUB 00000c30: SWAP1 00000c31: REVERT 00000c32: JUMPDEST 00000c33: PUSH1 0x00 00000c35: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c4a: AND 00000c4b: DUP3 00000c4c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c61: AND 00000c62: EQ 00000c63: ISZERO 00000c64: PUSH2 0x0cb8 00000c67: JUMPI 00000c68: PUSH1 0x40 00000c6a: MLOAD 00000c6b: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000c8c: DUP2 00000c8d: MSTORE 00000c8e: PUSH1 0x04 00000c90: ADD 00000c91: DUP1 00000c92: DUP1 00000c93: PUSH1 0x20 00000c95: ADD 00000c96: DUP3 00000c97: DUP2 00000c98: SUB 00000c99: DUP3 00000c9a: MSTORE 00000c9b: PUSH1 0x23 00000c9d: DUP2 00000c9e: MSTORE 00000c9f: PUSH1 0x20 00000ca1: ADD 00000ca2: DUP1 00000ca3: PUSH2 0x0fb5 00000ca6: PUSH1 0x23 00000ca8: SWAP2 00000ca9: CODECOPY 00000caa: PUSH1 0x40 00000cac: ADD 00000cad: SWAP2 00000cae: POP 00000caf: POP 00000cb0: PUSH1 0x40 00000cb2: MLOAD 00000cb3: DUP1 00000cb4: SWAP2 00000cb5: SUB 00000cb6: SWAP1 00000cb7: REVERT 00000cb8: JUMPDEST 00000cb9: PUSH2 0x0cc3 00000cbc: DUP4 00000cbd: DUP4 00000cbe: DUP4 00000cbf: PUSH2 0x0faf 00000cc2: JUMP 00000cc3: JUMPDEST 00000cc4: PUSH2 0x0d2e 00000cc7: DUP2 00000cc8: PUSH1 0x40 00000cca: MLOAD 00000ccb: DUP1 00000ccc: PUSH1 0x60 00000cce: ADD 00000ccf: PUSH1 0x40 00000cd1: MSTORE 00000cd2: DUP1 00000cd3: PUSH1 0x26 00000cd5: DUP2 00000cd6: MSTORE 00000cd7: PUSH1 0x20 00000cd9: ADD 00000cda: PUSH2 0x0ffa 00000cdd: PUSH1 0x26 00000cdf: SWAP2 00000ce0: CODECOPY 00000ce1: PUSH1 0x00 00000ce3: DUP1 00000ce4: DUP8 00000ce5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000cfa: AND 00000cfb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d10: AND 00000d11: DUP2 00000d12: MSTORE 00000d13: PUSH1 0x20 00000d15: ADD 00000d16: SWAP1 00000d17: DUP2 00000d18: MSTORE 00000d19: PUSH1 0x20 00000d1b: ADD 00000d1c: PUSH1 0x00 00000d1e: KECCAK256 00000d1f: SLOAD 00000d20: PUSH2 0x0e6d 00000d23: SWAP1 00000d24: SWAP3 00000d25: SWAP2 00000d26: SWAP1 00000d27: PUSH4 0xffffffff 00000d2c: AND 00000d2d: JUMP 00000d2e: JUMPDEST 00000d2f: PUSH1 0x00 00000d31: DUP1 00000d32: DUP6 00000d33: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d48: AND 00000d49: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d5e: AND 00000d5f: DUP2 00000d60: MSTORE 00000d61: PUSH1 0x20 00000d63: ADD 00000d64: SWAP1 00000d65: DUP2 00000d66: MSTORE 00000d67: PUSH1 0x20 00000d69: ADD 00000d6a: PUSH1 0x00 00000d6c: KECCAK256 00000d6d: DUP2 00000d6e: SWAP1 00000d6f: SSTORE 00000d70: POP 00000d71: PUSH2 0x0dc1 00000d74: DUP2 00000d75: PUSH1 0x00 00000d77: DUP1 00000d78: DUP6 00000d79: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d8e: AND 00000d8f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000da4: AND 00000da5: DUP2 00000da6: MSTORE 00000da7: PUSH1 0x20 00000da9: ADD 00000daa: SWAP1 00000dab: DUP2 00000dac: MSTORE 00000dad: PUSH1 0x20 00000daf: ADD 00000db0: PUSH1 0x00 00000db2: KECCAK256 00000db3: SLOAD 00000db4: PUSH2 0x0f27 00000db7: SWAP1 00000db8: SWAP2 00000db9: SWAP1 00000dba: PUSH4 0xffffffff 00000dbf: AND 00000dc0: JUMP 00000dc1: JUMPDEST 00000dc2: PUSH1 0x00 00000dc4: DUP1 00000dc5: DUP5 00000dc6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ddb: AND 00000ddc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000df1: AND 00000df2: DUP2 00000df3: MSTORE 00000df4: PUSH1 0x20 00000df6: ADD 00000df7: SWAP1 00000df8: DUP2 00000df9: MSTORE 00000dfa: PUSH1 0x20 00000dfc: ADD 00000dfd: PUSH1 0x00 00000dff: KECCAK256 00000e00: DUP2 00000e01: SWAP1 00000e02: SSTORE 00000e03: POP 00000e04: DUP2 00000e05: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e1a: AND 00000e1b: DUP4 00000e1c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e31: AND 00000e32: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00000e53: DUP4 00000e54: PUSH1 0x40 00000e56: MLOAD 00000e57: DUP1 00000e58: DUP3 00000e59: DUP2 00000e5a: MSTORE 00000e5b: PUSH1 0x20 00000e5d: ADD 00000e5e: SWAP2 00000e5f: POP 00000e60: POP 00000e61: PUSH1 0x40 00000e63: MLOAD 00000e64: DUP1 00000e65: SWAP2 00000e66: SUB 00000e67: SWAP1 00000e68: LOG3 00000e69: POP 00000e6a: POP 00000e6b: POP 00000e6c: JUMP 00000e6d: JUMPDEST 00000e6e: PUSH1 0x00 00000e70: DUP4 00000e71: DUP4 00000e72: GT 00000e73: ISZERO 00000e74: DUP3 00000e75: SWAP1 00000e76: PUSH2 0x0f1a 00000e79: JUMPI 00000e7a: PUSH1 0x40 00000e7c: MLOAD 00000e7d: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000e9e: DUP2 00000e9f: MSTORE 00000ea0: PUSH1 0x04 00000ea2: ADD 00000ea3: DUP1 00000ea4: DUP1 00000ea5: PUSH1 0x20 00000ea7: ADD 00000ea8: DUP3 00000ea9: DUP2 00000eaa: SUB 00000eab: DUP3 00000eac: MSTORE 00000ead: DUP4 00000eae: DUP2 00000eaf: DUP2 00000eb0: MLOAD 00000eb1: DUP2 00000eb2: MSTORE 00000eb3: PUSH1 0x20 00000eb5: ADD 00000eb6: SWAP2 00000eb7: POP 00000eb8: DUP1 00000eb9: MLOAD 00000eba: SWAP1 00000ebb: PUSH1 0x20 00000ebd: ADD 00000ebe: SWAP1 00000ebf: DUP1 00000ec0: DUP4 00000ec1: DUP4 00000ec2: PUSH1 0x00 00000ec4: JUMPDEST 00000ec5: DUP4 00000ec6: DUP2 00000ec7: LT 00000ec8: ISZERO 00000ec9: PUSH2 0x0edf 00000ecc: JUMPI 00000ecd: DUP1 00000ece: DUP3 00000ecf: ADD 00000ed0: MLOAD 00000ed1: DUP2 00000ed2: DUP5 00000ed3: ADD 00000ed4: MSTORE 00000ed5: PUSH1 0x20 00000ed7: DUP2 00000ed8: ADD 00000ed9: SWAP1 00000eda: POP 00000edb: PUSH2 0x0ec4 00000ede: JUMP 00000edf: JUMPDEST 00000ee0: POP 00000ee1: POP 00000ee2: POP 00000ee3: POP 00000ee4: SWAP1 00000ee5: POP 00000ee6: SWAP1 00000ee7: DUP2 00000ee8: ADD 00000ee9: SWAP1 00000eea: PUSH1 0x1f 00000eec: AND 00000eed: DUP1 00000eee: ISZERO 00000eef: PUSH2 0x0f0c 00000ef2: JUMPI 00000ef3: DUP1 00000ef4: DUP3 00000ef5: SUB 00000ef6: DUP1 00000ef7: MLOAD 00000ef8: PUSH1 0x01 00000efa: DUP4 00000efb: PUSH1 0x20 00000efd: SUB 00000efe: PUSH2 0x0100 00000f01: EXP 00000f02: SUB 00000f03: NOT 00000f04: AND 00000f05: DUP2 00000f06: MSTORE 00000f07: PUSH1 0x20 00000f09: ADD 00000f0a: SWAP2 00000f0b: POP 00000f0c: JUMPDEST 00000f0d: POP 00000f0e: SWAP3 00000f0f: POP 00000f10: POP 00000f11: POP 00000f12: PUSH1 0x40 00000f14: MLOAD 00000f15: DUP1 00000f16: SWAP2 00000f17: SUB 00000f18: SWAP1 00000f19: REVERT 00000f1a: JUMPDEST 00000f1b: POP 00000f1c: DUP3 00000f1d: DUP5 00000f1e: SUB 00000f1f: SWAP1 00000f20: POP 00000f21: SWAP4 00000f22: SWAP3 00000f23: POP 00000f24: POP 00000f25: POP 00000f26: JUMP 00000f27: JUMPDEST 00000f28: PUSH1 0x00 00000f2a: DUP1 00000f2b: DUP3 00000f2c: DUP5 00000f2d: ADD 00000f2e: SWAP1 00000f2f: POP 00000f30: DUP4 00000f31: DUP2 00000f32: LT 00000f33: ISZERO 00000f34: PUSH2 0x0fa5 00000f37: JUMPI 00000f38: PUSH1 0x40 00000f3a: MLOAD 00000f3b: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000f5c: DUP2 00000f5d: MSTORE 00000f5e: PUSH1 0x04 00000f60: ADD 00000f61: DUP1 00000f62: DUP1 00000f63: PUSH1 0x20 00000f65: ADD 00000f66: DUP3 00000f67: DUP2 00000f68: SUB 00000f69: DUP3 00000f6a: MSTORE 00000f6b: PUSH1 0x1b 00000f6d: DUP2 00000f6e: MSTORE 00000f6f: PUSH1 0x20 00000f71: ADD 00000f72: DUP1 00000f73: PUSH32 0x536166654d6174683a206164646974696f6e206f766572666c6f770000000000 00000f94: DUP2 00000f95: MSTORE 00000f96: POP 00000f97: PUSH1 0x20 00000f99: ADD 00000f9a: SWAP2 00000f9b: POP 00000f9c: POP 00000f9d: PUSH1 0x40 00000f9f: MLOAD 00000fa0: DUP1 00000fa1: SWAP2 00000fa2: SUB 00000fa3: SWAP1 00000fa4: REVERT 00000fa5: JUMPDEST 00000fa6: DUP1 00000fa7: SWAP2 00000fa8: POP 00000fa9: POP 00000faa: SWAP3 00000fab: SWAP2 00000fac: POP 00000fad: POP 00000fae: JUMP 00000faf: JUMPDEST 00000fb0: POP 00000fb1: POP 00000fb2: POP 00000fb3: JUMP 00000fb4: INVALID 00000fb5: GASLIMIT 00000fb6: MSTORE 00000fb7: NUMBER 00000fb8: ORIGIN 00000fb9: ADDRESS 00000fba: GASPRICE 00000fbb: KECCAK256 00000fbc: PUSH21 0x72616e7366657220746f20746865207a65726f2061 00000fd2: PUSH5 0x6472657373 00000fd8: GASLIMIT 00000fd9: MSTORE 00000fda: NUMBER 00000fdb: ORIGIN 00000fdc: ADDRESS 00000fdd: GASPRICE 00000fde: KECCAK256 00000fdf: PUSH2 0x7070 00000fe2: PUSH19 0x6f766520746f20746865207a65726f20616464 00000ff6: PUSH19 0x65737345524332303a207472616e7366657220 0000100a: PUSH2 0x6d6f 0000100d: PUSH22 0x6e7420657863656564732062616c616e636545524332 00001024: ADDRESS 00001025: GASPRICE 00001026: KECCAK256 00001027: PUSH21 0x72616e7366657220616d6f756e7420657863656564 0000103d: PUSH20 0x20616c6c6f77616e636545524332303a20747261 00001052: PUSH15 0x736665722066726f6d20746865207a 00001062: PUSH6 0x726f20616464 00001069: PUSH19 0x65737345524332303a20617070726f76652066 0000107d: PUSH19 0x6f6d20746865207a65726f2061646472657373 00001091: GASLIMIT 00001092: MSTORE 00001093: NUMBER 00001094: ORIGIN 00001095: ADDRESS 00001096: GASPRICE 00001097: KECCAK256 00001098: PUSH5 0x6563726561 0000109e: PUSH20 0x656420616c6c6f77616e63652062656c6f77207a 000010b3: PUSH6 0x726fa2646970 000010ba: PUSH7 0x73582212201c80 000010c2: UNKNOWN(0xD9) 000010c3: DUP15 000010c4: PUSH22 0xa30d9f20c93018473aa8e00631c18de5301dcf9daf4c 000010db: LOG0 000010dc: RETURNDATASIZE 000010dd: UNKNOWN(0x4B) 000010de: UNKNOWN(0x4B) 000010df: UNKNOWN(0xB1) 000010e0: PUSH5 0x736f6c6343 000010e6: STOP 000010e7: MOD 000010e8: MOD 000010e9: STOP 000010ea: 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": "0x39509351",
"selector": "0x39509351",
"calldata_variants": [
"0x39509351",
"0x395093510000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x70a08231",
"selector": "0x70a08231",
"calldata_variants": [
"0x70a08231",
"0x70a082310000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x95d89b41",
"selector": "0x95d89b41",
"calldata_variants": [
"0x95d89b41",
"0x95d89b410000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa457c2d7",
"selector": "0xa457c2d7",
"calldata_variants": [
"0xa457c2d7",
"0xa457c2d70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa9059cbb",
"selector": "0xa9059cbb",
"calldata_variants": [
"0xa9059cbb",
"0xa9059cbb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x095ea7b3",
"selector": "0x095ea7b3",
"calldata_variants": [
"0x095ea7b3",
"0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 4024,
"type": "tx_origin_used"
},
{
"pc": 4059,
"type": "tx_origin_used"
},
{
"pc": 4244,
"type": "tx_origin_used"
}
]
}
|