@uniswap/client-data-api 0.0.164 → 0.0.166

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 { CheckLaunchNameTickerRequest, CheckLaunchNameTickerResponse, ConvertFiatRequest, ConvertFiatResponse, GetEarnPositionRequest, GetEarnPositionResponse, GetLaunchActivityStatsRequest, GetLaunchActivityStatsResponse, GetLaunchClaimsRequest, GetLaunchClaimsResponse, 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
+ import { CheckLaunchNameTickerRequest, CheckLaunchNameTickerResponse, ConvertFiatRequest, ConvertFiatResponse, GetEarnPositionRequest, GetEarnPositionResponse, GetLaunchActivityStatsRequest, GetLaunchActivityStatsResponse, GetLaunchClaimsRequest, GetLaunchClaimsResponse, GetLaunchHoldersRequest, GetLaunchHoldersResponse, 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";
3
3
  /**
4
4
  * @generated from rpc data.v2.DataApiService.GetToken
5
5
  */
@@ -312,6 +312,19 @@ export declare const getLaunchClaims: {
312
312
  readonly typeName: "data.v2.DataApiService";
313
313
  };
314
314
  };
315
+ /**
316
+ * @generated from rpc data.v2.DataApiService.GetTokenTopTraders
317
+ */
318
+ export declare const getTokenTopTraders: {
319
+ readonly localName: "getTokenTopTraders";
320
+ readonly name: "GetTokenTopTraders";
321
+ readonly kind: MethodKind.Unary;
322
+ readonly I: typeof GetTokenTopTradersRequest;
323
+ readonly O: typeof GetTokenTopTradersResponse;
324
+ readonly service: {
325
+ readonly typeName: "data.v2.DataApiService";
326
+ };
327
+ };
315
328
  /**
316
329
  * @generated from rpc data.v2.DataApiService.CheckLaunchNameTicker
317
330
  */
@@ -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, 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
+ import { CheckLaunchNameTickerRequest, CheckLaunchNameTickerResponse, ConvertFiatRequest, ConvertFiatResponse, GetEarnPositionRequest, GetEarnPositionResponse, GetLaunchActivityStatsRequest, GetLaunchActivityStatsResponse, GetLaunchClaimsRequest, GetLaunchClaimsResponse, GetLaunchHoldersRequest, GetLaunchHoldersResponse, 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";
7
7
  /**
8
8
  * @generated from rpc data.v2.DataApiService.GetToken
9
9
  */
@@ -316,6 +316,19 @@ export const getLaunchClaims = {
316
316
  typeName: "data.v2.DataApiService"
317
317
  }
318
318
  };
319
+ /**
320
+ * @generated from rpc data.v2.DataApiService.GetTokenTopTraders
321
+ */
322
+ export const getTokenTopTraders = {
323
+ localName: "getTokenTopTraders",
324
+ name: "GetTokenTopTraders",
325
+ kind: MethodKind.Unary,
326
+ I: GetTokenTopTradersRequest,
327
+ O: GetTokenTopTradersResponse,
328
+ service: {
329
+ typeName: "data.v2.DataApiService"
330
+ }
331
+ };
319
332
  /**
320
333
  * @generated from rpc data.v2.DataApiService.CheckLaunchNameTicker
321
334
  */
@@ -1,4 +1,4 @@
1
- import { CheckLaunchNameTickerRequest, CheckLaunchNameTickerResponse, ConvertFiatRequest, ConvertFiatResponse, GetEarnPositionRequest, GetEarnPositionResponse, GetLaunchActivityStatsRequest, GetLaunchActivityStatsResponse, GetLaunchClaimsRequest, GetLaunchClaimsResponse, 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";
1
+ import { CheckLaunchNameTickerRequest, CheckLaunchNameTickerResponse, ConvertFiatRequest, ConvertFiatResponse, GetEarnPositionRequest, GetEarnPositionResponse, GetLaunchActivityStatsRequest, GetLaunchActivityStatsResponse, GetLaunchClaimsRequest, GetLaunchClaimsResponse, GetLaunchHoldersRequest, GetLaunchHoldersResponse, 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
2
  import { MethodKind } from "@bufbuild/protobuf";
3
3
  /**
4
4
  * @generated from service data.v2.DataApiService
@@ -222,6 +222,15 @@ export declare const DataApiService: {
222
222
  readonly O: typeof GetLaunchClaimsResponse;
223
223
  readonly kind: MethodKind.Unary;
224
224
  };
225
+ /**
226
+ * @generated from rpc data.v2.DataApiService.GetTokenTopTraders
227
+ */
228
+ readonly getTokenTopTraders: {
229
+ readonly name: "GetTokenTopTraders";
230
+ readonly I: typeof GetTokenTopTradersRequest;
231
+ readonly O: typeof GetTokenTopTradersResponse;
232
+ readonly kind: MethodKind.Unary;
233
+ };
225
234
  /**
226
235
  * @generated from rpc data.v2.DataApiService.CheckLaunchNameTicker
227
236
  */
@@ -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, 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";
5
+ import { CheckLaunchNameTickerRequest, CheckLaunchNameTickerResponse, ConvertFiatRequest, ConvertFiatResponse, GetEarnPositionRequest, GetEarnPositionResponse, GetLaunchActivityStatsRequest, GetLaunchActivityStatsResponse, GetLaunchClaimsRequest, GetLaunchClaimsResponse, GetLaunchHoldersRequest, GetLaunchHoldersResponse, 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
6
  import { MethodKind } from "@bufbuild/protobuf";
7
7
  /**
8
8
  * @generated from service data.v2.DataApiService
@@ -226,6 +226,15 @@ export const DataApiService = {
226
226
  O: GetLaunchClaimsResponse,
227
227
  kind: MethodKind.Unary,
228
228
  },
229
+ /**
230
+ * @generated from rpc data.v2.DataApiService.GetTokenTopTraders
231
+ */
232
+ getTokenTopTraders: {
233
+ name: "GetTokenTopTraders",
234
+ I: GetTokenTopTradersRequest,
235
+ O: GetTokenTopTradersResponse,
236
+ kind: MethodKind.Unary,
237
+ },
229
238
  /**
230
239
  * @generated from rpc data.v2.DataApiService.CheckLaunchNameTicker
231
240
  */
@@ -1123,7 +1123,14 @@ export declare class ListLaunchesRequest extends Message<ListLaunchesRequest> {
1123
1123
  */
1124
1124
  page?: PageRequest;
1125
1125
  /**
1126
- * empty = all launchpads
1126
+ * Launchpads to serve. Empty = the server-side default scope (the
1127
+ * listable set plus uniswap-cca), so clients don't have to pre-scope with
1128
+ * ListLaunchpads. The Uniswap brand spans two ids behind one "Uniswap"
1129
+ * filter — uniswap-bonding-curve (instant launches) and uniswap-cca (CCA
1130
+ * crowd-launch auctions) — so an explicit filter naming either id expands
1131
+ * to the full brand set (both ids); there is no mechanism-scoped opt-out.
1132
+ * If a consumer ever needs one, the expansion moves client-side (the
1133
+ * filter chip sends both ids itself).
1127
1134
  *
1128
1135
  * @generated from field: repeated string launchpad_ids = 5;
1129
1136
  */
@@ -1513,6 +1520,180 @@ export declare class GetLaunchClaimsResponse extends Message<GetLaunchClaimsResp
1513
1520
  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetLaunchClaimsResponse;
1514
1521
  static equals(a: GetLaunchClaimsResponse | PlainMessage<GetLaunchClaimsResponse> | undefined, b: GetLaunchClaimsResponse | PlainMessage<GetLaunchClaimsResponse> | undefined): boolean;
1515
1522
  }
1523
+ /**
1524
+ * Server-computed Top Traders leaderboard for a launch token: the token's
1525
+ * FULL swap history (no page cap) folded into per-wallet cost-basis PnL,
1526
+ * with CCA auction claims counted as buy-side acquisitions at what each
1527
+ * wallet actually spent (the GetLaunchClaims aggregates). Replaces the
1528
+ * client-side capped GetTokenTrades walk, whose 1,500-trade window
1529
+ * fabricated zero-basis top rows for pre-window buyers. Non-launch tokens
1530
+ * (no CCA auction) are served from their trade history alone — never an
1531
+ * error; a token with no swaps and no claims serves an empty list. EVM-only.
1532
+ *
1533
+ * @generated from message data.v2.GetTokenTopTradersRequest
1534
+ */
1535
+ export declare class GetTokenTopTradersRequest extends Message<GetTokenTopTradersRequest> {
1536
+ /**
1537
+ * @generated from field: uint32 chain_id = 1;
1538
+ */
1539
+ chainId: number;
1540
+ /**
1541
+ * @generated from field: string token_address = 2;
1542
+ */
1543
+ tokenAddress: string;
1544
+ /**
1545
+ * Rows to return, best-ranked first. 0/unset defaults to 100; servers cap
1546
+ * the limit (currently 1000).
1547
+ *
1548
+ * @generated from field: optional int32 limit = 3;
1549
+ */
1550
+ limit?: number;
1551
+ constructor(data?: PartialMessage<GetTokenTopTradersRequest>);
1552
+ static readonly runtime: typeof proto3;
1553
+ static readonly typeName = "data.v2.GetTokenTopTradersRequest";
1554
+ static readonly fields: FieldList;
1555
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetTokenTopTradersRequest;
1556
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetTokenTopTradersRequest;
1557
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetTokenTopTradersRequest;
1558
+ static equals(a: GetTokenTopTradersRequest | PlainMessage<GetTokenTopTradersRequest> | undefined, b: GetTokenTopTradersRequest | PlainMessage<GetTokenTopTradersRequest> | undefined): boolean;
1559
+ }
1560
+ /**
1561
+ * One wallet's aggregate position on the token, derived from a
1562
+ * moving-average cost-basis walk of its chronological trades: buys (and
1563
+ * claim seeds) add to the position's basis; each sell realizes
1564
+ * proceeds − average cost × amount AND consumes basis at the average cost,
1565
+ * so re-entering wallets are accounted correctly. Auction claims are seeded
1566
+ * before the trade walk as buys at the wallet's true auction cost, so
1567
+ * bidders never show zero buys. Tokens sold beyond tracked inventory
1568
+ * (transfers in) carry a zero basis — with the full history and explicit
1569
+ * claims in hand, an unexplained inflow is a transfer, not a hidden buy —
1570
+ * and flag transferred_in.
1571
+ *
1572
+ * @generated from message data.v2.TokenTopTrader
1573
+ */
1574
+ export declare class TokenTopTrader extends Message<TokenTopTrader> {
1575
+ /**
1576
+ * EIP-55 checksummed trading wallet (the tx from-address, not the router).
1577
+ *
1578
+ * @generated from field: string wallet_address = 1;
1579
+ */
1580
+ walletAddress: string;
1581
+ /**
1582
+ * Buy-side figures INCLUDE auction acquisitions: claims add one buy per
1583
+ * terminal bid, their token amount, and their USD spend.
1584
+ *
1585
+ * @generated from field: int32 buy_count = 2;
1586
+ */
1587
+ buyCount: number;
1588
+ /**
1589
+ * @generated from field: int32 sell_count = 3;
1590
+ */
1591
+ sellCount: number;
1592
+ /**
1593
+ * @generated from field: double bought_usd = 4;
1594
+ */
1595
+ boughtUsd: number;
1596
+ /**
1597
+ * @generated from field: double sold_usd = 5;
1598
+ */
1599
+ soldUsd: number;
1600
+ /**
1601
+ * Token amounts are whole (decimal-adjusted) tokens.
1602
+ *
1603
+ * @generated from field: double bought_tokens = 6;
1604
+ */
1605
+ boughtTokens: number;
1606
+ /**
1607
+ * @generated from field: double sold_tokens = 7;
1608
+ */
1609
+ soldTokens: number;
1610
+ /**
1611
+ * Tokens still held per the walk: acquired (bought + claimed +
1612
+ * transferred in) minus sold, floored at 0.
1613
+ *
1614
+ * @generated from field: double remaining_tokens = 8;
1615
+ */
1616
+ remainingTokens: number;
1617
+ /**
1618
+ * USD cost basis of the REMAINING position: grows with buys/claims,
1619
+ * shrinks by average cost × amount on every sell.
1620
+ *
1621
+ * @generated from field: double cost_basis_usd = 9;
1622
+ */
1623
+ costBasisUsd: number;
1624
+ /**
1625
+ * cost_basis_usd ÷ remaining_tokens; 0 for wallets holding nothing (or
1626
+ * with no tracked basis).
1627
+ *
1628
+ * @generated from field: double avg_cost_usd = 10;
1629
+ */
1630
+ avgCostUsd: number;
1631
+ /**
1632
+ * @generated from field: double realized_pnl_usd = 11;
1633
+ */
1634
+ realizedPnlUsd: number;
1635
+ /**
1636
+ * USD the wallet spent in the launch auction (net of exit refunds),
1637
+ * converted at the auction currency's USD rate. 0 when the wallet has no
1638
+ * claims (always 0 for non-CCA tokens).
1639
+ *
1640
+ * @generated from field: double auction_spent_usd = 12;
1641
+ */
1642
+ auctionSpentUsd: number;
1643
+ /**
1644
+ * True when any of the wallet's auction bids reached a terminal state
1645
+ * (claimed, or exited with a nonzero fill).
1646
+ *
1647
+ * @generated from field: bool has_claims = 13;
1648
+ */
1649
+ hasClaims: boolean;
1650
+ /**
1651
+ * Mark-to-market PnL of the remaining position at the token's latest
1652
+ * known price: remaining_tokens × (spot − avg_cost_usd). The documented
1653
+ * ranking tiebreak, served so clients can render it.
1654
+ *
1655
+ * @generated from field: double unrealized_pnl_usd = 14;
1656
+ */
1657
+ unrealizedPnlUsd: number;
1658
+ /**
1659
+ * True when the wallet sold beyond its tracked inventory at least once —
1660
+ * the excess entered the wallet outside the swap tape (a transfer in)
1661
+ * and carries a zero basis. Distinguishes a genuine transfer from a
1662
+ * data gap when cost_basis_usd is 0.
1663
+ *
1664
+ * @generated from field: bool transferred_in = 15;
1665
+ */
1666
+ transferredIn: boolean;
1667
+ constructor(data?: PartialMessage<TokenTopTrader>);
1668
+ static readonly runtime: typeof proto3;
1669
+ static readonly typeName = "data.v2.TokenTopTrader";
1670
+ static readonly fields: FieldList;
1671
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): TokenTopTrader;
1672
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): TokenTopTrader;
1673
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): TokenTopTrader;
1674
+ static equals(a: TokenTopTrader | PlainMessage<TokenTopTrader> | undefined, b: TokenTopTrader | PlainMessage<TokenTopTrader> | undefined): boolean;
1675
+ }
1676
+ /**
1677
+ * @generated from message data.v2.GetTokenTopTradersResponse
1678
+ */
1679
+ export declare class GetTokenTopTradersResponse extends Message<GetTokenTopTradersResponse> {
1680
+ /**
1681
+ * Ranked realized PnL desc, unrealized PnL desc as the tiebreak (orders
1682
+ * never-sold claimers sensibly — all realized 0), capped at the request
1683
+ * limit. Only wallets with at least one trade or claim appear.
1684
+ *
1685
+ * @generated from field: repeated data.v2.TokenTopTrader traders = 1;
1686
+ */
1687
+ traders: TokenTopTrader[];
1688
+ constructor(data?: PartialMessage<GetTokenTopTradersResponse>);
1689
+ static readonly runtime: typeof proto3;
1690
+ static readonly typeName = "data.v2.GetTokenTopTradersResponse";
1691
+ static readonly fields: FieldList;
1692
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetTokenTopTradersResponse;
1693
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetTokenTopTradersResponse;
1694
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetTokenTopTradersResponse;
1695
+ static equals(a: GetTokenTopTradersResponse | PlainMessage<GetTokenTopTradersResponse> | undefined, b: GetTokenTopTradersResponse | PlainMessage<GetTokenTopTradersResponse> | undefined): boolean;
1696
+ }
1516
1697
  /**
1517
1698
  * Anti-vamp create-flow check (LP-1311): has a token with this name + ticker
1518
1699
  * combination launched on the chain within the trailing 8 hours? Matching is
@@ -1440,7 +1440,14 @@ export class ListLaunchesRequest extends Message {
1440
1440
  */
1441
1441
  this.sortBy = LaunchesOrderBy.UNSPECIFIED;
1442
1442
  /**
1443
- * empty = all launchpads
1443
+ * Launchpads to serve. Empty = the server-side default scope (the
1444
+ * listable set plus uniswap-cca), so clients don't have to pre-scope with
1445
+ * ListLaunchpads. The Uniswap brand spans two ids behind one "Uniswap"
1446
+ * filter — uniswap-bonding-curve (instant launches) and uniswap-cca (CCA
1447
+ * crowd-launch auctions) — so an explicit filter naming either id expands
1448
+ * to the full brand set (both ids); there is no mechanism-scoped opt-out.
1449
+ * If a consumer ever needs one, the expansion moves client-side (the
1450
+ * filter chip sends both ids itself).
1444
1451
  *
1445
1452
  * @generated from field: repeated string launchpad_ids = 5;
1446
1453
  */
@@ -1915,6 +1922,228 @@ GetLaunchClaimsResponse.fields = proto3.util.newFieldList(() => [
1915
1922
  { no: 2, name: "total_claimed", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1916
1923
  { no: 3, name: "unique_claimers", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
1917
1924
  ]);
1925
+ /**
1926
+ * Server-computed Top Traders leaderboard for a launch token: the token's
1927
+ * FULL swap history (no page cap) folded into per-wallet cost-basis PnL,
1928
+ * with CCA auction claims counted as buy-side acquisitions at what each
1929
+ * wallet actually spent (the GetLaunchClaims aggregates). Replaces the
1930
+ * client-side capped GetTokenTrades walk, whose 1,500-trade window
1931
+ * fabricated zero-basis top rows for pre-window buyers. Non-launch tokens
1932
+ * (no CCA auction) are served from their trade history alone — never an
1933
+ * error; a token with no swaps and no claims serves an empty list. EVM-only.
1934
+ *
1935
+ * @generated from message data.v2.GetTokenTopTradersRequest
1936
+ */
1937
+ export class GetTokenTopTradersRequest extends Message {
1938
+ constructor(data) {
1939
+ super();
1940
+ /**
1941
+ * @generated from field: uint32 chain_id = 1;
1942
+ */
1943
+ this.chainId = 0;
1944
+ /**
1945
+ * @generated from field: string token_address = 2;
1946
+ */
1947
+ this.tokenAddress = "";
1948
+ proto3.util.initPartial(data, this);
1949
+ }
1950
+ static fromBinary(bytes, options) {
1951
+ return new GetTokenTopTradersRequest().fromBinary(bytes, options);
1952
+ }
1953
+ static fromJson(jsonValue, options) {
1954
+ return new GetTokenTopTradersRequest().fromJson(jsonValue, options);
1955
+ }
1956
+ static fromJsonString(jsonString, options) {
1957
+ return new GetTokenTopTradersRequest().fromJsonString(jsonString, options);
1958
+ }
1959
+ static equals(a, b) {
1960
+ return proto3.util.equals(GetTokenTopTradersRequest, a, b);
1961
+ }
1962
+ }
1963
+ GetTokenTopTradersRequest.runtime = proto3;
1964
+ GetTokenTopTradersRequest.typeName = "data.v2.GetTokenTopTradersRequest";
1965
+ GetTokenTopTradersRequest.fields = proto3.util.newFieldList(() => [
1966
+ { no: 1, name: "chain_id", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
1967
+ { no: 2, name: "token_address", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1968
+ { no: 3, name: "limit", kind: "scalar", T: 5 /* ScalarType.INT32 */, opt: true },
1969
+ ]);
1970
+ /**
1971
+ * One wallet's aggregate position on the token, derived from a
1972
+ * moving-average cost-basis walk of its chronological trades: buys (and
1973
+ * claim seeds) add to the position's basis; each sell realizes
1974
+ * proceeds − average cost × amount AND consumes basis at the average cost,
1975
+ * so re-entering wallets are accounted correctly. Auction claims are seeded
1976
+ * before the trade walk as buys at the wallet's true auction cost, so
1977
+ * bidders never show zero buys. Tokens sold beyond tracked inventory
1978
+ * (transfers in) carry a zero basis — with the full history and explicit
1979
+ * claims in hand, an unexplained inflow is a transfer, not a hidden buy —
1980
+ * and flag transferred_in.
1981
+ *
1982
+ * @generated from message data.v2.TokenTopTrader
1983
+ */
1984
+ export class TokenTopTrader extends Message {
1985
+ constructor(data) {
1986
+ super();
1987
+ /**
1988
+ * EIP-55 checksummed trading wallet (the tx from-address, not the router).
1989
+ *
1990
+ * @generated from field: string wallet_address = 1;
1991
+ */
1992
+ this.walletAddress = "";
1993
+ /**
1994
+ * Buy-side figures INCLUDE auction acquisitions: claims add one buy per
1995
+ * terminal bid, their token amount, and their USD spend.
1996
+ *
1997
+ * @generated from field: int32 buy_count = 2;
1998
+ */
1999
+ this.buyCount = 0;
2000
+ /**
2001
+ * @generated from field: int32 sell_count = 3;
2002
+ */
2003
+ this.sellCount = 0;
2004
+ /**
2005
+ * @generated from field: double bought_usd = 4;
2006
+ */
2007
+ this.boughtUsd = 0;
2008
+ /**
2009
+ * @generated from field: double sold_usd = 5;
2010
+ */
2011
+ this.soldUsd = 0;
2012
+ /**
2013
+ * Token amounts are whole (decimal-adjusted) tokens.
2014
+ *
2015
+ * @generated from field: double bought_tokens = 6;
2016
+ */
2017
+ this.boughtTokens = 0;
2018
+ /**
2019
+ * @generated from field: double sold_tokens = 7;
2020
+ */
2021
+ this.soldTokens = 0;
2022
+ /**
2023
+ * Tokens still held per the walk: acquired (bought + claimed +
2024
+ * transferred in) minus sold, floored at 0.
2025
+ *
2026
+ * @generated from field: double remaining_tokens = 8;
2027
+ */
2028
+ this.remainingTokens = 0;
2029
+ /**
2030
+ * USD cost basis of the REMAINING position: grows with buys/claims,
2031
+ * shrinks by average cost × amount on every sell.
2032
+ *
2033
+ * @generated from field: double cost_basis_usd = 9;
2034
+ */
2035
+ this.costBasisUsd = 0;
2036
+ /**
2037
+ * cost_basis_usd ÷ remaining_tokens; 0 for wallets holding nothing (or
2038
+ * with no tracked basis).
2039
+ *
2040
+ * @generated from field: double avg_cost_usd = 10;
2041
+ */
2042
+ this.avgCostUsd = 0;
2043
+ /**
2044
+ * @generated from field: double realized_pnl_usd = 11;
2045
+ */
2046
+ this.realizedPnlUsd = 0;
2047
+ /**
2048
+ * USD the wallet spent in the launch auction (net of exit refunds),
2049
+ * converted at the auction currency's USD rate. 0 when the wallet has no
2050
+ * claims (always 0 for non-CCA tokens).
2051
+ *
2052
+ * @generated from field: double auction_spent_usd = 12;
2053
+ */
2054
+ this.auctionSpentUsd = 0;
2055
+ /**
2056
+ * True when any of the wallet's auction bids reached a terminal state
2057
+ * (claimed, or exited with a nonzero fill).
2058
+ *
2059
+ * @generated from field: bool has_claims = 13;
2060
+ */
2061
+ this.hasClaims = false;
2062
+ /**
2063
+ * Mark-to-market PnL of the remaining position at the token's latest
2064
+ * known price: remaining_tokens × (spot − avg_cost_usd). The documented
2065
+ * ranking tiebreak, served so clients can render it.
2066
+ *
2067
+ * @generated from field: double unrealized_pnl_usd = 14;
2068
+ */
2069
+ this.unrealizedPnlUsd = 0;
2070
+ /**
2071
+ * True when the wallet sold beyond its tracked inventory at least once —
2072
+ * the excess entered the wallet outside the swap tape (a transfer in)
2073
+ * and carries a zero basis. Distinguishes a genuine transfer from a
2074
+ * data gap when cost_basis_usd is 0.
2075
+ *
2076
+ * @generated from field: bool transferred_in = 15;
2077
+ */
2078
+ this.transferredIn = false;
2079
+ proto3.util.initPartial(data, this);
2080
+ }
2081
+ static fromBinary(bytes, options) {
2082
+ return new TokenTopTrader().fromBinary(bytes, options);
2083
+ }
2084
+ static fromJson(jsonValue, options) {
2085
+ return new TokenTopTrader().fromJson(jsonValue, options);
2086
+ }
2087
+ static fromJsonString(jsonString, options) {
2088
+ return new TokenTopTrader().fromJsonString(jsonString, options);
2089
+ }
2090
+ static equals(a, b) {
2091
+ return proto3.util.equals(TokenTopTrader, a, b);
2092
+ }
2093
+ }
2094
+ TokenTopTrader.runtime = proto3;
2095
+ TokenTopTrader.typeName = "data.v2.TokenTopTrader";
2096
+ TokenTopTrader.fields = proto3.util.newFieldList(() => [
2097
+ { no: 1, name: "wallet_address", kind: "scalar", T: 9 /* ScalarType.STRING */ },
2098
+ { no: 2, name: "buy_count", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
2099
+ { no: 3, name: "sell_count", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
2100
+ { no: 4, name: "bought_usd", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
2101
+ { no: 5, name: "sold_usd", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
2102
+ { no: 6, name: "bought_tokens", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
2103
+ { no: 7, name: "sold_tokens", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
2104
+ { no: 8, name: "remaining_tokens", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
2105
+ { no: 9, name: "cost_basis_usd", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
2106
+ { no: 10, name: "avg_cost_usd", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
2107
+ { no: 11, name: "realized_pnl_usd", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
2108
+ { no: 12, name: "auction_spent_usd", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
2109
+ { no: 13, name: "has_claims", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
2110
+ { no: 14, name: "unrealized_pnl_usd", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
2111
+ { no: 15, name: "transferred_in", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
2112
+ ]);
2113
+ /**
2114
+ * @generated from message data.v2.GetTokenTopTradersResponse
2115
+ */
2116
+ export class GetTokenTopTradersResponse extends Message {
2117
+ constructor(data) {
2118
+ super();
2119
+ /**
2120
+ * Ranked realized PnL desc, unrealized PnL desc as the tiebreak (orders
2121
+ * never-sold claimers sensibly — all realized 0), capped at the request
2122
+ * limit. Only wallets with at least one trade or claim appear.
2123
+ *
2124
+ * @generated from field: repeated data.v2.TokenTopTrader traders = 1;
2125
+ */
2126
+ this.traders = [];
2127
+ proto3.util.initPartial(data, this);
2128
+ }
2129
+ static fromBinary(bytes, options) {
2130
+ return new GetTokenTopTradersResponse().fromBinary(bytes, options);
2131
+ }
2132
+ static fromJson(jsonValue, options) {
2133
+ return new GetTokenTopTradersResponse().fromJson(jsonValue, options);
2134
+ }
2135
+ static fromJsonString(jsonString, options) {
2136
+ return new GetTokenTopTradersResponse().fromJsonString(jsonString, options);
2137
+ }
2138
+ static equals(a, b) {
2139
+ return proto3.util.equals(GetTokenTopTradersResponse, a, b);
2140
+ }
2141
+ }
2142
+ GetTokenTopTradersResponse.runtime = proto3;
2143
+ GetTokenTopTradersResponse.typeName = "data.v2.GetTokenTopTradersResponse";
2144
+ GetTokenTopTradersResponse.fields = proto3.util.newFieldList(() => [
2145
+ { no: 1, name: "traders", kind: "message", T: TokenTopTrader, repeated: true },
2146
+ ]);
1918
2147
  /**
1919
2148
  * Anti-vamp create-flow check (LP-1311): has a token with this name + ticker
1920
2149
  * combination launched on the chain within the trailing 8 hours? Matching is
@@ -525,6 +525,15 @@ export declare class TokenListFilter extends Message<TokenListFilter> {
525
525
  * @generated from field: optional bool apply_top_level_filters = 4;
526
526
  */
527
527
  applyTopLevelFilters?: boolean;
528
+ /**
529
+ * Drops tokenized real-world assets, which ListRwas / ListRwaTokens serve
530
+ * instead. Unset means no filtering (no server-side default). An asset is
531
+ * dropped if any of its chain deployments is known to be an RWA; assets not
532
+ * yet classified are kept. EVM only — Solana RWAs are not yet flagged.
533
+ *
534
+ * @generated from field: optional bool exclude_rwas = 5;
535
+ */
536
+ excludeRwas?: boolean;
528
537
  constructor(data?: PartialMessage<TokenListFilter>);
529
538
  static readonly runtime: typeof proto3;
530
539
  static readonly typeName = "data.v2.TokenListFilter";
@@ -627,6 +627,7 @@ TokenListFilter.fields = proto3.util.newFieldList(() => [
627
627
  { no: 2, name: "min_volume_1d_usd", kind: "scalar", T: 1 /* ScalarType.DOUBLE */, opt: true },
628
628
  { no: 3, name: "min_tvl_usd", kind: "scalar", T: 1 /* ScalarType.DOUBLE */, opt: true },
629
629
  { no: 4, name: "apply_top_level_filters", kind: "scalar", T: 8 /* ScalarType.BOOL */, opt: true },
630
+ { no: 5, name: "exclude_rwas", kind: "scalar", T: 8 /* ScalarType.BOOL */, opt: true },
630
631
  ]);
631
632
  /**
632
633
  * @generated from message data.v2.FiatAmount
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uniswap/client-data-api",
3
- "version": "0.0.164",
3
+ "version": "0.0.166",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },