@uniswap/client-data-api 0.0.163 → 0.0.165

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
  */
@@ -1513,6 +1513,180 @@ export declare class GetLaunchClaimsResponse extends Message<GetLaunchClaimsResp
1513
1513
  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetLaunchClaimsResponse;
1514
1514
  static equals(a: GetLaunchClaimsResponse | PlainMessage<GetLaunchClaimsResponse> | undefined, b: GetLaunchClaimsResponse | PlainMessage<GetLaunchClaimsResponse> | undefined): boolean;
1515
1515
  }
1516
+ /**
1517
+ * Server-computed Top Traders leaderboard for a launch token: the token's
1518
+ * FULL swap history (no page cap) folded into per-wallet cost-basis PnL,
1519
+ * with CCA auction claims counted as buy-side acquisitions at what each
1520
+ * wallet actually spent (the GetLaunchClaims aggregates). Replaces the
1521
+ * client-side capped GetTokenTrades walk, whose 1,500-trade window
1522
+ * fabricated zero-basis top rows for pre-window buyers. Non-launch tokens
1523
+ * (no CCA auction) are served from their trade history alone — never an
1524
+ * error; a token with no swaps and no claims serves an empty list. EVM-only.
1525
+ *
1526
+ * @generated from message data.v2.GetTokenTopTradersRequest
1527
+ */
1528
+ export declare class GetTokenTopTradersRequest extends Message<GetTokenTopTradersRequest> {
1529
+ /**
1530
+ * @generated from field: uint32 chain_id = 1;
1531
+ */
1532
+ chainId: number;
1533
+ /**
1534
+ * @generated from field: string token_address = 2;
1535
+ */
1536
+ tokenAddress: string;
1537
+ /**
1538
+ * Rows to return, best-ranked first. 0/unset defaults to 100; servers cap
1539
+ * the limit (currently 1000).
1540
+ *
1541
+ * @generated from field: optional int32 limit = 3;
1542
+ */
1543
+ limit?: number;
1544
+ constructor(data?: PartialMessage<GetTokenTopTradersRequest>);
1545
+ static readonly runtime: typeof proto3;
1546
+ static readonly typeName = "data.v2.GetTokenTopTradersRequest";
1547
+ static readonly fields: FieldList;
1548
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetTokenTopTradersRequest;
1549
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetTokenTopTradersRequest;
1550
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetTokenTopTradersRequest;
1551
+ static equals(a: GetTokenTopTradersRequest | PlainMessage<GetTokenTopTradersRequest> | undefined, b: GetTokenTopTradersRequest | PlainMessage<GetTokenTopTradersRequest> | undefined): boolean;
1552
+ }
1553
+ /**
1554
+ * One wallet's aggregate position on the token, derived from a
1555
+ * moving-average cost-basis walk of its chronological trades: buys (and
1556
+ * claim seeds) add to the position's basis; each sell realizes
1557
+ * proceeds − average cost × amount AND consumes basis at the average cost,
1558
+ * so re-entering wallets are accounted correctly. Auction claims are seeded
1559
+ * before the trade walk as buys at the wallet's true auction cost, so
1560
+ * bidders never show zero buys. Tokens sold beyond tracked inventory
1561
+ * (transfers in) carry a zero basis — with the full history and explicit
1562
+ * claims in hand, an unexplained inflow is a transfer, not a hidden buy —
1563
+ * and flag transferred_in.
1564
+ *
1565
+ * @generated from message data.v2.TokenTopTrader
1566
+ */
1567
+ export declare class TokenTopTrader extends Message<TokenTopTrader> {
1568
+ /**
1569
+ * EIP-55 checksummed trading wallet (the tx from-address, not the router).
1570
+ *
1571
+ * @generated from field: string wallet_address = 1;
1572
+ */
1573
+ walletAddress: string;
1574
+ /**
1575
+ * Buy-side figures INCLUDE auction acquisitions: claims add one buy per
1576
+ * terminal bid, their token amount, and their USD spend.
1577
+ *
1578
+ * @generated from field: int32 buy_count = 2;
1579
+ */
1580
+ buyCount: number;
1581
+ /**
1582
+ * @generated from field: int32 sell_count = 3;
1583
+ */
1584
+ sellCount: number;
1585
+ /**
1586
+ * @generated from field: double bought_usd = 4;
1587
+ */
1588
+ boughtUsd: number;
1589
+ /**
1590
+ * @generated from field: double sold_usd = 5;
1591
+ */
1592
+ soldUsd: number;
1593
+ /**
1594
+ * Token amounts are whole (decimal-adjusted) tokens.
1595
+ *
1596
+ * @generated from field: double bought_tokens = 6;
1597
+ */
1598
+ boughtTokens: number;
1599
+ /**
1600
+ * @generated from field: double sold_tokens = 7;
1601
+ */
1602
+ soldTokens: number;
1603
+ /**
1604
+ * Tokens still held per the walk: acquired (bought + claimed +
1605
+ * transferred in) minus sold, floored at 0.
1606
+ *
1607
+ * @generated from field: double remaining_tokens = 8;
1608
+ */
1609
+ remainingTokens: number;
1610
+ /**
1611
+ * USD cost basis of the REMAINING position: grows with buys/claims,
1612
+ * shrinks by average cost × amount on every sell.
1613
+ *
1614
+ * @generated from field: double cost_basis_usd = 9;
1615
+ */
1616
+ costBasisUsd: number;
1617
+ /**
1618
+ * cost_basis_usd ÷ remaining_tokens; 0 for wallets holding nothing (or
1619
+ * with no tracked basis).
1620
+ *
1621
+ * @generated from field: double avg_cost_usd = 10;
1622
+ */
1623
+ avgCostUsd: number;
1624
+ /**
1625
+ * @generated from field: double realized_pnl_usd = 11;
1626
+ */
1627
+ realizedPnlUsd: number;
1628
+ /**
1629
+ * USD the wallet spent in the launch auction (net of exit refunds),
1630
+ * converted at the auction currency's USD rate. 0 when the wallet has no
1631
+ * claims (always 0 for non-CCA tokens).
1632
+ *
1633
+ * @generated from field: double auction_spent_usd = 12;
1634
+ */
1635
+ auctionSpentUsd: number;
1636
+ /**
1637
+ * True when any of the wallet's auction bids reached a terminal state
1638
+ * (claimed, or exited with a nonzero fill).
1639
+ *
1640
+ * @generated from field: bool has_claims = 13;
1641
+ */
1642
+ hasClaims: boolean;
1643
+ /**
1644
+ * Mark-to-market PnL of the remaining position at the token's latest
1645
+ * known price: remaining_tokens × (spot − avg_cost_usd). The documented
1646
+ * ranking tiebreak, served so clients can render it.
1647
+ *
1648
+ * @generated from field: double unrealized_pnl_usd = 14;
1649
+ */
1650
+ unrealizedPnlUsd: number;
1651
+ /**
1652
+ * True when the wallet sold beyond its tracked inventory at least once —
1653
+ * the excess entered the wallet outside the swap tape (a transfer in)
1654
+ * and carries a zero basis. Distinguishes a genuine transfer from a
1655
+ * data gap when cost_basis_usd is 0.
1656
+ *
1657
+ * @generated from field: bool transferred_in = 15;
1658
+ */
1659
+ transferredIn: boolean;
1660
+ constructor(data?: PartialMessage<TokenTopTrader>);
1661
+ static readonly runtime: typeof proto3;
1662
+ static readonly typeName = "data.v2.TokenTopTrader";
1663
+ static readonly fields: FieldList;
1664
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): TokenTopTrader;
1665
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): TokenTopTrader;
1666
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): TokenTopTrader;
1667
+ static equals(a: TokenTopTrader | PlainMessage<TokenTopTrader> | undefined, b: TokenTopTrader | PlainMessage<TokenTopTrader> | undefined): boolean;
1668
+ }
1669
+ /**
1670
+ * @generated from message data.v2.GetTokenTopTradersResponse
1671
+ */
1672
+ export declare class GetTokenTopTradersResponse extends Message<GetTokenTopTradersResponse> {
1673
+ /**
1674
+ * Ranked realized PnL desc, unrealized PnL desc as the tiebreak (orders
1675
+ * never-sold claimers sensibly — all realized 0), capped at the request
1676
+ * limit. Only wallets with at least one trade or claim appear.
1677
+ *
1678
+ * @generated from field: repeated data.v2.TokenTopTrader traders = 1;
1679
+ */
1680
+ traders: TokenTopTrader[];
1681
+ constructor(data?: PartialMessage<GetTokenTopTradersResponse>);
1682
+ static readonly runtime: typeof proto3;
1683
+ static readonly typeName = "data.v2.GetTokenTopTradersResponse";
1684
+ static readonly fields: FieldList;
1685
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetTokenTopTradersResponse;
1686
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetTokenTopTradersResponse;
1687
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetTokenTopTradersResponse;
1688
+ static equals(a: GetTokenTopTradersResponse | PlainMessage<GetTokenTopTradersResponse> | undefined, b: GetTokenTopTradersResponse | PlainMessage<GetTokenTopTradersResponse> | undefined): boolean;
1689
+ }
1516
1690
  /**
1517
1691
  * Anti-vamp create-flow check (LP-1311): has a token with this name + ticker
1518
1692
  * combination launched on the chain within the trailing 8 hours? Matching is
@@ -1915,6 +1915,228 @@ GetLaunchClaimsResponse.fields = proto3.util.newFieldList(() => [
1915
1915
  { no: 2, name: "total_claimed", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1916
1916
  { no: 3, name: "unique_claimers", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
1917
1917
  ]);
1918
+ /**
1919
+ * Server-computed Top Traders leaderboard for a launch token: the token's
1920
+ * FULL swap history (no page cap) folded into per-wallet cost-basis PnL,
1921
+ * with CCA auction claims counted as buy-side acquisitions at what each
1922
+ * wallet actually spent (the GetLaunchClaims aggregates). Replaces the
1923
+ * client-side capped GetTokenTrades walk, whose 1,500-trade window
1924
+ * fabricated zero-basis top rows for pre-window buyers. Non-launch tokens
1925
+ * (no CCA auction) are served from their trade history alone — never an
1926
+ * error; a token with no swaps and no claims serves an empty list. EVM-only.
1927
+ *
1928
+ * @generated from message data.v2.GetTokenTopTradersRequest
1929
+ */
1930
+ export class GetTokenTopTradersRequest extends Message {
1931
+ constructor(data) {
1932
+ super();
1933
+ /**
1934
+ * @generated from field: uint32 chain_id = 1;
1935
+ */
1936
+ this.chainId = 0;
1937
+ /**
1938
+ * @generated from field: string token_address = 2;
1939
+ */
1940
+ this.tokenAddress = "";
1941
+ proto3.util.initPartial(data, this);
1942
+ }
1943
+ static fromBinary(bytes, options) {
1944
+ return new GetTokenTopTradersRequest().fromBinary(bytes, options);
1945
+ }
1946
+ static fromJson(jsonValue, options) {
1947
+ return new GetTokenTopTradersRequest().fromJson(jsonValue, options);
1948
+ }
1949
+ static fromJsonString(jsonString, options) {
1950
+ return new GetTokenTopTradersRequest().fromJsonString(jsonString, options);
1951
+ }
1952
+ static equals(a, b) {
1953
+ return proto3.util.equals(GetTokenTopTradersRequest, a, b);
1954
+ }
1955
+ }
1956
+ GetTokenTopTradersRequest.runtime = proto3;
1957
+ GetTokenTopTradersRequest.typeName = "data.v2.GetTokenTopTradersRequest";
1958
+ GetTokenTopTradersRequest.fields = proto3.util.newFieldList(() => [
1959
+ { no: 1, name: "chain_id", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
1960
+ { no: 2, name: "token_address", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1961
+ { no: 3, name: "limit", kind: "scalar", T: 5 /* ScalarType.INT32 */, opt: true },
1962
+ ]);
1963
+ /**
1964
+ * One wallet's aggregate position on the token, derived from a
1965
+ * moving-average cost-basis walk of its chronological trades: buys (and
1966
+ * claim seeds) add to the position's basis; each sell realizes
1967
+ * proceeds − average cost × amount AND consumes basis at the average cost,
1968
+ * so re-entering wallets are accounted correctly. Auction claims are seeded
1969
+ * before the trade walk as buys at the wallet's true auction cost, so
1970
+ * bidders never show zero buys. Tokens sold beyond tracked inventory
1971
+ * (transfers in) carry a zero basis — with the full history and explicit
1972
+ * claims in hand, an unexplained inflow is a transfer, not a hidden buy —
1973
+ * and flag transferred_in.
1974
+ *
1975
+ * @generated from message data.v2.TokenTopTrader
1976
+ */
1977
+ export class TokenTopTrader extends Message {
1978
+ constructor(data) {
1979
+ super();
1980
+ /**
1981
+ * EIP-55 checksummed trading wallet (the tx from-address, not the router).
1982
+ *
1983
+ * @generated from field: string wallet_address = 1;
1984
+ */
1985
+ this.walletAddress = "";
1986
+ /**
1987
+ * Buy-side figures INCLUDE auction acquisitions: claims add one buy per
1988
+ * terminal bid, their token amount, and their USD spend.
1989
+ *
1990
+ * @generated from field: int32 buy_count = 2;
1991
+ */
1992
+ this.buyCount = 0;
1993
+ /**
1994
+ * @generated from field: int32 sell_count = 3;
1995
+ */
1996
+ this.sellCount = 0;
1997
+ /**
1998
+ * @generated from field: double bought_usd = 4;
1999
+ */
2000
+ this.boughtUsd = 0;
2001
+ /**
2002
+ * @generated from field: double sold_usd = 5;
2003
+ */
2004
+ this.soldUsd = 0;
2005
+ /**
2006
+ * Token amounts are whole (decimal-adjusted) tokens.
2007
+ *
2008
+ * @generated from field: double bought_tokens = 6;
2009
+ */
2010
+ this.boughtTokens = 0;
2011
+ /**
2012
+ * @generated from field: double sold_tokens = 7;
2013
+ */
2014
+ this.soldTokens = 0;
2015
+ /**
2016
+ * Tokens still held per the walk: acquired (bought + claimed +
2017
+ * transferred in) minus sold, floored at 0.
2018
+ *
2019
+ * @generated from field: double remaining_tokens = 8;
2020
+ */
2021
+ this.remainingTokens = 0;
2022
+ /**
2023
+ * USD cost basis of the REMAINING position: grows with buys/claims,
2024
+ * shrinks by average cost × amount on every sell.
2025
+ *
2026
+ * @generated from field: double cost_basis_usd = 9;
2027
+ */
2028
+ this.costBasisUsd = 0;
2029
+ /**
2030
+ * cost_basis_usd ÷ remaining_tokens; 0 for wallets holding nothing (or
2031
+ * with no tracked basis).
2032
+ *
2033
+ * @generated from field: double avg_cost_usd = 10;
2034
+ */
2035
+ this.avgCostUsd = 0;
2036
+ /**
2037
+ * @generated from field: double realized_pnl_usd = 11;
2038
+ */
2039
+ this.realizedPnlUsd = 0;
2040
+ /**
2041
+ * USD the wallet spent in the launch auction (net of exit refunds),
2042
+ * converted at the auction currency's USD rate. 0 when the wallet has no
2043
+ * claims (always 0 for non-CCA tokens).
2044
+ *
2045
+ * @generated from field: double auction_spent_usd = 12;
2046
+ */
2047
+ this.auctionSpentUsd = 0;
2048
+ /**
2049
+ * True when any of the wallet's auction bids reached a terminal state
2050
+ * (claimed, or exited with a nonzero fill).
2051
+ *
2052
+ * @generated from field: bool has_claims = 13;
2053
+ */
2054
+ this.hasClaims = false;
2055
+ /**
2056
+ * Mark-to-market PnL of the remaining position at the token's latest
2057
+ * known price: remaining_tokens × (spot − avg_cost_usd). The documented
2058
+ * ranking tiebreak, served so clients can render it.
2059
+ *
2060
+ * @generated from field: double unrealized_pnl_usd = 14;
2061
+ */
2062
+ this.unrealizedPnlUsd = 0;
2063
+ /**
2064
+ * True when the wallet sold beyond its tracked inventory at least once —
2065
+ * the excess entered the wallet outside the swap tape (a transfer in)
2066
+ * and carries a zero basis. Distinguishes a genuine transfer from a
2067
+ * data gap when cost_basis_usd is 0.
2068
+ *
2069
+ * @generated from field: bool transferred_in = 15;
2070
+ */
2071
+ this.transferredIn = false;
2072
+ proto3.util.initPartial(data, this);
2073
+ }
2074
+ static fromBinary(bytes, options) {
2075
+ return new TokenTopTrader().fromBinary(bytes, options);
2076
+ }
2077
+ static fromJson(jsonValue, options) {
2078
+ return new TokenTopTrader().fromJson(jsonValue, options);
2079
+ }
2080
+ static fromJsonString(jsonString, options) {
2081
+ return new TokenTopTrader().fromJsonString(jsonString, options);
2082
+ }
2083
+ static equals(a, b) {
2084
+ return proto3.util.equals(TokenTopTrader, a, b);
2085
+ }
2086
+ }
2087
+ TokenTopTrader.runtime = proto3;
2088
+ TokenTopTrader.typeName = "data.v2.TokenTopTrader";
2089
+ TokenTopTrader.fields = proto3.util.newFieldList(() => [
2090
+ { no: 1, name: "wallet_address", kind: "scalar", T: 9 /* ScalarType.STRING */ },
2091
+ { no: 2, name: "buy_count", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
2092
+ { no: 3, name: "sell_count", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
2093
+ { no: 4, name: "bought_usd", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
2094
+ { no: 5, name: "sold_usd", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
2095
+ { no: 6, name: "bought_tokens", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
2096
+ { no: 7, name: "sold_tokens", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
2097
+ { no: 8, name: "remaining_tokens", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
2098
+ { no: 9, name: "cost_basis_usd", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
2099
+ { no: 10, name: "avg_cost_usd", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
2100
+ { no: 11, name: "realized_pnl_usd", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
2101
+ { no: 12, name: "auction_spent_usd", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
2102
+ { no: 13, name: "has_claims", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
2103
+ { no: 14, name: "unrealized_pnl_usd", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
2104
+ { no: 15, name: "transferred_in", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
2105
+ ]);
2106
+ /**
2107
+ * @generated from message data.v2.GetTokenTopTradersResponse
2108
+ */
2109
+ export class GetTokenTopTradersResponse extends Message {
2110
+ constructor(data) {
2111
+ super();
2112
+ /**
2113
+ * Ranked realized PnL desc, unrealized PnL desc as the tiebreak (orders
2114
+ * never-sold claimers sensibly — all realized 0), capped at the request
2115
+ * limit. Only wallets with at least one trade or claim appear.
2116
+ *
2117
+ * @generated from field: repeated data.v2.TokenTopTrader traders = 1;
2118
+ */
2119
+ this.traders = [];
2120
+ proto3.util.initPartial(data, this);
2121
+ }
2122
+ static fromBinary(bytes, options) {
2123
+ return new GetTokenTopTradersResponse().fromBinary(bytes, options);
2124
+ }
2125
+ static fromJson(jsonValue, options) {
2126
+ return new GetTokenTopTradersResponse().fromJson(jsonValue, options);
2127
+ }
2128
+ static fromJsonString(jsonString, options) {
2129
+ return new GetTokenTopTradersResponse().fromJsonString(jsonString, options);
2130
+ }
2131
+ static equals(a, b) {
2132
+ return proto3.util.equals(GetTokenTopTradersResponse, a, b);
2133
+ }
2134
+ }
2135
+ GetTokenTopTradersResponse.runtime = proto3;
2136
+ GetTokenTopTradersResponse.typeName = "data.v2.GetTokenTopTradersResponse";
2137
+ GetTokenTopTradersResponse.fields = proto3.util.newFieldList(() => [
2138
+ { no: 1, name: "traders", kind: "message", T: TokenTopTrader, repeated: true },
2139
+ ]);
1918
2140
  /**
1919
2141
  * Anti-vamp create-flow check (LP-1311): has a token with this name + ticker
1920
2142
  * combination launched on the chain within the trailing 8 hours? Matching is
@@ -352,7 +352,19 @@ export declare enum LaunchesOrderBy {
352
352
  /**
353
353
  * @generated from enum value: LAUNCHES_ORDER_BY_PRICE_CHANGE_1D = 5;
354
354
  */
355
- PRICE_CHANGE_1D = 5
355
+ PRICE_CHANGE_1D = 5,
356
+ /**
357
+ * Trending: launches with recent buy-side momentum. Candidates are tokens
358
+ * with buy activity in the trailing hour REGARDLESS of launch age; gated
359
+ * (non-negative 1h price change, minimum FDV, minimum distinct 1h buyers)
360
+ * and scored by volume/buyer acceleration vs the preceding hours, with the
361
+ * remainder of the page backfilled by 24h volume so the module never
362
+ * renders empty. Needs no LaunchListFilter.window — any window filter is
363
+ * ignored under this sort.
364
+ *
365
+ * @generated from enum value: LAUNCHES_ORDER_BY_TRENDING = 6;
366
+ */
367
+ TRENDING = 6
356
368
  }
357
369
  /**
358
370
  * Launch-recency window for ListLaunches. UNSPECIFIED applies no window (all
@@ -450,6 +450,18 @@ export var LaunchesOrderBy;
450
450
  * @generated from enum value: LAUNCHES_ORDER_BY_PRICE_CHANGE_1D = 5;
451
451
  */
452
452
  LaunchesOrderBy[LaunchesOrderBy["PRICE_CHANGE_1D"] = 5] = "PRICE_CHANGE_1D";
453
+ /**
454
+ * Trending: launches with recent buy-side momentum. Candidates are tokens
455
+ * with buy activity in the trailing hour REGARDLESS of launch age; gated
456
+ * (non-negative 1h price change, minimum FDV, minimum distinct 1h buyers)
457
+ * and scored by volume/buyer acceleration vs the preceding hours, with the
458
+ * remainder of the page backfilled by 24h volume so the module never
459
+ * renders empty. Needs no LaunchListFilter.window — any window filter is
460
+ * ignored under this sort.
461
+ *
462
+ * @generated from enum value: LAUNCHES_ORDER_BY_TRENDING = 6;
463
+ */
464
+ LaunchesOrderBy[LaunchesOrderBy["TRENDING"] = 6] = "TRENDING";
453
465
  })(LaunchesOrderBy || (LaunchesOrderBy = {}));
454
466
  // Retrieve enum metadata with: proto3.getEnumType(LaunchesOrderBy)
455
467
  proto3.util.setEnumType(LaunchesOrderBy, "data.v2.LaunchesOrderBy", [
@@ -459,6 +471,7 @@ proto3.util.setEnumType(LaunchesOrderBy, "data.v2.LaunchesOrderBy", [
459
471
  { no: 3, name: "LAUNCHES_ORDER_BY_TVL" },
460
472
  { no: 4, name: "LAUNCHES_ORDER_BY_PRICE_CHANGE_1H" },
461
473
  { no: 5, name: "LAUNCHES_ORDER_BY_PRICE_CHANGE_1D" },
474
+ { no: 6, name: "LAUNCHES_ORDER_BY_TRENDING" },
462
475
  ]);
463
476
  /**
464
477
  * Launch-recency window for ListLaunches. UNSPECIFIED applies no window (all
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uniswap/client-data-api",
3
- "version": "0.0.163",
3
+ "version": "0.0.165",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },