Repository navigation
Record journal-driven fees around the root call (Base 0x79) - #74
Merged
Merged
Conversation
Base's account abstraction transactions charge a payer, write protocol state before the root call and settle fees after it, all on the journal. A per-transaction RootJournalReasons records those writes with the right reasons instead of the gas accounting derived from the caller.
The EVM context does not hold the transaction yet when the hook runs, so a chain could not read fields the envelope-derived event does not carry.
Base rolls back a failed account abstraction phase after its calls returned, then settles fees outside any call, so the journal can grow back past the processed position over entries never processed.
The block's system calls leave the journal positions behind.
sduchesneau
added this pull request to stack #76
October 20, 2026 20:09
sduchesneau
marked this pull request as ready for review
October 20, 2026 20:14
billettc
approved these changes
Oct 21, 2026
sduchesneau
added a commit
to streamingfast/base
that referenced
this pull request
Oct 21, 2026
Temporary until streamingfast/evm-firehose-tracer-rs#38 and streamingfast/reth#74 are released.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Base's account abstraction transactions (type
0x79) charge a payer, apply account changes, increment nonces and emit protocol logs on the journal before the root call, then refund the payer and credit the fee recipients after the last call. The inspector skipped the pre-root journal and derived gas purchase, refund and tip from the caller, so all of that was lost or misattributed.RootJournalReasons, set per transaction throughFirehoseInspectorApi::set_root_journal_reasons(from the chain'sPreTxAdjust). For that transaction the inspector replays the pre-root journal (balances, nonces, code, storage, logs) inside the root call, labels balance changes read outside the calls below the root with the configured reasons, and synthesizes no gas purchase, refund or reward.PreTxAdjust::adjust_tx_eventreceives the transaction env: the EVM context does not hold it yet when the hook runs.account_abstraction_trx_input: None; the chain fills it.firehose-tracerpoints at Trace account abstraction transactions (type 0x79) evm-firehose-tracer-rs#38 (5.7.0,TxType::AccountAbstraction).Before merge: merge #75 first; it switches
firehose-tracerto the crates.io release5.7.0. This branch alone still points at a tracer branch that was deleted after its merge.Consumed by the matching streamingfast/base PR. Plan: streamingfast/base#24.