@sui-tracker/shared 1.0.56 → 1.0.58

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,3 +4,4 @@ export * from "./proxy-grpc.service";
4
4
  export * from "./swap-order-grpc.service";
5
5
  export * from "./price-grpc.service";
6
6
  export * from "./data-center-grpc.service";
7
+ export * from "./token-grpc.service";
@@ -20,4 +20,5 @@ __exportStar(require("./proxy-grpc.service"), exports);
20
20
  __exportStar(require("./swap-order-grpc.service"), exports);
21
21
  __exportStar(require("./price-grpc.service"), exports);
22
22
  __exportStar(require("./data-center-grpc.service"), exports);
23
+ __exportStar(require("./token-grpc.service"), exports);
23
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/grpc-services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAuC;AACvC,4DAA0C;AAC1C,uDAAqC;AACrC,4DAA0C;AAC1C,uDAAqC;AACrC,6DAA2C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/grpc-services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAuC;AACvC,4DAA0C;AAC1C,uDAAqC;AACrC,4DAA0C;AAC1C,uDAAqC;AACrC,6DAA2C;AAC3C,uDAAqC"}
@@ -0,0 +1,9 @@
1
+ import { ClientGrpc } from "@nestjs/microservices";
2
+ import { GetTrendingTokensRequest, GetTrendingTokensResponse, GetTopVolumeTokensRequest, GetTopVolumeTokensResponse } from "../interfaces/swap-order.interface";
3
+ export declare class TokenGrpcService {
4
+ private grpcClient;
5
+ private readonly logger;
6
+ constructor(grpcClient: ClientGrpc);
7
+ getTrendingTokens(data: GetTrendingTokensRequest): Promise<GetTrendingTokensResponse>;
8
+ getTopVolumeTokens(data: GetTopVolumeTokensRequest): Promise<GetTopVolumeTokensResponse>;
9
+ }
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var TokenGrpcService_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.TokenGrpcService = void 0;
17
+ const common_1 = require("@nestjs/common");
18
+ let TokenGrpcService = TokenGrpcService_1 = class TokenGrpcService {
19
+ constructor(grpcClient) {
20
+ this.grpcClient = grpcClient;
21
+ this.logger = new common_1.Logger(TokenGrpcService_1.name);
22
+ }
23
+ async getTrendingTokens(data) {
24
+ const swapOrderService = this.grpcClient.getService("SwapOrderService");
25
+ const res = await new Promise((resolve, reject) => {
26
+ swapOrderService.trendingTokens(data).subscribe({
27
+ next: (response) => resolve(response),
28
+ error: (error) => reject(error),
29
+ });
30
+ });
31
+ if (!res.success) {
32
+ throw new Error(res.message);
33
+ }
34
+ return res;
35
+ }
36
+ async getTopVolumeTokens(data) {
37
+ const swapOrderService = this.grpcClient.getService("SwapOrderService");
38
+ const res = await new Promise((resolve, reject) => {
39
+ swapOrderService.topVolumeTokens(data).subscribe({
40
+ next: (response) => resolve(response),
41
+ error: (error) => reject(error),
42
+ });
43
+ });
44
+ if (!res.success) {
45
+ throw new Error(res.message);
46
+ }
47
+ return res;
48
+ }
49
+ };
50
+ exports.TokenGrpcService = TokenGrpcService;
51
+ exports.TokenGrpcService = TokenGrpcService = TokenGrpcService_1 = __decorate([
52
+ (0, common_1.Injectable)(),
53
+ __param(0, (0, common_1.Inject)("SWAP_ORDER")),
54
+ __metadata("design:paramtypes", [Object])
55
+ ], TokenGrpcService);
56
+ //# sourceMappingURL=token-grpc.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-grpc.service.js","sourceRoot":"","sources":["../../../src/modules/grpc-services/token-grpc.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAA0E;AAYnE,IAAM,gBAAgB,wBAAtB,MAAM,gBAAgB;IAG3B,YAAkC,UAA8B;QAAtB,eAAU,GAAV,UAAU,CAAY;QAF/C,WAAM,GAAG,IAAI,eAAM,CAAC,kBAAgB,CAAC,IAAI,CAAC,CAAC;IAEO,CAAC;IAGpE,KAAK,CAAC,iBAAiB,CACrB,IAA8B;QAE9B,MAAM,gBAAgB,GACpB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAmB,kBAAkB,CAAC,CAAC;QAEnE,MAAM,GAAG,GAAG,MAAM,IAAI,OAAO,CAC3B,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAClB,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC;gBAC9C,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;gBACrC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;aAChC,CAAC,CAAC;QACL,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,IAA+B;QAE/B,MAAM,gBAAgB,GACpB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAmB,kBAAkB,CAAC,CAAC;QAEnE,MAAM,GAAG,GAAG,MAAM,IAAI,OAAO,CAC3B,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAClB,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC;gBAC/C,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;gBACrC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;aAChC,CAAC,CAAC;QACL,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;CACF,CAAA;AAjDY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;IAIE,WAAA,IAAA,eAAM,EAAC,YAAY,CAAC,CAAA;;GAHtB,gBAAgB,CAiD5B"}
@@ -24,6 +24,32 @@ export interface PoolData {
24
24
  score: string;
25
25
  currentPrice: string;
26
26
  }
27
+ export interface PoolDataDetail {
28
+ id: string;
29
+ baseToken: TokenData;
30
+ quoteToken: TokenData;
31
+ reserveA?: number;
32
+ reserveB?: number;
33
+ currentPrice: string;
34
+ dex: string;
35
+ statsData: {
36
+ volume: {
37
+ [key: string]: string;
38
+ };
39
+ price: {
40
+ [key: string]: string;
41
+ };
42
+ totalA2b: {
43
+ [key: string]: string;
44
+ };
45
+ totalTx: {
46
+ [key: string]: string;
47
+ };
48
+ totalMakers: {
49
+ [key: string]: string;
50
+ };
51
+ };
52
+ }
27
53
  export interface CandleData {
28
54
  timestamp: string;
29
55
  open: string;
@@ -45,6 +71,7 @@ export interface GetNewPoolsRequest {
45
71
  }
46
72
  export interface GetPoolRequest {
47
73
  id: string;
74
+ label: number;
48
75
  }
49
76
  export interface GetCandleChartRequest {
50
77
  pool: string;
@@ -59,7 +86,7 @@ export interface GetNewPoolsResponse extends BaseResponse {
59
86
  data: PoolData[];
60
87
  }
61
88
  export interface GetPoolResponse extends BaseResponse {
62
- data: PoolData | null;
89
+ data: PoolDataDetail | null;
63
90
  }
64
91
  export interface GetCandleChartResponse extends BaseResponse {
65
92
  data: CandleData[];
@@ -89,10 +116,38 @@ export interface GetLastSwapOrderRequest {
89
116
  export interface GetLastSwapOrderResponse extends BaseResponse {
90
117
  data: SwapOrderData[];
91
118
  }
119
+ export interface GetTrendingTokensRequest {
120
+ label: number;
121
+ }
122
+ export interface GetTrendingTokensResponse extends BaseResponse {
123
+ data: {
124
+ id: string;
125
+ name?: string | null;
126
+ symbol?: string | null;
127
+ address?: string | null;
128
+ decimals?: number | null;
129
+ iconUrl?: string | null;
130
+ isActive?: boolean | null;
131
+ totalSupply?: string | null;
132
+ description?: string | null;
133
+ volume: string;
134
+ txs: string;
135
+ currentPrice: string;
136
+ oldPrice: string;
137
+ score: string;
138
+ }[];
139
+ }
140
+ export interface GetTopVolumeTokensRequest {
141
+ label: number;
142
+ }
143
+ export interface GetTopVolumeTokensResponse extends GetTrendingTokensResponse {
144
+ }
92
145
  export interface SwapOrderService {
93
146
  getTrendingPools(request: GetTrendingPoolsRequest): Observable<GetTrendingPoolsResponse>;
94
147
  getNewPools(request: GetNewPoolsRequest): Observable<GetNewPoolsResponse>;
95
148
  getPool(request: GetPoolRequest): Observable<GetPoolResponse>;
96
149
  getCandleChart(request: GetCandleChartRequest): Observable<GetCandleChartResponse>;
97
150
  getLastSwapOrder(request: GetLastSwapOrderRequest): Observable<GetLastSwapOrderResponse>;
151
+ trendingTokens(request: GetTrendingTokensRequest): Observable<GetTrendingTokensResponse>;
152
+ topVolumeTokens(request: GetTopVolumeTokensRequest): Observable<GetTopVolumeTokensResponse>;
98
153
  }
@@ -21,6 +21,7 @@ const dotenv_1 = require("dotenv");
21
21
  const internal_token_service_1 = require("./common-service/internal-token.service");
22
22
  const core_1 = require("@nestjs/core");
23
23
  const grpc_metadata_service_1 = require("./grpc-services/grpc-metadata.service");
24
+ const grpc_services_1 = require("./grpc-services");
24
25
  (0, dotenv_1.config)();
25
26
  const providers = [
26
27
  sui_client_service_1.SuiClientService,
@@ -33,6 +34,7 @@ const providers = [
33
34
  internal_token_service_1.InternalTokenService,
34
35
  core_1.Reflector,
35
36
  grpc_metadata_service_1.GrpcMetadataService,
37
+ grpc_services_1.TokenGrpcService,
36
38
  ];
37
39
  let SharedModule = class SharedModule {
38
40
  };
@@ -1 +1 @@
1
- {"version":3,"file":"shared.module.js","sourceRoot":"","sources":["../../src/modules/shared.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAsD;AAEtD,6DAAuD;AACvD,+EAAyE;AACzE,2EAAqE;AACrE,qFAA+E;AAC/E,qFAA8E;AAC9E,yDAAgE;AAChE,+BAA2B;AAC3B,2EAAqE;AACrE,uFAAgF;AAChF,mCAAgC;AAChC,oFAA8E;AAC9E,uCAAwC;AACxC,iFAA2E;AAE3E,IAAA,eAAM,GAAE,CAAC;AAET,MAAM,SAAS,GAAe;IAC5B,qCAAgB;IAChB,yCAAkB;IAClB,qCAAgB;IAChB,+CAAqB;IACrB,8CAAoB;IACpB,qCAAgB;IAChB,gDAAqB;IACrB,6CAAoB;IACpB,gBAAS;IACT,2CAAmB;CACpB,CAAA;AA+DM,IAAM,YAAY,GAAlB,MAAM,YAAY;CAAI,CAAA;AAAhB,oCAAY;uBAAZ,YAAY;IA7DxB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,6BAAa,CAAC,QAAQ,CAAC;gBACrB;oBACE,IAAI,EAAE,OAAO;oBACb,SAAS,EAAE,yBAAS,CAAC,IAAI;oBACzB,OAAO,EAAE;wBACP,OAAO,EAAE,OAAO;wBAChB,SAAS,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,uBAAuB,CAAC;wBACnD,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,iBAAiB;qBACxD;iBACF,EAAE;oBACD,IAAI,EAAE,iBAAiB;oBACvB,SAAS,EAAE,yBAAS,CAAC,IAAI;oBACzB,OAAO,EAAE;wBACP,OAAO,EAAE,iBAAiB;wBAC1B,SAAS,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,iCAAiC,CAAC;wBAC7D,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,iBAAiB;qBAClE;iBACF;gBACD;oBACE,IAAI,EAAE,SAAS;oBACf,SAAS,EAAE,yBAAS,CAAC,IAAI;oBACzB,OAAO,EAAE;wBACP,OAAO,EAAE,SAAS;wBAClB,SAAS,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,yBAAyB,CAAC;wBACrD,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,iBAAiB;qBAC1D;iBACF;gBACD;oBACE,IAAI,EAAE,YAAY;oBAClB,SAAS,EAAE,yBAAS,CAAC,IAAI;oBACzB,OAAO,EAAE;wBACP,OAAO,EAAE,YAAY;wBACrB,SAAS,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,4BAA4B,CAAC;wBACxD,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,iBAAiB;qBAC7D;iBACF;gBACD;oBACE,IAAI,EAAE,YAAY;oBAClB,SAAS,EAAE,yBAAS,CAAC,IAAI;oBACzB,OAAO,EAAE;wBACP,OAAO,EAAE,YAAY;wBACrB,SAAS,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,4BAA4B,CAAC;wBACxD,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,iBAAiB;qBAC7D;iBACF;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,SAAS,EAAE,yBAAS,CAAC,IAAI;oBACzB,OAAO,EAAE;wBACP,OAAO,EAAE,OAAO;wBAChB,SAAS,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,uBAAuB,CAAC;wBACnD,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,iBAAiB;qBACxD;iBACF;aACF,CAAC;SACH;QACD,SAAS;QACT,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC;KACxB,CAAC;GACW,YAAY,CAAI"}
1
+ {"version":3,"file":"shared.module.js","sourceRoot":"","sources":["../../src/modules/shared.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAsD;AAEtD,6DAAuD;AACvD,+EAAyE;AACzE,2EAAqE;AACrE,qFAA+E;AAC/E,qFAA8E;AAC9E,yDAAgE;AAChE,+BAA2B;AAC3B,2EAAqE;AACrE,uFAAgF;AAChF,mCAAgC;AAChC,oFAA8E;AAC9E,uCAAwC;AACxC,iFAA2E;AAC3E,mDAAkD;AAElD,IAAA,eAAM,GAAE,CAAC;AAET,MAAM,SAAS,GAAe;IAC5B,qCAAgB;IAChB,yCAAkB;IAClB,qCAAgB;IAChB,+CAAqB;IACrB,8CAAoB;IACpB,qCAAgB;IAChB,gDAAqB;IACrB,6CAAoB;IACpB,gBAAS;IACT,2CAAmB;IACnB,gCAAgB;CACjB,CAAA;AA+DM,IAAM,YAAY,GAAlB,MAAM,YAAY;CAAI,CAAA;AAAhB,oCAAY;uBAAZ,YAAY;IA7DxB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,6BAAa,CAAC,QAAQ,CAAC;gBACrB;oBACE,IAAI,EAAE,OAAO;oBACb,SAAS,EAAE,yBAAS,CAAC,IAAI;oBACzB,OAAO,EAAE;wBACP,OAAO,EAAE,OAAO;wBAChB,SAAS,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,uBAAuB,CAAC;wBACnD,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,iBAAiB;qBACxD;iBACF,EAAE;oBACD,IAAI,EAAE,iBAAiB;oBACvB,SAAS,EAAE,yBAAS,CAAC,IAAI;oBACzB,OAAO,EAAE;wBACP,OAAO,EAAE,iBAAiB;wBAC1B,SAAS,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,iCAAiC,CAAC;wBAC7D,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,iBAAiB;qBAClE;iBACF;gBACD;oBACE,IAAI,EAAE,SAAS;oBACf,SAAS,EAAE,yBAAS,CAAC,IAAI;oBACzB,OAAO,EAAE;wBACP,OAAO,EAAE,SAAS;wBAClB,SAAS,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,yBAAyB,CAAC;wBACrD,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,iBAAiB;qBAC1D;iBACF;gBACD;oBACE,IAAI,EAAE,YAAY;oBAClB,SAAS,EAAE,yBAAS,CAAC,IAAI;oBACzB,OAAO,EAAE;wBACP,OAAO,EAAE,YAAY;wBACrB,SAAS,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,4BAA4B,CAAC;wBACxD,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,iBAAiB;qBAC7D;iBACF;gBACD;oBACE,IAAI,EAAE,YAAY;oBAClB,SAAS,EAAE,yBAAS,CAAC,IAAI;oBACzB,OAAO,EAAE;wBACP,OAAO,EAAE,YAAY;wBACrB,SAAS,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,4BAA4B,CAAC;wBACxD,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,iBAAiB;qBAC7D;iBACF;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,SAAS,EAAE,yBAAS,CAAC,IAAI;oBACzB,OAAO,EAAE;wBACP,OAAO,EAAE,OAAO;wBAChB,SAAS,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,uBAAuB,CAAC;wBACnD,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,iBAAiB;qBACxD;iBACF;aACF,CAAC;SACH;QACD,SAAS;QACT,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC;KACxB,CAAC;GACW,YAAY,CAAI"}
@@ -9,6 +9,8 @@ service SwapOrderService {
9
9
  rpc GetPool (GetPoolRequest) returns (GetPoolResponse);
10
10
  rpc GetCandleChart (GetCandleChartRequest) returns (GetCandleChartResponse);
11
11
  rpc GetLastSwapOrder (GetLastSwapOrderRequest) returns (GetLastSwapOrderResponse);
12
+ rpc TrendingTokens (GetTrendingTokensRequest) returns (GetTrendingTokensResponse);
13
+ rpc TopVolumeTokens (GetTopVolumeTokensRequest) returns (GetTopVolumeTokensResponse);
12
14
  }
13
15
 
14
16
  // Token data structure matching TokenData interface
@@ -24,6 +26,15 @@ message TokenData {
24
26
  optional string description = 9;
25
27
  }
26
28
 
29
+ // Stats data structure for PoolDataDetail
30
+ message StatsData {
31
+ map<string, string> volume = 1;
32
+ map<string, string> price = 2;
33
+ map<string, string> totalA2b = 3;
34
+ map<string, string> totalTx = 4;
35
+ map<string, string> totalMakers = 5;
36
+ }
37
+
27
38
  // Pool data structure matching PoolData interface
28
39
  message PoolData {
29
40
  string id = 1;
@@ -36,7 +47,18 @@ message PoolData {
36
47
  string totalTx = 8;
37
48
  string score = 9;
38
49
  string currentPrice = 10;
39
- string price = 11;
50
+ }
51
+
52
+ // Pool data detail structure matching PoolDataDetail interface
53
+ message PoolDataDetail {
54
+ string id = 1;
55
+ TokenData baseToken = 2;
56
+ TokenData quoteToken = 3;
57
+ optional double reserveA = 4;
58
+ optional double reserveB = 5;
59
+ string currentPrice = 6;
60
+ string dex = 7;
61
+ StatsData statsData = 8;
40
62
  }
41
63
 
42
64
  // Candle data structure matching CandleData interface
@@ -71,6 +93,24 @@ message SwapOrderData {
71
93
  string swapAt = 13;
72
94
  }
73
95
 
96
+ // Trending token data structure
97
+ message TrendingTokenData {
98
+ string id = 1;
99
+ optional string name = 2;
100
+ optional string symbol = 3;
101
+ optional string address = 4;
102
+ optional int32 decimals = 5;
103
+ optional string iconUrl = 6;
104
+ optional bool isActive = 7;
105
+ optional string totalSupply = 8;
106
+ optional string description = 9;
107
+ string volume = 10;
108
+ string txs = 11;
109
+ string currentPrice = 12;
110
+ string oldPrice = 13;
111
+ string score = 14;
112
+ }
113
+
74
114
  // Request messages matching TypeScript interfaces
75
115
  message GetTrendingPoolsRequest {
76
116
  int32 label = 1; // 5 | 60 | 360 | 1440
@@ -82,6 +122,7 @@ message GetNewPoolsRequest {
82
122
 
83
123
  message GetPoolRequest {
84
124
  string id = 1;
125
+ int32 label = 2; // 5 | 60 | 360 | 1440
85
126
  }
86
127
 
87
128
  message GetCandleChartRequest {
@@ -99,6 +140,14 @@ message GetLastSwapOrderRequest {
99
140
  optional int32 page = 5;
100
141
  }
101
142
 
143
+ message GetTrendingTokensRequest {
144
+ int32 label = 1; // 5 | 60 | 360 | 1440
145
+ }
146
+
147
+ message GetTopVolumeTokensRequest {
148
+ int32 label = 1; // 5 | 60 | 360 | 1440
149
+ }
150
+
102
151
  // Response messages matching TypeScript interfaces with BaseResponse structure
103
152
  message GetTrendingPoolsResponse {
104
153
  bool success = 1;
@@ -115,7 +164,7 @@ message GetNewPoolsResponse {
115
164
  message GetPoolResponse {
116
165
  bool success = 1;
117
166
  string message = 2;
118
- optional PoolData data = 3; // null in TypeScript becomes optional in proto
167
+ optional PoolDataDetail data = 3; // Updated to use PoolDataDetail instead of PoolData
119
168
  }
120
169
 
121
170
  message GetCandleChartResponse {
@@ -128,4 +177,16 @@ message GetLastSwapOrderResponse {
128
177
  bool success = 1;
129
178
  string message = 2;
130
179
  repeated SwapOrderData data = 3;
180
+ }
181
+
182
+ message GetTrendingTokensResponse {
183
+ bool success = 1;
184
+ string message = 2;
185
+ repeated TrendingTokenData data = 3;
186
+ }
187
+
188
+ message GetTopVolumeTokensResponse {
189
+ bool success = 1;
190
+ string message = 2;
191
+ repeated TrendingTokenData data = 3;
131
192
  }