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  }