ethereum / evmone

Fast Ethereum Virtual Machine implementation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

evmone-statetest crashes when the transaction sender account does not exist

holiman opened this issue · comments

Note: executed on the branch with goevmlab-modifications

/home/martin/workspace/evmone-statetest --trace /tmp/00015509-mixed-0.json.min
Note: Google Test filter = -stCreateTest.CreateOOGafterMaxCodesize:stQuadraticComplexityTest.Call50000_sha256:stTimeConsuming.static_Call50000_sha256:stTimeConsuming.CALLBlake2f_MaxRounds:VMTests/vmPerformance.*:
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from /tmp
[ RUN      ] /tmp.00015509-mixed-0.json
Segmentation fault (core dumped)

00015509-mixed-0.json.min:

{
  "00015509-mixed-0": {
    "env": {
      "currentCoinbase": "b94f5374fce5edbc8e2a8697c15331677e6ebf0b",
      "currentDifficulty": "0x200000",
      "currentRandom": "0x0000000000000000000000000000000000000000000000000000000000020000",
      "currentGasLimit": "0x26e1f476fe1e22",
      "currentNumber": "0x1",
      "currentTimestamp": "0x3e8",
      "previousHash": "0x044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
      "currentBaseFee": "0x10"
    },
    "pre": {
      "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
        "code": "0x",
        "storage": {},
        "balance": "0xffffffffff",
        "nonce": "0x0"
      }
    },
    "transaction": {
      "gasPrice": "0x10",
      "nonce": "0x0",
      "to": "0x00000000000000000000000000000000000000f1",
      "data": [
        "0x12696e68052afe90de6e5820c13453a7f6490ff854b1e41100aec1408b8dbceb68a5e696bc7f38e60b0d34925b3ae774d0dd279db8652c1ac0b4b13c439e41f39b28d1734a2cb50b2cb19191afdce3684d64"
      ],
      "gasLimit": [
        "0x571c"
      ],
      "value": [
        "0x"
      ],
      "sender": "0x0000000000000000000000000000000000000000",
      "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8"
    },
    "out": "0x",
    "post": {
      "Merge": [
        {
          "hash": "0x0000000000000000000000000000000000000000000000000000000000000000",
          "logs": "0x0000000000000000000000000000000000000000000000000000000000000000",
          "indexes": {
            "data": 0,
            "gas": 0,
            "value": 0
          }
        }
      ]
    }
  }
}

Thanks for the report.

This is because we so far assumed that the transaction sender account must have existed. This assumption is wrong.
This will be fixed by #684.