2020-10-28 14:41:35 -07:00
|
|
|
syntax = "proto3";
|
|
|
|
|
|
|
|
package node.v1;
|
|
|
|
|
2021-08-26 01:35:09 -07:00
|
|
|
option go_package = "github.com/certusone/wormhole/node/pkg/proto/node/v1;nodev1";
|
2020-10-28 14:41:35 -07:00
|
|
|
|
2021-12-20 13:23:45 -08:00
|
|
|
import "gossip/v1/gossip.proto";
|
|
|
|
|
2021-08-21 15:34:58 -07:00
|
|
|
// NodePrivilegedService exposes an administrative API. It runs on a UNIX socket and is authenticated
|
2020-11-19 03:53:19 -08:00
|
|
|
// using Linux filesystem permissions.
|
2021-08-21 15:34:58 -07:00
|
|
|
service NodePrivilegedService {
|
2021-01-19 04:01:45 -08:00
|
|
|
// InjectGovernanceVAA injects a governance VAA into the guardian node.
|
|
|
|
// The node will inject the VAA into the aggregator and sign/broadcast the VAA signature.
|
|
|
|
//
|
|
|
|
// A consensus majority of nodes on the network will have to inject the VAA within the
|
|
|
|
// VAA timeout window for it to reach consensus.
|
|
|
|
//
|
|
|
|
rpc InjectGovernanceVAA (InjectGovernanceVAARequest) returns (InjectGovernanceVAAResponse);
|
2021-10-04 04:42:56 -07:00
|
|
|
|
|
|
|
// FindMissingMessages will detect message sequence gaps in the local VAA store for a
|
|
|
|
// specific emitter chain and address. Start and end slots are the lowest and highest
|
|
|
|
// sequence numbers available in the local store, respectively.
|
|
|
|
//
|
|
|
|
// An error is returned if more than 1000 gaps are found.
|
|
|
|
rpc FindMissingMessages (FindMissingMessagesRequest) returns (FindMissingMessagesResponse);
|
2021-12-20 13:23:45 -08:00
|
|
|
|
|
|
|
// SendObservationRequest broadcasts a signed observation request to the gossip network
|
|
|
|
// using the node's guardian key. The network rate limits these requests to one per second.
|
|
|
|
// Requests at higher rates will fail silently.
|
|
|
|
rpc SendObservationRequest (SendObservationRequestRequest) returns (SendObservationRequestResponse);
|
2022-07-19 11:08:06 -07:00
|
|
|
|
|
|
|
// ChainGovernorStatus displays the status of the chain governor.
|
|
|
|
rpc ChainGovernorStatus (ChainGovernorStatusRequest) returns (ChainGovernorStatusResponse);
|
|
|
|
|
|
|
|
// ChainGovernorReload clears the chain governor history and reloads it from the database.
|
|
|
|
rpc ChainGovernorReload (ChainGovernorReloadRequest) returns (ChainGovernorReloadResponse);
|
|
|
|
|
|
|
|
// ChainGovernorDropPendingVAA drops a VAA from the chain governor pending list.
|
|
|
|
rpc ChainGovernorDropPendingVAA (ChainGovernorDropPendingVAARequest) returns (ChainGovernorDropPendingVAAResponse);
|
|
|
|
|
|
|
|
// ChainGovernorReleasePendingVAA release a VAA from the chain governor pending list, publishing it immediately.
|
|
|
|
rpc ChainGovernorReleasePendingVAA (ChainGovernorReleasePendingVAARequest) returns (ChainGovernorReleasePendingVAAResponse);
|
2022-08-30 09:28:18 -07:00
|
|
|
|
|
|
|
// ChainGovernorResetReleaseTimer resets the release timer for a chain governor pending VAA to the configured maximum.
|
|
|
|
rpc ChainGovernorResetReleaseTimer (ChainGovernorResetReleaseTimerRequest) returns (ChainGovernorResetReleaseTimerResponse);
|
2022-09-26 07:04:30 -07:00
|
|
|
|
|
|
|
// PurgePythNetVaas deletes PythNet VAAs from the database that are more than the specified number of days old.
|
2023-01-10 08:54:35 -08:00
|
|
|
rpc PurgePythNetVaas (PurgePythNetVaasRequest) returns (PurgePythNetVaasResponse);
|
|
|
|
|
|
|
|
// SignExistingVAA signs an existing VAA for a new guardian set using the local guardian key.
|
|
|
|
rpc SignExistingVAA (SignExistingVAARequest) returns (SignExistingVAAResponse);
|
2023-02-03 11:12:01 -08:00
|
|
|
|
|
|
|
// DumpRPCs returns the RPCs being used by the guardian
|
|
|
|
rpc DumpRPCs (DumpRPCsRequest) returns (DumpRPCsResponse);
|
2020-11-19 03:53:17 -08:00
|
|
|
}
|
|
|
|
|
2021-01-19 04:01:45 -08:00
|
|
|
message InjectGovernanceVAARequest {
|
|
|
|
// Index of the current guardian set.
|
|
|
|
uint32 current_set_index = 1;
|
|
|
|
|
2021-10-29 08:50:46 -07:00
|
|
|
// List of governance VAA messages to inject.
|
|
|
|
repeated GovernanceMessage messages = 2;
|
2022-04-19 08:59:00 -07:00
|
|
|
|
|
|
|
// UNIX wall time in seconds
|
|
|
|
uint32 timestamp = 3;
|
2021-10-29 08:50:46 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
message GovernanceMessage {
|
2021-09-30 11:57:44 -07:00
|
|
|
// Sequence number. This is critical for replay protection - make sure the sequence number
|
|
|
|
// is unique for every new manually injected governance VAA. Sequences are tracked
|
|
|
|
// by emitter, and manually injected VAAs all use a single hardcoded emitter.
|
2021-01-19 04:01:45 -08:00
|
|
|
//
|
2021-09-30 11:57:44 -07:00
|
|
|
// We use random sequence numbers for the manual emitter.
|
|
|
|
uint64 sequence = 2;
|
2020-11-19 03:53:19 -08:00
|
|
|
|
2021-09-30 11:57:44 -07:00
|
|
|
// Random nonce for disambiguation. Must be identical across all nodes.
|
|
|
|
uint32 nonce = 3;
|
2020-11-19 03:53:19 -08:00
|
|
|
|
2021-01-19 04:01:45 -08:00
|
|
|
oneof payload{
|
2021-10-01 03:26:05 -07:00
|
|
|
// Core module
|
|
|
|
|
2021-09-30 11:57:44 -07:00
|
|
|
GuardianSetUpdate guardian_set = 10;
|
|
|
|
ContractUpgrade contract_upgrade = 11;
|
2021-10-01 03:26:05 -07:00
|
|
|
|
|
|
|
// Token bridge and NFT module
|
|
|
|
|
|
|
|
BridgeRegisterChain bridge_register_chain = 12;
|
node: add BridgeUpgradeContract governance VAA
Example VAA produced by the template:
(*vaa.VAA)(0xc0004f4510)({
Version: (uint8) 1,
GuardianSetIndex: (uint32) 0,
Signatures: ([]*vaa.Signature) (len=1 cap=1) {
(*vaa.Signature)(0xc0003b0370)({
Index: (uint8) 0,
Signature: (vaa.SignatureData) (len=65 cap=65) 0f97ec9093c21ccc4ce544898ed5c21b66ab4c90be894642fbb43474ed9fb48a26d6e12f3397b9fdab160fee64e797d26599a2a9d81a4bf4bc98970b5fa5122501
})
},
Timestamp: (time.Time) 1970-01-01 00:00:00 +0000 UTC,
Nonce: (uint32) 1375049878,
Sequence: (uint64) 3557202656914991802,
ConsistencyLevel: (uint8) 32,
EmitterChain: (vaa.ChainID) solana,
EmitterAddress: (vaa.Address) (len=32 cap=32) 0000000000000000000000000000000000000000000000000000000000000004,
Payload: ([]uint8) (len=67 cap=1000) {
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000010 00 00 00 00 00 54 6f 6b 65 6e 42 72 69 64 67 65 |.....TokenBridge|
00000020 02 00 05 00 00 00 00 00 00 00 00 00 00 00 00 02 |................|
00000030 90 fb 16 72 08 af 45 5b b1 37 78 01 63 b7 b7 a9 |...r..E[.7x.c...|
00000040 a1 0c 16 |...|
}
})
Change-Id: Ibe95db01e1bc0a9c36e1be06920a389db886fdd1
2021-10-08 10:41:43 -07:00
|
|
|
BridgeUpgradeContract bridge_contract_upgrade = 13;
|
2022-12-06 11:10:32 -08:00
|
|
|
|
|
|
|
// Wormchain
|
|
|
|
|
|
|
|
WormchainStoreCode wormchain_store_code = 14;
|
|
|
|
WormchainInstantiateContract wormchain_instantiate_contract = 15;
|
2023-02-02 10:49:52 -08:00
|
|
|
WormchainMigrateContract wormchain_migrate_contract = 16;
|
2023-03-06 11:23:48 -08:00
|
|
|
|
2023-03-13 17:30:15 -07:00
|
|
|
// Global Accountant
|
|
|
|
AccountantModifyBalance accountant_modify_balance = 17;
|
|
|
|
|
2023-03-06 11:23:48 -08:00
|
|
|
// Circle Integration
|
|
|
|
CircleIntegrationUpdateWormholeFinality circle_integration_update_wormhole_finality = 18;
|
|
|
|
CircleIntegrationRegisterEmitterAndDomain circle_integration_register_emitter_and_domain = 19;
|
|
|
|
CircleIntegrationUpgradeContractImplementation circle_integration_upgrade_contract_implementation = 20;
|
2023-05-12 03:11:21 -07:00
|
|
|
|
|
|
|
// IBC Receiver Integration
|
|
|
|
IbcReceiverUpdateChannelChain ibc_receiver_update_channel_chain = 21;
|
2021-01-19 04:01:45 -08:00
|
|
|
}
|
2020-11-19 03:53:19 -08:00
|
|
|
}
|
|
|
|
|
2021-01-19 04:01:45 -08:00
|
|
|
message InjectGovernanceVAAResponse {
|
2021-10-29 08:50:46 -07:00
|
|
|
// Canonical digests of the submitted VAAs.
|
|
|
|
repeated bytes digests = 1;
|
2020-11-19 03:53:19 -08:00
|
|
|
}
|
|
|
|
|
2021-01-19 04:01:45 -08:00
|
|
|
// GuardianSet represents a new guardian set to be submitted to and signed by the node.
|
|
|
|
// During the genesis procedure, this data structure will be assembled using off-chain collaborative tooling
|
|
|
|
// like GitHub using a human-readable encoding, so readability is a concern.
|
|
|
|
message GuardianSetUpdate {
|
|
|
|
// List of guardian set members.
|
|
|
|
message Guardian {
|
|
|
|
// Guardian key pubkey. Stored as hex string with 0x prefix for human readability -
|
|
|
|
// this is the canonical Ethereum representation.
|
|
|
|
string pubkey = 1;
|
|
|
|
// Optional descriptive name. Not stored on any chain, purely informational.
|
|
|
|
string name = 2;
|
|
|
|
};
|
|
|
|
repeated Guardian guardians = 3;
|
2020-11-19 03:53:19 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
// GuardianKey specifies the on-disk format for a node's guardian key.
|
2020-11-19 03:53:17 -08:00
|
|
|
message GuardianKey {
|
2021-01-19 04:01:45 -08:00
|
|
|
// data is the binary representation of the secp256k1 private key.
|
|
|
|
bytes data = 1;
|
2021-01-29 03:40:55 -08:00
|
|
|
// Whether this key is deterministically generated and unsuitable for production mode.
|
2021-07-30 15:12:28 -07:00
|
|
|
bool unsafe_deterministic_key = 2;
|
2021-01-19 04:01:45 -08:00
|
|
|
}
|
|
|
|
|
2021-10-01 03:26:05 -07:00
|
|
|
message BridgeRegisterChain {
|
|
|
|
// Module identifier of the token or NFT bridge (typically "TokenBridge" or "NFTBridge")
|
|
|
|
string module = 1;
|
|
|
|
|
2021-09-30 11:57:44 -07:00
|
|
|
// ID of the chain to be registered.
|
2021-10-01 03:26:05 -07:00
|
|
|
uint32 chain_id = 2;
|
2021-09-30 11:57:44 -07:00
|
|
|
|
|
|
|
// Hex-encoded emitter address to be registered (without leading 0x).
|
2021-10-01 03:26:05 -07:00
|
|
|
string emitter_address = 3;
|
2021-09-30 11:57:44 -07:00
|
|
|
}
|
|
|
|
|
2023-02-13 16:40:11 -08:00
|
|
|
enum ModificationKind {
|
|
|
|
MODIFICATION_KIND_UNSPECIFIED = 0;
|
|
|
|
MODIFICATION_KIND_ADD = 1;
|
|
|
|
MODIFICATION_KIND_SUBTRACT = 2;
|
|
|
|
}
|
|
|
|
|
2023-03-13 17:30:15 -07:00
|
|
|
message AccountantModifyBalance {
|
|
|
|
// Module identifier of the accountant "GlobalAccountant"
|
2023-02-13 16:40:11 -08:00
|
|
|
string module = 1;
|
|
|
|
// ID of the chain to receive this modify.
|
|
|
|
uint32 target_chain_id = 2;
|
|
|
|
|
|
|
|
// The sequence number of this modification. Each modification must be
|
|
|
|
// uniquely identifiable just by its sequnce number.
|
|
|
|
uint64 sequence = 3;
|
|
|
|
// U16 chain id of the account to be modified.
|
|
|
|
uint32 chain_id = 4;
|
|
|
|
// U16 the chain id of the native chain for the token.
|
|
|
|
uint32 token_chain = 5;
|
|
|
|
// The address of the token on its native chain, hex string encoded.
|
|
|
|
string token_address = 6;
|
|
|
|
// The kind of modification to be made.
|
|
|
|
ModificationKind kind = 7;
|
2023-02-14 10:01:15 -08:00
|
|
|
// The amount to be modified. This should be a decimal formatted string indicating the
|
|
|
|
// "raw" amount, not adjusted by the decimals of the token.
|
2023-02-13 16:40:11 -08:00
|
|
|
string amount = 8;
|
|
|
|
// A human-readable reason for the modification (max 32 bytes).
|
|
|
|
string reason = 9;
|
|
|
|
}
|
|
|
|
|
2021-01-19 04:01:45 -08:00
|
|
|
// ContractUpgrade represents a Wormhole contract update to be submitted to and signed by the node.
|
|
|
|
message ContractUpgrade {
|
|
|
|
// ID of the chain where the Wormhole contract should be updated (uint8).
|
|
|
|
uint32 chain_id = 1;
|
|
|
|
|
2021-10-12 06:22:07 -07:00
|
|
|
// Hex-encoded address (without leading 0x) address of the new program/contract.
|
|
|
|
string new_contract = 2;
|
2020-11-19 03:53:17 -08:00
|
|
|
}
|
2021-10-04 04:42:56 -07:00
|
|
|
|
node: add BridgeUpgradeContract governance VAA
Example VAA produced by the template:
(*vaa.VAA)(0xc0004f4510)({
Version: (uint8) 1,
GuardianSetIndex: (uint32) 0,
Signatures: ([]*vaa.Signature) (len=1 cap=1) {
(*vaa.Signature)(0xc0003b0370)({
Index: (uint8) 0,
Signature: (vaa.SignatureData) (len=65 cap=65) 0f97ec9093c21ccc4ce544898ed5c21b66ab4c90be894642fbb43474ed9fb48a26d6e12f3397b9fdab160fee64e797d26599a2a9d81a4bf4bc98970b5fa5122501
})
},
Timestamp: (time.Time) 1970-01-01 00:00:00 +0000 UTC,
Nonce: (uint32) 1375049878,
Sequence: (uint64) 3557202656914991802,
ConsistencyLevel: (uint8) 32,
EmitterChain: (vaa.ChainID) solana,
EmitterAddress: (vaa.Address) (len=32 cap=32) 0000000000000000000000000000000000000000000000000000000000000004,
Payload: ([]uint8) (len=67 cap=1000) {
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000010 00 00 00 00 00 54 6f 6b 65 6e 42 72 69 64 67 65 |.....TokenBridge|
00000020 02 00 05 00 00 00 00 00 00 00 00 00 00 00 00 02 |................|
00000030 90 fb 16 72 08 af 45 5b b1 37 78 01 63 b7 b7 a9 |...r..E[.7x.c...|
00000040 a1 0c 16 |...|
}
})
Change-Id: Ibe95db01e1bc0a9c36e1be06920a389db886fdd1
2021-10-08 10:41:43 -07:00
|
|
|
message BridgeUpgradeContract {
|
|
|
|
// Module identifier of the token or NFT bridge (typically "TokenBridge" or "NFTBridge").
|
|
|
|
string module = 1;
|
|
|
|
|
|
|
|
// ID of the chain where the bridge contract should be updated (uint16).
|
|
|
|
uint32 target_chain_id = 2;
|
|
|
|
|
2021-10-12 06:22:07 -07:00
|
|
|
// Hex-encoded address (without leading 0x) of the new program/contract.
|
node: add BridgeUpgradeContract governance VAA
Example VAA produced by the template:
(*vaa.VAA)(0xc0004f4510)({
Version: (uint8) 1,
GuardianSetIndex: (uint32) 0,
Signatures: ([]*vaa.Signature) (len=1 cap=1) {
(*vaa.Signature)(0xc0003b0370)({
Index: (uint8) 0,
Signature: (vaa.SignatureData) (len=65 cap=65) 0f97ec9093c21ccc4ce544898ed5c21b66ab4c90be894642fbb43474ed9fb48a26d6e12f3397b9fdab160fee64e797d26599a2a9d81a4bf4bc98970b5fa5122501
})
},
Timestamp: (time.Time) 1970-01-01 00:00:00 +0000 UTC,
Nonce: (uint32) 1375049878,
Sequence: (uint64) 3557202656914991802,
ConsistencyLevel: (uint8) 32,
EmitterChain: (vaa.ChainID) solana,
EmitterAddress: (vaa.Address) (len=32 cap=32) 0000000000000000000000000000000000000000000000000000000000000004,
Payload: ([]uint8) (len=67 cap=1000) {
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000010 00 00 00 00 00 54 6f 6b 65 6e 42 72 69 64 67 65 |.....TokenBridge|
00000020 02 00 05 00 00 00 00 00 00 00 00 00 00 00 00 02 |................|
00000030 90 fb 16 72 08 af 45 5b b1 37 78 01 63 b7 b7 a9 |...r..E[.7x.c...|
00000040 a1 0c 16 |...|
}
})
Change-Id: Ibe95db01e1bc0a9c36e1be06920a389db886fdd1
2021-10-08 10:41:43 -07:00
|
|
|
string new_contract = 3;
|
|
|
|
}
|
|
|
|
|
2022-12-06 11:10:32 -08:00
|
|
|
message WormchainStoreCode {
|
|
|
|
// payload is the hex string of the sha3 256 hash of the wasm binary being uploaded
|
|
|
|
string wasm_hash = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
message WormchainInstantiateContract {
|
|
|
|
// CodeID is the reference to the stored WASM code
|
|
|
|
uint64 code_id = 1;
|
|
|
|
|
|
|
|
// Label is optional metadata to be stored with a contract instance.
|
|
|
|
string label = 2;
|
|
|
|
|
|
|
|
// Json encoded message to be passed to the contract on instantiation
|
|
|
|
string instantiation_msg = 3;
|
|
|
|
}
|
|
|
|
|
2023-02-02 10:49:52 -08:00
|
|
|
message WormchainMigrateContract {
|
|
|
|
// CodeID is the reference to the stored WASM code that the contract should migrate to.
|
|
|
|
uint64 code_id = 1;
|
|
|
|
|
|
|
|
// The address of the contract being migrated.
|
|
|
|
string contract = 2;
|
|
|
|
|
|
|
|
// Msg json encoded message to be passed to the contract on migration
|
|
|
|
string instantiation_msg = 3;
|
|
|
|
}
|
|
|
|
|
2023-03-06 11:23:48 -08:00
|
|
|
message CircleIntegrationUpdateWormholeFinality {
|
|
|
|
uint32 finality = 1;
|
2023-03-16 07:13:50 -07:00
|
|
|
uint32 target_chain_id = 2;
|
2023-03-06 11:23:48 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
message CircleIntegrationRegisterEmitterAndDomain {
|
|
|
|
uint32 foreign_emitter_chain_id = 1;
|
|
|
|
string foreign_emitter_address = 2;
|
|
|
|
uint32 circle_domain = 3;
|
2023-03-16 07:13:50 -07:00
|
|
|
uint32 target_chain_id = 4;
|
2023-03-06 11:23:48 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
message CircleIntegrationUpgradeContractImplementation {
|
|
|
|
string new_implementation_address = 1;
|
2023-03-16 07:13:50 -07:00
|
|
|
uint32 target_chain_id = 2;
|
2023-03-06 11:23:48 -08:00
|
|
|
}
|
|
|
|
|
2023-05-12 03:11:21 -07:00
|
|
|
message IbcReceiverUpdateChannelChain {
|
|
|
|
// Chain ID that this governance VAA should be redeemed on
|
|
|
|
uint32 target_chain_id = 1;
|
|
|
|
// IBC channel ID
|
|
|
|
string channel_id = 2;
|
|
|
|
// ChainID corresponding to the IBC channel
|
|
|
|
uint32 chain_id = 3;
|
|
|
|
}
|
|
|
|
|
2021-10-04 04:42:56 -07:00
|
|
|
message FindMissingMessagesRequest {
|
|
|
|
// Emitter chain ID to iterate.
|
|
|
|
uint32 emitter_chain = 1;
|
|
|
|
// Hex-encoded (without leading 0x) emitter address to iterate.
|
|
|
|
string emitter_address = 2;
|
2021-12-18 14:39:30 -08:00
|
|
|
// Whether to attempt to backfill missing messages from a list of remote nodes.
|
|
|
|
bool rpc_backfill = 3;
|
|
|
|
// List of remote nodes to backfill from.
|
|
|
|
repeated string backfill_nodes = 4;
|
2021-10-04 04:42:56 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
message FindMissingMessagesResponse {
|
|
|
|
// List of missing sequence numbers.
|
|
|
|
repeated string missing_messages = 1;
|
|
|
|
|
|
|
|
// Range processed
|
|
|
|
uint64 first_sequence = 2;
|
|
|
|
uint64 last_sequence = 3;
|
|
|
|
}
|
2021-12-20 13:23:45 -08:00
|
|
|
|
|
|
|
message SendObservationRequestRequest {
|
|
|
|
gossip.v1.ObservationRequest observation_request = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
message SendObservationRequestResponse {}
|
2022-07-19 11:08:06 -07:00
|
|
|
|
|
|
|
message ChainGovernorStatusRequest {}
|
|
|
|
|
|
|
|
message ChainGovernorStatusResponse {
|
|
|
|
string response = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
message ChainGovernorReloadRequest {}
|
|
|
|
|
|
|
|
message ChainGovernorReloadResponse {
|
|
|
|
string response = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
message ChainGovernorDropPendingVAARequest {
|
|
|
|
string vaa_id = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
message ChainGovernorDropPendingVAAResponse {
|
|
|
|
string response = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
message ChainGovernorReleasePendingVAARequest {
|
|
|
|
string vaa_id = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
message ChainGovernorReleasePendingVAAResponse {
|
|
|
|
string response = 1;
|
|
|
|
}
|
2022-08-30 09:28:18 -07:00
|
|
|
|
|
|
|
message ChainGovernorResetReleaseTimerRequest {
|
|
|
|
string vaa_id = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
message ChainGovernorResetReleaseTimerResponse {
|
|
|
|
string response = 1;
|
|
|
|
}
|
2022-09-26 07:04:30 -07:00
|
|
|
|
|
|
|
message PurgePythNetVaasRequest {
|
|
|
|
uint64 days_old = 1;
|
|
|
|
bool log_only = 2;
|
|
|
|
}
|
|
|
|
|
|
|
|
message PurgePythNetVaasResponse {
|
|
|
|
string response = 1;
|
|
|
|
}
|
2023-01-10 08:54:35 -08:00
|
|
|
|
|
|
|
message SignExistingVAARequest {
|
|
|
|
bytes vaa = 1;
|
|
|
|
repeated string new_guardian_addrs = 2;
|
|
|
|
uint32 new_guardian_set_index = 3;
|
|
|
|
}
|
|
|
|
|
|
|
|
message SignExistingVAAResponse {
|
|
|
|
bytes vaa = 1;
|
|
|
|
}
|
2023-02-03 11:12:01 -08:00
|
|
|
|
|
|
|
message DumpRPCsRequest {}
|
|
|
|
|
|
|
|
message DumpRPCsResponse {
|
|
|
|
map<string, string> response = 1;
|
|
|
|
}
|