Skip to content

Match transaction exception reasons in state and blockchain tests #1557

Description

@chfast

Neither test runner verifies the transaction rejection reason against the fixture's expectException:

  • statetest: expectException is reduced to a bool at load (o.exception = j.contains("expectException")); the runner only asserts the tx was rejected and the state root matches.
  • blockchaintest: an invalid block caused by a tx just continues on any rejection (if (!res.rejected.empty()) continue;) without comparing the reason.

So a transaction rejected for the wrong reason still passes. We now match block-level reasons (#1556); we should do the same for TransactionException.*.

Needs a mapping from evmone's tx ErrorCode (plain geth-style messages) to EEST TransactionException.* constants — those messages can't simply be renamed since t8n/state-test output relies on the geth-compatible form.

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions