Compare commits
41 Commits
serde-rena
...
sessions
| Author | SHA1 | Date | |
|---|---|---|---|
|
a18a5c423b
|
|||
|
a3a63a8475
|
|||
|
149ee727ca
|
|||
|
8a5f33b1b4
|
|||
|
62ffc6a365
|
|||
|
1969f9e2fe
|
|||
|
55c8dfd379
|
|||
|
889662bc99
|
|||
|
a9bdcbb1d7
|
|||
|
5f38e94770
|
|||
| 2285e79d6b | |||
|
522731d92a
|
|||
|
b820089a93
|
|||
|
d9db4fefb8
|
|||
|
77d88876f6
|
|||
|
d8f3fd54a6
|
|||
|
0c22f1035e
|
|||
|
e4d6e3882f
|
|||
|
7646d55b34
|
|||
|
3476ecaee0
|
|||
|
09d89e2700
|
|||
|
d5bb0a8972
|
|||
| cd767e3390 | |||
| 5b12236c59 | |||
| 4b9803cf66 | |||
| b8bc25bb8e | |||
| 34e63ea6ba | |||
| 6497b12c5b | |||
| a1d08b3ea6 | |||
| 82ca9f2b0c | |||
| ad8e4ebacf | |||
|
b636336ed2
|
|||
|
5641c3a33e
|
|||
| ef23f7d07e | |||
| a8135fd45c | |||
| 05f8a3b57e | |||
| fab429fc74 | |||
| cc0845f68e | |||
| 2186c5cb96 | |||
| f8d480e834 | |||
| 5cfa6745a6 |
45
auth.proto
Normal file
45
auth.proto
Normal file
@@ -0,0 +1,45 @@
|
||||
syntax = "proto3";
|
||||
|
||||
option go_package = "git.itzana.me/strafesnet/go-grpc/auth";
|
||||
|
||||
package auth;
|
||||
|
||||
import "google/protobuf/empty.proto";
|
||||
|
||||
service AuthService {
|
||||
rpc GetSessionUser(IdMessage) returns (SessionUserResponse);
|
||||
rpc GetGroupRole(IdMessage) returns (RoleReponse);
|
||||
rpc ValidateSession(IdMessage) returns (ValidateResponse);
|
||||
rpc GetAuthMetadata(google.protobuf.Empty) returns (AuthMetadataResponse);
|
||||
}
|
||||
|
||||
message IdMessage {
|
||||
string SessionID = 1;
|
||||
}
|
||||
|
||||
message SessionUserResponse {
|
||||
uint64 UserID = 1;
|
||||
string Username = 2;
|
||||
string AvatarURL = 3;
|
||||
}
|
||||
|
||||
message RoleReponse {
|
||||
repeated RoleItem Roles = 1;
|
||||
}
|
||||
|
||||
message RoleItem {
|
||||
string ID = 1;
|
||||
string DisplayName = 2;
|
||||
int32 Rank = 3;
|
||||
}
|
||||
|
||||
message ValidateResponse {
|
||||
bool Valid = 1;
|
||||
}
|
||||
|
||||
message AuthMetadataResponse {
|
||||
string LoginURL = 1;
|
||||
string LogoutURL = 2;
|
||||
string AccountURL = 3;
|
||||
}
|
||||
|
||||
36
dev.proto
Normal file
36
dev.proto
Normal file
@@ -0,0 +1,36 @@
|
||||
syntax = "proto3";
|
||||
|
||||
option go_package = "git.itzana.me/strafesnet/go-grpc/dev";
|
||||
|
||||
package dev;
|
||||
|
||||
service DevService {
|
||||
rpc Validate(APIValidationRequest) returns (APIValidationResponse);
|
||||
}
|
||||
|
||||
message APIValidationRequest {
|
||||
string Service = 1;
|
||||
string Permission = 2;
|
||||
string Key = 3;
|
||||
string IP = 4;
|
||||
string Resource = 5;
|
||||
}
|
||||
|
||||
message APIValidationResponse {
|
||||
// Response
|
||||
bool Valid = 1;
|
||||
string ErrorMessage = 2;
|
||||
int32 StatusCode = 3;
|
||||
// Remaining limits
|
||||
uint64 RemainingBurst = 4;
|
||||
uint64 RemainingDaily = 5;
|
||||
uint64 RemainingMonthly = 6;
|
||||
// Quota
|
||||
uint64 BurstLimit = 7;
|
||||
uint64 BurstDurationSeconds = 8;
|
||||
uint64 DailyLimit = 9;
|
||||
uint64 MonthlyLimit = 10;
|
||||
// Owner info
|
||||
uint64 UserID = 11;
|
||||
string Application = 12;
|
||||
}
|
||||
@@ -38,7 +38,6 @@ message MapRequest {
|
||||
}
|
||||
|
||||
message MapFilter {
|
||||
int64 ID = 1;
|
||||
optional string DisplayName = 2;
|
||||
optional string Creator = 3;
|
||||
optional int32 GameID = 4;
|
||||
|
||||
82
maps_extended.proto
Normal file
82
maps_extended.proto
Normal file
@@ -0,0 +1,82 @@
|
||||
syntax = "proto3";
|
||||
|
||||
option go_package = "git.itzana.me/strafesnet/go-grpc/maps_extended";
|
||||
|
||||
package maps_extended;
|
||||
|
||||
service MapsService {
|
||||
rpc Get(MapId) returns (MapResponse);
|
||||
rpc GetList(MapIdList) returns (MapList);
|
||||
rpc Update(MapUpdate) returns (NullResponse);
|
||||
rpc Create(MapCreate) returns (MapId);
|
||||
rpc Delete(MapId) returns (NullResponse);
|
||||
rpc List(ListRequest) returns (MapList);
|
||||
rpc IncrementLoadCount(MapId) returns (NullResponse);
|
||||
}
|
||||
|
||||
message MapIdList { repeated int64 ID = 1; }
|
||||
|
||||
message MapId { int64 ID = 1; }
|
||||
|
||||
message MapResponse {
|
||||
int64 ID = 1;
|
||||
string DisplayName = 2;
|
||||
string Creator = 3;
|
||||
uint32 GameID = 4;
|
||||
int64 Date = 5;
|
||||
int64 CreatedAt = 6;
|
||||
int64 UpdatedAt = 7;
|
||||
uint64 Submitter = 8;
|
||||
uint64 Thumbnail = 9;
|
||||
uint64 AssetVersion = 10;
|
||||
uint32 LoadCount = 11;
|
||||
uint32 Modes = 12;
|
||||
}
|
||||
|
||||
message MapCreate {
|
||||
int64 ID = 1;
|
||||
string DisplayName = 2;
|
||||
string Creator = 3;
|
||||
uint32 GameID = 4;
|
||||
int64 Date = 5;
|
||||
// int64 CreatedAt = 6;
|
||||
// int64 UpdatedAt = 7;
|
||||
uint64 Submitter = 6;
|
||||
uint64 Thumbnail = 7;
|
||||
uint64 AssetVersion = 8;
|
||||
// uint32 LoadCount = 11;
|
||||
uint32 Modes = 9;
|
||||
}
|
||||
|
||||
message MapUpdate {
|
||||
int64 ID = 1;
|
||||
optional string DisplayName = 2;
|
||||
optional string Creator = 3;
|
||||
optional uint32 GameID = 4;
|
||||
optional int64 Date = 5;
|
||||
optional uint64 Submitter = 6;
|
||||
optional uint64 Thumbnail = 7;
|
||||
optional uint64 AssetVersion = 8;
|
||||
optional uint32 Modes = 9;
|
||||
}
|
||||
|
||||
message MapFilter {
|
||||
optional string DisplayName = 2;
|
||||
optional string Creator = 3;
|
||||
optional uint32 GameID = 4;
|
||||
optional uint64 Submitter = 5;
|
||||
}
|
||||
|
||||
message MapList { repeated MapResponse Maps = 1; }
|
||||
|
||||
message ListRequest {
|
||||
MapFilter Filter = 1;
|
||||
Pagination Page = 2;
|
||||
}
|
||||
|
||||
message Pagination {
|
||||
uint32 Size = 1;
|
||||
uint32 Number = 2;
|
||||
}
|
||||
|
||||
message NullResponse {}
|
||||
31
moderation.proto
Normal file
31
moderation.proto
Normal file
@@ -0,0 +1,31 @@
|
||||
syntax = "proto3";
|
||||
|
||||
option go_package = "git.itzana.me/strafesnet/go-grpc/moderation";
|
||||
|
||||
package moderation;
|
||||
|
||||
import "google/protobuf/struct.proto";
|
||||
|
||||
service ModerationService {
|
||||
rpc SetState(SetStateRequest) returns (Null);
|
||||
rpc SetMuted(SetMuteRequest) returns (Null);
|
||||
}
|
||||
|
||||
message Null {}
|
||||
|
||||
message SetStateRequest {
|
||||
int64 UserID = 1;
|
||||
int64 ModeratorID = 2;
|
||||
int32 ReasonID = 3;
|
||||
int32 StateID = 4;
|
||||
}
|
||||
|
||||
message SetMuteRequest {
|
||||
int64 UserID = 1;
|
||||
int64 ModeratorID = 2;
|
||||
bool Muted = 3;
|
||||
optional int64 Duration = 4;
|
||||
optional int32 ReasonID = 5;
|
||||
optional string ReasonText = 6;
|
||||
optional google.protobuf.Struct Metadata = 7;
|
||||
}
|
||||
@@ -1,13 +1,29 @@
|
||||
#!/bin/bash
|
||||
|
||||
rm ./rust-grpc/src/lib.rs
|
||||
|
||||
for f in *.proto
|
||||
do
|
||||
name=$(basename $f .proto)
|
||||
mkdir -p ./rust-grpc/$name
|
||||
module=./rust-grpc/src/$name
|
||||
mkdir -p $module
|
||||
protoc \
|
||||
--prost_out=./rust-grpc/$name \
|
||||
--tonic_out=./rust-grpc/$name \
|
||||
--prost_out=$module \
|
||||
--tonic_out=$module \
|
||||
$f
|
||||
#I couldn't figure out how to configure protoc to do this
|
||||
sed -i "s/::prost::Message/::prost::Message, serde::Serialize, serde::Deserialize/g" "./rust-grpc/$name/$name.rs"
|
||||
done
|
||||
sed -i "s/, PartialEq, ::prost::Message)\]/, PartialEq, ::prost::Message, serde::Serialize, serde::Deserialize)\]\n#\[serde(rename_all = \"PascalCase\")\]/g" "$module/$name.rs"
|
||||
sed -i "s/ pub id:/ #\[serde(rename = \"ID\")\]\n pub id:/g" "$module/$name.rs"
|
||||
sed -i "s/ pub map_id:/ #\[serde(rename = \"MapID\")\]\n pub map_id:/g" "$module/$name.rs"
|
||||
sed -i "s/ pub time_id:/ #\[serde(rename = \"TimeID\")\]\n pub time_id:/g" "$module/$name.rs"
|
||||
sed -i "s/ pub file_id:/ #\[serde(rename = \"FileID\")\]\n pub file_id:/g" "$module/$name.rs"
|
||||
sed -i "s/ pub game_id:/ #\[serde(rename = \"GameID\")\]\n pub game_id:/g" "$module/$name.rs"
|
||||
sed -i "s/ pub user_id:/ #\[serde(rename = \"UserID\")\]\n pub user_id:/g" "$module/$name.rs"
|
||||
sed -i "s/ pub mode_id:/ #\[serde(rename = \"ModeID\")\]\n pub mode_id:/g" "$module/$name.rs"
|
||||
sed -i "s/ pub style_id:/ #\[serde(rename = \"StyleID\")\]\n pub style_id:/g" "$module/$name.rs"
|
||||
sed -i "s/ pub state_id:/ #\[serde(rename = \"StateID\")\]\n pub state_id:/g" "$module/$name.rs"
|
||||
sed -i "s/ pub place_id:/ #\[serde(rename = \"PlaceID\")\]\n pub place_id:/g" "$module/$name.rs"
|
||||
sed -i "s/ pub vip_server_id:/ #\[serde(rename = \"VipServerID\")\]\n pub vip_server_id:/g" "$module/$name.rs"
|
||||
mv "$module/$name.rs" "$module/mod.rs"
|
||||
echo "pub mod $name;" >> ./rust-grpc/src/lib.rs
|
||||
done
|
||||
|
||||
67
sessions.proto
Normal file
67
sessions.proto
Normal file
@@ -0,0 +1,67 @@
|
||||
syntax = "proto3";
|
||||
|
||||
option go_package = "git.itzana.me/strafesnet/go-grpc/sessions";
|
||||
|
||||
package sessions;
|
||||
|
||||
service SessionsService {
|
||||
rpc Create(SessionCreate) returns (SessionId);
|
||||
rpc List(ListRequest) returns (SessionList);
|
||||
rpc Aggregate(SessionFilter) returns (SessionAggregate);
|
||||
}
|
||||
|
||||
message SessionIdList { repeated int64 ID = 1; }
|
||||
|
||||
message SessionId { int64 ID = 1; }
|
||||
|
||||
message SessionResponse {
|
||||
int64 ID = 1;
|
||||
uint64 UserID = 2;
|
||||
uint64 MapID = 3;
|
||||
int64 Date = 4;
|
||||
uint32 Duration = 5;
|
||||
uint32 Attempts = 6;
|
||||
uint32 GameID = 7;
|
||||
uint32 StyleID = 8;
|
||||
}
|
||||
|
||||
message SessionCreate {
|
||||
uint64 UserID = 1;
|
||||
uint64 MapID = 2;
|
||||
int64 Date = 3;
|
||||
uint32 Duration = 4;
|
||||
uint32 Attempts = 5;
|
||||
uint32 GameID = 6;
|
||||
uint32 StyleID = 7;
|
||||
}
|
||||
|
||||
enum SessionSort {
|
||||
SessionSortDateDescending = 0;
|
||||
}
|
||||
|
||||
message SessionFilter {
|
||||
optional uint64 UserID = 1;
|
||||
optional uint64 MapID = 2;
|
||||
optional uint32 GameID = 3;
|
||||
optional uint32 StyleID = 4;
|
||||
}
|
||||
|
||||
message SessionList { repeated SessionResponse Sessions = 1; }
|
||||
|
||||
message ListRequest {
|
||||
SessionFilter Filter = 1;
|
||||
Pagination Page = 2;
|
||||
Sort SessionSort = 3;
|
||||
}
|
||||
|
||||
message Pagination {
|
||||
uint32 Size = 1;
|
||||
uint32 Number = 2;
|
||||
}
|
||||
|
||||
message SessionAggregate {
|
||||
uint64 Duration = 1;
|
||||
uint64 Attempts = 2;
|
||||
}
|
||||
|
||||
message NullResponse {}
|
||||
22
times.proto
22
times.proto
@@ -14,7 +14,9 @@ service TimesService {
|
||||
rpc Delete(IdMessage) returns (NullResponse);
|
||||
rpc Get(IdMessage) returns (TimeResponse);
|
||||
rpc List(ListRequest) returns (TimeList);
|
||||
rpc ListWr(WrListRequest) returns (TimeList);
|
||||
rpc Rank(IdMessage) returns (RankResponse);
|
||||
rpc RankBatch(IdListMessage) returns (RankListResponse);
|
||||
}
|
||||
|
||||
message TimeRequest {
|
||||
@@ -26,6 +28,7 @@ message TimeRequest {
|
||||
optional int32 StyleID = 6;
|
||||
optional int32 ModeID = 7;
|
||||
optional int32 GameID = 8;
|
||||
optional uint32 Attempt = 9;
|
||||
}
|
||||
|
||||
message TimeFilter {
|
||||
@@ -49,19 +52,31 @@ message TimeResponse {
|
||||
int32 StyleID = 7;
|
||||
int32 ModeID = 8;
|
||||
int32 GameID = 9;
|
||||
// How many times did the player leave the start zone
|
||||
// during their full play history of the map
|
||||
uint32 Attempt = 10;
|
||||
}
|
||||
|
||||
message IdMessage {
|
||||
int64 ID = 1;
|
||||
}
|
||||
|
||||
message IdListMessage {
|
||||
repeated int64 ID = 1;
|
||||
}
|
||||
|
||||
message TimeList {
|
||||
repeated TimeResponse Times = 1;
|
||||
int64 Total = 2;
|
||||
}
|
||||
|
||||
message RankListResponse {
|
||||
repeated RankResponse Ranks = 1;
|
||||
}
|
||||
|
||||
message RankResponse {
|
||||
int64 Rank = 1;
|
||||
int64 ID = 2;
|
||||
}
|
||||
|
||||
message ListRequest {
|
||||
@@ -77,6 +92,11 @@ message ListRequest {
|
||||
uint32 Sort = 4;
|
||||
}
|
||||
|
||||
message WrListRequest {
|
||||
TimeFilter Filter = 1;
|
||||
Pagination Page = 2;
|
||||
}
|
||||
|
||||
message Pagination {
|
||||
int32 Size = 1;
|
||||
int32 Number = 2;
|
||||
@@ -84,4 +104,4 @@ message Pagination {
|
||||
|
||||
message NullResponse {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ message TransactionCreate {
|
||||
message TransactionUpdate {
|
||||
string ID = 1;
|
||||
optional int64 Value = 2;
|
||||
optional int64 StateID = 3;
|
||||
optional int32 StateID = 3;
|
||||
optional google.protobuf.Struct Data = 4;
|
||||
}
|
||||
|
||||
|
||||
@@ -25,12 +25,14 @@ message UserResponse {
|
||||
int64 ID = 1;
|
||||
string Username = 2;
|
||||
int32 StateID = 3;
|
||||
bool Muted = 4;
|
||||
}
|
||||
|
||||
message UserRequest {
|
||||
int64 ID = 1;
|
||||
optional string Username = 2;
|
||||
optional int32 StateID = 3;
|
||||
optional bool Muted = 4;
|
||||
}
|
||||
|
||||
message UserFilter {
|
||||
|
||||
195
validator.proto
Normal file
195
validator.proto
Normal file
@@ -0,0 +1,195 @@
|
||||
syntax = "proto3";
|
||||
|
||||
option go_package = "git.itzana.me/strafesnet/go-grpc/validator";
|
||||
|
||||
package validator;
|
||||
|
||||
service ValidatorMapfixService {
|
||||
rpc Create(MapfixCreate) returns (MapfixID);
|
||||
rpc CreateAuditError(AuditErrorRequest) returns (NullResponse);
|
||||
rpc CreateAuditChecklist(AuditChecklistRequest) returns (NullResponse);
|
||||
rpc SetValidatedModel(ValidatedModelRequest) returns (NullResponse);
|
||||
rpc SetStatusSubmitted(SubmittedRequest) returns (NullResponse);
|
||||
rpc SetStatusRequestChanges(MapfixID) returns (NullResponse);
|
||||
rpc SetStatusValidated(MapfixID) returns (NullResponse);
|
||||
rpc SetStatusFailed(MapfixID) returns (NullResponse);
|
||||
rpc SetStatusUploaded(MapfixID) returns (NullResponse);
|
||||
}
|
||||
|
||||
service ValidatorSubmissionService {
|
||||
rpc Create(SubmissionCreate) returns (SubmissionID);
|
||||
rpc CreateAuditError(AuditErrorRequest) returns (NullResponse);
|
||||
rpc CreateAuditChecklist(AuditChecklistRequest) returns (NullResponse);
|
||||
rpc SetValidatedModel(ValidatedModelRequest) returns (NullResponse);
|
||||
rpc SetStatusSubmitted(SubmittedRequest) returns (NullResponse);
|
||||
rpc SetStatusRequestChanges(SubmissionID) returns (NullResponse);
|
||||
rpc SetStatusValidated(SubmissionID) returns (NullResponse);
|
||||
rpc SetStatusFailed(SubmissionID) returns (NullResponse);
|
||||
rpc SetStatusUploaded(StatusUploadedRequest) returns (NullResponse);
|
||||
}
|
||||
|
||||
message MapfixID { uint64 ID = 1; }
|
||||
|
||||
message MapfixCreate {
|
||||
uint32 OperationID = 1;
|
||||
uint32 GameID = 2;
|
||||
uint64 AssetOwner = 3;
|
||||
uint64 AssetID = 4;
|
||||
uint64 AssetVersion = 5;
|
||||
uint64 TargetAssetID = 6;
|
||||
string DisplayName = 7;
|
||||
string Creator = 8;
|
||||
string Description = 9;
|
||||
}
|
||||
|
||||
message SubmissionID { uint64 ID = 1; }
|
||||
|
||||
message SubmissionCreate {
|
||||
uint32 OperationID = 1;
|
||||
uint32 GameID = 2;
|
||||
uint32 Status = 3;
|
||||
uint32 Roles = 4;
|
||||
uint64 AssetOwner = 5;
|
||||
uint64 AssetID = 6;
|
||||
uint64 AssetVersion = 7;
|
||||
string DisplayName = 8;
|
||||
string Creator = 9;
|
||||
}
|
||||
|
||||
message AuditErrorRequest {
|
||||
uint64 ID = 1;
|
||||
string ErrorMessage = 2;
|
||||
}
|
||||
message Check {
|
||||
string Name = 1;
|
||||
string Summary = 2;
|
||||
bool Passed = 3;
|
||||
}
|
||||
message AuditChecklistRequest {
|
||||
uint64 ID = 1;
|
||||
repeated Check CheckList = 2;
|
||||
}
|
||||
|
||||
message ValidatedModelRequest {
|
||||
uint64 ID = 1;
|
||||
uint64 ValidatedModelID = 2;
|
||||
uint64 ValidatedModelVersion = 3;
|
||||
}
|
||||
|
||||
message SubmittedRequest {
|
||||
uint64 ID = 1;
|
||||
uint64 ModelVersion = 2;
|
||||
string DisplayName = 3;
|
||||
string Creator = 4;
|
||||
uint32 GameID = 5;
|
||||
}
|
||||
|
||||
message StatusUploadedRequest {
|
||||
uint64 ID = 1;
|
||||
uint64 UploadedAssetID = 2;
|
||||
}
|
||||
|
||||
message NullResponse {}
|
||||
|
||||
// Operations
|
||||
service ValidatorOperationService {
|
||||
rpc Fail(OperationFailRequest) returns (NullResponse);
|
||||
}
|
||||
|
||||
message OperationFailRequest {
|
||||
uint32 OperationID = 1;
|
||||
string StatusMessage = 2;
|
||||
}
|
||||
|
||||
message Pagination {
|
||||
uint32 Size = 1;
|
||||
uint32 Number = 2;
|
||||
}
|
||||
|
||||
// Scripts
|
||||
service ValidatorScriptService {
|
||||
rpc Create(ScriptCreate) returns (ScriptID);
|
||||
rpc Get(ScriptID) returns (Script);
|
||||
rpc List(ScriptListRequest) returns (ScriptListResponse);
|
||||
}
|
||||
|
||||
enum ResourceType {
|
||||
ResourceTypeNone = 0;
|
||||
ResourceTypeMapfix = 1;
|
||||
ResourceTypeSubmission = 2;
|
||||
}
|
||||
|
||||
message ScriptCreate {
|
||||
string Name = 1;
|
||||
string Source = 2;
|
||||
ResourceType ResourceType = 3;
|
||||
optional uint64 ResourceID = 4;
|
||||
}
|
||||
|
||||
message ScriptFilter {
|
||||
optional string Name = 1;
|
||||
optional string Source = 2;
|
||||
optional ResourceType ResourceType = 3;
|
||||
optional uint64 ResourceID = 4;
|
||||
optional uint64 Hash = 5;
|
||||
}
|
||||
|
||||
message ScriptListRequest {
|
||||
ScriptFilter Filter = 1;
|
||||
Pagination Page = 2;
|
||||
}
|
||||
|
||||
message ScriptID { uint64 ID = 1; }
|
||||
|
||||
message Script {
|
||||
uint64 ID = 1;
|
||||
uint64 Hash = 2;
|
||||
string Name = 3;
|
||||
string Source = 4;
|
||||
ResourceType ResourceType = 5;
|
||||
optional uint64 ResourceID = 6;
|
||||
}
|
||||
|
||||
message ScriptListResponse { repeated Script Scripts = 1; }
|
||||
|
||||
// ScriptPolicies
|
||||
service ValidatorScriptPolicyService {
|
||||
rpc Create(ScriptPolicyCreate) returns (ScriptPolicyID);
|
||||
rpc List(ScriptPolicyListRequest) returns (ScriptPolicyListResponse);
|
||||
}
|
||||
|
||||
enum Policy {
|
||||
PolicyNone = 0;
|
||||
PolicyAllowed = 1;
|
||||
PolicyBlocked = 2;
|
||||
PolicyDelete = 3;
|
||||
PolicyReplace = 4;
|
||||
}
|
||||
|
||||
message ScriptPolicyCreate {
|
||||
uint64 FromScriptID = 1;
|
||||
uint64 ToScriptID = 2;
|
||||
Policy Policy = 3;
|
||||
}
|
||||
|
||||
message ScriptPolicyFilter {
|
||||
optional uint64 FromScriptHash = 1;
|
||||
optional uint64 ToScriptID = 2;
|
||||
optional Policy Policy = 3;
|
||||
}
|
||||
|
||||
message ScriptPolicyListRequest {
|
||||
ScriptPolicyFilter Filter = 1;
|
||||
Pagination Page = 2;
|
||||
}
|
||||
|
||||
message ScriptPolicyID { uint64 ID = 1; }
|
||||
|
||||
message ScriptPolicy {
|
||||
uint64 ID = 1;
|
||||
uint64 FromScriptHash = 2;
|
||||
uint64 ToScriptID = 3;
|
||||
Policy Policy = 4;
|
||||
}
|
||||
|
||||
message ScriptPolicyListResponse { repeated ScriptPolicy ScriptPolicies = 1; }
|
||||
Reference in New Issue
Block a user