Merge main into preconf dev#3116
Merged
Merged
Conversation
Co-authored-by: Claude <noreply@anthropic.com>
…ode (#3096) Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Cal Bera <calbera@berachain.com> Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Cal Bera <calbera@berachain.com>
Co-authored-by: Cal Bera <calbera@berachain.com>
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## preconf-dev #3116 +/- ##
===============================================
+ Coverage 58.82% 59.72% +0.89%
===============================================
Files 381 384 +3
Lines 19687 19929 +242
===============================================
+ Hits 11581 11902 +321
+ Misses 7138 7047 -91
- Partials 968 980 +12
🚀 New features to boost your workflow:
|
Contributor
There was a problem hiding this comment.
Pull request overview
This PR aligns preconf-dev with main by bringing in Fulu-related deposit handling, execution-client error classification changes, dependency/workflow updates, and updated simulated/e2e coverage.
Changes:
- Adds Fulu deposit queue catch-up logic and migrates post-Fulu deposit processing to execution requests.
- Updates execution RPC error handling, geth transaction accessors/sender caching, and sidecar nil-header handling.
- Refreshes test network specs, genesis files, e2e expectations, pinned GitHub Actions, and Go dependencies.
Reviewed changes
Copilot reviewed 70 out of 71 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
testing/simulated/rpc_errors_test.go |
Adds TCP connection-drop proxy simulation and recovery test. |
testing/simulated/fulu_deposit_test.go |
Adds simulated Fulu deposit queue drain scenario. |
testing/simulated/el-genesis-files/fulu-deposit-genesis.json |
Adds EL genesis fixture for Fulu deposit simulation. |
testing/simulated/components.go |
Adds Fulu deposit test chain spec provider. |
testing/simulated/chaos_test.go |
Removes crashed execution client proposal test. |
testing/networks/80094/spec.toml |
Updates Fulu inflation values for mainnet test config. |
testing/networks/80094/eth-genesis.json |
Adds deposit contract address and Osaka blob schedule. |
testing/networks/80069/spec.toml |
Activates Fulu timing and updates Fulu inflation values. |
testing/networks/80069/eth-genesis.json |
Activates Osaka timing and adds deposit contract config. |
testing/files/eth-genesis.json |
Adds deposit contract address and Osaka blob schedule. |
testing/e2e/standard/withdrawal_test.go |
Removes stale TODO from Fulu version assertion. |
testing/e2e/standard/staking_test.go |
Uses cached validator pubkeys and expands deposit diagnostics. |
testing/e2e/standard/beacon_api_test.go |
Updates genesis balance expectations to 33 BERA. |
storage/filedb/range_db_test.go |
Cleans comment formatting. |
storage/deposit/v1/store.go |
Avoids preallocating deposit slices by unbounded range. |
state-transition/core/validation_deposits.go |
Adds pre-Fulu/Fulu-first-block deposit validation flow. |
state-transition/core/validation_deposits_test.go |
Adds Fulu catch-up deposit validation tests. |
state-transition/core/state_processor.go |
Tracks previous block fork version for operations. |
state-transition/core/state_processor_withdrawals_test.go |
Moves Fulu-era deposits into execution requests in tests. |
state-transition/core/state_processor_staking.go |
Switches deposit source by fork and handles first-Fulu catch-up. |
state-transition/core/state_processor_staking_test.go |
Updates staking tests for execution-request deposits. |
state-transition/core/state_processor_forks.go |
Moves Electra1 fixes into fork upgrade helper. |
state-transition/core/core_test.go |
Adds pre-Fulu test chain helper. |
primitives/version/versions.go |
Simplifies Fulu version comment. |
primitives/net/http/errors.go |
Removes unauthorized HTTP sentinel. |
node-core/services/version/version.go |
Prints Fulu fork time at startup. |
node-core/components/validator_service.go |
Injects deposit contract into validator service. |
kurtosis/src/nodes/consensus/beacond/node.star |
Updates genesis deposit amount. |
kurtosis/src/nodes/consensus/beacond/launcher.star |
Updates configured deposit amount. |
kurtosis/src/networks/kurtosis-devnet/network-configs/genesis.json.template |
Adds Osaka and deposit contract genesis config. |
go.mod |
Updates Go version, CometBFT replacement, and x/* deps. |
go.sum |
Updates dependency checksums. |
gethlib/types/tx_types.go |
Adds transaction accessor implementations. |
gethlib/types/transaction.go |
Adds transaction accessors, seen time, and sender cache. |
gethlib/types/transaction_test.go |
Adds transaction accessor tests. |
gethlib/types/transaction_signing.go |
Adds signer interface and sender cache helper. |
gethlib/ethclient/signer.go |
Adds server-provided sender cache signer. |
gethlib/ethclient/ethclient.go |
Caches transaction sender metadata and adds TransactionSender. |
gethlib/ethclient/ethclient_test.go |
Adds sender cache tests. |
execution/deposit/interfaces.go |
Narrows deposit reads to single blocks and adds cursor methods. |
execution/deposit/contract.go |
Implements single-block deposit reads and last-block tracking. |
execution/client/ethclient/rpc/errors.go |
Adds typed HTTP status error. |
execution/client/ethclient/rpc/client.go |
Returns typed HTTP status errors from raw RPC calls. |
execution/client/ethclient/engine.go |
Formats Deneb payload version branch. |
execution/client/errors.go |
Reclassifies bad connections as retryable and HTTP 4xx as fatal. |
execution/client/errors_test.go |
Adds RPC error classification tests. |
execution/client/client.go |
Updates unauthorized connection detection. |
da/types/sidecar.go |
Initializes nil inner beacon block headers after SSZ decode. |
da/types/sidecar_test.go |
Adds nil-header sidecar decode tests. |
config/spec/testnet.go |
Sets Bepolia Fulu fork time. |
config/spec/mainnet.go |
Updates Fulu inflation values and reorganizes Fulu constants. |
config/spec/devnet.go |
Inlines devnet fork timing constants. |
cli/commands/deposit/db_check.go |
Updates DB check to use pre-Fulu deposit validation. |
chain/spec_test.go |
Updates fork-order test inputs for Fulu ordering. |
chain/helpers_test.go |
Adds Fulu active fork timestamp cases. |
chain/data.go |
Simplifies Fulu fork-time documentation. |
beacon/validator/service.go |
Stores injected deposit contract in validator service. |
beacon/validator/errors.go |
Moves deposit store incomplete error out of validator package. |
beacon/validator/block_builder.go |
Delegates deposit body population to new deposits package. |
beacon/deposits/interfaces.go |
Adds deposits package chain spec interface. |
beacon/deposits/errors.go |
Adds deposits package error definitions. |
beacon/deposits/deposits.go |
Adds pre-Fulu deposit fetching and first-Fulu catch-up helpers. |
beacon/blockchain/service.go |
Removes old failed-block deposit retry service. |
beacon/blockchain/process_proposal.go |
Adds Fulu deposit catch-up before state verification. |
beacon/blockchain/interfaces.go |
Extends chain spec interface for deposit limits. |
beacon/blockchain/finalize_block.go |
Uses deposits package for fetch/catch-up during finalization. |
beacon/blockchain/deposit.go |
Deletes old blockchain deposit fetcher/retry implementation. |
.github/workflows/vuln-and-dep-check.yml |
Pins checkout/setup-go actions by SHA. |
.github/workflows/release.yaml |
Pins release workflow actions by SHA. |
.github/workflows/pipeline.yml |
Pins CI/build workflow actions by SHA. |
.github/workflows/docker-nightly-preconf.yml |
Pins nightly Docker workflow actions by SHA. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+114
to
+117
| deposits, err := depositContract.ReadDeposits(ctx, blockToFetch) | ||
| if err != nil { | ||
| logger.Error("Failed to read deposits", "block", blockNum, "error", err) | ||
| return |
Comment on lines
+225
to
+229
| validators, err := s.TestNode.APIBackend.FilterValidators(nextBlockHeight, nil, nil) | ||
| s.Require().NoError(err) | ||
| s.Require().Len(validators, 1, "Still 1 validator (all deposits went to the same pubkey)") | ||
|
|
||
| s.T().Logf("effective balance after deposits: %s gwei", validators[0].Validator.EffectiveBalance) |
calbera
approved these changes
May 28, 2026
…n-into-preconf-dev
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.
This fixes broken CI vulncheck on preconf-dev and brings it in line with main