github.com/s7techlab/cckit@v0.10.5/examples/token/service/config/config.proto (about) 1 syntax = "proto3"; 2 3 option go_package = "github.com/s7techlab/cckit/examples/token/service/config"; 4 package examples.erc20_service.service.balance; 5 6 import "google/api/annotations.proto"; 7 import "google/protobuf/empty.proto"; 8 import "mwitkow/go-proto-validators/validator.proto"; 9 10 // Config token 11 service ConfigService { 12 13 rpc GetConfig (google.protobuf.Empty) returns (Config) { 14 option (google.api.http) = { 15 get: "/token/config" 16 }; 17 } 18 19 rpc SetConfig (Config) returns (Config) { 20 option (google.api.http) = { 21 put: "/token/config" 22 body: "*" 23 }; 24 } 25 26 rpc GetToken (TokenId) returns (Token) { 27 option (google.api.http) = { 28 get: "/token/tokens/{token}" 29 }; 30 } 31 32 rpc GetDefaultToken (google.protobuf.Empty) returns (Token) { 33 option (google.api.http) = { 34 get: "/token/default" 35 }; 36 } 37 38 rpc CreateTokenType (CreateTokenTypeRequest) returns (TokenType) { 39 option (google.api.http) = { 40 post: "/token/types" 41 body: "*" 42 }; 43 } 44 45 rpc GetTokenType(TokenTypeId) returns (TokenType) { 46 option (google.api.http) = { 47 get: "/token/types/{name}" 48 }; 49 } 50 51 rpc ListTokenTypes(google.protobuf.Empty) returns (TokenTypes) { 52 option (google.api.http) = { 53 get: "/token/types" 54 }; 55 } 56 57 rpc UpdateTokenType (UpdateTokenTypeRequest) returns (TokenType) { 58 option (google.api.http) = { 59 put: "/token/types/{name}" 60 body: "*" 61 }; 62 } 63 64 rpc DeleteTokenType (TokenTypeId) returns (TokenType) { 65 option (google.api.http) = { 66 delete: "/token/types/{name}" 67 }; 68 } 69 70 rpc GetTokenGroups(TokenTypeId) returns (TokenGroups) { 71 option (google.api.http) = { 72 get: "/token/types/{name}/groups" 73 }; 74 } 75 76 rpc CreateTokenGroup (CreateTokenGroupRequest) returns (TokenGroup) { 77 option (google.api.http) = { 78 post: "/token/types/{name}/groups" 79 body: "*" 80 }; 81 } 82 83 rpc GetTokenGroup (TokenGroupId) returns (TokenGroup) { 84 option (google.api.http) = { 85 get: "/token/tokens/{token_name}/groups/{name}" 86 }; 87 } 88 89 rpc DeleteTokenGroup (TokenGroupId) returns (Token) { 90 option (google.api.http) = { 91 delete: "/token/tokens/{token_name}/groups/{name}" 92 }; 93 } 94 } 95 96 message CreateTokenTypeRequest { 97 string name = 1 [(validator.field) = {string_not_empty : true}]; 98 string symbol = 2 [(validator.field) = {string_not_empty : true}]; 99 uint32 decimals = 3 [(validator.field) = {int_lt: 9}]; // from 0 to 8 100 TokenGroupType group_type = 4 [(validator.field) = {is_in_enum : true}];; 101 uint64 total_supply = 5; 102 repeated TokenMetaRequest meta = 6; 103 } 104 105 message UpdateTokenTypeRequest { 106 string name = 1 [(validator.field) = {string_not_empty : true}]; 107 string symbol = 2 [(validator.field) = {string_not_empty : true}]; 108 uint64 total_supply = 3; 109 repeated TokenMetaRequest meta = 4; 110 } 111 112 message CreateTokenGroupRequest { 113 repeated string name = 1 [(validator.field) = {repeated_count_min : 1}]; 114 string token_type = 2 [(validator.field) = {string_not_empty : true}]; 115 uint64 total_supply = 3; 116 repeated TokenMetaRequest meta = 4; 117 } 118 119 message Config { 120 repeated string default_token = 1; 121 int32 max_token_types_num = 2; 122 int32 max_token_groups_num = 3; 123 } 124 125 message TokenId { 126 repeated string token = 1; 127 } 128 129 // Id: toke type id 130 message TokenTypeId { 131 string name = 1; 132 } 133 134 // State: TokenType 135 message TokenType { 136 string name = 1; 137 string symbol = 2; 138 uint32 decimals = 3; 139 uint64 total_supply = 4; 140 TokenGroupType group_type = 5; 141 repeated TokenMeta meta = 6; 142 } 143 144 message TokenTypes { 145 repeated TokenType types = 1; 146 } 147 148 message TokenGroupId { 149 string token_name = 1; 150 repeated string name = 2; 151 } 152 153 // State: TokenGroup 154 message TokenGroup { 155 repeated string name = 1; 156 string token_type = 2; 157 uint64 total_supply = 3; 158 repeated TokenMeta meta = 4; 159 } 160 161 message TokenGroups { 162 repeated TokenGroup groups = 1; 163 } 164 165 message TokenMetaRequest { 166 string key = 1 [(validator.field) = {string_not_empty : true}]; 167 string value = 2 [(validator.field) = {string_not_empty : true}]; 168 } 169 170 message TokenMeta { 171 string key = 1; 172 string value = 2; 173 } 174 175 message Token { 176 repeated string token = 1; 177 TokenType type = 2; 178 TokenGroup group = 3; 179 } 180 181 enum TokenGroupType { 182 OPTIONAL = 0; 183 REQUIRED = 1; 184 NOT_ALLOWED = 3; 185 } 186 187 message TokenTypeCreated { 188 string name = 1; 189 string symbol = 2; 190 } 191 192 message TokenGroupCreated { 193 string token_type = 1; 194 repeated string name = 2; 195 }