019b3836-4037-72bb-9d6d-c3ea4fe3f99f
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 |
|---|---|---|---|---|
| 5181 | artifact.fetch | complete | 1 / 3 | 3 months ago |
| 5182 | tool.cast_disasm | complete | 1 / 3 | 3 months ago |
| 48744 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 48745 | capability.graph | complete | 1 / 3 | 1 week ago |
| 48746 | detector.run | complete | 1 / 3 | 1 week ago |
| 48747 | validation.fork | complete | 1 / 3 | 1 week ago |
| 113300 | report.consolidate | complete | 1 / 6 | 1 week ago |
No slither job recorded yet.
{"no_findings":false,"summary":"BYTECODE_BUNDLE.json describes a non-standard ERC20-like contract with owner-gated parameter setters, allowance/balance mappings, and a token-for-ETH payout path. I found one concrete accounting bug around an unchecked ETH transfer, plus two selector/interface mismatches that materially affect access control and ERC20 compatibility.","findings":[{"severity":"medium","category":"other","title":"Unchecked ETH payout can debit seller balances without confirming payment","exploit_scenario":"A user calling selector 0xdc3080f2 from a contract wallet or any recipient that rejects ETH can have their token balance debited and the contract balance credited before the payout CALL executes. Because the CALL result is ignored, the transaction can complete with no ETH delivered to the seller.","recommendation":"Check the low-level CALL result and revert on failure, or switch to a pull-payment withdrawal model so token accounting is only finalized after a confirmed payout.","evidence":"The dispatcher routes selector 0xdc3080f2 to pc 0x507. That path recomputes slot8 from contract ETH balance, verifies the caller balance in slot9, then updates balances before the external CALL: balance writes occur in the 0x64a routine before pc 0x691. The CALL at pc 0x691 is followed only by POP/POP and event emission; unlike the CALL at pc 0x4aa, there is no ISZERO/JUMPI failure check after pc 0x691.","locations":["selector:0xdc3080f2","pc:0x64a","pc:0x67d","pc:0x691"]},{"severity":"medium","category":"other","title":"Standard ERC20 selector 0x23b872dd does not implement transferFrom semantics","exploit_scenario":"An exchange, router, or escrow calling transferFrom(address,address,uint256) will expect allowance consumption, balance movement, and a boolean return. Here the standard selector appears to do only a balance check and then returns the low byte of slot3, so standard integrations can fail or the token can behave like a honeypot despite exposing ERC20-looking selectors.","recommendation":"Implement ERC20-compliant transferFrom logic under selector 0x23b872dd, or remove/avoid advertising the standard selector if the function is intentionally non-standard.","evidence":"Selector inference is explicit in the dispatcher: 0x23b872dd jumps to pc 0x19f. The 0x19f-0x1d0 path loads three calldata words, computes a slot9 balance lookup, compares it to the second argument, and on success jumps to pc 0x1d1. Pc 0x1d1 immediately returns sload(0x03) & 0xff through the common return helper. There is no SSTORE, no LOG3 Transfer event, and no allowance decrement anywhere on that selector path.","locations":["selector:0x23b872dd","pc:0x19f","pc:0x1c4","pc:0x1d1"]},{"severity":"low","category":"access_control","title":"`transferOwnership` selector does not update the owner slot used by auth checks","exploit_scenario":"Operators and tooling may assume selector 0xf2fde38b is standard Ownable.transferOwnership. In this bytecode, admin checks consistently read slot0, but 0xf2fde38b writes slot5 instead. If the slot0 owner key is lost, ownership cannot be rotated, and monitoring tooling can falsely believe ownership was transferred.","recommendation":"If ownership rotation is intended, update slot0 in the 0xf2fde38b path. Otherwise remove the standard selector or document clearly that ownership is immutable and slot5 is a different role.","evidence":"The standard owner getter 0x8da5cb5b returns sload(0x00) masked to an address. Admin guards compare CALLER with sload(0x00) at pcs 0x177, 0x254, 0x33e, and 0x553. By contrast, selector 0xf2fde38b dispatches to pc 0x54a and reaches the 0x815 routine, which reads and writes slot5, never slot0.","locations":["selector:0x8da5cb5b","selector:0xf2fde38b","pc:0x177","pc:0x254","pc:0x33e","pc:0x553","pc:0x54a","pc:0x815"]}]}
},
{
"op": "SLOAD",
"pc": 626,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 645,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 715,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 735,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 809,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 818,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000008"
},
{
"op": "SLOAD",
"pc": 830,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SSTORE",
"pc": 1001,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1296,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 1363,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1393,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1666,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000008"
},
{
"op": "SLOAD",
"pc": 1740,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2073,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2128,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 2274,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 2341,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 2378,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 2443,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2514,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
}
],
"writes": 17
}
},
{
"auth": {
"guards": []
},
"entry_pc": 2854837737,
"selector": "0xa9059cbb",
"sinks": {
"call": 6,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 47,
"slots": [
{
"op": "SLOAD",
"pc": 272,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 343,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 363,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 375,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 406,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 471,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 596,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 626,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 645,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 715,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 735,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 809,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 818,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000008"
},
{
"op": "SLOAD",
"pc": 830,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SSTORE",
"pc": 1001,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1296,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 1363,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1393,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1666,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000008"
},
{
"op": "SLOAD",
"pc": 1740,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2073,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2128,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 2274,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 2341,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 2378,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 2443,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2514,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
}
],
"writes": 17
}
},
{
"auth": {
"guards": []
},
"entry_pc": 3154722889,
"selector": "0xaa295de9",
"sinks": {
"call": 6,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 47,
"slots": [
{
"op": "SLOAD",
"pc": 272,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 343,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 363,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 375,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 406,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 471,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 596,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 626,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 645,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 715,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 735,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 809,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 818,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000008"
},
{
"op": "SLOAD",
"pc": 830,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SSTORE",
"pc": 1001,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1296,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 1363,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1393,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1666,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000008"
},
{
"op": "SLOAD",
"pc": 1740,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2073,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2128,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 2274,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 2341,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 2378,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 2443,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2514,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
}
],
"writes": 17
}
},
{
"auth": {
"guards": []
},
"entry_pc": 3296960139,
"selector": "0xbc094049",
"sinks": {
"call": 6,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 47,
"slots": [
{
"op": "SLOAD",
"pc": 272,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 343,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 363,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 375,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 406,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 471,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 596,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 626,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 645,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 715,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 735,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 809,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 818,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000008"
},
{
"op": "SLOAD",
"pc": 830,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SSTORE",
"pc": 1001,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1296,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 1363,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1393,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1666,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000008"
},
{
"op": "SLOAD",
"pc": 1740,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2073,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2128,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 2274,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 2341,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 2378,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 2443,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2514,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
}
],
"writes": 17
}
},
{
"auth": {
"guards": []
},
"entry_pc": 3404319313,
"selector": "0xc4839e8b",
"sinks": {
"call": 6,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 47,
"slots": [
{
"op": "SLOAD",
"pc": 272,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 343,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 363,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 375,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 406,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 471,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 596,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 626,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 645,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 715,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 735,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 809,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 818,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000008"
},
{
"op": "SLOAD",
"pc": 830,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SSTORE",
"pc": 1001,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1296,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 1363,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1393,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1666,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000008"
},
{
"op": "SLOAD",
"pc": 1740,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2073,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2128,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 2274,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 2341,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 2378,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 2443,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2514,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
}
],
"writes": 17
}
},
{
"auth": {
"guards": []
},
"entry_pc": 3694166258,
"selector": "0xcae9ca51",
"sinks": {
"call": 6,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 47,
"slots": [
{
"op": "SLOAD",
"pc": 272,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 343,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 363,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 375,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 406,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 471,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 596,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 626,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 645,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 715,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 735,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 809,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 818,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000008"
},
{
"op": "SLOAD",
"pc": 830,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SSTORE",
"pc": 1001,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1296,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 1363,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1393,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1666,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000008"
},
{
"op": "SLOAD",
"pc": 1740,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2073,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2128,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 2274,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 2341,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 2378,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 2443,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2514,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
}
],
"writes": 17
}
},
{
"auth": {
"guards": []
},
"entry_pc": 3714247998,
"selector": "0xdc3080f2",
"sinks": {
"call": 6,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 47,
"slots": [
{
"op": "SLOAD",
"pc": 272,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 343,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 363,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 375,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 406,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 471,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 596,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 626,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 645,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 715,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 735,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 809,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 818,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000008"
},
{
"op": "SLOAD",
"pc": 830,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SSTORE",
"pc": 1001,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1296,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 1363,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1393,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1666,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000008"
},
{
"op": "SLOAD",
"pc": 1740,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2073,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2128,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 2274,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 2341,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 2378,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 2443,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2514,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
}
],
"writes": 17
}
},
{
"auth": {
"guards": []
},
"entry_pc": 3833895730,
"selector": "0xdd62ed3e",
"sinks": {
"call": 6,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 47,
"slots": [
{
"op": "SLOAD",
"pc": 272,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 343,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 363,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 375,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 406,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 471,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 596,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 626,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 645,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 715,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 735,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 809,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 818,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000008"
},
{
"op": "SLOAD",
"pc": 830,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SSTORE",
"pc": 1001,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1296,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 1363,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1393,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1666,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000008"
},
{
"op": "SLOAD",
"pc": 1740,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2073,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2128,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 2274,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 2341,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 2378,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 2443,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2514,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
}
],
"writes": 17
}
},
{
"auth": {
"guards": []
},
"entry_pc": 4076725131,
"selector": "0xe4849b32",
"sinks": {
"call": 6,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 47,
"slots": [
{
"op": "SLOAD",
"pc": 272,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 343,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 363,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 375,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 406,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 471,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 596,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 626,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 645,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 715,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 735,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 809,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 818,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000008"
},
{
"op": "SLOAD",
"pc": 830,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SSTORE",
"pc": 1001,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1296,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 1363,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1393,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1666,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000008"
},
{
"op": "SLOAD",
"pc": 1740,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2073,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2128,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 2274,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 2341,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 2378,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 2443,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2514,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
}
],
"writes": 17
}
},
{
"auth": {
"guards": []
},
"entry_pc": 4288363215,
"selector": "0xf2fde38b",
"sinks": {
"call": 6,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 47,
"slots": [
{
"op": "SLOAD",
"pc": 272,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 343,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 363,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 375,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 406,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 471,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 596,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 626,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 645,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 715,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 735,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 809,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 818,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000008"
},
{
"op": "SLOAD",
"pc": 830,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SSTORE",
"pc": 1001,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1296,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 1363,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1393,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1666,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000008"
},
{
"op": "SLOAD",
"pc": 1740,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2073,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2128,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 2274,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 2341,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 2378,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 2443,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2514,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
}
],
"writes": 17
}
},
{
"auth": {
"guards": []
},
"entry_pc": null,
"selector": "0xff9b3acf",
"sinks": {
"call": 6,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 47,
"slots": [
{
"op": "SLOAD",
"pc": 272,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 343,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 363,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 375,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 406,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 471,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 596,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 626,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 645,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 715,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 735,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 809,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 818,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000008"
},
{
"op": "SLOAD",
"pc": 830,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SSTORE",
"pc": 1001,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1296,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 1363,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1393,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1666,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000008"
},
{
"op": "SLOAD",
"pc": 1740,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2073,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2128,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 2274,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 2341,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 2378,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 2443,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2514,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
}
],
"writes": 17
}
}
]
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.callsites' BYTECODE_BUNDLE.json" in /tmp/codex-cac8u3sx
succeeded in 0ms:
[
{
"opcode": "CALL",
"pc": 1126,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 1194,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 1459,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 1681,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALLCODE",
"pc": 2570,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 2588,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
}
]
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.storage' BYTECODE_BUNDLE.json" in /tmp/codex-cac8u3sx
succeeded in 0ms:
{
"keccak_count": 30,
"reads": 47,
"slots": [
{
"op": "SLOAD",
"pc": 272,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 343,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 363,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 375,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 406,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 471,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 596,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 626,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 645,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 715,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 735,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 809,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 818,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000008"
},
{
"op": "SLOAD",
"pc": 830,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SSTORE",
"pc": 1001,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1296,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 1363,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1393,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1666,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000008"
},
{
"op": "SLOAD",
"pc": 1740,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2073,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2128,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 2274,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 2341,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 2378,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
},
{
"op": "SLOAD",
"pc": 2443,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2514,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
}
],
"writes": 17
}
exec
/bin/bash -lc "jq '.capability_graph' BYTECODE_BUNDLE.json" in /tmp/codex-cac8u3sx
succeeded in 0ms:
{
"address": "0xbe1c8694b8457b4f8dd06eb11d236b4aa4d5b2b9",
"block_number": null,
"chain_id": 1,
"codehash": "0x48d2f9bdc3cccf93455d94afab0072f957ed607bcc4360c3f7e8602bb59c7990",
"created_at": "2026-04-04T19:59:19.000000Z",
"graph_hash": "0x66e7cbd51ecdcf244aff432bf194d43d283e28548df819b6f40a2bc17b49cc3a",
"graph_json": {
"edges": [
{
"from": "bb:0",
"to": "bb:262",
"type": "control_flow"
},
{
"from": "bb:0",
"to": "bb:11",
"type": "control_flow_fallthrough"
},
{
"from": "bb:11",
"to": "bb:264",
"type": "control_flow"
},
{
"from": "bb:11",
"to": "bb:31",
"type": "control_flow_fallthrough"
},
{
"from": "bb:31",
"to": "bb:357",
"type": "control_flow"
},
{
"from": "bb:31",
"to": "bb:42",
"type": "control_flow_fallthrough"
},
{
"from": "bb:42",
"to": "bb:366",
"type": "control_flow"
},
{
"from": "bb:42",
"to": "bb:53",
"type": "control_flow_fallthrough"
},
{
"from": "bb:53",
"to": "bb:400",
"type": "control_flow"
},
{
"from": "bb:53",
"to": "bb:64",
"type": "control_flow_fallthrough"
},
{
"from": "bb:64",
"to": "bb:415",
"type": "control_flow"
},
{
"from": "bb:64",
"to": "bb:75",
"type": "control_flow_fallthrough"
},
{
"from": "bb:75",
"to": "bb:465",
"type": "control_flow"
},
{
"from": "bb:75",
"to": "bb:86",
"type": "control_flow_fallthrough"
},
{
"from": "bb:86",
"to": "bb:477",
"type": "control_flow"
},
{
"from": "bb:86",
"to": "bb:97",
"type": "control_flow_fallthrough"
},
{
"from": "bb:97",
"to": "bb:563",
"type": "control_flow"
},
{
"from": "bb:97",
"to": "bb:108",
"type": "control_flow_fallthrough"
},
{
"from": "bb:108",
"to": "bb:587",
"type": "control_flow"
},
{
"from": "bb:108",
"to": "bb:119",
"type": "control_flow_fallthrough"
},
{
"from": "bb:119",
"to": "bb:620",
"type": "control_flow"
},
{
"from": "bb:119",
"to": "bb:130",
"type": "control_flow_fallthrough"
},
{
"from": "bb:130",
"to": "bb:638",
"type": "control_flow"
},
{
"from": "bb:130",
"to": "bb:141",
"type": "control_flow_fallthrough"
},
{
"from": "bb:141",
"to": "bb:729",
"type": "control_flow"
},
{
"from": "bb:141",
"to": "bb:152",
"type": "control_flow_fallthrough"
},
{
"from": "bb:152",
"to": "bb:756",
"type": "control_flow"
},
{
"from": "bb:152",
"to": "bb:163",
"type": "control_flow_fallthrough"
},
{
"from": "bb:163",
"to": "bb:803",
"type": "control_flow"
},
{
"from": "bb:163",
"to": "bb:174",
"type": "control_flow_fallthrough"
},
{
"from": "bb:174",
"to": "bb:812",
"type": "control_flow"
},
{
"from": "bb:174",
"to": "bb:185",
"type": "control_flow_fallthrough"
},
{
"from": "bb:185",
"to": "bb:821",
"type": "control_flow"
},
{
"from": "bb:185",
"to": "bb:196",
"type": "control_flow_fallthrough"
},
{
"from": "bb:196",
"to": "bb:854",
"type": "control_flow"
},
{
"from": "bb:196",
"to": "bb:207",
"type": "control_flow_fallthrough"
},
{
"from": "bb:207",
"to": "bb:1213",
"type": "control_flow"
},
{
"from": "bb:207",
"to": "bb:218",
"type": "control_flow_fallthrough"
},
{
"from": "bb:218",
"to": "bb:1250",
"type": "control_flow"
},
{
"from": "bb:218",
"to": "bb:229",
"type": "control_flow_fallthrough"
},
{
"from": "bb:229",
"to": "bb:1287",
"type": "control_flow"
},
{
"from": "bb:229",
"to": "bb:240",
"type": "control_flow_fallthrough"
},
{
"from": "bb:240",
"to": "bb:1354",
"type": "control_flow"
},
{
"from": "bb:240",
"to": "bb:251",
"type": "control_flow_fallthrough"
},
{
"from": "bb:251",
"to": "bb:1387",
"type": "control_flow"
},
{
"from": "bb:251",
"to": "bb:262",
"type": "control_flow_fallthrough"
},
{
"from": "bb:264",
"to": "bb:1813",
"type": "control_flow"
},
{
"from": "bb:264",
"to": "bb:330",
"type": "control_flow_fallthrough"
},
{
"from": "bb:330",
"to": "bb:1770",
"type": "control_flow"
},
{
"from": "bb:330",
"to": "bb:338",
"type": "control_flow_fallthrough"
},
{
"from": "bb:338",
"to": "bb:1813",
"type": "control_flow"
},
{
"from": "bb:366",
"to": "bb:2064",
"type": "control_flow"
},
{
"from": "bb:366",
"to": "bb:396",
"type": "control_flow_fallthrough"
},
{
"from": "bb:415",
"to": "bb:1829",
"type": "control_flow"
},
{
"from": "bb:415",
"to": "bb:461",
"type": "control_flow_fallthrough"
},
{
"from": "bb:477",
"to": "bb:487",
"type": "control_flow_fallthrough"
},
{
"from": "bb:487",
"to": "bb:492",
"type": "control_flow_fallthrough"
},
{
"from": "bb:492",
"to": "bb:1821",
"type": "control_flow"
},
{
"from": "bb:492",
"to": "bb:501",
"type": "control_flow_fallthrough"
},
{
"from": "bb:501",
"to": "bb:555",
"type": "control_flow"
},
{
"from": "bb:501",
"to": "bb:546",
"type": "control_flow_fallthrough"
},
{
"from": "bb:546",
"to": "bb:555",
"type": "control_flow_fallthrough"
},
{
"from": "bb:555",
"to": "bb:492",
"type": "control_flow"
},
{
"from": "bb:587",
"to": "bb:2069",
"type": "control_flow"
},
{
"from": "bb:587",
"to": "bb:616",
"type": "control_flow_fallthrough"
},
{
"from": "bb:638",
"to": "bb:1813",
"type": "control_flow"
},
{
"from": "bb:638",
"to": "bb:702",
"type": "control_flow_fallthrough"
},
{
"from": "bb:702",
"to": "bb:1770",
"type": "control_flow"
},
{
"from": "bb:702",
"to": "bb:710",
"type": "control_flow_fallthrough"
},
{
"from": "bb:710",
"to": "bb:1813",
"type": "control_flow"
},
{
"from": "bb:729",
"to": "bb:2271",
"type": "control_flow"
},
{
"from": "bb:729",
"to": "bb:752",
"type": "control_flow_fallthrough"
},
{
"from": "bb:756",
"to": "bb:2142",
"type": "control_flow"
},
{
"from": "bb:756",
"to": "bb:799",
"type": "control_flow_fallthrough"
},
{
"from": "bb:821",
"to": "bb:2103",
"type": "control_flow"
},
{
"from": "bb:821",
"to": "bb:850",
"type": "control_flow_fallthrough"
},
{
"from": "bb:854",
"to": "bb:1168",
"type": "control_flow"
},
{
"from": "bb:854",
"to": "bb:1143",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1143",
"to": "bb:1168",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1168",
"to": "bb:1200",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1287",
"to": "bb:1610",
"type": "control_flow"
},
{
"from": "bb:1287",
"to": "bb:1350",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1354",
"to": "bb:1736",
"type": "control_flow"
},
{
"from": "bb:1354",
"to": "bb:1383",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1405",
"to": "bb:1501",
"type": "control_flow"
},
{
"from": "bb:1405",
"to": "bb:1476",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1476",
"to": "bb:1501",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1770",
"to": "bb:1784",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1784",
"to": "bb:1784",
"type": "control_flow"
},
{
"from": "bb:1784",
"to": "bb:1804",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1804",
"to": "bb:1813",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1829",
"to": "bb:1868",
"type": "control_flow"
},
{
"from": "bb:1829",
"to": "bb:1864",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1868",
"to": "bb:1944",
"type": "control_flow"
},
{
"from": "bb:1868",
"to": "bb:1940",
"type": "control_flow_fallthrough"
},
{
"from": "bb:2103",
"to": "bb:2124",
"type": "control_flow"
},
{
"from": "bb:2103",
"to": "bb:2120",
"type": "control_flow_fallthrough"
},
{
"from": "bb:2142",
"to": "bb:2181",
"type": "control_flow"
},
{
"from": "bb:2142",
"to": "bb:2177",
"type": "control_flow_fallthrough"
},
{
"from": "bb:2271",
"to": "bb:487",
"type": "control_flow"
},
{
"from": "bb:2338",
"to": "bb:2375",
"type": "control_flow"
},
{
"from": "bb:2338",
"to": "bb:2357",
"type": "control_flow_fallthrough"
},
{
"from": "bb:2357",
"to": "bb:2375",
"type": "control_flow_fallthrough"
},
{
"from": "bb:2375",
"to": "bb:2405",
"type": "control_flow"
},
{
"from": "bb:2375",
"to": "bb:2392",
"type": "control_flow_fallthrough"
},
{
"from": "bb:2392",
"to": "bb:2405",
"type": "control_flow_fallthrough"
},
{
"from": "fn:0x18160ddd",
"to": "bb:535423676",
"type": "entry"
},
{
"from": "fn:0x1fe9eabc",
"to": "bb:591257894",
"type": "entry"
},
{
"from": "fn:0x233de126",
"to": "bb:599290589",
"type": "entry"
},
{
"from": "fn:0x23b872dd",
"to": "bb:826074471",
"type": "entry"
},
{
"from": "fn:0x313ce567",
"to": "bb:1106921590",
"type": "entry"
},
{
"from": "fn:0x41fa4876",
"to": "bb:1889567281",
"type": "entry"
},
{
"from": "fn:0x70a08231",
"to": "bb:2133494400",
"type": "entry"
},
{
"from": "fn:0x7f2a8a80",
"to": "bb:2376452955",
"type": "entry"
},
{
"from": "fn:0x8da5cb5b",
"to": "bb:2514000705",
"type": "entry"
},
{
"from": "fn:0x95d89b41",
"to": "bb:2800922170",
"type": "entry"
},
{
"from": "fn:0xa6f2ae3a",
"to": "bb:2835717307",
"type": "entry"
},
{
"from": "fn:0xa9059cbb",
"to": "bb:2854837737",
"type": "entry"
},
{
"from": "fn:0xaa295de9",
"to": "bb:3154722889",
"type": "entry"
},
{
"from": "fn:0xbc094049",
"to": "bb:3296960139",
"type": "entry"
},
{
"from": "fn:0xc4839e8b",
"to": "bb:3404319313",
"type": "entry"
},
{
"from": "fn:0xcae9ca51",
"to": "bb:3694166258",
"type": "entry"
},
{
"from": "fn:0xdc3080f2",
"to": "bb:3714247998",
"type": "entry"
},
{
"from": "fn:0xdd62ed3e",
"to": "bb:3833895730",
"type": "entry"
},
{
"from": "fn:0xe4849b32",
"to": "bb:4076725131",
"type": "entry"
},
{
"from": "fn:0xf2fde38b",
"to": "bb:4288363215",
"type": "entry"
},
{
"from": "bb:854",
"to": "call:1126",
"type": "contains"
},
{
"from": "call:1126",
"to": "sink:call",
"type": "capability"
},
{
"from": "bb:1168",
"to": "call:1194",
"type": "contains"
},
{
"from": "call:1194",
"to": "sink:call",
"type": "capability"
},
{
"from": "bb:1405",
"to": "call:1459",
"type": "contains"
},
{
"from": "call:1459",
"to": "sink:call",
"type": "capability"
},
{
"from": "bb:1610",
"to": "call:1681",
"type": "contains"
},
{
"from": "call:1681",
"to": "sink:call",
"type": "capability"
},
{
"from": "bb:2569",
"to": "call:2570",
"type": "contains"
},
{
"from": "call:2570",
"to": "sink:callcode",
"type": "capability"
},
{
"from": "bb:2569",
"to": "call:2588",
"type": "contains"
},
{
"from": "call:2588",
"to": "sink:call",
"type": "capability"
}
],
"nodes": [
{
"end_pc": 10,
"hash": "0xf11444caaf4db510565a598ec5db1095f6815c9db671a85c90dde30dacbe11e2",
"id": "bb:0",
"start_pc": 0,
"type": "basic_block"
},
{
"end_pc": 30,
"hash": "0x81ba1990cb6d08ec7e9f5cef473cf689c892f720fb932454a377fa40a7b6acb2",
"id": "bb:11",
"start_pc": 11,
"type": "basic_block"
},
{
"end_pc": 41,
"hash": "0xbb4adb6b0343b466b21e5c872124ae1246c15937f907412dff7a45be4b89e23a",
"id": "bb:31",
"start_pc": 31,
"type": "basic_block"
},
{
"end_pc": 52,
"hash": "0xea19454bfe01c00dbab35612f8aa52f8f8f0fb5376f0c092cc366ffb9e4c6857",
"id": "bb:42",
"start_pc": 42,
"type": "basic_block"
},
{
"end_pc": 63,
"hash": "0xd69d368fec6c14dd7b3dc3a73b7ce17524cd586475c440422e4028feda4fe985",
"id": "bb:53",
"start_pc": 53,
"type": "basic_block"
},
{
"end_pc": 74,
"hash": "0x22ac288b26f96d1f2be88284216b7a65d533ac2cbf794a41853e29d9f15cb49f",
"id": "bb:64",
"start_pc": 64,
"type": "basic_block"
},
{
"end_pc": 85,
"hash": "0x4a871c50e75c9501bcbed914881e4008e1796505737385677e4df8f3d54ca784",
"id": "bb:75",
"start_pc": 75,
"type": "basic_block"
},
{
"end_pc": 96,
"hash": "0xd514a7eacaee8fb4ebdcbdcb38800c29184eab38b16861dd8b97b17c70aaa2ff",
"id": "bb:86",
"start_pc": 86,
"type": "basic_block"
},
{
"end_pc": 107,
"hash": "0x57d0236ed3c086498b49e1b50433804bdf79e7109c7b83755797f666e9fc8f6c",
"id": "bb:97",
"start_pc": 97,
"type": "basic_block"
},
{
"end_pc": 118,
"hash": "0x93f7d5d4e7efa89e76f8f86896757b0bc1282a0b1c617a39aa1a86408e7ae1ee",
"id": "bb:108",
"start_pc": 108,
"type": "basic_block"
},
{
"end_pc": 129,
"hash": "0xcc3c70fb9af60426f8e26d7e1f9ec383d88776d6512a9954f6bb6e8aff45b879",
"id": "bb:119",
"start_pc": 119,
"type": "basic_block"
},
{
"end_pc": 140,
"hash": "0x86e3595e017f2af8a502c2e68c7814eb5c9f0907f0afa551477a81f71d8834b2",
"id": "bb:130",
"start_pc": 130,
"type": "basic_block"
},
{
"end_pc": 151,
"hash": "0x48179b41f3610338adb51b04894be3a884a3d97e0d492a8aae6c114b635c31a3",
"id": "bb:141",
"start_pc": 141,
"type": "basic_block"
},
{
"end_pc": 162,
"hash": "0x00f2e521531902fffd26347661a176ca2eda1a0744be870cff160418e21f3b2e",
"id": "bb:152",
"start_pc": 152,
"type": "basic_block"
},
{
"end_pc": 173,
"hash": "0xdb6f001418c531caf78313cae502f5f6289e688d09acec1f8dc3970f238367c3",
"id": "bb:163",
"start_pc": 163,
"type": "basic_block"
},
{
"end_pc": 184,
"hash": "0x4d86ffa9c19fdc81e9e81d77c7c811e836ae5ff72a61881ab0f873a1c0d3f0be",
"id": "bb:174",
"start_pc": 174,
"type": "basic_block"
},
{
"end_pc": 195,
"hash": "0xa91d7fb99828f9689dc6ccda4a2a36fe23e57cd79450cabcd6123e9f6e7d764c",
"id": "bb:185",
"start_pc": 185,
"type": "basic_block"
},
{
"end_pc": 206,
"hash": "0x1997e43099f71cafa68597bcff4a83984a35254f78f24a47a1305635b012542c",
"id": "bb:196",
"start_pc": 196,
"type": "basic_block"
},
{
"end_pc": 217,
"hash": "0x2ac83c9fbd12121cfe837b579d467c8796a299f150c24a3d76eecf07a39b419f",
"id": "bb:207",
"start_pc": 207,
"type": "basic_block"
},
{
"end_pc": 228,
"hash": "0x0b9c7a41d23b43c8eb6b6cb37b34be1c160c87c1c13630c81ff211022224aa87",
"id": "bb:218",
"start_pc": 218,
"type": "basic_block"
},
{
"end_pc": 239,
"hash": "0x3101111f07321a4cb5fae2cfc264ca9ed59c8fa33a986357bc8acbc0e8c143f4",
"id": "bb:229",
"start_pc": 229,
"type": "basic_block"
},
{
"end_pc": 250,
"hash": "0x588b700516778b8e3806c84666105df995f7efcdbb949537604cff187a456925",
"id": "bb:240",
"start_pc": 240,
"type": "basic_block"
},
{
"end_pc": 261,
"hash": "0xbae336c9462b8c8d44d0ea7e760e45dc4bbda997209bf1a2137a4eb108907666",
"id": "bb:251",
"start_pc": 251,
"type": "basic_block"
},
{
"end_pc": 263,
"hash": "0xfa58d4586ba563afea8a6209e1c275e39f7a607bbb2afbfa6b1803387a47055c",
"id": "bb:262",
"start_pc": 262,
"type": "basic_block"
},
{
"end_pc": 329,
"hash": "0x7457dde49eb1e7c310ae594d0ea8843a53973093a8cac681b11555e6c32a0890",
"id": "bb:264",
"start_pc": 264,
"type": "basic_block"
},
{
"end_pc": 337,
"hash": "0xb41e350bdd3cb576ca09510c461d39eb1f214a2e3e41b677cc5dbe033c671e3c",
"id": "bb:330",
"start_pc": 330,
"type": "basic_block"
},
{
"end_pc": 356,
"hash": "0xb0561b504b540d01cdfd7c93e431acdde567b251ed0abaa905dc77722da3b3f0",
"id": "bb:338",
"start_pc": 338,
"type": "basic_block"
},
{
"end_pc": 365,
"hash": "0x21e1efe0a3f6bac958fec6a99c44261baff7b84d09f0229869bfe0c528c6f0e7",
"id": "bb:357",
"start_pc": 357,
"type": "basic_block"
},
{
"end_pc": 395,
"hash": "0xdcec327d1d726d5584b5012e901e42a0f3799ff0b4024d20f2a79094f517ced8",
"id": "bb:366",
"start_pc": 366,
"type": "basic_block"
},
{
"end_pc": 399,
"hash": "0x308901a1166184fe53071bea39dd107613c9a5d3e90924c678f29754c5b948ac",
"id": "bb:396",
"start_pc": 396,
"type": "basic_block"
},
{
"end_pc": 414,
"hash": "0x966d28f8d9b3de656399354571da18c3c2db471058fc477a5ab4cf7bfcef42e9",
"id": "bb:400",
"start_pc": 400,
"type": "basic_block"
},
{
"end_pc": 460,
"hash": "0xed10f46d77b3ec6412539a2ea8bac74b2ac944e6d55df3160fb9b5bc93d95830",
"id": "bb:415",
"start_pc": 415,
"type": "basic_block"
},
{
"end_pc": 464,
"hash": "0x06f1bd585a2974e4edd144946dc5578111a51c3918f67134544c236bc997f9cf",
"id": "bb:461",
"start_pc": 461,
"type": "basic_block"
},
{
"end_pc": 476,
"hash": "0x30a1b3b0fdc3a9e47d67c880a6e37017b5904047cfa4fce122e3b8a5863dcfcc",
"id": "bb:465",
"start_pc": 465,
"type": "basic_block"
},
{
"end_pc": 486,
"hash": "0x80cfbe6b0076e7918e230add0dc33ab0dac948ab1c6d3cc92e869937a2eb1634",
"id": "bb:477",
"start_pc": 477,
"type": "basic_block"
},
{
"end_pc": 491,
"hash": "0x8c860dd4a744b83f5d603fa28aafd9adea96022d0bd3350c095efd519d9f1ba2",
"id": "bb:487",
"start_pc": 487,
"type": "basic_block"
},
{
"end_pc": 500,
"hash": "0xf6d20286c6b9bf1326af38766f48d5c86ddd0ae6404cbd01616bde966e43f242",
"id": "bb:492",
"start_pc": 492,
"type": "basic_block"
},
{
"end_pc": 545,
"hash": "0xa84ecf89edecaea2c2c693b3c3e3382bbdc5be64392e6cb22186a097a77eff53",
"id": "bb:501",
"start_pc": 501,
"type": "basic_block"
},
{
"end_pc": 554,
"hash": "0x5047fd980427293bdee6abf6d16154594952dae9e8c7ae5d7c2e53264c01e351",
"id": "bb:546",
"start_pc": 546,
"type": "basic_block"
},
{
"end_pc": 562,
"hash": "0xef1bcd80882e3a871e0b502e2c245a7a5fa790dce085da21a6c4688774f49951",
"id": "bb:555",
"start_pc": 555,
"type": "basic_block"
},
{
"end_pc": 586,
"hash": "0x6beb94bb249e13ab447756d4a285cd479229638cdd9d21135f8e82d4d28e8ec1",
"id": "bb:563",
"start_pc": 563,
"type": "basic_block"
},
{
"end_pc": 615,
"hash": "0xc4baa5a94dda9500c6d6d06eaef757cfe0790ff11a2da38681c07f000398adde",
"id": "bb:587",
"start_pc": 587,
"type": "basic_block"
},
{
"end_pc": 619,
"hash": "0x295b9db996f0dcab10c486ecbc69c2f450ae381d4ebb9c6578781be79c94223d",
"id": "bb:616",
"start_pc": 616,
"type": "basic_block"
},
{
"end_pc": 637,
"hash": "0xd2c19a0d8766a52267b0ebcbc4b898059b20c3375d149c5e84df132065b331fa",
"id": "bb:620",
"start_pc": 620,
"type": "basic_block"
},
{
"end_pc": 701,
"hash": "0xfea4939c9313cea9f7ebcd4fc5092de6714ab4340ecfe7a075c1d0dfabae53c6",
"id": "bb:638",
"start_pc": 638,
"type": "basic_block"
},
{
"end_pc": 709,
"hash": "0x69970134fcdc362472ea22b779dd76ea6d58dee8ac2f248066d292d4a769cd1f",
"id": "bb:702",
"start_pc": 702,
"type": "basic_block"
},
{
"end_pc": 728,
"hash": "0x8467474d0b6df5216ac6657bc707dc0f829f86e9f7ba649afc662b713a5d3406",
"id": "bb:710",
"start_pc": 710,
"type": "basic_block"
},
{
"end_pc": 751,
"hash": "0x0681f410b09dc6a2dcb93a147ece120031378bbb18175d75cdc0880b4167b557",
"id": "bb:729",
"start_pc": 729,
"type": "basic_block"
},
{
"end_pc": 755,
"hash": "0x01a7be615724532b6d9f92d06b8b10086f1a57e436301fad0dd825cb1c48eb9a",
"id": "bb:752",
"start_pc": 752,
"type": "basic_block"
},
{
"end_pc": 798,
"hash": "0x74d4882ddfadaea1c67b924e16228b29d6358d99e14a10b6ce2c2c957195a865",
"id": "bb:756",
"start_pc": 756,
"type": "basic_block"
},
{
"end_pc": 802,
"hash": "0xa55a7d63de5ca9453cea1c30ca713ed1de5b9f17ba62cbdde2826bfd65700ac1",
"id": "bb:799",
"start_pc": 799,
"type": "basic_block"
},
{
"end_pc": 811,
"hash": "0x97e21c3476c8558d8340b52a680f0eaa516d09b727d2e5fe48bd488f9446f175",
"id": "bb:803",
"start_pc": 803,
"type": "basic_block"
},
{
"end_pc": 820,
"hash": "0x44c224d14008b83719f86eefe537906cf41bcecbe8d60586d1a0be7c380f28bd",
"id": "bb:812",
"start_pc": 812,
"type": "basic_block"
},
{
"end_pc": 849,
"hash": "0xc46d6e1eb1695015bc6fe9ffc2d138634bc7bf2dbf3f454066a961c5d4651abb",
"id": "bb:821",
"start_pc": 821,
"type": "basic_block"
},
{
"end_pc": 853,
"hash": "0xc37cc290da199743849279a7f5cd7d484b4e57a402a0dfbc60648de3326d8a42",
"id": "bb:850",
"start_pc": 850,
"type": "basic_block"
},
{
"end_pc": 1142,
"hash": "0x091aeba358c90d31a695fdb0f08326cbe9aeeadeec8d4a08f08ee054a430557e",
"id": "bb:854",
"start_pc": 854,
"type": "basic_block"
},
{
"end_pc": 1167,
"hash": "0xb5d50d3e73296dfb1ef27af6c131ccf6951d16e423282d9784276c6565299717",
"id": "bb:1143",
"start_pc": 1143,
"type": "basic_block"
},
{
"end_pc": 1199,
"hash": "0xdf9ff470b26ab5507926e44fb36b152325bbc0b2365977dd939346ff30e6b321",
"id": "bb:1168",
"start_pc": 1168,
"type": "basic_block"
},
{
"end_pc": 1212,
"hash": "0x070be6b669cf1cc8276ff5e32b64edc7347897fcac13cf12083d44d636be038c",
"id": "bb:1200",
"start_pc": 1200,
"type": "basic_block"
},
{
"end_pc": 1249,
"hash": "0x3a181295e57d4c70659022ab6ba100e25acf8d8559423a926910ddba94b9129d",
"id": "bb:1213",
"start_pc": 1213,
"type": "basic_block"
},
{
"end_pc": 1286,
"hash": "0x936ad41b5d4f155bd9ba7ca1b1526b6e2101e517780bf73cc4313ab40facefb9",
"id": "bb:1250",
"start_pc": 1250,
"type": "basic_block"
},
{
"end_pc": 1349,
"hash": "0x90fbe47c494831f7aa12f66f8b830ffbb24bc6474129fbcbf9606eb0b23ea9d1",
"id": "bb:1287",
"start_pc": 1287,
"type": "basic_block"
},
{
"end_pc": 1353,
"hash": "0x4d46c6cb78ac810e32f27171808251848b458e93d7523aa5a65865b4628f8032",
"id": "bb:1350",
"start_pc": 1350,
"type": "basic_block"
},
{
"end_pc": 1382,
"hash": "0xa2a2a08484aa7daa458a5156c4857501fb8142e50c92358834e33a018697adb2",
"id": "bb:1354",
"start_pc": 1354,
"type": "basic_block"
},
{
"end_pc": 1386,
"hash": "0x545f42b544338a023bf487e35f8a4d04a88c65a8678626143f313a690078856c",
"id": "bb:1383",
"start_pc": 1383,
"type": "basic_block"
},
{
"end_pc": 1404,
"hash": "0xacc41863d03e34db07676c5f9c6efb7b057aff5cf21a6230cfc72b805c98afb6",
"id": "bb:1387",
"start_pc": 1387,
"type": "basic_block"
},
{
"end_pc": 1475,
"hash": "0x2e80f4defcef942ee0fe89d4ad2c43c4ca7e2ad1e74c468688804061cdde3d55",
"id": "bb:1405",
"start_pc": 1405,
"type": "basic_block"
},
{
"end_pc": 1500,
"hash": "0xaf1ccf6beac4adf8b066efae2b4df3b3c3290e1d1a8dab606557ec8a9fd58d3d",
"id": "bb:1476",
"start_pc": 1476,
"type": "basic_block"
},
{
"end_pc": 1514,
"hash": "0x6f79c30723756e445c63d40192135a83ec9d32f78f150a135582bd71b689d69a",
"id": "bb:1501",
"start_pc": 1501,
"type": "basic_block"
},
{
"end_pc": 1532,
"hash": "0xfe4158b7f762ece070c02be9447e5459f150cb2346de2566ea401b0379a6cc0a",
"id": "bb:1515",
"start_pc": 1515,
"type": "basic_block"
},
{
"end_pc": 1558,
"hash": "0x9bc2100fa9a97eb5184f3f9cfafda6a279dd912b30b9217040a1a58ab4ff92a1",
"id": "bb:1533",
"start_pc": 1533,
"type": "basic_block"
},
{
"end_pc": 1580,
"hash": "0x24bf05d7aec26dae802caa8b62ce27cd75ee4c3b21539011a98a6b676907a1bb",
"id": "bb:1559",
"start_pc": 1559,
"type": "basic_block"
},
{
"end_pc": 1609,
"hash": "0x8b05b6d93a9a41ddc5e7344ee6dd5b99ac0edb78384b10b95b0f9e96fe37339e",
"id": "bb:1581",
"start_pc": 1581,
"type": "basic_block"
},
{
"end_pc": 1735,
"hash": "0x07dde179717100d2be861d9a2c20126f24d3329e5a0c09387f92837705d1f8b8",
"id": "bb:1610",
"start_pc": 1610,
"type": "basic_block"
},
{
"end_pc": 1769,
"hash": "0x8a2598ebf84066ba394ed2eae33a9daa1aacc8025ec4bac49632753c7e341bb3",
"id": "bb:1736",
"start_pc": 1736,
"type": "basic_block"
},
{
"end_pc": 1783,
"hash": "0x3f15e0a0c7e893977b172c8d54e4bc607db947fd9d89a34f18e8c8b68e8ba039",
"id": "bb:1770",
"start_pc": 1770,
"type": "basic_block"
},
{
"end_pc": 1803,
"hash": "0x55891dab8307758bf399cb104d84d8c607ab31562cb7e341b7ffc483c1fc4250",
"id": "bb:1784",
"start_pc": 1784,
"type": "basic_block"
},
{
"end_pc": 1812,
"hash": "0xdc41d9c74b0c31fa476fc6fbabee6352aa150dddd4922b7046035f0c843b0822",
"id": "bb:1804",
"start_pc": 1804,
"type": "basic_block"
},
{
"end_pc": 1820,
"hash": "0xf0cd8ffc088cc1a450837ff45eac7b1e67ed52e7b408ef6031bc917029f996e6",
"id": "bb:1813",
"start_pc": 1813,
"type": "basic_block"
},
{
"end_pc": 1828,
"hash": "0xd2bcc9f072f3e06f55c57c589559973165d28265efdc47b81f10f372c79116dc",
"id": "bb:1821",
"start_pc": 1821,
"type": "basic_block"
},
{
"end_pc": 1863,
"hash": "0x93c4b94ff0a3c440fd9677af968ee38fac5a7a477a490dcb209b1bb3bfb58935",
"id": "bb:1829",
"start_pc": 1829,
"type": "basic_block"
},
{
"end_pc": 1867,
"hash": "0x68ec0d054d5572698eb0e3e99cbca5588d491bcc16937ac9a18092d4279a2405",
"id": "bb:1864",
"start_pc": 1864,
"type": "basic_block"
},
{
"end_pc": 1939,
"hash": "0xca1c928743b3d0b681b15c621874f1b56cdd0259636acd0cf0fec7eab18403dc",
"id": "bb:1868",
"start_pc": 1868,
"type": "basic_block"
},
{
"end_pc": 1943,
"hash": "0x999c3c8c7724ad2fb31f9828b9b0c4f51a0b07f0e9967875467b292005126886",
"id": "bb:1940",
"start_pc": 1940,
"type": "basic_block"
},
{
"end_pc": 2063,
"hash": "0x21734032fe421ea0577d5f0a4249d49fadd46f4a19ae51418b4eaa6416c90b68",
"id": "bb:1944",
"start_pc": 1944,
"type": "basic_block"
},
{
"end_pc": 2068,
"hash": "0x12fddabd2025f831459fdfe7e909466ea89d934f4fc607b8088d3cf5b21cf9bd",
"id": "bb:2064",
"start_pc": 2064,
"type": "basic_block"
},
{
"end_pc": 2102,
"hash": "0x476c7daca97541be3c418dbefa60d269d20353d9e0a79e3ebb22e7b0ada5aad8",
"id": "bb:2069",
"start_pc": 2069,
"type": "basic_block"
},
{
"end_pc": 2119,
"hash": "0xfa12e9c50a90d3dd797807b2fd50efd75f9fd42fadac198ec3322e85400d4774",
"id": "bb:2103",
"start_pc": 2103,
"type": "basic_block"
},
{
"end_pc": 2123,
"hash": "0xb71411f4058a932d1744ab5f5a218de516bb5eb867ca24b18d1c21ac7995b6ba",
"id": "bb:2120",
"start_pc": 2120,
"type": "basic_block"
},
{
"end_pc": 2141,
"hash": "0xd449d10c9de65ac415adb1d07cf3aeb6627cf251ac120c043c8b3361688fd49c",
"id": "bb:2124",
"start_pc": 2124,
"type": "basic_block"
},
{
"end_pc": 2176,
"hash": "0xef55c785114d0ef4d15c90e57cd5a7e5cd545fb55ee28f957b762de0dde74c09",
"id": "bb:2142",
"start_pc": 2142,
"type": "basic_block"
},
{
"end_pc": 2180,
"hash": "0xf0c54e1f91028bff29c8e0ddebc09cce4d1d1feb59f32e8b1e6cd2800e962736",
"id": "bb:2177",
"start_pc": 2177,
"type": "basic_block"
},
{
"end_pc": 2270,
"hash": "0xebb9192e5aeb037064cbf66bb01d7d8338a51204c40e120323b7a96346b2ad61",
"id": "bb:2181",
"start_pc": 2181,
"type": "basic_block"
},
{
"end_pc": 2337,
"hash": "0x010e4cda6d88e8570882fc3570696031d1ca6bfe357ab3c1ab976c7952248166",
"id": "bb:2271",
"start_pc": 2271,
"type": "basic_block"
},
{
"end_pc": 2356,
"hash": "0x2f33aa2dda23826622bd9c00255fc932446ebd9d7b371a1be4ec01a320ee5923",
"id": "bb:2338",
"start_pc": 2338,
"type": "basic_block"
},
{
"end_pc": 2374,
"hash": "0x5bb9d2595befd6f25645fb53c78f535fd90d7538570e59eeda5c803b5e32c7bc",
"id": "bb:2357",
"start_pc": 2357,
"type": "basic_block"
},
{
"end_pc": 2391,
"hash": "0x40ee6bef8db65570f91941f517a7ded044ead1952310065cc4675fb9a0241581",
"id": "bb:2375",
"start_pc": 2375,
"type": "basic_block"
},
{
"end_pc": 2404,
"hash": "0x6a227a656cc09dda1b8defd0c214818aed873e095607d0ade63dafb6690285f0",
"id": "bb:2392",
"start_pc": 2392,
"type": "basic_block"
},
{
"end_pc": 2568,
"hash": "0xce938c15380cf3b379f1999f260ec001444d992d64fc5dccf99ece73a232ce3f",
"id": "bb:2405",
"start_pc": 2405,
"type": "basic_block"
},
{
"end_pc": 2600,
"hash": "0xedbcb8f017f94a8b0e0ef9c5d25fcb2f8f69bea5e664a5ccc5d3a87a49c501f7",
"id": "bb:2569",
"start_pc": 2569,
"type": "basic_block"
},
{
"id": "call:1126",
"opcode": "CALL",
"pc": 1126,
"type": "callsite"
},
{
"id": "call:1194",
"opcode": "CALL",
"pc": 1194,
"type": "callsite"
},
{
"id": "call:1459",
"opcode": "CALL",
"pc": 1459,
"type": "callsite"
},
{
"id": "call:1681",
"opcode": "CALL",
"pc": 1681,
"type": "callsite"
},
{
"id": "call:2570",
"opcode": "CALLCODE",
"pc": 2570,
"type": "callsite"
},
{
"id": "call:2588",
"opcode": "CALL",
"pc": 2588,
"type": "callsite"
},
{
"id": "sink:call",
"type": "sink"
},
{
"id": "sink:callcode",
"type": "sink"
},
{
"entry_pc": null,
"id": "fn:0x06fdde03",
"selector": "0x06fdde03",
"type": "function"
},
{
"entry_pc": 535423676,
"id": "fn:0x18160ddd",
"selector": "0x18160ddd",
"type": "function"
},
{
"entry_pc": 591257894,
"id": "fn:0x1fe9eabc",
"selector": "0x1fe9eabc",
"type": "function"
},
{
"entry_pc": 599290589,
"id": "fn:0x233de126",
"selector": "0x233de126",
"type": "function"
},
{
"entry_pc": 826074471,
"id": "fn:0x23b872dd",
"selector": "0x23b872dd",
"type": "function"
},
{
"entry_pc": 1106921590,
"id": "fn:0x313ce567",
"selector": "0x313ce567",
"type": "function"
},
{
"entry_pc": 1889567281,
"id": "fn:0x41fa4876",
"selector": "0x41fa4876",
"type": "function"
},
{
"entry_pc": 2133494400,
"id": "fn:0x70a08231",
"selector": "0x70a08231",
"type": "function"
},
{
"entry_pc": 2376452955,
"id": "fn:0x7f2a8a80",
"selector": "0x7f2a8a80",
"type": "function"
},
{
"entry_pc": 2514000705,
"id": "fn:0x8da5cb5b",
"selector": "0x8da5cb5b",
"type": "function"
},
{
"entry_pc": 2800922170,
"id": "fn:0x95d89b41",
"selector": "0x95d89b41",
"type": "function"
},
{
"entry_pc": 2835717307,
"id": "fn:0xa6f2ae3a",
"selector": "0xa6f2ae3a",
"type": "function"
},
{
"entry_pc": 2854837737,
"id": "fn:0xa9059cbb",
"selector": "0xa9059cbb",
"type": "function"
},
{
"entry_pc": 3154722889,
"id": "fn:0xaa295de9",
"selector": "0xaa295de9",
"type": "function"
},
{
"entry_pc": 3296960139,
"id": "fn:0xbc094049",
"selector": "0xbc094049",
"type": "function"
},
{
"entry_pc": 3404319313,
"id": "fn:0xc4839e8b",
"selector": "0xc4839e8b",
"type": "function"
},
{
"entry_pc": 3694166258,
"id": "fn:0xcae9ca51",
"selector": "0xcae9ca51",
"type": "function"
},
{
"entry_pc": 3714247998,
"id": "fn:0xdc3080f2",
"selector": "0xdc3080f2",
"type": "function"
},
{
"entry_pc": 3833895730,
"id": "fn:0xdd62ed3e",
"selector": "0xdd62ed3e",
"type": "function"
},
{
"entry_pc": 4076725131,
"id": "fn:0xe4849b32",
"selector": "0xe4849b32",
"type": "function"
},
{
"entry_pc": 4288363215,
"id": "fn:0xf2fde38b",
"selector": "0xf2fde38b",
"type": "function"
},
{
"entry_pc": null,
"id": "fn:0xff9b3acf",
"selector": "0xff9b3acf",
"type": "function"
}
],
"version": "capability_graph_v1"
},
"id": 2685,
"updated_at": "2026-04-04T19:59:19.000000Z",
"version": "capability_graph_v1"
}
exec
/bin/bash -lc "jq '.artifact | keys' BYTECODE_BUNDLE.json" in /tmp/codex-cac8u3sx
succeeded in 0ms:
[
"codehash",
"compiler_json",
"implementation_address",
"is_proxy",
"runtime_bytecode",
"verified_source"
]
exec
/bin/bash -lc "jq '.analysis_run | keys' BYTECODE_BUNDLE.json" in /tmp/codex-cac8u3sx
succeeded in 0ms:
[
"address",
"block_number",
"chain_id",
"child_links",
"created_at",
"id",
"parent_links",
"status",
"updated_at"
]
exec
/bin/bash -lc "jq -r '.artifact.runtime_bytecode' BYTECODE_BUNDLE.json | awk '{print length}'" in /tmp/codex-cac8u3sx
succeeded in 0ms:
1
5217
15
17
15
20
1
exec
/bin/bash -lc "jq '.artifact.is_proxy, .artifact.implementation_address, .artifact.compiler_json, .artifact.verified_source' BYTECODE_BUNDLE.json" in /tmp/codex-cac8u3sx
succeeded in 0ms:
false
null
{
"etherscan": {
"skipped": true
}
}
false
exec
/bin/bash -lc "jq '.artifact.runtime_bytecode' BYTECODE_BUNDLE.json | sed -n '1,40p'" in /tmp/codex-cac8u3sx
succeeded in 0ms:
{
"full": "0x606060405236156101065760e060020a600035046306fdde03811461010857806318160ddd146101655780631fe9eabc1461016e578063233de1261461019057806323b872dd1461019f578063313ce567146101d157806341fa4876146101dd57806370a08231146102335780637f2a8a801461024b5780638da5cb5b1461026c57806395d89b411461027e578063a6f2ae3a146102d9578063a9059cbb146102f4578063aa295de914610323578063bc0940491461032c578063c4839e8b14610335578063cae9ca5114610356578063dc3080f2146104bd578063dd62ed3e146104e2578063e4849b3214610507578063f2fde38b1461054a578063ff9b3acf1461056b575b005b60408051600180546020600282841615610100026000190190921691909104601f810182900482028401820190945283835261057d93908301828280156107155780601f106106ea57610100808354040283529160200191610715565b6105eb60045481565b610106600435600054600160a060020a03908116339091161461081057610002565b6105fd60075463ffffffff1681565b6105eb600435602435604435600160a060020a0383166000908152600960205260408120548290101561072557610002565b61061760035460ff1681565b6105eb6004356024355b600080805b8381101561071d57604080514383900360001901408152602081018790528151908190039091019020600290066000141561022b57600281900a909101905b6001016101ec565b6105eb60043560096020526000908152604090205481565b61010660043560005433600160a060020a0390811691161461081557610002565b61062d600054600160a060020a031681565b61057d6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156107155780601f106106ea57610100808354040283529160200191610715565b6105eb6006543490600090819081908411156108df57610002565b61010660043560243533600160a060020a03166000908152600960205260409020548190101561085e57610002565b6105eb60065481565b6105eb60085481565b61010660043560005433600160a060020a0390811691161461083757610002565b604080516020604435600481810135601f81018490048402850184019095528484526105eb9481359460248035959394606494929391019181908401838280828437509496505050505050506000600083600a600050600033600160a060020a03168152602001908152602001600020600050600087600160a060020a031681526020019081526020016000206000508190555084905080600160a060020a0316638f4ffcb1338630876040518560e060020a0281526004018085600160a060020a0316815260200184815260200183600160a060020a03168152602001806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f1680156104905780820380516001836020036101000a031916815260200191505b50955050505050506000604051808303816000876161da5a03f11561000257506001979650505050505050565b600b602090815260043560009081526040808220909252602435815220546105eb9081565b600a602090815260043560009081526040808220909252602435815220546105eb9081565b6105eb60043560045430600160a060020a0390811631655af3107a4000029190910460085533166000908152600960205260408120548290101561064a57610002565b61010660043560005433600160a060020a039081169116146106c857610002565b61062d600554600160a060020a031681565b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f1680156105dd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60408051918252519081900360200190f35b6040805163ffffffff929092168252519081900360200190f35b6040805160ff9092168252519081900360200190f35b60408051600160a060020a03929092168252519081900360200190f35b5030600160a060020a03908116600090815260096020526040808220805485019055339092168082528282208054859003905591516008548402929190839082818181858883f1505060408051868152905130600160a060020a0316949350600080516020610a0983398151915292509081900360200190a3919050565b6000805473ffffffffffffffffffffffffffffffffffffffff19168217905550565b820191906000526020600020905b8154815290600101906020018083116106f857829003601f168201915b505050505081565b509392505050565b600160a060020a038316600090815260096020526040902054808301101561074c57610002565b600160a060020a038481166000818152600a602090815260408083203390951680845294825280832054938352600b825280832094835293905291909120548301111561079857610002565b600160a060020a03848116600081815260096020908152604080832080548890039055878516808452818420805489019055848452600b83528184203390961684529482529182902080548701905581518681529151600080516020610a098339815191529281900390910190a35060019392505050565b600655565b6005805473ffffffffffffffffffffffffffffffffffffffff19168217905550565b6102008163ffffffff16101561084c57610002565b6007805463ffffffff19168217905550565b600160a060020a038216600090815260096020526040902054818101101561088557610002565b33600160a060020a0390811660008181526009602090815260408083208054879003905593861680835291849020805486019055835185815293519193600080516020610a09833981519152929081900390910190a35050565b60045430600160a060020a0316316509184e72a000020460085560408051438152426020820152808201869052905190819003606001902061092290600a6101e7565b60075490915063ffffffff16811061094757600092506103e764174876e80085040491505b60075463ffffffff168110156109655764174876e800600285020492505b33600160a060020a0390811660008181526009602090815260408083208054890190556005548516835280832080548801905530909416808352918490208054878901900390558351878152935192939192600080516020610a098339815191529281900390910190a3600554604080518481529051600160a060020a0392831692301691600080516020610a09833981519152919081900360200190a35050509056ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"head": null,
"length": 5204,
"tail": null,
"truncated": false
}
exec
/bin/bash -lc "node - <<'NODE'
const fs=require('fs');
const bundle=JSON.parse(fs.readFileSync('BYTECODE_BUNDLE.json','utf8'));
let hex=bundle.artifact.runtime_bytecode.full.slice(2);
const opnames={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'};
function dis(start,end){
let pc=start;
while(pc<=end){
const op=parseInt(hex.slice(pc*2,pc*2+2),16);
const name=opnames[op]||('OP_'+op.toString(16));
let arg='';
let next=pc+1;
if(op>=0x60&&op<=0x7f){const n=op-0x5f;arg='0x'+hex.slice(next*2,next*2+n*2);next+=n;}
console.log(pc.toString().padStart(4), name.padEnd(12), arg);
pc=next;
}
}
for (const [s,e] of [[854,1212],[1287,1735],[2405,2600],[0,264],[2064,2270]]){console.log('\\nRANGE',s,e);dis(s,e);}
NODE" in /tmp/codex-cac8u3sx
succeeded in 0ms:
RANGE 854 1212
854 JUMPDEST
855 PUSH1 0x40
857 DUP1
858 MLOAD
859 PUSH1 0x20
861 PUSH1 0x44
863 CALLDATALOAD
864 PUSH1 0x04
866 DUP2
867 DUP2
868 ADD
869 CALLDATALOAD
870 PUSH1 0x1f
872 DUP2
873 ADD
874 DUP5
875 SWAP1
876 DIV
877 DUP5
878 MUL
879 DUP6
880 ADD
881 DUP5
882 ADD
883 SWAP1
884 SWAP6
885 MSTORE
886 DUP5
887 DUP5
888 MSTORE
889 PUSH2 0x05eb
892 SWAP5
893 DUP2
894 CALLDATALOAD
895 SWAP5
896 PUSH1 0x24
898 DUP1
899 CALLDATALOAD
900 SWAP6
901 SWAP4
902 SWAP5
903 PUSH1 0x64
905 SWAP5
906 SWAP3
907 SWAP4
908 SWAP2
909 ADD
910 SWAP2
911 DUP2
912 SWAP1
913 DUP5
914 ADD
915 DUP4
916 DUP3
917 DUP1
918 DUP3
919 DUP5
920 CALLDATACOPY
921 POP
922 SWAP5
923 SWAP7
924 POP
925 POP
926 POP
927 POP
928 POP
929 POP
930 POP
931 PUSH1 0x00
933 PUSH1 0x00
935 DUP4
936 PUSH1 0x0a
938 PUSH1 0x00
940 POP
941 PUSH1 0x00
943 CALLER
944 PUSH1 0x01
946 PUSH1 0xa0
948 PUSH1 0x02
950 EXP
951 SUB
952 AND
953 DUP2
954 MSTORE
955 PUSH1 0x20
957 ADD
958 SWAP1
959 DUP2
960 MSTORE
961 PUSH1 0x20
963 ADD
964 PUSH1 0x00
966 SHA3
967 PUSH1 0x00
969 POP
970 PUSH1 0x00
972 DUP8
973 PUSH1 0x01
975 PUSH1 0xa0
977 PUSH1 0x02
979 EXP
980 SUB
981 AND
982 DUP2
983 MSTORE
984 PUSH1 0x20
986 ADD
987 SWAP1
988 DUP2
989 MSTORE
990 PUSH1 0x20
992 ADD
993 PUSH1 0x00
995 SHA3
996 PUSH1 0x00
998 POP
999 DUP2
1000 SWAP1
1001 SSTORE
1002 POP
1003 DUP5
1004 SWAP1
1005 POP
1006 DUP1
1007 PUSH1 0x01
1009 PUSH1 0xa0
1011 PUSH1 0x02
1013 EXP
1014 SUB
1015 AND
1016 PUSH4 0x8f4ffcb1
1021 CALLER
1022 DUP7
1023 ADDRESS
1024 DUP8
1025 PUSH1 0x40
1027 MLOAD
1028 DUP6
1029 PUSH1 0xe0
1031 PUSH1 0x02
1033 EXP
1034 MUL
1035 DUP2
1036 MSTORE
1037 PUSH1 0x04
1039 ADD
1040 DUP1
1041 DUP6
1042 PUSH1 0x01
1044 PUSH1 0xa0
1046 PUSH1 0x02
1048 EXP
1049 SUB
1050 AND
1051 DUP2
1052 MSTORE
1053 PUSH1 0x20
1055 ADD
1056 DUP5
1057 DUP2
1058 MSTORE
1059 PUSH1 0x20
1061 ADD
1062 DUP4
1063 PUSH1 0x01
1065 PUSH1 0xa0
1067 PUSH1 0x02
1069 EXP
1070 SUB
1071 AND
1072 DUP2
1073 MSTORE
1074 PUSH1 0x20
1076 ADD
1077 DUP1
1078 PUSH1 0x20
1080 ADD
1081 DUP3
1082 DUP2
1083 SUB
1084 DUP3
1085 MSTORE
1086 DUP4
1087 DUP2
1088 DUP2
1089 MLOAD
1090 DUP2
1091 MSTORE
1092 PUSH1 0x20
1094 ADD
1095 SWAP2
1096 POP
1097 DUP1
1098 MLOAD
1099 SWAP1
1100 PUSH1 0x20
1102 ADD
1103 SWAP1
1104 DUP1
1105 DUP4
1106 DUP4
1107 DUP3
1108 SWAP1
1109 PUSH1 0x00
1111 PUSH1 0x04
1113 PUSH1 0x20
1115 DUP5
1116 PUSH1 0x1f
1118 ADD
1119 DIV
1120 PUSH1 0x0f
1122 MUL
1123 PUSH1 0x03
1125 ADD
1126 CALL
1127 POP
1128 SWAP1
1129 POP
1130 SWAP1
1131 DUP2
1132 ADD
1133 SWAP1
1134 PUSH1 0x1f
1136 AND
1137 DUP1
1138 ISZERO
1139 PUSH2 0x0490
1142 JUMPI
1143 DUP1
1144 DUP3
1145 SUB
1146 DUP1
1147 MLOAD
1148 PUSH1 0x01
1150 DUP4
1151 PUSH1 0x20
1153 SUB
1154 PUSH2 0x0100
1157 EXP
1158 SUB
1159 NOT
1160 AND
1161 DUP2
1162 MSTORE
1163 PUSH1 0x20
1165 ADD
1166 SWAP2
1167 POP
1168 JUMPDEST
1169 POP
1170 SWAP6
1171 POP
1172 POP
1173 POP
1174 POP
1175 POP
1176 POP
1177 PUSH1 0x00
1179 PUSH1 0x40
1181 MLOAD
1182 DUP1
1183 DUP4
1184 SUB
1185 DUP2
1186 PUSH1 0x00
1188 DUP8
1189 PUSH2 0x61da
1192 GAS
1193 SUB
1194 CALL
1195 ISZERO
1196 PUSH2 0x0002
1199 JUMPI
1200 POP
1201 PUSH1 0x01
1203 SWAP8
1204 SWAP7
1205 POP
1206 POP
1207 POP
1208 POP
1209 POP
1210 POP
1211 POP
1212 JUMP
RANGE 1287 1735
1287 JUMPDEST
1288 PUSH2 0x05eb
1291 PUSH1 0x04
1293 CALLDATALOAD
1294 PUSH1 0x04
1296 SLOAD
1297 ADDRESS
1298 PUSH1 0x01
1300 PUSH1 0xa0
1302 PUSH1 0x02
1304 EXP
1305 SUB
1306 SWAP1
1307 DUP2
1308 AND
1309 BALANCE
1310 PUSH6 0x5af3107a4000
1317 MUL
1318 SWAP2
1319 SWAP1
1320 SWAP2
1321 DIV
1322 PUSH1 0x08
1324 SSTORE
1325 CALLER
1326 AND
1327 PUSH1 0x00
1329 SWAP1
1330 DUP2
1331 MSTORE
1332 PUSH1 0x09
1334 PUSH1 0x20
1336 MSTORE
1337 PUSH1 0x40
1339 DUP2
1340 SHA3
1341 SLOAD
1342 DUP3
1343 SWAP1
1344 LT
1345 ISZERO
1346 PUSH2 0x064a
1349 JUMPI
1350 PUSH2 0x0002
1353 JUMP
1354 JUMPDEST
1355 PUSH2 0x0106
1358 PUSH1 0x04
1360 CALLDATALOAD
1361 PUSH1 0x00
1363 SLOAD
1364 CALLER
1365 PUSH1 0x01
1367 PUSH1 0xa0
1369 PUSH1 0x02
1371 EXP
1372 SUB
1373 SWAP1
1374 DUP2
1375 AND
1376 SWAP2
1377 AND
1378 EQ
1379 PUSH2 0x06c8
1382 JUMPI
1383 PUSH2 0x0002
1386 JUMP
1387 JUMPDEST
1388 PUSH2 0x062d
1391 PUSH1 0x05
1393 SLOAD
1394 PUSH1 0x01
1396 PUSH1 0xa0
1398 PUSH1 0x02
1400 EXP
1401 SUB
1402 AND
1403 DUP2
1404 JUMP
1405 JUMPDEST
1406 PUSH1 0x40
1408 MLOAD
1409 DUP1
1410 DUP1
1411 PUSH1 0x20
1413 ADD
1414 DUP3
1415 DUP2
1416 SUB
1417 DUP3
1418 MSTORE
1419 DUP4
1420 DUP2
1421 DUP2
1422 MLOAD
1423 DUP2
1424 MSTORE
1425 PUSH1 0x20
1427 ADD
1428 SWAP2
1429 POP
1430 DUP1
1431 MLOAD
1432 SWAP1
1433 PUSH1 0x20
1435 ADD
1436 SWAP1
1437 DUP1
1438 DUP4
1439 DUP4
1440 DUP3
1441 SWAP1
1442 PUSH1 0x00
1444 PUSH1 0x04
1446 PUSH1 0x20
1448 DUP5
1449 PUSH1 0x1f
1451 ADD
1452 DIV
1453 PUSH1 0x0f
1455 MUL
1456 PUSH1 0x03
1458 ADD
1459 CALL
1460 POP
1461 SWAP1
1462 POP
1463 SWAP1
1464 DUP2
1465 ADD
1466 SWAP1
1467 PUSH1 0x1f
1469 AND
1470 DUP1
1471 ISZERO
1472 PUSH2 0x05dd
1475 JUMPI
1476 DUP1
1477 DUP3
1478 SUB
1479 DUP1
1480 MLOAD
1481 PUSH1 0x01
1483 DUP4
1484 PUSH1 0x20
1486 SUB
1487 PUSH2 0x0100
1490 EXP
1491 SUB
1492 NOT
1493 AND
1494 DUP2
1495 MSTORE
1496 PUSH1 0x20
1498 ADD
1499 SWAP2
1500 POP
1501 JUMPDEST
1502 POP
1503 SWAP3
1504 POP
1505 POP
1506 POP
1507 PUSH1 0x40
1509 MLOAD
1510 DUP1
1511 SWAP2
1512 SUB
1513 SWAP1
1514 RETURN
1515 JUMPDEST
1516 PUSH1 0x40
1518 DUP1
1519 MLOAD
1520 SWAP2
1521 DUP3
1522 MSTORE
1523 MLOAD
1524 SWAP1
1525 DUP2
1526 SWAP1
1527 SUB
1528 PUSH1 0x20
1530 ADD
1531 SWAP1
1532 RETURN
1533 JUMPDEST
1534 PUSH1 0x40
1536 DUP1
1537 MLOAD
1538 PUSH4 0xffffffff
1543 SWAP3
1544 SWAP1
1545 SWAP3
1546 AND
1547 DUP3
1548 MSTORE
1549 MLOAD
1550 SWAP1
1551 DUP2
1552 SWAP1
1553 SUB
1554 PUSH1 0x20
1556 ADD
1557 SWAP1
1558 RETURN
1559 JUMPDEST
1560 PUSH1 0x40
1562 DUP1
1563 MLOAD
1564 PUSH1 0xff
1566 SWAP1
1567 SWAP3
1568 AND
1569 DUP3
1570 MSTORE
1571 MLOAD
1572 SWAP1
1573 DUP2
1574 SWAP1
1575 SUB
1576 PUSH1 0x20
1578 ADD
1579 SWAP1
1580 RETURN
1581 JUMPDEST
1582 PUSH1 0x40
1584 DUP1
1585 MLOAD
1586 PUSH1 0x01
1588 PUSH1 0xa0
1590 PUSH1 0x02
1592 EXP
1593 SUB
1594 SWAP3
1595 SWAP1
1596 SWAP3
1597 AND
1598 DUP3
1599 MSTORE
1600 MLOAD
1601 SWAP1
1602 DUP2
1603 SWAP1
1604 SUB
1605 PUSH1 0x20
1607 ADD
1608 SWAP1
1609 RETURN
1610 JUMPDEST
1611 POP
1612 ADDRESS
1613 PUSH1 0x01
1615 PUSH1 0xa0
1617 PUSH1 0x02
1619 EXP
1620 SUB
1621 SWAP1
1622 DUP2
1623 AND
1624 PUSH1 0x00
1626 SWAP1
1627 DUP2
1628 MSTORE
1629 PUSH1 0x09
1631 PUSH1 0x20
1633 MSTORE
1634 PUSH1 0x40
1636 DUP1
1637 DUP3
1638 SHA3
1639 DUP1
1640 SLOAD
1641 DUP6
1642 ADD
1643 SWAP1
1644 SSTORE
1645 CALLER
1646 SWAP1
1647 SWAP3
1648 AND
1649 DUP1
1650 DUP3
1651 MSTORE
1652 DUP3
1653 DUP3
1654 SHA3
1655 DUP1
1656 SLOAD
1657 DUP6
1658 SWAP1
1659 SUB
1660 SWAP1
1661 SSTORE
1662 SWAP2
1663 MLOAD
1664 PUSH1 0x08
1666 SLOAD
1667 DUP5
1668 MUL
1669 SWAP3
1670 SWAP2
1671 SWAP1
1672 DUP4
1673 SWAP1
1674 DUP3
1675 DUP2
1676 DUP2
1677 DUP2
1678 DUP6
1679 DUP9
1680 DUP4
1681 CALL
1682 POP
1683 POP
1684 PUSH1 0x40
1686 DUP1
1687 MLOAD
1688 DUP7
1689 DUP2
1690 MSTORE
1691 SWAP1
1692 MLOAD
1693 ADDRESS
1694 PUSH1 0x01
1696 PUSH1 0xa0
1698 PUSH1 0x02
1700 EXP
1701 SUB
1702 AND
1703 SWAP5
1704 SWAP4
1705 POP
1706 PUSH1 0x00
1708 DUP1
1709 MLOAD
1710 PUSH1 0x20
1712 PUSH2 0x0a09
1715 DUP4
1716 CODECOPY
1717 DUP2
1718 MLOAD
1719 SWAP2
1720 MSTORE
1721 SWAP3
1722 POP
1723 SWAP1
1724 DUP2
1725 SWAP1
1726 SUB
1727 PUSH1 0x20
1729 ADD
1730 SWAP1
1731 LOG3
1732 SWAP2
1733 SWAP1
1734 POP
1735 JUMP
RANGE 2405 2600
2405 JUMPDEST
2406 CALLER
2407 PUSH1 0x01
2409 PUSH1 0xa0
2411 PUSH1 0x02
2413 EXP
2414 SUB
2415 SWAP1
2416 DUP2
2417 AND
2418 PUSH1 0x00
2420 DUP2
2421 DUP2
2422 MSTORE
2423 PUSH1 0x09
2425 PUSH1 0x20
2427 SWAP1
2428 DUP2
2429 MSTORE
2430 PUSH1 0x40
2432 DUP1
2433 DUP4
2434 SHA3
2435 DUP1
2436 SLOAD
2437 DUP10
2438 ADD
2439 SWAP1
2440 SSTORE
2441 PUSH1 0x05
2443 SLOAD
2444 DUP6
2445 AND
2446 DUP4
2447 MSTORE
2448 DUP1
2449 DUP4
2450 SHA3
2451 DUP1
2452 SLOAD
2453 DUP9
2454 ADD
2455 SWAP1
2456 SSTORE
2457 ADDRESS
2458 SWAP1
2459 SWAP5
2460 AND
2461 DUP1
2462 DUP4
2463 MSTORE
2464 SWAP2
2465 DUP5
2466 SWAP1
2467 SHA3
2468 DUP1
2469 SLOAD
2470 DUP8
2471 DUP10
2472 ADD
2473 SWAP1
2474 SUB
2475 SWAP1
2476 SSTORE
2477 DUP4
2478 MLOAD
2479 DUP8
2480 DUP2
2481 MSTORE
2482 SWAP4
2483 MLOAD
2484 SWAP3
2485 SWAP4
2486 SWAP2
2487 SWAP3
2488 PUSH1 0x00
2490 DUP1
2491 MLOAD
2492 PUSH1 0x20
2494 PUSH2 0x0a09
2497 DUP4
2498 CODECOPY
2499 DUP2
2500 MLOAD
2501 SWAP2
2502 MSTORE
2503 SWAP3
2504 DUP2
2505 SWAP1
2506 SUB
2507 SWAP1
2508 SWAP2
2509 ADD
2510 SWAP1
2511 LOG3
2512 PUSH1 0x05
2514 SLOAD
2515 PUSH1 0x40
2517 DUP1
2518 MLOAD
2519 DUP5
2520 DUP2
2521 MSTORE
2522 SWAP1
2523 MLOAD
2524 PUSH1 0x01
2526 PUSH1 0xa0
2528 PUSH1 0x02
2530 EXP
2531 SUB
2532 SWAP3
2533 DUP4
2534 AND
2535 SWAP3
2536 ADDRESS
2537 AND
2538 SWAP2
2539 PUSH1 0x00
2541 DUP1
2542 MLOAD
2543 PUSH1 0x20
2545 PUSH2 0x0a09
2548 DUP4
2549 CODECOPY
2550 DUP2
2551 MLOAD
2552 SWAP2
2553 MSTORE
2554 SWAP2
2555 SWAP1
2556 DUP2
2557 SWAP1
2558 SUB
2559 PUSH1 0x20
2561 ADD
2562 SWAP1
2563 LOG3
2564 POP
2565 POP
2566 POP
2567 SWAP1
2568 JUMP
2569 OP_dd
2570 CALLCODE
2571 MSTORE
2572 OP_ad
2573 OP_1b
2574 OP_e2
2575 OP_c8
2576 SWAP12
2577 PUSH10 0xc2b068fc378daa952ba7
2588 CALL
2589 PUSH4 0xc4a11628
2594 CREATE2
2595 GAS
2596 OP_4d
2597 CREATE2
2598 OP_23
2599 OP_b3
2600 OP_ef
RANGE 0 264
0 PUSH1 0x60
2 PUSH1 0x40
4 MSTORE
5 CALLDATASIZE
6 ISZERO
7 PUSH2 0x0106
10 JUMPI
11 PUSH1 0xe0
13 PUSH1 0x02
15 EXP
16 PUSH1 0x00
18 CALLDATALOAD
19 DIV
20 PUSH4 0x06fdde03
25 DUP2
26 EQ
27 PUSH2 0x0108
30 JUMPI
31 DUP1
32 PUSH4 0x18160ddd
37 EQ
38 PUSH2 0x0165
41 JUMPI
42 DUP1
43 PUSH4 0x1fe9eabc
48 EQ
49 PUSH2 0x016e
52 JUMPI
53 DUP1
54 PUSH4 0x233de126
59 EQ
60 PUSH2 0x0190
63 JUMPI
64 DUP1
65 PUSH4 0x23b872dd
70 EQ
71 PUSH2 0x019f
74 JUMPI
75 DUP1
76 PUSH4 0x313ce567
81 EQ
82 PUSH2 0x01d1
85 JUMPI
86 DUP1
87 PUSH4 0x41fa4876
92 EQ
93 PUSH2 0x01dd
96 JUMPI
97 DUP1
98 PUSH4 0x70a08231
103 EQ
104 PUSH2 0x0233
107 JUMPI
108 DUP1
109 PUSH4 0x7f2a8a80
114 EQ
115 PUSH2 0x024b
118 JUMPI
119 DUP1
120 PUSH4 0x8da5cb5b
125 EQ
126 PUSH2 0x026c
129 JUMPI
130 DUP1
131 PUSH4 0x95d89b41
136 EQ
137 PUSH2 0x027e
140 JUMPI
141 DUP1
142 PUSH4 0xa6f2ae3a
147 EQ
148 PUSH2 0x02d9
151 JUMPI
152 DUP1
153 PUSH4 0xa9059cbb
158 EQ
159 PUSH2 0x02f4
162 JUMPI
163 DUP1
164 PUSH4 0xaa295de9
169 EQ
170 PUSH2 0x0323
173 JUMPI
174 DUP1
175 PUSH4 0xbc094049
180 EQ
181 PUSH2 0x032c
184 JUMPI
185 DUP1
186 PUSH4 0xc4839e8b
191 EQ
192 PUSH2 0x0335
195 JUMPI
196 DUP1
197 PUSH4 0xcae9ca51
202 EQ
203 PUSH2 0x0356
206 JUMPI
207 DUP1
208 PUSH4 0xdc3080f2
213 EQ
214 PUSH2 0x04bd
217 JUMPI
218 DUP1
219 PUSH4 0xdd62ed3e
224 EQ
225 PUSH2 0x04e2
228 JUMPI
229 DUP1
230 PUSH4 0xe4849b32
235 EQ
236 PUSH2 0x0507
239 JUMPI
240 DUP1
241 PUSH4 0xf2fde38b
246 EQ
247 PUSH2 0x054a
250 JUMPI
251 DUP1
252 PUSH4 0xff9b3acf
257 EQ
258 PUSH2 0x056b
261 JUMPI
262 JUMPDEST
263 STOP
264 JUMPDEST
RANGE 2064 2270
2064 JUMPDEST
2065 PUSH1 0x06
2067 SSTORE
2068 JUMP
2069 JUMPDEST
2070 PUSH1 0x05
2072 DUP1
2073 SLOAD
2074 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
2095 NOT
2096 AND
2097 DUP3
2098 OR
2099 SWAP1
2100 SSTORE
2101 POP
2102 JUMP
2103 JUMPDEST
2104 PUSH2 0x0200
2107 DUP2
2108 PUSH4 0xffffffff
2113 AND
2114 LT
2115 ISZERO
2116 PUSH2 0x084c
2119 JUMPI
2120 PUSH2 0x0002
2123 JUMP
2124 JUMPDEST
2125 PUSH1 0x07
2127 DUP1
2128 SLOAD
2129 PUSH4 0xffffffff
2134 NOT
2135 AND
2136 DUP3
2137 OR
2138 SWAP1
2139 SSTORE
2140 POP
2141 JUMP
2142 JUMPDEST
2143 PUSH1 0x01
2145 PUSH1 0xa0
2147 PUSH1 0x02
2149 EXP
2150 SUB
2151 DUP3
2152 AND
2153 PUSH1 0x00
2155 SWAP1
2156 DUP2
2157 MSTORE
2158 PUSH1 0x09
2160 PUSH1 0x20
2162 MSTORE
2163 PUSH1 0x40
2165 SWAP1
2166 SHA3
2167 SLOAD
2168 DUP2
2169 DUP2
2170 ADD
2171 LT
2172 ISZERO
2173 PUSH2 0x0885
2176 JUMPI
2177 PUSH2 0x0002
2180 JUMP
2181 JUMPDEST
2182 CALLER
2183 PUSH1 0x01
2185 PUSH1 0xa0
2187 PUSH1 0x02
2189 EXP
2190 SUB
2191 SWAP1
2192 DUP2
2193 AND
2194 PUSH1 0x00
2196 DUP2
2197 DUP2
2198 MSTORE
2199 PUSH1 0x09
2201 PUSH1 0x20
2203 SWAP1
2204 DUP2
2205 MSTORE
2206 PUSH1 0x40
2208 DUP1
2209 DUP4
2210 SHA3
2211 DUP1
2212 SLOAD
2213 DUP8
2214 SWAP1
2215 SUB
2216 SWAP1
2217 SSTORE
2218 SWAP4
2219 DUP7
2220 AND
2221 DUP1
2222 DUP4
2223 MSTORE
2224 SWAP2
2225 DUP5
2226 SWAP1
2227 SHA3
2228 DUP1
2229 SLOAD
2230 DUP7
2231 ADD
2232 SWAP1
2233 SSTORE
2234 DUP4
2235 MLOAD
2236 DUP6
2237 DUP2
2238 MSTORE
2239 SWAP4
2240 MLOAD
2241 SWAP2
2242 SWAP4
2243 PUSH1 0x00
2245 DUP1
2246 MLOAD
2247 PUSH1 0x20
2249 PUSH2 0x0a09
2252 DUP4
2253 CODECOPY
2254 DUP2
2255 MLOAD
2256 SWAP2
2257 MSTORE
2258 SWAP3
2259 SWAP1
2260 DUP2
2261 SWAP1
2262 SUB
2263 SWAP1
2264 SWAP2
2265 ADD
2266 SWAP1
2267 LOG3
2268 POP
2269 POP
2270 JUMP
exec
/bin/bash -lc "node - <<'NODE'
const fs=require('fs');const bundle=JSON.parse(fs.readFileSync('BYTECODE_BUNDLE.json','utf8'));let hex=bundle.artifact.runtime_bytecode.full.slice(2);
const opnames={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'};
function dis(start,end){let pc=start;while(pc<=end){const op=parseInt(hex.slice(pc*2,pc*2+2),16);const name=opnames[op]||('OP_'+op.toString(16));let arg='';let next=pc+1;if(op>=0x60&&op<=0x7f){const n=op-0x5f;arg='0x'+hex.slice(next*2,next*2+n*2);next+=n;}console.log(pc.toString().padStart(4),name.padEnd(12),arg);pc=next;}}
dis(264,850)
NODE" in /tmp/codex-cac8u3sx
succeeded in 0ms:
264 JUMPDEST
265 PUSH1 0x40
267 DUP1
268 MLOAD
269 PUSH1 0x01
271 DUP1
272 SLOAD
273 PUSH1 0x20
275 PUSH1 0x02
277 DUP3
278 DUP5
279 AND
280 ISZERO
281 PUSH2 0x0100
284 MUL
285 PUSH1 0x00
287 NOT
288 ADD
289 SWAP1
290 SWAP3
291 AND
292 SWAP2
293 SWAP1
294 SWAP2
295 DIV
296 PUSH1 0x1f
298 DUP2
299 ADD
300 DUP3
301 SWAP1
302 DIV
303 DUP3
304 MUL
305 DUP5
306 ADD
307 DUP3
308 ADD
309 SWAP1
310 SWAP5
311 MSTORE
312 DUP4
313 DUP4
314 MSTORE
315 PUSH2 0x057d
318 SWAP4
319 SWAP1
320 DUP4
321 ADD
322 DUP3
323 DUP3
324 DUP1
325 ISZERO
326 PUSH2 0x0715
329 JUMPI
330 DUP1
331 PUSH1 0x1f
333 LT
334 PUSH2 0x06ea
337 JUMPI
338 PUSH2 0x0100
341 DUP1
342 DUP4
343 SLOAD
344 DIV
345 MUL
346 DUP4
347 MSTORE
348 SWAP2
349 PUSH1 0x20
351 ADD
352 SWAP2
353 PUSH2 0x0715
356 JUMP
357 JUMPDEST
358 PUSH2 0x05eb
361 PUSH1 0x04
363 SLOAD
364 DUP2
365 JUMP
366 JUMPDEST
367 PUSH2 0x0106
370 PUSH1 0x04
372 CALLDATALOAD
373 PUSH1 0x00
375 SLOAD
376 PUSH1 0x01
378 PUSH1 0xa0
380 PUSH1 0x02
382 EXP
383 SUB
384 SWAP1
385 DUP2
386 AND
387 CALLER
388 SWAP1
389 SWAP2
390 AND
391 EQ
392 PUSH2 0x0810
395 JUMPI
396 PUSH2 0x0002
399 JUMP
400 JUMPDEST
401 PUSH2 0x05fd
404 PUSH1 0x07
406 SLOAD
407 PUSH4 0xffffffff
412 AND
413 DUP2
414 JUMP
415 JUMPDEST
416 PUSH2 0x05eb
419 PUSH1 0x04
421 CALLDATALOAD
422 PUSH1 0x24
424 CALLDATALOAD
425 PUSH1 0x44
427 CALLDATALOAD
428 PUSH1 0x01
430 PUSH1 0xa0
432 PUSH1 0x02
434 EXP
435 SUB
436 DUP4
437 AND
438 PUSH1 0x00
440 SWAP1
441 DUP2
442 MSTORE
443 PUSH1 0x09
445 PUSH1 0x20
447 MSTORE
448 PUSH1 0x40
450 DUP2
451 SHA3
452 SLOAD
453 DUP3
454 SWAP1
455 LT
456 ISZERO
457 PUSH2 0x0725
460 JUMPI
461 PUSH2 0x0002
464 JUMP
465 JUMPDEST
466 PUSH2 0x0617
469 PUSH1 0x03
471 SLOAD
472 PUSH1 0xff
474 AND
475 DUP2
476 JUMP
477 JUMPDEST
478 PUSH2 0x05eb
481 PUSH1 0x04
483 CALLDATALOAD
484 PUSH1 0x24
486 CALLDATALOAD
487 JUMPDEST
488 PUSH1 0x00
490 DUP1
491 DUP1
492 JUMPDEST
493 DUP4
494 DUP2
495 LT
496 ISZERO
497 PUSH2 0x071d
500 JUMPI
501 PUSH1 0x40
503 DUP1
504 MLOAD
505 NUMBER
506 DUP4
507 SWAP1
508 SUB
509 PUSH1 0x00
511 NOT
512 ADD
513 BLOCKHASH
514 DUP2
515 MSTORE
516 PUSH1 0x20
518 DUP2
519 ADD
520 DUP8
521 SWAP1
522 MSTORE
523 DUP2
524 MLOAD
525 SWAP1
526 DUP2
527 SWAP1
528 SUB
529 SWAP1
530 SWAP2
531 ADD
532 SWAP1
533 SHA3
534 PUSH1 0x02
536 SWAP1
537 MOD
538 PUSH1 0x00
540 EQ
541 ISZERO
542 PUSH2 0x022b
545 JUMPI
546 PUSH1 0x02
548 DUP2
549 SWAP1
550 EXP
551 SWAP1
552 SWAP2
553 ADD
554 SWAP1
555 JUMPDEST
556 PUSH1 0x01
558 ADD
559 PUSH2 0x01ec
562 JUMP
563 JUMPDEST
564 PUSH2 0x05eb
567 PUSH1 0x04
569 CALLDATALOAD
570 PUSH1 0x09
572 PUSH1 0x20
574 MSTORE
575 PUSH1 0x00
577 SWAP1
578 DUP2
579 MSTORE
580 PUSH1 0x40
582 SWAP1
583 SHA3
584 SLOAD
585 DUP2
586 JUMP
587 JUMPDEST
588 PUSH2 0x0106
591 PUSH1 0x04
593 CALLDATALOAD
594 PUSH1 0x00
596 SLOAD
597 CALLER
598 PUSH1 0x01
600 PUSH1 0xa0
602 PUSH1 0x02
604 EXP
605 SUB
606 SWAP1
607 DUP2
608 AND
609 SWAP2
610 AND
611 EQ
612 PUSH2 0x0815
615 JUMPI
616 PUSH2 0x0002
619 JUMP
620 JUMPDEST
621 PUSH2 0x062d
624 PUSH1 0x00
626 SLOAD
627 PUSH1 0x01
629 PUSH1 0xa0
631 PUSH1 0x02
633 EXP
634 SUB
635 AND
636 DUP2
637 JUMP
638 JUMPDEST
639 PUSH2 0x057d
642 PUSH1 0x02
644 DUP1
645 SLOAD
646 PUSH1 0x40
648 DUP1
649 MLOAD
650 PUSH1 0x20
652 PUSH1 0x01
654 DUP5
655 AND
656 ISZERO
657 PUSH2 0x0100
660 MUL
661 PUSH1 0x00
663 NOT
664 ADD
665 SWAP1
666 SWAP4
667 AND
668 DUP5
669 SWAP1
670 DIV
671 PUSH1 0x1f
673 DUP2
674 ADD
675 DUP5
676 SWAP1
677 DIV
678 DUP5
679 MUL
680 DUP3
681 ADD
682 DUP5
683 ADD
684 SWAP1
685 SWAP3
686 MSTORE
687 DUP2
688 DUP2
689 MSTORE
690 SWAP3
691 SWAP2
692 DUP4
693 ADD
694 DUP3
695 DUP3
696 DUP1
697 ISZERO
698 PUSH2 0x0715
701 JUMPI
702 DUP1
703 PUSH1 0x1f
705 LT
706 PUSH2 0x06ea
709 JUMPI
710 PUSH2 0x0100
713 DUP1
714 DUP4
715 SLOAD
716 DIV
717 MUL
718 DUP4
719 MSTORE
720 SWAP2
721 PUSH1 0x20
723 ADD
724 SWAP2
725 PUSH2 0x0715
728 JUMP
729 JUMPDEST
730 PUSH2 0x05eb
733 PUSH1 0x06
735 SLOAD
736 CALLVALUE
737 SWAP1
738 PUSH1 0x00
740 SWAP1
741 DUP2
742 SWAP1
743 DUP2
744 SWAP1
745 DUP5
746 GT
747 ISZERO
748 PUSH2 0x08df
751 JUMPI
752 PUSH2 0x0002
755 JUMP
756 JUMPDEST
757 PUSH2 0x0106
760 PUSH1 0x04
762 CALLDATALOAD
763 PUSH1 0x24
765 CALLDATALOAD
766 CALLER
767 PUSH1 0x01
769 PUSH1 0xa0
771 PUSH1 0x02
773 EXP
774 SUB
775 AND
776 PUSH1 0x00
778 SWAP1
779 DUP2
780 MSTORE
781 PUSH1 0x09
783 PUSH1 0x20
785 MSTORE
786 PUSH1 0x40
788 SWAP1
789 SHA3
790 SLOAD
791 DUP2
792 SWAP1
793 LT
794 ISZERO
795 PUSH2 0x085e
798 JUMPI
799 PUSH2 0x0002
802 JUMP
803 JUMPDEST
804 PUSH2 0x05eb
807 PUSH1 0x06
809 SLOAD
810 DUP2
811 JUMP
812 JUMPDEST
813 PUSH2 0x05eb
816 PUSH1 0x08
818 SLOAD
819 DUP2
820 JUMP
821 JUMPDEST
822 PUSH2 0x0106
825 PUSH1 0x04
827 CALLDATALOAD
828 PUSH1 0x00
830 SLOAD
831 CALLER
832 PUSH1 0x01
834 PUSH1 0xa0
836 PUSH1 0x02
838 EXP
839 SUB
840 SWAP1
841 DUP2
842 AND
843 SWAP2
844 AND
845 EQ
846 PUSH2 0x0837
849 JUMPI
850 PUSH2 0x0002
exec
/bin/bash -lc "node - <<'NODE'
const fs=require('fs');const bundle=JSON.parse(fs.readFileSync('BYTECODE_BUNDLE.json','utf8'));let hex=bundle.artifact.runtime_bytecode.full.slice(2);const opnames={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'};
function dis(start,end){let pc=start;while(pc<=end){const op=parseInt(hex.slice(pc*2,pc*2+2),16);const name=opnames[op]||('OP_'+op.toString(16));let arg='';let next=pc+1;if(op>=0x60&&op<=0x7f){const n=op-0x5f;arg='0x'+hex.slice(next*2,next*2+n*2);next+=n;}console.log(pc.toString().padStart(4),name.padEnd(12),arg);pc=next;}}
dis(1213,1286)
NODE" in /tmp/codex-cac8u3sx
succeeded in 0ms:
1213 JUMPDEST
1214 PUSH1 0x0b
1216 PUSH1 0x20
1218 SWAP1
1219 DUP2
1220 MSTORE
1221 PUSH1 0x04
1223 CALLDATALOAD
1224 PUSH1 0x00
1226 SWAP1
1227 DUP2
1228 MSTORE
1229 PUSH1 0x40
1231 DUP1
1232 DUP3
1233 SHA3
1234 SWAP1
1235 SWAP3
1236 MSTORE
1237 PUSH1 0x24
1239 CALLDATALOAD
1240 DUP2
1241 MSTORE
1242 SHA3
1243 SLOAD
1244 PUSH2 0x05eb
1247 SWAP1
1248 DUP2
1249 JUMP
1250 JUMPDEST
1251 PUSH1 0x0a
1253 PUSH1 0x20
1255 SWAP1
1256 DUP2
1257 MSTORE
1258 PUSH1 0x04
1260 CALLDATALOAD
1261 PUSH1 0x00
1263 SWAP1
1264 DUP2
1265 MSTORE
1266 PUSH1 0x40
1268 DUP1
1269 DUP3
1270 SHA3
1271 SWAP1
1272 SWAP3
1273 MSTORE
1274 PUSH1 0x24
1276 CALLDATALOAD
1277 DUP2
1278 MSTORE
1279 SHA3
1280 SLOAD
1281 PUSH2 0x05eb
1284 SWAP1
1285 DUP2
1286 JUMP
exec
/bin/bash -lc "node - <<'NODE'
const fs=require('fs');const bundle=JSON.parse(fs.readFileSync('BYTECODE_BUNDLE.json','utf8'));let hex=bundle.artifact.runtime_bytecode.full.slice(2);const opnames={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'};
function dis(start,end){let pc=start;while(pc<=end){const op=parseInt(hex.slice(pc*2,pc*2+2),16);const name=opnames[op]||('OP_'+op.toString(16));let arg='';let next=pc+1;if(op>=0x60&&op<=0x7f){const n=op-0x5f;arg='0x'+hex.slice(next*2,next*2+n*2);next+=n;}console.log(pc.toString().padStart(4),name.padEnd(12),arg);pc=next;}}
dis(2271,2404)
NODE" in /tmp/codex-cac8u3sx
succeeded in 0ms:
2271 JUMPDEST
2272 PUSH1 0x04
2274 SLOAD
2275 ADDRESS
2276 PUSH1 0x01
2278 PUSH1 0xa0
2280 PUSH1 0x02
2282 EXP
2283 SUB
2284 AND
2285 BALANCE
2286 PUSH6 0x09184e72a000
2293 MUL
2294 DIV
2295 PUSH1 0x08
2297 SSTORE
2298 PUSH1 0x40
2300 DUP1
2301 MLOAD
2302 NUMBER
2303 DUP2
2304 MSTORE
2305 TIMESTAMP
2306 PUSH1 0x20
2308 DUP3
2309 ADD
2310 MSTORE
2311 DUP1
2312 DUP3
2313 ADD
2314 DUP7
2315 SWAP1
2316 MSTORE
2317 SWAP1
2318 MLOAD
2319 SWAP1
2320 DUP2
2321 SWAP1
2322 SUB
2323 PUSH1 0x60
2325 ADD
2326 SWAP1
2327 SHA3
2328 PUSH2 0x0922
2331 SWAP1
2332 PUSH1 0x0a
2334 PUSH2 0x01e7
2337 JUMP
2338 JUMPDEST
2339 PUSH1 0x07
2341 SLOAD
2342 SWAP1
2343 SWAP2
2344 POP
2345 PUSH4 0xffffffff
2350 AND
2351 DUP2
2352 LT
2353 PUSH2 0x0947
2356 JUMPI
2357 PUSH1 0x00
2359 SWAP3
2360 POP
2361 PUSH2 0x03e7
2364 PUSH5 0x174876e800
2370 DUP6
2371 DIV
2372 DIV
2373 SWAP2
2374 POP
2375 JUMPDEST
2376 PUSH1 0x07
2378 SLOAD
2379 PUSH4 0xffffffff
2384 AND
2385 DUP2
2386 LT
2387 ISZERO
2388 PUSH2 0x0965
2391 JUMPI
2392 PUSH5 0x174876e800
2398 PUSH1 0x02
2400 DUP6
2401 MUL
2402 DIV
2403 SWAP3
2404 POP
exec
/bin/bash -lc "node - <<'NODE'
const fs=require('fs');const bundle=JSON.parse(fs.readFileSync('BYTECODE_BUNDLE.json','utf8'));let hex=bundle.artifact.runtime_bytecode.full.slice(2);const opnames={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'};
function dis(start,end){let pc=start;while(pc<=end){const op=parseInt(hex.slice(pc*2,pc*2+2),16);const name=opnames[op]||('OP_'+op.toString(16));let arg='';let next=pc+1;if(op>=0x60&&op<=0x7f){const n=op-0x5f;arg='0x'+hex.slice(next*2,next*2+n*2);next+=n;}console.log(pc.toString().padStart(4),name.padEnd(12),arg);pc=next;}}
dis(1821,2068)
NODE" in /tmp/codex-cac8u3sx
succeeded in 0ms:
1821 JUMPDEST
1822 POP
1823 SWAP4
1824 SWAP3
1825 POP
1826 POP
1827 POP
1828 JUMP
1829 JUMPDEST
1830 PUSH1 0x01
1832 PUSH1 0xa0
1834 PUSH1 0x02
1836 EXP
1837 SUB
1838 DUP4
1839 AND
1840 PUSH1 0x00
1842 SWAP1
1843 DUP2
1844 MSTORE
1845 PUSH1 0x09
1847 PUSH1 0x20
1849 MSTORE
1850 PUSH1 0x40
1852 SWAP1
1853 SHA3
1854 SLOAD
1855 DUP1
1856 DUP4
1857 ADD
1858 LT
1859 ISZERO
1860 PUSH2 0x074c
1863 JUMPI
1864 PUSH2 0x0002
1867 JUMP
1868 JUMPDEST
1869 PUSH1 0x01
1871 PUSH1 0xa0
1873 PUSH1 0x02
1875 EXP
1876 SUB
1877 DUP5
1878 DUP2
1879 AND
1880 PUSH1 0x00
1882 DUP2
1883 DUP2
1884 MSTORE
1885 PUSH1 0x0a
1887 PUSH1 0x20
1889 SWAP1
1890 DUP2
1891 MSTORE
1892 PUSH1 0x40
1894 DUP1
1895 DUP4
1896 SHA3
1897 CALLER
1898 SWAP1
1899 SWAP6
1900 AND
1901 DUP1
1902 DUP5
1903 MSTORE
1904 SWAP5
1905 DUP3
1906 MSTORE
1907 DUP1
1908 DUP4
1909 SHA3
1910 SLOAD
1911 SWAP4
1912 DUP4
1913 MSTORE
1914 PUSH1 0x0b
1916 DUP3
1917 MSTORE
1918 DUP1
1919 DUP4
1920 SHA3
1921 SWAP5
1922 DUP4
1923 MSTORE
1924 SWAP4
1925 SWAP1
1926 MSTORE
1927 SWAP2
1928 SWAP1
1929 SWAP2
1930 SHA3
1931 SLOAD
1932 DUP4
1933 ADD
1934 GT
1935 ISZERO
1936 PUSH2 0x0798
1939 JUMPI
1940 PUSH2 0x0002
1943 JUMP
1944 JUMPDEST
1945 PUSH1 0x01
1947 PUSH1 0xa0
1949 PUSH1 0x02
1951 EXP
1952 SUB
1953 DUP5
1954 DUP2
1955 AND
1956 PUSH1 0x00
1958 DUP2
1959 DUP2
1960 MSTORE
1961 PUSH1 0x09
1963 PUSH1 0x20
1965 SWAP1
1966 DUP2
1967 MSTORE
1968 PUSH1 0x40
1970 DUP1
1971 DUP4
1972 SHA3
1973 DUP1
1974 SLOAD
1975 DUP9
1976 SWAP1
1977 SUB
1978 SWAP1
1979 SSTORE
1980 DUP8
1981 DUP6
1982 AND
1983 DUP1
1984 DUP5
1985 MSTORE
1986 DUP2
1987 DUP5
1988 SHA3
1989 DUP1
1990 SLOAD
1991 DUP10
1992 ADD
1993 SWAP1
1994 SSTORE
1995 DUP5
1996 DUP5
1997 MSTORE
1998 PUSH1 0x0b
2000 DUP4
2001 MSTORE
2002 DUP2
2003 DUP5
2004 SHA3
2005 CALLER
2006 SWAP1
2007 SWAP7
2008 AND
2009 DUP5
2010 MSTORE
2011 SWAP5
2012 DUP3
2013 MSTORE
2014 SWAP2
2015 DUP3
2016 SWAP1
2017 SHA3
2018 DUP1
2019 SLOAD
2020 DUP8
2021 ADD
2022 SWAP1
2023 SSTORE
2024 DUP2
2025 MLOAD
2026 DUP7
2027 DUP2
2028 MSTORE
2029 SWAP2
2030 MLOAD
2031 PUSH1 0x00
2033 DUP1
2034 MLOAD
2035 PUSH1 0x20
2037 PUSH2 0x0a09
2040 DUP4
2041 CODECOPY
2042 DUP2
2043 MLOAD
2044 SWAP2
2045 MSTORE
2046 SWAP3
2047 DUP2
2048 SWAP1
2049 SUB
2050 SWAP1
2051 SWAP2
2052 ADD
2053 SWAP1
2054 LOG3
2055 POP
2056 PUSH1 0x01
2058 SWAP4
2059 SWAP3
2060 POP
2061 POP
2062 POP
2063 JUMP
2064 JUMPDEST
2065 PUSH1 0x06
2067 SSTORE
2068 JUMP
exec
/bin/bash -lc "node - <<'NODE'
const fs=require('fs');const bundle=JSON.parse(fs.readFileSync('BYTECODE_BUNDLE.json','utf8'));const hex=bundle.artifact.runtime_bytecode.full.slice(2);
const opnames={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x10:'LT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x19:'NOT',0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x39:'CODECOPY',0x51:'MLOAD',0x52:'MSTORE',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x5a:'GAS',0x60:'PUSH1',0x61:'PUSH2',0x65:'PUSH6',0x73:'PUSH20',0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0xa3:'LOG3',0xf1:'CALL'};
function decode(start,end){let pc=start, out=[];while(pc<=end){const op=parseInt(hex.slice(pc*2,pc*2+2),16);let next=pc+1,arg='';if(op>=0x60&&op<=0x7f){const n=op-0x5f;arg='0x'+hex.slice(next*2,next*2+n*2);next+=n;} out.push({pc,op,name:opnames[op]||('OP_'+op.toString(16)),arg}); pc=next;} return out;}
const ops=decode(1287,1681);
let stack=[];
function show(){return '['+stack.map((x,i)=>"'`${stack.length-i}:${x}`).join('"', ')+']';}
function pop(){return stack.pop()||'?';}
function push(x){stack.push(x);}
for (const ins of ops){const n=ins.name; const a=ins.arg;
try {
if(n.startsWith('PUSH')) push(a);
else if(n.startsWith('DUP')) { const idx=Number(n.slice(3)); push(stack[stack.length-idx]||"'`dup?${idx}`); }
else if(n.startsWith('"'SWAP')) { const idx=Number(n.slice(4)); const i=stack.length-1, j=stack.length-1-idx; [stack[i],stack[j]]=[stack[j],stack[i]]; }
else if(n==='POP') pop();
else if(['ADD','SUB','MUL','DIV','AND','EQ','LT'].includes(n)) { const b=pop(), c=pop(); push("'`(${c} ${n} ${b})`); }
else if(n==='"'ISZERO') { const b=pop(); push("'`iszero(${b})`); }
else if(n==='"'NOT') { const b=pop(); push("'`not(${b})`); }
else if(n==='"'CALLDATALOAD') { const b=pop(); push("'`cd[${b}]`); }
else if(n==='"'SLOAD') { const b=pop(); push("'`sload(${b})`); }
else if(n==='"'SSTORE') { const slot=pop(), val=pop(); push("'`sstore(${slot},${val})`); }
else if(n==='"'MLOAD') { const b=pop(); push("'`mload(${b})`); }
else if(n==='"'MSTORE') { const off=pop(), val=pop(); push("'`mstore(${off},${val})`); }
else if(n==='"'SHA3') { const sz=pop(), off=pop(); push("'`sha3(${off},${sz})`); }
else if(n==='"'ADDRESS') push('address(this)');
else if(n==='CALLER') push('caller');
else if(n==='CALLVALUE') push('callvalue');
else if(n==='BALANCE') { const addr=pop(); push("'`balance(${addr})`); }
else if(n==='"'GAS') push('gas');
else if(n==='CODECOPY') { const mem=pop(), code=pop(), size=pop(); push("'`codecopy(${mem},${code},${size})`); }
else if(n==='"'LOG3') { const t3=pop(), t2=pop(), t1=pop(), mem=pop(), size=pop(); push("'`log3(${size},${mem},${t1},${t2},${t3})`); }
else if(n==='"'CALL') { const gas=pop(), to=pop(), value=pop(), inOff=pop(), inSz=pop(), outOff=pop(), outSz=pop(); push("'`call(gas=${gas},to=${to},value=${value},in=${inOff}/${inSz},out=${outOff}/${outSz})`); }
else if(['"'JUMPDEST','JUMPI','JUMP'].includes(n)) {}
else {}
} catch(e) { console.log('error at',ins.pc,n,e.message); break; }
if([1288,1324,1341,1349,1639,1661,1681].includes(ins.pc)) console.log(ins.pc,n,a,show());
}
console.log('final',show());
NODE" in /tmp/codex-cac8u3sx
succeeded in 0ms:
1288 PUSH2 0x05eb [1:0x05eb]
1324 SSTORE [5:0x05eb, 4:cd[0x04], 3:sload(0x04), 2:(0xa0 SUB 0x02), 1:sstore(0x08,(address(this) DIV (balance((0x01 AND (0xa0 SUB 0x02))) MUL 0x5af3107a4000)))]
1341 SLOAD [8:0x05eb, 7:cd[0x04], 6:sload(0x04), 5:(0xa0 SUB 0x02), 4:0x00, 3:mstore(0x00,(sstore(0x08,(address(this) DIV (balance((0x01 AND (0xa0 SUB 0x02))) MUL 0x5af3107a4000))) AND caller)), 2:mstore(0x20,0x09), 1:sload(sha3(0x40,mstore(0x20,0x09)))]
1349 JUMPI [9:0x05eb, 8:cd[0x04], 7:sload(0x04), 6:(0xa0 SUB 0x02), 5:0x00, 4:mstore(0x00,(sstore(0x08,(address(this) DIV (balance((0x01 AND (0xa0 SUB 0x02))) MUL 0x5af3107a4000))) AND caller)), 3:mstore(0x20,0x09), 2:iszero((mstore(0x00,(sstore(0x08,(address(this) DIV (balance((0x01 AND (0xa0 SUB 0x02))) MUL 0x5af3107a4000))) AND caller)) LT sload(sha3(0x40,mstore(0x20,0x09))))), 1:0x064a]
1639 DUP1 [51:0x05eb, 50:cd[0x04], 49:sload(0x04), 48:(0xa0 SUB 0x02), 47:0x00, 46:mstore(0x00,(sstore(0x08,(address(this) DIV (balance((0x01 AND (0xa0 SUB 0x02))) MUL 0x5af3107a4000))) AND caller)), 45:mstore(0x20,0x09), 44:iszero((mstore(0x00,(sstore(0x08,(address(this) DIV (balance((0x01 AND (0xa0 SUB 0x02))) MUL 0x5af3107a4000))) AND caller)) LT sload(sha3(0x40,mstore(0x20,0x09))))), 43:0x064a, 42:0x0002, 41:0x0106, 40:cd[0x04], 39:sload(0x00), 38:((0x01 AND (0xa0 SUB 0x02)) EQ ((0xa0 SUB 0x02) AND caller)), 37:0x06c8, 36:0x0002, 35:0x062d, 34:sload(0x05), 33:(0x01 AND (0xa0 SUB 0x02)), 32:sload(0x05), 31:mload(0x40), 30:mload(0x40), 29:(mload(0x40) ADD 0x20), 28:mstore(mload(0x40),(mload(0x40) SUB (mload(0x40) ADD 0x20))), 27:(mstore(mstore(mload(0x40),(mload(0x40) SUB (mload(0x40) ADD 0x20))),mload(mload(0x40))) ADD 0x20), 26:mstore(mload(0x40),(mload(0x40) SUB (mload(0x40) ADD 0x20))), 25:(mload(0x40) ADD 0x20), 24:(call(gas=(((0x20 DIV (mload(mload(0x40)) ADD 0x1f)) MUL 0x0f) ADD 0x03),to=0x04,value=0x00,in=(mload(0x40) ADD 0x20)/mload(mload(0x40)),out=mstore(mload(0x40),(mload(0x40) SUB (mload(0x40) ADD 0x20)))/mload(mload(0x40))) ADD mload(mload(0x40))), 23:(mload(mload(0x40)) AND 0x1f), 22:iszero((mload(mload(0x40)) AND 0x1f)), 21:(0x05dd SUB iszero((mload(mload(0x40)) AND 0x1f))), 20:(mstore(mload((0x05dd SUB iszero((mload(mload(0x40)) AND 0x1f)))),(0x01 AND not(((0x05dd SUB 0x20) SUB 0x0100)))) ADD 0x20), 19:mload((0x05dd SUB iszero((mload(mload(0x40)) AND 0x1f)))), 18:(mload(0x40) SUB 0x05dd), 17:mload(0x40), 16:0x40, 15:((mload(mstore(0x40,(((mload(mstore(mload(0x40),mload(0x40))) SUB 0x40) ADD 0x20) AND mload(0x40)))) SUB mload(mstore(mload(0x40),mload(0x40)))) ADD 0x20), 14:mload(0x40), 13:((mload(mstore(mload(0x40),(0xff AND mload(mstore(0x40,(((mload(mstore(mload(0x40),mload(0x40))) SUB 0x40) ADD 0x20) AND mload(0x40))))))) SUB 0x40) ADD 0x20), 12:mload(mstore(mload(0x40),(0xff AND mload(mstore(0x40,(((mload(mstore(mload(0x40),mload(0x40))) SUB 0x40) ADD 0x20) AND mload(0x40))))))), 11:0x01, 10:((mload(mstore(0x01,(0x40 AND (0xa0 SUB 0x02)))) SUB mload(0x40)) ADD 0x20), 9:mload(mstore(0x01,(0x40 AND (0xa0 SUB 0x02)))), 8:address(this), 7:(0xa0 SUB 0x02), 6:0x00, 5:mstore(0x00,(0x01 AND (0xa0 SUB 0x02))), 4:mstore(0x20,0x09), 3:0x40, 2:sha3(0x40,mstore(0x20,0x09)), 1:sha3(0x40,mstore(0x20,0x09))]
1661 SSTORE [52:0x05eb, 51:cd[0x04], 50:sload(0x04), 49:(0xa0 SUB 0x02), 48:0x00, 47:mstore(0x00,(sstore(0x08,(address(this) DIV (balance((0x01 AND (0xa0 SUB 0x02))) MUL 0x5af3107a4000))) AND caller)), 46:mstore(0x20,0x09), 45:iszero((mstore(0x00,(sstore(0x08,(address(this) DIV (balance((0x01 AND (0xa0 SUB 0x02))) MUL 0x5af3107a4000))) AND caller)) LT sload(sha3(0x40,mstore(0x20,0x09))))), 44:0x064a, 43:0x0002, 42:0x0106, 41:cd[0x04], 40:sload(0x00), 39:((0x01 AND (0xa0 SUB 0x02)) EQ ((0xa0 SUB 0x02) AND caller)), 38:0x06c8, 37:0x0002, 36:0x062d, 35:sload(0x05), 34:(0x01 AND (0xa0 SUB 0x02)), 33:sload(0x05), 32:mload(0x40), 31:mload(0x40), 30:(mload(0x40) ADD 0x20), 29:mstore(mload(0x40),(mload(0x40) SUB (mload(0x40) ADD 0x20))), 28:(mstore(mstore(mload(0x40),(mload(0x40) SUB (mload(0x40) ADD 0x20))),mload(mload(0x40))) ADD 0x20), 27:mstore(mload(0x40),(mload(0x40) SUB (mload(0x40) ADD 0x20))), 26:(mload(0x40) ADD 0x20), 25:(call(gas=(((0x20 DIV (mload(mload(0x40)) ADD 0x1f)) MUL 0x0f) ADD 0x03),to=0x04,value=0x00,in=(mload(0x40) ADD 0x20)/mload(mload(0x40)),out=mstore(mload(0x40),(mload(0x40) SUB (mload(0x40) ADD 0x20)))/mload(mload(0x40))) ADD mload(mload(0x40))), 24:(mload(mload(0x40)) AND 0x1f), 23:iszero((mload(mload(0x40)) AND 0x1f)), 22:(0x05dd SUB iszero((mload(mload(0x40)) AND 0x1f))), 21:(mstore(mload((0x05dd SUB iszero((mload(mload(0x40)) AND 0x1f)))),(0x01 AND not(((0x05dd SUB 0x20) SUB 0x0100)))) ADD 0x20), 20:mload((0x05dd SUB iszero((mload(mload(0x40)) AND 0x1f)))), 19:(mload(0x40) SUB 0x05dd), 18:mload(0x40), 17:0x40, 16:((mload(mstore(0x40,(((mload(mstore(mload(0x40),mload(0x40))) SUB 0x40) ADD 0x20) AND mload(0x40)))) SUB mload(mstore(mload(0x40),mload(0x40)))) ADD 0x20), 15:mload(0x40), 14:((mload(mstore(mload(0x40),(0xff AND mload(mstore(0x40,(((mload(mstore(mload(0x40),mload(0x40))) SUB 0x40) ADD 0x20) AND mload(0x40))))))) SUB 0x40) ADD 0x20), 13:mload(mstore(mload(0x40),(0xff AND mload(mstore(0x40,(((mload(mstore(mload(0x40),mload(0x40))) SUB 0x40) ADD 0x20) AND mload(0x40))))))), 12:0x01, 11:((mload(mstore(0x01,(0x40 AND (0xa0 SUB 0x02)))) SUB mload(0x40)) ADD 0x20), 10:mload(mstore(0x01,(0x40 AND (0xa0 SUB 0x02)))), 9:address(this), 8:(0xa0 SUB 0x02), 7:0x00, 6:mstore(0x00,(0x01 AND (0xa0 SUB 0x02))), 5:sstore(sha3(0x40,mstore(0x20,0x09)),(sload(sha3(0x40,mstore(0x20,0x09))) ADD 0x00)), 4:0x40, 3:(caller AND mstore(0x20,0x09)), 2:mstore(0x40,(caller AND mstore(0x20,0x09))), 1:sstore(sha3(0x40,(caller AND mstore(0x20,0x09))),(sstore(sha3(0x40,mstore(0x20,0x09)),(sload(sha3(0x40,mstore(0x20,0x09))) ADD 0x00)) SUB sload(sha3(0x40,(caller AND mstore(0x20,0x09))))))]
1681 CALL [55:0x05eb, 54:cd[0x04], 53:sload(0x04), 52:(0xa0 SUB 0x02), 51:0x00, 50:mstore(0x00,(sstore(0x08,(address(this) DIV (balance((0x01 AND (0xa0 SUB 0x02))) MUL 0x5af3107a4000))) AND caller)), 49:mstore(0x20,0x09), 48:iszero((mstore(0x00,(sstore(0x08,(address(this) DIV (balance((0x01 AND (0xa0 SUB 0x02))) MUL 0x5af3107a4000))) AND caller)) LT sload(sha3(0x40,mstore(0x20,0x09))))), 47:0x064a, 46:0x0002, 45:0x0106, 44:cd[0x04], 43:sload(0x00), 42:((0x01 AND (0xa0 SUB 0x02)) EQ ((0xa0 SUB 0x02) AND caller)), 41:0x06c8, 40:0x0002, 39:0x062d, 38:sload(0x05), 37:(0x01 AND (0xa0 SUB 0x02)), 36:sload(0x05), 35:mload(0x40), 34:mload(0x40), 33:(mload(0x40) ADD 0x20), 32:mstore(mload(0x40),(mload(0x40) SUB (mload(0x40) ADD 0x20))), 31:(mstore(mstore(mload(0x40),(mload(0x40) SUB (mload(0x40) ADD 0x20))),mload(mload(0x40))) ADD 0x20), 30:mstore(mload(0x40),(mload(0x40) SUB (mload(0x40) ADD 0x20))), 29:(mload(0x40) ADD 0x20), 28:(call(gas=(((0x20 DIV (mload(mload(0x40)) ADD 0x1f)) MUL 0x0f) ADD 0x03),to=0x04,value=0x00,in=(mload(0x40) ADD 0x20)/mload(mload(0x40)),out=mstore(mload(0x40),(mload(0x40) SUB (mload(0x40) ADD 0x20)))/mload(mload(0x40))) ADD mload(mload(0x40))), 27:(mload(mload(0x40)) AND 0x1f), 26:iszero((mload(mload(0x40)) AND 0x1f)), 25:(0x05dd SUB iszero((mload(mload(0x40)) AND 0x1f))), 24:(mstore(mload((0x05dd SUB iszero((mload(mload(0x40)) AND 0x1f)))),(0x01 AND not(((0x05dd SUB 0x20) SUB 0x0100)))) ADD 0x20), 23:mload((0x05dd SUB iszero((mload(mload(0x40)) AND 0x1f)))), 22:(mload(0x40) SUB 0x05dd), 21:mload(0x40), 20:0x40, 19:((mload(mstore(0x40,(((mload(mstore(mload(0x40),mload(0x40))) SUB 0x40) ADD 0x20) AND mload(0x40)))) SUB mload(mstore(mload(0x40),mload(0x40)))) ADD 0x20), 18:mload(0x40), 17:((mload(mstore(mload(0x40),(0xff AND mload(mstore(0x40,(((mload(mstore(mload(0x40),mload(0x40))) SUB 0x40) ADD 0x20) AND mload(0x40))))))) SUB 0x40) ADD 0x20), 16:mload(mstore(mload(0x40),(0xff AND mload(mstore(0x40,(((mload(mstore(mload(0x40),mload(0x40))) SUB 0x40) ADD 0x20) AND mload(0x40))))))), 15:0x01, 14:((mload(mstore(0x01,(0x40 AND (0xa0 SUB 0x02)))) SUB mload(0x40)) ADD 0x20), 13:mload(mstore(0x01,(0x40 AND (0xa0 SUB 0x02)))), 12:address(this), 11:(0xa0 SUB 0x02), 10:0x00, 9:mstore(0x00,(0x01 AND (0xa0 SUB 0x02))), 8:sstore(sha3(0x40,mstore(0x20,0x09)),(sload(sha3(0x40,mstore(0x20,0x09))) ADD 0x00)), 7:0x40, 6:(sload(0x08) MUL 0x40), 5:sstore(sha3(0x40,(caller AND mstore(0x20,0x09))),(sstore(sha3(0x40,mstore(0x20,0x09)),(sload(sha3(0x40,mstore(0x20,0x09))) ADD 0x00)) SUB sload(sha3(0x40,(caller AND mstore(0x20,0x09)))))), 4:mstore(0x40,(caller AND mstore(0x20,0x09))), 3:(sload(0x08) MUL 0x40), 2:mload((caller AND mstore(0x20,0x09))), 1:call(gas=mstore(0x40,(caller AND mstore(0x20,0x09))),to=sstore(sha3(0x40,(caller AND mstore(0x20,0x09))),(sstore(sha3(0x40,mstore(0x20,0x09)),(sload(sha3(0x40,mstore(0x20,0x09))) ADD 0x00)) SUB sload(sha3(0x40,(caller AND mstore(0x20,0x09)))))),value=(sload(0x08) MUL 0x40),in=mload((caller AND mstore(0x20,0x09)))/mstore(0x40,(caller AND mstore(0x20,0x09))),out=mload((caller AND mstore(0x20,0x09)))/mstore(0x40,(caller AND mstore(0x20,0x09))))]
final [55:0x05eb, 54:cd[0x04], 53:sload(0x04), 52:(0xa0 SUB 0x02), 51:0x00, 50:mstore(0x00,(sstore(0x08,(address(this) DIV (balance((0x01 AND (0xa0 SUB 0x02))) MUL 0x5af3107a4000))) AND caller)), 49:mstore(0x20,0x09), 48:iszero((mstore(0x00,(sstore(0x08,(address(this) DIV (balance((0x01 AND (0xa0 SUB 0x02))) MUL 0x5af3107a4000))) AND caller)) LT sload(sha3(0x40,mstore(0x20,0x09))))), 47:0x064a, 46:0x0002, 45:0x0106, 44:cd[0x04], 43:sload(0x00), 42:((0x01 AND (0xa0 SUB 0x02)) EQ ((0xa0 SUB 0x02) AND caller)), 41:0x06c8, 40:0x0002, 39:0x062d, 38:sload(0x05), 37:(0x01 AND (0xa0 SUB 0x02)), 36:sload(0x05), 35:mload(0x40), 34:mload(0x40), 33:(mload(0x40) ADD 0x20), 32:mstore(mload(0x40),(mload(0x40) SUB (mload(0x40) ADD 0x20))), 31:(mstore(mstore(mload(0x40),(mload(0x40) SUB (mload(0x40) ADD 0x20))),mload(mload(0x40))) ADD 0x20), 30:mstore(mload(0x40),(mload(0x40) SUB (mload(0x40) ADD 0x20))), 29:(mload(0x40) ADD 0x20), 28:(call(gas=(((0x20 DIV (mload(mload(0x40)) ADD 0x1f)) MUL 0x0f) ADD 0x03),to=0x04,value=0x00,in=(mload(0x40) ADD 0x20)/mload(mload(0x40)),out=mstore(mload(0x40),(mload(0x40) SUB (mload(0x40) ADD 0x20)))/mload(mload(0x40))) ADD mload(mload(0x40))), 27:(mload(mload(0x40)) AND 0x1f), 26:iszero((mload(mload(0x40)) AND 0x1f)), 25:(0x05dd SUB iszero((mload(mload(0x40)) AND 0x1f))), 24:(mstore(mload((0x05dd SUB iszero((mload(mload(0x40)) AND 0x1f)))),(0x01 AND not(((0x05dd SUB 0x20) SUB 0x0100)))) ADD 0x20), 23:mload((0x05dd SUB iszero((mload(mload(0x40)) AND 0x1f)))), 22:(mload(0x40) SUB 0x05dd), 21:mload(0x40), 20:0x40, 19:((mload(mstore(0x40,(((mload(mstore(mload(0x40),mload(0x40))) SUB 0x40) ADD 0x20) AND mload(0x40)))) SUB mload(mstore(mload(0x40),mload(0x40)))) ADD 0x20), 18:mload(0x40), 17:((mload(mstore(mload(0x40),(0xff AND mload(mstore(0x40,(((mload(mstore(mload(0x40),mload(0x40))) SUB 0x40) ADD 0x20) AND mload(0x40))))))) SUB 0x40) ADD 0x20), 16:mload(mstore(mload(0x40),(0xff AND mload(mstore(0x40,(((mload(mstore(mload(0x40),mload(0x40))) SUB 0x40) ADD 0x20) AND mload(0x40))))))), 15:0x01, 14:((mload(mstore(0x01,(0x40 AND (0xa0 SUB 0x02)))) SUB mload(0x40)) ADD 0x20), 13:mload(mstore(0x01,(0x40 AND (0xa0 SUB 0x02)))), 12:address(this), 11:(0xa0 SUB 0x02), 10:0x00, 9:mstore(0x00,(0x01 AND (0xa0 SUB 0x02))), 8:sstore(sha3(0x40,mstore(0x20,0x09)),(sload(sha3(0x40,mstore(0x20,0x09))) ADD 0x00)), 7:0x40, 6:(sload(0x08) MUL 0x40), 5:sstore(sha3(0x40,(caller AND mstore(0x20,0x09))),(sstore(sha3(0x40,mstore(0x20,0x09)),(sload(sha3(0x40,mstore(0x20,0x09))) ADD 0x00)) SUB sload(sha3(0x40,(caller AND mstore(0x20,0x09)))))), 4:mstore(0x40,(caller AND mstore(0x20,0x09))), 3:(sload(0x08) MUL 0x40), 2:mload((caller AND mstore(0x20,0x09))), 1:call(gas=mstore(0x40,(caller AND mstore(0x20,0x09))),to=sstore(sha3(0x40,(caller AND mstore(0x20,0x09))),(sstore(sha3(0x40,mstore(0x20,0x09)),(sload(sha3(0x40,mstore(0x20,0x09))) ADD 0x00)) SUB sload(sha3(0x40,(caller AND mstore(0x20,0x09)))))),value=(sload(0x08) MUL 0x40),in=mload((caller AND mstore(0x20,0x09)))/mstore(0x40,(caller AND mstore(0x20,0x09))),out=mload((caller AND mstore(0x20,0x09)))/mstore(0x40,(caller AND mstore(0x20,0x09))))]
exec
/bin/bash -lc "node - <<'NODE'
const fs=require('fs');const bundle=JSON.parse(fs.readFileSync('BYTECODE_BUNDLE.json','utf8'));let hex=bundle.artifact.runtime_bytecode.full.slice(2);const opnames={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'};
function dis(start,end){let pc=start;while(pc<=end){const op=parseInt(hex.slice(pc*2,pc*2+2),16);const name=opnames[op]||('OP_'+op.toString(16));let arg='';let next=pc+1;if(op>=0x60&&op<=0x7f){const n=op-0x5f;arg='0x'+hex.slice(next*2,next*2+n*2);next+=n;}console.log(pc.toString().padStart(4),name.padEnd(12),arg);pc=next;}}
dis(1350,1410)
NODE" in /tmp/codex-cac8u3sx
succeeded in 0ms:
1350 PUSH2 0x0002
1353 JUMP
1354 JUMPDEST
1355 PUSH2 0x0106
1358 PUSH1 0x04
1360 CALLDATALOAD
1361 PUSH1 0x00
1363 SLOAD
1364 CALLER
1365 PUSH1 0x01
1367 PUSH1 0xa0
1369 PUSH1 0x02
1371 EXP
1372 SUB
1373 SWAP1
1374 DUP2
1375 AND
1376 SWAP2
1377 AND
1378 EQ
1379 PUSH2 0x06c8
1382 JUMPI
1383 PUSH2 0x0002
1386 JUMP
1387 JUMPDEST
1388 PUSH2 0x062d
1391 PUSH1 0x05
1393 SLOAD
1394 PUSH1 0x01
1396 PUSH1 0xa0
1398 PUSH1 0x02
1400 EXP
1401 SUB
1402 AND
1403 DUP2
1404 JUMP
1405 JUMPDEST
1406 PUSH1 0x40
1408 MLOAD
1409 DUP1
1410 DUP1
exec
/bin/bash -lc "node - <<'NODE'
const fs=require('fs');const b=JSON.parse(fs.readFileSync('BYTECODE_BUNDLE.json','utf8'));const hex=b.artifact.runtime_bytecode.full.slice(2);const names={0x00:'STOP',0x14:'EQ',0x15:'ISZERO',0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x39:'CODECOPY',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x5a:'GAS',0x5b:'JUMPDEST',0x60:'PUSH1',0x61:'PUSH2',0x63:'PUSH4',0x65:'PUSH6',0x73:'PUSH20',0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0xa3:'LOG3',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN'};function dis(s,e){let pc=s;while(pc<=e){const op=parseInt(hex.slice(pc*2,pc*2+2),16);let name=names[op]||('OP_'+op.toString(16));let arg='';let nx=pc+1;if(op>=0x60&&op<=0x7f){let n=op-0x5f;arg='0x'+hex.slice(nx*2,nx*2+n*2);nx+=n;}console.log(pc.toString().padStart(4),name.padEnd(12),arg);pc=nx;}}dis(1354,1410);console.log('---');dis(1354,1410);console.log('---');dis(1354,1410);console.log('---');dis(1354,1410);console.log('---');dis(1354,1410);
NODE" in /tmp/codex-cac8u3sx
succeeded in 0ms:
1354 JUMPDEST
1355 PUSH2 0x0106
1358 PUSH1 0x04
1360 CALLDATALOAD
1361 PUSH1 0x00
1363 SLOAD
1364 CALLER
1365 PUSH1 0x01
1367 PUSH1 0xa0
1369 PUSH1 0x02
1371 OP_a
1372 OP_3
1373 SWAP1
1374 DUP2
1375 OP_16
1376 SWAP2
1377 OP_16
1378 EQ
1379 PUSH2 0x06c8
1382 JUMPI
1383 PUSH2 0x0002
1386 JUMP
1387 JUMPDEST
1388 PUSH2 0x062d
1391 PUSH1 0x05
1393 SLOAD
1394 PUSH1 0x01
1396 PUSH1 0xa0
1398 PUSH1 0x02
1400 OP_a
1401 OP_3
1402 OP_16
1403 DUP2
1404 JUMP
1405 JUMPDEST
1406 PUSH1 0x40
1408 MLOAD
1409 DUP1
1410 DUP1
---
1354 JUMPDEST
1355 PUSH2 0x0106
1358 PUSH1 0x04
1360 CALLDATALOAD
1361 PUSH1 0x00
1363 SLOAD
1364 CALLER
1365 PUSH1 0x01
1367 PUSH1 0xa0
1369 PUSH1 0x02
1371 OP_a
1372 OP_3
1373 SWAP1
1374 DUP2
1375 OP_16
1376 SWAP2
1377 OP_16
1378 EQ
1379 PUSH2 0x06c8
1382 JUMPI
1383 PUSH2 0x0002
1386 JUMP
1387 JUMPDEST
1388 PUSH2 0x062d
1391 PUSH1 0x05
1393 SLOAD
1394 PUSH1 0x01
1396 PUSH1 0xa0
1398 PUSH1 0x02
1400 OP_a
1401 OP_3
1402 OP_16
1403 DUP2
1404 JUMP
1405 JUMPDEST
1406 PUSH1 0x40
1408 MLOAD
1409 DUP1
1410 DUP1
---
1354 JUMPDEST
1355 PUSH2 0x0106
1358 PUSH1 0x04
1360 CALLDATALOAD
1361 PUSH1 0x00
1363 SLOAD
1364 CALLER
1365 PUSH1 0x01
1367 PUSH1 0xa0
1369 PUSH1 0x02
1371 OP_a
1372 OP_3
1373 SWAP1
1374 DUP2
1375 OP_16
1376 SWAP2
1377 OP_16
1378 EQ
1379 PUSH2 0x06c8
1382 JUMPI
1383 PUSH2 0x0002
1386 JUMP
1387 JUMPDEST
1388 PUSH2 0x062d
1391 PUSH1 0x05
1393 SLOAD
1394 PUSH1 0x01
1396 PUSH1 0xa0
1398 PUSH1 0x02
1400 OP_a
1401 OP_3
1402 OP_16
1403 DUP2
1404 JUMP
1405 JUMPDEST
1406 PUSH1 0x40
1408 MLOAD
1409 DUP1
1410 DUP1
---
1354 JUMPDEST
1355 PUSH2 0x0106
1358 PUSH1 0x04
1360 CALLDATALOAD
1361 PUSH1 0x00
1363 SLOAD
1364 CALLER
1365 PUSH1 0x01
1367 PUSH1 0xa0
1369 PUSH1 0x02
1371 OP_a
1372 OP_3
1373 SWAP1
1374 DUP2
1375 OP_16
1376 SWAP2
1377 OP_16
1378 EQ
1379 PUSH2 0x06c8
1382 JUMPI
1383 PUSH2 0x0002
1386 JUMP
1387 JUMPDEST
1388 PUSH2 0x062d
1391 PUSH1 0x05
1393 SLOAD
1394 PUSH1 0x01
1396 PUSH1 0xa0
1398 PUSH1 0x02
1400 OP_a
1401 OP_3
1402 OP_16
1403 DUP2
1404 JUMP
1405 JUMPDEST
1406 PUSH1 0x40
1408 MLOAD
1409 DUP1
1410 DUP1
---
1354 JUMPDEST
1355 PUSH2 0x0106
1358 PUSH1 0x04
1360 CALLDATALOAD
1361 PUSH1 0x00
1363 SLOAD
1364 CALLER
1365 PUSH1 0x01
1367 PUSH1 0xa0
1369 PUSH1 0x02
1371 OP_a
1372 OP_3
1373 SWAP1
1374 DUP2
1375 OP_16
1376 SWAP2
1377 OP_16
1378 EQ
1379 PUSH2 0x06c8
1382 JUMPI
1383 PUSH2 0x0002
1386 JUMP
1387 JUMPDEST
1388 PUSH2 0x062d
1391 PUSH1 0x05
1393 SLOAD
1394 PUSH1 0x01
1396 PUSH1 0xa0
1398 PUSH1 0x02
1400 OP_a
1401 OP_3
1402 OP_16
1403 DUP2
1404 JUMP
1405 JUMPDEST
1406 PUSH1 0x40
1408 MLOAD
1409 DUP1
1410 DUP1
exec
/bin/bash -lc "node - <<'NODE'
const fs=require('fs');const b=JSON.parse(fs.readFileSync('BYTECODE_BUNDLE.json','utf8'));const hex=b.artifact.runtime_bytecode.full.slice(2);const names={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0x60:'PUSH1',0x61:'PUSH2',0x63:'PUSH4',0x65:'PUSH6',0x73:'PUSH20',0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0xa3:'LOG3',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN'};function dis(s,e){let pc=s;while(pc<=e){const op=parseInt(hex.slice(pc*2,pc*2+2),16);let name=names[op]||('OP_'+op.toString(16));let arg='';let nx=pc+1;if(op>=0x60&&op<=0x7f){let n=op-0x5f;arg='0x'+hex.slice(nx*2,nx*2+n*2);nx+=n;}console.log(pc.toString().padStart(4),name.padEnd(12),arg);pc=nx;}}dis(1330,1390);console.log('---');dis(1340,1410);console.log('---');dis(1330,1410);
NODE" in /tmp/codex-cac8u3sx
succeeded in 0ms:
1330 DUP2
1331 MSTORE
1332 PUSH1 0x09
1334 PUSH1 0x20
1336 MSTORE
1337 PUSH1 0x40
1339 DUP2
1340 SHA3
1341 SLOAD
1342 DUP3
1343 SWAP1
1344 LT
1345 ISZERO
1346 PUSH2 0x064a
1349 JUMPI
1350 PUSH2 0x0002
1353 JUMP
1354 JUMPDEST
1355 PUSH2 0x0106
1358 PUSH1 0x04
1360 CALLDATALOAD
1361 PUSH1 0x00
1363 SLOAD
1364 CALLER
1365 PUSH1 0x01
1367 PUSH1 0xa0
1369 PUSH1 0x02
1371 EXP
1372 SUB
1373 SWAP1
1374 DUP2
1375 AND
1376 SWAP2
1377 AND
1378 EQ
1379 PUSH2 0x06c8
1382 JUMPI
1383 PUSH2 0x0002
1386 JUMP
1387 JUMPDEST
1388 PUSH2 0x062d
---
1340 SHA3
1341 SLOAD
1342 DUP3
1343 SWAP1
1344 LT
1345 ISZERO
1346 PUSH2 0x064a
1349 JUMPI
1350 PUSH2 0x0002
1353 JUMP
1354 JUMPDEST
1355 PUSH2 0x0106
1358 PUSH1 0x04
1360 CALLDATALOAD
1361 PUSH1 0x00
1363 SLOAD
1364 CALLER
1365 PUSH1 0x01
1367 PUSH1 0xa0
1369 PUSH1 0x02
1371 EXP
1372 SUB
1373 SWAP1
1374 DUP2
1375 AND
1376 SWAP2
1377 AND
1378 EQ
1379 PUSH2 0x06c8
1382 JUMPI
1383 PUSH2 0x0002
1386 JUMP
1387 JUMPDEST
1388 PUSH2 0x062d
1391 PUSH1 0x05
1393 SLOAD
1394 PUSH1 0x01
1396 PUSH1 0xa0
1398 PUSH1 0x02
1400 EXP
1401 SUB
1402 AND
1403 DUP2
1404 JUMP
1405 JUMPDEST
1406 PUSH1 0x40
1408 MLOAD
1409 DUP1
1410 DUP1
---
1330 DUP2
1331 MSTORE
1332 PUSH1 0x09
1334 PUSH1 0x20
1336 MSTORE
1337 PUSH1 0x40
1339 DUP2
1340 SHA3
1341 SLOAD
1342 DUP3
1343 SWAP1
1344 LT
1345 ISZERO
1346 PUSH2 0x064a
1349 JUMPI
1350 PUSH2 0x0002
1353 JUMP
1354 JUMPDEST
1355 PUSH2 0x0106
1358 PUSH1 0x04
1360 CALLDATALOAD
1361 PUSH1 0x00
1363 SLOAD
1364 CALLER
1365 PUSH1 0x01
1367 PUSH1 0xa0
1369 PUSH1 0x02
1371 EXP
1372 SUB
1373 SWAP1
1374 DUP2
1375 AND
1376 SWAP2
1377 AND
1378 EQ
1379 PUSH2 0x06c8
1382 JUMPI
1383 PUSH2 0x0002
1386 JUMP
1387 JUMPDEST
1388 PUSH2 0x062d
1391 PUSH1 0x05
1393 SLOAD
1394 PUSH1 0x01
1396 PUSH1 0xa0
1398 PUSH1 0x02
1400 EXP
1401 SUB
1402 AND
1403 DUP2
1404 JUMP
1405 JUMPDEST
1406 PUSH1 0x40
1408 MLOAD
1409 DUP1
1410 DUP1
exec
/bin/bash -lc "node - <<'NODE'
const fs=require('fs');const b=JSON.parse(fs.readFileSync('BYTECODE_BUNDLE.json','utf8'));const hex=b.artifact.runtime_bytecode.full.slice(2);const names={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0x60:'PUSH1',0x61:'PUSH2',0x63:'PUSH4',0x65:'PUSH6',0x73:'PUSH20',0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0xa3:'LOG3',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN'};function dis(s,e){let pc=s;while(pc<=e){const op=parseInt(hex.slice(pc*2,pc*2+2),16);let name=names[op]||('OP_'+op.toString(16));let arg='';let nx=pc+1;if(op>=0x60&&op<=0x7f){let n=op-0x5f;arg='0x'+hex.slice(nx*2,nx*2+n*2);nx+=n;}console.log(pc.toString().padStart(4),name.padEnd(12),arg);pc=nx;}}dis(1328,1390);console.log('---');dis(1354,1410);console.log('---');dis(1328,1410);console.log('---');dis(1330,1405);console.log('---');dis(1330,1405);console.log('---');dis(1320,1405);console.log('---');dis(1330,1410);console.log('---');dis(1328,1410);
NODE" in /tmp/codex-cac8u3sx
succeeded in 0ms:
1328 STOP
1329 SWAP1
1330 DUP2
1331 MSTORE
1332 PUSH1 0x09
1334 PUSH1 0x20
1336 MSTORE
1337 PUSH1 0x40
1339 DUP2
1340 SHA3
1341 SLOAD
1342 DUP3
1343 SWAP1
1344 LT
1345 ISZERO
1346 PUSH2 0x064a
1349 JUMPI
1350 PUSH2 0x0002
1353 JUMP
1354 JUMPDEST
1355 PUSH2 0x0106
1358 PUSH1 0x04
1360 CALLDATALOAD
1361 PUSH1 0x00
1363 SLOAD
1364 CALLER
1365 PUSH1 0x01
1367 PUSH1 0xa0
1369 PUSH1 0x02
1371 EXP
1372 SUB
1373 SWAP1
1374 DUP2
1375 AND
1376 SWAP2
1377 AND
1378 EQ
1379 PUSH2 0x06c8
1382 JUMPI
1383 PUSH2 0x0002
1386 JUMP
1387 JUMPDEST
1388 PUSH2 0x062d
---
1354 JUMPDEST
1355 PUSH2 0x0106
1358 PUSH1 0x04
1360 CALLDATALOAD
1361 PUSH1 0x00
1363 SLOAD
1364 CALLER
1365 PUSH1 0x01
1367 PUSH1 0xa0
1369 PUSH1 0x02
1371 EXP
1372 SUB
1373 SWAP1
1374 DUP2
1375 AND
1376 SWAP2
1377 AND
1378 EQ
1379 PUSH2 0x06c8
1382 JUMPI
1383 PUSH2 0x0002
1386 JUMP
1387 JUMPDEST
1388 PUSH2 0x062d
1391 PUSH1 0x05
1393 SLOAD
1394 PUSH1 0x01
1396 PUSH1 0xa0
1398 PUSH1 0x02
1400 EXP
1401 SUB
1402 AND
1403 DUP2
1404 JUMP
1405 JUMPDEST
1406 PUSH1 0x40
1408 MLOAD
1409 DUP1
1410 DUP1
---
1328 STOP
1329 SWAP1
1330 DUP2
1331 MSTORE
1332 PUSH1 0x09
1334 PUSH1 0x20
1336 MSTORE
1337 PUSH1 0x40
1339 DUP2
1340 SHA3
1341 SLOAD
1342 DUP3
1343 SWAP1
1344 LT
1345 ISZERO
1346 PUSH2 0x064a
1349 JUMPI
1350 PUSH2 0x0002
1353 JUMP
1354 JUMPDEST
1355 PUSH2 0x0106
1358 PUSH1 0x04
1360 CALLDATALOAD
1361 PUSH1 0x00
1363 SLOAD
1364 CALLER
1365 PUSH1 0x01
1367 PUSH1 0xa0
1369 PUSH1 0x02
1371 EXP
1372 SUB
1373 SWAP1
1374 DUP2
1375 AND
1376 SWAP2
1377 AND
1378 EQ
1379 PUSH2 0x06c8
1382 JUMPI
1383 PUSH2 0x0002
1386 JUMP
1387 JUMPDEST
1388 PUSH2 0x062d
1391 PUSH1 0x05
1393 SLOAD
1394 PUSH1 0x01
1396 PUSH1 0xa0
1398 PUSH1 0x02
1400 EXP
1401 SUB
1402 AND
1403 DUP2
1404 JUMP
1405 JUMPDEST
1406 PUSH1 0x40
1408 MLOAD
1409 DUP1
1410 DUP1
---
1330 DUP2
1331 MSTORE
1332 PUSH1 0x09
1334 PUSH1 0x20
1336 MSTORE
1337 PUSH1 0x40
1339 DUP2
1340 SHA3
1341 SLOAD
1342 DUP3
1343 SWAP1
1344 LT
1345 ISZERO
1346 PUSH2 0x064a
1349 JUMPI
1350 PUSH2 0x0002
1353 JUMP
1354 JUMPDEST
1355 PUSH2 0x0106
1358 PUSH1 0x04
1360 CALLDATALOAD
1361 PUSH1 0x00
1363 SLOAD
1364 CALLER
1365 PUSH1 0x01
1367 PUSH1 0xa0
1369 PUSH1 0x02
1371 EXP
1372 SUB
1373 SWAP1
1374 DUP2
1375 AND
1376 SWAP2
1377 AND
1378 EQ
1379 PUSH2 0x06c8
1382 JUMPI
1383 PUSH2 0x0002
1386 JUMP
1387 JUMPDEST
1388 PUSH2 0x062d
1391 PUSH1 0x05
1393 SLOAD
1394 PUSH1 0x01
1396 PUSH1 0xa0
1398 PUSH1 0x02
1400 EXP
1401 SUB
1402 AND
1403 DUP2
1404 JUMP
1405 JUMPDEST
---
1330 DUP2
1331 MSTORE
1332 PUSH1 0x09
1334 PUSH1 0x20
1336 MSTORE
1337 PUSH1 0x40
1339 DUP2
1340 SHA3
1341 SLOAD
1342 DUP3
1343 SWAP1
1344 LT
1345 ISZERO
1346 PUSH2 0x064a
1349 JUMPI
1350 PUSH2 0x0002
1353 JUMP
1354 JUMPDEST
1355 PUSH2 0x0106
1358 PUSH1 0x04
1360 CALLDATALOAD
1361 PUSH1 0x00
1363 SLOAD
1364 CALLER
1365 PUSH1 0x01
1367 PUSH1 0xa0
1369 PUSH1 0x02
1371 EXP
1372 SUB
1373 SWAP1
1374 DUP2
1375 AND
1376 SWAP2
1377 AND
1378 EQ
1379 PUSH2 0x06c8
1382 JUMPI
1383 PUSH2 0x0002
1386 JUMP
1387 JUMPDEST
1388 PUSH2 0x062d
1391 PUSH1 0x05
1393 SLOAD
1394 PUSH1 0x01
1396 PUSH1 0xa0
1398 PUSH1 0x02
1400 EXP
1401 SUB
1402 AND
1403 DUP2
1404 JUMP
1405 JUMPDEST
---
1320 SWAP2
1321 DIV
1322 PUSH1 0x08
1324 SSTORE
1325 CALLER
1326 AND
1327 PUSH1 0x00
1329 SWAP1
1330 DUP2
1331 MSTORE
1332 PUSH1 0x09
1334 PUSH1 0x20
1336 MSTORE
1337 PUSH1 0x40
1339 DUP2
1340 SHA3
1341 SLOAD
1342 DUP3
1343 SWAP1
1344 LT
1345 ISZERO
1346 PUSH2 0x064a
1349 JUMPI
1350 PUSH2 0x0002
1353 JUMP
1354 JUMPDEST
1355 PUSH2 0x0106
1358 PUSH1 0x04
1360 CALLDATALOAD
1361 PUSH1 0x00
1363 SLOAD
1364 CALLER
1365 PUSH1 0x01
1367 PUSH1 0xa0
1369 PUSH1 0x02
1371 EXP
1372 SUB
1373 SWAP1
1374 DUP2
1375 AND
1376 SWAP2
1377 AND
1378 EQ
1379 PUSH2 0x06c8
1382 JUMPI
1383 PUSH2 0x0002
1386 JUMP
1387 JUMPDEST
1388 PUSH2 0x062d
1391 PUSH1 0x05
1393 SLOAD
1394 PUSH1 0x01
1396 PUSH1 0xa0
1398 PUSH1 0x02
1400 EXP
1401 SUB
1402 AND
1403 DUP2
1404 JUMP
1405 JUMPDEST
---
1330 DUP2
1331 MSTORE
1332 PUSH1 0x09
1334 PUSH1 0x20
1336 MSTORE
1337 PUSH1 0x40
1339 DUP2
1340 SHA3
1341 SLOAD
1342 DUP3
1343 SWAP1
1344 LT
1345 ISZERO
1346 PUSH2 0x064a
1349 JUMPI
1350 PUSH2 0x0002
1353 JUMP
1354 JUMPDEST
1355 PUSH2 0x0106
1358 PUSH1 0x04
1360 CALLDATALOAD
1361 PUSH1 0x00
1363 SLOAD
1364 CALLER
1365 PUSH1 0x01
1367 PUSH1 0xa0
1369 PUSH1 0x02
1371 EXP
1372 SUB
1373 SWAP1
1374 DUP2
1375 AND
1376 SWAP2
1377 AND
1378 EQ
1379 PUSH2 0x06c8
1382 JUMPI
1383 PUSH2 0x0002
1386 JUMP
1387 JUMPDEST
1388 PUSH2 0x062d
1391 PUSH1 0x05
1393 SLOAD
1394 PUSH1 0x01
1396 PUSH1 0xa0
1398 PUSH1 0x02
1400 EXP
1401 SUB
1402 AND
1403 DUP2
1404 JUMP
1405 JUMPDEST
1406 PUSH1 0x40
1408 MLOAD
1409 DUP1
1410 DUP1
---
1328 STOP
1329 SWAP1
1330 DUP2
1331 MSTORE
1332 PUSH1 0x09
1334 PUSH1 0x20
1336 MSTORE
1337 PUSH1 0x40
1339 DUP2
1340 SHA3
1341 SLOAD
1342 DUP3
1343 SWAP1
1344 LT
1345 ISZERO
1346 PUSH2 0x064a
1349 JUMPI
1350 PUSH2 0x0002
1353 JUMP
1354 JUMPDEST
1355 PUSH2 0x0106
1358 PUSH1 0x04
1360 CALLDATALOAD
1361 PUSH1 0x00
1363 SLOAD
1364 CALLER
1365 PUSH1 0x01
1367 PUSH1 0xa0
1369 PUSH1 0x02
1371 EXP
1372 SUB
1373 SWAP1
1374 DUP2
1375 AND
1376 SWAP2
1377 AND
1378 EQ
1379 PUSH2 0x06c8
1382 JUMPI
1383 PUSH2 0x0002
1386 JUMP
1387 JUMPDEST
1388 PUSH2 0x062d
1391 PUSH1 0x05
1393 SLOAD
1394 PUSH1 0x01
1396 PUSH1 0xa0
1398 PUSH1 0x02
1400 EXP
1401 SUB
1402 AND
1403 DUP2
1404 JUMP
1405 JUMPDEST
1406 PUSH1 0x40
1408 MLOAD
1409 DUP1
1410 DUP1
exec
/bin/bash -lc "node - <<'NODE'
const fs=require('fs');const b=JSON.parse(fs.readFileSync('BYTECODE_BUNDLE.json','utf8'));const hex=b.artifact.runtime_bytecode.full.slice(2);const names={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0x60:'PUSH1',0x61:'PUSH2',0x63:'PUSH4',0x65:'PUSH6',0x73:'PUSH20',0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0xa3:'LOG3',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN'};function dis(s,e){let pc=s;while(pc<=e){const op=parseInt(hex.slice(pc*2,pc*2+2),16);let name=names[op]||('OP_'+op.toString(16));let arg='';let nx=pc+1;if(op>=0x60&&op<=0x7f){let n=op-0x5f;arg='0x'+hex.slice(nx*2,nx*2+n*2);nx+=n;}console.log(pc.toString().padStart(4),name.padEnd(12),arg);pc=nx;}}dis(1345,1395);console.log('---');dis(1385,1405);console.log('---');dis(1387,1410);console.log('---');dis(1360,1395);console.log('---');dis(1380,1405);console.log('---');dis(1390,1410);console.log('---');dis(1360,1405);console.log('---');dis(1340,1410);
NODE" in /tmp/codex-cac8u3sx
succeeded in 0ms:
1345 ISZERO
1346 PUSH2 0x064a
1349 JUMPI
1350 PUSH2 0x0002
1353 JUMP
1354 JUMPDEST
1355 PUSH2 0x0106
1358 PUSH1 0x04
1360 CALLDATALOAD
1361 PUSH1 0x00
1363 SLOAD
1364 CALLER
1365 PUSH1 0x01
1367 PUSH1 0xa0
1369 PUSH1 0x02
1371 EXP
1372 SUB
1373 SWAP1
1374 DUP2
1375 AND
1376 SWAP2
1377 AND
1378 EQ
1379 PUSH2 0x06c8
1382 JUMPI
1383 PUSH2 0x0002
1386 JUMP
1387 JUMPDEST
1388 PUSH2 0x062d
1391 PUSH1 0x05
1393 SLOAD
1394 PUSH1 0x01
---
1385 MUL
1386 JUMP
1387 JUMPDEST
1388 PUSH2 0x062d
1391 PUSH1 0x05
1393 SLOAD
1394 PUSH1 0x01
1396 PUSH1 0xa0
1398 PUSH1 0x02
1400 EXP
1401 SUB
1402 AND
1403 DUP2
1404 JUMP
1405 JUMPDEST
---
1387 JUMPDEST
1388 PUSH2 0x062d
1391 PUSH1 0x05
1393 SLOAD
1394 PUSH1 0x01
1396 PUSH1 0xa0
1398 PUSH1 0x02
1400 EXP
1401 SUB
1402 AND
1403 DUP2
1404 JUMP
1405 JUMPDEST
1406 PUSH1 0x40
1408 MLOAD
1409 DUP1
1410 DUP1
---
1360 CALLDATALOAD
1361 PUSH1 0x00
1363 SLOAD
1364 CALLER
1365 PUSH1 0x01
1367 PUSH1 0xa0
1369 PUSH1 0x02
1371 EXP
1372 SUB
1373 SWAP1
1374 DUP2
1375 AND
1376 SWAP2
1377 AND
1378 EQ
1379 PUSH2 0x06c8
1382 JUMPI
1383 PUSH2 0x0002
1386 JUMP
1387 JUMPDEST
1388 PUSH2 0x062d
1391 PUSH1 0x05
1393 SLOAD
1394 PUSH1 0x01
---
1380 MOD
1381 OP_c8
1382 JUMPI
1383 PUSH2 0x0002
1386 JUMP
1387 JUMPDEST
1388 PUSH2 0x062d
1391 PUSH1 0x05
1393 SLOAD
1394 PUSH1 0x01
1396 PUSH1 0xa0
1398 PUSH1 0x02
1400 EXP
1401 SUB
1402 AND
1403 DUP2
1404 JUMP
1405 JUMPDEST
---
1390 OP_2d
1391 PUSH1 0x05
1393 SLOAD
1394 PUSH1 0x01
1396 PUSH1 0xa0
1398 PUSH1 0x02
1400 EXP
1401 SUB
1402 AND
1403 DUP2
1404 JUMP
1405 JUMPDEST
1406 PUSH1 0x40
1408 MLOAD
1409 DUP1
1410 DUP1
---
1360 CALLDATALOAD
1361 PUSH1 0x00
1363 SLOAD
1364 CALLER
1365 PUSH1 0x01
1367 PUSH1 0xa0
1369 PUSH1 0x02
1371 EXP
1372 SUB
1373 SWAP1
1374 DUP2
1375 AND
1376 SWAP2
1377 AND
1378 EQ
1379 PUSH2 0x06c8
1382 JUMPI
1383 PUSH2 0x0002
1386 JUMP
1387 JUMPDEST
1388 PUSH2 0x062d
1391 PUSH1 0x05
1393 SLOAD
1394 PUSH1 0x01
1396 PUSH1 0xa0
1398 PUSH1 0x02
1400 EXP
1401 SUB
1402 AND
1403 DUP2
1404 JUMP
1405 JUMPDEST
---
1340 SHA3
1341 SLOAD
1342 DUP3
1343 SWAP1
1344 LT
1345 ISZERO
1346 PUSH2 0x064a
1349 JUMPI
1350 PUSH2 0x0002
1353 JUMP
1354 JUMPDEST
1355 PUSH2 0x0106
1358 PUSH1 0x04
1360 CALLDATALOAD
1361 PUSH1 0x00
1363 SLOAD
1364 CALLER
1365 PUSH1 0x01
1367 PUSH1 0xa0
1369 PUSH1 0x02
1371 EXP
1372 SUB
1373 SWAP1
1374 DUP2
1375 AND
1376 SWAP2
1377 AND
1378 EQ
1379 PUSH2 0x06c8
1382 JUMPI
1383 PUSH2 0x0002
1386 JUMP
1387 JUMPDEST
1388 PUSH2 0x062d
1391 PUSH1 0x05
1393 SLOAD
1394 PUSH1 0x01
1396 PUSH1 0xa0
1398 PUSH1 0x02
1400 EXP
1401 SUB
1402 AND
1403 DUP2
1404 JUMP
1405 JUMPDEST
1406 PUSH1 0x40
1408 MLOAD
1409 DUP1
1410 DUP1
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.function_entries // .analysis_artifact.artifact_json.functions[] | select(.selector==\"0xdc3080f2\" or .selector==\"0x23b872dd\" or .selector==\"0xf2fde38b\" or .selector==\"0x8da5cb5b\")' BYTECODE_BUNDLE.json | sed -n '1,220p'" in /tmp/codex-cac8u3sx
succeeded in 0ms:
jq: error (at BYTECODE_BUNDLE.json:8619): Cannot index array with string "selector"
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.functions[] | select(.selector==\"0xdc3080f2\" or .selector==\"0x23b872dd\" or .selector==\"0xf2fde38b\" or .selector==\"0x8da5cb5b\") | {selector,entry_pc,auth,sinks}' BYTECODE_BUNDLE.json" in /tmp/codex-cac8u3sx
succeeded in 0ms:
{
"selector": "0x23b872dd",
"entry_pc": 826074471,
"auth": {
"guards": []
},
"sinks": {
"call": 6,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
}
}
{
"selector": "0x8da5cb5b",
"entry_pc": 2514000705,
"auth": {
"guards": []
},
"sinks": {
"call": 6,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
}
}
{
"selector": "0xdc3080f2",
"entry_pc": 3714247998,
"auth": {
"guards": []
},
"sinks": {
"call": 6,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
}
}
{
"selector": "0xf2fde38b",
"entry_pc": 4288363215,
"auth": {
"guards": []
},
"sinks": {
"call": 6,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
}
}
codex
{"no_findings":false,"summary":"BYTECODE_BUNDLE.json describes a non-standard ERC20-like contract with owner-gated parameter setters, allowance/balance mappings, and a token-for-ETH payout path. I found one concrete accounting bug around an unchecked ETH transfer, plus two selector/interface mismatches that materially affect access control and ERC20 compatibility.","findings":[{"severity":"medium","category":"other","title":"Unchecked ETH payout can debit seller balances without confirming payment","exploit_scenario":"A user calling selector 0xdc3080f2 from a contract wallet or any recipient that rejects ETH can have their token balance debited and the contract balance credited before the payout CALL executes. Because the CALL result is ignored, the transaction can complete with no ETH delivered to the seller.","recommendation":"Check the low-level CALL result and revert on failure, or switch to a pull-payment withdrawal model so token accounting is only finalized after a confirmed payout.","evidence":"The dispatcher routes selector 0xdc3080f2 to pc 0x507. That path recomputes slot8 from contract ETH balance, verifies the caller balance in slot9, then updates balances before the external CALL: balance writes occur in the 0x64a routine before pc 0x691. The CALL at pc 0x691 is followed only by POP/POP and event emission; unlike the CALL at pc 0x4aa, there is no ISZERO/JUMPI failure check after pc 0x691.","locations":["selector:0xdc3080f2","pc:0x64a","pc:0x67d","pc:0x691"]},{"severity":"medium","category":"other","title":"Standard ERC20 selector 0x23b872dd does not implement transferFrom semantics","exploit_scenario":"An exchange, router, or escrow calling transferFrom(address,address,uint256) will expect allowance consumption, balance movement, and a boolean return. Here the standard selector appears to do only a balance check and then returns the low byte of slot3, so standard integrations can fail or the token can behave like a honeypot despite exposing ERC20-looking selectors.","recommendation":"Implement ERC20-compliant transferFrom logic under selector 0x23b872dd, or remove/avoid advertising the standard selector if the function is intentionally non-standard.","evidence":"Selector inference is explicit in the dispatcher: 0x23b872dd jumps to pc 0x19f. The 0x19f-0x1d0 path loads three calldata words, computes a slot9 balance lookup, compares it to the second argument, and on success jumps to pc 0x1d1. Pc 0x1d1 immediately returns sload(0x03) & 0xff through the common return helper. There is no SSTORE, no LOG3 Transfer event, and no allowance decrement anywhere on that selector path.","locations":["selector:0x23b872dd","pc:0x19f","pc:0x1c4","pc:0x1d1"]},{"severity":"low","category":"access_control","title":"`transferOwnership` selector does not update the owner slot used by auth checks","exploit_scenario":"Operators and tooling may assume selector 0xf2fde38b is standard Ownable.transferOwnership. In this bytecode, admin checks consistently read slot0, but 0xf2fde38b writes slot5 instead. If the slot0 owner key is lost, ownership cannot be rotated, and monitoring tooling can falsely believe ownership was transferred.","recommendation":"If ownership rotation is intended, update slot0 in the 0xf2fde38b path. Otherwise remove the standard selector or document clearly that ownership is immutable and slot5 is a different role.","evidence":"The standard owner getter 0x8da5cb5b returns sload(0x00) masked to an address. Admin guards compare CALLER with sload(0x00) at pcs 0x177, 0x254, 0x33e, and 0x553. By contrast, selector 0xf2fde38b dispatches to pc 0x54a and reaches the 0x815 routine, which reads and writes slot5, never slot0.","locations":["selector:0x8da5cb5b","selector:0xf2fde38b","pc:0x177","pc:0x254","pc:0x33e","pc:0x553","pc:0x54a","pc:0x815"]}]}
tokens used
130,697
{
"codex": {
"ran_at": "2026-04-05T06:33:35.372168+00:00",
"returncode": 0
},
"project": {
"mode": "bytecode",
"bytecode_length": 5204,
"bytecode_truncated": false,
"capability_graph_present": true,
"analysis_artifact_present": true
},
"summary": "BYTECODE_BUNDLE.json describes a non-standard ERC20-like contract with owner-gated parameter setters, allowance/balance mappings, and a token-for-ETH payout path. I found one concrete accounting bug around an unchecked ETH transfer, plus two selector/interface mismatches that materially affect access control and ERC20 compatibility.",
"raw_final": {
"summary": "BYTECODE_BUNDLE.json describes a non-standard ERC20-like contract with owner-gated parameter setters, allowance/balance mappings, and a token-for-ETH payout path. I found one concrete accounting bug around an unchecked ETH transfer, plus two selector/interface mismatches that materially affect access control and ERC20 compatibility.",
"findings": [
{
"title": "Unchecked ETH payout can debit seller balances without confirming payment",
"category": "other",
"evidence": "The dispatcher routes selector 0xdc3080f2 to pc 0x507. That path recomputes slot8 from contract ETH balance, verifies the caller balance in slot9, then updates balances before the external CALL: balance writes occur in the 0x64a routine before pc 0x691. The CALL at pc 0x691 is followed only by POP/POP and event emission; unlike the CALL at pc 0x4aa, there is no ISZERO/JUMPI failure check after pc 0x691.",
"severity": "medium",
"locations": [
"selector:0xdc3080f2",
"pc:0x64a",
"pc:0x67d",
"pc:0x691"
],
"recommendation": "Check the low-level CALL result and revert on failure, or switch to a pull-payment withdrawal model so token accounting is only finalized after a confirmed payout.",
"exploit_scenario": "A user calling selector 0xdc3080f2 from a contract wallet or any recipient that rejects ETH can have their token balance debited and the contract balance credited before the payout CALL executes. Because the CALL result is ignored, the transaction can complete with no ETH delivered to the seller."
},
{
"title": "Standard ERC20 selector 0x23b872dd does not implement transferFrom semantics",
"category": "other",
"evidence": "Selector inference is explicit in the dispatcher: 0x23b872dd jumps to pc 0x19f. The 0x19f-0x1d0 path loads three calldata words, computes a slot9 balance lookup, compares it to the second argument, and on success jumps to pc 0x1d1. Pc 0x1d1 immediately returns sload(0x03) & 0xff through the common return helper. There is no SSTORE, no LOG3 Transfer event, and no allowance decrement anywhere on that selector path.",
"severity": "medium",
"locations": [
"selector:0x23b872dd",
"pc:0x19f",
"pc:0x1c4",
"pc:0x1d1"
],
"recommendation": "Implement ERC20-compliant transferFrom logic under selector 0x23b872dd, or remove/avoid advertising the standard selector if the function is intentionally non-standard.",
"exploit_scenario": "An exchange, router, or escrow calling transferFrom(address,address,uint256) will expect allowance consumption, balance movement, and a boolean return. Here the standard selector appears to do only a balance check and then returns the low byte of slot3, so standard integrations can fail or the token can behave like a honeypot despite exposing ERC20-looking selectors."
},
{
"title": "`transferOwnership` selector does not update the owner slot used by auth checks",
"category": "access_control",
"evidence": "The standard owner getter 0x8da5cb5b returns sload(0x00) masked to an address. Admin guards compare CALLER with sload(0x00) at pcs 0x177, 0x254, 0x33e, and 0x553. By contrast, selector 0xf2fde38b dispatches to pc 0x54a and reaches the 0x815 routine, which reads and writes slot5, never slot0.",
"severity": "low",
"locations": [
"selector:0x8da5cb5b",
"selector:0xf2fde38b",
"pc:0x177",
"pc:0x254",
"pc:0x33e",
"pc:0x553",
"pc:0x54a",
"pc:0x815"
],
"recommendation": "If ownership rotation is intended, update slot0 in the 0xf2fde38b path. Otherwise remove the standard selector or document clearly that ownership is immutable and slot5 is a different role.",
"exploit_scenario": "Operators and tooling may assume selector 0xf2fde38b is standard Ownable.transferOwnership. In this bytecode, admin checks consistently read slot0, but 0xf2fde38b writes slot5 instead. If the slot0 owner key is lost, ownership cannot be rotated, and monitoring tooling can falsely believe ownership was transferred."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x60 00000002: PUSH1 0x40 00000004: MSTORE 00000005: CALLDATASIZE 00000006: ISZERO 00000007: PUSH2 0x0106 0000000a: JUMPI 0000000b: PUSH1 0xe0 0000000d: PUSH1 0x02 0000000f: EXP 00000010: PUSH1 0x00 00000012: CALLDATALOAD 00000013: DIV 00000014: PUSH4 0x06fdde03 00000019: DUP2 0000001a: EQ 0000001b: PUSH2 0x0108 0000001e: JUMPI 0000001f: DUP1 00000020: PUSH4 0x18160ddd 00000025: EQ 00000026: PUSH2 0x0165 00000029: JUMPI 0000002a: DUP1 0000002b: PUSH4 0x1fe9eabc 00000030: EQ 00000031: PUSH2 0x016e 00000034: JUMPI 00000035: DUP1 00000036: PUSH4 0x233de126 0000003b: EQ 0000003c: PUSH2 0x0190 0000003f: JUMPI 00000040: DUP1 00000041: PUSH4 0x23b872dd 00000046: EQ 00000047: PUSH2 0x019f 0000004a: JUMPI 0000004b: DUP1 0000004c: PUSH4 0x313ce567 00000051: EQ 00000052: PUSH2 0x01d1 00000055: JUMPI 00000056: DUP1 00000057: PUSH4 0x41fa4876 0000005c: EQ 0000005d: PUSH2 0x01dd 00000060: JUMPI 00000061: DUP1 00000062: PUSH4 0x70a08231 00000067: EQ 00000068: PUSH2 0x0233 0000006b: JUMPI 0000006c: DUP1 0000006d: PUSH4 0x7f2a8a80 00000072: EQ 00000073: PUSH2 0x024b 00000076: JUMPI 00000077: DUP1 00000078: PUSH4 0x8da5cb5b 0000007d: EQ 0000007e: PUSH2 0x026c 00000081: JUMPI 00000082: DUP1 00000083: PUSH4 0x95d89b41 00000088: EQ 00000089: PUSH2 0x027e 0000008c: JUMPI 0000008d: DUP1 0000008e: PUSH4 0xa6f2ae3a 00000093: EQ 00000094: PUSH2 0x02d9 00000097: JUMPI 00000098: DUP1 00000099: PUSH4 0xa9059cbb 0000009e: EQ 0000009f: PUSH2 0x02f4 000000a2: JUMPI 000000a3: DUP1 000000a4: PUSH4 0xaa295de9 000000a9: EQ 000000aa: PUSH2 0x0323 000000ad: JUMPI 000000ae: DUP1 000000af: PUSH4 0xbc094049 000000b4: EQ 000000b5: PUSH2 0x032c 000000b8: JUMPI 000000b9: DUP1 000000ba: PUSH4 0xc4839e8b 000000bf: EQ 000000c0: PUSH2 0x0335 000000c3: JUMPI 000000c4: DUP1 000000c5: PUSH4 0xcae9ca51 000000ca: EQ 000000cb: PUSH2 0x0356 000000ce: JUMPI 000000cf: DUP1 000000d0: PUSH4 0xdc3080f2 000000d5: EQ 000000d6: PUSH2 0x04bd 000000d9: JUMPI 000000da: DUP1 000000db: PUSH4 0xdd62ed3e 000000e0: EQ 000000e1: PUSH2 0x04e2 000000e4: JUMPI 000000e5: DUP1 000000e6: PUSH4 0xe4849b32 000000eb: EQ 000000ec: PUSH2 0x0507 000000ef: JUMPI 000000f0: DUP1 000000f1: PUSH4 0xf2fde38b 000000f6: EQ 000000f7: PUSH2 0x054a 000000fa: JUMPI 000000fb: DUP1 000000fc: PUSH4 0xff9b3acf 00000101: EQ 00000102: PUSH2 0x056b 00000105: JUMPI 00000106: JUMPDEST 00000107: STOP 00000108: JUMPDEST 00000109: PUSH1 0x40 0000010b: DUP1 0000010c: MLOAD 0000010d: PUSH1 0x01 0000010f: DUP1 00000110: SLOAD 00000111: PUSH1 0x20 00000113: PUSH1 0x02 00000115: DUP3 00000116: DUP5 00000117: AND 00000118: ISZERO 00000119: PUSH2 0x0100 0000011c: MUL 0000011d: PUSH1 0x00 0000011f: NOT 00000120: ADD 00000121: SWAP1 00000122: SWAP3 00000123: AND 00000124: SWAP2 00000125: SWAP1 00000126: SWAP2 00000127: DIV 00000128: PUSH1 0x1f 0000012a: DUP2 0000012b: ADD 0000012c: DUP3 0000012d: SWAP1 0000012e: DIV 0000012f: DUP3 00000130: MUL 00000131: DUP5 00000132: ADD 00000133: DUP3 00000134: ADD 00000135: SWAP1 00000136: SWAP5 00000137: MSTORE 00000138: DUP4 00000139: DUP4 0000013a: MSTORE 0000013b: PUSH2 0x057d 0000013e: SWAP4 0000013f: SWAP1 00000140: DUP4 00000141: ADD 00000142: DUP3 00000143: DUP3 00000144: DUP1 00000145: ISZERO 00000146: PUSH2 0x0715 00000149: JUMPI 0000014a: DUP1 0000014b: PUSH1 0x1f 0000014d: LT 0000014e: PUSH2 0x06ea 00000151: JUMPI 00000152: PUSH2 0x0100 00000155: DUP1 00000156: DUP4 00000157: SLOAD 00000158: DIV 00000159: MUL 0000015a: DUP4 0000015b: MSTORE 0000015c: SWAP2 0000015d: PUSH1 0x20 0000015f: ADD 00000160: SWAP2 00000161: PUSH2 0x0715 00000164: JUMP 00000165: JUMPDEST 00000166: PUSH2 0x05eb 00000169: PUSH1 0x04 0000016b: SLOAD 0000016c: DUP2 0000016d: JUMP 0000016e: JUMPDEST 0000016f: PUSH2 0x0106 00000172: PUSH1 0x04 00000174: CALLDATALOAD 00000175: PUSH1 0x00 00000177: SLOAD 00000178: PUSH1 0x01 0000017a: PUSH1 0xa0 0000017c: PUSH1 0x02 0000017e: EXP 0000017f: SUB 00000180: SWAP1 00000181: DUP2 00000182: AND 00000183: CALLER 00000184: SWAP1 00000185: SWAP2 00000186: AND 00000187: EQ 00000188: PUSH2 0x0810 0000018b: JUMPI 0000018c: PUSH2 0x0002 0000018f: JUMP 00000190: JUMPDEST 00000191: PUSH2 0x05fd 00000194: PUSH1 0x07 00000196: SLOAD 00000197: PUSH4 0xffffffff 0000019c: AND 0000019d: DUP2 0000019e: JUMP 0000019f: JUMPDEST 000001a0: PUSH2 0x05eb 000001a3: PUSH1 0x04 000001a5: CALLDATALOAD 000001a6: PUSH1 0x24 000001a8: CALLDATALOAD 000001a9: PUSH1 0x44 000001ab: CALLDATALOAD 000001ac: PUSH1 0x01 000001ae: PUSH1 0xa0 000001b0: PUSH1 0x02 000001b2: EXP 000001b3: SUB 000001b4: DUP4 000001b5: AND 000001b6: PUSH1 0x00 000001b8: SWAP1 000001b9: DUP2 000001ba: MSTORE 000001bb: PUSH1 0x09 000001bd: PUSH1 0x20 000001bf: MSTORE 000001c0: PUSH1 0x40 000001c2: DUP2 000001c3: KECCAK256 000001c4: SLOAD 000001c5: DUP3 000001c6: SWAP1 000001c7: LT 000001c8: ISZERO 000001c9: PUSH2 0x0725 000001cc: JUMPI 000001cd: PUSH2 0x0002 000001d0: JUMP 000001d1: JUMPDEST 000001d2: PUSH2 0x0617 000001d5: PUSH1 0x03 000001d7: SLOAD 000001d8: PUSH1 0xff 000001da: AND 000001db: DUP2 000001dc: JUMP 000001dd: JUMPDEST 000001de: PUSH2 0x05eb 000001e1: PUSH1 0x04 000001e3: CALLDATALOAD 000001e4: PUSH1 0x24 000001e6: CALLDATALOAD 000001e7: JUMPDEST 000001e8: PUSH1 0x00 000001ea: DUP1 000001eb: DUP1 000001ec: JUMPDEST 000001ed: DUP4 000001ee: DUP2 000001ef: LT 000001f0: ISZERO 000001f1: PUSH2 0x071d 000001f4: JUMPI 000001f5: PUSH1 0x40 000001f7: DUP1 000001f8: MLOAD 000001f9: NUMBER 000001fa: DUP4 000001fb: SWAP1 000001fc: SUB 000001fd: PUSH1 0x00 000001ff: NOT 00000200: ADD 00000201: BLOCKHASH 00000202: DUP2 00000203: MSTORE 00000204: PUSH1 0x20 00000206: DUP2 00000207: ADD 00000208: DUP8 00000209: SWAP1 0000020a: MSTORE 0000020b: DUP2 0000020c: MLOAD 0000020d: SWAP1 0000020e: DUP2 0000020f: SWAP1 00000210: SUB 00000211: SWAP1 00000212: SWAP2 00000213: ADD 00000214: SWAP1 00000215: KECCAK256 00000216: PUSH1 0x02 00000218: SWAP1 00000219: MOD 0000021a: PUSH1 0x00 0000021c: EQ 0000021d: ISZERO 0000021e: PUSH2 0x022b 00000221: JUMPI 00000222: PUSH1 0x02 00000224: DUP2 00000225: SWAP1 00000226: EXP 00000227: SWAP1 00000228: SWAP2 00000229: ADD 0000022a: SWAP1 0000022b: JUMPDEST 0000022c: PUSH1 0x01 0000022e: ADD 0000022f: PUSH2 0x01ec 00000232: JUMP 00000233: JUMPDEST 00000234: PUSH2 0x05eb 00000237: PUSH1 0x04 00000239: CALLDATALOAD 0000023a: PUSH1 0x09 0000023c: PUSH1 0x20 0000023e: MSTORE 0000023f: PUSH1 0x00 00000241: SWAP1 00000242: DUP2 00000243: MSTORE 00000244: PUSH1 0x40 00000246: SWAP1 00000247: KECCAK256 00000248: SLOAD 00000249: DUP2 0000024a: JUMP 0000024b: JUMPDEST 0000024c: PUSH2 0x0106 0000024f: PUSH1 0x04 00000251: CALLDATALOAD 00000252: PUSH1 0x00 00000254: SLOAD 00000255: CALLER 00000256: PUSH1 0x01 00000258: PUSH1 0xa0 0000025a: PUSH1 0x02 0000025c: EXP 0000025d: SUB 0000025e: SWAP1 0000025f: DUP2 00000260: AND 00000261: SWAP2 00000262: AND 00000263: EQ 00000264: PUSH2 0x0815 00000267: JUMPI 00000268: PUSH2 0x0002 0000026b: JUMP 0000026c: JUMPDEST 0000026d: PUSH2 0x062d 00000270: PUSH1 0x00 00000272: SLOAD 00000273: PUSH1 0x01 00000275: PUSH1 0xa0 00000277: PUSH1 0x02 00000279: EXP 0000027a: SUB 0000027b: AND 0000027c: DUP2 0000027d: JUMP 0000027e: JUMPDEST 0000027f: PUSH2 0x057d 00000282: PUSH1 0x02 00000284: DUP1 00000285: SLOAD 00000286: PUSH1 0x40 00000288: DUP1 00000289: MLOAD 0000028a: PUSH1 0x20 0000028c: PUSH1 0x01 0000028e: DUP5 0000028f: AND 00000290: ISZERO 00000291: PUSH2 0x0100 00000294: MUL 00000295: PUSH1 0x00 00000297: NOT 00000298: ADD 00000299: SWAP1 0000029a: SWAP4 0000029b: AND 0000029c: DUP5 0000029d: SWAP1 0000029e: DIV 0000029f: PUSH1 0x1f 000002a1: DUP2 000002a2: ADD 000002a3: DUP5 000002a4: SWAP1 000002a5: DIV 000002a6: DUP5 000002a7: MUL 000002a8: DUP3 000002a9: ADD 000002aa: DUP5 000002ab: ADD 000002ac: SWAP1 000002ad: SWAP3 000002ae: MSTORE 000002af: DUP2 000002b0: DUP2 000002b1: MSTORE 000002b2: SWAP3 000002b3: SWAP2 000002b4: DUP4 000002b5: ADD 000002b6: DUP3 000002b7: DUP3 000002b8: DUP1 000002b9: ISZERO 000002ba: PUSH2 0x0715 000002bd: JUMPI 000002be: DUP1 000002bf: PUSH1 0x1f 000002c1: LT 000002c2: PUSH2 0x06ea 000002c5: JUMPI 000002c6: PUSH2 0x0100 000002c9: DUP1 000002ca: DUP4 000002cb: SLOAD 000002cc: DIV 000002cd: MUL 000002ce: DUP4 000002cf: MSTORE 000002d0: SWAP2 000002d1: PUSH1 0x20 000002d3: ADD 000002d4: SWAP2 000002d5: PUSH2 0x0715 000002d8: JUMP 000002d9: JUMPDEST 000002da: PUSH2 0x05eb 000002dd: PUSH1 0x06 000002df: SLOAD 000002e0: CALLVALUE 000002e1: SWAP1 000002e2: PUSH1 0x00 000002e4: SWAP1 000002e5: DUP2 000002e6: SWAP1 000002e7: DUP2 000002e8: SWAP1 000002e9: DUP5 000002ea: GT 000002eb: ISZERO 000002ec: PUSH2 0x08df 000002ef: JUMPI 000002f0: PUSH2 0x0002 000002f3: JUMP 000002f4: JUMPDEST 000002f5: PUSH2 0x0106 000002f8: PUSH1 0x04 000002fa: CALLDATALOAD 000002fb: PUSH1 0x24 000002fd: CALLDATALOAD 000002fe: CALLER 000002ff: PUSH1 0x01 00000301: PUSH1 0xa0 00000303: PUSH1 0x02 00000305: EXP 00000306: SUB 00000307: AND 00000308: PUSH1 0x00 0000030a: SWAP1 0000030b: DUP2 0000030c: MSTORE 0000030d: PUSH1 0x09 0000030f: PUSH1 0x20 00000311: MSTORE 00000312: PUSH1 0x40 00000314: SWAP1 00000315: KECCAK256 00000316: SLOAD 00000317: DUP2 00000318: SWAP1 00000319: LT 0000031a: ISZERO 0000031b: PUSH2 0x085e 0000031e: JUMPI 0000031f: PUSH2 0x0002 00000322: JUMP 00000323: JUMPDEST 00000324: PUSH2 0x05eb 00000327: PUSH1 0x06 00000329: SLOAD 0000032a: DUP2 0000032b: JUMP 0000032c: JUMPDEST 0000032d: PUSH2 0x05eb 00000330: PUSH1 0x08 00000332: SLOAD 00000333: DUP2 00000334: JUMP 00000335: JUMPDEST 00000336: PUSH2 0x0106 00000339: PUSH1 0x04 0000033b: CALLDATALOAD 0000033c: PUSH1 0x00 0000033e: SLOAD 0000033f: CALLER 00000340: PUSH1 0x01 00000342: PUSH1 0xa0 00000344: PUSH1 0x02 00000346: EXP 00000347: SUB 00000348: SWAP1 00000349: DUP2 0000034a: AND 0000034b: SWAP2 0000034c: AND 0000034d: EQ 0000034e: PUSH2 0x0837 00000351: JUMPI 00000352: PUSH2 0x0002 00000355: JUMP 00000356: JUMPDEST 00000357: PUSH1 0x40 00000359: DUP1 0000035a: MLOAD 0000035b: PUSH1 0x20 0000035d: PUSH1 0x44 0000035f: CALLDATALOAD 00000360: PUSH1 0x04 00000362: DUP2 00000363: DUP2 00000364: ADD 00000365: CALLDATALOAD 00000366: PUSH1 0x1f 00000368: DUP2 00000369: ADD 0000036a: DUP5 0000036b: SWAP1 0000036c: DIV 0000036d: DUP5 0000036e: MUL 0000036f: DUP6 00000370: ADD 00000371: DUP5 00000372: ADD 00000373: SWAP1 00000374: SWAP6 00000375: MSTORE 00000376: DUP5 00000377: DUP5 00000378: MSTORE 00000379: PUSH2 0x05eb 0000037c: SWAP5 0000037d: DUP2 0000037e: CALLDATALOAD 0000037f: SWAP5 00000380: PUSH1 0x24 00000382: DUP1 00000383: CALLDATALOAD 00000384: SWAP6 00000385: SWAP4 00000386: SWAP5 00000387: PUSH1 0x64 00000389: SWAP5 0000038a: SWAP3 0000038b: SWAP4 0000038c: SWAP2 0000038d: ADD 0000038e: SWAP2 0000038f: DUP2 00000390: SWAP1 00000391: DUP5 00000392: ADD 00000393: DUP4 00000394: DUP3 00000395: DUP1 00000396: DUP3 00000397: DUP5 00000398: CALLDATACOPY 00000399: POP 0000039a: SWAP5 0000039b: SWAP7 0000039c: POP 0000039d: POP 0000039e: POP 0000039f: POP 000003a0: POP 000003a1: POP 000003a2: POP 000003a3: PUSH1 0x00 000003a5: PUSH1 0x00 000003a7: DUP4 000003a8: PUSH1 0x0a 000003aa: PUSH1 0x00 000003ac: POP 000003ad: PUSH1 0x00 000003af: CALLER 000003b0: PUSH1 0x01 000003b2: PUSH1 0xa0 000003b4: PUSH1 0x02 000003b6: EXP 000003b7: SUB 000003b8: AND 000003b9: DUP2 000003ba: MSTORE 000003bb: PUSH1 0x20 000003bd: ADD 000003be: SWAP1 000003bf: DUP2 000003c0: MSTORE 000003c1: PUSH1 0x20 000003c3: ADD 000003c4: PUSH1 0x00 000003c6: KECCAK256 000003c7: PUSH1 0x00 000003c9: POP 000003ca: PUSH1 0x00 000003cc: DUP8 000003cd: PUSH1 0x01 000003cf: PUSH1 0xa0 000003d1: PUSH1 0x02 000003d3: EXP 000003d4: SUB 000003d5: AND 000003d6: DUP2 000003d7: MSTORE 000003d8: PUSH1 0x20 000003da: ADD 000003db: SWAP1 000003dc: DUP2 000003dd: MSTORE 000003de: PUSH1 0x20 000003e0: ADD 000003e1: PUSH1 0x00 000003e3: KECCAK256 000003e4: PUSH1 0x00 000003e6: POP 000003e7: DUP2 000003e8: SWAP1 000003e9: SSTORE 000003ea: POP 000003eb: DUP5 000003ec: SWAP1 000003ed: POP 000003ee: DUP1 000003ef: PUSH1 0x01 000003f1: PUSH1 0xa0 000003f3: PUSH1 0x02 000003f5: EXP 000003f6: SUB 000003f7: AND 000003f8: PUSH4 0x8f4ffcb1 000003fd: CALLER 000003fe: DUP7 000003ff: ADDRESS 00000400: DUP8 00000401: PUSH1 0x40 00000403: MLOAD 00000404: DUP6 00000405: PUSH1 0xe0 00000407: PUSH1 0x02 00000409: EXP 0000040a: MUL 0000040b: DUP2 0000040c: MSTORE 0000040d: PUSH1 0x04 0000040f: ADD 00000410: DUP1 00000411: DUP6 00000412: PUSH1 0x01 00000414: PUSH1 0xa0 00000416: PUSH1 0x02 00000418: EXP 00000419: SUB 0000041a: AND 0000041b: DUP2 0000041c: MSTORE 0000041d: PUSH1 0x20 0000041f: ADD 00000420: DUP5 00000421: DUP2 00000422: MSTORE 00000423: PUSH1 0x20 00000425: ADD 00000426: DUP4 00000427: PUSH1 0x01 00000429: PUSH1 0xa0 0000042b: PUSH1 0x02 0000042d: EXP 0000042e: SUB 0000042f: AND 00000430: DUP2 00000431: MSTORE 00000432: PUSH1 0x20 00000434: ADD 00000435: DUP1 00000436: PUSH1 0x20 00000438: ADD 00000439: DUP3 0000043a: DUP2 0000043b: SUB 0000043c: DUP3 0000043d: MSTORE 0000043e: DUP4 0000043f: DUP2 00000440: DUP2 00000441: MLOAD 00000442: DUP2 00000443: MSTORE 00000444: PUSH1 0x20 00000446: ADD 00000447: SWAP2 00000448: POP 00000449: DUP1 0000044a: MLOAD 0000044b: SWAP1 0000044c: PUSH1 0x20 0000044e: ADD 0000044f: SWAP1 00000450: DUP1 00000451: DUP4 00000452: DUP4 00000453: DUP3 00000454: SWAP1 00000455: PUSH1 0x00 00000457: PUSH1 0x04 00000459: PUSH1 0x20 0000045b: DUP5 0000045c: PUSH1 0x1f 0000045e: ADD 0000045f: DIV 00000460: PUSH1 0x0f 00000462: MUL 00000463: PUSH1 0x03 00000465: ADD 00000466: CALL 00000467: POP 00000468: SWAP1 00000469: POP 0000046a: SWAP1 0000046b: DUP2 0000046c: ADD 0000046d: SWAP1 0000046e: PUSH1 0x1f 00000470: AND 00000471: DUP1 00000472: ISZERO 00000473: PUSH2 0x0490 00000476: JUMPI 00000477: DUP1 00000478: DUP3 00000479: SUB 0000047a: DUP1 0000047b: MLOAD 0000047c: PUSH1 0x01 0000047e: DUP4 0000047f: PUSH1 0x20 00000481: SUB 00000482: PUSH2 0x0100 00000485: EXP 00000486: SUB 00000487: NOT 00000488: AND 00000489: DUP2 0000048a: MSTORE 0000048b: PUSH1 0x20 0000048d: ADD 0000048e: SWAP2 0000048f: POP 00000490: JUMPDEST 00000491: POP 00000492: SWAP6 00000493: POP 00000494: POP 00000495: POP 00000496: POP 00000497: POP 00000498: POP 00000499: PUSH1 0x00 0000049b: PUSH1 0x40 0000049d: MLOAD 0000049e: DUP1 0000049f: DUP4 000004a0: SUB 000004a1: DUP2 000004a2: PUSH1 0x00 000004a4: DUP8 000004a5: PUSH2 0x61da 000004a8: GAS 000004a9: SUB 000004aa: CALL 000004ab: ISZERO 000004ac: PUSH2 0x0002 000004af: JUMPI 000004b0: POP 000004b1: PUSH1 0x01 000004b3: SWAP8 000004b4: SWAP7 000004b5: POP 000004b6: POP 000004b7: POP 000004b8: POP 000004b9: POP 000004ba: POP 000004bb: POP 000004bc: JUMP 000004bd: JUMPDEST 000004be: PUSH1 0x0b 000004c0: PUSH1 0x20 000004c2: SWAP1 000004c3: DUP2 000004c4: MSTORE 000004c5: PUSH1 0x04 000004c7: CALLDATALOAD 000004c8: PUSH1 0x00 000004ca: SWAP1 000004cb: DUP2 000004cc: MSTORE 000004cd: PUSH1 0x40 000004cf: DUP1 000004d0: DUP3 000004d1: KECCAK256 000004d2: SWAP1 000004d3: SWAP3 000004d4: MSTORE 000004d5: PUSH1 0x24 000004d7: CALLDATALOAD 000004d8: DUP2 000004d9: MSTORE 000004da: KECCAK256 000004db: SLOAD 000004dc: PUSH2 0x05eb 000004df: SWAP1 000004e0: DUP2 000004e1: JUMP 000004e2: JUMPDEST 000004e3: PUSH1 0x0a 000004e5: PUSH1 0x20 000004e7: SWAP1 000004e8: DUP2 000004e9: MSTORE 000004ea: PUSH1 0x04 000004ec: CALLDATALOAD 000004ed: PUSH1 0x00 000004ef: SWAP1 000004f0: DUP2 000004f1: MSTORE 000004f2: PUSH1 0x40 000004f4: DUP1 000004f5: DUP3 000004f6: KECCAK256 000004f7: SWAP1 000004f8: SWAP3 000004f9: MSTORE 000004fa: PUSH1 0x24 000004fc: CALLDATALOAD 000004fd: DUP2 000004fe: MSTORE 000004ff: KECCAK256 00000500: SLOAD 00000501: PUSH2 0x05eb 00000504: SWAP1 00000505: DUP2 00000506: JUMP 00000507: JUMPDEST 00000508: PUSH2 0x05eb 0000050b: PUSH1 0x04 0000050d: CALLDATALOAD 0000050e: PUSH1 0x04 00000510: SLOAD 00000511: ADDRESS 00000512: PUSH1 0x01 00000514: PUSH1 0xa0 00000516: PUSH1 0x02 00000518: EXP 00000519: SUB 0000051a: SWAP1 0000051b: DUP2 0000051c: AND 0000051d: BALANCE 0000051e: PUSH6 0x5af3107a4000 00000525: MUL 00000526: SWAP2 00000527: SWAP1 00000528: SWAP2 00000529: DIV 0000052a: PUSH1 0x08 0000052c: SSTORE 0000052d: CALLER 0000052e: AND 0000052f: PUSH1 0x00 00000531: SWAP1 00000532: DUP2 00000533: MSTORE 00000534: PUSH1 0x09 00000536: PUSH1 0x20 00000538: MSTORE 00000539: PUSH1 0x40 0000053b: DUP2 0000053c: KECCAK256 0000053d: SLOAD 0000053e: DUP3 0000053f: SWAP1 00000540: LT 00000541: ISZERO 00000542: PUSH2 0x064a 00000545: JUMPI 00000546: PUSH2 0x0002 00000549: JUMP 0000054a: JUMPDEST 0000054b: PUSH2 0x0106 0000054e: PUSH1 0x04 00000550: CALLDATALOAD 00000551: PUSH1 0x00 00000553: SLOAD 00000554: CALLER 00000555: PUSH1 0x01 00000557: PUSH1 0xa0 00000559: PUSH1 0x02 0000055b: EXP 0000055c: SUB 0000055d: SWAP1 0000055e: DUP2 0000055f: AND 00000560: SWAP2 00000561: AND 00000562: EQ 00000563: PUSH2 0x06c8 00000566: JUMPI 00000567: PUSH2 0x0002 0000056a: JUMP 0000056b: JUMPDEST 0000056c: PUSH2 0x062d 0000056f: PUSH1 0x05 00000571: SLOAD 00000572: PUSH1 0x01 00000574: PUSH1 0xa0 00000576: PUSH1 0x02 00000578: EXP 00000579: SUB 0000057a: AND 0000057b: DUP2 0000057c: JUMP 0000057d: JUMPDEST 0000057e: PUSH1 0x40 00000580: MLOAD 00000581: DUP1 00000582: DUP1 00000583: PUSH1 0x20 00000585: ADD 00000586: DUP3 00000587: DUP2 00000588: SUB 00000589: DUP3 0000058a: MSTORE 0000058b: DUP4 0000058c: DUP2 0000058d: DUP2 0000058e: MLOAD 0000058f: DUP2 00000590: MSTORE 00000591: PUSH1 0x20 00000593: ADD 00000594: SWAP2 00000595: POP 00000596: DUP1 00000597: MLOAD 00000598: SWAP1 00000599: PUSH1 0x20 0000059b: ADD 0000059c: SWAP1 0000059d: DUP1 0000059e: DUP4 0000059f: DUP4 000005a0: DUP3 000005a1: SWAP1 000005a2: PUSH1 0x00 000005a4: PUSH1 0x04 000005a6: PUSH1 0x20 000005a8: DUP5 000005a9: PUSH1 0x1f 000005ab: ADD 000005ac: DIV 000005ad: PUSH1 0x0f 000005af: MUL 000005b0: PUSH1 0x03 000005b2: ADD 000005b3: CALL 000005b4: POP 000005b5: SWAP1 000005b6: POP 000005b7: SWAP1 000005b8: DUP2 000005b9: ADD 000005ba: SWAP1 000005bb: PUSH1 0x1f 000005bd: AND 000005be: DUP1 000005bf: ISZERO 000005c0: PUSH2 0x05dd 000005c3: JUMPI 000005c4: DUP1 000005c5: DUP3 000005c6: SUB 000005c7: DUP1 000005c8: MLOAD 000005c9: PUSH1 0x01 000005cb: DUP4 000005cc: PUSH1 0x20 000005ce: SUB 000005cf: PUSH2 0x0100 000005d2: EXP 000005d3: SUB 000005d4: NOT 000005d5: AND 000005d6: DUP2 000005d7: MSTORE 000005d8: PUSH1 0x20 000005da: ADD 000005db: SWAP2 000005dc: POP 000005dd: JUMPDEST 000005de: POP 000005df: SWAP3 000005e0: POP 000005e1: POP 000005e2: POP 000005e3: PUSH1 0x40 000005e5: MLOAD 000005e6: DUP1 000005e7: SWAP2 000005e8: SUB 000005e9: SWAP1 000005ea: RETURN 000005eb: JUMPDEST 000005ec: PUSH1 0x40 000005ee: DUP1 000005ef: MLOAD 000005f0: SWAP2 000005f1: DUP3 000005f2: MSTORE 000005f3: MLOAD 000005f4: SWAP1 000005f5: DUP2 000005f6: SWAP1 000005f7: SUB 000005f8: PUSH1 0x20 000005fa: ADD 000005fb: SWAP1 000005fc: RETURN 000005fd: JUMPDEST 000005fe: PUSH1 0x40 00000600: DUP1 00000601: MLOAD 00000602: PUSH4 0xffffffff 00000607: SWAP3 00000608: SWAP1 00000609: SWAP3 0000060a: AND 0000060b: DUP3 0000060c: MSTORE 0000060d: MLOAD 0000060e: SWAP1 0000060f: DUP2 00000610: SWAP1 00000611: SUB 00000612: PUSH1 0x20 00000614: ADD 00000615: SWAP1 00000616: RETURN 00000617: JUMPDEST 00000618: PUSH1 0x40 0000061a: DUP1 0000061b: MLOAD 0000061c: PUSH1 0xff 0000061e: SWAP1 0000061f: SWAP3 00000620: AND 00000621: DUP3 00000622: MSTORE 00000623: MLOAD 00000624: SWAP1 00000625: DUP2 00000626: SWAP1 00000627: SUB 00000628: PUSH1 0x20 0000062a: ADD 0000062b: SWAP1 0000062c: RETURN 0000062d: JUMPDEST 0000062e: PUSH1 0x40 00000630: DUP1 00000631: MLOAD 00000632: PUSH1 0x01 00000634: PUSH1 0xa0 00000636: PUSH1 0x02 00000638: EXP 00000639: SUB 0000063a: SWAP3 0000063b: SWAP1 0000063c: SWAP3 0000063d: AND 0000063e: DUP3 0000063f: MSTORE 00000640: MLOAD 00000641: SWAP1 00000642: DUP2 00000643: SWAP1 00000644: SUB 00000645: PUSH1 0x20 00000647: ADD 00000648: SWAP1 00000649: RETURN 0000064a: JUMPDEST 0000064b: POP 0000064c: ADDRESS 0000064d: PUSH1 0x01 0000064f: PUSH1 0xa0 00000651: PUSH1 0x02 00000653: EXP 00000654: SUB 00000655: SWAP1 00000656: DUP2 00000657: AND 00000658: PUSH1 0x00 0000065a: SWAP1 0000065b: DUP2 0000065c: MSTORE 0000065d: PUSH1 0x09 0000065f: PUSH1 0x20 00000661: MSTORE 00000662: PUSH1 0x40 00000664: DUP1 00000665: DUP3 00000666: KECCAK256 00000667: DUP1 00000668: SLOAD 00000669: DUP6 0000066a: ADD 0000066b: SWAP1 0000066c: SSTORE 0000066d: CALLER 0000066e: SWAP1 0000066f: SWAP3 00000670: AND 00000671: DUP1 00000672: DUP3 00000673: MSTORE 00000674: DUP3 00000675: DUP3 00000676: KECCAK256 00000677: DUP1 00000678: SLOAD 00000679: DUP6 0000067a: SWAP1 0000067b: SUB 0000067c: SWAP1 0000067d: SSTORE 0000067e: SWAP2 0000067f: MLOAD 00000680: PUSH1 0x08 00000682: SLOAD 00000683: DUP5 00000684: MUL 00000685: SWAP3 00000686: SWAP2 00000687: SWAP1 00000688: DUP4 00000689: SWAP1 0000068a: DUP3 0000068b: DUP2 0000068c: DUP2 0000068d: DUP2 0000068e: DUP6 0000068f: DUP9 00000690: DUP4 00000691: CALL 00000692: POP 00000693: POP 00000694: PUSH1 0x40 00000696: DUP1 00000697: MLOAD 00000698: DUP7 00000699: DUP2 0000069a: MSTORE 0000069b: SWAP1 0000069c: MLOAD 0000069d: ADDRESS 0000069e: PUSH1 0x01 000006a0: PUSH1 0xa0 000006a2: PUSH1 0x02 000006a4: EXP 000006a5: SUB 000006a6: AND 000006a7: SWAP5 000006a8: SWAP4 000006a9: POP 000006aa: PUSH1 0x00 000006ac: DUP1 000006ad: MLOAD 000006ae: PUSH1 0x20 000006b0: PUSH2 0x0a09 000006b3: DUP4 000006b4: CODECOPY 000006b5: DUP2 000006b6: MLOAD 000006b7: SWAP2 000006b8: MSTORE 000006b9: SWAP3 000006ba: POP 000006bb: SWAP1 000006bc: DUP2 000006bd: SWAP1 000006be: SUB 000006bf: PUSH1 0x20 000006c1: ADD 000006c2: SWAP1 000006c3: LOG3 000006c4: SWAP2 000006c5: SWAP1 000006c6: POP 000006c7: JUMP 000006c8: JUMPDEST 000006c9: PUSH1 0x00 000006cb: DUP1 000006cc: SLOAD 000006cd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006e2: NOT 000006e3: AND 000006e4: DUP3 000006e5: OR 000006e6: SWAP1 000006e7: SSTORE 000006e8: POP 000006e9: JUMP 000006ea: JUMPDEST 000006eb: DUP3 000006ec: ADD 000006ed: SWAP2 000006ee: SWAP1 000006ef: PUSH1 0x00 000006f1: MSTORE 000006f2: PUSH1 0x20 000006f4: PUSH1 0x00 000006f6: KECCAK256 000006f7: SWAP1 000006f8: JUMPDEST 000006f9: DUP2 000006fa: SLOAD 000006fb: DUP2 000006fc: MSTORE 000006fd: SWAP1 000006fe: PUSH1 0x01 00000700: ADD 00000701: SWAP1 00000702: PUSH1 0x20 00000704: ADD 00000705: DUP1 00000706: DUP4 00000707: GT 00000708: PUSH2 0x06f8 0000070b: JUMPI 0000070c: DUP3 0000070d: SWAP1 0000070e: SUB 0000070f: PUSH1 0x1f 00000711: AND 00000712: DUP3 00000713: ADD 00000714: SWAP2 00000715: JUMPDEST 00000716: POP 00000717: POP 00000718: POP 00000719: POP 0000071a: POP 0000071b: DUP2 0000071c: JUMP 0000071d: JUMPDEST 0000071e: POP 0000071f: SWAP4 00000720: SWAP3 00000721: POP 00000722: POP 00000723: POP 00000724: JUMP 00000725: JUMPDEST 00000726: PUSH1 0x01 00000728: PUSH1 0xa0 0000072a: PUSH1 0x02 0000072c: EXP 0000072d: SUB 0000072e: DUP4 0000072f: AND 00000730: PUSH1 0x00 00000732: SWAP1 00000733: DUP2 00000734: MSTORE 00000735: PUSH1 0x09 00000737: PUSH1 0x20 00000739: MSTORE 0000073a: PUSH1 0x40 0000073c: SWAP1 0000073d: KECCAK256 0000073e: SLOAD 0000073f: DUP1 00000740: DUP4 00000741: ADD 00000742: LT 00000743: ISZERO 00000744: PUSH2 0x074c 00000747: JUMPI 00000748: PUSH2 0x0002 0000074b: JUMP 0000074c: JUMPDEST 0000074d: PUSH1 0x01 0000074f: PUSH1 0xa0 00000751: PUSH1 0x02 00000753: EXP 00000754: SUB 00000755: DUP5 00000756: DUP2 00000757: AND 00000758: PUSH1 0x00 0000075a: DUP2 0000075b: DUP2 0000075c: MSTORE 0000075d: PUSH1 0x0a 0000075f: PUSH1 0x20 00000761: SWAP1 00000762: DUP2 00000763: MSTORE 00000764: PUSH1 0x40 00000766: DUP1 00000767: DUP4 00000768: KECCAK256 00000769: CALLER 0000076a: SWAP1 0000076b: SWAP6 0000076c: AND 0000076d: DUP1 0000076e: DUP5 0000076f: MSTORE 00000770: SWAP5 00000771: DUP3 00000772: MSTORE 00000773: DUP1 00000774: DUP4 00000775: KECCAK256 00000776: SLOAD 00000777: SWAP4 00000778: DUP4 00000779: MSTORE 0000077a: PUSH1 0x0b 0000077c: DUP3 0000077d: MSTORE 0000077e: DUP1 0000077f: DUP4 00000780: KECCAK256 00000781: SWAP5 00000782: DUP4 00000783: MSTORE 00000784: SWAP4 00000785: SWAP1 00000786: MSTORE 00000787: SWAP2 00000788: SWAP1 00000789: SWAP2 0000078a: KECCAK256 0000078b: SLOAD 0000078c: DUP4 0000078d: ADD 0000078e: GT 0000078f: ISZERO 00000790: PUSH2 0x0798 00000793: JUMPI 00000794: PUSH2 0x0002 00000797: JUMP 00000798: JUMPDEST 00000799: PUSH1 0x01 0000079b: PUSH1 0xa0 0000079d: PUSH1 0x02 0000079f: EXP 000007a0: SUB 000007a1: DUP5 000007a2: DUP2 000007a3: AND 000007a4: PUSH1 0x00 000007a6: DUP2 000007a7: DUP2 000007a8: MSTORE 000007a9: PUSH1 0x09 000007ab: PUSH1 0x20 000007ad: SWAP1 000007ae: DUP2 000007af: MSTORE 000007b0: PUSH1 0x40 000007b2: DUP1 000007b3: DUP4 000007b4: KECCAK256 000007b5: DUP1 000007b6: SLOAD 000007b7: DUP9 000007b8: SWAP1 000007b9: SUB 000007ba: SWAP1 000007bb: SSTORE 000007bc: DUP8 000007bd: DUP6 000007be: AND 000007bf: DUP1 000007c0: DUP5 000007c1: MSTORE 000007c2: DUP2 000007c3: DUP5 000007c4: KECCAK256 000007c5: DUP1 000007c6: SLOAD 000007c7: DUP10 000007c8: ADD 000007c9: SWAP1 000007ca: SSTORE 000007cb: DUP5 000007cc: DUP5 000007cd: MSTORE 000007ce: PUSH1 0x0b 000007d0: DUP4 000007d1: MSTORE 000007d2: DUP2 000007d3: DUP5 000007d4: KECCAK256 000007d5: CALLER 000007d6: SWAP1 000007d7: SWAP7 000007d8: AND 000007d9: DUP5 000007da: MSTORE 000007db: SWAP5 000007dc: DUP3 000007dd: MSTORE 000007de: SWAP2 000007df: DUP3 000007e0: SWAP1 000007e1: KECCAK256 000007e2: DUP1 000007e3: SLOAD 000007e4: DUP8 000007e5: ADD 000007e6: SWAP1 000007e7: SSTORE 000007e8: DUP2 000007e9: MLOAD 000007ea: DUP7 000007eb: DUP2 000007ec: MSTORE 000007ed: SWAP2 000007ee: MLOAD 000007ef: PUSH1 0x00 000007f1: DUP1 000007f2: MLOAD 000007f3: PUSH1 0x20 000007f5: PUSH2 0x0a09 000007f8: DUP4 000007f9: CODECOPY 000007fa: DUP2 000007fb: MLOAD 000007fc: SWAP2 000007fd: MSTORE 000007fe: SWAP3 000007ff: DUP2 00000800: SWAP1 00000801: SUB 00000802: SWAP1 00000803: SWAP2 00000804: ADD 00000805: SWAP1 00000806: LOG3 00000807: POP 00000808: PUSH1 0x01 0000080a: SWAP4 0000080b: SWAP3 0000080c: POP 0000080d: POP 0000080e: POP 0000080f: JUMP 00000810: JUMPDEST 00000811: PUSH1 0x06 00000813: SSTORE 00000814: JUMP 00000815: JUMPDEST 00000816: PUSH1 0x05 00000818: DUP1 00000819: SLOAD 0000081a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000082f: NOT 00000830: AND 00000831: DUP3 00000832: OR 00000833: SWAP1 00000834: SSTORE 00000835: POP 00000836: JUMP 00000837: JUMPDEST 00000838: PUSH2 0x0200 0000083b: DUP2 0000083c: PUSH4 0xffffffff 00000841: AND 00000842: LT 00000843: ISZERO 00000844: PUSH2 0x084c 00000847: JUMPI 00000848: PUSH2 0x0002 0000084b: JUMP 0000084c: JUMPDEST 0000084d: PUSH1 0x07 0000084f: DUP1 00000850: SLOAD 00000851: PUSH4 0xffffffff 00000856: NOT 00000857: AND 00000858: DUP3 00000859: OR 0000085a: SWAP1 0000085b: SSTORE 0000085c: POP 0000085d: JUMP 0000085e: JUMPDEST 0000085f: PUSH1 0x01 00000861: PUSH1 0xa0 00000863: PUSH1 0x02 00000865: EXP 00000866: SUB 00000867: DUP3 00000868: AND 00000869: PUSH1 0x00 0000086b: SWAP1 0000086c: DUP2 0000086d: MSTORE 0000086e: PUSH1 0x09 00000870: PUSH1 0x20 00000872: MSTORE 00000873: PUSH1 0x40 00000875: SWAP1 00000876: KECCAK256 00000877: SLOAD 00000878: DUP2 00000879: DUP2 0000087a: ADD 0000087b: LT 0000087c: ISZERO 0000087d: PUSH2 0x0885 00000880: JUMPI 00000881: PUSH2 0x0002 00000884: JUMP 00000885: JUMPDEST 00000886: CALLER 00000887: PUSH1 0x01 00000889: PUSH1 0xa0 0000088b: PUSH1 0x02 0000088d: EXP 0000088e: SUB 0000088f: SWAP1 00000890: DUP2 00000891: AND 00000892: PUSH1 0x00 00000894: DUP2 00000895: DUP2 00000896: MSTORE 00000897: PUSH1 0x09 00000899: PUSH1 0x20 0000089b: SWAP1 0000089c: DUP2 0000089d: MSTORE 0000089e: PUSH1 0x40 000008a0: DUP1 000008a1: DUP4 000008a2: KECCAK256 000008a3: DUP1 000008a4: SLOAD 000008a5: DUP8 000008a6: SWAP1 000008a7: SUB 000008a8: SWAP1 000008a9: SSTORE 000008aa: SWAP4 000008ab: DUP7 000008ac: AND 000008ad: DUP1 000008ae: DUP4 000008af: MSTORE 000008b0: SWAP2 000008b1: DUP5 000008b2: SWAP1 000008b3: KECCAK256 000008b4: DUP1 000008b5: SLOAD 000008b6: DUP7 000008b7: ADD 000008b8: SWAP1 000008b9: SSTORE 000008ba: DUP4 000008bb: MLOAD 000008bc: DUP6 000008bd: DUP2 000008be: MSTORE 000008bf: SWAP4 000008c0: MLOAD 000008c1: SWAP2 000008c2: SWAP4 000008c3: PUSH1 0x00 000008c5: DUP1 000008c6: MLOAD 000008c7: PUSH1 0x20 000008c9: PUSH2 0x0a09 000008cc: DUP4 000008cd: CODECOPY 000008ce: DUP2 000008cf: MLOAD 000008d0: SWAP2 000008d1: MSTORE 000008d2: SWAP3 000008d3: SWAP1 000008d4: DUP2 000008d5: SWAP1 000008d6: SUB 000008d7: SWAP1 000008d8: SWAP2 000008d9: ADD 000008da: SWAP1 000008db: LOG3 000008dc: POP 000008dd: POP 000008de: JUMP 000008df: JUMPDEST 000008e0: PUSH1 0x04 000008e2: SLOAD 000008e3: ADDRESS 000008e4: PUSH1 0x01 000008e6: PUSH1 0xa0 000008e8: PUSH1 0x02 000008ea: EXP 000008eb: SUB 000008ec: AND 000008ed: BALANCE 000008ee: PUSH6 0x09184e72a000 000008f5: MUL 000008f6: DIV 000008f7: PUSH1 0x08 000008f9: SSTORE 000008fa: PUSH1 0x40 000008fc: DUP1 000008fd: MLOAD 000008fe: NUMBER 000008ff: DUP2 00000900: MSTORE 00000901: TIMESTAMP 00000902: PUSH1 0x20 00000904: DUP3 00000905: ADD 00000906: MSTORE 00000907: DUP1 00000908: DUP3 00000909: ADD 0000090a: DUP7 0000090b: SWAP1 0000090c: MSTORE 0000090d: SWAP1 0000090e: MLOAD 0000090f: SWAP1 00000910: DUP2 00000911: SWAP1 00000912: SUB 00000913: PUSH1 0x60 00000915: ADD 00000916: SWAP1 00000917: KECCAK256 00000918: PUSH2 0x0922 0000091b: SWAP1 0000091c: PUSH1 0x0a 0000091e: PUSH2 0x01e7 00000921: JUMP 00000922: JUMPDEST 00000923: PUSH1 0x07 00000925: SLOAD 00000926: SWAP1 00000927: SWAP2 00000928: POP 00000929: PUSH4 0xffffffff 0000092e: AND 0000092f: DUP2 00000930: LT 00000931: PUSH2 0x0947 00000934: JUMPI 00000935: PUSH1 0x00 00000937: SWAP3 00000938: POP 00000939: PUSH2 0x03e7 0000093c: PUSH5 0x174876e800 00000942: DUP6 00000943: DIV 00000944: DIV 00000945: SWAP2 00000946: POP 00000947: JUMPDEST 00000948: PUSH1 0x07 0000094a: SLOAD 0000094b: PUSH4 0xffffffff 00000950: AND 00000951: DUP2 00000952: LT 00000953: ISZERO 00000954: PUSH2 0x0965 00000957: JUMPI 00000958: PUSH5 0x174876e800 0000095e: PUSH1 0x02 00000960: DUP6 00000961: MUL 00000962: DIV 00000963: SWAP3 00000964: POP 00000965: JUMPDEST 00000966: CALLER 00000967: PUSH1 0x01 00000969: PUSH1 0xa0 0000096b: PUSH1 0x02 0000096d: EXP 0000096e: SUB 0000096f: SWAP1 00000970: DUP2 00000971: AND 00000972: PUSH1 0x00 00000974: DUP2 00000975: DUP2 00000976: MSTORE 00000977: PUSH1 0x09 00000979: PUSH1 0x20 0000097b: SWAP1 0000097c: DUP2 0000097d: MSTORE 0000097e: PUSH1 0x40 00000980: DUP1 00000981: DUP4 00000982: KECCAK256 00000983: DUP1 00000984: SLOAD 00000985: DUP10 00000986: ADD 00000987: SWAP1 00000988: SSTORE 00000989: PUSH1 0x05 0000098b: SLOAD 0000098c: DUP6 0000098d: AND 0000098e: DUP4 0000098f: MSTORE 00000990: DUP1 00000991: DUP4 00000992: KECCAK256 00000993: DUP1 00000994: SLOAD 00000995: DUP9 00000996: ADD 00000997: SWAP1 00000998: SSTORE 00000999: ADDRESS 0000099a: SWAP1 0000099b: SWAP5 0000099c: AND 0000099d: DUP1 0000099e: DUP4 0000099f: MSTORE 000009a0: SWAP2 000009a1: DUP5 000009a2: SWAP1 000009a3: KECCAK256 000009a4: DUP1 000009a5: SLOAD 000009a6: DUP8 000009a7: DUP10 000009a8: ADD 000009a9: SWAP1 000009aa: SUB 000009ab: SWAP1 000009ac: SSTORE 000009ad: DUP4 000009ae: MLOAD 000009af: DUP8 000009b0: DUP2 000009b1: MSTORE 000009b2: SWAP4 000009b3: MLOAD 000009b4: SWAP3 000009b5: SWAP4 000009b6: SWAP2 000009b7: SWAP3 000009b8: PUSH1 0x00 000009ba: DUP1 000009bb: MLOAD 000009bc: PUSH1 0x20 000009be: PUSH2 0x0a09 000009c1: DUP4 000009c2: CODECOPY 000009c3: DUP2 000009c4: MLOAD 000009c5: SWAP2 000009c6: MSTORE 000009c7: SWAP3 000009c8: DUP2 000009c9: SWAP1 000009ca: SUB 000009cb: SWAP1 000009cc: SWAP2 000009cd: ADD 000009ce: SWAP1 000009cf: LOG3 000009d0: PUSH1 0x05 000009d2: SLOAD 000009d3: PUSH1 0x40 000009d5: DUP1 000009d6: MLOAD 000009d7: DUP5 000009d8: DUP2 000009d9: MSTORE 000009da: SWAP1 000009db: MLOAD 000009dc: PUSH1 0x01 000009de: PUSH1 0xa0 000009e0: PUSH1 0x02 000009e2: EXP 000009e3: SUB 000009e4: SWAP3 000009e5: DUP4 000009e6: AND 000009e7: SWAP3 000009e8: ADDRESS 000009e9: AND 000009ea: SWAP2 000009eb: PUSH1 0x00 000009ed: DUP1 000009ee: MLOAD 000009ef: PUSH1 0x20 000009f1: PUSH2 0x0a09 000009f4: DUP4 000009f5: CODECOPY 000009f6: DUP2 000009f7: MLOAD 000009f8: SWAP2 000009f9: MSTORE 000009fa: SWAP2 000009fb: SWAP1 000009fc: DUP2 000009fd: SWAP1 000009fe: SUB 000009ff: PUSH1 0x20 00000a01: ADD 00000a02: SWAP1 00000a03: LOG3 00000a04: POP 00000a05: POP 00000a06: POP 00000a07: SWAP1 00000a08: JUMP 00000a09: UNKNOWN(0xDD) 00000a0a: CALLCODE 00000a0b: MSTORE 00000a0c: UNKNOWN(0xAD) 00000a0d: SHL 00000a0e: UNKNOWN(0xE2) 00000a0f: UNKNOWN(0xC8) 00000a10: SWAP12 00000a11: PUSH10 0xc2b068fc378daa952ba7 00000a1c: CALL 00000a1d: PUSH4 0xc4a11628 00000a22: CREATE2 00000a23: GAS 00000a24: UNKNOWN(0x4D) 00000a25: CREATE2 00000a26: UNKNOWN(0x23) 00000a27: UNKNOWN(0xB3) 00000a28: UNKNOWN(0xEF)
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 | detector | Untrusted CALL target/value reachable | 60 | yes | yes |
viewtrace_id: 0x5c2ca3ffede7cba7409b4828de4497e44f024962c4ac70638218b33df9a5f9ae
call_targets:
0x0000000000000000000000000000000000000004, 0xbe1c8694b8457b4f8dd06eb11d236b4aa4d5b2b9
target_varies:
yes
classification:
target_varies
validation_json{
"sink": "CALL",
"errors": 0,
"status": "confirmed",
"attempts": 1,
"trace_id": "0x5c2ca3ffede7cba7409b4828de4497e44f024962c4ac70638218b33df9a5f9ae",
"confirmed": true,
"trace_mode": "callTracer",
"call_targets": [
"0x0000000000000000000000000000000000000004",
"0xbe1c8694b8457b4f8dd06eb11d236b4aa4d5b2b9"
],
"matched_probe": null,
"target_varies": true,
"classification": "target_varies"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x18160ddd",
"selector": "0x18160ddd",
"calldata_variants": [
"0x18160ddd",
"0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1fe9eabc",
"selector": "0x1fe9eabc",
"calldata_variants": [
"0x1fe9eabc",
"0x1fe9eabc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x233de126",
"selector": "0x233de126",
"calldata_variants": [
"0x233de126",
"0x233de1260000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x23b872dd",
"selector": "0x23b872dd",
"calldata_variants": [
"0x23b872dd",
"0x23b872dd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x313ce567",
"selector": "0x313ce567",
"calldata_variants": [
"0x313ce567",
"0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x41fa4876",
"selector": "0x41fa4876",
"calldata_variants": [
"0x41fa4876",
"0x41fa48760000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x70a08231",
"selector": "0x70a08231",
"calldata_variants": [
"0x70a08231",
"0x70a082310000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1126,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1194,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1459,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 6,
"guards_detected": [],
"untrusted_call_count": 6
}
|
| high | other | detector | ETH value transfer possible | 55 | yes | yes |
viewtrace_id: 0x5c2ca3ffede7cba7409b4828de4497e44f024962c4ac70638218b33df9a5f9ae
call_targets:
0x0000000000000000000000000000000000000004, 0xbe1c8694b8457b4f8dd06eb11d236b4aa4d5b2b9
target_varies:
yes
classification:
target_varies
validation_json{
"sink": "CALL",
"errors": 0,
"status": "confirmed",
"attempts": 1,
"trace_id": "0x5c2ca3ffede7cba7409b4828de4497e44f024962c4ac70638218b33df9a5f9ae",
"confirmed": true,
"trace_mode": "callTracer",
"call_targets": [
"0x0000000000000000000000000000000000000004",
"0xbe1c8694b8457b4f8dd06eb11d236b4aa4d5b2b9"
],
"matched_probe": null,
"target_varies": true,
"classification": "target_varies"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x18160ddd",
"selector": "0x18160ddd",
"calldata_variants": [
"0x18160ddd",
"0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1fe9eabc",
"selector": "0x1fe9eabc",
"calldata_variants": [
"0x1fe9eabc",
"0x1fe9eabc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x233de126",
"selector": "0x233de126",
"calldata_variants": [
"0x233de126",
"0x233de1260000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x23b872dd",
"selector": "0x23b872dd",
"calldata_variants": [
"0x23b872dd",
"0x23b872dd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x313ce567",
"selector": "0x313ce567",
"calldata_variants": [
"0x313ce567",
"0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x41fa4876",
"selector": "0x41fa4876",
"calldata_variants": [
"0x41fa4876",
"0x41fa48760000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x70a08231",
"selector": "0x70a08231",
"calldata_variants": [
"0x70a08231",
"0x70a082310000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1126,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1194,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1459,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 6,
"guards_detected": []
}
|
| medium | other | detector | CREATE/CREATE2 reachable | 45 | no | no |
viewtrace_id: 0xfdff404d1b51f645b650ba85d78dfbcce7df2879150be5c38bf00a3b3ea51fd0
validation_json{
"sink": "CREATE",
"errors": 0,
"status": "unknown",
"attempts": 32,
"trace_id": "0xfdff404d1b51f645b650ba85d78dfbcce7df2879150be5c38bf00a3b3ea51fd0",
"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": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x18160ddd",
"selector": "0x18160ddd",
"calldata_variants": [
"0x18160ddd",
"0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1fe9eabc",
"selector": "0x1fe9eabc",
"calldata_variants": [
"0x1fe9eabc",
"0x1fe9eabc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x233de126",
"selector": "0x233de126",
"calldata_variants": [
"0x233de126",
"0x233de1260000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x23b872dd",
"selector": "0x23b872dd",
"calldata_variants": [
"0x23b872dd",
"0x23b872dd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x313ce567",
"selector": "0x313ce567",
"calldata_variants": [
"0x313ce567",
"0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x41fa4876",
"selector": "0x41fa4876",
"calldata_variants": [
"0x41fa4876",
"0x41fa48760000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x70a08231",
"selector": "0x70a08231",
"calldata_variants": [
"0x70a08231",
"0x70a082310000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"create_count": 0,
"create2_count": 2
}
|
| medium | other | codex | Unchecked ETH payout can debit seller balances without confirming payment | 75 | no | — |
viewevidence_json{
"evidence": "The dispatcher routes selector 0xdc3080f2 to pc 0x507. That path recomputes slot8 from contract ETH balance, verifies the caller balance in slot9, then updates balances before the external CALL: balance writes occur in the 0x64a routine before pc 0x691. The CALL at pc 0x691 is followed only by POP/POP and event emission; unlike the CALL at pc 0x4aa, there is no ISZERO/JUMPI failure check after pc 0x691.",
"locations": [
"selector:0xdc3080f2",
"pc:0x64a",
"pc:0x67d",
"pc:0x691"
],
"recommendation": "Check the low-level CALL result and revert on failure, or switch to a pull-payment withdrawal model so token accounting is only finalized after a confirmed payout.",
"exploit_scenario": "A user calling selector 0xdc3080f2 from a contract wallet or any recipient that rejects ETH can have their token balance debited and the contract balance credited before the payout CALL executes. Because the CALL result is ignored, the transaction can complete with no ETH delivered to the seller."
}
|
| medium | other | codex | Standard ERC20 selector 0x23b872dd does not implement transferFrom semantics | 75 | no | — |
viewevidence_json{
"evidence": "Selector inference is explicit in the dispatcher: 0x23b872dd jumps to pc 0x19f. The 0x19f-0x1d0 path loads three calldata words, computes a slot9 balance lookup, compares it to the second argument, and on success jumps to pc 0x1d1. Pc 0x1d1 immediately returns sload(0x03) & 0xff through the common return helper. There is no SSTORE, no LOG3 Transfer event, and no allowance decrement anywhere on that selector path.",
"locations": [
"selector:0x23b872dd",
"pc:0x19f",
"pc:0x1c4",
"pc:0x1d1"
],
"recommendation": "Implement ERC20-compliant transferFrom logic under selector 0x23b872dd, or remove/avoid advertising the standard selector if the function is intentionally non-standard.",
"exploit_scenario": "An exchange, router, or escrow calling transferFrom(address,address,uint256) will expect allowance consumption, balance movement, and a boolean return. Here the standard selector appears to do only a balance check and then returns the low byte of slot3, so standard integrations can fail or the token can behave like a honeypot despite exposing ERC20-looking selectors."
}
|
| low | access_control | codex | `transferOwnership` selector does not update the owner slot used by auth checks | 65 | no | — |
viewevidence_json{
"evidence": "The standard owner getter 0x8da5cb5b returns sload(0x00) masked to an address. Admin guards compare CALLER with sload(0x00) at pcs 0x177, 0x254, 0x33e, and 0x553. By contrast, selector 0xf2fde38b dispatches to pc 0x54a and reaches the 0x815 routine, which reads and writes slot5, never slot0.",
"locations": [
"selector:0x8da5cb5b",
"selector:0xf2fde38b",
"pc:0x177",
"pc:0x254",
"pc:0x33e",
"pc:0x553",
"pc:0x54a",
"pc:0x815"
],
"recommendation": "If ownership rotation is intended, update slot0 in the 0xf2fde38b path. Otherwise remove the standard selector or document clearly that ownership is immutable and slot5 is a different role.",
"exploit_scenario": "Operators and tooling may assume selector 0xf2fde38b is standard Ownable.transferOwnership. In this bytecode, admin checks consistently read slot0, but 0xf2fde38b writes slot5 instead. If the slot0 owner key is lost, ownership cannot be rotated, and monitoring tooling can falsely believe ownership was transferred."
}
|