@sui-tracker/shared 1.0.61 → 1.0.63

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.
@@ -1,12 +1,13 @@
1
1
  import { ClientGrpc } from "@nestjs/microservices";
2
- import { GetTrendingPoolsRequest, GetTrendingPoolsResponse, GetNewPoolsRequest, GetNewPoolsResponse, GetPoolRequest, GetPoolResponse, GetCandleChartRequest, GetCandleChartResponse, GetLastSwapOrderResponse, GetLastSwapOrderRequest } from "../interfaces/swap-order.interface";
2
+ import { GetNewPoolsRequest, GetNewPoolsResponse, GetPoolRequest, GetPoolResponse, GetCandleChartRequest, GetCandleChartResponse, GetLastSwapOrderResponse, GetLastSwapOrderRequest, GetListPoolsRequest, GetListPoolsResponse, GetPoolTraderStatsRequest, GetPoolTraderStatsResponse } from "../interfaces/swap-order.interface";
3
3
  export declare class SwapOrderGrpcService {
4
4
  private grpcClient;
5
5
  private readonly logger;
6
6
  constructor(grpcClient: ClientGrpc);
7
- getTrendingPools(data: GetTrendingPoolsRequest): Promise<GetTrendingPoolsResponse>;
7
+ GetListPools(data: GetListPoolsRequest): Promise<GetListPoolsResponse>;
8
8
  getNewPools(data: GetNewPoolsRequest): Promise<GetNewPoolsResponse>;
9
9
  getPool(data: GetPoolRequest): Promise<GetPoolResponse>;
10
10
  getCandleChart(data: GetCandleChartRequest): Promise<GetCandleChartResponse>;
11
11
  getLastSwapOrder(data: GetLastSwapOrderRequest): Promise<GetLastSwapOrderResponse>;
12
+ getPoolTraderStats(data: GetPoolTraderStatsRequest): Promise<GetPoolTraderStatsResponse>;
12
13
  }
@@ -20,10 +20,10 @@ let SwapOrderGrpcService = SwapOrderGrpcService_1 = class SwapOrderGrpcService {
20
20
  this.grpcClient = grpcClient;
21
21
  this.logger = new common_1.Logger(SwapOrderGrpcService_1.name);
22
22
  }
