@uniswap/client-data-api 0.0.228 → 0.0.230

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.
@@ -686,6 +686,16 @@ export declare class Auction extends Message<Auction> {
686
686
  * @generated from field: optional string hooks = 56;
687
687
  */
688
688
  hooks?: string;
689
+ /**
690
+ * Badges earned by the auction's token (LP badges), one per badge type,
691
+ * highest tier only, canonical order — the data.v1 twin of
692
+ * data.v2.Launch.badges, because a crowd launch's canonical row on every
693
+ * client surface (list rows AND the token page) is the auction, which a
694
+ * graduated token never leaves. Empty until the token has earned any.
695
+ *
696
+ * @generated from field: repeated data.v1.LaunchBadge badges = 57;
697
+ */
698
+ badges: LaunchBadge[];
689
699
  constructor(data?: PartialMessage<Auction>);
690
700
  static readonly runtime: typeof proto3;
691
701
  static readonly typeName = "data.v1.Auction";
@@ -695,6 +705,56 @@ export declare class Auction extends Message<Auction> {
695
705
  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): Auction;
696
706
  static equals(a: Auction | PlainMessage<Auction> | undefined, b: Auction | PlainMessage<Auction> | undefined): boolean;
697
707
  }
708
+ /**
709
+ * One badge earned by a launch's token — the data.v1 twin of
710
+ * data.v2.LaunchBadge (data/v1 cannot import data/v2). type/tier are
711
+ * deliberately plain strings, NOT enums: the client contract pins the
712
+ * lowercase ids on the wire, and proto-JSON would serialize an enum's
713
+ * VALUE NAMES instead.
714
+ *
715
+ * @generated from message data.v1.LaunchBadge
716
+ */
717
+ export declare class LaunchBadge extends Message<LaunchBadge> {
718
+ /**
719
+ * "original" | "frontrunner" | "volume" | "holders" | "badger".
720
+ *
721
+ * @generated from field: string type = 1;
722
+ */
723
+ type: string;
724
+ /**
725
+ * Tier id, present only for the tiered types — volume: "5m" | "10m" |
726
+ * "50m"; holders: "100" | "1k" | "10k". Unset for untiered types.
727
+ *
728
+ * @generated from field: optional string tier = 2;
729
+ */
730
+ tier?: string;
731
+ /**
732
+ * When the badge was earned (proto-JSON serializes this as an ISO-8601
733
+ * string, which is the client contract). Exact on-chain launch time for
734
+ * original/frontrunner; observation time for tier crossings.
735
+ *
736
+ * @generated from field: google.protobuf.Timestamp earned_at = 3;
737
+ */
738
+ earnedAt?: Timestamp;
739
+ /**
740
+ * Rarity: percentage (0-100) of eligible tokens that hold this badge
741
+ * TYPE (any tier), for the client's rarity-tag hover. The denominator is
742
+ * every factory-launched token (the launched_tokens registry). Served
743
+ * from a short-TTL cached aggregate; unset when the aggregate is
744
+ * unavailable — clients hide the rarity detail rather than showing 0.
745
+ *
746
+ * @generated from field: optional double holder_percentage = 4;
747
+ */
748
+ holderPercentage?: number;
749
+ constructor(data?: PartialMessage<LaunchBadge>);
750
+ static readonly runtime: typeof proto3;
751
+ static readonly typeName = "data.v1.LaunchBadge";
752
+ static readonly fields: FieldList;
753
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): LaunchBadge;
754
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): LaunchBadge;
755
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): LaunchBadge;
756
+ static equals(a: LaunchBadge | PlainMessage<LaunchBadge> | undefined, b: LaunchBadge | PlainMessage<LaunchBadge> | undefined): boolean;
757
+ }
698
758
  /**
699
759
  * Response containing auctions.
700
760
  *
@@ -632,6 +632,16 @@ export class Auction extends Message {
632
632
  * @generated from field: bool is_blocked = 51;
633
633
  */
634
634
  this.isBlocked = false;
635
+ /**
636
+ * Badges earned by the auction's token (LP badges), one per badge type,
637
+ * highest tier only, canonical order — the data.v1 twin of
638
+ * data.v2.Launch.badges, because a crowd launch's canonical row on every
639
+ * client surface (list rows AND the token page) is the auction, which a
640
+ * graduated token never leaves. Empty until the token has earned any.
641
+ *
642
+ * @generated from field: repeated data.v1.LaunchBadge badges = 57;
643
+ */
644
+ this.badges = [];
635
645
  proto3.util.initPartial(data, this);
636
646
  }
637
647
  static fromBinary(bytes, options) {
@@ -706,6 +716,48 @@ Auction.fields = proto3.util.newFieldList(() => [
706
716
  { no: 54, name: "fee", kind: "scalar", T: 13 /* ScalarType.UINT32 */, opt: true },
707
717
  { no: 55, name: "tick_spacing", kind: "scalar", T: 5 /* ScalarType.INT32 */, opt: true },
708
718
  { no: 56, name: "hooks", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
719
+ { no: 57, name: "badges", kind: "message", T: LaunchBadge, repeated: true },
720
+ ]);
721
+ /**
722
+ * One badge earned by a launch's token — the data.v1 twin of
723
+ * data.v2.LaunchBadge (data/v1 cannot import data/v2). type/tier are
724
+ * deliberately plain strings, NOT enums: the client contract pins the
725
+ * lowercase ids on the wire, and proto-JSON would serialize an enum's
726
+ * VALUE NAMES instead.
727
+ *
728
+ * @generated from message data.v1.LaunchBadge
729
+ */
730
+ export class LaunchBadge extends Message {
731
+ constructor(data) {
732
+ super();
733
+ /**
734
+ * "original" | "frontrunner" | "volume" | "holders" | "badger".
735
+ *
736
+ * @generated from field: string type = 1;
737
+ */
738
+ this.type = "";
739
+ proto3.util.initPartial(data, this);
740
+ }
741
+ static fromBinary(bytes, options) {
742
+ return new LaunchBadge().fromBinary(bytes, options);
743
+ }
744
+ static fromJson(jsonValue, options) {
745
+ return new LaunchBadge().fromJson(jsonValue, options);
746
+ }
747
+ static fromJsonString(jsonString, options) {
748
+ return new LaunchBadge().fromJsonString(jsonString, options);
749
+ }
750
+ static equals(a, b) {
751
+ return proto3.util.equals(LaunchBadge, a, b);
752
+ }
753
+ }
754
+ LaunchBadge.runtime = proto3;
755
+ LaunchBadge.typeName = "data.v1.LaunchBadge";
756
+ LaunchBadge.fields = proto3.util.newFieldList(() => [
757
+ { no: 1, name: "type", kind: "scalar", T: 9 /* ScalarType.STRING */ },
758
+ { no: 2, name: "tier", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
759
+ { no: 3, name: "earned_at", kind: "message", T: Timestamp },
760
+ { no: 4, name: "holder_percentage", kind: "scalar", T: 1 /* ScalarType.DOUBLE */, opt: true },
709
761
  ]);
710
762
  /**
711
763
  * Response containing auctions.
@@ -1,7 +1,7 @@
1
1
  import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf";
2
2
  import { Message, proto3, Timestamp } from "@bufbuild/protobuf";
3
3
  import { TimestampedValue, TokenType } from "../v1/types_pb.js";
4
- import { ProtocolVersion } from "../v1/poolTypes_pb.js";
4
+ import { ProtocolVersion, Token as Token$1 } from "../v1/poolTypes_pb.js";
5
5
  /**
6
6
  * @generated from enum data.v2.TokensOrderBy
7
7
  */
@@ -1026,6 +1026,36 @@ export declare class PoolsSort extends Message<PoolsSort> {
1026
1026
  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): PoolsSort;
1027
1027
  static equals(a: PoolsSort | PlainMessage<PoolsSort> | undefined, b: PoolsSort | PlainMessage<PoolsSort> | undefined): boolean;
1028
1028
  }
1029
+ /**
1030
+ * A pool's boosted APR in one reward token: the sum of that token's live
1031
+ * campaign APRs on the pool, in percent, on top of the pool's fee APR. Ended
1032
+ * campaigns are excluded — they accrue no yield.
1033
+ *
1034
+ * Deliberately carries no campaign detail (windows, allocations, distributed
1035
+ * amounts): only the pool details page renders that, and it reads
1036
+ * GetPoolRewards. Keeping it off this message keeps the per-row payload small
1037
+ * enough to repeat across a page of pools.
1038
+ *
1039
+ * @generated from message data.v2.PoolTokenBoost
1040
+ */
1041
+ export declare class PoolTokenBoost extends Message<PoolTokenBoost> {
1042
+ /**
1043
+ * @generated from field: pools.v1.Token token = 1;
1044
+ */
1045
+ token?: Token$1;
1046
+ /**
1047
+ * @generated from field: double apr = 2;
1048
+ */
1049
+ apr: number;
1050
+ constructor(data?: PartialMessage<PoolTokenBoost>);
1051
+ static readonly runtime: typeof proto3;
1052
+ static readonly typeName = "data.v2.PoolTokenBoost";
1053
+ static readonly fields: FieldList;
1054
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): PoolTokenBoost;
1055
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): PoolTokenBoost;
1056
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): PoolTokenBoost;
1057
+ static equals(a: PoolTokenBoost | PlainMessage<PoolTokenBoost> | undefined, b: PoolTokenBoost | PlainMessage<PoolTokenBoost> | undefined): boolean;
1058
+ }
1029
1059
  /**
1030
1060
  * Ranking stats for a pool.
1031
1061
  * apr = annualised fee revenue / TVL.
@@ -1065,6 +1095,19 @@ export declare class PoolRankStats extends Message<PoolRankStats> {
1065
1095
  * @generated from field: optional double volume_1d_tvl_ratio = 7;
1066
1096
  */
1067
1097
  volume1dTvlRatio?: number;
1098
+ /**
1099
+ * What reward_apr is paid in, per reward token — so a client can denominate
1100
+ * a boost ("+2.1% in UNI") instead of rendering a bare number under a
1101
+ * guessed symbol. reward_apr stays the cross-token sum and is derived from
1102
+ * these, so reward_apr == sum(token_boosts[].apr) always holds.
1103
+ *
1104
+ * Empty when the pool runs no live campaign, and empty when the incentive
1105
+ * lookup degraded — in which case reward_apr is unset too. Never one
1106
+ * without the other: a boost nobody can denominate is worse than no boost.
1107
+ *
1108
+ * @generated from field: repeated data.v2.PoolTokenBoost token_boosts = 8;
1109
+ */
1110
+ tokenBoosts: PoolTokenBoost[];
1068
1111
  constructor(data?: PartialMessage<PoolRankStats>);
1069
1112
  static readonly runtime: typeof proto3;
1070
1113
  static readonly typeName = "data.v2.PoolRankStats";
@@ -1885,6 +1928,15 @@ export declare class Launch extends Message<Launch> {
1885
1928
  * @generated from field: repeated data.v2.TokenTrade recent_trades = 24;
1886
1929
  */
1887
1930
  recentTrades: TokenTrade[];
1931
+ /**
1932
+ * Badges earned by the launch's token (LP badges), one per badge type,
1933
+ * highest tier only, canonical order. Empty until the token has earned
1934
+ * any (badges are awarded at ingest and by a slow tier cron, so the
1935
+ * common row serves an empty list).
1936
+ *
1937
+ * @generated from field: repeated data.v2.LaunchBadge badges = 25;
1938
+ */
1939
+ badges: LaunchBadge[];
1888
1940
  constructor(data?: PartialMessage<Launch>);
1889
1941
  static readonly runtime: typeof proto3;
1890
1942
  static readonly typeName = "data.v2.Launch";
@@ -1894,6 +1946,54 @@ export declare class Launch extends Message<Launch> {
1894
1946
  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): Launch;
1895
1947
  static equals(a: Launch | PlainMessage<Launch> | undefined, b: Launch | PlainMessage<Launch> | undefined): boolean;
1896
1948
  }
1949
+ /**
1950
+ * One badge earned by a launch's token. type/tier are deliberately plain
1951
+ * strings, NOT enums: the client contract pins the lowercase ids on the
1952
+ * wire, and proto-JSON would serialize an enum's VALUE NAMES instead.
1953
+ *
1954
+ * @generated from message data.v2.LaunchBadge
1955
+ */
1956
+ export declare class LaunchBadge extends Message<LaunchBadge> {
1957
+ /**
1958
+ * "original" | "frontrunner" | "volume" | "holders" | "badger".
1959
+ *
1960
+ * @generated from field: string type = 1;
1961
+ */
1962
+ type: string;
1963
+ /**
1964
+ * Tier id, present only for the tiered types — volume: "5m" | "10m" |
1965
+ * "50m"; holders: "100" | "1k" | "10k". Unset for untiered types.
1966
+ *
1967
+ * @generated from field: optional string tier = 2;
1968
+ */
1969
+ tier?: string;
1970
+ /**
1971
+ * When the badge was earned (proto-JSON serializes this as an ISO-8601
1972
+ * string, which is the client contract). Exact on-chain launch time for
1973
+ * original/frontrunner; observation time for tier crossings.
1974
+ *
1975
+ * @generated from field: google.protobuf.Timestamp earned_at = 3;
1976
+ */
1977
+ earnedAt?: Timestamp;
1978
+ /**
1979
+ * Rarity: percentage (0-100) of eligible tokens that hold this badge
1980
+ * TYPE (any tier), for the client's rarity-tag hover. The denominator is
1981
+ * every factory-launched token (the launched_tokens registry). Served
1982
+ * from a short-TTL cached aggregate; unset when the aggregate is
1983
+ * unavailable — clients hide the rarity detail rather than showing 0.
1984
+ *
1985
+ * @generated from field: optional double holder_percentage = 4;
1986
+ */
1987
+ holderPercentage?: number;
1988
+ constructor(data?: PartialMessage<LaunchBadge>);
1989
+ static readonly runtime: typeof proto3;
1990
+ static readonly typeName = "data.v2.LaunchBadge";
1991
+ static readonly fields: FieldList;
1992
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): LaunchBadge;
1993
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): LaunchBadge;
1994
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): LaunchBadge;
1995
+ static equals(a: LaunchBadge | PlainMessage<LaunchBadge> | undefined, b: LaunchBadge | PlainMessage<LaunchBadge> | undefined): boolean;
1996
+ }
1897
1997
  /**
1898
1998
  * One row of a launch token's holder list (GetLaunchHolders).
1899
1999
  *
@@ -4,7 +4,7 @@
4
4
  // @ts-nocheck
5
5
  import { Message, proto3, protoInt64, Timestamp } from "@bufbuild/protobuf";
6
6
  import { TimestampedValue, TokenType } from "../v1/types_pb.js";
7
- import { ProtocolVersion } from "../v1/poolTypes_pb.js";
7
+ import { ProtocolVersion, Token as Token$1 } from "../v1/poolTypes_pb.js";
8
8
  /**
9
9
  * @generated from enum data.v2.TokensOrderBy
10
10
  */
@@ -1174,6 +1174,46 @@ PoolsSort.fields = proto3.util.newFieldList(() => [
1174
1174
  { no: 1, name: "order_by", kind: "enum", T: proto3.getEnumType(PoolsOrderBy), opt: true },
1175
1175
  { no: 2, name: "ascending", kind: "scalar", T: 8 /* ScalarType.BOOL */, opt: true },
1176
1176
  ]);
1177
+ /**
1178
+ * A pool's boosted APR in one reward token: the sum of that token's live
1179
+ * campaign APRs on the pool, in percent, on top of the pool's fee APR. Ended
1180
+ * campaigns are excluded — they accrue no yield.
1181
+ *
1182
+ * Deliberately carries no campaign detail (windows, allocations, distributed
1183
+ * amounts): only the pool details page renders that, and it reads
1184
+ * GetPoolRewards. Keeping it off this message keeps the per-row payload small
1185
+ * enough to repeat across a page of pools.
1186
+ *
1187
+ * @generated from message data.v2.PoolTokenBoost
1188
+ */
1189
+ export class PoolTokenBoost extends Message {
1190
+ constructor(data) {
1191
+ super();
1192
+ /**
1193
+ * @generated from field: double apr = 2;
1194
+ */
1195
+ this.apr = 0;
1196
+ proto3.util.initPartial(data, this);
1197
+ }
1198
+ static fromBinary(bytes, options) {
1199
+ return new PoolTokenBoost().fromBinary(bytes, options);
1200
+ }
1201
+ static fromJson(jsonValue, options) {
1202
+ return new PoolTokenBoost().fromJson(jsonValue, options);
1203
+ }
1204
+ static fromJsonString(jsonString, options) {
1205
+ return new PoolTokenBoost().fromJsonString(jsonString, options);
1206
+ }
1207
+ static equals(a, b) {
1208
+ return proto3.util.equals(PoolTokenBoost, a, b);
1209
+ }
1210
+ }
1211
+ PoolTokenBoost.runtime = proto3;
1212
+ PoolTokenBoost.typeName = "data.v2.PoolTokenBoost";
1213
+ PoolTokenBoost.fields = proto3.util.newFieldList(() => [
1214
+ { no: 1, name: "token", kind: "message", T: Token$1 },
1215
+ { no: 2, name: "apr", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
1216
+ ]);
1177
1217
  /**
1178
1218
  * Ranking stats for a pool.
1179
1219
  * apr = annualised fee revenue / TVL.
@@ -1185,6 +1225,19 @@ PoolsSort.fields = proto3.util.newFieldList(() => [
1185
1225
  export class PoolRankStats extends Message {
1186
1226
  constructor(data) {
1187
1227
  super();
1228
+ /**
1229
+ * What reward_apr is paid in, per reward token — so a client can denominate
1230
+ * a boost ("+2.1% in UNI") instead of rendering a bare number under a
1231
+ * guessed symbol. reward_apr stays the cross-token sum and is derived from
1232
+ * these, so reward_apr == sum(token_boosts[].apr) always holds.
1233
+ *
1234
+ * Empty when the pool runs no live campaign, and empty when the incentive
1235
+ * lookup degraded — in which case reward_apr is unset too. Never one
1236
+ * without the other: a boost nobody can denominate is worse than no boost.
1237
+ *
1238
+ * @generated from field: repeated data.v2.PoolTokenBoost token_boosts = 8;
1239
+ */
1240
+ this.tokenBoosts = [];
1188
1241
  proto3.util.initPartial(data, this);
1189
1242
  }
1190
1243
  static fromBinary(bytes, options) {
@@ -1210,6 +1263,7 @@ PoolRankStats.fields = proto3.util.newFieldList(() => [
1210
1263
  { no: 5, name: "reward_apr", kind: "scalar", T: 1 /* ScalarType.DOUBLE */, opt: true },
1211
1264
  { no: 6, name: "total_apr", kind: "scalar", T: 1 /* ScalarType.DOUBLE */, opt: true },
1212
1265
  { no: 7, name: "volume_1d_tvl_ratio", kind: "scalar", T: 1 /* ScalarType.DOUBLE */, opt: true },
1266
+ { no: 8, name: "token_boosts", kind: "message", T: PoolTokenBoost, repeated: true },
1213
1267
  ]);
1214
1268
  /**
1215
1269
  * A pool's protocol identity, token pair, and current on-chain state (state
@@ -1833,6 +1887,15 @@ export class Launch extends Message {
1833
1887
  * @generated from field: repeated data.v2.TokenTrade recent_trades = 24;
1834
1888
  */
1835
1889
  this.recentTrades = [];
1890
+ /**
1891
+ * Badges earned by the launch's token (LP badges), one per badge type,
1892
+ * highest tier only, canonical order. Empty until the token has earned
1893
+ * any (badges are awarded at ingest and by a slow tier cron, so the
1894
+ * common row serves an empty list).
1895
+ *
1896
+ * @generated from field: repeated data.v2.LaunchBadge badges = 25;
1897
+ */
1898
+ this.badges = [];
1836
1899
  proto3.util.initPartial(data, this);
1837
1900
  }
1838
1901
  static fromBinary(bytes, options) {
@@ -1875,6 +1938,46 @@ Launch.fields = proto3.util.newFieldList(() => [
1875
1938
  { no: 22, name: "x_profile_image_url", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1876
1939
  { no: 23, name: "x_verified", kind: "scalar", T: 8 /* ScalarType.BOOL */, opt: true },
1877
1940
  { no: 24, name: "recent_trades", kind: "message", T: TokenTrade, repeated: true },
1941
+ { no: 25, name: "badges", kind: "message", T: LaunchBadge, repeated: true },
1942
+ ]);
1943
+ /**
1944
+ * One badge earned by a launch's token. type/tier are deliberately plain
1945
+ * strings, NOT enums: the client contract pins the lowercase ids on the
1946
+ * wire, and proto-JSON would serialize an enum's VALUE NAMES instead.
1947
+ *
1948
+ * @generated from message data.v2.LaunchBadge
1949
+ */
1950
+ export class LaunchBadge extends Message {
1951
+ constructor(data) {
1952
+ super();
1953
+ /**
1954
+ * "original" | "frontrunner" | "volume" | "holders" | "badger".
1955
+ *
1956
+ * @generated from field: string type = 1;
1957
+ */
1958
+ this.type = "";
1959
+ proto3.util.initPartial(data, this);
1960
+ }
1961
+ static fromBinary(bytes, options) {
1962
+ return new LaunchBadge().fromBinary(bytes, options);
1963
+ }
1964
+ static fromJson(jsonValue, options) {
1965
+ return new LaunchBadge().fromJson(jsonValue, options);
1966
+ }
1967
+ static fromJsonString(jsonString, options) {
1968
+ return new LaunchBadge().fromJsonString(jsonString, options);
1969
+ }
1970
+ static equals(a, b) {
1971
+ return proto3.util.equals(LaunchBadge, a, b);
1972
+ }
1973
+ }
1974
+ LaunchBadge.runtime = proto3;
1975
+ LaunchBadge.typeName = "data.v2.LaunchBadge";
1976
+ LaunchBadge.fields = proto3.util.newFieldList(() => [
1977
+ { no: 1, name: "type", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1978
+ { no: 2, name: "tier", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1979
+ { no: 3, name: "earned_at", kind: "message", T: Timestamp },
1980
+ { no: 4, name: "holder_percentage", kind: "scalar", T: 1 /* ScalarType.DOUBLE */, opt: true },
1878
1981
  ]);
1879
1982
  /**
1880
1983
  * One row of a launch token's holder list (GetLaunchHolders).
@@ -505,6 +505,15 @@ export declare class Launch extends Message<Launch> {
505
505
  * @generated from field: repeated launches.v1.TokenTrade recent_trades = 24;
506
506
  */
507
507
  recentTrades: TokenTrade[];
508
+ /**
509
+ * Badges earned by the launch's token (LP badges), one per badge type,
510
+ * highest tier only, canonical order. Empty until the token has earned
511
+ * any (badges are awarded at ingest and by a slow tier cron, so the
512
+ * common row serves an empty list).
513
+ *
514
+ * @generated from field: repeated launches.v1.LaunchBadge badges = 25;
515
+ */
516
+ badges: LaunchBadge[];
508
517
  constructor(data?: PartialMessage<Launch>);
509
518
  static readonly runtime: typeof proto3;
510
519
  static readonly typeName = "launches.v1.Launch";
@@ -514,6 +523,54 @@ export declare class Launch extends Message<Launch> {
514
523
  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): Launch;
515
524
  static equals(a: Launch | PlainMessage<Launch> | undefined, b: Launch | PlainMessage<Launch> | undefined): boolean;
516
525
  }
526
+ /**
527
+ * One badge earned by a launch's token. type/tier are deliberately plain
528
+ * strings, NOT enums: the client contract pins the lowercase ids on the
529
+ * wire, and proto-JSON would serialize an enum's VALUE NAMES instead.
530
+ *
531
+ * @generated from message launches.v1.LaunchBadge
532
+ */
533
+ export declare class LaunchBadge extends Message<LaunchBadge> {
534
+ /**
535
+ * "original" | "frontrunner" | "volume" | "holders" | "badger".
536
+ *
537
+ * @generated from field: string type = 1;
538
+ */
539
+ type: string;
540
+ /**
541
+ * Tier id, present only for the tiered types — volume: "5m" | "10m" |
542
+ * "50m"; holders: "100" | "1k" | "10k". Unset for untiered types.
543
+ *
544
+ * @generated from field: optional string tier = 2;
545
+ */
546
+ tier?: string;
547
+ /**
548
+ * When the badge was earned (proto-JSON serializes this as an ISO-8601
549
+ * string, which is the client contract). Exact on-chain launch time for
550
+ * original/frontrunner; observation time for tier crossings.
551
+ *
552
+ * @generated from field: google.protobuf.Timestamp earned_at = 3;
553
+ */
554
+ earnedAt?: Timestamp;
555
+ /**
556
+ * Rarity: percentage (0-100) of eligible tokens that hold this badge
557
+ * TYPE (any tier), for the client's rarity-tag hover. The denominator is
558
+ * every factory-launched token (the launched_tokens registry). Served
559
+ * from a short-TTL cached aggregate; unset when the aggregate is
560
+ * unavailable — clients hide the rarity detail rather than showing 0.
561
+ *
562
+ * @generated from field: optional double holder_percentage = 4;
563
+ */
564
+ holderPercentage?: number;
565
+ constructor(data?: PartialMessage<LaunchBadge>);
566
+ static readonly runtime: typeof proto3;
567
+ static readonly typeName = "launches.v1.LaunchBadge";
568
+ static readonly fields: FieldList;
569
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): LaunchBadge;
570
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): LaunchBadge;
571
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): LaunchBadge;
572
+ static equals(a: LaunchBadge | PlainMessage<LaunchBadge> | undefined, b: LaunchBadge | PlainMessage<LaunchBadge> | undefined): boolean;
573
+ }
517
574
  /**
518
575
  * One row of a launch token's holder list (GetLaunchHolders).
519
576
  *
@@ -401,6 +401,15 @@ export class Launch extends Message {
401
401
  * @generated from field: repeated launches.v1.TokenTrade recent_trades = 24;
402
402
  */
403
403
  this.recentTrades = [];
404
+ /**
405
+ * Badges earned by the launch's token (LP badges), one per badge type,
406
+ * highest tier only, canonical order. Empty until the token has earned
407
+ * any (badges are awarded at ingest and by a slow tier cron, so the
408
+ * common row serves an empty list).
409
+ *
410
+ * @generated from field: repeated launches.v1.LaunchBadge badges = 25;
411
+ */
412
+ this.badges = [];
404
413
  proto3.util.initPartial(data, this);
405
414
  }
406
415
  static fromBinary(bytes, options) {
@@ -443,6 +452,46 @@ Launch.fields = proto3.util.newFieldList(() => [
443
452
  { no: 22, name: "x_profile_image_url", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
444
453
  { no: 23, name: "x_verified", kind: "scalar", T: 8 /* ScalarType.BOOL */, opt: true },
445
454
  { no: 24, name: "recent_trades", kind: "message", T: TokenTrade, repeated: true },
455
+ { no: 25, name: "badges", kind: "message", T: LaunchBadge, repeated: true },
456
+ ]);
457
+ /**
458
+ * One badge earned by a launch's token. type/tier are deliberately plain
459
+ * strings, NOT enums: the client contract pins the lowercase ids on the
460
+ * wire, and proto-JSON would serialize an enum's VALUE NAMES instead.
461
+ *
462
+ * @generated from message launches.v1.LaunchBadge
463
+ */
464
+ export class LaunchBadge extends Message {
465
+ constructor(data) {
466
+ super();
467
+ /**
468
+ * "original" | "frontrunner" | "volume" | "holders" | "badger".
469
+ *
470
+ * @generated from field: string type = 1;
471
+ */
472
+ this.type = "";
473
+ proto3.util.initPartial(data, this);
474
+ }
475
+ static fromBinary(bytes, options) {
476
+ return new LaunchBadge().fromBinary(bytes, options);
477
+ }
478
+ static fromJson(jsonValue, options) {
479
+ return new LaunchBadge().fromJson(jsonValue, options);
480
+ }
481
+ static fromJsonString(jsonString, options) {
482
+ return new LaunchBadge().fromJsonString(jsonString, options);
483
+ }
484
+ static equals(a, b) {
485
+ return proto3.util.equals(LaunchBadge, a, b);
486
+ }
487
+ }
488
+ LaunchBadge.runtime = proto3;
489
+ LaunchBadge.typeName = "launches.v1.LaunchBadge";
490
+ LaunchBadge.fields = proto3.util.newFieldList(() => [
491
+ { no: 1, name: "type", kind: "scalar", T: 9 /* ScalarType.STRING */ },
492
+ { no: 2, name: "tier", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
493
+ { no: 3, name: "earned_at", kind: "message", T: Timestamp },
494
+ { no: 4, name: "holder_percentage", kind: "scalar", T: 1 /* ScalarType.DOUBLE */, opt: true },
446
495
  ]);
447
496
  /**
448
497
  * One row of a launch token's holder list (GetLaunchHolders).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uniswap/client-data-api",
3
- "version": "0.0.228",
3
+ "version": "0.0.230",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },