@kasufinance/kasu-sdk 2.16.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.
@@ -18,6 +18,16 @@
18
18
  * window, and the accrual spreads an epoch's interest across it.
19
19
  */
20
20
  export declare 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 declare const MAX_ACCRUAL_EPOCHS = 4;
21
31
  /** One slice of a position that earns at a single rate. */
22
32
  export interface InterestSlice {
23
33
  /** The lender's current balance in this slice, in stable display units. */
@@ -34,13 +44,41 @@ export interface InterestSlice {
34
44
  */
35
45
  epochRate: number;
36
46
  }
37
- /** One pool's contribution to the current cycle's accrual. */
47
+ /**
48
+ * One pool's contribution to the current cycle's accrual, anchored on its
49
+ * last clearing TRANSACTION.
50
+ *
51
+ * @deprecated Use {@link EpochAccrual} with {@link accruedInterestSince}. A
52
+ * clearing transaction's timestamp is the wrong anchor: see `accruedInterest`.
53
+ */
38
54
  export interface PoolAccrual {
39
55
  /** That pool's projected net interest for one epoch (`weeklyInterest`). */
40
56
  weeklyInterest: number;
41
57
  /** Unix SECONDS at which THAT pool last cleared a cycle. */
42
58
  clearingTimestamp: number;
43
59
  }
60
+ /**
61
+ * One pool's contribution to the unpaid interest — the input of
62
+ * {@link accruedInterestSince}. Build it with {@link epochAccrual}, which
63
+ * validates every field and derives the two timestamps; do not assemble one
64
+ * by hand.
65
+ */
66
+ export interface EpochAccrual {
67
+ /** That pool's projected net interest for one epoch (`weeklyInterest`). */
68
+ weeklyInterest: number;
69
+ /**
70
+ * Unix SECONDS from which the pool's unpaid interest accrues: the earlier
71
+ * of the moment its last clearing STARTED and `epochEnd`. Never after
72
+ * `epochEnd`.
73
+ */
74
+ accruesFrom: number;
75
+ /**
76
+ * Unix SECONDS at which the pool's last cleared epoch ENDS
77
+ * (`epochEndTimestamp(initialEpochStart, lastClearedEpoch)`). The accrual
78
+ * holds from `accruesFrom + 604 800` until `epochEnd + 604 800`.
79
+ */
80
+ epochEnd: number;
81
+ }
44
82
  /**
45
83
  * Interest the slices accrue over ONE epoch, net of the fee.
46
84
  *
@@ -72,30 +110,177 @@ export declare function weeklyInterest(slices: readonly InterestSlice[], feePerc
72
110
  */
73
111
  export declare function dailyInterest(weekly: number | null): number | null;
74
112
  /**
75
- * Interest accrued since each pool's OWN last cycle close — the moving part
76
- * of lifetime interest (lifetime = settled on chain + this).
113
+ * Interest accrued since each pool's OWN last clearing transaction, capped at
114
+ * one epoch per pool.
77
115
  *
78
116
  * ```
79
117
  * accrued = Σ_pool weekly_pool × clamp(now − clearing_pool, 0, 604 800) / 604 800
80
118
  * ```
81
119
  *
82
- * **Per pool, because pools clear independently.** One shared anchor accrues
83
- * a stale pool's share from a close it never had, and when another pool
84
- * clears it drops the total by the stale pool's whole weekly share. Anchored
85
- * per pool, the total is monotonic across any single pool's clearing: that
86
- * pool swaps its accrued share for a capitalised one, and no other term moves.
120
+ * Per pool, because pools clear independently: one shared anchor accrues a
121
+ * stale pool's share from a close it never had, and when another pool clears
122
+ * it drops the total by the stale pool's whole weekly share.
87
123
  *
88
- * **The one-epoch cap is load-bearing.** Clearings are not exactly weekly,
89
- * and `weeklyInterest` is per EPOCH, so extrapolating past seven days would
90
- * promise interest the close will not credit; a late clearing under-reports
91
- * instead. The low clamp makes a close ahead of the local clock zero, never
92
- * negative.
124
+ * **The one-epoch cap rested on a wrong premise.** It assumed a late
125
+ * clearing credits only one epoch, so accruing past seven days would promise
126
+ * interest no close pays. The contracts say otherwise. `ClearingCoordinator`
127
+ * states that clearing "must be executed once per epoch for each lending
128
+ * pool" and that "clearing epochs must be executed in order"; `doClearing`
129
+ * reverts unless the target epoch is the pool's `nextLendingPoolClearingEpoch`,
130
+ * and it calls `LendingPool.applyInterests(targetEpoch)` on every clearing,
131
+ * late or not ("if clearing for the epoch is executed only after the clearing
132
+ * period, only yield will be applied"). Every missed epoch's interest is
133
+ * therefore credited when the clearings catch up — on Base, one pool cleared
134
+ * epochs 116 to 119 in the same block, four weeks credited at once.
135
+ * Capped, the figure freezes as soon as a clearing is a week late; anchored
136
+ * on the transaction, it also DIPS on a catch-up (elapsed resets to zero
137
+ * while only one week is credited per clearing).
93
138
  *
139
+ * The low clamp makes a close ahead of the local clock zero, never negative.
94
140
  * A non-finite term contributes nothing; a non-finite `nowSeconds` accrues
95
- * nothing. Callers fail closed upstream by not offering an accrual for a pool
96
- * whose weekly interest or anchor is unknown.
141
+ * nothing.
142
+ *
143
+ * @deprecated Use {@link accruedInterestSince} with {@link epochAccrual}:
144
+ * identical while clearings run on time, and it keeps accruing, up to four
145
+ * epochs, when they run late. Kept, behaviour-identical, for existing
146
+ * callers.
97
147
  */
98
148
  export declare function accruedInterest(accruals: readonly PoolAccrual[], nowSeconds: number): number;
149
+ /**
150
+ * Unix SECONDS at which `epoch` ENDS — the start of the next one:
151
+ *
152
+ * ```
153
+ * epochEnd(e) = initialEpochStart + (e + 1) × 604 800
154
+ * ```
155
+ *
156
+ * `SystemVariables.epochStartTimestamp(e)` is `initial + e × EPOCH_DURATION`,
157
+ * and the initial start is written once, at initialisation, so the end of any
158
+ * epoch follows from `epochStartTimestamp(0)` with no further read.
159
+ *
160
+ * FAILS CLOSED with `NaN`: a non-integer, non-finite or negative epoch, an
161
+ * initial start that is not a positive integer, or a result past
162
+ * `Number.MAX_SAFE_INTEGER`.
163
+ *
164
+ * @param initialEpochStart unix seconds, `epochStartTimestamp(0)`.
165
+ * @param epoch the epoch number, 0-based.
166
+ */
167
+ export declare function epochEndTimestamp(initialEpochStart: number, epoch: number): number;
168
+ /**
169
+ * Builds one pool's {@link EpochAccrual} from what the chain and the subgraph
170
+ * say about its last clearing:
171
+ *
172
+ * ```
173
+ * epochEnd = epochEndTimestamp(initialEpochStart, lastClearedEpoch)
174
+ * accruesFrom = min(clearingStartedAt, epochEnd)
175
+ * ```
176
+ *
177
+ * - **On time** (the clearing started inside its window, before its epoch
178
+ * ended): `accruesFrom` is the clearing's start. Clearing applies the
179
+ * epoch's interest first and only then accepts requests, so today's
180
+ * balance — which includes a deposit that clearing accepted — is never
181
+ * charged for time before it: a new lender starts at exactly 0.
182
+ * - **Late** (it started at or after its epoch end): `accruesFrom` is the
183
+ * epoch end. A late clearing accepts no requests and credits exactly one
184
+ * epoch, so the time it did not credit is kept.
185
+ *
186
+ * `lastClearedEpoch` is the newest epoch whose clearing has STARTED (the
187
+ * subgraph has a `LendingPoolClearing` for it), not the newest that has
188
+ * finished, and `clearingStartedAt` is that clearing's `startTimestamp`.
189
+ * `ClearingCoordinator.doClearing` mints the epoch's interest in its FIRST
190
+ * transaction (`applyInterests`), while `nextLendingPoolClearingEpoch` only
191
+ * advances when the clearing ENDS, so it is the wrong source.
192
+ *
193
+ * FAILS CLOSED with `null`: whatever {@link epochEndTimestamp} rejects, a
194
+ * `clearingStartedAt` that is not a finite positive number, or a
195
+ * `weeklyInterest` that is not finite or is negative. The caller then offers
196
+ * no term for that pool.
197
+ *
198
+ * @param input.weeklyInterest the pool's net interest for one epoch.
199
+ * @param input.initialEpochStart unix seconds, `epochStartTimestamp(0)`.
200
+ * @param input.lastClearedEpoch the newest epoch whose clearing has started.
201
+ * @param input.clearingStartedAt unix seconds, that clearing's start.
202
+ */
203
+ export declare function epochAccrual(input: {
204
+ weeklyInterest: number;
205
+ initialEpochStart: number;
206
+ lastClearedEpoch: number;
207
+ clearingStartedAt: number;
208
+ }): EpochAccrual | null;
209
+ /**
210
+ * Interest accrued and not yet credited — the moving part of lifetime
211
+ * interest (lifetime = settled on chain + this). Per term, with
212
+ * `W` = 604 800 s:
213
+ *
214
+ * ```
215
+ * accrued = min( weekly × ( min(max(now − accruesFrom, 0), W)
216
+ * + max(now − (epochEnd + W), 0) ) / W,
217
+ * MAX_ACCRUAL_EPOCHS × weekly )
218
+ * ```
219
+ *
220
+ * Read along the clock, for one pool:
221
+ * 1. from `accruesFrom`, one epoch of interest accrues linearly;
222
+ * 2. it then HOLDS from `accruesFrom + W` until `epochEnd + W`, the end of
223
+ * the next epoch — at most 48 h after an on-time clearing (its clearing
224
+ * window), no time at all after a late one (`accruesFrom == epochEnd`);
225
+ * 3. then it resumes, up to {@link MAX_ACCRUAL_EPOCHS} (4) epochs of
226
+ * `weekly` in all, and stops there.
227
+ *
228
+ * **Why it keeps accruing past one epoch.** Clearing must run once per
229
+ * epoch for each pool, in order (`ClearingCoordinator.doClearing` reverts
230
+ * unless the target epoch is the pool's `nextLendingPoolClearingEpoch`), and
231
+ * every clearing, on time or late, starts with
232
+ * `LendingPool.applyInterests(targetEpoch)`. A missed epoch is therefore
233
+ * credited when the clearings catch up (on Base, one pool cleared epochs 116
234
+ * to 119 in the same block).
235
+ *
236
+ * **Why it stops at four epochs** (owner ruling 2026-11-07). A pool can stop
237
+ * being cleared without being flagged stopped. On Base today one pool is
238
+ * more than six epochs behind and another more than a hundred. Past four
239
+ * epochs the figure would show interest that may never be credited. Four
240
+ * covers any ordinary late clearing.
241
+ *
242
+ * **Why the hold.** Without it an on-time anchor accrues past one epoch
243
+ * while the next on-time clearing — which credits exactly one — is still to
244
+ * come, and the total steps DOWN when it lands. With it, at a constant
245
+ * balance, `settled + accrued` never steps down at a clearing (`t` = the
246
+ * NEW clearing's start, `E` = the end of the epoch it clears):
247
+ * - on time after on time: identical to the deprecated `accruedInterest`
248
+ * at every instant. With `gap` = `t` − the previous clearing's start, it
249
+ * steps UP by `weekly × (W − gap) / W` when `gap < W` (at most 2/7 of one
250
+ * weekly, as before), and not at all when `gap ≥ W`;
251
+ * - late after on time, and late after late: exactly continuous;
252
+ * - on time after late: steps UP by `weekly × (E − t) / W`, at most 2/7 of
253
+ * one weekly.
254
+ * A deposit or top-up accepted at an on-time clearing starts at 0, so it
255
+ * never dips the total either.
256
+ *
257
+ * **At the cap.** All of the above holds for a pool below the cap, where
258
+ * the cap changes nothing. A pool AT the cap shows `4 × weekly` before a
259
+ * catch-up clearing; after it, one more `weekly` is settled and the new term
260
+ * shows `min(elapsed′, 4 × weekly)`, so `after = min(elapsed′ + weekly,
261
+ * 5 × weekly) ≥ before`. Each clearing steps the total UP by at most one
262
+ * weekly until the pool is back under the cap. Never down, and never above
263
+ * settled plus `4 × weekly` per pool.
264
+ *
265
+ * **Never negative**, and non-decreasing in `now`. A term is skipped — it
266
+ * contributes nothing — when `weeklyInterest` is not finite or is negative,
267
+ * when `accruesFrom` or `epochEnd` is not finite, when `accruesFrom >
268
+ * epochEnd` (inconsistent: the anchor is never after the epoch end), or when
269
+ * an elapsed time overflows. A non-finite `nowSeconds` accrues nothing.
270
+ *
271
+ * **Per pool, because pools clear independently.** One shared anchor accrues
272
+ * a stale pool's share from a close it never had.
273
+ *
274
+ * **Accepted approximation.** `weekly` is today's balance at today's epoch
275
+ * rate. Over a multi-week gap the chain compounds weekly and may apply other
276
+ * epochs' rates, so a long accrual reads slightly LOW. It is a ticking
277
+ * estimate, not a ledger.
278
+ *
279
+ * Callers fail closed upstream: no term for a pool whose weekly interest or
280
+ * clearing is unknown (`epochAccrual` returns `null`), and none for a pool
281
+ * that has stopped — it will never clear again.
282
+ */
283
+ export declare function accruedInterestSince(accruals: readonly EpochAccrual[], nowSeconds: number): number;
99
284
  /**
100
285
  * What `amount` earns in a year at a NET rate — the "≈ $Y a year" line.
101
286
  * Feed it `netEffectiveApy(...)`, never a gross APY: the result is a lender's
@@ -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":";;;;;;;;;AACA,OAAO,EAAE,SAAS,EAAuB,MAAM,EAAU,MAAM,QAAQ,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAEH,0BAA0B,EAE1B,uBAAuB,EAEvB,qBAAqB,EAErB,4BAA4B,EAE5B,+BAA+B,EAE/B,wBAAwB,GAC3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EACH,gCAAgC,EAChC,mBAAmB,GACtB,MAAM,wBAAwB,CAAC;AAMhC,OAAO,EACH,gBAAgB,EAChB,uBAAuB,EACvB,+BAA+B,EAC/B,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,yBAAyB,GAC5B,MAAM,WAAW,CAAC;AAkBnB,MAAM,OAAO,UAAU;IAYnB,YACY,WAAsB,EAC9B,gBAAmC;QAD3B,gBAAW,GAAX,WAAW,CAAW;QAHjB,eAAU,GAAa,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAMtD,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC,gBAAgB,CAAC;QAEtD,IAAI,CAAC,YAAY,GAAG,uBAAuB,CAAC,OAAO,CAC/C,WAAW,CAAC,SAAS,CAAC,WAAW,EACjC,gBAAgB,CACnB,CAAC;QAEF,sFAAsF;QACtF,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YAC5D,IAAI,CAAC,UAAU,GAAG,0BAA0B,CAAC,OAAO,CAChD,WAAW,CAAC,SAAS,CAAC,QAAQ,EAC9B,gBAAgB,CACnB,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAC3B,CAAC;QAED,IAAI,CAAC,eAAe,GAAG,wBAAwB,CAAC,OAAO,CACnD,WAAW,CAAC,SAAS,CAAC,WAAW,EACjC,gBAAgB,CACnB,CAAC;QACF,IAAI,CAAC,mBAAmB,GAAG,4BAA4B,CAAC,OAAO,CAC3D,WAAW,CAAC,SAAS,CAAC,eAAe,EACrC,gBAAgB,CACnB,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,qBAAqB,CAAC,OAAO,CAC7C,WAAW,CAAC,SAAS,CAAC,QAAQ,EAC9B,gBAAgB,CACnB,CAAC;QACF,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC,SAAS,CAAC,aAAa,CAAC;QAC7D,IAAI,CAAC,MAAM,GAAG,IAAI,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACzD,IAAI,CAAC,sBAAsB,GAAG,+BAA+B,CAAC,OAAO,CACjE,WAAW,CAAC,SAAS,CAAC,kBAAkB,EACxC,gBAAgB,CACnB,CAAC;IACN,CAAC;IAED;;OAEG;IACH,IAAI,gBAAgB;QAChB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IAEK,aAAa,CACf,MAAiB,EACjB,UAAqB;;YAErB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;YACpE,CAAC;YACD,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACtD,CAAC;KAAA;IAEK,iBAAiB,CACnB,MAAc,EACd,UAAkB,EAClB,MAAwB;;YAExB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;YACpE,CAAC;YAED,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACxC,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAEhD,MAAM,SAAS,GAAG;gBACd,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;gBACnC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACzC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC3B,CAAC,EAAE,MAAM,CAAC,CAAC;gBACX,CAAC,EAAE,MAAM,CAAC,CAAC;aACd,CAAC;YAEF,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CACnC,QAAQ,EACR,YAAY,EACZ,SAAS,CACZ,CAAC;QACN,CAAC;KAAA;IAEK,SAAS,CACX,MAAiB,EACjB,UAAqB;;YAErB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;YACpE,CAAC;YACD,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACxD,CAAC;KAAA;IAEK,SAAS;;YACX,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;YACzE,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;QAC/C,CAAC;KAAA;IAEK,WAAW,CAAC,UAAqB;;YACnC,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,OAAO;oBACH,cAAc,EAAE,CAAC;oBACjB,kBAAkB,EAAE,CAAC;oBACrB,QAAQ,EAAE,KAAK;iBAClB,CAAC;YACN,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YAC/D,OAAO;gBACH,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;gBACpC,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;gBACxC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;aACtB,CAAC;QACN,CAAC;KAAA;IAEK,iBAAiB,CAAC,WAAmB;;YACvC,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7B,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAClE,CAAC;KAAA;IAEK,4CAA4C,CAC9C,OAAe,EACf,SAAiB,EACjB,UAAqB;;YAErB,IAAI,IAAI,CAAC,iBAAiB,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;gBAC5C,OAAO,CAAC,CAAC;YACb,CAAC;YAED,MAAM,sBAAsB,GACxB,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;YACrD,MAAM,cAAc,GAAG,sBAAsB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAClE,MAAM,SAAS,GAAG,cAAc,CAAC,eAAe,CAAC;YAEjD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YAEvD,MAAM,WAAW,GACb,CAAC,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC,kBAAkB,CAAC;gBACxD,WAAW,CAAC,cAAc,CAAC;YAC/B,MAAM,kBAAkB,GAAG,SAAS,GAAG,WAAW,CAAC;YAEnD,MAAM,eAAe,GAAoB,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAC9D,uBAAuB,CAC1B,CAAC;YACF,MAAM,cAAc,GAChB,UAAU,CAAC,eAAe,CAAC,eAAe,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC;YACrE,MAAM,YAAY,GACd,UAAU,CAAC,eAAe,CAAC,eAAe,CAAC,gBAAgB,CAAC,GAAG,GAAG,CAAC;YAEvE,IAAI,+BAA+B,GAAG,CAAC,CAAC;YACxC,MAAM,eAAe,GACjB,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE;gBAC3C,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,uBAAuB;aACxD,CAAC,CAAC;YACP,MAAM,4BAA4B,GAC9B,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,gCAAgC,EAAE;gBACxD,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,uBAAuB;gBACrD,OAAO;aACV,CAAC,CAAC;YAEP,KAAK,MAAM,OAAO,IAAI,eAAe,CAAC,mBAAmB,EAAE,CAAC;gBACxD,MAAM,aAAa,GACf,4BAA4B,CAAC,gCAAgC,CAAC,IAAI,CAC9D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,EAAE,CAC5B,CAAC;gBACN,IAAI,CAAC,aAAa,EAAE,CAAC;oBACjB,OAAO,CAAC,IAAI,CACR,8CAA8C,EAC9C,OAAO,CAAC,EAAE,CACb,CAAC;oBACF,SAAS;gBACb,CAAC;gBAED,MAAM,eAAe,GACjB,aAAa,CAAC,qCAAqC,CAAC;gBAExD,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM;oBACvC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,iBAAiB;oBACtC,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC;gBAEjC,+BAA+B;oBAC3B,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC;wBAC3B,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;YACpD,CAAC;YAED,MAAM,0BAA0B,GAC5B,+BAA+B,GAAG,cAAc,GAAG,YAAY,CAAC;YACpE,OAAO,CACH,CAAC,0BAA0B,GAAG,WAAW,CAAC;gBAC1C,UAAU,CAAC,kBAAkB,CAAC,CACjC,CAAC;QACN,CAAC;KAAA;IAED;;;;;;;;;;;;;OAaG;IACH,YAAY,CAAC,iBAAyB;QAClC,OAAO,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAC7C,CAAC;IAEK,YAAY,CAAC,WAAmB;;YAClC,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,OAAO,EAAE,CAAC;YACd,CAAC;YAED,MAAM,MAAM,GAAiB,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE;gBACnE,WAAW,EAAE,WAAW,CAAC,WAAW,EAAE;aACzC,CAAC,CAAC;YACH,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAO,QAAQ,EAAE,EAAE;gBAC3D,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,oBAAoB,CACrD,QAAQ,CAAC,UAAU,EACnB,WAAW,CACd,CAAC;gBACF,MAAM,aAAa,GACf,IAAI,CAAC,mCAAmC,CAAC,iBAAiB,CAAC,CAAC;gBAChE,OAAO;oBACH,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;oBACtB,YAAY,EAAE,QAAQ,CAAC,SAAS;oBAChC,UAAU,EAAE,QAAQ,CAAC,UAAU;oBAC/B,iBAAiB,EAAE,iBAAiB;oBACpC,QAAQ,EAAE,aAAa,CAAC,QAAQ;oBAChC,YAAY,EAAE,aAAa,CAAC,YAAY;oBACxC,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC;oBAC9C,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC;oBAC1C,UAAU,EAAE,QAAQ,CAAC,UAAU;iBAClC,CAAC;YACN,CAAC,CAAA,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAClD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;QACzD,CAAC;KAAA;IAEK,gBAAgB,CAAC,WAAmB;;YACtC,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,OAAO;oBACH,kBAAkB,EAAE,GAAG;oBACvB,0BAA0B,EAAE,GAAG;oBAC/B,kBAAkB,EAAE,GAAG;oBACvB,iBAAiB,EAAE,GAAG;iBACzB,CAAC;YACN,CAAC;YAED,MAAM,QAAQ,GAAG,EAAE,CAAC;YAEpB,0BAA0B;YAC1B,MAAM,iBAAiB,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;YAEpD,0BAA0B;YAC1B,MAAM,CACF,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,WAAW,EACd,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAClB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAe,cAAc,EAAE;oBAC9C,WAAW,EAAE,iBAAiB;iBACjC,CAAC;gBACF,IAAI,CAAC,MAAM,CAAC,OAAO,CACf,+BAA+B,EAC/B,EAAE,WAAW,EAAE,iBAAiB,EAAE,CACrC;gBACD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC;gBACtC,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,WAAW,CAAC;aACvD,CAAC,CAAC;YAEH,wCAAwC;YACxC,MAAM,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC;YAEpC,MAAM,2BAA2B,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CACxD,WAAW,EACX,QAAQ,CACX,CAAC;YACF,MAAM,2BAA2B,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CACxD,kBAAkB,EAClB,QAAQ,CACX,CAAC;YAEF,MAAM,0BAA0B,GAC5B,oBAAoB,CAAC,IAAI,KAAK,IAAI;gBAC9B,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,uBAAuB,CAAC;YAE5D,MAAM,iBAAiB,GACnB,SAAS,CAAC,MAAM,KAAK,CAAC;gBAClB,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,eAAe,CAAC;YAE5D,0BAA0B;YAC1B,OAAO;gBACH,kBAAkB,EAAE,2BAA2B;gBAC/C,0BAA0B,EAAE,0BAA0B;gBACtD,kBAAkB,EAAE,2BAA2B;gBAC/C,iBAAiB,EAAE,iBAAiB;aACvC,CAAC;QACN,CAAC;KAAA;IAED,mCAAmC,CAAC,iBAAyB;QAIzD,2DAA2D;QAC3D,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QAC5C,CAAC;QAED,IAAI,iBAAiB,GAAG,IAAI,EAAE,CAAC;YAC3B,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,CAAC;aAAM,IAAI,iBAAiB,GAAG,IAAI,EAAE,CAAC;YAClC,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,CAAC;QACD,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,CAAC;IAEK,oBAAoB,CACtB,UAAkB,EAClB,WAAmB;;YAEnB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,OAAO,CAAC,CAAC;YACb,CAAC;YAED,MAAM,CAAC,eAAe,EAAE,aAAa,CAAC,GAClC,MAAM,IAAI,CAAC,eAAe,CAAC,uDAAuD,CAC9E,WAAW,CACd,CAAC;YACN,MAAM,QAAQ,GACV,MAAM,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,CAAC;YACxD,MAAM,mBAAmB,GAAc,MAAM,CAAC,KAAK,CAAC,UAAU,CAC1D,UAAU,EACV,EAAE,CACL,CAAC;YAEF,MAAM,qBAAqB,GACvB,eAAe,CAAC,QAAQ,EAAE,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;YAE1D,6FAA6F;YAC7F,MAAM,WAAW,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC;YAC9D,MAAM,YAAY,GAAG,mBAAmB;iBACnC,GAAG,CAAC,QAAQ,CAAC;iBACb,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;iBACrC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;YAEpD,OAAO,YAAY,CAAC,QAAQ,EAAE,GAAG,qBAAqB,CAAC;QAC3D,CAAC;KAAA;IAED,sDAAsD;IAChD,kBAAkB,CACpB,UAAkB,EAClB,WAAmB;;YAEnB,OAAO,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAC9D,CAAC;KAAA;IAEK,mBAAmB,CAAC,WAAmB;;YACzC,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7B,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC5D,OAAO,MAAM,CAAC;QAClB,CAAC;KAAA;IAEK,iBAAiB;;YACnB,MAAM,QAAQ,GAAG,EAAE,CAAC;YAEpB,gFAAgF;YAChF,OAAO,OAAO,CAAC,OAAO,CAAC;gBACnB,KAAK,EAAE,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE;gBAC9C,QAAQ;aACX,CAAC,CAAC;QACP,CAAC;KAAA;IAEK,sBAAsB;;YAIxB,MAAM,QAAQ,GAAG,EAAE,CAAC;YAEpB,OAAO,OAAO,CAAC,OAAO,CAAC;gBACnB,KAAK,EAAE,MAAM,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,EAAE;gBAC1D,QAAQ;aACX,CAAC,CAAC;QACP,CAAC;KAAA;IAEK,kBAAkB,CACpB,WAAmB,EACnB,cAAsB,EACtB,gBAA4B;;;YAE5B,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7B,CAAC;YAED,MAAM,MAAM,GAA6B,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAC9D,gBAAgB,EAChB;gBACI,WAAW,EAAE,WAAW,CAAC,WAAW,EAAE;aACzC,CACJ,CAAC;YAEF,MAAM,cAAc,GAAG,MAAA,MAAA,MAAM,CAAC,oBAAoB,0CAAE,WAAW,mCAAI,GAAG,CAAC;YAEvE,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACpB,gBAAgB,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;YACnE,CAAC;YAED,OAAO,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC;QAC5E,CAAC;KAAA;IAED,oBAAoB,CAChB,UAAqB,EACrB,eAAuB,EACvB,eAA0B;QAE1B,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;QAED,MAAM,iBAAiB,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAC7C,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAC1B,CAAC,CACJ,CAAC;QACF,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAElE,IAAI,eAAe,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC;YACrC,OAAO,cAAc,CAAC;QAC1B,CAAC;aAAM,CAAC;YACJ,OAAO,eAAe,CAAC;QAC3B,CAAC;IACL,CAAC;IAEK,gBAAgB,CAAC,WAAmB;;YACtC,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,OAAO,GAAG,CAAC;YACf,CAAC;YAED,MAAM,MAAM,GAA8B,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAC/D,kBAAkB,EAClB;gBACI,WAAW,EAAE,WAAW,CAAC,WAAW,EAAE;aACzC,CACJ,CAAC;YACF,IAAI,MAAM,CAAC,oBAAoB,IAAI,IAAI,EAAE,CAAC;gBACtC,OAAO,GAAG,CAAC;YACf,CAAC;YACD,OAAO,MAAM,CAAC,oBAAoB,CAAC,eAAe,CAAC;QACvD,CAAC;KAAA;IAEK,iBAAiB,CAAC,WAAmB;;YACvC,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,OAAO,GAAG,CAAC;YACf,CAAC;YAED,MAAM,MAAM,GAA4B,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAC7D,mBAAmB,EACnB;gBACI,WAAW,EAAE,WAAW,CAAC,WAAW,EAAE;aACzC,CACJ,CAAC;YACF,IAAI,MAAM,CAAC,oBAAoB,IAAI,IAAI,EAAE,CAAC;gBACtC,OAAO,GAAG,CAAC;YACf,CAAC;YAED,OAAO,MAAM,CAAC,oBAAoB,CAAC,UAAU,CAAC;QAClD,CAAC;KAAA;IAEK,uBAAuB,CAAC,WAAmB;;YAC7C,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,OAAO,GAAG,CAAC;YACf,CAAC;YAED,MAAM,MAAM,GAAkC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CACnE,yBAAyB,EACzB;gBACI,WAAW,EAAE,WAAW,CAAC,WAAW,EAAE;aACzC,CACJ,CAAC;YACF,IAAI,MAAM,CAAC,oBAAoB,IAAI,IAAI,EAAE,CAAC;gBACtC,OAAO,GAAG,CAAC;YACf,CAAC;YAED,OAAO,MAAM,CAAC,oBAAoB,CAAC,mBAAmB,CAAC;QAC3D,CAAC;KAAA;IAEK,iBAAiB,CACnB,WAAmB;;YAEnB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,OAAO;oBACH,gBAAgB,EAAE,GAAG;oBACrB,eAAe,EAAE,GAAG;iBACvB,CAAC;YACN,CAAC;YAED,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC;YAE5D,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;YAErE,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,kBAAkB,CACjD,WAAW,EACX,cAAc,EACd,gBAAgB,CACnB,CAAC;YAEF,OAAO;gBACH,gBAAgB,EAAE,WAAW,CAAC,gBAAgB,EAAE,cAAc,CAAC;gBAC/D,eAAe,EAAE,WAAW,CAAC,eAAe,EAAE,cAAc,CAAC;aAChE,CAAC;QACN,CAAC;KAAA;IAEK,iBAAiB;;YACnB,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7D,CAAC;KAAA;IAEK,oBAAoB;;YACtB,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC7C,OAAO,GAAG,CAAC;YACf,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACvE,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;KAAA;IAEK,iBAAiB,CAAC,WAAmB;;YACvC,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC7C,OAAO,GAAG,CAAC;YACf,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAC3C,WAAW,CAAC,WAAW,EAAE,CAC5B,CAAC;YAEF,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;KAAA;IAEK,gBAAgB;;YAClB,OAAO,CACH,MAAM,IAAI,CAAC,mBAAmB,CAAC,uBAAuB,EAAE,CAC3D,CAAC,QAAQ,EAAE,CAAC;QACjB,CAAC;KAAA;IAED;;;;;;;;;;OAUG;IACG,6BAA6B;;YAC/B,OAAO,CACH,MAAM,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CAAC,CAAC,CACxD,CAAC,QAAQ,EAAE,CAAC;QACjB,CAAC;KAAA;IAEK,yBAAyB;;YAC3B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAEpD,MAAM,oBAAoB,GACtB,MAAM,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,CAAC;YAE1D,MAAM,kBAAkB,GAAG,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;iBACnD,GAAG,CAAC,oBAAoB,CAAC;iBACzB,QAAQ,EAAE,CAAC;YAEhB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YAElC,IAAI,OAAO,IAAI,kBAAkB,EAAE,CAAC;gBAChC,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,aAAa;gBAErC,OAAO,kBAAkB,GAAG,OAAO,CAAC;YACxC,CAAC;YAED,OAAO,kBAAkB,CAAC;QAC9B,CAAC;KAAA;IAEK,oBAAoB;;YACtB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,OAAO,EAAE,CAAC;YACd,CAAC;YAED,MAAM,IAAI,GACN,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;YACnD,OAAO,IAAI,CAAC,WAAW,CAAC;QAC5B,CAAC;KAAA;IAED,eAAe;QACX,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,wBAAwB;QACpB,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,0DAA0D;IAC1D,gBAAgB;QACZ,OAAO,IAAI,CAAC,wBAAwB,EAAE,CAAC;IAC3C,CAAC;CACJ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kasufinance/kasu-sdk",
3
- "version": "2.16.0",
3
+ "version": "2.17.0",
4
4
  "description": "TypeScript SDK for the Kasu Finance protocol — pool data, portfolio analytics, and KYC-gated deposits and withdrawals on Base and XDC",
5
5
  "keywords": [
6
6
  "kasu",