BatchVAA protos and Spy updates (#1691)
* gossip.proto - add nonce to SignedBatchObservation * publicrpc.proto - add nonce to BatchID * spy.proto - filters for BatchVAA, new VAA endpoint * node - spy.go allow subscribing to BatchVAAs * add built Go protos to node/pkg/proto * improve & simplify Publish logic * simplify filter match logic * update protos - consistent naming & types for transaction identifiers * add Spy unit & e2e tests
This commit is contained in:
parent
d00c8bad29
commit
1b3590b9ce
|
@ -1,8 +1,8 @@
|
|||
package spy
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"encoding/hex"
|
||||
"fmt"
|
||||
"net"
|
||||
"net/http"
|
||||
|
@ -69,84 +69,244 @@ var SpyCmd = &cobra.Command{
|
|||
|
||||
type spyServer struct {
|
||||
spyv1.UnimplementedSpyRPCServiceServer
|
||||
logger *zap.Logger
|
||||
subs map[string]*subscription
|
||||
subsMu sync.Mutex
|
||||
logger *zap.Logger
|
||||
subsSignedVaa map[string]*subscriptionSignedVaa
|
||||
subsSignedVaaMu sync.Mutex
|
||||
subsAllVaa map[string]*subscriptionAllVaa
|
||||
subsAllVaaMu sync.Mutex
|
||||
}
|
||||
|
||||
type message struct {
|
||||
vaaBytes []byte
|
||||
}
|
||||
|
||||
type filter struct {
|
||||
type filterSignedVaa struct {
|
||||
chainId vaa.ChainID
|
||||
emitterAddr vaa.Address
|
||||
}
|
||||
|
||||
type subscription struct {
|
||||
filters []filter
|
||||
type subscriptionSignedVaa struct {
|
||||
filters []filterSignedVaa
|
||||
ch chan message
|
||||
}
|
||||
type subscriptionAllVaa struct {
|
||||
filters []*spyv1.FilterEntry
|
||||
ch chan *spyv1.SubscribeSignedVAAByTypeResponse
|
||||
}
|
||||
|
||||
func subscriptionId() string {
|
||||
return uuid.New().String()
|
||||
}
|
||||
|
||||
func decodeEmitterAddr(hexAddr string) (vaa.Address, error) {
|
||||
address, err := hex.DecodeString(hexAddr)
|
||||
if err != nil {
|
||||
return vaa.Address{}, status.Error(codes.InvalidArgument, fmt.Sprintf("failed to decode address: %v", err))
|
||||
}
|
||||
if len(address) != 32 {
|
||||
return vaa.Address{}, status.Error(codes.InvalidArgument, "address must be 32 bytes")
|
||||
}
|
||||
|
||||
addr := vaa.Address{}
|
||||
copy(addr[:], address)
|
||||
|
||||
return addr, nil
|
||||
}
|
||||
|
||||
func (s *spyServer) Publish(vaaBytes []byte) error {
|
||||
s.subsMu.Lock()
|
||||
defer s.subsMu.Unlock()
|
||||
func (s *spyServer) PublishSignedVAA(vaaBytes []byte) error {
|
||||
s.subsSignedVaaMu.Lock()
|
||||
defer s.subsSignedVaaMu.Unlock()
|
||||
|
||||
var v *vaa.VAA
|
||||
|
||||
for _, sub := range s.subs {
|
||||
for _, sub := range s.subsSignedVaa {
|
||||
if len(sub.filters) == 0 {
|
||||
sub.ch <- message{vaaBytes: vaaBytes}
|
||||
} else {
|
||||
if v == nil {
|
||||
var err error
|
||||
v, err = vaa.Unmarshal(vaaBytes)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
continue
|
||||
}
|
||||
|
||||
for _, fi := range sub.filters {
|
||||
if fi.chainId == v.EmitterChain && fi.emitterAddr == v.EmitterAddress {
|
||||
sub.ch <- message{vaaBytes: vaaBytes}
|
||||
}
|
||||
if v == nil {
|
||||
var err error
|
||||
v, err = vaa.Unmarshal(vaaBytes)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
for _, fi := range sub.filters {
|
||||
if fi.chainId == v.EmitterChain && fi.emitterAddr == v.EmitterAddress {
|
||||
sub.ch <- message{vaaBytes: vaaBytes}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// TransactionIdMatches checks if both TxIds have the same value.
|
||||
func TransactionIdMatches(g *gossipv1.SignedBatchVAAWithQuorum, t *spyv1.BatchFilter) bool {
|
||||
return bytes.Equal(g.TxId, t.TxId)
|
||||
}
|
||||
|
||||
// BatchMatchFilter asserts that the obervation matches the values of the filter.
|
||||
func BatchMatchesFilter(g *gossipv1.SignedBatchVAAWithQuorum, f *spyv1.BatchFilter) bool {
|
||||
// check the chain ID
|
||||
if g.ChainId != uint32(f.ChainId) {
|
||||
return false
|
||||
}
|
||||
|
||||
// check the transaction ID
|
||||
txMatch := TransactionIdMatches(g, f)
|
||||
if !txMatch {
|
||||
return false
|
||||
}
|
||||
|
||||
// check the Nonce
|
||||
if f.Nonce >= 1 {
|
||||
// filter has a nonce, so make sure it matches
|
||||
if g.Nonce != f.Nonce {
|
||||
// filter's nonce does not match the nonce of the Batch.
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
// HandleGossipVAA compares a gossip message to client subscriptions & filters,
|
||||
// and forwards the VAA to those requesting it.
|
||||
func (s *spyServer) HandleGossipVAA(g *gossipv1.SignedVAAWithQuorum) error {
|
||||
s.subsAllVaaMu.Lock()
|
||||
defer s.subsAllVaaMu.Unlock()
|
||||
|
||||
v, err := vaa.Unmarshal(g.Vaa)
|
||||
if err != nil {
|
||||
s.logger.Error("failed unmarshaing VAA bytes from gossipv1.SignedVAAWithQuorum.",
|
||||
zap.Error(err))
|
||||
return err
|
||||
}
|
||||
|
||||
// resType defines which oneof proto will be retuned - res type "SignedVaa" is *gossipv1.SignedVAAWithQuorum
|
||||
resType := &spyv1.SubscribeSignedVAAByTypeResponse_SignedVaa{
|
||||
SignedVaa: g,
|
||||
}
|
||||
|
||||
// envelope is the highest level proto struct, the wrapper proto that contains one of the VAA types.
|
||||
envelope := &spyv1.SubscribeSignedVAAByTypeResponse{
|
||||
VaaType: resType,
|
||||
}
|
||||
|
||||
// loop through the subscriptions and send responses to everyone that wants this VAA
|
||||
for _, sub := range s.subsAllVaa {
|
||||
if len(sub.filters) == 0 {
|
||||
// this subscription has no filters, send them the VAA.
|
||||
sub.ch <- envelope
|
||||
continue
|
||||
}
|
||||
|
||||
// this subscription has filters.
|
||||
for _, filterEntry := range sub.filters {
|
||||
filter := filterEntry.GetFilter()
|
||||
switch t := filter.(type) {
|
||||
case *spyv1.FilterEntry_EmitterFilter:
|
||||
filterAddr := t.EmitterFilter.EmitterAddress
|
||||
filterChain := vaa.ChainID(t.EmitterFilter.ChainId)
|
||||
|
||||
if v.EmitterChain == filterChain && v.EmitterAddress.String() == filterAddr {
|
||||
// it is a match, send the response
|
||||
sub.ch <- envelope
|
||||
}
|
||||
default:
|
||||
panic(fmt.Sprintf("unsupported filter type in subscriptions: %T", filter))
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// HandleGossipBatchVAA compares a gossip message to client subscriptions & filters,
|
||||
// and forwards the VAA to those requesting it.
|
||||
func (s *spyServer) HandleGossipBatchVAA(g *gossipv1.SignedBatchVAAWithQuorum) error {
|
||||
s.subsAllVaaMu.Lock()
|
||||
defer s.subsAllVaaMu.Unlock()
|
||||
|
||||
b, err := vaa.UnmarshalBatch(g.BatchVaa)
|
||||
if err != nil {
|
||||
s.logger.Error("failed unmarshaing BatchVAA bytes from gossipv1.SignedBatchVAAWithQuorum.",
|
||||
zap.Error(err))
|
||||
return err
|
||||
}
|
||||
|
||||
// resType defines which oneof proto will be retuned -
|
||||
// res type "SignedBatchVaa" is *gossipv1.SignedBatchVAAWithQuorum
|
||||
resType := &spyv1.SubscribeSignedVAAByTypeResponse_SignedBatchVaa{
|
||||
SignedBatchVaa: g,
|
||||
}
|
||||
|
||||
// envelope is the highest level proto struct, the wrapper proto that contains one of the VAA types.
|
||||
envelope := &spyv1.SubscribeSignedVAAByTypeResponse{
|
||||
VaaType: resType,
|
||||
}
|
||||
|
||||
// loop through the subscriptions and send responses to everyone that wants this VAA
|
||||
for _, sub := range s.subsAllVaa {
|
||||
if len(sub.filters) == 0 {
|
||||
// this subscription has no filters, send them the VAA.
|
||||
sub.ch <- envelope
|
||||
continue
|
||||
}
|
||||
|
||||
// this subscription has filters.
|
||||
for _, filterEntry := range sub.filters {
|
||||
filter := filterEntry.GetFilter()
|
||||
switch t := filter.(type) {
|
||||
case *spyv1.FilterEntry_EmitterFilter:
|
||||
|
||||
filterChain := uint32(t.EmitterFilter.ChainId)
|
||||
if g.ChainId != filterChain {
|
||||
// VAA does not pass the filter
|
||||
continue
|
||||
}
|
||||
|
||||
// BatchVAAs do not have EmitterAddress at the top level - each Observation
|
||||
// in the Batch has an EmitterAddress.
|
||||
|
||||
// In order to make it easier for integrators, allow subscribing to BatchVAAs by
|
||||
// EmitterFilter. Send BatchVAAs to subscriptions with an EmitterFilter that
|
||||
// matches 1 (or more) Obervation(s) in the batch.
|
||||
|
||||
filterAddr := t.EmitterFilter.EmitterAddress
|
||||
|
||||
// check each Observation to see if it meets the criteria of the filter.
|
||||
for _, obs := range b.Observations {
|
||||
if obs.Observation.EmitterAddress.String() == filterAddr {
|
||||
// it is a match, send the response to the subscriber.
|
||||
sub.ch <- envelope
|
||||
break
|
||||
}
|
||||
|
||||
}
|
||||
case *spyv1.FilterEntry_BatchFilter:
|
||||
if BatchMatchesFilter(g, t.BatchFilter) {
|
||||
sub.ch <- envelope
|
||||
}
|
||||
case *spyv1.FilterEntry_BatchTransactionFilter:
|
||||
// make a BatchFilter struct from the BatchTransactionFilter since the latter is
|
||||
// a subset of the former's properties, so we can use TransactionIdMatches.
|
||||
batchFilter := &spyv1.BatchFilter{
|
||||
ChainId: t.BatchTransactionFilter.ChainId,
|
||||
TxId: t.BatchTransactionFilter.TxId,
|
||||
}
|
||||
|
||||
if BatchMatchesFilter(g, batchFilter) {
|
||||
sub.ch <- envelope
|
||||
}
|
||||
default:
|
||||
panic(fmt.Sprintf("unsupported filter type in subscriptions: %T", filter))
|
||||
}
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *spyServer) SubscribeSignedVAA(req *spyv1.SubscribeSignedVAARequest, resp spyv1.SpyRPCService_SubscribeSignedVAAServer) error {
|
||||
var fi []filter
|
||||
var fi []filterSignedVaa
|
||||
if req.Filters != nil {
|
||||
for _, f := range req.Filters {
|
||||
switch t := f.Filter.(type) {
|
||||
case *spyv1.FilterEntry_EmitterFilter:
|
||||
addr, err := decodeEmitterAddr(t.EmitterFilter.EmitterAddress)
|
||||
addr, err := vaa.StringToAddress(t.EmitterFilter.EmitterAddress)
|
||||
if err != nil {
|
||||
return status.Error(codes.InvalidArgument, fmt.Sprintf("failed to decode emitter address: %v", err))
|
||||
}
|
||||
fi = append(fi, filter{
|
||||
fi = append(fi, filterSignedVaa{
|
||||
chainId: vaa.ChainID(t.EmitterFilter.ChainId),
|
||||
emitterAddr: addr,
|
||||
})
|
||||
|
@ -156,19 +316,19 @@ func (s *spyServer) SubscribeSignedVAA(req *spyv1.SubscribeSignedVAARequest, res
|
|||
}
|
||||
}
|
||||
|
||||
s.subsMu.Lock()
|
||||
s.subsSignedVaaMu.Lock()
|
||||
id := subscriptionId()
|
||||
sub := &subscription{
|
||||
sub := &subscriptionSignedVaa{
|
||||
ch: make(chan message, 1),
|
||||
filters: fi,
|
||||
}
|
||||
s.subs[id] = sub
|
||||
s.subsMu.Unlock()
|
||||
s.subsSignedVaa[id] = sub
|
||||
s.subsSignedVaaMu.Unlock()
|
||||
|
||||
defer func() {
|
||||
s.subsMu.Lock()
|
||||
defer s.subsMu.Unlock()
|
||||
delete(s.subs, id)
|
||||
s.subsSignedVaaMu.Lock()
|
||||
defer s.subsSignedVaaMu.Unlock()
|
||||
delete(s.subsSignedVaa, id)
|
||||
}()
|
||||
|
||||
for {
|
||||
|
@ -185,10 +345,63 @@ func (s *spyServer) SubscribeSignedVAA(req *spyv1.SubscribeSignedVAARequest, res
|
|||
}
|
||||
}
|
||||
|
||||
// SubscribeSignedVAAByType fields requests for subscriptions. Each new subscription adds a channel and request params (filters)
|
||||
// to the map of active subscriptions.
|
||||
func (s *spyServer) SubscribeSignedVAAByType(req *spyv1.SubscribeSignedVAAByTypeRequest, resp spyv1.SpyRPCService_SubscribeSignedVAAByTypeServer) error {
|
||||
var fi []*spyv1.FilterEntry
|
||||
if req.Filters != nil {
|
||||
for _, f := range req.Filters {
|
||||
switch t := f.Filter.(type) {
|
||||
|
||||
case *spyv1.FilterEntry_EmitterFilter:
|
||||
// validate the emitter address is valid by decoding it
|
||||
_, err := vaa.StringToAddress(t.EmitterFilter.EmitterAddress)
|
||||
if err != nil {
|
||||
return status.Error(codes.InvalidArgument, fmt.Sprintf("failed to decode emitter address: %v", err))
|
||||
}
|
||||
fi = append(fi, &spyv1.FilterEntry{Filter: t})
|
||||
|
||||
case *spyv1.FilterEntry_BatchFilter,
|
||||
*spyv1.FilterEntry_BatchTransactionFilter:
|
||||
fi = append(fi, &spyv1.FilterEntry{Filter: t})
|
||||
default:
|
||||
return status.Error(codes.InvalidArgument, "unsupported filter type")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
s.subsAllVaaMu.Lock()
|
||||
id := subscriptionId()
|
||||
sub := &subscriptionAllVaa{
|
||||
ch: make(chan *spyv1.SubscribeSignedVAAByTypeResponse, 1),
|
||||
filters: fi,
|
||||
}
|
||||
s.subsAllVaa[id] = sub
|
||||
s.subsAllVaaMu.Unlock()
|
||||
|
||||
defer func() {
|
||||
s.subsAllVaaMu.Lock()
|
||||
defer s.subsAllVaaMu.Unlock()
|
||||
delete(s.subsAllVaa, id)
|
||||
}()
|
||||
|
||||
for {
|
||||
select {
|
||||
case <-resp.Context().Done():
|
||||
return resp.Context().Err()
|
||||
case msg := <-sub.ch:
|
||||
if err := resp.Send(msg); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func newSpyServer(logger *zap.Logger) *spyServer {
|
||||
return &spyServer{
|
||||
logger: logger.Named("spyserver"),
|
||||
subs: make(map[string]*subscription),
|
||||
logger: logger.Named("spyserver"),
|
||||
subsSignedVaa: make(map[string]*subscriptionSignedVaa),
|
||||
subsAllVaa: make(map[string]*subscriptionAllVaa),
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -198,7 +411,7 @@ func spyServerRunnable(s *spyServer, logger *zap.Logger, listenAddr string) (sup
|
|||
return nil, nil, fmt.Errorf("failed to listen: %w", err)
|
||||
}
|
||||
|
||||
logger.Info("publicrpc server listening", zap.String("addr", l.Addr().String()))
|
||||
logger.Info("spy server listening", zap.String("addr", l.Addr().String()))
|
||||
|
||||
grpcServer := common.NewInstrumentedGRPCServer(logger)
|
||||
spyv1.RegisterSpyRPCServiceServer(grpcServer, s)
|
||||
|
@ -298,9 +511,12 @@ func runSpy(cmd *cobra.Command, args []string) {
|
|||
case v := <-signedInC:
|
||||
logger.Info("Received signed VAA",
|
||||
zap.Any("vaa", v.Vaa))
|
||||
if err := s.Publish(v.Vaa); err != nil {
|
||||
if err := s.PublishSignedVAA(v.Vaa); err != nil {
|
||||
logger.Error("failed to publish signed VAA", zap.Error(err))
|
||||
}
|
||||
if err := s.HandleGossipVAA(v); err != nil {
|
||||
logger.Error("failed to HandleGossipVAA", zap.Error(err))
|
||||
}
|
||||
}
|
||||
}
|
||||
}()
|
||||
|
|
|
@ -0,0 +1,756 @@
|
|||
package spy
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"encoding/hex"
|
||||
"fmt"
|
||||
"io"
|
||||
"net"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/certusone/wormhole/node/pkg/common"
|
||||
gossipv1 "github.com/certusone/wormhole/node/pkg/proto/gossip/v1"
|
||||
publicrpcv1 "github.com/certusone/wormhole/node/pkg/proto/publicrpc/v1"
|
||||
spyv1 "github.com/certusone/wormhole/node/pkg/proto/spy/v1"
|
||||
ipfslog "github.com/ipfs/go-log/v2"
|
||||
"github.com/wormhole-foundation/wormhole/sdk/vaa"
|
||||
"go.uber.org/zap"
|
||||
|
||||
"google.golang.org/grpc"
|
||||
"google.golang.org/grpc/credentials/insecure"
|
||||
"google.golang.org/grpc/test/bufconn"
|
||||
)
|
||||
|
||||
const vaaNonce = uint32(1)
|
||||
const vaaSequence = uint64(1)
|
||||
const tx = "39c5940431b1507c2a496e945dfb6b6760771fb3c19f2531c5976decc16814ca"
|
||||
|
||||
var govEmitter = vaa.Address{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4}
|
||||
|
||||
// govAddress is the string representation of the govEmitter Address.
|
||||
// Leaving here in case it is helpful for future tests.
|
||||
// const govAddress = "0000000000000000000000000000000000000000000000000000000000000004"
|
||||
|
||||
func getTxBytes(tx string) []byte {
|
||||
bytes, err := hex.DecodeString(tx)
|
||||
if err != nil {
|
||||
panic("failed decoding Tx string to bytes")
|
||||
}
|
||||
return bytes
|
||||
}
|
||||
|
||||
// helper method for *vaa.VAA creation
|
||||
func getVAA(chainID vaa.ChainID, emitterAddr vaa.Address, nonce uint32) *vaa.VAA {
|
||||
var payload = []byte{97, 97, 97, 97, 97, 97}
|
||||
|
||||
vaa := &vaa.VAA{
|
||||
Version: vaa.SupportedVAAVersion,
|
||||
GuardianSetIndex: uint32(1),
|
||||
Signatures: nil,
|
||||
Timestamp: time.Unix(0, 0),
|
||||
Nonce: nonce,
|
||||
Sequence: vaaSequence,
|
||||
ConsistencyLevel: uint8(32),
|
||||
EmitterChain: chainID,
|
||||
EmitterAddress: emitterAddr,
|
||||
Payload: payload,
|
||||
}
|
||||
|
||||
return vaa
|
||||
}
|
||||
|
||||
// helper method for *vaa.BatchVAA creation
|
||||
func getBatchVAA(chainID vaa.ChainID, txID []byte, nonce uint32, emitterAddr vaa.Address) *vaa.BatchVAA {
|
||||
v := getVAA(chainID, emitterAddr, nonce)
|
||||
obs := &vaa.Observation{
|
||||
Index: uint8(0),
|
||||
Observation: v,
|
||||
}
|
||||
var obsList = []*vaa.Observation{}
|
||||
obsList = append(obsList, obs)
|
||||
|
||||
batchVAA := &vaa.BatchVAA{
|
||||
Version: vaa.BatchVAAVersion,
|
||||
GuardianSetIndex: uint32(1),
|
||||
Signatures: nil,
|
||||
Observations: obsList,
|
||||
}
|
||||
|
||||
return batchVAA
|
||||
}
|
||||
|
||||
// helper method for *gossipv1.SignedBatchVAAWithQuorum creation
|
||||
func getBatchVAAQuorumMessage(chainID vaa.ChainID, txID []byte, nonce uint32, emitterAddr vaa.Address) *gossipv1.SignedBatchVAAWithQuorum {
|
||||
batchVaa := getBatchVAA(chainID, txID, nonce, emitterAddr)
|
||||
vaaBytes, err := batchVaa.Marshal()
|
||||
if err != nil {
|
||||
panic("failed marshaling batchVAA.")
|
||||
}
|
||||
|
||||
msg := &gossipv1.SignedBatchVAAWithQuorum{
|
||||
BatchVaa: vaaBytes,
|
||||
ChainId: uint32(chainID),
|
||||
TxId: txID,
|
||||
Nonce: nonce,
|
||||
}
|
||||
return msg
|
||||
}
|
||||
|
||||
// wait for the server to establish a client subscription before returning.
|
||||
func waitForClientSubscriptionInit(server *spyServer) {
|
||||
for {
|
||||
server.subsAllVaaMu.Lock()
|
||||
subs := len(server.subsAllVaa)
|
||||
server.subsAllVaaMu.Unlock()
|
||||
|
||||
if subs > 0 {
|
||||
return
|
||||
}
|
||||
time.Sleep(time.Millisecond * 10)
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// unit tests
|
||||
//
|
||||
|
||||
// returns a gossip message and the pertinant values for filtering
|
||||
func batchMsg() (msg *gossipv1.SignedBatchVAAWithQuorum, chainID vaa.ChainID, txID []byte, nonce uint32, emitterAddr vaa.Address) {
|
||||
chainID = vaa.ChainIDEthereum
|
||||
txID = getTxBytes(tx)
|
||||
nonce = vaaNonce
|
||||
emitterAddr = govEmitter
|
||||
msg = getBatchVAAQuorumMessage(chainID, txID, nonce, emitterAddr)
|
||||
return msg, chainID, txID, nonce, emitterAddr
|
||||
}
|
||||
|
||||
// happy path of VAA and spyv1.FilterEntry comparison
|
||||
func TestSpyTransactionIdMatches(t *testing.T) {
|
||||
batchMsg, chainID, txID, _, _ := batchMsg()
|
||||
|
||||
filter := &spyv1.BatchFilter{
|
||||
ChainId: publicrpcv1.ChainID(chainID),
|
||||
TxId: txID,
|
||||
}
|
||||
matches := TransactionIdMatches(batchMsg, filter)
|
||||
if !matches {
|
||||
t.FailNow()
|
||||
}
|
||||
}
|
||||
|
||||
// filter does not match the VAA
|
||||
func TestSpyTransactionIdMatchesNoMatch(t *testing.T) {
|
||||
batchMsg, chainID, _, _, _ := batchMsg()
|
||||
filter := &spyv1.BatchFilter{
|
||||
ChainId: publicrpcv1.ChainID(chainID),
|
||||
TxId: []byte{1, 1, 1, 1}, // anything that does not match txBytes
|
||||
}
|
||||
matches := TransactionIdMatches(batchMsg, filter)
|
||||
if matches {
|
||||
// should not return true
|
||||
t.FailNow()
|
||||
}
|
||||
}
|
||||
|
||||
// happy path
|
||||
func TestSpyBatchMatchesFilter(t *testing.T) {
|
||||
batchMsg, chainID, txID, nonce, _ := batchMsg()
|
||||
|
||||
// filter without nonce
|
||||
filter := &spyv1.BatchFilter{
|
||||
ChainId: publicrpcv1.ChainID(chainID),
|
||||
TxId: txID,
|
||||
}
|
||||
matches := BatchMatchesFilter(batchMsg, filter)
|
||||
if !matches {
|
||||
t.FailNow()
|
||||
}
|
||||
|
||||
// filter with nonce
|
||||
nonceFilter := &spyv1.BatchFilter{
|
||||
ChainId: publicrpcv1.ChainID(chainID),
|
||||
TxId: txID,
|
||||
Nonce: nonce,
|
||||
}
|
||||
nonceMatches := BatchMatchesFilter(batchMsg, nonceFilter)
|
||||
if !nonceMatches {
|
||||
t.FailNow()
|
||||
}
|
||||
}
|
||||
|
||||
// filter is valid, but does not match the VAA
|
||||
func TestSpyBatchMatchesFilterNoMatch(t *testing.T) {
|
||||
batchMsg, chainID, txID, _, _ := batchMsg()
|
||||
|
||||
// different chainID
|
||||
solFilter := &spyv1.BatchFilter{
|
||||
ChainId: publicrpcv1.ChainID(vaa.ChainIDSolana),
|
||||
TxId: txID,
|
||||
}
|
||||
solMatches := BatchMatchesFilter(batchMsg, solFilter)
|
||||
if solMatches {
|
||||
// should not return true
|
||||
t.FailNow()
|
||||
}
|
||||
|
||||
// different transaction identifier
|
||||
txFilter := &spyv1.BatchFilter{
|
||||
ChainId: publicrpcv1.ChainID(chainID),
|
||||
TxId: []byte{1, 1, 1, 1}, // anything that does not match txBytes
|
||||
}
|
||||
txMatches := BatchMatchesFilter(batchMsg, txFilter)
|
||||
if txMatches {
|
||||
// should not return true
|
||||
t.FailNow()
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// gRPC server setup for e2e tests
|
||||
//
|
||||
|
||||
// for protobuf gRPC testing
|
||||
const bufSize = 1024 * 1024
|
||||
|
||||
var lis *bufconn.Listener
|
||||
var mockedSpyServer *spyServer
|
||||
|
||||
// mock the rpc server so it can run in CI without needing ports and such.
|
||||
func init() {
|
||||
// setup the spyServer as it is setup in prod, only mock what is necessary.
|
||||
logger := ipfslog.Logger("wormhole-spy-mocked-in-ci").Desugar()
|
||||
|
||||
// only print PANIC logs from the server's logger
|
||||
_ = ipfslog.SetLogLevel("wormhole-spy-mocked-in-ci", "PANIC")
|
||||
|
||||
lis = bufconn.Listen(bufSize)
|
||||
|
||||
grpcServer := common.NewInstrumentedGRPCServer(logger)
|
||||
|
||||
mockedSpyServer = newSpyServer(logger)
|
||||
spyv1.RegisterSpyRPCServiceServer(grpcServer, mockedSpyServer)
|
||||
go func() {
|
||||
if err := grpcServer.Serve(lis); err != nil {
|
||||
fmt.Println("server error", err)
|
||||
logger.Fatal("Server exited with error", zap.Error(err))
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
// creates a network connection in memory rather than with the host's network
|
||||
// stack, for CI. See https://pkg.go.dev/google.golang.org/grpc/test/bufconn for info.
|
||||
func bufDialer(context.Context, string) (net.Conn, error) {
|
||||
return lis.Dial()
|
||||
}
|
||||
|
||||
//
|
||||
// e2e gRPC server tests
|
||||
// assert clients can connect, supply filters, and responses are as expected
|
||||
//
|
||||
|
||||
// subscription tests - make sure the spy allows subscribing with and without filters
|
||||
|
||||
// helper function that setups a gRPC client for spySever
|
||||
func grpcClientSetup(t *testing.T) (context.Context, *grpc.ClientConn, spyv1.SpyRPCServiceClient) {
|
||||
ctx := context.Background()
|
||||
creds := grpc.WithTransportCredentials(insecure.NewCredentials())
|
||||
conn, err := grpc.DialContext(ctx, "bufnet", grpc.WithContextDialer(bufDialer), creds)
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to dial bufnet: %v", err)
|
||||
}
|
||||
|
||||
client := spyv1.NewSpyRPCServiceClient(conn)
|
||||
|
||||
return ctx, conn, client
|
||||
}
|
||||
|
||||
// Tests creating a subscription to spyServer with no filters succeeds
|
||||
func TestSpySubscribeNoFilter(t *testing.T) {
|
||||
ctx, conn, client := grpcClientSetup(t)
|
||||
defer conn.Close()
|
||||
|
||||
req := &spyv1.SubscribeSignedVAARequest{Filters: []*spyv1.FilterEntry{}}
|
||||
|
||||
_, err := client.SubscribeSignedVAA(ctx, req)
|
||||
if err != nil {
|
||||
t.Fatalf("SubscribeSignedVAA failed: %v", err)
|
||||
}
|
||||
// just check the subscription can be created without returning an error
|
||||
}
|
||||
|
||||
// Tests creating a subscription to spyServer with a spyv1.EmitterFilter succeeds
|
||||
func TestSpySubscribeEmitterFilter(t *testing.T) {
|
||||
ctx, conn, client := grpcClientSetup(t)
|
||||
defer conn.Close()
|
||||
|
||||
// create EmitterFilter
|
||||
emitterFilter := &spyv1.EmitterFilter{ChainId: publicrpcv1.ChainID(vaa.ChainIDEthereum), EmitterAddress: ""}
|
||||
filterEntryEmitter := &spyv1.FilterEntry_EmitterFilter{EmitterFilter: emitterFilter}
|
||||
filter := &spyv1.FilterEntry{Filter: filterEntryEmitter}
|
||||
|
||||
req := &spyv1.SubscribeSignedVAARequest{Filters: []*spyv1.FilterEntry{filter}}
|
||||
|
||||
_, err := client.SubscribeSignedVAA(ctx, req)
|
||||
if err != nil {
|
||||
t.Fatalf("SubscribeSignedVAA failed: %v", err)
|
||||
}
|
||||
// just check the subscription can be created without returning an error
|
||||
}
|
||||
|
||||
// Tests creating a subscription to spyServer with a spyv1.BatchFilter succeeds
|
||||
func TestSpySubscribeBatchFilter(t *testing.T) {
|
||||
ctx, conn, client := grpcClientSetup(t)
|
||||
defer conn.Close()
|
||||
|
||||
batchFilter := &spyv1.BatchFilter{
|
||||
ChainId: publicrpcv1.ChainID(vaa.ChainIDEthereum),
|
||||
TxId: getTxBytes(tx),
|
||||
Nonce: vaaNonce,
|
||||
}
|
||||
filterEntryBatch := &spyv1.FilterEntry_BatchFilter{BatchFilter: batchFilter}
|
||||
filter := &spyv1.FilterEntry{Filter: filterEntryBatch}
|
||||
req := &spyv1.SubscribeSignedVAAByTypeRequest{Filters: []*spyv1.FilterEntry{filter}}
|
||||
|
||||
_, err := client.SubscribeSignedVAAByType(ctx, req)
|
||||
if err != nil {
|
||||
t.Fatalf("SubscribeSignedVAAByType failed: %v", err)
|
||||
}
|
||||
// just check the subscription can be created without returning an error
|
||||
}
|
||||
|
||||
// Tests creating a subscription to spyServer with a spyv1.BatchTransactionFilter succeeds
|
||||
func TestSpySubscribeBatchTransactionFilter(t *testing.T) {
|
||||
|
||||
ctx, conn, client := grpcClientSetup(t)
|
||||
defer conn.Close()
|
||||
|
||||
batchTxFilter := &spyv1.BatchTransactionFilter{
|
||||
ChainId: publicrpcv1.ChainID(vaa.ChainIDEthereum),
|
||||
TxId: getTxBytes(tx),
|
||||
}
|
||||
filterEntryBatchTx := &spyv1.FilterEntry_BatchTransactionFilter{
|
||||
BatchTransactionFilter: batchTxFilter,
|
||||
}
|
||||
filter := &spyv1.FilterEntry{Filter: filterEntryBatchTx}
|
||||
req := &spyv1.SubscribeSignedVAAByTypeRequest{Filters: []*spyv1.FilterEntry{filter}}
|
||||
|
||||
_, err := client.SubscribeSignedVAAByType(ctx, req)
|
||||
if err != nil {
|
||||
t.Fatalf("SubscribeSignedVAAByType failed: %v", err)
|
||||
}
|
||||
// just check the subscription can be created without returning an error
|
||||
}
|
||||
|
||||
// Tests a subscription to spySever with no filters will return message(s)
|
||||
func TestSpyHandleGossipVAA(t *testing.T) {
|
||||
ctx, conn, client := grpcClientSetup(t)
|
||||
defer conn.Close()
|
||||
|
||||
vaaToSend := getVAA(vaa.ChainIDEthereum, govEmitter, vaaNonce)
|
||||
|
||||
req := &spyv1.SubscribeSignedVAAByTypeRequest{Filters: []*spyv1.FilterEntry{}}
|
||||
|
||||
stream, err := client.SubscribeSignedVAAByType(ctx, req)
|
||||
if err != nil {
|
||||
t.Fatalf("SubscribeSignedVAA failed: %v", err)
|
||||
}
|
||||
|
||||
doneCh := make(chan bool)
|
||||
go func() {
|
||||
defer close(doneCh)
|
||||
for {
|
||||
// recieve is a blocking call, it will keep recieving/looping until the pipe breaks.
|
||||
signedVAA, err := stream.Recv()
|
||||
if err == io.EOF {
|
||||
t.Log("the SignedVAA stream has closed, err == io.EOF. going to break.")
|
||||
t.Fail()
|
||||
return
|
||||
}
|
||||
if err != nil {
|
||||
t.Log("SubscribeSignedVAAByType returned an error.")
|
||||
t.Fail()
|
||||
return
|
||||
}
|
||||
|
||||
vaaRes := signedVAA.GetVaaType()
|
||||
switch resType := vaaRes.(type) {
|
||||
case *spyv1.SubscribeSignedVAAByTypeResponse_SignedVaa:
|
||||
bytes := resType.SignedVaa.Vaa
|
||||
parsedRes, err := vaa.Unmarshal(bytes)
|
||||
if err != nil {
|
||||
t.Log("failed unmarshaling VAA from response")
|
||||
t.Fail()
|
||||
return
|
||||
}
|
||||
if parsedRes.MessageID() != vaaToSend.MessageID() {
|
||||
t.Log("parsedRes.MessageID() does not equal vaaToSend.MessageID()")
|
||||
t.Fail()
|
||||
return
|
||||
}
|
||||
// this test only expects one response, so return
|
||||
return
|
||||
}
|
||||
}
|
||||
}()
|
||||
waitForClientSubscriptionInit(mockedSpyServer)
|
||||
|
||||
vaaBytes, err := vaaToSend.Marshal()
|
||||
if err != nil {
|
||||
t.Fatal("failed marshaling VAA to bytes")
|
||||
}
|
||||
msg := &gossipv1.SignedVAAWithQuorum{
|
||||
Vaa: vaaBytes,
|
||||
}
|
||||
err = mockedSpyServer.HandleGossipVAA(msg)
|
||||
if err != nil {
|
||||
t.Fatal("failed HandleGossipVAA")
|
||||
}
|
||||
|
||||
<-doneCh
|
||||
}
|
||||
|
||||
// Tests spySever's implementation of the spyv1.EmitterFilter
|
||||
func TestSpyHandleGossipBatchVAAEmitterFilter(t *testing.T) {
|
||||
ctx, conn, client := grpcClientSetup(t)
|
||||
defer conn.Close()
|
||||
|
||||
// This test creates a message (gossipMsg) that will be published, and a filter that will allow the
|
||||
// message through (emitterFilter). Then it subscribes to messages from the server (SubscribeSignedVAAByType),
|
||||
// and publishes the gossipMsg, along with some messages that do not pass the filter (msg1, msg2, etc).
|
||||
// This test passes if only the expected gossipMsg is recieved from the client stream (emitterFilterStream.Recv()).
|
||||
|
||||
// gossipMsg will be published to the spyServer
|
||||
gossipMsg, chainID, txID, nonce, emitter := batchMsg()
|
||||
|
||||
// create an EmitterFilter request
|
||||
emitterFilter := &spyv1.EmitterFilter{
|
||||
ChainId: publicrpcv1.ChainID(chainID),
|
||||
EmitterAddress: emitter.String(),
|
||||
}
|
||||
filterEntryEmitter := &spyv1.FilterEntry_EmitterFilter{EmitterFilter: emitterFilter}
|
||||
emitterFilterEnvelope := &spyv1.FilterEntry{Filter: filterEntryEmitter}
|
||||
emitterFilterReq := &spyv1.SubscribeSignedVAAByTypeRequest{Filters: []*spyv1.FilterEntry{emitterFilterEnvelope}}
|
||||
|
||||
emitterFilterStream, err := client.SubscribeSignedVAAByType(ctx, emitterFilterReq)
|
||||
if err != nil {
|
||||
t.Fatalf("SubscribeSignedVAAByType failed: %v", err)
|
||||
}
|
||||
|
||||
doneCh := make(chan bool)
|
||||
go func() {
|
||||
defer close(doneCh)
|
||||
for {
|
||||
// recieve is a blocking call, it will keep recieving/looping until the pipe breaks.
|
||||
res, err := emitterFilterStream.Recv()
|
||||
if err == io.EOF {
|
||||
t.Log("the SignedVAA stream has closed, err == io.EOF. going to break.")
|
||||
t.Fail()
|
||||
return
|
||||
}
|
||||
if err != nil {
|
||||
t.Log("SubscribeSignedVAAByType returned an error.")
|
||||
t.Fail()
|
||||
return
|
||||
}
|
||||
vaaRes := res.GetVaaType()
|
||||
switch resType := vaaRes.(type) {
|
||||
case *spyv1.SubscribeSignedVAAByTypeResponse_SignedBatchVaa:
|
||||
vaaBytes := resType.SignedBatchVaa.BatchVaa
|
||||
|
||||
// just unmarshal to smoke test
|
||||
_, err := vaa.UnmarshalBatch(vaaBytes)
|
||||
if err != nil {
|
||||
t.Log("failed unmarshaling BatchVAA from response")
|
||||
t.Fail()
|
||||
return
|
||||
}
|
||||
|
||||
// check the response is the expected vaa (one that passes the supplied filter)
|
||||
if !bytes.Equal(resType.SignedBatchVaa.TxId, txID) {
|
||||
t.Log("Got a VAA from the server stream not matching the supplied filter.")
|
||||
t.Fail()
|
||||
}
|
||||
|
||||
// check to make sure msg1 did not make it through
|
||||
if resType.SignedBatchVaa.ChainId != uint32(chainID) {
|
||||
t.Fail()
|
||||
}
|
||||
|
||||
// check that the VAA we got is exactly what we expect
|
||||
if !bytes.Equal(vaaBytes, gossipMsg.BatchVaa) {
|
||||
t.Log("vaaBytes of the response does not match what was sent")
|
||||
t.Fail()
|
||||
}
|
||||
|
||||
return
|
||||
case *spyv1.SubscribeSignedVAAByTypeResponse_SignedVaa:
|
||||
t.Log("got SubscribeSignedVAAByTypeResponse_SignedVaa")
|
||||
return
|
||||
}
|
||||
}
|
||||
}()
|
||||
waitForClientSubscriptionInit(mockedSpyServer)
|
||||
|
||||
// should not be sent to us by the server
|
||||
// everything passes the filter except for chainID
|
||||
msg1 := getBatchVAAQuorumMessage(vaa.ChainIDSolana, txID, nonce, emitter)
|
||||
err = mockedSpyServer.HandleGossipBatchVAA(msg1)
|
||||
if err != nil {
|
||||
t.Fatal("failed HandleGossipBatchVAA for msg1")
|
||||
}
|
||||
|
||||
// should not be sent to us by the server
|
||||
// everything passes the filter except except for emitterAddress
|
||||
differentEmitter := vaa.Address{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
|
||||
msg2 := getBatchVAAQuorumMessage(chainID, txID, nonce, differentEmitter)
|
||||
err = mockedSpyServer.HandleGossipBatchVAA(msg2)
|
||||
if err != nil {
|
||||
t.Fatal("failed HandleGossipBatchVAA for msg2")
|
||||
}
|
||||
|
||||
// passes the filter - should be sent back to us by the server
|
||||
err = mockedSpyServer.HandleGossipBatchVAA(gossipMsg)
|
||||
if err != nil {
|
||||
t.Fatal("failed HandleGossipBatchVAA for gossipMsg")
|
||||
}
|
||||
|
||||
<-doneCh
|
||||
}
|
||||
|
||||
// Tests spySever's implementation of the spyv1.BatchTransactionFilter
|
||||
func TestSpyHandleGossipBatchVAABatchTxFilter(t *testing.T) {
|
||||
ctx, conn, client := grpcClientSetup(t)
|
||||
defer conn.Close()
|
||||
|
||||
// This test creates a message (gossipMsg) that will be published, and a filter that will allow the
|
||||
// message through (batchTxFilter). Then it subscribes to messages from the server (SubscribeSignedVAAByType),
|
||||
// and publishes the gossipMsg, along with some messages that do not pass the filter (msg1, msg2, etc).
|
||||
// This test passes if only the expected gossipMsg is recieved from the client stream (batchTxStream.Recv()).
|
||||
|
||||
// gossipMsg will be published to the spyServer
|
||||
// the other values returned are used for setting up the filters we expect this message to pass
|
||||
gossipMsg, chainID, txID, nonce, emitter := batchMsg()
|
||||
|
||||
// create a BatchTransactionFilter request
|
||||
batchTxFilter := &spyv1.BatchTransactionFilter{
|
||||
ChainId: publicrpcv1.ChainID(chainID),
|
||||
TxId: txID,
|
||||
}
|
||||
filterEntryBatchTx := &spyv1.FilterEntry_BatchTransactionFilter{
|
||||
BatchTransactionFilter: batchTxFilter,
|
||||
}
|
||||
batchTxFilterEnvelope := &spyv1.FilterEntry{Filter: filterEntryBatchTx}
|
||||
batchTxReq := &spyv1.SubscribeSignedVAAByTypeRequest{Filters: []*spyv1.FilterEntry{batchTxFilterEnvelope}}
|
||||
|
||||
batchTxStream, err := client.SubscribeSignedVAAByType(ctx, batchTxReq)
|
||||
if err != nil {
|
||||
t.Fatalf("SubscribeSignedVAAByType failed: %v", err)
|
||||
}
|
||||
|
||||
doneCh := make(chan bool)
|
||||
go func() {
|
||||
defer close(doneCh)
|
||||
for {
|
||||
// recieve is a blocking call, it will keep recieving/looping until the pipe breaks.
|
||||
res, err := batchTxStream.Recv()
|
||||
if err == io.EOF {
|
||||
t.Log("the SignedVAA stream has closed, err == io.EOF. going to break.")
|
||||
t.Fail()
|
||||
return
|
||||
}
|
||||
if err != nil {
|
||||
t.Log("SubscribeSignedVAAByType returned an error.")
|
||||
t.Fail()
|
||||
return
|
||||
}
|
||||
|
||||
vaaRes := res.GetVaaType()
|
||||
switch resType := vaaRes.(type) {
|
||||
case *spyv1.SubscribeSignedVAAByTypeResponse_SignedBatchVaa:
|
||||
vaaBytes := resType.SignedBatchVaa.BatchVaa
|
||||
|
||||
// just unmarshal to smoke test
|
||||
_, err := vaa.UnmarshalBatch(vaaBytes)
|
||||
if err != nil {
|
||||
t.Log("failed unmarshaling BatchVAA from response")
|
||||
t.Fail()
|
||||
return
|
||||
}
|
||||
|
||||
// check the response is the expected vaa (one that passes the supplied filter)
|
||||
if !bytes.Equal(resType.SignedBatchVaa.TxId, txID) {
|
||||
t.Log("Got a VAA from the server stream not matching the supplied filter.")
|
||||
t.Fail()
|
||||
}
|
||||
|
||||
if resType.SignedBatchVaa.ChainId != uint32(chainID) {
|
||||
t.Fail()
|
||||
}
|
||||
|
||||
// check that the VAA we got is exactly what we expect
|
||||
if !bytes.Equal(vaaBytes, gossipMsg.BatchVaa) {
|
||||
t.Log("vaaBytes of the response does not match what was sent")
|
||||
t.Fail()
|
||||
}
|
||||
|
||||
return
|
||||
case *spyv1.SubscribeSignedVAAByTypeResponse_SignedVaa:
|
||||
t.Log("got SubscribeSignedVAAByTypeResponse_SignedVaa")
|
||||
return
|
||||
}
|
||||
}
|
||||
}()
|
||||
waitForClientSubscriptionInit(mockedSpyServer)
|
||||
|
||||
// should not be sent to us by the server
|
||||
// everything passes the filter except for chainID
|
||||
msg1 := getBatchVAAQuorumMessage(vaa.ChainIDSolana, txID, nonce, emitter)
|
||||
err = mockedSpyServer.HandleGossipBatchVAA(msg1)
|
||||
if err != nil {
|
||||
t.Fatal("failed HandleGossipBatchVAA for msg1")
|
||||
}
|
||||
|
||||
// should not be sent to us by the server
|
||||
// everything passes the filter except except for txID
|
||||
differentTx := []byte{1, 1, 1, 1} // anything that does not match txBytes
|
||||
msg2 := getBatchVAAQuorumMessage(chainID, differentTx, nonce, emitter)
|
||||
err = mockedSpyServer.HandleGossipBatchVAA(msg2)
|
||||
if err != nil {
|
||||
t.Fatal("failed HandleGossipBatchVAA for msg2")
|
||||
}
|
||||
|
||||
// passes the filter - should be sent back to us by the server
|
||||
err = mockedSpyServer.HandleGossipBatchVAA(gossipMsg)
|
||||
if err != nil {
|
||||
t.Fatal("failed HandleGossipBatchVAA for gossipMsg")
|
||||
}
|
||||
|
||||
<-doneCh
|
||||
}
|
||||
|
||||
// Tests spySever's implementation of the spyv1.BatchFilter
|
||||
func TestSpyHandleGossipBatchVAABatchFilter(t *testing.T) {
|
||||
ctx, conn, client := grpcClientSetup(t)
|
||||
defer conn.Close()
|
||||
|
||||
// This test creates a message (gossipMsg) that will be published, and a filter that will allow the
|
||||
// message through (batchFilter). Then it subscribes to messages from the server (SubscribeSignedVAAByType),
|
||||
// and publishes the gossipMsg, along with some messages that do not pass the filter (msg1, msg2, etc).
|
||||
// This test passes if only the expected gossipMsg is recieved from the client stream (batchStream.Recv()).
|
||||
|
||||
// gossipMsg will be published to the spyServer
|
||||
// the other values returned are used for setting up the filters we expect this message to pass
|
||||
gossipMsg, chainID, txID, nonce, emitter := batchMsg()
|
||||
|
||||
// create a BatchTransactionFilter request
|
||||
batchFilter := &spyv1.BatchFilter{
|
||||
ChainId: publicrpcv1.ChainID(chainID),
|
||||
TxId: txID,
|
||||
Nonce: nonce,
|
||||
}
|
||||
filterEntryBatch := &spyv1.FilterEntry_BatchFilter{
|
||||
BatchFilter: batchFilter,
|
||||
}
|
||||
batchFilterEnvelope := &spyv1.FilterEntry{Filter: filterEntryBatch}
|
||||
batchReq := &spyv1.SubscribeSignedVAAByTypeRequest{Filters: []*spyv1.FilterEntry{batchFilterEnvelope}}
|
||||
|
||||
batchStream, err := client.SubscribeSignedVAAByType(ctx, batchReq)
|
||||
if err != nil {
|
||||
t.Fatalf("SubscribeSignedVAAByType failed: %v", err)
|
||||
}
|
||||
|
||||
doneCh := make(chan bool)
|
||||
go func() {
|
||||
defer close(doneCh)
|
||||
for {
|
||||
// recieve is a blocking call, it will keep recieving/looping until the pipe breaks.
|
||||
res, err := batchStream.Recv()
|
||||
if err == io.EOF {
|
||||
t.Log("the SignedVAA stream has closed, err == io.EOF. going to break.")
|
||||
t.Fail()
|
||||
return
|
||||
}
|
||||
if err != nil {
|
||||
t.Log("SubscribeSignedVAAByType returned an error.")
|
||||
t.Fail()
|
||||
return
|
||||
}
|
||||
|
||||
vaaRes := res.GetVaaType()
|
||||
switch resType := vaaRes.(type) {
|
||||
case *spyv1.SubscribeSignedVAAByTypeResponse_SignedBatchVaa:
|
||||
vaaBytes := resType.SignedBatchVaa.BatchVaa
|
||||
|
||||
// just unmarshal to smoke test
|
||||
_, err := vaa.UnmarshalBatch(vaaBytes)
|
||||
if err != nil {
|
||||
t.Log("failed unmarshaling BatchVAA from response")
|
||||
t.Fail()
|
||||
return
|
||||
}
|
||||
|
||||
if resType.SignedBatchVaa.Nonce != uint32(nonce) {
|
||||
t.Fail()
|
||||
}
|
||||
|
||||
// check the response is the expected vaa (one that passes the supplied filter)
|
||||
if !bytes.Equal(resType.SignedBatchVaa.TxId, txID) {
|
||||
t.Log("Got a VAA from the server stream not matching the supplied filter.")
|
||||
t.Fail()
|
||||
}
|
||||
|
||||
if resType.SignedBatchVaa.ChainId != uint32(chainID) {
|
||||
t.Fail()
|
||||
}
|
||||
|
||||
// check that the VAA we got is exactly what we expect
|
||||
if !bytes.Equal(vaaBytes, gossipMsg.BatchVaa) {
|
||||
t.Log("vaaBytes of the response does not match what was sent")
|
||||
t.Fail()
|
||||
}
|
||||
|
||||
return
|
||||
case *spyv1.SubscribeSignedVAAByTypeResponse_SignedVaa:
|
||||
t.Log("got SubscribeSignedVAAByTypeResponse_SignedVaa")
|
||||
return
|
||||
}
|
||||
}
|
||||
}()
|
||||
waitForClientSubscriptionInit(mockedSpyServer)
|
||||
|
||||
// should not be sent to us by the server
|
||||
// everything passes the filter except for chainID
|
||||
msg1 := getBatchVAAQuorumMessage(vaa.ChainIDSolana, txID, nonce, emitter)
|
||||
err = mockedSpyServer.HandleGossipBatchVAA(msg1)
|
||||
if err != nil {
|
||||
t.Fatal("failed HandleGossipBatchVAA for msg1")
|
||||
}
|
||||
|
||||
// should not be sent to us by the server
|
||||
// everything passes the filter except except for txID
|
||||
differentTx := []byte{1, 1, 1, 1} // anything that does not match txBytes
|
||||
msg2 := getBatchVAAQuorumMessage(chainID, differentTx, nonce, emitter)
|
||||
err = mockedSpyServer.HandleGossipBatchVAA(msg2)
|
||||
if err != nil {
|
||||
t.Fatal("failed HandleGossipBatchVAA for msg2")
|
||||
}
|
||||
|
||||
// should not be sent to us by the server
|
||||
// everything passes the filter except except for nonce
|
||||
differentNonce := uint32(8888) // anything that does not match txBytes
|
||||
msg3 := getBatchVAAQuorumMessage(chainID, txID, differentNonce, emitter)
|
||||
err = mockedSpyServer.HandleGossipBatchVAA(msg3)
|
||||
if err != nil {
|
||||
t.Fatal("failed HandleGossipBatchVAA for msg3")
|
||||
}
|
||||
|
||||
// passes the filter - should be sent back to us by the server
|
||||
err = mockedSpyServer.HandleGossipBatchVAA(gossipMsg)
|
||||
if err != nil {
|
||||
t.Fatal("failed HandleGossipBatchVAA for gossipMsg")
|
||||
}
|
||||
|
||||
<-doneCh
|
||||
}
|
|
@ -658,12 +658,14 @@ type SignedBatchObservation struct {
|
|||
Hash []byte `protobuf:"bytes,2,opt,name=hash,proto3" json:"hash,omitempty"`
|
||||
// ECSDA signature of the hash using the node's guardian key.
|
||||
Signature []byte `protobuf:"bytes,3,opt,name=signature,proto3" json:"signature,omitempty"`
|
||||
// Transaction hash this observation was made from.
|
||||
TxHash []byte `protobuf:"bytes,4,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"`
|
||||
// Unique identifier of the transaction that produced the observation.
|
||||
TxId []byte `protobuf:"bytes,4,opt,name=tx_id,json=txId,proto3" json:"tx_id,omitempty"`
|
||||
// Chain ID for this observation.
|
||||
ChainId uint32 `protobuf:"varint,5,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"`
|
||||
// Batch ID - emitterChain/transactionID
|
||||
BatchId string `protobuf:"bytes,6,opt,name=batch_id,json=batchId,proto3" json:"batch_id,omitempty"`
|
||||
// Nonce of the messages in the batch.
|
||||
Nonce uint32 `protobuf:"varint,6,opt,name=nonce,proto3" json:"nonce,omitempty"`
|
||||
// Batch ID - emitterChain/transactionID/nonce
|
||||
BatchId string `protobuf:"bytes,7,opt,name=batch_id,json=batchId,proto3" json:"batch_id,omitempty"`
|
||||
}
|
||||
|
||||
func (x *SignedBatchObservation) Reset() {
|
||||
|
@ -719,9 +721,9 @@ func (x *SignedBatchObservation) GetSignature() []byte {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (x *SignedBatchObservation) GetTxHash() []byte {
|
||||
func (x *SignedBatchObservation) GetTxId() []byte {
|
||||
if x != nil {
|
||||
return x.TxHash
|
||||
return x.TxId
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
@ -733,6 +735,13 @@ func (x *SignedBatchObservation) GetChainId() uint32 {
|
|||
return 0
|
||||
}
|
||||
|
||||
func (x *SignedBatchObservation) GetNonce() uint32 {
|
||||
if x != nil {
|
||||
return x.Nonce
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *SignedBatchObservation) GetBatchId() string {
|
||||
if x != nil {
|
||||
return x.BatchId
|
||||
|
@ -745,7 +754,16 @@ type SignedBatchVAAWithQuorum struct {
|
|||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
// batch_vaa bytes are the binary encoding of the BatchVAA
|
||||
BatchVaa []byte `protobuf:"bytes,1,opt,name=batch_vaa,json=batchVaa,proto3" json:"batch_vaa,omitempty"`
|
||||
// Emitter Chain ID of the messages
|
||||
ChainId uint32 `protobuf:"varint,2,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"`
|
||||
// Transaction identifier of the observation
|
||||
TxId []byte `protobuf:"bytes,3,opt,name=tx_id,json=txId,proto3" json:"tx_id,omitempty"`
|
||||
// Nonce of the messages in the batch
|
||||
Nonce uint32 `protobuf:"varint,4,opt,name=nonce,proto3" json:"nonce,omitempty"`
|
||||
// Batch ID - emitterChain/transactionID/nonce string, for convenience
|
||||
BatchId string `protobuf:"bytes,5,opt,name=batch_id,json=batchId,proto3" json:"batch_id,omitempty"`
|
||||
}
|
||||
|
||||
func (x *SignedBatchVAAWithQuorum) Reset() {
|
||||
|
@ -787,6 +805,34 @@ func (x *SignedBatchVAAWithQuorum) GetBatchVaa() []byte {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (x *SignedBatchVAAWithQuorum) GetChainId() uint32 {
|
||||
if x != nil {
|
||||
return x.ChainId
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *SignedBatchVAAWithQuorum) GetTxId() []byte {
|
||||
if x != nil {
|
||||
return x.TxId
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *SignedBatchVAAWithQuorum) GetNonce() uint32 {
|
||||
if x != nil {
|
||||
return x.Nonce
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *SignedBatchVAAWithQuorum) GetBatchId() string {
|
||||
if x != nil {
|
||||
return x.BatchId
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
// This message is published every five minutes.
|
||||
type SignedChainGovernorConfig struct {
|
||||
state protoimpl.MessageState
|
||||
|
@ -1581,30 +1627,74 @@ var file_gossip_v1_gossip_proto_rawDesc = []byte{
|
|||
0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01,
|
||||
0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x17, 0x0a,
|
||||
0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06,
|
||||
0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x22, 0xad, 0x01, 0x0a, 0x16, 0x53, 0x69, 0x67, 0x6e, 0x65,
|
||||
0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x22, 0xbf, 0x01, 0x0a, 0x16, 0x53, 0x69, 0x67, 0x6e, 0x65,
|
||||
0x64, 0x42, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f,
|
||||
0x6e, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52,
|
||||
0x04, 0x61, 0x64, 0x64, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20,
|
||||
0x01, 0x28, 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67,
|
||||
0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69,
|
||||
0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61,
|
||||
0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68,
|
||||
0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01,
|
||||
0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x62,
|
||||
0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62,
|
||||
0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x22, 0x37, 0x0a, 0x18, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64,
|
||||
0x42, 0x61, 0x74, 0x63, 0x68, 0x56, 0x41, 0x41, 0x57, 0x69, 0x74, 0x68, 0x51, 0x75, 0x6f, 0x72,
|
||||
0x75, 0x6d, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x76, 0x61, 0x61, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x62, 0x61, 0x74, 0x63, 0x68, 0x56, 0x61, 0x61, 0x22,
|
||||
0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x13, 0x0a, 0x05, 0x74, 0x78, 0x5f, 0x69, 0x64,
|
||||
0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x74, 0x78, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08,
|
||||
0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07,
|
||||
0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65,
|
||||
0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x19, 0x0a,
|
||||
0x08, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x07, 0x62, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x22, 0x98, 0x01, 0x0a, 0x18, 0x53, 0x69, 0x67,
|
||||
0x6e, 0x65, 0x64, 0x42, 0x61, 0x74, 0x63, 0x68, 0x56, 0x41, 0x41, 0x57, 0x69, 0x74, 0x68, 0x51,
|
||||
0x75, 0x6f, 0x72, 0x75, 0x6d, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x76,
|
||||
0x61, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x62, 0x61, 0x74, 0x63, 0x68, 0x56,
|
||||
0x61, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02,
|
||||
0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x13, 0x0a,
|
||||
0x05, 0x74, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x74, 0x78,
|
||||
0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
|
||||
0x0d, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x63,
|
||||
0x68, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x74, 0x63,
|
||||
0x68, 0x49, 0x64, 0x22, 0x76, 0x0a, 0x19, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x43, 0x68, 0x61,
|
||||
0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
|
||||
0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c,
|
||||
0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e,
|
||||
0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67,
|
||||
0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x67, 0x75, 0x61, 0x72, 0x64, 0x69,
|
||||
0x61, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x67,
|
||||
0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x22, 0xd1, 0x03, 0x0a, 0x13,
|
||||
0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x43, 0x6f, 0x6e,
|
||||
0x66, 0x69, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
|
||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65,
|
||||
0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28,
|
||||
0x03, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69,
|
||||
0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74,
|
||||
0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x3c, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x69,
|
||||
0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69,
|
||||
0x70, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e,
|
||||
0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x06,
|
||||
0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x3c, 0x0a, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73,
|
||||
0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x2e,
|
||||
0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72,
|
||||
0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x06, 0x74, 0x6f,
|
||||
0x6b, 0x65, 0x6e, 0x73, 0x1a, 0x7b, 0x0a, 0x05, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x19, 0x0a,
|
||||
0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52,
|
||||
0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x6f, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04,
|
||||
0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12,
|
||||
0x30, 0x0a, 0x14, 0x62, 0x69, 0x67, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x62,
|
||||
0x69, 0x67, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x7a,
|
||||
0x65, 0x1a, 0x6c, 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x6f, 0x72,
|
||||
0x69, 0x67, 0x69, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x69, 0x6e,
|
||||
0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x61, 0x64, 0x64,
|
||||
0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67,
|
||||
0x69, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69,
|
||||
0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x22,
|
||||
0x76, 0x0a, 0x19, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f,
|
||||
0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x16, 0x0a, 0x06,
|
||||
0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x6f,
|
||||
0x6e, 0x66, 0x69, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72,
|
||||
0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06,
|
||||
0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x74,
|
||||
0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72,
|
||||
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75,
|
||||
0x72, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x67, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x5f, 0x61,
|
||||
0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x67, 0x75, 0x61, 0x72, 0x64,
|
||||
0x69, 0x61, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x22, 0xd1, 0x03, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x69,
|
||||
0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12,
|
||||
0x69, 0x61, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x22, 0x98, 0x05, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x69,
|
||||
0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
|
||||
0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07,
|
||||
0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63,
|
||||
|
@ -1612,81 +1702,44 @@ var file_gossip_v1_gossip_proto_rawDesc = []byte{
|
|||
0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73,
|
||||
0x74, 0x61, 0x6d, 0x70, 0x12, 0x3c, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x04,
|
||||
0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x2e, 0x76, 0x31,
|
||||
0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x43, 0x6f,
|
||||
0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x06, 0x63, 0x68, 0x61, 0x69,
|
||||
0x6e, 0x73, 0x12, 0x3c, 0x0a, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03,
|
||||
0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x43,
|
||||
0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66,
|
||||
0x69, 0x67, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73,
|
||||
0x1a, 0x7b, 0x0a, 0x05, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61,
|
||||
0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61,
|
||||
0x69, 0x6e, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c,
|
||||
0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6e, 0x6f,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x30, 0x0a, 0x14, 0x62,
|
||||
0x69, 0x67, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73,
|
||||
0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x62, 0x69, 0x67, 0x54, 0x72,
|
||||
0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x7a, 0x65, 0x1a, 0x6c, 0x0a,
|
||||
0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e,
|
||||
0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52,
|
||||
0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x25,
|
||||
0x0a, 0x0e, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
|
||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x41, 0x64,
|
||||
0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03,
|
||||
0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x22, 0x76, 0x0a, 0x19, 0x53,
|
||||
0x69, 0x67, 0x6e, 0x65, 0x64, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e,
|
||||
0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74,
|
||||
0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
|
||||
0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20,
|
||||
0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x23,
|
||||
0x0a, 0x0d, 0x67, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18,
|
||||
0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x67, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x41,
|
||||
0x64, 0x64, 0x72, 0x22, 0x98, 0x05, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76,
|
||||
0x65, 0x72, 0x6e, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6e,
|
||||
0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
|
||||
0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e,
|
||||
0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74,
|
||||
0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18,
|
||||
0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
|
||||
0x12, 0x3c, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b,
|
||||
0x32, 0x24, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61,
|
||||
0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x53, 0x74,
|
||||
0x61, 0x74, 0x75, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x06, 0x63, 0x68, 0x61, 0x69,
|
||||
0x6e, 0x73, 0x1a, 0x8c, 0x01, 0x0a, 0x0b, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x56,
|
||||
0x41, 0x41, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01,
|
||||
0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x21,
|
||||
0x0a, 0x0c, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02,
|
||||
0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x54, 0x69, 0x6d,
|
||||
0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x76, 0x61,
|
||||
0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x6f,
|
||||
0x6e, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68,
|
||||
0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73,
|
||||
0x68, 0x1a, 0xb3, 0x01, 0x0a, 0x07, 0x45, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x12, 0x27, 0x0a,
|
||||
0x0f, 0x65, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
|
||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x41,
|
||||
0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f,
|
||||
0x65, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x61, 0x73, 0x18, 0x02, 0x20,
|
||||
0x01, 0x28, 0x04, 0x52, 0x11, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75,
|
||||
0x65, 0x64, 0x56, 0x61, 0x61, 0x73, 0x12, 0x4f, 0x0a, 0x0d, 0x65, 0x6e, 0x71, 0x75, 0x65, 0x75,
|
||||
0x65, 0x64, 0x5f, 0x76, 0x61, 0x61, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e,
|
||||
0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47,
|
||||
0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x45, 0x6e,
|
||||
0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x56, 0x41, 0x41, 0x52, 0x0c, 0x65, 0x6e, 0x71, 0x75, 0x65,
|
||||
0x75, 0x65, 0x64, 0x56, 0x61, 0x61, 0x73, 0x1a, 0xa8, 0x01, 0x0a, 0x05, 0x43, 0x68, 0x61, 0x69,
|
||||
0x6e, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x1c,
|
||||
0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61,
|
||||
0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01,
|
||||
0x28, 0x04, 0x52, 0x1a, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x41, 0x76, 0x61,
|
||||
0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x42,
|
||||
0x0a, 0x08, 0x65, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b,
|
||||
0x32, 0x26, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61,
|
||||
0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
|
||||
0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x06, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x1a, 0x8c,
|
||||
0x01, 0x0a, 0x0b, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x56, 0x41, 0x41, 0x12, 0x1a,
|
||||
0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04,
|
||||
0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65,
|
||||
0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d,
|
||||
0x52, 0x0b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a,
|
||||
0x0e, 0x6e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
|
||||
0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x56,
|
||||
0x61, 0x6c, 0x75, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18,
|
||||
0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x1a, 0xb3, 0x01,
|
||||
0x0a, 0x07, 0x45, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x6d, 0x69,
|
||||
0x74, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x0e, 0x65, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65,
|
||||
0x73, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x71, 0x75,
|
||||
0x65, 0x75, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52,
|
||||
0x11, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x56, 0x61,
|
||||
0x61, 0x73, 0x12, 0x4f, 0x0a, 0x0d, 0x65, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x5f, 0x76,
|
||||
0x61, 0x61, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x73, 0x73,
|
||||
0x69, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72,
|
||||
0x6e, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75,
|
||||
0x65, 0x64, 0x56, 0x41, 0x41, 0x52, 0x0c, 0x65, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x56,
|
||||
0x61, 0x61, 0x73, 0x1a, 0xa8, 0x01, 0x0a, 0x05, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x19, 0x0a,
|
||||
0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52,
|
||||
0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x1c, 0x72, 0x65, 0x6d, 0x61,
|
||||
0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f,
|
||||
0x6e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1a,
|
||||
0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62,
|
||||
0x6c, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x42, 0x0a, 0x08, 0x65, 0x6d,
|
||||
0x69, 0x74, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67,
|
||||
0x6f, 0x73, 0x73, 0x69, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f,
|
||||
0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x45, 0x6d, 0x69,
|
||||
0x74, 0x74, 0x65, 0x72, 0x52, 0x08, 0x65, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x73, 0x42, 0x41,
|
||||
0x5a, 0x3f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x65, 0x72,
|
||||
0x74, 0x75, 0x73, 0x6f, 0x6e, 0x65, 0x2f, 0x77, 0x6f, 0x72, 0x6d, 0x68, 0x6f, 0x6c, 0x65, 0x2f,
|
||||
0x6e, 0x6f, 0x64, 0x65, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67,
|
||||
0x6f, 0x73, 0x73, 0x69, 0x70, 0x2f, 0x76, 0x31, 0x3b, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x76,
|
||||
0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x2e, 0x45, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x52, 0x08, 0x65, 0x6d, 0x69, 0x74, 0x74, 0x65,
|
||||
0x72, 0x73, 0x42, 0x41, 0x5a, 0x3f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
|
||||
0x2f, 0x63, 0x65, 0x72, 0x74, 0x75, 0x73, 0x6f, 0x6e, 0x65, 0x2f, 0x77, 0x6f, 0x72, 0x6d, 0x68,
|
||||
0x6f, 0x6c, 0x65, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f,
|
||||
0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x2f, 0x76, 0x31, 0x3b, 0x67, 0x6f, 0x73,
|
||||
0x73, 0x69, 0x70, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
|
|
@ -220,8 +220,10 @@ type BatchID struct {
|
|||
|
||||
// Emitter chain ID.
|
||||
EmitterChain ChainID `protobuf:"varint,1,opt,name=emitter_chain,json=emitterChain,proto3,enum=publicrpc.v1.ChainID" json:"emitter_chain,omitempty"`
|
||||
// Hex-encoded (without leading 0x) transaction identifier.
|
||||
TxId string `protobuf:"bytes,2,opt,name=tx_id,json=txId,proto3" json:"tx_id,omitempty"`
|
||||
// Transaction's unique identifier.
|
||||
TxId []byte `protobuf:"bytes,2,opt,name=tx_id,json=txId,proto3" json:"tx_id,omitempty"`
|
||||
// Nonce of the messages in the batch.
|
||||
Nonce uint32 `protobuf:"varint,3,opt,name=nonce,proto3" json:"nonce,omitempty"`
|
||||
}
|
||||
|
||||
func (x *BatchID) Reset() {
|
||||
|
@ -263,11 +265,18 @@ func (x *BatchID) GetEmitterChain() ChainID {
|
|||
return ChainID_CHAIN_ID_UNSPECIFIED
|
||||
}
|
||||
|
||||
func (x *BatchID) GetTxId() string {
|
||||
func (x *BatchID) GetTxId() []byte {
|
||||
if x != nil {
|
||||
return x.TxId
|
||||
}
|
||||
return ""
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *BatchID) GetNonce() uint32 {
|
||||
if x != nil {
|
||||
return x.Nonce
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
type GetSignedVAARequest struct {
|
||||
|
@ -416,7 +425,7 @@ type GetSignedBatchVAAResponse struct {
|
|||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
BatchVaaBytes []byte `protobuf:"bytes,1,opt,name=batch_vaa_bytes,json=batchVaaBytes,proto3" json:"batch_vaa_bytes,omitempty"`
|
||||
SignedBatchVaa *v1.SignedBatchVAAWithQuorum `protobuf:"bytes,1,opt,name=signed_batch_vaa,json=signedBatchVaa,proto3" json:"signed_batch_vaa,omitempty"`
|
||||
}
|
||||
|
||||
func (x *GetSignedBatchVAAResponse) Reset() {
|
||||
|
@ -451,9 +460,9 @@ func (*GetSignedBatchVAAResponse) Descriptor() ([]byte, []int) {
|
|||
return file_publicrpc_v1_publicrpc_proto_rawDescGZIP(), []int{5}
|
||||
}
|
||||
|
||||
func (x *GetSignedBatchVAAResponse) GetBatchVaaBytes() []byte {
|
||||
func (x *GetSignedBatchVAAResponse) GetSignedBatchVaa() *v1.SignedBatchVAAWithQuorum {
|
||||
if x != nil {
|
||||
return x.BatchVaaBytes
|
||||
return x.SignedBatchVaa
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
@ -1347,262 +1356,267 @@ var file_publicrpc_v1_publicrpc_proto_rawDesc = []byte{
|
|||
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x41, 0x64,
|
||||
0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63,
|
||||
0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63,
|
||||
0x65, 0x22, 0x5a, 0x0a, 0x07, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x44, 0x12, 0x3a, 0x0a, 0x0d,
|
||||
0x65, 0x22, 0x70, 0x0a, 0x07, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x44, 0x12, 0x3a, 0x0a, 0x0d,
|
||||
0x65, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e,
|
||||
0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x52, 0x0c, 0x65, 0x6d, 0x69, 0x74,
|
||||
0x74, 0x65, 0x72, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x13, 0x0a, 0x05, 0x74, 0x78, 0x5f, 0x69,
|
||||
0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x78, 0x49, 0x64, 0x22, 0x4d, 0x0a,
|
||||
0x13, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x41, 0x41, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f,
|
||||
0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69,
|
||||
0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49,
|
||||
0x44, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x22, 0x33, 0x0a, 0x14,
|
||||
0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x41, 0x41, 0x52, 0x65, 0x73, 0x70,
|
||||
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x61, 0x61, 0x5f, 0x62, 0x79, 0x74, 0x65,
|
||||
0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x76, 0x61, 0x61, 0x42, 0x79, 0x74, 0x65,
|
||||
0x73, 0x22, 0x4c, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x61,
|
||||
0x74, 0x63, 0x68, 0x56, 0x41, 0x41, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a,
|
||||
0x08, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
||||
0x15, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x42,
|
||||
0x61, 0x74, 0x63, 0x68, 0x49, 0x44, 0x52, 0x07, 0x62, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x22,
|
||||
0x43, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x61, 0x74, 0x63,
|
||||
0x68, 0x56, 0x41, 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x0f,
|
||||
0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x76, 0x61, 0x61, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x62, 0x61, 0x74, 0x63, 0x68, 0x56, 0x61, 0x61, 0x42,
|
||||
0x79, 0x74, 0x65, 0x73, 0x22, 0x1a, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x48,
|
||||
0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||
0x22, 0x83, 0x02, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x48, 0x65, 0x61, 0x72,
|
||||
0x74, 0x62, 0x65, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47,
|
||||
0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
|
||||
0x2d, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47,
|
||||
0x65, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x73,
|
||||
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07,
|
||||
0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x1a, 0x9c, 0x01, 0x0a, 0x05, 0x45, 0x6e, 0x74, 0x72,
|
||||
0x79, 0x12, 0x34, 0x0a, 0x16, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x67, 0x75,
|
||||
0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||
0x09, 0x52, 0x14, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x47, 0x75, 0x61, 0x72, 0x64,
|
||||
0x69, 0x61, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x32, 0x70, 0x5f, 0x6e,
|
||||
0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
|
||||
0x70, 0x32, 0x70, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x39, 0x0a, 0x0d, 0x72,
|
||||
0x61, 0x77, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01,
|
||||
0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x48,
|
||||
0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x0c, 0x72, 0x61, 0x77, 0x48, 0x65, 0x61,
|
||||
0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x22, 0x1e, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x43, 0x75, 0x72,
|
||||
0x72, 0x65, 0x6e, 0x74, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x53, 0x65, 0x74, 0x52,
|
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x5d, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x43, 0x75, 0x72,
|
||||
0x72, 0x65, 0x6e, 0x74, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x53, 0x65, 0x74, 0x52,
|
||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0c, 0x67, 0x75, 0x61, 0x72, 0x64,
|
||||
0x69, 0x61, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
|
||||
0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, 0x61,
|
||||
0x72, 0x64, 0x69, 0x61, 0x6e, 0x53, 0x65, 0x74, 0x52, 0x0b, 0x67, 0x75, 0x61, 0x72, 0x64, 0x69,
|
||||
0x61, 0x6e, 0x53, 0x65, 0x74, 0x22, 0x41, 0x0a, 0x0b, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61,
|
||||
0x6e, 0x53, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64,
|
||||
0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61,
|
||||
0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x2c, 0x0a, 0x2a, 0x47, 0x6f, 0x76, 0x65,
|
||||
0x72, 0x6e, 0x6f, 0x72, 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65,
|
||||
0x4e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x79, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52,
|
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xc8, 0x02, 0x0a, 0x2b, 0x47, 0x6f, 0x76, 0x65, 0x72,
|
||||
0x6e, 0x6f, 0x72, 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4e,
|
||||
0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x79, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65,
|
||||
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65,
|
||||
0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63,
|
||||
0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x47,
|
||||
0x65, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x6f,
|
||||
0x6e, 0x61, 0x6c, 0x42, 0x79, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
|
||||
0x73, 0x65, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65,
|
||||
0x73, 0x1a, 0xbd, 0x01, 0x0a, 0x05, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x63,
|
||||
0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63,
|
||||
0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x1c, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e,
|
||||
0x69, 0x6e, 0x67, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x6f,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1a, 0x72, 0x65,
|
||||
0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65,
|
||||
0x4e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x6f, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04,
|
||||
0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12,
|
||||
0x30, 0x0a, 0x14, 0x62, 0x69, 0x67, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x62,
|
||||
0x69, 0x67, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x7a,
|
||||
0x65, 0x22, 0x20, 0x0a, 0x1e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x47, 0x65, 0x74,
|
||||
0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x56, 0x41, 0x41, 0x73, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x22, 0xc7, 0x02, 0x0a, 0x1f, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72,
|
||||
0x47, 0x65, 0x74, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x56, 0x41, 0x41, 0x73, 0x52,
|
||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69,
|
||||
0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69,
|
||||
0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72,
|
||||
0x47, 0x65, 0x74, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x56, 0x41, 0x41, 0x73, 0x52,
|
||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65,
|
||||
0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x1a, 0xd4, 0x01, 0x0a, 0x05, 0x45, 0x6e, 0x74, 0x72, 0x79,
|
||||
0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x69,
|
||||
0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x65, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72,
|
||||
0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72,
|
||||
0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e,
|
||||
0x65, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a,
|
||||
0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04,
|
||||
0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65,
|
||||
0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d,
|
||||
0x52, 0x0b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a,
|
||||
0x0e, 0x6e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
|
||||
0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x56,
|
||||
0x61, 0x6c, 0x75, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18,
|
||||
0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x22, 0x56, 0x0a,
|
||||
0x1c, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x49, 0x73, 0x56, 0x41, 0x41, 0x45, 0x6e,
|
||||
0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a,
|
||||
0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||
0x0b, 0x32, 0x17, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31,
|
||||
0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73,
|
||||
0x61, 0x67, 0x65, 0x49, 0x64, 0x22, 0x40, 0x0a, 0x1d, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f,
|
||||
0x72, 0x49, 0x73, 0x56, 0x41, 0x41, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65,
|
||||
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x65, 0x6e, 0x71,
|
||||
0x75, 0x65, 0x75, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x45,
|
||||
0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x22, 0x1d, 0x0a, 0x1b, 0x47, 0x6f, 0x76, 0x65, 0x72,
|
||||
0x6e, 0x6f, 0x72, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52,
|
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xd8, 0x01, 0x0a, 0x1c, 0x47, 0x6f, 0x76, 0x65, 0x72,
|
||||
0x6e, 0x6f, 0x72, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52,
|
||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69,
|
||||
0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69,
|
||||
0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72,
|
||||
0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70,
|
||||
0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72,
|
||||
0x69, 0x65, 0x73, 0x1a, 0x6c, 0x0a, 0x05, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x26, 0x0a, 0x0f,
|
||||
0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x43, 0x68, 0x61,
|
||||
0x69, 0x6e, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x61,
|
||||
0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x72,
|
||||
0x69, 0x67, 0x69, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x70,
|
||||
0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63,
|
||||
0x65, 0x2a, 0xdb, 0x04, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a,
|
||||
0x14, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43,
|
||||
0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x48, 0x41, 0x49, 0x4e,
|
||||
0x5f, 0x49, 0x44, 0x5f, 0x53, 0x4f, 0x4c, 0x41, 0x4e, 0x41, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11,
|
||||
0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x45, 0x55,
|
||||
0x4d, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f,
|
||||
0x54, 0x45, 0x52, 0x52, 0x41, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x48, 0x41, 0x49, 0x4e,
|
||||
0x5f, 0x49, 0x44, 0x5f, 0x42, 0x53, 0x43, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x48, 0x41,
|
||||
0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x50, 0x4f, 0x4c, 0x59, 0x47, 0x4f, 0x4e, 0x10, 0x05, 0x12,
|
||||
0x16, 0x0a, 0x12, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x41, 0x56, 0x41, 0x4c,
|
||||
0x41, 0x4e, 0x43, 0x48, 0x45, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x48, 0x41, 0x49, 0x4e,
|
||||
0x5f, 0x49, 0x44, 0x5f, 0x4f, 0x41, 0x53, 0x49, 0x53, 0x10, 0x07, 0x12, 0x15, 0x0a, 0x11, 0x43,
|
||||
0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x41, 0x4e, 0x44,
|
||||
0x10, 0x08, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x41,
|
||||
0x55, 0x52, 0x4f, 0x52, 0x41, 0x10, 0x09, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x48, 0x41, 0x49, 0x4e,
|
||||
0x5f, 0x49, 0x44, 0x5f, 0x46, 0x41, 0x4e, 0x54, 0x4f, 0x4d, 0x10, 0x0a, 0x12, 0x13, 0x0a, 0x0f,
|
||||
0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x4b, 0x41, 0x52, 0x55, 0x52, 0x41, 0x10,
|
||||
0x0b, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x41, 0x43,
|
||||
0x41, 0x4c, 0x41, 0x10, 0x0c, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49,
|
||||
0x44, 0x5f, 0x4b, 0x4c, 0x41, 0x59, 0x54, 0x4e, 0x10, 0x0d, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x48,
|
||||
0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x43, 0x45, 0x4c, 0x4f, 0x10, 0x0e, 0x12, 0x11, 0x0a,
|
||||
0x0d, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x4e, 0x45, 0x41, 0x52, 0x10, 0x0f,
|
||||
0x12, 0x15, 0x0a, 0x11, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x4d, 0x4f, 0x4f,
|
||||
0x4e, 0x42, 0x45, 0x41, 0x4d, 0x10, 0x10, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x48, 0x41, 0x49, 0x4e,
|
||||
0x5f, 0x49, 0x44, 0x5f, 0x4e, 0x45, 0x4f, 0x4e, 0x10, 0x11, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x48,
|
||||
0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x54, 0x45, 0x52, 0x52, 0x41, 0x32, 0x10, 0x12, 0x12,
|
||||
0x16, 0x0a, 0x12, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x49, 0x4e, 0x4a, 0x45,
|
||||
0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x13, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x48, 0x41, 0x49, 0x4e,
|
||||
0x5f, 0x49, 0x44, 0x5f, 0x4f, 0x53, 0x4d, 0x4f, 0x53, 0x49, 0x53, 0x10, 0x14, 0x12, 0x10, 0x0a,
|
||||
0x0c, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x53, 0x55, 0x49, 0x10, 0x15, 0x12,
|
||||
0x12, 0x0a, 0x0e, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x41, 0x50, 0x54, 0x4f,
|
||||
0x53, 0x10, 0x16, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f,
|
||||
0x41, 0x52, 0x42, 0x49, 0x54, 0x52, 0x55, 0x4d, 0x10, 0x17, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x48,
|
||||
0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4d, 0x49, 0x53, 0x4d, 0x10,
|
||||
0x18, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x47, 0x4e,
|
||||
0x4f, 0x53, 0x49, 0x53, 0x10, 0x19, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f,
|
||||
0x49, 0x44, 0x5f, 0x50, 0x59, 0x54, 0x48, 0x4e, 0x45, 0x54, 0x10, 0x1a, 0x12, 0x11, 0x0a, 0x0d,
|
||||
0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x58, 0x50, 0x4c, 0x41, 0x10, 0x1c, 0x32,
|
||||
0xf5, 0x0a, 0x0a, 0x10, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x52, 0x50, 0x43, 0x53, 0x65, 0x72,
|
||||
0x76, 0x69, 0x63, 0x65, 0x12, 0x7c, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x48,
|
||||
0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x73, 0x12, 0x26, 0x2e, 0x70, 0x75, 0x62, 0x6c,
|
||||
0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x73, 0x74,
|
||||
0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||
0x74, 0x1a, 0x27, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31,
|
||||
0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61,
|
||||
0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93,
|
||||
0x02, 0x10, 0x12, 0x0e, 0x2f, 0x76, 0x31, 0x2f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61,
|
||||
0x74, 0x73, 0x12, 0xbb, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64,
|
||||
0x56, 0x41, 0x41, 0x12, 0x21, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e,
|
||||
0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x41, 0x41, 0x52,
|
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72,
|
||||
0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56,
|
||||
0x41, 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x64, 0x82, 0xd3, 0xe4, 0x93,
|
||||
0x02, 0x5e, 0x12, 0x5c, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x76,
|
||||
0x61, 0x61, 0x2f, 0x7b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x2e, 0x65,
|
||||
0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x7d, 0x2f, 0x7b, 0x6d,
|
||||
0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x2e, 0x65, 0x6d, 0x69, 0x74, 0x74, 0x65,
|
||||
0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x2f, 0x7b, 0x6d, 0x65, 0x73, 0x73,
|
||||
0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x2e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x7d,
|
||||
0x12, 0xac, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x61,
|
||||
0x74, 0x63, 0x68, 0x56, 0x41, 0x41, 0x12, 0x26, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72,
|
||||
0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42,
|
||||
0x61, 0x74, 0x63, 0x68, 0x56, 0x41, 0x41, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27,
|
||||
0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65,
|
||||
0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x61, 0x74, 0x63, 0x68, 0x56, 0x41, 0x41, 0x52,
|
||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x46, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x40, 0x12,
|
||||
0x3e, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x74, 0x63,
|
||||
0x68, 0x5f, 0x76, 0x61, 0x61, 0x2f, 0x7b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x2e,
|
||||
0x65, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x7d, 0x2f, 0x7b,
|
||||
0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x2e, 0x74, 0x78, 0x5f, 0x69, 0x64, 0x7d, 0x12,
|
||||
0x91, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x47, 0x75,
|
||||
0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x53, 0x65, 0x74, 0x12, 0x2a, 0x2e, 0x70, 0x75, 0x62, 0x6c,
|
||||
0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72,
|
||||
0x65, 0x6e, 0x74, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x53, 0x65, 0x74, 0x52, 0x65,
|
||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70,
|
||||
0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x47,
|
||||
0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
|
||||
0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x76, 0x31, 0x2f,
|
||||
0x67, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x73, 0x65, 0x74, 0x2f, 0x63, 0x75, 0x72, 0x72,
|
||||
0x65, 0x6e, 0x74, 0x12, 0xcc, 0x01, 0x0a, 0x23, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72,
|
||||
0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x74, 0x78, 0x49, 0x64, 0x12, 0x14, 0x0a,
|
||||
0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6e, 0x6f,
|
||||
0x6e, 0x63, 0x65, 0x22, 0x4d, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64,
|
||||
0x56, 0x41, 0x41, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x0a, 0x6d, 0x65,
|
||||
0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17,
|
||||
0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65,
|
||||
0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
|
||||
0x49, 0x64, 0x22, 0x33, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56,
|
||||
0x41, 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x61,
|
||||
0x61, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x76,
|
||||
0x61, 0x61, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x4c, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x53, 0x69,
|
||||
0x67, 0x6e, 0x65, 0x64, 0x42, 0x61, 0x74, 0x63, 0x68, 0x56, 0x41, 0x41, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70,
|
||||
0x63, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x44, 0x52, 0x07, 0x62, 0x61,
|
||||
0x74, 0x63, 0x68, 0x49, 0x64, 0x22, 0x6a, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e,
|
||||
0x65, 0x64, 0x42, 0x61, 0x74, 0x63, 0x68, 0x56, 0x41, 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
|
||||
0x73, 0x65, 0x12, 0x4d, 0x0a, 0x10, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x74,
|
||||
0x63, 0x68, 0x5f, 0x76, 0x61, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67,
|
||||
0x6f, 0x73, 0x73, 0x69, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42,
|
||||
0x61, 0x74, 0x63, 0x68, 0x56, 0x41, 0x41, 0x57, 0x69, 0x74, 0x68, 0x51, 0x75, 0x6f, 0x72, 0x75,
|
||||
0x6d, 0x52, 0x0e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x61, 0x74, 0x63, 0x68, 0x56, 0x61,
|
||||
0x61, 0x22, 0x1a, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x48, 0x65, 0x61, 0x72,
|
||||
0x74, 0x62, 0x65, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x83, 0x02,
|
||||
0x0a, 0x19, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65,
|
||||
0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x07, 0x65,
|
||||
0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70,
|
||||
0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4c,
|
||||
0x61, 0x73, 0x74, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73,
|
||||
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74,
|
||||
0x72, 0x69, 0x65, 0x73, 0x1a, 0x9c, 0x01, 0x0a, 0x05, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x34,
|
||||
0x0a, 0x16, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x67, 0x75, 0x61, 0x72, 0x64,
|
||||
0x69, 0x61, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14,
|
||||
0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e,
|
||||
0x41, 0x64, 0x64, 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x32, 0x70, 0x5f, 0x6e, 0x6f, 0x64, 0x65,
|
||||
0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x32, 0x70,
|
||||
0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x39, 0x0a, 0x0d, 0x72, 0x61, 0x77, 0x5f,
|
||||
0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
||||
0x14, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x65, 0x61, 0x72,
|
||||
0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x0c, 0x72, 0x61, 0x77, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62,
|
||||
0x65, 0x61, 0x74, 0x22, 0x1e, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e,
|
||||
0x74, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x22, 0x5d, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e,
|
||||
0x74, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70,
|
||||
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0c, 0x67, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e,
|
||||
0x5f, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x75, 0x62,
|
||||
0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69,
|
||||
0x61, 0x6e, 0x53, 0x65, 0x74, 0x52, 0x0b, 0x67, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x53,
|
||||
0x65, 0x74, 0x22, 0x41, 0x0a, 0x0b, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x53, 0x65,
|
||||
0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d,
|
||||
0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65,
|
||||
0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72,
|
||||
0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x2c, 0x0a, 0x2a, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f,
|
||||
0x72, 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x79, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x22, 0xc8, 0x02, 0x0a, 0x2b, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72,
|
||||
0x47, 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x79, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x38, 0x2e, 0x70, 0x75,
|
||||
0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6f, 0x76, 0x65, 0x72,
|
||||
0x6e, 0x6f, 0x72, 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4e,
|
||||
0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x79, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65,
|
||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70,
|
||||
0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x79, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f,
|
||||
0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01,
|
||||
0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63,
|
||||
0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x47, 0x65, 0x74, 0x41,
|
||||
0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c,
|
||||
0x42, 0x79, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e,
|
||||
0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x1a, 0xbd,
|
||||
0x01, 0x0a, 0x05, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69,
|
||||
0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69,
|
||||
0x6e, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x1c, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67,
|
||||
0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x6f,
|
||||
0x6e, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1a, 0x72, 0x65, 0x6d, 0x61, 0x69,
|
||||
0x6e, 0x69, 0x6e, 0x67, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61,
|
||||
0x6c, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6e,
|
||||
0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x30, 0x0a, 0x14,
|
||||
0x62, 0x69, 0x67, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
|
||||
0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x62, 0x69, 0x67, 0x54,
|
||||
0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x20,
|
||||
0x0a, 0x1e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x71,
|
||||
0x75, 0x65, 0x75, 0x65, 0x64, 0x56, 0x41, 0x41, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||
0x22, 0xc7, 0x02, 0x0a, 0x1f, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x47, 0x65, 0x74,
|
||||
0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x56, 0x41, 0x41, 0x73, 0x52, 0x65, 0x73, 0x70,
|
||||
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18,
|
||||
0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70,
|
||||
0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x47, 0x65, 0x74,
|
||||
0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61,
|
||||
0x6c, 0x42, 0x79, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
||||
0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, 0x28, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x6f,
|
||||
0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65,
|
||||
0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x5f, 0x63, 0x68, 0x61,
|
||||
0x69, 0x6e, 0x12, 0x9a, 0x01, 0x0a, 0x17, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x47,
|
||||
0x65, 0x74, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x56, 0x41, 0x41, 0x73, 0x12, 0x2c,
|
||||
0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6f,
|
||||
0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65,
|
||||
0x64, 0x56, 0x41, 0x41, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x70,
|
||||
0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x56, 0x41, 0x41, 0x73, 0x52, 0x65, 0x73, 0x70,
|
||||
0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72,
|
||||
0x69, 0x65, 0x73, 0x1a, 0xd4, 0x01, 0x0a, 0x05, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x23, 0x0a,
|
||||
0x0d, 0x65, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x01,
|
||||
0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x65, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x43, 0x68, 0x61,
|
||||
0x69, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x64,
|
||||
0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x6d, 0x69,
|
||||
0x74, 0x74, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73,
|
||||
0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73,
|
||||
0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x6c, 0x65, 0x61,
|
||||
0x73, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x72,
|
||||
0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x6f,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01,
|
||||
0x28, 0x04, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75,
|
||||
0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x06, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x22, 0x56, 0x0a, 0x1c, 0x47, 0x6f,
|
||||
0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x49, 0x73, 0x56, 0x41, 0x41, 0x45, 0x6e, 0x71, 0x75, 0x65,
|
||||
0x75, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x0a, 0x6d, 0x65,
|
||||
0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17,
|
||||
0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65,
|
||||
0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
|
||||
0x49, 0x64, 0x22, 0x40, 0x0a, 0x1d, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x49, 0x73,
|
||||
0x56, 0x41, 0x41, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f,
|
||||
0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x65, 0x6e, 0x71, 0x75, 0x65, 0x75,
|
||||
0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x45, 0x6e, 0x71, 0x75,
|
||||
0x65, 0x75, 0x65, 0x64, 0x22, 0x1d, 0x0a, 0x1b, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72,
|
||||
0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x22, 0xd8, 0x01, 0x0a, 0x1c, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72,
|
||||
0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70,
|
||||
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18,
|
||||
0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70,
|
||||
0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x47, 0x65, 0x74,
|
||||
0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
||||
0x65, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73,
|
||||
0x1a, 0x6c, 0x0a, 0x05, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x26, 0x0a, 0x0f, 0x6f, 0x72, 0x69,
|
||||
0x67, 0x69, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x0d, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49,
|
||||
0x64, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72,
|
||||
0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69,
|
||||
0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63,
|
||||
0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x2a, 0xdb,
|
||||
0x04, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x48,
|
||||
0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49,
|
||||
0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44,
|
||||
0x5f, 0x53, 0x4f, 0x4c, 0x41, 0x4e, 0x41, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x48, 0x41,
|
||||
0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x45, 0x54, 0x48, 0x45, 0x52, 0x45, 0x55, 0x4d, 0x10, 0x02,
|
||||
0x12, 0x12, 0x0a, 0x0e, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x54, 0x45, 0x52,
|
||||
0x52, 0x41, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44,
|
||||
0x5f, 0x42, 0x53, 0x43, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f,
|
||||
0x49, 0x44, 0x5f, 0x50, 0x4f, 0x4c, 0x59, 0x47, 0x4f, 0x4e, 0x10, 0x05, 0x12, 0x16, 0x0a, 0x12,
|
||||
0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x41, 0x56, 0x41, 0x4c, 0x41, 0x4e, 0x43,
|
||||
0x48, 0x45, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44,
|
||||
0x5f, 0x4f, 0x41, 0x53, 0x49, 0x53, 0x10, 0x07, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x48, 0x41, 0x49,
|
||||
0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x41, 0x4e, 0x44, 0x10, 0x08, 0x12,
|
||||
0x13, 0x0a, 0x0f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x41, 0x55, 0x52, 0x4f,
|
||||
0x52, 0x41, 0x10, 0x09, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44,
|
||||
0x5f, 0x46, 0x41, 0x4e, 0x54, 0x4f, 0x4d, 0x10, 0x0a, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x48, 0x41,
|
||||
0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x4b, 0x41, 0x52, 0x55, 0x52, 0x41, 0x10, 0x0b, 0x12, 0x12,
|
||||
0x0a, 0x0e, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x41, 0x43, 0x41, 0x4c, 0x41,
|
||||
0x10, 0x0c, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x4b,
|
||||
0x4c, 0x41, 0x59, 0x54, 0x4e, 0x10, 0x0d, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x48, 0x41, 0x49, 0x4e,
|
||||
0x5f, 0x49, 0x44, 0x5f, 0x43, 0x45, 0x4c, 0x4f, 0x10, 0x0e, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x48,
|
||||
0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x4e, 0x45, 0x41, 0x52, 0x10, 0x0f, 0x12, 0x15, 0x0a,
|
||||
0x11, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x4d, 0x4f, 0x4f, 0x4e, 0x42, 0x45,
|
||||
0x41, 0x4d, 0x10, 0x10, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44,
|
||||
0x5f, 0x4e, 0x45, 0x4f, 0x4e, 0x10, 0x11, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x48, 0x41, 0x49, 0x4e,
|
||||
0x5f, 0x49, 0x44, 0x5f, 0x54, 0x45, 0x52, 0x52, 0x41, 0x32, 0x10, 0x12, 0x12, 0x16, 0x0a, 0x12,
|
||||
0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x49, 0x4e, 0x4a, 0x45, 0x43, 0x54, 0x49,
|
||||
0x56, 0x45, 0x10, 0x13, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44,
|
||||
0x5f, 0x4f, 0x53, 0x4d, 0x4f, 0x53, 0x49, 0x53, 0x10, 0x14, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x48,
|
||||
0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x53, 0x55, 0x49, 0x10, 0x15, 0x12, 0x12, 0x0a, 0x0e,
|
||||
0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x41, 0x50, 0x54, 0x4f, 0x53, 0x10, 0x16,
|
||||
0x12, 0x15, 0x0a, 0x11, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x41, 0x52, 0x42,
|
||||
0x49, 0x54, 0x52, 0x55, 0x4d, 0x10, 0x17, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x48, 0x41, 0x49, 0x4e,
|
||||
0x5f, 0x49, 0x44, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4d, 0x49, 0x53, 0x4d, 0x10, 0x18, 0x12, 0x13,
|
||||
0x0a, 0x0f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x47, 0x4e, 0x4f, 0x53, 0x49,
|
||||
0x53, 0x10, 0x19, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f,
|
||||
0x50, 0x59, 0x54, 0x48, 0x4e, 0x45, 0x54, 0x10, 0x1a, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x48, 0x41,
|
||||
0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x58, 0x50, 0x4c, 0x41, 0x10, 0x1c, 0x32, 0x86, 0x0b, 0x0a,
|
||||
0x10, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x52, 0x50, 0x43, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
|
||||
0x65, 0x12, 0x7c, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x48, 0x65, 0x61, 0x72,
|
||||
0x74, 0x62, 0x65, 0x61, 0x74, 0x73, 0x12, 0x26, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72,
|
||||
0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x48, 0x65, 0x61,
|
||||
0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27,
|
||||
0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65,
|
||||
0x74, 0x4c, 0x61, 0x73, 0x74, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x73, 0x52,
|
||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12,
|
||||
0x0e, 0x2f, 0x76, 0x31, 0x2f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x73, 0x12,
|
||||
0xbb, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x41, 0x41,
|
||||
0x12, 0x21, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e,
|
||||
0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x41, 0x41, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e,
|
||||
0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x41, 0x41, 0x52,
|
||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5e, 0x12,
|
||||
0x5c, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x61, 0x2f,
|
||||
0x7b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x2e, 0x65, 0x6d, 0x69, 0x74,
|
||||
0x74, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x7d, 0x2f, 0x7b, 0x6d, 0x65, 0x73, 0x73,
|
||||
0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x2e, 0x65, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x5f, 0x61,
|
||||
0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x2f, 0x7b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
|
||||
0x5f, 0x69, 0x64, 0x2e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x7d, 0x12, 0xbd, 0x01,
|
||||
0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x61, 0x74, 0x63, 0x68,
|
||||
0x56, 0x41, 0x41, 0x12, 0x26, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e,
|
||||
0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x61, 0x74, 0x63,
|
||||
0x68, 0x56, 0x41, 0x41, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x70, 0x75,
|
||||
0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x69,
|
||||
0x67, 0x6e, 0x65, 0x64, 0x42, 0x61, 0x74, 0x63, 0x68, 0x56, 0x41, 0x41, 0x52, 0x65, 0x73, 0x70,
|
||||
0x6f, 0x6e, 0x73, 0x65, 0x22, 0x57, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x51, 0x12, 0x4f, 0x2f, 0x76,
|
||||
0x31, 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x76,
|
||||
0x61, 0x61, 0x2f, 0x7b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x2e, 0x65, 0x6d, 0x69,
|
||||
0x74, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x7d, 0x2f, 0x7b, 0x62, 0x61, 0x74,
|
||||
0x63, 0x68, 0x5f, 0x69, 0x64, 0x2e, 0x74, 0x78, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x7b, 0x62, 0x61,
|
||||
0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x2e, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x7d, 0x12, 0x91, 0x01,
|
||||
0x0a, 0x15, 0x47, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x47, 0x75, 0x61, 0x72,
|
||||
0x64, 0x69, 0x61, 0x6e, 0x53, 0x65, 0x74, 0x12, 0x2a, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63,
|
||||
0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e,
|
||||
0x74, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e,
|
||||
0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x47, 0x75, 0x61,
|
||||
0x72, 0x64, 0x69, 0x61, 0x6e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
||||
0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x75,
|
||||
0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x73, 0x65, 0x74, 0x2f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e,
|
||||
0x74, 0x12, 0xcc, 0x01, 0x0a, 0x23, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x47, 0x65,
|
||||
0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x61, 0x6c, 0x42, 0x79, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x38, 0x2e, 0x70, 0x75, 0x62, 0x6c,
|
||||
0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f,
|
||||
0x72, 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x79, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e,
|
||||
0x76, 0x31, 0x2e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x47, 0x65, 0x74, 0x41, 0x76,
|
||||
0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42,
|
||||
0x79, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30,
|
||||
0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, 0x28, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x6f, 0x76, 0x65,
|
||||
0x72, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e,
|
||||
0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e,
|
||||
0x12, 0x9a, 0x01, 0x0a, 0x17, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x47, 0x65, 0x74,
|
||||
0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x56, 0x41, 0x41, 0x73, 0x12, 0x2c, 0x2e, 0x70,
|
||||
0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6f, 0x76, 0x65,
|
||||
0x72, 0x6e, 0x6f, 0x72, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x56,
|
||||
0x41, 0x41, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4,
|
||||
0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f,
|
||||
0x72, 0x2f, 0x65, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x61, 0x73, 0x12,
|
||||
0xe4, 0x01, 0x0a, 0x15, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x49, 0x73, 0x56, 0x41,
|
||||
0x41, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x12, 0x2a, 0x2e, 0x70, 0x75, 0x62, 0x6c,
|
||||
0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f,
|
||||
0x72, 0x49, 0x73, 0x56, 0x41, 0x41, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65,
|
||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70,
|
||||
0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x49, 0x73, 0x56,
|
||||
0x41, 0x41, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
|
||||
0x73, 0x65, 0x22, 0x72, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6c, 0x12, 0x6a, 0x2f, 0x76, 0x31, 0x2f,
|
||||
0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x2f, 0x69, 0x73, 0x5f, 0x76, 0x61, 0x61, 0x5f,
|
||||
0x65, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x2f, 0x7b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
|
||||
0x65, 0x5f, 0x69, 0x64, 0x2e, 0x65, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x61,
|
||||
0x69, 0x6e, 0x7d, 0x2f, 0x7b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x2e,
|
||||
0x65, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d,
|
||||
0x2f, 0x7b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x2e, 0x73, 0x65, 0x71,
|
||||
0x75, 0x65, 0x6e, 0x63, 0x65, 0x7d, 0x12, 0x8e, 0x01, 0x0a, 0x14, 0x47, 0x6f, 0x76, 0x65, 0x72,
|
||||
0x6e, 0x6f, 0x72, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12,
|
||||
0x29, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47,
|
||||
0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4c,
|
||||
0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x70, 0x75, 0x62,
|
||||
0x41, 0x41, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x70, 0x75, 0x62,
|
||||
0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e,
|
||||
0x6f, 0x72, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65,
|
||||
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17,
|
||||
0x2f, 0x76, 0x31, 0x2f, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x2f, 0x74, 0x6f, 0x6b,
|
||||
0x65, 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x47, 0x5a, 0x45, 0x67, 0x69, 0x74, 0x68, 0x75,
|
||||
0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x65, 0x72, 0x74, 0x75, 0x73, 0x6f, 0x6e, 0x65, 0x2f,
|
||||
0x77, 0x6f, 0x72, 0x6d, 0x68, 0x6f, 0x6c, 0x65, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x2f, 0x70, 0x6b,
|
||||
0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70,
|
||||
0x63, 0x2f, 0x76, 0x31, 0x3b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x76, 0x31,
|
||||
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x6f, 0x72, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x56, 0x41, 0x41,
|
||||
0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02,
|
||||
0x1c, 0x12, 0x1a, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x2f,
|
||||
0x65, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x61, 0x73, 0x12, 0xe4, 0x01,
|
||||
0x0a, 0x15, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x49, 0x73, 0x56, 0x41, 0x41, 0x45,
|
||||
0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x12, 0x2a, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63,
|
||||
0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x49,
|
||||
0x73, 0x56, 0x41, 0x41, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e,
|
||||
0x76, 0x31, 0x2e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x49, 0x73, 0x56, 0x41, 0x41,
|
||||
0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
||||
0x22, 0x72, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6c, 0x12, 0x6a, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x6f,
|
||||
0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x2f, 0x69, 0x73, 0x5f, 0x76, 0x61, 0x61, 0x5f, 0x65, 0x6e,
|
||||
0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x2f, 0x7b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f,
|
||||
0x69, 0x64, 0x2e, 0x65, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e,
|
||||
0x7d, 0x2f, 0x7b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x2e, 0x65, 0x6d,
|
||||
0x69, 0x74, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x2f, 0x7b,
|
||||
0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x2e, 0x73, 0x65, 0x71, 0x75, 0x65,
|
||||
0x6e, 0x63, 0x65, 0x7d, 0x12, 0x8e, 0x01, 0x0a, 0x14, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f,
|
||||
0x72, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x29, 0x2e,
|
||||
0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6f, 0x76,
|
||||
0x65, 0x72, 0x6e, 0x6f, 0x72, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4c, 0x69, 0x73,
|
||||
0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69,
|
||||
0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72,
|
||||
0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70,
|
||||
0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x76,
|
||||
0x31, 0x2f, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e,
|
||||
0x5f, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x47, 0x5a, 0x45, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
|
||||
0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x65, 0x72, 0x74, 0x75, 0x73, 0x6f, 0x6e, 0x65, 0x2f, 0x77, 0x6f,
|
||||
0x72, 0x6d, 0x68, 0x6f, 0x6c, 0x65, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x2f, 0x70, 0x6b, 0x67, 0x2f,
|
||||
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2f,
|
||||
0x76, 0x31, 0x3b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x76, 0x31, 0x62, 0x06,
|
||||
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
@ -1644,41 +1658,43 @@ var file_publicrpc_v1_publicrpc_proto_goTypes = []interface{}{
|
|||
(*GovernorGetAvailableNotionalByChainResponse_Entry)(nil), // 21: publicrpc.v1.GovernorGetAvailableNotionalByChainResponse.Entry
|
||||
(*GovernorGetEnqueuedVAAsResponse_Entry)(nil), // 22: publicrpc.v1.GovernorGetEnqueuedVAAsResponse.Entry
|
||||
(*GovernorGetTokenListResponse_Entry)(nil), // 23: publicrpc.v1.GovernorGetTokenListResponse.Entry
|
||||
(*v1.Heartbeat)(nil), // 24: gossip.v1.Heartbeat
|
||||
(*v1.SignedBatchVAAWithQuorum)(nil), // 24: gossip.v1.SignedBatchVAAWithQuorum
|
||||
(*v1.Heartbeat)(nil), // 25: gossip.v1.Heartbeat
|
||||
}
|
||||
var file_publicrpc_v1_publicrpc_proto_depIdxs = []int32{
|
||||
0, // 0: publicrpc.v1.MessageID.emitter_chain:type_name -> publicrpc.v1.ChainID
|
||||
0, // 1: publicrpc.v1.BatchID.emitter_chain:type_name -> publicrpc.v1.ChainID
|
||||
1, // 2: publicrpc.v1.GetSignedVAARequest.message_id:type_name -> publicrpc.v1.MessageID
|
||||
2, // 3: publicrpc.v1.GetSignedBatchVAARequest.batch_id:type_name -> publicrpc.v1.BatchID
|
||||
20, // 4: publicrpc.v1.GetLastHeartbeatsResponse.entries:type_name -> publicrpc.v1.GetLastHeartbeatsResponse.Entry
|
||||
11, // 5: publicrpc.v1.GetCurrentGuardianSetResponse.guardian_set:type_name -> publicrpc.v1.GuardianSet
|
||||
21, // 6: publicrpc.v1.GovernorGetAvailableNotionalByChainResponse.entries:type_name -> publicrpc.v1.GovernorGetAvailableNotionalByChainResponse.Entry
|
||||
22, // 7: publicrpc.v1.GovernorGetEnqueuedVAAsResponse.entries:type_name -> publicrpc.v1.GovernorGetEnqueuedVAAsResponse.Entry
|
||||
1, // 8: publicrpc.v1.GovernorIsVAAEnqueuedRequest.message_id:type_name -> publicrpc.v1.MessageID
|
||||
23, // 9: publicrpc.v1.GovernorGetTokenListResponse.entries:type_name -> publicrpc.v1.GovernorGetTokenListResponse.Entry
|
||||
24, // 10: publicrpc.v1.GetLastHeartbeatsResponse.Entry.raw_heartbeat:type_name -> gossip.v1.Heartbeat
|
||||
7, // 11: publicrpc.v1.PublicRPCService.GetLastHeartbeats:input_type -> publicrpc.v1.GetLastHeartbeatsRequest
|
||||
3, // 12: publicrpc.v1.PublicRPCService.GetSignedVAA:input_type -> publicrpc.v1.GetSignedVAARequest
|
||||
5, // 13: publicrpc.v1.PublicRPCService.GetSignedBatchVAA:input_type -> publicrpc.v1.GetSignedBatchVAARequest
|
||||
9, // 14: publicrpc.v1.PublicRPCService.GetCurrentGuardianSet:input_type -> publicrpc.v1.GetCurrentGuardianSetRequest
|
||||
12, // 15: publicrpc.v1.PublicRPCService.GovernorGetAvailableNotionalByChain:input_type -> publicrpc.v1.GovernorGetAvailableNotionalByChainRequest
|
||||
14, // 16: publicrpc.v1.PublicRPCService.GovernorGetEnqueuedVAAs:input_type -> publicrpc.v1.GovernorGetEnqueuedVAAsRequest
|
||||
16, // 17: publicrpc.v1.PublicRPCService.GovernorIsVAAEnqueued:input_type -> publicrpc.v1.GovernorIsVAAEnqueuedRequest
|
||||
18, // 18: publicrpc.v1.PublicRPCService.GovernorGetTokenList:input_type -> publicrpc.v1.GovernorGetTokenListRequest
|
||||
8, // 19: publicrpc.v1.PublicRPCService.GetLastHeartbeats:output_type -> publicrpc.v1.GetLastHeartbeatsResponse
|
||||
4, // 20: publicrpc.v1.PublicRPCService.GetSignedVAA:output_type -> publicrpc.v1.GetSignedVAAResponse
|
||||
6, // 21: publicrpc.v1.PublicRPCService.GetSignedBatchVAA:output_type -> publicrpc.v1.GetSignedBatchVAAResponse
|
||||
10, // 22: publicrpc.v1.PublicRPCService.GetCurrentGuardianSet:output_type -> publicrpc.v1.GetCurrentGuardianSetResponse
|
||||
13, // 23: publicrpc.v1.PublicRPCService.GovernorGetAvailableNotionalByChain:output_type -> publicrpc.v1.GovernorGetAvailableNotionalByChainResponse
|
||||
15, // 24: publicrpc.v1.PublicRPCService.GovernorGetEnqueuedVAAs:output_type -> publicrpc.v1.GovernorGetEnqueuedVAAsResponse
|
||||
17, // 25: publicrpc.v1.PublicRPCService.GovernorIsVAAEnqueued:output_type -> publicrpc.v1.GovernorIsVAAEnqueuedResponse
|
||||
19, // 26: publicrpc.v1.PublicRPCService.GovernorGetTokenList:output_type -> publicrpc.v1.GovernorGetTokenListResponse
|
||||
19, // [19:27] is the sub-list for method output_type
|
||||
11, // [11:19] is the sub-list for method input_type
|
||||
11, // [11:11] is the sub-list for extension type_name
|
||||
11, // [11:11] is the sub-list for extension extendee
|
||||
0, // [0:11] is the sub-list for field type_name
|
||||
24, // 4: publicrpc.v1.GetSignedBatchVAAResponse.signed_batch_vaa:type_name -> gossip.v1.SignedBatchVAAWithQuorum
|
||||
20, // 5: publicrpc.v1.GetLastHeartbeatsResponse.entries:type_name -> publicrpc.v1.GetLastHeartbeatsResponse.Entry
|
||||
11, // 6: publicrpc.v1.GetCurrentGuardianSetResponse.guardian_set:type_name -> publicrpc.v1.GuardianSet
|
||||
21, // 7: publicrpc.v1.GovernorGetAvailableNotionalByChainResponse.entries:type_name -> publicrpc.v1.GovernorGetAvailableNotionalByChainResponse.Entry
|
||||
22, // 8: publicrpc.v1.GovernorGetEnqueuedVAAsResponse.entries:type_name -> publicrpc.v1.GovernorGetEnqueuedVAAsResponse.Entry
|
||||
1, // 9: publicrpc.v1.GovernorIsVAAEnqueuedRequest.message_id:type_name -> publicrpc.v1.MessageID
|
||||
23, // 10: publicrpc.v1.GovernorGetTokenListResponse.entries:type_name -> publicrpc.v1.GovernorGetTokenListResponse.Entry
|
||||
25, // 11: publicrpc.v1.GetLastHeartbeatsResponse.Entry.raw_heartbeat:type_name -> gossip.v1.Heartbeat
|
||||
7, // 12: publicrpc.v1.PublicRPCService.GetLastHeartbeats:input_type -> publicrpc.v1.GetLastHeartbeatsRequest
|
||||
3, // 13: publicrpc.v1.PublicRPCService.GetSignedVAA:input_type -> publicrpc.v1.GetSignedVAARequest
|
||||
5, // 14: publicrpc.v1.PublicRPCService.GetSignedBatchVAA:input_type -> publicrpc.v1.GetSignedBatchVAARequest
|
||||
9, // 15: publicrpc.v1.PublicRPCService.GetCurrentGuardianSet:input_type -> publicrpc.v1.GetCurrentGuardianSetRequest
|
||||
12, // 16: publicrpc.v1.PublicRPCService.GovernorGetAvailableNotionalByChain:input_type -> publicrpc.v1.GovernorGetAvailableNotionalByChainRequest
|
||||
14, // 17: publicrpc.v1.PublicRPCService.GovernorGetEnqueuedVAAs:input_type -> publicrpc.v1.GovernorGetEnqueuedVAAsRequest
|
||||
16, // 18: publicrpc.v1.PublicRPCService.GovernorIsVAAEnqueued:input_type -> publicrpc.v1.GovernorIsVAAEnqueuedRequest
|
||||
18, // 19: publicrpc.v1.PublicRPCService.GovernorGetTokenList:input_type -> publicrpc.v1.GovernorGetTokenListRequest
|
||||
8, // 20: publicrpc.v1.PublicRPCService.GetLastHeartbeats:output_type -> publicrpc.v1.GetLastHeartbeatsResponse
|
||||
4, // 21: publicrpc.v1.PublicRPCService.GetSignedVAA:output_type -> publicrpc.v1.GetSignedVAAResponse
|
||||
6, // 22: publicrpc.v1.PublicRPCService.GetSignedBatchVAA:output_type -> publicrpc.v1.GetSignedBatchVAAResponse
|
||||
10, // 23: publicrpc.v1.PublicRPCService.GetCurrentGuardianSet:output_type -> publicrpc.v1.GetCurrentGuardianSetResponse
|
||||
13, // 24: publicrpc.v1.PublicRPCService.GovernorGetAvailableNotionalByChain:output_type -> publicrpc.v1.GovernorGetAvailableNotionalByChainResponse
|
||||
15, // 25: publicrpc.v1.PublicRPCService.GovernorGetEnqueuedVAAs:output_type -> publicrpc.v1.GovernorGetEnqueuedVAAsResponse
|
||||
17, // 26: publicrpc.v1.PublicRPCService.GovernorIsVAAEnqueued:output_type -> publicrpc.v1.GovernorIsVAAEnqueuedResponse
|
||||
19, // 27: publicrpc.v1.PublicRPCService.GovernorGetTokenList:output_type -> publicrpc.v1.GovernorGetTokenListResponse
|
||||
20, // [20:28] is the sub-list for method output_type
|
||||
12, // [12:20] is the sub-list for method input_type
|
||||
12, // [12:12] is the sub-list for extension type_name
|
||||
12, // [12:12] is the sub-list for extension extendee
|
||||
0, // [0:12] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_publicrpc_v1_publicrpc_proto_init() }
|
||||
|
|
|
@ -176,7 +176,7 @@ func local_request_PublicRPCService_GetSignedVAA_0(ctx context.Context, marshale
|
|||
}
|
||||
|
||||
var (
|
||||
filter_PublicRPCService_GetSignedBatchVAA_0 = &utilities.DoubleArray{Encoding: map[string]int{"batch_id": 0, "emitter_chain": 1, "tx_id": 2}, Base: []int{1, 1, 1, 2, 0, 0}, Check: []int{0, 1, 2, 2, 3, 4}}
|
||||
filter_PublicRPCService_GetSignedBatchVAA_0 = &utilities.DoubleArray{Encoding: map[string]int{"batch_id": 0, "emitter_chain": 1, "tx_id": 2, "nonce": 3}, Base: []int{1, 1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 2, 2, 2, 3, 4, 5}}
|
||||
)
|
||||
|
||||
func request_PublicRPCService_GetSignedBatchVAA_0(ctx context.Context, marshaler runtime.Marshaler, client PublicRPCServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
|
||||
|
@ -218,6 +218,16 @@ func request_PublicRPCService_GetSignedBatchVAA_0(ctx context.Context, marshaler
|
|||
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "batch_id.tx_id", err)
|
||||
}
|
||||
|
||||
val, ok = pathParams["batch_id.nonce"]
|
||||
if !ok {
|
||||
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "batch_id.nonce")
|
||||
}
|
||||
|
||||
err = runtime.PopulateFieldFromPath(&protoReq, "batch_id.nonce", val)
|
||||
if err != nil {
|
||||
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "batch_id.nonce", err)
|
||||
}
|
||||
|
||||
if err := req.ParseForm(); err != nil {
|
||||
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
|
||||
}
|
||||
|
@ -269,6 +279,16 @@ func local_request_PublicRPCService_GetSignedBatchVAA_0(ctx context.Context, mar
|
|||
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "batch_id.tx_id", err)
|
||||
}
|
||||
|
||||
val, ok = pathParams["batch_id.nonce"]
|
||||
if !ok {
|
||||
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "batch_id.nonce")
|
||||
}
|
||||
|
||||
err = runtime.PopulateFieldFromPath(&protoReq, "batch_id.nonce", val)
|
||||
if err != nil {
|
||||
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "batch_id.nonce", err)
|
||||
}
|
||||
|
||||
if err := req.ParseForm(); err != nil {
|
||||
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
|
||||
}
|
||||
|
@ -537,7 +557,7 @@ func RegisterPublicRPCServiceHandlerServer(ctx context.Context, mux *runtime.Ser
|
|||
var stream runtime.ServerTransportStream
|
||||
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
|
||||
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
|
||||
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/publicrpc.v1.PublicRPCService/GetSignedBatchVAA", runtime.WithHTTPPathPattern("/v1/signed_batch_vaa/{batch_id.emitter_chain}/{batch_id.tx_id}"))
|
||||
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/publicrpc.v1.PublicRPCService/GetSignedBatchVAA", runtime.WithHTTPPathPattern("/v1/signed_batch_vaa/{batch_id.emitter_chain}/{batch_id.tx_id}/{batch_id.nonce}"))
|
||||
if err != nil {
|
||||
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
|
||||
return
|
||||
|
@ -754,7 +774,7 @@ func RegisterPublicRPCServiceHandlerClient(ctx context.Context, mux *runtime.Ser
|
|||
ctx, cancel := context.WithCancel(req.Context())
|
||||
defer cancel()
|
||||
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
|
||||
rctx, err := runtime.AnnotateContext(ctx, mux, req, "/publicrpc.v1.PublicRPCService/GetSignedBatchVAA", runtime.WithHTTPPathPattern("/v1/signed_batch_vaa/{batch_id.emitter_chain}/{batch_id.tx_id}"))
|
||||
rctx, err := runtime.AnnotateContext(ctx, mux, req, "/publicrpc.v1.PublicRPCService/GetSignedBatchVAA", runtime.WithHTTPPathPattern("/v1/signed_batch_vaa/{batch_id.emitter_chain}/{batch_id.tx_id}/{batch_id.nonce}"))
|
||||
if err != nil {
|
||||
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
|
||||
return
|
||||
|
@ -878,7 +898,7 @@ var (
|
|||
|
||||
pattern_PublicRPCService_GetSignedVAA_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"v1", "signed_vaa", "message_id.emitter_chain", "message_id.emitter_address", "message_id.sequence"}, ""))
|
||||
|
||||
pattern_PublicRPCService_GetSignedBatchVAA_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 1, 0, 4, 1, 5, 3}, []string{"v1", "signed_batch_vaa", "batch_id.emitter_chain", "batch_id.tx_id"}, ""))
|
||||
pattern_PublicRPCService_GetSignedBatchVAA_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"v1", "signed_batch_vaa", "batch_id.emitter_chain", "batch_id.tx_id", "batch_id.nonce"}, ""))
|
||||
|
||||
pattern_PublicRPCService_GetCurrentGuardianSet_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"v1", "guardianset", "current"}, ""))
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
package spyv1
|
||||
|
||||
import (
|
||||
v11 "github.com/certusone/wormhole/node/pkg/proto/gossip/v1"
|
||||
v1 "github.com/certusone/wormhole/node/pkg/proto/publicrpc/v1"
|
||||
_ "google.golang.org/genproto/googleapis/api/annotations"
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
|
@ -80,6 +81,129 @@ func (x *EmitterFilter) GetEmitterAddress() string {
|
|||
return ""
|
||||
}
|
||||
|
||||
type BatchFilter struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
// Source chain
|
||||
ChainId v1.ChainID `protobuf:"varint,1,opt,name=chain_id,json=chainId,proto3,enum=publicrpc.v1.ChainID" json:"chain_id,omitempty"`
|
||||
// Native transaction identifier bytes.
|
||||
TxId []byte `protobuf:"bytes,2,opt,name=tx_id,json=txId,proto3" json:"tx_id,omitempty"`
|
||||
// Nonce of the messages in the batch.
|
||||
Nonce uint32 `protobuf:"varint,3,opt,name=nonce,proto3" json:"nonce,omitempty"`
|
||||
}
|
||||
|
||||
func (x *BatchFilter) Reset() {
|
||||
*x = BatchFilter{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_spy_v1_spy_proto_msgTypes[1]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *BatchFilter) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*BatchFilter) ProtoMessage() {}
|
||||
|
||||
func (x *BatchFilter) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_spy_v1_spy_proto_msgTypes[1]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use BatchFilter.ProtoReflect.Descriptor instead.
|
||||
func (*BatchFilter) Descriptor() ([]byte, []int) {
|
||||
return file_spy_v1_spy_proto_rawDescGZIP(), []int{1}
|
||||
}
|
||||
|
||||
func (x *BatchFilter) GetChainId() v1.ChainID {
|
||||
if x != nil {
|
||||
return x.ChainId
|
||||
}
|
||||
return v1.ChainID(0)
|
||||
}
|
||||
|
||||
func (x *BatchFilter) GetTxId() []byte {
|
||||
if x != nil {
|
||||
return x.TxId
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *BatchFilter) GetNonce() uint32 {
|
||||
if x != nil {
|
||||
return x.Nonce
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
type BatchTransactionFilter struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
// Source chain
|
||||
ChainId v1.ChainID `protobuf:"varint,1,opt,name=chain_id,json=chainId,proto3,enum=publicrpc.v1.ChainID" json:"chain_id,omitempty"`
|
||||
// Native transaction identifier bytes.
|
||||
TxId []byte `protobuf:"bytes,2,opt,name=tx_id,json=txId,proto3" json:"tx_id,omitempty"`
|
||||
}
|
||||
|
||||
func (x *BatchTransactionFilter) Reset() {
|
||||
*x = BatchTransactionFilter{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_spy_v1_spy_proto_msgTypes[2]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *BatchTransactionFilter) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*BatchTransactionFilter) ProtoMessage() {}
|
||||
|
||||
func (x *BatchTransactionFilter) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_spy_v1_spy_proto_msgTypes[2]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use BatchTransactionFilter.ProtoReflect.Descriptor instead.
|
||||
func (*BatchTransactionFilter) Descriptor() ([]byte, []int) {
|
||||
return file_spy_v1_spy_proto_rawDescGZIP(), []int{2}
|
||||
}
|
||||
|
||||
func (x *BatchTransactionFilter) GetChainId() v1.ChainID {
|
||||
if x != nil {
|
||||
return x.ChainId
|
||||
}
|
||||
return v1.ChainID(0)
|
||||
}
|
||||
|
||||
func (x *BatchTransactionFilter) GetTxId() []byte {
|
||||
if x != nil {
|
||||
return x.TxId
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type FilterEntry struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
|
@ -87,13 +211,15 @@ type FilterEntry struct {
|
|||
|
||||
// Types that are assignable to Filter:
|
||||
// *FilterEntry_EmitterFilter
|
||||
// *FilterEntry_BatchFilter
|
||||
// *FilterEntry_BatchTransactionFilter
|
||||
Filter isFilterEntry_Filter `protobuf_oneof:"filter"`
|
||||
}
|
||||
|
||||
func (x *FilterEntry) Reset() {
|
||||
*x = FilterEntry{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_spy_v1_spy_proto_msgTypes[1]
|
||||
mi := &file_spy_v1_spy_proto_msgTypes[3]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
@ -106,7 +232,7 @@ func (x *FilterEntry) String() string {
|
|||
func (*FilterEntry) ProtoMessage() {}
|
||||
|
||||
func (x *FilterEntry) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_spy_v1_spy_proto_msgTypes[1]
|
||||
mi := &file_spy_v1_spy_proto_msgTypes[3]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
|
@ -119,7 +245,7 @@ func (x *FilterEntry) ProtoReflect() protoreflect.Message {
|
|||
|
||||
// Deprecated: Use FilterEntry.ProtoReflect.Descriptor instead.
|
||||
func (*FilterEntry) Descriptor() ([]byte, []int) {
|
||||
return file_spy_v1_spy_proto_rawDescGZIP(), []int{1}
|
||||
return file_spy_v1_spy_proto_rawDescGZIP(), []int{3}
|
||||
}
|
||||
|
||||
func (m *FilterEntry) GetFilter() isFilterEntry_Filter {
|
||||
|
@ -136,6 +262,20 @@ func (x *FilterEntry) GetEmitterFilter() *EmitterFilter {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (x *FilterEntry) GetBatchFilter() *BatchFilter {
|
||||
if x, ok := x.GetFilter().(*FilterEntry_BatchFilter); ok {
|
||||
return x.BatchFilter
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *FilterEntry) GetBatchTransactionFilter() *BatchTransactionFilter {
|
||||
if x, ok := x.GetFilter().(*FilterEntry_BatchTransactionFilter); ok {
|
||||
return x.BatchTransactionFilter
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type isFilterEntry_Filter interface {
|
||||
isFilterEntry_Filter()
|
||||
}
|
||||
|
@ -144,8 +284,20 @@ type FilterEntry_EmitterFilter struct {
|
|||
EmitterFilter *EmitterFilter `protobuf:"bytes,1,opt,name=emitter_filter,json=emitterFilter,proto3,oneof"`
|
||||
}
|
||||
|
||||
type FilterEntry_BatchFilter struct {
|
||||
BatchFilter *BatchFilter `protobuf:"bytes,2,opt,name=batch_filter,json=batchFilter,proto3,oneof"`
|
||||
}
|
||||
|
||||
type FilterEntry_BatchTransactionFilter struct {
|
||||
BatchTransactionFilter *BatchTransactionFilter `protobuf:"bytes,3,opt,name=batch_transaction_filter,json=batchTransactionFilter,proto3,oneof"`
|
||||
}
|
||||
|
||||
func (*FilterEntry_EmitterFilter) isFilterEntry_Filter() {}
|
||||
|
||||
func (*FilterEntry_BatchFilter) isFilterEntry_Filter() {}
|
||||
|
||||
func (*FilterEntry_BatchTransactionFilter) isFilterEntry_Filter() {}
|
||||
|
||||
type SubscribeSignedVAARequest struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
|
@ -159,7 +311,7 @@ type SubscribeSignedVAARequest struct {
|
|||
func (x *SubscribeSignedVAARequest) Reset() {
|
||||
*x = SubscribeSignedVAARequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_spy_v1_spy_proto_msgTypes[2]
|
||||
mi := &file_spy_v1_spy_proto_msgTypes[4]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
@ -172,7 +324,7 @@ func (x *SubscribeSignedVAARequest) String() string {
|
|||
func (*SubscribeSignedVAARequest) ProtoMessage() {}
|
||||
|
||||
func (x *SubscribeSignedVAARequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_spy_v1_spy_proto_msgTypes[2]
|
||||
mi := &file_spy_v1_spy_proto_msgTypes[4]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
|
@ -185,7 +337,7 @@ func (x *SubscribeSignedVAARequest) ProtoReflect() protoreflect.Message {
|
|||
|
||||
// Deprecated: Use SubscribeSignedVAARequest.ProtoReflect.Descriptor instead.
|
||||
func (*SubscribeSignedVAARequest) Descriptor() ([]byte, []int) {
|
||||
return file_spy_v1_spy_proto_rawDescGZIP(), []int{2}
|
||||
return file_spy_v1_spy_proto_rawDescGZIP(), []int{4}
|
||||
}
|
||||
|
||||
func (x *SubscribeSignedVAARequest) GetFilters() []*FilterEntry {
|
||||
|
@ -195,6 +347,55 @@ func (x *SubscribeSignedVAARequest) GetFilters() []*FilterEntry {
|
|||
return nil
|
||||
}
|
||||
|
||||
type SubscribeSignedVAAByTypeRequest struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
// List of filters to apply to the stream (OR).
|
||||
// If empty, all messages are streamed.
|
||||
Filters []*FilterEntry `protobuf:"bytes,1,rep,name=filters,proto3" json:"filters,omitempty"`
|
||||
}
|
||||
|
||||
func (x *SubscribeSignedVAAByTypeRequest) Reset() {
|
||||
*x = SubscribeSignedVAAByTypeRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_spy_v1_spy_proto_msgTypes[5]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *SubscribeSignedVAAByTypeRequest) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*SubscribeSignedVAAByTypeRequest) ProtoMessage() {}
|
||||
|
||||
func (x *SubscribeSignedVAAByTypeRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_spy_v1_spy_proto_msgTypes[5]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use SubscribeSignedVAAByTypeRequest.ProtoReflect.Descriptor instead.
|
||||
func (*SubscribeSignedVAAByTypeRequest) Descriptor() ([]byte, []int) {
|
||||
return file_spy_v1_spy_proto_rawDescGZIP(), []int{5}
|
||||
}
|
||||
|
||||
func (x *SubscribeSignedVAAByTypeRequest) GetFilters() []*FilterEntry {
|
||||
if x != nil {
|
||||
return x.Filters
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type SubscribeSignedVAAResponse struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
|
@ -207,7 +408,7 @@ type SubscribeSignedVAAResponse struct {
|
|||
func (x *SubscribeSignedVAAResponse) Reset() {
|
||||
*x = SubscribeSignedVAAResponse{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_spy_v1_spy_proto_msgTypes[3]
|
||||
mi := &file_spy_v1_spy_proto_msgTypes[6]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
@ -220,7 +421,7 @@ func (x *SubscribeSignedVAAResponse) String() string {
|
|||
func (*SubscribeSignedVAAResponse) ProtoMessage() {}
|
||||
|
||||
func (x *SubscribeSignedVAAResponse) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_spy_v1_spy_proto_msgTypes[3]
|
||||
mi := &file_spy_v1_spy_proto_msgTypes[6]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
|
@ -233,7 +434,7 @@ func (x *SubscribeSignedVAAResponse) ProtoReflect() protoreflect.Message {
|
|||
|
||||
// Deprecated: Use SubscribeSignedVAAResponse.ProtoReflect.Descriptor instead.
|
||||
func (*SubscribeSignedVAAResponse) Descriptor() ([]byte, []int) {
|
||||
return file_spy_v1_spy_proto_rawDescGZIP(), []int{3}
|
||||
return file_spy_v1_spy_proto_rawDescGZIP(), []int{6}
|
||||
}
|
||||
|
||||
func (x *SubscribeSignedVAAResponse) GetVaaBytes() []byte {
|
||||
|
@ -243,45 +444,177 @@ func (x *SubscribeSignedVAAResponse) GetVaaBytes() []byte {
|
|||
return nil
|
||||
}
|
||||
|
||||
type SubscribeSignedVAAByTypeResponse struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
// Types that are assignable to VaaType:
|
||||
// *SubscribeSignedVAAByTypeResponse_SignedVaa
|
||||
// *SubscribeSignedVAAByTypeResponse_SignedBatchVaa
|
||||
VaaType isSubscribeSignedVAAByTypeResponse_VaaType `protobuf_oneof:"vaa_type"`
|
||||
}
|
||||
|
||||
func (x *SubscribeSignedVAAByTypeResponse) Reset() {
|
||||
*x = SubscribeSignedVAAByTypeResponse{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_spy_v1_spy_proto_msgTypes[7]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *SubscribeSignedVAAByTypeResponse) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*SubscribeSignedVAAByTypeResponse) ProtoMessage() {}
|
||||
|
||||
func (x *SubscribeSignedVAAByTypeResponse) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_spy_v1_spy_proto_msgTypes[7]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use SubscribeSignedVAAByTypeResponse.ProtoReflect.Descriptor instead.
|
||||
func (*SubscribeSignedVAAByTypeResponse) Descriptor() ([]byte, []int) {
|
||||
return file_spy_v1_spy_proto_rawDescGZIP(), []int{7}
|
||||
}
|
||||
|
||||
func (m *SubscribeSignedVAAByTypeResponse) GetVaaType() isSubscribeSignedVAAByTypeResponse_VaaType {
|
||||
if m != nil {
|
||||
return m.VaaType
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *SubscribeSignedVAAByTypeResponse) GetSignedVaa() *v11.SignedVAAWithQuorum {
|
||||
if x, ok := x.GetVaaType().(*SubscribeSignedVAAByTypeResponse_SignedVaa); ok {
|
||||
return x.SignedVaa
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *SubscribeSignedVAAByTypeResponse) GetSignedBatchVaa() *v11.SignedBatchVAAWithQuorum {
|
||||
if x, ok := x.GetVaaType().(*SubscribeSignedVAAByTypeResponse_SignedBatchVaa); ok {
|
||||
return x.SignedBatchVaa
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type isSubscribeSignedVAAByTypeResponse_VaaType interface {
|
||||
isSubscribeSignedVAAByTypeResponse_VaaType()
|
||||
}
|
||||
|
||||
type SubscribeSignedVAAByTypeResponse_SignedVaa struct {
|
||||
SignedVaa *v11.SignedVAAWithQuorum `protobuf:"bytes,1,opt,name=signed_vaa,json=signedVaa,proto3,oneof"`
|
||||
}
|
||||
|
||||
type SubscribeSignedVAAByTypeResponse_SignedBatchVaa struct {
|
||||
SignedBatchVaa *v11.SignedBatchVAAWithQuorum `protobuf:"bytes,2,opt,name=signed_batch_vaa,json=signedBatchVaa,proto3,oneof"`
|
||||
}
|
||||
|
||||
func (*SubscribeSignedVAAByTypeResponse_SignedVaa) isSubscribeSignedVAAByTypeResponse_VaaType() {}
|
||||
|
||||
func (*SubscribeSignedVAAByTypeResponse_SignedBatchVaa) isSubscribeSignedVAAByTypeResponse_VaaType() {
|
||||
}
|
||||
|
||||
var File_spy_v1_spy_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_spy_v1_spy_proto_rawDesc = []byte{
|
||||
0x0a, 0x10, 0x73, 0x70, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x70, 0x79, 0x2e, 0x70, 0x72, 0x6f,
|
||||
0x74, 0x6f, 0x12, 0x06, 0x73, 0x70, 0x79, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67,
|
||||
0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f,
|
||||
0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63,
|
||||
0x72, 0x70, 0x63, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63,
|
||||
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x6a, 0x0a, 0x0d, 0x45, 0x6d, 0x69, 0x74, 0x74, 0x65,
|
||||
0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x30, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e,
|
||||
0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x70, 0x75, 0x62, 0x6c,
|
||||
0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44,
|
||||
0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x6d, 0x69,
|
||||
0x74, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x0e, 0x65, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65,
|
||||
0x73, 0x73, 0x22, 0x57, 0x0a, 0x0b, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72,
|
||||
0x79, 0x12, 0x3e, 0x0a, 0x0e, 0x65, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x5f, 0x66, 0x69, 0x6c,
|
||||
0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x70, 0x79, 0x2e,
|
||||
0x76, 0x31, 0x2e, 0x45, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72,
|
||||
0x48, 0x00, 0x52, 0x0d, 0x65, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65,
|
||||
0x72, 0x42, 0x08, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x4a, 0x0a, 0x19, 0x53,
|
||||
0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x16, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70,
|
||||
0x2f, 0x76, 0x31, 0x2f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
|
||||
0x1a, 0x1c, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x31, 0x2f, 0x70,
|
||||
0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x6a,
|
||||
0x0a, 0x0d, 0x45, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12,
|
||||
0x30, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||
0x0e, 0x32, 0x15, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31,
|
||||
0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49,
|
||||
0x64, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64,
|
||||
0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x6d, 0x69, 0x74,
|
||||
0x74, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x6a, 0x0a, 0x0b, 0x42, 0x61,
|
||||
0x74, 0x63, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x30, 0x0a, 0x08, 0x63, 0x68, 0x61,
|
||||
0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x70, 0x75,
|
||||
0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e,
|
||||
0x49, 0x44, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x13, 0x0a, 0x05, 0x74,
|
||||
0x78, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x74, 0x78, 0x49, 0x64,
|
||||
0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52,
|
||||
0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x22, 0x5f, 0x0a, 0x16, 0x42, 0x61, 0x74, 0x63, 0x68, 0x54,
|
||||
0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72,
|
||||
0x12, 0x30, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x0e, 0x32, 0x15, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76,
|
||||
0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e,
|
||||
0x49, 0x64, 0x12, 0x13, 0x0a, 0x05, 0x74, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
|
||||
0x0c, 0x52, 0x04, 0x74, 0x78, 0x49, 0x64, 0x22, 0xed, 0x01, 0x0a, 0x0b, 0x46, 0x69, 0x6c, 0x74,
|
||||
0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x3e, 0x0a, 0x0e, 0x65, 0x6d, 0x69, 0x74, 0x74,
|
||||
0x65, 0x72, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
||||
0x15, 0x2e, 0x73, 0x70, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72,
|
||||
0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x6d, 0x69, 0x74, 0x74, 0x65,
|
||||
0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x0c, 0x62, 0x61, 0x74, 0x63, 0x68,
|
||||
0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e,
|
||||
0x73, 0x70, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x46, 0x69, 0x6c, 0x74,
|
||||
0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65,
|
||||
0x72, 0x12, 0x5a, 0x0a, 0x18, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73,
|
||||
0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20,
|
||||
0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x70, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74,
|
||||
0x63, 0x68, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c,
|
||||
0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x16, 0x62, 0x61, 0x74, 0x63, 0x68, 0x54, 0x72, 0x61, 0x6e,
|
||||
0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x08, 0x0a,
|
||||
0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x4a, 0x0a, 0x19, 0x53, 0x75, 0x62, 0x73, 0x63,
|
||||
0x72, 0x69, 0x62, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x41, 0x41, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18,
|
||||
0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x70, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x46,
|
||||
0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74,
|
||||
0x65, 0x72, 0x73, 0x22, 0x50, 0x0a, 0x1f, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65,
|
||||
0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x41, 0x41, 0x42, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52,
|
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72,
|
||||
0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x70, 0x79, 0x2e, 0x76, 0x31,
|
||||
0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x66, 0x69,
|
||||
0x6c, 0x74, 0x65, 0x72, 0x73, 0x22, 0x39, 0x0a, 0x1a, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
|
||||
0x62, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x41, 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f,
|
||||
0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x61, 0x61, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73,
|
||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x76, 0x61, 0x61, 0x42, 0x79, 0x74, 0x65, 0x73,
|
||||
0x22, 0xc0, 0x01, 0x0a, 0x20, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x53, 0x69,
|
||||
0x67, 0x6e, 0x65, 0x64, 0x56, 0x41, 0x41, 0x42, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73,
|
||||
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f,
|
||||
0x76, 0x61, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x73, 0x73,
|
||||
0x69, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x41, 0x41, 0x57,
|
||||
0x69, 0x74, 0x68, 0x51, 0x75, 0x6f, 0x72, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x09, 0x73, 0x69, 0x67,
|
||||
0x6e, 0x65, 0x64, 0x56, 0x61, 0x61, 0x12, 0x4f, 0x0a, 0x10, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64,
|
||||
0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x76, 0x61, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
|
||||
0x32, 0x23, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67,
|
||||
0x6e, 0x65, 0x64, 0x42, 0x61, 0x74, 0x63, 0x68, 0x56, 0x41, 0x41, 0x57, 0x69, 0x74, 0x68, 0x51,
|
||||
0x75, 0x6f, 0x72, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42,
|
||||
0x61, 0x74, 0x63, 0x68, 0x56, 0x61, 0x61, 0x42, 0x0a, 0x0a, 0x08, 0x76, 0x61, 0x61, 0x5f, 0x74,
|
||||
0x79, 0x70, 0x65, 0x32, 0xb3, 0x02, 0x0a, 0x0d, 0x53, 0x70, 0x79, 0x52, 0x50, 0x43, 0x53, 0x65,
|
||||
0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x12, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72,
|
||||
0x69, 0x62, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x41, 0x41, 0x12, 0x21, 0x2e, 0x73,
|
||||
0x70, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x53,
|
||||
0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x41, 0x41, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
|
||||
0x22, 0x2e, 0x73, 0x70, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
|
||||
0x62, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x41, 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f,
|
||||
0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x22, 0x18, 0x2f, 0x76, 0x31,
|
||||
0x3a, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x65,
|
||||
0x64, 0x5f, 0x76, 0x61, 0x61, 0x3a, 0x01, 0x2a, 0x30, 0x01, 0x12, 0x9c, 0x01, 0x0a, 0x18, 0x53,
|
||||
0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x41,
|
||||
0x41, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74,
|
||||
0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x70, 0x79, 0x2e,
|
||||
0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07,
|
||||
0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x22, 0x39, 0x0a, 0x1a, 0x53, 0x75, 0x62, 0x73, 0x63,
|
||||
0x72, 0x69, 0x62, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x41, 0x41, 0x52, 0x65, 0x73,
|
||||
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x61, 0x61, 0x5f, 0x62, 0x79, 0x74,
|
||||
0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x76, 0x61, 0x61, 0x42, 0x79, 0x74,
|
||||
0x65, 0x73, 0x32, 0x94, 0x01, 0x0a, 0x0d, 0x53, 0x70, 0x79, 0x52, 0x50, 0x43, 0x53, 0x65, 0x72,
|
||||
0x76, 0x69, 0x63, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x12, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
|
||||
0x62, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x41, 0x41, 0x12, 0x21, 0x2e, 0x73, 0x70,
|
||||
0x79, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x53, 0x69,
|
||||
0x67, 0x6e, 0x65, 0x64, 0x56, 0x41, 0x41, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22,
|
||||
0x2e, 0x73, 0x70, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62,
|
||||
0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x41, 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
|
||||
0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x22, 0x18, 0x2f, 0x76, 0x31, 0x3a,
|
||||
0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64,
|
||||
0x5f, 0x76, 0x61, 0x61, 0x3a, 0x01, 0x2a, 0x30, 0x01, 0x42, 0x3b, 0x5a, 0x39, 0x67, 0x69, 0x74,
|
||||
0x41, 0x42, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x2e, 0x73, 0x70, 0x79, 0x2e, 0x76, 0x31,
|
||||
0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64,
|
||||
0x56, 0x41, 0x41, 0x42, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||
0x1a, 0x28, 0x2e, 0x73, 0x70, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72,
|
||||
0x69, 0x62, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x41, 0x41, 0x42, 0x79, 0x54, 0x79,
|
||||
0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93,
|
||||
0x02, 0x25, 0x22, 0x20, 0x2f, 0x76, 0x31, 0x3a, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62,
|
||||
0x65, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x61, 0x5f, 0x62, 0x79, 0x5f,
|
||||
0x74, 0x79, 0x70, 0x65, 0x3a, 0x01, 0x2a, 0x30, 0x01, 0x42, 0x3b, 0x5a, 0x39, 0x67, 0x69, 0x74,
|
||||
0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x65, 0x72, 0x74, 0x75, 0x73, 0x6f, 0x6e,
|
||||
0x65, 0x2f, 0x77, 0x6f, 0x72, 0x6d, 0x68, 0x6f, 0x6c, 0x65, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x2f,
|
||||
0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x70, 0x79, 0x2f, 0x76, 0x31,
|
||||
|
@ -300,25 +633,40 @@ func file_spy_v1_spy_proto_rawDescGZIP() []byte {
|
|||
return file_spy_v1_spy_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_spy_v1_spy_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
|
||||
var file_spy_v1_spy_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
|
||||
var file_spy_v1_spy_proto_goTypes = []interface{}{
|
||||
(*EmitterFilter)(nil), // 0: spy.v1.EmitterFilter
|
||||
(*FilterEntry)(nil), // 1: spy.v1.FilterEntry
|
||||
(*SubscribeSignedVAARequest)(nil), // 2: spy.v1.SubscribeSignedVAARequest
|
||||
(*SubscribeSignedVAAResponse)(nil), // 3: spy.v1.SubscribeSignedVAAResponse
|
||||
(v1.ChainID)(0), // 4: publicrpc.v1.ChainID
|
||||
(*EmitterFilter)(nil), // 0: spy.v1.EmitterFilter
|
||||
(*BatchFilter)(nil), // 1: spy.v1.BatchFilter
|
||||
(*BatchTransactionFilter)(nil), // 2: spy.v1.BatchTransactionFilter
|
||||
(*FilterEntry)(nil), // 3: spy.v1.FilterEntry
|
||||
(*SubscribeSignedVAARequest)(nil), // 4: spy.v1.SubscribeSignedVAARequest
|
||||
(*SubscribeSignedVAAByTypeRequest)(nil), // 5: spy.v1.SubscribeSignedVAAByTypeRequest
|
||||
(*SubscribeSignedVAAResponse)(nil), // 6: spy.v1.SubscribeSignedVAAResponse
|
||||
(*SubscribeSignedVAAByTypeResponse)(nil), // 7: spy.v1.SubscribeSignedVAAByTypeResponse
|
||||
(v1.ChainID)(0), // 8: publicrpc.v1.ChainID
|
||||
(*v11.SignedVAAWithQuorum)(nil), // 9: gossip.v1.SignedVAAWithQuorum
|
||||
(*v11.SignedBatchVAAWithQuorum)(nil), // 10: gossip.v1.SignedBatchVAAWithQuorum
|
||||
}
|
||||
var file_spy_v1_spy_proto_depIdxs = []int32{
|
||||
4, // 0: spy.v1.EmitterFilter.chain_id:type_name -> publicrpc.v1.ChainID
|
||||
0, // 1: spy.v1.FilterEntry.emitter_filter:type_name -> spy.v1.EmitterFilter
|
||||
1, // 2: spy.v1.SubscribeSignedVAARequest.filters:type_name -> spy.v1.FilterEntry
|
||||
2, // 3: spy.v1.SpyRPCService.SubscribeSignedVAA:input_type -> spy.v1.SubscribeSignedVAARequest
|
||||
3, // 4: spy.v1.SpyRPCService.SubscribeSignedVAA:output_type -> spy.v1.SubscribeSignedVAAResponse
|
||||
4, // [4:5] is the sub-list for method output_type
|
||||
3, // [3:4] is the sub-list for method input_type
|
||||
3, // [3:3] is the sub-list for extension type_name
|
||||
3, // [3:3] is the sub-list for extension extendee
|
||||
0, // [0:3] is the sub-list for field type_name
|
||||
8, // 0: spy.v1.EmitterFilter.chain_id:type_name -> publicrpc.v1.ChainID
|
||||
8, // 1: spy.v1.BatchFilter.chain_id:type_name -> publicrpc.v1.ChainID
|
||||
8, // 2: spy.v1.BatchTransactionFilter.chain_id:type_name -> publicrpc.v1.ChainID
|
||||
0, // 3: spy.v1.FilterEntry.emitter_filter:type_name -> spy.v1.EmitterFilter
|
||||
1, // 4: spy.v1.FilterEntry.batch_filter:type_name -> spy.v1.BatchFilter
|
||||
2, // 5: spy.v1.FilterEntry.batch_transaction_filter:type_name -> spy.v1.BatchTransactionFilter
|
||||
3, // 6: spy.v1.SubscribeSignedVAARequest.filters:type_name -> spy.v1.FilterEntry
|
||||
3, // 7: spy.v1.SubscribeSignedVAAByTypeRequest.filters:type_name -> spy.v1.FilterEntry
|
||||
9, // 8: spy.v1.SubscribeSignedVAAByTypeResponse.signed_vaa:type_name -> gossip.v1.SignedVAAWithQuorum
|
||||
10, // 9: spy.v1.SubscribeSignedVAAByTypeResponse.signed_batch_vaa:type_name -> gossip.v1.SignedBatchVAAWithQuorum
|
||||
4, // 10: spy.v1.SpyRPCService.SubscribeSignedVAA:input_type -> spy.v1.SubscribeSignedVAARequest
|
||||
5, // 11: spy.v1.SpyRPCService.SubscribeSignedVAAByType:input_type -> spy.v1.SubscribeSignedVAAByTypeRequest
|
||||
6, // 12: spy.v1.SpyRPCService.SubscribeSignedVAA:output_type -> spy.v1.SubscribeSignedVAAResponse
|
||||
7, // 13: spy.v1.SpyRPCService.SubscribeSignedVAAByType:output_type -> spy.v1.SubscribeSignedVAAByTypeResponse
|
||||
12, // [12:14] is the sub-list for method output_type
|
||||
10, // [10:12] is the sub-list for method input_type
|
||||
10, // [10:10] is the sub-list for extension type_name
|
||||
10, // [10:10] is the sub-list for extension extendee
|
||||
0, // [0:10] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_spy_v1_spy_proto_init() }
|
||||
|
@ -340,7 +688,7 @@ func file_spy_v1_spy_proto_init() {
|
|||
}
|
||||
}
|
||||
file_spy_v1_spy_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*FilterEntry); i {
|
||||
switch v := v.(*BatchFilter); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
|
@ -352,7 +700,7 @@ func file_spy_v1_spy_proto_init() {
|
|||
}
|
||||
}
|
||||
file_spy_v1_spy_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*SubscribeSignedVAARequest); i {
|
||||
switch v := v.(*BatchTransactionFilter); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
|
@ -364,6 +712,42 @@ func file_spy_v1_spy_proto_init() {
|
|||
}
|
||||
}
|
||||
file_spy_v1_spy_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*FilterEntry); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_spy_v1_spy_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*SubscribeSignedVAARequest); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_spy_v1_spy_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*SubscribeSignedVAAByTypeRequest); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_spy_v1_spy_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*SubscribeSignedVAAResponse); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
|
@ -375,9 +759,27 @@ func file_spy_v1_spy_proto_init() {
|
|||
return nil
|
||||
}
|
||||
}
|
||||
file_spy_v1_spy_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*SubscribeSignedVAAByTypeResponse); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
file_spy_v1_spy_proto_msgTypes[1].OneofWrappers = []interface{}{
|
||||
file_spy_v1_spy_proto_msgTypes[3].OneofWrappers = []interface{}{
|
||||
(*FilterEntry_EmitterFilter)(nil),
|
||||
(*FilterEntry_BatchFilter)(nil),
|
||||
(*FilterEntry_BatchTransactionFilter)(nil),
|
||||
}
|
||||
file_spy_v1_spy_proto_msgTypes[7].OneofWrappers = []interface{}{
|
||||
(*SubscribeSignedVAAByTypeResponse_SignedVaa)(nil),
|
||||
(*SubscribeSignedVAAByTypeResponse_SignedBatchVaa)(nil),
|
||||
}
|
||||
type x struct{}
|
||||
out := protoimpl.TypeBuilder{
|
||||
|
@ -385,7 +787,7 @@ func file_spy_v1_spy_proto_init() {
|
|||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_spy_v1_spy_proto_rawDesc,
|
||||
NumEnums: 0,
|
||||
NumMessages: 4,
|
||||
NumMessages: 8,
|
||||
NumExtensions: 0,
|
||||
NumServices: 1,
|
||||
},
|
||||
|
|
|
@ -56,6 +56,31 @@ func request_SpyRPCService_SubscribeSignedVAA_0(ctx context.Context, marshaler r
|
|||
|
||||
}
|
||||
|
||||
func request_SpyRPCService_SubscribeSignedVAAByType_0(ctx context.Context, marshaler runtime.Marshaler, client SpyRPCServiceClient, req *http.Request, pathParams map[string]string) (SpyRPCService_SubscribeSignedVAAByTypeClient, runtime.ServerMetadata, error) {
|
||||
var protoReq SubscribeSignedVAAByTypeRequest
|
||||
var metadata runtime.ServerMetadata
|
||||
|
||||
newReader, berr := utilities.IOReaderFactory(req.Body)
|
||||
if berr != nil {
|
||||
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
|
||||
}
|
||||
if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
|
||||
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
|
||||
}
|
||||
|
||||
stream, err := client.SubscribeSignedVAAByType(ctx, &protoReq)
|
||||
if err != nil {
|
||||
return nil, metadata, err
|
||||
}
|
||||
header, err := stream.Header()
|
||||
if err != nil {
|
||||
return nil, metadata, err
|
||||
}
|
||||
metadata.HeaderMD = header
|
||||
return stream, metadata, nil
|
||||
|
||||
}
|
||||
|
||||
// RegisterSpyRPCServiceHandlerServer registers the http handlers for service SpyRPCService to "mux".
|
||||
// UnaryRPC :call SpyRPCServiceServer directly.
|
||||
// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906.
|
||||
|
@ -69,6 +94,13 @@ func RegisterSpyRPCServiceHandlerServer(ctx context.Context, mux *runtime.ServeM
|
|||
return
|
||||
})
|
||||
|
||||
mux.Handle("POST", pattern_SpyRPCService_SubscribeSignedVAAByType_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
|
||||
err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport")
|
||||
_, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
|
||||
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
|
||||
return
|
||||
})
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -130,13 +162,37 @@ func RegisterSpyRPCServiceHandlerClient(ctx context.Context, mux *runtime.ServeM
|
|||
|
||||
})
|
||||
|
||||
mux.Handle("POST", pattern_SpyRPCService_SubscribeSignedVAAByType_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
|
||||
ctx, cancel := context.WithCancel(req.Context())
|
||||
defer cancel()
|
||||
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
|
||||
rctx, err := runtime.AnnotateContext(ctx, mux, req, "/spy.v1.SpyRPCService/SubscribeSignedVAAByType", runtime.WithHTTPPathPattern("/v1:subscribe_signed_vaa_by_type"))
|
||||
if err != nil {
|
||||
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
|
||||
return
|
||||
}
|
||||
resp, md, err := request_SpyRPCService_SubscribeSignedVAAByType_0(rctx, inboundMarshaler, client, req, pathParams)
|
||||
ctx = runtime.NewServerMetadataContext(ctx, md)
|
||||
if err != nil {
|
||||
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
|
||||
return
|
||||
}
|
||||
|
||||
forward_SpyRPCService_SubscribeSignedVAAByType_0(ctx, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...)
|
||||
|
||||
})
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
var (
|
||||
pattern_SpyRPCService_SubscribeSignedVAA_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0}, []string{"v1"}, "subscribe_signed_vaa"))
|
||||
|
||||
pattern_SpyRPCService_SubscribeSignedVAAByType_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0}, []string{"v1"}, "subscribe_signed_vaa_by_type"))
|
||||
)
|
||||
|
||||
var (
|
||||
forward_SpyRPCService_SubscribeSignedVAA_0 = runtime.ForwardResponseStream
|
||||
|
||||
forward_SpyRPCService_SubscribeSignedVAAByType_0 = runtime.ForwardResponseStream
|
||||
)
|
||||
|
|
|
@ -20,6 +20,8 @@ const _ = grpc.SupportPackageIsVersion7
|
|||
type SpyRPCServiceClient interface {
|
||||
// SubscribeSignedVAA returns a stream of signed VAA messages received on the network.
|
||||
SubscribeSignedVAA(ctx context.Context, in *SubscribeSignedVAARequest, opts ...grpc.CallOption) (SpyRPCService_SubscribeSignedVAAClient, error)
|
||||
// SubscribeSignedBatchVAA returns a stream of signed VAA messages, by type, received on the network.
|
||||
SubscribeSignedVAAByType(ctx context.Context, in *SubscribeSignedVAAByTypeRequest, opts ...grpc.CallOption) (SpyRPCService_SubscribeSignedVAAByTypeClient, error)
|
||||
}
|
||||
|
||||
type spyRPCServiceClient struct {
|
||||
|
@ -62,12 +64,46 @@ func (x *spyRPCServiceSubscribeSignedVAAClient) Recv() (*SubscribeSignedVAARespo
|
|||
return m, nil
|
||||
}
|
||||
|
||||
func (c *spyRPCServiceClient) SubscribeSignedVAAByType(ctx context.Context, in *SubscribeSignedVAAByTypeRequest, opts ...grpc.CallOption) (SpyRPCService_SubscribeSignedVAAByTypeClient, error) {
|
||||
stream, err := c.cc.NewStream(ctx, &SpyRPCService_ServiceDesc.Streams[1], "/spy.v1.SpyRPCService/SubscribeSignedVAAByType", opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
x := &spyRPCServiceSubscribeSignedVAAByTypeClient{stream}
|
||||
if err := x.ClientStream.SendMsg(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := x.ClientStream.CloseSend(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return x, nil
|
||||
}
|
||||
|
||||
type SpyRPCService_SubscribeSignedVAAByTypeClient interface {
|
||||
Recv() (*SubscribeSignedVAAByTypeResponse, error)
|
||||
grpc.ClientStream
|
||||
}
|
||||
|
||||
type spyRPCServiceSubscribeSignedVAAByTypeClient struct {
|
||||
grpc.ClientStream
|
||||
}
|
||||
|
||||
func (x *spyRPCServiceSubscribeSignedVAAByTypeClient) Recv() (*SubscribeSignedVAAByTypeResponse, error) {
|
||||
m := new(SubscribeSignedVAAByTypeResponse)
|
||||
if err := x.ClientStream.RecvMsg(m); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return m, nil
|
||||
}
|
||||
|
||||
// SpyRPCServiceServer is the server API for SpyRPCService service.
|
||||
// All implementations must embed UnimplementedSpyRPCServiceServer
|
||||
// for forward compatibility
|
||||
type SpyRPCServiceServer interface {
|
||||
// SubscribeSignedVAA returns a stream of signed VAA messages received on the network.
|
||||
SubscribeSignedVAA(*SubscribeSignedVAARequest, SpyRPCService_SubscribeSignedVAAServer) error
|
||||
// SubscribeSignedBatchVAA returns a stream of signed VAA messages, by type, received on the network.
|
||||
SubscribeSignedVAAByType(*SubscribeSignedVAAByTypeRequest, SpyRPCService_SubscribeSignedVAAByTypeServer) error
|
||||
mustEmbedUnimplementedSpyRPCServiceServer()
|
||||
}
|
||||
|
||||
|
@ -78,6 +114,9 @@ type UnimplementedSpyRPCServiceServer struct {
|
|||
func (UnimplementedSpyRPCServiceServer) SubscribeSignedVAA(*SubscribeSignedVAARequest, SpyRPCService_SubscribeSignedVAAServer) error {
|
||||
return status.Errorf(codes.Unimplemented, "method SubscribeSignedVAA not implemented")
|
||||
}
|
||||
func (UnimplementedSpyRPCServiceServer) SubscribeSignedVAAByType(*SubscribeSignedVAAByTypeRequest, SpyRPCService_SubscribeSignedVAAByTypeServer) error {
|
||||
return status.Errorf(codes.Unimplemented, "method SubscribeSignedVAAByType not implemented")
|
||||
}
|
||||
func (UnimplementedSpyRPCServiceServer) mustEmbedUnimplementedSpyRPCServiceServer() {}
|
||||
|
||||
// UnsafeSpyRPCServiceServer may be embedded to opt out of forward compatibility for this service.
|
||||
|
@ -112,6 +151,27 @@ func (x *spyRPCServiceSubscribeSignedVAAServer) Send(m *SubscribeSignedVAARespon
|
|||
return x.ServerStream.SendMsg(m)
|
||||
}
|
||||
|
||||
func _SpyRPCService_SubscribeSignedVAAByType_Handler(srv interface{}, stream grpc.ServerStream) error {
|
||||
m := new(SubscribeSignedVAAByTypeRequest)
|
||||
if err := stream.RecvMsg(m); err != nil {
|
||||
return err
|
||||
}
|
||||
return srv.(SpyRPCServiceServer).SubscribeSignedVAAByType(m, &spyRPCServiceSubscribeSignedVAAByTypeServer{stream})
|
||||
}
|
||||
|
||||
type SpyRPCService_SubscribeSignedVAAByTypeServer interface {
|
||||
Send(*SubscribeSignedVAAByTypeResponse) error
|
||||
grpc.ServerStream
|
||||
}
|
||||
|
||||
type spyRPCServiceSubscribeSignedVAAByTypeServer struct {
|
||||
grpc.ServerStream
|
||||
}
|
||||
|
||||
func (x *spyRPCServiceSubscribeSignedVAAByTypeServer) Send(m *SubscribeSignedVAAByTypeResponse) error {
|
||||
return x.ServerStream.SendMsg(m)
|
||||
}
|
||||
|
||||
// SpyRPCService_ServiceDesc is the grpc.ServiceDesc for SpyRPCService service.
|
||||
// It's only intended for direct use with grpc.RegisterService,
|
||||
// and not to be introspected or modified (even as a copy)
|
||||
|
@ -125,6 +185,11 @@ var SpyRPCService_ServiceDesc = grpc.ServiceDesc{
|
|||
Handler: _SpyRPCService_SubscribeSignedVAA_Handler,
|
||||
ServerStreams: true,
|
||||
},
|
||||
{
|
||||
StreamName: "SubscribeSignedVAAByType",
|
||||
Handler: _SpyRPCService_SubscribeSignedVAAByType_Handler,
|
||||
ServerStreams: true,
|
||||
},
|
||||
},
|
||||
Metadata: "spy/v1/spy.proto",
|
||||
}
|
||||
|
|
|
@ -135,17 +135,28 @@ message SignedBatchObservation {
|
|||
bytes hash = 2;
|
||||
// ECSDA signature of the hash using the node's guardian key.
|
||||
bytes signature = 3;
|
||||
// Transaction hash this observation was made from.
|
||||
bytes tx_hash = 4;
|
||||
// Unique identifier of the transaction that produced the observation.
|
||||
bytes tx_id = 4;
|
||||
// Chain ID for this observation.
|
||||
uint32 chain_id = 5;
|
||||
// Batch ID - emitterChain/transactionID
|
||||
string batch_id = 6;
|
||||
// Nonce of the messages in the batch.
|
||||
uint32 nonce = 6;
|
||||
// Batch ID - emitterChain/transactionID/nonce
|
||||
string batch_id = 7;
|
||||
}
|
||||
|
||||
|
||||
message SignedBatchVAAWithQuorum {
|
||||
// batch_vaa bytes are the binary encoding of the BatchVAA
|
||||
bytes batch_vaa = 1;
|
||||
// Emitter Chain ID of the messages
|
||||
uint32 chain_id = 2;
|
||||
// Transaction identifier of the observation
|
||||
bytes tx_id = 3;
|
||||
// Nonce of the messages in the batch
|
||||
uint32 nonce = 4;
|
||||
// Batch ID - emitterChain/transactionID/nonce string, for convenience
|
||||
string batch_id = 5;
|
||||
}
|
||||
|
||||
// This message is published every five minutes.
|
||||
|
|
|
@ -51,8 +51,10 @@ message MessageID {
|
|||
message BatchID {
|
||||
// Emitter chain ID.
|
||||
ChainID emitter_chain = 1;
|
||||
// Hex-encoded (without leading 0x) transaction identifier.
|
||||
string tx_id = 2;
|
||||
// Transaction's unique identifier.
|
||||
bytes tx_id = 2;
|
||||
// Nonce of the messages in the batch.
|
||||
uint32 nonce = 3;
|
||||
}
|
||||
|
||||
// PublicRPCService service exposes endpoints to be consumed externally; GUIs, historical record keeping, etc.
|
||||
|
@ -74,7 +76,7 @@ service PublicRPCService {
|
|||
|
||||
rpc GetSignedBatchVAA (GetSignedBatchVAARequest) returns (GetSignedBatchVAAResponse) {
|
||||
option (google.api.http) = {
|
||||
get: "/v1/signed_batch_vaa/{batch_id.emitter_chain}/{batch_id.tx_id}"
|
||||
get: "/v1/signed_batch_vaa/{batch_id.emitter_chain}/{batch_id.tx_id}/{batch_id.nonce}"
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -123,7 +125,7 @@ message GetSignedBatchVAARequest {
|
|||
}
|
||||
|
||||
message GetSignedBatchVAAResponse {
|
||||
bytes batch_vaa_bytes = 1;
|
||||
gossip.v1.SignedBatchVAAWithQuorum signed_batch_vaa = 1;
|
||||
}
|
||||
|
||||
message GetLastHeartbeatsRequest {
|
||||
|
|
|
@ -5,6 +5,7 @@ package spy.v1;
|
|||
option go_package = "github.com/certusone/wormhole/node/pkg/proto/spy/v1;spyv1";
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "gossip/v1/gossip.proto";
|
||||
import "publicrpc/v1/publicrpc.proto";
|
||||
|
||||
// SpyRPCService exposes a gossip introspection service, allowing sniffing of gossip messages.
|
||||
|
@ -16,6 +17,13 @@ service SpyRPCService {
|
|||
body: "*"
|
||||
};
|
||||
}
|
||||
// SubscribeSignedBatchVAA returns a stream of signed VAA messages, by type, received on the network.
|
||||
rpc SubscribeSignedVAAByType (SubscribeSignedVAAByTypeRequest) returns (stream SubscribeSignedVAAByTypeResponse) {
|
||||
option (google.api.http) = {
|
||||
post: "/v1:subscribe_signed_vaa_by_type"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
// A MessageFilter represents an exact match for an emitter.
|
||||
|
@ -26,9 +34,28 @@ message EmitterFilter {
|
|||
string emitter_address = 2;
|
||||
}
|
||||
|
||||
|
||||
message BatchFilter {
|
||||
// Source chain
|
||||
publicrpc.v1.ChainID chain_id = 1;
|
||||
// Native transaction identifier bytes.
|
||||
bytes tx_id = 2;
|
||||
// Nonce of the messages in the batch.
|
||||
uint32 nonce = 3;
|
||||
}
|
||||
|
||||
message BatchTransactionFilter {
|
||||
// Source chain
|
||||
publicrpc.v1.ChainID chain_id = 1;
|
||||
// Native transaction identifier bytes.
|
||||
bytes tx_id = 2;
|
||||
}
|
||||
|
||||
message FilterEntry {
|
||||
oneof filter {
|
||||
EmitterFilter emitter_filter = 1;
|
||||
BatchFilter batch_filter = 2;
|
||||
BatchTransactionFilter batch_transaction_filter = 3;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -38,7 +65,20 @@ message SubscribeSignedVAARequest {
|
|||
repeated FilterEntry filters = 1;
|
||||
}
|
||||
|
||||
message SubscribeSignedVAAByTypeRequest {
|
||||
// List of filters to apply to the stream (OR).
|
||||
// If empty, all messages are streamed.
|
||||
repeated FilterEntry filters = 1;
|
||||
}
|
||||
|
||||
message SubscribeSignedVAAResponse {
|
||||
// Raw VAA bytes
|
||||
bytes vaa_bytes = 1;
|
||||
}
|
||||
|
||||
message SubscribeSignedVAAByTypeResponse {
|
||||
oneof vaa_type {
|
||||
gossip.v1.SignedVAAWithQuorum signed_vaa = 1;
|
||||
gossip.v1.SignedBatchVAAWithQuorum signed_batch_vaa = 2;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue