Skip to content

*: charon runtime using overrides#4401

Merged
obol-bulldozer[bot] merged 3 commits intomainfrom
pinebit/feerecipient-runtime
Mar 18, 2026
Merged

*: charon runtime using overrides#4401
obol-bulldozer[bot] merged 3 commits intomainfrom
pinebit/feerecipient-runtime

Conversation

@pinebit
Copy link
Collaborator

@pinebit pinebit commented Mar 17, 2026

Add feerecipient list command to display the latest builder registration data per validator, comparing timestamps from the cluster lock and overrides file.

$ charon feerecipient list --help
Lists the latest builder registration data for each validator, picking the entry with the highest timestamp from the cluster lock or overrides file.

Usage:
  charon feerecipient list [flags]

Flags:
  -h, --help                            Help for list
      --lock-file string                Path to the cluster lock file defining the distributed validator cluster. (default ".charon/cluster-lock.json")
      --overrides-file string           Path to the builder registrations overrides file. (default ".charon/builder_registrations_overrides.json")
      --validator-public-keys strings   Optional comma-separated list of validator public keys to list builder registrations for.

Add BuilderRegistrationService that watches the builder_registration_overrides.json file for changes at runtime using fsnotify, so charon picks up updated fee recipients and gas limits without requiring a restart.

charon run got new CLI flag:

--overrides-file string           Path to the builder registrations overrides file. (default ".charon/builder_registrations_overrides.json")

category: feature
ticket: #4293

@codecov
Copy link

codecov bot commented Mar 17, 2026

Codecov Report

❌ Patch coverage is 70.37037% with 72 lines in your changes missing coverage. Please review.
✅ Project coverage is 56.38%. Comparing base (cc7427a) to head (10ddee4).
⚠️ Report is 2 commits behind head on main.

Files with missing lines Patch % Lines
app/builderregistration.go 67.46% 23 Missing and 18 partials ⚠️
app/app.go 0.00% 15 Missing ⚠️
cmd/feerecipientlist.go 88.60% 5 Missing and 4 partials ⚠️
cmd/feerecipientsign.go 71.42% 1 Missing and 1 partial ⚠️
app/lifecycle/orderstart_string.go 66.66% 0 Missing and 1 partial ⚠️
app/lifecycle/orderstop_string.go 66.66% 0 Missing and 1 partial ⚠️
cmd/cmd.go 0.00% 1 Missing ⚠️
cmd/feerecipientfetch.go 75.00% 1 Missing ⚠️
core/scheduler/scheduler.go 75.00% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #4401      +/-   ##
==========================================
+ Coverage   56.29%   56.38%   +0.09%     
==========================================
  Files         242      244       +2     
  Lines       32196    32421     +225     
==========================================
+ Hits        18125    18281     +156     
- Misses      11748    11789      +41     
- Partials     2323     2351      +28     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@pinebit pinebit marked this pull request as ready for review March 18, 2026 10:04

func (i OrderStart) String() string {
if i < 0 || i >= OrderStart(len(_OrderStart_index)-1) {
idx := int(i) - 0
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's that?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is code generated AFAIK..


func (i OrderStop) String() string {
if i < 0 || i >= OrderStop(len(_OrderStop_index)-1) {
idx := int(i) - 0
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as orderstart_string

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as above, this is code generated file.

}

// Debounce rapid events (editors may write multiple times).
debounce = time.After(fileWatchDebounce)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't get why we need to add this lead time?

Copy link
Collaborator Author

@pinebit pinebit Mar 18, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI said some IDE/editors may update the file multiple times in a row.. do you think we don't need this?
upd: maybe indeed this is not really needed for our use cases, I will remove it

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed.

@pinebit pinebit added the merge when ready Indicates bulldozer bot may merge when all checks pass label Mar 18, 2026
@sonarqubecloud
Copy link

@obol-bulldozer obol-bulldozer bot merged commit 65c87ee into main Mar 18, 2026
10 of 11 checks passed
@obol-bulldozer obol-bulldozer bot deleted the pinebit/feerecipient-runtime branch March 18, 2026 17:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merge when ready Indicates bulldozer bot may merge when all checks pass

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants