Skip to content

fix(op-e2e): price L2 transactions from eth_gasPrice - #2

Merged
ywy2090 merged 3 commits into
mainfrom
fix/op-e2e-legacy-fee-for-the-removed-feehistory
Sep 15, 2026
Merged

ywy2090 merged 3 commits into
mainfrom
fix/op-e2e-legacy-fee-for-the-removed-feehistory

Conversation

@ywy2090

@ywy2090 ywy2090 commented Sep 15, 2026

Copy link
Copy Markdown
Collaborator

The node no longer serves eth_feeHistory: FISCO-BCOS/FISCO-BCOS#5593 removed it and the
implementation waits on its own follow-up PR (preserved on feat/fee-history-eip1559). cast's
EIP-1559 fee suggestion calls that method on every cast send, so the L2 sends in the withdraw,
l2_tx_scenarios and xdm legs failed with -32601 Method not found before broadcasting — which
is what the node repo's per-PR C2 leg has been failing on since that removal.

Changes:

  • withdraw_e2e.sh, l2_tx_scenarios.sh, xdm_e2e.sh: the L2 cast send calls pass --legacy,
    which prices them from eth_gasPrice — implemented on every lane of the node. L1 calls (anvil)
    are untouched.
  • rpc_matrix.py: the R2b feeHistory assertions now use call_optional, so a node that answers
    -32601 gets a printed SKIP (the treatment eth_config already gets) instead of a red. The
    shape assertions still run wherever the method IS served, so the tier keeps its teeth for the
    node's follow-up PR.

Local checks: bash -n on the three scripts, py_compile on rpc_matrix.py,
python3 -m unittest discover -s tools/op-e2e/tests (9 tests, OK).

The node repo pins this repo by SHA; once this lands there, bump that pin to the merge commit
(it is temporarily pointed at this branch's commit so the per-PR C2 leg can turn green on the fix).

The node no longer serves eth_feeHistory (FISCO-BCOS/FISCO-BCOS#5593 removed it; the
implementation waits on its own follow-up PR), and cast's EIP-1559 fee suggestion calls
that method on every `cast send`. The L2 sends in the withdraw, l2_tx_scenarios and xdm
legs therefore failed with -32601 before broadcasting.

--legacy prices those transactions from eth_gasPrice, which every lane of the node
implements. rpc_matrix's R2b feeHistory assertions become a printed SKIP when the method
is absent (the same treatment eth_config already gets), so the tier keeps its teeth
wherever the method is served and the nighty full run does not red on a deferred method.
ywy2090 added a commit to ywy2090/FISCO-BCOS that referenced this pull request Sep 15, 2026
…acy exclusions

* The harness pin moves to the commit that prices L2 transactions with --legacy
  (FISCO-BCOS/op-stack-e2e-tests#2). This node's method set has no eth_feeHistory and cast's
  fee suggestion calls it on every `cast send`, which is exactly the -32601 the per-PR C2 leg
  has been failing on; rpc_matrix's R2b assertions become a printed SKIP there. The pin is that
  PR's branch commit until it lands — replace it with the merge commit then.
* ci_opnode_startup_check.sh gains REQUIRE_HARNESS: its missing-harness SKIP (documented, and
  safe to wire before the toolchain carries op-node) stays the default, but a caller that does
  check the harness out can now demand a run that measured something. Same shape as run-all.sh's
  REQUIRE_DEVNET.
* .codacy.yml listed no exclusions under a comment describing the C2 e2e tooling it points the
  analyzer away from; the in-repo entrypoints and helpers are now listed.
ywy2090 added a commit to ywy2090/FISCO-BCOS that referenced this pull request Sep 15, 2026
…s knobs

Round 11 N2: the pin pointed at FISCO-BCOS/op-stack-e2e-tests#2's branch tip, which a rebase
or a closed PR takes away — the workflows would then fail deterministically for every later
run. Keep it on that repository's default branch and bump it to #2's merge commit when that
lands (the --legacy L2 pricing this node needs is #2's subject).

Round 11 N3: REQUIRE_HARNESS and REQUIRE_DEVNET were set by nobody, so the "reports green
without measuring anything" behaviour they were added for was unchanged; the SKIP lines are
the signal and the step names say so. Drop the knobs and say that in the headers instead of
leaving a switch no caller sets.
The fee-boundary suite's send_async is invoked without a fee flag for its ordering
probes; cast then falls back to its EIP-1559 suggestion and calls eth_feeHistory, which
this node does not serve. Default those sends to --legacy (eth_gasPrice), and leave the
cases that name their own fee style alone — they are the suite's subject.
The runner's inline L2 sends (the CONTEST=1 contest withdrawal and the MATRIX=1
funding send) carry no fee flag, so cast falls back to its EIP-1559 suggestion and
calls eth_feeHistory, which this node does not serve: the nightly leg died with
-32601 "Method not found" right after the withdraw phase went green locally. The
per-PR smoke (CONTEST=0, MATRIX=0) never reaches either send, which is why only the
nightly path showed it.

Found while verifying the engine fix that made the withdraw leg pass: the same run
reported E2E ALL GREEN for the withdraw+claim lifecycle and then -32601 here.
@ywy2090
ywy2090 merged commit 0451c8b into main Sep 15, 2026
2 checks passed
ywy2090 added a commit to ywy2090/FISCO-BCOS that referenced this pull request Sep 15, 2026
FISCO-BCOS/op-stack-e2e-tests#2 (--legacy L2 pricing for a node without eth_feeHistory)
is merged, so both c2_e2e jobs can pin its merge commit instead of a PR branch tip —
the stable revision the review asked for, and it carries the fee-path fixes the per-PR
smoke and the nightly legs need.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant