@uniswap/client-data-api 0.0.198 → 0.0.200

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.
@@ -604,6 +604,10 @@ export declare class TokenMetadata extends Message<TokenMetadata> {
604
604
  * @generated from field: bool is_bridged = 7;
605
605
  */
606
606
  isBridged: boolean;
607
+ /**
608
+ * @generated from field: repeated string category_ids = 8;
609
+ */
610
+ categoryIds: string[];
607
611
  constructor(data?: PartialMessage<TokenMetadata>);
608
612
  static readonly runtime: typeof proto3;
609
613
  static readonly typeName = "data.v1.TokenMetadata";
@@ -772,6 +772,10 @@ export class TokenMetadata extends Message {
772
772
  * @generated from field: bool is_bridged = 7;
773
773
  */
774
774
  this.isBridged = false;
775
+ /**
776
+ * @generated from field: repeated string category_ids = 8;
777
+ */
778
+ this.categoryIds = [];
775
779
  proto3.util.initPartial(data, this);
776
780
  }
777
781
  static fromBinary(bytes, options) {
@@ -797,6 +801,7 @@ TokenMetadata.fields = proto3.util.newFieldList(() => [
797
801
  { no: 5, name: "safety_level", kind: "enum", T: proto3.getEnumType(SafetyLevel) },
798
802
  { no: 6, name: "spam_code", kind: "enum", T: proto3.getEnumType(SpamCode) },
799
803
  { no: 7, name: "is_bridged", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
804
+ { no: 8, name: "category_ids", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
800
805
  ]);
801
806
  /**
802
807
  * @generated from message data.v1.ProtectionInfo
@@ -1,5 +1,5 @@
1
1
  import { MethodKind } from "@bufbuild/protobuf";
2
- import { CheckLaunchNameTickerRequest, CheckLaunchNameTickerResponse, ConvertFiatRequest, ConvertFiatResponse, GetEarnPositionRequest, GetEarnPositionResponse, GetLaunchActivityStatsRequest, GetLaunchActivityStatsResponse, GetLaunchClaimsRequest, GetLaunchClaimsResponse, GetLaunchCreatorFeesRequest, GetLaunchCreatorFeesResponse, GetLaunchHoldersRequest, GetLaunchHoldersResponse, GetLiquidityForTokensRequest, GetLiquidityForTokensResponse, GetTokenHistoryOHLCRequest, GetTokenHistoryOHLCResponse, GetTokenHistoryPriceRequest, GetTokenHistoryPriceResponse, GetTokenHistoryTVLRequest, GetTokenHistoryTVLResponse, GetTokenHistoryVolumeRequest, GetTokenHistoryVolumeResponse, GetTokenMarketsMultiChainRequest, GetTokenMarketsMultiChainResponse, GetTokenMarketsRequest, GetTokenMarketsResponse, GetTokenMultiChainRequest, GetTokenMultiChainResponse, GetTokenRequest, GetTokenResponse, GetTokensMultiChainRequest, GetTokensMultiChainResponse, GetTokensRequest, GetTokensResponse, GetTokenTopTradersRequest, GetTokenTopTradersResponse, GetTokenTradesRequest, GetTokenTradesResponse, GetWalletNftsRequest, GetWalletNftsResponse, ListEarnPositionsRequest, ListEarnPositionsResponse, ListEarnVaultsRequest, ListEarnVaultsResponse, ListLaunchesRequest, ListLaunchesResponse, ListLaunchpadsRequest, ListLaunchpadsResponse, ListPoolsRequest, ListPoolsResponse, ListTokensRequest, ListTokensResponse, ListTransactionsRequest, ListTransactionsResponse } from "./api_pb.js";
2
+ import { CheckLaunchNameTickerRequest, CheckLaunchNameTickerResponse, ConvertFiatRequest, ConvertFiatResponse, GetCategoryRequest, GetCategoryResponse, GetEarnPositionRequest, GetEarnPositionResponse, GetLaunchActivityStatsRequest, GetLaunchActivityStatsResponse, GetLaunchClaimsRequest, GetLaunchClaimsResponse, GetLaunchCreatorFeesRequest, GetLaunchCreatorFeesResponse, GetLaunchHoldersRequest, GetLaunchHoldersResponse, GetLiquidityForTokensRequest, GetLiquidityForTokensResponse, GetTokenHistoryOHLCRequest, GetTokenHistoryOHLCResponse, GetTokenHistoryPriceRequest, GetTokenHistoryPriceResponse, GetTokenHistoryTVLRequest, GetTokenHistoryTVLResponse, GetTokenHistoryVolumeRequest, GetTokenHistoryVolumeResponse, GetTokenMarketsMultiChainRequest, GetTokenMarketsMultiChainResponse, GetTokenMarketsRequest, GetTokenMarketsResponse, GetTokenMultiChainRequest, GetTokenMultiChainResponse, GetTokenRequest, GetTokenResponse, GetTokensMultiChainRequest, GetTokensMultiChainResponse, GetTokensRequest, GetTokensResponse, GetTokenTopTradersRequest, GetTokenTopTradersResponse, GetTokenTradesRequest, GetTokenTradesResponse, GetWalletNftsRequest, GetWalletNftsResponse, ListCategoriesRequest, ListCategoriesResponse, ListEarnPositionsRequest, ListEarnPositionsResponse, ListEarnVaultsRequest, ListEarnVaultsResponse, ListLaunchesRequest, ListLaunchesResponse, ListLaunchpadsRequest, ListLaunchpadsResponse, ListPoolsRequest, ListPoolsResponse, ListTokensRequest, ListTokensResponse, ListTransactionsRequest, ListTransactionsResponse } from "./api_pb.js";
3
3
  /**
4
4
  * @generated from rpc data.v2.DataApiService.GetToken
5
5
  */
@@ -364,3 +364,29 @@ export declare const getLiquidityForTokens: {
364
364
  readonly typeName: "data.v2.DataApiService";
365
365
  };
366
366
  };
367
+ /**
368
+ * @generated from rpc data.v2.DataApiService.ListCategories
369
+ */
370
+ export declare const listCategories: {
371
+ readonly localName: "listCategories";
372
+ readonly name: "ListCategories";
373
+ readonly kind: MethodKind.Unary;
374
+ readonly I: typeof ListCategoriesRequest;
375
+ readonly O: typeof ListCategoriesResponse;
376
+ readonly service: {
377
+ readonly typeName: "data.v2.DataApiService";
378
+ };
379
+ };
380
+ /**
381
+ * @generated from rpc data.v2.DataApiService.GetCategory
382
+ */
383
+ export declare const getCategory: {
384
+ readonly localName: "getCategory";
385
+ readonly name: "GetCategory";
386
+ readonly kind: MethodKind.Unary;
387
+ readonly I: typeof GetCategoryRequest;
388
+ readonly O: typeof GetCategoryResponse;
389
+ readonly service: {
390
+ readonly typeName: "data.v2.DataApiService";
391
+ };
392
+ };
@@ -3,7 +3,7 @@
3
3
  /* eslint-disable */
4
4
  // @ts-nocheck
5
5
  import { MethodKind } from "@bufbuild/protobuf";
6
- import { CheckLaunchNameTickerRequest, CheckLaunchNameTickerResponse, ConvertFiatRequest, ConvertFiatResponse, GetEarnPositionRequest, GetEarnPositionResponse, GetLaunchActivityStatsRequest, GetLaunchActivityStatsResponse, GetLaunchClaimsRequest, GetLaunchClaimsResponse, GetLaunchCreatorFeesRequest, GetLaunchCreatorFeesResponse, GetLaunchHoldersRequest, GetLaunchHoldersResponse, GetLiquidityForTokensRequest, GetLiquidityForTokensResponse, GetTokenHistoryOHLCRequest, GetTokenHistoryOHLCResponse, GetTokenHistoryPriceRequest, GetTokenHistoryPriceResponse, GetTokenHistoryTVLRequest, GetTokenHistoryTVLResponse, GetTokenHistoryVolumeRequest, GetTokenHistoryVolumeResponse, GetTokenMarketsMultiChainRequest, GetTokenMarketsMultiChainResponse, GetTokenMarketsRequest, GetTokenMarketsResponse, GetTokenMultiChainRequest, GetTokenMultiChainResponse, GetTokenRequest, GetTokenResponse, GetTokensMultiChainRequest, GetTokensMultiChainResponse, GetTokensRequest, GetTokensResponse, GetTokenTopTradersRequest, GetTokenTopTradersResponse, GetTokenTradesRequest, GetTokenTradesResponse, GetWalletNftsRequest, GetWalletNftsResponse, ListEarnPositionsRequest, ListEarnPositionsResponse, ListEarnVaultsRequest, ListEarnVaultsResponse, ListLaunchesRequest, ListLaunchesResponse, ListLaunchpadsRequest, ListLaunchpadsResponse, ListPoolsRequest, ListPoolsResponse, ListTokensRequest, ListTokensResponse, ListTransactionsRequest, ListTransactionsResponse } from "./api_pb.js";
6
+ import { CheckLaunchNameTickerRequest, CheckLaunchNameTickerResponse, ConvertFiatRequest, ConvertFiatResponse, GetCategoryRequest, GetCategoryResponse, GetEarnPositionRequest, GetEarnPositionResponse, GetLaunchActivityStatsRequest, GetLaunchActivityStatsResponse, GetLaunchClaimsRequest, GetLaunchClaimsResponse, GetLaunchCreatorFeesRequest, GetLaunchCreatorFeesResponse, GetLaunchHoldersRequest, GetLaunchHoldersResponse, GetLiquidityForTokensRequest, GetLiquidityForTokensResponse, GetTokenHistoryOHLCRequest, GetTokenHistoryOHLCResponse, GetTokenHistoryPriceRequest, GetTokenHistoryPriceResponse, GetTokenHistoryTVLRequest, GetTokenHistoryTVLResponse, GetTokenHistoryVolumeRequest, GetTokenHistoryVolumeResponse, GetTokenMarketsMultiChainRequest, GetTokenMarketsMultiChainResponse, GetTokenMarketsRequest, GetTokenMarketsResponse, GetTokenMultiChainRequest, GetTokenMultiChainResponse, GetTokenRequest, GetTokenResponse, GetTokensMultiChainRequest, GetTokensMultiChainResponse, GetTokensRequest, GetTokensResponse, GetTokenTopTradersRequest, GetTokenTopTradersResponse, GetTokenTradesRequest, GetTokenTradesResponse, GetWalletNftsRequest, GetWalletNftsResponse, ListCategoriesRequest, ListCategoriesResponse, ListEarnPositionsRequest, ListEarnPositionsResponse, ListEarnVaultsRequest, ListEarnVaultsResponse, ListLaunchesRequest, ListLaunchesResponse, ListLaunchpadsRequest, ListLaunchpadsResponse, ListPoolsRequest, ListPoolsResponse, ListTokensRequest, ListTokensResponse, ListTransactionsRequest, ListTransactionsResponse } from "./api_pb.js";
7
7
  /**
8
8
  * @generated from rpc data.v2.DataApiService.GetToken
9
9
  */
@@ -368,3 +368,29 @@ export const getLiquidityForTokens = {
368
368
  typeName: "data.v2.DataApiService"
369
369
  }
370
370
  };
371
+ /**
372
+ * @generated from rpc data.v2.DataApiService.ListCategories
373
+ */
374
+ export const listCategories = {
375
+ localName: "listCategories",
376
+ name: "ListCategories",
377
+ kind: MethodKind.Unary,
378
+ I: ListCategoriesRequest,
379
+ O: ListCategoriesResponse,
380
+ service: {
381
+ typeName: "data.v2.DataApiService"
382
+ }
383
+ };
384
+ /**
385
+ * @generated from rpc data.v2.DataApiService.GetCategory
386
+ */
387
+ export const getCategory = {
388
+ localName: "getCategory",
389
+ name: "GetCategory",
390
+ kind: MethodKind.Unary,
391
+ I: GetCategoryRequest,
392
+ O: GetCategoryResponse,
393
+ service: {
394
+ typeName: "data.v2.DataApiService"
395
+ }
396
+ };
@@ -1,4 +1,4 @@
1
- import { CheckLaunchNameTickerRequest, CheckLaunchNameTickerResponse, ConvertFiatRequest, ConvertFiatResponse, GetEarnPositionRequest, GetEarnPositionResponse, GetLaunchActivityStatsRequest, GetLaunchActivityStatsResponse, GetLaunchClaimsRequest, GetLaunchClaimsResponse, GetLaunchCreatorFeesRequest, GetLaunchCreatorFeesResponse, GetLaunchHoldersRequest, GetLaunchHoldersResponse, GetLiquidityForTokensRequest, GetLiquidityForTokensResponse, GetTokenHistoryOHLCRequest, GetTokenHistoryOHLCResponse, GetTokenHistoryPriceRequest, GetTokenHistoryPriceResponse, GetTokenHistoryTVLRequest, GetTokenHistoryTVLResponse, GetTokenHistoryVolumeRequest, GetTokenHistoryVolumeResponse, GetTokenMarketsMultiChainRequest, GetTokenMarketsMultiChainResponse, GetTokenMarketsRequest, GetTokenMarketsResponse, GetTokenMultiChainRequest, GetTokenMultiChainResponse, GetTokenRequest, GetTokenResponse, GetTokensMultiChainRequest, GetTokensMultiChainResponse, GetTokensRequest, GetTokensResponse, GetTokenTopTradersRequest, GetTokenTopTradersResponse, GetTokenTradesRequest, GetTokenTradesResponse, GetWalletNftsRequest, GetWalletNftsResponse, ListEarnPositionsRequest, ListEarnPositionsResponse, ListEarnVaultsRequest, ListEarnVaultsResponse, ListLaunchesRequest, ListLaunchesResponse, ListLaunchpadsRequest, ListLaunchpadsResponse, ListPoolsRequest, ListPoolsResponse, ListTokensRequest, ListTokensResponse, ListTransactionsRequest, ListTransactionsResponse } from "./api_pb.js";
1
+ import { CheckLaunchNameTickerRequest, CheckLaunchNameTickerResponse, ConvertFiatRequest, ConvertFiatResponse, GetCategoryRequest, GetCategoryResponse, GetEarnPositionRequest, GetEarnPositionResponse, GetLaunchActivityStatsRequest, GetLaunchActivityStatsResponse, GetLaunchClaimsRequest, GetLaunchClaimsResponse, GetLaunchCreatorFeesRequest, GetLaunchCreatorFeesResponse, GetLaunchHoldersRequest, GetLaunchHoldersResponse, GetLiquidityForTokensRequest, GetLiquidityForTokensResponse, GetTokenHistoryOHLCRequest, GetTokenHistoryOHLCResponse, GetTokenHistoryPriceRequest, GetTokenHistoryPriceResponse, GetTokenHistoryTVLRequest, GetTokenHistoryTVLResponse, GetTokenHistoryVolumeRequest, GetTokenHistoryVolumeResponse, GetTokenMarketsMultiChainRequest, GetTokenMarketsMultiChainResponse, GetTokenMarketsRequest, GetTokenMarketsResponse, GetTokenMultiChainRequest, GetTokenMultiChainResponse, GetTokenRequest, GetTokenResponse, GetTokensMultiChainRequest, GetTokensMultiChainResponse, GetTokensRequest, GetTokensResponse, GetTokenTopTradersRequest, GetTokenTopTradersResponse, GetTokenTradesRequest, GetTokenTradesResponse, GetWalletNftsRequest, GetWalletNftsResponse, ListCategoriesRequest, ListCategoriesResponse, ListEarnPositionsRequest, ListEarnPositionsResponse, ListEarnVaultsRequest, ListEarnVaultsResponse, ListLaunchesRequest, ListLaunchesResponse, ListLaunchpadsRequest, ListLaunchpadsResponse, ListPoolsRequest, ListPoolsResponse, ListTokensRequest, ListTokensResponse, ListTransactionsRequest, ListTransactionsResponse } from "./api_pb.js";
2
2
  import { MethodKind } from "@bufbuild/protobuf";
3
3
  /**
4
4
  * @generated from service data.v2.DataApiService
@@ -258,5 +258,23 @@ export declare const DataApiService: {
258
258
  readonly O: typeof GetLiquidityForTokensResponse;
259
259
  readonly kind: MethodKind.Unary;
260
260
  };
261
+ /**
262
+ * @generated from rpc data.v2.DataApiService.ListCategories
263
+ */
264
+ readonly listCategories: {
265
+ readonly name: "ListCategories";
266
+ readonly I: typeof ListCategoriesRequest;
267
+ readonly O: typeof ListCategoriesResponse;
268
+ readonly kind: MethodKind.Unary;
269
+ };
270
+ /**
271
+ * @generated from rpc data.v2.DataApiService.GetCategory
272
+ */
273
+ readonly getCategory: {
274
+ readonly name: "GetCategory";
275
+ readonly I: typeof GetCategoryRequest;
276
+ readonly O: typeof GetCategoryResponse;
277
+ readonly kind: MethodKind.Unary;
278
+ };
261
279
  };
262
280
  };
@@ -2,7 +2,7 @@
2
2
  // @generated from file data/v2/api.proto (package data.v2, syntax proto3)
3
3
  /* eslint-disable */
4
4
  // @ts-nocheck
5
- import { CheckLaunchNameTickerRequest, CheckLaunchNameTickerResponse, ConvertFiatRequest, ConvertFiatResponse, GetEarnPositionRequest, GetEarnPositionResponse, GetLaunchActivityStatsRequest, GetLaunchActivityStatsResponse, GetLaunchClaimsRequest, GetLaunchClaimsResponse, GetLaunchCreatorFeesRequest, GetLaunchCreatorFeesResponse, GetLaunchHoldersRequest, GetLaunchHoldersResponse, GetLiquidityForTokensRequest, GetLiquidityForTokensResponse, GetTokenHistoryOHLCRequest, GetTokenHistoryOHLCResponse, GetTokenHistoryPriceRequest, GetTokenHistoryPriceResponse, GetTokenHistoryTVLRequest, GetTokenHistoryTVLResponse, GetTokenHistoryVolumeRequest, GetTokenHistoryVolumeResponse, GetTokenMarketsMultiChainRequest, GetTokenMarketsMultiChainResponse, GetTokenMarketsRequest, GetTokenMarketsResponse, GetTokenMultiChainRequest, GetTokenMultiChainResponse, GetTokenRequest, GetTokenResponse, GetTokensMultiChainRequest, GetTokensMultiChainResponse, GetTokensRequest, GetTokensResponse, GetTokenTopTradersRequest, GetTokenTopTradersResponse, GetTokenTradesRequest, GetTokenTradesResponse, GetWalletNftsRequest, GetWalletNftsResponse, ListEarnPositionsRequest, ListEarnPositionsResponse, ListEarnVaultsRequest, ListEarnVaultsResponse, ListLaunchesRequest, ListLaunchesResponse, ListLaunchpadsRequest, ListLaunchpadsResponse, ListPoolsRequest, ListPoolsResponse, ListTokensRequest, ListTokensResponse, ListTransactionsRequest, ListTransactionsResponse } from "./api_pb.js";
5
+ import { CheckLaunchNameTickerRequest, CheckLaunchNameTickerResponse, ConvertFiatRequest, ConvertFiatResponse, GetCategoryRequest, GetCategoryResponse, GetEarnPositionRequest, GetEarnPositionResponse, GetLaunchActivityStatsRequest, GetLaunchActivityStatsResponse, GetLaunchClaimsRequest, GetLaunchClaimsResponse, GetLaunchCreatorFeesRequest, GetLaunchCreatorFeesResponse, GetLaunchHoldersRequest, GetLaunchHoldersResponse, GetLiquidityForTokensRequest, GetLiquidityForTokensResponse, GetTokenHistoryOHLCRequest, GetTokenHistoryOHLCResponse, GetTokenHistoryPriceRequest, GetTokenHistoryPriceResponse, GetTokenHistoryTVLRequest, GetTokenHistoryTVLResponse, GetTokenHistoryVolumeRequest, GetTokenHistoryVolumeResponse, GetTokenMarketsMultiChainRequest, GetTokenMarketsMultiChainResponse, GetTokenMarketsRequest, GetTokenMarketsResponse, GetTokenMultiChainRequest, GetTokenMultiChainResponse, GetTokenRequest, GetTokenResponse, GetTokensMultiChainRequest, GetTokensMultiChainResponse, GetTokensRequest, GetTokensResponse, GetTokenTopTradersRequest, GetTokenTopTradersResponse, GetTokenTradesRequest, GetTokenTradesResponse, GetWalletNftsRequest, GetWalletNftsResponse, ListCategoriesRequest, ListCategoriesResponse, ListEarnPositionsRequest, ListEarnPositionsResponse, ListEarnVaultsRequest, ListEarnVaultsResponse, ListLaunchesRequest, ListLaunchesResponse, ListLaunchpadsRequest, ListLaunchpadsResponse, ListPoolsRequest, ListPoolsResponse, ListTokensRequest, ListTokensResponse, ListTransactionsRequest, ListTransactionsResponse } from "./api_pb.js";
6
6
  import { MethodKind } from "@bufbuild/protobuf";
