forked from latticexyz/mud
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathecs-relay.proto
81 lines (61 loc) · 1.81 KB
/
ecs-relay.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
syntax = "proto3";
package ecsrelay;
option go_package = "protobuf/go/ecs-relay";
// Identifies a client connecting to Relay Service.
message Identity {
string name = 1;
}
// Signature that a client must provide to prove ownership of identity.
message Signature {
string signature = 1;
}
message Message {
uint32 version = 1;
string id = 2;
bytes data = 3;
int64 timestamp = 4;
string signature = 5;
}
// The Relay Service definition.
service ECSRelayService {
rpc Authenticate(Signature) returns (Identity) {}
rpc Revoke(Signature) returns (Identity) {}
rpc Ping(Signature) returns (Identity) {}
rpc CountAuthenticated(CountIdentitiesRequest) returns (CountIdentitiesResponse) {}
rpc CountConnected(CountIdentitiesRequest) returns (CountIdentitiesResponse) {}
rpc Subscribe(SubscriptionRequest) returns (Subscription) {}
rpc Unsubscribe(SubscriptionRequest) returns (Subscription) {}
rpc OpenStream(Signature) returns (stream Message) {}
// Push a stream of messages to be relayed.
rpc PushStream(stream PushRequest) returns (stream PushResponse) {}
// Push a single message to be relayed.
rpc Push(PushRequest) returns (PushResponse) {}
// Minimum balance an account must have to be able to push.
rpc MinBalanceForPush(BalanceRequest) returns (BalanceResponse) {}
}
message SubscriptionRequest {
Signature signature = 1;
Subscription subscription = 2;
}
message Subscription {
string label = 1;
}
message PushRequest {
string label = 1;
Message message = 2;
}
message PushManyRequest {
Signature signature = 1;
string label = 2;
repeated Message messages = 3;
}
message PushResponse {}
message CountIdentitiesRequest {}
message CountIdentitiesResponse {
uint32 count = 1;
}
message BalanceRequest {}
message BalanceResponse {
uint64 wei = 1;
double ether = 2;
}