@uniswap/client-data-api 0.0.277 → 0.0.279

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,7 +4,7 @@ import { FiatAmount, FiatCurrency, HistoryDuration, Launch, LaunchesOrderBy, Lau
4
4
  import { PageRequest, PageResponse } from "./common_pb.js";
5
5
  import { EarnPosition, EarnVault } from "./earn_pb.js";
6
6
  import { TimestampedValue } from "../v1/types_pb.js";
7
- import { RankedCategory, TimeSeriesPoint } from "./categories_pb.js";
7
+ import { CategoryKind, RankedCategory, RankedPoolCategory, TimeSeriesPoint } from "./categories_pb.js";
8
8
  import { RankedTokenGroup, TokenGroup, TokenGroupListFilter } from "./tokenGroups_pb.js";
9
9
  import { ProtocolVersion } from "../v1/poolTypes_pb.js";
10
10
  /**
@@ -2454,11 +2454,18 @@ export declare class ListTokensResponse extends Message<ListTokensResponse> {
2454
2454
  */
2455
2455
  export declare class ListCategoriesRequest extends Message<ListCategoriesRequest> {
2456
2456
  /**
2457
- * Chains to scope the aggregate stats and top_tokens to. Must be non-empty.
2457
+ * Chains to scope the aggregate stats and top_tokens / top_pools to. Must
2458
+ * be non-empty.
2458
2459
  *
2459
2460
  * @generated from field: repeated uint32 chain_ids = 1;
2460
2461
  */
2461
2462
  chainIds: number[];
2463
+ /**
2464
+ * Which taxonomy to list. UNSPECIFIED reads as TOKEN.
2465
+ *
2466
+ * @generated from field: data.v2.CategoryKind kind = 2;
2467
+ */
2468
+ kind: CategoryKind;
2462
2469
  constructor(data?: PartialMessage<ListCategoriesRequest>);
2463
2470
  static readonly runtime: typeof proto3;
2464
2471
  static readonly typeName = "data.v2.ListCategoriesRequest";
@@ -2473,9 +2480,17 @@ export declare class ListCategoriesRequest extends Message<ListCategoriesRequest
2473
2480
  */
2474
2481
  export declare class ListCategoriesResponse extends Message<ListCategoriesResponse> {
2475
2482
  /**
2483
+ * Set for kind TOKEN; empty for kind POOL.
2484
+ *
2476
2485
  * @generated from field: repeated data.v2.RankedCategory categories = 1;
2477
2486
  */
2478
2487
  categories: RankedCategory[];
2488
+ /**
2489
+ * Set for kind POOL; empty for kind TOKEN. One list per kind, never both.
2490
+ *
2491
+ * @generated from field: repeated data.v2.RankedPoolCategory pool_categories = 2;
2492
+ */
2493
+ poolCategories: RankedPoolCategory[];
2479
2494
  constructor(data?: PartialMessage<ListCategoriesResponse>);
2480
2495
  static readonly runtime: typeof proto3;
2481
2496
  static readonly typeName = "data.v2.ListCategoriesResponse";
@@ -2519,21 +2534,46 @@ export declare class GetCategoryRequest extends Message<GetCategoryRequest> {
2519
2534
  */
2520
2535
  export declare class GetCategoryResponse extends Message<GetCategoryResponse> {
2521
2536
  /**
2537
+ * Set for a token category id; unset for a pool category id.
2538
+ *
2522
2539
  * @generated from field: data.v2.RankedCategory category = 1;
2523
2540
  */
2524
2541
  category?: RankedCategory;
2525
2542
  /**
2526
- * Aggregate member swap volume over time. Empty unless include_charts.
2543
+ * Aggregate member swap volume over time: the members' trading volume for
2544
+ * a token category, the member pools' swap volume for a pool category.
2545
+ * Empty unless include_charts.
2527
2546
  *
2528
2547
  * @generated from field: repeated data.v2.TimeSeriesPoint volume_series = 2;
2529
2548
  */
2530
2549
  volumeSeries: TimeSeriesPoint[];
2531
2550
  /**
2532
- * Aggregate member FDV over time. Empty unless include_charts.
2551
+ * Aggregate member FDV over time. Empty unless include_charts; empty for a
2552
+ * pool category.
2533
2553
  *
2534
2554
  * @generated from field: repeated data.v2.TimeSeriesPoint fdv_series = 3;
2535
2555
  */
2536
2556
  fdvSeries: TimeSeriesPoint[];
2557
+ /**
2558
+ * Aggregate member pool TVL over time. Empty unless include_charts; empty
2559
+ * for a token category.
2560
+ *
2561
+ * @generated from field: repeated data.v2.TimeSeriesPoint tvl_series = 4;
2562
+ */
2563
+ tvlSeries: TimeSeriesPoint[];
2564
+ /**
2565
+ * Aggregate member pool LP fees over time. Empty unless include_charts;
2566
+ * empty for a token category.
2567
+ *
2568
+ * @generated from field: repeated data.v2.TimeSeriesPoint fees_series = 5;
2569
+ */
2570
+ feesSeries: TimeSeriesPoint[];
2571
+ /**
2572
+ * Set for a pool category id; unset for a token category id.
2573
+ *
2574
+ * @generated from field: data.v2.RankedPoolCategory pool_category = 6;
2575
+ */
2576
+ poolCategory?: RankedPoolCategory;
2537
2577
  constructor(data?: PartialMessage<GetCategoryResponse>);
2538
2578
  static readonly runtime: typeof proto3;
2539
2579
  static readonly typeName = "data.v2.GetCategoryResponse";
@@ -7,7 +7,7 @@ import { FiatAmount, FiatCurrency, HistoryDuration, Launch, LaunchesOrderBy, Lau
7
7
  import { PageRequest, PageResponse } from "./common_pb.js";
8
8
  import { EarnPosition, EarnVault } from "./earn_pb.js";
9
9
  import { TimestampedValue } from "../v1/types_pb.js";
10
- import { RankedCategory, TimeSeriesPoint } from "./categories_pb.js";
10
+ import { CategoryKind, RankedCategory, RankedPoolCategory, TimeSeriesPoint } from "./categories_pb.js";
11
11
  import { RankedTokenGroup, TokenGroup, TokenGroupListFilter } from "./tokenGroups_pb.js";
12
12
  import { ProtocolVersion } from "../v1/poolTypes_pb.js";
13
13
  /**
@@ -2805,11 +2805,18 @@ export class ListCategoriesRequest extends Message {
2805
2805
  constructor(data) {
2806
2806
  super();
2807
2807
  /**
2808
- * Chains to scope the aggregate stats and top_tokens to. Must be non-empty.
2808
+ * Chains to scope the aggregate stats and top_tokens / top_pools to. Must
2809
+ * be non-empty.
2809
2810
  *
2810
2811
  * @generated from field: repeated uint32 chain_ids = 1;
2811
2812
  */
2812
2813
  this.chainIds = [];
2814
+ /**
2815
+ * Which taxonomy to list. UNSPECIFIED reads as TOKEN.
2816
+ *
2817
+ * @generated from field: data.v2.CategoryKind kind = 2;
2818
+ */
2819
+ this.kind = CategoryKind.UNSPECIFIED;
2813
2820
  proto3.util.initPartial(data, this);
2814
2821
  }
2815
2822
  static fromBinary(bytes, options) {
@@ -2829,6 +2836,7 @@ ListCategoriesRequest.runtime = proto3;
2829
2836
  ListCategoriesRequest.typeName = "data.v2.ListCategoriesRequest";
2830
2837
  ListCategoriesRequest.fields = proto3.util.newFieldList(() => [
2831
2838
  { no: 1, name: "chain_ids", kind: "scalar", T: 13 /* ScalarType.UINT32 */, repeated: true },
2839
+ { no: 2, name: "kind", kind: "enum", T: proto3.getEnumType(CategoryKind) },
2832
2840
  ]);
2833
2841
  /**
2834
2842
  * @generated from message data.v2.ListCategoriesResponse
@@ -2837,9 +2845,17 @@ export class ListCategoriesResponse extends Message {
2837
2845
  constructor(data) {
2838
2846
  super();
2839
2847
  /**
2848
+ * Set for kind TOKEN; empty for kind POOL.
2849
+ *
2840
2850
  * @generated from field: repeated data.v2.RankedCategory categories = 1;
2841
2851
  */
2842
2852
  this.categories = [];
2853
+ /**
2854
+ * Set for kind POOL; empty for kind TOKEN. One list per kind, never both.
2855
+ *
2856
+ * @generated from field: repeated data.v2.RankedPoolCategory pool_categories = 2;
2857
+ */
2858
+ this.poolCategories = [];
2843
2859
  proto3.util.initPartial(data, this);
2844
2860
  }
2845
2861
  static fromBinary(bytes, options) {
@@ -2859,6 +2875,7 @@ ListCategoriesResponse.runtime = proto3;
2859
2875
  ListCategoriesResponse.typeName = "data.v2.ListCategoriesResponse";
2860
2876
  ListCategoriesResponse.fields = proto3.util.newFieldList(() => [
2861
2877
  { no: 1, name: "categories", kind: "message", T: RankedCategory, repeated: true },
2878
+ { no: 2, name: "pool_categories", kind: "message", T: RankedPoolCategory, repeated: true },
2862
2879
  ]);
2863
2880
  /**
2864
2881
  * @generated from message data.v2.GetCategoryRequest
@@ -2911,17 +2928,34 @@ export class GetCategoryResponse extends Message {
2911
2928
  constructor(data) {
2912
2929
  super();
2913
2930
  /**
2914
- * Aggregate member swap volume over time. Empty unless include_charts.
2931
+ * Aggregate member swap volume over time: the members' trading volume for
2932
+ * a token category, the member pools' swap volume for a pool category.
2933
+ * Empty unless include_charts.
2915
2934
  *
2916
2935
  * @generated from field: repeated data.v2.TimeSeriesPoint volume_series = 2;
2917
2936
  */
2918
2937
  this.volumeSeries = [];
2919
2938
  /**
2920
- * Aggregate member FDV over time. Empty unless include_charts.
2939
+ * Aggregate member FDV over time. Empty unless include_charts; empty for a
2940
+ * pool category.
2921
2941
  *
2922
2942
  * @generated from field: repeated data.v2.TimeSeriesPoint fdv_series = 3;
2923
2943
  */
2924
2944
  this.fdvSeries = [];
2945
+ /**
2946
+ * Aggregate member pool TVL over time. Empty unless include_charts; empty
2947
+ * for a token category.
2948
+ *
2949
+ * @generated from field: repeated data.v2.TimeSeriesPoint tvl_series = 4;
2950
+ */
2951
+ this.tvlSeries = [];
2952
+ /**
2953
+ * Aggregate member pool LP fees over time. Empty unless include_charts;
2954
+ * empty for a token category.
2955
+ *
2956
+ * @generated from field: repeated data.v2.TimeSeriesPoint fees_series = 5;
2957
+ */
2958
+ this.feesSeries = [];
2925
2959
  proto3.util.initPartial(data, this);
2926
2960
  }
2927
2961
  static fromBinary(bytes, options) {
@@ -2943,6 +2977,9 @@ GetCategoryResponse.fields = proto3.util.newFieldList(() => [
2943
2977
  { no: 1, name: "category", kind: "message", T: RankedCategory },
2944
2978
  { no: 2, name: "volume_series", kind: "message", T: TimeSeriesPoint, repeated: true },
2945
2979
  { no: 3, name: "fdv_series", kind: "message", T: TimeSeriesPoint, repeated: true },
2980
+ { no: 4, name: "tvl_series", kind: "message", T: TimeSeriesPoint, repeated: true },
2981
+ { no: 5, name: "fees_series", kind: "message", T: TimeSeriesPoint, repeated: true },
2982
+ { no: 6, name: "pool_category", kind: "message", T: RankedPoolCategory },
2946
2983
  ]);
2947
2984
  /**
2948
2985
  * @generated from message data.v2.ListTokenGroupsRequest
@@ -1,5 +1,6 @@
1
1
  import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf";
2
2
  import { Message, proto3 } from "@bufbuild/protobuf";
3
+ import { ProtocolVersion } from "../v1/poolTypes_pb.js";
3
4
  import { TokensSort } from "./types_pb.js";
4
5
  import { TokenGroup } from "./tokenGroups_pb.js";
5
6
  /**
@@ -29,6 +30,27 @@ export declare enum CategoryClass {
29
30
  */
30
31
  SECTOR = 3
31
32
  }
33
+ /**
34
+ * Which taxonomy a category belongs to. Ids are unique across kinds.
35
+ *
36
+ * @generated from enum data.v2.CategoryKind
37
+ */
38
+ export declare enum CategoryKind {
39
+ /**
40
+ * Read as TOKEN: a category that carries no kind is a token category.
41
+ *
42
+ * @generated from enum value: CATEGORY_KIND_UNSPECIFIED = 0;
43
+ */
44
+ UNSPECIFIED = 0,
45
+ /**
46
+ * @generated from enum value: CATEGORY_KIND_TOKEN = 1;
47
+ */
48
+ TOKEN = 1,
49
+ /**
50
+ * @generated from enum value: CATEGORY_KIND_POOL = 2;
51
+ */
52
+ POOL = 2
53
+ }
32
54
  /**
33
55
  * One member token of a category.
34
56
  *
@@ -60,6 +82,55 @@ export declare class CategoryTopToken extends Message<CategoryTopToken> {
60
82
  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CategoryTopToken;
61
83
  static equals(a: CategoryTopToken | PlainMessage<CategoryTopToken> | undefined, b: CategoryTopToken | PlainMessage<CategoryTopToken> | undefined): boolean;
62
84
  }
85
+ /**
86
+ * One member pool of a pool category: the pool twin of CategoryTopToken.
87
+ *
88
+ * @generated from message data.v2.CategoryTopPool
89
+ */
90
+ export declare class CategoryTopPool extends Message<CategoryTopPool> {
91
+ /**
92
+ * @generated from field: uint32 chain_id = 1;
93
+ */
94
+ chainId: number;
95
+ /**
96
+ * Same value as Pool.pool_id: checksummed pool address (V4: pool id hash).
97
+ *
98
+ * @generated from field: string pool_id = 2;
99
+ */
100
+ poolId: string;
101
+ /**
102
+ * @generated from field: string token0_symbol = 3;
103
+ */
104
+ token0Symbol: string;
105
+ /**
106
+ * @generated from field: string token0_logo_url = 4;
107
+ */
108
+ token0LogoUrl: string;
109
+ /**
110
+ * @generated from field: string token1_symbol = 5;
111
+ */
112
+ token1Symbol: string;
113
+ /**
114
+ * @generated from field: string token1_logo_url = 6;
115
+ */
116
+ token1LogoUrl: string;
117
+ /**
118
+ * @generated from field: pools.v1.ProtocolVersion protocol_version = 7;
119
+ */
120
+ protocolVersion: ProtocolVersion;
121
+ /**
122
+ * @generated from field: optional uint32 fee_tier = 8;
123
+ */
124
+ feeTier?: number;
125
+ constructor(data?: PartialMessage<CategoryTopPool>);
126
+ static readonly runtime: typeof proto3;
127
+ static readonly typeName = "data.v2.CategoryTopPool";
128
+ static readonly fields: FieldList;
129
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CategoryTopPool;
130
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CategoryTopPool;
131
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CategoryTopPool;
132
+ static equals(a: CategoryTopPool | PlainMessage<CategoryTopPool> | undefined, b: CategoryTopPool | PlainMessage<CategoryTopPool> | undefined): boolean;
133
+ }
63
134
  /**
64
135
  * Chain-scoped, multichain-deduped aggregates over the category's members.
65
136
  *
@@ -116,6 +187,57 @@ export declare class CategoryAggregateStats extends Message<CategoryAggregateSta
116
187
  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CategoryAggregateStats;
117
188
  static equals(a: CategoryAggregateStats | PlainMessage<CategoryAggregateStats> | undefined, b: CategoryAggregateStats | PlainMessage<CategoryAggregateStats> | undefined): boolean;
118
189
  }
190
+ /**
191
+ * Chain-scoped aggregates over a pool category's members. USD values.
192
+ *
193
+ * @generated from message data.v2.CategoryPoolAggregateStats
194
+ */
195
+ export declare class CategoryPoolAggregateStats extends Message<CategoryPoolAggregateStats> {
196
+ /**
197
+ * @generated from field: uint32 pool_count = 1;
198
+ */
199
+ poolCount: number;
200
+ /**
201
+ * @generated from field: double tvl = 2;
202
+ */
203
+ tvl: number;
204
+ /**
205
+ * @generated from field: double volume_1d = 3;
206
+ */
207
+ volume1d: number;
208
+ /**
209
+ * @generated from field: double volume_1w = 4;
210
+ */
211
+ volume1w: number;
212
+ /**
213
+ * @generated from field: double volume_1m = 5;
214
+ */
215
+ volume1m: number;
216
+ /**
217
+ * @generated from field: double fees_1d = 6;
218
+ */
219
+ fees1d: number;
220
+ /**
221
+ * @generated from field: optional double tvl_change_24h_pct = 7;
222
+ */
223
+ tvlChange24hPct?: number;
224
+ /**
225
+ * @generated from field: optional double volume_change_24h_pct = 8;
226
+ */
227
+ volumeChange24hPct?: number;
228
+ /**
229
+ * @generated from field: optional double avg_apr = 9;
230
+ */
231
+ avgApr?: number;
232
+ constructor(data?: PartialMessage<CategoryPoolAggregateStats>);
233
+ static readonly runtime: typeof proto3;
234
+ static readonly typeName = "data.v2.CategoryPoolAggregateStats";
235
+ static readonly fields: FieldList;
236
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CategoryPoolAggregateStats;
237
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CategoryPoolAggregateStats;
238
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CategoryPoolAggregateStats;
239
+ static equals(a: CategoryPoolAggregateStats | PlainMessage<CategoryPoolAggregateStats> | undefined, b: CategoryPoolAggregateStats | PlainMessage<CategoryPoolAggregateStats> | undefined): boolean;
240
+ }
119
241
  /**
120
242
  * Category identity: stable, request-independent metadata.
121
243
  *
@@ -163,11 +285,19 @@ export declare class Category extends Message<Category> {
163
285
  };
164
286
  /**
165
287
  * Sort the category page opens with, before the user picks a column.
166
- * Always set. Feed it to ListTokens / ListTokenGroups as the sort.
288
+ * Always set for a token category; feed it to ListTokens / ListTokenGroups
289
+ * as the sort. Unset for a pool category, whose page opens on 1D volume,
290
+ * highest first.
167
291
  *
168
292
  * @generated from field: data.v2.TokensSort default_sort = 9;
169
293
  */
170
294
  defaultSort?: TokensSort;
295
+ /**
296
+ * UNSPECIFIED reads as TOKEN.
297
+ *
298
+ * @generated from field: data.v2.CategoryKind kind = 10;
299
+ */
300
+ kind: CategoryKind;
171
301
  constructor(data?: PartialMessage<Category>);
172
302
  static readonly runtime: typeof proto3;
173
303
  static readonly typeName = "data.v2.Category";
@@ -212,6 +342,37 @@ export declare class RankedCategory extends Message<RankedCategory> {
212
342
  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): RankedCategory;
213
343
  static equals(a: RankedCategory | PlainMessage<RankedCategory> | undefined, b: RankedCategory | PlainMessage<RankedCategory> | undefined): boolean;
214
344
  }
345
+ /**
346
+ * A pool category plus its chain-scoped market view: the pool twin of
347
+ * RankedCategory. Served by ListCategories(kind: POOL) and by GetCategory for
348
+ * a pool category id.
349
+ *
350
+ * @generated from message data.v2.RankedPoolCategory
351
+ */
352
+ export declare class RankedPoolCategory extends Message<RankedPoolCategory> {
353
+ /**
354
+ * @generated from field: data.v2.Category category = 1;
355
+ */
356
+ category?: Category;
357
+ /**
358
+ * @generated from field: data.v2.CategoryPoolAggregateStats stats = 2;
359
+ */
360
+ stats?: CategoryPoolAggregateStats;
361
+ /**
362
+ * The members a logo pile renders, highest TVL first.
363
+ *
364
+ * @generated from field: repeated data.v2.CategoryTopPool top_pools = 3;
365
+ */
366
+ topPools: CategoryTopPool[];
367
+ constructor(data?: PartialMessage<RankedPoolCategory>);
368
+ static readonly runtime: typeof proto3;
369
+ static readonly typeName = "data.v2.RankedPoolCategory";
370
+ static readonly fields: FieldList;
371
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): RankedPoolCategory;
372
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): RankedPoolCategory;
373
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): RankedPoolCategory;
374
+ static equals(a: RankedPoolCategory | PlainMessage<RankedPoolCategory> | undefined, b: RankedPoolCategory | PlainMessage<RankedPoolCategory> | undefined): boolean;
375
+ }
215
376
  /**
216
377
  * @generated from message data.v2.TimeSeriesPoint
217
378
  */
@@ -3,6 +3,7 @@
3
3
  /* eslint-disable */
4
4
  // @ts-nocheck
5
5
  import { Message, proto3, protoInt64 } from "@bufbuild/protobuf";
6
+ import { ProtocolVersion } from "../v1/poolTypes_pb.js";
6
7
  import { TokensSort } from "./types_pb.js";
7
8
  import { TokenGroup } from "./tokenGroups_pb.js";
8
9
  /**
@@ -40,6 +41,34 @@ proto3.util.setEnumType(CategoryClass, "data.v2.CategoryClass", [
40
41
  { no: 2, name: "CATEGORY_CLASS_ASSET" },
41
42
  { no: 3, name: "CATEGORY_CLASS_SECTOR" },
42
43
  ]);
44
+ /**
45
+ * Which taxonomy a category belongs to. Ids are unique across kinds.
46
+ *
47
+ * @generated from enum data.v2.CategoryKind
48
+ */
49
+ export var CategoryKind;
50
+ (function (CategoryKind) {
51
+ /**
52
+ * Read as TOKEN: a category that carries no kind is a token category.
53
+ *
54
+ * @generated from enum value: CATEGORY_KIND_UNSPECIFIED = 0;
55
+ */
56
+ CategoryKind[CategoryKind["UNSPECIFIED"] = 0] = "UNSPECIFIED";
57
+ /**
58
+ * @generated from enum value: CATEGORY_KIND_TOKEN = 1;
59
+ */
60
+ CategoryKind[CategoryKind["TOKEN"] = 1] = "TOKEN";
61
+ /**
62
+ * @generated from enum value: CATEGORY_KIND_POOL = 2;
63
+ */
64
+ CategoryKind[CategoryKind["POOL"] = 2] = "POOL";
65
+ })(CategoryKind || (CategoryKind = {}));
66
+ // Retrieve enum metadata with: proto3.getEnumType(CategoryKind)
67
+ proto3.util.setEnumType(CategoryKind, "data.v2.CategoryKind", [
68
+ { no: 0, name: "CATEGORY_KIND_UNSPECIFIED" },
69
+ { no: 1, name: "CATEGORY_KIND_TOKEN" },
70
+ { no: 2, name: "CATEGORY_KIND_POOL" },
71
+ ]);
43
72
  /**
44
73
  * One member token of a category.
45
74
  *
@@ -87,6 +116,71 @@ CategoryTopToken.fields = proto3.util.newFieldList(() => [
87
116
  { no: 3, name: "symbol", kind: "scalar", T: 9 /* ScalarType.STRING */ },
88
117
  { no: 4, name: "logo_url", kind: "scalar", T: 9 /* ScalarType.STRING */ },
89
118
  ]);
119
+ /**
120
+ * One member pool of a pool category: the pool twin of CategoryTopToken.
121
+ *
122
+ * @generated from message data.v2.CategoryTopPool
123
+ */
124
+ export class CategoryTopPool extends Message {
125
+ constructor(data) {
126
+ super();
127
+ /**
128
+ * @generated from field: uint32 chain_id = 1;
129
+ */
130
+ this.chainId = 0;
131
+ /**
132
+ * Same value as Pool.pool_id: checksummed pool address (V4: pool id hash).
133
+ *
134
+ * @generated from field: string pool_id = 2;
135
+ */
136
+ this.poolId = "";
137
+ /**
138
+ * @generated from field: string token0_symbol = 3;
139
+ */
140
+ this.token0Symbol = "";
141
+ /**
142
+ * @generated from field: string token0_logo_url = 4;
143
+ */
144
+ this.token0LogoUrl = "";
145
+ /**
146
+ * @generated from field: string token1_symbol = 5;
147
+ */
148
+ this.token1Symbol = "";
149
+ /**
150
+ * @generated from field: string token1_logo_url = 6;
151
+ */
152
+ this.token1LogoUrl = "";
153
+ /**
154
+ * @generated from field: pools.v1.ProtocolVersion protocol_version = 7;
155
+ */
156
+ this.protocolVersion = ProtocolVersion.UNSPECIFIED;
157
+ proto3.util.initPartial(data, this);
158
+ }
159
+ static fromBinary(bytes, options) {
160
+ return new CategoryTopPool().fromBinary(bytes, options);
161
+ }
162
+ static fromJson(jsonValue, options) {
163
+ return new CategoryTopPool().fromJson(jsonValue, options);
164
+ }
165
+ static fromJsonString(jsonString, options) {
166
+ return new CategoryTopPool().fromJsonString(jsonString, options);
167
+ }
168
+ static equals(a, b) {
169
+ return proto3.util.equals(CategoryTopPool, a, b);
170
+ }
171
+ }
172
+ CategoryTopPool.runtime = proto3;
173
+ CategoryTopPool.typeName = "data.v2.CategoryTopPool";
174
+ CategoryTopPool.fields = proto3.util.newFieldList(() => [
175
+ { no: 1, name: "chain_id", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
176
+ { no: 2, name: "pool_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
177
+ { no: 3, name: "token0_symbol", kind: "scalar", T: 9 /* ScalarType.STRING */ },
178
+ { no: 4, name: "token0_logo_url", kind: "scalar", T: 9 /* ScalarType.STRING */ },
179
+ { no: 5, name: "token1_symbol", kind: "scalar", T: 9 /* ScalarType.STRING */ },
180
+ { no: 6, name: "token1_logo_url", kind: "scalar", T: 9 /* ScalarType.STRING */ },
181
+ { no: 7, name: "protocol_version", kind: "enum", T: proto3.getEnumType(ProtocolVersion) },
182
+ { no: 8, name: "fee_tier", kind: "scalar", T: 13 /* ScalarType.UINT32 */, opt: true },
183
+ ]);
90
184
  /**
91
185
  * Chain-scoped, multichain-deduped aggregates over the category's members.
92
186
  *
@@ -156,6 +250,66 @@ CategoryAggregateStats.fields = proto3.util.newFieldList(() => [
156
250
  { no: 8, name: "fdv", kind: "scalar", T: 1 /* ScalarType.DOUBLE */, opt: true },
157
251
  { no: 9, name: "market_cap", kind: "scalar", T: 1 /* ScalarType.DOUBLE */, opt: true },
158
252
  ]);
