@centrifuge/sdk 1.21.1 → 1.23.1

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.
@@ -7,6 +7,44 @@ import { BalanceSheet } from './BalanceSheet.js';
7
7
  import { Entity } from './Entity.js';
8
8
  import type { Pool } from './Pool.js';
9
9
  import { Vault } from './Vault.js';
10
+ /**
11
+ * A closed redemption order, i.e. an epoch for which shares have been revoked.
12
+ * `investor` is null for the epoch-level aggregate returned when no per-investor
13
+ * orders are indexed for a revoked epoch.
14
+ */
15
+ export interface ClosedRedemption {
16
+ investor: HexString | null;
17
+ index: number;
18
+ assetId: AssetId;
19
+ approvedAmount: Balance;
20
+ approvedAt: string | null;
21
+ payoutAmount: Balance;
22
+ revokedAt: string | null;
23
+ priceAsset: Price;
24
+ pricePerShare: Price;
25
+ claimedAt: string | null;
26
+ isClaimed: boolean;
27
+ asset: {
28
+ symbol: string;
29
+ name: string;
30
+ decimals: number;
31
+ };
32
+ centrifugeId: CentrifugeId;
33
+ token: {
34
+ decimals: number;
35
+ };
36
+ }
37
+ /**
38
+ * Filter for {@link ShareClass.closedRedemptions}.
39
+ */
40
+ export interface ClosedRedemptionsFilter {
41
+ /** Restrict to a single payout asset. */
42
+ assetId?: AssetId;
43
+ /** Restrict to a single epoch (the `epochId` passed to approve/revoke). */
44
+ epochIndex?: number;
45
+ /** Only return orders not yet claimed/notified on the hub (`claimedAt` is null). */
46
+ onlyUnclaimed?: boolean;
47
+ }
10
48
  /**
11
49
  * Query and interact with a share class, which allows querying total issuance, NAV per share,
12
50
  * and allows interactions related to asynchronous deposits and redemptions.
@@ -344,10 +382,22 @@ export declare class ShareClass extends Entity {
344
382
  */
345
383
  closedInvestments(): import("../index.js").Query<any[]>;
346
384
  /**
347
- * Get closed redemption orders
385
+ * Get closed redemption orders, i.e. epochs for which shares have been revoked.
386
+ *
387
+ * Without a filter this returns every closed order across the share class' entire
388
+ * redemption history (one indexer request per epoch). Pass a `filter` to scope it:
389
+ *
390
+ * - `assetId` / `epochIndex` narrow to a single asset and/or epoch, so the cost
391
+ * scales with the investors in that epoch rather than all history. `epochIndex`
392
+ * is the `epochId` passed to `approveRedeems`/`revokeShares`.
393
+ * - `onlyUnclaimed` drops orders already claimed/notified on the hub. Because each
394
+ * `notifyRedeem` stamps `claimedAt`, this is safe to poll: an operator bot can
395
+ * re-run it to get exactly the investors of an epoch still awaiting a
396
+ * `notifyRedeem`.
397
+ *
348
398
  * @returns Closed redemption orders where shares have been revoked
349
399
  */
350
- closedRedemptions(): import("../index.js").Query<any[]>;
400
+ closedRedemptions(filter?: ClosedRedemptionsFilter): import("../index.js").Query<ClosedRedemption[]>;
351
401
  /**
352
402
  * Get detailed invest order information including per-user breakdowns with helper methods.
353
403
  * @returns Invest order data with helper methods for efficient lookups
@@ -1 +1 @@
1
- {"version":3,"file":"ShareClass.d.ts","sourceRoot":"","sources":["../../src/entities/ShareClass.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ShareClass.d.ts","sourceRoot":"","sources":["../../src/entities/ShareClass.ts"],"names":[],"mappings":"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"}
@@ -1542,13 +1542,32 @@ export class ShareClass extends Entity {
1542
1542
  })));
1543
1543
  }
1544
1544
  /**
1545
- * Get closed redemption orders
1545
+ * Get closed redemption orders, i.e. epochs for which shares have been revoked.
1546
+ *
1547
+ * Without a filter this returns every closed order across the share class' entire
1548
+ * redemption history (one indexer request per epoch). Pass a `filter` to scope it:
1549
+ *
1550
+ * - `assetId` / `epochIndex` narrow to a single asset and/or epoch, so the cost
1551
+ * scales with the investors in that epoch rather than all history. `epochIndex`
1552
+ * is the `epochId` passed to `approveRedeems`/`revokeShares`.
1553
+ * - `onlyUnclaimed` drops orders already claimed/notified on the hub. Because each
1554
+ * `notifyRedeem` stamps `claimedAt`, this is safe to poll: an operator bot can
1555
+ * re-run it to get exactly the investors of an epoch still awaiting a
1556
+ * `notifyRedeem`.
1557
+ *
1546
1558
  * @returns Closed redemption orders where shares have been revoked
1547
1559
  */
1548
- closedRedemptions() {
1549
- return this._query(['closedRedemptions'], () => this._root
1550
- ._queryIndexer(`query ($scId: String!) {
1551
- epochRedeemOrders(where: {tokenId: $scId, index_gte: 0}, limit: 1000) {
1560
+ closedRedemptions(filter = {}) {
1561
+ const { assetId, epochIndex, onlyUnclaimed = false } = filter;
1562
+ // AssetId.raw is a bigint (not JSON-serializable); the indexer's BigInt scalar takes a string.
1563
+ const epochFilter = { tokenId: this.id.raw };
1564
+ if (assetId !== undefined)
1565
+ epochFilter.assetId = assetId.toString();
1566
+ if (epochIndex !== undefined)
1567
+ epochFilter.index = epochIndex;
1568
+ return this._query(['closedRedemptions', assetId?.toString(), epochIndex, onlyUnclaimed], () => this._root
1569
+ ._queryIndexer(`query ($filter: EpochRedeemOrderFilter) {
1570
+ epochRedeemOrders(where: $filter, limit: 1000) {
1552
1571
  items {
1553
1572
  assetId
1554
1573
  index
@@ -1570,17 +1589,21 @@ export class ShareClass extends Entity {
1570
1589
  }
1571
1590
  }
1572
1591
  }
1573
- }`, { scId: this.id.raw }, (data) => data.epochRedeemOrders.items)
1592
+ }`, { filter: epochFilter }, (data) => data.epochRedeemOrders.items)
1574
1593
  .pipe(switchMap((epochs) => {
1575
1594
  if (epochs.length === 0)
1576
1595
  return of([]);
1577
- return combineLatest(epochs.map((epochData) => this._root._queryIndexer(`query ($scId: String!, $assetId: BigInt!, $index: Int!) {
1578
- redeemOrders(where: {
1579
- tokenId: $scId,
1580
- assetId: $assetId,
1581
- index: $index,
1582
- revokedAt_not: null
1583
- }, limit: 1000) {
1596
+ return combineLatest(epochs.map((epochData) => {
1597
+ const orderFilter = {
1598
+ tokenId: this.id.raw,
1599
+ assetId: epochData.assetId,
1600
+ index: epochData.index,
1601
+ revokedAt_not: null,
1602
+ };
1603
+ if (onlyUnclaimed)
1604
+ orderFilter.claimedAt = null;
1605
+ return this._root._queryIndexer(`query ($filter: RedeemOrderFilter) {
1606
+ redeemOrders(where: $filter, limit: 1000) {
1584
1607
  items {
1585
1608
  account
1586
1609
  index
@@ -1605,12 +1628,16 @@ export class ShareClass extends Entity {
1605
1628
  }
1606
1629
  }
1607
1630
  }
1608
- }`, { scId: this.id.raw, assetId: epochData.assetId, index: epochData.index }, (orderData) => ({ epochData, orders: orderData.redeemOrders.items }))));
1631
+ }`, { filter: orderFilter }, (orderData) => ({ epochData, orders: orderData.redeemOrders.items }));
1632
+ }));
1609
1633
  }), map((results) => {
1610
1634
  const allOrders = [];
1611
1635
  results.forEach((result) => {
1612
1636
  const { epochData, orders } = result;
1613
- if (orders.length === 0 && epochData.revokedAt) {
1637
+ // The epoch-level aggregate is a fallback for revoked epochs with no
1638
+ // indexed per-investor orders; skip it when filtering to unclaimed, where
1639
+ // an empty result legitimately means everyone has been notified.
1640
+ if (orders.length === 0 && epochData.revokedAt && !onlyUnclaimed) {
1614
1641
  allOrders.push({
1615
1642
  investor: null,
1616
1643
  index: epochData.index,
@@ -1628,7 +1655,8 @@ export class ShareClass extends Entity {
1628
1655
  name: epochData.asset.name,
1629
1656
  decimals: epochData.asset.decimals,
1630
1657
  },
1631
- centrifugeId: epochData.asset.centrifugeId,
1658
+ // The indexer returns centrifugeId as a string; CentrifugeId is a number.
1659
+ centrifugeId: Number(epochData.asset.centrifugeId),
1632
1660
  token: {
1633
1661
  decimals: epochData.token.decimals,
1634
1662
  },
@@ -1653,7 +1681,7 @@ export class ShareClass extends Entity {
1653
1681
  name: order.asset.name,
1654
1682
  decimals: order.asset.decimals,
1655
1683
  },
1656
- centrifugeId: order.asset.centrifugeId,
1684
+ centrifugeId: Number(order.asset.centrifugeId),
1657
1685
  token: {
1658
1686
  decimals: order.token.decimals,
1659
1687
  },