@babylonlabs-io/ts-sdk 1.1.0 → 2.0.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.
@@ -1,38 +1,106 @@
1
1
  /**
2
2
  * Vault Split Utilities for Aave Liquidation Protection
3
3
  *
4
- * BTC vaults are indivisible UTXOs. During liquidation, the protocol seizes
5
- * whole vaults as a prefix of the borrower's ordered vault list until the
6
- * target seizure amount is covered. Splitting deposits into 2 optimally-sized
7
- * vaults (sacrificial + protected) minimizes over-seizure loss.
4
+ * BTC vaults are indivisible UTXOs. The Babylon Spoke liquidates one whole
5
+ * vault per call, taking the head of the borrower's ordered vault list.
6
+ * Splitting a deposit into 2 vaults (sacrificial + protected) lets a
7
+ * liquidation take the small head vault and leave the rest of the position.
8
8
  *
9
- * The sacrificial vault (index 0) is sized to cover the expected target seizure
10
- * plus a safety margin. The protected vault (index 1) holds the remainder and
11
- * survives liquidation.
9
+ * The sacrificial vault (index 0) is sized so that seizing it at the expected
10
+ * liquidation health factor lifts the position back to the split target
11
+ * health factor. The protected vault (index 1) holds the remainder.
12
12
  *
13
- * Seizure formula (from Aave v4 Section 4.2):
13
+ * Seizure formula:
14
14
  * ```
15
15
  * liq_penalty = LB × CF
16
16
  * debt_to_repay = total_debt × (THF - current_HF) / (THF - liq_penalty)
17
17
  * target_seizure = debt_to_repay × LB
18
18
  * ```
19
19
  */
20
+ /**
21
+ * Split target health factor: the health factor a two-vault position lands
22
+ * on after its sacrificial vault is seized. The sacrificial vault is sized so
23
+ * that seizing it lifts the position back to this value.
24
+ *
25
+ * This is a Babylon sizing parameter, not a contract parameter. The Babylon
26
+ * Spoke sizes each liquidation by the head vault's BTC and never reads the
27
+ * Aave `LiquidationConfig.targetHealthFactor`, so no contract can supply it.
28
+ * At 1.08 the sacrificial vault stays smaller than the protected vault for
29
+ * every collateral factor up to 86%, and after the first liquidation BTC can
30
+ * fall about 7.4% more before the protected vault is at risk. The risk model
31
+ * and the decision are recorded in babylon-toolkit#2577.
32
+ *
33
+ * Changing this value resizes every new split. A change needs sign-off from
34
+ * the risk model owner and two code-owner approvals: this file is the
35
+ * "Multi-vault split transactions" critical path in CLAUDE.md and has its own
36
+ * entry in .github/CODEOWNERS.
37
+ */
38
+ export declare const SPLIT_TARGET_HEALTH_FACTOR = 1.08;
39
+ /**
40
+ * Health factor at which a liquidation is assumed to land, in WAD.
41
+ *
42
+ * Aave liquidations settle close to 1.0 (median about 0.997 on Aave V3 over
43
+ * a year), so the split is sized for 0.99. The liquidation bonus used for
44
+ * sizing is read from the Spoke's bonus curve at this health factor. Same
45
+ * ownership and review rules as {@link SPLIT_TARGET_HEALTH_FACTOR}.
46
+ */
47
+ export declare const EXPECTED_HEALTH_FACTOR_AT_LIQUIDATION_WAD = 990000000000000000n;
48
+ /**
49
+ * {@link EXPECTED_HEALTH_FACTOR_AT_LIQUIDATION_WAD} as a plain number (0.99),
50
+ * for the floating-point split formulas.
51
+ */
52
+ export declare const EXPECTED_HEALTH_FACTOR_AT_LIQUIDATION: number;
53
+ /**
54
+ * Why the split parameters alone refuse a two-vault split. These are the
55
+ * verdicts {@link findSplitSizingViolation} can return; it sees only the
56
+ * parameters, so each one holds at any deposit amount. One of them,
57
+ * `sacrificial-not-smaller`, is also what {@link computeOptimalSplit} reports
58
+ * when rounding the seizure up leaves the sacrificial vault not strictly
59
+ * smaller, so seeing it in an {@link OptimalSplitResult} does not by itself
60
+ * mean the parameters are bad:
61
+ * - `target-not-above-expected-hf`: THF ≤ expected HF, so the seizure formula
62
+ * has no valid target.
63
+ * - `target-not-above-liquidation-penalty`: THF ≤ LB × CF, so one liquidation
64
+ * takes the whole position.
65
+ * - `sacrificial-not-smaller`: the sacrificial vault would not be strictly
66
+ * smaller than the protected vault.
67
+ * - `no-seizure-expected`: the seized fraction is zero (for example CF 0), so
68
+ * a sacrificial vault would be empty and the split would protect nothing.
69
+ */
70
+ export type SplitParamsViolation = "target-not-above-expected-hf" | "target-not-above-liquidation-penalty" | "sacrificial-not-smaller" | "no-seizure-expected";
71
+ /**
72
+ * Why {@link computeOptimalSplit} refuses a split: the parameter verdicts
73
+ * above, plus one only a deposit amount can reach.
74
+ * - `below-dust`: the vaults would be below the HTLC dust threshold. A
75
+ * non-positive deposit reports this too, but only when the parameters
76
+ * themselves allow a split — otherwise the parameter verdict wins.
77
+ */
78
+ export type SplitSizingViolation = SplitParamsViolation | "below-dust";
79
+ /**
80
+ * Inputs of the Aave v4 liquidation bonus curve, in their on-chain units.
81
+ */
82
+ export interface LiquidationBonusCurve {
83
+ /** `LiquidationConfig.healthFactorForMaxBonus`, WAD. Below 1e18. */
84
+ healthFactorForMaxBonus: bigint;
85
+ /** `LiquidationConfig.liquidationBonusFactor`, BPS. At most 10_000. */
86
+ liquidationBonusFactor: bigint;
87
+ /** `DynamicReserveConfig.maxLiquidationBonus`, BPS. At least 10_000. */
88
+ maxLiquidationBonus: bigint;
89
+ }
20
90
  /**
21
91
  * Parameters for computing the optimal vault split.
22
92
  */
23
93
  export interface OptimalSplitParams {
24
94
  /** Total deposit amount in satoshis */
25
95
  totalBtc: bigint;
26
- /** Collateral factor (e.g. 0.75 for 75%) */
96
+ /** Collateral factor (e.g. 0.78 for 78%) */
27
97
  CF: number;
28
- /** Liquidation bonus (e.g. 1.05 for 5% bonus) */
98
+ /** Liquidation bonus at the expected health factor (e.g. 1.0504) */
29
99
  LB: number;
30
- /** Target health factor (e.g. 1.10) */
100
+ /** Split target health factor (e.g. {@link SPLIT_TARGET_HEALTH_FACTOR}) */
31
101
  THF: number;
32
- /** Expected health factor at liquidation (e.g. 0.95) */
102
+ /** Expected health factor at liquidation (e.g. {@link EXPECTED_HEALTH_FACTOR_AT_LIQUIDATION}) */
33
103
  expectedHF: number;
34
- /** Safety margin multiplier for the sacrificial vault (e.g. 1.05 for 5% buffer) */
35
- safetyMargin: number;
36
104
  }
37
105
  /**
38
106
  * Result of the optimal vault split computation.
@@ -44,8 +112,14 @@ export interface OptimalSplitResult {
44
112
  protectedVault: bigint;
45
113
  /** Fraction of collateral that would be seized (0–1) */
46
114
  seizedFraction: number;
47
- /** Raw target seizure amount in satoshis (before safety margin) */
115
+ /** Target seizure amount in satoshis */
48
116
  targetSeizureBtc: bigint;
117
+ /**
118
+ * Why the split is refused, or null when it is valid. Non-null exactly when
119
+ * the split is not usable: both vault amounts are then 0n, and null always
120
+ * means two positive amounts that sum to `totalBtc`.
121
+ */
122
+ sizingViolation: SplitSizingViolation | null;
49
123
  }
50
124
  /**
51
125
  * Parameters for computing the minimum deposit required for a split.
@@ -55,9 +129,54 @@ export interface MinDepositForSplitParams {
55
129
  minPegin: bigint;
56
130
  /** Seized fraction (0–1), from computeOptimalSplit or computeSeizedFraction */
57
131
  seizedFraction: number;
58
- /** Safety margin multiplier (e.g. 1.05) */
59
- safetyMargin: number;
60
132
  }
133
+ /**
134
+ * Compute the Aave v4 liquidation bonus at a health factor.
135
+ *
136
+ * Integer-exact port of `LiquidationLogic.calculateLiquidationBonus`
137
+ * (aave-v4 `src/spoke/libraries/LiquidationLogic.sol`), which the Babylon
138
+ * liquidation path calls with the same inputs: at or below
139
+ * `healthFactorForMaxBonus` the bonus is the maximum; above it the bonus falls
140
+ * linearly towards a minimum of
141
+ * `(maxLiquidationBonus − 100%) × liquidationBonusFactor + 100%` at HF 1.0.
142
+ * Every division rounds down, as on-chain.
143
+ *
144
+ * @param curve - Bonus curve inputs in on-chain units
145
+ * @param healthFactorWad - Health factor in WAD, at most 1e18
146
+ * @returns Liquidation bonus in BPS (e.g. 10504n for 105.04%)
147
+ * @throws {RangeError} when an input is outside the range the contract
148
+ * accepts (the contract would revert or was configured out of range)
149
+ */
150
+ export declare function computeLiquidationBonusBps(curve: LiquidationBonusCurve, healthFactorWad: bigint): bigint;
151
+ /**
152
+ * The liquidation bonus a split is sized against: the Spoke's bonus curve at
153
+ * {@link EXPECTED_HEALTH_FACTOR_AT_LIQUIDATION_WAD}, as a multiplier.
154
+ *
155
+ * Every consumer of the split inputs (the deposit split, the liquidation
156
+ * warnings, the reorder guard, the E2E CLI) must use this one value, or a
157
+ * fresh split falls short of the seizure the warnings expect.
158
+ *
159
+ * @param bonusConfig - `healthFactorForMaxBonus` (WAD) and
160
+ * `liquidationBonusFactor` (BPS) from the Spoke's liquidation config
161
+ * @param maxLiquidationBonusBps - `maxLiquidationBonus` (BPS) of the dynamic
162
+ * config the position's liquidation uses
163
+ * @returns Liquidation bonus multiplier (e.g. 1.0504)
164
+ * @throws {RangeError} when an input is outside the range the contract accepts
165
+ */
166
+ export declare function computeSplitLiquidationBonus(bonusConfig: Omit<LiquidationBonusCurve, "maxLiquidationBonus">, maxLiquidationBonusBps: number): number;
167
+ /**
168
+ * Check the split sizing parameters before a two-vault split is offered.
169
+ *
170
+ * @param params - Split target health factor, expected health factor at
171
+ * liquidation, collateral factor and liquidation bonus
172
+ * @returns The first violated rule, or null when a split may be offered
173
+ */
174
+ export declare function findSplitSizingViolation(params: {
175
+ CF: number;
176
+ LB: number;
177
+ THF: number;
178
+ expectedHF: number;
179
+ }): SplitParamsViolation | null;
61
180
  /**
62
181
  * Compute the fraction of collateral that would be seized during liquidation,
63
182
  * returning both the raw (unclamped) and clamped values.
@@ -71,10 +190,10 @@ export interface MinDepositForSplitParams {
71
190
  * seized_fraction = CF × (THF - expectedHF) / (THF - liq_penalty) × LB / expectedHF
72
191
  * ```
73
192
  *
74
- * @param CF - Collateral factor (e.g. 0.75)
75
- * @param LB - Liquidation bonus (e.g. 1.05)
76
- * @param THF - Target health factor (e.g. 1.10)
77
- * @param expectedHF - Expected health factor at liquidation (e.g. 0.95)
193
+ * @param CF - Collateral factor (e.g. 0.78)
194
+ * @param LB - Liquidation bonus at the expected health factor (e.g. 1.0504, see {@link computeSplitLiquidationBonus})
195
+ * @param THF - Split target health factor (e.g. {@link SPLIT_TARGET_HEALTH_FACTOR})
196
+ * @param expectedHF - Expected health factor at liquidation (e.g. {@link EXPECTED_HEALTH_FACTOR_AT_LIQUIDATION})
78
197
  * @returns Both the raw seized fraction and the clamped [0, 1] value
79
198
  */
80
199
  export declare function computeSeizedFractionDetailed(CF: number, LB: number, THF: number, expectedHF: number): {
@@ -84,36 +203,46 @@ export declare function computeSeizedFractionDetailed(CF: number, LB: number, TH
84
203
  /**
85
204
  * Compute the fraction of collateral that would be seized during liquidation.
86
205
  *
87
- * @param CF - Collateral factor (e.g. 0.75)
88
- * @param LB - Liquidation bonus (e.g. 1.05)
89
- * @param THF - Target health factor (e.g. 1.10)
90
- * @param expectedHF - Expected health factor at liquidation (e.g. 0.95)
206
+ * @param CF - Collateral factor (e.g. 0.78)
207
+ * @param LB - Liquidation bonus at the expected health factor (e.g. 1.0504, see {@link computeSplitLiquidationBonus})
208
+ * @param THF - Split target health factor (e.g. {@link SPLIT_TARGET_HEALTH_FACTOR})
209
+ * @param expectedHF - Expected health factor at liquidation (e.g. {@link EXPECTED_HEALTH_FACTOR_AT_LIQUIDATION})
91
210
  * @returns Seized fraction clamped to [0, 1]
92
211
  */
93
212
  export declare function computeSeizedFraction(CF: number, LB: number, THF: number, expectedHF: number): number;
94
213
  /**
95
214
  * Compute the optimal split between a sacrificial vault and a protected vault.
96
215
  *
97
- * The sacrificial vault (index 0) is sized to cover the target seizure amount
98
- * plus a safety margin. The protected vault (index 1) holds the remainder.
216
+ * The sacrificial vault (index 0) is the target seizure rounded up to a whole
217
+ * satoshi. The protected vault (index 1) holds the remainder. The split is
218
+ * refused when the parameters fail {@link findSplitSizingViolation}, when
219
+ * rounding the seizure up leaves the sacrificial vault not strictly smaller,
220
+ * or when the vaults would be dust — a non-positive deposit reaches the last
221
+ * of these whenever the parameters themselves allow a split. Both amounts are
222
+ * then 0n and `sizingViolation` says why; a null violation means two positive
223
+ * amounts that sum to `totalBtc`.
99
224
  *
100
- * @param params - Split parameters including total BTC, risk params, and safety margin
101
- * @returns Split result with vault sizes, seized fraction, and target seizure
225
+ * @param params - Total BTC and split sizing parameters
226
+ * @returns Split result with vault sizes, seized fraction, target seizure and
227
+ * any sizing violation
102
228
  *
103
229
  * @example
104
230
  * ```typescript
105
- * import { computeOptimalSplit } from "@babylonlabs-io/ts-sdk/tbv/integrations/aave";
231
+ * import {
232
+ * computeOptimalSplit,
233
+ * EXPECTED_HEALTH_FACTOR_AT_LIQUIDATION,
234
+ * SPLIT_TARGET_HEALTH_FACTOR,
235
+ * } from "@babylonlabs-io/ts-sdk/tbv/integrations/aave";
106
236
  *
107
237
  * const result = computeOptimalSplit({
108
238
  * totalBtc: 1_000_000_000n, // 10 BTC in sats
109
- * CF: 0.75,
110
- * LB: 1.05,
111
- * THF: 1.10,
112
- * expectedHF: 0.95,
113
- * safetyMargin: 1.05,
239
+ * CF: 0.78,
240
+ * LB: 1.0504,
241
+ * THF: SPLIT_TARGET_HEALTH_FACTOR,
242
+ * expectedHF: EXPECTED_HEALTH_FACTOR_AT_LIQUIDATION,
114
243
  * });
115
- * // result.sacrificialVault ≈ 418_000_000n (4.18 BTC)
116
- * // result.protectedVault ≈ 582_000_000n (5.82 BTC)
244
+ * // result.sacrificialVault === 285_716_677n (2.86 BTC)
245
+ * // result.protectedVault === 714_283_323n (7.14 BTC)
117
246
  * ```
118
247
  */
119
248
  export declare function computeOptimalSplit(params: OptimalSplitParams): OptimalSplitResult;
@@ -124,9 +253,10 @@ export declare function computeOptimalSplit(params: OptimalSplitParams): Optimal
124
253
  * the minimum total deposit where both the sacrificial and protected vaults
125
254
  * would meet the minimum peg-in requirement.
126
255
  *
127
- * @param params - Parameters including minimum peg-in, seized fraction, and safety margin
256
+ * @param params - Minimum peg-in and seized fraction
128
257
  * @returns Minimum total deposit in satoshis. Returns 0n in two cases:
129
- * - `seizedFraction * safetyMargin >= 1`: split impossible (sacrificial vault would consume entire deposit)
258
+ * - `seizedFraction >= 0.5`: split refused (the sacrificial vault would not
259
+ * be smaller than the protected vault)
130
260
  * - `seizedFraction <= 0`: split not useful (no seizure expected at this health factor)
131
261
  *
132
262
  * @example
@@ -135,9 +265,9 @@ export declare function computeOptimalSplit(params: OptimalSplitParams): Optimal
135
265
  *
136
266
  * const minDeposit = computeMinDepositForSplit({
137
267
  * minPegin: 50_000n, // 0.0005 BTC
138
- * seizedFraction: 0.398,
139
- * safetyMargin: 1.05,
268
+ * seizedFraction: 0.2857,
140
269
  * });
270
+ * // minDeposit === 175_009n: 50_000 / 0.2857, rounded up
141
271
  * ```
142
272
  */
143
273
  export declare function computeMinDepositForSplit(params: MinDepositForSplitParams): bigint;
@@ -1 +1 @@
1
- {"version":3,"file":"vaultSplit.d.ts","sourceRoot":"","sources":["../../../../../src/tbv/integrations/aave/utils/vaultSplit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAsBH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,iDAAiD;IACjD,EAAE,EAAE,MAAM,CAAC;IACX,uCAAuC;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,wDAAwD;IACxD,UAAU,EAAE,MAAM,CAAC;IACnB,mFAAmF;IACnF,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,mEAAmE;IACnE,gBAAgB,EAAE,MAAM,CAAC;IACzB,yEAAyE;IACzE,cAAc,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,cAAc,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,+EAA+E;IAC/E,cAAc,EAAE,MAAM,CAAC;IACvB,2CAA2C;IAC3C,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,6BAA6B,CAC3C,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,GACjB;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,CAsBvD;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,GACjB,MAAM,CAER;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,kBAAkB,GACzB,kBAAkB,CAkDpB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,wBAAwB,GAC/B,MAAM,CAyBR"}
1
+ {"version":3,"file":"vaultSplit.d.ts","sourceRoot":"","sources":["../../../../../src/tbv/integrations/aave/utils/vaultSplit.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@babylonlabs-io/ts-sdk",
3
- "version": "1.1.0",
3
+ "version": "2.0.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -143,7 +143,6 @@
143
143
  }
144
144
  },
145
145
  "devDependencies": {
146
- "@babylonlabs-io/babylon-tbv-rust-wasm": "1.1.0",
147
146
  "@vitest/browser-playwright": "4.0.9",
148
147
  "@vitest/coverage-v8": "^4.0.8",
149
148
  "@vitest/ui": "^4.0.8",
@@ -159,6 +158,7 @@
159
158
  "vite": "^6.4.1",
160
159
  "vite-plugin-dts": "^4.3.0",
161
160
  "vitest": "4.0.9",
161
+ "@babylonlabs-io/babylon-tbv-rust-wasm": "1.1.0",
162
162
  "@internal/eslint-config": "0.0.0"
163
163
  },
164
164
  "publishConfig": {