@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.
Files changed (42) hide show
  1. package/README.md +17 -1
  2. package/dist/bundle.cjs.js +1144 -221
  3. package/dist/bundle.esm.js +1141 -222
  4. package/dist/domain/index.d.ts +2 -2
  5. package/dist/domain/index.js +1 -1
  6. package/dist/domain/index.js.map +1 -1
  7. package/dist/domain/yield-history.d.ts +25 -1
  8. package/dist/domain/yield-history.js +41 -11
  9. package/dist/domain/yield-history.js.map +1 -1
  10. package/dist/domain/yields.d.ts +200 -15
  11. package/dist/domain/yields.js +211 -14
  12. package/dist/domain/yields.js.map +1 -1
  13. package/dist/services/Locking/locking.d.ts +12 -0
  14. package/dist/services/Locking/locking.js +16 -0
  15. package/dist/services/Locking/locking.js.map +1 -1
  16. package/dist/services/Portfolio/portfolio.d.ts +54 -1
  17. package/dist/services/Portfolio/portfolio.js +357 -80
  18. package/dist/services/Portfolio/portfolio.js.map +1 -1
  19. package/dist/services/Portfolio/queries.d.ts +16 -0
  20. package/dist/services/Portfolio/queries.js +119 -2
  21. package/dist/services/Portfolio/queries.js.map +1 -1
  22. package/dist/services/Portfolio/types.d.ts +94 -6
  23. package/dist/services/Portfolio/yield-history.d.ts +148 -10
  24. package/dist/services/Portfolio/yield-history.js +241 -31
  25. package/dist/services/Portfolio/yield-history.js.map +1 -1
  26. package/dist/services/UserLending/user-lending.d.ts +16 -0
  27. package/dist/services/UserLending/user-lending.js +24 -0
  28. package/dist/services/UserLending/user-lending.js.map +1 -1
  29. package/dist/services/shared.d.ts +7 -0
  30. package/dist/services/shared.js +48 -0
  31. package/dist/services/shared.js.map +1 -1
  32. package/package.json +1 -1
  33. package/src/domain/index.ts +5 -1
  34. package/src/domain/yield-history.ts +47 -11
  35. package/src/domain/yields.ts +257 -15
  36. package/src/services/Locking/locking.ts +17 -0
  37. package/src/services/Portfolio/portfolio.ts +559 -126
  38. package/src/services/Portfolio/queries.ts +119 -2
  39. package/src/services/Portfolio/types.ts +91 -6
  40. package/src/services/Portfolio/yield-history.ts +405 -56
  41. package/src/services/UserLending/user-lending.ts +46 -0
  42. package/src/services/shared.ts +48 -0
@@ -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 cycle close — the moving part
75
- * of lifetime interest (lifetime = settled on chain + this).
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
- * **Per pool, because pools clear independently.** One shared anchor accrues
82
- * a stale pool's share from a close it never had, and when another pool
83
- * clears it drops the total by the stale pool's whole weekly share. Anchored
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 is load-bearing.** Clearings are not exactly weekly,
88
- * and `weeklyInterest` is per EPOCH, so extrapolating past seven days would
89
- * promise interest the close will not credit; a late clearing under-reports
90
- * instead. The low clamp makes a close ahead of the local clock zero, never
91
- * negative.
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. Callers fail closed upstream by not offering an accrual for a pool
95
- * whose weekly interest or anchor is unknown.
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":"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"}
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