package grpc_api import ( "context" "github.com/golang/protobuf/ptypes/empty" "github.com/pkg/errors" "github.com/prysmaticlabs/prysm/v3/consensus-types/primitives" ethpb "github.com/prysmaticlabs/prysm/v3/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/v3/validator/client/iface" "google.golang.org/grpc" ) type grpcValidatorClient struct { beaconNodeValidatorClient ethpb.BeaconNodeValidatorClient } func (c *grpcValidatorClient) GetDuties(ctx context.Context, in *ethpb.DutiesRequest) (*ethpb.DutiesResponse, error) { return c.beaconNodeValidatorClient.GetDuties(ctx, in) } func (c *grpcValidatorClient) CheckDoppelGanger(ctx context.Context, in *ethpb.DoppelGangerRequest) (*ethpb.DoppelGangerResponse, error) { return c.beaconNodeValidatorClient.CheckDoppelGanger(ctx, in) } func (c *grpcValidatorClient) DomainData(ctx context.Context, in *ethpb.DomainRequest) (*ethpb.DomainResponse, error) { return c.beaconNodeValidatorClient.DomainData(ctx, in) } func (c *grpcValidatorClient) GetAttestationData(ctx context.Context, in *ethpb.AttestationDataRequest) (*ethpb.AttestationData, error) { return c.beaconNodeValidatorClient.GetAttestationData(ctx, in) } func (c *grpcValidatorClient) GetBeaconBlock(ctx context.Context, in *ethpb.BlockRequest) (*ethpb.GenericBeaconBlock, error) { return c.beaconNodeValidatorClient.GetBeaconBlock(ctx, in) } func (c *grpcValidatorClient) GetFeeRecipientByPubKey(ctx context.Context, in *ethpb.FeeRecipientByPubKeyRequest) (*ethpb.FeeRecipientByPubKeyResponse, error) { return c.beaconNodeValidatorClient.GetFeeRecipientByPubKey(ctx, in) } func (c *grpcValidatorClient) GetSyncCommitteeContribution(ctx context.Context, in *ethpb.SyncCommitteeContributionRequest) (*ethpb.SyncCommitteeContribution, error) { return c.beaconNodeValidatorClient.GetSyncCommitteeContribution(ctx, in) } func (c *grpcValidatorClient) GetSyncMessageBlockRoot(ctx context.Context, in *empty.Empty) (*ethpb.SyncMessageBlockRootResponse, error) { return c.beaconNodeValidatorClient.GetSyncMessageBlockRoot(ctx, in) } func (c *grpcValidatorClient) GetSyncSubcommitteeIndex(ctx context.Context, in *ethpb.SyncSubcommitteeIndexRequest) (*ethpb.SyncSubcommitteeIndexResponse, error) { return c.beaconNodeValidatorClient.GetSyncSubcommitteeIndex(ctx, in) } func (c *grpcValidatorClient) MultipleValidatorStatus(ctx context.Context, in *ethpb.MultipleValidatorStatusRequest) (*ethpb.MultipleValidatorStatusResponse, error) { return c.beaconNodeValidatorClient.MultipleValidatorStatus(ctx, in) } func (c *grpcValidatorClient) PrepareBeaconProposer(ctx context.Context, in *ethpb.PrepareBeaconProposerRequest) (*empty.Empty, error) { return c.beaconNodeValidatorClient.PrepareBeaconProposer(ctx, in) } func (c *grpcValidatorClient) ProposeAttestation(ctx context.Context, in *ethpb.Attestation) (*ethpb.AttestResponse, error) { return c.beaconNodeValidatorClient.ProposeAttestation(ctx, in) } func (c *grpcValidatorClient) ProposeBeaconBlock(ctx context.Context, in *ethpb.GenericSignedBeaconBlock) (*ethpb.ProposeResponse, error) { return c.beaconNodeValidatorClient.ProposeBeaconBlock(ctx, in) } func (c *grpcValidatorClient) ProposeExit(ctx context.Context, in *ethpb.SignedVoluntaryExit) (*ethpb.ProposeExitResponse, error) { return c.beaconNodeValidatorClient.ProposeExit(ctx, in) } func (c *grpcValidatorClient) StreamBlocksAltair(ctx context.Context, in *ethpb.StreamBlocksRequest) (ethpb.BeaconNodeValidator_StreamBlocksAltairClient, error) { return c.beaconNodeValidatorClient.StreamBlocksAltair(ctx, in) } func (c *grpcValidatorClient) SubmitAggregateSelectionProof(ctx context.Context, in *ethpb.AggregateSelectionRequest) (*ethpb.AggregateSelectionResponse, error) { return c.beaconNodeValidatorClient.SubmitAggregateSelectionProof(ctx, in) } func (c *grpcValidatorClient) SubmitSignedAggregateSelectionProof(ctx context.Context, in *ethpb.SignedAggregateSubmitRequest) (*ethpb.SignedAggregateSubmitResponse, error) { return c.beaconNodeValidatorClient.SubmitSignedAggregateSelectionProof(ctx, in) } func (c *grpcValidatorClient) SubmitSignedContributionAndProof(ctx context.Context, in *ethpb.SignedContributionAndProof) (*empty.Empty, error) { return c.beaconNodeValidatorClient.SubmitSignedContributionAndProof(ctx, in) } func (c *grpcValidatorClient) SubmitSyncMessage(ctx context.Context, in *ethpb.SyncCommitteeMessage) (*empty.Empty, error) { return c.beaconNodeValidatorClient.SubmitSyncMessage(ctx, in) } func (c *grpcValidatorClient) SubmitValidatorRegistrations(ctx context.Context, in *ethpb.SignedValidatorRegistrationsV1) (*empty.Empty, error) { return c.beaconNodeValidatorClient.SubmitValidatorRegistrations(ctx, in) } func (c *grpcValidatorClient) SubscribeCommitteeSubnets(ctx context.Context, in *ethpb.CommitteeSubnetsSubscribeRequest, _ []primitives.ValidatorIndex) (*empty.Empty, error) { return c.beaconNodeValidatorClient.SubscribeCommitteeSubnets(ctx, in) } func (c *grpcValidatorClient) ValidatorIndex(ctx context.Context, in *ethpb.ValidatorIndexRequest) (*ethpb.ValidatorIndexResponse, error) { return c.beaconNodeValidatorClient.ValidatorIndex(ctx, in) } func (c *grpcValidatorClient) ValidatorStatus(ctx context.Context, in *ethpb.ValidatorStatusRequest) (*ethpb.ValidatorStatusResponse, error) { return c.beaconNodeValidatorClient.ValidatorStatus(ctx, in) } func (c *grpcValidatorClient) WaitForActivation(ctx context.Context, in *ethpb.ValidatorActivationRequest) (ethpb.BeaconNodeValidator_WaitForActivationClient, error) { return c.beaconNodeValidatorClient.WaitForActivation(ctx, in) } // Deprecated: Do not use. func (c *grpcValidatorClient) WaitForChainStart(ctx context.Context, in *empty.Empty) (*ethpb.ChainStartResponse, error) { stream, err := c.beaconNodeValidatorClient.WaitForChainStart(ctx, in) if err != nil { return nil, errors.Wrap( iface.ErrConnectionIssue, errors.Wrap(err, "could not setup beacon chain ChainStart streaming client").Error(), ) } return stream.Recv() } func NewGrpcValidatorClient(cc grpc.ClientConnInterface) iface.ValidatorClient { return &grpcValidatorClient{ethpb.NewBeaconNodeValidatorClient(cc)} }