@uniswap/client-data-api 0.0.149 → 0.0.150

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  import { MethodKind } from "@bufbuild/protobuf";
2
- import { ConvertFiatRequest, ConvertFiatResponse, GetEarnPositionRequest, GetEarnPositionResponse, GetTokenHistoryOHLCRequest, GetTokenHistoryOHLCResponse, GetTokenHistoryPriceRequest, GetTokenHistoryPriceResponse, GetTokenHistoryTVLRequest, GetTokenHistoryTVLResponse, GetTokenHistoryVolumeRequest, GetTokenHistoryVolumeResponse, GetTokenMarketsMultiChainRequest, GetTokenMarketsMultiChainResponse, GetTokenMarketsRequest, GetTokenMarketsResponse, GetTokenMultiChainRequest, GetTokenMultiChainResponse, GetTokenRequest, GetTokenResponse, GetTokensMultiChainRequest, GetTokensMultiChainResponse, GetTokensRequest, GetTokensResponse, GetTokenTradesRequest, GetTokenTradesResponse, GetWalletNftsRequest, GetWalletNftsResponse, ListEarnPositionsRequest, ListEarnPositionsResponse, ListEarnVaultsRequest, ListEarnVaultsResponse, ListLaunchesRequest, ListLaunchesResponse, ListLaunchpadsRequest, ListLaunchpadsResponse, ListPoolsRequest, ListPoolsResponse, ListTokensRequest, ListTokensResponse, ListTransactionsRequest, ListTransactionsResponse } from "./api_pb.js";
2
+ import { ConvertFiatRequest, ConvertFiatResponse, GetEarnPositionRequest, GetEarnPositionResponse, GetLaunchHoldersRequest, GetLaunchHoldersResponse, GetTokenHistoryOHLCRequest, GetTokenHistoryOHLCResponse, GetTokenHistoryPriceRequest, GetTokenHistoryPriceResponse, GetTokenHistoryTVLRequest, GetTokenHistoryTVLResponse, GetTokenHistoryVolumeRequest, GetTokenHistoryVolumeResponse, GetTokenMarketsMultiChainRequest, GetTokenMarketsMultiChainResponse, GetTokenMarketsRequest, GetTokenMarketsResponse, GetTokenMultiChainRequest, GetTokenMultiChainResponse, GetTokenRequest, GetTokenResponse, GetTokensMultiChainRequest, GetTokensMultiChainResponse, GetTokensRequest, GetTokensResponse, GetTokenTradesRequest, GetTokenTradesResponse, GetWalletNftsRequest, GetWalletNftsResponse, 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
  */
@@ -273,3 +273,16 @@ export declare const listLaunches: {
273
273
  readonly typeName: "data.v2.DataApiService";
274
274
  };
275
275
  };
276
+ /**
277
+ * @generated from rpc data.v2.DataApiService.GetLaunchHolders
278
+ */
279
+ export declare const getLaunchHolders: {
280
+ readonly localName: "getLaunchHolders";
281
+ readonly name: "GetLaunchHolders";
282
+ readonly kind: MethodKind.Unary;
283
+ readonly I: typeof GetLaunchHoldersRequest;
284
+ readonly O: typeof GetLaunchHoldersResponse;
285
+ readonly service: {
286
+ readonly typeName: "data.v2.DataApiService";
287
+ };
288
+ };
@@ -3,7 +3,7 @@
3
3
  /* eslint-disable */
4
4
  // @ts-nocheck
5
5
  import { MethodKind } from "@bufbuild/protobuf";
6
- import { ConvertFiatRequest, ConvertFiatResponse, GetEarnPositionRequest, GetEarnPositionResponse, GetTokenHistoryOHLCRequest, GetTokenHistoryOHLCResponse, GetTokenHistoryPriceRequest, GetTokenHistoryPriceResponse, GetTokenHistoryTVLRequest, GetTokenHistoryTVLResponse, GetTokenHistoryVolumeRequest, GetTokenHistoryVolumeResponse, GetTokenMarketsMultiChainRequest, GetTokenMarketsMultiChainResponse, GetTokenMarketsRequest, GetTokenMarketsResponse, GetTokenMultiChainRequest, GetTokenMultiChainResponse, GetTokenRequest, GetTokenResponse, GetTokensMultiChainRequest, GetTokensMultiChainResponse, GetTokensRequest, GetTokensResponse, GetTokenTradesRequest, GetTokenTradesResponse, GetWalletNftsRequest, GetWalletNftsResponse, ListEarnPositionsRequest, ListEarnPositionsResponse, ListEarnVaultsRequest, ListEarnVaultsResponse, ListLaunchesRequest, ListLaunchesResponse, ListLaunchpadsRequest, ListLaunchpadsResponse, ListPoolsRequest, ListPoolsResponse, ListTokensRequest, ListTokensResponse, ListTransactionsRequest, ListTransactionsResponse } from "./api_pb.js";
6
+ import { ConvertFiatRequest, ConvertFiatResponse, GetEarnPositionRequest, GetEarnPositionResponse, GetLaunchHoldersRequest, GetLaunchHoldersResponse, GetTokenHistoryOHLCRequest, GetTokenHistoryOHLCResponse, GetTokenHistoryPriceRequest, GetTokenHistoryPriceResponse, GetTokenHistoryTVLRequest, GetTokenHistoryTVLResponse, GetTokenHistoryVolumeRequest, GetTokenHistoryVolumeResponse, GetTokenMarketsMultiChainRequest, GetTokenMarketsMultiChainResponse, GetTokenMarketsRequest, GetTokenMarketsResponse, GetTokenMultiChainRequest, GetTokenMultiChainResponse, GetTokenRequest, GetTokenResponse, GetTokensMultiChainRequest, GetTokensMultiChainResponse, GetTokensRequest, GetTokensResponse, GetTokenTradesRequest, GetTokenTradesResponse, GetWalletNftsRequest, GetWalletNftsResponse, 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
  */
@@ -277,3 +277,16 @@ export const listLaunches = {
277
277
  typeName: "data.v2.DataApiService"
278
278
  }
279
279
  };
280
+ /**
281
+ * @generated from rpc data.v2.DataApiService.GetLaunchHolders
282
+ */
283
+ export const getLaunchHolders = {
284
+ localName: "getLaunchHolders",
285
+ name: "GetLaunchHolders",
286
+ kind: MethodKind.Unary,
287
+ I: GetLaunchHoldersRequest,
288
+ O: GetLaunchHoldersResponse,
289
+ service: {
290
+ typeName: "data.v2.DataApiService"
291
+ }
292
+ };
@@ -1,4 +1,4 @@
1
- import { ConvertFiatRequest, ConvertFiatResponse, GetEarnPositionRequest, GetEarnPositionResponse, GetTokenHistoryOHLCRequest, GetTokenHistoryOHLCResponse, GetTokenHistoryPriceRequest, GetTokenHistoryPriceResponse, GetTokenHistoryTVLRequest, GetTokenHistoryTVLResponse, GetTokenHistoryVolumeRequest, GetTokenHistoryVolumeResponse, GetTokenMarketsMultiChainRequest, GetTokenMarketsMultiChainResponse, GetTokenMarketsRequest, GetTokenMarketsResponse, GetTokenMultiChainRequest, GetTokenMultiChainResponse, GetTokenRequest, GetTokenResponse, GetTokensMultiChainRequest, GetTokensMultiChainResponse, GetTokensRequest, GetTokensResponse, GetTokenTradesRequest, GetTokenTradesResponse, GetWalletNftsRequest, GetWalletNftsResponse, ListEarnPositionsRequest, ListEarnPositionsResponse, ListEarnVaultsRequest, ListEarnVaultsResponse, ListLaunchesRequest, ListLaunchesResponse, ListLaunchpadsRequest, ListLaunchpadsResponse, ListPoolsRequest, ListPoolsResponse, ListTokensRequest, ListTokensResponse, ListTransactionsRequest, ListTransactionsResponse } from "./api_pb.js";
1
+ import { ConvertFiatRequest, ConvertFiatResponse, GetEarnPositionRequest, GetEarnPositionResponse, GetLaunchHoldersRequest, GetLaunchHoldersResponse, GetTokenHistoryOHLCRequest, GetTokenHistoryOHLCResponse, GetTokenHistoryPriceRequest, GetTokenHistoryPriceResponse, GetTokenHistoryTVLRequest, GetTokenHistoryTVLResponse, GetTokenHistoryVolumeRequest, GetTokenHistoryVolumeResponse, GetTokenMarketsMultiChainRequest, GetTokenMarketsMultiChainResponse, GetTokenMarketsRequest, GetTokenMarketsResponse, GetTokenMultiChainRequest, GetTokenMultiChainResponse, GetTokenRequest, GetTokenResponse, GetTokensMultiChainRequest, GetTokensMultiChainResponse, GetTokensRequest, GetTokensResponse, GetTokenTradesRequest, GetTokenTradesResponse, GetWalletNftsRequest, GetWalletNftsResponse, 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
@@ -195,5 +195,14 @@ export declare const DataApiService: {
195
195
  readonly O: typeof ListLaunchesResponse;
196
196
  readonly kind: MethodKind.Unary;
197
197
  };
198
+ /**
199
+ * @generated from rpc data.v2.DataApiService.GetLaunchHolders
200
+ */
201
+ readonly getLaunchHolders: {
202
+ readonly name: "GetLaunchHolders";
203
+ readonly I: typeof GetLaunchHoldersRequest;
204
+ readonly O: typeof GetLaunchHoldersResponse;
205
+ readonly kind: MethodKind.Unary;
206
+ };
198
207
  };
199
208
  };
@@ -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 { ConvertFiatRequest, ConvertFiatResponse, GetEarnPositionRequest, GetEarnPositionResponse, GetTokenHistoryOHLCRequest, GetTokenHistoryOHLCResponse, GetTokenHistoryPriceRequest, GetTokenHistoryPriceResponse, GetTokenHistoryTVLRequest, GetTokenHistoryTVLResponse, GetTokenHistoryVolumeRequest, GetTokenHistoryVolumeResponse, GetTokenMarketsMultiChainRequest, GetTokenMarketsMultiChainResponse, GetTokenMarketsRequest, GetTokenMarketsResponse, GetTokenMultiChainRequest, GetTokenMultiChainResponse, GetTokenRequest, GetTokenResponse, GetTokensMultiChainRequest, GetTokensMultiChainResponse, GetTokensRequest, GetTokensResponse, GetTokenTradesRequest, GetTokenTradesResponse, GetWalletNftsRequest, GetWalletNftsResponse, ListEarnPositionsRequest, ListEarnPositionsResponse, ListEarnVaultsRequest, ListEarnVaultsResponse, ListLaunchesRequest, ListLaunchesResponse, ListLaunchpadsRequest, ListLaunchpadsResponse, ListPoolsRequest, ListPoolsResponse, ListTokensRequest, ListTokensResponse, ListTransactionsRequest, ListTransactionsResponse } from "./api_pb.js";
5
+ import { ConvertFiatRequest, ConvertFiatResponse, GetEarnPositionRequest, GetEarnPositionResponse, GetLaunchHoldersRequest, GetLaunchHoldersResponse, GetTokenHistoryOHLCRequest, GetTokenHistoryOHLCResponse, GetTokenHistoryPriceRequest, GetTokenHistoryPriceResponse, GetTokenHistoryTVLRequest, GetTokenHistoryTVLResponse, GetTokenHistoryVolumeRequest, GetTokenHistoryVolumeResponse, GetTokenMarketsMultiChainRequest, GetTokenMarketsMultiChainResponse, GetTokenMarketsRequest, GetTokenMarketsResponse, GetTokenMultiChainRequest, GetTokenMultiChainResponse, GetTokenRequest, GetTokenResponse, GetTokensMultiChainRequest, GetTokensMultiChainResponse, GetTokensRequest, GetTokensResponse, GetTokenTradesRequest, GetTokenTradesResponse, GetWalletNftsRequest, GetWalletNftsResponse, 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
@@ -199,5 +199,14 @@ export const DataApiService = {
199
199
  O: ListLaunchesResponse,
200
200
  kind: MethodKind.Unary,
201
201
  },
202
+ /**
203
+ * @generated from rpc data.v2.DataApiService.GetLaunchHolders
204
+ */
205
+ getLaunchHolders: {
206
+ name: "GetLaunchHolders",
207
+ I: GetLaunchHoldersRequest,
208
+ O: GetLaunchHoldersResponse,
209
+ kind: MethodKind.Unary,
210
+ },
202
211
  }
203
212
  };
@@ -1,8 +1,9 @@
1
1
  import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf";
2
2
  import { Message, proto3, Timestamp } from "@bufbuild/protobuf";
3
- import { FiatAmount, FiatCurrency, HistoryDuration, Launch, LaunchesOrderBy, LaunchListFilter, Launchpad, MultichainToken, MultichainTokenMarket, Nft, PoolListFilter, PoolsSort, RankedMultichainToken, RankedPool, Token, TokenListFilter, TokenMarket, TokensSort, TokenTrade, TransactionEventType, UniswapTransaction } from "./types_pb.js";
3
+ import { FiatAmount, FiatCurrency, HistoryDuration, Launch, LaunchesOrderBy, LaunchHolder, LaunchListFilter, Launchpad, MultichainToken, MultichainTokenMarket, Nft, PoolListFilter, PoolsSort, RankedMultichainToken, RankedPool, Token, TokenListFilter, TokenMarket, TokensSort, TokenTrade, TransactionEventType, UniswapTransaction } from "./types_pb.js";
4
4
  import { PageRequest, PageResponse } from "./common_pb.js";
5
5
  import { EarnPosition, EarnVault } from "./earn_pb.js";
6
+ import { TimestampedValue } from "../v1/types_pb.js";
6
7
  import { ProtocolVersion } from "../v1/poolTypes_pb.js";
7
8
  /**
8
9
  * @generated from message data.v2.GetTokenMarketsRequest
@@ -1111,6 +1112,113 @@ export declare class ListLaunchesResponse extends Message<ListLaunchesResponse>
1111
1112
  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListLaunchesResponse;
1112
1113
  static equals(a: ListLaunchesResponse | PlainMessage<ListLaunchesResponse> | undefined, b: ListLaunchesResponse | PlainMessage<ListLaunchesResponse> | undefined): boolean;
1113
1114
  }
1115
+ /**
1116
+ * Holder data for ONE launch token (the TDP Holders module), computed at
1117
+ * query time over the raw launch-transfers feed (ClickHouse,
1118
+ * reorg-excluded) behind a short SWR cache. Only tokens created via the
1119
+ * Uniswap token factory (CCA + bonding-curve launches) have transfer rows.
1120
+ *
1121
+ * @generated from message data.v2.GetLaunchHoldersRequest
1122
+ */
1123
+ export declare class GetLaunchHoldersRequest extends Message<GetLaunchHoldersRequest> {
1124
+ /**
1125
+ * @generated from field: uint32 chain_id = 1;
1126
+ */
1127
+ chainId: number;
1128
+ /**
1129
+ * @generated from field: string token_address = 2;
1130
+ */
1131
+ tokenAddress: string;
1132
+ constructor(data?: PartialMessage<GetLaunchHoldersRequest>);
1133
+ static readonly runtime: typeof proto3;
1134
+ static readonly typeName = "data.v2.GetLaunchHoldersRequest";
1135
+ static readonly fields: FieldList;
1136
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetLaunchHoldersRequest;
1137
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetLaunchHoldersRequest;
1138
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetLaunchHoldersRequest;
1139
+ static equals(a: GetLaunchHoldersRequest | PlainMessage<GetLaunchHoldersRequest> | undefined, b: GetLaunchHoldersRequest | PlainMessage<GetLaunchHoldersRequest> | undefined): boolean;
1140
+ }
1141
+ /**
1142
+ * Absence contract mirrors the Launch holder fields: when the token has no
1143
+ * ingested transfers (non-factory token, ingestion lag, or every row
1144
+ * reorged out) holders is empty and every optional field is unset, never a
1145
+ * fake 0, so clients can tell no-data from a real zero. Upstream failures
1146
+ * fail the RPC instead of serving empty.
1147
+ *
1148
+ * @generated from message data.v2.GetLaunchHoldersResponse
1149
+ */
1150
+ export declare class GetLaunchHoldersResponse extends Message<GetLaunchHoldersResponse> {
1151
+ /**
1152
+ * Top-100 holders by balance, descending. Raw Etherscan-style rows over
1153
+ * net transfer balances, INCLUDING burned tokens: the 0x…dEaD burn sink
1154
+ * appears while it holds a balance, and cumulative burns to the zero
1155
+ * address appear as a synthetic zero-address row — so held + burned rows
1156
+ * sum to minted_supply. Burn rows are flagged (is_burn_address); clients
1157
+ * that want them out filter the flag.
1158
+ *
1159
+ * @generated from field: repeated data.v2.LaunchHolder holders = 1;
1160
+ */
1161
+ holders: LaunchHolder[];
1162
+ /**
1163
+ * Exact holder count, same semantics as Launch.holder_count (addresses
1164
+ * with a positive net balance; burn sinks like 0x…dEaD included while
1165
+ * they hold a balance, the zero address never). The synthetic zero-address
1166
+ * burn row is never counted.
1167
+ *
1168
+ * @generated from field: optional int32 holder_count = 2;
1169
+ */
1170
+ holderCount?: number;
1171
+ /**
1172
+ * holder_count minus the count as of 24h ago (signed).
1173
+ *
1174
+ * @generated from field: optional int32 holder_count_change_24h = 3;
1175
+ */
1176
+ holderCountChange24h?: number;
1177
+ /**
1178
+ * Trailing 7-day holder-count trend for the stat sparkline: one point per
1179
+ * UTC-now-anchored 24h mark, oldest first, last point = holder_count now.
1180
+ *
1181
+ * @generated from field: repeated data.v1.TimestampedValue holder_count_trend = 4;
1182
+ */
1183
+ holderCountTrend: TimestampedValue[];
1184
+ /**
1185
+ * Share of minted_supply held by the top 10 NON-burn holder rows, percent
1186
+ * in [0, 100]. Burned tokens can never concentrate, so they are excluded
1187
+ * here (unlike the rows above); the locked LP position is NOT excluded —
1188
+ * clients that label it can recompute from the raw rows.
1189
+ *
1190
+ * @generated from field: optional double top10_supply_pct = 5;
1191
+ */
1192
+ top10SupplyPct?: number;
1193
+ /**
1194
+ * Cumulative value ever minted, raw base units as a decimal string — the
1195
+ * denominator of every supply_pct in this response. Burn-inclusive by
1196
+ * construction: holder balances + burned rows sum to it. On-chain
1197
+ * totalSupply-style circulating figures are client-derivable as
1198
+ * minted_supply - burned_to_zero.
1199
+ *
1200
+ * @generated from field: optional string minted_supply = 6;
1201
+ */
1202
+ mintedSupply?: string;
1203
+ /**
1204
+ * Same definitions as Launch.burned_to_zero / burned_to_dead.
1205
+ *
1206
+ * @generated from field: optional string burned_to_zero = 7;
1207
+ */
1208
+ burnedToZero?: string;
1209
+ /**
1210
+ * @generated from field: optional string burned_to_dead = 8;
1211
+ */
1212
+ burnedToDead?: string;
1213
+ constructor(data?: PartialMessage<GetLaunchHoldersResponse>);
1214
+ static readonly runtime: typeof proto3;
1215
+ static readonly typeName = "data.v2.GetLaunchHoldersResponse";
1216
+ static readonly fields: FieldList;
1217
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetLaunchHoldersResponse;
1218
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetLaunchHoldersResponse;
1219
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetLaunchHoldersResponse;
1220
+ static equals(a: GetLaunchHoldersResponse | PlainMessage<GetLaunchHoldersResponse> | undefined, b: GetLaunchHoldersResponse | PlainMessage<GetLaunchHoldersResponse> | undefined): boolean;
1221
+ }
1114
1222
  /**
1115
1223
  * @generated from message data.v2.ListTokensRequest
1116
1224
  */
@@ -3,9 +3,10 @@
3
3
  /* eslint-disable */
4
4
  // @ts-nocheck
5
5
  import { Message, proto3, protoInt64, Timestamp } from "@bufbuild/protobuf";
6
- import { FiatAmount, FiatCurrency, HistoryDuration, Launch, LaunchesOrderBy, LaunchListFilter, Launchpad, MultichainToken, MultichainTokenMarket, Nft, PoolListFilter, PoolsSort, RankedMultichainToken, RankedPool, Token, TokenListFilter, TokenMarket, TokensSort, TokenTrade, TransactionEventType, UniswapTransaction } from "./types_pb.js";
6
+ import { FiatAmount, FiatCurrency, HistoryDuration, Launch, LaunchesOrderBy, LaunchHolder, LaunchListFilter, Launchpad, MultichainToken, MultichainTokenMarket, Nft, PoolListFilter, PoolsSort, RankedMultichainToken, RankedPool, Token, TokenListFilter, TokenMarket, TokensSort, TokenTrade, TransactionEventType, UniswapTransaction } from "./types_pb.js";
7
7
  import { PageRequest, PageResponse } from "./common_pb.js";
8
8
  import { EarnPosition, EarnVault } from "./earn_pb.js";
9
+ import { TimestampedValue } from "../v1/types_pb.js";
9
10
  import { ProtocolVersion } from "../v1/poolTypes_pb.js";
10
11
  /**
11
12
  * @generated from message data.v2.GetTokenMarketsRequest
@@ -1455,6 +1456,103 @@ ListLaunchesResponse.fields = proto3.util.newFieldList(() => [
1455
1456
  { no: 1, name: "launches", kind: "message", T: Launch, repeated: true },
1456
1457
  { no: 2, name: "page", kind: "message", T: PageResponse },
1457
1458
  ]);
1459
+ /**
1460
+ * Holder data for ONE launch token (the TDP Holders module), computed at
1461
+ * query time over the raw launch-transfers feed (ClickHouse,
1462
+ * reorg-excluded) behind a short SWR cache. Only tokens created via the
1463
+ * Uniswap token factory (CCA + bonding-curve launches) have transfer rows.
1464
+ *
1465
+ * @generated from message data.v2.GetLaunchHoldersRequest
1466
+ */
1467
+ export class GetLaunchHoldersRequest extends Message {
1468
+ constructor(data) {
1469
+ super();
1470
+ /**
1471
+ * @generated from field: uint32 chain_id = 1;
1472
+ */
1473
+ this.chainId = 0;
1474
+ /**
1475
+ * @generated from field: string token_address = 2;
1476
+ */
1477
+ this.tokenAddress = "";
1478
+ proto3.util.initPartial(data, this);
1479
+ }
1480
+ static fromBinary(bytes, options) {
1481
+ return new GetLaunchHoldersRequest().fromBinary(bytes, options);
1482
+ }
1483
+ static fromJson(jsonValue, options) {
1484
+ return new GetLaunchHoldersRequest().fromJson(jsonValue, options);
1485
+ }
1486
+ static fromJsonString(jsonString, options) {
1487
+ return new GetLaunchHoldersRequest().fromJsonString(jsonString, options);
1488
+ }
1489
+ static equals(a, b) {
1490
+ return proto3.util.equals(GetLaunchHoldersRequest, a, b);
1491
+ }
1492
+ }
1493
+ GetLaunchHoldersRequest.runtime = proto3;
1494
+ GetLaunchHoldersRequest.typeName = "data.v2.GetLaunchHoldersRequest";
1495
+ GetLaunchHoldersRequest.fields = proto3.util.newFieldList(() => [
1496
+ { no: 1, name: "chain_id", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
1497
+ { no: 2, name: "token_address", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1498
+ ]);
1499
+ /**
1500
+ * Absence contract mirrors the Launch holder fields: when the token has no
1501
+ * ingested transfers (non-factory token, ingestion lag, or every row
1502
+ * reorged out) holders is empty and every optional field is unset, never a
1503
+ * fake 0, so clients can tell no-data from a real zero. Upstream failures
1504
+ * fail the RPC instead of serving empty.
1505
+ *
1506
+ * @generated from message data.v2.GetLaunchHoldersResponse
1507
+ */
1508
+ export class GetLaunchHoldersResponse extends Message {
1509
+ constructor(data) {
1510
+ super();
1511
+ /**
1512
+ * Top-100 holders by balance, descending. Raw Etherscan-style rows over
1513
+ * net transfer balances, INCLUDING burned tokens: the 0x…dEaD burn sink
1514
+ * appears while it holds a balance, and cumulative burns to the zero
1515
+ * address appear as a synthetic zero-address row — so held + burned rows
1516
+ * sum to minted_supply. Burn rows are flagged (is_burn_address); clients
1517
+ * that want them out filter the flag.
1518
+ *
1519
+ * @generated from field: repeated data.v2.LaunchHolder holders = 1;
1520
+ */
1521
+ this.holders = [];
1522
+ /**
1523
+ * Trailing 7-day holder-count trend for the stat sparkline: one point per
1524
+ * UTC-now-anchored 24h mark, oldest first, last point = holder_count now.
1525
+ *
1526
+ * @generated from field: repeated data.v1.TimestampedValue holder_count_trend = 4;
1527
+ */
1528
+ this.holderCountTrend = [];
1529
+ proto3.util.initPartial(data, this);
1530
+ }
1531
+ static fromBinary(bytes, options) {
1532
+ return new GetLaunchHoldersResponse().fromBinary(bytes, options);
1533
+ }
1534
+ static fromJson(jsonValue, options) {
1535
+ return new GetLaunchHoldersResponse().fromJson(jsonValue, options);
1536
+ }
1537
+ static fromJsonString(jsonString, options) {
1538
+ return new GetLaunchHoldersResponse().fromJsonString(jsonString, options);
1539
+ }
1540
+ static equals(a, b) {
1541
+ return proto3.util.equals(GetLaunchHoldersResponse, a, b);
1542
+ }
1543
+ }
1544
+ GetLaunchHoldersResponse.runtime = proto3;
1545
+ GetLaunchHoldersResponse.typeName = "data.v2.GetLaunchHoldersResponse";
1546
+ GetLaunchHoldersResponse.fields = proto3.util.newFieldList(() => [
1547
+ { no: 1, name: "holders", kind: "message", T: LaunchHolder, repeated: true },
1548
+ { no: 2, name: "holder_count", kind: "scalar", T: 5 /* ScalarType.INT32 */, opt: true },
1549
+ { no: 3, name: "holder_count_change_24h", kind: "scalar", T: 5 /* ScalarType.INT32 */, opt: true },
1550
+ { no: 4, name: "holder_count_trend", kind: "message", T: TimestampedValue, repeated: true },
1551
+ { no: 5, name: "top10_supply_pct", kind: "scalar", T: 1 /* ScalarType.DOUBLE */, opt: true },
1552
+ { no: 6, name: "minted_supply", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1553
+ { no: 7, name: "burned_to_zero", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1554
+ { no: 8, name: "burned_to_dead", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1555
+ ]);
1458
1556
  /**
1459
1557
  * @generated from message data.v2.ListTokensRequest
1460
1558
  */
@@ -410,6 +410,13 @@ export declare class TokenRankStats extends Message<TokenRankStats> {
410
410
  * @generated from field: optional double price_change_1d = 10;
411
411
  */
412
412
  priceChange1d?: number;
413
+ /**
414
+ * USD spot price of the highest-TVL chain member (current_token_prices).
415
+ * Populated only on PRICE-ordered requests; it is exactly the ranked value.
416
+ *
417
+ * @generated from field: optional double price = 11;
418
+ */
419
+ price?: number;
413
420
  constructor(data?: PartialMessage<TokenRankStats>);
414
421
  static readonly runtime: typeof proto3;
415
422
  static readonly typeName = "data.v2.TokenRankStats";
@@ -1582,6 +1589,50 @@ export declare class Launch extends Message<Launch> {
1582
1589
  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): Launch;
1583
1590
  static equals(a: Launch | PlainMessage<Launch> | undefined, b: Launch | PlainMessage<Launch> | undefined): boolean;
1584
1591
  }
1592
+ /**
1593
+ * One row of a launch token's holder list (GetLaunchHolders).
1594
+ *
1595
+ * @generated from message data.v2.LaunchHolder
1596
+ */
1597
+ export declare class LaunchHolder extends Message<LaunchHolder> {
1598
+ /**
1599
+ * EIP-55 checksummed, so clients can equality-match against
1600
+ * Launch.creator_address and well-known addresses (LP, burn sinks).
1601
+ *
1602
+ * @generated from field: string address = 1;
1603
+ */
1604
+ address: string;
1605
+ /**
1606
+ * Net balance, raw base units as a decimal string. For the synthetic
1607
+ * zero-address burn row this is the cumulative amount burned to 0x0.
1608
+ *
1609
+ * @generated from field: string balance = 2;
1610
+ */
1611
+ balance: string;
1612
+ /**
1613
+ * balance as a percent of minted_supply, in [0, 100].
1614
+ *
1615
+ * @generated from field: double supply_pct = 3;
1616
+ */
1617
+ supplyPct: number;
1618
+ /**
1619
+ * True for burn-sink rows (the zero address and 0x…dEaD). Burn rows are
1620
+ * served in the list (burned tokens stay visible) but excluded from
1621
+ * top10_supply_pct; the synthetic zero-address row is also excluded from
1622
+ * holder_count (0x…dEaD counts, matching Launch.holder_count).
1623
+ *
1624
+ * @generated from field: bool is_burn_address = 4;
1625
+ */
1626
+ isBurnAddress: boolean;
1627
+ constructor(data?: PartialMessage<LaunchHolder>);
1628
+ static readonly runtime: typeof proto3;
1629
+ static readonly typeName = "data.v2.LaunchHolder";
1630
+ static readonly fields: FieldList;
1631
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): LaunchHolder;
1632
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): LaunchHolder;
1633
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): LaunchHolder;
1634
+ static equals(a: LaunchHolder | PlainMessage<LaunchHolder> | undefined, b: LaunchHolder | PlainMessage<LaunchHolder> | undefined): boolean;
1635
+ }
1585
1636
  /**
1586
1637
  * Bonding-curve lifecycle overlay for launches attributed to the Uniswap
1587
1638
  * bonding-curve hook. Amounts are raw base-unit decimal strings. Curve
@@ -510,6 +510,7 @@ TokenRankStats.fields = proto3.util.newFieldList(() => [
510
510
  { no: 8, name: "fdv", kind: "scalar", T: 1 /* ScalarType.DOUBLE */, opt: true },
511
511
  { no: 9, name: "price_change_1h", kind: "scalar", T: 1 /* ScalarType.DOUBLE */, opt: true },
512
512
  { no: 10, name: "price_change_1d", kind: "scalar", T: 1 /* ScalarType.DOUBLE */, opt: true },
513
+ { no: 11, name: "price", kind: "scalar", T: 1 /* ScalarType.DOUBLE */, opt: true },
513
514
  ]);
514
515
  /**
515
516
  * Sort field and direction for ListTokens.
@@ -1717,6 +1718,66 @@ Launch.fields = proto3.util.newFieldList(() => [
1717
1718
  { no: 19, name: "burned_to_zero", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1718
1719
  { no: 20, name: "burned_to_dead", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1719
1720
  ]);
1721
+ /**
1722
+ * One row of a launch token's holder list (GetLaunchHolders).
1723
+ *
1724
+ * @generated from message data.v2.LaunchHolder
1725
+ */
1726
+ export class LaunchHolder extends Message {
1727
+ constructor(data) {
1728
+ super();
1729
+ /**
1730
+ * EIP-55 checksummed, so clients can equality-match against
1731
+ * Launch.creator_address and well-known addresses (LP, burn sinks).
1732
+ *
1733
+ * @generated from field: string address = 1;
1734
+ */
1735
+ this.address = "";
1736
+ /**
1737
+ * Net balance, raw base units as a decimal string. For the synthetic
1738
+ * zero-address burn row this is the cumulative amount burned to 0x0.
1739
+ *
1740
+ * @generated from field: string balance = 2;
1741
+ */
1742
+ this.balance = "";
1743
+ /**
1744
+ * balance as a percent of minted_supply, in [0, 100].
1745
+ *
1746
+ * @generated from field: double supply_pct = 3;
1747
+ */
1748
+ this.supplyPct = 0;
1749
+ /**
1750
+ * True for burn-sink rows (the zero address and 0x…dEaD). Burn rows are
1751
+ * served in the list (burned tokens stay visible) but excluded from
1752
+ * top10_supply_pct; the synthetic zero-address row is also excluded from
1753
+ * holder_count (0x…dEaD counts, matching Launch.holder_count).
1754
+ *
1755
+ * @generated from field: bool is_burn_address = 4;
1756
+ */
1757
+ this.isBurnAddress = false;
1758
+ proto3.util.initPartial(data, this);
1759
+ }
1760
+ static fromBinary(bytes, options) {
1761
+ return new LaunchHolder().fromBinary(bytes, options);
1762
+ }
1763
+ static fromJson(jsonValue, options) {
1764
+ return new LaunchHolder().fromJson(jsonValue, options);
1765
+ }
1766
+ static fromJsonString(jsonString, options) {
1767
+ return new LaunchHolder().fromJsonString(jsonString, options);
1768
+ }
1769
+ static equals(a, b) {
1770
+ return proto3.util.equals(LaunchHolder, a, b);
1771
+ }
1772
+ }
1773
+ LaunchHolder.runtime = proto3;
1774
+ LaunchHolder.typeName = "data.v2.LaunchHolder";
1775
+ LaunchHolder.fields = proto3.util.newFieldList(() => [
1776
+ { no: 1, name: "address", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1777
+ { no: 2, name: "balance", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1778
+ { no: 3, name: "supply_pct", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
1779
+ { no: 4, name: "is_burn_address", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
1780
+ ]);
1720
1781
  /**
1721
1782
  * Bonding-curve lifecycle overlay for launches attributed to the Uniswap
1722
1783
  * bonding-curve hook. Amounts are raw base-unit decimal strings. Curve
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uniswap/client-data-api",
3
- "version": "0.0.149",
3
+ "version": "0.0.150",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },