Skip to content

Fix Time and BlockNumber used by CeloBackend#484

Merged
karlb merged 2 commits intocelo-rebase-16from
karlb/celobackend-push0
Mar 4, 2026
Merged

Fix Time and BlockNumber used by CeloBackend#484
karlb merged 2 commits intocelo-rebase-16from
karlb/celobackend-push0

Conversation

@karlb
Copy link

@karlb karlb commented Mar 4, 2026

karlb and others added 2 commits March 4, 2026 15:21
CeloBackend hardcoded both BlockNumber and Time to 0 in the EVM
BlockContext, causing the EVM to evaluate chain rules at genesis.
With timestamp-activated forks (e.g. Cel2), contracts using
post-fork opcodes (like PUSH0) would fail when called through
CeloBackend, surfacing as nil fee currency balances.

Add BlockNumber and Time fields to CeloBackend and populate them
from the appropriate block context at all 9 call sites.
This was referenced Mar 4, 2026
@karlb karlb marked this pull request as ready for review March 4, 2026 15:00
@karlb karlb merged commit 064e7df into celo-rebase-16 Mar 4, 2026
6 checks passed
@karlb karlb deleted the karlb/celobackend-push0 branch March 4, 2026 15:49
karlb added a commit to celo-org/celo-kona that referenced this pull request Mar 4, 2026
Regression test for celo-org/op-geth#484 where fee currency contract
calls used a pre-Shanghai EVM configuration, causing PUSH0 (EIP-3855)
to fail. Contracts compiled with Solidity >= 0.8.20 emit PUSH0 by
default, so debitGasFees/creditGasFees calls would fail.

celo-kona is not affected because the spec is set explicitly via CfgEnv,
but this test guards against future regressions using the real Mento
StableTokenV2 (USDm) bytecode from Celo mainnet.
karlb added a commit to celo-org/celo-kona that referenced this pull request Mar 4, 2026
Regression test for celo-org/op-geth#484 where fee currency contract
calls used a pre-Shanghai EVM configuration, causing PUSH0 (EIP-3855)
to fail. Contracts compiled with Solidity >= 0.8.20 emit PUSH0 by
default, so debitGasFees/creditGasFees calls would fail.

celo-kona is not affected because the spec is set explicitly via CfgEnv,
but this test guards against future regressions using the real Mento
StableTokenV2 (USDm) bytecode from Celo mainnet.
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.

2 participants