wormhole/proto/publicrpc/v1/publicrpc.proto

56 lines
1.5 KiB
Protocol Buffer
Raw Normal View History

syntax = "proto3";
package publicrpc.v1;
option go_package = "github.com/certusone/wormhole/bridge/pkg/proto/publicrpc/v1;publicrpcv1";
import "gossip/v1/gossip.proto";
import "google/api/annotations.proto";
enum EmitterChain {
CHAIN_ID_UNKNOWN = 0;
CHAIN_ID_SOLANA = 1;
CHAIN_ID_ETHEREUM = 2;
CHAIN_ID_TERRA = 3;
CHAIN_ID_BSC = 4;
}
// MessageID is a VAA's globally unique identifier (see data availability design document).
message MessageID {
// Emitter chain ID.
EmitterChain emitter_chain = 1;
// Hex-encoded emitter address.
string emitter_address = 2;
// Sequence number for (emitter_chain, emitter_address).
int64 sequence = 3;
}
// Publicrpc service exposes endpoints to be consumed externally; GUIs, historical record keeping, etc.
service Publicrpc {
// GetRawHeartbeats rpc endpoint returns a stream of the p2p heartbeat messages received.
// The GetRawHeartbeats stream will include all messages received by the guardian,
// without any filtering or verification of message content.
rpc GetRawHeartbeats (GetRawHeartbeatsRequest) returns (stream gossip.v1.Heartbeat) {
option (google.api.http) = {
get: "/v1/heartbeats:stream_raw"
};
};
rpc GetSignedVAA (GetSignedVAARequest) returns (GetSignedVAAResponse) {
option (google.api.http) = {
get: "/v1/signed_vaa/{message_id.emitter_chain}/{message_id.emitter_address}/{message_id.sequence}"
};
}
}
message GetRawHeartbeatsRequest {
}
message GetSignedVAARequest {
MessageID message_id = 1;
}
message GetSignedVAAResponse {
bytes vaa_bytes = 1;
}