@uniswap/client-data-api 0.0.263 → 0.0.265

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.
Files changed (27) hide show
  1. package/dist/data/v1/api_pb.d.ts +10 -2
  2. package/dist/data/v1/api_pb.js +10 -2
  3. package/dist/data/v2/categories_pb.d.ts +8 -0
  4. package/dist/data/v2/categories_pb.js +9 -0
  5. package/package.json +1 -1
  6. package/dist/launches/v1/api-LaunchService_connectquery.d.ts +0 -145
  7. package/dist/launches/v1/api-LaunchService_connectquery.js +0 -149
  8. package/dist/launches/v1/api_connect.d.ts +0 -116
  9. package/dist/launches/v1/api_connect.js +0 -120
  10. package/dist/launches/v1/api_pb.d.ts +0 -1500
  11. package/dist/launches/v1/api_pb.js +0 -1600
  12. package/dist/launches/v1/common_pb.d.ts +0 -47
  13. package/dist/launches/v1/common_pb.js +0 -65
  14. package/dist/launches/v1/token_factory-TokenFactoryService_connectquery.d.ts +0 -54
  15. package/dist/launches/v1/token_factory-TokenFactoryService_connectquery.js +0 -58
  16. package/dist/launches/v1/token_factory_connect.d.ts +0 -52
  17. package/dist/launches/v1/token_factory_connect.js +0 -56
  18. package/dist/launches/v1/token_factory_pb.d.ts +0 -205
  19. package/dist/launches/v1/token_factory_pb.js +0 -319
  20. package/dist/launches/v1/types_pb.d.ts +0 -763
  21. package/dist/launches/v1/types_pb.js +0 -678
  22. package/dist/launches/v1/worker_service-WorkerService_connectquery.d.ts +0 -28
  23. package/dist/launches/v1/worker_service-WorkerService_connectquery.js +0 -32
  24. package/dist/launches/v1/worker_service_connect.d.ts +0 -34
  25. package/dist/launches/v1/worker_service_connect.js +0 -38
  26. package/dist/launches/v1/worker_service_pb.d.ts +0 -54
  27. package/dist/launches/v1/worker_service_pb.js +0 -101
@@ -1,1500 +0,0 @@
1
- import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf";
2
- import { Message, proto3 } from "@bufbuild/protobuf";
3
- import { Launch, LaunchesOrderBy, LaunchHolder, LaunchListFilter, Launchpad, TimestampedValue, TokenTrade } from "./types_pb.js";
4
- import { PageRequest, PageResponse } from "./common_pb.js";
5
- /**
6
- * @generated from enum launches.v1.ActivityStatsWindow
7
- */
8
- export declare enum ActivityStatsWindow {
9
- /**
10
- * @generated from enum value: ACTIVITY_STATS_WINDOW_UNSPECIFIED = 0;
11
- */
12
- UNSPECIFIED = 0,
13
- /**
14
- * @generated from enum value: ACTIVITY_STATS_WINDOW_LAST_5M = 1;
15
- */
16
- LAST_5M = 1,
17
- /**
18
- * @generated from enum value: ACTIVITY_STATS_WINDOW_LAST_1H = 2;
19
- */
20
- LAST_1H = 2,
21
- /**
22
- * @generated from enum value: ACTIVITY_STATS_WINDOW_LAST_6H = 3;
23
- */
24
- LAST_6H = 3,
25
- /**
26
- * @generated from enum value: ACTIVITY_STATS_WINDOW_LAST_24H = 4;
27
- */
28
- LAST_24H = 4,
29
- /**
30
- * Anchored at launch creation; for graduated CCA launches, at graduation
31
- * (the auction's migration into its pool).
32
- *
33
- * @generated from enum value: ACTIVITY_STATS_WINDOW_SINCE_LAUNCH = 5;
34
- */
35
- SINCE_LAUNCH = 5
36
- }
37
- /**
38
- * @generated from message launches.v1.TokenIdentifier
39
- */
40
- export declare class TokenIdentifier extends Message<TokenIdentifier> {
41
- /**
42
- * @generated from field: uint32 chain_id = 1;
43
- */
44
- chainId: number;
45
- /**
46
- * @generated from field: string address = 2;
47
- */
48
- address: string;
49
- constructor(data?: PartialMessage<TokenIdentifier>);
50
- static readonly runtime: typeof proto3;
51
- static readonly typeName = "launches.v1.TokenIdentifier";
52
- static readonly fields: FieldList;
53
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): TokenIdentifier;
54
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): TokenIdentifier;
55
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): TokenIdentifier;
56
- static equals(a: TokenIdentifier | PlainMessage<TokenIdentifier> | undefined, b: TokenIdentifier | PlainMessage<TokenIdentifier> | undefined): boolean;
57
- }
58
- /**
59
- * The launchpad registry, for building launchpad filters/labels client-side.
60
- *
61
- * @generated from message launches.v1.ListLaunchpadsRequest
62
- */
63
- export declare class ListLaunchpadsRequest extends Message<ListLaunchpadsRequest> {
64
- constructor(data?: PartialMessage<ListLaunchpadsRequest>);
65
- static readonly runtime: typeof proto3;
66
- static readonly typeName = "launches.v1.ListLaunchpadsRequest";
67
- static readonly fields: FieldList;
68
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListLaunchpadsRequest;
69
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListLaunchpadsRequest;
70
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListLaunchpadsRequest;
71
- static equals(a: ListLaunchpadsRequest | PlainMessage<ListLaunchpadsRequest> | undefined, b: ListLaunchpadsRequest | PlainMessage<ListLaunchpadsRequest> | undefined): boolean;
72
- }
73
- /**
74
- * @generated from message launches.v1.ListLaunchpadsResponse
75
- */
76
- export declare class ListLaunchpadsResponse extends Message<ListLaunchpadsResponse> {
77
- /**
78
- * @generated from field: repeated launches.v1.Launchpad launchpads = 1;
79
- */
80
- launchpads: Launchpad[];
81
- constructor(data?: PartialMessage<ListLaunchpadsResponse>);
82
- static readonly runtime: typeof proto3;
83
- static readonly typeName = "launches.v1.ListLaunchpadsResponse";
84
- static readonly fields: FieldList;
85
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListLaunchpadsResponse;
86
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListLaunchpadsResponse;
87
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListLaunchpadsResponse;
88
- static equals(a: ListLaunchpadsResponse | PlainMessage<ListLaunchpadsResponse> | undefined, b: ListLaunchpadsResponse | PlainMessage<ListLaunchpadsResponse> | undefined): boolean;
89
- }
90
- /**
91
- * Token launches aggregated across launchpads, newest first by default
92
- * (searched requests default to FDV instead — see sort_by and query). One
93
- * entry per (token, launchpad) — the earliest pool wins when a launchpad
94
- * creates several pools for the same token.
95
- *
96
- * @generated from message launches.v1.ListLaunchesRequest
97
- */
98
- export declare class ListLaunchesRequest extends Message<ListLaunchesRequest> {
99
- /**
100
- * Deprecated: use launchpad_ids. When both are set they are unioned.
101
- *
102
- * @generated from field: optional string launchpad_id = 1 [deprecated = true];
103
- * @deprecated
104
- */
105
- launchpadId?: string;
106
- /**
107
- * empty = all supported chains
108
- *
109
- * @generated from field: repeated uint32 chain_ids = 2;
110
- */
111
- chainIds: number[];
112
- /**
113
- * UNSPECIFIED resolves server-side: with a window -> VOLUME_1D, else with
114
- * a query -> FDV descending (largest matches first, with the first page
115
- * led by a small newest-first block of matches launched in the trailing
116
- * hour so a just-launched token stays findable by its creator), else
117
- * LAUNCHED_AT (newest first). An explicit value always wins.
118
- *
119
- * @generated from field: launches.v1.LaunchesOrderBy sort_by = 3;
120
- */
121
- sortBy: LaunchesOrderBy;
122
- /**
123
- * @generated from field: optional launches.v1.PageRequest page = 4;
124
- */
125
- page?: PageRequest;
126
- /**
127
- * Launchpads to serve. Empty = the server-side default scope (the
128
- * listable set plus uniswap-cca), so clients don't have to pre-scope with
129
- * ListLaunchpads. The Uniswap brand spans two ids behind one "Uniswap"
130
- * filter — uniswap-bonding-curve (instant launches) and uniswap-cca (CCA
131
- * crowd-launch auctions) — so an explicit filter naming either id expands
132
- * to the full brand set (both ids); there is no mechanism-scoped opt-out.
133
- * If a consumer ever needs one, the expansion moves client-side (the
134
- * filter chip sends both ids itself).
135
- *
136
- * @generated from field: repeated string launchpad_ids = 5;
137
- */
138
- launchpadIds: string[];
139
- /**
140
- * launch-recency window
141
- *
142
- * @generated from field: optional launches.v1.LaunchListFilter filter = 6;
143
- */
144
- filter?: LaunchListFilter;
145
- /**
146
- * Sort direction for sort_by; false (default) = descending (highest first).
147
- * Null/empty metric rows sort last in both directions.
148
- *
149
- * @generated from field: optional bool ascending = 7;
150
- */
151
- ascending?: boolean;
152
- /**
153
- * Launchpad search: keep only launches whose token name OR
154
- * symbol starts with this string, compared case-insensitively (prefix
155
- * match only — no fuzzy/substring matching). LIKE metacharacters in the
156
- * query are treated literally. An EXPLICIT sort_by/ascending orders the
157
- * filtered results exactly as it does the unfiltered list; with sort_by
158
- * UNSPECIFIED a searched request ranks by FDV descending (see sort_by) so
159
- * the launch a name is actually looking for outranks whatever launched
160
- * since. Whitespace-only queries are treated as absent; input is trimmed,
161
- * whitespace-collapsed, and capped at 100 characters server-side.
162
- *
163
- * @generated from field: optional string query = 8;
164
- */
165
- query?: string;
166
- /**
167
- * "My launches": keep only launches created by this wallet — the same
168
- * address served as Launch.creator_address (launched_tokens.creator_wallet,
169
- * the launch tx's from address). Any case is accepted; the server
170
- * EIP-55-checksums it before comparing, and rejects a non-address with
171
- * INVALID_ARGUMENT. Empty/absent applies no filter.
172
- *
173
- * Coverage is the Uniswap launchpads only (uniswap-cca crowd-launch
174
- * auctions + uniswap-bonding-curve instant launches). Third-party-launchpad
175
- * launches are served from a materialized table with no creator column and
176
- * are dropped from a creator-filtered read — they carry no
177
- * Launch.creator_address today either, so nothing filterable is lost.
178
- *
179
- * Not supported with sort_by = TRENDING: that ranking is built from a
180
- * candidate scan with no creator column, so the combination is rejected
181
- * rather than served unfiltered or silently re-sorted.
182
- *
183
- * @generated from field: optional string creator_address = 9;
184
- */
185
- creatorAddress?: string;
186
- /**
187
- * "Linked X": keep only launches that serve Launch.x_handle — i.e. whose
188
- * creator-declared X handle passed its inline-at-ingest Ed25519
189
- * verification (launched_tokens.x_handle_status = 'passed' with a
190
- * non-empty handle). Exactly the rows the response decorates with
191
- * x_handle, but filtered IN the ranked query before pagination, so the
192
- * result is the top launches with a linked X across ALL launches — not a
193
- * client-side pass over one pre-cut page. False/absent applies no filter.
194
- *
195
- * Coverage is the Uniswap launchpads only (uniswap-cca crowd-launch
196
- * auctions + uniswap-bonding-curve instant launches): x_handle is only
197
- * ever attested for factory launches, so third-party-launchpad launches —
198
- * which never serve x_handle — are dropped from a filtered read and
199
- * nothing filterable is lost.
200
- *
201
- * Not supported with sort_by = TRENDING: that ranking is built from a
202
- * candidate scan with no X-handle column, so the combination is rejected
203
- * with INVALID_ARGUMENT rather than served unfiltered or silently
204
- * re-sorted. Composes with every other sort, VOLUME_1D included.
205
- *
206
- * @generated from field: optional bool linked_x_only = 10;
207
- */
208
- linkedXOnly?: boolean;
209
- /**
210
- * Launch lookup by token: keep only launches of these token addresses.
211
- * Any casing is accepted (the server EIP-55-checksums and dedupes before
212
- * comparing); a non-address entry fails the request with INVALID_ARGUMENT.
213
- * Empty/absent applies no filter. At most 100 entries.
214
- *
215
- * Built for token pages resolving a launch by address — e.g. an instant
216
- * launch that has aged off the newest-100 feed window — so it composes
217
- * with launchpad_ids/chain_ids and serves the same row shape and stats
218
- * sources as the unfiltered feed.
219
- *
220
- * Coverage is the Uniswap launchpads only (uniswap-cca crowd-launch
221
- * auctions + uniswap-bonding-curve instant launches): neither
222
- * third-party-launchpad read can express a token predicate, so that arm
223
- * is dropped from a token-filtered read rather than served unfiltered.
224
- * Not supported with sort_by = TRENDING (rejected), same contract as
225
- * creator_address.
226
- *
227
- * CCA rows additionally inherit the crowd-launch feed's
228
- * `is_quick_launch = true` gate; an unclassified or institutional auction
229
- * will not match unless include_all_launches is set.
230
- *
231
- * @generated from field: repeated string token_addresses = 11;
232
- */
233
- tokenAddresses: string[];
234
- /**
235
- * "Fees paid to me": keep only launches whose CURRENT fee beneficiary is
236
- * this address — the holder of the launch's BeneficiaryVault NFT, as
237
- * served on BondingCurve.fee_beneficiary. Any case accepted; a non-address
238
- * fails with INVALID_ARGUMENT. Empty/absent applies no filter.
239
- *
240
- * Separate from creator_address, not OR'd with it: the beneficiary is a
241
- * payee that moves with the NFT, the creator is the immutable launch-tx
242
- * sender. Callers wanting both issue both reads.
243
- *
244
- * Coverage is uniswap-bonding-curve ONLY — a uniswap-cca launch mints its
245
- * vault NFT lazily from the creator's later claim, so it has no
246
- * launch-anchored beneficiary and serves no fee_beneficiary. Rejected with
247
- * sort_by = TRENDING, same contract as creator_address.
248
- *
249
- * @generated from field: optional string fee_beneficiary = 12;
250
- */
251
- feeBeneficiary?: string;
252
- /**
253
- * Also return institutional and unclassified CCA launches. Only applies
254
- * with token_addresses; ignored otherwise.
255
- *
256
- * @generated from field: optional bool include_all_launches = 13;
257
- */
258
- includeAllLaunches?: boolean;
259
- constructor(data?: PartialMessage<ListLaunchesRequest>);
260
- static readonly runtime: typeof proto3;
261
- static readonly typeName = "launches.v1.ListLaunchesRequest";
262
- static readonly fields: FieldList;
263
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListLaunchesRequest;
264
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListLaunchesRequest;
265
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListLaunchesRequest;
266
- static equals(a: ListLaunchesRequest | PlainMessage<ListLaunchesRequest> | undefined, b: ListLaunchesRequest | PlainMessage<ListLaunchesRequest> | undefined): boolean;
267
- }
268
- /**
269
- * @generated from message launches.v1.ListLaunchesResponse
270
- */
271
- export declare class ListLaunchesResponse extends Message<ListLaunchesResponse> {
272
- /**
273
- * @generated from field: repeated launches.v1.Launch launches = 1;
274
- */
275
- launches: Launch[];
276
- /**
277
- * @generated from field: launches.v1.PageResponse page = 2;
278
- */
279
- page?: PageResponse;
280
- constructor(data?: PartialMessage<ListLaunchesResponse>);
281
- static readonly runtime: typeof proto3;
282
- static readonly typeName = "launches.v1.ListLaunchesResponse";
283
- static readonly fields: FieldList;
284
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListLaunchesResponse;
285
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListLaunchesResponse;
286
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListLaunchesResponse;
287
- static equals(a: ListLaunchesResponse | PlainMessage<ListLaunchesResponse> | undefined, b: ListLaunchesResponse | PlainMessage<ListLaunchesResponse> | undefined): boolean;
288
- }
289
- /**
290
- * Holder data for ONE launch token (the TDP Holders module), computed at
291
- * query time over the raw launch-transfers feed (ClickHouse,
292
- * reorg-excluded) behind a short SWR cache. Only tokens created via the
293
- * Uniswap token factory (CCA + bonding-curve launches) have transfer rows.
294
- *
295
- * @generated from message launches.v1.GetLaunchHoldersRequest
296
- */
297
- export declare class GetLaunchHoldersRequest extends Message<GetLaunchHoldersRequest> {
298
- /**
299
- * @generated from field: uint32 chain_id = 1;
300
- */
301
- chainId: number;
302
- /**
303
- * @generated from field: string token_address = 2;
304
- */
305
- tokenAddress: string;
306
- constructor(data?: PartialMessage<GetLaunchHoldersRequest>);
307
- static readonly runtime: typeof proto3;
308
- static readonly typeName = "launches.v1.GetLaunchHoldersRequest";
309
- static readonly fields: FieldList;
310
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetLaunchHoldersRequest;
311
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetLaunchHoldersRequest;
312
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetLaunchHoldersRequest;
313
- static equals(a: GetLaunchHoldersRequest | PlainMessage<GetLaunchHoldersRequest> | undefined, b: GetLaunchHoldersRequest | PlainMessage<GetLaunchHoldersRequest> | undefined): boolean;
314
- }
315
- /**
316
- * Absence contract mirrors the Launch holder fields: when the token has no
317
- * ingested transfers (non-factory token, ingestion lag, or every row
318
- * reorged out) holders is empty and every optional field is unset, never a
319
- * fake 0, so clients can tell no-data from a real zero. Upstream failures
320
- * fail the RPC instead of serving empty.
321
- *
322
- * @generated from message launches.v1.GetLaunchHoldersResponse
323
- */
324
- export declare class GetLaunchHoldersResponse extends Message<GetLaunchHoldersResponse> {
325
- /**
326
- * Top-100 holders by balance, descending. Raw Etherscan-style rows over
327
- * net transfer balances, INCLUDING burned tokens: the 0x…dEaD burn sink
328
- * appears while it holds a balance, and cumulative burns to the zero
329
- * address appear as a synthetic zero-address row — so held + burned rows
330
- * sum to minted_supply. Burn rows are flagged (is_burn_address); clients
331
- * that want them out filter the flag.
332
- *
333
- * @generated from field: repeated launches.v1.LaunchHolder holders = 1;
334
- */
335
- holders: LaunchHolder[];
336
- /**
337
- * Exact holder count, same semantics as Launch.holder_count (addresses
338
- * with a positive net balance; burn sinks like 0x…dEaD included while
339
- * they hold a balance, the zero address never). The synthetic zero-address
340
- * burn row is never counted.
341
- *
342
- * @generated from field: optional int32 holder_count = 2;
343
- */
344
- holderCount?: number;
345
- /**
346
- * holder_count minus the count as of 24h ago (signed).
347
- *
348
- * @generated from field: optional int32 holder_count_change_24h = 3;
349
- */
350
- holderCountChange24h?: number;
351
- /**
352
- * Trailing 7-day holder-count trend for the stat sparkline: one point per
353
- * UTC-now-anchored 24h mark, oldest first, last point = holder_count now.
354
- *
355
- * @generated from field: repeated launches.v1.TimestampedValue holder_count_trend = 4;
356
- */
357
- holderCountTrend: TimestampedValue[];
358
- /**
359
- * Share of minted_supply held by the top 10 holder rows that are neither
360
- * burn sinks nor the pool's custody row (LaunchHolder.is_pool_address),
361
- * percent in [0, 100]. Burned tokens can never concentrate and the pool
362
- * is the market itself, so both are excluded here (unlike the rows above).
363
- *
364
- * @generated from field: optional double top10_supply_pct = 5;
365
- */
366
- top10SupplyPct?: number;
367
- /**
368
- * Cumulative value ever minted, raw base units as a decimal string — the
369
- * denominator of every supply_pct in this response. Burn-inclusive by
370
- * construction: holder balances + burned rows sum to it. On-chain
371
- * totalSupply-style circulating figures are client-derivable as
372
- * minted_supply - burned_to_zero.
373
- *
374
- * @generated from field: optional string minted_supply = 6;
375
- */
376
- mintedSupply?: string;
377
- /**
378
- * Same definitions as Launch.burned_to_zero / burned_to_dead.
379
- *
380
- * @generated from field: optional string burned_to_zero = 7;
381
- */
382
- burnedToZero?: string;
383
- /**
384
- * @generated from field: optional string burned_to_dead = 8;
385
- */
386
- burnedToDead?: string;
387
- constructor(data?: PartialMessage<GetLaunchHoldersResponse>);
388
- static readonly runtime: typeof proto3;
389
- static readonly typeName = "launches.v1.GetLaunchHoldersResponse";
390
- static readonly fields: FieldList;
391
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetLaunchHoldersResponse;
392
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetLaunchHoldersResponse;
393
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetLaunchHoldersResponse;
394
- static equals(a: GetLaunchHoldersResponse | PlainMessage<GetLaunchHoldersResponse> | undefined, b: GetLaunchHoldersResponse | PlainMessage<GetLaunchHoldersResponse> | undefined): boolean;
395
- }
396
- /**
397
- * Server-computed per-window trade activity for a launch token (LP-1294):
398
- * every window in one response, so the TDP Volume module's 5s poll is a
399
- * single call instead of a client-side walk of GetTokenTrades. EVM-only.
400
- * Served for tokens launched via the Uniswap token factory (CCA and
401
- * bonding-curve launches); other tokens are a not_found error.
402
- * CCA launches pre-graduation serve all-zero windows: bids are not trades,
403
- * and the token does not swap until the auction migrates into its pool.
404
- *
405
- * @generated from message launches.v1.GetLaunchActivityStatsRequest
406
- */
407
- export declare class GetLaunchActivityStatsRequest extends Message<GetLaunchActivityStatsRequest> {
408
- /**
409
- * @generated from field: uint32 chain_id = 1;
410
- */
411
- chainId: number;
412
- /**
413
- * @generated from field: string token_address = 2;
414
- */
415
- tokenAddress: string;
416
- constructor(data?: PartialMessage<GetLaunchActivityStatsRequest>);
417
- static readonly runtime: typeof proto3;
418
- static readonly typeName = "launches.v1.GetLaunchActivityStatsRequest";
419
- static readonly fields: FieldList;
420
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetLaunchActivityStatsRequest;
421
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetLaunchActivityStatsRequest;
422
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetLaunchActivityStatsRequest;
423
- static equals(a: GetLaunchActivityStatsRequest | PlainMessage<GetLaunchActivityStatsRequest> | undefined, b: GetLaunchActivityStatsRequest | PlainMessage<GetLaunchActivityStatsRequest> | undefined): boolean;
424
- }
425
- /**
426
- * @generated from message launches.v1.GetLaunchActivityStatsResponse
427
- */
428
- export declare class GetLaunchActivityStatsResponse extends Message<GetLaunchActivityStatsResponse> {
429
- /**
430
- * One entry per window, always all five, in enum order.
431
- *
432
- * @generated from field: repeated launches.v1.LaunchActivityStatsWindow windows = 1;
433
- */
434
- windows: LaunchActivityStatsWindow[];
435
- constructor(data?: PartialMessage<GetLaunchActivityStatsResponse>);
436
- static readonly runtime: typeof proto3;
437
- static readonly typeName = "launches.v1.GetLaunchActivityStatsResponse";
438
- static readonly fields: FieldList;
439
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetLaunchActivityStatsResponse;
440
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetLaunchActivityStatsResponse;
441
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetLaunchActivityStatsResponse;
442
- static equals(a: GetLaunchActivityStatsResponse | PlainMessage<GetLaunchActivityStatsResponse> | undefined, b: GetLaunchActivityStatsResponse | PlainMessage<GetLaunchActivityStatsResponse> | undefined): boolean;
443
- }
444
- /**
445
- * Trade activity over one trailing window, split by direction from the
446
- * trader's perspective. Unique counts are per trading wallet (the tx
447
- * from-address, not the router) and are HLL-approximate (<1% error). USD
448
- * volume values each swap at its ASOF token price; swaps with no known
449
- * price contribute to counts but not to USD volume.
450
- *
451
- * @generated from message launches.v1.LaunchActivityStatsWindow
452
- */
453
- export declare class LaunchActivityStatsWindow extends Message<LaunchActivityStatsWindow> {
454
- /**
455
- * @generated from field: launches.v1.ActivityStatsWindow window = 1;
456
- */
457
- window: ActivityStatsWindow;
458
- /**
459
- * @generated from field: int32 buy_count = 2;
460
- */
461
- buyCount: number;
462
- /**
463
- * @generated from field: int32 sell_count = 3;
464
- */
465
- sellCount: number;
466
- /**
467
- * @generated from field: double buy_volume_usd = 4;
468
- */
469
- buyVolumeUsd: number;
470
- /**
471
- * @generated from field: double sell_volume_usd = 5;
472
- */
473
- sellVolumeUsd: number;
474
- /**
475
- * @generated from field: int32 unique_buyers = 6;
476
- */
477
- uniqueBuyers: number;
478
- /**
479
- * @generated from field: int32 unique_sellers = 7;
480
- */
481
- uniqueSellers: number;
482
- constructor(data?: PartialMessage<LaunchActivityStatsWindow>);
483
- static readonly runtime: typeof proto3;
484
- static readonly typeName = "launches.v1.LaunchActivityStatsWindow";
485
- static readonly fields: FieldList;
486
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): LaunchActivityStatsWindow;
487
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): LaunchActivityStatsWindow;
488
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): LaunchActivityStatsWindow;
489
- static equals(a: LaunchActivityStatsWindow | PlainMessage<LaunchActivityStatsWindow> | undefined, b: LaunchActivityStatsWindow | PlainMessage<LaunchActivityStatsWindow> | undefined): boolean;
490
- }
491
- /**
492
- * Per-wallet CCA auction claim aggregates for a launch token (LP-1296):
493
- * the cost-basis seed for Top Traders PnL. Serves CCA launches ONLY —
494
- * tokens launched via a Uniswap CCA auction; bonding-curve launches and
495
- * non-factory tokens are a not_found error (curve tokens have no claims:
496
- * their cost basis is the swap history alone). EVM-only.
497
- *
498
- * @generated from message launches.v1.GetLaunchClaimsRequest
499
- */
500
- export declare class GetLaunchClaimsRequest extends Message<GetLaunchClaimsRequest> {
501
- /**
502
- * @generated from field: uint32 chain_id = 1;
503
- */
504
- chainId: number;
505
- /**
506
- * @generated from field: string token_address = 2;
507
- */
508
- tokenAddress: string;
509
- constructor(data?: PartialMessage<GetLaunchClaimsRequest>);
510
- static readonly runtime: typeof proto3;
511
- static readonly typeName = "launches.v1.GetLaunchClaimsRequest";
512
- static readonly fields: FieldList;
513
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetLaunchClaimsRequest;
514
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetLaunchClaimsRequest;
515
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetLaunchClaimsRequest;
516
- static equals(a: GetLaunchClaimsRequest | PlainMessage<GetLaunchClaimsRequest> | undefined, b: GetLaunchClaimsRequest | PlainMessage<GetLaunchClaimsRequest> | undefined): boolean;
517
- }
518
- /**
519
- * One wallet's aggregate acquisition through the auction, folded across all
520
- * of the wallet's bids (multiple bids per wallet are summed). Sourced from
521
- * indexed bid terminal events, so bids exited post-auction with a partial
522
- * fill are included — economically those tokens are auction acquisitions
523
- * even when no explicit claim transaction exists.
524
- *
525
- * The client derives the wallet's TRUE unit cost as
526
- * currency_spent / tokens_received. In a time-weighted CCA, bidders do NOT
527
- * all pay the final clearing price (early accumulation is cheaper), so
528
- * never seed cost basis from the auction-level clearing price when these
529
- * rows are available.
530
- *
531
- * @generated from message launches.v1.LaunchClaim
532
- */
533
- export declare class LaunchClaim extends Message<LaunchClaim> {
534
- /**
535
- * EIP-55 checksummed wallet address.
536
- *
537
- * @generated from field: string wallet = 1;
538
- */
539
- wallet: string;
540
- /**
541
- * Total launch tokens the wallet received from the auction, raw uint256
542
- * decimal string in token base units.
543
- *
544
- * @generated from field: string tokens_received = 2;
545
- */
546
- tokensReceived: string;
547
- /**
548
- * What the wallet actually spent, NET of refunds, as a raw uint256
549
- * decimal string in the auction's raise-currency base units (see
550
- * GetAuction for the currency): sum over the wallet's terminal bids of
551
- * (bid amount - exit refund).
552
- *
553
- * @generated from field: string currency_spent = 3;
554
- */
555
- currencySpent: string;
556
- /**
557
- * Number of the wallet's bids folded into this row (bids claimed or
558
- * exited with a nonzero fill).
559
- *
560
- * @generated from field: int32 claim_count = 4;
561
- */
562
- claimCount: number;
563
- /**
564
- * True when every bid the wallet placed on this auction has reached a
565
- * terminal state (claimed or exited); false while any bid is still
566
- * pending, i.e. tokens_received may still grow.
567
- *
568
- * @generated from field: bool fully_claimed = 5;
569
- */
570
- fullyClaimed: boolean;
571
- constructor(data?: PartialMessage<LaunchClaim>);
572
- static readonly runtime: typeof proto3;
573
- static readonly typeName = "launches.v1.LaunchClaim";
574
- static readonly fields: FieldList;
575
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): LaunchClaim;
576
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): LaunchClaim;
577
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): LaunchClaim;
578
- static equals(a: LaunchClaim | PlainMessage<LaunchClaim> | undefined, b: LaunchClaim | PlainMessage<LaunchClaim> | undefined): boolean;
579
- }
580
- /**
581
- * @generated from message launches.v1.GetLaunchClaimsResponse
582
- */
583
- export declare class GetLaunchClaimsResponse extends Message<GetLaunchClaimsResponse> {
584
- /**
585
- * One row per claiming wallet, ordered tokens_received DESC (wallet ASC
586
- * tiebreak); empty when the auction has no terminal bids yet. Servers
587
- * cap the list to the top wallets under that ordering (currently 1000),
588
- * so the rows are the complete claimer set for any auction below the
589
- * cap; total_claimed and unique_claimers ALWAYS cover every claimer,
590
- * not just the returned rows.
591
- *
592
- * @generated from field: repeated launches.v1.LaunchClaim claims = 1;
593
- */
594
- claims: LaunchClaim[];
595
- /**
596
- * Total launch tokens received across ALL claiming wallets (the full
597
- * population, even when claims is capped), raw uint256 decimal string
598
- * in token base units.
599
- *
600
- * @generated from field: string total_claimed = 2;
601
- */
602
- totalClaimed: string;
603
- /**
604
- * Number of distinct claiming wallets in the full population (may
605
- * exceed the number of rows in claims when the cap applies).
606
- *
607
- * @generated from field: int32 unique_claimers = 3;
608
- */
609
- uniqueClaimers: number;
610
- constructor(data?: PartialMessage<GetLaunchClaimsResponse>);
611
- static readonly runtime: typeof proto3;
612
- static readonly typeName = "launches.v1.GetLaunchClaimsResponse";
613
- static readonly fields: FieldList;
614
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetLaunchClaimsResponse;
615
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetLaunchClaimsResponse;
616
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetLaunchClaimsResponse;
617
- static equals(a: GetLaunchClaimsResponse | PlainMessage<GetLaunchClaimsResponse> | undefined, b: GetLaunchClaimsResponse | PlainMessage<GetLaunchClaimsResponse> | undefined): boolean;
618
- }
619
- /**
620
- * Creator-fee metrics for ONE Instant Launch token (LP-1332): the numbers
621
- * behind the portfolio Fees panel — fees accumulated for the creator,
622
- * claimable now, claimed to date, and auto-compounded back into the launch
623
- * position. Computed from indexed FeeSplitter FeesCollected and claim
624
- * recipient Claimed events with the launcher SDK's fee math, so the amounts
625
- * match the on-chain per-position attribution exactly (per-collect
626
- * multiply-before-divide flooring). Instant Launch tokens only: a token with
627
- * neither indexed fee events nor a resolvable launch (CCA launches,
628
- * non-factory tokens) is a not_found error. EVM-only.
629
- *
630
- * @generated from message launches.v1.GetLaunchCreatorFeesRequest
631
- */
632
- export declare class GetLaunchCreatorFeesRequest extends Message<GetLaunchCreatorFeesRequest> {
633
- /**
634
- * @generated from field: uint32 chain_id = 1;
635
- */
636
- chainId: number;
637
- /**
638
- * The launched token's address (any casing).
639
- *
640
- * @generated from field: string token_address = 2;
641
- */
642
- tokenAddress: string;
643
- constructor(data?: PartialMessage<GetLaunchCreatorFeesRequest>);
644
- static readonly runtime: typeof proto3;
645
- static readonly typeName = "launches.v1.GetLaunchCreatorFeesRequest";
646
- static readonly fields: FieldList;
647
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetLaunchCreatorFeesRequest;
648
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetLaunchCreatorFeesRequest;
649
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetLaunchCreatorFeesRequest;
650
- static equals(a: GetLaunchCreatorFeesRequest | PlainMessage<GetLaunchCreatorFeesRequest> | undefined, b: GetLaunchCreatorFeesRequest | PlainMessage<GetLaunchCreatorFeesRequest> | undefined): boolean;
651
- }
652
- /**
653
- * A native + launch-token amount pair, raw uint256 base units as decimal
654
- * strings: native_amount in wei (the launch pool's currency0),
655
- * token_amount in launch-token base units (currency1).
656
- *
657
- * @generated from message launches.v1.LaunchCreatorFeeAmounts
658
- */
659
- export declare class LaunchCreatorFeeAmounts extends Message<LaunchCreatorFeeAmounts> {
660
- /**
661
- * @generated from field: string native_amount = 1;
662
- */
663
- nativeAmount: string;
664
- /**
665
- * @generated from field: string token_amount = 2;
666
- */
667
- tokenAmount: string;
668
- constructor(data?: PartialMessage<LaunchCreatorFeeAmounts>);
669
- static readonly runtime: typeof proto3;
670
- static readonly typeName = "launches.v1.LaunchCreatorFeeAmounts";
671
- static readonly fields: FieldList;
672
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): LaunchCreatorFeeAmounts;
673
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): LaunchCreatorFeeAmounts;
674
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): LaunchCreatorFeeAmounts;
675
- static equals(a: LaunchCreatorFeeAmounts | PlainMessage<LaunchCreatorFeeAmounts> | undefined, b: LaunchCreatorFeeAmounts | PlainMessage<LaunchCreatorFeeAmounts> | undefined): boolean;
676
- }
677
- /**
678
- * The creator's own fee position — the ONLY amounts that belong to the
679
- * creator. Grouped in their own message so no caller can read a
680
- * protocol-custodied figure as part of the creator's total (see
681
- * auto_compounded below). All three are POSITION-lifetime: the vault NFT is
682
- * transferable, so they span every holder the position has had, not just the
683
- * current beneficiary. When the launch settled into SEVERAL LP positions (a
684
- * CCA/crowd-launch migration can mint more than one), all three aggregate
685
- * across every position — claimable is clamped per position before summing.
686
- *
687
- * @generated from message launches.v1.CreatorFeeTotals
688
- */
689
- export declare class CreatorFeeTotals extends Message<CreatorFeeTotals> {
690
- /**
691
- * The creator's share of all fees collected so far, floored per collect
692
- * exactly as the FeeSplitter forwards it — equal to the beneficiary
693
- * vault's cumulative on-chain attribution for the position.
694
- *
695
- * @generated from field: launches.v1.LaunchCreatorFeeAmounts accumulated = 1;
696
- */
697
- accumulated?: LaunchCreatorFeeAmounts;
698
- /**
699
- * Paid out by the beneficiary vault to date — across all holders of the
700
- * transferable vault NFT (past holders' payouts are included).
701
- *
702
- * @generated from field: launches.v1.LaunchCreatorFeeAmounts claimed = 2;
703
- */
704
- claimed?: LaunchCreatorFeeAmounts;
705
- /**
706
- * accumulated − claimed, floored at zero per side: what a vault claim
707
- * would pay right now (donations aside). Settles per-tokenId (the launch
708
- * LP position), NOT per-beneficiary — whoever holds the vault NFT at
709
- * claim time receives it.
710
- *
711
- * SETTLED-ONLY. Fees reach the beneficiary vault only when somebody calls
712
- * the permissionless FeeSplitter.collectFees(tokenIds), so this
713
- * UNDERSTATES the creator's earnings by everything the launch's Uniswap
714
- * v4 position has accrued since the last collect. Its meaning is
715
- * unchanged and will not change — see claimable_including_uncollected for
716
- * the figure to show a creator as "your earnings".
717
- *
718
- * @generated from field: launches.v1.LaunchCreatorFeeAmounts claimable = 3;
719
- */
720
- claimable?: LaunchCreatorFeeAmounts;
721
- /**
722
- * `claimable` PLUS the creator's share of the fees still sitting
723
- * uncollected in the launch's Uniswap v4 position: what a
724
- * collectFees + claim sent right now would actually pay out.
725
- *
726
- * Computed by simulating FeeSplitter.collectFees(tokenIds) against the
727
- * chain head (eth_simulateV1) and reading the beneficiary vault's
728
- * amounts(tokenId) inside that same simulated state — no transaction is
729
- * sent and no state is written. Aggregated across every LP position of
730
- * the launch, exactly like `claimable`.
731
- *
732
- * Always populated: when the simulation cannot run (RPC error, or a
733
- * collect that reverts) this degrades to the vault's settled on-chain
734
- * balance, and finally to `claimable` itself, so a creator sees a
735
- * slightly stale number rather than an error.
736
- *
737
- * Read claimable_includes_uncollected before deciding how to treat this.
738
- *
739
- * WHEN IT IS TRUE this is the post-collect figure: normally >=
740
- * `claimable`, but it comes from chain state rather than indexed events,
741
- * so it can also come in LOWER when the indexer is behind a claim that
742
- * already landed. It is the authoritative figure in that case — do not
743
- * max() the two.
744
- *
745
- * WHEN IT IS FALSE the collect could not be simulated and this degraded
746
- * to a settled balance (or to `claimable` itself). It then carries no
747
- * uncollected remainder and can only UNDERSTATE the creator's earnings,
748
- * so max() with `claimable` is the right defence and the number must not
749
- * be labelled "your earnings".
750
- *
751
- * @generated from field: launches.v1.LaunchCreatorFeeAmounts claimable_including_uncollected = 4;
752
- */
753
- claimableIncludingUncollected?: LaunchCreatorFeeAmounts;
754
- constructor(data?: PartialMessage<CreatorFeeTotals>);
755
- static readonly runtime: typeof proto3;
756
- static readonly typeName = "launches.v1.CreatorFeeTotals";
757
- static readonly fields: FieldList;
758
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreatorFeeTotals;
759
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreatorFeeTotals;
760
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreatorFeeTotals;
761
- static equals(a: CreatorFeeTotals | PlainMessage<CreatorFeeTotals> | undefined, b: CreatorFeeTotals | PlainMessage<CreatorFeeTotals> | undefined): boolean;
762
- }
763
- /**
764
- * @generated from message launches.v1.GetLaunchCreatorFeesResponse
765
- */
766
- export declare class GetLaunchCreatorFeesResponse extends Message<GetLaunchCreatorFeesResponse> {
767
- /**
768
- * False for launches created through the fees-off strategy variant: every
769
- * collected fee auto-compounds, so `creator` is all zeros and
770
- * fee_beneficiary is never set. Distinguish this from "earned nothing
771
- * yet" when rendering — they are different states.
772
- *
773
- * @generated from field: bool creator_fees_enabled = 1;
774
- */
775
- creatorFeesEnabled: boolean;
776
- /**
777
- * Everything the creator has earned, been paid, and can still claim.
778
- *
779
- * @generated from field: launches.v1.CreatorFeeTotals creator = 2;
780
- */
781
- creator?: CreatorFeeTotals;
782
- /**
783
- * NOT the creator's money, and NEVER additive with `creator`. Released to
784
- * the CompoundingClaimRecipient, whose claims are enforced on-chain to
785
- * increase the launch position's own liquidity in the same transaction, so
786
- * it is protocol-custodied and the creator can never claim it.
787
- *
788
- * It is the COMPLEMENTARY leg of the very same collects that produced
789
- * creator.accumulated — on the chain-4663 fees-on splitter the split is
790
- * 40% creator / 60% compounded, verified exact against on-chain Claimed
791
- * payouts. So creator.accumulated + auto_compounded is the position's whole
792
- * fee revenue, i.e. 2.5x what the creator actually earned. Render it as
793
- * pool growth if at all, never inside a creator earnings total.
794
- *
795
- * @generated from field: launches.v1.LaunchCreatorFeeAmounts auto_compounded = 3;
796
- */
797
- autoCompounded?: LaunchCreatorFeeAmounts;
798
- /**
799
- * The launch's v4 LP position id (uint256 decimal string) — the key the
800
- * beneficiary vault settles claims on, so a client building a claim
801
- * transaction needs it (it is not derivable client-side). Unset when the
802
- * launch has neither a collect nor a vault mint yet, in which case there
803
- * is nothing to claim. When a CCA/crowd-launch migration minted several
804
- * positions, this is the EARLIEST-collecting one while the amounts
805
- * aggregate all of them — a claim on it pays that position's share, not
806
- * the whole claimable.
807
- *
808
- * @generated from field: optional string position_token_id = 4;
809
- */
810
- positionTokenId?: string;
811
- /**
812
- * Current beneficiary: the CREATOR'S WALLET (EIP-55) — the holder of the
813
- * beneficiary ERC721 for the position_token_id position, who may claim
814
- * and re-point the fee stream by transferring the NFT. This is NOT the
815
- * vault contract; that is beneficiary_vault. Unset when creator fees are
816
- * off, while vault ingestion lags (for a CCA launch: until the creator's
817
- * graffiti claim mints the vault NFT), or transiently mid re-registration
818
- * (NFT burned).
819
- *
820
- * @generated from field: optional string fee_beneficiary = 5;
821
- */
822
- feeBeneficiary?: string;
823
- /**
824
- * Freshness marker: unix seconds of the newest ingested event this
825
- * response was computed from, across every feed read (fee collections,
826
- * vault transfers, claims). 0 when no event has been ingested yet. A
827
- * stalled sink freezes this value while on-chain fees keep accruing, so
828
- * clients gating actions on creator.claimable (e.g. enabling a Claim
829
- * button) should treat a stale marker as stale data.
830
- *
831
- * @generated from field: int64 as_of_timestamp = 6;
832
- */
833
- asOfTimestamp: bigint;
834
- /**
835
- * The launch's own FeeSplitter (EIP-55) — the contract to send the
836
- * permissionless collectFees([position_token_id]) to, which sweeps the v4
837
- * position's fees into the beneficiary vault and is what makes
838
- * creator.claimable_including_uncollected actually claimable.
839
- *
840
- * PER LAUNCH, NOT A CHAIN CONSTANT: several FeeSplitter generations are
841
- * deployed and live on the same chain (Robinhood Chain runs two), and a
842
- * launch's fees only ever flow through the one its strategy was wired to.
843
- * Clients MUST call the address in this field — a hardcoded per-chain
844
- * splitter silently targets the wrong generation.
845
- *
846
- * Set for every launch this endpoint serves: where the indexed launch row
847
- * carries no position recipient (a crowd launch, which never gets a row,
848
- * or a row predating the column) the server falls back to the resolved
849
- * strategy's own immutable FeeSplitter. Clients no longer need to gate the
850
- * displayed figure down to the settled balance on an unset splitter.
851
- *
852
- * @generated from field: optional string fee_splitter = 7;
853
- */
854
- feeSplitter?: string;
855
- /**
856
- * The launch's own UERC20BeneficiaryVault (EIP-55) — the contract that
857
- * custodies the creator's share and that claim(position_token_id, 0, 0)
858
- * is sent to. Per launch for the same reason fee_splitter is.
859
- *
860
- * Read from fee_splitter's OWN on-chain splits, so this vault and that
861
- * splitter are a matched pair by construction rather than two independent
862
- * lookups that can name contracts from different generations. Falls back
863
- * to the indexed beneficiary NFT when that read is unavailable. Unset only
864
- * when creator fees are off (no vault exists) or neither source has one
865
- * yet.
866
- *
867
- * @generated from field: optional string beneficiary_vault = 8;
868
- */
869
- beneficiaryVault?: string;
870
- /**
871
- * False when the collect could not be simulated and
872
- * creator.claimable_including_uncollected is a settled balance (or the
873
- * event-derived claimable) rather than the post-collect figure. Clients
874
- * should not present it as "your earnings" when false.
875
- *
876
- * as_of_timestamp does NOT cover for this: that marker is computed from
877
- * indexed events only, so it reads perfectly fresh during an RPC outage
878
- * while the amount beside it has silently gone stale. This is the only
879
- * signal that distinguishes the two.
880
- *
881
- * `optional` is load-bearing. A bare proto3 bool reads as false when
882
- * absent, so a client built against <= 0.0.180 would see "degraded" on
883
- * every response; the presence bit separates "this server does not send
884
- * it" from "this response is degraded".
885
- *
886
- * @generated from field: optional bool claimable_includes_uncollected = 9;
887
- */
888
- claimableIncludesUncollected?: boolean;
889
- constructor(data?: PartialMessage<GetLaunchCreatorFeesResponse>);
890
- static readonly runtime: typeof proto3;
891
- static readonly typeName = "launches.v1.GetLaunchCreatorFeesResponse";
892
- static readonly fields: FieldList;
893
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetLaunchCreatorFeesResponse;
894
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetLaunchCreatorFeesResponse;
895
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetLaunchCreatorFeesResponse;
896
- static equals(a: GetLaunchCreatorFeesResponse | PlainMessage<GetLaunchCreatorFeesResponse> | undefined, b: GetLaunchCreatorFeesResponse | PlainMessage<GetLaunchCreatorFeesResponse> | undefined): boolean;
897
- }
898
- /**
899
- * Batched GetLaunchCreatorFees: the SAME per-token metrics for a whole set of
900
- * tokens in one request. A creator portfolio polling 30 launches otherwise
901
- * makes 30 requests every tick; this is the batched replacement, modelled on
902
- * GetLiquidityForTokens below.
903
- *
904
- * Not a widening of GetLaunchCreatorFees: that response is a SINGLETON message
905
- * with no repeated field and no (chain_id, token_address) identity on it, so a
906
- * batch cannot be expressed in it without making every existing field
907
- * mode-dependent. The single-token RPC keeps working unchanged and stays the
908
- * right call for one token.
909
- *
910
- * @generated from message launches.v1.GetLaunchCreatorFeesForTokensRequest
911
- */
912
- export declare class GetLaunchCreatorFeesForTokensRequest extends Message<GetLaunchCreatorFeesForTokensRequest> {
913
- /**
914
- * max 100
915
- *
916
- * @generated from field: repeated launches.v1.TokenIdentifier tokens = 1;
917
- */
918
- tokens: TokenIdentifier[];
919
- constructor(data?: PartialMessage<GetLaunchCreatorFeesForTokensRequest>);
920
- static readonly runtime: typeof proto3;
921
- static readonly typeName = "launches.v1.GetLaunchCreatorFeesForTokensRequest";
922
- static readonly fields: FieldList;
923
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetLaunchCreatorFeesForTokensRequest;
924
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetLaunchCreatorFeesForTokensRequest;
925
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetLaunchCreatorFeesForTokensRequest;
926
- static equals(a: GetLaunchCreatorFeesForTokensRequest | PlainMessage<GetLaunchCreatorFeesForTokensRequest> | undefined, b: GetLaunchCreatorFeesForTokensRequest | PlainMessage<GetLaunchCreatorFeesForTokensRequest> | undefined): boolean;
927
- }
928
- /**
929
- * One entry per requested token, in request order. Read the THREE-WAY
930
- * distinction below before rendering anything — it is the whole point of the
931
- * batch form, and collapsing two of the cases produces a wrong zero:
932
- *
933
- * * entry present, `fees` SET -> the token's fee position (identical to
934
- * what the single-token GetLaunchCreatorFees returns for it).
935
- * * entry present, `fees` UNSET -> NO POSITION. Exactly the case the
936
- * single-token RPC answers with not_found: the token has neither indexed
937
- * Instant Launch fee events nor a resolvable launch. A durable, cacheable
938
- * answer — render "no fees", do not retry.
939
- * * entry ABSENT from `entries` -> NOT EVALUATED. The server could not
940
- * determine this token's fees (a transient upstream failure on that token
941
- * alone). NOT a statement that there is no position: keep the previous
942
- * value or retry, never render zero.
943
- *
944
- * A single failing or position-less token therefore never fails the batch —
945
- * the other tokens are still served.
946
- *
947
- * @generated from message launches.v1.GetLaunchCreatorFeesForTokensResponse
948
- */
949
- export declare class GetLaunchCreatorFeesForTokensResponse extends Message<GetLaunchCreatorFeesForTokensResponse> {
950
- /**
951
- * @generated from field: repeated launches.v1.LaunchCreatorFeesEntry entries = 1;
952
- */
953
- entries: LaunchCreatorFeesEntry[];
954
- constructor(data?: PartialMessage<GetLaunchCreatorFeesForTokensResponse>);
955
- static readonly runtime: typeof proto3;
956
- static readonly typeName = "launches.v1.GetLaunchCreatorFeesForTokensResponse";
957
- static readonly fields: FieldList;
958
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetLaunchCreatorFeesForTokensResponse;
959
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetLaunchCreatorFeesForTokensResponse;
960
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetLaunchCreatorFeesForTokensResponse;
961
- static equals(a: GetLaunchCreatorFeesForTokensResponse | PlainMessage<GetLaunchCreatorFeesForTokensResponse> | undefined, b: GetLaunchCreatorFeesForTokensResponse | PlainMessage<GetLaunchCreatorFeesForTokensResponse> | undefined): boolean;
962
- }
963
- /**
964
- * A requested token paired with its fees. chain_id AND token_address are both
965
- * always set so a caller matches rows back by identity rather than by index —
966
- * order is request order today, but absent entries make positional matching
967
- * wrong, so do not rely on it.
968
- *
969
- * @generated from message launches.v1.LaunchCreatorFeesEntry
970
- */
971
- export declare class LaunchCreatorFeesEntry extends Message<LaunchCreatorFeesEntry> {
972
- /**
973
- * @generated from field: uint32 chain_id = 1;
974
- */
975
- chainId: number;
976
- /**
977
- * EIP-55 checksummed token address, echoing the requested token.
978
- *
979
- * @generated from field: string token_address = 2;
980
- */
981
- tokenAddress: string;
982
- /**
983
- * The single-token response embedded verbatim, so the batch and single-token
984
- * forms can never drift in meaning. UNSET = no position (see above).
985
- *
986
- * @generated from field: optional launches.v1.GetLaunchCreatorFeesResponse fees = 3;
987
- */
988
- fees?: GetLaunchCreatorFeesResponse;
989
- constructor(data?: PartialMessage<LaunchCreatorFeesEntry>);
990
- static readonly runtime: typeof proto3;
991
- static readonly typeName = "launches.v1.LaunchCreatorFeesEntry";
992
- static readonly fields: FieldList;
993
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): LaunchCreatorFeesEntry;
994
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): LaunchCreatorFeesEntry;
995
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): LaunchCreatorFeesEntry;
996
- static equals(a: LaunchCreatorFeesEntry | PlainMessage<LaunchCreatorFeesEntry> | undefined, b: LaunchCreatorFeesEntry | PlainMessage<LaunchCreatorFeesEntry> | undefined): boolean;
997
- }
998
- /**
999
- * Anti-vamp create-flow check (LP-1311): has a token with this name + ticker
1000
- * combination launched on the chain within the trailing 8 hours? Matching is
1001
- * case-insensitive on both fields and covers every Uniswap token-factory
1002
- * launch (Crowd Launch and Instant Launch, created through our flow or
1003
- * directly against the contracts). The FE renders a soft warning ("this
1004
- * name + ticker launched X hours ago — here's that token") linking the
1005
- * original's token page; nothing is blocked server-side. Backed by the same
1006
- * table and predicate the indexer uses to vamp-flag copycat launches out of
1007
- * ListLaunches, so the warning and the listing filter cannot drift. EVM-only.
1008
- *
1009
- * @generated from message launches.v1.CheckLaunchNameTickerRequest
1010
- */
1011
- export declare class CheckLaunchNameTickerRequest extends Message<CheckLaunchNameTickerRequest> {
1012
- /**
1013
- * @generated from field: uint32 chain_id = 1;
1014
- */
1015
- chainId: number;
1016
- /**
1017
- * Token name as entered in the create form (compared case-insensitively).
1018
- *
1019
- * @generated from field: string name = 2;
1020
- */
1021
- name: string;
1022
- /**
1023
- * Token ticker/symbol as entered in the create form (compared
1024
- * case-insensitively).
1025
- *
1026
- * @generated from field: string symbol = 3;
1027
- */
1028
- symbol: string;
1029
- constructor(data?: PartialMessage<CheckLaunchNameTickerRequest>);
1030
- static readonly runtime: typeof proto3;
1031
- static readonly typeName = "launches.v1.CheckLaunchNameTickerRequest";
1032
- static readonly fields: FieldList;
1033
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CheckLaunchNameTickerRequest;
1034
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CheckLaunchNameTickerRequest;
1035
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CheckLaunchNameTickerRequest;
1036
- static equals(a: CheckLaunchNameTickerRequest | PlainMessage<CheckLaunchNameTickerRequest> | undefined, b: CheckLaunchNameTickerRequest | PlainMessage<CheckLaunchNameTickerRequest> | undefined): boolean;
1037
- }
1038
- /**
1039
- * @generated from message launches.v1.CheckLaunchNameTickerResponse
1040
- */
1041
- export declare class CheckLaunchNameTickerResponse extends Message<CheckLaunchNameTickerResponse> {
1042
- /**
1043
- * True when a matching token launched within the trailing 8h window —
1044
- * launching this name + ticker now would be vamp-flagged at ingest.
1045
- *
1046
- * @generated from field: bool recently_launched = 1;
1047
- */
1048
- recentlyLaunched: boolean;
1049
- /**
1050
- * The launch the warning should link to. Set iff recently_launched. When
1051
- * several launches match in the window (chained copycats), this is the
1052
- * earliest match that is not itself vamp-flagged, falling back to the
1053
- * earliest match.
1054
- *
1055
- * @generated from field: launches.v1.RecentlyLaunchedToken original_token = 2;
1056
- */
1057
- originalToken?: RecentlyLaunchedToken;
1058
- constructor(data?: PartialMessage<CheckLaunchNameTickerResponse>);
1059
- static readonly runtime: typeof proto3;
1060
- static readonly typeName = "launches.v1.CheckLaunchNameTickerResponse";
1061
- static readonly fields: FieldList;
1062
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CheckLaunchNameTickerResponse;
1063
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CheckLaunchNameTickerResponse;
1064
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CheckLaunchNameTickerResponse;
1065
- static equals(a: CheckLaunchNameTickerResponse | PlainMessage<CheckLaunchNameTickerResponse> | undefined, b: CheckLaunchNameTickerResponse | PlainMessage<CheckLaunchNameTickerResponse> | undefined): boolean;
1066
- }
1067
- /**
1068
- * The already-launched token a CheckLaunchNameTicker warning points at.
1069
- *
1070
- * @generated from message launches.v1.RecentlyLaunchedToken
1071
- */
1072
- export declare class RecentlyLaunchedToken extends Message<RecentlyLaunchedToken> {
1073
- /**
1074
- * @generated from field: uint32 chain_id = 1;
1075
- */
1076
- chainId: number;
1077
- /**
1078
- * EIP-55 checksummed token address; with chain_id, enough to build the
1079
- * token-page link.
1080
- *
1081
- * @generated from field: string token_address = 2;
1082
- */
1083
- tokenAddress: string;
1084
- /**
1085
- * Stored name/symbol casing (the launched token's on-chain metadata).
1086
- *
1087
- * @generated from field: string name = 3;
1088
- */
1089
- name: string;
1090
- /**
1091
- * @generated from field: string symbol = 4;
1092
- */
1093
- symbol: string;
1094
- /**
1095
- * Unix seconds of the token's launch — the "launched X hours ago" the
1096
- * warning renders.
1097
- *
1098
- * @generated from field: int64 launched_at = 5;
1099
- */
1100
- launchedAt: bigint;
1101
- constructor(data?: PartialMessage<RecentlyLaunchedToken>);
1102
- static readonly runtime: typeof proto3;
1103
- static readonly typeName = "launches.v1.RecentlyLaunchedToken";
1104
- static readonly fields: FieldList;
1105
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): RecentlyLaunchedToken;
1106
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): RecentlyLaunchedToken;
1107
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): RecentlyLaunchedToken;
1108
- static equals(a: RecentlyLaunchedToken | PlainMessage<RecentlyLaunchedToken> | undefined, b: RecentlyLaunchedToken | PlainMessage<RecentlyLaunchedToken> | undefined): boolean;
1109
- }
1110
- /**
1111
- * Total USD liquidity per token — the sum of the FULL (two-sided) TVL of every
1112
- * v2/v3/v4 pool the token sits in, which is the figure aggregators publish as a
1113
- * token's "liquidity". Batched on purpose: callers rendering a liquidity column
1114
- * must send the whole visible token set in one request rather than one request
1115
- * per row.
1116
- *
1117
- * @generated from message launches.v1.GetLiquidityForTokensRequest
1118
- */
1119
- export declare class GetLiquidityForTokensRequest extends Message<GetLiquidityForTokensRequest> {
1120
- /**
1121
- * max 100
1122
- *
1123
- * @generated from field: repeated launches.v1.TokenIdentifier tokens = 1;
1124
- */
1125
- tokens: TokenIdentifier[];
1126
- constructor(data?: PartialMessage<GetLiquidityForTokensRequest>);
1127
- static readonly runtime: typeof proto3;
1128
- static readonly typeName = "launches.v1.GetLiquidityForTokensRequest";
1129
- static readonly fields: FieldList;
1130
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetLiquidityForTokensRequest;
1131
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetLiquidityForTokensRequest;
1132
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetLiquidityForTokensRequest;
1133
- static equals(a: GetLiquidityForTokensRequest | PlainMessage<GetLiquidityForTokensRequest> | undefined, b: GetLiquidityForTokensRequest | PlainMessage<GetLiquidityForTokensRequest> | undefined): boolean;
1134
- }
1135
- /**
1136
- * Best-effort response: one entry per requested token whose liquidity is known.
1137
- * A token with no pools, or whose pools have no computed TVL yet, is OMITTED
1138
- * rather than returned as 0 — so a caller can fall back to its own figure
1139
- * instead of rendering a wrong zero. Match entries back to the request by
1140
- * (chain_id, address).
1141
- *
1142
- * @generated from message launches.v1.GetLiquidityForTokensResponse
1143
- */
1144
- export declare class GetLiquidityForTokensResponse extends Message<GetLiquidityForTokensResponse> {
1145
- /**
1146
- * @generated from field: repeated launches.v1.TokenLiquidity liquidity = 1;
1147
- */
1148
- liquidity: TokenLiquidity[];
1149
- constructor(data?: PartialMessage<GetLiquidityForTokensResponse>);
1150
- static readonly runtime: typeof proto3;
1151
- static readonly typeName = "launches.v1.GetLiquidityForTokensResponse";
1152
- static readonly fields: FieldList;
1153
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetLiquidityForTokensResponse;
1154
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetLiquidityForTokensResponse;
1155
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetLiquidityForTokensResponse;
1156
- static equals(a: GetLiquidityForTokensResponse | PlainMessage<GetLiquidityForTokensResponse> | undefined, b: GetLiquidityForTokensResponse | PlainMessage<GetLiquidityForTokensResponse> | undefined): boolean;
1157
- }
1158
- /**
1159
- * @generated from message launches.v1.TokenLiquidity
1160
- */
1161
- export declare class TokenLiquidity extends Message<TokenLiquidity> {
1162
- /**
1163
- * @generated from field: uint32 chain_id = 1;
1164
- */
1165
- chainId: number;
1166
- /**
1167
- * EIP-55 checksummed token address, echoing the requested token.
1168
- *
1169
- * @generated from field: string address = 2;
1170
- */
1171
- address: string;
1172
- /**
1173
- * Summed pool TVL in USD. Always > 0 — see the omission rule above.
1174
- *
1175
- * @generated from field: double liquidity_usd = 3;
1176
- */
1177
- liquidityUsd: number;
1178
- constructor(data?: PartialMessage<TokenLiquidity>);
1179
- static readonly runtime: typeof proto3;
1180
- static readonly typeName = "launches.v1.TokenLiquidity";
1181
- static readonly fields: FieldList;
1182
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): TokenLiquidity;
1183
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): TokenLiquidity;
1184
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): TokenLiquidity;
1185
- static equals(a: TokenLiquidity | PlainMessage<TokenLiquidity> | undefined, b: TokenLiquidity | PlainMessage<TokenLiquidity> | undefined): boolean;
1186
- }
1187
- /**
1188
- * Newest-first swap feed for a token, aggregated across ALL its pools
1189
- * (v2/v3/v4) on the chain. Non-swap events (mints/burns/liquidity) are
1190
- * excluded. Lookback is capped at 3 months. EVM-only.
1191
- *
1192
- * @generated from message launches.v1.GetTokenTradesRequest
1193
- */
1194
- export declare class GetTokenTradesRequest extends Message<GetTokenTradesRequest> {
1195
- /**
1196
- * @generated from field: launches.v1.TokenIdentifier token = 1;
1197
- */
1198
- token?: TokenIdentifier;
1199
- /**
1200
- * page_size (default 25, max 100) + page_token
1201
- *
1202
- * @generated from field: optional launches.v1.PageRequest page = 2;
1203
- */
1204
- page?: PageRequest;
1205
- /**
1206
- * Restrict the feed to one trader: matches the trade's wallet (the tx
1207
- * sender, not the router). Any casing accepted. Omitted = all traders.
1208
- * page_token carries only a keyset position, not this filter — the client
1209
- * must resend the same wallet on every page; omitting or changing it
1210
- * resumes from that position under different filter semantics.
1211
- *
1212
- * @generated from field: optional string wallet = 3;
1213
- */
1214
- wallet?: string;
1215
- /**
1216
- * Minimum trade size: keep only trades whose amount_usd is >= this
1217
- * threshold. Trades with no known USD amount are excluded when set (they
1218
- * cannot be proven to clear the bar). Omitted or 0 = no filtering; negative
1219
- * or non-finite values are rejected. Applied before the page cut, so a page
1220
- * holds up to page_size MATCHING trades — but the server bounds how far it
1221
- * scans per request, so a page may come back short of page_size while
1222
- * next_page_token is still set; presence of next_page_token, not page
1223
- * fullness, signals more data under this filter. Deep scans also terminate
1224
- * after a bounded total: once a walk has scanned a server-defined number of
1225
- * rows (currently 5,000) the server stops issuing next_page_token and the
1226
- * feed ends early. Like wallet, page_token carries only the walk position —
1227
- * the client must resend the same min_amount_usd on every page.
1228
- *
1229
- * @generated from field: optional double min_amount_usd = 4;
1230
- */
1231
- minAmountUsd?: number;
1232
- constructor(data?: PartialMessage<GetTokenTradesRequest>);
1233
- static readonly runtime: typeof proto3;
1234
- static readonly typeName = "launches.v1.GetTokenTradesRequest";
1235
- static readonly fields: FieldList;
1236
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetTokenTradesRequest;
1237
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetTokenTradesRequest;
1238
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetTokenTradesRequest;
1239
- static equals(a: GetTokenTradesRequest | PlainMessage<GetTokenTradesRequest> | undefined, b: GetTokenTradesRequest | PlainMessage<GetTokenTradesRequest> | undefined): boolean;
1240
- }
1241
- /**
1242
- * @generated from message launches.v1.GetTokenTradesResponse
1243
- */
1244
- export declare class GetTokenTradesResponse extends Message<GetTokenTradesResponse> {
1245
- /**
1246
- * @generated from field: repeated launches.v1.TokenTrade trades = 1;
1247
- */
1248
- trades: TokenTrade[];
1249
- /**
1250
- * next_page_token absent on last page
1251
- *
1252
- * @generated from field: launches.v1.PageResponse page = 2;
1253
- */
1254
- page?: PageResponse;
1255
- constructor(data?: PartialMessage<GetTokenTradesResponse>);
1256
- static readonly runtime: typeof proto3;
1257
- static readonly typeName = "launches.v1.GetTokenTradesResponse";
1258
- static readonly fields: FieldList;
1259
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetTokenTradesResponse;
1260
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetTokenTradesResponse;
1261
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetTokenTradesResponse;
1262
- static equals(a: GetTokenTradesResponse | PlainMessage<GetTokenTradesResponse> | undefined, b: GetTokenTradesResponse | PlainMessage<GetTokenTradesResponse> | undefined): boolean;
1263
- }
1264
- /**
1265
- * Server-computed Top Traders leaderboard for a launch token: the token's
1266
- * FULL swap history (no page cap) folded into per-wallet cost-basis PnL,
1267
- * with CCA auction claims counted as buy-side acquisitions at what each
1268
- * wallet actually spent (the GetLaunchClaims aggregates). Replaces the
1269
- * client-side capped GetTokenTrades walk, whose 1,500-trade window
1270
- * fabricated zero-basis top rows for pre-window buyers. Non-launch tokens
1271
- * (no CCA auction) are served from their trade history alone — never an
1272
- * error; a token with no swaps and no claims serves an empty list. EVM-only.
1273
- *
1274
- * @generated from message launches.v1.GetTokenTopTradersRequest
1275
- */
1276
- export declare class GetTokenTopTradersRequest extends Message<GetTokenTopTradersRequest> {
1277
- /**
1278
- * @generated from field: uint32 chain_id = 1;
1279
- */
1280
- chainId: number;
1281
- /**
1282
- * @generated from field: string token_address = 2;
1283
- */
1284
- tokenAddress: string;
1285
- /**
1286
- * Rows to return, best-ranked first. 0/unset defaults to 100; servers cap
1287
- * the limit (currently 1000).
1288
- *
1289
- * @generated from field: optional int32 limit = 3;
1290
- */
1291
- limit?: number;
1292
- /**
1293
- * Per-wallet lookup (LP-1558): serve only this wallet's row, covering ANY
1294
- * wallet in the token's history — the full cached ranking first, and past
1295
- * its cap the row comes from the same uncapped fold the ranking is cut
1296
- * from (server-cached per wallet). Unset/empty serves the ranked
1297
- * leaderboard as before. A wallet with no row (never traded or claimed
1298
- * the token) serves an empty list, never an error.
1299
- *
1300
- * @generated from field: optional string wallet_address = 4;
1301
- */
1302
- walletAddress?: string;
1303
- constructor(data?: PartialMessage<GetTokenTopTradersRequest>);
1304
- static readonly runtime: typeof proto3;
1305
- static readonly typeName = "launches.v1.GetTokenTopTradersRequest";
1306
- static readonly fields: FieldList;
1307
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetTokenTopTradersRequest;
1308
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetTokenTopTradersRequest;
1309
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetTokenTopTradersRequest;
1310
- static equals(a: GetTokenTopTradersRequest | PlainMessage<GetTokenTopTradersRequest> | undefined, b: GetTokenTopTradersRequest | PlainMessage<GetTokenTopTradersRequest> | undefined): boolean;
1311
- }
1312
- /**
1313
- * One wallet's aggregate position on the token, derived from a
1314
- * moving-average cost-basis walk of its chronological trades: buys (and
1315
- * claim seeds) add to the position's basis; each sell realizes
1316
- * proceeds − average cost × amount AND consumes basis at the average cost,
1317
- * so re-entering wallets are accounted correctly. Auction claims are seeded
1318
- * before the trade walk as buys at the wallet's true auction cost, so
1319
- * bidders never show zero buys. Tokens sold beyond tracked inventory
1320
- * (transfers in) entered the wallet outside the swap tape — with the full
1321
- * history and explicit claims in hand, an unexplained inflow is a transfer,
1322
- * not a hidden buy — so the wallet's basis is UNKNOWN (not $0) and the row
1323
- * flags transferred_in.
1324
- *
1325
- * UNKNOWN-BASIS ROWS: when the server cannot compute a wallet's basis — the
1326
- * wallet transferred tokens in (transferred_in), its auction spend was not
1327
- * USD-convertible, or its attributed inventory contradicts its observed
1328
- * balance — basis_unknown is true and the four basis-derived
1329
- * money fields (cost_basis_usd, avg_cost_usd, realized_pnl_usd,
1330
- * unrealized_pnl_usd) are served as 0 and MUST be read as "unknown", never
1331
- * as a real $0.00. Such wallets rank strictly after every computable-PnL
1332
- * row — including loss-makers: an unknown 0 never outranks a real figure —
1333
- * so a transfer-in whale's raw proceeds can never crowd real traders out
1334
- * of the request limit. Observed figures (buys/sells/proceeds/tokens) are
1335
- * always set and always truthful. unrealized_pnl_unknown additionally
1336
- * covers the basis-known wallet whose unrealized leg alone is uncomputable
1337
- * (token has no spot price). (These are flags rather than proto3 `optional`
1338
- * on the money fields because changing an existing field's presence is a
1339
- * breaking gencode change for published clients.)
1340
- *
1341
- * @generated from message launches.v1.TokenTopTrader
1342
- */
1343
- export declare class TokenTopTrader extends Message<TokenTopTrader> {
1344
- /**
1345
- * EIP-55 checksummed trading wallet (the tx from-address, not the router).
1346
- *
1347
- * @generated from field: string wallet_address = 1;
1348
- */
1349
- walletAddress: string;
1350
- /**
1351
- * Buy-side figures INCLUDE auction acquisitions: claims add one buy per
1352
- * terminal bid, their token amount, and their USD spend.
1353
- *
1354
- * @generated from field: int32 buy_count = 2;
1355
- */
1356
- buyCount: number;
1357
- /**
1358
- * @generated from field: int32 sell_count = 3;
1359
- */
1360
- sellCount: number;
1361
- /**
1362
- * @generated from field: double bought_usd = 4;
1363
- */
1364
- boughtUsd: number;
1365
- /**
1366
- * @generated from field: double sold_usd = 5;
1367
- */
1368
- soldUsd: number;
1369
- /**
1370
- * Token amounts are whole (decimal-adjusted) tokens.
1371
- *
1372
- * @generated from field: double bought_tokens = 6;
1373
- */
1374
- boughtTokens: number;
1375
- /**
1376
- * @generated from field: double sold_tokens = 7;
1377
- */
1378
- soldTokens: number;
1379
- /**
1380
- * Tokens still held. For launch tokens this is the wallet's OBSERVED net
1381
- * balance — the same sum over transfer logs GetLaunchHolders serves, so
1382
- * the two agree and Σ over wallets cannot exceed supply. Tokens outside
1383
- * that feed fall back to the swap walk (acquired minus sold, floored at
1384
- * 0), an attribution that can overstate a wallet signing swaps it does
1385
- * not receive (relayers, bundlers, smart-account signers).
1386
- *
1387
- * @generated from field: double remaining_tokens = 8;
1388
- */
1389
- remainingTokens: number;
1390
- /**
1391
- * USD cost basis of the REMAINING position: grows with buys/claims,
1392
- * shrinks by average cost × amount on every sell. Meaningless (served 0)
1393
- * when basis_unknown — read that as "unknown", not a zero basis.
1394
- *
1395
- * @generated from field: double cost_basis_usd = 9;
1396
- */
1397
- costBasisUsd: number;
1398
- /**
1399
- * cost_basis_usd ÷ the TRACKED quantity the basis was accumulated over
1400
- * (bought + claimed − sold), which is not necessarily remaining_tokens; 0
1401
- * when nothing is tracked. Meaningless (served 0) when basis_unknown.
1402
- *
1403
- * @generated from field: double avg_cost_usd = 10;
1404
- */
1405
- avgCostUsd: number;
1406
- /**
1407
- * Meaningless (served 0) when basis_unknown — proceeds booked against an
1408
- * unknowable basis are not a PnL; such rows rank as realized 0.
1409
- *
1410
- * @generated from field: double realized_pnl_usd = 11;
1411
- */
1412
- realizedPnlUsd: number;
1413
- /**
1414
- * USD the wallet spent in the launch auction (net of exit refunds),
1415
- * converted at the auction currency's USD rate. 0 when the wallet has no
1416
- * claims (always 0 for non-CCA tokens).
1417
- *
1418
- * @generated from field: double auction_spent_usd = 12;
1419
- */
1420
- auctionSpentUsd: number;
1421
- /**
1422
- * True when any of the wallet's auction bids reached a terminal state
1423
- * (claimed, or exited with a nonzero fill).
1424
- *
1425
- * @generated from field: bool has_claims = 13;
1426
- */
1427
- hasClaims: boolean;
1428
- /**
1429
- * Mark-to-market PnL of the remaining position at the token's latest
1430
- * known price: remaining_tokens × spot − cost_basis_usd. The documented
1431
- * ranking tiebreak, served so clients can render it. Meaningless (served
1432
- * 0) when unrealized_pnl_unknown — basis unknown, or no known spot price.
1433
- *
1434
- * @generated from field: double unrealized_pnl_usd = 14;
1435
- */
1436
- unrealizedPnlUsd: number;
1437
- /**
1438
- * True when the wallet sold beyond its tracked inventory at least once —
1439
- * the excess entered the wallet outside the swap tape (a transfer in),
1440
- * so its basis is unknown. Always implies basis_unknown.
1441
- *
1442
- * @generated from field: bool transferred_in = 15;
1443
- */
1444
- transferredIn: boolean;
1445
- /**
1446
- * True when the wallet's basis could not be computed — it transferred
1447
- * tokens in (transferred_in), its auction spend was not USD-convertible,
1448
- * or its attributed inventory contradicts its observed balance (the
1449
- * acquisitions were booked to the wrong address, so the basis they
1450
- * produced is not this wallet's). Clients should render the four
1451
- * basis-derived money
1452
- * fields as unknown ("–"), not $0.00; the row ranks after every
1453
- * computable-PnL row (see message doc). Implies unrealized_pnl_unknown.
1454
- *
1455
- * @generated from field: bool basis_unknown = 16;
1456
- */
1457
- basisUnknown: boolean;
1458
- /**
1459
- * True when unrealized_pnl_usd alone is not computable: basis_unknown, or
1460
- * the token has no known spot price (a missing spot must not read as a
1461
- * total loss). Served 0 then — render unknown ("–"), not $0.00. The other
1462
- * money fields stay real when basis_unknown is false.
1463
- *
1464
- * @generated from field: bool unrealized_pnl_unknown = 17;
1465
- */
1466
- unrealizedPnlUnknown: boolean;
1467
- constructor(data?: PartialMessage<TokenTopTrader>);
1468
- static readonly runtime: typeof proto3;
1469
- static readonly typeName = "launches.v1.TokenTopTrader";
1470
- static readonly fields: FieldList;
1471
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): TokenTopTrader;
1472
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): TokenTopTrader;
1473
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): TokenTopTrader;
1474
- static equals(a: TokenTopTrader | PlainMessage<TokenTopTrader> | undefined, b: TokenTopTrader | PlainMessage<TokenTopTrader> | undefined): boolean;
1475
- }
1476
- /**
1477
- * @generated from message launches.v1.GetTokenTopTradersResponse
1478
- */
1479
- export declare class GetTokenTopTradersResponse extends Message<GetTokenTopTradersResponse> {
1480
- /**
1481
- * Ranked realized PnL desc, unrealized PnL desc as the tiebreak (orders
1482
- * never-sold claimers sensibly — all realized 0), wallet address asc as
1483
- * the final key, capped at the request limit. Unknown-basis rows
1484
- * (transferred_in, or an inconvertible auction spend) partition strictly
1485
- * after every computable-PnL row, including losses — so they cannot
1486
- * consume top slots on raw proceeds or displace losing traders. Only
1487
- * wallets with at least one trade or claim appear.
1488
- *
1489
- * @generated from field: repeated launches.v1.TokenTopTrader traders = 1;
1490
- */
1491
- traders: TokenTopTrader[];
1492
- constructor(data?: PartialMessage<GetTokenTopTradersResponse>);
1493
- static readonly runtime: typeof proto3;
1494
- static readonly typeName = "launches.v1.GetTokenTopTradersResponse";
1495
- static readonly fields: FieldList;
1496
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetTokenTopTradersResponse;
1497
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetTokenTopTradersResponse;
1498
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetTokenTopTradersResponse;
1499
- static equals(a: GetTokenTopTradersResponse | PlainMessage<GetTokenTopTradersResponse> | undefined, b: GetTokenTopTradersResponse | PlainMessage<GetTokenTopTradersResponse> | undefined): boolean;
1500
- }