Skip to content
Snippets Groups Projects
Commit 021ceb27 authored by Benjamin Wenger's avatar Benjamin Wenger
Browse files

removed cmixProto which is now unused

parent b400e24e
No related branches found
No related tags found
No related merge requests found
#!/bin/bash
protoc --go_out=. types.proto
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: types.proto
package cmixproto
import (
fmt "fmt"
proto "github.com/golang/protobuf/proto"
math "math"
)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
type Type int32
const (
// Used as a wildcard for listeners to listen to all existing types.
// Think of it as "No type in particular"
Type_NO_TYPE Type = 0
// See proto buf documentation below
Type_TEXT_MESSAGE Type = 1
// See proto buf
Type_CHANNEL_MESSAGE Type = 2
// Nickname request and response messages
Type_NICKNAME_REQUEST Type = 6
Type_NICKNAME_RESPONSE Type = 7
// Second field is the key data itself. This should be 2048 bits long
// (according to the message length that our prime allows) and is
// base64-encoded.
Type_UDB_PUSH_KEY Type = 10
// The push key response message is a string. If the key push was a
// success, the UDB should respond with a message that starts with "PUSHKEY
// COMPLETE", followed by the fingerprint of the key that was pushed.
// If the response doesn't begin with "PUSHKEY COMPLETE", the message is
// an error message and should be shown to the user.
Type_UDB_PUSH_KEY_RESPONSE Type = 11
// The get key message includes a single string field with the key
// fingerprint of the key that needs gettin'. This is the same fingerprint
// you would have pushed.
Type_UDB_GET_KEY Type = 12
// The get key response message is a string. The first space-separated
// field should always be "GETKEY". The second field is the fingerprint of
// the key. The third field is "NOTFOUND" if the UDB didn't find the key,
// or the key itself, encoded in base64, otherwise.
Type_UDB_GET_KEY_RESPONSE Type = 13
// To wit: The first argument in the list of space-separated fields is
// the type of the registration. Currently the only allowed type is
// "EMAIL". The second argument is the value of the type you're registering
// with. In all currently acceptable registration types, this would be an
// email address. If you could register with your phone, it would be your
// phone number, and so on. Then, the key fingerprint of the user's key is
// the third argument. To register successfully, you must have already
// pushed the key with that fingerprint.
Type_UDB_REGISTER Type = 14
// The registration response is just a string. It will be either an error
// message to show to the user, or the message "REGISTRATION COMPLETE" if
// registration was successful.
Type_UDB_REGISTER_RESPONSE Type = 15
// The search message is just another space separated list. The first field
// will contain the type of registered user you're searching for, namely
// "EMAIL". The second field with contain the value of that type that
// you're searching for.
Type_UDB_SEARCH Type = 16
// The search response is a list of fields. The first is always "SEARCH".
// The second is always the value that the user searched for. The third is
// "FOUND" or "NOTFOUND" depending on whether the UDB found the user. If
// the user was FOUND, the last field will contain their key fingerprint,
// which you can use with GET_KEY to get the keys you need to talk with
// that user. Otherwise, this fourth field won't exist.
Type_UDB_SEARCH_RESPONSE Type = 17
// To get a message of this type, call the methods in the wallet.
// TODO expose these methods over the API
Type_PAYMENT_TRANSACTION Type = 20
// See proto buf
Type_PAYMENT_RESPONSE Type = 21
// See proto buf
Type_PAYMENT_INVOICE Type = 22
// This message type includes only the message hash of the original
// invoice message. Since there are no fields to delimit, it's not a
// proto buffer. When the payee gets a receipt back, they know that the
// other person probably paid them, and to check the next published
// blockchain for the images of their coins to make sure.
// The wallet sends this message after receiving a PAYMENT_RESPONSE
// indicating success.
Type_PAYMENT_RECEIPT Type = 23
// End to End Rekey message types
// Trigger a rekey, this message is used locally in client only
Type_REKEY_TRIGGER Type = 30
// Rekey confirmation message. Sent by partner to confirm completion of a rekey
Type_REKEY_CONFIRM Type = 31
// This message type is a single fixed-length hash of the invoice
// that the client just received. The client can look up this hash in the
// inbound transaction list to display the most recently received invoice
// in the UI.
Type_PAYMENT_INVOICE_UI Type = 9000
// This message type is a single fixed-length hash of the original invoice
// that this client sent to the paying client. The UI can look up the
// corresponding transaction in the list of completed transactions and
// display payment success on the UI. The wallet sends this message
// locally after receiving a PAYMENT_RECEIPT message.
Type_PAYMENT_RECEIPT_UI Type = 9001
)
var Type_name = map[int32]string{
0: "NO_TYPE",
1: "TEXT_MESSAGE",
2: "CHANNEL_MESSAGE",
6: "NICKNAME_REQUEST",
7: "NICKNAME_RESPONSE",
10: "UDB_PUSH_KEY",
11: "UDB_PUSH_KEY_RESPONSE",
12: "UDB_GET_KEY",
13: "UDB_GET_KEY_RESPONSE",
14: "UDB_REGISTER",
15: "UDB_REGISTER_RESPONSE",
16: "UDB_SEARCH",
17: "UDB_SEARCH_RESPONSE",
20: "PAYMENT_TRANSACTION",
21: "PAYMENT_RESPONSE",
22: "PAYMENT_INVOICE",
23: "PAYMENT_RECEIPT",
30: "REKEY_TRIGGER",
31: "REKEY_CONFIRM",
9000: "PAYMENT_INVOICE_UI",
9001: "PAYMENT_RECEIPT_UI",
}
var Type_value = map[string]int32{
"NO_TYPE": 0,
"TEXT_MESSAGE": 1,
"CHANNEL_MESSAGE": 2,
"NICKNAME_REQUEST": 6,
"NICKNAME_RESPONSE": 7,
"UDB_PUSH_KEY": 10,
"UDB_PUSH_KEY_RESPONSE": 11,
"UDB_GET_KEY": 12,
"UDB_GET_KEY_RESPONSE": 13,
"UDB_REGISTER": 14,
"UDB_REGISTER_RESPONSE": 15,
"UDB_SEARCH": 16,
"UDB_SEARCH_RESPONSE": 17,
"PAYMENT_TRANSACTION": 20,
"PAYMENT_RESPONSE": 21,
"PAYMENT_INVOICE": 22,
"PAYMENT_RECEIPT": 23,
"REKEY_TRIGGER": 30,
"REKEY_CONFIRM": 31,
"PAYMENT_INVOICE_UI": 9000,
"PAYMENT_RECEIPT_UI": 9001,
}
func (x Type) String() string {
return proto.EnumName(Type_name, int32(x))
}
func (Type) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_d938547f84707355, []int{0}
}
// Use this enumeration to get specific transactions from specific transaction
// lists from the wallet
type TransactionListTag int32
const (
// Transactions in this list are invoices this user made to another user
// Most importantly, they include the preimage that this user wants fulfilled,
// but the image of this preimage is what the client will send in the invoice.
// Transactions enter this list when this user invoices another user.
TransactionListTag_OUTBOUND_REQUESTS TransactionListTag = 0
// Transactions in this list are invoices that this user received from
// other users. Most importantly, this includes the image that this user
// will fund.
TransactionListTag_INBOUND_REQUESTS TransactionListTag = 1
// Transactions in this list are currently processing on a payment bot.
// Transactions move from INBOUND_REQUESTS to PENDING_TRANSACTIONS after
// a Pay() call.
TransactionListTag_PENDING_TRANSACTIONS TransactionListTag = 2
// Transactions in this list are completed transactions that increased
// the value of this user's wallet. NOTE: They correspond to transactions
// originally in the OUTBOUND_REQUESTS list that went through.
TransactionListTag_COMPLETED_INBOUND_PAYMENTS TransactionListTag = 3
// Transactions in this list are completed transactions that decreased
// the value of this user's wallet. NOTE: They correspond to transactions
// originally in the INBOUND_REQUESTS list that went through.
TransactionListTag_COMPLETED_OUTBOUND_PAYMENTS TransactionListTag = 4
)
var TransactionListTag_name = map[int32]string{
0: "OUTBOUND_REQUESTS",
1: "INBOUND_REQUESTS",
2: "PENDING_TRANSACTIONS",
3: "COMPLETED_INBOUND_PAYMENTS",
4: "COMPLETED_OUTBOUND_PAYMENTS",
}
var TransactionListTag_value = map[string]int32{
"OUTBOUND_REQUESTS": 0,
"INBOUND_REQUESTS": 1,
"PENDING_TRANSACTIONS": 2,
"COMPLETED_INBOUND_PAYMENTS": 3,
"COMPLETED_OUTBOUND_PAYMENTS": 4,
}
func (x TransactionListTag) String() string {
return proto.EnumName(TransactionListTag_name, int32(x))
}
func (TransactionListTag) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_d938547f84707355, []int{1}
}
// Use this enumeration to request different sort orders of transaction lists
// when getting all IDs in a transaction list
type TransactionListOrder int32
const (
// Most recently initiated transaction first
TransactionListOrder_TIMESTAMP_DESCENDING TransactionListOrder = 0
// Stalest transaction first
TransactionListOrder_TIMESTAMP_ASCENDING TransactionListOrder = 1
// Biggest transaction first
TransactionListOrder_VALUE_DESCENDING TransactionListOrder = 2
// Smallest transaction first
TransactionListOrder_VALUE_ASCENDING TransactionListOrder = 3
)
var TransactionListOrder_name = map[int32]string{
0: "TIMESTAMP_DESCENDING",
1: "TIMESTAMP_ASCENDING",
2: "VALUE_DESCENDING",
3: "VALUE_ASCENDING",
}
var TransactionListOrder_value = map[string]int32{
"TIMESTAMP_DESCENDING": 0,
"TIMESTAMP_ASCENDING": 1,
"VALUE_DESCENDING": 2,
"VALUE_ASCENDING": 3,
}
func (x TransactionListOrder) String() string {
return proto.EnumName(TransactionListOrder_name, int32(x))
}
func (TransactionListOrder) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_d938547f84707355, []int{2}
}
// Is Type.TEXT_MESSAGE
// Used for conveying simple text messages between users
type TextMessage struct {
// Terminal text foreground color. Used by the console UI
Color int32 `protobuf:"zigzag32,2,opt,name=color,proto3" json:"color,omitempty"`
// The message text itself. Varies in length
Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"`
// Timestamp (Unix time in seconds)
// You can use this to display the time when the other user sent the message
// TODO Done this when all messages have timestamps
Time int64 `protobuf:"varint,4,opt,name=time,proto3" json:"time,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *TextMessage) Reset() { *m = TextMessage{} }
func (m *TextMessage) String() string { return proto.CompactTextString(m) }
func (*TextMessage) ProtoMessage() {}
func (*TextMessage) Descriptor() ([]byte, []int) {
return fileDescriptor_d938547f84707355, []int{0}
}
func (m *TextMessage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TextMessage.Unmarshal(m, b)
}
func (m *TextMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_TextMessage.Marshal(b, m, deterministic)
}
func (m *TextMessage) XXX_Merge(src proto.Message) {
xxx_messageInfo_TextMessage.Merge(m, src)
}
func (m *TextMessage) XXX_Size() int {
return xxx_messageInfo_TextMessage.Size(m)
}
func (m *TextMessage) XXX_DiscardUnknown() {
xxx_messageInfo_TextMessage.DiscardUnknown(m)
}
var xxx_messageInfo_TextMessage proto.InternalMessageInfo
func (m *TextMessage) GetColor() int32 {
if m != nil {
return m.Color
}
return 0
}
func (m *TextMessage) GetMessage() string {
if m != nil {
return m.Message
}
return ""
}
func (m *TextMessage) GetTime() int64 {
if m != nil {
return m.Time
}
return 0
}
// Is Type.CHANNEL_MESSAGE
// This is the type of all messages that come from the channelbot.
type ChannelMessage struct {
// This is the original speaker of the channel message, who sent the
// message to the channel bot.
SpeakerID []byte `protobuf:"bytes,3,opt,name=speakerID,proto3" json:"speakerID,omitempty"`
// This is a serialized parse message under the hood. When writing a
// listener for a channel message on a client, you need to unpack the
// serialized parse message and rebroadcast it through the listeners.
Message []byte `protobuf:"bytes,4,opt,name=message,proto3" json:"message,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ChannelMessage) Reset() { *m = ChannelMessage{} }
func (m *ChannelMessage) String() string { return proto.CompactTextString(m) }
func (*ChannelMessage) ProtoMessage() {}
func (*ChannelMessage) Descriptor() ([]byte, []int) {
return fileDescriptor_d938547f84707355, []int{1}
}
func (m *ChannelMessage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelMessage.Unmarshal(m, b)
}
func (m *ChannelMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ChannelMessage.Marshal(b, m, deterministic)
}
func (m *ChannelMessage) XXX_Merge(src proto.Message) {
xxx_messageInfo_ChannelMessage.Merge(m, src)
}
func (m *ChannelMessage) XXX_Size() int {
return xxx_messageInfo_ChannelMessage.Size(m)
}
func (m *ChannelMessage) XXX_DiscardUnknown() {
xxx_messageInfo_ChannelMessage.DiscardUnknown(m)
}
var xxx_messageInfo_ChannelMessage proto.InternalMessageInfo
func (m *ChannelMessage) GetSpeakerID() []byte {
if m != nil {
return m.SpeakerID
}
return nil
}
func (m *ChannelMessage) GetMessage() []byte {
if m != nil {
return m.Message
}
return nil
}
// Is Type.PAYMENT_RESPONSE
type PaymentResponse struct {
// Indicates whether the payment succeeded or failed
Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"`
// Response message from the payment bot. You should display this to the
// user.
Response string `protobuf:"bytes,2,opt,name=response,proto3" json:"response,omitempty"`
// TODO Is it correct to use the whole hash?
// This is the hash of the payment message that the payment bot received.
// The client uses it to remove the correct pending transaction from the
// list of pending transactions.
ID []byte `protobuf:"bytes,3,opt,name=ID,proto3" json:"ID,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *PaymentResponse) Reset() { *m = PaymentResponse{} }
func (m *PaymentResponse) String() string { return proto.CompactTextString(m) }
func (*PaymentResponse) ProtoMessage() {}
func (*PaymentResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_d938547f84707355, []int{2}
}
func (m *PaymentResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PaymentResponse.Unmarshal(m, b)
}
func (m *PaymentResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_PaymentResponse.Marshal(b, m, deterministic)
}
func (m *PaymentResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_PaymentResponse.Merge(m, src)
}
func (m *PaymentResponse) XXX_Size() int {
return xxx_messageInfo_PaymentResponse.Size(m)
}
func (m *PaymentResponse) XXX_DiscardUnknown() {
xxx_messageInfo_PaymentResponse.DiscardUnknown(m)
}
var xxx_messageInfo_PaymentResponse proto.InternalMessageInfo
func (m *PaymentResponse) GetSuccess() bool {
if m != nil {
return m.Success
}
return false
}
func (m *PaymentResponse) GetResponse() string {
if m != nil {
return m.Response
}
return ""
}
func (m *PaymentResponse) GetID() []byte {
if m != nil {
return m.ID
}
return nil
}
// Is Type.PAYMENT_INVOICE
type PaymentInvoice struct {
// Timestamp (Unix time in seconds)
// Not currently used but could be useful for the user to verify the
// correctness of an invoice.
Time int64 `protobuf:"varint,1,opt,name=time,proto3" json:"time,omitempty"`
// This is a single compound coin that the invoicer wants to be funded. The
// payer should send a message to the payment bot to fund this compound, if
// they wish to pay the payee.
CreatedCoin []byte `protobuf:"bytes,2,opt,name=createdCoin,proto3" json:"createdCoin,omitempty"`
// The payee should fill this out to describe what the payment is for or
// about.
Memo string `protobuf:"bytes,3,opt,name=memo,proto3" json:"memo,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *PaymentInvoice) Reset() { *m = PaymentInvoice{} }
func (m *PaymentInvoice) String() string { return proto.CompactTextString(m) }
func (*PaymentInvoice) ProtoMessage() {}
func (*PaymentInvoice) Descriptor() ([]byte, []int) {
return fileDescriptor_d938547f84707355, []int{3}
}
func (m *PaymentInvoice) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PaymentInvoice.Unmarshal(m, b)
}
func (m *PaymentInvoice) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_PaymentInvoice.Marshal(b, m, deterministic)
}
func (m *PaymentInvoice) XXX_Merge(src proto.Message) {
xxx_messageInfo_PaymentInvoice.Merge(m, src)
}
func (m *PaymentInvoice) XXX_Size() int {
return xxx_messageInfo_PaymentInvoice.Size(m)
}
func (m *PaymentInvoice) XXX_DiscardUnknown() {
xxx_messageInfo_PaymentInvoice.DiscardUnknown(m)
}
var xxx_messageInfo_PaymentInvoice proto.InternalMessageInfo
func (m *PaymentInvoice) GetTime() int64 {
if m != nil {
return m.Time
}
return 0
}
func (m *PaymentInvoice) GetCreatedCoin() []byte {
if m != nil {
return m.CreatedCoin
}
return nil
}
func (m *PaymentInvoice) GetMemo() string {
if m != nil {
return m.Memo
}
return ""
}
func init() {
proto.RegisterEnum("parse.Type", Type_name, Type_value)
proto.RegisterEnum("parse.TransactionListTag", TransactionListTag_name, TransactionListTag_value)
proto.RegisterEnum("parse.TransactionListOrder", TransactionListOrder_name, TransactionListOrder_value)
proto.RegisterType((*TextMessage)(nil), "parse.TextMessage")
proto.RegisterType((*ChannelMessage)(nil), "parse.ChannelMessage")
proto.RegisterType((*PaymentResponse)(nil), "parse.PaymentResponse")
proto.RegisterType((*PaymentInvoice)(nil), "parse.PaymentInvoice")
}
func init() { proto.RegisterFile("types.proto", fileDescriptor_d938547f84707355) }
var fileDescriptor_d938547f84707355 = []byte{
// 622 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x5c, 0x54, 0xdb, 0x72, 0xda, 0x3a,
0x14, 0x8d, 0x81, 0x5c, 0xd8, 0x10, 0x10, 0x0a, 0x39, 0xe1, 0xe4, 0x9c, 0x49, 0x18, 0x9e, 0x98,
0x3c, 0xf4, 0xa5, 0x5f, 0xe0, 0x18, 0x05, 0x34, 0xc1, 0xb2, 0x23, 0xc9, 0x69, 0x93, 0x17, 0x8f,
0xeb, 0x68, 0x52, 0xa6, 0xc1, 0x66, 0x6c, 0xb7, 0x93, 0xfc, 0x4b, 0x3f, 0xa0, 0xfd, 0x91, 0x7e,
0x57, 0x47, 0x06, 0x5f, 0x26, 0x4f, 0x68, 0xaf, 0xb5, 0xb4, 0xb4, 0xd7, 0xde, 0x83, 0xa1, 0x93,
0xbd, 0x6d, 0x54, 0xfa, 0x61, 0x93, 0xc4, 0x59, 0x8c, 0xf7, 0x37, 0x41, 0x92, 0xaa, 0xc9, 0x1d,
0x74, 0xa4, 0x7a, 0xcd, 0x6c, 0x95, 0xa6, 0xc1, 0xb3, 0xc2, 0x43, 0xd8, 0x0f, 0xe3, 0x97, 0x38,
0x19, 0x35, 0xc6, 0xc6, 0x74, 0xc0, 0xb7, 0x05, 0x1e, 0xc1, 0xe1, 0x7a, 0x2b, 0x18, 0x35, 0xc7,
0xc6, 0xb4, 0xcd, 0x8b, 0x12, 0x63, 0x68, 0x65, 0xab, 0xb5, 0x1a, 0xb5, 0xc6, 0xc6, 0xb4, 0xc9,
0xf3, 0xf3, 0x64, 0x01, 0x3d, 0xeb, 0x6b, 0x10, 0x45, 0xea, 0xa5, 0x70, 0xfd, 0x1f, 0xda, 0xe9,
0x46, 0x05, 0xdf, 0x54, 0x42, 0x67, 0xb9, 0x43, 0x97, 0x57, 0x40, 0xdd, 0xbd, 0x95, 0x73, 0x45,
0x39, 0xf9, 0x04, 0x7d, 0x37, 0x78, 0x5b, 0xab, 0x28, 0xe3, 0x2a, 0xdd, 0xc4, 0x51, 0xaa, 0xb4,
0x38, 0xfd, 0x1e, 0x86, 0x2a, 0x4d, 0x47, 0xc6, 0xd8, 0x98, 0x1e, 0xf1, 0xa2, 0xc4, 0xe7, 0x70,
0x94, 0xec, 0x54, 0x79, 0xf7, 0x6d, 0x5e, 0xd6, 0xb8, 0x07, 0x8d, 0xf2, 0xe5, 0x06, 0x9d, 0x4d,
0x1e, 0xa1, 0xb7, 0x33, 0xa6, 0xd1, 0x8f, 0x78, 0x15, 0x56, 0x41, 0x8c, 0x2a, 0x08, 0x1e, 0x43,
0x27, 0x4c, 0x54, 0x90, 0xa9, 0x27, 0x2b, 0x5e, 0x45, 0xb9, 0x69, 0x97, 0xd7, 0x21, 0x7d, 0x6b,
0xad, 0xd6, 0xf1, 0x6e, 0x2a, 0xf9, 0xf9, 0xea, 0x4f, 0x13, 0x5a, 0xf2, 0x6d, 0xa3, 0x70, 0x07,
0x0e, 0x99, 0xe3, 0xcb, 0x07, 0x97, 0xa0, 0x3d, 0x8c, 0xa0, 0x2b, 0xc9, 0x67, 0xe9, 0xdb, 0x44,
0x08, 0x73, 0x4e, 0x90, 0x81, 0x4f, 0xa0, 0x6f, 0x2d, 0x4c, 0xc6, 0xc8, 0xb2, 0x04, 0x1b, 0x78,
0x08, 0x88, 0x51, 0xeb, 0x96, 0x99, 0x36, 0xf1, 0x39, 0xb9, 0xf3, 0x88, 0x90, 0xe8, 0x00, 0x9f,
0xc2, 0xa0, 0x86, 0x0a, 0xd7, 0x61, 0x82, 0xa0, 0x43, 0xed, 0xe9, 0xcd, 0xae, 0x7d, 0xd7, 0x13,
0x0b, 0xff, 0x96, 0x3c, 0x20, 0xc0, 0xff, 0xc2, 0x69, 0x1d, 0xa9, 0xc4, 0x1d, 0xdc, 0x87, 0x8e,
0xa6, 0xe6, 0x44, 0xe6, 0xda, 0x2e, 0x1e, 0xc1, 0xb0, 0x06, 0x54, 0xd2, 0xe3, 0xc2, 0x97, 0x93,
0x39, 0x15, 0x92, 0x70, 0xd4, 0x2b, 0x7c, 0x0b, 0xa4, 0x12, 0xf7, 0x71, 0x0f, 0x40, 0x53, 0x82,
0x98, 0xdc, 0x5a, 0x20, 0x84, 0xcf, 0xe0, 0xa4, 0xaa, 0x2b, 0xe1, 0x40, 0x13, 0xae, 0xf9, 0x60,
0x13, 0x26, 0x7d, 0xc9, 0x4d, 0x26, 0x4c, 0x4b, 0x52, 0x87, 0xa1, 0xa1, 0xce, 0x5c, 0x10, 0xa5,
0xfc, 0x54, 0x8f, 0xa7, 0x40, 0x29, 0xbb, 0x77, 0xa8, 0x45, 0xd0, 0x3f, 0x75, 0x90, 0x13, 0x8b,
0x50, 0x57, 0xa2, 0x33, 0x3c, 0x80, 0x63, 0x4e, 0x74, 0x04, 0xc9, 0xe9, 0x7c, 0x4e, 0x38, 0xba,
0xa8, 0x20, 0xcb, 0x61, 0x37, 0x94, 0xdb, 0xe8, 0x12, 0x9f, 0x01, 0x7e, 0xe7, 0xe7, 0x7b, 0x14,
0xfd, 0xba, 0xa9, 0x13, 0x3b, 0x4f, 0x4d, 0xfc, 0xbe, 0xb9, 0xfa, 0x69, 0x00, 0x96, 0x49, 0x10,
0xa5, 0x41, 0x98, 0xad, 0xe2, 0x68, 0xb9, 0x4a, 0x33, 0x19, 0x3c, 0xeb, 0x65, 0x38, 0x9e, 0xbc,
0x76, 0x3c, 0x36, 0x2b, 0x56, 0x24, 0xd0, 0x9e, 0x4e, 0x41, 0xd9, 0x3b, 0xd4, 0xd0, 0x43, 0x76,
0x09, 0x9b, 0x51, 0x36, 0xaf, 0x87, 0x16, 0xa8, 0x81, 0x2f, 0xe0, 0xdc, 0x72, 0x6c, 0x77, 0x49,
0x24, 0x99, 0xf9, 0xc5, 0xcd, 0x5d, 0x23, 0x02, 0x35, 0xf1, 0x25, 0xfc, 0x57, 0xf1, 0xe5, 0x83,
0xa5, 0xa0, 0x75, 0x95, 0xc1, 0xf0, 0x5d, 0x77, 0x4e, 0xf2, 0xa4, 0xf4, 0x9f, 0x75, 0x28, 0xa9,
0x4d, 0x84, 0x34, 0x6d, 0xd7, 0x9f, 0x11, 0x61, 0x6d, 0xdf, 0x47, 0x7b, 0x7a, 0x03, 0x15, 0x63,
0x96, 0x84, 0xa1, 0x7b, 0xbf, 0x37, 0x97, 0x1e, 0xa9, 0xcb, 0x1b, 0x7a, 0xd8, 0x5b, 0xb4, 0x92,
0x36, 0xaf, 0x3b, 0x8f, 0xed, 0x70, 0xbd, 0x7a, 0xcd, 0xbf, 0x21, 0x5f, 0x0e, 0xf2, 0x9f, 0x8f,
0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x3f, 0xff, 0xd7, 0x16, 0x59, 0x04, 0x00, 0x00,
}
////////////////////////////////////////////////////////////////////////////////
// Copyright © 2018 Privategrity Corporation /
// /
// All rights reserved. /
////////////////////////////////////////////////////////////////////////////////
// Call ./generate.sh to generate the protocol buffer code
syntax = "proto3";
package parse;
option go_package = "cmixproto";
enum Type {
// Used as a wildcard for listeners to listen to all existing types.
// Think of it as "No type in particular"
NO_TYPE = 0;
// See proto buf documentation below
TEXT_MESSAGE = 1;
// See proto buf
CHANNEL_MESSAGE = 2;
// Nickname request and response messages
NICKNAME_REQUEST = 6;
NICKNAME_RESPONSE = 7;
// None of the UDB message types are proto bufs because I haven't had time
// to migrate UDB fully to the new systems yet.
// I was considering migrating these types to proto bufs to make them more
// compact for transmission, but you would have to compress them to even
// have a chance of fitting the whole key in one Cmix message. In any case,
// I don't think the benefit is there for the time investment.
// The prefixes of the UDB response messages are made redundant by the
// message types in this very enumeration, so at some point we can remove
// them from the UDB code that generates the responses.
// The push key message includes two string fields, separated by a space.
// First field is the key fingerprint, which the UDB uses as an key into
// the map of, uhh, the keys. This can be any string that doesn't have a
// space in it.
// Second field is the key data itself. This should be 2048 bits long
// (according to the message length that our prime allows) and is
// base64-encoded.
UDB_PUSH_KEY = 10;
// The push key response message is a string. If the key push was a
// success, the UDB should respond with a message that starts with "PUSHKEY
// COMPLETE", followed by the fingerprint of the key that was pushed.
// If the response doesn't begin with "PUSHKEY COMPLETE", the message is
// an error message and should be shown to the user.
UDB_PUSH_KEY_RESPONSE = 11;
// The get key message includes a single string field with the key
// fingerprint of the key that needs gettin'. This is the same fingerprint
// you would have pushed.
UDB_GET_KEY = 12;
// The get key response message is a string. The first space-separated
// field should always be "GETKEY". The second field is the fingerprint of
// the key. The third field is "NOTFOUND" if the UDB didn't find the key,
// or the key itself, encoded in base64, otherwise.
UDB_GET_KEY_RESPONSE = 13;
// The register message is unchanged from the OG UDB code, except that
// the REGISTER command in front has been replaced with the type string
// corresponding to this entry in the enumeration.
// To wit: The first argument in the list of space-separated fields is
// the type of the registration. Currently the only allowed type is
// "EMAIL". The second argument is the value of the type you're registering
// with. In all currently acceptable registration types, this would be an
// email address. If you could register with your phone, it would be your
// phone number, and so on. Then, the key fingerprint of the user's key is
// the third argument. To register successfully, you must have already
// pushed the key with that fingerprint.
UDB_REGISTER = 14;
// The registration response is just a string. It will be either an error
// message to show to the user, or the message "REGISTRATION COMPLETE" if
// registration was successful.
UDB_REGISTER_RESPONSE = 15;
// The search message is just another space separated list. The first field
// will contain the type of registered user you're searching for, namely
// "EMAIL". The second field with contain the value of that type that
// you're searching for.
UDB_SEARCH = 16;
// The search response is a list of fields. The first is always "SEARCH".
// The second is always the value that the user searched for. The third is
// "FOUND" or "NOTFOUND" depending on whether the UDB found the user. If
// the user was FOUND, the last field will contain their key fingerprint,
// which you can use with GET_KEY to get the keys you need to talk with
// that user. Otherwise, this fourth field won't exist.
UDB_SEARCH_RESPONSE = 17;
// The client sends payment transaction messages to the payment bot to
// fund compound coins with seed coins. In the current implementation,
// there's one compound that gets funded that's from the payee. This comes
// across in a PAYMENT_INVOICE. And there's a second compound that contains
// the change from the seeds that the payer is using to fund the invoice.
// The rest are the seeds that are the source of the payment.
// All of the seeds and compounds are in an ordered list, and they get
// categorized and processed on the payment bot.
// To get a message of this type, call the methods in the wallet.
// TODO expose these methods over the API
PAYMENT_TRANSACTION = 20;
// See proto buf
PAYMENT_RESPONSE = 21;
// See proto buf
PAYMENT_INVOICE = 22;
// This message type includes only the message hash of the original
// invoice message. Since there are no fields to delimit, it's not a
// proto buffer. When the payee gets a receipt back, they know that the
// other person probably paid them, and to check the next published
// blockchain for the images of their coins to make sure.
// The wallet sends this message after receiving a PAYMENT_RESPONSE
// indicating success.
PAYMENT_RECEIPT = 23;
// End to End Rekey message types
// Trigger a rekey, this message is used locally in client only
REKEY_TRIGGER = 30;
// Rekey confirmation message. Sent by partner to confirm completion of a rekey
REKEY_CONFIRM = 31;
// These are specialized messages that convey the information that
// the UI needs to know once the wallet's finished updating. They shouldn't
// go over the network. Types 9000-9999 are reserved for messages like this.
// This message type is a single fixed-length hash of the invoice
// that the client just received. The client can look up this hash in the
// inbound transaction list to display the most recently received invoice
// in the UI.
PAYMENT_INVOICE_UI = 9000;
// This message type is a single fixed-length hash of the original invoice
// that this client sent to the paying client. The UI can look up the
// corresponding transaction in the list of completed transactions and
// display payment success on the UI. The wallet sends this message
// locally after receiving a PAYMENT_RECEIPT message.
PAYMENT_RECEIPT_UI = 9001;
}
// Use this enumeration to get specific transactions from specific transaction
// lists from the wallet
enum TransactionListTag {
// Transactions in this list are invoices this user made to another user
// Most importantly, they include the preimage that this user wants fulfilled,
// but the image of this preimage is what the client will send in the invoice.
// Transactions enter this list when this user invoices another user.
OUTBOUND_REQUESTS = 0;
// Transactions in this list are invoices that this user received from
// other users. Most importantly, this includes the image that this user
// will fund.
INBOUND_REQUESTS = 1;
// Transactions in this list are currently processing on a payment bot.
// Transactions move from INBOUND_REQUESTS to PENDING_TRANSACTIONS after
// a Pay() call.
PENDING_TRANSACTIONS = 2;
// Transactions in this list are completed transactions that increased
// the value of this user's wallet. NOTE: They correspond to transactions
// originally in the OUTBOUND_REQUESTS list that went through.
COMPLETED_INBOUND_PAYMENTS = 3;
// Transactions in this list are completed transactions that decreased
// the value of this user's wallet. NOTE: They correspond to transactions
// originally in the INBOUND_REQUESTS list that went through.
COMPLETED_OUTBOUND_PAYMENTS = 4;
}
// Use this enumeration to request different sort orders of transaction lists
// when getting all IDs in a transaction list
enum TransactionListOrder {
// Most recently initiated transaction first
TIMESTAMP_DESCENDING = 0;
// Stalest transaction first
TIMESTAMP_ASCENDING = 1;
// Biggest transaction first
VALUE_DESCENDING = 2;
// Smallest transaction first
VALUE_ASCENDING = 3;
}
// Text message types
// Is Type.TEXT_MESSAGE
// Used for conveying simple text messages between users
message TextMessage {
// Terminal text foreground color. Used by the console UI
sint32 color = 2;
// The message text itself. Varies in length
string message = 3;
// Timestamp (Unix time in seconds)
// You can use this to display the time when the other user sent the message
// TODO Remove this when all messages have timestamps
int64 time = 4;
}
// Is Type.CHANNEL_MESSAGE
// This is the type of all messages that come from the channelbot.
message ChannelMessage {
// This is the original speaker of the channel message, who sent the
// message to the channel bot.
bytes speakerID = 3;
// This is a serialized parse message under the hood. When writing a
// listener for a channel message on a client, you need to unpack the
// serialized parse message and rebroadcast it through the listeners.
bytes message = 4;
}
// Payment message types
// Is Type.PAYMENT_RESPONSE
message PaymentResponse {
// Indicates whether the payment succeeded or failed
bool success = 1;
// Response message from the payment bot. You should display this to the
// user.
string response = 2;
// TODO Is it correct to use the whole hash?
// This is the hash of the payment message that the payment bot received.
// The client uses it to remove the correct pending transaction from the
// list of pending transactions.
bytes ID = 3;
}
// Is Type.PAYMENT_INVOICE
message PaymentInvoice {
// Timestamp (Unix time in seconds)
// Not currently used but could be useful for the user to verify the
// correctness of an invoice.
int64 time = 1;
// This is a single compound coin that the invoicer wants to be funded. The
// payer should send a message to the payment bot to fund this compound, if
// they wish to pay the payee.
bytes createdCoin = 2;
// The payee should fill this out to describe what the payment is for or
// about.
string memo = 3;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment