syntax = "proto3"; package searcher; import "bundle.proto"; import "packet.proto"; import "google/protobuf/timestamp.proto"; message SlotList { repeated uint64 slots = 1; } message SendBundleRequest { bundle.Bundle bundle = 1; } message SendBundleResponse { // server uuid for the bundle string uuid = 1; } message PendingTxSubscriptionRequest { // list of accounts to subscribe to (can be data or program accounts) repeated string accounts = 1; } message PendingTxNotification { // server-side timestamp the transactions were generated at (for debugging/profiling purposes) google.protobuf.Timestamp server_side_ts = 1; // expiration time of the packet google.protobuf.Timestamp expiration_time = 2; // list of pending transactions repeated packet.Packet transactions = 3; } message NextScheduledLeaderRequest {} message NextScheduledLeaderResponse { // the current slot the backend is on uint64 current_slot = 1; // the slot and identity of the next leader uint64 next_leader_slot = 2; string next_leader_identity = 3; } message ConnectedLeadersRequest {} message ConnectedLeadersResponse { map connected_validators = 1; } message GetTipAccountsRequest {} message GetTipAccountsResponse { repeated string accounts = 1; } service SearcherService { // RPC endpoint to subscribe to pending transactions. // Client calls SubscribePendingTransactions with a list of public keys base58 formatted they are // interested in subscribing to. // Steams updates on pending transactions to client. rpc SubscribePendingTransactions (PendingTxSubscriptionRequest) returns (stream PendingTxNotification) {} rpc SendBundle (SendBundleRequest) returns (SendBundleResponse) {} // Returns the next scheduled leader connected to the block engine. rpc GetNextScheduledLeader (NextScheduledLeaderRequest) returns (NextScheduledLeaderResponse) {} // Returns information on connected leader slots rpc GetConnectedLeaders (ConnectedLeadersRequest) returns (ConnectedLeadersResponse) {} // Returns the tip accounts searchers shall transfer funds to for the leader to claim. rpc GetTipAccounts (GetTipAccountsRequest) returns (GetTipAccountsResponse) {} }