019c0ea9-0913-71a5-94ad-a630aa874b8f
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 |
|---|---|---|---|---|
| 41984 | artifact.fetch | complete | 1 / 3 | 2 months ago |
| 41985 | proxy.resolve | complete | 1 / 3 | 2 months ago |
| 41986 | tool.cast_disasm | complete | 1 / 3 | 2 months ago |
| 41987 | analysis.bundle | complete | 1 / 3 | 2 months ago |
| 41988 | capability.graph | complete | 1 / 3 | 2 months ago |
| 41989 | detector.run | complete | 1 / 3 | 2 months ago |
| 41990 | validation.fork | complete | 1 / 3 | 2 months ago |
| 42388 | report.consolidate | complete | 1 / 6 | 2 months ago |
| 42389 | tool.slither | complete | 1 / 2 | 2 months ago |
{
"status": "not_proxy"
}
'forge clean' running (wd: /tmp/slither-lunpq0jq)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-lunpq0jq)
FlashBotsMultiCall.uniswapWeth(uint256,uint256,address[],bytes[]) (contracts/Contract.sol#50-71) ignores return value by WETH.transfer(_targets[0],_wethAmountToFirstMarket) (contracts/Contract.sol#57-58)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unchecked-transfer
FlashBotsMultiCall.constructor(address)._executor (contracts/Contract.sol#40-41) lacks a zero-check on :
- executor = _executor (contracts/Contract.sol#44-45)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation
FlashBotsMultiCall.uniswapWeth(uint256,uint256,address[],bytes[]) (contracts/Contract.sol#50-71) has external calls inside a loop: (_success,_response) = _targets[i].call(_payloads[i]) (contracts/Contract.sol#59-60)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation/#calls-inside-a-loop
Version constraint 0.6.12 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
- FullInlinerNonExpressionSplitArgumentEvaluationOrder
- MissingSideEffectsOnSelectorAccess
- AbiReencodingHeadOverflowWithStaticArrayCleanup
- DirtyBytesArrayToStorage
- DataLocationChangeInInternalOverride
- NestedCalldataArrayAbiReencodingSizeValidation
- SignedImmutables
- ABIDecodeTwoDimensionalArrayMemory
- KeccakCaching
- EmptyByteArrayCopy
- DynamicArrayCleanup.
It is used by:
- 0.6.12 (contracts/Contract.sol#1-2)
solc-0.6.12 is an outdated solc version. Use a more recent version (at least 0.8.0), if possible.
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity
Low level call in FlashBotsMultiCall.uniswapWeth(uint256,uint256,address[],bytes[]) (contracts/Contract.sol#50-71):
- (_success,_response) = _targets[i].call(_payloads[i]) (contracts/Contract.sol#59-60)
Low level call in FlashBotsMultiCall.call(address,uint256,bytes) (contracts/Contract.sol#71-77):
- (_success,_result) = _to.call{value: _value}(_data) (contracts/Contract.sol#75-77)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls
Parameter FlashBotsMultiCall.uniswapWeth(uint256,uint256,address[],bytes[])._wethAmountToFirstMarket (contracts/Contract.sol#52-55) is not in mixedCase
Parameter FlashBotsMultiCall.uniswapWeth(uint256,uint256,address[],bytes[])._ethAmountToCoinbase (contracts/Contract.sol#55) is not in mixedCase
Parameter FlashBotsMultiCall.uniswapWeth(uint256,uint256,address[],bytes[])._targets (contracts/Contract.sol#55) is not in mixedCase
Parameter FlashBotsMultiCall.uniswapWeth(uint256,uint256,address[],bytes[])._payloads (contracts/Contract.sol#55) is not in mixedCase
Parameter FlashBotsMultiCall.call(address,uint256,bytes)._to (contracts/Contract.sol#72) is not in mixedCase
Parameter FlashBotsMultiCall.call(address,uint256,bytes)._value (contracts/Contract.sol#72) is not in mixedCase
Parameter FlashBotsMultiCall.call(address,uint256,bytes)._data (contracts/Contract.sol#72-75) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
Redundant expression "_response (contracts/Contract.sol#60)" inFlashBotsMultiCall (contracts/Contract.sol#27-77)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#redundant-statements
. analyzed (3 contracts with 100 detectors), 15 result(s) found
{
"solc": {
"status": "ok",
"use_rc": 0,
"version": "0.6.12",
"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.12",
"install_stderr": null,
"install_stdout": "Version '0.6.12' is already installed, skipping..."
},
"solc_args": "--base-path /tmp/slither-lunpq0jq --allow-paths /tmp/slither-lunpq0jq,/tmp/slither-lunpq0jq/lib,/tmp/slither-lunpq0jq/src",
"remappings": [],
"source_files": [
"contracts/Contract.sol"
],
"contract_count": 0,
"contract_names": [],
"detector_count": 15,
"workspace_hash": "be1558059679d388b73613676b545fbfdc43bca90b34caf81120e984290e0cff",
"duration_seconds": 0.49823546409606934,
"solc_version_requested": "0.6.12"
}
{"no_findings":true,"summary":"Reviewed the single first-party contract; access controls are fixed and external calls are executor/owner-gated with no stateful reentrancy surface. No exploitable issues found in scope.","findings":[]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-gt3pg9md
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019c0f5a-acae-7d53-8285-f5aa0d62c547
--------
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
exec
/bin/bash -lc ls in /tmp/codex-gt3pg9md succeeded in 6ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
contracts
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-gt3pg9md 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
================================================================================
//SPDX-License-Identifier: UNLICENSED
pragma solidity 0.6.12;
pragma experimental ABIEncoderV2;
interface IERC20 {
event Approval(address indexed owner, address indexed spender, uint value);
event Transfer(address indexed from, address indexed to, uint value);
function name() external view returns (string memory);
function symbol() external view returns (string memory);
function decimals() external view returns (uint8);
function totalSupply() external view returns (uint);
function balanceOf(address owner) external view returns (uint);
codex
{"no_findings":true,"summary":"Reviewed the single first-party contract; access controls are fixed and external calls are executor/owner-gated with no stateful reentrancy surface. No exploitable issues found in scope.","findings":[]}
tokens used
3,683
{
"codex": {
"ran_at": "2026-01-30T14:42:38.069556+00:00",
"returncode": 0
},
"project": {
"mode": "source",
"file_count": 1,
"import_count": 0,
"first_party_contracts_count": 1
},
"summary": "Reviewed the single first-party contract; access controls are fixed and external calls are executor/owner-gated with no stateful reentrancy surface. No exploitable issues found in scope.",
"raw_final": {
"summary": "Reviewed the single first-party contract; access controls are fixed and external calls are executor/owner-gated with no stateful reentrancy surface. No exploitable issues found in scope.",
"findings": [],
"no_findings": true
},
"no_findings": true,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x002d 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x6dbf2fa0 00000019: EQ 0000001a: PUSH2 0x0039 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0xecd494b3 00000024: EQ 00000025: PUSH2 0x0062 00000028: JUMPI 00000029: PUSH2 0x0034 0000002c: JUMP 0000002d: JUMPDEST 0000002e: CALLDATASIZE 0000002f: PUSH2 0x0034 00000032: JUMPI 00000033: STOP 00000034: JUMPDEST 00000035: PUSH1 0x00 00000037: DUP1 00000038: REVERT 00000039: JUMPDEST 0000003a: PUSH2 0x004c 0000003d: PUSH2 0x0047 00000040: CALLDATASIZE 00000041: PUSH1 0x04 00000043: PUSH2 0x0584 00000046: JUMP 00000047: JUMPDEST 00000048: PUSH2 0x0077 0000004b: JUMP 0000004c: JUMPDEST 0000004d: PUSH1 0x40 0000004f: MLOAD 00000050: PUSH2 0x0059 00000053: SWAP2 00000054: SWAP1 00000055: PUSH2 0x0774 00000058: JUMP 00000059: JUMPDEST 0000005a: PUSH1 0x40 0000005c: MLOAD 0000005d: DUP1 0000005e: SWAP2 0000005f: SUB 00000060: SWAP1 00000061: RETURN 00000062: JUMPDEST 00000063: PUSH2 0x0075 00000066: PUSH2 0x0070 00000069: CALLDATASIZE 0000006a: PUSH1 0x04 0000006c: PUSH2 0x0647 0000006f: JUMP 00000070: JUMPDEST 00000071: PUSH2 0x013b 00000074: JUMP 00000075: JUMPDEST 00000076: STOP 00000077: JUMPDEST 00000078: PUSH1 0x60 0000007a: CALLER 0000007b: PUSH1 0x01 0000007d: PUSH1 0x01 0000007f: PUSH1 0xa0 00000081: SHL 00000082: SUB 00000083: PUSH32 0x00000000000000000000000086a65913224c0125635217aa848ff3ebf1596ef0 000000a4: AND 000000a5: EQ 000000a6: PUSH2 0x00ae 000000a9: JUMPI 000000aa: PUSH1 0x00 000000ac: DUP1 000000ad: REVERT 000000ae: JUMPDEST 000000af: PUSH1 0x01 000000b1: PUSH1 0x01 000000b3: PUSH1 0xa0 000000b5: SHL 000000b6: SUB 000000b7: DUP6 000000b8: AND 000000b9: PUSH2 0x00c1 000000bc: JUMPI 000000bd: PUSH1 0x00 000000bf: DUP1 000000c0: REVERT 000000c1: JUMPDEST 000000c2: PUSH1 0x00 000000c4: PUSH1 0x60 000000c6: DUP7 000000c7: PUSH1 0x01 000000c9: PUSH1 0x01 000000cb: PUSH1 0xa0 000000cd: SHL 000000ce: SUB 000000cf: AND 000000d0: DUP7 000000d1: DUP7 000000d2: DUP7 000000d3: PUSH1 0x40 000000d5: MLOAD 000000d6: PUSH2 0x00e0 000000d9: SWAP3 000000da: SWAP2 000000db: SWAP1 000000dc: PUSH2 0x071b 000000df: JUMP 000000e0: JUMPDEST 000000e1: PUSH1 0x00 000000e3: PUSH1 0x40 000000e5: MLOAD 000000e6: DUP1 000000e7: DUP4 000000e8: SUB 000000e9: DUP2 000000ea: DUP6 000000eb: DUP8 000000ec: GAS 000000ed: CALL 000000ee: SWAP3 000000ef: POP 000000f0: POP 000000f1: POP 000000f2: RETURNDATASIZE 000000f3: DUP1 000000f4: PUSH1 0x00 000000f6: DUP2 000000f7: EQ 000000f8: PUSH2 0x011d 000000fb: JUMPI 000000fc: PUSH1 0x40 000000fe: MLOAD 000000ff: SWAP2 00000100: POP 00000101: PUSH1 0x1f 00000103: NOT 00000104: PUSH1 0x3f 00000106: RETURNDATASIZE 00000107: ADD 00000108: AND 00000109: DUP3 0000010a: ADD 0000010b: PUSH1 0x40 0000010d: MSTORE 0000010e: RETURNDATASIZE 0000010f: DUP3 00000110: MSTORE 00000111: RETURNDATASIZE 00000112: PUSH1 0x00 00000114: PUSH1 0x20 00000116: DUP5 00000117: ADD 00000118: RETURNDATACOPY 00000119: PUSH2 0x0122 0000011c: JUMP 0000011d: JUMPDEST 0000011e: PUSH1 0x60 00000120: SWAP2 00000121: POP 00000122: JUMPDEST 00000123: POP 00000124: SWAP2 00000125: POP 00000126: SWAP2 00000127: POP 00000128: DUP2 00000129: PUSH2 0x0131 0000012c: JUMPI 0000012d: PUSH1 0x00 0000012f: DUP1 00000130: REVERT 00000131: JUMPDEST 00000132: SWAP7 00000133: SWAP6 00000134: POP 00000135: POP 00000136: POP 00000137: POP 00000138: POP 00000139: POP 0000013a: JUMP 0000013b: JUMPDEST 0000013c: CALLER 0000013d: PUSH1 0x01 0000013f: PUSH1 0x01 00000141: PUSH1 0xa0 00000143: SHL 00000144: SUB 00000145: PUSH32 0x00000000000000000000000033a330a68d824bf56c7dbc42d4cd827368441321 00000166: AND 00000167: EQ 00000168: PUSH2 0x0170 0000016b: JUMPI 0000016c: PUSH1 0x00 0000016e: DUP1 0000016f: REVERT 00000170: JUMPDEST 00000171: DUP1 00000172: MLOAD 00000173: DUP3 00000174: MLOAD 00000175: EQ 00000176: PUSH2 0x017e 00000179: JUMPI 0000017a: PUSH1 0x00 0000017c: DUP1 0000017d: REVERT 0000017e: JUMPDEST 0000017f: PUSH1 0x40 00000181: MLOAD 00000182: PUSH4 0x70a08231 00000187: PUSH1 0xe0 00000189: SHL 0000018a: DUP2 0000018b: MSTORE 0000018c: PUSH1 0x00 0000018e: SWAP1 0000018f: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 000001a4: SWAP1 000001a5: PUSH4 0x70a08231 000001aa: SWAP1 000001ab: PUSH2 0x01b8 000001ae: SWAP1 000001af: ADDRESS 000001b0: SWAP1 000001b1: PUSH1 0x04 000001b3: ADD 000001b4: PUSH2 0x0747 000001b7: JUMP 000001b8: JUMPDEST 000001b9: PUSH1 0x20 000001bb: PUSH1 0x40 000001bd: MLOAD 000001be: DUP1 000001bf: DUP4 000001c0: SUB 000001c1: DUP2 000001c2: DUP7 000001c3: DUP1 000001c4: EXTCODESIZE 000001c5: ISZERO 000001c6: DUP1 000001c7: ISZERO 000001c8: PUSH2 0x01d0 000001cb: JUMPI 000001cc: PUSH1 0x00 000001ce: DUP1 000001cf: REVERT 000001d0: JUMPDEST 000001d1: POP 000001d2: GAS 000001d3: STATICCALL 000001d4: ISZERO 000001d5: DUP1 000001d6: ISZERO 000001d7: PUSH2 0x01e4 000001da: JUMPI 000001db: RETURNDATASIZE 000001dc: PUSH1 0x00 000001de: DUP1 000001df: RETURNDATACOPY 000001e0: RETURNDATASIZE 000001e1: PUSH1 0x00 000001e3: REVERT 000001e4: JUMPDEST 000001e5: POP 000001e6: POP 000001e7: POP 000001e8: POP 000001e9: PUSH1 0x40 000001eb: MLOAD 000001ec: RETURNDATASIZE 000001ed: PUSH1 0x1f 000001ef: NOT 000001f0: PUSH1 0x1f 000001f2: DUP3 000001f3: ADD 000001f4: AND 000001f5: DUP3 000001f6: ADD 000001f7: DUP1 000001f8: PUSH1 0x40 000001fa: MSTORE 000001fb: POP 000001fc: DUP2 000001fd: ADD 000001fe: SWAP1 000001ff: PUSH2 0x0208 00000202: SWAP2 00000203: SWAP1 00000204: PUSH2 0x062f 00000207: JUMP 00000208: JUMPDEST 00000209: SWAP1 0000020a: POP 0000020b: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00000220: PUSH1 0x01 00000222: PUSH1 0x01 00000224: PUSH1 0xa0 00000226: SHL 00000227: SUB 00000228: AND 00000229: PUSH4 0xa9059cbb 0000022e: DUP5 0000022f: PUSH1 0x00 00000231: DUP2 00000232: MLOAD 00000233: DUP2 00000234: LT 00000235: PUSH2 0x023a 00000238: JUMPI 00000239: INVALID 0000023a: JUMPDEST 0000023b: PUSH1 0x20 0000023d: MUL 0000023e: PUSH1 0x20 00000240: ADD 00000241: ADD 00000242: MLOAD 00000243: DUP8 00000244: PUSH1 0x40 00000246: MLOAD 00000247: DUP4 00000248: PUSH4 0xffffffff 0000024d: AND 0000024e: PUSH1 0xe0 00000250: SHL 00000251: DUP2 00000252: MSTORE 00000253: PUSH1 0x04 00000255: ADD 00000256: PUSH2 0x0260 00000259: SWAP3 0000025a: SWAP2 0000025b: SWAP1 0000025c: PUSH2 0x075b 0000025f: JUMP 00000260: JUMPDEST 00000261: PUSH1 0x20 00000263: PUSH1 0x40 00000265: MLOAD 00000266: DUP1 00000267: DUP4 00000268: SUB 00000269: DUP2 0000026a: PUSH1 0x00 0000026c: DUP8 0000026d: DUP1 0000026e: EXTCODESIZE 0000026f: ISZERO 00000270: DUP1 00000271: ISZERO 00000272: PUSH2 0x027a 00000275: JUMPI 00000276: PUSH1 0x00 00000278: DUP1 00000279: REVERT 0000027a: JUMPDEST 0000027b: POP 0000027c: GAS 0000027d: CALL 0000027e: ISZERO 0000027f: DUP1 00000280: ISZERO 00000281: PUSH2 0x028e 00000284: JUMPI 00000285: RETURNDATASIZE 00000286: PUSH1 0x00 00000288: DUP1 00000289: RETURNDATACOPY 0000028a: RETURNDATASIZE 0000028b: PUSH1 0x00 0000028d: REVERT 0000028e: JUMPDEST 0000028f: POP 00000290: POP 00000291: POP 00000292: POP 00000293: PUSH1 0x40 00000295: MLOAD 00000296: RETURNDATASIZE 00000297: PUSH1 0x1f 00000299: NOT 0000029a: PUSH1 0x1f 0000029c: DUP3 0000029d: ADD 0000029e: AND 0000029f: DUP3 000002a0: ADD 000002a1: DUP1 000002a2: PUSH1 0x40 000002a4: MSTORE 000002a5: POP 000002a6: DUP2 000002a7: ADD 000002a8: SWAP1 000002a9: PUSH2 0x02b2 000002ac: SWAP2 000002ad: SWAP1 000002ae: PUSH2 0x0608 000002b1: JUMP 000002b2: JUMPDEST 000002b3: POP 000002b4: PUSH1 0x00 000002b6: JUMPDEST 000002b7: DUP4 000002b8: MLOAD 000002b9: DUP2 000002ba: LT 000002bb: ISZERO 000002bc: PUSH2 0x035c 000002bf: JUMPI 000002c0: PUSH1 0x00 000002c2: PUSH1 0x60 000002c4: DUP6 000002c5: DUP4 000002c6: DUP2 000002c7: MLOAD 000002c8: DUP2 000002c9: LT 000002ca: PUSH2 0x02cf 000002cd: JUMPI 000002ce: INVALID 000002cf: JUMPDEST 000002d0: PUSH1 0x20 000002d2: MUL 000002d3: PUSH1 0x20 000002d5: ADD 000002d6: ADD 000002d7: MLOAD 000002d8: PUSH1 0x01 000002da: PUSH1 0x01 000002dc: PUSH1 0xa0 000002de: SHL 000002df: SUB 000002e0: AND 000002e1: DUP6 000002e2: DUP5 000002e3: DUP2 000002e4: MLOAD 000002e5: DUP2 000002e6: LT 000002e7: PUSH2 0x02ec 000002ea: JUMPI 000002eb: INVALID 000002ec: JUMPDEST 000002ed: PUSH1 0x20 000002ef: MUL 000002f0: PUSH1 0x20 000002f2: ADD 000002f3: ADD 000002f4: MLOAD 000002f5: PUSH1 0x40 000002f7: MLOAD 000002f8: PUSH2 0x0301 000002fb: SWAP2 000002fc: SWAP1 000002fd: PUSH2 0x072b 00000300: JUMP 00000301: JUMPDEST 00000302: PUSH1 0x00 00000304: PUSH1 0x40 00000306: MLOAD 00000307: DUP1 00000308: DUP4 00000309: SUB 0000030a: DUP2 0000030b: PUSH1 0x00 0000030d: DUP7 0000030e: GAS 0000030f: CALL 00000310: SWAP2 00000311: POP 00000312: POP 00000313: RETURNDATASIZE 00000314: DUP1 00000315: PUSH1 0x00 00000317: DUP2 00000318: EQ 00000319: PUSH2 0x033e 0000031c: JUMPI 0000031d: PUSH1 0x40 0000031f: MLOAD 00000320: SWAP2 00000321: POP 00000322: PUSH1 0x1f 00000324: NOT 00000325: PUSH1 0x3f 00000327: RETURNDATASIZE 00000328: ADD 00000329: AND 0000032a: DUP3 0000032b: ADD 0000032c: PUSH1 0x40 0000032e: MSTORE 0000032f: RETURNDATASIZE 00000330: DUP3 00000331: MSTORE 00000332: RETURNDATASIZE 00000333: PUSH1 0x00 00000335: PUSH1 0x20 00000337: DUP5 00000338: ADD 00000339: RETURNDATACOPY 0000033a: PUSH2 0x0343 0000033d: JUMP 0000033e: JUMPDEST 0000033f: PUSH1 0x60 00000341: SWAP2 00000342: POP 00000343: JUMPDEST 00000344: POP 00000345: SWAP2 00000346: POP 00000347: SWAP2 00000348: POP 00000349: DUP2 0000034a: PUSH2 0x0352 0000034d: JUMPI 0000034e: PUSH1 0x00 00000350: DUP1 00000351: REVERT 00000352: JUMPDEST 00000353: POP 00000354: POP 00000355: PUSH1 0x01 00000357: ADD 00000358: PUSH2 0x02b6 0000035b: JUMP 0000035c: JUMPDEST 0000035d: POP 0000035e: PUSH1 0x40 00000360: MLOAD 00000361: PUSH4 0x70a08231 00000366: PUSH1 0xe0 00000368: SHL 00000369: DUP2 0000036a: MSTORE 0000036b: PUSH1 0x00 0000036d: SWAP1 0000036e: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00000383: SWAP1 00000384: PUSH4 0x70a08231 00000389: SWAP1 0000038a: PUSH2 0x0397 0000038d: SWAP1 0000038e: ADDRESS 0000038f: SWAP1 00000390: PUSH1 0x04 00000392: ADD 00000393: PUSH2 0x0747 00000396: JUMP 00000397: JUMPDEST 00000398: PUSH1 0x20 0000039a: PUSH1 0x40 0000039c: MLOAD 0000039d: DUP1 0000039e: DUP4 0000039f: SUB 000003a0: DUP2 000003a1: DUP7 000003a2: DUP1 000003a3: EXTCODESIZE 000003a4: ISZERO 000003a5: DUP1 000003a6: ISZERO 000003a7: PUSH2 0x03af 000003aa: JUMPI 000003ab: PUSH1 0x00 000003ad: DUP1 000003ae: REVERT 000003af: JUMPDEST 000003b0: POP 000003b1: GAS 000003b2: STATICCALL 000003b3: ISZERO 000003b4: DUP1 000003b5: ISZERO 000003b6: PUSH2 0x03c3 000003b9: JUMPI 000003ba: RETURNDATASIZE 000003bb: PUSH1 0x00 000003bd: DUP1 000003be: RETURNDATACOPY 000003bf: RETURNDATASIZE 000003c0: PUSH1 0x00 000003c2: REVERT 000003c3: JUMPDEST 000003c4: POP 000003c5: POP 000003c6: POP 000003c7: POP 000003c8: PUSH1 0x40 000003ca: MLOAD 000003cb: RETURNDATASIZE 000003cc: PUSH1 0x1f 000003ce: NOT 000003cf: PUSH1 0x1f 000003d1: DUP3 000003d2: ADD 000003d3: AND 000003d4: DUP3 000003d5: ADD 000003d6: DUP1 000003d7: PUSH1 0x40 000003d9: MSTORE 000003da: POP 000003db: DUP2 000003dc: ADD 000003dd: SWAP1 000003de: PUSH2 0x03e7 000003e1: SWAP2 000003e2: SWAP1 000003e3: PUSH2 0x062f 000003e6: JUMP 000003e7: JUMPDEST 000003e8: SWAP1 000003e9: POP 000003ea: DUP5 000003eb: DUP3 000003ec: ADD 000003ed: DUP2 000003ee: GT 000003ef: PUSH2 0x03f7 000003f2: JUMPI 000003f3: PUSH1 0x00 000003f5: DUP1 000003f6: REVERT 000003f7: JUMPDEST 000003f8: DUP5 000003f9: PUSH2 0x0403 000003fc: JUMPI 000003fd: POP 000003fe: POP 000003ff: PUSH2 0x04aa 00000402: JUMP 00000403: JUMPDEST 00000404: SELFBALANCE 00000405: DUP6 00000406: DUP2 00000407: LT 00000408: ISZERO 00000409: PUSH2 0x0478 0000040c: JUMPI 0000040d: PUSH1 0x40 0000040f: MLOAD 00000410: PUSH4 0x2e1a7d4d 00000415: PUSH1 0xe0 00000417: SHL 00000418: DUP2 00000419: MSTORE 0000041a: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 0000042f: SWAP1 00000430: PUSH4 0x2e1a7d4d 00000435: SWAP1 00000436: PUSH2 0x0445 00000439: SWAP1 0000043a: DUP5 0000043b: DUP11 0000043c: SUB 0000043d: SWAP1 0000043e: PUSH1 0x04 00000440: ADD 00000441: PUSH2 0x07a7 00000444: JUMP 00000445: JUMPDEST 00000446: PUSH1 0x00 00000448: PUSH1 0x40 0000044a: MLOAD 0000044b: DUP1 0000044c: DUP4 0000044d: SUB 0000044e: DUP2 0000044f: PUSH1 0x00 00000451: DUP8 00000452: DUP1 00000453: EXTCODESIZE 00000454: ISZERO 00000455: DUP1 00000456: ISZERO 00000457: PUSH2 0x045f 0000045a: JUMPI 0000045b: PUSH1 0x00 0000045d: DUP1 0000045e: REVERT 0000045f: JUMPDEST 00000460: POP 00000461: GAS 00000462: CALL 00000463: ISZERO 00000464: DUP1 00000465: ISZERO 00000466: PUSH2 0x0473 00000469: JUMPI 0000046a: RETURNDATASIZE 0000046b: PUSH1 0x00 0000046d: DUP1 0000046e: RETURNDATACOPY 0000046f: RETURNDATASIZE 00000470: PUSH1 0x00 00000472: REVERT 00000473: JUMPDEST 00000474: POP 00000475: POP 00000476: POP 00000477: POP 00000478: JUMPDEST 00000479: PUSH1 0x40 0000047b: MLOAD 0000047c: COINBASE 0000047d: SWAP1 0000047e: DUP8 0000047f: ISZERO 00000480: PUSH2 0x08fc 00000483: MUL 00000484: SWAP1 00000485: DUP9 00000486: SWAP1 00000487: PUSH1 0x00 00000489: DUP2 0000048a: DUP2 0000048b: DUP2 0000048c: DUP6 0000048d: DUP9 0000048e: DUP9 0000048f: CALL 00000490: SWAP4 00000491: POP 00000492: POP 00000493: POP 00000494: POP 00000495: ISZERO 00000496: DUP1 00000497: ISZERO 00000498: PUSH2 0x04a5 0000049b: JUMPI 0000049c: RETURNDATASIZE 0000049d: PUSH1 0x00 0000049f: DUP1 000004a0: RETURNDATACOPY 000004a1: RETURNDATASIZE 000004a2: PUSH1 0x00 000004a4: REVERT 000004a5: JUMPDEST 000004a6: POP 000004a7: POP 000004a8: POP 000004a9: POP 000004aa: JUMPDEST 000004ab: POP 000004ac: POP 000004ad: POP 000004ae: POP 000004af: JUMP 000004b0: JUMPDEST 000004b1: DUP1 000004b2: CALLDATALOAD 000004b3: PUSH2 0x04bb 000004b6: DUP2 000004b7: PUSH2 0x0823 000004ba: JUMP 000004bb: JUMPDEST 000004bc: SWAP3 000004bd: SWAP2 000004be: POP 000004bf: POP 000004c0: JUMP 000004c1: JUMPDEST 000004c2: PUSH1 0x00 000004c4: PUSH1 0x1f 000004c6: DUP4 000004c7: DUP2 000004c8: DUP5 000004c9: ADD 000004ca: SLT 000004cb: PUSH2 0x04d2 000004ce: JUMPI 000004cf: DUP2 000004d0: DUP3 000004d1: REVERT 000004d2: JUMPDEST 000004d3: DUP3 000004d4: CALLDATALOAD 000004d5: PUSH2 0x04e5 000004d8: PUSH2 0x04e0 000004db: DUP3 000004dc: PUSH2 0x07d7 000004df: JUMP 000004e0: JUMPDEST 000004e1: PUSH2 0x07b0 000004e4: JUMP 000004e5: JUMPDEST 000004e6: DUP2 000004e7: DUP2 000004e8: MSTORE 000004e9: SWAP3 000004ea: POP 000004eb: PUSH1 0x20 000004ed: DUP1 000004ee: DUP5 000004ef: ADD 000004f0: SWAP1 000004f1: DUP6 000004f2: DUP2 000004f3: ADD 000004f4: PUSH1 0x00 000004f6: JUMPDEST 000004f7: DUP5 000004f8: DUP2 000004f9: LT 000004fa: ISZERO 000004fb: PUSH2 0x0578 000004fe: JUMPI 000004ff: DUP2 00000500: CALLDATALOAD 00000501: DUP9 00000502: ADD 00000503: DUP10 00000504: PUSH1 0x3f 00000506: DUP3 00000507: ADD 00000508: SLT 00000509: PUSH2 0x0511 0000050c: JUMPI 0000050d: PUSH1 0x00 0000050f: DUP1 00000510: REVERT 00000511: JUMPDEST 00000512: DUP4 00000513: DUP2 00000514: ADD 00000515: CALLDATALOAD 00000516: PUSH8 0xffffffffffffffff 0000051f: DUP2 00000520: GT 00000521: ISZERO 00000522: PUSH2 0x052a 00000525: JUMPI 00000526: PUSH1 0x00 00000528: DUP1 00000529: REVERT 0000052a: JUMPDEST 0000052b: PUSH2 0x053b 0000052e: DUP2 0000052f: DUP10 00000530: ADD 00000531: PUSH1 0x1f 00000533: NOT 00000534: AND 00000535: DUP7 00000536: ADD 00000537: PUSH2 0x07b0 0000053a: JUMP 0000053b: JUMPDEST 0000053c: DUP2 0000053d: DUP2 0000053e: MSTORE 0000053f: PUSH1 0x40 00000541: DUP13 00000542: DUP2 00000543: DUP5 00000544: DUP7 00000545: ADD 00000546: ADD 00000547: GT 00000548: ISZERO 00000549: PUSH2 0x0551 0000054c: JUMPI 0000054d: PUSH1 0x00 0000054f: DUP1 00000550: REVERT 00000551: JUMPDEST 00000552: DUP3 00000553: DUP2 00000554: DUP6 00000555: ADD 00000556: DUP9 00000557: DUP5 00000558: ADD 00000559: CALLDATACOPY 0000055a: POP 0000055b: PUSH1 0x00 0000055d: SWAP2 0000055e: DUP2 0000055f: ADD 00000560: DUP7 00000561: ADD 00000562: SWAP2 00000563: SWAP1 00000564: SWAP2 00000565: MSTORE 00000566: DUP6 00000567: MSTORE 00000568: POP 00000569: SWAP3 0000056a: DUP3 0000056b: ADD 0000056c: SWAP3 0000056d: SWAP1 0000056e: DUP3 0000056f: ADD 00000570: SWAP1 00000571: PUSH1 0x01 00000573: ADD 00000574: PUSH2 0x04f6 00000577: JUMP 00000578: JUMPDEST 00000579: POP 0000057a: POP 0000057b: POP 0000057c: POP 0000057d: POP 0000057e: POP 0000057f: SWAP3 00000580: SWAP2 00000581: POP 00000582: POP 00000583: JUMP 00000584: JUMPDEST 00000585: PUSH1 0x00 00000587: DUP1 00000588: PUSH1 0x00 0000058a: DUP1 0000058b: PUSH1 0x60 0000058d: DUP6 0000058e: DUP8 0000058f: SUB 00000590: SLT 00000591: ISZERO 00000592: PUSH2 0x0599 00000595: JUMPI 00000596: DUP4 00000597: DUP5 00000598: REVERT 00000599: JUMPDEST 0000059a: DUP5 0000059b: CALLDATALOAD 0000059c: PUSH2 0x05a4 0000059f: DUP2 000005a0: PUSH2 0x0823 000005a3: JUMP 000005a4: JUMPDEST 000005a5: SWAP4 000005a6: POP 000005a7: PUSH1 0x20 000005a9: DUP6 000005aa: ADD 000005ab: CALLDATALOAD 000005ac: SWAP3 000005ad: POP 000005ae: PUSH1 0x40 000005b0: DUP6 000005b1: ADD 000005b2: CALLDATALOAD 000005b3: PUSH8 0xffffffffffffffff 000005bc: DUP1 000005bd: DUP3 000005be: GT 000005bf: ISZERO 000005c0: PUSH2 0x05c7 000005c3: JUMPI 000005c4: DUP4 000005c5: DUP5 000005c6: REVERT 000005c7: JUMPDEST 000005c8: DUP2 000005c9: DUP8 000005ca: ADD 000005cb: SWAP2 000005cc: POP 000005cd: DUP8 000005ce: PUSH1 0x1f 000005d0: DUP4 000005d1: ADD 000005d2: SLT 000005d3: PUSH2 0x05da 000005d6: JUMPI 000005d7: DUP4 000005d8: DUP5 000005d9: REVERT 000005da: JUMPDEST 000005db: DUP2 000005dc: CALLDATALOAD 000005dd: DUP2 000005de: DUP2 000005df: GT 000005e0: ISZERO 000005e1: PUSH2 0x05e8 000005e4: JUMPI 000005e5: DUP5 000005e6: DUP6 000005e7: REVERT 000005e8: JUMPDEST 000005e9: DUP9 000005ea: PUSH1 0x20 000005ec: DUP3 000005ed: DUP6 000005ee: ADD 000005ef: ADD 000005f0: GT 000005f1: ISZERO 000005f2: PUSH2 0x05f9 000005f5: JUMPI 000005f6: DUP5 000005f7: DUP6 000005f8: REVERT 000005f9: JUMPDEST 000005fa: SWAP6 000005fb: SWAP9 000005fc: SWAP5 000005fd: SWAP8 000005fe: POP 000005ff: POP 00000600: PUSH1 0x20 00000602: ADD 00000603: SWAP5 00000604: POP 00000605: POP 00000606: POP 00000607: JUMP 00000608: JUMPDEST 00000609: PUSH1 0x00 0000060b: PUSH1 0x20 0000060d: DUP3 0000060e: DUP5 0000060f: SUB 00000610: SLT 00000611: ISZERO 00000612: PUSH2 0x0619 00000615: JUMPI 00000616: DUP1 00000617: DUP2 00000618: REVERT 00000619: JUMPDEST 0000061a: DUP2 0000061b: MLOAD 0000061c: DUP1 0000061d: ISZERO 0000061e: ISZERO 0000061f: DUP2 00000620: EQ 00000621: PUSH2 0x0628 00000624: JUMPI 00000625: DUP2 00000626: DUP3 00000627: REVERT 00000628: JUMPDEST 00000629: SWAP4 0000062a: SWAP3 0000062b: POP 0000062c: POP 0000062d: POP 0000062e: JUMP 0000062f: JUMPDEST 00000630: PUSH1 0x00 00000632: PUSH1 0x20 00000634: DUP3 00000635: DUP5 00000636: SUB 00000637: SLT 00000638: ISZERO 00000639: PUSH2 0x0640 0000063c: JUMPI 0000063d: DUP1 0000063e: DUP2 0000063f: REVERT 00000640: JUMPDEST 00000641: POP 00000642: MLOAD 00000643: SWAP2 00000644: SWAP1 00000645: POP 00000646: JUMP 00000647: JUMPDEST 00000648: PUSH1 0x00 0000064a: DUP1 0000064b: PUSH1 0x00 0000064d: DUP1 0000064e: PUSH1 0x80 00000650: DUP6 00000651: DUP8 00000652: SUB 00000653: SLT 00000654: ISZERO 00000655: PUSH2 0x065c 00000658: JUMPI 00000659: DUP4 0000065a: DUP5 0000065b: REVERT 0000065c: JUMPDEST 0000065d: DUP5 0000065e: CALLDATALOAD 0000065f: SWAP4 00000660: POP 00000661: PUSH1 0x20 00000663: DUP1 00000664: DUP7 00000665: ADD 00000666: CALLDATALOAD 00000667: SWAP4 00000668: POP 00000669: PUSH1 0x40 0000066b: DUP7 0000066c: ADD 0000066d: CALLDATALOAD 0000066e: PUSH8 0xffffffffffffffff 00000677: DUP1 00000678: DUP3 00000679: GT 0000067a: ISZERO 0000067b: PUSH2 0x0682 0000067e: JUMPI 0000067f: DUP5 00000680: DUP6 00000681: REVERT 00000682: JUMPDEST 00000683: DUP2 00000684: DUP9 00000685: ADD 00000686: SWAP2 00000687: POP 00000688: DUP9 00000689: PUSH1 0x1f 0000068b: DUP4 0000068c: ADD 0000068d: SLT 0000068e: PUSH2 0x0695 00000691: JUMPI 00000692: DUP5 00000693: DUP6 00000694: REVERT 00000695: JUMPDEST 00000696: DUP2 00000697: CALLDATALOAD 00000698: PUSH2 0x06a3 0000069b: PUSH2 0x04e0 0000069e: DUP3 0000069f: PUSH2 0x07d7 000006a2: JUMP 000006a3: JUMPDEST 000006a4: DUP2 000006a5: DUP2 000006a6: MSTORE 000006a7: DUP5 000006a8: DUP2 000006a9: ADD 000006aa: SWAP1 000006ab: DUP5 000006ac: DUP7 000006ad: ADD 000006ae: DUP7 000006af: DUP5 000006b0: MUL 000006b1: DUP7 000006b2: ADD 000006b3: DUP8 000006b4: ADD 000006b5: DUP14 000006b6: LT 000006b7: ISZERO 000006b8: PUSH2 0x06bf 000006bb: JUMPI 000006bc: DUP9 000006bd: DUP10 000006be: REVERT 000006bf: JUMPDEST 000006c0: DUP9 000006c1: SWAP6 000006c2: POP 000006c3: JUMPDEST 000006c4: DUP4 000006c5: DUP7 000006c6: LT 000006c7: ISZERO 000006c8: PUSH2 0x06e9 000006cb: JUMPI 000006cc: PUSH2 0x06d5 000006cf: DUP14 000006d0: DUP3 000006d1: PUSH2 0x04b0 000006d4: JUMP 000006d5: JUMPDEST 000006d6: DUP4 000006d7: MSTORE 000006d8: PUSH1 0x01 000006da: SWAP6 000006db: SWAP1 000006dc: SWAP6 000006dd: ADD 000006de: SWAP5 000006df: SWAP2 000006e0: DUP7 000006e1: ADD 000006e2: SWAP2 000006e3: DUP7 000006e4: ADD 000006e5: PUSH2 0x06c3 000006e8: JUMP 000006e9: JUMPDEST 000006ea: POP 000006eb: SWAP7 000006ec: POP 000006ed: POP 000006ee: POP 000006ef: PUSH1 0x60 000006f1: DUP9 000006f2: ADD 000006f3: CALLDATALOAD 000006f4: SWAP3 000006f5: POP 000006f6: DUP1 000006f7: DUP4 000006f8: GT 000006f9: ISZERO 000006fa: PUSH2 0x0701 000006fd: JUMPI 000006fe: DUP4 000006ff: DUP5 00000700: REVERT 00000701: JUMPDEST 00000702: POP 00000703: POP 00000704: PUSH2 0x070f 00000707: DUP8 00000708: DUP3 00000709: DUP9 0000070a: ADD 0000070b: PUSH2 0x04c1 0000070e: JUMP 0000070f: JUMPDEST 00000710: SWAP2 00000711: POP 00000712: POP 00000713: SWAP3 00000714: SWAP6 00000715: SWAP2 00000716: SWAP5 00000717: POP 00000718: SWAP3 00000719: POP 0000071a: JUMP 0000071b: JUMPDEST 0000071c: PUSH1 0x00 0000071e: DUP3 0000071f: DUP5 00000720: DUP4 00000721: CALLDATACOPY 00000722: SWAP2 00000723: ADD 00000724: SWAP1 00000725: DUP2 00000726: MSTORE 00000727: SWAP2 00000728: SWAP1 00000729: POP 0000072a: JUMP 0000072b: JUMPDEST 0000072c: PUSH1 0x00 0000072e: DUP3 0000072f: MLOAD 00000730: PUSH2 0x073d 00000733: DUP2 00000734: DUP5 00000735: PUSH1 0x20 00000737: DUP8 00000738: ADD 00000739: PUSH2 0x07f7 0000073c: JUMP 0000073d: JUMPDEST 0000073e: SWAP2 0000073f: SWAP1 00000740: SWAP2 00000741: ADD 00000742: SWAP3 00000743: SWAP2 00000744: POP 00000745: POP 00000746: JUMP 00000747: JUMPDEST 00000748: PUSH1 0x01 0000074a: PUSH1 0x01 0000074c: PUSH1 0xa0 0000074e: SHL 0000074f: SUB 00000750: SWAP2 00000751: SWAP1 00000752: SWAP2 00000753: AND 00000754: DUP2 00000755: MSTORE 00000756: PUSH1 0x20 00000758: ADD 00000759: SWAP1 0000075a: JUMP 0000075b: JUMPDEST 0000075c: PUSH1 0x01 0000075e: PUSH1 0x01 00000760: PUSH1 0xa0 00000762: SHL 00000763: SUB 00000764: SWAP3 00000765: SWAP1 00000766: SWAP3 00000767: AND 00000768: DUP3 00000769: MSTORE 0000076a: PUSH1 0x20 0000076c: DUP3 0000076d: ADD 0000076e: MSTORE 0000076f: PUSH1 0x40 00000771: ADD 00000772: SWAP1 00000773: JUMP 00000774: JUMPDEST 00000775: PUSH1 0x00 00000777: PUSH1 0x20 00000779: DUP3 0000077a: MSTORE 0000077b: DUP3 0000077c: MLOAD 0000077d: DUP1 0000077e: PUSH1 0x20 00000780: DUP5 00000781: ADD 00000782: MSTORE 00000783: PUSH2 0x0793 00000786: DUP2 00000787: PUSH1 0x40 00000789: DUP6 0000078a: ADD 0000078b: PUSH1 0x20 0000078d: DUP8 0000078e: ADD 0000078f: PUSH2 0x07f7 00000792: JUMP 00000793: JUMPDEST 00000794: PUSH1 0x1f 00000796: ADD 00000797: PUSH1 0x1f 00000799: NOT 0000079a: AND 0000079b: SWAP2 0000079c: SWAP1 0000079d: SWAP2 0000079e: ADD 0000079f: PUSH1 0x40 000007a1: ADD 000007a2: SWAP3 000007a3: SWAP2 000007a4: POP 000007a5: POP 000007a6: JUMP 000007a7: JUMPDEST 000007a8: SWAP1 000007a9: DUP2 000007aa: MSTORE 000007ab: PUSH1 0x20 000007ad: ADD 000007ae: SWAP1 000007af: JUMP 000007b0: JUMPDEST 000007b1: PUSH1 0x40 000007b3: MLOAD 000007b4: DUP2 000007b5: DUP2 000007b6: ADD 000007b7: PUSH8 0xffffffffffffffff 000007c0: DUP2 000007c1: GT 000007c2: DUP3 000007c3: DUP3 000007c4: LT 000007c5: OR 000007c6: ISZERO 000007c7: PUSH2 0x07cf 000007ca: JUMPI 000007cb: PUSH1 0x00 000007cd: DUP1 000007ce: REVERT 000007cf: JUMPDEST 000007d0: PUSH1 0x40 000007d2: MSTORE 000007d3: SWAP2 000007d4: SWAP1 000007d5: POP 000007d6: JUMP 000007d7: JUMPDEST 000007d8: PUSH1 0x00 000007da: PUSH8 0xffffffffffffffff 000007e3: DUP3 000007e4: GT 000007e5: ISZERO 000007e6: PUSH2 0x07ed 000007e9: JUMPI 000007ea: DUP1 000007eb: DUP2 000007ec: REVERT 000007ed: JUMPDEST 000007ee: POP 000007ef: PUSH1 0x20 000007f1: SWAP1 000007f2: DUP2 000007f3: MUL 000007f4: ADD 000007f5: SWAP1 000007f6: JUMP 000007f7: JUMPDEST 000007f8: PUSH1 0x00 000007fa: JUMPDEST 000007fb: DUP4 000007fc: DUP2 000007fd: LT 000007fe: ISZERO 000007ff: PUSH2 0x0812 00000802: JUMPI 00000803: DUP2 00000804: DUP2 00000805: ADD 00000806: MLOAD 00000807: DUP4 00000808: DUP3 00000809: ADD 0000080a: MSTORE 0000080b: PUSH1 0x20 0000080d: ADD 0000080e: PUSH2 0x07fa 00000811: JUMP 00000812: JUMPDEST 00000813: DUP4 00000814: DUP2 00000815: GT 00000816: ISZERO 00000817: PUSH2 0x04aa 0000081a: JUMPI 0000081b: POP 0000081c: POP 0000081d: PUSH1 0x00 0000081f: SWAP2 00000820: ADD 00000821: MSTORE 00000822: JUMP 00000823: JUMPDEST 00000824: PUSH1 0x01 00000826: PUSH1 0x01 00000828: PUSH1 0xa0 0000082a: SHL 0000082b: SUB 0000082c: DUP2 0000082d: AND 0000082e: DUP2 0000082f: EQ 00000830: PUSH2 0x0838 00000833: JUMPI 00000834: PUSH1 0x00 00000836: DUP1 00000837: REVERT 00000838: JUMPDEST 00000839: POP 0000083a: JUMP 0000083b: INVALID 0000083c: LOG2 0000083d: PUSH5 0x6970667358 00000843: UNKNOWN(0x22) 00000844: SLT 00000845: KECCAK256 00000846: UNKNOWN(0xB3) 00000847: UNKNOWN(0x1F) 00000848: DIV 00000849: UNKNOWN(0xD0) 0000084a: REVERT 0000084b: UNKNOWN(0xCB) 0000084c: ADD 0000084d: DELEGATECALL 0000084e: UNKNOWN(0xD6) 0000084f: UNKNOWN(0xDC) 00000850: ISZERO 00000851: UNKNOWN(0xB7) 00000852: CREATE 00000853: UNKNOWN(0xFC) 00000854: PUSH22 0x776dc699ffee0226d4dd6226970a7d86e664736f6c63 0000086b: NUMBER 0000086c: STOP 0000086d: MOD 0000086e: UNKNOWN(0x0C) 0000086f: STOP 00000870: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| critical | upgradeability | detector | Untrusted DELEGATECALL target reachable | 70 | no | no |
viewtrace_id: 0x1a6d3b6087dcd63c33cd82446df639591973f8ea3bd1e10c5200f6a81303f3f1
validation_json{
"sink": "DELEGATECALL",
"errors": 0,
"status": "unknown",
"attempts": 24,
"trace_id": "0x1a6d3b6087dcd63c33cd82446df639591973f8ea3bd1e10c5200f6a81303f3f1",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x6dbf2fa0",
"selector": "0x6dbf2fa0",
"calldata_variants": [
"0x6dbf2fa0",
"0x6dbf2fa00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xecd494b3",
"selector": "0xecd494b3",
"calldata_variants": [
"0xecd494b3",
"0xecd494b30000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2125,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
}
],
"guards_detected": [],
"delegatecall_count": 1,
"untrusted_delegatecall_count": 1
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x75f02c8df018f16b33f634e163d8fae00a8195cc1d99d721bc0188c21a6c9a03
call_targets:
0xc35d77d25d81be78ad60ce14fea7c92d438782e3
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x75f02c8df018f16b33f634e163d8fae00a8195cc1d99d721bc0188c21a6c9a03",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xc35d77d25d81be78ad60ce14fea7c92d438782e3"
],
"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": "0x6dbf2fa0",
"selector": "0x6dbf2fa0",
"calldata_variants": [
"0x6dbf2fa0",
"0x6dbf2fa00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xecd494b3",
"selector": "0xecd494b3",
"calldata_variants": [
"0xecd494b3",
"0xecd494b30000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 237,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 637,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 783,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 5,
"guards_detected": [],
"untrusted_call_count": 5
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x75f02c8df018f16b33f634e163d8fae00a8195cc1d99d721bc0188c21a6c9a03
call_targets:
0xc35d77d25d81be78ad60ce14fea7c92d438782e3
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x75f02c8df018f16b33f634e163d8fae00a8195cc1d99d721bc0188c21a6c9a03",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xc35d77d25d81be78ad60ce14fea7c92d438782e3"
],
"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": "0x6dbf2fa0",
"selector": "0x6dbf2fa0",
"calldata_variants": [
"0x6dbf2fa0",
"0x6dbf2fa00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xecd494b3",
"selector": "0xecd494b3",
"calldata_variants": [
"0xecd494b3",
"0xecd494b30000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 237,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 637,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 783,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 5,
"guards_detected": []
}
|
| high | other | slither | FlashBotsMultiCall.uniswapWeth(uint256,uint256,address[],bytes[]) (contracts/Contract.sol#50-71) ignores return value by WETH.transfer(_targets[0],_wethAmountToFirstMarket) (con... | 85 | no | — |
viewevidence_json{
"impact": "High",
"detector": "unchecked-transfer",
"elements": [
{
"name": "uniswapWeth",
"type": "function",
"source_mapping": {
"lines": [
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71
],
"start": 1718,
"length": 981,
"ending_column": 1,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 3,
"filename_absolute": "/tmp/slither-lunpq0jq/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "FlashBotsMultiCall",
"type": "contract",
"source_mapping": {
"lines": [
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77
],
"start": 1107,
"length": 1897,
"ending_column": 63,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 76,
"filename_absolute": "/tmp/slither-lunpq0jq/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "uniswapWeth(uint256,uint256,address[],bytes[])"
}
},
{
"name": "WETH.transfer(_targets[0],_wethAmountToFirstMarket)",
"type": "node",
"source_mapping": {
"lines": [
57,
58
],
"start": 2019,
"length": 52,
"ending_column": 4,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 21,
"filename_absolute": "/tmp/slither-lunpq0jq/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "uniswapWeth",
"type": "function",
"source_mapping": {
"lines": [
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71
],
"start": 1718,
"length": 981,
"ending_column": 1,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 3,
"filename_absolute": "/tmp/slither-lunpq0jq/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "FlashBotsMultiCall",
"type": "contract",
"source_mapping": {
"lines": [
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77
],
"start": 1107,
"length": 1897,
"ending_column": 63,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 76,
"filename_absolute": "/tmp/slither-lunpq0jq/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "uniswapWeth(uint256,uint256,address[],bytes[])"
}
}
}
}
],
"locations": [
{
"file": "contracts/Contract.sol",
"name": "uniswapWeth",
"type": "function",
"lines": [
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71
]
},
{
"file": "contracts/Contract.sol",
"name": "WETH.transfer(_targets[0],_wethAmountToFirstMarket)",
"type": "node",
"lines": [
57,
58
]
}
],
"description": "FlashBotsMultiCall.uniswapWeth(uint256,uint256,address[],bytes[]) (contracts/Contract.sol#50-71) ignores return value by WETH.transfer(_targets[0],_wethAmountToFirstMarket) (contracts/Contract.sol#57-58)"
}
|
| medium | upgradeability | cast | DELEGATECALL present | 80 | no | — |
viewevidence_json{
"notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
"delegatecall_count": 1
}
|
| medium | other | detector | CREATE/CREATE2 reachable | 45 | no | no |
viewtrace_id: 0xf3f64477bf79c590847f8da45237a388fbdb6191178184fc6ad0aaa393182185
validation_json{
"sink": "CREATE",
"errors": 0,
"status": "unknown",
"attempts": 4,
"trace_id": "0xf3f64477bf79c590847f8da45237a388fbdb6191178184fc6ad0aaa393182185",
"confirmed": false,
"trace_mode": "structLogs",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x6dbf2fa0",
"selector": "0x6dbf2fa0",
"calldata_variants": [
"0x6dbf2fa0",
"0x6dbf2fa00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xecd494b3",
"selector": "0xecd494b3",
"calldata_variants": [
"0xecd494b3",
"0xecd494b30000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"create_count": 1,
"create2_count": 0
}
|
| low | other | cast | Contract creation opcode present | 60 | no | — |
viewevidence_json{
"notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
"create_count": 1,
"create2_count": 0
}
|