Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error when running debug_traceTransaction on chain fork from Base and Base Sepolia #570

Open
PiotrRumblefish opened this issue Jul 30, 2024 · 4 comments
Assignees

Comments

@PiotrRumblefish
Copy link

PiotrRumblefish commented Jul 30, 2024

When trying to run anything on base / base sepolia, I'm getting "Invalid transaction: GasPriceLessThanBasefee" error from https://github.com/NomicFoundation/revm/blob/aceb0939b1712faa0e8f45c1f5621c11b81df94e/crates/primitives/src/env.rs#L333

example:
0xe565eb3bfd815efcc82bed1eef580117f9dc3d6896db42500572c8e789c5edd4
chainId: 84532

way to reproduce: https://github.com/rumblefishdev/edr-issues-570-reproduce

@github-project-automation github-project-automation bot moved this to Unconfirmed in EDR Jul 30, 2024
@PiotrRumblefish PiotrRumblefish changed the title Invalid transaction: GasPriceLessThanBasefee Error when running debug_traceTransaction on chain fork from Base and Base Sepolia Jul 30, 2024
@fvictorio fvictorio moved this from Unconfirmed to Todo in EDR Aug 5, 2024
@agostbiro agostbiro self-assigned this Aug 5, 2024
@agostbiro
Copy link
Member

Created Rust repro: https://github.com/NomicFoundation/edr/blob/be9033933c6e1185a285310b6a799d4af72d67dd/crates/edr_provider/tests/issues/issue_570.rs

@fvictorio
Copy link
Member

Hi @PiotrRumblefish. The problem here and in #595 is that the debugged txs are in a block that contains unsupported transaction types. The error message should be better though (I opened #597 for that).

The underlying issue is that, to use debug_traceTransaction with a transaction, you need to re-run all the previous transactions in the block. If those transactions have unsupported types (which is very common in L2s), then we can't re-run them. We could skip them, but that might result in the debugged transaction being executed in a different way, and we'd rather fail than give misleading results.

We are working on having better support for L2s, which will help with issues like this. I don't have an ETA though because it's a big ongoing effort.

@kowalski
Copy link

@fvictorio actually for our usecase I think it would be sufficient if an option like unsafe_skipUnsupportedTransactionTypes: true were added in chain config. I understand the argument that the transaction preceding our transaction in the block could have influenced the storage we touch, but in the wild this situation would be rare so it would be a good workaround and something you could possibly put together way quicker than full support for everything

@fvictorio
Copy link
Member

That's a good point @kowalski, thanks! I opened #601 for that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Blocked
Development

No branches or pull requests

4 participants