@kasufinance/kasu-sdk 2.15.0 → 2.17.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 +17 -1
- package/dist/bundle.cjs.js +1144 -221
- package/dist/bundle.esm.js +1141 -222
- package/dist/domain/index.d.ts +2 -2
- package/dist/domain/index.js +1 -1
- package/dist/domain/index.js.map +1 -1
- package/dist/domain/yield-history.d.ts +25 -1
- package/dist/domain/yield-history.js +41 -11
- package/dist/domain/yield-history.js.map +1 -1
- package/dist/domain/yields.d.ts +200 -15
- package/dist/domain/yields.js +211 -14
- package/dist/domain/yields.js.map +1 -1
- package/dist/services/Locking/locking.d.ts +12 -0
- package/dist/services/Locking/locking.js +16 -0
- package/dist/services/Locking/locking.js.map +1 -1
- package/dist/services/Portfolio/portfolio.d.ts +54 -1
- package/dist/services/Portfolio/portfolio.js +357 -80
- package/dist/services/Portfolio/portfolio.js.map +1 -1
- package/dist/services/Portfolio/queries.d.ts +16 -0
- package/dist/services/Portfolio/queries.js +119 -2
- package/dist/services/Portfolio/queries.js.map +1 -1
- package/dist/services/Portfolio/types.d.ts +94 -6
- package/dist/services/Portfolio/yield-history.d.ts +148 -10
- package/dist/services/Portfolio/yield-history.js +241 -31
- package/dist/services/Portfolio/yield-history.js.map +1 -1
- package/dist/services/UserLending/user-lending.d.ts +16 -0
- package/dist/services/UserLending/user-lending.js +24 -0
- package/dist/services/UserLending/user-lending.js.map +1 -1
- package/dist/services/shared.d.ts +7 -0
- package/dist/services/shared.js +48 -0
- package/dist/services/shared.js.map +1 -1
- package/package.json +1 -1
- package/src/domain/index.ts +5 -1
- package/src/domain/yield-history.ts +47 -11
- package/src/domain/yields.ts +257 -15
- package/src/services/Locking/locking.ts +17 -0
- package/src/services/Portfolio/portfolio.ts +559 -126
- package/src/services/Portfolio/queries.ts +119 -2
- package/src/services/Portfolio/types.ts +91 -6
- package/src/services/Portfolio/yield-history.ts +405 -56
- package/src/services/UserLending/user-lending.ts +46 -0
- package/src/services/shared.ts +48 -0
package/dist/domain/yields.js
CHANGED
|
@@ -18,6 +18,16 @@
|
|
|
18
18
|
* window, and the accrual spreads an epoch's interest across it.
|
|
19
19
|
*/
|
|
20
20
|
export const SECONDS_PER_WEEK = 604800;
|
|
21
|
+
/**
|
|
22
|
+
* The most unpaid interest {@link accruedInterestSince} shows for one pool:
|
|
23
|
+
* this many epochs of its weekly figure (owner ruling 2026-11-07).
|
|
24
|
+
*
|
|
25
|
+
* A pool can stop being cleared without being flagged stopped. On Base, one
|
|
26
|
+
* pool is more than six epochs behind and another more than a hundred.
|
|
27
|
+
* Uncapped, the figure would show interest that may never be credited. Four
|
|
28
|
+
* epochs covers any ordinary late clearing.
|
|
29
|
+
*/
|
|
30
|
+
export const MAX_ACCRUAL_EPOCHS = 4;
|
|
21
31
|
function isUsableFeePercent(feePercent) {
|
|
22
32
|
return (feePercent !== null &&
|
|
23
33
|
Number.isFinite(feePercent) &&
|
|
@@ -71,28 +81,40 @@ export function dailyInterest(weekly) {
|
|
|
71
81
|
return weekly / 7;
|
|
72
82
|
}
|
|
73
83
|
/**
|
|
74
|
-
* Interest accrued since each pool's OWN last
|
|
75
|
-
*
|
|
84
|
+
* Interest accrued since each pool's OWN last clearing transaction, capped at
|
|
85
|
+
* one epoch per pool.
|
|
76
86
|
*
|
|
77
87
|
* ```
|
|
78
88
|
* accrued = Σ_pool weekly_pool × clamp(now − clearing_pool, 0, 604 800) / 604 800
|
|
79
89
|
* ```
|
|
80
90
|
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
* per pool, the total is monotonic across any single pool's clearing: that
|
|
85
|
-
* pool swaps its accrued share for a capitalised one, and no other term moves.
|
|
91
|
+
* Per pool, because pools clear independently: one shared anchor accrues a
|
|
92
|
+
* stale pool's share from a close it never had, and when another pool clears
|
|
93
|
+
* it drops the total by the stale pool's whole weekly share.
|
|
86
94
|
*
|
|
87
|
-
* **The one-epoch cap
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
95
|
+
* **The one-epoch cap rested on a wrong premise.** It assumed a late
|
|
96
|
+
* clearing credits only one epoch, so accruing past seven days would promise
|
|
97
|
+
* interest no close pays. The contracts say otherwise. `ClearingCoordinator`
|
|
98
|
+
* states that clearing "must be executed once per epoch for each lending
|
|
99
|
+
* pool" and that "clearing epochs must be executed in order"; `doClearing`
|
|
100
|
+
* reverts unless the target epoch is the pool's `nextLendingPoolClearingEpoch`,
|
|
101
|
+
* and it calls `LendingPool.applyInterests(targetEpoch)` on every clearing,
|
|
102
|
+
* late or not ("if clearing for the epoch is executed only after the clearing
|
|
103
|
+
* period, only yield will be applied"). Every missed epoch's interest is
|
|
104
|
+
* therefore credited when the clearings catch up — on Base, one pool cleared
|
|
105
|
+
* epochs 116 to 119 in the same block, four weeks credited at once.
|
|
106
|
+
* Capped, the figure freezes as soon as a clearing is a week late; anchored
|
|
107
|
+
* on the transaction, it also DIPS on a catch-up (elapsed resets to zero
|
|
108
|
+
* while only one week is credited per clearing).
|
|
92
109
|
*
|
|
110
|
+
* The low clamp makes a close ahead of the local clock zero, never negative.
|
|
93
111
|
* A non-finite term contributes nothing; a non-finite `nowSeconds` accrues
|
|
94
|
-
* nothing.
|
|
95
|
-
*
|
|
112
|
+
* nothing.
|
|
113
|
+
*
|
|
114
|
+
* @deprecated Use {@link accruedInterestSince} with {@link epochAccrual}:
|
|
115
|
+
* identical while clearings run on time, and it keeps accruing, up to four
|
|
116
|
+
* epochs, when they run late. Kept, behaviour-identical, for existing
|
|
117
|
+
* callers.
|
|
96
118
|
*/
|
|
97
119
|
export function accruedInterest(accruals, nowSeconds) {
|
|
98
120
|
if (!Number.isFinite(nowSeconds))
|
|
@@ -107,6 +129,181 @@ export function accruedInterest(accruals, nowSeconds) {
|
|
|
107
129
|
}
|
|
108
130
|
return accrued;
|
|
109
131
|
}
|
|
132
|
+
/**
|
|
133
|
+
* Unix SECONDS at which `epoch` ENDS — the start of the next one:
|
|
134
|
+
*
|
|
135
|
+
* ```
|
|
136
|
+
* epochEnd(e) = initialEpochStart + (e + 1) × 604 800
|
|
137
|
+
* ```
|
|
138
|
+
*
|
|
139
|
+
* `SystemVariables.epochStartTimestamp(e)` is `initial + e × EPOCH_DURATION`,
|
|
140
|
+
* and the initial start is written once, at initialisation, so the end of any
|
|
141
|
+
* epoch follows from `epochStartTimestamp(0)` with no further read.
|
|
142
|
+
*
|
|
143
|
+
* FAILS CLOSED with `NaN`: a non-integer, non-finite or negative epoch, an
|
|
144
|
+
* initial start that is not a positive integer, or a result past
|
|
145
|
+
* `Number.MAX_SAFE_INTEGER`.
|
|
146
|
+
*
|
|
147
|
+
* @param initialEpochStart unix seconds, `epochStartTimestamp(0)`.
|
|
148
|
+
* @param epoch the epoch number, 0-based.
|
|
149
|
+
*/
|
|
150
|
+
export function epochEndTimestamp(initialEpochStart, epoch) {
|
|
151
|
+
if (!Number.isSafeInteger(initialEpochStart) || initialEpochStart <= 0) {
|
|
152
|
+
return NaN;
|
|
153
|
+
}
|
|
154
|
+
if (!Number.isSafeInteger(epoch) || epoch < 0)
|
|
155
|
+
return NaN;
|
|
156
|
+
const end = initialEpochStart + (epoch + 1) * SECONDS_PER_WEEK;
|
|
157
|
+
return Number.isSafeInteger(end) ? end : NaN;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Builds one pool's {@link EpochAccrual} from what the chain and the subgraph
|
|
161
|
+
* say about its last clearing:
|
|
162
|
+
*
|
|
163
|
+
* ```
|
|
164
|
+
* epochEnd = epochEndTimestamp(initialEpochStart, lastClearedEpoch)
|
|
165
|
+
* accruesFrom = min(clearingStartedAt, epochEnd)
|
|
166
|
+
* ```
|
|
167
|
+
*
|
|
168
|
+
* - **On time** (the clearing started inside its window, before its epoch
|
|
169
|
+
* ended): `accruesFrom` is the clearing's start. Clearing applies the
|
|
170
|
+
* epoch's interest first and only then accepts requests, so today's
|
|
171
|
+
* balance — which includes a deposit that clearing accepted — is never
|
|
172
|
+
* charged for time before it: a new lender starts at exactly 0.
|
|
173
|
+
* - **Late** (it started at or after its epoch end): `accruesFrom` is the
|
|
174
|
+
* epoch end. A late clearing accepts no requests and credits exactly one
|
|
175
|
+
* epoch, so the time it did not credit is kept.
|
|
176
|
+
*
|
|
177
|
+
* `lastClearedEpoch` is the newest epoch whose clearing has STARTED (the
|
|
178
|
+
* subgraph has a `LendingPoolClearing` for it), not the newest that has
|
|
179
|
+
* finished, and `clearingStartedAt` is that clearing's `startTimestamp`.
|
|
180
|
+
* `ClearingCoordinator.doClearing` mints the epoch's interest in its FIRST
|
|
181
|
+
* transaction (`applyInterests`), while `nextLendingPoolClearingEpoch` only
|
|
182
|
+
* advances when the clearing ENDS, so it is the wrong source.
|
|
183
|
+
*
|
|
184
|
+
* FAILS CLOSED with `null`: whatever {@link epochEndTimestamp} rejects, a
|
|
185
|
+
* `clearingStartedAt` that is not a finite positive number, or a
|
|
186
|
+
* `weeklyInterest` that is not finite or is negative. The caller then offers
|
|
187
|
+
* no term for that pool.
|
|
188
|
+
*
|
|
189
|
+
* @param input.weeklyInterest the pool's net interest for one epoch.
|
|
190
|
+
* @param input.initialEpochStart unix seconds, `epochStartTimestamp(0)`.
|
|
191
|
+
* @param input.lastClearedEpoch the newest epoch whose clearing has started.
|
|
192
|
+
* @param input.clearingStartedAt unix seconds, that clearing's start.
|
|
193
|
+
*/
|
|
194
|
+
export function epochAccrual(input) {
|
|
195
|
+
const { weeklyInterest: weekly, clearingStartedAt } = input;
|
|
196
|
+
if (!Number.isFinite(weekly) || weekly < 0)
|
|
197
|
+
return null;
|
|
198
|
+
if (!Number.isFinite(clearingStartedAt) || clearingStartedAt <= 0) {
|
|
199
|
+
return null;
|
|
200
|
+
}
|
|
201
|
+
const epochEnd = epochEndTimestamp(input.initialEpochStart, input.lastClearedEpoch);
|
|
202
|
+
if (Number.isNaN(epochEnd))
|
|
203
|
+
return null;
|
|
204
|
+
return {
|
|
205
|
+
weeklyInterest: weekly,
|
|
206
|
+
accruesFrom: Math.min(clearingStartedAt, epochEnd),
|
|
207
|
+
epochEnd,
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Interest accrued and not yet credited — the moving part of lifetime
|
|
212
|
+
* interest (lifetime = settled on chain + this). Per term, with
|
|
213
|
+
* `W` = 604 800 s:
|
|
214
|
+
*
|
|
215
|
+
* ```
|
|
216
|
+
* accrued = min( weekly × ( min(max(now − accruesFrom, 0), W)
|
|
217
|
+
* + max(now − (epochEnd + W), 0) ) / W,
|
|
218
|
+
* MAX_ACCRUAL_EPOCHS × weekly )
|
|
219
|
+
* ```
|
|
220
|
+
*
|
|
221
|
+
* Read along the clock, for one pool:
|
|
222
|
+
* 1. from `accruesFrom`, one epoch of interest accrues linearly;
|
|
223
|
+
* 2. it then HOLDS from `accruesFrom + W` until `epochEnd + W`, the end of
|
|
224
|
+
* the next epoch — at most 48 h after an on-time clearing (its clearing
|
|
225
|
+
* window), no time at all after a late one (`accruesFrom == epochEnd`);
|
|
226
|
+
* 3. then it resumes, up to {@link MAX_ACCRUAL_EPOCHS} (4) epochs of
|
|
227
|
+
* `weekly` in all, and stops there.
|
|
228
|
+
*
|
|
229
|
+
* **Why it keeps accruing past one epoch.** Clearing must run once per
|
|
230
|
+
* epoch for each pool, in order (`ClearingCoordinator.doClearing` reverts
|
|
231
|
+
* unless the target epoch is the pool's `nextLendingPoolClearingEpoch`), and
|
|
232
|
+
* every clearing, on time or late, starts with
|
|
233
|
+
* `LendingPool.applyInterests(targetEpoch)`. A missed epoch is therefore
|
|
234
|
+
* credited when the clearings catch up (on Base, one pool cleared epochs 116
|
|
235
|
+
* to 119 in the same block).
|
|
236
|
+
*
|
|
237
|
+
* **Why it stops at four epochs** (owner ruling 2026-11-07). A pool can stop
|
|
238
|
+
* being cleared without being flagged stopped. On Base today one pool is
|
|
239
|
+
* more than six epochs behind and another more than a hundred. Past four
|
|
240
|
+
* epochs the figure would show interest that may never be credited. Four
|
|
241
|
+
* covers any ordinary late clearing.
|
|
242
|
+
*
|
|
243
|
+
* **Why the hold.** Without it an on-time anchor accrues past one epoch
|
|
244
|
+
* while the next on-time clearing — which credits exactly one — is still to
|
|
245
|
+
* come, and the total steps DOWN when it lands. With it, at a constant
|
|
246
|
+
* balance, `settled + accrued` never steps down at a clearing (`t` = the
|
|
247
|
+
* NEW clearing's start, `E` = the end of the epoch it clears):
|
|
248
|
+
* - on time after on time: identical to the deprecated `accruedInterest`
|
|
249
|
+
* at every instant. With `gap` = `t` − the previous clearing's start, it
|
|
250
|
+
* steps UP by `weekly × (W − gap) / W` when `gap < W` (at most 2/7 of one
|
|
251
|
+
* weekly, as before), and not at all when `gap ≥ W`;
|
|
252
|
+
* - late after on time, and late after late: exactly continuous;
|
|
253
|
+
* - on time after late: steps UP by `weekly × (E − t) / W`, at most 2/7 of
|
|
254
|
+
* one weekly.
|
|
255
|
+
* A deposit or top-up accepted at an on-time clearing starts at 0, so it
|
|
256
|
+
* never dips the total either.
|
|
257
|
+
*
|
|
258
|
+
* **At the cap.** All of the above holds for a pool below the cap, where
|
|
259
|
+
* the cap changes nothing. A pool AT the cap shows `4 × weekly` before a
|
|
260
|
+
* catch-up clearing; after it, one more `weekly` is settled and the new term
|
|
261
|
+
* shows `min(elapsed′, 4 × weekly)`, so `after = min(elapsed′ + weekly,
|
|
262
|
+
* 5 × weekly) ≥ before`. Each clearing steps the total UP by at most one
|
|
263
|
+
* weekly until the pool is back under the cap. Never down, and never above
|
|
264
|
+
* settled plus `4 × weekly` per pool.
|
|
265
|
+
*
|
|
266
|
+
* **Never negative**, and non-decreasing in `now`. A term is skipped — it
|
|
267
|
+
* contributes nothing — when `weeklyInterest` is not finite or is negative,
|
|
268
|
+
* when `accruesFrom` or `epochEnd` is not finite, when `accruesFrom >
|
|
269
|
+
* epochEnd` (inconsistent: the anchor is never after the epoch end), or when
|
|
270
|
+
* an elapsed time overflows. A non-finite `nowSeconds` accrues nothing.
|
|
271
|
+
*
|
|
272
|
+
* **Per pool, because pools clear independently.** One shared anchor accrues
|
|
273
|
+
* a stale pool's share from a close it never had.
|
|
274
|
+
*
|
|
275
|
+
* **Accepted approximation.** `weekly` is today's balance at today's epoch
|
|
276
|
+
* rate. Over a multi-week gap the chain compounds weekly and may apply other
|
|
277
|
+
* epochs' rates, so a long accrual reads slightly LOW. It is a ticking
|
|
278
|
+
* estimate, not a ledger.
|
|
279
|
+
*
|
|
280
|
+
* Callers fail closed upstream: no term for a pool whose weekly interest or
|
|
281
|
+
* clearing is unknown (`epochAccrual` returns `null`), and none for a pool
|
|
282
|
+
* that has stopped — it will never clear again.
|
|
283
|
+
*/
|
|
284
|
+
export function accruedInterestSince(accruals, nowSeconds) {
|
|
285
|
+
if (!Number.isFinite(nowSeconds))
|
|
286
|
+
return 0;
|
|
287
|
+
let accrued = 0;
|
|
288
|
+
for (const { weeklyInterest: weekly, accruesFrom, epochEnd } of accruals) {
|
|
289
|
+
if (!Number.isFinite(weekly) || weekly < 0)
|
|
290
|
+
continue;
|
|
291
|
+
if (!Number.isFinite(accruesFrom) || !Number.isFinite(epochEnd)) {
|
|
292
|
+
continue;
|
|
293
|
+
}
|
|
294
|
+
if (accruesFrom > epochEnd)
|
|
295
|
+
continue;
|
|
296
|
+
const sinceAnchor = nowSeconds - accruesFrom;
|
|
297
|
+
const sinceHoldEnd = nowSeconds - (epochEnd + SECONDS_PER_WEEK);
|
|
298
|
+
if (!Number.isFinite(sinceAnchor) || !Number.isFinite(sinceHoldEnd)) {
|
|
299
|
+
continue;
|
|
300
|
+
}
|
|
301
|
+
const elapsed = Math.min(Math.max(sinceAnchor, 0), SECONDS_PER_WEEK) +
|
|
302
|
+
Math.max(sinceHoldEnd, 0);
|
|
303
|
+
accrued += Math.min((weekly * elapsed) / SECONDS_PER_WEEK, MAX_ACCRUAL_EPOCHS * weekly);
|
|
304
|
+
}
|
|
305
|
+
return accrued;
|
|
306
|
+
}
|
|
110
307
|
/**
|
|
111
308
|
* What `amount` earns in a year at a NET rate — the "≈ $Y a year" line.
|
|
112
309
|
* Feed it `netEffectiveApy(...)`, never a gross APY: the result is a lender's
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yields.js","sourceRoot":"","sources":["../../src/domain/yields.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"yields.js","sourceRoot":"","sources":["../../src/domain/yields.ts"],"names":[],"mappings":"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"}
|
|
@@ -72,6 +72,18 @@ export declare class KSULocking {
|
|
|
72
72
|
getAvailableKsuBonus(): Promise<string>;
|
|
73
73
|
getUserKsuBalance(userAddress: string): Promise<string>;
|
|
74
74
|
getNextEpochDate(): Promise<EpochTimeStamp>;
|
|
75
|
+
/**
|
|
76
|
+
* Unix SECONDS at which epoch 0 started:
|
|
77
|
+
* `SystemVariables.epochStartTimestamp(0)`. The contract writes this once,
|
|
78
|
+
* at initialisation, so it never changes for a deployment and may be cached
|
|
79
|
+
* for the life of the app. Every epoch boundary follows from it —
|
|
80
|
+
* `epochEndTimestamp(initial, epoch)` and `epochAccrual` in the domain
|
|
81
|
+
* layer.
|
|
82
|
+
*
|
|
83
|
+
* Available on every deployment, Full and Lite. A failed read rejects; the
|
|
84
|
+
* caller validates the value (a positive integer) before using it.
|
|
85
|
+
*/
|
|
86
|
+
getInitialEpochStartTimestamp(): Promise<number>;
|
|
75
87
|
getNextClearingPeriodDate(): Promise<EpochTimeStamp>;
|
|
76
88
|
getActiveLockPeriods(): Promise<LockPeriod[]>;
|
|
77
89
|
getProjectedApy(): string;
|
|
@@ -415,6 +415,22 @@ export class KSULocking {
|
|
|
415
415
|
return (yield this._systemVariablesAbi.nextEpochStartTimestamp()).toNumber();
|
|
416
416
|
});
|
|
417
417
|
}
|
|
418
|
+
/**
|
|
419
|
+
* Unix SECONDS at which epoch 0 started:
|
|
420
|
+
* `SystemVariables.epochStartTimestamp(0)`. The contract writes this once,
|
|
421
|
+
* at initialisation, so it never changes for a deployment and may be cached
|
|
422
|
+
* for the life of the app. Every epoch boundary follows from it —
|
|
423
|
+
* `epochEndTimestamp(initial, epoch)` and `epochAccrual` in the domain
|
|
424
|
+
* layer.
|
|
425
|
+
*
|
|
426
|
+
* Available on every deployment, Full and Lite. A failed read rejects; the
|
|
427
|
+
* caller validates the value (a positive integer) before using it.
|
|
428
|
+
*/
|
|
429
|
+
getInitialEpochStartTimestamp() {
|
|
430
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
431
|
+
return (yield this._systemVariablesAbi.epochStartTimestamp(0)).toNumber();
|
|
432
|
+
});
|
|
433
|
+
}
|
|
418
434
|
getNextClearingPeriodDate() {
|
|
419
435
|
return __awaiter(this, void 0, void 0, function* () {
|
|
420
436
|
const nextEpochDate = yield this.getNextEpochDate();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locking.js","sourceRoot":"","sources":["../../../src/services/Locking/locking.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"locking.js","sourceRoot":"","sources":["../../../src/services/Locking/locking.ts"],"names":[],"mappings":"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"}
|
|
@@ -77,7 +77,12 @@ export declare class Portfolio {
|
|
|
77
77
|
* Cost: three parallel `SystemVariables` reads and the positions query in
|
|
78
78
|
* one round, then one subgraph request per page of the longest series
|
|
79
79
|
* (1000 rows a page) — normally two subgraph round trips in all, never one
|
|
80
|
-
* per epoch.
|
|
80
|
+
* per epoch — alongside one `LendingPool.userBalance` call per pool at
|
|
81
|
+
* the subgraph's block. A pool whose ledger credits more than the wallet
|
|
82
|
+
* holds at that block (shares moved away outside a withdrawal) is left
|
|
83
|
+
* out; if the node says it cannot serve that block, `latest` is read
|
|
84
|
+
* and nothing is. Any other failure of those reads (a rate limit, a
|
|
85
|
+
* network error) THROWS: the history needs a working RPC.
|
|
81
86
|
*
|
|
82
87
|
* On a LITE deployment, a subgraph that lacks the entities (a validation
|
|
83
88
|
* error naming them) yields `[]`; on a full deployment that error throws,
|
|
@@ -87,6 +92,54 @@ export declare class Portfolio {
|
|
|
87
92
|
* network read.
|
|
88
93
|
*/
|
|
89
94
|
getYieldHistory(userAddress: string, options?: YieldHistoryOptions): Promise<YieldHistoryEntry[]>;
|
|
95
|
+
/**
|
|
96
|
+
* Read the chain at the subgraph's block, so the chain and the ledger
|
|
97
|
+
* describe the same state: after every clearing the subgraph runs a few
|
|
98
|
+
* blocks behind, and a `latest` read would then disagree with an
|
|
99
|
+
* honest ledger (interest moved every balance, deposits were accepted)
|
|
100
|
+
* and book that difference as a ledger fault.
|
|
101
|
+
*
|
|
102
|
+
* Only when the node says it cannot serve that block (pruned, or behind
|
|
103
|
+
* the subgraph: `isBlockUnavailableError`) does it fall back to `latest`,
|
|
104
|
+
* and it says so (`blockTag: undefined`): unpinned figures are never
|
|
105
|
+
* compared with the ledger, and `getPortfolioLendingData` marks the pools
|
|
106
|
+
* `chainPinned: false`. Any other failure — a rate limit, a timeout, a
|
|
107
|
+
* network error — is thrown, never turned into an unpinned read.
|
|
108
|
+
*/
|
|
109
|
+
private readChainAt;
|
|
110
|
+
/**
|
|
111
|
+
* One pool's balances: the ledger's (the subgraph counts a lender's
|
|
112
|
+
* shares as accepted deposits − accepted withdrawals ± top-ups) checked
|
|
113
|
+
* against the chain's `LendingPool.userBalance` at the SAME block.
|
|
114
|
+
*
|
|
115
|
+
* The ledger does not follow shares that move between wallets any other
|
|
116
|
+
* way (an administrative move of a position is the case seen on chain):
|
|
117
|
+
* the receiving wallet goes negative as it withdraws, the sending one
|
|
118
|
+
* keeps shares it no longer holds. Where the two disagree at that block —
|
|
119
|
+
* or any ledger balance is negative — the tranche balances are read from
|
|
120
|
+
* the chain at that block (`userActiveAssets`, one call per tranche), the
|
|
121
|
+
* tranche's ledger `yieldEarned` moves by the same difference, and the
|
|
122
|
+
* pool carries `ledgerMismatch`. Unpinned (the node could not serve the
|
|
123
|
+
* block), only a negative ledger balance is corrected. A pool that agrees
|
|
124
|
+
* — every ordinary lender — costs nothing extra.
|
|
125
|
+
*
|
|
126
|
+
* Lifetime figures stay ledger figures: they cannot tell moved principal
|
|
127
|
+
* from interest.
|
|
128
|
+
*/
|
|
129
|
+
private reconcilePool;
|
|
130
|
+
/**
|
|
131
|
+
* The last-epoch figures of positions whose newest interest is OLDER than
|
|
132
|
+
* the recent window. Pools clear independently, and some clear only when
|
|
133
|
+
* the originator repays, so a pool's last cycle can be weeks back: it is
|
|
134
|
+
* priced at THAT epoch, from a history read of just those positions over
|
|
135
|
+
* just those epochs, through the same `positionEpochYield` — so it equals
|
|
136
|
+
* the history's newest bar.
|
|
137
|
+
*
|
|
138
|
+
* A lender who has since left the tranche (no ledger shares now) gets no
|
|
139
|
+
* figure: an old pool's last cycle is not theirs to show. Costs nothing
|
|
140
|
+
* when no position qualifies.
|
|
141
|
+
*/
|
|
142
|
+
private staleLastEpochYields;
|
|
90
143
|
/**
|
|
91
144
|
* A money figure as a plain decimal string. Below a millionth of a token
|
|
92
145
|
* (the stable asset's own precision) is float noise, never money, so it
|