@sovryn-zero/lib-base 0.1.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/.eslintrc.json +17 -0
- package/.mocharc.yml +1 -0
- package/LICENSE +905 -0
- package/README.md +23 -0
- package/api-extractor.json +4 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -0
- package/dist/src/Decimal.d.ts +89 -0
- package/dist/src/Decimal.d.ts.map +1 -0
- package/dist/src/Decimal.js +361 -0
- package/dist/src/Decimal.js.map +1 -0
- package/dist/src/Fees.d.ts +82 -0
- package/dist/src/Fees.d.ts.map +1 -0
- package/dist/src/Fees.js +123 -0
- package/dist/src/Fees.js.map +1 -0
- package/dist/src/LiquityStore.d.ts +209 -0
- package/dist/src/LiquityStore.d.ts.map +1 -0
- package/dist/src/LiquityStore.js +209 -0
- package/dist/src/LiquityStore.js.map +1 -0
- package/dist/src/ObservableLiquity.d.ts +15 -0
- package/dist/src/ObservableLiquity.d.ts.map +1 -0
- package/dist/src/ObservableLiquity.js +3 -0
- package/dist/src/ObservableLiquity.js.map +1 -0
- package/dist/src/PopulatableLiquity.d.ts +125 -0
- package/dist/src/PopulatableLiquity.d.ts.map +1 -0
- package/dist/src/PopulatableLiquity.js +3 -0
- package/dist/src/PopulatableLiquity.js.map +1 -0
- package/dist/src/ReadableLiquity.d.ts +156 -0
- package/dist/src/ReadableLiquity.d.ts.map +1 -0
- package/dist/src/ReadableLiquity.js +3 -0
- package/dist/src/ReadableLiquity.js.map +1 -0
- package/dist/src/SendableLiquity.d.ts +156 -0
- package/dist/src/SendableLiquity.d.ts.map +1 -0
- package/dist/src/SendableLiquity.js +20 -0
- package/dist/src/SendableLiquity.js.map +1 -0
- package/dist/src/StabilityDeposit.d.ts +59 -0
- package/dist/src/StabilityDeposit.d.ts.map +1 -0
- package/dist/src/StabilityDeposit.js +80 -0
- package/dist/src/StabilityDeposit.js.map +1 -0
- package/dist/src/TransactableLiquity.d.ts +414 -0
- package/dist/src/TransactableLiquity.d.ts.map +1 -0
- package/dist/src/TransactableLiquity.js +18 -0
- package/dist/src/TransactableLiquity.js.map +1 -0
- package/dist/src/Trove.d.ts +367 -0
- package/dist/src/Trove.d.ts.map +1 -0
- package/dist/src/Trove.js +423 -0
- package/dist/src/Trove.js.map +1 -0
- package/dist/src/ZEROStake.d.ts +52 -0
- package/dist/src/ZEROStake.d.ts.map +1 -0
- package/dist/src/ZEROStake.js +74 -0
- package/dist/src/ZEROStake.js.map +1 -0
- package/dist/src/_CachedReadableLiquity.d.ts +55 -0
- package/dist/src/_CachedReadableLiquity.d.ts.map +1 -0
- package/dist/src/_CachedReadableLiquity.js +93 -0
- package/dist/src/_CachedReadableLiquity.js.map +1 -0
- package/dist/src/constants.d.ts +61 -0
- package/dist/src/constants.d.ts.map +1 -0
- package/dist/src/constants.js +64 -0
- package/dist/src/constants.js.map +1 -0
- package/dist/tsdoc-metadata.json +11 -0
- package/etc/lib-base.api.md +788 -0
- package/index.ts +13 -0
- package/package.json +52 -0
- package/src/Decimal.ts +456 -0
- package/src/Fees.ts +160 -0
- package/src/LiquityStore.ts +563 -0
- package/src/ObservableLiquity.ts +32 -0
- package/src/PopulatableLiquity.ts +280 -0
- package/src/ReadableLiquity.ts +175 -0
- package/src/SendableLiquity.ts +251 -0
- package/src/StabilityDeposit.ts +126 -0
- package/src/TransactableLiquity.ts +471 -0
- package/src/Trove.ts +824 -0
- package/src/ZEROStake.ts +99 -0
- package/src/_CachedReadableLiquity.ts +186 -0
- package/src/constants.ts +68 -0
- package/test/Decimal.test.ts +212 -0
- package/test/StabilityDeposit.test.ts +30 -0
- package/test/Trove.test.ts +143 -0
- package/test/ZEROStake.test.ts +24 -0
- package/tsconfig.dist.json +8 -0
- package/tsconfig.json +5 -0
@@ -0,0 +1,367 @@
|
|
1
|
+
import { Decimal, Decimalish } from "./Decimal";
|
2
|
+
/** @internal */ export declare type _CollateralDeposit<T> = {
|
3
|
+
depositCollateral: T;
|
4
|
+
};
|
5
|
+
/** @internal */ export declare type _CollateralWithdrawal<T> = {
|
6
|
+
withdrawCollateral: T;
|
7
|
+
};
|
8
|
+
/** @internal */ export declare type _ZUSDBorrowing<T> = {
|
9
|
+
borrowZUSD: T;
|
10
|
+
};
|
11
|
+
/** @internal */ export declare type _ZUSDRepayment<T> = {
|
12
|
+
repayZUSD: T;
|
13
|
+
};
|
14
|
+
/** @internal */ export declare type _NoCollateralDeposit = Partial<_CollateralDeposit<undefined>>;
|
15
|
+
/** @internal */ export declare type _NoCollateralWithdrawal = Partial<_CollateralWithdrawal<undefined>>;
|
16
|
+
/** @internal */ export declare type _NoZUSDBorrowing = Partial<_ZUSDBorrowing<undefined>>;
|
17
|
+
/** @internal */ export declare type _NoZUSDRepayment = Partial<_ZUSDRepayment<undefined>>;
|
18
|
+
/** @internal */
|
19
|
+
export declare type _CollateralChange<T> = (_CollateralDeposit<T> & _NoCollateralWithdrawal) | (_CollateralWithdrawal<T> & _NoCollateralDeposit);
|
20
|
+
/** @internal */
|
21
|
+
export declare type _NoCollateralChange = _NoCollateralDeposit & _NoCollateralWithdrawal;
|
22
|
+
/** @internal */
|
23
|
+
export declare type _DebtChange<T> = (_ZUSDBorrowing<T> & _NoZUSDRepayment) | (_ZUSDRepayment<T> & _NoZUSDBorrowing);
|
24
|
+
/** @internal */
|
25
|
+
export declare type _NoDebtChange = _NoZUSDBorrowing & _NoZUSDRepayment;
|
26
|
+
/**
|
27
|
+
* Parameters of an {@link TransactableLiquity.openTrove | openTrove()} transaction.
|
28
|
+
*
|
29
|
+
* @remarks
|
30
|
+
* The type parameter `T` specifies the allowed value type(s) of the particular `TroveCreationParams`
|
31
|
+
* object's properties.
|
32
|
+
*
|
33
|
+
* <h2>Properties</h2>
|
34
|
+
*
|
35
|
+
* <table>
|
36
|
+
*
|
37
|
+
* <tr>
|
38
|
+
* <th> Property </th>
|
39
|
+
* <th> Type </th>
|
40
|
+
* <th> Description </th>
|
41
|
+
* </tr>
|
42
|
+
*
|
43
|
+
* <tr>
|
44
|
+
* <td> depositCollateral </td>
|
45
|
+
* <td> T </td>
|
46
|
+
* <td> The amount of collateral that's deposited. </td>
|
47
|
+
* </tr>
|
48
|
+
*
|
49
|
+
* <tr>
|
50
|
+
* <td> borrowZUSD </td>
|
51
|
+
* <td> T </td>
|
52
|
+
* <td> The amount of ZUSD that's borrowed. </td>
|
53
|
+
* </tr>
|
54
|
+
*
|
55
|
+
* </table>
|
56
|
+
*
|
57
|
+
* @public
|
58
|
+
*/
|
59
|
+
export declare type TroveCreationParams<T = unknown> = _CollateralDeposit<T> & _NoCollateralWithdrawal & _ZUSDBorrowing<T> & _NoZUSDRepayment;
|
60
|
+
/**
|
61
|
+
* Parameters of a {@link TransactableLiquity.closeTrove | closeTrove()} transaction.
|
62
|
+
*
|
63
|
+
* @remarks
|
64
|
+
* The type parameter `T` specifies the allowed value type(s) of the particular `TroveClosureParams`
|
65
|
+
* object's properties.
|
66
|
+
*
|
67
|
+
* <h2>Properties</h2>
|
68
|
+
*
|
69
|
+
* <table>
|
70
|
+
*
|
71
|
+
* <tr>
|
72
|
+
* <th> Property </th>
|
73
|
+
* <th> Type </th>
|
74
|
+
* <th> Description </th>
|
75
|
+
* </tr>
|
76
|
+
*
|
77
|
+
* <tr>
|
78
|
+
* <td> withdrawCollateral </td>
|
79
|
+
* <td> T </td>
|
80
|
+
* <td> The amount of collateral that's withdrawn. </td>
|
81
|
+
* </tr>
|
82
|
+
*
|
83
|
+
* <tr>
|
84
|
+
* <td> repayZUSD? </td>
|
85
|
+
* <td> T </td>
|
86
|
+
* <td> <i>(Optional)</i> The amount of ZUSD that's repaid. </td>
|
87
|
+
* </tr>
|
88
|
+
*
|
89
|
+
* </table>
|
90
|
+
*
|
91
|
+
* @public
|
92
|
+
*/
|
93
|
+
export declare type TroveClosureParams<T> = _CollateralWithdrawal<T> & _NoCollateralDeposit & Partial<_ZUSDRepayment<T>> & _NoZUSDBorrowing;
|
94
|
+
/**
|
95
|
+
* Parameters of an {@link TransactableLiquity.adjustTrove | adjustTrove()} transaction.
|
96
|
+
*
|
97
|
+
* @remarks
|
98
|
+
* The type parameter `T` specifies the allowed value type(s) of the particular
|
99
|
+
* `TroveAdjustmentParams` object's properties.
|
100
|
+
*
|
101
|
+
* Even though all properties are optional, a valid `TroveAdjustmentParams` object must define at
|
102
|
+
* least one.
|
103
|
+
*
|
104
|
+
* Defining both `depositCollateral` and `withdrawCollateral`, or both `borrowZUSD` and `repayZUSD`
|
105
|
+
* at the same time is disallowed, and will result in a type-checking error.
|
106
|
+
*
|
107
|
+
* <h2>Properties</h2>
|
108
|
+
*
|
109
|
+
* <table>
|
110
|
+
*
|
111
|
+
* <tr>
|
112
|
+
* <th> Property </th>
|
113
|
+
* <th> Type </th>
|
114
|
+
* <th> Description </th>
|
115
|
+
* </tr>
|
116
|
+
*
|
117
|
+
* <tr>
|
118
|
+
* <td> depositCollateral? </td>
|
119
|
+
* <td> T </td>
|
120
|
+
* <td> <i>(Optional)</i> The amount of collateral that's deposited. </td>
|
121
|
+
* </tr>
|
122
|
+
*
|
123
|
+
* <tr>
|
124
|
+
* <td> withdrawCollateral? </td>
|
125
|
+
* <td> T </td>
|
126
|
+
* <td> <i>(Optional)</i> The amount of collateral that's withdrawn. </td>
|
127
|
+
* </tr>
|
128
|
+
*
|
129
|
+
* <tr>
|
130
|
+
* <td> borrowZUSD? </td>
|
131
|
+
* <td> T </td>
|
132
|
+
* <td> <i>(Optional)</i> The amount of ZUSD that's borrowed. </td>
|
133
|
+
* </tr>
|
134
|
+
*
|
135
|
+
* <tr>
|
136
|
+
* <td> repayZUSD? </td>
|
137
|
+
* <td> T </td>
|
138
|
+
* <td> <i>(Optional)</i> The amount of ZUSD that's repaid. </td>
|
139
|
+
* </tr>
|
140
|
+
*
|
141
|
+
* </table>
|
142
|
+
*
|
143
|
+
* @public
|
144
|
+
*/
|
145
|
+
export declare type TroveAdjustmentParams<T = unknown> = (_CollateralChange<T> & _NoDebtChange) | (_DebtChange<T> & _NoCollateralChange) | (_CollateralChange<T> & _DebtChange<T>);
|
146
|
+
/**
|
147
|
+
* Describes why a Trove could not be created.
|
148
|
+
*
|
149
|
+
* @remarks
|
150
|
+
* See {@link TroveChange}.
|
151
|
+
*
|
152
|
+
* <h2>Possible values</h2>
|
153
|
+
*
|
154
|
+
* <table>
|
155
|
+
*
|
156
|
+
* <tr>
|
157
|
+
* <th> Value </th>
|
158
|
+
* <th> Reason </th>
|
159
|
+
* </tr>
|
160
|
+
*
|
161
|
+
* <tr>
|
162
|
+
* <td> "missingLiquidationReserve" </td>
|
163
|
+
* <td> A Trove's debt cannot be less than the liquidation reserve. </td>
|
164
|
+
* </tr>
|
165
|
+
*
|
166
|
+
* </table>
|
167
|
+
*
|
168
|
+
* More errors may be added in the future.
|
169
|
+
*
|
170
|
+
* @public
|
171
|
+
*/
|
172
|
+
export declare type TroveCreationError = "missingLiquidationReserve";
|
173
|
+
/**
|
174
|
+
* Represents the change between two Trove states.
|
175
|
+
*
|
176
|
+
* @remarks
|
177
|
+
* Returned by {@link Trove.whatChanged}.
|
178
|
+
*
|
179
|
+
* Passed as a parameter to {@link Trove.apply}.
|
180
|
+
*
|
181
|
+
* @public
|
182
|
+
*/
|
183
|
+
export declare type TroveChange<T> = {
|
184
|
+
type: "invalidCreation";
|
185
|
+
invalidTrove: Trove;
|
186
|
+
error: TroveCreationError;
|
187
|
+
} | {
|
188
|
+
type: "creation";
|
189
|
+
params: TroveCreationParams<T>;
|
190
|
+
} | {
|
191
|
+
type: "closure";
|
192
|
+
params: TroveClosureParams<T>;
|
193
|
+
} | {
|
194
|
+
type: "adjustment";
|
195
|
+
params: TroveAdjustmentParams<T>;
|
196
|
+
setToZero?: "collateral" | "debt";
|
197
|
+
};
|
198
|
+
/** @internal */
|
199
|
+
export declare const _normalizeTroveCreation: (params: Record<string, Decimalish | undefined>) => TroveCreationParams<Decimal>;
|
200
|
+
/** @internal */
|
201
|
+
export declare const _normalizeTroveAdjustment: (params: Record<string, Decimalish | undefined>) => TroveAdjustmentParams<Decimal>;
|
202
|
+
/**
|
203
|
+
* A combination of collateral and debt.
|
204
|
+
*
|
205
|
+
* @public
|
206
|
+
*/
|
207
|
+
export declare class Trove {
|
208
|
+
/** Amount of native currency (e.g. Ether) collateralized. */
|
209
|
+
readonly collateral: Decimal;
|
210
|
+
/** Amount of ZUSD owed. */
|
211
|
+
readonly debt: Decimal;
|
212
|
+
/** @internal */
|
213
|
+
constructor(collateral?: Decimal, debt?: Decimal);
|
214
|
+
get isEmpty(): boolean;
|
215
|
+
/**
|
216
|
+
* Amount of ZUSD that must be repaid to close this Trove.
|
217
|
+
*
|
218
|
+
* @remarks
|
219
|
+
* This doesn't include the liquidation reserve, which is refunded in case of normal closure.
|
220
|
+
*/
|
221
|
+
get netDebt(): Decimal;
|
222
|
+
/** @internal */
|
223
|
+
get _nominalCollateralRatio(): Decimal;
|
224
|
+
/** Calculate the Trove's collateralization ratio at a given price. */
|
225
|
+
collateralRatio(price: Decimalish): Decimal;
|
226
|
+
/**
|
227
|
+
* Whether the Trove is undercollateralized at a given price.
|
228
|
+
*
|
229
|
+
* @returns
|
230
|
+
* `true` if the Trove's collateralization ratio is less than the
|
231
|
+
* {@link MINIMUM_COLLATERAL_RATIO}.
|
232
|
+
*/
|
233
|
+
collateralRatioIsBelowMinimum(price: Decimalish): boolean;
|
234
|
+
/**
|
235
|
+
* Whether the collateralization ratio is less than the {@link CRITICAL_COLLATERAL_RATIO} at a
|
236
|
+
* given price.
|
237
|
+
*
|
238
|
+
* @example
|
239
|
+
* Can be used to check whether the Zero protocol is in recovery mode by using it on the return
|
240
|
+
* value of {@link ReadableLiquity.getTotal | getTotal()}. For example:
|
241
|
+
*
|
242
|
+
* ```typescript
|
243
|
+
* const total = await zero.getTotal();
|
244
|
+
* const price = await zero.getPrice();
|
245
|
+
*
|
246
|
+
* if (total.collateralRatioIsBelowCritical(price)) {
|
247
|
+
* // Recovery mode is active
|
248
|
+
* }
|
249
|
+
* ```
|
250
|
+
*/
|
251
|
+
collateralRatioIsBelowCritical(price: Decimalish): boolean;
|
252
|
+
/** Whether the Trove is sufficiently collateralized to be opened during recovery mode. */
|
253
|
+
isOpenableInRecoveryMode(price: Decimalish): boolean;
|
254
|
+
/** @internal */
|
255
|
+
toString(): string;
|
256
|
+
equals(that: Trove): boolean;
|
257
|
+
add(that: Trove): Trove;
|
258
|
+
addCollateral(collateral: Decimalish): Trove;
|
259
|
+
addDebt(debt: Decimalish): Trove;
|
260
|
+
subtract(that: Trove): Trove;
|
261
|
+
subtractCollateral(collateral: Decimalish): Trove;
|
262
|
+
subtractDebt(debt: Decimalish): Trove;
|
263
|
+
multiply(multiplier: Decimalish): Trove;
|
264
|
+
setCollateral(collateral: Decimalish): Trove;
|
265
|
+
setDebt(debt: Decimalish): Trove;
|
266
|
+
private _debtChange;
|
267
|
+
private _collateralChange;
|
268
|
+
/**
|
269
|
+
* Calculate the difference between this Trove and another.
|
270
|
+
*
|
271
|
+
* @param that - The other Trove.
|
272
|
+
* @param borrowingRate - Borrowing rate to use when calculating a borrowed amount.
|
273
|
+
*
|
274
|
+
* @returns
|
275
|
+
* An object representing the change, or `undefined` if the Troves are equal.
|
276
|
+
*/
|
277
|
+
whatChanged(that: Trove, borrowingRate?: Decimalish): TroveChange<Decimal> | undefined;
|
278
|
+
/**
|
279
|
+
* Make a new Trove by applying a {@link TroveChange} to this Trove.
|
280
|
+
*
|
281
|
+
* @param change - The change to apply.
|
282
|
+
* @param borrowingRate - Borrowing rate to use when adding a borrowed amount to the Trove's debt.
|
283
|
+
*/
|
284
|
+
apply(change: TroveChange<Decimal> | undefined, borrowingRate?: Decimalish): Trove;
|
285
|
+
/**
|
286
|
+
* Calculate the result of an {@link TransactableLiquity.openTrove | openTrove()} transaction.
|
287
|
+
*
|
288
|
+
* @param params - Parameters of the transaction.
|
289
|
+
* @param borrowingRate - Borrowing rate to use when calculating the Trove's debt.
|
290
|
+
*/
|
291
|
+
static create(params: TroveCreationParams<Decimalish>, borrowingRate?: Decimalish): Trove;
|
292
|
+
/**
|
293
|
+
* Calculate the parameters of an {@link TransactableLiquity.openTrove | openTrove()} transaction
|
294
|
+
* that will result in the given Trove.
|
295
|
+
*
|
296
|
+
* @param that - The Trove to recreate.
|
297
|
+
* @param borrowingRate - Current borrowing rate.
|
298
|
+
*/
|
299
|
+
static recreate(that: Trove, borrowingRate?: Decimalish): TroveCreationParams<Decimal>;
|
300
|
+
/**
|
301
|
+
* Calculate the result of an {@link TransactableLiquity.adjustTrove | adjustTrove()} transaction
|
302
|
+
* on this Trove.
|
303
|
+
*
|
304
|
+
* @param params - Parameters of the transaction.
|
305
|
+
* @param borrowingRate - Borrowing rate to use when adding to the Trove's debt.
|
306
|
+
*/
|
307
|
+
adjust(params: TroveAdjustmentParams<Decimalish>, borrowingRate?: Decimalish): Trove;
|
308
|
+
/**
|
309
|
+
* Calculate the parameters of an {@link TransactableLiquity.adjustTrove | adjustTrove()}
|
310
|
+
* transaction that will change this Trove into the given Trove.
|
311
|
+
*
|
312
|
+
* @param that - The desired result of the transaction.
|
313
|
+
* @param borrowingRate - Current borrowing rate.
|
314
|
+
*/
|
315
|
+
adjustTo(that: Trove, borrowingRate?: Decimalish): TroveAdjustmentParams<Decimal>;
|
316
|
+
}
|
317
|
+
/** @internal */
|
318
|
+
export declare const _emptyTrove: Trove;
|
319
|
+
/**
|
320
|
+
* Represents whether a UserTrove is open or not, or why it was closed.
|
321
|
+
*
|
322
|
+
* @public
|
323
|
+
*/
|
324
|
+
export declare type UserTroveStatus = "nonExistent" | "open" | "closedByOwner" | "closedByLiquidation" | "closedByRedemption";
|
325
|
+
/**
|
326
|
+
* A Trove that is associated with a single owner.
|
327
|
+
*
|
328
|
+
* @remarks
|
329
|
+
* The SDK uses the base {@link Trove} class as a generic container of collateral and debt, for
|
330
|
+
* example to represent the {@link ReadableLiquity.getTotal | total collateral and debt} locked up
|
331
|
+
* in the protocol.
|
332
|
+
*
|
333
|
+
* The `UserTrove` class extends `Trove` with extra information that's only available for Troves
|
334
|
+
* that are associated with a single owner (such as the owner's address, or the Trove's status).
|
335
|
+
*
|
336
|
+
* @public
|
337
|
+
*/
|
338
|
+
export declare class UserTrove extends Trove {
|
339
|
+
/** Address that owns this Trove. */
|
340
|
+
readonly ownerAddress: string;
|
341
|
+
/** Provides more information when the UserTrove is empty. */
|
342
|
+
readonly status: UserTroveStatus;
|
343
|
+
/** @internal */
|
344
|
+
constructor(ownerAddress: string, status: UserTroveStatus, collateral?: Decimal, debt?: Decimal);
|
345
|
+
equals(that: UserTrove): boolean;
|
346
|
+
/** @internal */
|
347
|
+
toString(): string;
|
348
|
+
}
|
349
|
+
/**
|
350
|
+
* A Trove in its state after the last direct modification.
|
351
|
+
*
|
352
|
+
* @remarks
|
353
|
+
* The Trove may have received collateral and debt shares from liquidations since then.
|
354
|
+
* Use {@link TroveWithPendingRedistribution.applyRedistribution | applyRedistribution()} to
|
355
|
+
* calculate the Trove's most up-to-date state.
|
356
|
+
*
|
357
|
+
* @public
|
358
|
+
*/
|
359
|
+
export declare class TroveWithPendingRedistribution extends UserTrove {
|
360
|
+
private readonly stake;
|
361
|
+
private readonly snapshotOfTotalRedistributed;
|
362
|
+
/** @internal */
|
363
|
+
constructor(ownerAddress: string, status: UserTroveStatus, collateral?: Decimal, debt?: Decimal, stake?: Decimal, snapshotOfTotalRedistributed?: Trove);
|
364
|
+
applyRedistribution(totalRedistributed: Trove): UserTrove;
|
365
|
+
equals(that: TroveWithPendingRedistribution): boolean;
|
366
|
+
}
|
367
|
+
//# sourceMappingURL=Trove.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Trove.d.ts","sourceRoot":"","sources":["../../src/Trove.ts"],"names":[],"mappings":"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"}
|