| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- syntax = "proto3";
- package publicrpc.v1;
- option go_package = "github.com/certusone/wormhole/node/pkg/proto/publicrpc/v1;publicrpcv1";
- import "gossip/v1/gossip.proto";
- import "google/api/annotations.proto";
- enum ChainID {
- CHAIN_ID_UNSPECIFIED = 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.
- ChainID emitter_chain = 1;
- // Hex-encoded (without leading 0x) emitter address.
- string emitter_address = 2;
- // Sequence number for (emitter_chain, emitter_address).
- int64 sequence = 3;
- }
- // PublicRPCService service exposes endpoints to be consumed externally; GUIs, historical record keeping, etc.
- service PublicRPCService {
- // GetLastHeartbeats returns the last heartbeat received for each guardian node in the
- // node's active guardian set. Heartbeats received by nodes not in the guardian set are ignored.
- // The heartbeat value is null if no heartbeat has yet been received.
- rpc GetLastHeartbeats (GetLastHeartbeatsRequest) returns (GetLastHeartbeatsResponse) {
- option (google.api.http) = {
- get: "/v1/heartbeats"
- };
- }
- rpc GetSignedVAA (GetSignedVAARequest) returns (GetSignedVAAResponse) {
- option (google.api.http) = {
- get: "/v1/signed_vaa/{message_id.emitter_chain}/{message_id.emitter_address}/{message_id.sequence}"
- };
- }
- rpc GetCurrentGuardianSet (GetCurrentGuardianSetRequest) returns (GetCurrentGuardianSetResponse) {
- option (google.api.http) = {
- get: "/v1/guardianset/current"
- };
- }
- }
- message GetSignedVAARequest {
- MessageID message_id = 1;
- }
- message GetSignedVAAResponse {
- bytes vaa_bytes = 1;
- }
- message GetLastHeartbeatsRequest {
- }
- message GetLastHeartbeatsResponse {
- message Entry {
- // Verified, hex-encoded (with leading 0x) guardian address. This is the guardian address
- // which signed this heartbeat. The GuardianAddr field inside the heartbeat
- // is NOT verified - remote nodes can put arbitrary data in it.
- string verified_guardian_addr = 1;
- // Base58-encoded libp2p node address that sent this heartbeat, used to
- // distinguish between multiple nodes running for the same guardian.
- string p2p_node_addr = 2;
- // Raw heartbeat received from the network. Data is only as trusted
- // as the guardian node that sent it - none of the fields are verified.
- gossip.v1.Heartbeat raw_heartbeat = 3;
- }
- repeated Entry entries = 1;
- }
- message GetCurrentGuardianSetRequest {
- }
- message GetCurrentGuardianSetResponse {
- GuardianSet guardian_set = 1;
- }
- message GuardianSet {
- // Guardian set index
- uint32 index = 1;
- // List of guardian addresses as human-readable hex-encoded (leading 0x) addresses.
- repeated string addresses = 2;
- }
|