@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.
- package/dist/Centrifuge.d.ts +3 -3029
- package/dist/Centrifuge.d.ts.map +1 -1
- package/dist/Centrifuge.test.js +4 -4
- package/dist/Centrifuge.test.js.map +1 -1
- package/dist/config/chains.d.ts +5 -5
- package/dist/config/chains.d.ts.map +1 -1
- package/dist/entities/Pool.d.ts.map +1 -1
- package/dist/entities/Pool.js +16 -7
- package/dist/entities/Pool.js.map +1 -1
- package/dist/entities/ShareClass.d.ts +52 -2
- package/dist/entities/ShareClass.d.ts.map +1 -1
- package/dist/entities/ShareClass.js +45 -17
- package/dist/entities/ShareClass.js.map +1 -1
- package/dist/entities/ShareClass.test.js +39 -2
- package/dist/entities/ShareClass.test.js.map +1 -1
- package/dist/entities/crosschainMessages.d.ts +2 -2
- package/dist/entities/crosschainMessages.d.ts.map +1 -1
- package/dist/entities/crosschainMessages.js +5 -5
- package/dist/entities/crosschainMessages.js.map +1 -1
- package/package.json +5 -5
|
@@ -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<
|
|
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
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
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
|
-
}`, {
|
|
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) =>
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
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
|
-
}`, {
|
|
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
|
-
|
|
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
|
|
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
|
},
|