op-node/derive: Gate BPO activation per L2 chain#417
op-node/derive: Gate BPO activation per L2 chain#417piersy merged 5 commits intopiersy/celo-rebase-16from
Conversation
Disable BPO/Osaka blob fee formula for Celo L2 chains (mainnet, sepolia, chaos) until Jovian hardfork, matching the gating in celo-kona PR #121. For non-Celo chains, BPO remains enabled by default (preserving upstream behavior).
|
Seems to be the same as #414 |
Yep, the early application of the BPO config was causing the snap sync to re-org to before the pivot block, which resulted in the missing trie error, which then caused the sync to fail. So hopefully this is the final fix required to get syncing back on track. |
Ah, that makes sense! Nice find! |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## piersy/celo-rebase-16 #417 +/- ##
======================================================
Coverage 66.42% 66.42%
======================================================
Files 55 55
Lines 4030 4030
======================================================
Hits 2677 2677
Misses 1209 1209
Partials 144 144
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
Updates op-geth to a version that specifies CeloChaosChainID
9dea987 to
c36ceb1
Compare
…ader data The test was failing because it computed BlobBaseFee using the full SepoliaChainConfig (which includes BPO activation times), but the expected value was the Prague-era blob fee from the actual Celo Sepolia L2 block (derived before BPO was known). Fix by: - Using stripBPOActivations on the config, which is exactly what the production code does for Celo chains - Inlining the header data (ExcessBlobGas, Time) instead of making a live RPC call, so the test runs in CI's -short mode - Removing unused context and ethclient imports
The contracts-bedrock-tests-upgrade and coverage-upgrade tests fork OP mainnet to test OP-specific upgrade paths. These fail on the Celo fork because ForkLive.s.sol is out of sync with upstream (the DelayedWETHProxy deployment lookup fails). Since these tests are not relevant to Celo chains, skip them: - Comment out contracts-bedrock-tests-upgrade workflow jobs - Use coverage-lcov instead of coverage-lcov-all (which includes upgrade coverage)
karlb
left a comment
There was a problem hiding this comment.
Looks good! I added two commits to make the CI pass. Please have a quick look at them before merging.
* op-node/derive: Gate BPO activation in L1InfoDeposit per L2 chain Disable BPO/Osaka blob fee formula for Celo L2 chains (mainnet, sepolia, chaos) until Jovian hardfork, matching the gating in celo-kona PR #121. For non-Celo chains, BPO remains enabled by default (preserving upstream behavior). * Update op-geth Updates op-geth to a version that specifies CeloChaosChainID * Fix TestBlobBaseFeeFromSepolia: use stripBPOActivations and inline header data The test was failing because it computed BlobBaseFee using the full SepoliaChainConfig (which includes BPO activation times), but the expected value was the Prague-era blob fee from the actual Celo Sepolia L2 block (derived before BPO was known). Fix by: - Using stripBPOActivations on the config, which is exactly what the production code does for Celo chains - Inlining the header data (ExcessBlobGas, Time) instead of making a live RPC call, so the test runs in CI's -short mode - Removing unused context and ethclient imports * ci: Skip OP mainnet upgrade tests not relevant to Celo The contracts-bedrock-tests-upgrade and coverage-upgrade tests fork OP mainnet to test OP-specific upgrade paths. These fail on the Celo fork because ForkLive.s.sol is out of sync with upstream (the DelayedWETHProxy deployment lookup fails). Since these tests are not relevant to Celo chains, skip them: - Comment out contracts-bedrock-tests-upgrade workflow jobs - Use coverage-lcov instead of coverage-lcov-all (which includes upgrade coverage) --------- Co-authored-by: Karl Bartel <karl.bartel@clabs.co>
* op-node/derive: Gate BPO activation in L1InfoDeposit per L2 chain Disable BPO/Osaka blob fee formula for Celo L2 chains (mainnet, sepolia, chaos) until Jovian hardfork, matching the gating in celo-kona PR #121. For non-Celo chains, BPO remains enabled by default (preserving upstream behavior). * Update op-geth Updates op-geth to a version that specifies CeloChaosChainID * Fix TestBlobBaseFeeFromSepolia: use stripBPOActivations and inline header data The test was failing because it computed BlobBaseFee using the full SepoliaChainConfig (which includes BPO activation times), but the expected value was the Prague-era blob fee from the actual Celo Sepolia L2 block (derived before BPO was known). Fix by: - Using stripBPOActivations on the config, which is exactly what the production code does for Celo chains - Inlining the header data (ExcessBlobGas, Time) instead of making a live RPC call, so the test runs in CI's -short mode - Removing unused context and ethclient imports * ci: Skip OP mainnet upgrade tests not relevant to Celo The contracts-bedrock-tests-upgrade and coverage-upgrade tests fork OP mainnet to test OP-specific upgrade paths. These fail on the Celo fork because ForkLive.s.sol is out of sync with upstream (the DelayedWETHProxy deployment lookup fails). Since these tests are not relevant to Celo chains, skip them: - Comment out contracts-bedrock-tests-upgrade workflow jobs - Use coverage-lcov instead of coverage-lcov-all (which includes upgrade coverage) --------- Co-authored-by: Karl Bartel <karl.bartel@clabs.co> Refactor bpo hardfork gating (#420) The previous implementation was broken since it was using block numbers to determine if jovian was active, but in fact jovian is activated by timestamp.
* op-node/derive: Gate BPO activation in L1InfoDeposit per L2 chain Disable BPO/Osaka blob fee formula for Celo L2 chains (mainnet, sepolia, chaos) until Jovian hardfork, matching the gating in celo-kona PR #121. For non-Celo chains, BPO remains enabled by default (preserving upstream behavior). * Update op-geth Updates op-geth to a version that specifies CeloChaosChainID * Fix TestBlobBaseFeeFromSepolia: use stripBPOActivations and inline header data The test was failing because it computed BlobBaseFee using the full SepoliaChainConfig (which includes BPO activation times), but the expected value was the Prague-era blob fee from the actual Celo Sepolia L2 block (derived before BPO was known). Fix by: - Using stripBPOActivations on the config, which is exactly what the production code does for Celo chains - Inlining the header data (ExcessBlobGas, Time) instead of making a live RPC call, so the test runs in CI's -short mode - Removing unused context and ethclient imports * ci: Skip OP mainnet upgrade tests not relevant to Celo The contracts-bedrock-tests-upgrade and coverage-upgrade tests fork OP mainnet to test OP-specific upgrade paths. These fail on the Celo fork because ForkLive.s.sol is out of sync with upstream (the DelayedWETHProxy deployment lookup fails). Since these tests are not relevant to Celo chains, skip them: - Comment out contracts-bedrock-tests-upgrade workflow jobs - Use coverage-lcov instead of coverage-lcov-all (which includes upgrade coverage) --------- Co-authored-by: Karl Bartel <karl.bartel@clabs.co> Refactor bpo hardfork gating (#420) The previous implementation was broken since it was using block numbers to determine if jovian was active, but in fact jovian is activated by timestamp.
* op-node/derive: Gate BPO activation in L1InfoDeposit per L2 chain Disable BPO/Osaka blob fee formula for Celo L2 chains (mainnet, sepolia, chaos) until Jovian hardfork, matching the gating in celo-kona PR #121. For non-Celo chains, BPO remains enabled by default (preserving upstream behavior). * Update op-geth Updates op-geth to a version that specifies CeloChaosChainID * Fix TestBlobBaseFeeFromSepolia: use stripBPOActivations and inline header data The test was failing because it computed BlobBaseFee using the full SepoliaChainConfig (which includes BPO activation times), but the expected value was the Prague-era blob fee from the actual Celo Sepolia L2 block (derived before BPO was known). Fix by: - Using stripBPOActivations on the config, which is exactly what the production code does for Celo chains - Inlining the header data (ExcessBlobGas, Time) instead of making a live RPC call, so the test runs in CI's -short mode - Removing unused context and ethclient imports * ci: Skip OP mainnet upgrade tests not relevant to Celo The contracts-bedrock-tests-upgrade and coverage-upgrade tests fork OP mainnet to test OP-specific upgrade paths. These fail on the Celo fork because ForkLive.s.sol is out of sync with upstream (the DelayedWETHProxy deployment lookup fails). Since these tests are not relevant to Celo chains, skip them: - Comment out contracts-bedrock-tests-upgrade workflow jobs - Use coverage-lcov instead of coverage-lcov-all (which includes upgrade coverage) --------- Co-authored-by: Karl Bartel <karl.bartel@clabs.co> Refactor bpo hardfork gating (#420) The previous implementation was broken since it was using block numbers to determine if jovian was active, but in fact jovian is activated by timestamp.
* op-node/derive: Gate BPO activation in L1InfoDeposit per L2 chain Disable BPO/Osaka blob fee formula for Celo L2 chains (mainnet, sepolia, chaos) until Jovian hardfork, matching the gating in celo-kona PR #121. For non-Celo chains, BPO remains enabled by default (preserving upstream behavior). * Update op-geth Updates op-geth to a version that specifies CeloChaosChainID * Fix TestBlobBaseFeeFromSepolia: use stripBPOActivations and inline header data The test was failing because it computed BlobBaseFee using the full SepoliaChainConfig (which includes BPO activation times), but the expected value was the Prague-era blob fee from the actual Celo Sepolia L2 block (derived before BPO was known). Fix by: - Using stripBPOActivations on the config, which is exactly what the production code does for Celo chains - Inlining the header data (ExcessBlobGas, Time) instead of making a live RPC call, so the test runs in CI's -short mode - Removing unused context and ethclient imports * ci: Skip OP mainnet upgrade tests not relevant to Celo The contracts-bedrock-tests-upgrade and coverage-upgrade tests fork OP mainnet to test OP-specific upgrade paths. These fail on the Celo fork because ForkLive.s.sol is out of sync with upstream (the DelayedWETHProxy deployment lookup fails). Since these tests are not relevant to Celo chains, skip them: - Comment out contracts-bedrock-tests-upgrade workflow jobs - Use coverage-lcov instead of coverage-lcov-all (which includes upgrade coverage) --------- Co-authored-by: Karl Bartel <karl.bartel@clabs.co> Refactor bpo hardfork gating (#420) The previous implementation was broken since it was using block numbers to determine if jovian was active, but in fact jovian is activated by timestamp.
* op-node/derive: Gate BPO activation in L1InfoDeposit per L2 chain Disable BPO/Osaka blob fee formula for Celo L2 chains (mainnet, sepolia, chaos) until Jovian hardfork, matching the gating in celo-kona PR #121. For non-Celo chains, BPO remains enabled by default (preserving upstream behavior). * Update op-geth Updates op-geth to a version that specifies CeloChaosChainID * Fix TestBlobBaseFeeFromSepolia: use stripBPOActivations and inline header data The test was failing because it computed BlobBaseFee using the full SepoliaChainConfig (which includes BPO activation times), but the expected value was the Prague-era blob fee from the actual Celo Sepolia L2 block (derived before BPO was known). Fix by: - Using stripBPOActivations on the config, which is exactly what the production code does for Celo chains - Inlining the header data (ExcessBlobGas, Time) instead of making a live RPC call, so the test runs in CI's -short mode - Removing unused context and ethclient imports * ci: Skip OP mainnet upgrade tests not relevant to Celo The contracts-bedrock-tests-upgrade and coverage-upgrade tests fork OP mainnet to test OP-specific upgrade paths. These fail on the Celo fork because ForkLive.s.sol is out of sync with upstream (the DelayedWETHProxy deployment lookup fails). Since these tests are not relevant to Celo chains, skip them: - Comment out contracts-bedrock-tests-upgrade workflow jobs - Use coverage-lcov instead of coverage-lcov-all (which includes upgrade coverage) --------- Co-authored-by: Karl Bartel <karl.bartel@clabs.co> Refactor bpo hardfork gating (#420) The previous implementation was broken since it was using block numbers to determine if jovian was active, but in fact jovian is activated by timestamp.
* op-node/derive: Gate BPO activation in L1InfoDeposit per L2 chain Disable BPO/Osaka blob fee formula for Celo L2 chains (mainnet, sepolia, chaos) until Jovian hardfork, matching the gating in celo-kona PR #121. For non-Celo chains, BPO remains enabled by default (preserving upstream behavior). * Update op-geth Updates op-geth to a version that specifies CeloChaosChainID * Fix TestBlobBaseFeeFromSepolia: use stripBPOActivations and inline header data The test was failing because it computed BlobBaseFee using the full SepoliaChainConfig (which includes BPO activation times), but the expected value was the Prague-era blob fee from the actual Celo Sepolia L2 block (derived before BPO was known). Fix by: - Using stripBPOActivations on the config, which is exactly what the production code does for Celo chains - Inlining the header data (ExcessBlobGas, Time) instead of making a live RPC call, so the test runs in CI's -short mode - Removing unused context and ethclient imports * ci: Skip OP mainnet upgrade tests not relevant to Celo The contracts-bedrock-tests-upgrade and coverage-upgrade tests fork OP mainnet to test OP-specific upgrade paths. These fail on the Celo fork because ForkLive.s.sol is out of sync with upstream (the DelayedWETHProxy deployment lookup fails). Since these tests are not relevant to Celo chains, skip them: - Comment out contracts-bedrock-tests-upgrade workflow jobs - Use coverage-lcov instead of coverage-lcov-all (which includes upgrade coverage) --------- Co-authored-by: Karl Bartel <karl.bartel@clabs.co> Refactor bpo hardfork gating (#420) The previous implementation was broken since it was using block numbers to determine if jovian was active, but in fact jovian is activated by timestamp.
Summary
L1InfoDepositper L2 chain, matching celo-kona PR #121Closes https://github.com/celo-org/celo-blockchain-planning/issues/1301
Closes https://github.com/celo-org/celo-blockchain-planning/issues/1343