23
- async getTrendingPools(data) {
23
+ async GetListPools(data) {
24
24
  const swapOrderService = this.grpcClient.getService("SwapOrderService");
25
25
  const res = await new Promise((resolve, reject) => {
26
- swapOrderService.getTrendingPools(data).subscribe({
26
+ swapOrderService.GetListPools(data).subscribe({
27
27
  next: (response) => resolve(response),
28
28
  error: (error) => reject(error),
29
29
  });
@@ -86,6 +86,19 @@ let SwapOrderGrpcService = SwapOrderGrpcService_1 = class SwapOrderGrpcService {
86
86
  }
87
87
  return res;
88
88
  }
89
+ async getPoolTraderStats(data) {
90
+ const swapOrderService = this.grpcClient.getService("SwapOrderService");
91
+ const res = await new Promise((resolve, reject) => {
92
+ swapOrderService.getPoolTraderStats(data).subscribe({
93
+ next: (response) => resolve(response),
94
+ error: (error) => reject(error),
95
+ });
96
+ });
97
+ if (!res.success) {
98
+ throw new Error(res.message);
99
+ }
100
+ return res;
101
+ }
89
102
  };
90
103
  exports.SwapOrderGrpcService = SwapOrderGrpcService;
91
104
  exports.SwapOrderGrpcService = SwapOrderGrpcService = SwapOrderGrpcService_1 = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"swap-order-grpc.service.js","sourceRoot":"","sources":["../../../src/modules/grpc-services/swap-order-grpc.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"swap-order-grpc.service.js","sourceRoot":"","sources":["../../../src/modules/grpc-services/swap-order-grpc.service.ts"],"names":[],"mappings":"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"}
@@ -34,7 +34,8 @@ export interface PoolDataDetail {
34
34
  aIsBase: boolean;
35
35
  reserveA?: number;
36
36
  reserveB?: number;
37
- currentPrice: string;
37
+ priceA: number;
38
+ priceB: number;
38
39
  poolCreatedTime?: Date;
39
40
  dex: string;
40
41
  statsData: {
@@ -63,8 +64,9 @@ export interface CandleData {
63
64
  c: string;
64
65
  v: string;
65
66
  }
66
- export interface GetTrendingPoolsRequest {
67
- label: number;
67
+ export interface GetListPoolsRequest {
68
+ type: 'trending' | 'top-volume' | 'new-pools';
69
+ label: 5 | 60 | 360 | 1440;
68
70
  page?: number;
69
71
  limit?: number;
70
72
  }
@@ -84,7 +86,7 @@ export interface GetCandleChartRequest {
84
86
  timestamp?: string;
85
87
  type?: 'usd' | 'token';
86
88
  }
87
- export interface GetTrendingPoolsResponse extends BaseResponse {
89
+ export interface GetListPoolsResponse extends BaseResponse {
88
90
  data: PoolDataDetail[];
89
91
  }
90
92
  export interface GetNewPoolsResponse extends BaseResponse {
@@ -154,8 +156,22 @@ export interface GetTokensResponse extends BaseResponse {
154
156
  export interface GetTokensRequest {
155
157
  addresses: string[];
156
158
  }
159
+ export interface GetPoolTraderStatsRequest {
160
+ pool: string;
161
+ traders: string[];
162
+ }
163
+ export interface GetPoolTraderStatsResponse extends BaseResponse {
164
+ data: PoolTraderStatsData[];
165
+ }
166
+ export interface PoolTraderStatsData {
167
+ trader: string;
168
+ totalTxA2b: number;
169
+ totalTxB2a: number;
170
+ totalUsdA2b: number;
171
+ totalUsdB2a: number;
172
+ }
157
173
  export interface SwapOrderService {
158
- getTrendingPools(request: GetTrendingPoolsRequest): Observable<GetTrendingPoolsResponse>;
174
+ GetListPools(request: GetListPoolsRequest): Observable<GetListPoolsResponse>;
159
175
  getNewPools(request: GetNewPoolsRequest): Observable<GetNewPoolsResponse>;
160
176
  getPool(request: GetPoolRequest): Observable<GetPoolResponse>;
161
177
  getCandleChart(request: GetCandleChartRequest): Observable<GetCandleChartResponse>;
@@ -163,4 +179,5 @@ export interface SwapOrderService {
163
179
  trendingTokens(request: GetTrendingTokensRequest): Observable<GetTrendingTokensResponse>;
164
180
  topVolumeTokens(request: GetTopVolumeTokensRequest): Observable<GetTopVolumeTokensResponse>;
165
181
  getTokens(request: GetTokensRequest): Observable<GetTokensResponse>;
182
+ getPoolTraderStats(request: GetPoolTraderStatsRequest): Observable<GetPoolTraderStatsResponse>;
166
183
  }
@@ -4,7 +4,7 @@ package swap_order;
4
4
 
5
5
  // SwapOrderService defines the available RPC endpoints for swap order operations.
6
6
  service SwapOrderService {
7
- rpc GetTrendingPools (GetTrendingPoolsRequest) returns (GetTrendingPoolsResponse);
7
+ rpc GetListPools (GetListPoolsRequest) returns (GetListPoolsResponse);
8
8
  rpc GetNewPools (GetNewPoolsRequest) returns (GetNewPoolsResponse);
9
9
  rpc GetPool (GetPoolRequest) returns (GetPoolResponse);
10
10
  rpc GetCandleChart (GetCandleChartRequest) returns (GetCandleChartResponse);
@@ -12,6 +12,7 @@ service SwapOrderService {
12
12
  rpc TrendingTokens (GetTrendingTokensRequest) returns (GetTrendingTokensResponse);
13
13
  rpc TopVolumeTokens (GetTopVolumeTokensRequest) returns (GetTopVolumeTokensResponse);
14
14
  rpc GetTokens (GetTokensRequest) returns (GetTokensResponse);
15
+ rpc GetPoolTraderStats (GetPoolTraderStatsRequest) returns (GetPoolTraderStatsResponse);
15
16
  }
16
17
 
17
18
  // Token data structure matching TokenData interface
@@ -61,10 +62,11 @@ message PoolDataDetail {
61
62
  bool aIsBase = 4;
62
63
  optional double reserveA = 5;
63
64
  optional double reserveB = 6;
64
- string currentPrice = 7;
65
- string poolCreatedTime = 8;
66
- string dex = 9;
67
- StatsData statsData = 10;
65
+ double priceA = 7;
66
+ double priceB = 8;
67
+ string poolCreatedTime = 9;
68
+ string dex = 10;
69
+ StatsData statsData = 11;
68
70
  }
69
71
 
70
72
  // Candle data structure matching CandleData interface
@@ -113,10 +115,11 @@ message TrendingTokenData {
113
115
  }
114
116
 
115
117
  // Request messages matching TypeScript interfaces
116
- message GetTrendingPoolsRequest {
117
- int32 label = 1; // 5 | 60 | 360 | 1440
118
- optional int32 page = 2;
119
- optional int32 limit = 3;
118
+ message GetListPoolsRequest {
119
+ string type = 1; // 'trending' | 'top-volume' | 'new-pools'
120
+ int32 label = 2; // 5 | 60 | 360 | 1440
121
+ optional int32 page = 3;
122
+ optional int32 limit = 4;
120
123
  }
121
124
 
122
125
  message GetNewPoolsRequest {
@@ -159,8 +162,22 @@ message GetTokensRequest {
159
162
  repeated string addresses = 1;
160
163
  }
161
164
 
165
+ message GetPoolTraderStatsRequest {
166
+ string pool = 1;
167
+ repeated string traders = 2;
168
+ }
169
+
170
+ // Pool trader stats data structure matching PoolTraderStatsData interface
171
+ message PoolTraderStatsData {
172
+ string trader = 2;
173
+ double totalTxA2b = 3;
174
+ double totalTxB2a = 4;
175
+ double totalUsdA2b = 5;
176
+ double totalUsdB2a = 6;
177
+ }
178
+
162
179
  // Response messages matching TypeScript interfaces with BaseResponse structure
163
- message GetTrendingPoolsResponse {
180
+ message GetListPoolsResponse {
164
181
  bool success = 1;
165
182
  string message = 2;
166
183
  repeated PoolDataDetail data = 3;
@@ -206,4 +223,10 @@ message GetTokensResponse {
206
223
  bool success = 1;
207
224
  string message = 2;
208
225
  repeated TokenData data = 3;
226
+ }
227
+
228
+ message GetPoolTraderStatsResponse {
229
+ bool success = 1;
230
+ string message = 2;
231
+ repeated PoolTraderStatsData data = 3;
209
232
  }