package protobuf

Mouse Melon logoGet desktop application:
View/edit binary Protocol Buffers messages

message Branch

merkle.proto:59

Branch will hash data and then pass it through operations from first to last in order to calculate the root node. Visualize Branch as representing the data closest to root as the first item, and the leaf as the last item.

Used in: MerkleProof

message Data

merkle.proto:38

Data is the end value stored, used to generate the initial hash store

Used in: Branch

enum Data.DataType

merkle.proto:47

If it is KeyValue, this is the data we want If it is SubTree, key is name of the tree, value is root hash

Used in: Data

enum HashOp

merkle.proto:7

HashOp is the hashing algorithm we use at each level

Used in: Data, Op

message IBCPacket

messages.proto:14

IBCPacket sends a proven key/value pair from an IBCQueue. Depending on the type of message, we require a certain type of key (MessageKey at a given height, or StateKey). Includes src_chain and src_height to look up the proper header to verify the merkle proof.

enum IBCPacket.MsgType

messages.proto:20

the message type, which determines what key/value mean

Used in: IBCPacket

message MerkleProof

merkle.proto:70

TODO: root, height, chain_id, etc...

Used in: IBCPacket

message MessageKey

queue.proto:36

MessageKey is the key for message *index* in a given queue

message Op

merkle.proto:30

Op represents one hash in a chain of hashes. An operation takes the output of the last level and returns a hash for the next level: Op(last) => Operation(prefix + last + sufix) A simple left/right hash would simply set prefix=left or suffix=right and leave the other blank. However, one could also represent the a Patricia trie proof by setting prefix to the rlp encoding of all nodes before the branch we select, and suffix to all those after the one we select.

Used in: Branch

message QueueName

queue.proto:7

Used in: MessageKey, StateKey

enum QueueName.Purpose

queue.proto:11

Used in: QueueName

message ReceiptValue

queue.proto:51

ReceiptValue is stored under a MessageKey in the RECEIPT queue

message SendValue

queue.proto:42

SendValue is stored under a MessageKey in the SEND queue

message StateKey

queue.proto:19

StateKey is a key for the head/tail of a given queue

enum StateKey.State

queue.proto:23

both encode into one byte with varint encoding never clash with 8 byte message indexes

Used in: StateKey

message StateValue

queue.proto:31

StateValue is the type stored under a StateKey