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

Analysis Run

019c0ea9-0913-71a5-94ad-a630aa874b8f

complete
Chain ID
1
Address
Block Number
Created
Fri, Jan 30, 2026 11:28 AM
Review Summary

What survived the funnel

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

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

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
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

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no not_proxy
Implementation:
Verified Source: yes
Proxy evidence
{
    "status": "not_proxy"
}

Slither

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

Codex

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

Opcode Heuristics

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

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
critical upgradeability detector Untrusted DELEGATECALL target reachable 70 no no
view
trace_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
view
trace_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
view
trace_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
view
evidence_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
view
evidence_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
view
trace_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
view
evidence_json
{
    "notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
    "create_count": 1,
    "create2_count": 0
}