mirror of
https://gitlab.com/pulsechaincom/prysm-pulse.git
synced 2024-12-22 19:40:37 +00:00
Small API Middleware upgrades (#10895)
* remove useless comments * add comment * fix writing bug Co-authored-by: james-prysm <90280386+james-prysm@users.noreply.github.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
This commit is contained in:
parent
e439f4aff6
commit
f065209a3e
@ -104,6 +104,8 @@ func ReadGrpcResponseBody(r io.Reader) ([]byte, ErrorJson) {
|
||||
}
|
||||
|
||||
// HandleGrpcResponseError acts on an error that resulted from a grpc-gateway's response.
|
||||
// Whether there was an error is indicated by the bool return value. In case of an error,
|
||||
// there is no need to write to the response because it's taken care of by the function.
|
||||
func HandleGrpcResponseError(errJson ErrorJson, resp *http.Response, respBody []byte, w http.ResponseWriter) (bool, ErrorJson) {
|
||||
responseHasError := false
|
||||
if err := json.Unmarshal(respBody, errJson); err != nil {
|
||||
|
@ -131,10 +131,10 @@ func handleGetSSZ(
|
||||
respHasError, errJson := apimiddleware.HandleGrpcResponseError(endpoint.Err, grpcResponse, grpcResponseBody, w)
|
||||
if errJson != nil {
|
||||
apimiddleware.WriteError(w, errJson, nil)
|
||||
return
|
||||
return true
|
||||
}
|
||||
if respHasError {
|
||||
return
|
||||
return true
|
||||
}
|
||||
if errJson := apimiddleware.DeserializeGrpcResponseBodyIntoContainer(grpcResponseBody, config.responseJson); errJson != nil {
|
||||
apimiddleware.WriteError(w, errJson, nil)
|
||||
@ -191,10 +191,10 @@ func handlePostSSZ(
|
||||
respHasError, errJson := apimiddleware.HandleGrpcResponseError(endpoint.Err, grpcResponse, grpcResponseBody, w)
|
||||
if errJson != nil {
|
||||
apimiddleware.WriteError(w, errJson, nil)
|
||||
return
|
||||
return true
|
||||
}
|
||||
if respHasError {
|
||||
return
|
||||
return true
|
||||
}
|
||||
if errJson := apimiddleware.Cleanup(grpcResponse.Body); errJson != nil {
|
||||
apimiddleware.WriteError(w, errJson, nil)
|
||||
|
@ -12,12 +12,10 @@ import (
|
||||
// Requests and responses.
|
||||
//----------------
|
||||
|
||||
// genesisResponseJson is used in /beacon/genesis API endpoint.
|
||||
type genesisResponseJson struct {
|
||||
Data *genesisResponse_GenesisJson `json:"data"`
|
||||
}
|
||||
|
||||
// genesisResponse_GenesisJson is used in /beacon/genesis API endpoint.
|
||||
type genesisResponse_GenesisJson struct {
|
||||
GenesisTime string `json:"genesis_time" time:"true"`
|
||||
GenesisValidatorsRoot string `json:"genesis_validators_root" hex:"true"`
|
||||
@ -33,158 +31,130 @@ type WeakSubjectivityResponse struct {
|
||||
} `json:"data"`
|
||||
}
|
||||
|
||||
// feeRecipientsRequestJson is used in /validator/prepare_beacon_proposers API endpoint.
|
||||
type feeRecipientsRequestJSON struct {
|
||||
Recipients []*feeRecipientJson `json:"recipients"`
|
||||
}
|
||||
|
||||
// stateRootResponseJson is used in /beacon/states/{state_id}/root API endpoint.
|
||||
type stateRootResponseJson struct {
|
||||
Data *stateRootResponse_StateRootJson `json:"data"`
|
||||
ExecutionOptimistic bool `json:"execution_optimistic"`
|
||||
}
|
||||
|
||||
// stateRootResponse_StateRootJson is used in /beacon/states/{state_id}/root API endpoint.
|
||||
type stateRootResponse_StateRootJson struct {
|
||||
StateRoot string `json:"root" hex:"true"`
|
||||
}
|
||||
|
||||
// stateForkResponseJson is used in /beacon/states/{state_id}/fork API endpoint.
|
||||
type stateForkResponseJson struct {
|
||||
Data *forkJson `json:"data"`
|
||||
ExecutionOptimistic bool `json:"execution_optimistic"`
|
||||
}
|
||||
|
||||
// stateFinalityCheckpointResponseJson is used in /beacon/states/{state_id}/finality_checkpoints API endpoint.
|
||||
type stateFinalityCheckpointResponseJson struct {
|
||||
Data *stateFinalityCheckpointResponse_StateFinalityCheckpointJson `json:"data"`
|
||||
ExecutionOptimistic bool `json:"execution_optimistic"`
|
||||
}
|
||||
|
||||
// stateFinalityCheckpointResponse_StateFinalityCheckpointJson is used in /beacon/states/{state_id}/finality_checkpoints API endpoint.
|
||||
type stateFinalityCheckpointResponse_StateFinalityCheckpointJson struct {
|
||||
PreviousJustified *checkpointJson `json:"previous_justified"`
|
||||
CurrentJustified *checkpointJson `json:"current_justified"`
|
||||
Finalized *checkpointJson `json:"finalized"`
|
||||
}
|
||||
|
||||
// stateValidatorResponseJson is used in /beacon/states/{state_id}/validators API endpoint.
|
||||
type stateValidatorsResponseJson struct {
|
||||
Data []*validatorContainerJson `json:"data"`
|
||||
ExecutionOptimistic bool `json:"execution_optimistic"`
|
||||
}
|
||||
|
||||
// stateValidatorResponseJson is used in /beacon/states/{state_id}/validators/{validator_id} API endpoint.
|
||||
type stateValidatorResponseJson struct {
|
||||
Data *validatorContainerJson `json:"data"`
|
||||
ExecutionOptimistic bool `json:"execution_optimistic"`
|
||||
}
|
||||
|
||||
// validatorBalancesResponseJson is used in /beacon/states/{state_id}/validator_balances API endpoint.
|
||||
type validatorBalancesResponseJson struct {
|
||||
Data []*validatorBalanceJson `json:"data"`
|
||||
ExecutionOptimistic bool `json:"execution_optimistic"`
|
||||
}
|
||||
|
||||
// stateCommitteesResponseJson is used in /beacon/states/{state_id}/committees API endpoint.
|
||||
type stateCommitteesResponseJson struct {
|
||||
Data []*committeeJson `json:"data"`
|
||||
ExecutionOptimistic bool `json:"execution_optimistic"`
|
||||
}
|
||||
|
||||
// syncCommitteesResponseJson is used in /beacon/states/{state_id}/sync_committees API endpoint.
|
||||
type syncCommitteesResponseJson struct {
|
||||
Data *syncCommitteeValidatorsJson `json:"data"`
|
||||
ExecutionOptimistic bool `json:"execution_optimistic"`
|
||||
}
|
||||
|
||||
// blockHeadersResponseJson is used in /beacon/headers API endpoint.
|
||||
type blockHeadersResponseJson struct {
|
||||
Data []*blockHeaderContainerJson `json:"data"`
|
||||
ExecutionOptimistic bool `json:"execution_optimistic"`
|
||||
}
|
||||
|
||||
// blockHeaderResponseJson is used in /beacon/headers/{block_id} API endpoint.
|
||||
type blockHeaderResponseJson struct {
|
||||
Data *blockHeaderContainerJson `json:"data"`
|
||||
ExecutionOptimistic bool `json:"execution_optimistic"`
|
||||
}
|
||||
|
||||
// blockResponseJson is used in /beacon/blocks/{block_id} API endpoint.
|
||||
type blockResponseJson struct {
|
||||
Data *signedBeaconBlockContainerJson `json:"data"`
|
||||
}
|
||||
|
||||
// blockV2ResponseJson is used in /v2/beacon/blocks/{block_id} API endpoint.
|
||||
type blockV2ResponseJson struct {
|
||||
Version string `json:"version" enum:"true"`
|
||||
Data *signedBeaconBlockContainerV2Json `json:"data"`
|
||||
ExecutionOptimistic bool `json:"execution_optimistic"`
|
||||
}
|
||||
|
||||
// blockRootResponseJson is used in /beacon/blocks/{block_id}/root API endpoint.
|
||||
type blockRootResponseJson struct {
|
||||
Data *blockRootContainerJson `json:"data"`
|
||||
ExecutionOptimistic bool `json:"execution_optimistic"`
|
||||
}
|
||||
|
||||
// blockAttestationsResponseJson is used in /beacon/blocks/{block_id}/attestations API endpoint.
|
||||
type blockAttestationsResponseJson struct {
|
||||
Data []*attestationJson `json:"data"`
|
||||
ExecutionOptimistic bool `json:"execution_optimistic"`
|
||||
}
|
||||
|
||||
// attestationsPoolResponseJson is used in /beacon/pool/attestations GET API endpoint.
|
||||
type attestationsPoolResponseJson struct {
|
||||
Data []*attestationJson `json:"data"`
|
||||
}
|
||||
|
||||
// submitAttestationRequestJson is used in /beacon/pool/attestations POST API endpoint.
|
||||
type submitAttestationRequestJson struct {
|
||||
Data []*attestationJson `json:"data"`
|
||||
}
|
||||
|
||||
// attesterSlashingsPoolResponseJson is used in /beacon/pool/attester_slashings API endpoint.
|
||||
type attesterSlashingsPoolResponseJson struct {
|
||||
Data []*attesterSlashingJson `json:"data"`
|
||||
}
|
||||
|
||||
// proposerSlashingsPoolResponseJson is used in /beacon/pool/proposer_slashings API endpoint.
|
||||
type proposerSlashingsPoolResponseJson struct {
|
||||
Data []*proposerSlashingJson `json:"data"`
|
||||
}
|
||||
|
||||
// voluntaryExitsPoolResponseJson is used in /beacon/pool/voluntary_exits API endpoint.
|
||||
type voluntaryExitsPoolResponseJson struct {
|
||||
Data []*signedVoluntaryExitJson `json:"data"`
|
||||
}
|
||||
|
||||
// submitSyncCommitteeSignaturesRequestJson is used in /beacon/pool/sync_committees API endpoint.
|
||||
type submitSyncCommitteeSignaturesRequestJson struct {
|
||||
Data []*syncCommitteeMessageJson `json:"data"`
|
||||
}
|
||||
|
||||
// identityResponseJson is used in /node/identity API endpoint.
|
||||
type identityResponseJson struct {
|
||||
Data *identityJson `json:"data"`
|
||||
}
|
||||
|
||||
// peersResponseJson is used in /node/peers API endpoint.
|
||||
type peersResponseJson struct {
|
||||
Data []*peerJson `json:"data"`
|
||||
}
|
||||
|
||||
// peerResponseJson is used in /node/peers/{peer_id} API endpoint.
|
||||
type peerResponseJson struct {
|
||||
Data *peerJson `json:"data"`
|
||||
}
|
||||
|
||||
// peerCountResponseJson is used in /node/peer_count API endpoint.
|
||||
type peerCountResponseJson struct {
|
||||
Data peerCountResponse_PeerCountJson `json:"data"`
|
||||
}
|
||||
|
||||
// peerCountResponse_PeerCountJson is used in /node/peer_count API endpoint.
|
||||
type peerCountResponse_PeerCountJson struct {
|
||||
Disconnected string `json:"disconnected"`
|
||||
Connecting string `json:"connecting"`
|
||||
@ -192,111 +162,91 @@ type peerCountResponse_PeerCountJson struct {
|
||||
Disconnecting string `json:"disconnecting"`
|
||||
}
|
||||
|
||||
// versionResponseJson is used in /node/version API endpoint.
|
||||
type versionResponseJson struct {
|
||||
Data *versionJson `json:"data"`
|
||||
}
|
||||
|
||||
// syncingResponseJson is used in /node/syncing API endpoint.
|
||||
type syncingResponseJson struct {
|
||||
Data *helpers.SyncDetailsJson `json:"data"`
|
||||
}
|
||||
|
||||
// beaconStateResponseJson is used in /debug/beacon/states/{state_id} API endpoint.
|
||||
type beaconStateResponseJson struct {
|
||||
Data *beaconStateJson `json:"data"`
|
||||
}
|
||||
|
||||
// beaconStateV2ResponseJson is used in /v2/debug/beacon/states/{state_id} API endpoint.
|
||||
type beaconStateV2ResponseJson struct {
|
||||
Version string `json:"version" enum:"true"`
|
||||
Data *beaconStateContainerV2Json `json:"data"`
|
||||
ExecutionOptimistic bool `json:"execution_optimistic"`
|
||||
}
|
||||
|
||||
// forkChoiceHeadsResponseJson is used in /v1/debug/beacon/heads API endpoint.
|
||||
type forkChoiceHeadsResponseJson struct {
|
||||
Data []*forkChoiceHeadJson `json:"data"`
|
||||
}
|
||||
|
||||
// v2ForkChoiceHeadsResponseJson is used in /v2/debug/beacon/heads API endpoint.
|
||||
type v2ForkChoiceHeadsResponseJson struct {
|
||||
Data []*v2ForkChoiceHeadJson `json:"data"`
|
||||
}
|
||||
|
||||
// forkScheduleResponseJson is used in /config/fork_schedule API endpoint.
|
||||
type forkScheduleResponseJson struct {
|
||||
Data []*forkJson `json:"data"`
|
||||
}
|
||||
|
||||
// depositContractResponseJson is used in /config/deposit_contract API endpoint.
|
||||
type depositContractResponseJson struct {
|
||||
Data *depositContractJson `json:"data"`
|
||||
}
|
||||
|
||||
// specResponseJson is used in /config/spec API endpoint.
|
||||
type specResponseJson struct {
|
||||
Data interface{} `json:"data"`
|
||||
}
|
||||
|
||||
// dutiesRequestJson is used in several duties-related API endpoints.
|
||||
type dutiesRequestJson struct {
|
||||
Index []string `json:"index"`
|
||||
}
|
||||
|
||||
// attesterDutiesResponseJson is used in /validator/duties/attester/{epoch} API endpoint.
|
||||
type attesterDutiesResponseJson struct {
|
||||
DependentRoot string `json:"dependent_root" hex:"true"`
|
||||
Data []*attesterDutyJson `json:"data"`
|
||||
ExecutionOptimistic bool `json:"execution_optimistic"`
|
||||
}
|
||||
|
||||
// proposerDutiesResponseJson is used in /validator/duties/proposer/{epoch} API endpoint.
|
||||
type proposerDutiesResponseJson struct {
|
||||
DependentRoot string `json:"dependent_root" hex:"true"`
|
||||
Data []*proposerDutyJson `json:"data"`
|
||||
ExecutionOptimistic bool `json:"execution_optimistic"`
|
||||
}
|
||||
|
||||
// syncCommitteeDutiesResponseJson is used in /validator/duties/sync/{epoch} API endpoint.
|
||||
type syncCommitteeDutiesResponseJson struct {
|
||||
Data []*syncCommitteeDuty `json:"data"`
|
||||
ExecutionOptimistic bool `json:"execution_optimistic"`
|
||||
}
|
||||
|
||||
// produceBlockResponseJson is used in /validator/blocks/{slot} API endpoint.
|
||||
type produceBlockResponseJson struct {
|
||||
Data *beaconBlockJson `json:"data"`
|
||||
}
|
||||
|
||||
// produceBlockResponseV2Json is used in /v2/validator/blocks/{slot} API endpoint.
|
||||
type produceBlockResponseV2Json struct {
|
||||
Version string `json:"version"`
|
||||
Data *beaconBlockContainerV2Json `json:"data"`
|
||||
}
|
||||
|
||||
// produceBlindedBlockResponseJson is used in /v1/validator/blinded_blocks/{slot} API endpoint.
|
||||
type produceBlindedBlockResponseJson struct {
|
||||
Version string `json:"version"`
|
||||
Data *blindedBeaconBlockContainerJson `json:"data"`
|
||||
}
|
||||
|
||||
// produceAttestationDataResponseJson is used in /validator/attestation_data API endpoint.
|
||||
type produceAttestationDataResponseJson struct {
|
||||
Data *attestationDataJson `json:"data"`
|
||||
}
|
||||
|
||||
// aggregateAttestationResponseJson is used in /validator/aggregate_attestation API endpoint.
|
||||
type aggregateAttestationResponseJson struct {
|
||||
Data *attestationJson `json:"data"`
|
||||
}
|
||||
|
||||
// submitBeaconCommitteeSubscriptionsRequestJson is used in /validator/beacon_committee_subscriptions API endpoint.
|
||||
type submitBeaconCommitteeSubscriptionsRequestJson struct {
|
||||
Data []*beaconCommitteeSubscribeJson `json:"data"`
|
||||
}
|
||||
|
||||
// beaconCommitteeSubscribeJson is used in /validator/beacon_committee_subscriptions API endpoint.
|
||||
type beaconCommitteeSubscribeJson struct {
|
||||
ValidatorIndex string `json:"validator_index"`
|
||||
CommitteeIndex string `json:"committee_index"`
|
||||
@ -305,29 +255,24 @@ type beaconCommitteeSubscribeJson struct {
|
||||
IsAggregator bool `json:"is_aggregator"`
|
||||
}
|
||||
|
||||
// submitBeaconCommitteeSubscriptionsRequestJson is used in /validator/sync_committee_subscriptions API endpoint.
|
||||
type submitSyncCommitteeSubscriptionRequestJson struct {
|
||||
Data []*syncCommitteeSubscriptionJson `json:"data"`
|
||||
}
|
||||
|
||||
// syncCommitteeSubscriptionJson is used in /validator/sync_committee_subscriptions API endpoint.
|
||||
type syncCommitteeSubscriptionJson struct {
|
||||
ValidatorIndex string `json:"validator_index"`
|
||||
SyncCommitteeIndices []string `json:"sync_committee_indices"`
|
||||
UntilEpoch string `json:"until_epoch"`
|
||||
}
|
||||
|
||||
// submitAggregateAndProofsRequestJson is used in /validator/aggregate_and_proofs API endpoint.
|
||||
type submitAggregateAndProofsRequestJson struct {
|
||||
Data []*signedAggregateAttestationAndProofJson `json:"data"`
|
||||
}
|
||||
|
||||
// produceSyncCommitteeContributionResponseJson is used in /validator/sync_committee_contribution API endpoint.
|
||||
type produceSyncCommitteeContributionResponseJson struct {
|
||||
Data *syncCommitteeContributionJson `json:"data"`
|
||||
}
|
||||
|
||||
// submitContributionAndProofsRequestJson is used in /validator/contribution_and_proofs API endpoint.
|
||||
type submitContributionAndProofsRequestJson struct {
|
||||
Data []*signedContributionAndProofJson `json:"data"`
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user