mirror of
https://gitlab.com/pulsechaincom/prysm-pulse.git
synced 2024-12-22 19:40:37 +00:00
210 lines
6.3 KiB
Go
210 lines
6.3 KiB
Go
package structs
|
|
|
|
type Validator struct {
|
|
Pubkey string `json:"pubkey"`
|
|
WithdrawalCredentials string `json:"withdrawal_credentials"`
|
|
EffectiveBalance string `json:"effective_balance"`
|
|
Slashed bool `json:"slashed"`
|
|
ActivationEligibilityEpoch string `json:"activation_eligibility_epoch"`
|
|
ActivationEpoch string `json:"activation_epoch"`
|
|
ExitEpoch string `json:"exit_epoch"`
|
|
WithdrawableEpoch string `json:"withdrawable_epoch"`
|
|
}
|
|
|
|
type PendingAttestation struct {
|
|
AggregationBits string `json:"aggregation_bits"`
|
|
Data *AttestationData `json:"data"`
|
|
InclusionDelay string `json:"inclusion_delay"`
|
|
ProposerIndex string `json:"proposer_index"`
|
|
}
|
|
|
|
type HistoricalSummary struct {
|
|
BlockSummaryRoot string `json:"block_summary_root"`
|
|
StateSummaryRoot string `json:"state_summary_root"`
|
|
}
|
|
|
|
type Attestation struct {
|
|
AggregationBits string `json:"aggregation_bits"`
|
|
Data *AttestationData `json:"data"`
|
|
Signature string `json:"signature"`
|
|
}
|
|
|
|
type AttestationData struct {
|
|
Slot string `json:"slot"`
|
|
CommitteeIndex string `json:"index"`
|
|
BeaconBlockRoot string `json:"beacon_block_root"`
|
|
Source *Checkpoint `json:"source"`
|
|
Target *Checkpoint `json:"target"`
|
|
}
|
|
|
|
type Checkpoint struct {
|
|
Epoch string `json:"epoch"`
|
|
Root string `json:"root"`
|
|
}
|
|
|
|
type Committee struct {
|
|
Index string `json:"index"`
|
|
Slot string `json:"slot"`
|
|
Validators []string `json:"validators"`
|
|
}
|
|
|
|
type SignedContributionAndProof struct {
|
|
Message *ContributionAndProof `json:"message"`
|
|
Signature string `json:"signature"`
|
|
}
|
|
|
|
type ContributionAndProof struct {
|
|
AggregatorIndex string `json:"aggregator_index"`
|
|
Contribution *SyncCommitteeContribution `json:"contribution"`
|
|
SelectionProof string `json:"selection_proof"`
|
|
}
|
|
|
|
type SyncCommitteeContribution struct {
|
|
Slot string `json:"slot"`
|
|
BeaconBlockRoot string `json:"beacon_block_root"`
|
|
SubcommitteeIndex string `json:"subcommittee_index"`
|
|
AggregationBits string `json:"aggregation_bits"`
|
|
Signature string `json:"signature"`
|
|
}
|
|
|
|
type SignedAggregateAttestationAndProof struct {
|
|
Message *AggregateAttestationAndProof `json:"message"`
|
|
Signature string `json:"signature"`
|
|
}
|
|
|
|
type AggregateAttestationAndProof struct {
|
|
AggregatorIndex string `json:"aggregator_index"`
|
|
Aggregate *Attestation `json:"aggregate"`
|
|
SelectionProof string `json:"selection_proof"`
|
|
}
|
|
|
|
type SyncCommitteeSubscription struct {
|
|
ValidatorIndex string `json:"validator_index"`
|
|
SyncCommitteeIndices []string `json:"sync_committee_indices"`
|
|
UntilEpoch string `json:"until_epoch"`
|
|
}
|
|
|
|
type BeaconCommitteeSubscription struct {
|
|
ValidatorIndex string `json:"validator_index"`
|
|
CommitteeIndex string `json:"committee_index"`
|
|
CommitteesAtSlot string `json:"committees_at_slot"`
|
|
Slot string `json:"slot"`
|
|
IsAggregator bool `json:"is_aggregator"`
|
|
}
|
|
|
|
type ValidatorRegistration struct {
|
|
FeeRecipient string `json:"fee_recipient"`
|
|
GasLimit string `json:"gas_limit"`
|
|
Timestamp string `json:"timestamp"`
|
|
Pubkey string `json:"pubkey"`
|
|
}
|
|
|
|
type SignedValidatorRegistration struct {
|
|
Message *ValidatorRegistration `json:"message"`
|
|
Signature string `json:"signature"`
|
|
}
|
|
|
|
type FeeRecipient struct {
|
|
ValidatorIndex string `json:"validator_index"`
|
|
FeeRecipient string `json:"fee_recipient"`
|
|
}
|
|
|
|
type SignedVoluntaryExit struct {
|
|
Message *VoluntaryExit `json:"message"`
|
|
Signature string `json:"signature"`
|
|
}
|
|
|
|
type VoluntaryExit struct {
|
|
Epoch string `json:"epoch"`
|
|
ValidatorIndex string `json:"validator_index"`
|
|
}
|
|
|
|
type Fork struct {
|
|
PreviousVersion string `json:"previous_version"`
|
|
CurrentVersion string `json:"current_version"`
|
|
Epoch string `json:"epoch"`
|
|
}
|
|
|
|
type SignedBLSToExecutionChange struct {
|
|
Message *BLSToExecutionChange `json:"message"`
|
|
Signature string `json:"signature"`
|
|
}
|
|
|
|
type BLSToExecutionChange struct {
|
|
ValidatorIndex string `json:"validator_index"`
|
|
FromBLSPubkey string `json:"from_bls_pubkey"`
|
|
ToExecutionAddress string `json:"to_execution_address"`
|
|
}
|
|
|
|
type SyncCommitteeMessage struct {
|
|
Slot string `json:"slot"`
|
|
BeaconBlockRoot string `json:"beacon_block_root"`
|
|
ValidatorIndex string `json:"validator_index"`
|
|
Signature string `json:"signature"`
|
|
}
|
|
|
|
type SyncCommittee struct {
|
|
Pubkeys []string `json:"pubkeys"`
|
|
AggregatePubkey string `json:"aggregate_pubkey"`
|
|
}
|
|
|
|
// SyncDetails contains information about node sync status.
|
|
type SyncDetails struct {
|
|
HeadSlot string `json:"head_slot"`
|
|
SyncDistance string `json:"sync_distance"`
|
|
IsSyncing bool `json:"is_syncing"`
|
|
IsOptimistic bool `json:"is_optimistic"`
|
|
ElOffline bool `json:"el_offline"`
|
|
}
|
|
|
|
// SyncDetailsContainer is a wrapper for Data.
|
|
type SyncDetailsContainer struct {
|
|
Data *SyncDetails `json:"data"`
|
|
}
|
|
|
|
type Eth1Data struct {
|
|
DepositRoot string `json:"deposit_root"`
|
|
DepositCount string `json:"deposit_count"`
|
|
BlockHash string `json:"block_hash"`
|
|
}
|
|
|
|
type ProposerSlashing struct {
|
|
SignedHeader1 *SignedBeaconBlockHeader `json:"signed_header_1"`
|
|
SignedHeader2 *SignedBeaconBlockHeader `json:"signed_header_2"`
|
|
}
|
|
|
|
type AttesterSlashing struct {
|
|
Attestation1 *IndexedAttestation `json:"attestation_1"`
|
|
Attestation2 *IndexedAttestation `json:"attestation_2"`
|
|
}
|
|
|
|
type Deposit struct {
|
|
Proof []string `json:"proof"`
|
|
Data *DepositData `json:"data"`
|
|
}
|
|
|
|
type DepositData struct {
|
|
Pubkey string `json:"pubkey"`
|
|
WithdrawalCredentials string `json:"withdrawal_credentials"`
|
|
Amount string `json:"amount"`
|
|
Signature string `json:"signature"`
|
|
}
|
|
|
|
type IndexedAttestation struct {
|
|
AttestingIndices []string `json:"attesting_indices"`
|
|
Data *AttestationData `json:"data"`
|
|
Signature string `json:"signature"`
|
|
}
|
|
|
|
type SyncAggregate struct {
|
|
SyncCommitteeBits string `json:"sync_committee_bits"`
|
|
SyncCommitteeSignature string `json:"sync_committee_signature"`
|
|
}
|
|
|
|
type Withdrawal struct {
|
|
WithdrawalIndex string `json:"index"`
|
|
ValidatorIndex string `json:"validator_index"`
|
|
ExecutionAddress string `json:"address"`
|
|
Amount string `json:"amount"`
|
|
}
|