feat: Monad-style 30M per-tx gas cap under Osaka (#392)#401
Conversation
Gravity replaces EIP-7825's 2^24 per-tx gas cap with a flat Monad-style 30M cap (TFM_MAX_GAS_LIMIT) once Osaka activates. The 30M matches the system-transaction gas_limit exactly, so the boundary admits them and the separate system-tx gas gating (Galxe#392 P2) is no longer needed. Enforced in lockstep at three Osaka-gated sites off a single constant GRAVITY_TX_GAS_LIMIT_CAP: the executor cfg (tx_gas_limit_cap), the consensus block check, and the pipe tx_filter guard, so a self-produced block admitted by one path is never rejected on another. Dormant today (no osakaTime).
d2d82a5 to
e5bb76e
Compare
💡 Codex ReviewThis commit updates AGENTS.md reference: AGENTS.md:L157-L165 ℹ️ About Codex in GitHubCodex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback". |
Refs #392.
Under Osaka, Gravity uses a flat Monad-style 30M per-tx gas cap (
TFM_MAX_GAS_LIMIT)instead of EIP-7825's
2^24. This deviates from the issue's original 2^24 design onpurpose: 30M equals the system-transaction
gas_limit, so the boundary admits them and#392's separate system-tx gas gating (P2) is no longer needed.
Enforced in lockstep off one constant
GRAVITY_TX_GAS_LIMIT_CAPat three Osaka-gatedsites — the executor cfg (
tx_gas_limit_cap), the consensus block check, and the pipetx_filterguard — so a self-produced block admitted by one path is never rejected onanother. Dormant until
osakaTime.Not included (separate follow-ups): the cross-Osaka e2e acceptance, and #392's incidental
revm-bump debt (
nonce == u64::MAXguard, tx_filter header rewrite).