-
Notifications
You must be signed in to change notification settings - Fork 29
/
common.proto
83 lines (68 loc) · 1.53 KB
/
common.proto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
syntax = "proto3";
message Felt252 {
bytes elements = 1;
}
// A hash value representable as a Felt252
message Hash {
bytes elements = 1;
}
// A 256 bit hash value (like Keccak256)
message Hash256 {
// Required to be 32 bytes long
bytes elements = 1;
}
message Hashes {
repeated Hash items = 1;
}
message Address {
bytes elements = 1;
}
message PeerID {
bytes id = 1;
}
message Uint128 {
uint64 low = 1;
uint64 high = 2;
}
message ConsensusSignature {
Felt252 r = 1;
Felt252 s = 2;
}
message Patricia {
uint64 n_leaves = 1; // needed to know the height, so as to how many nodes to expect in a proof.
// and also when receiving all leaves, how many to expect
Hash root = 2;
}
message StateDiffCommitment {
uint64 state_diff_length = 1;
Hash root = 2;
}
message BlockID {
uint64 number = 1;
Hash header = 2;
}
enum L1DataAvailabilityMode {
Calldata = 0;
Blob = 1;
}
enum VolitionDomain {
L1 = 0;
L2 = 1;
}
message Iteration {
enum Direction {
Forward = 0;
Backward = 1;
}
oneof start {
uint64 block_number = 1;
Hash header = 2;
}
Direction direction = 3;
uint64 limit = 4;
uint64 step = 5; // to allow interleaving from several nodes
// bool interleave = 6; // return results in any order of blocks, per block the messages should still be in the order specified
}
// mark the end of a stream of messages
// TBD: may not be required if we open a stream per request.
message Fin {}