Skip to content

Instantly share code, notes, and snippets.

@mpetrunic
Created May 24, 2020 21:49
Show Gist options
  • Select an option

  • Save mpetrunic/193ca6111cb232b5b7a30be8e3241c9e to your computer and use it in GitHub Desktop.

Select an option

Save mpetrunic/193ca6111cb232b5b7a30be8e3241c9e to your computer and use it in GitHub Desktop.
syntax = "proto3";
package bn_openapi_bundle;
import "google/api/annotations.proto";
import "google/protobuf/descriptor.proto";
import "google/protobuf/empty.proto";
message Slot {
string value = 1;
}
message ProposerIndex {
string value = 1;
}
message ParentRoot {
string value = 1;
}
message StateRoot {
string value = 1;
}
message RandaoReveal {
string value = 1;
}
message DepositRoot {
string value = 1;
}
message DepositCount {
string value = 1;
}
message BlockHash {
string value = 1;
}
message Eth1Data {
DepositRoot deposit_root = 1;
DepositCount deposit_count = 2;
BlockHash block_hash = 3;
}
message BodyRoot {
string value = 1;
}
message Message {
Slot slot = 1;
ProposerIndex proposer_index = 2;
ParentRoot parent_root = 3;
StateRoot state_root = 4;
BodyRoot body_root = 5;
}
message SignedHeader_1 {
Message message = 1;
string signature = 2;
}
message SignedHeader_2 {
Message message = 1;
string signature = 2;
}
message ProposerSlashings {
SignedHeader_1 signed_header_1 = 1;
SignedHeader_2 signed_header_2 = 2;
}
message Signature {
string value = 1;
}
message BeaconBlockRoot {
string value = 1;
}
message Source {
string epoch = 1;
string root = 2;
}
message Target {
string epoch = 1;
string root = 2;
}
message Data {
string slot = 1;
string index = 2;
BeaconBlockRoot beacon_block_root = 3;
Source source = 4;
Target target = 5;
}
message Attestation_1 {
repeated string attesting_indices = 1;
Signature signature = 2;
Data data = 3;
}
message Attestation_2 {
repeated string attesting_indices = 1;
Signature signature = 2;
Data data = 3;
}
message AttesterSlashings {
Attestation_1 attestation_1 = 1;
Attestation_2 attestation_2 = 2;
}
message Attestations {
string aggregation_bits = 1;
Signature signature = 2;
Data data = 3;
}
message Proof {
string value = 1;
}
message WithdrawalCredentials {
string value = 1;
}
message Amount {
string value = 1;
}
message Deposits {
repeated Proof proof = 1;
Data data = 2;
}
message Epoch {
string value = 1;
}
message ValidatorIndex {
string value = 1;
}
message VoluntaryExits {
Epoch epoch = 1;
ValidatorIndex validator_index = 2;
}
message Body {
RandaoReveal randao_reveal = 1;
Eth1Data eth1_data = 2;
string graffiti = 3;
repeated ProposerSlashings proposer_slashings = 4;
repeated AttesterSlashings attester_slashings = 5;
repeated Attestations attestations = 6;
repeated Deposits deposits = 7;
repeated VoluntaryExits voluntary_exits = 8;
}
message BeaconBlock {
Slot slot = 1;
ProposerIndex proposer_index = 2;
ParentRoot parent_root = 3;
StateRoot state_root = 4;
Body body = 5;
}
message BeaconBlockHeader {
Slot slot = 1;
ProposerIndex proposer_index = 2;
ParentRoot parent_root = 3;
StateRoot state_root = 4;
BodyRoot body_root = 5;
}
message SignedBeaconBlock {
Message message = 1;
string signature = 2;
}
message Fork {
string previous_version = 1;
string current_version = 2;
string epoch = 3;
}
message LatestBlockHeader {
Slot slot = 1;
ProposerIndex proposer_index = 2;
ParentRoot parent_root = 3;
StateRoot state_root = 4;
BodyRoot body_root = 5;
}
message BlockRoots {
string value = 1;
}
message StateRoots {
string value = 1;
}
message HistoricalRoots {
string value = 1;
}
message Eth1DataVotes {
DepositRoot deposit_root = 1;
DepositCount deposit_count = 2;
BlockHash block_hash = 3;
}
message Index {
string value = 1;
}
message EffectiveBalance {
string value = 1;
}
message ActivationEligibilityEpoch {
string value = 1;
}
message ActivationEpoch {
string value = 1;
}
message ExitEpoch {
string value = 1;
}
message WithdrawableEpoch {
string value = 1;
}
message Validators {
Index index = 1;
string pubkey = 2;
WithdrawalCredentials withdrawal_credentials = 3;
EffectiveBalance effective_balance = 4;
bool slashed = 5;
ActivationEligibilityEpoch activation_eligibility_epoch = 6;
ActivationEpoch activation_epoch = 7;
ExitEpoch exit_epoch = 8;
WithdrawableEpoch withdrawable_epoch = 9;
}
message Balances {
string value = 1;
}
message RandaoMixes {
string value = 1;
}
message Slashings {
string value = 1;
}
message PreviousEpochAttestations {
string aggregation_bits = 1;
Data data = 2;
string inclusion_delay = 3;
string proposer_index = 4;
}
message CurrentEpochAttestations {
string aggregation_bits = 1;
Data data = 2;
string inclusion_delay = 3;
string proposer_index = 4;
}
message PreviousJustifiedCheckpoint {
string epoch = 1;
string root = 2;
}
message CurrentJustifiedCheckpoint {
string epoch = 1;
string root = 2;
}
message FinalizedCheckpoint {
string epoch = 1;
string root = 2;
}
message BeaconState {
string genesis_time = 1;
string genesis_validators_root = 2;
string slot = 3;
Fork fork = 4;
LatestBlockHeader latest_block_header = 5;
repeated BlockRoots block_roots = 6;
repeated StateRoots state_roots = 7;
repeated HistoricalRoots historical_roots = 8;
Eth1Data eth1_data = 9;
repeated Eth1DataVotes eth1_data_votes = 10;
string eth1_deposit_index = 11;
repeated Validators validators = 12;
repeated Balances balances = 13;
repeated RandaoMixes randao_mixes = 14;
repeated Slashings slashings = 15;
repeated PreviousEpochAttestations previous_epoch_attestations = 16;
repeated CurrentEpochAttestations current_epoch_attestations = 17;
string justification_bits = 18;
PreviousJustifiedCheckpoint previous_justified_checkpoint = 19;
CurrentJustifiedCheckpoint current_justified_checkpoint = 20;
FinalizedCheckpoint finalized_checkpoint = 21;
}
message Validator {
Index index = 1;
string pubkey = 2;
WithdrawalCredentials withdrawal_credentials = 3;
EffectiveBalance effective_balance = 4;
bool slashed = 5;
ActivationEligibilityEpoch activation_eligibility_epoch = 6;
ActivationEpoch activation_epoch = 7;
ExitEpoch exit_epoch = 8;
WithdrawableEpoch withdrawable_epoch = 9;
}
message AggregatorModulo {
string value = 1;
}
message AttestationSlot {
string value = 1;
}
message CommitteeIndex {
string value = 1;
}
message AttesterDuty {
string validator_pubkey = 1;
AggregatorModulo aggregator_modulo = 2;
AttestationSlot attestation_slot = 3;
CommitteeIndex committee_index = 4;
}
message Attestation {
string aggregation_bits = 1;
Signature signature = 2;
Data data = 3;
}
message AggregateAndProof {
string aggregator_index = 1;
Attestation attestation = 2;
string selection_proof = 3;
}
message SignedAggregateAndProof {
Message message = 1;
string signature = 2;
}
message Attestation {
string aggregation_bits = 1;
Signature signature = 2;
Data data = 3;
}
message Fork {
string previous_version = 1;
string current_version = 2;
string epoch = 3;
}
message PublicKey {
string value = 1;
}
message Uint64 {
string value = 1;
}
message StartingSlot {
string value = 1;
}
message CurrentSlot {
string value = 1;
}
message HighestSlot {
string value = 1;
}
message SyncingStatus {
StartingSlot starting_slot = 1;
CurrentSlot current_slot = 2;
HighestSlot highest_slot = 3;
}
message GenesisTime {
string value = 1;
}
message Version {
string value = 1;
}
message Root {
string value = 1;
}
message Hex {
string value = 1;
}
message Signature {
string value = 1;
}
message InvalidRequest {
}
message InternalError {
}
message CurrentlySyncing {
}
message GenesisTime {
string value = 1;
}
message OK {
GenesisTime genesis_time = 1;
string genesis_validators_root = 2;
}
message OK {
OK ok = 1;
}
message OK {
OK ok = 1;
}
message OK {
string text_event_stream = 1;
}
message OK {
string string = 1;
}
message SyncStatus {
StartingSlot starting_slot = 1;
CurrentSlot current_slot = 2;
HighestSlot highest_slot = 3;
}
message OK {
OK ok = 1;
}
message GETValidatorPubkeyParameters {
string pubkey = 1;
}
message OK {
OK ok = 1;
}
message GETValidatorDutiesEpochAttesterParameters {
repeated string validator_pubkeys = 1;
string epoch = 2;
}
message OK {
repeated OK ok = 1;
}
message GETValidatorDutiesEpochProposerParameters {
int64 epoch = 1;
}
message OK {
OK ok = 1;
}
message SlotSignature {
string value = 1;
}
message RequestBody {
string attestation_committee_index = 1;
Slot slot = 2;
SlotSignature slot_signature = 3;
string aggregator_pubkey = 4;
}
message RequestBody {
repeated RequestBody request_body = 1;
}
message POSTValidatorBeaconCommitteeSubscriptionsParameters {
RequestBody request_body = 1;
}
message GETValidatorBeaconCommitteeSubscriptionCommitteeIndexAttestationsParameters {
int32 committee_index = 1;
string attestation_data = 2;
}
message OK {
repeated OK ok = 1;
}
message GETValidatorAggregateAndProofParameters {
string attestation_data = 1;
}
message OK {
OK ok = 1;
}
message RequestBody {
repeated RequestBody request_body = 1;
}
message POSTValidatorAggregateAndProofParameters {
RequestBody request_body = 1;
}
message GETValidatorAttestationParameters {
string validator_pubkey = 1;
int64 slot = 2;
string committee_index = 3;
}
message OK {
OK ok = 1;
}
message RequestBody {
repeated RequestBody request_body = 1;
}
message POSTValidatorAttestationParameters {
RequestBody request_body = 1;
}
message GETValidatorBlockParameters {
string slot = 1;
string randao_reveal = 2;
}
message POSTValidatorBlockParameters {
RequestBody request_body = 1;
}
service Bn_openapi_bundle {
rpc GETBeaconGenesis ( google.protobuf.Empty ) returns ( OK ) {
option (google.api.http) = { get:"/beacon/genesis" };
}
rpc GETBeaconFork ( google.protobuf.Empty ) returns ( OK ) {
option (google.api.http) = { get:"/beacon/fork" };
}
rpc GETBeaconForkStream ( google.protobuf.Empty ) returns ( OK ) {
option (google.api.http) = { get:"/beacon/fork/stream" };
}
rpc GETNodeVersion ( google.protobuf.Empty ) returns ( OK ) {
option (google.api.http) = { get:"/node/version" };
}
rpc GETNodeSyncing ( google.protobuf.Empty ) returns ( OK ) {
option (google.api.http) = { get:"/node/syncing" };
}
rpc GETValidatorPubkey ( GETValidatorPubkeyParameters ) returns ( OK ) {
option (google.api.http) = { get:"/validator/{pubkey}" };
}
rpc GETValidatorDutiesEpochAttester ( GETValidatorDutiesEpochAttesterParameters ) returns ( OK ) {
option (google.api.http) = { get:"/validator/duties/{epoch}/attester" };
}
rpc GETValidatorDutiesEpochProposer ( GETValidatorDutiesEpochProposerParameters ) returns ( OK ) {
option (google.api.http) = { get:"/validator/duties/{epoch}/proposer" };
}
rpc POSTValidatorBeaconCommitteeSubscriptions ( POSTValidatorBeaconCommitteeSubscriptionsParameters ) returns ( google.protobuf.Empty ) {
option (google.api.http) = { post:"/validator/beacon_committee_subscriptions" };
}
rpc GETValidatorBeaconCommitteeSubscriptionCommitteeIndexAttestations ( GETValidatorBeaconCommitteeSubscriptionCommitteeIndexAttestationsParameters ) returns ( OK ) {
option (google.api.http) = { get:"/validator/beacon_committee_subscription/{committee_index}/attestations" };
}
rpc GETValidatorAggregateAndProof ( GETValidatorAggregateAndProofParameters ) returns ( OK ) {
option (google.api.http) = { get:"/validator/aggregate_and_proof" };
}
rpc POSTValidatorAggregateAndProof ( POSTValidatorAggregateAndProofParameters ) returns ( google.protobuf.Empty ) {
option (google.api.http) = { post:"/validator/aggregate_and_proof" };
}
rpc GETValidatorAttestation ( GETValidatorAttestationParameters ) returns ( OK ) {
option (google.api.http) = { get:"/validator/attestation" };
}
rpc POSTValidatorAttestation ( POSTValidatorAttestationParameters ) returns ( google.protobuf.Empty ) {
option (google.api.http) = { post:"/validator/attestation" };
}
rpc GETValidatorBlock ( GETValidatorBlockParameters ) returns ( OK ) {
option (google.api.http) = { get:"/validator/block" };
}
rpc POSTValidatorBlock ( POSTValidatorBlockParameters ) returns ( google.protobuf.Empty ) {
option (google.api.http) = { post:"/validator/block" };
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment