@uniswap/client-liquidity 1.4.28 → 1.4.30

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.
@@ -789,18 +789,14 @@ export declare class PoolSummary extends Message<PoolSummary> {
789
789
  */
790
790
  isDynamicFee?: boolean;
791
791
  /**
792
- * Live Merkl LP-incentive campaigns for this pool (V3/V4). Composed at read
793
- * time from Merkl (not Aurora); empty when the pool has no live allowlisted
794
- * campaign or the lookup degrades. One entry per campaign not aggregated,
795
- * so two concurrent UNI campaigns are two entries.
792
+ * DEPRECATED superseded by token_rewards below, which groups campaigns under
793
+ * the token they pay and carries that token's summed boost. This field has never
794
+ * been populated and stays permanently empty; it exists only so consumers that
795
+ * already read it keep compiling. Removal is tracked in LP-1585 (reserve tag 25
796
+ * when it goes — a reused tag with a different type is wire-incompatible).
796
797
  *
797
- * A per-token aggregate (one entry per reward token, APRs summed) is planned
798
- * alongside this as an additive field, fed by the same source Position.rewards
799
- * uses — data-api's RewardsBL.getPoolAprsByToken, which is pool-keyed and needs
800
- * no wallet. Reuse Position.rewards' per-token semantics for it rather than
801
- * inventing a third granularity.
802
- *
803
- * @generated from field: repeated uniswap.liquidity.v2.RewardsCampaign rewards_campaigns = 25;
798
+ * @generated from field: repeated uniswap.liquidity.v2.RewardsCampaign rewards_campaigns = 25 [deprecated = true];
799
+ * @deprecated
804
800
  */
805
801
  rewardsCampaigns: RewardsCampaign[];
806
802
  /**
@@ -817,6 +813,29 @@ export declare class PoolSummary extends Message<PoolSummary> {
817
813
  * @generated from field: optional double volume_usd_1d_change = 27;
818
814
  */
819
815
  volumeUsd1dChange?: number;
816
+ /**
817
+ * Live LP-incentive rewards, grouped by the token they pay (see
818
+ * PoolTokenRewards). Sourced from data-api, which owns campaign scoping, so this
819
+ * agrees with the boost Position.rewards reports for the same pool.
820
+ *
821
+ * Empty for V2 (no campaigns), when the pool has no live campaign, and when the
822
+ * lookup degrades — rewards never fail a pool read.
823
+ *
824
+ * @generated from field: repeated uniswap.liquidity.v2.PoolTokenRewards token_rewards = 28;
825
+ */
826
+ tokenRewards: PoolTokenRewards[];
827
+ /**
828
+ * What an LP earns on this pool all-in: the fee APR above plus every reward
829
+ * token's boost — `apr` + the sum of token_rewards[].boosted_apr. Percent.
830
+ *
831
+ * A missing side counts as 0, so a pool with no live campaign reports its fee
832
+ * APR alone. Unset only when neither side is known: no `apr` and no
833
+ * token_rewards. A boost that sums to 0 with token_rewards present is a known
834
+ * zero, not missing.
835
+ *
836
+ * @generated from field: optional double total_apr = 29;
837
+ */
838
+ totalApr?: number;
820
839
  constructor(data?: PartialMessage<PoolSummary>);
821
840
  static readonly runtime: typeof proto3;
822
841
  static readonly typeName = "uniswap.liquidity.v2.PoolSummary";
@@ -924,6 +943,97 @@ export declare class RewardsCampaign extends Message<RewardsCampaign> {
924
943
  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): RewardsCampaign;
925
944
  static equals(a: RewardsCampaign | PlainMessage<RewardsCampaign> | undefined, b: RewardsCampaign | PlainMessage<RewardsCampaign> | undefined): boolean;
926
945
  }
946
+ /**
947
+ * One live campaign behind a pool's per-token boost. It carries no reward token —
948
+ * campaigns are always grouped under one (see PoolTokenRewards).
949
+ *
950
+ * @generated from message uniswap.liquidity.v2.PoolCampaign
951
+ */
952
+ export declare class PoolCampaign extends Message<PoolCampaign> {
953
+ /**
954
+ * Merkl campaign id.
955
+ *
956
+ * @generated from field: string id = 1;
957
+ */
958
+ id: string;
959
+ /**
960
+ * This campaign's APR alone, in percent. Already included in the parent's
961
+ * boosted_apr — don't sum these and add them to it.
962
+ *
963
+ * @generated from field: double apr = 2;
964
+ */
965
+ apr: number;
966
+ /**
967
+ * Campaign window, unix seconds.
968
+ *
969
+ * @generated from field: int64 start_timestamp = 3;
970
+ */
971
+ startTimestamp: bigint;
972
+ /**
973
+ * @generated from field: int64 end_timestamp = 4;
974
+ */
975
+ endTimestamp: bigint;
976
+ /**
977
+ * Total allocation, uint256 decimal string in the reward token's smallest unit.
978
+ *
979
+ * @generated from field: string total_reward_allocation = 5;
980
+ */
981
+ totalRewardAllocation: string;
982
+ /**
983
+ * Emission rate in USD. Derived upstream from the reward token's price at fetch
984
+ * time, so it drifts with price; daily_rewards below is price-independent.
985
+ *
986
+ * @generated from field: optional double daily_rewards_usd = 6;
987
+ */
988
+ dailyRewardsUsd?: number;
989
+ /**
990
+ * Emission rate in the reward token's smallest unit (uint256 decimal string).
991
+ *
992
+ * @generated from field: optional string daily_rewards = 7;
993
+ */
994
+ dailyRewards?: string;
995
+ constructor(data?: PartialMessage<PoolCampaign>);
996
+ static readonly runtime: typeof proto3;
997
+ static readonly typeName = "uniswap.liquidity.v2.PoolCampaign";
998
+ static readonly fields: FieldList;
999
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): PoolCampaign;
1000
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): PoolCampaign;
1001
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): PoolCampaign;
1002
+ static equals(a: PoolCampaign | PlainMessage<PoolCampaign> | undefined, b: PoolCampaign | PlainMessage<PoolCampaign> | undefined): boolean;
1003
+ }
1004
+ /**
1005
+ * A pool's live rewards in one reward token: the summed boost plus the campaigns
1006
+ * it came from. A pool running concurrent campaigns in different tokens yields one
1007
+ * entry per token.
1008
+ *
1009
+ * @generated from message uniswap.liquidity.v2.PoolTokenRewards
1010
+ */
1011
+ export declare class PoolTokenRewards extends Message<PoolTokenRewards> {
1012
+ /**
1013
+ * @generated from field: uniswap.liquidity.v2.RewardToken token = 1;
1014
+ */
1015
+ token?: RewardToken;
1016
+ /**
1017
+ * Sum of this token's live campaign APRs on the pool, in percent, on top of the
1018
+ * pool's fee APR (PoolSummary.apr). Same number Position.rewards reports as
1019
+ * boosted_pool_apr for this pool and token.
1020
+ *
1021
+ * @generated from field: double boosted_apr = 2;
1022
+ */
1023
+ boostedApr: number;
1024
+ /**
1025
+ * @generated from field: repeated uniswap.liquidity.v2.PoolCampaign campaigns = 3;
1026
+ */
1027
+ campaigns: PoolCampaign[];
1028
+ constructor(data?: PartialMessage<PoolTokenRewards>);
1029
+ static readonly runtime: typeof proto3;
1030
+ static readonly typeName = "uniswap.liquidity.v2.PoolTokenRewards";
1031
+ static readonly fields: FieldList;
1032
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): PoolTokenRewards;
1033
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): PoolTokenRewards;
1034
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): PoolTokenRewards;
1035
+ static equals(a: PoolTokenRewards | PlainMessage<PoolTokenRewards> | undefined, b: PoolTokenRewards | PlainMessage<PoolTokenRewards> | undefined): boolean;
1036
+ }
927
1037
  /**
928
1038
  * What a position earns in one LP-incentive reward token: the pool's boosted APR
929
1039
  * and the position's unclaimed balance. One entry per token, since a pool can run
@@ -948,10 +1058,9 @@ export declare class PositionReward extends Message<PositionReward> {
948
1058
  * token's live campaign APRs, in percent, on top of the pool's fee APR. Shared
949
1059
  * by every position in the pool, not specific to this one. 0 = no live campaign.
950
1060
  *
951
- * The same number a pool-level per-token APR on PoolSummary will report for
952
- * this (pool, token) see the note on PoolSummary.rewards_campaigns. Distinct
953
- * from RewardsCampaign.boosted_apr, which is ONE campaign's APR; this sums
954
- * every live campaign paying this token, so don't add the two together.
1061
+ * The same number PoolSummary.token_rewards reports as boosted_apr for this
1062
+ * (pool, token). Distinct from PoolCampaign.apr, which is ONE campaign's APR;
1063
+ * this sums every live campaign paying the token, so don't add the two.
955
1064
  *
956
1065
  * @generated from field: double boosted_pool_apr = 2;
957
1066
  */
@@ -1389,12 +1498,28 @@ export declare class Position extends Message<Position> {
1389
1498
  * reports for the same wallet.
1390
1499
  *
1391
1500
  * Empty for V2 (no campaigns), and empty when the lookup degrades — rewards
1392
- * never fail a positions read. Populated by GetWalletPositions; GetPosition
1393
- * leaves it empty for now.
1501
+ * never fail a positions read. Populated by both GetWalletPositions and
1502
+ * GetPosition.
1394
1503
  *
1395
1504
  * @generated from field: repeated uniswap.liquidity.v2.PositionReward rewards = 38;
1396
1505
  */
1397
1506
  rewards: PositionReward[];
1507
+ /**
1508
+ * What this position earns all-in: the pool's 24h fee APR plus every reward
1509
+ * token's boost — `apr_1d` + the sum of rewards[].boosted_pool_apr. Percent.
1510
+ *
1511
+ * apr_1d is the window used because it's the one data-api's own total_apr sums
1512
+ * (the pool_stats `apr` column); clients showing the 7d/30d window should add
1513
+ * the boost to that window themselves.
1514
+ *
1515
+ * A missing side counts as 0, so an uncampaigned position reports its fee APR
1516
+ * alone and a position whose pool stats haven't published reports its boost
1517
+ * alone. Unset only when neither side is known: no apr_1d and no rewards. A
1518
+ * boost that sums to 0 with rewards present is a known zero, not missing.
1519
+ *
1520
+ * @generated from field: optional double total_apr = 39;
1521
+ */
1522
+ totalApr?: number;
1398
1523
  constructor(data?: PartialMessage<Position>);
1399
1524
  static readonly runtime: typeof proto3;
1400
1525
  static readonly typeName = "uniswap.liquidity.v2.Position";
@@ -968,20 +968,27 @@ export class PoolSummary extends Message {
968
968
  */
969
969
  this.volumeUsd1d = 0;
970
970
  /**
971
- * Live Merkl LP-incentive campaigns for this pool (V3/V4). Composed at read
972
- * time from Merkl (not Aurora); empty when the pool has no live allowlisted
973
- * campaign or the lookup degrades. One entry per campaign not aggregated,
974
- * so two concurrent UNI campaigns are two entries.
971
+ * DEPRECATED superseded by token_rewards below, which groups campaigns under
972
+ * the token they pay and carries that token's summed boost. This field has never
973
+ * been populated and stays permanently empty; it exists only so consumers that
974
+ * already read it keep compiling. Removal is tracked in LP-1585 (reserve tag 25
975
+ * when it goes — a reused tag with a different type is wire-incompatible).
975
976
  *
976
- * A per-token aggregate (one entry per reward token, APRs summed) is planned
977
- * alongside this as an additive field, fed by the same source Position.rewards
978
- * uses — data-api's RewardsBL.getPoolAprsByToken, which is pool-keyed and needs
979
- * no wallet. Reuse Position.rewards' per-token semantics for it rather than
980
- * inventing a third granularity.
981
- *
982
- * @generated from field: repeated uniswap.liquidity.v2.RewardsCampaign rewards_campaigns = 25;
977
+ * @generated from field: repeated uniswap.liquidity.v2.RewardsCampaign rewards_campaigns = 25 [deprecated = true];
978
+ * @deprecated
983
979
  */
984
980
  this.rewardsCampaigns = [];
981
+ /**
982
+ * Live LP-incentive rewards, grouped by the token they pay (see
983
+ * PoolTokenRewards). Sourced from data-api, which owns campaign scoping, so this
984
+ * agrees with the boost Position.rewards reports for the same pool.
985
+ *
986
+ * Empty for V2 (no campaigns), when the pool has no live campaign, and when the
987
+ * lookup degrades — rewards never fail a pool read.
988
+ *
989
+ * @generated from field: repeated uniswap.liquidity.v2.PoolTokenRewards token_rewards = 28;
990
+ */
991
+ this.tokenRewards = [];
985
992
  proto3.util.initPartial(data, this);
986
993
  }
987
994
  static fromBinary(bytes, options) {
@@ -1027,6 +1034,8 @@ PoolSummary.fields = proto3.util.newFieldList(() => [
1027
1034
  { no: 25, name: "rewards_campaigns", kind: "message", T: RewardsCampaign, repeated: true },
1028
1035
  { no: 26, name: "tvl_usd_change_1d", kind: "scalar", T: 1 /* ScalarType.DOUBLE */, opt: true },
1029
1036
  { no: 27, name: "volume_usd_1d_change", kind: "scalar", T: 1 /* ScalarType.DOUBLE */, opt: true },
1037
+ { no: 28, name: "token_rewards", kind: "message", T: PoolTokenRewards, repeated: true },
1038
+ { no: 29, name: "total_apr", kind: "scalar", T: 1 /* ScalarType.DOUBLE */, opt: true },
1030
1039
  ]);
1031
1040
  /**
1032
1041
  * A reward token's on-chain identity, so a client can interpret and format a
@@ -1145,6 +1154,114 @@ RewardsCampaign.fields = proto3.util.newFieldList(() => [
1145
1154
  { no: 6, name: "distributed_rewards", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1146
1155
  { no: 7, name: "reward_token", kind: "message", T: RewardToken },
1147
1156
  ]);
1157
+ /**
1158
+ * One live campaign behind a pool's per-token boost. It carries no reward token —
1159
+ * campaigns are always grouped under one (see PoolTokenRewards).
1160
+ *
1161
+ * @generated from message uniswap.liquidity.v2.PoolCampaign
1162
+ */
1163
+ export class PoolCampaign extends Message {
1164
+ constructor(data) {
1165
+ super();
1166
+ /**
1167
+ * Merkl campaign id.
1168
+ *
1169
+ * @generated from field: string id = 1;
1170
+ */
1171
+ this.id = "";
1172
+ /**
1173
+ * This campaign's APR alone, in percent. Already included in the parent's
1174
+ * boosted_apr — don't sum these and add them to it.
1175
+ *
1176
+ * @generated from field: double apr = 2;
1177
+ */
1178
+ this.apr = 0;
1179
+ /**
1180
+ * Campaign window, unix seconds.
1181
+ *
1182
+ * @generated from field: int64 start_timestamp = 3;
1183
+ */
1184
+ this.startTimestamp = protoInt64.zero;
1185
+ /**
1186
+ * @generated from field: int64 end_timestamp = 4;
1187
+ */
1188
+ this.endTimestamp = protoInt64.zero;
1189
+ /**
1190
+ * Total allocation, uint256 decimal string in the reward token's smallest unit.
1191
+ *
1192
+ * @generated from field: string total_reward_allocation = 5;
1193
+ */
1194
+ this.totalRewardAllocation = "";
1195
+ proto3.util.initPartial(data, this);
1196
+ }
1197
+ static fromBinary(bytes, options) {
1198
+ return new PoolCampaign().fromBinary(bytes, options);
1199
+ }
1200
+ static fromJson(jsonValue, options) {
1201
+ return new PoolCampaign().fromJson(jsonValue, options);
1202
+ }
1203
+ static fromJsonString(jsonString, options) {
1204
+ return new PoolCampaign().fromJsonString(jsonString, options);
1205
+ }
1206
+ static equals(a, b) {
1207
+ return proto3.util.equals(PoolCampaign, a, b);
1208
+ }
1209
+ }
1210
+ PoolCampaign.runtime = proto3;
1211
+ PoolCampaign.typeName = "uniswap.liquidity.v2.PoolCampaign";
1212
+ PoolCampaign.fields = proto3.util.newFieldList(() => [
1213
+ { no: 1, name: "id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1214
+ { no: 2, name: "apr", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
1215
+ { no: 3, name: "start_timestamp", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
1216
+ { no: 4, name: "end_timestamp", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
1217
+ { no: 5, name: "total_reward_allocation", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1218
+ { no: 6, name: "daily_rewards_usd", kind: "scalar", T: 1 /* ScalarType.DOUBLE */, opt: true },
1219
+ { no: 7, name: "daily_rewards", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1220
+ ]);
1221
+ /**
1222
+ * A pool's live rewards in one reward token: the summed boost plus the campaigns
1223
+ * it came from. A pool running concurrent campaigns in different tokens yields one
1224
+ * entry per token.
1225
+ *
1226
+ * @generated from message uniswap.liquidity.v2.PoolTokenRewards
1227
+ */
1228
+ export class PoolTokenRewards extends Message {
1229
+ constructor(data) {
1230
+ super();
1231
+ /**
1232
+ * Sum of this token's live campaign APRs on the pool, in percent, on top of the
1233
+ * pool's fee APR (PoolSummary.apr). Same number Position.rewards reports as
1234
+ * boosted_pool_apr for this pool and token.
1235
+ *
1236
+ * @generated from field: double boosted_apr = 2;
1237
+ */
1238
+ this.boostedApr = 0;
1239
+ /**
1240
+ * @generated from field: repeated uniswap.liquidity.v2.PoolCampaign campaigns = 3;
1241
+ */
1242
+ this.campaigns = [];
1243
+ proto3.util.initPartial(data, this);
1244
+ }
1245
+ static fromBinary(bytes, options) {
1246
+ return new PoolTokenRewards().fromBinary(bytes, options);
1247
+ }
1248
+ static fromJson(jsonValue, options) {
1249
+ return new PoolTokenRewards().fromJson(jsonValue, options);
1250
+ }
1251
+ static fromJsonString(jsonString, options) {
1252
+ return new PoolTokenRewards().fromJsonString(jsonString, options);
1253
+ }
1254
+ static equals(a, b) {
1255
+ return proto3.util.equals(PoolTokenRewards, a, b);
1256
+ }
1257
+ }
1258
+ PoolTokenRewards.runtime = proto3;
1259
+ PoolTokenRewards.typeName = "uniswap.liquidity.v2.PoolTokenRewards";
1260
+ PoolTokenRewards.fields = proto3.util.newFieldList(() => [
1261
+ { no: 1, name: "token", kind: "message", T: RewardToken },
1262
+ { no: 2, name: "boosted_apr", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
1263
+ { no: 3, name: "campaigns", kind: "message", T: PoolCampaign, repeated: true },
1264
+ ]);
1148
1265
  /**
1149
1266
  * What a position earns in one LP-incentive reward token: the pool's boosted APR
1150
1267
  * and the position's unclaimed balance. One entry per token, since a pool can run
@@ -1164,10 +1281,9 @@ export class PositionReward extends Message {
1164
1281
  * token's live campaign APRs, in percent, on top of the pool's fee APR. Shared
1165
1282
  * by every position in the pool, not specific to this one. 0 = no live campaign.
1166
1283
  *
1167
- * The same number a pool-level per-token APR on PoolSummary will report for
1168
- * this (pool, token) see the note on PoolSummary.rewards_campaigns. Distinct
1169
- * from RewardsCampaign.boosted_apr, which is ONE campaign's APR; this sums
1170
- * every live campaign paying this token, so don't add the two together.
1284
+ * The same number PoolSummary.token_rewards reports as boosted_apr for this
1285
+ * (pool, token). Distinct from PoolCampaign.apr, which is ONE campaign's APR;
1286
+ * this sums every live campaign paying the token, so don't add the two.
1171
1287
  *
1172
1288
  * @generated from field: double boosted_pool_apr = 2;
1173
1289
  */
@@ -1530,8 +1646,8 @@ export class Position extends Message {
1530
1646
  * reports for the same wallet.
1531
1647
  *
1532
1648
  * Empty for V2 (no campaigns), and empty when the lookup degrades — rewards
1533
- * never fail a positions read. Populated by GetWalletPositions; GetPosition
1534
- * leaves it empty for now.
1649
+ * never fail a positions read. Populated by both GetWalletPositions and
1650
+ * GetPosition.
1535
1651
  *
1536
1652
  * @generated from field: repeated uniswap.liquidity.v2.PositionReward rewards = 38;
1537
1653
  */
@@ -1592,6 +1708,7 @@ Position.fields = proto3.util.newFieldList(() => [
1592
1708
  { no: 36, name: "reserve1", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1593
1709
  { no: 37, name: "total_supply", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1594
1710
  { no: 38, name: "rewards", kind: "message", T: PositionReward, repeated: true },
1711
+ { no: 39, name: "total_apr", kind: "scalar", T: 1 /* ScalarType.DOUBLE */, opt: true },
1595
1712
  ]);
1596
1713
  /**
1597
1714
  * Keyset cursor for GetWalletPositions. position_key is the last returned
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uniswap/client-liquidity",
3
- "version": "1.4.28",
3
+ "version": "1.4.30",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },