019b3831-b4f2-714e-8d83-674c9b049484
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 |
|---|---|---|---|---|
| 69 | artifact.fetch | complete | 1 / 3 | 3 months ago |
| 70 | tool.cast_disasm | complete | 1 / 3 | 3 months ago |
| 43171 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 43172 | capability.graph | complete | 1 / 3 | 1 week ago |
| 43173 | detector.run | complete | 1 / 3 | 1 week ago |
| 43174 | validation.fork | complete | 1 / 3 | 1 week ago |
| 59649 | report.consolidate | complete | 1 / 6 | 1 week ago |
No slither job recorded yet.
{"no_findings":false,"summary":"The bundle includes embedded CREATE init/runtime blobs; selector inference is best-effort. One high-confidence issue affects the live top-level bytecode directly, and two additional issues affect a deployable child runtime reachable through the embedded CREATE paths.","findings":[{"severity":"high","category":"other","title":"Top-level accounting decrements user balances but creates child contracts with zero ETH","exploit_scenario":"On the live contract, selector 0x9e39db73 credits a per-user storage bucket with CALLVALUE, so users can deposit ETH. Later, selector 0xa9059cbb checks that recorded bucket and decrements it, but the CREATE at pc 0x20a is invoked with zero value. The returned child contract is therefore unfunded while the parent keeps the ETH. Because the live top-level bytecode has no CALL/SELFDESTRUCT withdrawal path before the embedded child blob, deposited ETH can become stranded in the parent while users' recorded balances are burned down.","recommendation":"Fund the created child with the withdrawn amount, or do not decrement recorded balances unless value transfer succeeds. Also add an explicit invariant that parent balance tracks outstanding recorded balances, and reject unexpected CALLVALUE on non-deposit paths.","evidence":"Top-level selector 0x9e39db73 reaches pc 0x11d and adds CALLVALUE into storage keyed by keccak(arg,1). Selector 0xa9059cbb reaches pc 0x20a, where CREATE is executed from prepared initcode with a zero literal pushed immediately before CREATE; afterwards the code subtracts the requested amount from the same storage bucket at pc 0x23a-0x247-equivalent SSTORE logic. The top-level region has CREATE as its only sink; no CALL/SELFDESTRUCT appears before the embedded blob at 0x2f5.","locations":["selector:0x9e39db73","selector:0xa9059cbb","pc:0x11d","pc:0x20a","pc:0x247"]},{"severity":"high","category":"reentrancy","title":"Deployable child runtime pays arbitrary recipients via CALL with no reentrancy guard","exploit_scenario":"A reachable child runtime embedded in the bytecode exposes selector 0x119f8747, which iterates over stored payout entries and performs a value-bearing CALL to each recipient. A malicious recipient contract can reenter 0x119f8747 from its fallback during the CALL at pc 0xc84. Because the loop uses only stack-local progress and does not mark entries as paid or lock execution before the external call, the nested invocation can restart the payout loop from the beginning and replay payouts until the child contract balance is drained.","recommendation":"Apply checks-effects-interactions: mark entries as paid or advance persistent progress before the CALL, add a reentrancy guard, and preferably use a pull-payment model where recipients withdraw individually.","evidence":"The bundle confirms CREATE reachability, and the embedded child runtime dispatches selector 0x119f8747 to the payout loop starting near pc 0xbf4. Inside that loop, recipient/value pairs are loaded from storage-backed entries and sent with CALL at pc 0xc84. There is no guard detection in this path and no protective SSTORE before the CALL; execution simply POPs the result and continues looping.","locations":["selector:0x119f8747","pc:0x685","pc:0xbf4","pc:0xc84"]},{"severity":"medium","category":"other","title":"Child payout loop ignores CALL failure, so recipients can be skipped and funds redistributed incorrectly","exploit_scenario":"In the same deployable child runtime, if any payout recipient reverts or the value transfer fails, the CALL result is discarded and the loop continues. A reverting recipient can therefore be silently skipped, while later logic still proceeds. In the expiry path, selector 0x86d1a69f invokes the same loop and then selfdestructs the remaining balance to slot0, so unpaid recipients can lose their allocation entirely.","recommendation":"Check the CALL success flag and revert or record the debt when a transfer fails. Do not selfdestruct or finalize distribution until every intended payment is confirmed.","evidence":"At pc 0xc84 the child runtime executes CALL, then immediately POPs the return value and advances the loop without branching on success or inspecting returndata. Selector 0x86d1a69f jumps into the same internal payout routine and later reaches SELFDESTRUCT, making silent payment failure an accounting risk rather than a benign no-op.","locations":["selector:0x119f8747","selector:0x86d1a69f","pc:0xc84","pc:0xa25"]}]}
0000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 15
}
},
{
"auth": {
"guards": [
{
"pc": 1324,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1478,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
},
"entry_pc": 2261886623,
"selector": "0x66d003ac",
"sinks": {
"call": 1,
"delegatecall": 0,
"selfdestruct": 5,
"staticcall": 0
},
"storage": {
"reads": 42,
"slots": [
{
"op": "SLOAD",
"pc": 254,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 281,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 429,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1111,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1149,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1187,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 1196,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 1210,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1272,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1358,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1426,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1516,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2334,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2372,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2410,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 2419,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 2430,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 2465,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2514,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2523,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 2545,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2647,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SSTORE",
"pc": 2660,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 2877,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2976,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 2982,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 3003,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 3075,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 3090,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 3124,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 15
}
},
{
"auth": {
"guards": [
{
"pc": 1324,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1478,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
},
"entry_pc": 2376452955,
"selector": "0x86d1a69f",
"sinks": {
"call": 1,
"delegatecall": 0,
"selfdestruct": 5,
"staticcall": 0
},
"storage": {
"reads": 42,
"slots": [
{
"op": "SLOAD",
"pc": 254,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 281,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 429,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1111,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1149,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1187,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 1196,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 1210,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1272,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1358,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1426,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1516,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2334,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2372,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2410,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 2419,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 2430,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 2465,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2514,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2523,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 2545,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2647,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SSTORE",
"pc": 2660,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 2877,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2976,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 2982,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 3003,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 3075,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 3090,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 3124,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 15
}
},
{
"auth": {
"guards": [
{
"pc": 1324,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1478,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
},
"entry_pc": 3105701889,
"selector": "0x8da5cb5b",
"sinks": {
"call": 1,
"delegatecall": 0,
"selfdestruct": 5,
"staticcall": 0
},
"storage": {
"reads": 42,
"slots": [
{
"op": "SLOAD",
"pc": 254,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 281,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 429,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1111,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1149,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1187,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 1196,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 1210,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1272,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1358,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1426,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1516,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2334,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2372,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2410,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 2419,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 2430,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 2465,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2514,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2523,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 2545,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2647,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SSTORE",
"pc": 2660,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 2877,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2976,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 2982,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 3003,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 3075,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 3090,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 3124,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 15
}
},
{
"auth": {
"guards": [
{
"pc": 1324,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1478,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
},
"entry_pc": 3934919408,
"selector": "0xb91d4001",
"sinks": {
"call": 1,
"delegatecall": 0,
"selfdestruct": 5,
"staticcall": 0
},
"storage": {
"reads": 42,
"slots": [
{
"op": "SLOAD",
"pc": 254,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 281,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 429,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1111,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1149,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1187,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 1196,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 1210,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1272,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1358,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1426,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1516,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2334,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2372,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2410,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 2419,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 2430,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 2465,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2514,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2523,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 2545,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2647,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SSTORE",
"pc": 2660,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 2877,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2976,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 2982,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 3003,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 3075,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 3090,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 3124,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 15
}
},
{
"auth": {
"guards": [
{
"pc": 1324,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1478,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
},
"entry_pc": null,
"selector": "0xea8a1af0",
"sinks": {
"call": 1,
"delegatecall": 0,
"selfdestruct": 5,
"staticcall": 0
},
"storage": {
"reads": 42,
"slots": [
{
"op": "SLOAD",
"pc": 254,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 281,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 429,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1111,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1149,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1187,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 1196,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 1210,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1272,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1358,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1426,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1516,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2334,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2372,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2410,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 2419,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 2430,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 2465,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2514,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2523,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 2545,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2647,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SSTORE",
"pc": 2660,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 2877,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2976,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 2982,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 3003,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 3075,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 3090,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 3124,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 15
}
},
{
"auth": {
"guards": [
{
"pc": 1324,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1478,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
},
"entry_pc": 702329039,
"selector": "0x119f8747",
"sinks": {
"call": 1,
"delegatecall": 0,
"selfdestruct": 5,
"staticcall": 0
},
"storage": {
"reads": 42,
"slots": [
{
"op": "SLOAD",
"pc": 254,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 281,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 429,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1111,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1149,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1187,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 1196,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 1210,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1272,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1358,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1426,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1516,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2334,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2372,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2410,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 2419,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 2430,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 2465,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2514,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2523,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 2545,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2647,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SSTORE",
"pc": 2660,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 2877,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2976,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 2982,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 3003,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 3075,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 3090,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 3124,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 15
}
},
{
"auth": {
"guards": [
{
"pc": 1324,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1478,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
},
"entry_pc": 1009039319,
"selector": "0x29dcb0cf",
"sinks": {
"call": 1,
"delegatecall": 0,
"selfdestruct": 5,
"staticcall": 0
},
"storage": {
"reads": 42,
"slots": [
{
"op": "SLOAD",
"pc": 254,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 281,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 429,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1111,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1149,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1187,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 1196,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 1210,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1272,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1358,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1426,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1516,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2334,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2372,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2410,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 2419,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 2430,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 2465,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2514,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2523,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 2545,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2647,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SSTORE",
"pc": 2660,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 2877,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2976,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 2982,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 3003,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 3075,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 3090,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 3124,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 15
}
},
{
"auth": {
"guards": [
{
"pc": 1324,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1478,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
},
"entry_pc": 1428191708,
"selector": "0x3c24b7d7",
"sinks": {
"call": 1,
"delegatecall": 0,
"selfdestruct": 5,
"staticcall": 0
},
"storage": {
"reads": 42,
"slots": [
{
"op": "SLOAD",
"pc": 254,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 281,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 429,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1111,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1149,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1187,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 1196,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 1210,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1272,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1358,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1426,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1516,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2334,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2372,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2410,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 2419,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 2430,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 2465,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2514,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2523,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 2545,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2647,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SSTORE",
"pc": 2660,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 2877,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2976,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 2982,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 3003,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 3075,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 3090,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 3124,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 15
}
},
{
"auth": {
"guards": [
{
"pc": 1324,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1478,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
},
"entry_pc": 1724908460,
"selector": "0x552079dc",
"sinks": {
"call": 1,
"delegatecall": 0,
"selfdestruct": 5,
"staticcall": 0
},
"storage": {
"reads": 42,
"slots": [
{
"op": "SLOAD",
"pc": 254,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 281,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 429,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1111,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1149,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1187,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 1196,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 1210,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1272,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1358,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1426,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1516,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2334,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2372,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2410,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 2419,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 2430,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 2465,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2514,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2523,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 2545,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2647,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SSTORE",
"pc": 2660,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 2877,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2976,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 2982,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 3003,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 3075,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 3090,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 3124,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 15
}
},
{
"auth": {
"guards": [
{
"pc": 1324,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1478,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
},
"entry_pc": 2261886623,
"selector": "0x702c35fb",
"sinks": {
"call": 1,
"delegatecall": 0,
"selfdestruct": 5,
"staticcall": 0
},
"storage": {
"reads": 42,
"slots": [
{
"op": "SLOAD",
"pc": 254,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 281,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 429,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1111,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1149,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1187,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 1196,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 1210,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1272,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1358,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1426,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1516,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2334,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2372,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2410,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 2419,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 2430,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 2465,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2514,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2523,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 2545,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2647,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SSTORE",
"pc": 2660,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 2877,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2976,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 2982,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 3003,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 3075,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 3090,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 3124,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 15
}
},
{
"auth": {
"guards": [
{
"pc": 1324,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1478,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
},
"entry_pc": null,
"selector": "0xc9e7e29b",
"sinks": {
"call": 1,
"delegatecall": 0,
"selfdestruct": 5,
"staticcall": 0
},
"storage": {
"reads": 42,
"slots": [
{
"op": "SLOAD",
"pc": 254,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 281,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 429,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1111,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1149,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1187,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 1196,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 1210,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1272,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1358,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1426,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1516,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2334,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2372,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2410,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 2419,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 2430,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 2465,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2514,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2523,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 2545,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2647,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SSTORE",
"pc": 2660,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 2877,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2976,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 2982,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 3003,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 3075,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 3090,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 3124,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 15
}
}
]
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.storage' BYTECODE_BUNDLE.json" in /tmp/codex-elbdutre
succeeded in 0ms:
{
"keccak_count": 8,
"reads": 42,
"slots": [
{
"op": "SLOAD",
"pc": 254,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 281,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 429,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1111,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1149,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1187,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 1196,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 1210,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1272,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1358,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1426,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1516,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2334,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2372,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2410,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 2419,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 2430,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 2465,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2514,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2523,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 2545,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2647,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SSTORE",
"pc": 2660,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 2877,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2976,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 2982,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 3003,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 3075,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 3090,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 3124,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 15
}
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.function_entries' BYTECODE_BUNDLE.json" in /tmp/codex-elbdutre
succeeded in 0ms:
[
{
"entry_pc": 1782757624,
"selector": "0x27e235e3"
},
{
"entry_pc": 2654591859,
"selector": "0x6a42b8f8"
},
{
"entry_pc": 2835717307,
"selector": "0x9e39db73"
},
{
"entry_pc": null,
"selector": "0xa9059cbb"
},
{
"entry_pc": 1724908460,
"selector": "0x0fe65b36"
},
{
"entry_pc": 2261886623,
"selector": "0x66d003ac"
},
{
"entry_pc": 2376452955,
"selector": "0x86d1a69f"
},
{
"entry_pc": 3105701889,
"selector": "0x8da5cb5b"
},
{
"entry_pc": 3934919408,
"selector": "0xb91d4001"
},
{
"entry_pc": null,
"selector": "0xea8a1af0"
},
{
"entry_pc": 702329039,
"selector": "0x119f8747"
},
{
"entry_pc": 1009039319,
"selector": "0x29dcb0cf"
},
{
"entry_pc": 1428191708,
"selector": "0x3c24b7d7"
},
{
"entry_pc": 1724908460,
"selector": "0x552079dc"
},
{
"entry_pc": 2261886623,
"selector": "0x702c35fb"
},
{
"entry_pc": null,
"selector": "0xc9e7e29b"
}
]
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.basic_blocks[0] | keys' BYTECODE_BUNDLE.json" in /tmp/codex-elbdutre
succeeded in 0ms:
[
"end_pc",
"hash",
"opcodes",
"start_pc"
]
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.basic_blocks | length' BYTECODE_BUNDLE.json" in /tmp/codex-elbdutre
succeeded in 0ms:
129
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.cfg_edges | length' BYTECODE_BUNDLE.json" in /tmp/codex-elbdutre
succeeded in 0ms:
66
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.basic_blocks[] | select(.start_pc <= 1324 and .end_pc >= 1324)' BYTECODE_BUNDLE.json" in /tmp/codex-elbdutre
succeeded in 0ms:
{
"end_pc": 1352,
"hash": "0x15315ec196e800b042074dbddd55e6b27d9fa13ce90a743c46243af5129d6914",
"opcodes": [
"JUMPDEST",
"PUSH1",
"PUSH1",
"OP_90",
"SLOAD",
"OP_90",
"PUSH2",
"EXP",
"OP_90",
"DIV",
"PUSH20",
"AND",
"PUSH20",
"AND",
"CALLER",
"PUSH20",
"AND",
"EQ",
"ISZERO",
"PUSH2",
"JUMPI"
],
"start_pc": 1266
}
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.basic_blocks[] | select(.start_pc <= 1478 and .end_pc >= 1478)' BYTECODE_BUNDLE.json" in /tmp/codex-elbdutre
succeeded in 0ms:
{
"end_pc": 1506,
"hash": "0x8f8df99aa2e6bb1b2cb779f5065f6a9d33c9c08105cddb6accb3786ebf1deaa3",
"opcodes": [
"JUMPDEST",
"PUSH1",
"PUSH1",
"PUSH1",
"PUSH1",
"PUSH1",
"OP_90",
"SLOAD",
"OP_90",
"PUSH2",
"EXP",
"OP_90",
"DIV",
"PUSH20",
"AND",
"PUSH20",
"AND",
"CALLER",
"PUSH20",
"AND",
"EQ",
"ISZERO",
"PUSH2",
"JUMPI"
],
"start_pc": 1414
}
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.basic_blocks[] | select(.start_pc <= 2660 and .end_pc >= 2660)' BYTECODE_BUNDLE.json" in /tmp/codex-elbdutre
succeeded in 0ms:
{
"end_pc": 2668,
"hash": "0x351dd652124d11f4af01f55e17f806b0a09f46e96e406f3c7fbcfd0eb37b87ff",
"opcodes": [
"PUSH1",
"PUSH1",
"MLOAD",
"OP_90",
"OP_81",
"ADD",
"PUSH1",
"MSTORE",
"OP_80",
"CALLER",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"CALLVALUE",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"POP",
"PUSH1",
"PUSH1",
"POP",
"PUSH1",
"PUSH1",
"POP",
"OP_80",
"SLOAD",
"OP_80",
"OP_91",
"OP_90",
"PUSH1",
"ADD",
"OP_90",
"OP_90",
"OP_81",
"SLOAD",
"OP_81",
"OP_83",
"SSTORE",
"OP_81",
"OP_81",
"ISZERO",
"GT",
"PUSH2",
"JUMPI"
],
"start_pc": 2611
}
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.basic_blocks[] | select(.start_pc <= 3204 and .end_pc >= 3204)' BYTECODE_BUNDLE.json" in /tmp/codex-elbdutre
succeeded in 0ms:
{
"end_pc": 3210,
"hash": "0x4d1fa58b090b488189f9fe65a31c271b59fc8c0963215b1296917291c6a07602",
"opcodes": [
"OP_90",
"PUSH1",
"MSTORE",
"PUSH1",
"PUSH1",
"SHA3",
"OP_90",
"PUSH1",
"MUL",
"ADD",
"PUSH1",
"POP",
"OP_90",
"POP",
"OP_80",
"PUSH1",
"ADD",
"PUSH1",
"OP_90",
"SLOAD",
"OP_90",
"PUSH2",
"EXP",
"OP_90",
"DIV",
"PUSH20",
"AND",
"PUSH20",
"AND",
"PUSH1",
"OP_82",
"PUSH1",
"ADD",
"PUSH1",
"POP",
"SLOAD",
"PUSH1",
"MLOAD",
"OP_80",
"OP_90",
"POP",
"PUSH1",
"PUSH1",
"MLOAD",
"OP_80",
"OP_83",
"SUB",
"OP_81",
"OP_85",
"OP_88",
"OP_88",
"CALL",
"OP_93",
"POP",
"POP",
"POP",
"POP",
"POP"
],
"start_pc": 3098
}
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.basic_blocks[] | select((.opcodes|index(\"SELFDESTRUCT\"))"'!=null)'"' BYTECODE_BUNDLE.json" in /tmp/codex-elbdutre
succeeded in 0ms:
{
"end_pc": 1262,
"hash": "0x15043ada8a2ea4dd1c6244d38c4d0385ca61e3882051caa69da77c1bcab822cc",
"opcodes": [
"PUSH1",
"PUSH1",
"OP_90",
"SLOAD",
"OP_90",
"PUSH2",
"EXP",
"OP_90",
"DIV",
"PUSH20",
"AND",
"PUSH20",
"AND",
"SELFDESTRUCT"
],
"start_pc": 1205
}
{
"end_pc": 1410,
"hash": "0x728544afb6ae377eed5efb8b60c2a774be340acc7a15d0adf1b7244f94e8d95f",
"opcodes": [
"PUSH1",
"PUSH1",
"OP_90",
"SLOAD",
"OP_90",
"PUSH2",
"EXP",
"OP_90",
"DIV",
"PUSH20",
"AND",
"PUSH20",
"AND",
"SELFDESTRUCT"
],
"start_pc": 1353
}
{
"end_pc": 1695,
"hash": "0x61e464edb22b271ff51a82a831f9cbb4195414839f3a1d7220f6229d58bd9695",
"opcodes": [
"PUSH1",
"OP_91",
"POP",
"PUSH1",
"PUSH1",
"OP_90",
"SLOAD",
"OP_90",
"PUSH2",
"EXP",
"OP_90",
"DIV",
"PUSH20",
"AND",
"OP_82",
"ADDRESS",
"PUSH20",
"AND",
"BALANCE",
"OP_86",
"PUSH1",
"MLOAD",
"PUSH2",
"OP_80",
"PUSH2",
"OP_83",
"CODECOPY",
"ADD",
"OP_80",
"OP_85",
"PUSH20",
"AND",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"OP_84",
"PUSH20",
"AND",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"OP_83",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"OP_82",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"OP_94",
"POP",
"POP",
"POP",
"POP",
"POP",
"PUSH1",
"MLOAD",
"OP_80",
"OP_91",
"SUB",
"OP_90",
"PUSH1",
"CREATE",
"OP_90",
"POP",
"OP_80",
"PUSH20",
"AND",
"SELFDESTRUCT"
],
"start_pc": 1507
}
{
"end_pc": 2597,
"hash": "0xafae6b0fd376e1ee16d970d4f5e284b4f73a1d6ecc21bb486c52d3d48296f81f",
"opcodes": [
"JUMPDEST",
"PUSH1",
"PUSH1",
"OP_90",
"SLOAD",
"OP_90",
"PUSH2",
"EXP",
"OP_90",
"DIV",
"PUSH20",
"AND",
"PUSH20",
"AND",
"SELFDESTRUCT"
],
"start_pc": 2539
}
{
"end_pc": 3055,
"hash": "0x5eed93fbb32830ca8ff5ad0d5c57ff0a06cb35065c77124d661ef20ef4868bf5",
"opcodes": [
"JUMPDEST",
"PUSH1",
"PUSH1",
"OP_90",
"SLOAD",
"OP_90",
"PUSH2",
"EXP",
"OP_90",
"DIV",
"PUSH20",
"AND",
"PUSH20",
"AND",
"SELFDESTRUCT"
],
"start_pc": 2997
}
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.basic_blocks[] | select((.opcodes|index(\"CREATE\"))"'!=null or (.opcodes|index("CREATE2"))!=null)'"' BYTECODE_BUNDLE.json" in /tmp/codex-elbdutre
succeeded in 0ms:
{
"end_pc": 591,
"hash": "0x40bbd0cf0f4cfee217192b6ffa0443b99bd6aae6d897ebfceb261f77a38bdb10",
"opcodes": [
"JUMPDEST",
"OP_81",
"OP_85",
"PUSH1",
"PUSH1",
"POP",
"SLOAD",
"TIMESTAMP",
"ADD",
"PUSH1",
"MLOAD",
"PUSH2",
"OP_80",
"PUSH2",
"OP_83",
"CODECOPY",
"ADD",
"OP_80",
"OP_84",
"PUSH20",
"AND",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"OP_83",
"PUSH20",
"AND",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"OP_82",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"OP_93",
"POP",
"POP",
"POP",
"POP",
"PUSH1",
"MLOAD",
"OP_80",
"OP_91",
"SUB",
"OP_90",
"PUSH1",
"CREATE",
"OP_90",
"POP",
"OP_83",
"PUSH1",
"PUSH1",
"POP",
"PUSH1",
"OP_84",
"PUSH20",
"AND",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"OP_90",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"PUSH1",
"SHA3",
"PUSH1",
"OP_82",
"OP_82",
"OP_82",
"POP",
"SLOAD",
"SUB",
"OP_92",
"POP",
"POP",
"OP_81",
"OP_90",
"SSTORE",
"POP",
"OP_80",
"OP_92",
"POP",
"PUSH2",
"JUMP"
],
"start_pc": 421
}
{
"end_pc": 1695,
"hash": "0x61e464edb22b271ff51a82a831f9cbb4195414839f3a1d7220f6229d58bd9695",
"opcodes": [
"PUSH1",
"OP_91",
"POP",
"PUSH1",
"PUSH1",
"OP_90",
"SLOAD",
"OP_90",
"PUSH2",
"EXP",
"OP_90",
"DIV",
"PUSH20",
"AND",
"OP_82",
"ADDRESS",
"PUSH20",
"AND",
"BALANCE",
"OP_86",
"PUSH1",
"MLOAD",
"PUSH2",
"OP_80",
"PUSH2",
"OP_83",
"CODECOPY",
"ADD",
"OP_80",
"OP_85",
"PUSH20",
"AND",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"OP_84",
"PUSH20",
"AND",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"OP_83",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"OP_82",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"OP_94",
"POP",
"POP",
"POP",
"POP",
"POP",
"PUSH1",
"MLOAD",
"OP_80",
"OP_91",
"SUB",
"OP_90",
"PUSH1",
"CREATE",
"OP_90",
"POP",
"OP_80",
"PUSH20",
"AND",
"SELFDESTRUCT"
],
"start_pc": 1507
}
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.cfg_edges[] | select(.from==3098 or .from==3211 or .to==3098 or .to==3211)' BYTECODE_BUNDLE.json" in /tmp/codex-elbdutre
succeeded in 0ms:
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.cfg_edges[0:20]' BYTECODE_BUNDLE.json" in /tmp/codex-elbdutre
succeeded in 0ms:
[
{
"from": "bb:0",
"to": "bb:90",
"type": "control_flow"
},
{
"from": "bb:0",
"to": "bb:51",
"type": "control_flow_fallthrough"
},
{
"from": "bb:51",
"to": "bb:129",
"type": "control_flow"
},
{
"from": "bb:51",
"to": "bb:62",
"type": "control_flow_fallthrough"
},
{
"from": "bb:62",
"to": "bb:162",
"type": "control_flow"
},
{
"from": "bb:62",
"to": "bb:73",
"type": "control_flow_fallthrough"
},
{
"from": "bb:73",
"to": "bb:181",
"type": "control_flow"
},
{
"from": "bb:73",
"to": "bb:84",
"type": "control_flow_fallthrough"
},
{
"from": "bb:84",
"to": "bb:88",
"type": "control_flow"
},
{
"from": "bb:90",
"to": "bb:257",
"type": "control_flow"
},
{
"from": "bb:129",
"to": "bb:248",
"type": "control_flow"
},
{
"from": "bb:162",
"to": "bb:284",
"type": "control_flow"
},
{
"from": "bb:181",
"to": "bb:348",
"type": "control_flow"
},
{
"from": "bb:284",
"to": "bb:345",
"type": "control_flow_fallthrough"
},
{
"from": "bb:348",
"to": "bb:421",
"type": "control_flow"
},
{
"from": "bb:348",
"to": "bb:413",
"type": "control_flow_fallthrough"
},
{
"from": "bb:413",
"to": "bb:592",
"type": "control_flow"
},
{
"from": "bb:421",
"to": "bb:592",
"type": "control_flow"
},
{
"from": "bb:601",
"to": "bb:642",
"type": "control_flow_fallthrough"
},
{
"from": "bb:642",
"to": "bb:739",
"type": "control_flow_fallthrough"
}
]
exec
/bin/bash -lc "jq '.capability_graph.graph_json.nodes[0:40]' BYTECODE_BUNDLE.json" in /tmp/codex-elbdutre
succeeded in 0ms:
[
{
"end_pc": 50,
"hash": "0x8d015a5c97b39a9519e2009924dab5889583a63aabbb20922c75ecb694194e9c",
"id": "bb:0",
"start_pc": 0,
"type": "basic_block"
},
{
"end_pc": 61,
"hash": "0xc0bf27444afe410320abc9310a43c27721171d001db9d7f4749c53feaa5b0539",
"id": "bb:51",
"start_pc": 51,
"type": "basic_block"
},
{
"end_pc": 72,
"hash": "0xefb8d1b7b18cda0ac352c8481403fd92ae0fecbd8cfc2ef395ac2ec63846d1ce",
"id": "bb:62",
"start_pc": 62,
"type": "basic_block"
},
{
"end_pc": 83,
"hash": "0x425dba9ed6977e3bf7c7d2c73eb677581686151ec696e2b23774c838c714e03e",
"id": "bb:73",
"start_pc": 73,
"type": "basic_block"
},
{
"end_pc": 87,
"hash": "0xe505be23d1cf0ffc2e8e73a75d03ae2cc037013d09b34d3a491c8366e2020f01",
"id": "bb:84",
"start_pc": 84,
"type": "basic_block"
},
{
"end_pc": 89,
"hash": "0x37ac4f1ec61b72cfc62d8043b5574f565d42fbc5f60d7b0cb4e7041d206754ca",
"id": "bb:88",
"start_pc": 88,
"type": "basic_block"
},
{
"end_pc": 106,
"hash": "0x0574b5efa7d044e4a6d59beac9367d9ad66145f91771a411d6916617b92c2a4b",
"id": "bb:90",
"start_pc": 90,
"type": "basic_block"
},
{
"end_pc": 128,
"hash": "0x7b9ad0e1474917ec7ee3bfd4ae4d682f18a352d638ae827062c8d0fdb378b1ce",
"id": "bb:107",
"start_pc": 107,
"type": "basic_block"
},
{
"end_pc": 139,
"hash": "0x6f0aaaa4f3a0d29f9a427cb0f25a8092074015a04be2cc0f0e8d8362c258f249",
"id": "bb:129",
"start_pc": 129,
"type": "basic_block"
},
{
"end_pc": 161,
"hash": "0x6c2bb9a00055de40acf1401e1c76da4dba03251da0ec6330f1354fdd23f99211",
"id": "bb:140",
"start_pc": 140,
"type": "basic_block"
},
{
"end_pc": 178,
"hash": "0xe7f478ba7e1c623330dbed0f0c5920a60d9b38732452e6b722537d8bfb0ed9a0",
"id": "bb:162",
"start_pc": 162,
"type": "basic_block"
},
{
"end_pc": 180,
"hash": "0x19a5581897164f0277390e012f3c6c82ebe77d0c89e32a92588c4dfee7c1fc8b",
"id": "bb:179",
"start_pc": 179,
"type": "basic_block"
},
{
"end_pc": 203,
"hash": "0x02ff73f2c24d7d7e0db7d7d1e165bbf99034aa3fd79029d2eafa04a151b6e9f5",
"id": "bb:181",
"start_pc": 181,
"type": "basic_block"
},
{
"end_pc": 247,
"hash": "0xf1ffef68aa1e51d812ca30f70a9ad97bca546cc38b82a3a0cc3b02923d24ef26",
"id": "bb:204",
"start_pc": 204,
"type": "basic_block"
},
{
"end_pc": 256,
"hash": "0xf92c7975f68f512a28f804d40f8f656e63af3a04fcebc7274897b86e02f5f9aa",
"id": "bb:248",
"start_pc": 248,
"type": "basic_block"
},
{
"end_pc": 283,
"hash": "0x54ffd0d4d1a2b2761865148ac3676ae691b8db49c986d7f764ec86f198cc6d41",
"id": "bb:257",
"start_pc": 257,
"type": "basic_block"
},
{
"end_pc": 344,
"hash": "0x47fa77739769031222bac914f8294e556e4542208b0d193a99bc038c3b536d67",
"id": "bb:284",
"start_pc": 284,
"type": "basic_block"
},
{
"end_pc": 347,
"hash": "0x474038caa5303f9c3ee21a06a2317be8d6d0ee8274868831af8274257f2254e5",
"id": "bb:345",
"start_pc": 345,
"type": "basic_block"
},
{
"end_pc": 412,
"hash": "0xba7de0734c8a87cbdc35904dd3285feeb5e889ff9c78399ba0d8388f4d95cf70",
"id": "bb:348",
"start_pc": 348,
"type": "basic_block"
},
{
"end_pc": 420,
"hash": "0xbb9ea7c68f06c69ecbede7939b5965fa4baeb51ee63049030c027c5edd1ccad3",
"id": "bb:413",
"start_pc": 413,
"type": "basic_block"
},
{
"end_pc": 591,
"hash": "0x40bbd0cf0f4cfee217192b6ffa0443b99bd6aae6d897ebfceb261f77a38bdb10",
"id": "bb:421",
"start_pc": 421,
"type": "basic_block"
},
{
"end_pc": 599,
"hash": "0x435d39d0e847fae3697444d58efa218b3dc191df37911d56e61c44ce17314439",
"id": "bb:592",
"start_pc": 592,
"type": "basic_block"
},
{
"end_pc": 600,
"hash": "0x1ed41d0373e1aa6ebf24f0c8e183b39b71ab23237232c0f80726ffb552036706",
"id": "bb:600",
"start_pc": 600,
"type": "basic_block"
},
{
"end_pc": 641,
"hash": "0x28854534fa74549999d487205e996e324cdc5ba024341fd34d40fec524db86e4",
"id": "bb:601",
"start_pc": 601,
"type": "basic_block"
},
{
"end_pc": 738,
"hash": "0xf955c2ec699d198f18c0143076a94069af379ce08b60545d5c91f9517584ff0b",
"id": "bb:642",
"start_pc": 642,
"type": "basic_block"
},
{
"end_pc": 755,
"hash": "0xbc580a53c24e5eecf674def40f3f2e33dd7e4ebf18e5914cab04a535b1c999ba",
"id": "bb:739",
"start_pc": 739,
"type": "basic_block"
},
{
"end_pc": 756,
"hash": "0xc504fe2f8522eb93cb2f10f32324b34838b3929155aee78680aa4607fe748dcd",
"id": "bb:756",
"start_pc": 756,
"type": "basic_block"
},
{
"end_pc": 767,
"hash": "0x5559d208313b0ce77fdfb6c08443baad9e003acae049b08f17bd251389ff476c",
"id": "bb:757",
"start_pc": 757,
"type": "basic_block"
},
{
"end_pc": 813,
"hash": "0x7a251c03fdf4dcf56ded93020069b7ce2610e9de8afbe6b165d36efe4905106e",
"id": "bb:768",
"start_pc": 768,
"type": "basic_block"
},
{
"end_pc": 824,
"hash": "0xc0b5d713346e1a0cd0f673f04f36cdf4b69b65b36b2449d67ace7d8ac2f6bbba",
"id": "bb:814",
"start_pc": 814,
"type": "basic_block"
},
{
"end_pc": 835,
"hash": "0x2f1ca0253ddd97efcb1947fe8b06410f2743d58915bc18a1e6abfe4282068f87",
"id": "bb:825",
"start_pc": 825,
"type": "basic_block"
},
{
"end_pc": 846,
"hash": "0x32fc7684af2f0d1f67d08fa636b715335d136ed522f84118c36a328c0e74d8c1",
"id": "bb:836",
"start_pc": 836,
"type": "basic_block"
},
{
"end_pc": 857,
"hash": "0x4ceb9fd8764081fe0d7ecd0a7427c38d0fe3e875914866b8d62f683d9afcf24e",
"id": "bb:847",
"start_pc": 847,
"type": "basic_block"
},
{
"end_pc": 868,
"hash": "0xeb6f7b39e5a61a642246a82ea30e198b0e99f3f2a2bf330d8bfd2b39a267c902",
"id": "bb:858",
"start_pc": 858,
"type": "basic_block"
},
{
"end_pc": 872,
"hash": "0xa3530bf05491ede88f9a5d4dd9f3e968cdc050aeff4dd7b9e1d6490afa79364f",
"id": "bb:869",
"start_pc": 869,
"type": "basic_block"
},
{
"end_pc": 874,
"hash": "0x020d50e642d6ec42a96c8cef925d4cbd27825e4e917a4667dd2f7109b483c676",
"id": "bb:873",
"start_pc": 873,
"type": "basic_block"
},
{
"end_pc": 891,
"hash": "0x461ccb46cabead2e2b62a74b980c55d04fb009bf63490534e916f78762db4927",
"id": "bb:875",
"start_pc": 875,
"type": "basic_block"
},
{
"end_pc": 935,
"hash": "0xd7e0756fe2603362fc15801c97b5ff3de596eb961a0d57110e4b3d47e7dca096",
"id": "bb:892",
"start_pc": 892,
"type": "basic_block"
},
{
"end_pc": 946,
"hash": "0x5f9fb245012a7486cd11f7520de566903c3bfe0a7247e40b4dce85b0f8984d2f",
"id": "bb:936",
"start_pc": 936,
"type": "basic_block"
},
{
"end_pc": 990,
"hash": "0x341a47cfb4cd38f612c764be69bf282597e256c197b3fb6b272fe2fdaebf495f",
"id": "bb:947",
"start_pc": 947,
"type": "basic_block"
}
]
exec
/bin/bash -lc "jq '.capability_graph.graph_json.edges[0:80]' BYTECODE_BUNDLE.json" in /tmp/codex-elbdutre
succeeded in 0ms:
[
{
"from": "bb:0",
"to": "bb:90",
"type": "control_flow"
},
{
"from": "bb:0",
"to": "bb:51",
"type": "control_flow_fallthrough"
},
{
"from": "bb:51",
"to": "bb:129",
"type": "control_flow"
},
{
"from": "bb:51",
"to": "bb:62",
"type": "control_flow_fallthrough"
},
{
"from": "bb:62",
"to": "bb:162",
"type": "control_flow"
},
{
"from": "bb:62",
"to": "bb:73",
"type": "control_flow_fallthrough"
},
{
"from": "bb:73",
"to": "bb:181",
"type": "control_flow"
},
{
"from": "bb:73",
"to": "bb:84",
"type": "control_flow_fallthrough"
},
{
"from": "bb:84",
"to": "bb:88",
"type": "control_flow"
},
{
"from": "bb:90",
"to": "bb:257",
"type": "control_flow"
},
{
"from": "bb:129",
"to": "bb:248",
"type": "control_flow"
},
{
"from": "bb:162",
"to": "bb:284",
"type": "control_flow"
},
{
"from": "bb:181",
"to": "bb:348",
"type": "control_flow"
},
{
"from": "bb:284",
"to": "bb:345",
"type": "control_flow_fallthrough"
},
{
"from": "bb:348",
"to": "bb:421",
"type": "control_flow"
},
{
"from": "bb:348",
"to": "bb:413",
"type": "control_flow_fallthrough"
},
{
"from": "bb:413",
"to": "bb:592",
"type": "control_flow"
},
{
"from": "bb:421",
"to": "bb:592",
"type": "control_flow"
},
{
"from": "bb:601",
"to": "bb:642",
"type": "control_flow_fallthrough"
},
{
"from": "bb:642",
"to": "bb:739",
"type": "control_flow_fallthrough"
},
{
"from": "bb:757",
"to": "bb:768",
"type": "control_flow_fallthrough"
},
{
"from": "bb:768",
"to": "bb:814",
"type": "control_flow_fallthrough"
},
{
"from": "bb:814",
"to": "bb:179",
"type": "control_flow"
},
{
"from": "bb:814",
"to": "bb:825",
"type": "control_flow_fallthrough"
},
{
"from": "bb:825",
"to": "bb:836",
"type": "control_flow_fallthrough"
},
{
"from": "bb:836",
"to": "bb:847",
"type": "control_flow_fallthrough"
},
{
"from": "bb:847",
"to": "bb:858",
"type": "control_flow_fallthrough"
},
{
"from": "bb:858",
"to": "bb:869",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1004",
"to": "bb:348",
"type": "control_flow"
},
{
"from": "bb:1190",
"to": "bb:1205",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1263",
"to": "bb:1264",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1266",
"to": "bb:1353",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1411",
"to": "bb:1412",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1414",
"to": "bb:1507",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1696",
"to": "bb:947",
"type": "control_flow"
},
{
"from": "bb:1703",
"to": "bb:1704",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1712",
"to": "bb:1759",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1759",
"to": "bb:1866",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1885",
"to": "bb:1896",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1896",
"to": "bb:140",
"type": "control_flow"
},
{
"from": "bb:1896",
"to": "bb:1942",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1942",
"to": "bb:1953",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1953",
"to": "bb:1964",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1964",
"to": "bb:1975",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1975",
"to": "bb:1986",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1986",
"to": "bb:1997",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1997",
"to": "bb:2008",
"type": "control_flow_fallthrough"
},
{
"from": "bb:2008",
"to": "bb:2019",
"type": "control_flow_fallthrough"
},
{
"from": "bb:2422",
"to": "bb:2438",
"type": "control_flow_fallthrough"
},
{
"from": "bb:2517",
"to": "bb:2532",
"type": "control_flow_fallthrough"
},
{
"from": "bb:2598",
"to": "bb:2599",
"type": "control_flow_fallthrough"
},
{
"from": "bb:2601",
"to": "bb:2611",
"type": "control_flow_fallthrough"
},
{
"from": "bb:2611",
"to": "bb:2669",
"type": "control_flow_fallthrough"
},
{
"from": "bb:2669",
"to": "bb:814",
"type": "control_flow"
},
{
"from": "bb:2699",
"to": "bb:2708",
"type": "control_flow_fallthrough"
},
{
"from": "bb:2708",
"to": "bb:814",
"type": "control_flow"
},
{
"from": "bb:2772",
"to": "bb:2773",
"type": "control_flow_fallthrough"
},
{
"from": "bb:2773",
"to": "bb:2786",
"type": "control_flow_fallthrough"
},
{
"from": "bb:2786",
"to": "bb:2990",
"type": "control_flow_fallthrough"
},
{
"from": "bb:3056",
"to": "bb:3057",
"type": "control_flow_fallthrough"
},
{
"from": "bb:3057",
"to": "bb:3058",
"type": "control_flow_fallthrough"
},
{
"from": "bb:3060",
"to": "bb:3069",
"type": "control_flow_fallthrough"
},
{
"from": "bb:3069",
"to": "bb:3083",
"type": "control_flow_fallthrough"
},
{
"from": "bb:3083",
"to": "bb:3098",
"type": "control_flow_fallthrough"
},
{
"from": "bb:3098",
"to": "bb:3211",
"type": "control_flow_fallthrough"
},
{
"from": "bb:3224",
"to": "bb:3225",
"type": "control_flow_fallthrough"
},
{
"from": "fn:0x27e235e3",
"to": "bb:1782757624",
"type": "entry"
},
{
"from": "fn:0x6a42b8f8",
"to": "bb:2654591859",
"type": "entry"
},
{
"from": "fn:0x9e39db73",
"to": "bb:2835717307",
"type": "entry"
},
{
"from": "fn:0x0fe65b36",
"to": "bb:1724908460",
"type": "entry"
},
{
"from": "fn:0x66d003ac",
"to": "bb:2261886623",
"type": "entry"
},
{
"from": "fn:0x86d1a69f",
"to": "bb:2376452955",
"type": "entry"
},
{
"from": "fn:0x8da5cb5b",
"to": "bb:3105701889",
"type": "entry"
},
{
"from": "fn:0xb91d4001",
"to": "bb:3934919408",
"type": "entry"
},
{
"from": "fn:0x119f8747",
"to": "bb:702329039",
"type": "entry"
},
{
"from": "fn:0x29dcb0cf",
"to": "bb:1009039319",
"type": "entry"
},
{
"from": "fn:0x3c24b7d7",
"to": "bb:1428191708",
"type": "entry"
},
{
"from": "fn:0x552079dc",
"to": "bb:1724908460",
"type": "entry"
},
{
"from": "fn:0x702c35fb",
"to": "bb:2261886623",
"type": "entry"
},
{
"from": "bb:3098",
"to": "call:3204",
"type": "contains"
}
]
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.basic_blocks[] | select(.start_pc>=2330 and .start_pc<=3230) | {start_pc,end_pc,opcodes}' BYTECODE_BUNDLE.json" in /tmp/codex-elbdutre
succeeded in 0ms:
{
"start_pc": 2366,
"end_pc": 2403,
"opcodes": [
"JUMPDEST",
"PUSH1",
"PUSH1",
"OP_90",
"SLOAD",
"OP_90",
"PUSH2",
"EXP",
"OP_90",
"DIV",
"PUSH20",
"AND",
"OP_81",
"JUMP"
]
}
{
"start_pc": 2404,
"end_pc": 2412,
"opcodes": [
"JUMPDEST",
"PUSH1",
"PUSH1",
"POP",
"SLOAD",
"OP_81",
"JUMP"
]
}
{
"start_pc": 2413,
"end_pc": 2421,
"opcodes": [
"JUMPDEST",
"PUSH1",
"PUSH1",
"POP",
"SLOAD",
"OP_81",
"JUMP"
]
}
{
"start_pc": 2422,
"end_pc": 2437,
"opcodes": [
"JUMPDEST",
"PUSH1",
"PUSH1",
"POP",
"OP_81",
"OP_81",
"SLOAD",
"OP_81",
"LT",
"ISZERO",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 2438,
"end_pc": 2507,
"opcodes": [
"OP_90",
"PUSH1",
"MSTORE",
"PUSH1",
"PUSH1",
"SHA3",
"OP_90",
"PUSH1",
"MUL",
"ADD",
"PUSH1",
"OP_91",
"POP",
"OP_90",
"POP",
"OP_80",
"PUSH1",
"ADD",
"PUSH1",
"OP_90",
"SLOAD",
"OP_90",
"PUSH2",
"EXP",
"OP_90",
"DIV",
"PUSH20",
"AND",
"OP_90",
"OP_80",
"PUSH1",
"ADD",
"PUSH1",
"POP",
"SLOAD",
"OP_90",
"POP",
"OP_82",
"JUMP"
]
}
{
"start_pc": 2508,
"end_pc": 2516,
"opcodes": [
"JUMPDEST",
"PUSH1",
"PUSH1",
"POP",
"SLOAD",
"OP_81",
"JUMP"
]
}
{
"start_pc": 2517,
"end_pc": 2531,
"opcodes": [
"JUMPDEST",
"PUSH1",
"PUSH1",
"POP",
"SLOAD",
"TIMESTAMP",
"LT",
"ISZERO",
"ISZERO",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 2532,
"end_pc": 2538,
"opcodes": [
"PUSH2",
"PUSH2",
"JUMP"
]
}
{
"start_pc": 2539,
"end_pc": 2597,
"opcodes": [
"JUMPDEST",
"PUSH1",
"PUSH1",
"OP_90",
"SLOAD",
"OP_90",
"PUSH2",
"EXP",
"OP_90",
"DIV",
"PUSH20",
"AND",
"PUSH20",
"AND",
"SELFDESTRUCT"
]
}
{
"start_pc": 2598,
"end_pc": 2598,
"opcodes": [
"JUMPDEST"
]
}
{
"start_pc": 2599,
"end_pc": 2600,
"opcodes": [
"JUMPDEST",
"JUMP"
]
}
{
"start_pc": 2601,
"end_pc": 2610,
"opcodes": [
"JUMPDEST",
"PUSH1",
"CALLVALUE",
"GT",
"ISZERO",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 2611,
"end_pc": 2668,
"opcodes": [
"PUSH1",
"PUSH1",
"MLOAD",
"OP_90",
"OP_81",
"ADD",
"PUSH1",
"MSTORE",
"OP_80",
"CALLER",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"CALLVALUE",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"POP",
"PUSH1",
"PUSH1",
"POP",
"PUSH1",
"PUSH1",
"POP",
"OP_80",
"SLOAD",
"OP_80",
"OP_91",
"OP_90",
"PUSH1",
"ADD",
"OP_90",
"OP_90",
"OP_81",
"SLOAD",
"OP_81",
"OP_83",
"SSTORE",
"OP_81",
"OP_81",
"ISZERO",
"GT",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 2669,
"end_pc": 2698,
"opcodes": [
"PUSH1",
"MUL",
"OP_81",
"PUSH1",
"MUL",
"OP_83",
"PUSH1",
"MSTORE",
"PUSH1",
"PUSH1",
"SHA3",
"OP_91",
"OP_82",
"ADD",
"OP_91",
"ADD",
"PUSH2",
"OP_91",
"OP_90",
"PUSH2",
"JUMP"
]
}
{
"start_pc": 2699,
"end_pc": 2707,
"opcodes": [
"JUMPDEST",
"OP_80",
"OP_82",
"GT",
"ISZERO",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 2708,
"end_pc": 2767,
"opcodes": [
"PUSH1",
"PUSH1",
"OP_82",
"ADD",
"PUSH1",
"PUSH2",
"EXP",
"OP_81",
"SLOAD",
"OP_90",
"PUSH20",
"MUL",
"NOT",
"AND",
"OP_90",
"SSTORE",
"PUSH1",
"OP_82",
"ADD",
"PUSH1",
"POP",
"PUSH1",
"OP_90",
"SSTORE",
"POP",
"PUSH1",
"ADD",
"PUSH2",
"JUMP"
]
}
{
"start_pc": 2768,
"end_pc": 2771,
"opcodes": [
"JUMPDEST",
"POP",
"OP_90",
"JUMP"
]
}
{
"start_pc": 2772,
"end_pc": 2772,
"opcodes": [
"JUMPDEST"
]
}
{
"start_pc": 2773,
"end_pc": 2785,
"opcodes": [
"JUMPDEST",
"POP",
"POP",
"POP",
"OP_81",
"SLOAD",
"OP_81",
"LT",
"ISZERO",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 2786,
"end_pc": 2989,
"opcodes": [
"OP_90",
"PUSH1",
"MSTORE",
"PUSH1",
"PUSH1",
"SHA3",
"OP_90",
"PUSH1",
"MUL",
"ADD",
"PUSH1",
"POP",
"PUSH1",
"OP_82",
"ADD",
"MLOAD",
"OP_81",
"PUSH1",
"ADD",
"PUSH1",
"PUSH2",
"EXP",
"OP_81",
"SLOAD",
"OP_81",
"PUSH20",
"MUL",
"NOT",
"AND",
"OP_90",
"OP_83",
"MUL",
"OR",
"OP_90",
"SSTORE",
"POP",
"PUSH1",
"OP_82",
"ADD",
"MLOAD",
"OP_81",
"PUSH1",
"ADD",
"PUSH1",
"POP",
"SSTORE",
"OP_90",
"POP",
"POP",
"CALLVALUE",
"PUSH1",
"PUSH1",
"OP_82",
"OP_82",
"OP_82",
"POP",
"SLOAD",
"ADD",
"OP_92",
"POP",
"POP",
"OP_81",
"OP_90",
"SSTORE",
"POP",
"PUSH32",
"CALLER",
"CALLVALUE",
"PUSH1",
"MLOAD",
"OP_80",
"OP_83",
"PUSH20",
"AND",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"OP_82",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"OP_92",
"POP",
"POP",
"POP",
"PUSH1",
"MLOAD",
"OP_80",
"OP_91",
"SUB",
"OP_90",
"OP_A1",
"PUSH1",
"PUSH1",
"POP",
"SLOAD",
"PUSH1",
"PUSH1",
"POP",
"SLOAD",
"LT",
"ISZERO",
"ISZERO",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 2990,
"end_pc": 2996,
"opcodes": [
"PUSH2",
"PUSH2",
"JUMP"
]
}
{
"start_pc": 2997,
"end_pc": 3055,
"opcodes": [
"JUMPDEST",
"PUSH1",
"PUSH1",
"OP_90",
"SLOAD",
"OP_90",
"PUSH2",
"EXP",
"OP_90",
"DIV",
"PUSH20",
"AND",
"PUSH20",
"AND",
"SELFDESTRUCT"
]
}
{
"start_pc": 3056,
"end_pc": 3056,
"opcodes": [
"JUMPDEST"
]
}
{
"start_pc": 3057,
"end_pc": 3057,
"opcodes": [
"JUMPDEST"
]
}
{
"start_pc": 3058,
"end_pc": 3059,
"opcodes": [
"JUMPDEST",
"JUMP"
]
}
{
"start_pc": 3060,
"end_pc": 3068,
"opcodes": [
"JUMPDEST",
"PUSH1",
"PUSH1",
"PUSH1",
"OP_91",
"POP"
]
}
{
"start_pc": 3069,
"end_pc": 3082,
"opcodes": [
"JUMPDEST",
"PUSH1",
"PUSH1",
"POP",
"SLOAD",
"OP_82",
"LT",
"ISZERO",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 3083,
"end_pc": 3097,
"opcodes": [
"PUSH1",
"PUSH1",
"POP",
"OP_82",
"OP_81",
"SLOAD",
"OP_81",
"LT",
"ISZERO",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 3098,
"end_pc": 3210,
"opcodes": [
"OP_90",
"PUSH1",
"MSTORE",
"PUSH1",
"PUSH1",
"SHA3",
"OP_90",
"PUSH1",
"MUL",
"ADD",
"PUSH1",
"POP",
"OP_90",
"POP",
"OP_80",
"PUSH1",
"ADD",
"PUSH1",
"OP_90",
"SLOAD",
"OP_90",
"PUSH2",
"EXP",
"OP_90",
"DIV",
"PUSH20",
"AND",
"PUSH20",
"AND",
"PUSH1",
"OP_82",
"PUSH1",
"ADD",
"PUSH1",
"POP",
"SLOAD",
"PUSH1",
"MLOAD",
"OP_80",
"OP_90",
"POP",
"PUSH1",
"PUSH1",
"MLOAD",
"OP_80",
"OP_83",
"SUB",
"OP_81",
"OP_85",
"OP_88",
"OP_88",
"CALL",
"OP_93",
"POP",
"POP",
"POP",
"POP",
"POP"
]
}
{
"start_pc": 3211,
"end_pc": 3223,
"opcodes": [
"JUMPDEST",
"OP_81",
"OP_80",
"PUSH1",
"ADD",
"OP_92",
"POP",
"POP",
"PUSH2",
"JUMP"
]
}
{
"start_pc": 3224,
"end_pc": 3224,
"opcodes": [
"JUMPDEST"
]
}
{
"start_pc": 3225,
"end_pc": 3228,
"opcodes": [
"JUMPDEST",
"POP",
"POP",
"JUMP"
]
}
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.basic_blocks[] | select(.start_pc==3069 or .start_pc==3083 or .start_pc==3098 or .start_pc==3211 or .start_pc==3225 or .start_pc==2611 or .start_pc==2669 or .start_pc==2699 or .start_pc==2708 or .start_pc==2422 or .start_pc==2438 or .start_pc==2517 or .start_pc==2532 or .start_pc==2773 or .start_pc==2786 or .start_pc==2990)' BYTECODE_BUNDLE.json" in /tmp/codex-elbdutre
succeeded in 0ms:
{
"end_pc": 2437,
"hash": "0xcfb6c756b11924ad904b409ea0e7e3853e44d17ca845f42a5c684ed1cea7197c",
"opcodes": [
"JUMPDEST",
"PUSH1",
"PUSH1",
"POP",
"OP_81",
"OP_81",
"SLOAD",
"OP_81",
"LT",
"ISZERO",
"PUSH2",
"JUMPI"
],
"start_pc": 2422
}
{
"end_pc": 2507,
"hash": "0x5cce9660d8d42d8b4c36be6dc3a896d6076c38aeb2e2d2237e4637e61343c5f7",
"opcodes": [
"OP_90",
"PUSH1",
"MSTORE",
"PUSH1",
"PUSH1",
"SHA3",
"OP_90",
"PUSH1",
"MUL",
"ADD",
"PUSH1",
"OP_91",
"POP",
"OP_90",
"POP",
"OP_80",
"PUSH1",
"ADD",
"PUSH1",
"OP_90",
"SLOAD",
"OP_90",
"PUSH2",
"EXP",
"OP_90",
"DIV",
"PUSH20",
"AND",
"OP_90",
"OP_80",
"PUSH1",
"ADD",
"PUSH1",
"POP",
"SLOAD",
"OP_90",
"POP",
"OP_82",
"JUMP"
],
"start_pc": 2438
}
{
"end_pc": 2531,
"hash": "0x201689e77588bf8bfd42ce4486933acb2c80607c308cc68ef049a2edab1f1498",
"opcodes": [
"JUMPDEST",
"PUSH1",
"PUSH1",
"POP",
"SLOAD",
"TIMESTAMP",
"LT",
"ISZERO",
"ISZERO",
"PUSH2",
"JUMPI"
],
"start_pc": 2517
}
{
"end_pc": 2538,
"hash": "0xf51fb8694f8eaffd77b7c4b87475747fc83a956fb8c3c7c94d87b3443e37a322",
"opcodes": [
"PUSH2",
"PUSH2",
"JUMP"
],
"start_pc": 2532
}
{
"end_pc": 2668,
"hash": "0x351dd652124d11f4af01f55e17f806b0a09f46e96e406f3c7fbcfd0eb37b87ff",
"opcodes": [
"PUSH1",
"PUSH1",
"MLOAD",
"OP_90",
"OP_81",
"ADD",
"PUSH1",
"MSTORE",
"OP_80",
"CALLER",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"CALLVALUE",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"POP",
"PUSH1",
"PUSH1",
"POP",
"PUSH1",
"PUSH1",
"POP",
"OP_80",
"SLOAD",
"OP_80",
"OP_91",
"OP_90",
"PUSH1",
"ADD",
"OP_90",
"OP_90",
"OP_81",
"SLOAD",
"OP_81",
"OP_83",
"SSTORE",
"OP_81",
"OP_81",
"ISZERO",
"GT",
"PUSH2",
"JUMPI"
],
"start_pc": 2611
}
{
"end_pc": 2698,
"hash": "0xe566acb322953a38045afc3c22ee8491a7fc168be5fb8210a014e12d7925f646",
"opcodes": [
"PUSH1",
"MUL",
"OP_81",
"PUSH1",
"MUL",
"OP_83",
"PUSH1",
"MSTORE",
"PUSH1",
"PUSH1",
"SHA3",
"OP_91",
"OP_82",
"ADD",
"OP_91",
"ADD",
"PUSH2",
"OP_91",
"OP_90",
"PUSH2",
"JUMP"
],
"start_pc": 2669
}
{
"end_pc": 2707,
"hash": "0x6090d0b8e22a5e1db6ba776fd5662fd551ba949d4d5f6d4b7967c9cb4aaf1362",
"opcodes": [
"JUMPDEST",
"OP_80",
"OP_82",
"GT",
"ISZERO",
"PUSH2",
"JUMPI"
],
"start_pc": 2699
}
{
"end_pc": 2767,
"hash": "0xb40d7989c7522723d71e6371fba0f28427d1700641289f24b253c08e949f89e8",
"opcodes": [
"PUSH1",
"PUSH1",
"OP_82",
"ADD",
"PUSH1",
"PUSH2",
"EXP",
"OP_81",
"SLOAD",
"OP_90",
"PUSH20",
"MUL",
"NOT",
"AND",
"OP_90",
"SSTORE",
"PUSH1",
"OP_82",
"ADD",
"PUSH1",
"POP",
"PUSH1",
"OP_90",
"SSTORE",
"POP",
"PUSH1",
"ADD",
"PUSH2",
"JUMP"
],
"start_pc": 2708
}
{
"end_pc": 2785,
"hash": "0x7c606e2ebaf4fe48107354342625cf0e8fe3ec945806f8715e89990bedffed02",
"opcodes": [
"JUMPDEST",
"POP",
"POP",
"POP",
"OP_81",
"SLOAD",
"OP_81",
"LT",
"ISZERO",
"PUSH2",
"JUMPI"
],
"start_pc": 2773
}
{
"end_pc": 2989,
"hash": "0xa88c8ed816812e292332119cf7abe5ac1b463917a5e5bdc8fc09e5bf8912a509",
"opcodes": [
"OP_90",
"PUSH1",
"MSTORE",
"PUSH1",
"PUSH1",
"SHA3",
"OP_90",
"PUSH1",
"MUL",
"ADD",
"PUSH1",
"POP",
"PUSH1",
"OP_82",
"ADD",
"MLOAD",
"OP_81",
"PUSH1",
"ADD",
"PUSH1",
"PUSH2",
"EXP",
"OP_81",
"SLOAD",
"OP_81",
"PUSH20",
"MUL",
"NOT",
"AND",
"OP_90",
"OP_83",
"MUL",
"OR",
"OP_90",
"SSTORE",
"POP",
"PUSH1",
"OP_82",
"ADD",
"MLOAD",
"OP_81",
"PUSH1",
"ADD",
"PUSH1",
"POP",
"SSTORE",
"OP_90",
"POP",
"POP",
"CALLVALUE",
"PUSH1",
"PUSH1",
"OP_82",
"OP_82",
"OP_82",
"POP",
"SLOAD",
"ADD",
"OP_92",
"POP",
"POP",
"OP_81",
"OP_90",
"SSTORE",
"POP",
"PUSH32",
"CALLER",
"CALLVALUE",
"PUSH1",
"MLOAD",
"OP_80",
"OP_83",
"PUSH20",
"AND",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"OP_82",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"OP_92",
"POP",
"POP",
"POP",
"PUSH1",
"MLOAD",
"OP_80",
"OP_91",
"SUB",
"OP_90",
"OP_A1",
"PUSH1",
"PUSH1",
"POP",
"SLOAD",
"PUSH1",
"PUSH1",
"POP",
"SLOAD",
"LT",
"ISZERO",
"ISZERO",
"PUSH2",
"JUMPI"
],
"start_pc": 2786
}
{
"end_pc": 2996,
"hash": "0x7378768d78270dde09dc05411252a5cc16ebc84338a3457ddeb9f00ae6a2be0e",
"opcodes": [
"PUSH2",
"PUSH2",
"JUMP"
],
"start_pc": 2990
}
{
"end_pc": 3082,
"hash": "0x9d1451a4389b144616af83f5ff294df77bc63923708288941587818f5585c3fe",
"opcodes": [
"JUMPDEST",
"PUSH1",
"PUSH1",
"POP",
"SLOAD",
"OP_82",
"LT",
"ISZERO",
"PUSH2",
"JUMPI"
],
"start_pc": 3069
}
{
"end_pc": 3097,
"hash": "0x1b5c38d997969564462bfa84d72cc2583281ed15ad36d00c58d45048db277ab2",
"opcodes": [
"PUSH1",
"PUSH1",
"POP",
"OP_82",
"OP_81",
"SLOAD",
"OP_81",
"LT",
"ISZERO",
"PUSH2",
"JUMPI"
],
"start_pc": 3083
}
{
"end_pc": 3210,
"hash": "0x4d1fa58b090b488189f9fe65a31c271b59fc8c0963215b1296917291c6a07602",
"opcodes": [
"OP_90",
"PUSH1",
"MSTORE",
"PUSH1",
"PUSH1",
"SHA3",
"OP_90",
"PUSH1",
"MUL",
"ADD",
"PUSH1",
"POP",
"OP_90",
"POP",
"OP_80",
"PUSH1",
"ADD",
"PUSH1",
"OP_90",
"SLOAD",
"OP_90",
"PUSH2",
"EXP",
"OP_90",
"DIV",
"PUSH20",
"AND",
"PUSH20",
"AND",
"PUSH1",
"OP_82",
"PUSH1",
"ADD",
"PUSH1",
"POP",
"SLOAD",
"PUSH1",
"MLOAD",
"OP_80",
"OP_90",
"POP",
"PUSH1",
"PUSH1",
"MLOAD",
"OP_80",
"OP_83",
"SUB",
"OP_81",
"OP_85",
"OP_88",
"OP_88",
"CALL",
"OP_93",
"POP",
"POP",
"POP",
"POP",
"POP"
],
"start_pc": 3098
}
{
"end_pc": 3223,
"hash": "0xceac3b69241becc3a65c33f362feb1322a40ec6e9d74c128af79e59cdc388606",
"opcodes": [
"JUMPDEST",
"OP_81",
"OP_80",
"PUSH1",
"ADD",
"OP_92",
"POP",
"POP",
"PUSH2",
"JUMP"
],
"start_pc": 3211
}
{
"end_pc": 3228,
"hash": "0x64b267d7f550bff09de493d9b00942af22df5efe126770a211ebceff6ea4c22c",
"opcodes": [
"JUMPDEST",
"POP",
"POP",
"JUMP"
],
"start_pc": 3225
}
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.basic_blocks[] | select(.start_pc<=204) | {start_pc,end_pc,opcodes}' BYTECODE_BUNDLE.json" in /tmp/codex-elbdutre
succeeded in 0ms:
{
"start_pc": 0,
"end_pc": 50,
"opcodes": [
"PUSH1",
"PUSH1",
"MSTORE",
"PUSH1",
"CALLDATALOAD",
"PUSH29",
"OP_90",
"DIV",
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 51,
"end_pc": 61,
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 62,
"end_pc": 72,
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 73,
"end_pc": 83,
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 84,
"end_pc": 87,
"opcodes": [
"PUSH2",
"JUMP"
]
}
{
"start_pc": 88,
"end_pc": 89,
"opcodes": [
"JUMPDEST",
"STOP"
]
}
{
"start_pc": 90,
"end_pc": 106,
"opcodes": [
"JUMPDEST",
"PUSH2",
"PUSH1",
"OP_80",
"CALLDATALOAD",
"OP_90",
"PUSH1",
"ADD",
"POP",
"PUSH2",
"JUMP"
]
}
{
"start_pc": 107,
"end_pc": 128,
"opcodes": [
"JUMPDEST",
"PUSH1",
"MLOAD",
"OP_80",
"OP_82",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"OP_91",
"POP",
"POP",
"PUSH1",
"MLOAD",
"OP_80",
"OP_91",
"SUB",
"OP_90",
"RETURN"
]
}
{
"start_pc": 129,
"end_pc": 139,
"opcodes": [
"JUMPDEST",
"PUSH2",
"PUSH1",
"POP",
"PUSH2",
"JUMP"
]
}
{
"start_pc": 140,
"end_pc": 161,
"opcodes": [
"JUMPDEST",
"PUSH1",
"MLOAD",
"OP_80",
"OP_82",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"OP_91",
"POP",
"POP",
"PUSH1",
"MLOAD",
"OP_80",
"OP_91",
"SUB",
"OP_90",
"RETURN"
]
}
{
"start_pc": 162,
"end_pc": 178,
"opcodes": [
"JUMPDEST",
"PUSH2",
"PUSH1",
"OP_80",
"CALLDATALOAD",
"OP_90",
"PUSH1",
"ADD",
"POP",
"PUSH2",
"JUMP"
]
}
{
"start_pc": 179,
"end_pc": 180,
"opcodes": [
"JUMPDEST",
"STOP"
]
}
{
"start_pc": 181,
"end_pc": 203,
"opcodes": [
"JUMPDEST",
"PUSH2",
"PUSH1",
"OP_80",
"CALLDATALOAD",
"OP_90",
"PUSH1",
"ADD",
"OP_80",
"CALLDATALOAD",
"OP_90",
"PUSH1",
"ADD",
"POP",
"PUSH2",
"JUMP"
]
}
{
"start_pc": 204,
"end_pc": 247,
"opcodes": [
"JUMPDEST",
"PUSH1",
"MLOAD",
"OP_80",
"OP_82",
"PUSH20",
"AND",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"OP_91",
"POP",
"POP",
"PUSH1",
"MLOAD",
"OP_80",
"OP_91",
"SUB",
"OP_90",
"RETURN"
]
}
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.cfg_edges[] | select(.from|startswith(\"bb:\")) | map_values(.)' BYTECODE_BUNDLE.json" in /tmp/codex-elbdutre
succeeded in 0ms:
{
"from": "bb:0",
"to": "bb:90",
"type": "control_flow"
}
{
"from": "bb:0",
"to": "bb:51",
"type": "control_flow_fallthrough"
}
{
"from": "bb:51",
"to": "bb:129",
"type": "control_flow"
}
{
"from": "bb:51",
"to": "bb:62",
"type": "control_flow_fallthrough"
}
{
"from": "bb:62",
"to": "bb:162",
"type": "control_flow"
}
{
"from": "bb:62",
"to": "bb:73",
"type": "control_flow_fallthrough"
}
{
"from": "bb:73",
"to": "bb:181",
"type": "control_flow"
}
{
"from": "bb:73",
"to": "bb:84",
"type": "control_flow_fallthrough"
}
{
"from": "bb:84",
"to": "bb:88",
"type": "control_flow"
}
{
"from": "bb:90",
"to": "bb:257",
"type": "control_flow"
}
{
"from": "bb:129",
"to": "bb:248",
"type": "control_flow"
}
{
"from": "bb:162",
"to": "bb:284",
"type": "control_flow"
}
{
"from": "bb:181",
"to": "bb:348",
"type": "control_flow"
}
{
"from": "bb:284",
"to": "bb:345",
"type": "control_flow_fallthrough"
}
{
"from": "bb:348",
"to": "bb:421",
"type": "control_flow"
}
{
"from": "bb:348",
"to": "bb:413",
"type": "control_flow_fallthrough"
}
{
"from": "bb:413",
"to": "bb:592",
"type": "control_flow"
}
{
"from": "bb:421",
"to": "bb:592",
"type": "control_flow"
}
{
"from": "bb:601",
"to": "bb:642",
"type": "control_flow_fallthrough"
}
{
"from": "bb:642",
"to": "bb:739",
"type": "control_flow_fallthrough"
}
{
"from": "bb:757",
"to": "bb:768",
"type": "control_flow_fallthrough"
}
{
"from": "bb:768",
"to": "bb:814",
"type": "control_flow_fallthrough"
}
{
"from": "bb:814",
"to": "bb:179",
"type": "control_flow"
}
{
"from": "bb:814",
"to": "bb:825",
"type": "control_flow_fallthrough"
}
{
"from": "bb:825",
"to": "bb:836",
"type": "control_flow_fallthrough"
}
{
"from": "bb:836",
"to": "bb:847",
"type": "control_flow_fallthrough"
}
{
"from": "bb:847",
"to": "bb:858",
"type": "control_flow_fallthrough"
}
{
"from": "bb:858",
"to": "bb:869",
"type": "control_flow_fallthrough"
}
{
"from": "bb:1004",
"to": "bb:348",
"type": "control_flow"
}
{
"from": "bb:1190",
"to": "bb:1205",
"type": "control_flow_fallthrough"
}
{
"from": "bb:1263",
"to": "bb:1264",
"type": "control_flow_fallthrough"
}
{
"from": "bb:1266",
"to": "bb:1353",
"type": "control_flow_fallthrough"
}
{
"from": "bb:1411",
"to": "bb:1412",
"type": "control_flow_fallthrough"
}
{
"from": "bb:1414",
"to": "bb:1507",
"type": "control_flow_fallthrough"
}
{
"from": "bb:1696",
"to": "bb:947",
"type": "control_flow"
}
{
"from": "bb:1703",
"to": "bb:1704",
"type": "control_flow_fallthrough"
}
{
"from": "bb:1712",
"to": "bb:1759",
"type": "control_flow_fallthrough"
}
{
"from": "bb:1759",
"to": "bb:1866",
"type": "control_flow_fallthrough"
}
{
"from": "bb:1885",
"to": "bb:1896",
"type": "control_flow_fallthrough"
}
{
"from": "bb:1896",
"to": "bb:140",
"type": "control_flow"
}
{
"from": "bb:1896",
"to": "bb:1942",
"type": "control_flow_fallthrough"
}
{
"from": "bb:1942",
"to": "bb:1953",
"type": "control_flow_fallthrough"
}
{
"from": "bb:1953",
"to": "bb:1964",
"type": "control_flow_fallthrough"
}
{
"from": "bb:1964",
"to": "bb:1975",
"type": "control_flow_fallthrough"
}
{
"from": "bb:1975",
"to": "bb:1986",
"type": "control_flow_fallthrough"
}
{
"from": "bb:1986",
"to": "bb:1997",
"type": "control_flow_fallthrough"
}
{
"from": "bb:1997",
"to": "bb:2008",
"type": "control_flow_fallthrough"
}
{
"from": "bb:2008",
"to": "bb:2019",
"type": "control_flow_fallthrough"
}
{
"from": "bb:2422",
"to": "bb:2438",
"type": "control_flow_fallthrough"
}
{
"from": "bb:2517",
"to": "bb:2532",
"type": "control_flow_fallthrough"
}
{
"from": "bb:2598",
"to": "bb:2599",
"type": "control_flow_fallthrough"
}
{
"from": "bb:2601",
"to": "bb:2611",
"type": "control_flow_fallthrough"
}
{
"from": "bb:2611",
"to": "bb:2669",
"type": "control_flow_fallthrough"
}
{
"from": "bb:2669",
"to": "bb:814",
"type": "control_flow"
}
{
"from": "bb:2699",
"to": "bb:2708",
"type": "control_flow_fallthrough"
}
{
"from": "bb:2708",
"to": "bb:814",
"type": "control_flow"
}
{
"from": "bb:2772",
"to": "bb:2773",
"type": "control_flow_fallthrough"
}
{
"from": "bb:2773",
"to": "bb:2786",
"type": "control_flow_fallthrough"
}
{
"from": "bb:2786",
"to": "bb:2990",
"type": "control_flow_fallthrough"
}
{
"from": "bb:3056",
"to": "bb:3057",
"type": "control_flow_fallthrough"
}
{
"from": "bb:3057",
"to": "bb:3058",
"type": "control_flow_fallthrough"
}
{
"from": "bb:3060",
"to": "bb:3069",
"type": "control_flow_fallthrough"
}
{
"from": "bb:3069",
"to": "bb:3083",
"type": "control_flow_fallthrough"
}
{
"from": "bb:3083",
"to": "bb:3098",
"type": "control_flow_fallthrough"
}
{
"from": "bb:3098",
"to": "bb:3211",
"type": "control_flow_fallthrough"
}
{
"from": "bb:3224",
"to": "bb:3225",
"type": "control_flow_fallthrough"
}
exec
/bin/bash -lc "jq '.detector_findings' BYTECODE_BUNDLE.json" in /tmp/codex-elbdutre
succeeded in 0ms:
[
{
"confidence": 40,
"evidence_json": {
"eth_value_calls": 1,
"examples": [
{
"opcode": "CALL",
"pc": 3204,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
}
],
"guards_detected": [
{
"pc": 1324,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1478,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
},
"normalized_json": {
"sink": "CALL",
"value": "nonzero"
},
"severity": "medium",
"title": "ETH value transfer possible",
"validated": false,
"validation_json": {
"attempts": 1,
"call_targets": [
"0x480d57dbf6c3b49916b9325e2c5ed92401c54efc"
],
"classification": "constant_target",
"confirmed": false,
"errors": 0,
"matched_probe": null,
"sink": "CALL",
"status": "sink_reached",
"target_varies": false,
"trace_id": "0x88af4e0493c8e65d6075047f4693f86ffd498899ddff1bef772816760d48f855",
"trace_mode": "callTracer"
}
},
{
"confidence": 45,
"evidence_json": {
"guards_detected": [
{
"pc": 1324,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1478,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"selfdestruct_count": 5
},
"normalized_json": {
"sink": "SELFDESTRUCT"
},
"severity": "medium",
"title": "SELFDESTRUCT reachable",
"validated": false,
"validation_json": {
"attempts": 32,
"call_targets": null,
"classification": "no_sink",
"confirmed": false,
"errors": 0,
"matched_probe": null,
"sink": "SELFDESTRUCT",
"status": "unknown",
"target_varies": null,
"trace_id": "0xc7272ffad5d2b5794e57e8b73d1fac432b9fb2c9ba69d4b3b44ada3972138566",
"trace_mode": "structLogs"
}
},
{
"confidence": 45,
"evidence_json": {
"call_count": 1,
"examples": [
{
"opcode": "CALL",
"pc": 3204,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
}
],
"guards_detected": [
{
"pc": 1324,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1478,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"untrusted_call_count": 1
},
"normalized_json": {
"sink": "CALL"
},
"severity": "medium",
"title": "Untrusted CALL target/value reachable",
"validated": false,
"validation_json": {
"attempts": 1,
"call_targets": [
"0x480d57dbf6c3b49916b9325e2c5ed92401c54efc"
],
"classification": "constant_target",
"confirmed": false,
"errors": 0,
"matched_probe": null,
"sink": "CALL",
"status": "sink_reached",
"target_varies": false,
"trace_id": "0x88af4e0493c8e65d6075047f4693f86ffd498899ddff1bef772816760d48f855",
"trace_mode": "callTracer"
}
},
{
"confidence": 45,
"evidence_json": {
"create2_count": 0,
"create_count": 2
},
"normalized_json": {
"sink": "CREATE"
},
"severity": "medium",
"title": "CREATE/CREATE2 reachable",
"validated": true,
"validation_json": {
"attempts": 7,
"call_targets": null,
"classification": "sink_reached",
"confirmed": true,
"errors": 0,
"matched_probe": null,
"sink": "CREATE",
"status": "confirmed",
"target_varies": null,
"trace_id": "0x9eb9fb3ab52c7f7942703a1b405913728eac72e65389fad222d7ce3e86305129",
"trace_mode": "structLogs"
}
}
]
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.auth' BYTECODE_BUNDLE.json" in /tmp/codex-elbdutre
succeeded in 0ms:
{
"guards": [
{
"pc": 1324,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1478,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
}
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.basic_blocks[] | select(.start_pc>=601 and .start_pc<=1004) | {start_pc,end_pc,opcodes}' BYTECODE_BUNDLE.json" in /tmp/codex-elbdutre
succeeded in 0ms:
{
"start_pc": 601,
"end_pc": 641,
"opcodes": [
"PUSH1",
"PUSH1",
"MSTORE",
"PUSH1",
"MLOAD",
"PUSH1",
"OP_80",
"PUSH2",
"OP_83",
"CODECOPY",
"ADD",
"PUSH1",
"MSTORE",
"PUSH1",
"OP_80",
"MLOAD",
"OP_90",
"PUSH1",
"ADD",
"OP_80",
"MLOAD",
"OP_90",
"PUSH1",
"ADD",
"OP_80",
"MLOAD",
"OP_90",
"PUSH1",
"ADD",
"POP"
]
}
{
"start_pc": 642,
"end_pc": 738,
"opcodes": [
"JUMPDEST",
"OP_82",
"PUSH1",
"PUSH1",
"PUSH2",
"EXP",
"OP_81",
"SLOAD",
"OP_81",
"PUSH20",
"MUL",
"NOT",
"AND",
"OP_90",
"OP_83",
"MUL",
"OR",
"OP_90",
"SSTORE",
"POP",
"OP_81",
"PUSH1",
"PUSH1",
"PUSH2",
"EXP",
"OP_81",
"SLOAD",
"OP_81",
"PUSH20",
"MUL",
"NOT",
"AND",
"OP_90",
"OP_83",
"MUL",
"OR",
"OP_90",
"SSTORE",
"POP",
"OP_80",
"PUSH1",
"PUSH1",
"POP",
"OP_81",
"OP_90",
"SSTORE",
"POP"
]
}
{
"start_pc": 739,
"end_pc": 755,
"opcodes": [
"JUMPDEST",
"POP",
"POP",
"POP",
"PUSH2",
"OP_80",
"PUSH2",
"PUSH1",
"CODECOPY",
"PUSH1",
"RETURN"
]
}
{
"start_pc": 756,
"end_pc": 756,
"opcodes": [
"STOP"
]
}
{
"start_pc": 757,
"end_pc": 767,
"opcodes": [
"PUSH1",
"PUSH1",
"MSTORE",
"CALLDATASIZE",
"ISZERO",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 768,
"end_pc": 813,
"opcodes": [
"PUSH1",
"CALLDATALOAD",
"PUSH29",
"OP_90",
"DIV",
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 814,
"end_pc": 824,
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 825,
"end_pc": 835,
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 836,
"end_pc": 846,
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 847,
"end_pc": 857,
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 858,
"end_pc": 868,
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 869,
"end_pc": 872,
"opcodes": [
"PUSH2",
"JUMP"
]
}
{
"start_pc": 873,
"end_pc": 874,
"opcodes": [
"JUMPDEST",
"STOP"
]
}
{
"start_pc": 875,
"end_pc": 891,
"opcodes": [
"JUMPDEST",
"PUSH2",
"PUSH1",
"OP_80",
"CALLDATALOAD",
"OP_90",
"PUSH1",
"ADD",
"POP",
"PUSH2",
"JUMP"
]
}
{
"start_pc": 892,
"end_pc": 935,
"opcodes": [
"JUMPDEST",
"PUSH1",
"MLOAD",
"OP_80",
"OP_82",
"PUSH20",
"AND",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"OP_91",
"POP",
"POP",
"PUSH1",
"MLOAD",
"OP_80",
"OP_91",
"SUB",
"OP_90",
"RETURN"
]
}
{
"start_pc": 936,
"end_pc": 946,
"opcodes": [
"JUMPDEST",
"PUSH2",
"PUSH1",
"POP",
"PUSH2",
"JUMP"
]
}
{
"start_pc": 947,
"end_pc": 990,
"opcodes": [
"JUMPDEST",
"PUSH1",
"MLOAD",
"OP_80",
"OP_82",
"PUSH20",
"AND",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"OP_91",
"POP",
"POP",
"PUSH1",
"MLOAD",
"OP_80",
"OP_91",
"SUB",
"OP_90",
"RETURN"
]
}
{
"start_pc": 991,
"end_pc": 1001,
"opcodes": [
"JUMPDEST",
"PUSH2",
"PUSH1",
"POP",
"PUSH2",
"JUMP"
]
}
{
"start_pc": 1002,
"end_pc": 1003,
"opcodes": [
"JUMPDEST",
"STOP"
]
}
{
"start_pc": 1004,
"end_pc": 1014,
"opcodes": [
"JUMPDEST",
"PUSH2",
"PUSH1",
"POP",
"PUSH2",
"JUMP"
]
}
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.basic_blocks[] | select(.start_pc>=1703 and .start_pc<=2019) | {start_pc,end_pc,opcodes}' BYTECODE_BUNDLE.json" in /tmp/codex-elbdutre
succeeded in 0ms:
{
"start_pc": 1703,
"end_pc": 1703,
"opcodes": [
"JUMPDEST"
]
}
{
"start_pc": 1704,
"end_pc": 1710,
"opcodes": [
"JUMPDEST",
"POP",
"POP",
"OP_91",
"OP_90",
"POP",
"JUMP"
]
}
{
"start_pc": 1711,
"end_pc": 1711,
"opcodes": [
"STOP"
]
}
{
"start_pc": 1712,
"end_pc": 1758,
"opcodes": [
"PUSH1",
"PUSH1",
"MSTORE",
"PUSH1",
"MLOAD",
"PUSH1",
"OP_80",
"PUSH2",
"OP_83",
"CODECOPY",
"ADD",
"PUSH1",
"MSTORE",
"PUSH1",
"OP_80",
"MLOAD",
"OP_90",
"PUSH1",
"ADD",
"OP_80",
"MLOAD",
"OP_90",
"PUSH1",
"ADD",
"OP_80",
"MLOAD",
"OP_90",
"PUSH1",
"ADD",
"OP_80",
"MLOAD",
"OP_90",
"PUSH1",
"ADD",
"POP"
]
}
{
"start_pc": 1759,
"end_pc": 1865,
"opcodes": [
"JUMPDEST",
"OP_83",
"PUSH1",
"PUSH1",
"PUSH2",
"EXP",
"OP_81",
"SLOAD",
"OP_81",
"PUSH20",
"MUL",
"NOT",
"AND",
"OP_90",
"OP_83",
"MUL",
"OR",
"OP_90",
"SSTORE",
"POP",
"OP_82",
"PUSH1",
"PUSH1",
"PUSH2",
"EXP",
"OP_81",
"SLOAD",
"OP_81",
"PUSH20",
"MUL",
"NOT",
"AND",
"OP_90",
"OP_83",
"MUL",
"OR",
"OP_90",
"SSTORE",
"POP",
"OP_81",
"PUSH1",
"PUSH1",
"POP",
"OP_81",
"OP_90",
"SSTORE",
"POP",
"OP_80",
"PUSH1",
"PUSH1",
"POP",
"OP_81",
"OP_90",
"SSTORE",
"POP"
]
}
{
"start_pc": 1866,
"end_pc": 1883,
"opcodes": [
"JUMPDEST",
"POP",
"POP",
"POP",
"POP",
"PUSH2",
"OP_80",
"PUSH2",
"PUSH1",
"CODECOPY",
"PUSH1",
"RETURN"
]
}
{
"start_pc": 1884,
"end_pc": 1884,
"opcodes": [
"STOP"
]
}
{
"start_pc": 1885,
"end_pc": 1895,
"opcodes": [
"PUSH1",
"PUSH1",
"MSTORE",
"CALLDATASIZE",
"ISZERO",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 1896,
"end_pc": 1941,
"opcodes": [
"PUSH1",
"CALLDATALOAD",
"PUSH29",
"OP_90",
"DIV",
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 1942,
"end_pc": 1952,
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 1953,
"end_pc": 1963,
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 1964,
"end_pc": 1974,
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 1975,
"end_pc": 1985,
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 1986,
"end_pc": 1996,
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 1997,
"end_pc": 2007,
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 2008,
"end_pc": 2018,
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 2019,
"end_pc": 2022,
"opcodes": [
"PUSH2",
"JUMP"
]
}
exec
/bin/bash -lc "rg -n 'bytecode|runtime|0x60806040|codecopy|creation' BYTECODE_BUNDLE.json | head -n 80" in /tmp/codex-elbdutre
succeeded in 0ms:
6071: "runtime_bytecode": {
exec
/bin/bash -lc "jq '.analysis_artifact | {address,chain_id,block_number,codehash,version}' BYTECODE_BUNDLE.json" in /tmp/codex-elbdutre
succeeded in 0ms:
{
"address": "0x480d57dbf6c3b49916b9325e2c5ed92401c54efc",
"chain_id": 1,
"block_number": null,
"codehash": "0x0e1b645e2c22497ea8e236690dcc4fa4d008e7a4e94e6f3aabfcfd00693bb2db",
"version": "analysis_artifact_v1"
}
exec
/bin/bash -lc "jq '.analysis_run' BYTECODE_BUNDLE.json" in /tmp/codex-elbdutre
succeeded in 0ms:
{
"address": "0x480d57dbf6c3b49916b9325e2c5ed92401c54efc",
"block_number": null,
"chain_id": 1,
"child_links": [],
"created_at": "2025-12-19T19:59:00.000000Z",
"id": "019b3831-b4f2-714e-8d83-674c9b049484",
"parent_links": [],
"status": "running",
"updated_at": "2026-04-04T19:44:46.000000Z"
}
exec
/bin/bash -lc "jq '.artifact | keys' BYTECODE_BUNDLE.json" in /tmp/codex-elbdutre
succeeded in 0ms:
[
"codehash",
"compiler_json",
"implementation_address",
"is_proxy",
"runtime_bytecode",
"verified_source"
]
exec
/bin/bash -lc "jq '.artifact.runtime_bytecode | keys' BYTECODE_BUNDLE.json" in /tmp/codex-elbdutre
succeeded in 0ms:
[
"full",
"head",
"length",
"tail",
"truncated"
]
exec
/bin/bash -lc "jq '.artifact.runtime_bytecode | {length:(.hex|length),prefix:(.hex[0:120]),opcodes_count:(.opcodes|length)}' BYTECODE_BUNDLE.json" in /tmp/codex-elbdutre
succeeded in 0ms:
{
"length": 0,
"prefix": null,
"opcodes_count": 0
}
exec
/bin/bash -lc "jq '.artifact.runtime_bytecode' BYTECODE_BUNDLE.json" in /tmp/codex-elbdutre
succeeded in 0ms:
{
"full": "0x60606040526000357c01000000000000000000000000000000000000000000000000000000009004806327e235e31461005a5780636a42b8f8146100815780639e39db73146100a2578063a9059cbb146100b557610058565b005b61006b600480359060200150610101565b6040518082815260200191505060405180910390f35b61008c6004506100f8565b6040518082815260200191505060405180910390f35b6100b360048035906020015061011c565b005b6100cc60048035906020018035906020015061015c565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006000505481565b60016000506020528060005260406000206000915090505481565b34600160005060008373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828282505401925050819055505b50565b60006000600033915083600160005060008473ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000505410156101a55760009250610250565b81856000600050544201604051610a4480610259833901808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051809103906000f0905083600160005060008473ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082828250540392505081905550809250610250565b50509291505056006060604052604051606080610a448339016040526060805190602001805190602001805190602001505b82600060006101000a81548173ffffffffffffffffffffffffffffffffffffffff0219169083021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff02191690830217905550806002600050819055505b5050506109a88061009c6000396000f30060606040523615610074576000357c0100000000000000000000000000000000000000000000000000000000900480630fe65b361461007657806366d003ac146100b357806386d1a69f146100ea5780638da5cb5b146100f7578063b91d40011461012e578063ea8a1af01461014f57610074565b005b610087600480359060200150610291565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100be600450610182565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100f56004506101b1565b005b61010260045061015c565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101396004506101a8565b6040518082815260200191505060405180910390f35b61015a6004506101fd565b005b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026000505481565b600260005054421015156101fa57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b5b565b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561028e57600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b5b565b600060006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156103b25760009150600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16823073ffffffffffffffffffffffffffffffffffffffff1631866040516105ed806103bb833901808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001945050505050604051809103906000f090508073ffffffffffffffffffffffffffffffffffffffff16ff8092506103b3565b5b5050919050560060606040526040516080806105ed8339016040526060805190602001805190602001805190602001805190602001505b83600060006101000a81548173ffffffffffffffffffffffffffffffffffffffff0219169083021790555082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff0219169083021790555081600260005081905550806003600050819055505b50505050610540806100ad6000396000f3006060604052361561008a576000357c010000000000000000000000000000000000000000000000000000000090048063119f87471461008c57806329dcb0cf146100995780633c24b7d7146100ba578063552079dc146100fe57806366d003ac14610135578063702c35fb1461016c57806386d1a69f1461018d578063c9e7e29b1461019a5761008a565b005b6100976004506102cc565b005b6100a4600450610210565b6040518082815260200191505060405180910390f35b6100cb600480359060200150610219565b604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b6101096004506101bb565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101406004506101e1565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61017760045061026f565b6040518082815260200191505060405180910390f35b610198600450610278565b005b6101a5600450610207565b6040518082815260200191505060405180910390f35b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026000505481565b60036000505481565b60046000508181548110156100025790600052602060002090600202016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160005054905082565b60056000505481565b600360005054421015156102c95761028e610497565b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b5b565b60003411156104945760406040519081016040528033815260200134815260200150600460005060046000508054809190600101909081548183558181151161037857600202816002028360005260206000209182019101610377919061032e565b808211156103735760006000820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560018201600050600090555060010161032e565b5090565b5b505050815481101561000257906000526020600020906002020160005060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff02191690830217905550602082015181600101600050559050503460056000828282505401925050819055507f8fc4de83eddb2e6be67e269b8bfdc735778c7339168d5f734290f474f5647e143334604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a160026000505460056000505410151561049357610458610497565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b5b5b565b60006000600091505b60046000505482101561053b57600460005082815481101561000257906000526020600020906002020160005090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008260010160005054604051809050600060405180830381858888f19350505050505b81806001019250506104a0565b5b505056",
"head": null,
"length": 6460,
"tail": null,
"truncated": false
}
exec
/bin/bash -lc "jq '.artifact | {is_proxy,implementation_address,verified_source,compiler_json}' BYTECODE_BUNDLE.json" in /tmp/codex-elbdutre
succeeded in 0ms:
{
"is_proxy": false,
"implementation_address": null,
"verified_source": false,
"compiler_json": {
"etherscan": {
"skipped": true
}
}
}
exec
/bin/bash -lc 'which evm || true; which cast || true; which hevm || true' in /tmp/codex-elbdutre
succeeded in 0ms:
/home/noahkuhn/.foundry/bin/cast
exec
/bin/bash -lc "python - <<'PY'
import importlib.util
mods=['pyevmasm','eth_utils','evmdasm']
for m in mods:
print(m, importlib.util.find_spec(m))
PY" in /tmp/codex-elbdutre
succeeded in 0ms:
pyevmasm None
eth_utils ModuleSpec(name='eth_utils', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7f2c25b9af50>, origin='/var/www/tripwire/.venv/lib/python3.13/site-packages/eth_utils/__init__.py', submodule_search_locations=['/var/www/tripwire/.venv/lib/python3.13/site-packages/eth_utils'])
evmdasm None
exec
/bin/bash -lc "cast --help | sed -n '1,140p'" in /tmp/codex-elbdutre
succeeded in 0ms:
A Swiss Army knife for interacting with Ethereum applications from the command line
Usage: cast [OPTIONS] <COMMAND>
Commands:
4byte Get the function signatures for the given selector from
<https://openchain.xyz> [aliases: 4, 4b]
4byte-calldata Decode ABI-encoded calldata using <https://openchain.xyz> [aliases: 4c,
4bc]
4byte-event Get the event signature for a given topic 0 from <https://openchain.xyz>
[aliases: 4e, 4be, topic0-event, t0e]
abi-encode ABI encode the given function argument, excluding the selector [aliases:
ae]
abi-encode-event ABI encode an event and its arguments to generate topics and data [aliases:
aee]
access-list Create an access list for a transaction [aliases: ac, acl]
address-zero Prints the zero address [aliases: --address-zero, az]
admin Fetch the EIP-1967 admin account [aliases: adm]
age Get the timestamp of a block [aliases: a]
artifact Generate an artifact file, that can be used to deploy a contract locally
[aliases: ar]
b2e-payload Convert Beacon payload to execution payload [aliases: b2e]
balance Get the balance of an account in wei [aliases: b]
base-fee Get the basefee of a block [aliases: ba, fee, basefee]
bind Generate a rust binding from a given ABI [aliases: bi]
block Get information about a block [aliases: bl]
block-number Get the latest block number [aliases: bn]
call Perform a call on an account without publishing a transaction [aliases: c]
calldata ABI-encode a function with arguments [aliases: cd]
chain Get the symbolic name of the current chain
chain-id Get the Ethereum chain ID [aliases: ci, cid]
client Get the current client version [aliases: cl]
code Get the runtime bytecode of a contract [aliases: co]
codehash Get the codehash for an account
codesize Get the runtime bytecode size of a contract [aliases: cs]
completions Generate shell completions script [aliases: com]
compute-address Compute the contract address from a given nonce and deployer address
[aliases: ca]
concat-hex Concatenate hex strings [aliases: --concat-hex, ch]
constructor-args Display constructor arguments used for the contract initialization
[aliases: cra]
create2 Generate a deterministic contract address using CREATE2 [aliases: c2]
creation-code Download a contract creation code from Etherscan and RPC [aliases: cc]
da-estimate Estimates the data availability size of a given opstack block
decode-abi Decode ABI-encoded input or output data [aliases: abi-decode, --abi-decode,
ad]
decode-calldata Decode ABI-encoded input data [aliases: calldata-decode, --calldata-decode,
cdd]
decode-error Decode custom error data [aliases: error-decode, --error-decode, erd]
decode-event Decode event data [aliases: event-decode, --event-decode, ed]
decode-string Decode ABI-encoded string [aliases: string-decode, --string-decode, sd]
decode-transaction Decodes a raw signed EIP 2718 typed transaction [aliases: dt, decode-tx]
disassemble Disassembles a hex-encoded bytecode into a human-readable representation
[aliases: da]
erc20-token ERC20 token operations [aliases: erc20]
estimate Estimate the gas cost of a transaction [aliases: e]
find-block Get the block number closest to the provided timestamp [aliases: f]
format-bytes32-string Formats a string into bytes32 encoding [aliases: --format-bytes32-string]
format-units Format a number from smallest unit to decimal with arbitrary decimals
[aliases: --format-units, fun]
from-bin Convert binary data into hex data [aliases: --from-bin, from-binx, fb]
from-fixed-point Convert a fixed point number into an integer [aliases: --from-fix, ff]
from-rlp Decodes RLP hex-encoded data [aliases: --from-rlp]
from-utf8 Convert UTF8 text to hex [aliases: --from-ascii, --from-utf8, from-ascii,
fu, fa]
from-wei Convert wei into an ETH amount [aliases: --from-wei, fw]
gas-price Get the current gas price [aliases: g]
hash-message Hash a message according to EIP-191 [aliases: --hash-message, hm]
hash-zero Prints the zero hash [aliases: --hash-zero, hz]
help Print this message or the help of the given subcommand(s)
implementation Fetch the EIP-1967 implementation for a contract Can read from the
implementation slot or the beacon slot [aliases: impl]
index Compute the storage slot for an entry in a mapping [aliases: in]
index-erc7201 Compute storage slots as specified by `ERC-7201: Namespaced Storage Layout`
[aliases: index7201, in7201]
interface Generate a Solidity interface from a given ABI [aliases: i]
keccak Hash arbitrary data using Keccak-256 [aliases: k, keccak256]
logs Get logs by signature or topic [aliases: l]
lookup-address Perform an ENS reverse lookup [aliases: la]
max-int Prints the maximum value of the given integer type [aliases: --max-int,
maxi]
max-uint Prints the maximum value of the given integer type [aliases: --max-uint,
maxu]
min-int Prints the minimum value of the given integer type [aliases: --min-int,
mini]
mktx Build and sign a transaction [aliases: m]
namehash Calculate the ENS namehash of a name [aliases: na, nh]
nonce Get the nonce for an account [aliases: n]
pad Pads hex data to a specified length [aliases: pd]
parse-bytes32-address Parses a checksummed address from bytes32 encoding. [aliases:
--parse-bytes32-address]
parse-bytes32-string Parses a string from bytes32 encoding [aliases: --parse-bytes32-string]
parse-units Convert a number from decimal to smallest unit with arbitrary decimals
[aliases: --parse-units, pun]
pretty-calldata Pretty print calldata [aliases: pc]
proof Generate a storage proof for a given storage slot [aliases: pr]
publish Publish a raw transaction to the network [aliases: p]
receipt Get the transaction receipt for a transaction [aliases: re]
recover-authority Recovery an EIP-7702 authority from a Authorization JSON string [aliases:
decode-auth]
resolve-name Perform an ENS lookup [aliases: rn]
rpc Perform a raw JSON-RPC request [aliases: rp]
run Runs a published transaction in a local environment and prints the trace
[aliases: r]
selectors Extracts function selectors and arguments from bytecode [aliases: sel]
send Sign and publish a transaction [aliases: s]
shl Perform a left shifting operation
shr Perform a right shifting operation
sig Get the selector for a function [aliases: si]
sig-event Generate event signatures from event string [aliases: se]
source Get the source code of a contract from a block explorer [aliases: et, src]
storage Get the raw value of a contract's storage slot [aliases: st]
storage-root Get the storage root for an account [aliases: sr]
to-ascii Convert hex data to an ASCII string [aliases: --to-ascii, tas, 2as]
to-base Converts a number of one base to another [aliases: --to-base, --to-radix,
to-radix, tr, 2r]
to-bytes32 Right-pads hex data to 32 bytes [aliases: --to-bytes32, tb, 2b]
to-check-sum-address Convert an address to a checksummed format (EIP-55) [aliases:
--to-checksum-address, --to-checksum, to-checksum, ta, 2a]
to-dec Converts a number of one base to decimal [aliases: --to-dec, td, 2d]
to-fixed-point Convert an integer into a fixed point number [aliases: --to-fix, tf, 2f]
to-hex Converts a number of one base to another [aliases: --to-hex, th, 2h]
to-hexdata Normalize the input to lowercase, 0x-prefixed hex [aliases: --to-hexdata,
thd, 2hd]
to-int256 Convert a number to a hex-encoded int256 [aliases: --to-int256, ti, 2i]
to-rlp RLP encodes hex data, or an array of hex data [aliases: --to-rlp]
to-uint256 Convert a number to a hex-encoded uint256 [aliases: --to-uint256, tu, 2u]
to-unit Convert an ETH amount into another unit (ether, gwei or wei) [aliases:
--to-unit, tun, 2un]
to-utf8 Convert hex data to a utf-8 string [aliases: --to-utf8, tu8, 2u8]
to-wei Convert an ETH amount to wei [aliases: --to-wei, tw, 2w]
trace CLI arguments for `cast trace`
tx Get information about a transaction [aliases: t]
tx-pool Inspect the TxPool of a node [aliases: tp]
upload-signature Upload the given signatures to <https://openchain.xyz> [aliases: ups]
wallet Wallet management utilities [aliases: w]
Options:
-h, --help
Print help (see a summary with '-h')
exec
/bin/bash -lc 'cast 4byte 27e235e3 || true
cast 4byte 6a42b8f8 || true
cast 4byte 9e39db73 || true
cast 4byte 0fe65b36 || true
cast 4byte 66d003ac || true
cast 4byte 86d1a69f || true
cast 4byte b91d4001 || true
cast 4byte ea8a1af0 || true
cast 4byte 119f8747 || true
cast 4byte 29dcb0cf || true
cast 4byte 3c24b7d7 || true
cast 4byte 552079dc || true
cast 4byte 702c35fb || true
cast 4byte c9e7e29b || true' in /tmp/codex-elbdutre
succeeded in 352ms:
Error: error sending request for url (https://api.4byte.sourcify.dev/signature-database/v1/lookup?function=0x0fe65b36)
Context:
- Error #0: client error (Connect)
- Error #1: dns error
- Error #2: failed to lookup address information: Temporary failure in name resolution
Error: error sending request for url (https://api.4byte.sourcify.dev/signature-database/v1/lookup?function=0x66d003ac)
Context:
- Error #0: client error (Connect)
- Error #1: dns error
- Error #2: failed to lookup address information: Temporary failure in name resolution
Error: error sending request for url (https://api.4byte.sourcify.dev/signature-database/v1/lookup?function=0x86d1a69f)
Context:
- Error #0: client error (Connect)
- Error #1: dns error
- Error #2: failed to lookup address information: Temporary failure in name resolution
Error: error sending request for url (https://api.4byte.sourcify.dev/signature-database/v1/lookup?function=0xb91d4001)
Context:
- Error #0: client error (Connect)
- Error #1: dns error
- Error #2: failed to lookup address information: Temporary failure in name resolution
Error: error sending request for url (https://api.4byte.sourcify.dev/signature-database/v1/lookup?function=0xea8a1af0)
Context:
- Error #0: client error (Connect)
- Error #1: dns error
- Error #2: failed to lookup address information: Temporary failure in name resolution
Error: error sending request for url (https://api.4byte.sourcify.dev/signature-database/v1/lookup?function=0x119f8747)
Context:
- Error #0: client error (Connect)
- Error #1: dns error
- Error #2: failed to lookup address information: Temporary failure in name resolution
Error: error sending request for url (https://api.4byte.sourcify.dev/signature-database/v1/lookup?function=0x29dcb0cf)
Context:
- Error #0: client error (Connect)
- Error #1: dns error
- Error #2: failed to lookup address information: Temporary failure in name resolution
Error: error sending request for url (https://api.4byte.sourcify.dev/signature-database/v1/lookup?function=0x3c24b7d7)
Context:
- Error #0: client error (Connect)
- Error #1: dns error
- Error #2: failed to lookup address information: Temporary failure in name resolution
Error: error sending request for url (https://api.4byte.sourcify.dev/signature-database/v1/lookup?function=0x552079dc)
Context:
- Error #0: client error (Connect)
- Error #1: dns error
- Error #2: failed to lookup address information: Temporary failure in name resolution
Error: error sending request for url (https://api.4byte.sourcify.dev/signature-database/v1/lookup?function=0x702c35fb)
Context:
- Error #0: client error (Connect)
- Error #1: dns error
- Error #2: failed to lookup address information: Temporary failure in name resolution
Error: error sending request for url (https://api.4byte.sourcify.dev/signature-database/v1/lookup?function=0xc9e7e29b)
Context:
- Error #0: client error (Connect)
- Error #1: dns error
- Error #2: failed to lookup address information: Temporary failure in name resolution
exec
/bin/bash -lc "python - <<'PY'
import json
obj=json.load(open('BYTECODE_BUNDLE.json'))
full=obj['artifact']['runtime_bytecode']['full']
print(full[:400])
PY" in /tmp/codex-elbdutre
succeeded in 0ms:
0x60606040526000357c01000000000000000000000000000000000000000000000000000000009004806327e235e31461005a5780636a42b8f8146100815780639e39db73146100a2578063a9059cbb146100b557610058565b005b61006b600480359060200150610101565b6040518082815260200191505060405180910390f35b61008c6004506100f8565b6040518082815260200191505060405180910390f35b6100b360048035906020015061011c565b005b6100cc6004803590602001803590602001
exec
/bin/bash -lc "python - <<'PY'
import json,re
obj=json.load(open('BYTECODE_BUNDLE.json'))
full=obj['artifact']['runtime_bytecode']['full'][2:]
# find all occurrences of 'f3' followed by 6060604052 or 606060405236 etc
for m in re.finditer('f3', full):
idx=m.start()//2
print('f3 at byte', idx, 'next20', full[m.start()+2:m.start()+42])
PY" in /tmp/codex-elbdutre
succeeded in 0ms:
f3 at byte 128 next20 5b61008c6004506100f8565b6040518082815260
f3 at byte 161 next20 5b6100b360048035906020015061011c565b005b
f3 at byte 247 next20 5b60006000505481565b60016000506020528060
f3 at byte 755 next20 0060606040523615610074576000357c01000000
f3 at byte 935 next20 5b6100be600450610182565b604051808273ffff
f3 at byte 990 next20 5b6100f56004506101b1565b005b610102600450
f3 at byte 1058 next20 5b6101396004506101a8565b6040518082815260
f3 at byte 1091 next20 5b61015a6004506101fd565b005b600060009054
f3 at byte 1883 next20 006060604052361561008a576000357c01000000
f3 at byte 2070 next20 5b6100cb600480359060200150610219565b6040
f3 at byte 2138 next20 5b6101096004506101bb565b604051808273ffff
f3 at byte 2193 next20 5b6101406004506101e1565b604051808273ffff
f3 at byte 2248 next20 5b61017760045061026f565b6040518082815260
f3 at byte 2281 next20 5b610198600450610278565b005b6101a5600450
f3 at byte 2327 next20 5b600060009054906101000a900473ffffffffff
exec
/bin/bash -lc "python - <<'PY'
import json,re
full=json.load(open('BYTECODE_BUNDLE.json'))['artifact']['runtime_bytecode']['full'][2:]
for pat in ['6000396000f3','6000f300']:
for m in re.finditer(pat, full):
print(pat, 'at byte', m.start()//2)
PY" in /tmp/codex-elbdutre
succeeded in 0ms:
6000396000f3 at byte 750
6000396000f3 at byte 1878
6000f300 at byte 753
6000f300 at byte 1881
exec
/bin/bash -lc "python - <<'PY'
import json
full=json.load(open('BYTECODE_BUNDLE.json'))['artifact']['runtime_bytecode']['full'][2:]
for idx in [0, 750*2, 1880*2]:
print('offset', idx//2, full[idx:idx+120])
PY" in /tmp/codex-elbdutre
succeeded in 0ms:
offset 0 60606040526000357c01000000000000000000000000000000000000000000000000000000009004806327e235e31461005a5780636a42b8f8146100
offset 750 6000396000f30060606040523615610074576000357c0100000000000000000000000000000000000000000000000000000000900480630fe65b3614
offset 1880 396000f3006060604052361561008a576000357c010000000000000000000000000000000000000000000000000000000090048063119f8747146100
exec
/bin/bash -lc "python - <<'PY'
import json
full=json.load(open('BYTECODE_BUNDLE.json'))['artifact']['runtime_bytecode']['full'][2:]
runtimeA=full[156*2:(156+0x9a8)*2]
print(runtimeA[:80])
print(len(runtimeA)//2)
open('/tmp/runtimeA.hex','w').write('0x'+runtimeA)
PY
cast disassemble "'$(cat /tmp/runtimeA.hex) | sed -n '"'1,260p'" in /tmp/codex-elbdutre
succeeded in 0ms:
5180910390f35b6100b360048035906020015061011c565b005b6100cc6004803590602001803590
2472
Traceback (most recent call last):
File "<stdin>", line 6, in <module>
OSError: [Errno 30] Read-only file system: '/tmp/runtimeA.hex'
cat: /tmp/runtimeA.hex: No such file or directory
exec
/bin/bash -lc "python - <<'PY'
import json
full=json.load(open('BYTECODE_BUNDLE.json'))['artifact']['runtime_bytecode']['full'][2:]
# child creation code embedded in runtimeA likely at byte offset 0x03bb within runtimeA, length 0x05ed
runtimeA=full[156*2:(156+0x9a8)*2]
child_creation=runtimeA[0x3bb*2:(0x3bb+0x5ed)*2]
print('child_creation_len', len(child_creation)//2)
open('/tmp/child_creation.hex','w').write('0x'+child_creation)
PY
cast disassemble "'$(cat /tmp/child_creation.hex) | sed -n '"'1,260p'" in /tmp/codex-elbdutre
succeeded in 0ms:
child_creation_len 1517
Traceback (most recent call last):
File "<stdin>", line 7, in <module>
OSError: [Errno 30] Read-only file system: '/tmp/child_creation.hex'
cat: /tmp/child_creation.hex: No such file or directory
exec
/bin/bash -lc "python - <<'PY' | xargs -I{} cast disassemble {} | sed -n '1,260p'
import json
full=json.load(open('BYTECODE_BUNDLE.json'))['artifact']['runtime_bytecode']['full'][2:]
runtimeA=full[156*2:(156+0x9a8)*2]
print('0x'+runtimeA)
PY" in /tmp/codex-elbdutre
succeeded in 0ms:
00000000: MLOAD
00000001: DUP1
00000002: SWAP2
00000003: SUB
00000004: SWAP1
00000005: RETURN
00000006: JUMPDEST
00000007: PUSH2 0x00b3
0000000a: PUSH1 0x04
0000000c: DUP1
0000000d: CALLDATALOAD
0000000e: SWAP1
0000000f: PUSH1 0x20
00000011: ADD
00000012: POP
00000013: PUSH2 0x011c
00000016: JUMP
00000017: JUMPDEST
00000018: STOP
00000019: JUMPDEST
0000001a: PUSH2 0x00cc
0000001d: PUSH1 0x04
0000001f: DUP1
00000020: CALLDATALOAD
00000021: SWAP1
00000022: PUSH1 0x20
00000024: ADD
00000025: DUP1
00000026: CALLDATALOAD
00000027: SWAP1
00000028: PUSH1 0x20
0000002a: ADD
0000002b: POP
0000002c: PUSH2 0x015c
0000002f: JUMP
00000030: JUMPDEST
00000031: PUSH1 0x40
00000033: MLOAD
00000034: DUP1
00000035: DUP3
00000036: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000004b: AND
0000004c: DUP2
0000004d: MSTORE
0000004e: PUSH1 0x20
00000050: ADD
00000051: SWAP2
00000052: POP
00000053: POP
00000054: PUSH1 0x40
00000056: MLOAD
00000057: DUP1
00000058: SWAP2
00000059: SUB
0000005a: SWAP1
0000005b: RETURN
0000005c: JUMPDEST
0000005d: PUSH1 0x00
0000005f: PUSH1 0x00
00000061: POP
00000062: SLOAD
00000063: DUP2
00000064: JUMP
00000065: JUMPDEST
00000066: PUSH1 0x01
00000068: PUSH1 0x00
0000006a: POP
0000006b: PUSH1 0x20
0000006d: MSTORE
0000006e: DUP1
0000006f: PUSH1 0x00
00000071: MSTORE
00000072: PUSH1 0x40
00000074: PUSH1 0x00
00000076: KECCAK256
00000077: PUSH1 0x00
00000079: SWAP2
0000007a: POP
0000007b: SWAP1
0000007c: POP
0000007d: SLOAD
0000007e: DUP2
0000007f: JUMP
00000080: JUMPDEST
00000081: CALLVALUE
00000082: PUSH1 0x01
00000084: PUSH1 0x00
00000086: POP
00000087: PUSH1 0x00
00000089: DUP4
0000008a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000009f: AND
000000a0: DUP2
000000a1: MSTORE
000000a2: PUSH1 0x20
000000a4: ADD
000000a5: SWAP1
000000a6: DUP2
000000a7: MSTORE
000000a8: PUSH1 0x20
000000aa: ADD
000000ab: PUSH1 0x00
000000ad: KECCAK256
000000ae: PUSH1 0x00
000000b0: DUP3
000000b1: DUP3
000000b2: DUP3
000000b3: POP
000000b4: SLOAD
000000b5: ADD
000000b6: SWAP3
000000b7: POP
000000b8: POP
000000b9: DUP2
000000ba: SWAP1
000000bb: SSTORE
000000bc: POP
000000bd: JUMPDEST
000000be: POP
000000bf: JUMP
000000c0: JUMPDEST
000000c1: PUSH1 0x00
000000c3: PUSH1 0x00
000000c5: PUSH1 0x00
000000c7: CALLER
000000c8: SWAP2
000000c9: POP
000000ca: DUP4
000000cb: PUSH1 0x01
000000cd: PUSH1 0x00
000000cf: POP
000000d0: PUSH1 0x00
000000d2: DUP5
000000d3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000000e8: AND
000000e9: DUP2
000000ea: MSTORE
000000eb: PUSH1 0x20
000000ed: ADD
000000ee: SWAP1
000000ef: DUP2
000000f0: MSTORE
000000f1: PUSH1 0x20
000000f3: ADD
000000f4: PUSH1 0x00
000000f6: KECCAK256
000000f7: PUSH1 0x00
000000f9: POP
000000fa: SLOAD
000000fb: LT
000000fc: ISZERO
000000fd: PUSH2 0x01a5
00000100: JUMPI
00000101: PUSH1 0x00
00000103: SWAP3
00000104: POP
00000105: PUSH2 0x0250
00000108: JUMP
00000109: JUMPDEST
0000010a: DUP2
0000010b: DUP6
0000010c: PUSH1 0x00
0000010e: PUSH1 0x00
00000110: POP
00000111: SLOAD
00000112: TIMESTAMP
00000113: ADD
00000114: PUSH1 0x40
00000116: MLOAD
00000117: PUSH2 0x0a44
0000011a: DUP1
0000011b: PUSH2 0x0259
0000011e: DUP4
0000011f: CODECOPY
00000120: ADD
00000121: DUP1
00000122: DUP5
00000123: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000138: AND
00000139: DUP2
0000013a: MSTORE
0000013b: PUSH1 0x20
0000013d: ADD
0000013e: DUP4
0000013f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000154: AND
00000155: DUP2
00000156: MSTORE
00000157: PUSH1 0x20
00000159: ADD
0000015a: DUP3
0000015b: DUP2
0000015c: MSTORE
0000015d: PUSH1 0x20
0000015f: ADD
00000160: SWAP4
00000161: POP
00000162: POP
00000163: POP
00000164: POP
00000165: PUSH1 0x40
00000167: MLOAD
00000168: DUP1
00000169: SWAP2
0000016a: SUB
0000016b: SWAP1
0000016c: PUSH1 0x00
0000016e: CREATE
0000016f: SWAP1
00000170: POP
00000171: DUP4
00000172: PUSH1 0x01
00000174: PUSH1 0x00
00000176: POP
00000177: PUSH1 0x00
00000179: DUP5
0000017a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000018f: AND
00000190: DUP2
00000191: MSTORE
00000192: PUSH1 0x20
00000194: ADD
00000195: SWAP1
00000196: DUP2
00000197: MSTORE
00000198: PUSH1 0x20
0000019a: ADD
0000019b: PUSH1 0x00
0000019d: KECCAK256
0000019e: PUSH1 0x00
000001a0: DUP3
000001a1: DUP3
000001a2: DUP3
000001a3: POP
000001a4: SLOAD
000001a5: SUB
000001a6: SWAP3
000001a7: POP
000001a8: POP
000001a9: DUP2
000001aa: SWAP1
000001ab: SSTORE
000001ac: POP
000001ad: DUP1
000001ae: SWAP3
000001af: POP
000001b0: PUSH2 0x0250
000001b3: JUMP
000001b4: JUMPDEST
000001b5: POP
000001b6: POP
000001b7: SWAP3
000001b8: SWAP2
000001b9: POP
000001ba: POP
000001bb: JUMP
000001bc: STOP
000001bd: PUSH1 0x60
000001bf: PUSH1 0x40
000001c1: MSTORE
exec
/bin/bash -lc "python - <<'PY' | xargs -I{} cast disassemble {} | sed -n '1,260p'
import json
full=json.load(open('BYTECODE_BUNDLE.json'))['artifact']['runtime_bytecode']['full'][2:]
runtimeA=full[156*2:(156+0x9a8)*2]
child_creation=runtimeA[0x3bb*2:(0x3bb+0x5ed)*2]
print('0x'+child_creation)
PY" in /tmp/codex-elbdutre
succeeded in 0ms:
00000000: SLOAD
00000001: SWAP1
00000002: PUSH2 0x0100
00000005: EXP
00000006: SWAP1
00000007: DIV
00000008: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000001d: AND
0000001e: DUP2
0000001f: JUMP
00000020: JUMPDEST
00000021: PUSH1 0x01
00000023: PUSH1 0x00
00000025: SWAP1
00000026: SLOAD
00000027: SWAP1
00000028: PUSH2 0x0100
0000002b: EXP
0000002c: SWAP1
0000002d: DIV
0000002e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000043: AND
00000044: DUP2
00000045: JUMP
00000046: JUMPDEST
00000047: PUSH1 0x02
00000049: PUSH1 0x00
0000004b: POP
0000004c: SLOAD
0000004d: DUP2
0000004e: JUMP
0000004f: JUMPDEST
00000050: PUSH1 0x02
00000052: PUSH1 0x00
00000054: POP
00000055: SLOAD
00000056: TIMESTAMP
00000057: LT
00000058: ISZERO
00000059: ISZERO
0000005a: PUSH2 0x01fa
0000005d: JUMPI
0000005e: PUSH1 0x01
00000060: PUSH1 0x00
00000062: SWAP1
00000063: SLOAD
00000064: SWAP1
00000065: PUSH2 0x0100
00000068: EXP
00000069: SWAP1
0000006a: DIV
0000006b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000080: AND
00000081: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000096: AND
00000097: SELFDESTRUCT
00000098: JUMPDEST
00000099: JUMPDEST
0000009a: JUMP
0000009b: JUMPDEST
0000009c: PUSH1 0x00
0000009e: PUSH1 0x00
000000a0: SWAP1
000000a1: SLOAD
000000a2: SWAP1
000000a3: PUSH2 0x0100
000000a6: EXP
000000a7: SWAP1
000000a8: DIV
000000a9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000000be: AND
000000bf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000000d4: AND
000000d5: CALLER
000000d6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000000eb: AND
000000ec: EQ
000000ed: ISZERO
000000ee: PUSH2 0x028e
000000f1: JUMPI
000000f2: PUSH1 0x00
000000f4: PUSH1 0x00
000000f6: SWAP1
000000f7: SLOAD
000000f8: SWAP1
000000f9: PUSH2 0x0100
000000fc: EXP
000000fd: SWAP1
000000fe: DIV
000000ff: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000114: AND
00000115: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000012a: AND
0000012b: SELFDESTRUCT
0000012c: JUMPDEST
0000012d: JUMPDEST
0000012e: JUMP
0000012f: JUMPDEST
00000130: PUSH1 0x00
00000132: PUSH1 0x00
00000134: PUSH1 0x00
00000136: PUSH1 0x00
00000138: PUSH1 0x00
0000013a: SWAP1
0000013b: SLOAD
0000013c: SWAP1
0000013d: PUSH2 0x0100
00000140: EXP
00000141: SWAP1
00000142: DIV
00000143: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000158: AND
00000159: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000016e: AND
0000016f: CALLER
00000170: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000185: AND
00000186: EQ
00000187: ISZERO
00000188: PUSH2 0x03b2
0000018b: JUMPI
0000018c: PUSH1 0x00
0000018e: SWAP2
0000018f: POP
00000190: PUSH1 0x00
00000192: PUSH1 0x00
00000194: SWAP1
00000195: SLOAD
00000196: SWAP1
00000197: PUSH2 0x0100
0000019a: EXP
0000019b: SWAP1
0000019c: DIV
0000019d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000001b2: AND
000001b3: DUP3
000001b4: ADDRESS
000001b5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000001ca: AND
000001cb: BALANCE
000001cc: DUP7
000001cd: PUSH1 0x40
000001cf: MLOAD
000001d0: PUSH2 0x05ed
000001d3: DUP1
000001d4: PUSH2 0x03bb
000001d7: DUP4
000001d8: CODECOPY
000001d9: ADD
000001da: DUP1
000001db: DUP6
000001dc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000001f1: AND
000001f2: DUP2
000001f3: MSTORE
000001f4: PUSH1 0x20
000001f6: ADD
000001f7: DUP5
000001f8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000020d: AND
0000020e: DUP2
0000020f: MSTORE
00000210: PUSH1 0x20
00000212: ADD
00000213: DUP4
00000214: DUP2
00000215: MSTORE
00000216: PUSH1 0x20
00000218: ADD
00000219: DUP3
0000021a: DUP2
0000021b: MSTORE
0000021c: PUSH1 0x20
0000021e: ADD
0000021f: SWAP5
00000220: POP
00000221: POP
00000222: POP
00000223: POP
00000224: POP
00000225: PUSH1 0x40
00000227: MLOAD
00000228: DUP1
00000229: SWAP2
0000022a: SUB
0000022b: SWAP1
0000022c: PUSH1 0x00
0000022e: CREATE
0000022f: SWAP1
00000230: POP
00000231: DUP1
00000232: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000247: AND
00000248: SELFDESTRUCT
00000249: DUP1
0000024a: SWAP3
0000024b: POP
0000024c: PUSH2 0x03b3
0000024f: JUMP
00000250: JUMPDEST
00000251: JUMPDEST
00000252: POP
00000253: POP
00000254: SWAP2
00000255: SWAP1
00000256: POP
00000257: JUMP
00000258: STOP
00000259: PUSH1 0x60
0000025b: PUSH1 0x40
0000025d: MSTORE
0000025e: PUSH1 0x40
00000260: MLOAD
00000261: PUSH1 0x80
00000263: DUP1
00000264: PUSH2 0x05ed
00000267: DUP4
00000268: CODECOPY
00000269: ADD
0000026a: PUSH1 0x40
0000026c: MSTORE
0000026d: PUSH1 0x60
0000026f: DUP1
00000270: MLOAD
00000271: SWAP1
00000272: PUSH1 0x20
00000274: ADD
00000275: DUP1
00000276: MLOAD
00000277: SWAP1
00000278: PUSH1 0x20
0000027a: ADD
0000027b: DUP1
0000027c: MLOAD
0000027d: SWAP1
0000027e: PUSH1 0x20
00000280: ADD
00000281: DUP1
00000282: MLOAD
00000283: SWAP1
00000284: PUSH1 0x20
00000286: ADD
00000287: POP
00000288: JUMPDEST
00000289: DUP4
0000028a: PUSH1 0x00
0000028c: PUSH1 0x00
0000028e: PUSH2 0x0100
00000291: EXP
00000292: DUP2
00000293: SLOAD
00000294: DUP2
00000295: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000002aa: MUL
000002ab: NOT
000002ac: AND
000002ad: SWAP1
000002ae: DUP4
000002af: MUL
000002b0: OR
exec
/bin/bash -lc 'BYTECODE=$(jq -r '"'.artifact.runtime_bytecode.full' BYTECODE_BUNDLE.json); cast disassemble \""'$BYTECODE" | sed -n '"'1,260p'" in /tmp/codex-elbdutre
succeeded in 0ms:
00000000: PUSH1 0x60
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x00
00000007: CALLDATALOAD
00000008: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00000026: SWAP1
00000027: DIV
00000028: DUP1
00000029: PUSH4 0x27e235e3
0000002e: EQ
0000002f: PUSH2 0x005a
00000032: JUMPI
00000033: DUP1
00000034: PUSH4 0x6a42b8f8
00000039: EQ
0000003a: PUSH2 0x0081
0000003d: JUMPI
0000003e: DUP1
0000003f: PUSH4 0x9e39db73
00000044: EQ
00000045: PUSH2 0x00a2
00000048: JUMPI
00000049: DUP1
0000004a: PUSH4 0xa9059cbb
0000004f: EQ
00000050: PUSH2 0x00b5
00000053: JUMPI
00000054: PUSH2 0x0058
00000057: JUMP
00000058: JUMPDEST
00000059: STOP
0000005a: JUMPDEST
0000005b: PUSH2 0x006b
0000005e: PUSH1 0x04
00000060: DUP1
00000061: CALLDATALOAD
00000062: SWAP1
00000063: PUSH1 0x20
00000065: ADD
00000066: POP
00000067: PUSH2 0x0101
0000006a: JUMP
0000006b: JUMPDEST
0000006c: PUSH1 0x40
0000006e: MLOAD
0000006f: DUP1
00000070: DUP3
00000071: DUP2
00000072: MSTORE
00000073: PUSH1 0x20
00000075: ADD
00000076: SWAP2
00000077: POP
00000078: POP
00000079: PUSH1 0x40
0000007b: MLOAD
0000007c: DUP1
0000007d: SWAP2
0000007e: SUB
0000007f: SWAP1
00000080: RETURN
00000081: JUMPDEST
00000082: PUSH2 0x008c
00000085: PUSH1 0x04
00000087: POP
00000088: PUSH2 0x00f8
0000008b: JUMP
0000008c: JUMPDEST
0000008d: PUSH1 0x40
0000008f: MLOAD
00000090: DUP1
00000091: DUP3
00000092: DUP2
00000093: MSTORE
00000094: PUSH1 0x20
00000096: ADD
00000097: SWAP2
00000098: POP
00000099: POP
0000009a: PUSH1 0x40
0000009c: MLOAD
0000009d: DUP1
0000009e: SWAP2
0000009f: SUB
000000a0: SWAP1
000000a1: RETURN
000000a2: JUMPDEST
000000a3: PUSH2 0x00b3
000000a6: PUSH1 0x04
000000a8: DUP1
000000a9: CALLDATALOAD
000000aa: SWAP1
000000ab: PUSH1 0x20
000000ad: ADD
000000ae: POP
000000af: PUSH2 0x011c
000000b2: JUMP
000000b3: JUMPDEST
000000b4: STOP
000000b5: JUMPDEST
000000b6: PUSH2 0x00cc
000000b9: PUSH1 0x04
000000bb: DUP1
000000bc: CALLDATALOAD
000000bd: SWAP1
000000be: PUSH1 0x20
000000c0: ADD
000000c1: DUP1
000000c2: CALLDATALOAD
000000c3: SWAP1
000000c4: PUSH1 0x20
000000c6: ADD
000000c7: POP
000000c8: PUSH2 0x015c
000000cb: JUMP
000000cc: JUMPDEST
000000cd: PUSH1 0x40
000000cf: MLOAD
000000d0: DUP1
000000d1: DUP3
000000d2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000000e7: AND
000000e8: DUP2
000000e9: MSTORE
000000ea: PUSH1 0x20
000000ec: ADD
000000ed: SWAP2
000000ee: POP
000000ef: POP
000000f0: PUSH1 0x40
000000f2: MLOAD
000000f3: DUP1
000000f4: SWAP2
000000f5: SUB
000000f6: SWAP1
000000f7: RETURN
000000f8: JUMPDEST
000000f9: PUSH1 0x00
000000fb: PUSH1 0x00
000000fd: POP
000000fe: SLOAD
000000ff: DUP2
00000100: JUMP
00000101: JUMPDEST
00000102: PUSH1 0x01
00000104: PUSH1 0x00
00000106: POP
00000107: PUSH1 0x20
00000109: MSTORE
0000010a: DUP1
0000010b: PUSH1 0x00
0000010d: MSTORE
0000010e: PUSH1 0x40
00000110: PUSH1 0x00
00000112: KECCAK256
00000113: PUSH1 0x00
00000115: SWAP2
00000116: POP
00000117: SWAP1
00000118: POP
00000119: SLOAD
0000011a: DUP2
0000011b: JUMP
0000011c: JUMPDEST
0000011d: CALLVALUE
0000011e: PUSH1 0x01
00000120: PUSH1 0x00
00000122: POP
00000123: PUSH1 0x00
00000125: DUP4
00000126: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000013b: AND
0000013c: DUP2
0000013d: MSTORE
0000013e: PUSH1 0x20
00000140: ADD
00000141: SWAP1
00000142: DUP2
00000143: MSTORE
00000144: PUSH1 0x20
00000146: ADD
00000147: PUSH1 0x00
00000149: KECCAK256
0000014a: PUSH1 0x00
0000014c: DUP3
0000014d: DUP3
0000014e: DUP3
0000014f: POP
00000150: SLOAD
00000151: ADD
00000152: SWAP3
00000153: POP
00000154: POP
00000155: DUP2
00000156: SWAP1
00000157: SSTORE
00000158: POP
00000159: JUMPDEST
0000015a: POP
0000015b: JUMP
0000015c: JUMPDEST
0000015d: PUSH1 0x00
0000015f: PUSH1 0x00
00000161: PUSH1 0x00
00000163: CALLER
00000164: SWAP2
00000165: POP
00000166: DUP4
00000167: PUSH1 0x01
00000169: PUSH1 0x00
0000016b: POP
0000016c: PUSH1 0x00
0000016e: DUP5
0000016f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000184: AND
00000185: DUP2
00000186: MSTORE
00000187: PUSH1 0x20
00000189: ADD
0000018a: SWAP1
0000018b: DUP2
0000018c: MSTORE
0000018d: PUSH1 0x20
0000018f: ADD
00000190: PUSH1 0x00
00000192: KECCAK256
00000193: PUSH1 0x00
00000195: POP
00000196: SLOAD
00000197: LT
00000198: ISZERO
00000199: PUSH2 0x01a5
0000019c: JUMPI
0000019d: PUSH1 0x00
0000019f: SWAP3
000001a0: POP
000001a1: PUSH2 0x0250
000001a4: JUMP
000001a5: JUMPDEST
000001a6: DUP2
000001a7: DUP6
000001a8: PUSH1 0x00
000001aa: PUSH1 0x00
000001ac: POP
000001ad: SLOAD
000001ae: TIMESTAMP
000001af: ADD
000001b0: PUSH1 0x40
000001b2: MLOAD
000001b3: PUSH2 0x0a44
000001b6: DUP1
000001b7: PUSH2 0x0259
000001ba: DUP4
000001bb: CODECOPY
000001bc: ADD
000001bd: DUP1
000001be: DUP5
000001bf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000001d4: AND
exec
/bin/bash -lc 'BYTECODE=$(jq -r '"'.artifact.runtime_bytecode.full' BYTECODE_BUNDLE.json); cast selectors \""'$BYTECODE"' in /tmp/codex-elbdutre
succeeded in 0ms:
0x27e235e3 uint256 payable
0x6a42b8f8 payable
0x9e39db73 address payable
0xa9059cbb address,uint256 payable
exec
/bin/bash -lc 'BYTECODE=$(jq -r '"'.artifact.runtime_bytecode.full' BYTECODE_BUNDLE.json); cast disassemble \""'$BYTECODE" | sed -n '"'260,420p'" in /tmp/codex-elbdutre
succeeded in 0ms:
000001d4: AND
000001d5: DUP2
000001d6: MSTORE
000001d7: PUSH1 0x20
000001d9: ADD
000001da: DUP4
000001db: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000001f0: AND
000001f1: DUP2
000001f2: MSTORE
000001f3: PUSH1 0x20
000001f5: ADD
000001f6: DUP3
000001f7: DUP2
000001f8: MSTORE
000001f9: PUSH1 0x20
000001fb: ADD
000001fc: SWAP4
000001fd: POP
000001fe: POP
000001ff: POP
00000200: POP
00000201: PUSH1 0x40
00000203: MLOAD
00000204: DUP1
00000205: SWAP2
00000206: SUB
00000207: SWAP1
00000208: PUSH1 0x00
0000020a: CREATE
0000020b: SWAP1
0000020c: POP
0000020d: DUP4
0000020e: PUSH1 0x01
00000210: PUSH1 0x00
00000212: POP
00000213: PUSH1 0x00
00000215: DUP5
00000216: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000022b: AND
0000022c: DUP2
0000022d: MSTORE
0000022e: PUSH1 0x20
00000230: ADD
00000231: SWAP1
00000232: DUP2
00000233: MSTORE
00000234: PUSH1 0x20
00000236: ADD
00000237: PUSH1 0x00
00000239: KECCAK256
0000023a: PUSH1 0x00
0000023c: DUP3
0000023d: DUP3
0000023e: DUP3
0000023f: POP
00000240: SLOAD
00000241: SUB
00000242: SWAP3
00000243: POP
00000244: POP
00000245: DUP2
00000246: SWAP1
00000247: SSTORE
00000248: POP
00000249: DUP1
0000024a: SWAP3
0000024b: POP
0000024c: PUSH2 0x0250
0000024f: JUMP
00000250: JUMPDEST
00000251: POP
00000252: POP
00000253: SWAP3
00000254: SWAP2
00000255: POP
00000256: POP
00000257: JUMP
00000258: STOP
00000259: PUSH1 0x60
0000025b: PUSH1 0x40
0000025d: MSTORE
0000025e: PUSH1 0x40
00000260: MLOAD
00000261: PUSH1 0x60
00000263: DUP1
00000264: PUSH2 0x0a44
00000267: DUP4
00000268: CODECOPY
00000269: ADD
0000026a: PUSH1 0x40
0000026c: MSTORE
0000026d: PUSH1 0x60
0000026f: DUP1
00000270: MLOAD
00000271: SWAP1
00000272: PUSH1 0x20
00000274: ADD
00000275: DUP1
00000276: MLOAD
00000277: SWAP1
00000278: PUSH1 0x20
0000027a: ADD
0000027b: DUP1
0000027c: MLOAD
0000027d: SWAP1
0000027e: PUSH1 0x20
00000280: ADD
00000281: POP
00000282: JUMPDEST
00000283: DUP3
00000284: PUSH1 0x00
00000286: PUSH1 0x00
00000288: PUSH2 0x0100
0000028b: EXP
0000028c: DUP2
0000028d: SLOAD
0000028e: DUP2
0000028f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000002a4: MUL
000002a5: NOT
000002a6: AND
000002a7: SWAP1
000002a8: DUP4
000002a9: MUL
000002aa: OR
000002ab: SWAP1
000002ac: SSTORE
000002ad: POP
000002ae: DUP2
000002af: PUSH1 0x01
000002b1: PUSH1 0x00
000002b3: PUSH2 0x0100
000002b6: EXP
000002b7: DUP2
000002b8: SLOAD
000002b9: DUP2
000002ba: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000002cf: MUL
000002d0: NOT
000002d1: AND
000002d2: SWAP1
000002d3: DUP4
000002d4: MUL
000002d5: OR
000002d6: SWAP1
000002d7: SSTORE
000002d8: POP
000002d9: DUP1
000002da: PUSH1 0x02
000002dc: PUSH1 0x00
000002de: POP
000002df: DUP2
000002e0: SWAP1
000002e1: SSTORE
000002e2: POP
000002e3: JUMPDEST
000002e4: POP
000002e5: POP
000002e6: POP
000002e7: PUSH2 0x09a8
exec
/bin/bash -lc 'BYTECODE=$(jq -r '"'.artifact.runtime_bytecode.full' BYTECODE_BUNDLE.json); cast disassemble \""'$BYTECODE" | sed -n '"'420,520p'" in /tmp/codex-elbdutre
succeeded in 0ms:
000002e7: PUSH2 0x09a8
000002ea: DUP1
000002eb: PUSH2 0x009c
000002ee: PUSH1 0x00
000002f0: CODECOPY
000002f1: PUSH1 0x00
000002f3: RETURN
000002f4: STOP
000002f5: PUSH1 0x60
000002f7: PUSH1 0x40
000002f9: MSTORE
000002fa: CALLDATASIZE
000002fb: ISZERO
000002fc: PUSH2 0x0074
000002ff: JUMPI
00000300: PUSH1 0x00
00000302: CALLDATALOAD
00000303: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00000321: SWAP1
00000322: DIV
00000323: DUP1
00000324: PUSH4 0x0fe65b36
00000329: EQ
0000032a: PUSH2 0x0076
0000032d: JUMPI
0000032e: DUP1
0000032f: PUSH4 0x66d003ac
00000334: EQ
00000335: PUSH2 0x00b3
00000338: JUMPI
00000339: DUP1
0000033a: PUSH4 0x86d1a69f
0000033f: EQ
00000340: PUSH2 0x00ea
00000343: JUMPI
00000344: DUP1
00000345: PUSH4 0x8da5cb5b
0000034a: EQ
0000034b: PUSH2 0x00f7
0000034e: JUMPI
0000034f: DUP1
00000350: PUSH4 0xb91d4001
00000355: EQ
00000356: PUSH2 0x012e
00000359: JUMPI
0000035a: DUP1
0000035b: PUSH4 0xea8a1af0
00000360: EQ
00000361: PUSH2 0x014f
00000364: JUMPI
00000365: PUSH2 0x0074
00000368: JUMP
00000369: JUMPDEST
0000036a: STOP
0000036b: JUMPDEST
0000036c: PUSH2 0x0087
0000036f: PUSH1 0x04
00000371: DUP1
00000372: CALLDATALOAD
00000373: SWAP1
00000374: PUSH1 0x20
00000376: ADD
00000377: POP
00000378: PUSH2 0x0291
0000037b: JUMP
0000037c: JUMPDEST
0000037d: PUSH1 0x40
0000037f: MLOAD
00000380: DUP1
00000381: DUP3
00000382: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000397: AND
00000398: DUP2
00000399: MSTORE
0000039a: PUSH1 0x20
0000039c: ADD
0000039d: SWAP2
0000039e: POP
0000039f: POP
000003a0: PUSH1 0x40
000003a2: MLOAD
000003a3: DUP1
000003a4: SWAP2
000003a5: SUB
000003a6: SWAP1
000003a7: RETURN
000003a8: JUMPDEST
000003a9: PUSH2 0x00be
000003ac: PUSH1 0x04
000003ae: POP
000003af: PUSH2 0x0182
000003b2: JUMP
000003b3: JUMPDEST
000003b4: PUSH1 0x40
000003b6: MLOAD
000003b7: DUP1
000003b8: DUP3
000003b9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003ce: AND
000003cf: DUP2
000003d0: MSTORE
exec
/bin/bash -lc 'BYTECODE=$(jq -r '"'.artifact.runtime_bytecode.full' BYTECODE_BUNDLE.json); cast disassemble \""'$BYTECODE" | sed -n '"'520,700p'" in /tmp/codex-elbdutre
succeeded in 0ms:
000003d0: MSTORE
000003d1: PUSH1 0x20
000003d3: ADD
000003d4: SWAP2
000003d5: POP
000003d6: POP
000003d7: PUSH1 0x40
000003d9: MLOAD
000003da: DUP1
000003db: SWAP2
000003dc: SUB
000003dd: SWAP1
000003de: RETURN
000003df: JUMPDEST
000003e0: PUSH2 0x00f5
000003e3: PUSH1 0x04
000003e5: POP
000003e6: PUSH2 0x01b1
000003e9: JUMP
000003ea: JUMPDEST
000003eb: STOP
000003ec: JUMPDEST
000003ed: PUSH2 0x0102
000003f0: PUSH1 0x04
000003f2: POP
000003f3: PUSH2 0x015c
000003f6: JUMP
000003f7: JUMPDEST
000003f8: PUSH1 0x40
000003fa: MLOAD
000003fb: DUP1
000003fc: DUP3
000003fd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000412: AND
00000413: DUP2
00000414: MSTORE
00000415: PUSH1 0x20
00000417: ADD
00000418: SWAP2
00000419: POP
0000041a: POP
0000041b: PUSH1 0x40
0000041d: MLOAD
0000041e: DUP1
0000041f: SWAP2
00000420: SUB
00000421: SWAP1
00000422: RETURN
00000423: JUMPDEST
00000424: PUSH2 0x0139
00000427: PUSH1 0x04
00000429: POP
0000042a: PUSH2 0x01a8
0000042d: JUMP
0000042e: JUMPDEST
0000042f: PUSH1 0x40
00000431: MLOAD
00000432: DUP1
00000433: DUP3
00000434: DUP2
00000435: MSTORE
00000436: PUSH1 0x20
00000438: ADD
00000439: SWAP2
0000043a: POP
0000043b: POP
0000043c: PUSH1 0x40
0000043e: MLOAD
0000043f: DUP1
00000440: SWAP2
00000441: SUB
00000442: SWAP1
00000443: RETURN
00000444: JUMPDEST
00000445: PUSH2 0x015a
00000448: PUSH1 0x04
0000044a: POP
0000044b: PUSH2 0x01fd
0000044e: JUMP
0000044f: JUMPDEST
00000450: STOP
00000451: JUMPDEST
00000452: PUSH1 0x00
00000454: PUSH1 0x00
00000456: SWAP1
00000457: SLOAD
00000458: SWAP1
00000459: PUSH2 0x0100
0000045c: EXP
0000045d: SWAP1
0000045e: DIV
0000045f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000474: AND
00000475: DUP2
00000476: JUMP
00000477: JUMPDEST
00000478: PUSH1 0x01
0000047a: PUSH1 0x00
0000047c: SWAP1
0000047d: SLOAD
0000047e: SWAP1
0000047f: PUSH2 0x0100
00000482: EXP
00000483: SWAP1
00000484: DIV
00000485: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000049a: AND
0000049b: DUP2
0000049c: JUMP
0000049d: JUMPDEST
0000049e: PUSH1 0x02
000004a0: PUSH1 0x00
000004a2: POP
000004a3: SLOAD
000004a4: DUP2
000004a5: JUMP
000004a6: JUMPDEST
000004a7: PUSH1 0x02
000004a9: PUSH1 0x00
000004ab: POP
000004ac: SLOAD
000004ad: TIMESTAMP
000004ae: LT
000004af: ISZERO
000004b0: ISZERO
000004b1: PUSH2 0x01fa
000004b4: JUMPI
000004b5: PUSH1 0x01
000004b7: PUSH1 0x00
000004b9: SWAP1
000004ba: SLOAD
000004bb: SWAP1
000004bc: PUSH2 0x0100
000004bf: EXP
000004c0: SWAP1
000004c1: DIV
000004c2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000004d7: AND
000004d8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000004ed: AND
000004ee: SELFDESTRUCT
000004ef: JUMPDEST
000004f0: JUMPDEST
000004f1: JUMP
000004f2: JUMPDEST
000004f3: PUSH1 0x00
000004f5: PUSH1 0x00
000004f7: SWAP1
000004f8: SLOAD
000004f9: SWAP1
000004fa: PUSH2 0x0100
000004fd: EXP
000004fe: SWAP1
000004ff: DIV
00000500: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000515: AND
00000516: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000052b: AND
0000052c: CALLER
0000052d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000542: AND
00000543: EQ
00000544: ISZERO
00000545: PUSH2 0x028e
00000548: JUMPI
00000549: PUSH1 0x00
0000054b: PUSH1 0x00
0000054d: SWAP1
0000054e: SLOAD
0000054f: SWAP1
00000550: PUSH2 0x0100
00000553: EXP
00000554: SWAP1
00000555: DIV
00000556: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000056b: AND
0000056c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000581: AND
00000582: SELFDESTRUCT
00000583: JUMPDEST
00000584: JUMPDEST
exec
/bin/bash -lc 'BYTECODE=$(jq -r '"'.artifact.runtime_bytecode.full' BYTECODE_BUNDLE.json); cast disassemble \""'$BYTECODE" | sed -n '"'700,920p'" in /tmp/codex-elbdutre
succeeded in 0ms:
00000584: JUMPDEST
00000585: JUMP
00000586: JUMPDEST
00000587: PUSH1 0x00
00000589: PUSH1 0x00
0000058b: PUSH1 0x00
0000058d: PUSH1 0x00
0000058f: PUSH1 0x00
00000591: SWAP1
00000592: SLOAD
00000593: SWAP1
00000594: PUSH2 0x0100
00000597: EXP
00000598: SWAP1
00000599: DIV
0000059a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000005af: AND
000005b0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000005c5: AND
000005c6: CALLER
000005c7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000005dc: AND
000005dd: EQ
000005de: ISZERO
000005df: PUSH2 0x03b2
000005e2: JUMPI
000005e3: PUSH1 0x00
000005e5: SWAP2
000005e6: POP
000005e7: PUSH1 0x00
000005e9: PUSH1 0x00
000005eb: SWAP1
000005ec: SLOAD
000005ed: SWAP1
000005ee: PUSH2 0x0100
000005f1: EXP
000005f2: SWAP1
000005f3: DIV
000005f4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000609: AND
0000060a: DUP3
0000060b: ADDRESS
0000060c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000621: AND
00000622: BALANCE
00000623: DUP7
00000624: PUSH1 0x40
00000626: MLOAD
00000627: PUSH2 0x05ed
0000062a: DUP1
0000062b: PUSH2 0x03bb
0000062e: DUP4
0000062f: CODECOPY
00000630: ADD
00000631: DUP1
00000632: DUP6
00000633: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000648: AND
00000649: DUP2
0000064a: MSTORE
0000064b: PUSH1 0x20
0000064d: ADD
0000064e: DUP5
0000064f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000664: AND
00000665: DUP2
00000666: MSTORE
00000667: PUSH1 0x20
00000669: ADD
0000066a: DUP4
0000066b: DUP2
0000066c: MSTORE
0000066d: PUSH1 0x20
0000066f: ADD
00000670: DUP3
00000671: DUP2
00000672: MSTORE
00000673: PUSH1 0x20
00000675: ADD
00000676: SWAP5
00000677: POP
00000678: POP
00000679: POP
0000067a: POP
0000067b: POP
0000067c: PUSH1 0x40
0000067e: MLOAD
0000067f: DUP1
00000680: SWAP2
00000681: SUB
00000682: SWAP1
00000683: PUSH1 0x00
00000685: CREATE
00000686: SWAP1
00000687: POP
00000688: DUP1
00000689: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000069e: AND
0000069f: SELFDESTRUCT
000006a0: DUP1
000006a1: SWAP3
000006a2: POP
000006a3: PUSH2 0x03b3
000006a6: JUMP
000006a7: JUMPDEST
000006a8: JUMPDEST
000006a9: POP
000006aa: POP
000006ab: SWAP2
000006ac: SWAP1
000006ad: POP
000006ae: JUMP
000006af: STOP
000006b0: PUSH1 0x60
000006b2: PUSH1 0x40
000006b4: MSTORE
000006b5: PUSH1 0x40
000006b7: MLOAD
000006b8: PUSH1 0x80
000006ba: DUP1
000006bb: PUSH2 0x05ed
000006be: DUP4
000006bf: CODECOPY
000006c0: ADD
000006c1: PUSH1 0x40
000006c3: MSTORE
000006c4: PUSH1 0x60
000006c6: DUP1
000006c7: MLOAD
000006c8: SWAP1
000006c9: PUSH1 0x20
000006cb: ADD
000006cc: DUP1
000006cd: MLOAD
000006ce: SWAP1
000006cf: PUSH1 0x20
000006d1: ADD
000006d2: DUP1
000006d3: MLOAD
000006d4: SWAP1
000006d5: PUSH1 0x20
000006d7: ADD
000006d8: DUP1
000006d9: MLOAD
000006da: SWAP1
000006db: PUSH1 0x20
000006dd: ADD
000006de: POP
000006df: JUMPDEST
000006e0: DUP4
000006e1: PUSH1 0x00
000006e3: PUSH1 0x00
000006e5: PUSH2 0x0100
000006e8: EXP
000006e9: DUP2
000006ea: SLOAD
000006eb: DUP2
000006ec: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000701: MUL
00000702: NOT
00000703: AND
00000704: SWAP1
00000705: DUP4
00000706: MUL
00000707: OR
00000708: SWAP1
00000709: SSTORE
0000070a: POP
0000070b: DUP3
0000070c: PUSH1 0x01
0000070e: PUSH1 0x00
00000710: PUSH2 0x0100
00000713: EXP
00000714: DUP2
00000715: SLOAD
00000716: DUP2
00000717: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000072c: MUL
0000072d: NOT
0000072e: AND
0000072f: SWAP1
00000730: DUP4
00000731: MUL
00000732: OR
00000733: SWAP1
00000734: SSTORE
00000735: POP
00000736: DUP2
00000737: PUSH1 0x02
00000739: PUSH1 0x00
0000073b: POP
0000073c: DUP2
0000073d: SWAP1
0000073e: SSTORE
0000073f: POP
00000740: DUP1
00000741: PUSH1 0x03
00000743: PUSH1 0x00
00000745: POP
00000746: DUP2
00000747: SWAP1
00000748: SSTORE
00000749: POP
0000074a: JUMPDEST
0000074b: POP
0000074c: POP
0000074d: POP
0000074e: POP
0000074f: PUSH2 0x0540
00000752: DUP1
00000753: PUSH2 0x00ad
00000756: PUSH1 0x00
00000758: CODECOPY
00000759: PUSH1 0x00
0000075b: RETURN
0000075c: STOP
0000075d: PUSH1 0x60
0000075f: PUSH1 0x40
00000761: MSTORE
00000762: CALLDATASIZE
00000763: ISZERO
exec
/bin/bash -lc 'BYTECODE=$(jq -r '"'.artifact.runtime_bytecode.full' BYTECODE_BUNDLE.json); cast disassemble \""'$BYTECODE" | sed -n '"'920,1220p'" in /tmp/codex-elbdutre
succeeded in 0ms:
00000763: ISZERO
00000764: PUSH2 0x008a
00000767: JUMPI
00000768: PUSH1 0x00
0000076a: CALLDATALOAD
0000076b: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00000789: SWAP1
0000078a: DIV
0000078b: DUP1
0000078c: PUSH4 0x119f8747
00000791: EQ
00000792: PUSH2 0x008c
00000795: JUMPI
00000796: DUP1
00000797: PUSH4 0x29dcb0cf
0000079c: EQ
0000079d: PUSH2 0x0099
000007a0: JUMPI
000007a1: DUP1
000007a2: PUSH4 0x3c24b7d7
000007a7: EQ
000007a8: PUSH2 0x00ba
000007ab: JUMPI
000007ac: DUP1
000007ad: PUSH4 0x552079dc
000007b2: EQ
000007b3: PUSH2 0x00fe
000007b6: JUMPI
000007b7: DUP1
000007b8: PUSH4 0x66d003ac
000007bd: EQ
000007be: PUSH2 0x0135
000007c1: JUMPI
000007c2: DUP1
000007c3: PUSH4 0x702c35fb
000007c8: EQ
000007c9: PUSH2 0x016c
000007cc: JUMPI
000007cd: DUP1
000007ce: PUSH4 0x86d1a69f
000007d3: EQ
000007d4: PUSH2 0x018d
000007d7: JUMPI
000007d8: DUP1
000007d9: PUSH4 0xc9e7e29b
000007de: EQ
000007df: PUSH2 0x019a
000007e2: JUMPI
000007e3: PUSH2 0x008a
000007e6: JUMP
000007e7: JUMPDEST
000007e8: STOP
000007e9: JUMPDEST
000007ea: PUSH2 0x0097
000007ed: PUSH1 0x04
000007ef: POP
000007f0: PUSH2 0x02cc
000007f3: JUMP
000007f4: JUMPDEST
000007f5: STOP
000007f6: JUMPDEST
000007f7: PUSH2 0x00a4
000007fa: PUSH1 0x04
000007fc: POP
000007fd: PUSH2 0x0210
00000800: JUMP
00000801: JUMPDEST
00000802: PUSH1 0x40
00000804: MLOAD
00000805: DUP1
00000806: DUP3
00000807: DUP2
00000808: MSTORE
00000809: PUSH1 0x20
0000080b: ADD
0000080c: SWAP2
0000080d: POP
0000080e: POP
0000080f: PUSH1 0x40
00000811: MLOAD
00000812: DUP1
00000813: SWAP2
00000814: SUB
00000815: SWAP1
00000816: RETURN
00000817: JUMPDEST
00000818: PUSH2 0x00cb
0000081b: PUSH1 0x04
0000081d: DUP1
0000081e: CALLDATALOAD
0000081f: SWAP1
00000820: PUSH1 0x20
00000822: ADD
00000823: POP
00000824: PUSH2 0x0219
00000827: JUMP
00000828: JUMPDEST
00000829: PUSH1 0x40
0000082b: MLOAD
0000082c: DUP1
0000082d: DUP4
0000082e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000843: AND
00000844: DUP2
00000845: MSTORE
00000846: PUSH1 0x20
00000848: ADD
00000849: DUP3
0000084a: DUP2
0000084b: MSTORE
0000084c: PUSH1 0x20
0000084e: ADD
0000084f: SWAP3
00000850: POP
00000851: POP
00000852: POP
00000853: PUSH1 0x40
00000855: MLOAD
00000856: DUP1
00000857: SWAP2
00000858: SUB
00000859: SWAP1
0000085a: RETURN
0000085b: JUMPDEST
0000085c: PUSH2 0x0109
0000085f: PUSH1 0x04
00000861: POP
00000862: PUSH2 0x01bb
00000865: JUMP
00000866: JUMPDEST
00000867: PUSH1 0x40
00000869: MLOAD
0000086a: DUP1
0000086b: DUP3
0000086c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000881: AND
00000882: DUP2
00000883: MSTORE
00000884: PUSH1 0x20
00000886: ADD
00000887: SWAP2
00000888: POP
00000889: POP
0000088a: PUSH1 0x40
0000088c: MLOAD
0000088d: DUP1
0000088e: SWAP2
0000088f: SUB
00000890: SWAP1
00000891: RETURN
00000892: JUMPDEST
00000893: PUSH2 0x0140
00000896: PUSH1 0x04
00000898: POP
00000899: PUSH2 0x01e1
0000089c: JUMP
0000089d: JUMPDEST
0000089e: PUSH1 0x40
000008a0: MLOAD
000008a1: DUP1
000008a2: DUP3
000008a3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008b8: AND
000008b9: DUP2
000008ba: MSTORE
000008bb: PUSH1 0x20
000008bd: ADD
000008be: SWAP2
000008bf: POP
000008c0: POP
000008c1: PUSH1 0x40
000008c3: MLOAD
000008c4: DUP1
000008c5: SWAP2
000008c6: SUB
000008c7: SWAP1
000008c8: RETURN
000008c9: JUMPDEST
000008ca: PUSH2 0x0177
000008cd: PUSH1 0x04
000008cf: POP
000008d0: PUSH2 0x026f
000008d3: JUMP
000008d4: JUMPDEST
000008d5: PUSH1 0x40
000008d7: MLOAD
000008d8: DUP1
000008d9: DUP3
000008da: DUP2
000008db: MSTORE
000008dc: PUSH1 0x20
000008de: ADD
000008df: SWAP2
000008e0: POP
000008e1: POP
000008e2: PUSH1 0x40
000008e4: MLOAD
000008e5: DUP1
000008e6: SWAP2
000008e7: SUB
000008e8: SWAP1
000008e9: RETURN
000008ea: JUMPDEST
000008eb: PUSH2 0x0198
000008ee: PUSH1 0x04
000008f0: POP
000008f1: PUSH2 0x0278
000008f4: JUMP
000008f5: JUMPDEST
000008f6: STOP
000008f7: JUMPDEST
000008f8: PUSH2 0x01a5
000008fb: PUSH1 0x04
000008fd: POP
000008fe: PUSH2 0x0207
00000901: JUMP
00000902: JUMPDEST
00000903: PUSH1 0x40
00000905: MLOAD
00000906: DUP1
00000907: DUP3
00000908: DUP2
00000909: MSTORE
0000090a: PUSH1 0x20
0000090c: ADD
0000090d: SWAP2
0000090e: POP
0000090f: POP
00000910: PUSH1 0x40
00000912: MLOAD
00000913: DUP1
00000914: SWAP2
00000915: SUB
00000916: SWAP1
00000917: RETURN
00000918: JUMPDEST
00000919: PUSH1 0x00
0000091b: PUSH1 0x00
0000091d: SWAP1
0000091e: SLOAD
0000091f: SWAP1
00000920: PUSH2 0x0100
00000923: EXP
00000924: SWAP1
00000925: DIV
00000926: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000093b: AND
0000093c: DUP2
0000093d: JUMP
0000093e: JUMPDEST
0000093f: PUSH1 0x01
00000941: PUSH1 0x00
00000943: SWAP1
00000944: SLOAD
00000945: SWAP1
00000946: PUSH2 0x0100
00000949: EXP
0000094a: SWAP1
0000094b: DIV
0000094c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000961: AND
00000962: DUP2
00000963: JUMP
00000964: JUMPDEST
00000965: PUSH1 0x02
00000967: PUSH1 0x00
00000969: POP
0000096a: SLOAD
0000096b: DUP2
0000096c: JUMP
0000096d: JUMPDEST
0000096e: PUSH1 0x03
00000970: PUSH1 0x00
00000972: POP
00000973: SLOAD
00000974: DUP2
00000975: JUMP
00000976: JUMPDEST
00000977: PUSH1 0x04
00000979: PUSH1 0x00
0000097b: POP
0000097c: DUP2
0000097d: DUP2
0000097e: SLOAD
0000097f: DUP2
00000980: LT
00000981: ISZERO
00000982: PUSH2 0x0002
00000985: JUMPI
00000986: SWAP1
00000987: PUSH1 0x00
00000989: MSTORE
0000098a: PUSH1 0x20
0000098c: PUSH1 0x00
0000098e: KECCAK256
0000098f: SWAP1
00000990: PUSH1 0x02
00000992: MUL
00000993: ADD
00000994: PUSH1 0x00
00000996: SWAP2
exec
/bin/bash -lc 'BYTECODE=$(jq -r '"'.artifact.runtime_bytecode.full' BYTECODE_BUNDLE.json); cast disassemble \""'$BYTECODE" | sed -n '"'1220,1460p'" in /tmp/codex-elbdutre
succeeded in 0ms:
00000996: SWAP2
00000997: POP
00000998: SWAP1
00000999: POP
0000099a: DUP1
0000099b: PUSH1 0x00
0000099d: ADD
0000099e: PUSH1 0x00
000009a0: SWAP1
000009a1: SLOAD
000009a2: SWAP1
000009a3: PUSH2 0x0100
000009a6: EXP
000009a7: SWAP1
000009a8: DIV
000009a9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000009be: AND
000009bf: SWAP1
000009c0: DUP1
000009c1: PUSH1 0x01
000009c3: ADD
000009c4: PUSH1 0x00
000009c6: POP
000009c7: SLOAD
000009c8: SWAP1
000009c9: POP
000009ca: DUP3
000009cb: JUMP
000009cc: JUMPDEST
000009cd: PUSH1 0x05
000009cf: PUSH1 0x00
000009d1: POP
000009d2: SLOAD
000009d3: DUP2
000009d4: JUMP
000009d5: JUMPDEST
000009d6: PUSH1 0x03
000009d8: PUSH1 0x00
000009da: POP
000009db: SLOAD
000009dc: TIMESTAMP
000009dd: LT
000009de: ISZERO
000009df: ISZERO
000009e0: PUSH2 0x02c9
000009e3: JUMPI
000009e4: PUSH2 0x028e
000009e7: PUSH2 0x0497
000009ea: JUMP
000009eb: JUMPDEST
000009ec: PUSH1 0x00
000009ee: PUSH1 0x00
000009f0: SWAP1
000009f1: SLOAD
000009f2: SWAP1
000009f3: PUSH2 0x0100
000009f6: EXP
000009f7: SWAP1
000009f8: DIV
000009f9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a0e: AND
00000a0f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a24: AND
00000a25: SELFDESTRUCT
00000a26: JUMPDEST
00000a27: JUMPDEST
00000a28: JUMP
00000a29: JUMPDEST
00000a2a: PUSH1 0x00
00000a2c: CALLVALUE
00000a2d: GT
00000a2e: ISZERO
00000a2f: PUSH2 0x0494
00000a32: JUMPI
00000a33: PUSH1 0x40
00000a35: PUSH1 0x40
00000a37: MLOAD
00000a38: SWAP1
00000a39: DUP2
00000a3a: ADD
00000a3b: PUSH1 0x40
00000a3d: MSTORE
00000a3e: DUP1
00000a3f: CALLER
00000a40: DUP2
00000a41: MSTORE
00000a42: PUSH1 0x20
00000a44: ADD
00000a45: CALLVALUE
00000a46: DUP2
00000a47: MSTORE
00000a48: PUSH1 0x20
00000a4a: ADD
00000a4b: POP
00000a4c: PUSH1 0x04
00000a4e: PUSH1 0x00
00000a50: POP
00000a51: PUSH1 0x04
00000a53: PUSH1 0x00
00000a55: POP
00000a56: DUP1
00000a57: SLOAD
00000a58: DUP1
00000a59: SWAP2
00000a5a: SWAP1
00000a5b: PUSH1 0x01
00000a5d: ADD
00000a5e: SWAP1
00000a5f: SWAP1
00000a60: DUP2
00000a61: SLOAD
00000a62: DUP2
00000a63: DUP4
00000a64: SSTORE
00000a65: DUP2
00000a66: DUP2
00000a67: ISZERO
00000a68: GT
00000a69: PUSH2 0x0378
00000a6c: JUMPI
00000a6d: PUSH1 0x02
00000a6f: MUL
00000a70: DUP2
00000a71: PUSH1 0x02
00000a73: MUL
00000a74: DUP4
00000a75: PUSH1 0x00
00000a77: MSTORE
00000a78: PUSH1 0x20
00000a7a: PUSH1 0x00
00000a7c: KECCAK256
00000a7d: SWAP2
00000a7e: DUP3
00000a7f: ADD
00000a80: SWAP2
00000a81: ADD
00000a82: PUSH2 0x0377
00000a85: SWAP2
00000a86: SWAP1
00000a87: PUSH2 0x032e
00000a8a: JUMP
00000a8b: JUMPDEST
00000a8c: DUP1
00000a8d: DUP3
00000a8e: GT
00000a8f: ISZERO
00000a90: PUSH2 0x0373
00000a93: JUMPI
00000a94: PUSH1 0x00
00000a96: PUSH1 0x00
00000a98: DUP3
00000a99: ADD
00000a9a: PUSH1 0x00
00000a9c: PUSH2 0x0100
00000a9f: EXP
00000aa0: DUP2
00000aa1: SLOAD
00000aa2: SWAP1
00000aa3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ab8: MUL
00000ab9: NOT
00000aba: AND
00000abb: SWAP1
00000abc: SSTORE
00000abd: PUSH1 0x01
00000abf: DUP3
00000ac0: ADD
00000ac1: PUSH1 0x00
00000ac3: POP
00000ac4: PUSH1 0x00
00000ac6: SWAP1
00000ac7: SSTORE
00000ac8: POP
00000ac9: PUSH1 0x01
00000acb: ADD
00000acc: PUSH2 0x032e
00000acf: JUMP
00000ad0: JUMPDEST
00000ad1: POP
00000ad2: SWAP1
00000ad3: JUMP
00000ad4: JUMPDEST
00000ad5: JUMPDEST
00000ad6: POP
00000ad7: POP
00000ad8: POP
00000ad9: DUP2
00000ada: SLOAD
00000adb: DUP2
00000adc: LT
00000add: ISZERO
00000ade: PUSH2 0x0002
00000ae1: JUMPI
00000ae2: SWAP1
00000ae3: PUSH1 0x00
00000ae5: MSTORE
00000ae6: PUSH1 0x20
00000ae8: PUSH1 0x00
00000aea: KECCAK256
00000aeb: SWAP1
00000aec: PUSH1 0x02
00000aee: MUL
00000aef: ADD
00000af0: PUSH1 0x00
00000af2: POP
00000af3: PUSH1 0x00
00000af5: DUP3
00000af6: ADD
00000af7: MLOAD
00000af8: DUP2
00000af9: PUSH1 0x00
00000afb: ADD
00000afc: PUSH1 0x00
00000afe: PUSH2 0x0100
00000b01: EXP
00000b02: DUP2
00000b03: SLOAD
00000b04: DUP2
00000b05: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b1a: MUL
00000b1b: NOT
00000b1c: AND
00000b1d: SWAP1
00000b1e: DUP4
00000b1f: MUL
00000b20: OR
00000b21: SWAP1
00000b22: SSTORE
00000b23: POP
00000b24: PUSH1 0x20
00000b26: DUP3
00000b27: ADD
00000b28: MLOAD
00000b29: DUP2
00000b2a: PUSH1 0x01
00000b2c: ADD
00000b2d: PUSH1 0x00
00000b2f: POP
00000b30: SSTORE
00000b31: SWAP1
00000b32: POP
exec
/bin/bash -lc 'BYTECODE=$(jq -r '"'.artifact.runtime_bytecode.full' BYTECODE_BUNDLE.json); cast disassemble \""'$BYTECODE" | sed -n '"'1460,1640p'" in /tmp/codex-elbdutre
succeeded in 0ms:
00000b32: POP
00000b33: POP
00000b34: CALLVALUE
00000b35: PUSH1 0x05
00000b37: PUSH1 0x00
00000b39: DUP3
00000b3a: DUP3
00000b3b: DUP3
00000b3c: POP
00000b3d: SLOAD
00000b3e: ADD
00000b3f: SWAP3
00000b40: POP
00000b41: POP
00000b42: DUP2
00000b43: SWAP1
00000b44: SSTORE
00000b45: POP
00000b46: PUSH32 0x8fc4de83eddb2e6be67e269b8bfdc735778c7339168d5f734290f474f5647e14
00000b67: CALLER
00000b68: CALLVALUE
00000b69: PUSH1 0x40
00000b6b: MLOAD
00000b6c: DUP1
00000b6d: DUP4
00000b6e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b83: AND
00000b84: DUP2
00000b85: MSTORE
00000b86: PUSH1 0x20
00000b88: ADD
00000b89: DUP3
00000b8a: DUP2
00000b8b: MSTORE
00000b8c: PUSH1 0x20
00000b8e: ADD
00000b8f: SWAP3
00000b90: POP
00000b91: POP
00000b92: POP
00000b93: PUSH1 0x40
00000b95: MLOAD
00000b96: DUP1
00000b97: SWAP2
00000b98: SUB
00000b99: SWAP1
00000b9a: LOG1
00000b9b: PUSH1 0x02
00000b9d: PUSH1 0x00
00000b9f: POP
00000ba0: SLOAD
00000ba1: PUSH1 0x05
00000ba3: PUSH1 0x00
00000ba5: POP
00000ba6: SLOAD
00000ba7: LT
00000ba8: ISZERO
00000ba9: ISZERO
00000baa: PUSH2 0x0493
00000bad: JUMPI
00000bae: PUSH2 0x0458
00000bb1: PUSH2 0x0497
00000bb4: JUMP
00000bb5: JUMPDEST
00000bb6: PUSH1 0x01
00000bb8: PUSH1 0x00
00000bba: SWAP1
00000bbb: SLOAD
00000bbc: SWAP1
00000bbd: PUSH2 0x0100
00000bc0: EXP
00000bc1: SWAP1
00000bc2: DIV
00000bc3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000bd8: AND
00000bd9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000bee: AND
00000bef: SELFDESTRUCT
00000bf0: JUMPDEST
00000bf1: JUMPDEST
00000bf2: JUMPDEST
00000bf3: JUMP
00000bf4: JUMPDEST
00000bf5: PUSH1 0x00
00000bf7: PUSH1 0x00
00000bf9: PUSH1 0x00
00000bfb: SWAP2
00000bfc: POP
00000bfd: JUMPDEST
00000bfe: PUSH1 0x04
00000c00: PUSH1 0x00
00000c02: POP
00000c03: SLOAD
00000c04: DUP3
00000c05: LT
00000c06: ISZERO
00000c07: PUSH2 0x053b
00000c0a: JUMPI
00000c0b: PUSH1 0x04
00000c0d: PUSH1 0x00
00000c0f: POP
00000c10: DUP3
00000c11: DUP2
00000c12: SLOAD
00000c13: DUP2
00000c14: LT
00000c15: ISZERO
00000c16: PUSH2 0x0002
00000c19: JUMPI
00000c1a: SWAP1
00000c1b: PUSH1 0x00
00000c1d: MSTORE
00000c1e: PUSH1 0x20
00000c20: PUSH1 0x00
00000c22: KECCAK256
00000c23: SWAP1
00000c24: PUSH1 0x02
00000c26: MUL
00000c27: ADD
00000c28: PUSH1 0x00
00000c2a: POP
00000c2b: SWAP1
00000c2c: POP
00000c2d: DUP1
00000c2e: PUSH1 0x00
00000c30: ADD
00000c31: PUSH1 0x00
00000c33: SWAP1
00000c34: SLOAD
00000c35: SWAP1
00000c36: PUSH2 0x0100
00000c39: EXP
00000c3a: SWAP1
00000c3b: DIV
00000c3c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c51: AND
00000c52: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c67: AND
00000c68: PUSH1 0x00
00000c6a: DUP3
00000c6b: PUSH1 0x01
00000c6d: ADD
00000c6e: PUSH1 0x00
00000c70: POP
00000c71: SLOAD
00000c72: PUSH1 0x40
00000c74: MLOAD
00000c75: DUP1
00000c76: SWAP1
00000c77: POP
00000c78: PUSH1 0x00
00000c7a: PUSH1 0x40
00000c7c: MLOAD
00000c7d: DUP1
00000c7e: DUP4
00000c7f: SUB
00000c80: DUP2
00000c81: DUP6
00000c82: DUP9
00000c83: DUP9
00000c84: CALL
00000c85: SWAP4
00000c86: POP
00000c87: POP
00000c88: POP
00000c89: POP
00000c8a: POP
00000c8b: JUMPDEST
00000c8c: DUP2
00000c8d: DUP1
00000c8e: PUSH1 0x01
00000c90: ADD
00000c91: SWAP3
00000c92: POP
00000c93: POP
00000c94: PUSH2 0x04a0
00000c97: JUMP
00000c98: JUMPDEST
00000c99: JUMPDEST
00000c9a: POP
00000c9b: POP
exec
/bin/bash -lc 'BYTECODE=$(jq -r '"'.artifact.runtime_bytecode.full' BYTECODE_BUNDLE.json); cast disassemble \""'$BYTECODE" | sed -n '"'1640,1705p'" in /tmp/codex-elbdutre
succeeded in 0ms:
00000c9b: POP
00000c9c: JUMP
exec
/bin/bash -lc 'BYTECODE=$(jq -r '"'.artifact.runtime_bytecode.full' BYTECODE_BUNDLE.json); cast disassemble \""'$BYTECODE" | awk '"'"'$1 < "000002f5:" && ($2=="CALL" || $2=="SELFDESTRUCT" || $2=="DELEGATECALL" || $2=="CREATE") {print}'"'" in /tmp/codex-elbdutre
succeeded in 0ms:
0000020a: CREATE
exec
/bin/bash -lc 'BYTECODE=$(jq -r '"'.artifact.runtime_bytecode.full' BYTECODE_BUNDLE.json); cast disassemble \""'$BYTECODE" | awk '"'"'$1 >= "000002f5:" && ($2=="CALL" || $2=="SELFDESTRUCT" || $2=="DELEGATECALL" || $2=="CREATE") {print}'"' | sed -n '1,40p'" in /tmp/codex-elbdutre
succeeded in 0ms:
000004ee: SELFDESTRUCT
00000582: SELFDESTRUCT
00000685: CREATE
0000069f: SELFDESTRUCT
00000a25: SELFDESTRUCT
00000bef: SELFDESTRUCT
00000c84: CALL
codex
{"no_findings":false,"summary":"The bundle includes embedded CREATE init/runtime blobs; selector inference is best-effort. One high-confidence issue affects the live top-level bytecode directly, and two additional issues affect a deployable child runtime reachable through the embedded CREATE paths.","findings":[{"severity":"high","category":"other","title":"Top-level accounting decrements user balances but creates child contracts with zero ETH","exploit_scenario":"On the live contract, selector 0x9e39db73 credits a per-user storage bucket with CALLVALUE, so users can deposit ETH. Later, selector 0xa9059cbb checks that recorded bucket and decrements it, but the CREATE at pc 0x20a is invoked with zero value. The returned child contract is therefore unfunded while the parent keeps the ETH. Because the live top-level bytecode has no CALL/SELFDESTRUCT withdrawal path before the embedded child blob, deposited ETH can become stranded in the parent while users' recorded balances are burned down.","recommendation":"Fund the created child with the withdrawn amount, or do not decrement recorded balances unless value transfer succeeds. Also add an explicit invariant that parent balance tracks outstanding recorded balances, and reject unexpected CALLVALUE on non-deposit paths.","evidence":"Top-level selector 0x9e39db73 reaches pc 0x11d and adds CALLVALUE into storage keyed by keccak(arg,1). Selector 0xa9059cbb reaches pc 0x20a, where CREATE is executed from prepared initcode with a zero literal pushed immediately before CREATE; afterwards the code subtracts the requested amount from the same storage bucket at pc 0x23a-0x247-equivalent SSTORE logic. The top-level region has CREATE as its only sink; no CALL/SELFDESTRUCT appears before the embedded blob at 0x2f5.","locations":["selector:0x9e39db73","selector:0xa9059cbb","pc:0x11d","pc:0x20a","pc:0x247"]},{"severity":"high","category":"reentrancy","title":"Deployable child runtime pays arbitrary recipients via CALL with no reentrancy guard","exploit_scenario":"A reachable child runtime embedded in the bytecode exposes selector 0x119f8747, which iterates over stored payout entries and performs a value-bearing CALL to each recipient. A malicious recipient contract can reenter 0x119f8747 from its fallback during the CALL at pc 0xc84. Because the loop uses only stack-local progress and does not mark entries as paid or lock execution before the external call, the nested invocation can restart the payout loop from the beginning and replay payouts until the child contract balance is drained.","recommendation":"Apply checks-effects-interactions: mark entries as paid or advance persistent progress before the CALL, add a reentrancy guard, and preferably use a pull-payment model where recipients withdraw individually.","evidence":"The bundle confirms CREATE reachability, and the embedded child runtime dispatches selector 0x119f8747 to the payout loop starting near pc 0xbf4. Inside that loop, recipient/value pairs are loaded from storage-backed entries and sent with CALL at pc 0xc84. There is no guard detection in this path and no protective SSTORE before the CALL; execution simply POPs the result and continues looping.","locations":["selector:0x119f8747","pc:0x685","pc:0xbf4","pc:0xc84"]},{"severity":"medium","category":"other","title":"Child payout loop ignores CALL failure, so recipients can be skipped and funds redistributed incorrectly","exploit_scenario":"In the same deployable child runtime, if any payout recipient reverts or the value transfer fails, the CALL result is discarded and the loop continues. A reverting recipient can therefore be silently skipped, while later logic still proceeds. In the expiry path, selector 0x86d1a69f invokes the same loop and then selfdestructs the remaining balance to slot0, so unpaid recipients can lose their allocation entirely.","recommendation":"Check the CALL success flag and revert or record the debt when a transfer fails. Do not selfdestruct or finalize distribution until every intended payment is confirmed.","evidence":"At pc 0xc84 the child runtime executes CALL, then immediately POPs the return value and advances the loop without branching on success or inspecting returndata. Selector 0x86d1a69f jumps into the same internal payout routine and later reaches SELFDESTRUCT, making silent payment failure an accounting risk rather than a benign no-op.","locations":["selector:0x119f8747","selector:0x86d1a69f","pc:0xc84","pc:0xa25"]}]}
tokens used
124,103
{
"codex": {
"ran_at": "2026-04-04T20:34:24.901760+00:00",
"returncode": 0
},
"project": {
"mode": "bytecode",
"bytecode_length": 6460,
"bytecode_truncated": false,
"capability_graph_present": true,
"analysis_artifact_present": true
},
"summary": "The bundle includes embedded CREATE init/runtime blobs; selector inference is best-effort. One high-confidence issue affects the live top-level bytecode directly, and two additional issues affect a deployable child runtime reachable through the embedded CREATE paths.",
"raw_final": {
"summary": "The bundle includes embedded CREATE init/runtime blobs; selector inference is best-effort. One high-confidence issue affects the live top-level bytecode directly, and two additional issues affect a deployable child runtime reachable through the embedded CREATE paths.",
"findings": [
{
"title": "Top-level accounting decrements user balances but creates child contracts with zero ETH",
"category": "other",
"evidence": "Top-level selector 0x9e39db73 reaches pc 0x11d and adds CALLVALUE into storage keyed by keccak(arg,1). Selector 0xa9059cbb reaches pc 0x20a, where CREATE is executed from prepared initcode with a zero literal pushed immediately before CREATE; afterwards the code subtracts the requested amount from the same storage bucket at pc 0x23a-0x247-equivalent SSTORE logic. The top-level region has CREATE as its only sink; no CALL/SELFDESTRUCT appears before the embedded blob at 0x2f5.",
"severity": "high",
"locations": [
"selector:0x9e39db73",
"selector:0xa9059cbb",
"pc:0x11d",
"pc:0x20a",
"pc:0x247"
],
"recommendation": "Fund the created child with the withdrawn amount, or do not decrement recorded balances unless value transfer succeeds. Also add an explicit invariant that parent balance tracks outstanding recorded balances, and reject unexpected CALLVALUE on non-deposit paths.",
"exploit_scenario": "On the live contract, selector 0x9e39db73 credits a per-user storage bucket with CALLVALUE, so users can deposit ETH. Later, selector 0xa9059cbb checks that recorded bucket and decrements it, but the CREATE at pc 0x20a is invoked with zero value. The returned child contract is therefore unfunded while the parent keeps the ETH. Because the live top-level bytecode has no CALL/SELFDESTRUCT withdrawal path before the embedded child blob, deposited ETH can become stranded in the parent while users' recorded balances are burned down."
},
{
"title": "Deployable child runtime pays arbitrary recipients via CALL with no reentrancy guard",
"category": "reentrancy",
"evidence": "The bundle confirms CREATE reachability, and the embedded child runtime dispatches selector 0x119f8747 to the payout loop starting near pc 0xbf4. Inside that loop, recipient/value pairs are loaded from storage-backed entries and sent with CALL at pc 0xc84. There is no guard detection in this path and no protective SSTORE before the CALL; execution simply POPs the result and continues looping.",
"severity": "high",
"locations": [
"selector:0x119f8747",
"pc:0x685",
"pc:0xbf4",
"pc:0xc84"
],
"recommendation": "Apply checks-effects-interactions: mark entries as paid or advance persistent progress before the CALL, add a reentrancy guard, and preferably use a pull-payment model where recipients withdraw individually.",
"exploit_scenario": "A reachable child runtime embedded in the bytecode exposes selector 0x119f8747, which iterates over stored payout entries and performs a value-bearing CALL to each recipient. A malicious recipient contract can reenter 0x119f8747 from its fallback during the CALL at pc 0xc84. Because the loop uses only stack-local progress and does not mark entries as paid or lock execution before the external call, the nested invocation can restart the payout loop from the beginning and replay payouts until the child contract balance is drained."
},
{
"title": "Child payout loop ignores CALL failure, so recipients can be skipped and funds redistributed incorrectly",
"category": "other",
"evidence": "At pc 0xc84 the child runtime executes CALL, then immediately POPs the return value and advances the loop without branching on success or inspecting returndata. Selector 0x86d1a69f jumps into the same internal payout routine and later reaches SELFDESTRUCT, making silent payment failure an accounting risk rather than a benign no-op.",
"severity": "medium",
"locations": [
"selector:0x119f8747",
"selector:0x86d1a69f",
"pc:0xc84",
"pc:0xa25"
],
"recommendation": "Check the CALL success flag and revert or record the debt when a transfer fails. Do not selfdestruct or finalize distribution until every intended payment is confirmed.",
"exploit_scenario": "In the same deployable child runtime, if any payout recipient reverts or the value transfer fails, the CALL result is discarded and the loop continues. A reverting recipient can therefore be silently skipped, while later logic still proceeds. In the expiry path, selector 0x86d1a69f invokes the same loop and then selfdestructs the remaining balance to slot0, so unpaid recipients can lose their allocation entirely."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x60 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x00 00000007: CALLDATALOAD 00000008: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 00000026: SWAP1 00000027: DIV 00000028: DUP1 00000029: PUSH4 0x27e235e3 0000002e: EQ 0000002f: PUSH2 0x005a 00000032: JUMPI 00000033: DUP1 00000034: PUSH4 0x6a42b8f8 00000039: EQ 0000003a: PUSH2 0x0081 0000003d: JUMPI 0000003e: DUP1 0000003f: PUSH4 0x9e39db73 00000044: EQ 00000045: PUSH2 0x00a2 00000048: JUMPI 00000049: DUP1 0000004a: PUSH4 0xa9059cbb 0000004f: EQ 00000050: PUSH2 0x00b5 00000053: JUMPI 00000054: PUSH2 0x0058 00000057: JUMP 00000058: JUMPDEST 00000059: STOP 0000005a: JUMPDEST 0000005b: PUSH2 0x006b 0000005e: PUSH1 0x04 00000060: DUP1 00000061: CALLDATALOAD 00000062: SWAP1 00000063: PUSH1 0x20 00000065: ADD 00000066: POP 00000067: PUSH2 0x0101 0000006a: JUMP 0000006b: JUMPDEST 0000006c: PUSH1 0x40 0000006e: MLOAD 0000006f: DUP1 00000070: DUP3 00000071: DUP2 00000072: MSTORE 00000073: PUSH1 0x20 00000075: ADD 00000076: SWAP2 00000077: POP 00000078: POP 00000079: PUSH1 0x40 0000007b: MLOAD 0000007c: DUP1 0000007d: SWAP2 0000007e: SUB 0000007f: SWAP1 00000080: RETURN 00000081: JUMPDEST 00000082: PUSH2 0x008c 00000085: PUSH1 0x04 00000087: POP 00000088: PUSH2 0x00f8 0000008b: JUMP 0000008c: JUMPDEST 0000008d: PUSH1 0x40 0000008f: MLOAD 00000090: DUP1 00000091: DUP3 00000092: DUP2 00000093: MSTORE 00000094: PUSH1 0x20 00000096: ADD 00000097: SWAP2 00000098: POP 00000099: POP 0000009a: PUSH1 0x40 0000009c: MLOAD 0000009d: DUP1 0000009e: SWAP2 0000009f: SUB 000000a0: SWAP1 000000a1: RETURN 000000a2: JUMPDEST 000000a3: PUSH2 0x00b3 000000a6: PUSH1 0x04 000000a8: DUP1 000000a9: CALLDATALOAD 000000aa: SWAP1 000000ab: PUSH1 0x20 000000ad: ADD 000000ae: POP 000000af: PUSH2 0x011c 000000b2: JUMP 000000b3: JUMPDEST 000000b4: STOP 000000b5: JUMPDEST 000000b6: PUSH2 0x00cc 000000b9: PUSH1 0x04 000000bb: DUP1 000000bc: CALLDATALOAD 000000bd: SWAP1 000000be: PUSH1 0x20 000000c0: ADD 000000c1: DUP1 000000c2: CALLDATALOAD 000000c3: SWAP1 000000c4: PUSH1 0x20 000000c6: ADD 000000c7: POP 000000c8: PUSH2 0x015c 000000cb: JUMP 000000cc: JUMPDEST 000000cd: PUSH1 0x40 000000cf: MLOAD 000000d0: DUP1 000000d1: DUP3 000000d2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000000e7: AND 000000e8: DUP2 000000e9: MSTORE 000000ea: PUSH1 0x20 000000ec: ADD 000000ed: SWAP2 000000ee: POP 000000ef: POP 000000f0: PUSH1 0x40 000000f2: MLOAD 000000f3: DUP1 000000f4: SWAP2 000000f5: SUB 000000f6: SWAP1 000000f7: RETURN 000000f8: JUMPDEST 000000f9: PUSH1 0x00 000000fb: PUSH1 0x00 000000fd: POP 000000fe: SLOAD 000000ff: DUP2 00000100: JUMP 00000101: JUMPDEST 00000102: PUSH1 0x01 00000104: PUSH1 0x00 00000106: POP 00000107: PUSH1 0x20 00000109: MSTORE 0000010a: DUP1 0000010b: PUSH1 0x00 0000010d: MSTORE 0000010e: PUSH1 0x40 00000110: PUSH1 0x00 00000112: KECCAK256 00000113: PUSH1 0x00 00000115: SWAP2 00000116: POP 00000117: SWAP1 00000118: POP 00000119: SLOAD 0000011a: DUP2 0000011b: JUMP 0000011c: JUMPDEST 0000011d: CALLVALUE 0000011e: PUSH1 0x01 00000120: PUSH1 0x00 00000122: POP 00000123: PUSH1 0x00 00000125: DUP4 00000126: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000013b: AND 0000013c: DUP2 0000013d: MSTORE 0000013e: PUSH1 0x20 00000140: ADD 00000141: SWAP1 00000142: DUP2 00000143: MSTORE 00000144: PUSH1 0x20 00000146: ADD 00000147: PUSH1 0x00 00000149: KECCAK256 0000014a: PUSH1 0x00 0000014c: DUP3 0000014d: DUP3 0000014e: DUP3 0000014f: POP 00000150: SLOAD 00000151: ADD 00000152: SWAP3 00000153: POP 00000154: POP 00000155: DUP2 00000156: SWAP1 00000157: SSTORE 00000158: POP 00000159: JUMPDEST 0000015a: POP 0000015b: JUMP 0000015c: JUMPDEST 0000015d: PUSH1 0x00 0000015f: PUSH1 0x00 00000161: PUSH1 0x00 00000163: CALLER 00000164: SWAP2 00000165: POP 00000166: DUP4 00000167: PUSH1 0x01 00000169: PUSH1 0x00 0000016b: POP 0000016c: PUSH1 0x00 0000016e: DUP5 0000016f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000184: AND 00000185: DUP2 00000186: MSTORE 00000187: PUSH1 0x20 00000189: ADD 0000018a: SWAP1 0000018b: DUP2 0000018c: MSTORE 0000018d: PUSH1 0x20 0000018f: ADD 00000190: PUSH1 0x00 00000192: KECCAK256 00000193: PUSH1 0x00 00000195: POP 00000196: SLOAD 00000197: LT 00000198: ISZERO 00000199: PUSH2 0x01a5 0000019c: JUMPI 0000019d: PUSH1 0x00 0000019f: SWAP3 000001a0: POP 000001a1: PUSH2 0x0250 000001a4: JUMP 000001a5: JUMPDEST 000001a6: DUP2 000001a7: DUP6 000001a8: PUSH1 0x00 000001aa: PUSH1 0x00 000001ac: POP 000001ad: SLOAD 000001ae: TIMESTAMP 000001af: ADD 000001b0: PUSH1 0x40 000001b2: MLOAD 000001b3: PUSH2 0x0a44 000001b6: DUP1 000001b7: PUSH2 0x0259 000001ba: DUP4 000001bb: CODECOPY 000001bc: ADD 000001bd: DUP1 000001be: DUP5 000001bf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000001d4: AND 000001d5: DUP2 000001d6: MSTORE 000001d7: PUSH1 0x20 000001d9: ADD 000001da: DUP4 000001db: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000001f0: AND 000001f1: DUP2 000001f2: MSTORE 000001f3: PUSH1 0x20 000001f5: ADD 000001f6: DUP3 000001f7: DUP2 000001f8: MSTORE 000001f9: PUSH1 0x20 000001fb: ADD 000001fc: SWAP4 000001fd: POP 000001fe: POP 000001ff: POP 00000200: POP 00000201: PUSH1 0x40 00000203: MLOAD 00000204: DUP1 00000205: SWAP2 00000206: SUB 00000207: SWAP1 00000208: PUSH1 0x00 0000020a: CREATE 0000020b: SWAP1 0000020c: POP 0000020d: DUP4 0000020e: PUSH1 0x01 00000210: PUSH1 0x00 00000212: POP 00000213: PUSH1 0x00 00000215: DUP5 00000216: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000022b: AND 0000022c: DUP2 0000022d: MSTORE 0000022e: PUSH1 0x20 00000230: ADD 00000231: SWAP1 00000232: DUP2 00000233: MSTORE 00000234: PUSH1 0x20 00000236: ADD 00000237: PUSH1 0x00 00000239: KECCAK256 0000023a: PUSH1 0x00 0000023c: DUP3 0000023d: DUP3 0000023e: DUP3 0000023f: POP 00000240: SLOAD 00000241: SUB 00000242: SWAP3 00000243: POP 00000244: POP 00000245: DUP2 00000246: SWAP1 00000247: SSTORE 00000248: POP 00000249: DUP1 0000024a: SWAP3 0000024b: POP 0000024c: PUSH2 0x0250 0000024f: JUMP 00000250: JUMPDEST 00000251: POP 00000252: POP 00000253: SWAP3 00000254: SWAP2 00000255: POP 00000256: POP 00000257: JUMP 00000258: STOP 00000259: PUSH1 0x60 0000025b: PUSH1 0x40 0000025d: MSTORE 0000025e: PUSH1 0x40 00000260: MLOAD 00000261: PUSH1 0x60 00000263: DUP1 00000264: PUSH2 0x0a44 00000267: DUP4 00000268: CODECOPY 00000269: ADD 0000026a: PUSH1 0x40 0000026c: MSTORE 0000026d: PUSH1 0x60 0000026f: DUP1 00000270: MLOAD 00000271: SWAP1 00000272: PUSH1 0x20 00000274: ADD 00000275: DUP1 00000276: MLOAD 00000277: SWAP1 00000278: PUSH1 0x20 0000027a: ADD 0000027b: DUP1 0000027c: MLOAD 0000027d: SWAP1 0000027e: PUSH1 0x20 00000280: ADD 00000281: POP 00000282: JUMPDEST 00000283: DUP3 00000284: PUSH1 0x00 00000286: PUSH1 0x00 00000288: PUSH2 0x0100 0000028b: EXP 0000028c: DUP2 0000028d: SLOAD 0000028e: DUP2 0000028f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000002a4: MUL 000002a5: NOT 000002a6: AND 000002a7: SWAP1 000002a8: DUP4 000002a9: MUL 000002aa: OR 000002ab: SWAP1 000002ac: SSTORE 000002ad: POP 000002ae: DUP2 000002af: PUSH1 0x01 000002b1: PUSH1 0x00 000002b3: PUSH2 0x0100 000002b6: EXP 000002b7: DUP2 000002b8: SLOAD 000002b9: DUP2 000002ba: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000002cf: MUL 000002d0: NOT 000002d1: AND 000002d2: SWAP1 000002d3: DUP4 000002d4: MUL 000002d5: OR 000002d6: SWAP1 000002d7: SSTORE 000002d8: POP 000002d9: DUP1 000002da: PUSH1 0x02 000002dc: PUSH1 0x00 000002de: POP 000002df: DUP2 000002e0: SWAP1 000002e1: SSTORE 000002e2: POP 000002e3: JUMPDEST 000002e4: POP 000002e5: POP 000002e6: POP 000002e7: PUSH2 0x09a8 000002ea: DUP1 000002eb: PUSH2 0x009c 000002ee: PUSH1 0x00 000002f0: CODECOPY 000002f1: PUSH1 0x00 000002f3: RETURN 000002f4: STOP 000002f5: PUSH1 0x60 000002f7: PUSH1 0x40 000002f9: MSTORE 000002fa: CALLDATASIZE 000002fb: ISZERO 000002fc: PUSH2 0x0074 000002ff: JUMPI 00000300: PUSH1 0x00 00000302: CALLDATALOAD 00000303: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 00000321: SWAP1 00000322: DIV 00000323: DUP1 00000324: PUSH4 0x0fe65b36 00000329: EQ 0000032a: PUSH2 0x0076 0000032d: JUMPI 0000032e: DUP1 0000032f: PUSH4 0x66d003ac 00000334: EQ 00000335: PUSH2 0x00b3 00000338: JUMPI 00000339: DUP1 0000033a: PUSH4 0x86d1a69f 0000033f: EQ 00000340: PUSH2 0x00ea 00000343: JUMPI 00000344: DUP1 00000345: PUSH4 0x8da5cb5b 0000034a: EQ 0000034b: PUSH2 0x00f7 0000034e: JUMPI 0000034f: DUP1 00000350: PUSH4 0xb91d4001 00000355: EQ 00000356: PUSH2 0x012e 00000359: JUMPI 0000035a: DUP1 0000035b: PUSH4 0xea8a1af0 00000360: EQ 00000361: PUSH2 0x014f 00000364: JUMPI 00000365: PUSH2 0x0074 00000368: JUMP 00000369: JUMPDEST 0000036a: STOP 0000036b: JUMPDEST 0000036c: PUSH2 0x0087 0000036f: PUSH1 0x04 00000371: DUP1 00000372: CALLDATALOAD 00000373: SWAP1 00000374: PUSH1 0x20 00000376: ADD 00000377: POP 00000378: PUSH2 0x0291 0000037b: JUMP 0000037c: JUMPDEST 0000037d: PUSH1 0x40 0000037f: MLOAD 00000380: DUP1 00000381: DUP3 00000382: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000397: AND 00000398: DUP2 00000399: MSTORE 0000039a: PUSH1 0x20 0000039c: ADD 0000039d: SWAP2 0000039e: POP 0000039f: POP 000003a0: PUSH1 0x40 000003a2: MLOAD 000003a3: DUP1 000003a4: SWAP2 000003a5: SUB 000003a6: SWAP1 000003a7: RETURN 000003a8: JUMPDEST 000003a9: PUSH2 0x00be 000003ac: PUSH1 0x04 000003ae: POP 000003af: PUSH2 0x0182 000003b2: JUMP 000003b3: JUMPDEST 000003b4: PUSH1 0x40 000003b6: MLOAD 000003b7: DUP1 000003b8: DUP3 000003b9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003ce: AND 000003cf: DUP2 000003d0: MSTORE 000003d1: PUSH1 0x20 000003d3: ADD 000003d4: SWAP2 000003d5: POP 000003d6: POP 000003d7: PUSH1 0x40 000003d9: MLOAD 000003da: DUP1 000003db: SWAP2 000003dc: SUB 000003dd: SWAP1 000003de: RETURN 000003df: JUMPDEST 000003e0: PUSH2 0x00f5 000003e3: PUSH1 0x04 000003e5: POP 000003e6: PUSH2 0x01b1 000003e9: JUMP 000003ea: JUMPDEST 000003eb: STOP 000003ec: JUMPDEST 000003ed: PUSH2 0x0102 000003f0: PUSH1 0x04 000003f2: POP 000003f3: PUSH2 0x015c 000003f6: JUMP 000003f7: JUMPDEST 000003f8: PUSH1 0x40 000003fa: MLOAD 000003fb: DUP1 000003fc: DUP3 000003fd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000412: AND 00000413: DUP2 00000414: MSTORE 00000415: PUSH1 0x20 00000417: ADD 00000418: SWAP2 00000419: POP 0000041a: POP 0000041b: PUSH1 0x40 0000041d: MLOAD 0000041e: DUP1 0000041f: SWAP2 00000420: SUB 00000421: SWAP1 00000422: RETURN 00000423: JUMPDEST 00000424: PUSH2 0x0139 00000427: PUSH1 0x04 00000429: POP 0000042a: PUSH2 0x01a8 0000042d: JUMP 0000042e: JUMPDEST 0000042f: PUSH1 0x40 00000431: MLOAD 00000432: DUP1 00000433: DUP3 00000434: DUP2 00000435: MSTORE 00000436: PUSH1 0x20 00000438: ADD 00000439: SWAP2 0000043a: POP 0000043b: POP 0000043c: PUSH1 0x40 0000043e: MLOAD 0000043f: DUP1 00000440: SWAP2 00000441: SUB 00000442: SWAP1 00000443: RETURN 00000444: JUMPDEST 00000445: PUSH2 0x015a 00000448: PUSH1 0x04 0000044a: POP 0000044b: PUSH2 0x01fd 0000044e: JUMP 0000044f: JUMPDEST 00000450: STOP 00000451: JUMPDEST 00000452: PUSH1 0x00 00000454: PUSH1 0x00 00000456: SWAP1 00000457: SLOAD 00000458: SWAP1 00000459: PUSH2 0x0100 0000045c: EXP 0000045d: SWAP1 0000045e: DIV 0000045f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000474: AND 00000475: DUP2 00000476: JUMP 00000477: JUMPDEST 00000478: PUSH1 0x01 0000047a: PUSH1 0x00 0000047c: SWAP1 0000047d: SLOAD 0000047e: SWAP1 0000047f: PUSH2 0x0100 00000482: EXP 00000483: SWAP1 00000484: DIV 00000485: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000049a: AND 0000049b: DUP2 0000049c: JUMP 0000049d: JUMPDEST 0000049e: PUSH1 0x02 000004a0: PUSH1 0x00 000004a2: POP 000004a3: SLOAD 000004a4: DUP2 000004a5: JUMP 000004a6: JUMPDEST 000004a7: PUSH1 0x02 000004a9: PUSH1 0x00 000004ab: POP 000004ac: SLOAD 000004ad: TIMESTAMP 000004ae: LT 000004af: ISZERO 000004b0: ISZERO 000004b1: PUSH2 0x01fa 000004b4: JUMPI 000004b5: PUSH1 0x01 000004b7: PUSH1 0x00 000004b9: SWAP1 000004ba: SLOAD 000004bb: SWAP1 000004bc: PUSH2 0x0100 000004bf: EXP 000004c0: SWAP1 000004c1: DIV 000004c2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004d7: AND 000004d8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004ed: AND 000004ee: SELFDESTRUCT 000004ef: JUMPDEST 000004f0: JUMPDEST 000004f1: JUMP 000004f2: JUMPDEST 000004f3: PUSH1 0x00 000004f5: PUSH1 0x00 000004f7: SWAP1 000004f8: SLOAD 000004f9: SWAP1 000004fa: PUSH2 0x0100 000004fd: EXP 000004fe: SWAP1 000004ff: DIV 00000500: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000515: AND 00000516: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000052b: AND 0000052c: CALLER 0000052d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000542: AND 00000543: EQ 00000544: ISZERO 00000545: PUSH2 0x028e 00000548: JUMPI 00000549: PUSH1 0x00 0000054b: PUSH1 0x00 0000054d: SWAP1 0000054e: SLOAD 0000054f: SWAP1 00000550: PUSH2 0x0100 00000553: EXP 00000554: SWAP1 00000555: DIV 00000556: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000056b: AND 0000056c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000581: AND 00000582: SELFDESTRUCT 00000583: JUMPDEST 00000584: JUMPDEST 00000585: JUMP 00000586: JUMPDEST 00000587: PUSH1 0x00 00000589: PUSH1 0x00 0000058b: PUSH1 0x00 0000058d: PUSH1 0x00 0000058f: PUSH1 0x00 00000591: SWAP1 00000592: SLOAD 00000593: SWAP1 00000594: PUSH2 0x0100 00000597: EXP 00000598: SWAP1 00000599: DIV 0000059a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000005af: AND 000005b0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000005c5: AND 000005c6: CALLER 000005c7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000005dc: AND 000005dd: EQ 000005de: ISZERO 000005df: PUSH2 0x03b2 000005e2: JUMPI 000005e3: PUSH1 0x00 000005e5: SWAP2 000005e6: POP 000005e7: PUSH1 0x00 000005e9: PUSH1 0x00 000005eb: SWAP1 000005ec: SLOAD 000005ed: SWAP1 000005ee: PUSH2 0x0100 000005f1: EXP 000005f2: SWAP1 000005f3: DIV 000005f4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000609: AND 0000060a: DUP3 0000060b: ADDRESS 0000060c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000621: AND 00000622: BALANCE 00000623: DUP7 00000624: PUSH1 0x40 00000626: MLOAD 00000627: PUSH2 0x05ed 0000062a: DUP1 0000062b: PUSH2 0x03bb 0000062e: DUP4 0000062f: CODECOPY 00000630: ADD 00000631: DUP1 00000632: DUP6 00000633: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000648: AND 00000649: DUP2 0000064a: MSTORE 0000064b: PUSH1 0x20 0000064d: ADD 0000064e: DUP5 0000064f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000664: AND 00000665: DUP2 00000666: MSTORE 00000667: PUSH1 0x20 00000669: ADD 0000066a: DUP4 0000066b: DUP2 0000066c: MSTORE 0000066d: PUSH1 0x20 0000066f: ADD 00000670: DUP3 00000671: DUP2 00000672: MSTORE 00000673: PUSH1 0x20 00000675: ADD 00000676: SWAP5 00000677: POP 00000678: POP 00000679: POP 0000067a: POP 0000067b: POP 0000067c: PUSH1 0x40 0000067e: MLOAD 0000067f: DUP1 00000680: SWAP2 00000681: SUB 00000682: SWAP1 00000683: PUSH1 0x00 00000685: CREATE 00000686: SWAP1 00000687: POP 00000688: DUP1 00000689: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000069e: AND 0000069f: SELFDESTRUCT 000006a0: DUP1 000006a1: SWAP3 000006a2: POP 000006a3: PUSH2 0x03b3 000006a6: JUMP 000006a7: JUMPDEST 000006a8: JUMPDEST 000006a9: POP 000006aa: POP 000006ab: SWAP2 000006ac: SWAP1 000006ad: POP 000006ae: JUMP 000006af: STOP 000006b0: PUSH1 0x60 000006b2: PUSH1 0x40 000006b4: MSTORE 000006b5: PUSH1 0x40 000006b7: MLOAD 000006b8: PUSH1 0x80 000006ba: DUP1 000006bb: PUSH2 0x05ed 000006be: DUP4 000006bf: CODECOPY 000006c0: ADD 000006c1: PUSH1 0x40 000006c3: MSTORE 000006c4: PUSH1 0x60 000006c6: DUP1 000006c7: MLOAD 000006c8: SWAP1 000006c9: PUSH1 0x20 000006cb: ADD 000006cc: DUP1 000006cd: MLOAD 000006ce: SWAP1 000006cf: PUSH1 0x20 000006d1: ADD 000006d2: DUP1 000006d3: MLOAD 000006d4: SWAP1 000006d5: PUSH1 0x20 000006d7: ADD 000006d8: DUP1 000006d9: MLOAD 000006da: SWAP1 000006db: PUSH1 0x20 000006dd: ADD 000006de: POP 000006df: JUMPDEST 000006e0: DUP4 000006e1: PUSH1 0x00 000006e3: PUSH1 0x00 000006e5: PUSH2 0x0100 000006e8: EXP 000006e9: DUP2 000006ea: SLOAD 000006eb: DUP2 000006ec: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000701: MUL 00000702: NOT 00000703: AND 00000704: SWAP1 00000705: DUP4 00000706: MUL 00000707: OR 00000708: SWAP1 00000709: SSTORE 0000070a: POP 0000070b: DUP3 0000070c: PUSH1 0x01 0000070e: PUSH1 0x00 00000710: PUSH2 0x0100 00000713: EXP 00000714: DUP2 00000715: SLOAD 00000716: DUP2 00000717: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000072c: MUL 0000072d: NOT 0000072e: AND 0000072f: SWAP1 00000730: DUP4 00000731: MUL 00000732: OR 00000733: SWAP1 00000734: SSTORE 00000735: POP 00000736: DUP2 00000737: PUSH1 0x02 00000739: PUSH1 0x00 0000073b: POP 0000073c: DUP2 0000073d: SWAP1 0000073e: SSTORE 0000073f: POP 00000740: DUP1 00000741: PUSH1 0x03 00000743: PUSH1 0x00 00000745: POP 00000746: DUP2 00000747: SWAP1 00000748: SSTORE 00000749: POP 0000074a: JUMPDEST 0000074b: POP 0000074c: POP 0000074d: POP 0000074e: POP 0000074f: PUSH2 0x0540 00000752: DUP1 00000753: PUSH2 0x00ad 00000756: PUSH1 0x00 00000758: CODECOPY 00000759: PUSH1 0x00 0000075b: RETURN 0000075c: STOP 0000075d: PUSH1 0x60 0000075f: PUSH1 0x40 00000761: MSTORE 00000762: CALLDATASIZE 00000763: ISZERO 00000764: PUSH2 0x008a 00000767: JUMPI 00000768: PUSH1 0x00 0000076a: CALLDATALOAD 0000076b: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 00000789: SWAP1 0000078a: DIV 0000078b: DUP1 0000078c: PUSH4 0x119f8747 00000791: EQ 00000792: PUSH2 0x008c 00000795: JUMPI 00000796: DUP1 00000797: PUSH4 0x29dcb0cf 0000079c: EQ 0000079d: PUSH2 0x0099 000007a0: JUMPI 000007a1: DUP1 000007a2: PUSH4 0x3c24b7d7 000007a7: EQ 000007a8: PUSH2 0x00ba 000007ab: JUMPI 000007ac: DUP1 000007ad: PUSH4 0x552079dc 000007b2: EQ 000007b3: PUSH2 0x00fe 000007b6: JUMPI 000007b7: DUP1 000007b8: PUSH4 0x66d003ac 000007bd: EQ 000007be: PUSH2 0x0135 000007c1: JUMPI 000007c2: DUP1 000007c3: PUSH4 0x702c35fb 000007c8: EQ 000007c9: PUSH2 0x016c 000007cc: JUMPI 000007cd: DUP1 000007ce: PUSH4 0x86d1a69f 000007d3: EQ 000007d4: PUSH2 0x018d 000007d7: JUMPI 000007d8: DUP1 000007d9: PUSH4 0xc9e7e29b 000007de: EQ 000007df: PUSH2 0x019a 000007e2: JUMPI 000007e3: PUSH2 0x008a 000007e6: JUMP 000007e7: JUMPDEST 000007e8: STOP 000007e9: JUMPDEST 000007ea: PUSH2 0x0097 000007ed: PUSH1 0x04 000007ef: POP 000007f0: PUSH2 0x02cc 000007f3: JUMP 000007f4: JUMPDEST 000007f5: STOP 000007f6: JUMPDEST 000007f7: PUSH2 0x00a4 000007fa: PUSH1 0x04 000007fc: POP 000007fd: PUSH2 0x0210 00000800: JUMP 00000801: JUMPDEST 00000802: PUSH1 0x40 00000804: MLOAD 00000805: DUP1 00000806: DUP3 00000807: DUP2 00000808: MSTORE 00000809: PUSH1 0x20 0000080b: ADD 0000080c: SWAP2 0000080d: POP 0000080e: POP 0000080f: PUSH1 0x40 00000811: MLOAD 00000812: DUP1 00000813: SWAP2 00000814: SUB 00000815: SWAP1 00000816: RETURN 00000817: JUMPDEST 00000818: PUSH2 0x00cb 0000081b: PUSH1 0x04 0000081d: DUP1 0000081e: CALLDATALOAD 0000081f: SWAP1 00000820: PUSH1 0x20 00000822: ADD 00000823: POP 00000824: PUSH2 0x0219 00000827: JUMP 00000828: JUMPDEST 00000829: PUSH1 0x40 0000082b: MLOAD 0000082c: DUP1 0000082d: DUP4 0000082e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000843: AND 00000844: DUP2 00000845: MSTORE 00000846: PUSH1 0x20 00000848: ADD 00000849: DUP3 0000084a: DUP2 0000084b: MSTORE 0000084c: PUSH1 0x20 0000084e: ADD 0000084f: SWAP3 00000850: POP 00000851: POP 00000852: POP 00000853: PUSH1 0x40 00000855: MLOAD 00000856: DUP1 00000857: SWAP2 00000858: SUB 00000859: SWAP1 0000085a: RETURN 0000085b: JUMPDEST 0000085c: PUSH2 0x0109 0000085f: PUSH1 0x04 00000861: POP 00000862: PUSH2 0x01bb 00000865: JUMP 00000866: JUMPDEST 00000867: PUSH1 0x40 00000869: MLOAD 0000086a: DUP1 0000086b: DUP3 0000086c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000881: AND 00000882: DUP2 00000883: MSTORE 00000884: PUSH1 0x20 00000886: ADD 00000887: SWAP2 00000888: POP 00000889: POP 0000088a: PUSH1 0x40 0000088c: MLOAD 0000088d: DUP1 0000088e: SWAP2 0000088f: SUB 00000890: SWAP1 00000891: RETURN 00000892: JUMPDEST 00000893: PUSH2 0x0140 00000896: PUSH1 0x04 00000898: POP 00000899: PUSH2 0x01e1 0000089c: JUMP 0000089d: JUMPDEST 0000089e: PUSH1 0x40 000008a0: MLOAD 000008a1: DUP1 000008a2: DUP3 000008a3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000008b8: AND 000008b9: DUP2 000008ba: MSTORE 000008bb: PUSH1 0x20 000008bd: ADD 000008be: SWAP2 000008bf: POP 000008c0: POP 000008c1: PUSH1 0x40 000008c3: MLOAD 000008c4: DUP1 000008c5: SWAP2 000008c6: SUB 000008c7: SWAP1 000008c8: RETURN 000008c9: JUMPDEST 000008ca: PUSH2 0x0177 000008cd: PUSH1 0x04 000008cf: POP 000008d0: PUSH2 0x026f 000008d3: JUMP 000008d4: JUMPDEST 000008d5: PUSH1 0x40 000008d7: MLOAD 000008d8: DUP1 000008d9: DUP3 000008da: DUP2 000008db: MSTORE 000008dc: PUSH1 0x20 000008de: ADD 000008df: SWAP2 000008e0: POP 000008e1: POP 000008e2: PUSH1 0x40 000008e4: MLOAD 000008e5: DUP1 000008e6: SWAP2 000008e7: SUB 000008e8: SWAP1 000008e9: RETURN 000008ea: JUMPDEST 000008eb: PUSH2 0x0198 000008ee: PUSH1 0x04 000008f0: POP 000008f1: PUSH2 0x0278 000008f4: JUMP 000008f5: JUMPDEST 000008f6: STOP 000008f7: JUMPDEST 000008f8: PUSH2 0x01a5 000008fb: PUSH1 0x04 000008fd: POP 000008fe: PUSH2 0x0207 00000901: JUMP 00000902: JUMPDEST 00000903: PUSH1 0x40 00000905: MLOAD 00000906: DUP1 00000907: DUP3 00000908: DUP2 00000909: MSTORE 0000090a: PUSH1 0x20 0000090c: ADD 0000090d: SWAP2 0000090e: POP 0000090f: POP 00000910: PUSH1 0x40 00000912: MLOAD 00000913: DUP1 00000914: SWAP2 00000915: SUB 00000916: SWAP1 00000917: RETURN 00000918: JUMPDEST 00000919: PUSH1 0x00 0000091b: PUSH1 0x00 0000091d: SWAP1 0000091e: SLOAD 0000091f: SWAP1 00000920: PUSH2 0x0100 00000923: EXP 00000924: SWAP1 00000925: DIV 00000926: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000093b: AND 0000093c: DUP2 0000093d: JUMP 0000093e: JUMPDEST 0000093f: PUSH1 0x01 00000941: PUSH1 0x00 00000943: SWAP1 00000944: SLOAD 00000945: SWAP1 00000946: PUSH2 0x0100 00000949: EXP 0000094a: SWAP1 0000094b: DIV 0000094c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000961: AND 00000962: DUP2 00000963: JUMP 00000964: JUMPDEST 00000965: PUSH1 0x02 00000967: PUSH1 0x00 00000969: POP 0000096a: SLOAD 0000096b: DUP2 0000096c: JUMP 0000096d: JUMPDEST 0000096e: PUSH1 0x03 00000970: PUSH1 0x00 00000972: POP 00000973: SLOAD 00000974: DUP2 00000975: JUMP 00000976: JUMPDEST 00000977: PUSH1 0x04 00000979: PUSH1 0x00 0000097b: POP 0000097c: DUP2 0000097d: DUP2 0000097e: SLOAD 0000097f: DUP2 00000980: LT 00000981: ISZERO 00000982: PUSH2 0x0002 00000985: JUMPI 00000986: SWAP1 00000987: PUSH1 0x00 00000989: MSTORE 0000098a: PUSH1 0x20 0000098c: PUSH1 0x00 0000098e: KECCAK256 0000098f: SWAP1 00000990: PUSH1 0x02 00000992: MUL 00000993: ADD 00000994: PUSH1 0x00 00000996: SWAP2 00000997: POP 00000998: SWAP1 00000999: POP 0000099a: DUP1 0000099b: PUSH1 0x00 0000099d: ADD 0000099e: PUSH1 0x00 000009a0: SWAP1 000009a1: SLOAD 000009a2: SWAP1 000009a3: PUSH2 0x0100 000009a6: EXP 000009a7: SWAP1 000009a8: DIV 000009a9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000009be: AND 000009bf: SWAP1 000009c0: DUP1 000009c1: PUSH1 0x01 000009c3: ADD 000009c4: PUSH1 0x00 000009c6: POP 000009c7: SLOAD 000009c8: SWAP1 000009c9: POP 000009ca: DUP3 000009cb: JUMP 000009cc: JUMPDEST 000009cd: PUSH1 0x05 000009cf: PUSH1 0x00 000009d1: POP 000009d2: SLOAD 000009d3: DUP2 000009d4: JUMP 000009d5: JUMPDEST 000009d6: PUSH1 0x03 000009d8: PUSH1 0x00 000009da: POP 000009db: SLOAD 000009dc: TIMESTAMP 000009dd: LT 000009de: ISZERO 000009df: ISZERO 000009e0: PUSH2 0x02c9 000009e3: JUMPI 000009e4: PUSH2 0x028e 000009e7: PUSH2 0x0497 000009ea: JUMP 000009eb: JUMPDEST 000009ec: PUSH1 0x00 000009ee: PUSH1 0x00 000009f0: SWAP1 000009f1: SLOAD 000009f2: SWAP1 000009f3: PUSH2 0x0100 000009f6: EXP 000009f7: SWAP1 000009f8: DIV 000009f9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a0e: AND 00000a0f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a24: AND 00000a25: SELFDESTRUCT 00000a26: JUMPDEST 00000a27: JUMPDEST 00000a28: JUMP 00000a29: JUMPDEST 00000a2a: PUSH1 0x00 00000a2c: CALLVALUE 00000a2d: GT 00000a2e: ISZERO 00000a2f: PUSH2 0x0494 00000a32: JUMPI 00000a33: PUSH1 0x40 00000a35: PUSH1 0x40 00000a37: MLOAD 00000a38: SWAP1 00000a39: DUP2 00000a3a: ADD 00000a3b: PUSH1 0x40 00000a3d: MSTORE 00000a3e: DUP1 00000a3f: CALLER 00000a40: DUP2 00000a41: MSTORE 00000a42: PUSH1 0x20 00000a44: ADD 00000a45: CALLVALUE 00000a46: DUP2 00000a47: MSTORE 00000a48: PUSH1 0x20 00000a4a: ADD 00000a4b: POP 00000a4c: PUSH1 0x04 00000a4e: PUSH1 0x00 00000a50: POP 00000a51: PUSH1 0x04 00000a53: PUSH1 0x00 00000a55: POP 00000a56: DUP1 00000a57: SLOAD 00000a58: DUP1 00000a59: SWAP2 00000a5a: SWAP1 00000a5b: PUSH1 0x01 00000a5d: ADD 00000a5e: SWAP1 00000a5f: SWAP1 00000a60: DUP2 00000a61: SLOAD 00000a62: DUP2 00000a63: DUP4 00000a64: SSTORE 00000a65: DUP2 00000a66: DUP2 00000a67: ISZERO 00000a68: GT 00000a69: PUSH2 0x0378 00000a6c: JUMPI 00000a6d: PUSH1 0x02 00000a6f: MUL 00000a70: DUP2 00000a71: PUSH1 0x02 00000a73: MUL 00000a74: DUP4 00000a75: PUSH1 0x00 00000a77: MSTORE 00000a78: PUSH1 0x20 00000a7a: PUSH1 0x00 00000a7c: KECCAK256 00000a7d: SWAP2 00000a7e: DUP3 00000a7f: ADD 00000a80: SWAP2 00000a81: ADD 00000a82: PUSH2 0x0377 00000a85: SWAP2 00000a86: SWAP1 00000a87: PUSH2 0x032e 00000a8a: JUMP 00000a8b: JUMPDEST 00000a8c: DUP1 00000a8d: DUP3 00000a8e: GT 00000a8f: ISZERO 00000a90: PUSH2 0x0373 00000a93: JUMPI 00000a94: PUSH1 0x00 00000a96: PUSH1 0x00 00000a98: DUP3 00000a99: ADD 00000a9a: PUSH1 0x00 00000a9c: PUSH2 0x0100 00000a9f: EXP 00000aa0: DUP2 00000aa1: SLOAD 00000aa2: SWAP1 00000aa3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ab8: MUL 00000ab9: NOT 00000aba: AND 00000abb: SWAP1 00000abc: SSTORE 00000abd: PUSH1 0x01 00000abf: DUP3 00000ac0: ADD 00000ac1: PUSH1 0x00 00000ac3: POP 00000ac4: PUSH1 0x00 00000ac6: SWAP1 00000ac7: SSTORE 00000ac8: POP 00000ac9: PUSH1 0x01 00000acb: ADD 00000acc: PUSH2 0x032e 00000acf: JUMP 00000ad0: JUMPDEST 00000ad1: POP 00000ad2: SWAP1 00000ad3: JUMP 00000ad4: JUMPDEST 00000ad5: JUMPDEST 00000ad6: POP 00000ad7: POP 00000ad8: POP 00000ad9: DUP2 00000ada: SLOAD 00000adb: DUP2 00000adc: LT 00000add: ISZERO 00000ade: PUSH2 0x0002 00000ae1: JUMPI 00000ae2: SWAP1 00000ae3: PUSH1 0x00 00000ae5: MSTORE 00000ae6: PUSH1 0x20 00000ae8: PUSH1 0x00 00000aea: KECCAK256 00000aeb: SWAP1 00000aec: PUSH1 0x02 00000aee: MUL 00000aef: ADD 00000af0: PUSH1 0x00 00000af2: POP 00000af3: PUSH1 0x00 00000af5: DUP3 00000af6: ADD 00000af7: MLOAD 00000af8: DUP2 00000af9: PUSH1 0x00 00000afb: ADD 00000afc: PUSH1 0x00 00000afe: PUSH2 0x0100 00000b01: EXP 00000b02: DUP2 00000b03: SLOAD 00000b04: DUP2 00000b05: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b1a: MUL 00000b1b: NOT 00000b1c: AND 00000b1d: SWAP1 00000b1e: DUP4 00000b1f: MUL 00000b20: OR 00000b21: SWAP1 00000b22: SSTORE 00000b23: POP 00000b24: PUSH1 0x20 00000b26: DUP3 00000b27: ADD 00000b28: MLOAD 00000b29: DUP2 00000b2a: PUSH1 0x01 00000b2c: ADD 00000b2d: PUSH1 0x00 00000b2f: POP 00000b30: SSTORE 00000b31: SWAP1 00000b32: POP 00000b33: POP 00000b34: CALLVALUE 00000b35: PUSH1 0x05 00000b37: PUSH1 0x00 00000b39: DUP3 00000b3a: DUP3 00000b3b: DUP3 00000b3c: POP 00000b3d: SLOAD 00000b3e: ADD 00000b3f: SWAP3 00000b40: POP 00000b41: POP 00000b42: DUP2 00000b43: SWAP1 00000b44: SSTORE 00000b45: POP 00000b46: PUSH32 0x8fc4de83eddb2e6be67e269b8bfdc735778c7339168d5f734290f474f5647e14 00000b67: CALLER 00000b68: CALLVALUE 00000b69: PUSH1 0x40 00000b6b: MLOAD 00000b6c: DUP1 00000b6d: DUP4 00000b6e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b83: AND 00000b84: DUP2 00000b85: MSTORE 00000b86: PUSH1 0x20 00000b88: ADD 00000b89: DUP3 00000b8a: DUP2 00000b8b: MSTORE 00000b8c: PUSH1 0x20 00000b8e: ADD 00000b8f: SWAP3 00000b90: POP 00000b91: POP 00000b92: POP 00000b93: PUSH1 0x40 00000b95: MLOAD 00000b96: DUP1 00000b97: SWAP2 00000b98: SUB 00000b99: SWAP1 00000b9a: LOG1 00000b9b: PUSH1 0x02 00000b9d: PUSH1 0x00 00000b9f: POP 00000ba0: SLOAD 00000ba1: PUSH1 0x05 00000ba3: PUSH1 0x00 00000ba5: POP 00000ba6: SLOAD 00000ba7: LT 00000ba8: ISZERO 00000ba9: ISZERO 00000baa: PUSH2 0x0493 00000bad: JUMPI 00000bae: PUSH2 0x0458 00000bb1: PUSH2 0x0497 00000bb4: JUMP 00000bb5: JUMPDEST 00000bb6: PUSH1 0x01 00000bb8: PUSH1 0x00 00000bba: SWAP1 00000bbb: SLOAD 00000bbc: SWAP1 00000bbd: PUSH2 0x0100 00000bc0: EXP 00000bc1: SWAP1 00000bc2: DIV 00000bc3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000bd8: AND 00000bd9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000bee: AND 00000bef: SELFDESTRUCT 00000bf0: JUMPDEST 00000bf1: JUMPDEST 00000bf2: JUMPDEST 00000bf3: JUMP 00000bf4: JUMPDEST 00000bf5: PUSH1 0x00 00000bf7: PUSH1 0x00 00000bf9: PUSH1 0x00 00000bfb: SWAP2 00000bfc: POP 00000bfd: JUMPDEST 00000bfe: PUSH1 0x04 00000c00: PUSH1 0x00 00000c02: POP 00000c03: SLOAD 00000c04: DUP3 00000c05: LT 00000c06: ISZERO 00000c07: PUSH2 0x053b 00000c0a: JUMPI 00000c0b: PUSH1 0x04 00000c0d: PUSH1 0x00 00000c0f: POP 00000c10: DUP3 00000c11: DUP2 00000c12: SLOAD 00000c13: DUP2 00000c14: LT 00000c15: ISZERO 00000c16: PUSH2 0x0002 00000c19: JUMPI 00000c1a: SWAP1 00000c1b: PUSH1 0x00 00000c1d: MSTORE 00000c1e: PUSH1 0x20 00000c20: PUSH1 0x00 00000c22: KECCAK256 00000c23: SWAP1 00000c24: PUSH1 0x02 00000c26: MUL 00000c27: ADD 00000c28: PUSH1 0x00 00000c2a: POP 00000c2b: SWAP1 00000c2c: POP 00000c2d: DUP1 00000c2e: PUSH1 0x00 00000c30: ADD 00000c31: PUSH1 0x00 00000c33: SWAP1 00000c34: SLOAD 00000c35: SWAP1 00000c36: PUSH2 0x0100 00000c39: EXP 00000c3a: SWAP1 00000c3b: DIV 00000c3c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c51: AND 00000c52: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c67: AND 00000c68: PUSH1 0x00 00000c6a: DUP3 00000c6b: PUSH1 0x01 00000c6d: ADD 00000c6e: PUSH1 0x00 00000c70: POP 00000c71: SLOAD 00000c72: PUSH1 0x40 00000c74: MLOAD 00000c75: DUP1 00000c76: SWAP1 00000c77: POP 00000c78: PUSH1 0x00 00000c7a: PUSH1 0x40 00000c7c: MLOAD 00000c7d: DUP1 00000c7e: DUP4 00000c7f: SUB 00000c80: DUP2 00000c81: DUP6 00000c82: DUP9 00000c83: DUP9 00000c84: CALL 00000c85: SWAP4 00000c86: POP 00000c87: POP 00000c88: POP 00000c89: POP 00000c8a: POP 00000c8b: JUMPDEST 00000c8c: DUP2 00000c8d: DUP1 00000c8e: PUSH1 0x01 00000c90: ADD 00000c91: SWAP3 00000c92: POP 00000c93: POP 00000c94: PUSH2 0x04a0 00000c97: JUMP 00000c98: JUMPDEST 00000c99: JUMPDEST 00000c9a: POP 00000c9b: POP 00000c9c: JUMP
Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. To mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment.
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | codex | Top-level accounting decrements user balances but creates child contracts with zero ETH | 85 | no | — |
viewevidence_json{
"evidence": "Top-level selector 0x9e39db73 reaches pc 0x11d and adds CALLVALUE into storage keyed by keccak(arg,1). Selector 0xa9059cbb reaches pc 0x20a, where CREATE is executed from prepared initcode with a zero literal pushed immediately before CREATE; afterwards the code subtracts the requested amount from the same storage bucket at pc 0x23a-0x247-equivalent SSTORE logic. The top-level region has CREATE as its only sink; no CALL/SELFDESTRUCT appears before the embedded blob at 0x2f5.",
"locations": [
"selector:0x9e39db73",
"selector:0xa9059cbb",
"pc:0x11d",
"pc:0x20a",
"pc:0x247"
],
"recommendation": "Fund the created child with the withdrawn amount, or do not decrement recorded balances unless value transfer succeeds. Also add an explicit invariant that parent balance tracks outstanding recorded balances, and reject unexpected CALLVALUE on non-deposit paths.",
"exploit_scenario": "On the live contract, selector 0x9e39db73 credits a per-user storage bucket with CALLVALUE, so users can deposit ETH. Later, selector 0xa9059cbb checks that recorded bucket and decrements it, but the CREATE at pc 0x20a is invoked with zero value. The returned child contract is therefore unfunded while the parent keeps the ETH. Because the live top-level bytecode has no CALL/SELFDESTRUCT withdrawal path before the embedded child blob, deposited ETH can become stranded in the parent while users' recorded balances are burned down."
}
|
| high | reentrancy | codex | Deployable child runtime pays arbitrary recipients via CALL with no reentrancy guard | 85 | no | — |
viewevidence_json{
"evidence": "The bundle confirms CREATE reachability, and the embedded child runtime dispatches selector 0x119f8747 to the payout loop starting near pc 0xbf4. Inside that loop, recipient/value pairs are loaded from storage-backed entries and sent with CALL at pc 0xc84. There is no guard detection in this path and no protective SSTORE before the CALL; execution simply POPs the result and continues looping.",
"locations": [
"selector:0x119f8747",
"pc:0x685",
"pc:0xbf4",
"pc:0xc84"
],
"recommendation": "Apply checks-effects-interactions: mark entries as paid or advance persistent progress before the CALL, add a reentrancy guard, and preferably use a pull-payment model where recipients withdraw individually.",
"exploit_scenario": "A reachable child runtime embedded in the bytecode exposes selector 0x119f8747, which iterates over stored payout entries and performs a value-bearing CALL to each recipient. A malicious recipient contract can reenter 0x119f8747 from its fallback during the CALL at pc 0xc84. Because the loop uses only stack-local progress and does not mark entries as paid or lock execution before the external call, the nested invocation can restart the payout loop from the beginning and replay payouts until the child contract balance is drained."
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0x88af4e0493c8e65d6075047f4693f86ffd498899ddff1bef772816760d48f855
call_targets:
0x480d57dbf6c3b49916b9325e2c5ed92401c54efc
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x88af4e0493c8e65d6075047f4693f86ffd498899ddff1bef772816760d48f855",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x480d57dbf6c3b49916b9325e2c5ed92401c54efc"
],
"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": "0x27e235e3",
"selector": "0x27e235e3",
"calldata_variants": [
"0x27e235e3",
"0x27e235e30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x6a42b8f8",
"selector": "0x6a42b8f8",
"calldata_variants": [
"0x6a42b8f8",
"0x6a42b8f80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x9e39db73",
"selector": "0x9e39db73",
"calldata_variants": [
"0x9e39db73",
"0x9e39db730000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa9059cbb",
"selector": "0xa9059cbb",
"calldata_variants": [
"0xa9059cbb",
"0xa9059cbb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0fe65b36",
"selector": "0x0fe65b36",
"calldata_variants": [
"0x0fe65b36",
"0x0fe65b360000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x66d003ac",
"selector": "0x66d003ac",
"calldata_variants": [
"0x66d003ac",
"0x66d003ac0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x86d1a69f",
"selector": "0x86d1a69f",
"calldata_variants": [
"0x86d1a69f",
"0x86d1a69f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8da5cb5b",
"selector": "0x8da5cb5b",
"calldata_variants": [
"0x8da5cb5b",
"0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3204,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 1,
"guards_detected": [
{
"pc": 1324,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1478,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
}
|
| medium | other | detector | SELFDESTRUCT reachable | 45 | no | no |
viewtrace_id: 0xc7272ffad5d2b5794e57e8b73d1fac432b9fb2c9ba69d4b3b44ada3972138566
validation_json{
"sink": "SELFDESTRUCT",
"errors": 0,
"status": "unknown",
"attempts": 32,
"trace_id": "0xc7272ffad5d2b5794e57e8b73d1fac432b9fb2c9ba69d4b3b44ada3972138566",
"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": "0x27e235e3",
"selector": "0x27e235e3",
"calldata_variants": [
"0x27e235e3",
"0x27e235e30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x6a42b8f8",
"selector": "0x6a42b8f8",
"calldata_variants": [
"0x6a42b8f8",
"0x6a42b8f80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x9e39db73",
"selector": "0x9e39db73",
"calldata_variants": [
"0x9e39db73",
"0x9e39db730000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa9059cbb",
"selector": "0xa9059cbb",
"calldata_variants": [
"0xa9059cbb",
"0xa9059cbb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0fe65b36",
"selector": "0x0fe65b36",
"calldata_variants": [
"0x0fe65b36",
"0x0fe65b360000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x66d003ac",
"selector": "0x66d003ac",
"calldata_variants": [
"0x66d003ac",
"0x66d003ac0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x86d1a69f",
"selector": "0x86d1a69f",
"calldata_variants": [
"0x86d1a69f",
"0x86d1a69f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8da5cb5b",
"selector": "0x8da5cb5b",
"calldata_variants": [
"0x8da5cb5b",
"0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 1324,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1478,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"selfdestruct_count": 5
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0x88af4e0493c8e65d6075047f4693f86ffd498899ddff1bef772816760d48f855
call_targets:
0x480d57dbf6c3b49916b9325e2c5ed92401c54efc
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x88af4e0493c8e65d6075047f4693f86ffd498899ddff1bef772816760d48f855",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x480d57dbf6c3b49916b9325e2c5ed92401c54efc"
],
"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": "0x27e235e3",
"selector": "0x27e235e3",
"calldata_variants": [
"0x27e235e3",
"0x27e235e30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x6a42b8f8",
"selector": "0x6a42b8f8",
"calldata_variants": [
"0x6a42b8f8",
"0x6a42b8f80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x9e39db73",
"selector": "0x9e39db73",
"calldata_variants": [
"0x9e39db73",
"0x9e39db730000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa9059cbb",
"selector": "0xa9059cbb",
"calldata_variants": [
"0xa9059cbb",
"0xa9059cbb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0fe65b36",
"selector": "0x0fe65b36",
"calldata_variants": [
"0x0fe65b36",
"0x0fe65b360000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x66d003ac",
"selector": "0x66d003ac",
"calldata_variants": [
"0x66d003ac",
"0x66d003ac0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x86d1a69f",
"selector": "0x86d1a69f",
"calldata_variants": [
"0x86d1a69f",
"0x86d1a69f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8da5cb5b",
"selector": "0x8da5cb5b",
"calldata_variants": [
"0x8da5cb5b",
"0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3204,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 1,
"guards_detected": [
{
"pc": 1324,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1478,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"untrusted_call_count": 1
}
|
| medium | other | detector | CREATE/CREATE2 reachable | 45 | yes | yes |
viewtrace_id: 0x9eb9fb3ab52c7f7942703a1b405913728eac72e65389fad222d7ce3e86305129
validation_json{
"sink": "CREATE",
"errors": 0,
"status": "confirmed",
"attempts": 7,
"trace_id": "0x9eb9fb3ab52c7f7942703a1b405913728eac72e65389fad222d7ce3e86305129",
"confirmed": true,
"trace_mode": "structLogs",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "sink_reached"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x27e235e3",
"selector": "0x27e235e3",
"calldata_variants": [
"0x27e235e3",
"0x27e235e30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x6a42b8f8",
"selector": "0x6a42b8f8",
"calldata_variants": [
"0x6a42b8f8",
"0x6a42b8f80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x9e39db73",
"selector": "0x9e39db73",
"calldata_variants": [
"0x9e39db73",
"0x9e39db730000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa9059cbb",
"selector": "0xa9059cbb",
"calldata_variants": [
"0xa9059cbb",
"0xa9059cbb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0fe65b36",
"selector": "0x0fe65b36",
"calldata_variants": [
"0x0fe65b36",
"0x0fe65b360000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x66d003ac",
"selector": "0x66d003ac",
"calldata_variants": [
"0x66d003ac",
"0x66d003ac0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x86d1a69f",
"selector": "0x86d1a69f",
"calldata_variants": [
"0x86d1a69f",
"0x86d1a69f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8da5cb5b",
"selector": "0x8da5cb5b",
"calldata_variants": [
"0x8da5cb5b",
"0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"create_count": 2,
"create2_count": 0
}
|
| medium | other | codex | Child payout loop ignores CALL failure, so recipients can be skipped and funds redistributed incorrectly | 75 | no | — |
viewevidence_json{
"evidence": "At pc 0xc84 the child runtime executes CALL, then immediately POPs the return value and advances the loop without branching on success or inspecting returndata. Selector 0x86d1a69f jumps into the same internal payout routine and later reaches SELFDESTRUCT, making silent payment failure an accounting risk rather than a benign no-op.",
"locations": [
"selector:0x119f8747",
"selector:0x86d1a69f",
"pc:0xc84",
"pc:0xa25"
],
"recommendation": "Check the CALL success flag and revert or record the debt when a transfer fails. Do not selfdestruct or finalize distribution until every intended payment is confirmed.",
"exploit_scenario": "In the same deployable child runtime, if any payout recipient reverts or the value transfer fails, the CALL result is discarded and the loop continues. A reverting recipient can therefore be silently skipped, while later logic still proceeds. In the expiry path, selector 0x86d1a69f invokes the same loop and then selfdestructs the remaining balance to slot0, so unpaid recipients can lose their allocation entirely."
}
|