253
+ /**
254
+ * Chain-scoped aggregates over a pool category's members. USD values.
255
+ *
256
+ * @generated from message data.v2.CategoryPoolAggregateStats
257
+ */
258
+ export class CategoryPoolAggregateStats extends Message {
259
+ constructor(data) {
260
+ super();
261
+ /**
262
+ * @generated from field: uint32 pool_count = 1;
263
+ */
264
+ this.poolCount = 0;
265
+ /**
266
+ * @generated from field: double tvl = 2;
267
+ */
268
+ this.tvl = 0;
269
+ /**
270
+ * @generated from field: double volume_1d = 3;
271
+ */
272
+ this.volume1d = 0;
273
+ /**
274
+ * @generated from field: double volume_1w = 4;
275
+ */
276
+ this.volume1w = 0;
277
+ /**
278
+ * @generated from field: double volume_1m = 5;
279
+ */
280
+ this.volume1m = 0;
281
+ /**
282
+ * @generated from field: double fees_1d = 6;
283
+ */
284
+ this.fees1d = 0;
285
+ proto3.util.initPartial(data, this);
286
+ }
287
+ static fromBinary(bytes, options) {
288
+ return new CategoryPoolAggregateStats().fromBinary(bytes, options);
289
+ }
290
+ static fromJson(jsonValue, options) {
291
+ return new CategoryPoolAggregateStats().fromJson(jsonValue, options);
292
+ }
293
+ static fromJsonString(jsonString, options) {
294
+ return new CategoryPoolAggregateStats().fromJsonString(jsonString, options);
295
+ }
296
+ static equals(a, b) {
297
+ return proto3.util.equals(CategoryPoolAggregateStats, a, b);
298
+ }
299
+ }
300
+ CategoryPoolAggregateStats.runtime = proto3;
301
+ CategoryPoolAggregateStats.typeName = "data.v2.CategoryPoolAggregateStats";
302
+ CategoryPoolAggregateStats.fields = proto3.util.newFieldList(() => [
303
+ { no: 1, name: "pool_count", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
304
+ { no: 2, name: "tvl", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
305
+ { no: 3, name: "volume_1d", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
306
+ { no: 4, name: "volume_1w", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
307
+ { no: 5, name: "volume_1m", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
308
+ { no: 6, name: "fees_1d", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
309
+ { no: 7, name: "tvl_change_24h_pct", kind: "scalar", T: 1 /* ScalarType.DOUBLE */, opt: true },
310
+ { no: 8, name: "volume_change_24h_pct", kind: "scalar", T: 1 /* ScalarType.DOUBLE */, opt: true },
311
+ { no: 9, name: "avg_apr", kind: "scalar", T: 1 /* ScalarType.DOUBLE */, opt: true },
312
+ ]);
159
313
  /**
160
314
  * Category identity: stable, request-independent metadata.
161
315
  *
@@ -199,6 +353,12 @@ export class Category extends Message {
199
353
  * @generated from field: map<string, string> description_translations = 8;
200
354
  */
201
355
  this.descriptionTranslations = {};
356
+ /**
357
+ * UNSPECIFIED reads as TOKEN.
358
+ *
359
+ * @generated from field: data.v2.CategoryKind kind = 10;
360
+ */
361
+ this.kind = CategoryKind.UNSPECIFIED;
202
362
  proto3.util.initPartial(data, this);
203
363
  }
204
364
  static fromBinary(bytes, options) {
@@ -225,6 +385,7 @@ Category.fields = proto3.util.newFieldList(() => [
225
385
  { no: 7, name: "name_translations", kind: "map", K: 9 /* ScalarType.STRING */, V: { kind: "scalar", T: 9 /* ScalarType.STRING */ } },
226
386
  { no: 8, name: "description_translations", kind: "map", K: 9 /* ScalarType.STRING */, V: { kind: "scalar", T: 9 /* ScalarType.STRING */ } },
227
387
  { no: 9, name: "default_sort", kind: "message", T: TokensSort },
388
+ { no: 10, name: "kind", kind: "enum", T: proto3.getEnumType(CategoryKind) },
228
389
  ]);
229
390
  /**
230
391
  * A category plus its chain-scoped market view (mirrors RankedPool /
@@ -269,6 +430,44 @@ RankedCategory.fields = proto3.util.newFieldList(() => [
269
430
  { no: 3, name: "top_tokens", kind: "message", T: CategoryTopToken, repeated: true },
270
431
  { no: 4, name: "top_groups", kind: "message", T: TokenGroup, repeated: true },
271
432
  ]);
433
+ /**
434
+ * A pool category plus its chain-scoped market view: the pool twin of
435
+ * RankedCategory. Served by ListCategories(kind: POOL) and by GetCategory for
436
+ * a pool category id.
437
+ *
438
+ * @generated from message data.v2.RankedPoolCategory
439
+ */
440
+ export class RankedPoolCategory extends Message {
441
+ constructor(data) {
442
+ super();
443
+ /**
444
+ * The members a logo pile renders, highest TVL first.
445
+ *
446
+ * @generated from field: repeated data.v2.CategoryTopPool top_pools = 3;
447
+ */
448
+ this.topPools = [];
449
+ proto3.util.initPartial(data, this);
450
+ }
451
+ static fromBinary(bytes, options) {
452
+ return new RankedPoolCategory().fromBinary(bytes, options);
453
+ }
454
+ static fromJson(jsonValue, options) {
455
+ return new RankedPoolCategory().fromJson(jsonValue, options);
456
+ }
457
+ static fromJsonString(jsonString, options) {
458
+ return new RankedPoolCategory().fromJsonString(jsonString, options);
459
+ }
460
+ static equals(a, b) {
461
+ return proto3.util.equals(RankedPoolCategory, a, b);
462
+ }
463
+ }
464
+ RankedPoolCategory.runtime = proto3;
465
+ RankedPoolCategory.typeName = "data.v2.RankedPoolCategory";
466
+ RankedPoolCategory.fields = proto3.util.newFieldList(() => [
467
+ { no: 1, name: "category", kind: "message", T: Category },
468
+ { no: 2, name: "stats", kind: "message", T: CategoryPoolAggregateStats },
469
+ { no: 3, name: "top_pools", kind: "message", T: CategoryTopPool, repeated: true },
470
+ ]);
272
471
  /**
273
472
  * @generated from message data.v2.TimeSeriesPoint
274
473
  */
@@ -33,7 +33,14 @@ export declare enum SearchType {
33
33
  *
34
34
  * @generated from enum value: SEARCH_TYPE_TOKEN_GROUP = 5;
35
35
  */
36
- TOKEN_GROUP = 5
36
+ TOKEN_GROUP = 5,
37
+ /**
38
+ * Pool categories whose name has a word that starts with the query.
39
+ * CATEGORY stays token-only.
40
+ *
41
+ * @generated from enum value: SEARCH_TYPE_POOL_CATEGORY = 6;
42
+ */
43
+ POOL_CATEGORY = 6
37
44
  }
38
45
  /**
39
46
  * Where an auction is in its life, decided server-side from the chain head against start_block/end_block and, once ended, from the raise outcome.
@@ -156,6 +163,13 @@ export declare class SearchResponse extends Message<SearchResponse> {
156
163
  * @generated from field: repeated data.v2.RankedTokenGroup token_groups = 6;
157
164
  */
158
165
  tokenGroups: RankedTokenGroup[];
166
+ /**
167
+ * Matching pool-category ids; hydrate display data from
168
+ * ListCategories(kind: POOL). Only with SEARCH_TYPE_POOL_CATEGORY.
169
+ *
170
+ * @generated from field: repeated string pool_category_ids = 7;
171
+ */
172
+ poolCategoryIds: string[];
159
173
  constructor(data?: PartialMessage<SearchResponse>);
160
174
  static readonly runtime: typeof proto3;
161
175
  static readonly typeName = "data.v2.SearchResponse";
@@ -38,6 +38,13 @@ export var SearchType;
38
38
  * @generated from enum value: SEARCH_TYPE_TOKEN_GROUP = 5;
39
39
  */
40
40
  SearchType[SearchType["TOKEN_GROUP"] = 5] = "TOKEN_GROUP";
41
+ /**
42
+ * Pool categories whose name has a word that starts with the query.
43
+ * CATEGORY stays token-only.
44
+ *
45
+ * @generated from enum value: SEARCH_TYPE_POOL_CATEGORY = 6;
46
+ */
47
+ SearchType[SearchType["POOL_CATEGORY"] = 6] = "POOL_CATEGORY";
41
48
  })(SearchType || (SearchType = {}));
42
49
  // Retrieve enum metadata with: proto3.getEnumType(SearchType)
43
50
  proto3.util.setEnumType(SearchType, "data.v2.SearchType", [
@@ -47,6 +54,7 @@ proto3.util.setEnumType(SearchType, "data.v2.SearchType", [
47
54
  { no: 3, name: "SEARCH_TYPE_AUCTION" },
48
55
  { no: 4, name: "SEARCH_TYPE_CATEGORY" },
49
56
  { no: 5, name: "SEARCH_TYPE_TOKEN_GROUP" },
57
+ { no: 6, name: "SEARCH_TYPE_POOL_CATEGORY" },
50
58
  ]);
51
59
  /**
52
60
  * Where an auction is in its life, decided server-side from the chain head against start_block/end_block and, once ended, from the raise outcome.
@@ -190,6 +198,13 @@ export class SearchResponse extends Message {
190
198
  * @generated from field: repeated data.v2.RankedTokenGroup token_groups = 6;
191
199
  */
192
200
  this.tokenGroups = [];
201
+ /**
202
+ * Matching pool-category ids; hydrate display data from
203
+ * ListCategories(kind: POOL). Only with SEARCH_TYPE_POOL_CATEGORY.
204
+ *
205
+ * @generated from field: repeated string pool_category_ids = 7;
206
+ */
207
+ this.poolCategoryIds = [];
193
208
  proto3.util.initPartial(data, this);
194
209
  }
195
210
  static fromBinary(bytes, options) {
@@ -214,6 +229,7 @@ SearchResponse.fields = proto3.util.newFieldList(() => [
214
229
  { no: 4, name: "auctions", kind: "message", T: SearchAuction, repeated: true },
215
230
  { no: 5, name: "category_ids", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
216
231
  { no: 6, name: "token_groups", kind: "message", T: RankedTokenGroup, repeated: true },
232
+ { no: 7, name: "pool_category_ids", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
217
233
  ]);
218
234
  /**
219
235
  * @generated from message data.v2.SearchAuction
@@ -941,6 +941,14 @@ export declare class TokenProject extends Message<TokenProject> {
941
941
  * @generated from field: optional string logo_url = 4;
942
942
  */
943
943
  logoUrl?: string;
944
+ /**
945
+ * Curated display color per theme, used as-is in place of a color extracted
946
+ * from the logo. Unset for almost every token: clients then fall back to
947
+ * extraction.
948
+ *
949
+ * @generated from field: optional data.v2.ThemedColors colors = 6;
950
+ */
951
+ colors?: ThemedColors;
944
952
  constructor(data?: PartialMessage<TokenProject>);
945
953
  static readonly runtime: typeof proto3;
946
954
  static readonly typeName = "data.v2.TokenProject";
@@ -950,6 +958,31 @@ export declare class TokenProject extends Message<TokenProject> {
950
958
  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): TokenProject;
951
959
  static equals(a: TokenProject | PlainMessage<TokenProject> | undefined, b: TokenProject | PlainMessage<TokenProject> | undefined): boolean;
952
960
  }
961
+ /**
962
+ * One color per theme, each an uppercase "#RRGGBB" hex string. The two are
963
+ * equal unless the logo needs a different color on dark backgrounds (e.g. a
964
+ * black logo shown in white).
965
+ *
966
+ * @generated from message data.v2.ThemedColors
967
+ */
968
+ export declare class ThemedColors extends Message<ThemedColors> {
969
+ /**
970
+ * @generated from field: string light = 1;
971
+ */
972
+ light: string;
973
+ /**
974
+ * @generated from field: string dark = 2;
975
+ */
976
+ dark: string;
977
+ constructor(data?: PartialMessage<ThemedColors>);
978
+ static readonly runtime: typeof proto3;
979
+ static readonly typeName = "data.v2.ThemedColors";
980
+ static readonly fields: FieldList;
981
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ThemedColors;
982
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ThemedColors;
983
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ThemedColors;
984
+ static equals(a: ThemedColors | PlainMessage<ThemedColors> | undefined, b: ThemedColors | PlainMessage<ThemedColors> | undefined): boolean;
985
+ }
953
986
  /**
954
987
  * @generated from message data.v2.TokenMultichain
955
988
  */
@@ -1384,6 +1417,13 @@ export declare class Pool extends Message<Pool> {
1384
1417
  * @generated from field: optional uint32 current_lp_fee = 15;
1385
1418
  */
1386
1419
  currentLpFee?: number;
1420
+ /**
1421
+ * Pool-category ids this pool belongs to, ordered by display precedence:
1422
+ * the first id is the preferred tag. Mirrors Token.category_ids.
1423
+ *
1424
+ * @generated from field: repeated string category_ids = 16;
1425
+ */
1426
+ categoryIds: string[];
1387
1427
  constructor(data?: PartialMessage<Pool>);
1388
1428
  static readonly runtime: typeof proto3;
1389
1429
  static readonly typeName = "data.v2.Pool";
@@ -1558,6 +1598,14 @@ export declare class PoolListFilter extends Message<PoolListFilter> {
1558
1598
  * @generated from field: optional string search_query = 10;
1559
1599
  */
1560
1600
  searchQuery?: string;
1601
+ /**
1602
+ * Serve only members of these pool categories: OR within this list, AND
1603
+ * with the other filter fields. An unknown id, a token-category id
1604
+ * included, is rejected.
1605
+ *
1606
+ * @generated from field: repeated string category_ids = 12;
1607
+ */
1608
+ categoryIds: string[];
1561
1609
  constructor(data?: PartialMessage<PoolListFilter>);
1562
1610
  static readonly runtime: typeof proto3;
1563
1611
  static readonly typeName = "data.v2.PoolListFilter";
@@ -1057,6 +1057,46 @@ TokenProject.fields = proto3.util.newFieldList(() => [
1057
1057
  { no: 2, name: "homepage_url", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1058
1058
  { no: 3, name: "twitter_name", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1059
1059
  { no: 4, name: "logo_url", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1060
+ { no: 6, name: "colors", kind: "message", T: ThemedColors, opt: true },
1061
+ ]);
1062
+ /**
1063
+ * One color per theme, each an uppercase "#RRGGBB" hex string. The two are
1064
+ * equal unless the logo needs a different color on dark backgrounds (e.g. a
1065
+ * black logo shown in white).
1066
+ *
1067
+ * @generated from message data.v2.ThemedColors
1068
+ */
1069
+ export class ThemedColors extends Message {
1070
+ constructor(data) {
1071
+ super();
1072
+ /**
1073
+ * @generated from field: string light = 1;
1074
+ */
1075
+ this.light = "";
1076
+ /**
1077
+ * @generated from field: string dark = 2;
1078
+ */
1079
+ this.dark = "";
1080
+ proto3.util.initPartial(data, this);
1081
+ }
1082
+ static fromBinary(bytes, options) {
1083
+ return new ThemedColors().fromBinary(bytes, options);
1084
+ }
1085
+ static fromJson(jsonValue, options) {
1086
+ return new ThemedColors().fromJson(jsonValue, options);
1087
+ }
1088
+ static fromJsonString(jsonString, options) {
1089
+ return new ThemedColors().fromJsonString(jsonString, options);
1090
+ }
1091
+ static equals(a, b) {
1092
+ return proto3.util.equals(ThemedColors, a, b);
1093
+ }
1094
+ }
1095
+ ThemedColors.runtime = proto3;
1096
+ ThemedColors.typeName = "data.v2.ThemedColors";
1097
+ ThemedColors.fields = proto3.util.newFieldList(() => [
1098
+ { no: 1, name: "light", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1099
+ { no: 2, name: "dark", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1060
1100
  ]);
1061
1101
  /**
1062
1102
  * @generated from message data.v2.TokenMultichain
@@ -1452,6 +1492,13 @@ export class Pool extends Message {
1452
1492
  * @generated from field: bool is_dynamic_fee = 8;
1453
1493
  */
1454
1494
  this.isDynamicFee = false;
1495
+ /**
1496
+ * Pool-category ids this pool belongs to, ordered by display precedence:
1497
+ * the first id is the preferred tag. Mirrors Token.category_ids.
1498
+ *
1499
+ * @generated from field: repeated string category_ids = 16;
1500
+ */
1501
+ this.categoryIds = [];
1455
1502
  proto3.util.initPartial(data, this);
1456
1503
  }
1457
1504
  static fromBinary(bytes, options) {
@@ -1485,6 +1532,7 @@ Pool.fields = proto3.util.newFieldList(() => [
1485
1532
  { no: 13, name: "protocol_fee", kind: "scalar", T: 13 /* ScalarType.UINT32 */, opt: true },
1486
1533
  { no: 14, name: "effective_fee", kind: "scalar", T: 13 /* ScalarType.UINT32 */, opt: true },
1487
1534
  { no: 15, name: "current_lp_fee", kind: "scalar", T: 13 /* ScalarType.UINT32 */, opt: true },
1535
+ { no: 16, name: "category_ids", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
1488
1536
  ]);
1489
1537
  /**
1490
1538
  * @generated from message data.v2.PoolTokenFilter
@@ -1599,6 +1647,14 @@ export class PoolListFilter extends Message {
1599
1647
  * @generated from field: repeated uint32 fee_tiers = 5;
1600
1648
  */
1601
1649
  this.feeTiers = [];
1650
+ /**
1651
+ * Serve only members of these pool categories: OR within this list, AND
1652
+ * with the other filter fields. An unknown id, a token-category id
1653
+ * included, is rejected.
1654
+ *
1655
+ * @generated from field: repeated string category_ids = 12;
1656
+ */
1657
+ this.categoryIds = [];
1602
1658
  proto3.util.initPartial(data, this);
1603
1659
  }
1604
1660
  static fromBinary(bytes, options) {
@@ -1627,6 +1683,7 @@ PoolListFilter.fields = proto3.util.newFieldList(() => [
1627
1683
  { no: 8, name: "apply_top_level_filters", kind: "scalar", T: 8 /* ScalarType.BOOL */, opt: true },
1628
1684
  { no: 9, name: "rewards_only", kind: "scalar", T: 8 /* ScalarType.BOOL */, opt: true },
1629
1685
  { no: 10, name: "search_query", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1686
+ { no: 12, name: "category_ids", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
1630
1687
  ]);
1631
1688
  /**
1632
1689
  * Returned by ListPools — wraps a Pool with its ranking stats.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uniswap/client-data-api",
3
- "version": "0.0.277",
3
+ "version": "0.0.279",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },