58 lines
1.3 KiB
Protocol Buffer
58 lines
1.3 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package protobuf;
|
|
|
|
import "google/protobuf/timestamp.proto";
|
|
|
|
message QueueName {
|
|
// chain_id is which chain this queue is
|
|
// associated with
|
|
string chain_id = 1;
|
|
enum Purpose {
|
|
SEND = 0;
|
|
RECEIPT = 1;
|
|
}
|
|
Purpose purpose = 2;
|
|
}
|
|
|
|
// StateKey is a key for the head/tail of a given queue
|
|
message StateKey {
|
|
QueueName queue = 1;
|
|
// both encode into one byte with varint encoding
|
|
// never clash with 8 byte message indexes
|
|
enum State {
|
|
HEAD = 0;
|
|
TAIL = 0x7f;
|
|
}
|
|
State state = 2;
|
|
}
|
|
|
|
// StateValue is the type stored under a StateKey
|
|
message StateValue {
|
|
fixed64 index = 1;
|
|
}
|
|
|
|
// MessageKey is the key for message *index* in a given queue
|
|
message MessageKey {
|
|
QueueName queue = 1;
|
|
fixed64 index = 2;
|
|
}
|
|
|
|
// SendValue is stored under a MessageKey in the SEND queue
|
|
message SendValue {
|
|
uint64 maxHeight = 1;
|
|
google.protobuf.Timestamp maxTime = 2;
|
|
// use kind instead of type to avoid keyword conflict
|
|
bytes kind = 3;
|
|
bytes data = 4;
|
|
}
|
|
|
|
// ReceiptValue is stored under a MessageKey in the RECEIPT queue
|
|
message ReceiptValue {
|
|
// 0 is success, others are application-defined errors
|
|
int32 errorCode = 1;
|
|
// contains result on success, optional info on error
|
|
bytes data = 2;
|
|
}
|
|
|