@sui-tracker/shared 1.0.62 → 1.0.64

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,5 +1,5 @@
1
1
  import { ClientGrpc } from "@nestjs/microservices";
2
- import { IGetTopHoldersRequest, IGetTopHoldersResponse, IGetPortfolioRequest, IGetPortfolioResponse, IGetTokenBalanceRequest, IGetTokenBalanceResponse, IGetTotalHolderOfTokenRequest, IGetTotalHolderOfTokenResponse, IGetBubbleMapDataRequest, IGetBubbleMapDataResponse, IGetTokenTransfersResponse, IGetTokenTransfersRequest } from "../interfaces/sui-data-center.interface";
2
+ import { IGetTopHoldersRequest, IGetTopHoldersResponse, IGetPortfolioRequest, IGetPortfolioResponse, IGetTokenBalanceRequest, IGetTokenBalanceResponse, IGetTotalHolderOfTokenRequest, IGetTotalHolderOfTokenResponse, IGetBubbleMapDataRequest, IGetBubbleMapDataResponse, IGetTokenTransfersResponse, IGetTokenTransfersRequest, IGetBalanceOfAccountsRequest, IGetBalanceOfAccountsResponse } from "../interfaces/sui-data-center.interface";
3
3
  export declare class DataCenterGrpcService {
4
4
  private grpcClient;
5
5
  constructor(grpcClient: ClientGrpc);
@@ -9,4 +9,5 @@ export declare class DataCenterGrpcService {
9
9
  getTotalHolderOfToken(data: IGetTotalHolderOfTokenRequest): Promise<IGetTotalHolderOfTokenResponse>;
10
10
  getBubbleMapData(data: IGetBubbleMapDataRequest): Promise<IGetBubbleMapDataResponse>;
11
11
  getTokenTransfers(data: IGetTokenTransfersRequest): Promise<IGetTokenTransfersResponse>;
12
+ getBalanceOfAccounts(data: IGetBalanceOfAccountsRequest): Promise<IGetBalanceOfAccountsResponse>;
12
13
  }
@@ -96,6 +96,19 @@ let DataCenterGrpcService = class DataCenterGrpcService {
96
96
  }
97
97
  return res;
98
98
  }
99
+ async getBalanceOfAccounts(data) {
100
+ const dataCenterService = this.grpcClient.getService("DataCenterService");
101
+ const res = await new Promise((resolve, reject) => {
102
+ dataCenterService.getBalanceOfAccounts(data).subscribe({
103
+ next: (response) => resolve(response),
104
+ error: (error) => reject(error),
105
+ });
106
+ });
107
+ if (!res.success) {
108
+ throw new Error(res.message);
109
+ }
110
+ return res;
111
+ }
99
112
  };
100
113
  exports.DataCenterGrpcService = DataCenterGrpcService;
101
114
  exports.DataCenterGrpcService = DataCenterGrpcService = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"data-center-grpc.service.js","sourceRoot":"","sources":["../../../src/modules/grpc-services/data-center-grpc.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-center-grpc.service.js","sourceRoot":"","sources":["../../../src/modules/grpc-services/data-center-grpc.service.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { ClientGrpc } from "@nestjs/microservices";
2
- import { GetNewPoolsRequest, GetNewPoolsResponse, GetPoolRequest, GetPoolResponse, GetCandleChartRequest, GetCandleChartResponse, GetLastSwapOrderResponse, GetLastSwapOrderRequest, GetListPoolsRequest, GetListPoolsResponse } from "../interfaces/swap-order.interface";
2
+ import { GetNewPoolsRequest, GetNewPoolsResponse, GetPoolRequest, GetPoolResponse, GetCandleChartRequest, GetCandleChartResponse, GetLastSwapOrderResponse, GetLastSwapOrderRequest, GetListPoolsRequest, GetListPoolsResponse, GetPoolTraderStatsRequest, GetPoolTraderStatsResponse, GetTopTradersByPoolResponse, GetTopTradersByPoolRequest } from "../interfaces/swap-order.interface";
3
3
  export declare class SwapOrderGrpcService {
4
4
  private grpcClient;
5
5
  private readonly logger;
@@ -9,4 +9,6 @@ export declare class SwapOrderGrpcService {
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>;
13
+ getTopTradersByPool(data: GetTopTradersByPoolRequest): Promise<GetTopTradersByPoolResponse>;
12
14
  }
@@ -86,6 +86,32 @@ 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
+ }
102
+ async getTopTradersByPool(data) {
103
+ const swapOrderService = this.grpcClient.getService("SwapOrderService");
104
+ const res = await new Promise((resolve, reject) => {
105
+ swapOrderService.getTopTradersByPool(data).subscribe({
106
+ next: (response) => resolve(response),
107
+ error: (error) => reject(error),
108
+ });
109
+ });
110
+ if (!res.success) {
111
+ throw new Error(res.message);
112
+ }
113
+ return res;
114
+ }
89
115
  };
90
116
  exports.SwapOrderGrpcService = SwapOrderGrpcService;
91
117
  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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"}
@@ -79,6 +79,18 @@ export interface IGetTokenTransfersRequest {
79
79
  export interface IGetTokenTransfersResponse extends BaseResponse {
80
80
  data: ILink[];
81
81
  }
82
+ export interface IGetBalanceOfAccountsRequest {
83
+ tokenAddress: string;
84
+ accountAddress: string[];
85
+ }
86
+ export interface IGetBalanceOfAccountsResponse extends BaseResponse {
87
+ data: IBalanceOfAccount[];
88
+ }
89
+ export interface IBalanceOfAccount {
90
+ accountAddress: string;
91
+ balance: string;
92
+ tokenAddress: string;
93
+ }
82
94
  export interface ISuiDataCenterService {
83
95
  getTopHolders(request: IGetTopHoldersRequest): Observable<IGetTopHoldersResponse>;
84
96
  getPortfolio(request: IGetPortfolioRequest): Observable<IGetPortfolioResponse>;
@@ -86,4 +98,5 @@ export interface ISuiDataCenterService {
86
98
  getTotalHolderOfToken(request: IGetTotalHolderOfTokenRequest): Observable<IGetTotalHolderOfTokenResponse>;
87
99
  getBubbleMapData(request: IGetBubbleMapDataRequest): Observable<IGetBubbleMapDataResponse>;
88
100
  getTokenTransfers(request: IGetTokenTransfersRequest): Observable<IGetTokenTransfersResponse>;
101
+ getBalanceOfAccounts(request: IGetBalanceOfAccountsRequest): Observable<IGetBalanceOfAccountsResponse>;
89
102
  }
@@ -156,6 +156,28 @@ export interface GetTokensResponse extends BaseResponse {
156
156
  export interface GetTokensRequest {
157
157
  addresses: string[];
158
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
+ }
173
+ export interface GetTopTradersByPoolRequest {
174
+ pool: string;
175
+ limit: number;
176
+ page: number;
177
+ }
178
+ export interface GetTopTradersByPoolResponse extends BaseResponse {
179
+ data: PoolTraderStatsData[];
180
+ }
159
181
  export interface SwapOrderService {
160
182
  GetListPools(request: GetListPoolsRequest): Observable<GetListPoolsResponse>;
161
183
  getNewPools(request: GetNewPoolsRequest): Observable<GetNewPoolsResponse>;
@@ -165,4 +187,6 @@ export interface SwapOrderService {
165
187
  trendingTokens(request: GetTrendingTokensRequest): Observable<GetTrendingTokensResponse>;
166
188
  topVolumeTokens(request: GetTopVolumeTokensRequest): Observable<GetTopVolumeTokensResponse>;
167
189
  getTokens(request: GetTokensRequest): Observable<GetTokensResponse>;
190
+ getPoolTraderStats(request: GetPoolTraderStatsRequest): Observable<GetPoolTraderStatsResponse>;
191
+ getTopTradersByPool(request: GetTopTradersByPoolRequest): Observable<GetTopTradersByPoolResponse>;
168
192
  }
@@ -16,13 +16,15 @@ service DataCenterService {
16
16
  rpc GetBubbleMapData (GetBubbleMapDataRequest) returns (GetBubbleMapDataResponse);
17
17
  // Gets token transfers for specific token and holders
18
18
  rpc GetTokenTransfers (GetTokenTransfersRequest) returns (GetTokenTransfersResponse);
19
+ // Gets balance of multiple accounts for a specific token
20
+ rpc GetBalanceOfAccounts (GetBalanceOfAccountsRequest) returns (GetBalanceOfAccountsResponse);
19
21
  }
20
22
 
21
23
  // Request message for getting top holders
22
24
  message GetTopHoldersRequest {
23
25
  string tokenAddress = 1;
24
- int32 limit = 2;
25
- int32 page = 3;
26
+ optional int32 limit = 2;
27
+ optional int32 page = 3;
26
28
  }
27
29
 
28
30
  // Response message for getting top holders
@@ -36,7 +38,7 @@ message TopHolder {
36
38
  string accountAddress = 1;
37
39
  string balance = 2;
38
40
  string tokenAddress = 3;
39
- int32 rank = 4;
41
+ optional int32 rank = 4;
40
42
  }
41
43
 
42
44
  // Request message for getting portfolio
@@ -54,15 +56,15 @@ message GetPortfolioResponse {
54
56
  message PortfolioData {
55
57
  string accountAddress = 1;
56
58
  repeated PortfolioToken portfolio = 2;
57
- double totalUsdValue = 3;
59
+ optional double totalUsdValue = 3;
58
60
  }
59
61
 
60
62
  message PortfolioToken {
61
63
  string tokenAddress = 1;
62
64
  string balance = 2;
63
- string symbol = 3;
64
- int32 decimals = 4;
65
- double usdValue = 5;
65
+ optional string symbol = 3;
66
+ optional int32 decimals = 4;
67
+ optional double usdValue = 5;
66
68
  }
67
69
 
68
70
  // Request message for getting token balance
@@ -82,9 +84,9 @@ message TokenBalanceData {
82
84
  string accountAddress = 1;
83
85
  string tokenAddress = 2;
84
86
  string balance = 3;
85
- string symbol = 4;
86
- int32 decimals = 5;
87
- double usdValue = 6;
87
+ optional string symbol = 4;
88
+ optional int32 decimals = 5;
89
+ optional double usdValue = 6;
88
90
  }
89
91
 
90
92
  // Request message for getting total holders of a token
@@ -146,4 +148,24 @@ message GetTokenTransfersResponse {
146
148
  bool success = 1;
147
149
  string message = 2;
148
150
  repeated Link data = 3;
151
+ }
152
+
153
+ // Request message for getting balance of multiple accounts
154
+ message GetBalanceOfAccountsRequest {
155
+ string tokenAddress = 1;
156
+ repeated string accountAddress = 2;
157
+ }
158
+
159
+ // Response message for getting balance of multiple accounts
160
+ message GetBalanceOfAccountsResponse {
161
+ bool success = 1;
162
+ string message = 2;
163
+ repeated BalanceOfAccount data = 3;
164
+ }
165
+
166
+ // Balance of account data structure
167
+ message BalanceOfAccount {
168
+ string accountAddress = 1;
169
+ string balance = 2;
170
+ string tokenAddress = 3;
149
171
  }
@@ -12,6 +12,8 @@ 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);
16
+ rpc GetTopTradersByPool (GetTopTradersByPoolRequest) returns (GetTopTradersByPoolResponse);
15
17
  }
16
18
 
17
19
  // Token data structure matching TokenData interface
@@ -161,6 +163,27 @@ message GetTokensRequest {
161
163
  repeated string addresses = 1;
162
164
  }
163
165
 
166
+ message GetPoolTraderStatsRequest {
167
+ string pool = 1;
168
+ repeated string traders = 2;
169
+ }
170
+
171
+ message GetTopTradersByPoolRequest {
172
+ string pool = 1;
173
+ int32 limit = 2;
174
+ int32 page = 3;
175
+ }
176
+
177
+ // Pool trader stats data structure matching PoolTraderStatsData interface
178
+ message PoolTraderStatsData {
179
+ string pool = 1;
180
+ string trader = 2;
181
+ double totalTxA2b = 3;
182
+ double totalTxB2a = 4;
183
+ double totalUsdA2b = 5;
184
+ double totalUsdB2a = 6;
185
+ }
186
+
164
187
  // Response messages matching TypeScript interfaces with BaseResponse structure
165
188
  message GetListPoolsResponse {
166
189
  bool success = 1;
@@ -208,4 +231,16 @@ message GetTokensResponse {
208
231
  bool success = 1;
209
232
  string message = 2;
210
233
  repeated TokenData data = 3;
234
+ }
235
+
236
+ message GetPoolTraderStatsResponse {
237
+ bool success = 1;
238
+ string message = 2;
239
+ repeated PoolTraderStatsData data = 3;
240
+ }
241
+
242
+ message GetTopTradersByPoolResponse {
243
+ bool success = 1;
244
+ string message = 2;
245
+ repeated PoolTraderStatsData data = 3;
211
246
  }