019bab3b-aaf6-737d-805c-4a5b8f6d3739
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 |
|---|---|---|---|---|
| 38436 | artifact.fetch | complete | 1 / 3 | 3 months ago |
| 38437 | proxy.resolve | complete | 1 / 3 | 3 months ago |
| 38438 | tool.cast_disasm | complete | 1 / 3 | 3 months ago |
| 38439 | analysis.bundle | complete | 1 / 3 | 3 months ago |
| 38440 | capability.graph | complete | 1 / 3 | 3 months ago |
| 38441 | detector.run | complete | 1 / 3 | 3 months ago |
| 38442 | validation.fork | complete | 1 / 3 | 3 months ago |
| 39005 | report.consolidate | complete | 1 / 6 | 3 months ago |
| 39006 | tool.slither | failed | 2 / 2 | 3 months ago |
{
"method": "etherscan+onchain",
"status": "confirmed",
"etherscan_hint": {
"source": "etherscan",
"etherscan": {
"proxy_flag": true,
"implementation": "0xb0d6eed90f8e497b867f557c44a49c8c81fa0a5d"
}
},
"implementation": "0xb0d6eed90f8e497b867f557c44a49c8c81fa0a5d",
"onchain_method": "eip1967"
}
Traceback (most recent call last):
File "/var/www/tripwire/worker/worker.py", line 198, in main
payload = dispatch_job(job_type, job_id, job_meta, run_data, config, laravel_client)
File "/var/www/tripwire/worker/worker.py", line 114, in dispatch_job
return slither_run.run(job_id, job_meta, run_data, config, log, laravel_client)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/tripwire/worker/jobs/slither_run.py", line 1084, in run
stdout_text, stderr_text, result_json = _run_slither(
~~~~~~~~~~~~^
workspace,
^^^^^^^^^^
...<4 lines>...
target_path=target_path,
^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/var/www/tripwire/worker/jobs/slither_run.py", line 958, in _run_slither
raise RuntimeError(f"slither failed (exit {result.returncode}): {stderr_text or stdout_text}")
RuntimeError: slither failed (exit 1): 'forge clean' running (wd: /tmp/slither-wy4n20i6)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-wy4n20i6)
'forge' returned non-zero exit code 1
Error: Encountered invalid solc version in lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol: No solc version exists that matches the version requirement: ^0.8.22
Traceback (most recent call last):
File "/var/www/tripwire/.venv/bin/slither", line 10, in <module>
sys.exit(main())
~~~~^^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 776, in main
main_impl(all_detector_classes=detectors, all_printer_classes=printers)
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 882, in main_impl
) = process_all(filename, args, detector_classes, printer_classes)
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 96, in process_all
compilations = compile_all(target, **vars(args))
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 722, in compile_all
compilations.append(CryticCompile(target, **kwargs))
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 211, in __init__
self._compile(**kwargs)
~~~~~~~~~~~~~^^^^^^^^^^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 633, in _compile
self._platform.compile(self, **kwargs)
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/platform/foundry.py", line 102, in compile
hardhat_like_parsing(
~~~~~~~~~~~~~~~~~~~~^
crytic_compile, str(self._target), build_directory, str(self._project_root)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/platform/hardhat.py", line 52, in hardhat_like_parsing
raise InvalidCompilation(txt)
crytic_compile.platform.exceptions.InvalidCompilation: Compilation failed. Can you run build command?
/tmp/slither-wy4n20i6/out/build-info is not a directory.
{"no_findings":true,"summary":"Reviewed the first-party implementation sources in AUDIT_BUNDLE.txt; no exploitable vulnerabilities found in the token router/collateral logic under the requested focus areas.","findings":[]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-rilhxer_
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bab81-e2be-7650-a7d5-05d870971794
--------
user
Context: The user requested the proxy at 0x81c2813aa88f66bca1e55838045aaceb72febfc1.
Audit the implementation at 0xb0d6eed90f8e497b867f557c44a49c8c81fa0a5d.
Findings should refer to the implementation unless explicitly about proxy mechanics.
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
**Reading AUDIT_BUNDLE file**
exec
/bin/bash -lc ls in /tmp/codex-rilhxer_ succeeded in 8ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
contracts
@hyperlane-xyz
@openzeppelin
exec
/bin/bash -lc "sed -n '1,200p' AUDIT_BUNDLE.txt" in /tmp/codex-rilhxer_ succeeded in 27ms:
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: @hyperlane-xyz/core/contracts/client/GasRouter.sol
================================================================================
// SPDX-License-Identifier: MIT OR Apache-2.0
pragma solidity >=0.6.11;
import {Router} from "./Router.sol";
import {StandardHookMetadata} from "../hooks/libs/StandardHookMetadata.sol";
abstract contract GasRouter is Router {
// ============ Mutable Storage ============
mapping(uint32 => uint256) public destinationGas;
struct GasRouterConfig {
uint32 domain;
uint256 gas;
}
exec
/bin/bash -lc "sed -n '200,400p' AUDIT_BUNDLE.txt" in /tmp/codex-rilhxer_ succeeded in 27ms:
) internal view virtual returns (uint256) {
return
mailbox.quoteDispatch(
_destinationDomain,
_recipient,
_messageBody,
_metadata(_destinationDomain),
hook
);
}
}
================================================================================
FILE: @hyperlane-xyz/core/contracts/client/Router.sol
================================================================================
// SPDX-License-Identifier: MIT OR Apache-2.0
pragma solidity >=0.6.11;
// ============ Internal Imports ============
import {IMessageRecipient} from "../interfaces/IMessageRecipient.sol";
exec
/bin/bash -lc "sed -n '400,800p' AUDIT_BUNDLE.txt" in /tmp/codex-rilhxer_ succeeded in 19ms:
function _quoteDispatch(
uint32 _destinationDomain,
bytes memory _messageBody
) internal view virtual returns (uint256) {
bytes32 _router = _mustHaveRemoteRouter(_destinationDomain);
return super._quoteDispatch(_destinationDomain, _router, _messageBody);
}
}
================================================================================
FILE: @hyperlane-xyz/core/contracts/hooks/libs/StandardHookMetadata.sol
================================================================================
// SPDX-License-Identifier: MIT OR Apache-2.0
pragma solidity >=0.8.0;
/*@@@@@@@ @@@@@@@@@
@@@@@@@@@ @@@@@@@@@
@@@@@@@@@ @@@@@@@@@
@@@@@@@@@ @@@@@@@@@
exec
/bin/bash -lc "sed -n '800,1200p' AUDIT_BUNDLE.txt" in /tmp/codex-rilhxer_ succeeded in 18ms:
/**
* @notice Post action after a message is dispatched via the Mailbox
* @param metadata The metadata required for the hook
* @param message The message passed from the Mailbox.dispatch() call
*/
function postDispatch(
bytes calldata metadata,
bytes calldata message
) external payable;
/**
* @notice Compute the payment required by the postDispatch call
* @param metadata The metadata required for the hook
* @param message The message passed from the Mailbox.dispatch() call
* @return Quoted payment for the postDispatch call
*/
function quoteDispatch(
bytes calldata metadata,
bytes calldata message
) external view returns (uint256);
exec
/bin/bash -lc "sed -n '1200,1600p' AUDIT_BUNDLE.txt" in /tmp/codex-rilhxer_ succeeded in 12ms:
import {TypeCasts} from "@hyperlane-xyz/core/contracts/libs/TypeCasts.sol";
import {TokenMessage} from "./TokenMessage.sol";
import {StorageSlot} from "@openzeppelin/contracts/utils/StorageSlot.sol";
/**
* @title Hyperlane Token Router that extends Router with abstract token (ERC20/ERC721) remote transfer functionality.
* @author Abacus Works
*/
abstract contract TokenRouter is GasRouter {
using TypeCasts for bytes32;
using TypeCasts for address;
using TokenMessage for bytes;
// ============ KINESIS BRIDGE EXTENSIONS ============
bytes32 private constant MAX_KADENA_CHAIN_ID_SLOT = keccak256("kinesis.bridge.tokenrouter.maxKadenaChainId");
/**
* @dev Emitted on `transferRemote` when a transfer message is dispatched.
* @param destination The identifier of the destination chain.
* @param recipientHash The hash of the recipient for filtering.
thinking
**Assessing upgradeable contract patterns and potential risks**
I'm carefully reviewing the upgradeable contract design, focusing on constructor vs initializer usage and immutables in proxy scenarios, along with possible reentrancy around token transfers and message handling. I’m weighing if unexpected behaviors or misconfigurations pose real vulnerabilities or are just design nuances.
exec
/bin/bash -lc 'tail -n 20 AUDIT_BUNDLE.txt' in /tmp/codex-rilhxer_ succeeded in 7ms:
*/
function setMaxKadenaChainId(uint16 _newMaxChainId) public onlyOwner {
uint16 currentMaxChainId = getMaxKadenaChainId();
require(
currentMaxChainId != _newMaxChainId, "TokenRouter: new max chain ID is the same as the current max chain ID"
);
StorageSlot.getUint256Slot(MAX_KADENA_CHAIN_ID_SLOT).value = _newMaxChainId;
emit MaxKadenaChainIdSet(currentMaxChainId, _newMaxChainId);
}
/**
* @notice Returns the maximum allowed Kadena chain ID for cross-chain transfers
* @return The current maximum Kadena chain ID value
*/
function getMaxKadenaChainId() public view returns (uint16) {
return uint16(StorageSlot.getUint256Slot(MAX_KADENA_CHAIN_ID_SLOT).value);
}
}
thinking
**Summarizing vulnerability analysis**
codex
{"no_findings":true,"summary":"Reviewed the first-party implementation sources in AUDIT_BUNDLE.txt; no exploitable vulnerabilities found in the token router/collateral logic under the requested focus areas.","findings":[]}
tokens used
18,044
{
"codex": {
"ran_at": "2026-01-11T05:23:39.441983+00:00",
"returncode": 0
},
"project": {
"mode": "source",
"file_count": 28,
"import_count": 34,
"first_party_contracts_count": 14
},
"summary": "Reviewed the first-party implementation sources in AUDIT_BUNDLE.txt; no exploitable vulnerabilities found in the token router/collateral logic under the requested focus areas.",
"raw_final": {
"summary": "Reviewed the first-party implementation sources in AUDIT_BUNDLE.txt; no exploitable vulnerabilities found in the token router/collateral logic under the requested focus areas.",
"findings": [],
"no_findings": true
},
"no_findings": true,
"proxy_context": {
"proxy_run_id": "019bab3b-aaf6-737d-805c-4a5b8f6d3739",
"proxy_address": "0x81c2813aa88f66bca1e55838045aaceb72febfc1",
"implementation_run_id": "019bab3c-acf0-7088-b150-fa883a5349a3",
"implementation_address": "0xb0d6eed90f8e497b867f557c44a49c8c81fa0a5d"
},
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: CALLDATASIZE 00000006: PUSH2 0x0013 00000009: JUMPI 0000000a: PUSH2 0x0011 0000000d: PUSH2 0x0017 00000010: JUMP 00000011: JUMPDEST 00000012: STOP 00000013: JUMPDEST 00000014: PUSH2 0x0011 00000017: JUMPDEST 00000018: PUSH2 0x001f 0000001b: PUSH2 0x0169 0000001e: JUMP 0000001f: JUMPDEST 00000020: PUSH1 0x01 00000022: PUSH1 0x01 00000024: PUSH1 0xa0 00000026: SHL 00000027: SUB 00000028: AND 00000029: CALLER 0000002a: SUB 0000002b: PUSH2 0x015f 0000002e: JUMPI 0000002f: PUSH1 0x60 00000031: PUSH1 0x01 00000033: PUSH1 0x01 00000035: PUSH1 0xe0 00000037: SHL 00000038: SUB 00000039: NOT 0000003a: PUSH1 0x00 0000003c: CALLDATALOAD 0000003d: AND 0000003e: PUSH4 0x64d3180d 00000043: PUSH1 0xe1 00000045: SHL 00000046: DUP2 00000047: ADD 00000048: PUSH2 0x005a 0000004b: JUMPI 0000004c: PUSH2 0x0053 0000004f: PUSH2 0x019c 00000052: JUMP 00000053: JUMPDEST 00000054: SWAP2 00000055: POP 00000056: PUSH2 0x0157 00000059: JUMP 0000005a: JUMPDEST 0000005b: PUSH4 0x587086bd 00000060: PUSH1 0xe1 00000062: SHL 00000063: PUSH1 0x01 00000065: PUSH1 0x01 00000067: PUSH1 0xe0 00000069: SHL 0000006a: SUB 0000006b: NOT 0000006c: DUP3 0000006d: AND 0000006e: ADD 0000006f: PUSH2 0x007a 00000072: JUMPI 00000073: PUSH2 0x0053 00000076: PUSH2 0x01f3 00000079: JUMP 0000007a: JUMPDEST 0000007b: PUSH4 0x070d7c69 00000080: PUSH1 0xe4 00000082: SHL 00000083: PUSH1 0x01 00000085: PUSH1 0x01 00000087: PUSH1 0xe0 00000089: SHL 0000008a: SUB 0000008b: NOT 0000008c: DUP3 0000008d: AND 0000008e: ADD 0000008f: PUSH2 0x009a 00000092: JUMPI 00000093: PUSH2 0x0053 00000096: PUSH2 0x0239 00000099: JUMP 0000009a: JUMPDEST 0000009b: PUSH3 0x1eb96f 0000009f: PUSH1 0xe6 000000a1: SHL 000000a2: PUSH1 0x01 000000a4: PUSH1 0x01 000000a6: PUSH1 0xe0 000000a8: SHL 000000a9: SUB 000000aa: NOT 000000ab: DUP3 000000ac: AND 000000ad: ADD 000000ae: PUSH2 0x00b9 000000b1: JUMPI 000000b2: PUSH2 0x0053 000000b5: PUSH2 0x026a 000000b8: JUMP 000000b9: JUMPDEST 000000ba: PUSH4 0xa39f25e5 000000bf: PUSH1 0xe0 000000c1: SHL 000000c2: PUSH1 0x01 000000c4: PUSH1 0x01 000000c6: PUSH1 0xe0 000000c8: SHL 000000c9: SUB 000000ca: NOT 000000cb: DUP3 000000cc: AND 000000cd: ADD 000000ce: PUSH2 0x00d9 000000d1: JUMPI 000000d2: PUSH2 0x0053 000000d5: PUSH2 0x02aa 000000d8: JUMP 000000d9: JUMPDEST 000000da: PUSH1 0x40 000000dc: MLOAD 000000dd: PUSH3 0x461bcd 000000e1: PUSH1 0xe5 000000e3: SHL 000000e4: DUP2 000000e5: MSTORE 000000e6: PUSH1 0x20 000000e8: PUSH1 0x04 000000ea: DUP3 000000eb: ADD 000000ec: MSTORE 000000ed: PUSH1 0x42 000000ef: PUSH1 0x24 000000f1: DUP3 000000f2: ADD 000000f3: MSTORE 000000f4: PUSH32 0x5472616e73706172656e745570677261646561626c6550726f78793a2061646d 00000115: PUSH1 0x44 00000117: DUP3 00000118: ADD 00000119: MSTORE 0000011a: PUSH32 0x696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267 0000013b: PUSH1 0x64 0000013d: DUP3 0000013e: ADD 0000013f: MSTORE 00000140: PUSH2 0x195d 00000143: PUSH1 0xf2 00000145: SHL 00000146: PUSH1 0x84 00000148: DUP3 00000149: ADD 0000014a: MSTORE 0000014b: PUSH1 0xa4 0000014d: ADD 0000014e: JUMPDEST 0000014f: PUSH1 0x40 00000151: MLOAD 00000152: DUP1 00000153: SWAP2 00000154: SUB 00000155: SWAP1 00000156: REVERT 00000157: JUMPDEST 00000158: DUP2 00000159: MLOAD 0000015a: PUSH1 0x20 0000015c: DUP4 0000015d: ADD 0000015e: RETURN 0000015f: JUMPDEST 00000160: PUSH2 0x0167 00000163: PUSH2 0x02be 00000166: JUMP 00000167: JUMPDEST 00000168: JUMP 00000169: JUMPDEST 0000016a: PUSH1 0x00 0000016c: PUSH32 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103 0000018d: JUMPDEST 0000018e: SLOAD 0000018f: PUSH1 0x01 00000191: PUSH1 0x01 00000193: PUSH1 0xa0 00000195: SHL 00000196: SUB 00000197: AND 00000198: SWAP2 00000199: SWAP1 0000019a: POP 0000019b: JUMP 0000019c: JUMPDEST 0000019d: PUSH1 0x60 0000019f: PUSH2 0x01a6 000001a2: PUSH2 0x02ce 000001a5: JUMP 000001a6: JUMPDEST 000001a7: PUSH1 0x00 000001a9: PUSH2 0x01b5 000001ac: CALLDATASIZE 000001ad: PUSH1 0x04 000001af: DUP2 000001b0: DUP5 000001b1: PUSH2 0x0683 000001b4: JUMP 000001b5: JUMPDEST 000001b6: DUP2 000001b7: ADD 000001b8: SWAP1 000001b9: PUSH2 0x01c2 000001bc: SWAP2 000001bd: SWAP1 000001be: PUSH2 0x06c9 000001c1: JUMP 000001c2: JUMPDEST 000001c3: SWAP1 000001c4: POP 000001c5: PUSH2 0x01df 000001c8: DUP2 000001c9: PUSH1 0x40 000001cb: MLOAD 000001cc: DUP1 000001cd: PUSH1 0x20 000001cf: ADD 000001d0: PUSH1 0x40 000001d2: MSTORE 000001d3: DUP1 000001d4: PUSH1 0x00 000001d6: DUP2 000001d7: MSTORE 000001d8: POP 000001d9: PUSH1 0x00 000001db: PUSH2 0x02d9 000001de: JUMP 000001df: JUMPDEST 000001e0: POP 000001e1: POP 000001e2: PUSH1 0x40 000001e4: DUP1 000001e5: MLOAD 000001e6: PUSH1 0x20 000001e8: DUP2 000001e9: ADD 000001ea: SWAP1 000001eb: SWAP2 000001ec: MSTORE 000001ed: PUSH1 0x00 000001ef: DUP2 000001f0: MSTORE 000001f1: SWAP1 000001f2: JUMP 000001f3: JUMPDEST 000001f4: PUSH1 0x60 000001f6: PUSH1 0x00 000001f8: DUP1 000001f9: PUSH2 0x0205 000001fc: CALLDATASIZE 000001fd: PUSH1 0x04 000001ff: DUP2 00000200: DUP5 00000201: PUSH2 0x0683 00000204: JUMP 00000205: JUMPDEST 00000206: DUP2 00000207: ADD 00000208: SWAP1 00000209: PUSH2 0x0212 0000020c: SWAP2 0000020d: SWAP1 0000020e: PUSH2 0x06fa 00000211: JUMP 00000212: JUMPDEST 00000213: SWAP2 00000214: POP 00000215: SWAP2 00000216: POP 00000217: PUSH2 0x0222 0000021a: DUP3 0000021b: DUP3 0000021c: PUSH1 0x01 0000021e: PUSH2 0x02d9 00000221: JUMP 00000222: JUMPDEST 00000223: PUSH1 0x40 00000225: MLOAD 00000226: DUP1 00000227: PUSH1 0x20 00000229: ADD 0000022a: PUSH1 0x40 0000022c: MSTORE 0000022d: DUP1 0000022e: PUSH1 0x00 00000230: DUP2 00000231: MSTORE 00000232: POP 00000233: SWAP3 00000234: POP 00000235: POP 00000236: POP 00000237: SWAP1 00000238: JUMP 00000239: JUMPDEST 0000023a: PUSH1 0x60 0000023c: PUSH2 0x0243 0000023f: PUSH2 0x02ce 00000242: JUMP 00000243: JUMPDEST 00000244: PUSH1 0x00 00000246: PUSH2 0x0252 00000249: CALLDATASIZE 0000024a: PUSH1 0x04 0000024c: DUP2 0000024d: DUP5 0000024e: PUSH2 0x0683 00000251: JUMP 00000252: JUMPDEST 00000253: DUP2 00000254: ADD 00000255: SWAP1 00000256: PUSH2 0x025f 00000259: SWAP2 0000025a: SWAP1 0000025b: PUSH2 0x06c9 0000025e: JUMP 0000025f: JUMPDEST 00000260: SWAP1 00000261: POP 00000262: PUSH2 0x01df 00000265: DUP2 00000266: PUSH2 0x0305 00000269: JUMP 0000026a: JUMPDEST 0000026b: PUSH1 0x60 0000026d: PUSH2 0x0274 00000270: PUSH2 0x02ce 00000273: JUMP 00000274: JUMPDEST 00000275: PUSH1 0x00 00000277: PUSH2 0x027e 0000027a: PUSH2 0x0169 0000027d: JUMP 0000027e: JUMPDEST 0000027f: PUSH1 0x40 00000281: DUP1 00000282: MLOAD 00000283: PUSH1 0x01 00000285: PUSH1 0x01 00000287: PUSH1 0xa0 00000289: SHL 0000028a: SUB 0000028b: DUP4 0000028c: AND 0000028d: PUSH1 0x20 0000028f: DUP3 00000290: ADD 00000291: MSTORE 00000292: SWAP2 00000293: SWAP3 00000294: POP 00000295: ADD 00000296: PUSH1 0x40 00000298: MLOAD 00000299: PUSH1 0x20 0000029b: DUP2 0000029c: DUP4 0000029d: SUB 0000029e: SUB 0000029f: DUP2 000002a0: MSTORE 000002a1: SWAP1 000002a2: PUSH1 0x40 000002a4: MSTORE 000002a5: SWAP2 000002a6: POP 000002a7: POP 000002a8: SWAP1 000002a9: JUMP 000002aa: JUMPDEST 000002ab: PUSH1 0x60 000002ad: PUSH2 0x02b4 000002b0: PUSH2 0x02ce 000002b3: JUMP 000002b4: JUMPDEST 000002b5: PUSH1 0x00 000002b7: PUSH2 0x027e 000002ba: PUSH2 0x035c 000002bd: JUMP 000002be: JUMPDEST 000002bf: PUSH2 0x0167 000002c2: PUSH2 0x02c9 000002c5: PUSH2 0x035c 000002c8: JUMP 000002c9: JUMPDEST 000002ca: PUSH2 0x036b 000002cd: JUMP 000002ce: JUMPDEST 000002cf: CALLVALUE 000002d0: ISZERO 000002d1: PUSH2 0x0167 000002d4: JUMPI 000002d5: PUSH1 0x00 000002d7: DUP1 000002d8: REVERT 000002d9: JUMPDEST 000002da: PUSH2 0x02e2 000002dd: DUP4 000002de: PUSH2 0x038f 000002e1: JUMP 000002e2: JUMPDEST 000002e3: PUSH1 0x00 000002e5: DUP3 000002e6: MLOAD 000002e7: GT 000002e8: DUP1 000002e9: PUSH2 0x02ef 000002ec: JUMPI 000002ed: POP 000002ee: DUP1 000002ef: JUMPDEST 000002f0: ISZERO 000002f1: PUSH2 0x0300 000002f4: JUMPI 000002f5: PUSH2 0x02fe 000002f8: DUP4 000002f9: DUP4 000002fa: PUSH2 0x03cf 000002fd: JUMP 000002fe: JUMPDEST 000002ff: POP 00000300: JUMPDEST 00000301: POP 00000302: POP 00000303: POP 00000304: JUMP 00000305: JUMPDEST 00000306: PUSH32 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f 00000327: PUSH2 0x032e 0000032a: PUSH2 0x0169 0000032d: JUMP 0000032e: JUMPDEST 0000032f: PUSH1 0x40 00000331: DUP1 00000332: MLOAD 00000333: PUSH1 0x01 00000335: PUSH1 0x01 00000337: PUSH1 0xa0 00000339: SHL 0000033a: SUB 0000033b: SWAP3 0000033c: DUP4 0000033d: AND 0000033e: DUP2 0000033f: MSTORE 00000340: SWAP2 00000341: DUP5 00000342: AND 00000343: PUSH1 0x20 00000345: DUP4 00000346: ADD 00000347: MSTORE 00000348: ADD 00000349: PUSH1 0x40 0000034b: MLOAD 0000034c: DUP1 0000034d: SWAP2 0000034e: SUB 0000034f: SWAP1 00000350: LOG1 00000351: PUSH2 0x0359 00000354: DUP2 00000355: PUSH2 0x03fb 00000358: JUMP 00000359: JUMPDEST 0000035a: POP 0000035b: JUMP 0000035c: JUMPDEST 0000035d: PUSH1 0x00 0000035f: PUSH2 0x0366 00000362: PUSH2 0x04a4 00000365: JUMP 00000366: JUMPDEST 00000367: SWAP1 00000368: POP 00000369: SWAP1 0000036a: JUMP 0000036b: JUMPDEST 0000036c: CALLDATASIZE 0000036d: PUSH1 0x00 0000036f: DUP1 00000370: CALLDATACOPY 00000371: PUSH1 0x00 00000373: DUP1 00000374: CALLDATASIZE 00000375: PUSH1 0x00 00000377: DUP5 00000378: GAS 00000379: DELEGATECALL 0000037a: RETURNDATASIZE 0000037b: PUSH1 0x00 0000037d: DUP1 0000037e: RETURNDATACOPY 0000037f: DUP1 00000380: DUP1 00000381: ISZERO 00000382: PUSH2 0x038a 00000385: JUMPI 00000386: RETURNDATASIZE 00000387: PUSH1 0x00 00000389: RETURN 0000038a: JUMPDEST 0000038b: RETURNDATASIZE 0000038c: PUSH1 0x00 0000038e: REVERT 0000038f: JUMPDEST 00000390: PUSH2 0x0398 00000393: DUP2 00000394: PUSH2 0x04cc 00000397: JUMP 00000398: JUMPDEST 00000399: PUSH1 0x40 0000039b: MLOAD 0000039c: PUSH1 0x01 0000039e: PUSH1 0x01 000003a0: PUSH1 0xa0 000003a2: SHL 000003a3: SUB 000003a4: DUP3 000003a5: AND 000003a6: SWAP1 000003a7: PUSH32 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b 000003c8: SWAP1 000003c9: PUSH1 0x00 000003cb: SWAP1 000003cc: LOG2 000003cd: POP 000003ce: JUMP 000003cf: JUMPDEST 000003d0: PUSH1 0x60 000003d2: PUSH2 0x03f4 000003d5: DUP4 000003d6: DUP4 000003d7: PUSH1 0x40 000003d9: MLOAD 000003da: DUP1 000003db: PUSH1 0x60 000003dd: ADD 000003de: PUSH1 0x40 000003e0: MSTORE 000003e1: DUP1 000003e2: PUSH1 0x27 000003e4: DUP2 000003e5: MSTORE 000003e6: PUSH1 0x20 000003e8: ADD 000003e9: PUSH2 0x0830 000003ec: PUSH1 0x27 000003ee: SWAP2 000003ef: CODECOPY 000003f0: PUSH2 0x0560 000003f3: JUMP 000003f4: JUMPDEST 000003f5: SWAP4 000003f6: SWAP3 000003f7: POP 000003f8: POP 000003f9: POP 000003fa: JUMP 000003fb: JUMPDEST 000003fc: PUSH1 0x01 000003fe: PUSH1 0x01 00000400: PUSH1 0xa0 00000402: SHL 00000403: SUB 00000404: DUP2 00000405: AND 00000406: PUSH2 0x0460 00000409: JUMPI 0000040a: PUSH1 0x40 0000040c: MLOAD 0000040d: PUSH3 0x461bcd 00000411: PUSH1 0xe5 00000413: SHL 00000414: DUP2 00000415: MSTORE 00000416: PUSH1 0x20 00000418: PUSH1 0x04 0000041a: DUP3 0000041b: ADD 0000041c: MSTORE 0000041d: PUSH1 0x26 0000041f: PUSH1 0x24 00000421: DUP3 00000422: ADD 00000423: MSTORE 00000424: PUSH32 0x455243313936373a206e65772061646d696e20697320746865207a65726f2061 00000445: PUSH1 0x44 00000447: DUP3 00000448: ADD 00000449: MSTORE 0000044a: PUSH6 0x646472657373 00000451: PUSH1 0xd0 00000453: SHL 00000454: PUSH1 0x64 00000456: DUP3 00000457: ADD 00000458: MSTORE 00000459: PUSH1 0x84 0000045b: ADD 0000045c: PUSH2 0x014e 0000045f: JUMP 00000460: JUMPDEST 00000461: DUP1 00000462: PUSH32 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103 00000483: JUMPDEST 00000484: DUP1 00000485: SLOAD 00000486: PUSH1 0x01 00000488: PUSH1 0x01 0000048a: PUSH1 0xa0 0000048c: SHL 0000048d: SUB 0000048e: NOT 0000048f: AND 00000490: PUSH1 0x01 00000492: PUSH1 0x01 00000494: PUSH1 0xa0 00000496: SHL 00000497: SUB 00000498: SWAP3 00000499: SWAP1 0000049a: SWAP3 0000049b: AND 0000049c: SWAP2 0000049d: SWAP1 0000049e: SWAP2 0000049f: OR 000004a0: SWAP1 000004a1: SSTORE 000004a2: POP 000004a3: JUMP 000004a4: JUMPDEST 000004a5: PUSH1 0x00 000004a7: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc 000004c8: PUSH2 0x018d 000004cb: JUMP 000004cc: JUMPDEST 000004cd: PUSH1 0x01 000004cf: PUSH1 0x01 000004d1: PUSH1 0xa0 000004d3: SHL 000004d4: SUB 000004d5: DUP2 000004d6: AND 000004d7: EXTCODESIZE 000004d8: PUSH2 0x0539 000004db: JUMPI 000004dc: PUSH1 0x40 000004de: MLOAD 000004df: PUSH3 0x461bcd 000004e3: PUSH1 0xe5 000004e5: SHL 000004e6: DUP2 000004e7: MSTORE 000004e8: PUSH1 0x20 000004ea: PUSH1 0x04 000004ec: DUP3 000004ed: ADD 000004ee: MSTORE 000004ef: PUSH1 0x2d 000004f1: PUSH1 0x24 000004f3: DUP3 000004f4: ADD 000004f5: MSTORE 000004f6: PUSH32 0x455243313936373a206e657720696d706c656d656e746174696f6e206973206e 00000517: PUSH1 0x44 00000519: DUP3 0000051a: ADD 0000051b: MSTORE 0000051c: PUSH13 0x1bdd08184818dbdb9d1c9858dd 0000052a: PUSH1 0x9a 0000052c: SHL 0000052d: PUSH1 0x64 0000052f: DUP3 00000530: ADD 00000531: MSTORE 00000532: PUSH1 0x84 00000534: ADD 00000535: PUSH2 0x014e 00000538: JUMP 00000539: JUMPDEST 0000053a: DUP1 0000053b: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc 0000055c: PUSH2 0x0483 0000055f: JUMP 00000560: JUMPDEST 00000561: PUSH1 0x60 00000563: PUSH1 0x00 00000565: DUP1 00000566: DUP6 00000567: PUSH1 0x01 00000569: PUSH1 0x01 0000056b: PUSH1 0xa0 0000056d: SHL 0000056e: SUB 0000056f: AND 00000570: DUP6 00000571: PUSH1 0x40 00000573: MLOAD 00000574: PUSH2 0x057d 00000577: SWAP2 00000578: SWAP1 00000579: PUSH2 0x07e0 0000057c: JUMP 0000057d: JUMPDEST 0000057e: PUSH1 0x00 00000580: PUSH1 0x40 00000582: MLOAD 00000583: DUP1 00000584: DUP4 00000585: SUB 00000586: DUP2 00000587: DUP6 00000588: GAS 00000589: DELEGATECALL 0000058a: SWAP2 0000058b: POP 0000058c: POP 0000058d: RETURNDATASIZE 0000058e: DUP1 0000058f: PUSH1 0x00 00000591: DUP2 00000592: EQ 00000593: PUSH2 0x05b8 00000596: JUMPI 00000597: PUSH1 0x40 00000599: MLOAD 0000059a: SWAP2 0000059b: POP 0000059c: PUSH1 0x1f 0000059e: NOT 0000059f: PUSH1 0x3f 000005a1: RETURNDATASIZE 000005a2: ADD 000005a3: AND 000005a4: DUP3 000005a5: ADD 000005a6: PUSH1 0x40 000005a8: MSTORE 000005a9: RETURNDATASIZE 000005aa: DUP3 000005ab: MSTORE 000005ac: RETURNDATASIZE 000005ad: PUSH1 0x00 000005af: PUSH1 0x20 000005b1: DUP5 000005b2: ADD 000005b3: RETURNDATACOPY 000005b4: PUSH2 0x05bd 000005b7: JUMP 000005b8: JUMPDEST 000005b9: PUSH1 0x60 000005bb: SWAP2 000005bc: POP 000005bd: JUMPDEST 000005be: POP 000005bf: SWAP2 000005c0: POP 000005c1: SWAP2 000005c2: POP 000005c3: PUSH2 0x05ce 000005c6: DUP7 000005c7: DUP4 000005c8: DUP4 000005c9: DUP8 000005ca: PUSH2 0x05d8 000005cd: JUMP 000005ce: JUMPDEST 000005cf: SWAP7 000005d0: SWAP6 000005d1: POP 000005d2: POP 000005d3: POP 000005d4: POP 000005d5: POP 000005d6: POP 000005d7: JUMP 000005d8: JUMPDEST 000005d9: PUSH1 0x60 000005db: DUP4 000005dc: ISZERO 000005dd: PUSH2 0x0647 000005e0: JUMPI 000005e1: DUP3 000005e2: MLOAD 000005e3: PUSH1 0x00 000005e5: SUB 000005e6: PUSH2 0x0640 000005e9: JUMPI 000005ea: PUSH1 0x01 000005ec: PUSH1 0x01 000005ee: PUSH1 0xa0 000005f0: SHL 000005f1: SUB 000005f2: DUP6 000005f3: AND 000005f4: EXTCODESIZE 000005f5: PUSH2 0x0640 000005f8: JUMPI 000005f9: PUSH1 0x40 000005fb: MLOAD 000005fc: PUSH3 0x461bcd 00000600: PUSH1 0xe5 00000602: SHL 00000603: DUP2 00000604: MSTORE 00000605: PUSH1 0x20 00000607: PUSH1 0x04 00000609: DUP3 0000060a: ADD 0000060b: MSTORE 0000060c: PUSH1 0x1d 0000060e: PUSH1 0x24 00000610: DUP3 00000611: ADD 00000612: MSTORE 00000613: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000 00000634: PUSH1 0x44 00000636: DUP3 00000637: ADD 00000638: MSTORE 00000639: PUSH1 0x64 0000063b: ADD 0000063c: PUSH2 0x014e 0000063f: JUMP 00000640: JUMPDEST 00000641: POP 00000642: DUP2 00000643: PUSH2 0x0651 00000646: JUMP 00000647: JUMPDEST 00000648: PUSH2 0x0651 0000064b: DUP4 0000064c: DUP4 0000064d: PUSH2 0x0659 00000650: JUMP 00000651: JUMPDEST 00000652: SWAP5 00000653: SWAP4 00000654: POP 00000655: POP 00000656: POP 00000657: POP 00000658: JUMP 00000659: JUMPDEST 0000065a: DUP2 0000065b: MLOAD 0000065c: ISZERO 0000065d: PUSH2 0x0669 00000660: JUMPI 00000661: DUP2 00000662: MLOAD 00000663: DUP1 00000664: DUP4 00000665: PUSH1 0x20 00000667: ADD 00000668: REVERT 00000669: JUMPDEST 0000066a: DUP1 0000066b: PUSH1 0x40 0000066d: MLOAD 0000066e: PUSH3 0x461bcd 00000672: PUSH1 0xe5 00000674: SHL 00000675: DUP2 00000676: MSTORE 00000677: PUSH1 0x04 00000679: ADD 0000067a: PUSH2 0x014e 0000067d: SWAP2 0000067e: SWAP1 0000067f: PUSH2 0x07fc 00000682: JUMP 00000683: JUMPDEST 00000684: PUSH1 0x00 00000686: DUP1 00000687: DUP6 00000688: DUP6 00000689: GT 0000068a: ISZERO 0000068b: PUSH2 0x0693 0000068e: JUMPI 0000068f: PUSH1 0x00 00000691: DUP1 00000692: REVERT 00000693: JUMPDEST 00000694: DUP4 00000695: DUP7 00000696: GT 00000697: ISZERO 00000698: PUSH2 0x06a0 0000069b: JUMPI 0000069c: PUSH1 0x00 0000069e: DUP1 0000069f: REVERT 000006a0: JUMPDEST 000006a1: POP 000006a2: POP 000006a3: DUP3 000006a4: ADD 000006a5: SWAP4 000006a6: SWAP2 000006a7: SWAP1 000006a8: SWAP3 000006a9: SUB 000006aa: SWAP2 000006ab: POP 000006ac: JUMP 000006ad: JUMPDEST 000006ae: DUP1 000006af: CALLDATALOAD 000006b0: PUSH1 0x01 000006b2: PUSH1 0x01 000006b4: PUSH1 0xa0 000006b6: SHL 000006b7: SUB 000006b8: DUP2 000006b9: AND 000006ba: DUP2 000006bb: EQ 000006bc: PUSH2 0x06c4 000006bf: JUMPI 000006c0: PUSH1 0x00 000006c2: DUP1 000006c3: REVERT 000006c4: JUMPDEST 000006c5: SWAP2 000006c6: SWAP1 000006c7: POP 000006c8: JUMP 000006c9: JUMPDEST 000006ca: PUSH1 0x00 000006cc: PUSH1 0x20 000006ce: DUP3 000006cf: DUP5 000006d0: SUB 000006d1: SLT 000006d2: ISZERO 000006d3: PUSH2 0x06db 000006d6: JUMPI 000006d7: PUSH1 0x00 000006d9: DUP1 000006da: REVERT 000006db: JUMPDEST 000006dc: PUSH2 0x03f4 000006df: DUP3 000006e0: PUSH2 0x06ad 000006e3: JUMP 000006e4: JUMPDEST 000006e5: PUSH4 0x4e487b71 000006ea: PUSH1 0xe0 000006ec: SHL 000006ed: PUSH1 0x00 000006ef: MSTORE 000006f0: PUSH1 0x41 000006f2: PUSH1 0x04 000006f4: MSTORE 000006f5: PUSH1 0x24 000006f7: PUSH1 0x00 000006f9: REVERT 000006fa: JUMPDEST 000006fb: PUSH1 0x00 000006fd: DUP1 000006fe: PUSH1 0x40 00000700: DUP4 00000701: DUP6 00000702: SUB 00000703: SLT 00000704: ISZERO 00000705: PUSH2 0x070d 00000708: JUMPI 00000709: PUSH1 0x00 0000070b: DUP1 0000070c: REVERT 0000070d: JUMPDEST 0000070e: PUSH2 0x0716 00000711: DUP4 00000712: PUSH2 0x06ad 00000715: JUMP 00000716: JUMPDEST 00000717: SWAP2 00000718: POP 00000719: PUSH1 0x20 0000071b: DUP4 0000071c: ADD 0000071d: CALLDATALOAD 0000071e: PUSH8 0xffffffffffffffff 00000727: DUP1 00000728: DUP3 00000729: GT 0000072a: ISZERO 0000072b: PUSH2 0x0733 0000072e: JUMPI 0000072f: PUSH1 0x00 00000731: DUP1 00000732: REVERT 00000733: JUMPDEST 00000734: DUP2 00000735: DUP6 00000736: ADD 00000737: SWAP2 00000738: POP 00000739: DUP6 0000073a: PUSH1 0x1f 0000073c: DUP4 0000073d: ADD 0000073e: SLT 0000073f: PUSH2 0x0747 00000742: JUMPI 00000743: PUSH1 0x00 00000745: DUP1 00000746: REVERT 00000747: JUMPDEST 00000748: DUP2 00000749: CALLDATALOAD 0000074a: DUP2 0000074b: DUP2 0000074c: GT 0000074d: ISZERO 0000074e: PUSH2 0x0759 00000751: JUMPI 00000752: PUSH2 0x0759 00000755: PUSH2 0x06e4 00000758: JUMP 00000759: JUMPDEST 0000075a: PUSH1 0x40 0000075c: MLOAD 0000075d: PUSH1 0x1f 0000075f: DUP3 00000760: ADD 00000761: PUSH1 0x1f 00000763: NOT 00000764: SWAP1 00000765: DUP2 00000766: AND 00000767: PUSH1 0x3f 00000769: ADD 0000076a: AND 0000076b: DUP2 0000076c: ADD 0000076d: SWAP1 0000076e: DUP4 0000076f: DUP3 00000770: GT 00000771: DUP2 00000772: DUP4 00000773: LT 00000774: OR 00000775: ISZERO 00000776: PUSH2 0x0781 00000779: JUMPI 0000077a: PUSH2 0x0781 0000077d: PUSH2 0x06e4 00000780: JUMP 00000781: JUMPDEST 00000782: DUP2 00000783: PUSH1 0x40 00000785: MSTORE 00000786: DUP3 00000787: DUP2 00000788: MSTORE 00000789: DUP9 0000078a: PUSH1 0x20 0000078c: DUP5 0000078d: DUP8 0000078e: ADD 0000078f: ADD 00000790: GT 00000791: ISZERO 00000792: PUSH2 0x079a 00000795: JUMPI 00000796: PUSH1 0x00 00000798: DUP1 00000799: REVERT 0000079a: JUMPDEST 0000079b: DUP3 0000079c: PUSH1 0x20 0000079e: DUP7 0000079f: ADD 000007a0: PUSH1 0x20 000007a2: DUP4 000007a3: ADD 000007a4: CALLDATACOPY 000007a5: PUSH1 0x00 000007a7: PUSH1 0x20 000007a9: DUP5 000007aa: DUP4 000007ab: ADD 000007ac: ADD 000007ad: MSTORE 000007ae: DUP1 000007af: SWAP6 000007b0: POP 000007b1: POP 000007b2: POP 000007b3: POP 000007b4: POP 000007b5: POP 000007b6: SWAP3 000007b7: POP 000007b8: SWAP3 000007b9: SWAP1 000007ba: POP 000007bb: JUMP 000007bc: JUMPDEST 000007bd: PUSH1 0x00 000007bf: JUMPDEST 000007c0: DUP4 000007c1: DUP2 000007c2: LT 000007c3: ISZERO 000007c4: PUSH2 0x07d7 000007c7: JUMPI 000007c8: DUP2 000007c9: DUP2 000007ca: ADD 000007cb: MLOAD 000007cc: DUP4 000007cd: DUP3 000007ce: ADD 000007cf: MSTORE 000007d0: PUSH1 0x20 000007d2: ADD 000007d3: PUSH2 0x07bf 000007d6: JUMP 000007d7: JUMPDEST 000007d8: POP 000007d9: POP 000007da: PUSH1 0x00 000007dc: SWAP2 000007dd: ADD 000007de: MSTORE 000007df: JUMP 000007e0: JUMPDEST 000007e1: PUSH1 0x00 000007e3: DUP3 000007e4: MLOAD 000007e5: PUSH2 0x07f2 000007e8: DUP2 000007e9: DUP5 000007ea: PUSH1 0x20 000007ec: DUP8 000007ed: ADD 000007ee: PUSH2 0x07bc 000007f1: JUMP 000007f2: JUMPDEST 000007f3: SWAP2 000007f4: SWAP1 000007f5: SWAP2 000007f6: ADD 000007f7: SWAP3 000007f8: SWAP2 000007f9: POP 000007fa: POP 000007fb: JUMP 000007fc: JUMPDEST 000007fd: PUSH1 0x20 000007ff: DUP2 00000800: MSTORE 00000801: PUSH1 0x00 00000803: DUP3 00000804: MLOAD 00000805: DUP1 00000806: PUSH1 0x20 00000808: DUP5 00000809: ADD 0000080a: MSTORE 0000080b: PUSH2 0x081b 0000080e: DUP2 0000080f: PUSH1 0x40 00000811: DUP6 00000812: ADD 00000813: PUSH1 0x20 00000815: DUP8 00000816: ADD 00000817: PUSH2 0x07bc 0000081a: JUMP 0000081b: JUMPDEST 0000081c: PUSH1 0x1f 0000081e: ADD 0000081f: PUSH1 0x1f 00000821: NOT 00000822: AND 00000823: SWAP2 00000824: SWAP1 00000825: SWAP2 00000826: ADD 00000827: PUSH1 0x40 00000829: ADD 0000082a: SWAP3 0000082b: SWAP2 0000082c: POP 0000082d: POP 0000082e: JUMP 0000082f: INVALID 00000830: COINBASE 00000831: PUSH5 0x6472657373 00000837: GASPRICE 00000838: KECCAK256 00000839: PUSH13 0x6f772d6c6576656c2064656c65 00000847: PUSH8 0x6174652063616c6c 00000850: KECCAK256 00000851: PUSH7 0x61696c6564a264 00000859: PUSH10 0x70667358221220e92966 00000864: DUP16 00000865: PUSH17 0x3536730400e70e0e37b3bffe3818e0f424 00000877: UNKNOWN(0xE6) 00000878: PUSH30
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| critical | upgradeability | detector | Untrusted DELEGATECALL target reachable | 70 | no | no |
viewtrace_id: 0x3a21601cfe92cfd8ca7fe520e0dde018ec24f1ee64c70957c383a0c44bdb9bb5
call_targets:
0xb0d6eed90f8e497b867f557c44a49c8c81fa0a5d
target_varies:
no
classification:
constant_target
validation_json{
"sink": "DELEGATECALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x3a21601cfe92cfd8ca7fe520e0dde018ec24f1ee64c70957c383a0c44bdb9bb5",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xb0d6eed90f8e497b867f557c44a49c8c81fa0a5d"
],
"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": "0x",
"selector": "fallback",
"calldata_variants": [
"0x"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 889,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
},
{
"pc": 1417,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
}
],
"guards_detected": [],
"delegatecall_count": 2,
"untrusted_delegatecall_count": 2
}
|
| medium | upgradeability | cast | DELEGATECALL present | 80 | no | — |
viewevidence_json{
"notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
"delegatecall_count": 2
}
|