Skip to content

feat(eth2api): add submit_proposal_preparations client method #527

Description

@emlautarom1-agent

Part of #402 — follow-up to the app-wiring PR. Prerequisite for the setFeeRecipient slot subscriber.

Scope

Add a submit_proposal_preparations client method to EthBeaconNodeApiClient (POST /eth/v1/validator/prepare_beacon_proposer). Today only the VC-facing router handler exists (crates/core/src/validatorapi/router.rs), so a Pluto node has no way to send proposal preparations to its own beacon node — the client half is entirely missing from crates/eth2api.

Include a matching endpoint in the pluto-testutil beaconmock that records submitted preparations, so the app-level subscriber (follow-up issue) can be tested against it.

Charon reference: the eth2 client call used by setFeeRecipient (app/app.go:1145-1193 at v1.7.1, SubmitProposalPreparations).

Dependencies

None — independent of all other app-wiring follow-ups.

Acceptance

  • EthBeaconNodeApiClient::submit_proposal_preparations posts [{validator_index, fee_recipient}] per the beacon API spec.
  • beaconmock mounts the endpoint and exposes recorded submissions to tests.
  • Unit test covering serialization and the success/error paths.
  • cargo clippy --workspace --all-targets --all-features -- -D warnings clean.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestrustPull requests that update rust codetrack:orchestration-cliDev C — orchestration + CLI

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions