@uniswap/client-liquidity 1.4.38 → 1.4.41

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.
@@ -434,6 +434,18 @@ export declare class HookValidationResult extends Message<HookValidationResult>
434
434
  * @generated from field: string description = 5;
435
435
  */
436
436
  description: string;
437
+ /**
438
+ * Getters this hook type needs, and which of them the hook did not answer.
439
+ * Both are listed rather than a single bool: an empty unreadable_getters on a
440
+ * server that never probed is indistinguishable from a clean probe otherwise.
441
+ *
442
+ * @generated from field: repeated string checked_getters = 6;
443
+ */
444
+ checkedGetters: string[];
445
+ /**
446
+ * @generated from field: repeated string unreadable_getters = 7;
447
+ */
448
+ unreadableGetters: string[];
437
449
  constructor(data?: PartialMessage<HookValidationResult>);
438
450
  static readonly runtime: typeof proto3;
439
451
  static readonly typeName = "uniswap.liquidity.v1.HookValidationResult";
@@ -605,6 +605,18 @@ export class HookValidationResult extends Message {
605
605
  * @generated from field: string description = 5;
606
606
  */
607
607
  this.description = "";
608
+ /**
609
+ * Getters this hook type needs, and which of them the hook did not answer.
610
+ * Both are listed rather than a single bool: an empty unreadable_getters on a
611
+ * server that never probed is indistinguishable from a clean probe otherwise.
612
+ *
613
+ * @generated from field: repeated string checked_getters = 6;
614
+ */
615
+ this.checkedGetters = [];
616
+ /**
617
+ * @generated from field: repeated string unreadable_getters = 7;
618
+ */
619
+ this.unreadableGetters = [];
608
620
  proto3.util.initPartial(data, this);
609
621
  }
610
622
  static fromBinary(bytes, options) {
@@ -628,6 +640,8 @@ HookValidationResult.fields = proto3.util.newFieldList(() => [
628
640
  { no: 3, name: "interface_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
629
641
  { no: 4, name: "hook_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
630
642
  { no: 5, name: "description", kind: "scalar", T: 9 /* ScalarType.STRING */ },
643
+ { no: 6, name: "checked_getters", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
644
+ { no: 7, name: "unreadable_getters", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
631
645
  ]);
632
646
  /**
633
647
  * @generated from message uniswap.liquidity.v1.CreateAuctionRequest
@@ -1959,6 +1959,11 @@ export declare class MaxBidPriceData extends Message<MaxBidPriceData> {
1959
1959
  * The ceiling as a Q96 fixed-point price, in the auction's bid-currency units.
1960
1960
  * Decimal string because the value does not fit a uint64.
1961
1961
  *
1962
+ * "0" means the hook's ceiling is DISABLED ("skip the check") -- the hook supports an
1963
+ * optional ceiling and this auction turned it off. Clients must read zero as "no
1964
+ * ceiling" rather than as a ceiling of zero, which no bid could satisfy. The presence
1965
+ * of this message still means the hook was recognized.
1966
+ *
1962
1967
  * @generated from field: string max_bid_price_q96 = 1;
1963
1968
  */
1964
1969
  maxBidPriceQ96: string;
@@ -2220,6 +2220,11 @@ export class MaxBidPriceData extends Message {
2220
2220
  * The ceiling as a Q96 fixed-point price, in the auction's bid-currency units.
2221
2221
  * Decimal string because the value does not fit a uint64.
2222
2222
  *
2223
+ * "0" means the hook's ceiling is DISABLED ("skip the check") -- the hook supports an
2224
+ * optional ceiling and this auction turned it off. Clients must read zero as "no
2225
+ * ceiling" rather than as a ceiling of zero, which no bid could satisfy. The presence
2226
+ * of this message still means the hook was recognized.
2227
+ *
2223
2228
  * @generated from field: string max_bid_price_q96 = 1;
2224
2229
  */
2225
2230
  this.maxBidPriceQ96 = "";
@@ -1,7 +1,7 @@
1
1
  import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf";
2
2
  import { Message, proto3 } from "@bufbuild/protobuf";
3
3
  import { ChainId, NFTPermitData, PermitBatchData, Protocols, TransactionRequest, V3Position } from "../v1/types_pb.js";
4
- import { ApprovalTransactionRequest, CreatePoolParameters, CreatePositionExistingPoolParameters, CreateToken, GasUrgency, HistoryDuration, HookEntry, LPAction, LPToken, PoolPricePoint, PoolReference, PoolSummary, PoolTick, PoolTransaction, PoolTransactionCursor, PoolVolumeBucket, Position, PositionGroup, PositionListCursor, PositionModifier, PositionPriceBounds, PositionSortBy, PositionStatus, PositionTickBounds, RangeStatus, V2PoolParameters } from "./types_pb.js";
4
+ import { ApprovalTransactionRequest, CreatePoolParameters, CreatePositionExistingPoolParameters, CreateToken, GasUrgency, HistoryDuration, HookEntry, LPAction, LPToken, PoolPricePoint, PoolReference, PoolSummary, PoolTick, PoolTransaction, PoolTransactionCursor, PoolVolumeBucket, Position, PositionGroup, PositionGroupTarget, PositionListCursor, PositionModifier, PositionPriceBounds, PositionSortBy, PositionStatus, PositionTickBounds, RangeStatus, V2PoolParameters } from "./types_pb.js";
5
5
  /**
6
6
  * MigrateV2ToV3LPPosition
7
7
  *
@@ -1187,6 +1187,24 @@ export declare class GetWalletPositionsRequest extends Message<GetWalletPosition
1187
1187
  * @generated from field: optional bool group = 12;
1188
1188
  */
1189
1189
  group?: boolean;
1190
+ /**
1191
+ * On a grouped read, cap how many positions each group returns inline. The
1192
+ * group-level totals and total_position_count still cover ALL members, so a
1193
+ * capped page keeps correct aggregates. Absent = a service default; 0 = totals
1194
+ * only (no inline positions). Ignored when group is false.
1195
+ *
1196
+ * @generated from field: optional int32 positions_per_group_limit = 13;
1197
+ */
1198
+ positionsPerGroupLimit?: number;
1199
+ /**
1200
+ * Expand a single group: return only that group's positions, paged by offset
1201
+ * within the group. Implies a grouped read (group need not be set) and the
1202
+ * response's `groups` holds just the one targeted group. Its own limit/offset
1203
+ * page the positions inside the group; the top-level limit/cursor are ignored.
1204
+ *
1205
+ * @generated from field: optional uniswap.liquidity.v2.PositionGroupTarget group_target = 14;
1206
+ */
1207
+ groupTarget?: PositionGroupTarget;
1190
1208
  constructor(data?: PartialMessage<GetWalletPositionsRequest>);
1191
1209
  static readonly runtime: typeof proto3;
1192
1210
  static readonly typeName = "uniswap.liquidity.v2.GetWalletPositionsRequest";
@@ -4,7 +4,7 @@
4
4
  // @ts-nocheck
5
5
  import { Message, proto3 } from "@bufbuild/protobuf";
6
6
  import { ChainId, NFTPermitData, PermitBatchData, Protocols, TransactionRequest, V3Position } from "../v1/types_pb.js";
7
- import { ApprovalTransactionRequest, CreatePoolParameters, CreatePositionExistingPoolParameters, CreateToken, GasUrgency, HistoryDuration, HookEntry, LPAction, LPToken, PoolPricePoint, PoolReference, PoolSummary, PoolTick, PoolTransaction, PoolTransactionCursor, PoolVolumeBucket, Position, PositionGroup, PositionListCursor, PositionModifier, PositionPriceBounds, PositionSortBy, PositionStatus, PositionTickBounds, RangeStatus, V2PoolParameters } from "./types_pb.js";
7
+ import { ApprovalTransactionRequest, CreatePoolParameters, CreatePositionExistingPoolParameters, CreateToken, GasUrgency, HistoryDuration, HookEntry, LPAction, LPToken, PoolPricePoint, PoolReference, PoolSummary, PoolTick, PoolTransaction, PoolTransactionCursor, PoolVolumeBucket, Position, PositionGroup, PositionGroupTarget, PositionListCursor, PositionModifier, PositionPriceBounds, PositionSortBy, PositionStatus, PositionTickBounds, RangeStatus, V2PoolParameters } from "./types_pb.js";
8
8
  /**
9
9
  * MigrateV2ToV3LPPosition
10
10
  *
@@ -1222,6 +1222,8 @@ GetWalletPositionsRequest.fields = proto3.util.newFieldList(() => [
1222
1222
  { no: 10, name: "ascending", kind: "scalar", T: 8 /* ScalarType.BOOL */, opt: true },
1223
1223
  { no: 11, name: "search", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1224
1224
  { no: 12, name: "group", kind: "scalar", T: 8 /* ScalarType.BOOL */, opt: true },
1225
+ { no: 13, name: "positions_per_group_limit", kind: "scalar", T: 5 /* ScalarType.INT32 */, opt: true },
1226
+ { no: 14, name: "group_target", kind: "message", T: PositionGroupTarget, opt: true },
1225
1227
  ]);
1226
1228
  /**
1227
1229
  * @generated from message uniswap.liquidity.v2.GetWalletPositionsResponse
@@ -1430,6 +1430,14 @@ export declare class Position extends Message<Position> {
1430
1430
  * @generated from field: optional uint32 protocol_fee = 40;
1431
1431
  */
1432
1432
  protocolFee?: number;
1433
+ /**
1434
+ * V4 positions whose pool runs a dynamic fee hook (fee_tier is then the
1435
+ * 0x800000 sentinel, not a rate). Always false for V2/V3. Same field as
1436
+ * PoolSummary.is_dynamic_fee — read it instead of testing fee_tier.
1437
+ *
1438
+ * @generated from field: optional bool is_dynamic_fee = 41;
1439
+ */
1440
+ isDynamicFee?: boolean;
1433
1441
  constructor(data?: PartialMessage<Position>);
1434
1442
  static readonly runtime: typeof proto3;
1435
1443
  static readonly typeName = "uniswap.liquidity.v2.Position";
@@ -1478,11 +1486,43 @@ export declare class PositionGroup extends Message<PositionGroup> {
1478
1486
  /**
1479
1487
  * The grouped positions, in the request's sort/default order. Each carries its
1480
1488
  * own raw pool tokens (a WETH position still reports WETH), untouched by the
1481
- * group-level native normalization.
1489
+ * group-level native normalization. Capped by the request's
1490
+ * positions_per_group_limit; the totals below still cover ALL members so a
1491
+ * capped page keeps correct aggregates.
1482
1492
  *
1483
1493
  * @generated from field: repeated uniswap.liquidity.v2.Position positions = 6;
1484
1494
  */
1485
1495
  positions: Position[];
1496
+ /**
1497
+ * Aggregates over ALL positions in the group, not just the returned page, so
1498
+ * a capped `positions` list still shows correct group-level totals. Populated
1499
+ * on a grouped read (group=true). On a single-group expansion (group_target),
1500
+ * only total_value_usd and total_position_count are set — the fee/APR totals
1501
+ * were delivered on the initial grouped read and are not recomputed there
1502
+ * (that would require re-fetching every member's fees/rewards).
1503
+ *
1504
+ * @generated from field: optional double total_value_usd = 7;
1505
+ */
1506
+ totalValueUsd?: number;
1507
+ /**
1508
+ * @generated from field: optional double total_uncollected_fees_usd = 8;
1509
+ */
1510
+ totalUncollectedFeesUsd?: number;
1511
+ /**
1512
+ * Liquidity-weighted mean of members' total_apr, weighted by each member's
1513
+ * value_usd (Σ apr·value / Σ value) — the blended yield on the group's
1514
+ * capital, not a naive per-position average. Unset when no member is priced.
1515
+ *
1516
+ * @generated from field: optional double weighted_apr = 9;
1517
+ */
1518
+ weightedApr?: number;
1519
+ /**
1520
+ * Full member count (all positions in the group), so a capped page can show
1521
+ * "+N more" and drive expansion.
1522
+ *
1523
+ * @generated from field: int32 total_position_count = 10;
1524
+ */
1525
+ totalPositionCount: number;
1486
1526
  constructor(data?: PartialMessage<PositionGroup>);
1487
1527
  static readonly runtime: typeof proto3;
1488
1528
  static readonly typeName = "uniswap.liquidity.v2.PositionGroup";
@@ -1492,6 +1532,52 @@ export declare class PositionGroup extends Message<PositionGroup> {
1492
1532
  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): PositionGroup;
1493
1533
  static equals(a: PositionGroup | PlainMessage<PositionGroup> | undefined, b: PositionGroup | PlainMessage<PositionGroup> | undefined): boolean;
1494
1534
  }
1535
+ /**
1536
+ * Targets one PositionGroup for expansion in GetWalletPositions: with this set,
1537
+ * the response returns just that group's positions, paged by offset within the
1538
+ * group. The pair key comes from a prior grouped response's PositionGroup
1539
+ * (chain_id, token0_address, token1_address); addresses are normalized the same
1540
+ * way grouping does (wrapped native -> native), so either the native or the
1541
+ * wrapped address of a slot resolves to the same group. Singleton groups (one
1542
+ * position, unresolved metadata) are not expandable — the caller already holds
1543
+ * their single position.
1544
+ *
1545
+ * @generated from message uniswap.liquidity.v2.PositionGroupTarget
1546
+ */
1547
+ export declare class PositionGroupTarget extends Message<PositionGroupTarget> {
1548
+ /**
1549
+ * @generated from field: int32 chain_id = 1;
1550
+ */
1551
+ chainId: number;
1552
+ /**
1553
+ * @generated from field: optional string token0_address = 2;
1554
+ */
1555
+ token0Address?: string;
1556
+ /**
1557
+ * @generated from field: optional string token1_address = 3;
1558
+ */
1559
+ token1Address?: string;
1560
+ /**
1561
+ * Offset within the group's positions (in the group's sort/default order).
1562
+ *
1563
+ * @generated from field: int32 offset = 4;
1564
+ */
1565
+ offset: number;
1566
+ /**
1567
+ * Max positions to return for the group. Default = service default, max 200.
1568
+ *
1569
+ * @generated from field: optional int32 limit = 5;
1570
+ */
1571
+ limit?: number;
1572
+ constructor(data?: PartialMessage<PositionGroupTarget>);
1573
+ static readonly runtime: typeof proto3;
1574
+ static readonly typeName = "uniswap.liquidity.v2.PositionGroupTarget";
1575
+ static readonly fields: FieldList;
1576
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): PositionGroupTarget;
1577
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): PositionGroupTarget;
1578
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): PositionGroupTarget;
1579
+ static equals(a: PositionGroupTarget | PlainMessage<PositionGroupTarget> | undefined, b: PositionGroupTarget | PlainMessage<PositionGroupTarget> | undefined): boolean;
1580
+ }
1495
1581
  /**
1496
1582
  * Keyset cursor for GetWalletPositions. position_key is the last returned
1497
1583
  * position's key within (chain_id, version): V2 pair address, V3 token id,
@@ -1577,6 +1577,7 @@ Position.fields = proto3.util.newFieldList(() => [
1577
1577
  { no: 38, name: "rewards", kind: "message", T: PositionReward, repeated: true },
1578
1578
  { no: 39, name: "total_apr", kind: "scalar", T: 1 /* ScalarType.DOUBLE */, opt: true },
1579
1579
  { no: 40, name: "protocol_fee", kind: "scalar", T: 13 /* ScalarType.UINT32 */, opt: true },
1580
+ { no: 41, name: "is_dynamic_fee", kind: "scalar", T: 8 /* ScalarType.BOOL */, opt: true },
1580
1581
  ]);
1581
1582
  /**
1582
1583
  * A wallet's positions collapsed by token pair, returned by GetWalletPositions
@@ -1598,11 +1599,20 @@ export class PositionGroup extends Message {
1598
1599
  /**
1599
1600
  * The grouped positions, in the request's sort/default order. Each carries its
1600
1601
  * own raw pool tokens (a WETH position still reports WETH), untouched by the
1601
- * group-level native normalization.
1602
+ * group-level native normalization. Capped by the request's
1603
+ * positions_per_group_limit; the totals below still cover ALL members so a
1604
+ * capped page keeps correct aggregates.
1602
1605
  *
1603
1606
  * @generated from field: repeated uniswap.liquidity.v2.Position positions = 6;
1604
1607
  */
1605
1608
  this.positions = [];
1609
+ /**
1610
+ * Full member count (all positions in the group), so a capped page can show
1611
+ * "+N more" and drive expansion.
1612
+ *
1613
+ * @generated from field: int32 total_position_count = 10;
1614
+ */
1615
+ this.totalPositionCount = 0;
1606
1616
  proto3.util.initPartial(data, this);
1607
1617
  }
1608
1618
  static fromBinary(bytes, options) {
@@ -1627,6 +1637,59 @@ PositionGroup.fields = proto3.util.newFieldList(() => [
1627
1637
  { no: 4, name: "token0_metadata", kind: "message", T: TokenMetadata, opt: true },
1628
1638
  { no: 5, name: "token1_metadata", kind: "message", T: TokenMetadata, opt: true },
1629
1639
  { no: 6, name: "positions", kind: "message", T: Position, repeated: true },
1640
+ { no: 7, name: "total_value_usd", kind: "scalar", T: 1 /* ScalarType.DOUBLE */, opt: true },
1641
+ { no: 8, name: "total_uncollected_fees_usd", kind: "scalar", T: 1 /* ScalarType.DOUBLE */, opt: true },
1642
+ { no: 9, name: "weighted_apr", kind: "scalar", T: 1 /* ScalarType.DOUBLE */, opt: true },
1643
+ { no: 10, name: "total_position_count", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
1644
+ ]);
1645
+ /**
1646
+ * Targets one PositionGroup for expansion in GetWalletPositions: with this set,
1647
+ * the response returns just that group's positions, paged by offset within the
1648
+ * group. The pair key comes from a prior grouped response's PositionGroup
1649
+ * (chain_id, token0_address, token1_address); addresses are normalized the same
1650
+ * way grouping does (wrapped native -> native), so either the native or the
1651
+ * wrapped address of a slot resolves to the same group. Singleton groups (one
1652
+ * position, unresolved metadata) are not expandable — the caller already holds
1653
+ * their single position.
1654
+ *
1655
+ * @generated from message uniswap.liquidity.v2.PositionGroupTarget
1656
+ */
1657
+ export class PositionGroupTarget extends Message {
1658
+ constructor(data) {
1659
+ super();
1660
+ /**
1661
+ * @generated from field: int32 chain_id = 1;
1662
+ */
1663
+ this.chainId = 0;
1664
+ /**
1665
+ * Offset within the group's positions (in the group's sort/default order).
1666
+ *
1667
+ * @generated from field: int32 offset = 4;
1668
+ */
1669
+ this.offset = 0;
1670
+ proto3.util.initPartial(data, this);
1671
+ }
1672
+ static fromBinary(bytes, options) {
1673
+ return new PositionGroupTarget().fromBinary(bytes, options);
1674
+ }
1675
+ static fromJson(jsonValue, options) {
1676
+ return new PositionGroupTarget().fromJson(jsonValue, options);
1677
+ }
1678
+ static fromJsonString(jsonString, options) {
1679
+ return new PositionGroupTarget().fromJsonString(jsonString, options);
1680
+ }
1681
+ static equals(a, b) {
1682
+ return proto3.util.equals(PositionGroupTarget, a, b);
1683
+ }
1684
+ }
1685
+ PositionGroupTarget.runtime = proto3;
1686
+ PositionGroupTarget.typeName = "uniswap.liquidity.v2.PositionGroupTarget";
1687
+ PositionGroupTarget.fields = proto3.util.newFieldList(() => [
1688
+ { no: 1, name: "chain_id", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
1689
+ { no: 2, name: "token0_address", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1690
+ { no: 3, name: "token1_address", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1691
+ { no: 4, name: "offset", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
1692
+ { no: 5, name: "limit", kind: "scalar", T: 5 /* ScalarType.INT32 */, opt: true },
1630
1693
  ]);
1631
1694
  /**
1632
1695
  * 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.38",
3
+ "version": "1.4.41",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },