erigontech / erigon

Ethereum implementation on the efficiency frontier https://erigon.gitbook.io
GNU Lesser General Public License v3.0
3.12k stars 1.11k forks source link

`trace_replayTransaction` incorrectly reports `result` from specific CREATE call. #10594

Open Robert-MacWha opened 4 months ago

Robert-MacWha commented 4 months ago

System information

Erigon version: thorax/erigon:v2.60.0

OS & Version: Linux | Docker

Commit hash:

Erigon Command (with flags/config):

command: |
      --chain mainnet
      --datadir "/datadir"
      --http
      --http.addr 0.0.0.0
      --http.api "eth,web3,net,txpool,debug,trace,rpc"
      --http.port 8545
      --ws
      --ws.port 8545
      --authrpc.addr 0.0.0.0
      --authrpc.port 8551
      --authrpc.vhosts "erigon"
      --metrics
      --authrpc.jwtsecret "/secrets/jwt.hex"

Consensus Layer: lighthouse

Consensus Layer Command (with flags/config):

lighthouse bn
      --network "mainnet"
      --datadir "/root/.lighthouse"
      --execution-endpoint "http://erigon:8551"
      --metrics
      --execution-jwt "/secrets/jwt.hex"
      --checkpoint-sync-url "https://mainnet.checkpoint.sigp.io"
      --disable-deposit-contract-sync

Chain/Network: Ethereum/Mainnet

Expected behaviour

The transaction trace for 0x9da5e2c5da5e44fbe867d4784f2a935139028efe58b1d31b7884d55551478ec8 should report, in the CREATE call, that the contract is initialized with bytecode "0x." This is the bytecode that is present on-chain.

Reth demonstrates a correct transaction trace:

{
    "jsonrpc": "2.0",
    "result": {
        "output": "0x00000000000000000000000002820e4bee488c40f7455fdca53125565148708f",
        "stateDiff": null,
        "trace": [
            {
                "type": "call",
                "action": {
                    "from": "0x147013436bd5c7def49a8e27c7fba8ac2b9dfe1f",
                    "callType": "call",
                    "gas": "0x493e0",
                    "input": "0xa9059cbb000000000000000000000000bfe465e7eb5a2928b5bf22bef93ad06089dc617900000000000000000000000000000000000000000000000000071afd498d0000",
                    "to": "0x14fea711dca8fcea6be47e14ea1406384f18c7cc",
                    "value": "0x0"
                },
                "result": {
                    "gasUsed": "0x24cd5",
                    "output": "0x00000000000000000000000002820e4bee488c40f7455fdca53125565148708f"
                },
                "subtraces": 2,
                "traceAddress": []
            },
            {
                "type": "create",
                "action": {
                    "from": "0x14fea711dca8fcea6be47e14ea1406384f18c7cc",
                    "gas": "0x3b820",
                    "init": "0x6060604052604051606080610a448339016040526060805190602001805190602001805190602001505b82600060006101000a81548173ffffffffffffffffffffffffffffffffffffffff0219169083021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff02191690830217905550806002600050819055505b5050506109a88061009c6000396000f30060606040523615610074576000357c0100000000000000000000000000000000000000000000000000000000900480630fe65b361461007657806366d003ac146100b357806386d1a69f146100ea5780638da5cb5b146100f7578063b91d40011461012e578063ea8a1af01461014f57610074565b005b610087600480359060200150610291565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100be600450610182565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100f56004506101b1565b005b61010260045061015c565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101396004506101a8565b6040518082815260200191505060405180910390f35b61015a6004506101fd565b005b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026000505481565b600260005054421015156101fa57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b5b565b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561028e57600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b5b565b600060006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156103b25760009150600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16823073ffffffffffffffffffffffffffffffffffffffff1631866040516105ed806103bb833901808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001945050505050604051809103906000f090508073ffffffffffffffffffffffffffffffffffffffff16ff8092506103b3565b5b5050919050560060606040526040516080806105ed8339016040526060805190602001805190602001805190602001805190602001505b83600060006101000a81548173ffffffffffffffffffffffffffffffffffffffff0219169083021790555082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff0219169083021790555081600260005081905550806003600050819055505b50505050610540806100ad6000396000f3006060604052361561008a576000357c010000000000000000000000000000000000000000000000000000000090048063119f87471461008c57806329dcb0cf146100995780633c24b7d7146100ba578063552079dc146100fe57806366d003ac14610135578063702c35fb1461016c57806386d1a69f1461018d578063c9e7e29b1461019a5761008a565b005b6100976004506102cc565b005b6100a4600450610210565b6040518082815260200191505060405180910390f35b6100cb600480359060200150610219565b604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b6101096004506101bb565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101406004506101e1565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61017760045061026f565b6040518082815260200191505060405180910390f35b610198600450610278565b005b6101a5600450610207565b6040518082815260200191505060405180910390f35b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026000505481565b60036000505481565b60046000508181548110156100025790600052602060002090600202016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160005054905082565b60056000505481565b600360005054421015156102c95761028e610497565b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b5b565b60003411156104945760406040519081016040528033815260200134815260200150600460005060046000508054809190600101909081548183558181151161037857600202816002028360005260206000209182019101610377919061032e565b808211156103735760006000820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560018201600050600090555060010161032e565b5090565b5b505050815481101561000257906000526020600020906002020160005060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff02191690830217905550602082015181600101600050559050503460056000828282505401925050819055507f8fc4de83eddb2e6be67e269b8bfdc735778c7339168d5f734290f474f5647e143334604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a160026000505460056000505410151561049357610458610497565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b5b5b565b60006000600091505b60046000505482101561053b57600460005082815481101561000257906000526020600020906002020160005090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008260010160005054604051809050600060405180830381858888f19350505050505b81806001019250506104a0565b5b50505600000000000000000000000014fea711dca8fcea6be47e14ea1406384f18c7cc000000000000000000000000bfe465e7eb5a2928b5bf22bef93ad06089dc61790000000000000000000000000000000000000000000000000000000055fa171f",
                    "value": "0x0"
                },
                "result": {
                    "address": "0x02820e4bee488c40f7455fdca53125565148708f",
                    "code": "0x",
                    "gasUsed": "0xedac"
                },
                "subtraces": 0,
                "traceAddress": [
                    0
                ]
            },
            {
                "type": "call",
                "action": {
                    "from": "0x14fea711dca8fcea6be47e14ea1406384f18c7cc",
                    "callType": "call",
                    "gas": "0x8fc",
                    "input": "0x",
                    "to": "0x02820e4bee488c40f7455fdca53125565148708f",
                    "value": "0x71afd498d0000"
                },
                "result": {
                    "gasUsed": "0x0",
                    "output": "0x"
                },
                "subtraces": 0,
                "traceAddress": [
                    1
                ]
            }
        ],
        "vmTrace": null
    },
    "id": 1
}

reth.json

Actual behaviour

Erigon incorrectly reports that the bytcode assigned to 0x02820e4bee488c40f7455fdca53125565148708f by the CREATE call is not equal to "0x."

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "output": "0x00000000000000000000000002820e4bee488c40f7455fdca53125565148708f",
        "stateDiff": null,
        "trace": [
            {
                "action": {
                    "from": "0x147013436bd5c7def49a8e27c7fba8ac2b9dfe1f",
                    "callType": "call",
                    "gas": "0x43988",
                    "input": "0xa9059cbb000000000000000000000000bfe465e7eb5a2928b5bf22bef93ad06089dc617900000000000000000000000000000000000000000000000000071afd498d0000",
                    "to": "0x14fea711dca8fcea6be47e14ea1406384f18c7cc",
                    "value": "0x0"
                },
                "result": {
                    "gasUsed": "0x1f27d",
                    "output": "0x00000000000000000000000002820e4bee488c40f7455fdca53125565148708f"
                },
                "subtraces": 2,
                "traceAddress": [],
                "type": "call"
            },
            {
                "action": {
                    "from": "0x14fea711dca8fcea6be47e14ea1406384f18c7cc",
                    "gas": "0x3b820",
                    "init": "0x6060604052604051606080610a448339016040526060805190602001805190602001805190602001505b82600060006101000a81548173ffffffffffffffffffffffffffffffffffffffff0219169083021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff02191690830217905550806002600050819055505b5050506109a88061009c6000396000f30060606040523615610074576000357c0100000000000000000000000000000000000000000000000000000000900480630fe65b361461007657806366d003ac146100b357806386d1a69f146100ea5780638da5cb5b146100f7578063b91d40011461012e578063ea8a1af01461014f57610074565b005b610087600480359060200150610291565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100be600450610182565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100f56004506101b1565b005b61010260045061015c565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101396004506101a8565b6040518082815260200191505060405180910390f35b61015a6004506101fd565b005b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026000505481565b600260005054421015156101fa57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b5b565b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561028e57600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b5b565b600060006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156103b25760009150600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16823073ffffffffffffffffffffffffffffffffffffffff1631866040516105ed806103bb833901808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001945050505050604051809103906000f090508073ffffffffffffffffffffffffffffffffffffffff16ff8092506103b3565b5b5050919050560060606040526040516080806105ed8339016040526060805190602001805190602001805190602001805190602001505b83600060006101000a81548173ffffffffffffffffffffffffffffffffffffffff0219169083021790555082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff0219169083021790555081600260005081905550806003600050819055505b50505050610540806100ad6000396000f3006060604052361561008a576000357c010000000000000000000000000000000000000000000000000000000090048063119f87471461008c57806329dcb0cf146100995780633c24b7d7146100ba578063552079dc146100fe57806366d003ac14610135578063702c35fb1461016c57806386d1a69f1461018d578063c9e7e29b1461019a5761008a565b005b6100976004506102cc565b005b6100a4600450610210565b6040518082815260200191505060405180910390f35b6100cb600480359060200150610219565b604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b6101096004506101bb565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101406004506101e1565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61017760045061026f565b6040518082815260200191505060405180910390f35b610198600450610278565b005b6101a5600450610207565b6040518082815260200191505060405180910390f35b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026000505481565b60036000505481565b60046000508181548110156100025790600052602060002090600202016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160005054905082565b60056000505481565b600360005054421015156102c95761028e610497565b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b5b565b60003411156104945760406040519081016040528033815260200134815260200150600460005060046000508054809190600101909081548183558181151161037857600202816002028360005260206000209182019101610377919061032e565b808211156103735760006000820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560018201600050600090555060010161032e565b5090565b5b505050815481101561000257906000526020600020906002020160005060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff02191690830217905550602082015181600101600050559050503460056000828282505401925050819055507f8fc4de83eddb2e6be67e269b8bfdc735778c7339168d5f734290f474f5647e143334604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a160026000505460056000505410151561049357610458610497565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b5b5b565b60006000600091505b60046000505482101561053b57600460005082815481101561000257906000526020600020906002020160005090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008260010160005054604051809050600060405180830381858888f19350505050505b81806001019250506104a0565b5b50505600000000000000000000000014fea711dca8fcea6be47e14ea1406384f18c7cc000000000000000000000000bfe465e7eb5a2928b5bf22bef93ad06089dc61790000000000000000000000000000000000000000000000000000000055fa171f",
                    "value": "0x0"
                },
                "result": {
                    "address": "0x02820e4bee488c40f7455fdca53125565148708f",
                    "code": "0x60606040523615610074576000357c0100000000000000000000000000000000000000000000000000000000900480630fe65b361461007657806366d003ac146100b357806386d1a69f146100ea5780638da5cb5b146100f7578063b91d40011461012e578063ea8a1af01461014f57610074565b005b610087600480359060200150610291565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100be600450610182565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100f56004506101b1565b005b61010260045061015c565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101396004506101a8565b6040518082815260200191505060405180910390f35b61015a6004506101fd565b005b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026000505481565b600260005054421015156101fa57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b5b565b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561028e57600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b5b565b600060006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156103b25760009150600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16823073ffffffffffffffffffffffffffffffffffffffff1631866040516105ed806103bb833901808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001945050505050604051809103906000f090508073ffffffffffffffffffffffffffffffffffffffff16ff8092506103b3565b5b5050919050560060606040526040516080806105ed8339016040526060805190602001805190602001805190602001805190602001505b83600060006101000a81548173ffffffffffffffffffffffffffffffffffffffff0219169083021790555082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff0219169083021790555081600260005081905550806003600050819055505b50505050610540806100ad6000396000f3006060604052361561008a576000357c010000000000000000000000000000000000000000000000000000000090048063119f87471461008c57806329dcb0cf146100995780633c24b7d7146100ba578063552079dc146100fe57806366d003ac14610135578063702c35fb1461016c57806386d1a69f1461018d578063c9e7e29b1461019a5761008a565b005b6100976004506102cc565b005b6100a4600450610210565b6040518082815260200191505060405180910390f35b6100cb600480359060200150610219565b604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b6101096004506101bb565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101406004506101e1565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61017760045061026f565b6040518082815260200191505060405180910390f35b610198600450610278565b005b6101a5600450610207565b6040518082815260200191505060405180910390f35b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026000505481565b60036000505481565b60046000508181548110156100025790600052602060002090600202016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160005054905082565b60056000505481565b600360005054421015156102c95761028e610497565b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b5b565b60003411156104945760406040519081016040528033815260200134815260200150600460005060046000508054809190600101909081548183558181151161037857600202816002028360005260206000209182019101610377919061032e565b808211156103735760006000820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560018201600050600090555060010161032e565b5090565b5b505050815481101561000257906000526020600020906002020160005060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff02191690830217905550602082015181600101600050559050503460056000828282505401925050819055507f8fc4de83eddb2e6be67e269b8bfdc735778c7339168d5f734290f474f5647e143334604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a160026000505460056000505410151561049357610458610497565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b5b5b565b60006000600091505b60046000505482101561053b57600460005082815481101561000257906000526020600020906002020160005090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008260010160005054604051809050600060405180830381858888f19350505050505b81806001019250506104a0565b5b505056",
                    "gasUsed": "0xedac"
                },
                "subtraces": 0,
                "traceAddress": [
                    0
                ],
                "type": "create"
            },
            {
                "action": {
                    "from": "0x14fea711dca8fcea6be47e14ea1406384f18c7cc",
                    "callType": "call",
                    "gas": "0x8fc",
                    "input": "0x",
                    "to": "0x02820e4bee488c40f7455fdca53125565148708f",
                    "value": "0x71afd498d0000"
                },
                "result": {
                    "gasUsed": "0x0",
                    "output": "0x"
                },
                "subtraces": 0,
                "traceAddress": [
                    1
                ],
                "type": "call"
            }
        ],
        "vmTrace": null,
        "transactionHash": "0x9da5e2c5da5e44fbe867d4784f2a935139028efe58b1d31b7884d55551478ec8"
    }
}

erigon.json

Steps to reproduce the behaviour

Execute the below command to fetch the transaction trace from Erigon & Reth.

curl -H "Content-Type: application/json" -X POST --data '{
    "jsonrpc":"2.0",
    "method":"trace_replayTransaction",
    "params":["0x9da5e2c5da5e44fbe867d4784f2a935139028efe58b1d31b7884d55551478ec8", ["trace"]],
    "id":1
}' http://192.168.2.215:8545

Backtrace

[backtrace]
Robert-MacWha commented 4 months ago

This might be because of my lack of EVM knowledge, but looking at the decompiled byte code. It seems like it should be returning non-zero in the create call?

contract Contract {
    function main() {
        memory[0x40:0x60] = 0x60;
        var temp0 = memory[0x40:0x60];
        memory[temp0:temp0 + 0x60] = code[0x0a44:0x0aa4];
        memory[0x40:0x60] = temp0 + 0x60;
        storage[0x00] = memory[0x60:0x80] | (storage[0x00] & ~0xffffffffffffffffffffffffffffffffffffffff);
        storage[0x01] = memory[0x80:0xa0] | (storage[0x01] & ~0xffffffffffffffffffffffffffffffffffffffff);
        storage[0x02] = memory[0xa0:0xc0];
        memory[0x00:0x09a8] = code[0x9c:0x0a44];
        return memory[0x00:0x09a8];
    }
}

The last two lines are memory[0x00:0x09a8] = code[0x9c:0x0a44]; and return memory[0x00:0x09a8];. The init bytecode should thus be copying the rest of the bytes into the runtime code, right?

https://ethervm.io/decompile

6060604052604051606080610a448339016040526060805190602001805190602001805190602001505b82600060006101000a81548173ffffffffffffffffffffffffffffffffffffffff0219169083021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff02191690830217905550806002600050819055505b5050506109a88061009c6000396000f30060606040523615610074576000357c0100000000000000000000000000000000000000000000000000000000900480630fe65b361461007657806366d003ac146100b357806386d1a69f146100ea5780638da5cb5b146100f7578063b91d40011461012e578063ea8a1af01461014f57610074565b005b610087600480359060200150610291565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100be600450610182565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100f56004506101b1565b005b61010260045061015c565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101396004506101a8565b6040518082815260200191505060405180910390f35b61015a6004506101fd565b005b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026000505481565b600260005054421015156101fa57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b5b565b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561028e57600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b5b565b600060006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156103b25760009150600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16823073ffffffffffffffffffffffffffffffffffffffff1631866040516105ed806103bb833901808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001945050505050604051809103906000f090508073ffffffffffffffffffffffffffffffffffffffff16ff8092506103b3565b5b5050919050560060606040526040516080806105ed8339016040526060805190602001805190602001805190602001805190602001505b83600060006101000a81548173ffffffffffffffffffffffffffffffffffffffff0219169083021790555082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff0219169083021790555081600260005081905550806003600050819055505b50505050610540806100ad6000396000f3006060604052361561008a576000357c010000000000000000000000000000000000000000000000000000000090048063119f87471461008c57806329dcb0cf146100995780633c24b7d7146100ba578063552079dc146100fe57806366d003ac14610135578063702c35fb1461016c57806386d1a69f1461018d578063c9e7e29b1461019a5761008a565b005b6100976004506102cc565b005b6100a4600450610210565b6040518082815260200191505060405180910390f35b6100cb600480359060200150610219565b604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b6101096004506101bb565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101406004506101e1565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61017760045061026f565b6040518082815260200191505060405180910390f35b610198600450610278565b005b6101a5600450610207565b6040518082815260200191505060405180910390f35b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026000505481565b60036000505481565b60046000508181548110156100025790600052602060002090600202016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160005054905082565b60056000505481565b600360005054421015156102c95761028e610497565b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b5b565b60003411156104945760406040519081016040528033815260200134815260200150600460005060046000508054809190600101909081548183558181151161037857600202816002028360005260206000209182019101610377919061032e565b808211156103735760006000820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560018201600050600090555060010161032e565b5090565b5b505050815481101561000257906000526020600020906002020160005060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff02191690830217905550602082015181600101600050559050503460056000828282505401925050819055507f8fc4de83eddb2e6be67e269b8bfdc735778c7339168d5f734290f474f5647e143334604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a160026000505460056000505410151561049357610458610497565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b5b5b565b60006000600091505b60046000505482101561053b57600460005082815481101561000257906000526020600020906002020160005090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008260010160005054604051809050600060405180830381858888f19350505050505b81806001019250506104a0565b5b50505600000000000000000000000014fea711dca8fcea6be47e14ea1406384f18c7cc000000000000000000000000bfe465e7eb5a2928b5bf22bef93ad06089dc61790000000000000000000000000000000000000000000000000000000055fa171f

But the on-chain state is definitely 0x and there were no other transactions made to 0x02820E4bEE488C40f7455fDCa53125565148708F:

curl -H "Content-Type: application/json" -X POST --data '{
    "jsonrpc":"2.0",
    "method":"eth_getCode",
    "params":["0x02820E4bEE488C40f7455fDCa53125565148708F", "latest"],
    "id":1
}' http://192.168.2.212:8545

{"jsonrpc":"2.0","result":"0x","id":1}%
Robert-MacWha commented 4 months ago

Seems like this bug only affects ~2 transactions from the pre-homestead days. Results from the fact that "CREATE" calls would silently fail without reverting if there wasn't enough gas. Doesn't feel worthwhile to clutter the codebase with a fix for a single-digit number of instances that don't impact the current chain state, so I'd say this can be closed. Will leave open for someone else to take a look at in case people have strong opinions.