7
7
  /**
8
8
  * @generated from service data.v2.DataApiService
@@ -262,5 +262,23 @@ export const DataApiService = {
262
262
  O: GetLiquidityForTokensResponse,
263
263
  kind: MethodKind.Unary,
264
264
  },
265
+ /**
266
+ * @generated from rpc data.v2.DataApiService.ListCategories
267
+ */
268
+ listCategories: {
269
+ name: "ListCategories",
270
+ I: ListCategoriesRequest,
271
+ O: ListCategoriesResponse,
272
+ kind: MethodKind.Unary,
273
+ },
274
+ /**
275
+ * @generated from rpc data.v2.DataApiService.GetCategory
276
+ */
277
+ getCategory: {
278
+ name: "GetCategory",
279
+ I: GetCategoryRequest,
280
+ O: GetCategoryResponse,
281
+ kind: MethodKind.Unary,
282
+ },
265
283
  }
266
284
  };
@@ -4,6 +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
8
  import { ProtocolVersion } from "../v1/poolTypes_pb.js";
8
9
  /**
9
10
  * @generated from enum data.v2.ActivityStatsWindow
@@ -1218,6 +1219,31 @@ export declare class ListLaunchesRequest extends Message<ListLaunchesRequest> {
1218
1219
  * @generated from field: optional bool linked_x_only = 10;
1219
1220
  */
1220
1221
  linkedXOnly?: boolean;
1222
+ /**
1223
+ * Launch lookup by token: keep only launches of these token addresses.
1224
+ * Any casing is accepted (the server EIP-55-checksums and dedupes before
1225
+ * comparing); a non-address entry fails the request with INVALID_ARGUMENT.
1226
+ * Empty/absent applies no filter. At most 100 entries.
1227
+ *
1228
+ * Built for token pages resolving a launch by address — e.g. an instant
1229
+ * launch that has aged off the newest-100 feed window — so it composes
1230
+ * with launchpad_ids/chain_ids and serves the same row shape and stats
1231
+ * sources as the unfiltered feed.
1232
+ *
1233
+ * Coverage is the Uniswap launchpads only (uniswap-cca crowd-launch
1234
+ * auctions + uniswap-bonding-curve instant launches): neither
1235
+ * third-party-launchpad read can express a token predicate, so that arm
1236
+ * is dropped from a token-filtered read rather than served unfiltered.
1237
+ * Not supported with sort_by = TRENDING (rejected), same contract as
1238
+ * creator_address.
1239
+ *
1240
+ * CCA rows additionally inherit the crowd-launch feed's
1241
+ * `is_quick_launch = true` gate; an unclassified or institutional
1242
+ * auction will not match.
1243
+ *
1244
+ * @generated from field: repeated string token_addresses = 11;
1245
+ */
1246
+ tokenAddresses: string[];
1221
1247
  constructor(data?: PartialMessage<ListLaunchesRequest>);
1222
1248
  static readonly runtime: typeof proto3;
1223
1249
  static readonly typeName = "data.v2.ListLaunchesRequest";
@@ -2329,6 +2355,100 @@ export declare class ListTokensResponse extends Message<ListTokensResponse> {
2329
2355
  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListTokensResponse;
2330
2356
  static equals(a: ListTokensResponse | PlainMessage<ListTokensResponse> | undefined, b: ListTokensResponse | PlainMessage<ListTokensResponse> | undefined): boolean;
2331
2357
  }
2358
+ /**
2359
+ * @generated from message data.v2.ListCategoriesRequest
2360
+ */
2361
+ export declare class ListCategoriesRequest extends Message<ListCategoriesRequest> {
2362
+ /**
2363
+ * Chains to scope the aggregate stats and top_tokens to. Must be non-empty.
2364
+ *
2365
+ * @generated from field: repeated uint32 chain_ids = 1;
2366
+ */
2367
+ chainIds: number[];
2368
+ constructor(data?: PartialMessage<ListCategoriesRequest>);
2369
+ static readonly runtime: typeof proto3;
2370
+ static readonly typeName = "data.v2.ListCategoriesRequest";
2371
+ static readonly fields: FieldList;
2372
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListCategoriesRequest;
2373
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListCategoriesRequest;
2374
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListCategoriesRequest;
2375
+ static equals(a: ListCategoriesRequest | PlainMessage<ListCategoriesRequest> | undefined, b: ListCategoriesRequest | PlainMessage<ListCategoriesRequest> | undefined): boolean;
2376
+ }
2377
+ /**
2378
+ * @generated from message data.v2.ListCategoriesResponse
2379
+ */
2380
+ export declare class ListCategoriesResponse extends Message<ListCategoriesResponse> {
2381
+ /**
2382
+ * @generated from field: repeated data.v2.RankedCategory categories = 1;
2383
+ */
2384
+ categories: RankedCategory[];
2385
+ constructor(data?: PartialMessage<ListCategoriesResponse>);
2386
+ static readonly runtime: typeof proto3;
2387
+ static readonly typeName = "data.v2.ListCategoriesResponse";
2388
+ static readonly fields: FieldList;
2389
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListCategoriesResponse;
2390
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListCategoriesResponse;
2391
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListCategoriesResponse;
2392
+ static equals(a: ListCategoriesResponse | PlainMessage<ListCategoriesResponse> | undefined, b: ListCategoriesResponse | PlainMessage<ListCategoriesResponse> | undefined): boolean;
2393
+ }
2394
+ /**
2395
+ * @generated from message data.v2.GetCategoryRequest
2396
+ */
2397
+ export declare class GetCategoryRequest extends Message<GetCategoryRequest> {
2398
+ /**
2399
+ * @generated from field: string category_id = 1;
2400
+ */
2401
+ categoryId: string;
2402
+ /**
2403
+ * Same semantics as ListCategoriesRequest.chain_ids.
2404
+ *
2405
+ * @generated from field: repeated uint32 chain_ids = 2;
2406
+ */
2407
+ chainIds: number[];
2408
+ /**
2409
+ * When false the response carries metadata/stats only (no series).
2410
+ *
2411
+ * @generated from field: bool include_charts = 3;
2412
+ */
2413
+ includeCharts: boolean;
2414
+ constructor(data?: PartialMessage<GetCategoryRequest>);
2415
+ static readonly runtime: typeof proto3;
2416
+ static readonly typeName = "data.v2.GetCategoryRequest";
2417
+ static readonly fields: FieldList;
2418
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetCategoryRequest;
2419
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetCategoryRequest;
2420
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetCategoryRequest;
2421
+ static equals(a: GetCategoryRequest | PlainMessage<GetCategoryRequest> | undefined, b: GetCategoryRequest | PlainMessage<GetCategoryRequest> | undefined): boolean;
2422
+ }
2423
+ /**
2424
+ * @generated from message data.v2.GetCategoryResponse
2425
+ */
2426
+ export declare class GetCategoryResponse extends Message<GetCategoryResponse> {
2427
+ /**
2428
+ * @generated from field: data.v2.RankedCategory category = 1;
2429
+ */
2430
+ category?: RankedCategory;
2431
+ /**
2432
+ * Aggregate member swap volume over time. Empty unless include_charts.
2433
+ *
2434
+ * @generated from field: repeated data.v2.TimeSeriesPoint volume_series = 2;
2435
+ */
2436
+ volumeSeries: TimeSeriesPoint[];
2437
+ /**
2438
+ * Aggregate member FDV over time. Empty unless include_charts.
2439
+ *
2440
+ * @generated from field: repeated data.v2.TimeSeriesPoint fdv_series = 3;
2441
+ */
2442
+ fdvSeries: TimeSeriesPoint[];
2443
+ constructor(data?: PartialMessage<GetCategoryResponse>);
2444
+ static readonly runtime: typeof proto3;
2445
+ static readonly typeName = "data.v2.GetCategoryResponse";
2446
+ static readonly fields: FieldList;
2447
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetCategoryResponse;
2448
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetCategoryResponse;
2449
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetCategoryResponse;
2450
+ static equals(a: GetCategoryResponse | PlainMessage<GetCategoryResponse> | undefined, b: GetCategoryResponse | PlainMessage<GetCategoryResponse> | undefined): boolean;
2451
+ }
2332
2452
  /**
2333
2453
  * Ranked pool discovery: one RankedPool per pool, ordered by the requested
2334
2454
  * stat. Sorted by (sort.order_by, pool_id ASC) — pool_id is the tiebreaker so
@@ -7,6 +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
11
  import { ProtocolVersion } from "../v1/poolTypes_pb.js";
11
12
  /**
12
13
  * @generated from enum data.v2.ActivityStatsWindow
@@ -1453,6 +1454,31 @@ export class ListLaunchesRequest extends Message {
1453
1454
  * @generated from field: repeated string launchpad_ids = 5;
1454
1455
  */
1455
1456
  this.launchpadIds = [];
1457
+ /**
1458
+ * Launch lookup by token: keep only launches of these token addresses.
1459
+ * Any casing is accepted (the server EIP-55-checksums and dedupes before
1460
+ * comparing); a non-address entry fails the request with INVALID_ARGUMENT.
1461
+ * Empty/absent applies no filter. At most 100 entries.
1462
+ *
1463
+ * Built for token pages resolving a launch by address — e.g. an instant
1464
+ * launch that has aged off the newest-100 feed window — so it composes
1465
+ * with launchpad_ids/chain_ids and serves the same row shape and stats
1466
+ * sources as the unfiltered feed.
1467
+ *
1468
+ * Coverage is the Uniswap launchpads only (uniswap-cca crowd-launch
1469
+ * auctions + uniswap-bonding-curve instant launches): neither
1470
+ * third-party-launchpad read can express a token predicate, so that arm
1471
+ * is dropped from a token-filtered read rather than served unfiltered.
1472
+ * Not supported with sort_by = TRENDING (rejected), same contract as
1473
+ * creator_address.
1474
+ *
1475
+ * CCA rows additionally inherit the crowd-launch feed's
1476
+ * `is_quick_launch = true` gate; an unclassified or institutional
1477
+ * auction will not match.
1478
+ *
1479
+ * @generated from field: repeated string token_addresses = 11;
1480
+ */
1481
+ this.tokenAddresses = [];
1456
1482
  proto3.util.initPartial(data, this);
1457
1483
  }
1458
1484
  static fromBinary(bytes, options) {
@@ -1481,6 +1507,7 @@ ListLaunchesRequest.fields = proto3.util.newFieldList(() => [
1481
1507
  { no: 8, name: "query", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1482
1508
  { no: 9, name: "creator_address", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1483
1509
  { no: 10, name: "linked_x_only", kind: "scalar", T: 8 /* ScalarType.BOOL */, opt: true },
1510
+ { no: 11, name: "token_addresses", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
1484
1511
  ]);
1485
1512
  /**
1486
1513
  * @generated from message data.v2.ListLaunchesResponse
@@ -2718,6 +2745,152 @@ ListTokensResponse.fields = proto3.util.newFieldList(() => [
2718
2745
  { no: 1, name: "multichain_tokens", kind: "message", T: RankedMultichainToken, repeated: true },
2719
2746
  { no: 2, name: "page", kind: "message", T: PageResponse },
2720
2747
  ]);
2748
+ /**
2749
+ * @generated from message data.v2.ListCategoriesRequest
2750
+ */
2751
+ export class ListCategoriesRequest extends Message {
2752
+ constructor(data) {
2753
+ super();
2754
+ /**
2755
+ * Chains to scope the aggregate stats and top_tokens to. Must be non-empty.
2756
+ *
2757
+ * @generated from field: repeated uint32 chain_ids = 1;
2758
+ */
2759
+ this.chainIds = [];
2760
+ proto3.util.initPartial(data, this);
2761
+ }
2762
+ static fromBinary(bytes, options) {
2763
+ return new ListCategoriesRequest().fromBinary(bytes, options);
2764
+ }
2765
+ static fromJson(jsonValue, options) {
2766
+ return new ListCategoriesRequest().fromJson(jsonValue, options);
2767
+ }
2768
+ static fromJsonString(jsonString, options) {
2769
+ return new ListCategoriesRequest().fromJsonString(jsonString, options);
2770
+ }
2771
+ static equals(a, b) {
2772
+ return proto3.util.equals(ListCategoriesRequest, a, b);
2773
+ }
2774
+ }
2775
+ ListCategoriesRequest.runtime = proto3;
2776
+ ListCategoriesRequest.typeName = "data.v2.ListCategoriesRequest";
2777
+ ListCategoriesRequest.fields = proto3.util.newFieldList(() => [
2778
+ { no: 1, name: "chain_ids", kind: "scalar", T: 13 /* ScalarType.UINT32 */, repeated: true },
2779
+ ]);
2780
+ /**
2781
+ * @generated from message data.v2.ListCategoriesResponse
2782
+ */
2783
+ export class ListCategoriesResponse extends Message {
2784
+ constructor(data) {
2785
+ super();
2786
+ /**
2787
+ * @generated from field: repeated data.v2.RankedCategory categories = 1;
2788
+ */
2789
+ this.categories = [];
2790
+ proto3.util.initPartial(data, this);
2791
+ }
2792
+ static fromBinary(bytes, options) {
2793
+ return new ListCategoriesResponse().fromBinary(bytes, options);
2794
+ }
2795
+ static fromJson(jsonValue, options) {
2796
+ return new ListCategoriesResponse().fromJson(jsonValue, options);
2797
+ }
2798
+ static fromJsonString(jsonString, options) {
2799
+ return new ListCategoriesResponse().fromJsonString(jsonString, options);
2800
+ }
2801
+ static equals(a, b) {
2802
+ return proto3.util.equals(ListCategoriesResponse, a, b);
2803
+ }
2804
+ }
2805
+ ListCategoriesResponse.runtime = proto3;
2806
+ ListCategoriesResponse.typeName = "data.v2.ListCategoriesResponse";
2807
+ ListCategoriesResponse.fields = proto3.util.newFieldList(() => [
2808
+ { no: 1, name: "categories", kind: "message", T: RankedCategory, repeated: true },
2809
+ ]);
2810
+ /**
2811
+ * @generated from message data.v2.GetCategoryRequest
2812
+ */
2813
+ export class GetCategoryRequest extends Message {
2814
+ constructor(data) {
2815
+ super();
2816
+ /**
2817
+ * @generated from field: string category_id = 1;
2818
+ */
2819
+ this.categoryId = "";
2820
+ /**
2821
+ * Same semantics as ListCategoriesRequest.chain_ids.
2822
+ *
2823
+ * @generated from field: repeated uint32 chain_ids = 2;
2824
+ */
2825
+ this.chainIds = [];
2826
+ /**
2827
+ * When false the response carries metadata/stats only (no series).
2828
+ *
2829
+ * @generated from field: bool include_charts = 3;
2830
+ */
2831
+ this.includeCharts = false;
2832
+ proto3.util.initPartial(data, this);
2833
+ }
2834
+ static fromBinary(bytes, options) {
2835
+ return new GetCategoryRequest().fromBinary(bytes, options);
2836
+ }
2837
+ static fromJson(jsonValue, options) {
2838
+ return new GetCategoryRequest().fromJson(jsonValue, options);
2839
+ }
2840
+ static fromJsonString(jsonString, options) {
2841
+ return new GetCategoryRequest().fromJsonString(jsonString, options);
2842
+ }
2843
+ static equals(a, b) {
2844
+ return proto3.util.equals(GetCategoryRequest, a, b);
2845
+ }
2846
+ }
2847
+ GetCategoryRequest.runtime = proto3;
2848
+ GetCategoryRequest.typeName = "data.v2.GetCategoryRequest";
2849
+ GetCategoryRequest.fields = proto3.util.newFieldList(() => [
2850
+ { no: 1, name: "category_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
2851
+ { no: 2, name: "chain_ids", kind: "scalar", T: 13 /* ScalarType.UINT32 */, repeated: true },
2852
+ { no: 3, name: "include_charts", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
2853
+ ]);
2854
+ /**
2855
+ * @generated from message data.v2.GetCategoryResponse
2856
+ */
2857
+ export class GetCategoryResponse extends Message {
2858
+ constructor(data) {
2859
+ super();
2860
+ /**
2861
+ * Aggregate member swap volume over time. Empty unless include_charts.
2862
+ *
2863
+ * @generated from field: repeated data.v2.TimeSeriesPoint volume_series = 2;
2864
+ */
2865
+ this.volumeSeries = [];
2866
+ /**
2867
+ * Aggregate member FDV over time. Empty unless include_charts.
2868
+ *
2869
+ * @generated from field: repeated data.v2.TimeSeriesPoint fdv_series = 3;
2870
+ */
2871
+ this.fdvSeries = [];
2872
+ proto3.util.initPartial(data, this);
2873
+ }
2874
+ static fromBinary(bytes, options) {
2875
+ return new GetCategoryResponse().fromBinary(bytes, options);
2876
+ }
2877
+ static fromJson(jsonValue, options) {
2878
+ return new GetCategoryResponse().fromJson(jsonValue, options);
2879
+ }
2880
+ static fromJsonString(jsonString, options) {
2881
+ return new GetCategoryResponse().fromJsonString(jsonString, options);
2882
+ }
2883
+ static equals(a, b) {
2884
+ return proto3.util.equals(GetCategoryResponse, a, b);
2885
+ }
2886
+ }
2887
+ GetCategoryResponse.runtime = proto3;
2888
+ GetCategoryResponse.typeName = "data.v2.GetCategoryResponse";
2889
+ GetCategoryResponse.fields = proto3.util.newFieldList(() => [
2890
+ { no: 1, name: "category", kind: "message", T: RankedCategory },
2891
+ { no: 2, name: "volume_series", kind: "message", T: TimeSeriesPoint, repeated: true },
2892
+ { no: 3, name: "fdv_series", kind: "message", T: TimeSeriesPoint, repeated: true },
2893
+ ]);
2721
2894
  /**
2722
2895
  * Ranked pool discovery: one RankedPool per pool, ordered by the requested
2723
2896
  * stat. Sorted by (sort.order_by, pool_id ASC) — pool_id is the tiebreaker so
@@ -0,0 +1,199 @@
1
+ import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf";
2
+ import { Message, proto3 } from "@bufbuild/protobuf";
3
+ /**
4
+ * @generated from enum data.v2.CategoryClass
5
+ */
6
+ export declare enum CategoryClass {
7
+ /**
8
+ * @generated from enum value: CATEGORY_CLASS_UNSPECIFIED = 0;
9
+ */
10
+ UNSPECIFIED = 0,
11
+ /**
12
+ * Computed from market stats (e.g. Recently Launched, High Volatility).
13
+ *
14
+ * @generated from enum value: CATEGORY_CLASS_MARKET = 1;
15
+ */
16
+ MARKET = 1,
17
+ /**
18
+ * Asset classes (e.g. Stocks, ETFs, Commodities).
19
+ *
20
+ * @generated from enum value: CATEGORY_CLASS_ASSET = 2;
21
+ */
22
+ ASSET = 2,
23
+ /**
24
+ * Sector taxonomy (e.g. DeFi, Gaming, AI Agents).
25
+ *
26
+ * @generated from enum value: CATEGORY_CLASS_SECTOR = 3;
27
+ */
28
+ SECTOR = 3
29
+ }
30
+ /**
31
+ * One member token of a category.
32
+ *
33
+ * @generated from message data.v2.CategoryTopToken
34
+ */
35
+ export declare class CategoryTopToken extends Message<CategoryTopToken> {
36
+ /**
37
+ * @generated from field: uint32 chain_id = 1;
38
+ */
39
+ chainId: number;
40
+ /**
41
+ * @generated from field: string address = 2;
42
+ */
43
+ address: string;
44
+ /**
45
+ * @generated from field: string symbol = 3;
46
+ */
47
+ symbol: string;
48
+ /**
49
+ * @generated from field: string logo_url = 4;
50
+ */
51
+ logoUrl: string;
52
+ constructor(data?: PartialMessage<CategoryTopToken>);
53
+ static readonly runtime: typeof proto3;
54
+ static readonly typeName = "data.v2.CategoryTopToken";
55
+ static readonly fields: FieldList;
56
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CategoryTopToken;
57
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CategoryTopToken;
58
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CategoryTopToken;
59
+ static equals(a: CategoryTopToken | PlainMessage<CategoryTopToken> | undefined, b: CategoryTopToken | PlainMessage<CategoryTopToken> | undefined): boolean;
60
+ }
61
+ /**
62
+ * Chain-scoped, multichain-deduped aggregates over the category's members.
63
+ *
64
+ * @generated from message data.v2.CategoryAggregateStats
65
+ */
66
+ export declare class CategoryAggregateStats extends Message<CategoryAggregateStats> {
67
+ /**
68
+ * @generated from field: uint32 token_count = 1;
69
+ */
70
+ tokenCount: number;
71
+ /**
72
+ * Volume-weighted across members.
73
+ *
74
+ * @generated from field: double price_change_24h_pct = 2;
75
+ */
76
+ priceChange24hPct: number;
77
+ /**
78
+ * @generated from field: double volume_1h = 3;
79
+ */
80
+ volume1h: number;
81
+ /**
82
+ * @generated from field: double volume_1d = 4;
83
+ */
84
+ volume1d: number;
85
+ /**
86
+ * @generated from field: double volume_1w = 5;
87
+ */
88
+ volume1w: number;
89
+ /**
90
+ * @generated from field: double volume_1m = 6;
91
+ */
92
+ volume1m: number;
93
+ /**
94
+ * @generated from field: double volume_1y = 7;
95
+ */
96
+ volume1y: number;
97
+ /**
98
+ * @generated from field: optional double fdv = 8;
99
+ */
100
+ fdv?: number;
101
+ /**
102
+ * @generated from field: optional double market_cap = 9;
103
+ */
104
+ marketCap?: number;
105
+ constructor(data?: PartialMessage<CategoryAggregateStats>);
106
+ static readonly runtime: typeof proto3;
107
+ static readonly typeName = "data.v2.CategoryAggregateStats";
108
+ static readonly fields: FieldList;
109
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CategoryAggregateStats;
110
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CategoryAggregateStats;
111
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CategoryAggregateStats;
112
+ static equals(a: CategoryAggregateStats | PlainMessage<CategoryAggregateStats> | undefined, b: CategoryAggregateStats | PlainMessage<CategoryAggregateStats> | undefined): boolean;
113
+ }
114
+ /**
115
+ * Category identity: stable, request-independent metadata.
116
+ *
117
+ * @generated from message data.v2.Category
118
+ */
119
+ export declare class Category extends Message<Category> {
120
+ /**
121
+ * @generated from field: string id = 1;
122
+ */
123
+ id: string;
124
+ /**
125
+ * @generated from field: string name = 2;
126
+ */
127
+ name: string;
128
+ /**
129
+ * @generated from field: string description = 3;
130
+ */
131
+ description: string;
132
+ /**
133
+ * @generated from field: string icon = 4;
134
+ */
135
+ icon: string;
136
+ /**
137
+ * @generated from field: data.v2.CategoryClass class = 5;
138
+ */
139
+ class: CategoryClass;
140
+ constructor(data?: PartialMessage<Category>);
141
+ static readonly runtime: typeof proto3;
142
+ static readonly typeName = "data.v2.Category";
143
+ static readonly fields: FieldList;
144
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): Category;
145
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): Category;
146
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): Category;
147
+ static equals(a: Category | PlainMessage<Category> | undefined, b: Category | PlainMessage<Category> | undefined): boolean;
148
+ }
149
+ /**
150
+ * A category plus its chain-scoped market view (mirrors RankedPool /
151
+ * RankedMultichainToken).
152
+ *
153
+ * @generated from message data.v2.RankedCategory
154
+ */
155
+ export declare class RankedCategory extends Message<RankedCategory> {
156
+ /**
157
+ * @generated from field: data.v2.Category category = 1;
158
+ */
159
+ category?: Category;
160
+ /**
161
+ * @generated from field: data.v2.CategoryAggregateStats stats = 2;
162
+ */
163
+ stats?: CategoryAggregateStats;
164
+ /**
165
+ * @generated from field: repeated data.v2.CategoryTopToken top_tokens = 3;
166
+ */
167
+ topTokens: CategoryTopToken[];
168
+ constructor(data?: PartialMessage<RankedCategory>);
169
+ static readonly runtime: typeof proto3;
170
+ static readonly typeName = "data.v2.RankedCategory";
171
+ static readonly fields: FieldList;
172
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): RankedCategory;
173
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): RankedCategory;
174
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): RankedCategory;
175
+ static equals(a: RankedCategory | PlainMessage<RankedCategory> | undefined, b: RankedCategory | PlainMessage<RankedCategory> | undefined): boolean;
176
+ }
177
+ /**
178
+ * @generated from message data.v2.TimeSeriesPoint
179
+ */
180
+ export declare class TimeSeriesPoint extends Message<TimeSeriesPoint> {
181
+ /**
182
+ * unix seconds, bucket start
183
+ *
184
+ * @generated from field: int64 timestamp = 1;
185
+ */
186
+ timestamp: bigint;
187
+ /**
188
+ * @generated from field: double value = 2;
189
+ */
190
+ value: number;
191
+ constructor(data?: PartialMessage<TimeSeriesPoint>);
192
+ static readonly runtime: typeof proto3;
193
+ static readonly typeName = "data.v2.TimeSeriesPoint";
194
+ static readonly fields: FieldList;
195
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): TimeSeriesPoint;
196
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): TimeSeriesPoint;
197
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): TimeSeriesPoint;
198
+ static equals(a: TimeSeriesPoint | PlainMessage<TimeSeriesPoint> | undefined, b: TimeSeriesPoint | PlainMessage<TimeSeriesPoint> | undefined): boolean;
199
+ }
@@ -0,0 +1,277 @@
1
+ // @generated by protoc-gen-es v1.10.1 with parameter "target=ts"
2
+ // @generated from file data/v2/categories.proto (package data.v2, syntax proto3)
3
+ /* eslint-disable */
4
+ // @ts-nocheck
5
+ import { Message, proto3, protoInt64 } from "@bufbuild/protobuf";
6
+ /**
7
+ * @generated from enum data.v2.CategoryClass
8
+ */
9
+ export var CategoryClass;
10
+ (function (CategoryClass) {
11
+ /**
12
+ * @generated from enum value: CATEGORY_CLASS_UNSPECIFIED = 0;
13
+ */
14
+ CategoryClass[CategoryClass["UNSPECIFIED"] = 0] = "UNSPECIFIED";
15
+ /**
16
+ * Computed from market stats (e.g. Recently Launched, High Volatility).
17
+ *
18
+ * @generated from enum value: CATEGORY_CLASS_MARKET = 1;
19
+ */
20
+ CategoryClass[CategoryClass["MARKET"] = 1] = "MARKET";
21
+ /**
22
+ * Asset classes (e.g. Stocks, ETFs, Commodities).
23
+ *
24
+ * @generated from enum value: CATEGORY_CLASS_ASSET = 2;
25
+ */
26
+ CategoryClass[CategoryClass["ASSET"] = 2] = "ASSET";
27
+ /**
28
+ * Sector taxonomy (e.g. DeFi, Gaming, AI Agents).
29
+ *
30
+ * @generated from enum value: CATEGORY_CLASS_SECTOR = 3;
31
+ */
32
+ CategoryClass[CategoryClass["SECTOR"] = 3] = "SECTOR";
33
+ })(CategoryClass || (CategoryClass = {}));
34
+ // Retrieve enum metadata with: proto3.getEnumType(CategoryClass)
35
+ proto3.util.setEnumType(CategoryClass, "data.v2.CategoryClass", [
36
+ { no: 0, name: "CATEGORY_CLASS_UNSPECIFIED" },
37
+ { no: 1, name: "CATEGORY_CLASS_MARKET" },
38
+ { no: 2, name: "CATEGORY_CLASS_ASSET" },
39
+ { no: 3, name: "CATEGORY_CLASS_SECTOR" },
40
+ ]);
41
+ /**
42
+ * One member token of a category.
43
+ *
44
+ * @generated from message data.v2.CategoryTopToken
45
+ */
46
+ export class CategoryTopToken extends Message {
47
+ constructor(data) {
48
+ super();
49
+ /**
50
+ * @generated from field: uint32 chain_id = 1;
51
+ */
52
+ this.chainId = 0;
53
+ /**
54
+ * @generated from field: string address = 2;
55
+ */
56
+ this.address = "";
57
+ /**
58
+ * @generated from field: string symbol = 3;
59
+ */
60
+ this.symbol = "";
61
+ /**
62
+ * @generated from field: string logo_url = 4;
63
+ */
64
+ this.logoUrl = "";
65
+ proto3.util.initPartial(data, this);
66
+ }
67
+ static fromBinary(bytes, options) {
68
+ return new CategoryTopToken().fromBinary(bytes, options);
69
+ }
70
+ static fromJson(jsonValue, options) {
71
+ return new CategoryTopToken().fromJson(jsonValue, options);
72
+ }
73
+ static fromJsonString(jsonString, options) {
74
+ return new CategoryTopToken().fromJsonString(jsonString, options);
75
+ }
76
+ static equals(a, b) {
77
+ return proto3.util.equals(CategoryTopToken, a, b);
78
+ }
79
+ }
80
+ CategoryTopToken.runtime = proto3;
81
+ CategoryTopToken.typeName = "data.v2.CategoryTopToken";
82
+ CategoryTopToken.fields = proto3.util.newFieldList(() => [
83
+ { no: 1, name: "chain_id", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
84
+ { no: 2, name: "address", kind: "scalar", T: 9 /* ScalarType.STRING */ },
85
+ { no: 3, name: "symbol", kind: "scalar", T: 9 /* ScalarType.STRING */ },
86
+ { no: 4, name: "logo_url", kind: "scalar", T: 9 /* ScalarType.STRING */ },
87
+ ]);
88
+ /**
89
+ * Chain-scoped, multichain-deduped aggregates over the category's members.
90
+ *
91
+ * @generated from message data.v2.CategoryAggregateStats
92
+ */
93
+ export class CategoryAggregateStats extends Message {
94
+ constructor(data) {
95
+ super();
96
+ /**
97
+ * @generated from field: uint32 token_count = 1;
98
+ */
99
+ this.tokenCount = 0;
100
+ /**
101
+ * Volume-weighted across members.
102
+ *
103
+ * @generated from field: double price_change_24h_pct = 2;
104
+ */
105
+ this.priceChange24hPct = 0;
106
+ /**
107
+ * @generated from field: double volume_1h = 3;
108
+ */
109
+ this.volume1h = 0;
110
+ /**
111
+ * @generated from field: double volume_1d = 4;
112
+ */
113
+ this.volume1d = 0;
114
+ /**
115
+ * @generated from field: double volume_1w = 5;
116
+ */
117
+ this.volume1w = 0;
118
+ /**
119
+ * @generated from field: double volume_1m = 6;
120
+ */
121
+ this.volume1m = 0;
122
+ /**
123
+ * @generated from field: double volume_1y = 7;
124
+ */
125
+ this.volume1y = 0;
126
+ proto3.util.initPartial(data, this);
127
+ }
128
+ static fromBinary(bytes, options) {
129
+ return new CategoryAggregateStats().fromBinary(bytes, options);
130
+ }
131
+ static fromJson(jsonValue, options) {
132
+ return new CategoryAggregateStats().fromJson(jsonValue, options);
133
+ }
134
+ static fromJsonString(jsonString, options) {
135
+ return new CategoryAggregateStats().fromJsonString(jsonString, options);
136
+ }
137
+ static equals(a, b) {
138
+ return proto3.util.equals(CategoryAggregateStats, a, b);
139
+ }
140
+ }
141
+ CategoryAggregateStats.runtime = proto3;
142
+ CategoryAggregateStats.typeName = "data.v2.CategoryAggregateStats";
143
+ CategoryAggregateStats.fields = proto3.util.newFieldList(() => [
144
+ { no: 1, name: "token_count", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
145
+ { no: 2, name: "price_change_24h_pct", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
146
+ { no: 3, name: "volume_1h", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
147
+ { no: 4, name: "volume_1d", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
148
+ { no: 5, name: "volume_1w", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
149
+ { no: 6, name: "volume_1m", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
150
+ { no: 7, name: "volume_1y", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
151
+ { no: 8, name: "fdv", kind: "scalar", T: 1 /* ScalarType.DOUBLE */, opt: true },
152
+ { no: 9, name: "market_cap", kind: "scalar", T: 1 /* ScalarType.DOUBLE */, opt: true },
153
+ ]);
154
+ /**
155
+ * Category identity: stable, request-independent metadata.
156
+ *
157
+ * @generated from message data.v2.Category
158
+ */
159
+ export class Category extends Message {
160
+ constructor(data) {
161
+ super();
162
+ /**
163
+ * @generated from field: string id = 1;
164
+ */
165
+ this.id = "";
166
+ /**
167
+ * @generated from field: string name = 2;
168
+ */
169
+ this.name = "";
170
+ /**
171
+ * @generated from field: string description = 3;
172
+ */
173
+ this.description = "";
174
+ /**
175
+ * @generated from field: string icon = 4;
176
+ */
177
+ this.icon = "";
178
+ /**
179
+ * @generated from field: data.v2.CategoryClass class = 5;
180
+ */
181
+ this.class = CategoryClass.UNSPECIFIED;
182
+ proto3.util.initPartial(data, this);
183
+ }
184
+ static fromBinary(bytes, options) {
185
+ return new Category().fromBinary(bytes, options);
186
+ }
187
+ static fromJson(jsonValue, options) {
188
+ return new Category().fromJson(jsonValue, options);
189
+ }
190
+ static fromJsonString(jsonString, options) {
191
+ return new Category().fromJsonString(jsonString, options);
192
+ }
193
+ static equals(a, b) {
194
+ return proto3.util.equals(Category, a, b);
195
+ }
196
+ }
197
+ Category.runtime = proto3;
198
+ Category.typeName = "data.v2.Category";
199
+ Category.fields = proto3.util.newFieldList(() => [
200
+ { no: 1, name: "id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
201
+ { no: 2, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
202
+ { no: 3, name: "description", kind: "scalar", T: 9 /* ScalarType.STRING */ },
203
+ { no: 4, name: "icon", kind: "scalar", T: 9 /* ScalarType.STRING */ },
204
+ { no: 5, name: "class", kind: "enum", T: proto3.getEnumType(CategoryClass) },
205
+ ]);
206
+ /**
207
+ * A category plus its chain-scoped market view (mirrors RankedPool /
208
+ * RankedMultichainToken).
209
+ *
210
+ * @generated from message data.v2.RankedCategory
211
+ */
212
+ export class RankedCategory extends Message {
213
+ constructor(data) {
214
+ super();
215
+ /**
216
+ * @generated from field: repeated data.v2.CategoryTopToken top_tokens = 3;
217
+ */
218
+ this.topTokens = [];
219
+ proto3.util.initPartial(data, this);
220
+ }
221
+ static fromBinary(bytes, options) {
222
+ return new RankedCategory().fromBinary(bytes, options);
223
+ }
224
+ static fromJson(jsonValue, options) {
225
+ return new RankedCategory().fromJson(jsonValue, options);
226
+ }
227
+ static fromJsonString(jsonString, options) {
228
+ return new RankedCategory().fromJsonString(jsonString, options);
229
+ }
230
+ static equals(a, b) {
231
+ return proto3.util.equals(RankedCategory, a, b);
232
+ }
233
+ }
234
+ RankedCategory.runtime = proto3;
235
+ RankedCategory.typeName = "data.v2.RankedCategory";
236
+ RankedCategory.fields = proto3.util.newFieldList(() => [
237
+ { no: 1, name: "category", kind: "message", T: Category },
238
+ { no: 2, name: "stats", kind: "message", T: CategoryAggregateStats },
239
+ { no: 3, name: "top_tokens", kind: "message", T: CategoryTopToken, repeated: true },
240
+ ]);
241
+ /**
242
+ * @generated from message data.v2.TimeSeriesPoint
243
+ */
244
+ export class TimeSeriesPoint extends Message {
245
+ constructor(data) {
246
+ super();
247
+ /**
248
+ * unix seconds, bucket start
249
+ *
250
+ * @generated from field: int64 timestamp = 1;
251
+ */
252
+ this.timestamp = protoInt64.zero;
253
+ /**
254
+ * @generated from field: double value = 2;
255
+ */
256
+ this.value = 0;
257
+ proto3.util.initPartial(data, this);
258
+ }
259
+ static fromBinary(bytes, options) {
260
+ return new TimeSeriesPoint().fromBinary(bytes, options);
261
+ }
262
+ static fromJson(jsonValue, options) {
263
+ return new TimeSeriesPoint().fromJson(jsonValue, options);
264
+ }
265
+ static fromJsonString(jsonString, options) {
266
+ return new TimeSeriesPoint().fromJsonString(jsonString, options);
267
+ }
268
+ static equals(a, b) {
269
+ return proto3.util.equals(TimeSeriesPoint, a, b);
270
+ }
271
+ }
272
+ TimeSeriesPoint.runtime = proto3;
273
+ TimeSeriesPoint.typeName = "data.v2.TimeSeriesPoint";
274
+ TimeSeriesPoint.fields = proto3.util.newFieldList(() => [
275
+ { no: 1, name: "timestamp", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
276
+ { no: 2, name: "value", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
277
+ ]);
@@ -545,6 +545,13 @@ export declare class TokenListFilter extends Message<TokenListFilter> {
545
545
  * @generated from field: optional bool exclude_rwas = 5;
546
546
  */
547
547
  excludeRwas?: boolean;
548
+ /**
549
+ * Serve only members of these categories: OR within this list, AND with
550
+ * the other filter fields.
551
+ *
552
+ * @generated from field: repeated string category_ids = 6;
553
+ */
554
+ categoryIds: string[];
548
555
  constructor(data?: PartialMessage<TokenListFilter>);
549
556
  static readonly runtime: typeof proto3;
550
557
  static readonly typeName = "data.v2.TokenListFilter";
@@ -936,6 +943,10 @@ export declare class MultichainToken extends Message<MultichainToken> {
936
943
  * @generated from field: optional double fdv = 11;
937
944
  */
938
945
  fdv?: number;
946
+ /**
947
+ * @generated from field: repeated string category_ids = 12;
948
+ */
949
+ categoryIds: string[];
939
950
  constructor(data?: PartialMessage<MultichainToken>);
940
951
  static readonly runtime: typeof proto3;
941
952
  static readonly typeName = "data.v2.MultichainToken";
@@ -607,6 +607,13 @@ TokensSort.fields = proto3.util.newFieldList(() => [
607
607
  export class TokenListFilter extends Message {
608
608
  constructor(data) {
609
609
  super();
610
+ /**
611
+ * Serve only members of these categories: OR within this list, AND with
612
+ * the other filter fields.
613
+ *
614
+ * @generated from field: repeated string category_ids = 6;
615
+ */
616
+ this.categoryIds = [];
610
617
  proto3.util.initPartial(data, this);
611
618
  }
612
619
  static fromBinary(bytes, options) {
@@ -630,6 +637,7 @@ TokenListFilter.fields = proto3.util.newFieldList(() => [
630
637
  { no: 3, name: "min_tvl_usd", kind: "scalar", T: 1 /* ScalarType.DOUBLE */, opt: true },
631
638
  { no: 4, name: "apply_top_level_filters", kind: "scalar", T: 8 /* ScalarType.BOOL */, opt: true },
632
639
  { no: 5, name: "exclude_rwas", kind: "scalar", T: 8 /* ScalarType.BOOL */, opt: true },
640
+ { no: 6, name: "category_ids", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
633
641
  ]);
634
642
  /**
635
643
  * @generated from message data.v2.FiatAmount
@@ -1060,6 +1068,10 @@ export class MultichainToken extends Message {
1060
1068
  * @generated from field: data.v1.TokenType type = 6;
1061
1069
  */
1062
1070
  this.type = TokenType.UNKNOWN;
1071
+ /**
1072
+ * @generated from field: repeated string category_ids = 12;
1073
+ */
1074
+ this.categoryIds = [];
1063
1075
  proto3.util.initPartial(data, this);
1064
1076
  }
1065
1077
  static fromBinary(bytes, options) {
@@ -1089,6 +1101,7 @@ MultichainToken.fields = proto3.util.newFieldList(() => [
1089
1101
  { no: 9, name: "fees", kind: "message", T: TokenFees },
1090
1102
  { no: 10, name: "project", kind: "message", T: TokenProject },
1091
1103
  { no: 11, name: "fdv", kind: "scalar", T: 1 /* ScalarType.DOUBLE */, opt: true },
1104
+ { no: 12, name: "category_ids", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
1092
1105
  ]);
1093
1106
  /**
1094
1107
  * @generated from message data.v2.PoolsSort
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uniswap/client-data-api",
3
- "version": "0.0.198",
3
+ "version": "0.0.200",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },