@kasufinance/kasu-sdk 2.11.0 → 2.12.0
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/README.md +11 -1
- package/dist/bundle.cjs.js +674 -59
- package/dist/bundle.esm.js +673 -60
- package/dist/domain/index.d.ts +4 -2
- package/dist/domain/index.js +1 -0
- package/dist/domain/index.js.map +1 -1
- package/dist/domain/yield-history.d.ts +122 -0
- package/dist/domain/yield-history.js +95 -0
- package/dist/domain/yield-history.js.map +1 -0
- package/dist/facade/user-portfolio.d.ts +32 -0
- package/dist/facade/user-portfolio.js +34 -0
- package/dist/facade/user-portfolio.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js.map +1 -1
- package/dist/services/Portfolio/portfolio.d.ts +37 -0
- package/dist/services/Portfolio/portfolio.js +136 -56
- package/dist/services/Portfolio/portfolio.js.map +1 -1
- package/dist/services/Portfolio/queries.js +15 -3
- package/dist/services/Portfolio/queries.js.map +1 -1
- package/dist/services/Portfolio/types.d.ts +8 -0
- package/dist/services/Portfolio/yield-history.d.ts +177 -0
- package/dist/services/Portfolio/yield-history.js +405 -0
- package/dist/services/Portfolio/yield-history.js.map +1 -0
- package/package.json +1 -1
- package/src/domain/index.ts +12 -10
- package/src/domain/yield-history.ts +194 -0
- package/src/facade/user-portfolio.ts +40 -3
- package/src/index.ts +2 -0
- package/src/services/Portfolio/portfolio.ts +263 -153
- package/src/services/Portfolio/queries.ts +15 -3
- package/src/services/Portfolio/types.ts +10 -0
- package/src/services/Portfolio/yield-history.ts +574 -0
|
@@ -11,6 +11,7 @@ import { BigNumber } from 'ethers';
|
|
|
11
11
|
import { formatEther, parseEther, parseUnits } from 'ethers/lib/utils';
|
|
12
12
|
import { GraphQLClient } from 'graphql-request';
|
|
13
13
|
import { IKasuNFTsAbi__factory, ISystemVariablesAbi__factory, IUserLoyaltyRewardsAbi__factory, } from '../../contracts';
|
|
14
|
+
import { epochTrancheYield, } from '../../domain/yield-history';
|
|
14
15
|
import { isLiteDeployment } from '../../utils/deployment-mode';
|
|
15
16
|
import { DataService } from '../DataService/data-service';
|
|
16
17
|
import { getAllTrancheConfigurationsQuery, getAllTranchesQuery, } from '../DataService/queries';
|
|
@@ -18,6 +19,7 @@ import { KSULocking } from '../Locking/locking';
|
|
|
18
19
|
import { getSystemVariablesQuery, lockingSummariesQuery, } from '../Locking/queries';
|
|
19
20
|
import { UserLending } from '../UserLending/user-lending';
|
|
20
21
|
import { lendingPortfolioQuery } from './queries';
|
|
22
|
+
import { buildYieldHistory, fetchYieldHistorySeries, isEmptyHistoryError, resolveYieldHistoryWindow, validateYieldHistoryOptions, YIELD_HISTORY_PAGE_SIZE, yieldHistoryPageQuery, yieldHistoryPositionsQuery, } from './yield-history';
|
|
21
23
|
export class Portfolio {
|
|
22
24
|
constructor(_kasuConfig, signerOrProvider) {
|
|
23
25
|
this._kasuConfig = _kasuConfig;
|
|
@@ -118,7 +120,7 @@ export class Portfolio {
|
|
|
118
120
|
performanceFee *
|
|
119
121
|
ecosystemFeeRate;
|
|
120
122
|
}
|
|
121
|
-
return (
|
|
123
|
+
return (totalWeeklyEcosystemFees * userRKsuAmount) / totalRKsuAmount;
|
|
122
124
|
}
|
|
123
125
|
/**
|
|
124
126
|
* Calculate the user's weekly KASU bonus rewards (KASU) based on current deposits,
|
|
@@ -126,7 +128,7 @@ export class Portfolio {
|
|
|
126
128
|
*/
|
|
127
129
|
calculateWeeklyKsuBonusRewards(params) {
|
|
128
130
|
return __awaiter(this, void 0, void 0, function* () {
|
|
129
|
-
const { userAddress, userRksuAmount, userDepositAmounts, ksuEpochPrice } = params;
|
|
131
|
+
const { userAddress, userRksuAmount, userDepositAmounts, ksuEpochPrice, } = params;
|
|
130
132
|
const totalUserDeposits = userDepositAmounts[0].add(userDepositAmounts[1]);
|
|
131
133
|
if (totalUserDeposits.isZero())
|
|
132
134
|
return 0;
|
|
@@ -235,7 +237,7 @@ export class Portfolio {
|
|
|
235
237
|
}
|
|
236
238
|
getPortfolioLendingData(userAddress, poolOverviews, currentEpoch, provider) {
|
|
237
239
|
return __awaiter(this, void 0, void 0, function* () {
|
|
238
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
240
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
239
241
|
const SECONDS_PER_EPOCH = 604800; // seconds in a week
|
|
240
242
|
const portfolioLendingPoolsPromise = [];
|
|
241
243
|
const previousEpoch = BigNumber.from(currentEpoch).sub(BigNumber.from(1));
|
|
@@ -245,6 +247,7 @@ export class Portfolio {
|
|
|
245
247
|
epochId: parseFloat(currentEpoch),
|
|
246
248
|
lastEpochId: previousEpoch.toNumber(),
|
|
247
249
|
unusedPools: this._kasuConfig.UNUSED_LENDING_POOL_IDS,
|
|
250
|
+
first: YIELD_HISTORY_PAGE_SIZE,
|
|
248
251
|
}),
|
|
249
252
|
this._userLendingService.getPortfolioUserTrancheBalances(userAddress),
|
|
250
253
|
this._userLendingService.getUserPoolBalance(userAddress, poolOverviews.map(({ id }) => id), provider),
|
|
@@ -282,7 +285,6 @@ export class Portfolio {
|
|
|
282
285
|
}
|
|
283
286
|
}
|
|
284
287
|
let totalInvestments = BigNumber.from(0);
|
|
285
|
-
let totalYieldEarnedLastEpoch = 0;
|
|
286
288
|
for (const poolOverview of poolOverviews) {
|
|
287
289
|
const userPoolBalance = userPoolBalances.find(({ poolId }) => poolId === poolOverview.id);
|
|
288
290
|
if (!userPoolBalance) {
|
|
@@ -290,6 +292,7 @@ export class Portfolio {
|
|
|
290
292
|
}
|
|
291
293
|
totalInvestments = userPoolBalance.balance.add(totalInvestments);
|
|
292
294
|
const tranches = [];
|
|
295
|
+
let poolYieldEarnedLastEpoch = 0;
|
|
293
296
|
const lendingPoolUserDetails = lastEpochData.user.lendingPoolUserDetails.find(({ lendingPool }) => lendingPool.id === poolOverview.id);
|
|
294
297
|
if (!lendingPoolUserDetails)
|
|
295
298
|
continue;
|
|
@@ -308,18 +311,42 @@ export class Portfolio {
|
|
|
308
311
|
}, depositDetails, fixedLoans: [] }));
|
|
309
312
|
continue;
|
|
310
313
|
}
|
|
311
|
-
const
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
const
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
: (
|
|
322
|
-
|
|
314
|
+
const lastEpoch = previousEpoch.toNumber();
|
|
315
|
+
const userHasLastEpochShares = Boolean((_c = lastEpochUserTrancheDetails
|
|
316
|
+
.lendingPoolTrancheUserEpochSharesUpdates) === null || _c === void 0 ? void 0 : _c.length);
|
|
317
|
+
const fixedTermDeposits = lastEpochUserTrancheDetails.userLendingPoolTrancheFixedTermDepositLocks;
|
|
318
|
+
// The one per-epoch formula `getYieldHistory` runs too, with
|
|
319
|
+
// the same share selection — so the last bar of a history
|
|
320
|
+
// equals these figures.
|
|
321
|
+
const lastEpochYield = epochTrancheYield({
|
|
322
|
+
epochInterest: parseFloat((_f = (_e = (_d = lastEpochUserTrancheDetails.tranche
|
|
323
|
+
.lendingPoolTrancheEpochInterest) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e.epochInterestAmount) !== null && _f !== void 0 ? _f : '0'),
|
|
324
|
+
userShares: parseFloat((_j = (_h = (_g = lastEpochUserTrancheDetails
|
|
325
|
+
.lendingPoolTrancheUserEpochSharesUpdates) === null || _g === void 0 ? void 0 : _g[0]) === null || _h === void 0 ? void 0 : _h.shares) !== null && _j !== void 0 ? _j : '0'),
|
|
326
|
+
trancheShares: parseFloat((_m = (_l = (_k = lastEpochUserTrancheDetails.tranche
|
|
327
|
+
.lendingPoolTrancheShareUpdates) === null || _k === void 0 ? void 0 : _k[0]) === null || _l === void 0 ? void 0 : _l.shares) !== null && _m !== void 0 ? _m : '0'),
|
|
328
|
+
trancheBalanceNow: parseFloat(lastEpochUserTrancheDetails.tranche.balance),
|
|
329
|
+
trancheSharesNow: parseFloat(lastEpochUserTrancheDetails.tranche.shares),
|
|
330
|
+
locks: fixedTermDeposits.map((fixedTermDeposit) => {
|
|
331
|
+
var _a, _b, _c, _d, _e, _f;
|
|
332
|
+
return ({
|
|
333
|
+
active: parseFloat(fixedTermDeposit.epochLockStart) <
|
|
334
|
+
lastEpoch &&
|
|
335
|
+
parseFloat(fixedTermDeposit.epochLockEnd) >=
|
|
336
|
+
lastEpoch &&
|
|
337
|
+
userHasLastEpochShares,
|
|
338
|
+
// No snapshot = the lock's opening shares, exactly
|
|
339
|
+
// as `getYieldHistory` reads it: a lock made after
|
|
340
|
+
// clearing E starts at E with its first update
|
|
341
|
+
// tagged E + 1. Never the CURRENT shares, which
|
|
342
|
+
// would carry a top-up from a clearing that ran
|
|
343
|
+
// after the last settled epoch.
|
|
344
|
+
sharesAtEpoch: parseFloat((_c = (_b = (_a = fixedTermDeposit.lockSharesAtLastEpoch) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.shares) !== null && _c !== void 0 ? _c : fixedTermDeposit.initialTrancheShares),
|
|
345
|
+
sharesBeforeEpoch: parseFloat((_f = (_e = (_d = fixedTermDeposit
|
|
346
|
+
.userLendingPoolTrancheFixedTermDepositLockShareUpdate) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e.shares) !== null && _f !== void 0 ? _f : fixedTermDeposit.initialTrancheShares),
|
|
347
|
+
});
|
|
348
|
+
}),
|
|
349
|
+
});
|
|
323
350
|
const userTrancheBalance = {
|
|
324
351
|
balance: '0',
|
|
325
352
|
yieldEarned: 0,
|
|
@@ -334,47 +361,20 @@ export class Portfolio {
|
|
|
334
361
|
}
|
|
335
362
|
}
|
|
336
363
|
let totalLifetimeFtdYield = 0;
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
var _a, _b, _c, _d, _e;
|
|
364
|
+
const fixedLoans = fixedTermDeposits.map((fixedTermDeposit, lockIndex) => {
|
|
365
|
+
var _a, _b;
|
|
340
366
|
const fixedLoanDepositDetails = (_a = userRequest === null || userRequest === void 0 ? void 0 : userRequest[fixedTermDeposit
|
|
341
|
-
.lendingPoolTrancheFixedTermConfig
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
let lifetimeYieldEarned = 0;
|
|
345
|
-
if (parseFloat(fixedTermDeposit.epochLockStart) <
|
|
346
|
-
previousEpoch.toNumber() &&
|
|
347
|
-
parseFloat(fixedTermDeposit.epochLockEnd) >=
|
|
348
|
-
previousEpoch.toNumber() &&
|
|
349
|
-
Boolean((_b = lastEpochUserTrancheDetails
|
|
350
|
-
.lendingPoolTrancheUserEpochSharesUpdates) === null || _b === void 0 ? void 0 : _b.length)) {
|
|
351
|
-
const currentEpochFtdShares = parseFloat(fixedTermDeposit.trancheShares);
|
|
352
|
-
const lastEpochFtdShares = parseFloat((_e = (_d = (_c = fixedTermDeposit
|
|
353
|
-
.userLendingPoolTrancheFixedTermDepositLockShareUpdate) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.shares) !== null && _e !== void 0 ? _e : '0');
|
|
354
|
-
const additionalFtdYield = ((currentEpochFtdShares -
|
|
355
|
-
lastEpochFtdShares) *
|
|
356
|
-
currentTotalAmount) /
|
|
357
|
-
currentTotalShares;
|
|
358
|
-
const lastEpochFtdBaseYield = (lastEpochTotalBaseYield *
|
|
359
|
-
lastEpochFtdShares) /
|
|
360
|
-
lastEpochUserShares;
|
|
361
|
-
lastEpochVariableBaseYield -=
|
|
362
|
-
lastEpochFtdBaseYield;
|
|
363
|
-
lastEpochYieldEarned =
|
|
364
|
-
lastEpochFtdBaseYield + additionalFtdYield;
|
|
365
|
-
}
|
|
366
|
-
lifetimeYieldEarned =
|
|
367
|
-
this.calculateFixedTermDepositEarnings(fixedTermDeposit, lastEpochUserTrancheDetails.tranche.balance, lastEpochUserTrancheDetails.tranche.shares);
|
|
367
|
+
.lendingPoolTrancheFixedTermConfig.configId]) !== null && _a !== void 0 ? _a : [];
|
|
368
|
+
const lastEpochYieldEarned = (_b = lastEpochYield.locks[lockIndex]) !== null && _b !== void 0 ? _b : 0;
|
|
369
|
+
const lifetimeYieldEarned = this.calculateFixedTermDepositEarnings(fixedTermDeposit, lastEpochUserTrancheDetails.tranche.balance, lastEpochUserTrancheDetails.tranche.shares);
|
|
368
370
|
totalLifetimeFtdYield += lifetimeYieldEarned;
|
|
369
|
-
totalYieldEarnedLastEpoch += lastEpochYieldEarned;
|
|
370
371
|
const lockDuration = parseFloat(fixedTermDeposit
|
|
371
372
|
.lendingPoolTrancheFixedTermConfig
|
|
372
373
|
.epochLockDuration) * SECONDS_PER_EPOCH;
|
|
373
374
|
return {
|
|
374
375
|
lockId: fixedTermDeposit.lockId,
|
|
375
376
|
configId: fixedTermDeposit
|
|
376
|
-
.lendingPoolTrancheFixedTermConfig
|
|
377
|
-
.configId,
|
|
377
|
+
.lendingPoolTrancheFixedTermConfig.configId,
|
|
378
378
|
epochLockDuration: fixedTermDeposit
|
|
379
379
|
.lendingPoolTrancheFixedTermConfig
|
|
380
380
|
.epochLockDuration,
|
|
@@ -384,9 +384,7 @@ export class Portfolio {
|
|
|
384
384
|
.epochInterestRate,
|
|
385
385
|
epochLockStart: fixedTermDeposit.epochLockStart,
|
|
386
386
|
amount: this._userLendingService
|
|
387
|
-
.convertSharesToAssets(fixedTermDeposit.trancheShares, lastEpochUserTrancheDetails.tranche
|
|
388
|
-
.balance, lastEpochUserTrancheDetails.tranche
|
|
389
|
-
.shares)
|
|
387
|
+
.convertSharesToAssets(fixedTermDeposit.trancheShares, lastEpochUserTrancheDetails.tranche.balance, lastEpochUserTrancheDetails.tranche.shares)
|
|
390
388
|
.toString(),
|
|
391
389
|
endTime: parseInt(fixedTermDeposit.createdOn) +
|
|
392
390
|
lockDuration,
|
|
@@ -394,20 +392,22 @@ export class Portfolio {
|
|
|
394
392
|
isWithdrawalRequested: fixedTermDeposit.isWithdrawalRequested,
|
|
395
393
|
startTime: parseInt(fixedTermDeposit.createdOn),
|
|
396
394
|
yieldEarnings: {
|
|
397
|
-
lastEpoch:
|
|
395
|
+
lastEpoch: this.precisionToString(lastEpochYieldEarned),
|
|
398
396
|
lifetime: this.precisionToString(lifetimeYieldEarned),
|
|
399
397
|
},
|
|
400
398
|
depositDetails: fixedLoanDepositDetails,
|
|
401
399
|
};
|
|
402
400
|
});
|
|
403
|
-
|
|
401
|
+
// This POOL's last-epoch total: the tranche totals summed, the
|
|
402
|
+
// locks counted once (inside `total`).
|
|
403
|
+
poolYieldEarnedLastEpoch += lastEpochYield.total;
|
|
404
404
|
tranches.push(Object.assign(Object.assign({}, tranche), { investedAmount: userTrancheBalance, yieldEarnings: {
|
|
405
|
-
lastEpoch:
|
|
405
|
+
lastEpoch: this.precisionToString(lastEpochYield.variable),
|
|
406
406
|
lifetime: this.precisionToString(totalLifetimeFtdYield), // passing in total FTD yield to be subtracted by total trache lifetime later down
|
|
407
407
|
}, fixedLoans,
|
|
408
408
|
depositDetails }));
|
|
409
409
|
}
|
|
410
|
-
portfolioLendingPoolsPromise.push(Object.assign(Object.assign({}, poolOverview), { totalYieldEarningsLastEpoch:
|
|
410
|
+
portfolioLendingPoolsPromise.push(Object.assign(Object.assign({}, poolOverview), { totalYieldEarningsLastEpoch: this.precisionToString(poolYieldEarnedLastEpoch), totalInvestedAmount: userPoolBalance.balance.toString(), totalYieldEarningsLifetime: userPoolBalance.yieldEarned.toString(), tranches }));
|
|
411
411
|
}
|
|
412
412
|
const portfolioLendingPools = portfolioLendingPoolsPromise.map((pool) => (Object.assign(Object.assign({}, pool), { tranches: pool.tranches.map((tranche) => {
|
|
413
413
|
const trancheBalance = tranche.investedAmount;
|
|
@@ -425,7 +425,87 @@ export class Portfolio {
|
|
|
425
425
|
!parseUnits(pool.totalYieldEarningsLifetime).isZero());
|
|
426
426
|
});
|
|
427
427
|
}
|
|
428
|
+
/**
|
|
429
|
+
* The lender's settled yield per cycle (epoch), per pool and tranche —
|
|
430
|
+
* what the chain credited at each close, NET of the performance fee
|
|
431
|
+
* (`domain/yield-history.ts`), in the deployment's own stable token. Each
|
|
432
|
+
* entry runs the same `epochTrancheYield` as `getPortfolioLendingData`'s
|
|
433
|
+
* last-epoch figures: a tranche's `yieldEarnings.lastEpoch` plus its
|
|
434
|
+
* locks' equals its entry for the epoch of the tranche's most recently
|
|
435
|
+
* APPLIED interest (older than the last cycle for a pool that has not
|
|
436
|
+
* cleared since; no entry, and a figure of 0, when the lender held
|
|
437
|
+
* nothing at that epoch).
|
|
438
|
+
*
|
|
439
|
+
* Sum entries with `aggregateYieldHistory` (all strategies, or one with
|
|
440
|
+
* `{ poolId }`). Only epochs in which the lender held shares appear — a
|
|
441
|
+
* new lender gets `[]`. Pools in `UNUSED_LENDING_POOL_IDS` are left out,
|
|
442
|
+
* as in `lendingPortfolioQuery`; Directus enablement is NOT applied.
|
|
443
|
+
*
|
|
444
|
+
* Cost: three parallel `SystemVariables` reads and the positions query in
|
|
445
|
+
* one round, then one subgraph request per page of the longest series
|
|
446
|
+
* (1000 rows a page) — normally two subgraph round trips in all, never one
|
|
447
|
+
* per epoch.
|
|
448
|
+
*
|
|
449
|
+
* On a LITE deployment, a subgraph that lacks the entities (a validation
|
|
450
|
+
* error naming them) yields `[]`; on a full deployment that error throws,
|
|
451
|
+
* like every other failure (`isEmptyHistoryError`).
|
|
452
|
+
*
|
|
453
|
+
* @throws RangeError on a malformed `fromEpoch` / `count`, before any
|
|
454
|
+
* network read.
|
|
455
|
+
*/
|
|
456
|
+
getYieldHistory(userAddress_1) {
|
|
457
|
+
return __awaiter(this, arguments, void 0, function* (userAddress, options = {}) {
|
|
458
|
+
validateYieldHistoryOptions(options);
|
|
459
|
+
try {
|
|
460
|
+
const [currentEpoch, epochZeroStart, epochDuration, positions] = yield Promise.all([
|
|
461
|
+
this._systemVariablesAbi.currentEpochNumber(),
|
|
462
|
+
this._systemVariablesAbi.epochStartTimestamp(0),
|
|
463
|
+
this._systemVariablesAbi.epochDuration(),
|
|
464
|
+
this._graph.request(yieldHistoryPositionsQuery, {
|
|
465
|
+
userAddress: userAddress.toLowerCase(),
|
|
466
|
+
unusedPools: this._kasuConfig.UNUSED_LENDING_POOL_IDS,
|
|
467
|
+
first: YIELD_HISTORY_PAGE_SIZE,
|
|
468
|
+
}),
|
|
469
|
+
]);
|
|
470
|
+
const window = resolveYieldHistoryWindow(options, currentEpoch.toNumber());
|
|
471
|
+
if (!window || !positions.user)
|
|
472
|
+
return [];
|
|
473
|
+
const userTranches = [];
|
|
474
|
+
const tranches = new Set();
|
|
475
|
+
const locks = [];
|
|
476
|
+
for (const pool of positions.user.lendingPoolUserDetails) {
|
|
477
|
+
for (const position of pool.lendingPoolTrancheUserDetails) {
|
|
478
|
+
userTranches.push(position.id);
|
|
479
|
+
tranches.add(position.tranche.id);
|
|
480
|
+
for (const lock of position.userLendingPoolTrancheFixedTermDepositLocks) {
|
|
481
|
+
locks.push(lock.id);
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
if (userTranches.length === 0)
|
|
486
|
+
return [];
|
|
487
|
+
const { rows } = yield fetchYieldHistorySeries((variables) => this._graph.request(yieldHistoryPageQuery, variables), { tranches: [...tranches], userTranches, locks }, window);
|
|
488
|
+
return buildYieldHistory(Object.assign({ positions }, rows), window, {
|
|
489
|
+
epochZeroStart: epochZeroStart.toNumber(),
|
|
490
|
+
epochDuration: epochDuration.toNumber(),
|
|
491
|
+
});
|
|
492
|
+
}
|
|
493
|
+
catch (error) {
|
|
494
|
+
if (isEmptyHistoryError(error, this._isLiteDeployment))
|
|
495
|
+
return [];
|
|
496
|
+
throw error;
|
|
497
|
+
}
|
|
498
|
+
});
|
|
499
|
+
}
|
|
500
|
+
/**
|
|
501
|
+
* A money figure as a plain decimal string. Below a millionth of a token
|
|
502
|
+
* (the stable asset's own precision) is float noise, never money, so it
|
|
503
|
+
* is `'0'` — not `'1e-7'`, which `parseUnits` rejects, nor `'-3e-12'`. A
|
|
504
|
+
* small negative remainder (above −0.0001) is `'0'` as well.
|
|
505
|
+
*/
|
|
428
506
|
precisionToString(val) {
|
|
507
|
+
if (Math.abs(val) < 1e-6)
|
|
508
|
+
return '0';
|
|
429
509
|
if (val < 0 && val > -0.0001) {
|
|
430
510
|
return '0';
|
|
431
511
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portfolio.js","sourceRoot":"","sources":["../../../src/services/Portfolio/portfolio.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"portfolio.js","sourceRoot":"","sources":["../../../src/services/Portfolio/portfolio.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,9 +65,11 @@ export const lendingPortfolioQuery = gql `
|
|
|
65
65
|
$epochId: BigInt!
|
|
66
66
|
$lastEpochId: BigInt!
|
|
67
67
|
$unusedPools: [String!]!
|
|
68
|
+
$first: Int!
|
|
68
69
|
) {
|
|
69
70
|
user(id: $userAddress) {
|
|
70
71
|
lendingPoolUserDetails(
|
|
72
|
+
first: $first
|
|
71
73
|
where: { lendingPool_not_in: $unusedPools }
|
|
72
74
|
) {
|
|
73
75
|
id
|
|
@@ -75,11 +77,11 @@ export const lendingPortfolioQuery = gql `
|
|
|
75
77
|
id
|
|
76
78
|
name
|
|
77
79
|
balance
|
|
78
|
-
tranches {
|
|
80
|
+
tranches(first: $first) {
|
|
79
81
|
shares
|
|
80
82
|
}
|
|
81
83
|
}
|
|
82
|
-
lendingPoolTrancheUserDetails {
|
|
84
|
+
lendingPoolTrancheUserDetails(first: $first) {
|
|
83
85
|
shares
|
|
84
86
|
lendingPoolTrancheUserEpochSharesUpdates(
|
|
85
87
|
orderDirection: desc
|
|
@@ -89,7 +91,7 @@ export const lendingPortfolioQuery = gql `
|
|
|
89
91
|
) {
|
|
90
92
|
shares
|
|
91
93
|
}
|
|
92
|
-
userLendingPoolTrancheFixedTermDepositLocks {
|
|
94
|
+
userLendingPoolTrancheFixedTermDepositLocks(first: $first) {
|
|
93
95
|
isLocked
|
|
94
96
|
unlockAmount
|
|
95
97
|
initialAmount
|
|
@@ -113,6 +115,14 @@ export const lendingPortfolioQuery = gql `
|
|
|
113
115
|
) {
|
|
114
116
|
shares
|
|
115
117
|
}
|
|
118
|
+
lockSharesAtLastEpoch: userLendingPoolTrancheFixedTermDepositLockShareUpdate(
|
|
119
|
+
orderBy: shareUpdatesIndex
|
|
120
|
+
orderDirection: desc
|
|
121
|
+
first: 1
|
|
122
|
+
where: { epochId_lt: $epochId }
|
|
123
|
+
) {
|
|
124
|
+
shares
|
|
125
|
+
}
|
|
116
126
|
}
|
|
117
127
|
tranche {
|
|
118
128
|
id
|
|
@@ -139,6 +149,7 @@ export const lendingPortfolioQuery = gql `
|
|
|
139
149
|
}
|
|
140
150
|
}
|
|
141
151
|
userRequests(
|
|
152
|
+
first: $first
|
|
142
153
|
where: {
|
|
143
154
|
user: $userAddress
|
|
144
155
|
userRequestEvents_: {
|
|
@@ -154,6 +165,7 @@ export const lendingPortfolioQuery = gql `
|
|
|
154
165
|
}
|
|
155
166
|
fixedTermConfigId
|
|
156
167
|
userRequestEvents(
|
|
168
|
+
first: $first
|
|
157
169
|
where: { type_in: [DepositInitiated, DepositIncreased] }
|
|
158
170
|
) {
|
|
159
171
|
id
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../src/services/Portfolio/queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAEtC,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2DhC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../src/services/Portfolio/queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAEtC,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2DhC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkHvC,CAAC"}
|
|
@@ -104,6 +104,14 @@ export interface UserLendingPoolTrancheFixedTermDepositLock {
|
|
|
104
104
|
userLendingPoolTrancheFixedTermDepositLockShareUpdate: {
|
|
105
105
|
shares: string;
|
|
106
106
|
}[] | undefined;
|
|
107
|
+
/**
|
|
108
|
+
* The lock's shares as of the last settled epoch (`epochId < currentEpoch`),
|
|
109
|
+
* the `sharesAtEpoch` of `epochTrancheYield`. Present in
|
|
110
|
+
* `lendingPortfolioQuery` responses only.
|
|
111
|
+
*/
|
|
112
|
+
lockSharesAtLastEpoch?: {
|
|
113
|
+
shares: string;
|
|
114
|
+
}[] | undefined;
|
|
107
115
|
}
|
|
108
116
|
export interface LastEpochQueryResult {
|
|
109
117
|
user: {
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { YieldHistoryEntry } from '../../domain/yield-history';
|
|
2
|
+
/**
|
|
3
|
+
* Which settled epochs a history covers. Epochs are counted in the chain's
|
|
4
|
+
* numbering (`SystemVariables.currentEpochNumber`). Only SETTLED epochs exist
|
|
5
|
+
* in a history — the newest is `currentEpoch − 1`.
|
|
6
|
+
*
|
|
7
|
+
* - neither field: every settled epoch;
|
|
8
|
+
* - `count` only: the newest `count` settled epochs;
|
|
9
|
+
* - `fromEpoch` only: `fromEpoch` up to the newest settled epoch;
|
|
10
|
+
* - both: `count` epochs starting at `fromEpoch`, capped at the newest settled.
|
|
11
|
+
*/
|
|
12
|
+
export interface YieldHistoryOptions {
|
|
13
|
+
/** First epoch included. A non-negative integer. */
|
|
14
|
+
fromEpoch?: number;
|
|
15
|
+
/** How many epochs. A positive integer. */
|
|
16
|
+
count?: number;
|
|
17
|
+
}
|
|
18
|
+
/** The resolved, inclusive epoch range; `null` when it holds no settled epoch. */
|
|
19
|
+
export interface YieldHistoryWindow {
|
|
20
|
+
fromEpoch: number;
|
|
21
|
+
toEpoch: number;
|
|
22
|
+
}
|
|
23
|
+
/** The subgraph returns at most this many rows per collection per request. */
|
|
24
|
+
export declare const YIELD_HISTORY_PAGE_SIZE = 1000;
|
|
25
|
+
/**
|
|
26
|
+
* A runaway guard, not a working limit: a collection this many pages long
|
|
27
|
+
* (`MAX × PAGE_SIZE` rows for one lender) is a broken response, not a history.
|
|
28
|
+
*/
|
|
29
|
+
export declare const YIELD_HISTORY_MAX_PAGES = 100;
|
|
30
|
+
/**
|
|
31
|
+
* Throws `RangeError` on a malformed `fromEpoch` / `count`. `getYieldHistory`
|
|
32
|
+
* calls it BEFORE any network read.
|
|
33
|
+
*/
|
|
34
|
+
export declare function validateYieldHistoryOptions(options: YieldHistoryOptions): void;
|
|
35
|
+
export declare function resolveYieldHistoryWindow(options: YieldHistoryOptions, currentEpoch: number): YieldHistoryWindow | null;
|
|
36
|
+
/**
|
|
37
|
+
* Round trip 1: the lender's tranche positions and fixed-term locks. Same
|
|
38
|
+
* pool exclusion and the same nested-list size (`$first`) as
|
|
39
|
+
* `lendingPortfolioQuery`, so both read the same lock set.
|
|
40
|
+
*/
|
|
41
|
+
export declare const yieldHistoryPositionsQuery: string;
|
|
42
|
+
/**
|
|
43
|
+
* Round trip 2 onwards: the four per-epoch series, one page of each per
|
|
44
|
+
* request, cursor-paginated by `id`. A series that is exhausted is skipped with
|
|
45
|
+
* `@include`, so a history costs as many requests as its LONGEST series has
|
|
46
|
+
* pages — normally one — never one per epoch.
|
|
47
|
+
*
|
|
48
|
+
* Share snapshots are read up to the window's end with no lower bound: the
|
|
49
|
+
* value AS OF the first epoch may come from an update long before it.
|
|
50
|
+
*/
|
|
51
|
+
export declare const yieldHistoryPageQuery: string;
|
|
52
|
+
export interface YieldHistoryPositionsResult {
|
|
53
|
+
user: {
|
|
54
|
+
lendingPoolUserDetails: {
|
|
55
|
+
lendingPool: {
|
|
56
|
+
id: string;
|
|
57
|
+
};
|
|
58
|
+
lendingPoolTrancheUserDetails: {
|
|
59
|
+
id: string;
|
|
60
|
+
tranche: {
|
|
61
|
+
id: string;
|
|
62
|
+
balance: string;
|
|
63
|
+
shares: string;
|
|
64
|
+
};
|
|
65
|
+
userLendingPoolTrancheFixedTermDepositLocks: {
|
|
66
|
+
id: string;
|
|
67
|
+
epochLockStart: string;
|
|
68
|
+
epochLockEnd: string;
|
|
69
|
+
initialTrancheShares: string;
|
|
70
|
+
}[];
|
|
71
|
+
}[];
|
|
72
|
+
}[];
|
|
73
|
+
} | null;
|
|
74
|
+
}
|
|
75
|
+
/** One share snapshot: the value from `epochId` on, until the next one. */
|
|
76
|
+
export interface ShareUpdateRow {
|
|
77
|
+
id: string;
|
|
78
|
+
epochId: string;
|
|
79
|
+
shareUpdatesIndex: number;
|
|
80
|
+
shares: string;
|
|
81
|
+
}
|
|
82
|
+
export interface InterestRow {
|
|
83
|
+
id: string;
|
|
84
|
+
epochId: string;
|
|
85
|
+
epochInterestAmount: string;
|
|
86
|
+
lendingPoolTranche: {
|
|
87
|
+
id: string;
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
export interface YieldHistoryPageResult {
|
|
91
|
+
interest?: InterestRow[];
|
|
92
|
+
trancheShares?: (ShareUpdateRow & {
|
|
93
|
+
lendingPoolTranche: {
|
|
94
|
+
id: string;
|
|
95
|
+
};
|
|
96
|
+
})[];
|
|
97
|
+
userShares?: (ShareUpdateRow & {
|
|
98
|
+
lendingPoolTrancheUserDetails: {
|
|
99
|
+
id: string;
|
|
100
|
+
};
|
|
101
|
+
})[];
|
|
102
|
+
lockShares?: (ShareUpdateRow & {
|
|
103
|
+
userLendingPoolTrancheFixedTermDepositLock: {
|
|
104
|
+
id: string;
|
|
105
|
+
};
|
|
106
|
+
})[];
|
|
107
|
+
}
|
|
108
|
+
/** Everything `buildYieldHistory` reads, keyed by the subgraph's entity ids. */
|
|
109
|
+
export interface YieldHistoryRead {
|
|
110
|
+
positions: YieldHistoryPositionsResult;
|
|
111
|
+
interest: InterestRow[];
|
|
112
|
+
trancheShares: (ShareUpdateRow & {
|
|
113
|
+
lendingPoolTranche: {
|
|
114
|
+
id: string;
|
|
115
|
+
};
|
|
116
|
+
})[];
|
|
117
|
+
userShares: (ShareUpdateRow & {
|
|
118
|
+
lendingPoolTrancheUserDetails: {
|
|
119
|
+
id: string;
|
|
120
|
+
};
|
|
121
|
+
})[];
|
|
122
|
+
lockShares: (ShareUpdateRow & {
|
|
123
|
+
userLendingPoolTrancheFixedTermDepositLock: {
|
|
124
|
+
id: string;
|
|
125
|
+
};
|
|
126
|
+
})[];
|
|
127
|
+
}
|
|
128
|
+
/** The chain's epoch clock: epoch E ends at `epochZeroStart + (E + 1) × duration`. */
|
|
129
|
+
export interface EpochClock {
|
|
130
|
+
epochZeroStart: number;
|
|
131
|
+
epochDuration: number;
|
|
132
|
+
}
|
|
133
|
+
type PageRequest = (variables: Record<string, unknown>) => Promise<YieldHistoryPageResult>;
|
|
134
|
+
/**
|
|
135
|
+
* Fetch the four series for the window, paginating each by `id` until a short
|
|
136
|
+
* page. Returns the rows and how many requests it took.
|
|
137
|
+
*/
|
|
138
|
+
export declare function fetchYieldHistorySeries(request: PageRequest, ids: {
|
|
139
|
+
tranches: string[];
|
|
140
|
+
userTranches: string[];
|
|
141
|
+
locks: string[];
|
|
142
|
+
}, window: YieldHistoryWindow): Promise<{
|
|
143
|
+
rows: Omit<YieldHistoryRead, 'positions'>;
|
|
144
|
+
requests: number;
|
|
145
|
+
}>;
|
|
146
|
+
/**
|
|
147
|
+
* The snapshot in force at `epoch`: among updates with `epochId ≤ epoch`, the
|
|
148
|
+
* one with the highest `shareUpdatesIndex` — exactly what
|
|
149
|
+
* `lendingPortfolioQuery` selects with `orderBy: shareUpdatesIndex, desc,
|
|
150
|
+
* first: 1, where: { epochId_lt: epoch + 1 }`. `undefined` when none.
|
|
151
|
+
*/
|
|
152
|
+
export declare function sharesAsOf(updates: readonly ShareUpdateRow[], epoch: number): ShareUpdateRow | undefined;
|
|
153
|
+
/**
|
|
154
|
+
* Pure: the fetched series → one entry per pool, tranche and settled epoch in
|
|
155
|
+
* which the lender held shares (or a lock earned a top-up). Each entry runs the
|
|
156
|
+
* same `epochTrancheYield` as the portfolio's last-epoch figure, with the same
|
|
157
|
+
* share selection, so the newest entry equals that figure.
|
|
158
|
+
*
|
|
159
|
+
* Sorted by `epochId`, then `poolId`, then `trancheId`.
|
|
160
|
+
*/
|
|
161
|
+
export declare function buildYieldHistory(read: YieldHistoryRead, window: YieldHistoryWindow, clock: EpochClock): YieldHistoryEntry[];
|
|
162
|
+
/**
|
|
163
|
+
* A GraphQL VALIDATION error naming an entity, field or argument this
|
|
164
|
+
* deployment's subgraph does not have. A network error, a timeout or an
|
|
165
|
+
* indexing error is not one.
|
|
166
|
+
*/
|
|
167
|
+
export declare function isMissingEntityError(error: unknown): boolean;
|
|
168
|
+
/**
|
|
169
|
+
* The only failure `getYieldHistory` turns into `[]`: a missing-schema error
|
|
170
|
+
* on a LITE deployment, whose subgraph may predate the entities. On a full
|
|
171
|
+
* deployment the entities are part of the schema, so the same error means a
|
|
172
|
+
* broken query or subgraph and THROWS — an empty chart there would hide it.
|
|
173
|
+
* Everything else (network, timeout, indexing) throws on every deployment, so
|
|
174
|
+
* a consumer can tell "no history here" from "history unavailable".
|
|
175
|
+
*/
|
|
176
|
+
export declare function isEmptyHistoryError(error: unknown, liteDeployment: boolean): boolean;
|
|
177
|
+
export {};
|