@sovryn-zero/lib-base 1.0.0-early.access.2 → 1.0.0-early.access.4
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/dist/src/LoC.d.ts +367 -0
- package/dist/src/LoC.d.ts.map +1 -0
- package/dist/src/LoC.js +423 -0
- package/dist/src/LoC.js.map +1 -0
- package/dist/src/ObservableZero.d.ts +15 -0
- package/dist/src/ObservableZero.d.ts.map +1 -0
- package/dist/src/ObservableZero.js +3 -0
- package/dist/src/ObservableZero.js.map +1 -0
- package/dist/src/PopulatableZero.d.ts +125 -0
- package/dist/src/PopulatableZero.d.ts.map +1 -0
- package/dist/src/PopulatableZero.js +3 -0
- package/dist/src/PopulatableZero.js.map +1 -0
- package/dist/src/ReadableZero.d.ts +156 -0
- package/dist/src/ReadableZero.d.ts.map +1 -0
- package/dist/src/ReadableZero.js +3 -0
- package/dist/src/ReadableZero.js.map +1 -0
- package/dist/src/SendableZero.d.ts +156 -0
- package/dist/src/SendableZero.d.ts.map +1 -0
- package/dist/src/SendableZero.js +20 -0
- package/dist/src/SendableZero.js.map +1 -0
- package/dist/src/TransactableZero.d.ts +414 -0
- package/dist/src/TransactableZero.d.ts.map +1 -0
- package/dist/src/TransactableZero.js +18 -0
- package/dist/src/TransactableZero.js.map +1 -0
- package/dist/src/ZeroStore.d.ts +209 -0
- package/dist/src/ZeroStore.d.ts.map +1 -0
- package/dist/src/ZeroStore.js +209 -0
- package/dist/src/ZeroStore.js.map +1 -0
- package/dist/src/_CachedReadableZero.d.ts +55 -0
- package/dist/src/_CachedReadableZero.d.ts.map +1 -0
- package/dist/src/_CachedReadableZero.js +93 -0
- package/dist/src/_CachedReadableZero.js.map +1 -0
- package/dist/src/constants.js +2 -2
- package/package.json +2 -2
- package/src/constants.ts +2 -2
package/dist/src/LoC.js
ADDED
@@ -0,0 +1,423 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
exports.TroveWithPendingRedistribution = exports.UserTrove = exports._emptyTrove = exports.Trove = exports._normalizeTroveAdjustment = exports._normalizeTroveCreation = void 0;
|
7
|
+
const assert_1 = __importDefault(require("assert"));
|
8
|
+
const Decimal_1 = require("./Decimal");
|
9
|
+
const constants_1 = require("./constants");
|
10
|
+
const invalidTroveCreation = (invalidTrove, error) => ({
|
11
|
+
type: "invalidCreation",
|
12
|
+
invalidTrove,
|
13
|
+
error
|
14
|
+
});
|
15
|
+
const troveCreation = (params) => ({
|
16
|
+
type: "creation",
|
17
|
+
params
|
18
|
+
});
|
19
|
+
const troveClosure = (params) => ({
|
20
|
+
type: "closure",
|
21
|
+
params
|
22
|
+
});
|
23
|
+
const troveAdjustment = (params, setToZero) => ({
|
24
|
+
type: "adjustment",
|
25
|
+
params,
|
26
|
+
setToZero
|
27
|
+
});
|
28
|
+
const valueIsDefined = (entry) => entry[1] !== undefined;
|
29
|
+
const allowedTroveCreationKeys = [
|
30
|
+
"depositCollateral",
|
31
|
+
"borrowZUSD"
|
32
|
+
];
|
33
|
+
function checkAllowedTroveCreationKeys(entries) {
|
34
|
+
const badKeys = entries
|
35
|
+
.filter(([k]) => !allowedTroveCreationKeys.includes(k))
|
36
|
+
.map(([k]) => `'${k}'`);
|
37
|
+
if (badKeys.length > 0) {
|
38
|
+
throw new Error(`TroveCreationParams: property ${badKeys.join(", ")} not allowed`);
|
39
|
+
}
|
40
|
+
}
|
41
|
+
const troveCreationParamsFromEntries = (entries) => {
|
42
|
+
const params = Object.fromEntries(entries);
|
43
|
+
const missingKeys = allowedTroveCreationKeys.filter(k => !(k in params)).map(k => `'${k}'`);
|
44
|
+
if (missingKeys.length > 0) {
|
45
|
+
throw new Error(`TroveCreationParams: property ${missingKeys.join(", ")} missing`);
|
46
|
+
}
|
47
|
+
return params;
|
48
|
+
};
|
49
|
+
const decimalize = ([k, v]) => [k, Decimal_1.Decimal.from(v)];
|
50
|
+
const nonZero = ([, v]) => !v.isZero;
|
51
|
+
/** @internal */
|
52
|
+
const _normalizeTroveCreation = (params) => {
|
53
|
+
const definedEntries = Object.entries(params).filter(valueIsDefined);
|
54
|
+
checkAllowedTroveCreationKeys(definedEntries);
|
55
|
+
const nonZeroEntries = definedEntries.map(decimalize);
|
56
|
+
return troveCreationParamsFromEntries(nonZeroEntries);
|
57
|
+
};
|
58
|
+
exports._normalizeTroveCreation = _normalizeTroveCreation;
|
59
|
+
const allowedTroveAdjustmentKeys = [
|
60
|
+
"depositCollateral",
|
61
|
+
"withdrawCollateral",
|
62
|
+
"borrowZUSD",
|
63
|
+
"repayZUSD"
|
64
|
+
];
|
65
|
+
function checkAllowedTroveAdjustmentKeys(entries) {
|
66
|
+
const badKeys = entries
|
67
|
+
.filter(([k]) => !allowedTroveAdjustmentKeys.includes(k))
|
68
|
+
.map(([k]) => `'${k}'`);
|
69
|
+
if (badKeys.length > 0) {
|
70
|
+
throw new Error(`TroveAdjustmentParams: property ${badKeys.join(", ")} not allowed`);
|
71
|
+
}
|
72
|
+
}
|
73
|
+
const collateralChangeFrom = ({ depositCollateral, withdrawCollateral }) => {
|
74
|
+
if (depositCollateral !== undefined && withdrawCollateral !== undefined) {
|
75
|
+
throw new Error("TroveAdjustmentParams: 'depositCollateral' and 'withdrawCollateral' " +
|
76
|
+
"can't be present at the same time");
|
77
|
+
}
|
78
|
+
if (depositCollateral !== undefined) {
|
79
|
+
return { depositCollateral };
|
80
|
+
}
|
81
|
+
if (withdrawCollateral !== undefined) {
|
82
|
+
return { withdrawCollateral };
|
83
|
+
}
|
84
|
+
};
|
85
|
+
const debtChangeFrom = ({ borrowZUSD, repayZUSD }) => {
|
86
|
+
if (borrowZUSD !== undefined && repayZUSD !== undefined) {
|
87
|
+
throw new Error("TroveAdjustmentParams: 'borrowZUSD' and 'repayZUSD' can't be present at the same time");
|
88
|
+
}
|
89
|
+
if (borrowZUSD !== undefined) {
|
90
|
+
return { borrowZUSD };
|
91
|
+
}
|
92
|
+
if (repayZUSD !== undefined) {
|
93
|
+
return { repayZUSD };
|
94
|
+
}
|
95
|
+
};
|
96
|
+
const troveAdjustmentParamsFromEntries = (entries) => {
|
97
|
+
const params = Object.fromEntries(entries);
|
98
|
+
const collateralChange = collateralChangeFrom(params);
|
99
|
+
const debtChange = debtChangeFrom(params);
|
100
|
+
if (collateralChange !== undefined && debtChange !== undefined) {
|
101
|
+
return { ...collateralChange, ...debtChange };
|
102
|
+
}
|
103
|
+
if (collateralChange !== undefined) {
|
104
|
+
return collateralChange;
|
105
|
+
}
|
106
|
+
if (debtChange !== undefined) {
|
107
|
+
return debtChange;
|
108
|
+
}
|
109
|
+
throw new Error("TroveAdjustmentParams: must include at least one non-zero parameter");
|
110
|
+
};
|
111
|
+
/** @internal */
|
112
|
+
const _normalizeTroveAdjustment = (params) => {
|
113
|
+
const definedEntries = Object.entries(params).filter(valueIsDefined);
|
114
|
+
checkAllowedTroveAdjustmentKeys(definedEntries);
|
115
|
+
const nonZeroEntries = definedEntries.map(decimalize).filter(nonZero);
|
116
|
+
return troveAdjustmentParamsFromEntries(nonZeroEntries);
|
117
|
+
};
|
118
|
+
exports._normalizeTroveAdjustment = _normalizeTroveAdjustment;
|
119
|
+
const applyFee = (borrowingRate, debtIncrease) => debtIncrease.mul(Decimal_1.Decimal.ONE.add(borrowingRate));
|
120
|
+
const unapplyFee = (borrowingRate, debtIncrease) => debtIncrease._divCeil(Decimal_1.Decimal.ONE.add(borrowingRate));
|
121
|
+
const NOMINAL_COLLATERAL_RATIO_PRECISION = Decimal_1.Decimal.from(100);
|
122
|
+
/**
|
123
|
+
* A combination of collateral and debt.
|
124
|
+
*
|
125
|
+
* @public
|
126
|
+
*/
|
127
|
+
class Trove {
|
128
|
+
/** @internal */
|
129
|
+
constructor(collateral = Decimal_1.Decimal.ZERO, debt = Decimal_1.Decimal.ZERO) {
|
130
|
+
this.collateral = collateral;
|
131
|
+
this.debt = debt;
|
132
|
+
}
|
133
|
+
get isEmpty() {
|
134
|
+
return this.collateral.isZero && this.debt.isZero;
|
135
|
+
}
|
136
|
+
/**
|
137
|
+
* Amount of ZUSD that must be repaid to close this Trove.
|
138
|
+
*
|
139
|
+
* @remarks
|
140
|
+
* This doesn't include the liquidation reserve, which is refunded in case of normal closure.
|
141
|
+
*/
|
142
|
+
get netDebt() {
|
143
|
+
if (this.debt.lt(constants_1.ZUSD_LIQUIDATION_RESERVE)) {
|
144
|
+
throw new Error(`netDebt should not be used when debt < ${constants_1.ZUSD_LIQUIDATION_RESERVE}`);
|
145
|
+
}
|
146
|
+
return this.debt.sub(constants_1.ZUSD_LIQUIDATION_RESERVE);
|
147
|
+
}
|
148
|
+
/** @internal */
|
149
|
+
get _nominalCollateralRatio() {
|
150
|
+
return this.collateral.mulDiv(NOMINAL_COLLATERAL_RATIO_PRECISION, this.debt);
|
151
|
+
}
|
152
|
+
/** Calculate the Trove's collateralization ratio at a given price. */
|
153
|
+
collateralRatio(price) {
|
154
|
+
return this.collateral.mulDiv(price, this.debt);
|
155
|
+
}
|
156
|
+
/**
|
157
|
+
* Whether the Trove is undercollateralized at a given price.
|
158
|
+
*
|
159
|
+
* @returns
|
160
|
+
* `true` if the Trove's collateralization ratio is less than the
|
161
|
+
* {@link MINIMUM_COLLATERAL_RATIO}.
|
162
|
+
*/
|
163
|
+
collateralRatioIsBelowMinimum(price) {
|
164
|
+
return this.collateralRatio(price).lt(constants_1.MINIMUM_COLLATERAL_RATIO);
|
165
|
+
}
|
166
|
+
/**
|
167
|
+
* Whether the collateralization ratio is less than the {@link CRITICAL_COLLATERAL_RATIO} at a
|
168
|
+
* given price.
|
169
|
+
*
|
170
|
+
* @example
|
171
|
+
* Can be used to check whether the Zero protocol is in recovery mode by using it on the return
|
172
|
+
* value of {@link ReadableLiquity.getTotal | getTotal()}. For example:
|
173
|
+
*
|
174
|
+
* ```typescript
|
175
|
+
* const total = await zero.getTotal();
|
176
|
+
* const price = await zero.getPrice();
|
177
|
+
*
|
178
|
+
* if (total.collateralRatioIsBelowCritical(price)) {
|
179
|
+
* // Recovery mode is active
|
180
|
+
* }
|
181
|
+
* ```
|
182
|
+
*/
|
183
|
+
collateralRatioIsBelowCritical(price) {
|
184
|
+
return this.collateralRatio(price).lt(constants_1.CRITICAL_COLLATERAL_RATIO);
|
185
|
+
}
|
186
|
+
/** Whether the Trove is sufficiently collateralized to be opened during recovery mode. */
|
187
|
+
isOpenableInRecoveryMode(price) {
|
188
|
+
return this.collateralRatio(price).gte(constants_1.CRITICAL_COLLATERAL_RATIO);
|
189
|
+
}
|
190
|
+
/** @internal */
|
191
|
+
toString() {
|
192
|
+
return `{ collateral: ${this.collateral}, debt: ${this.debt} }`;
|
193
|
+
}
|
194
|
+
equals(that) {
|
195
|
+
return this.collateral.eq(that.collateral) && this.debt.eq(that.debt);
|
196
|
+
}
|
197
|
+
add(that) {
|
198
|
+
return new Trove(this.collateral.add(that.collateral), this.debt.add(that.debt));
|
199
|
+
}
|
200
|
+
addCollateral(collateral) {
|
201
|
+
return new Trove(this.collateral.add(collateral), this.debt);
|
202
|
+
}
|
203
|
+
addDebt(debt) {
|
204
|
+
return new Trove(this.collateral, this.debt.add(debt));
|
205
|
+
}
|
206
|
+
subtract(that) {
|
207
|
+
const { collateral, debt } = that;
|
208
|
+
return new Trove(this.collateral.gt(collateral) ? this.collateral.sub(collateral) : Decimal_1.Decimal.ZERO, this.debt.gt(debt) ? this.debt.sub(debt) : Decimal_1.Decimal.ZERO);
|
209
|
+
}
|
210
|
+
subtractCollateral(collateral) {
|
211
|
+
return new Trove(this.collateral.gt(collateral) ? this.collateral.sub(collateral) : Decimal_1.Decimal.ZERO, this.debt);
|
212
|
+
}
|
213
|
+
subtractDebt(debt) {
|
214
|
+
return new Trove(this.collateral, this.debt.gt(debt) ? this.debt.sub(debt) : Decimal_1.Decimal.ZERO);
|
215
|
+
}
|
216
|
+
multiply(multiplier) {
|
217
|
+
return new Trove(this.collateral.mul(multiplier), this.debt.mul(multiplier));
|
218
|
+
}
|
219
|
+
setCollateral(collateral) {
|
220
|
+
return new Trove(Decimal_1.Decimal.from(collateral), this.debt);
|
221
|
+
}
|
222
|
+
setDebt(debt) {
|
223
|
+
return new Trove(this.collateral, Decimal_1.Decimal.from(debt));
|
224
|
+
}
|
225
|
+
_debtChange({ debt }, borrowingRate) {
|
226
|
+
return debt.gt(this.debt)
|
227
|
+
? { borrowZUSD: unapplyFee(borrowingRate, debt.sub(this.debt)) }
|
228
|
+
: { repayZUSD: this.debt.sub(debt) };
|
229
|
+
}
|
230
|
+
_collateralChange({ collateral }) {
|
231
|
+
return collateral.gt(this.collateral)
|
232
|
+
? { depositCollateral: collateral.sub(this.collateral) }
|
233
|
+
: { withdrawCollateral: this.collateral.sub(collateral) };
|
234
|
+
}
|
235
|
+
/**
|
236
|
+
* Calculate the difference between this Trove and another.
|
237
|
+
*
|
238
|
+
* @param that - The other Trove.
|
239
|
+
* @param borrowingRate - Borrowing rate to use when calculating a borrowed amount.
|
240
|
+
*
|
241
|
+
* @returns
|
242
|
+
* An object representing the change, or `undefined` if the Troves are equal.
|
243
|
+
*/
|
244
|
+
whatChanged(that, borrowingRate = constants_1.MINIMUM_BORROWING_RATE) {
|
245
|
+
var _a;
|
246
|
+
if (this.collateral.eq(that.collateral) && this.debt.eq(that.debt)) {
|
247
|
+
return undefined;
|
248
|
+
}
|
249
|
+
if (this.isEmpty) {
|
250
|
+
if (that.debt.lt(constants_1.ZUSD_LIQUIDATION_RESERVE)) {
|
251
|
+
return invalidTroveCreation(that, "missingLiquidationReserve");
|
252
|
+
}
|
253
|
+
return troveCreation({
|
254
|
+
depositCollateral: that.collateral,
|
255
|
+
borrowZUSD: unapplyFee(borrowingRate, that.netDebt)
|
256
|
+
});
|
257
|
+
}
|
258
|
+
if (that.isEmpty) {
|
259
|
+
return troveClosure(this.netDebt.nonZero
|
260
|
+
? { withdrawCollateral: this.collateral, repayZUSD: this.netDebt }
|
261
|
+
: { withdrawCollateral: this.collateral });
|
262
|
+
}
|
263
|
+
return this.collateral.eq(that.collateral)
|
264
|
+
? troveAdjustment(this._debtChange(that, borrowingRate), that.debt.zero && "debt")
|
265
|
+
: this.debt.eq(that.debt)
|
266
|
+
? troveAdjustment(this._collateralChange(that), that.collateral.zero && "collateral")
|
267
|
+
: troveAdjustment({
|
268
|
+
...this._debtChange(that, borrowingRate),
|
269
|
+
...this._collateralChange(that)
|
270
|
+
}, (_a = (that.debt.zero && "debt")) !== null && _a !== void 0 ? _a : (that.collateral.zero && "collateral"));
|
271
|
+
}
|
272
|
+
/**
|
273
|
+
* Make a new Trove by applying a {@link TroveChange} to this Trove.
|
274
|
+
*
|
275
|
+
* @param change - The change to apply.
|
276
|
+
* @param borrowingRate - Borrowing rate to use when adding a borrowed amount to the Trove's debt.
|
277
|
+
*/
|
278
|
+
apply(change, borrowingRate = constants_1.MINIMUM_BORROWING_RATE) {
|
279
|
+
if (!change) {
|
280
|
+
return this;
|
281
|
+
}
|
282
|
+
switch (change.type) {
|
283
|
+
case "invalidCreation":
|
284
|
+
if (!this.isEmpty) {
|
285
|
+
throw new Error("Can't create onto existing Trove");
|
286
|
+
}
|
287
|
+
return change.invalidTrove;
|
288
|
+
case "creation": {
|
289
|
+
if (!this.isEmpty) {
|
290
|
+
throw new Error("Can't create onto existing Trove");
|
291
|
+
}
|
292
|
+
const { depositCollateral, borrowZUSD } = change.params;
|
293
|
+
return new Trove(depositCollateral, constants_1.ZUSD_LIQUIDATION_RESERVE.add(applyFee(borrowingRate, borrowZUSD)));
|
294
|
+
}
|
295
|
+
case "closure":
|
296
|
+
if (this.isEmpty) {
|
297
|
+
throw new Error("Can't close empty Trove");
|
298
|
+
}
|
299
|
+
return exports._emptyTrove;
|
300
|
+
case "adjustment": {
|
301
|
+
const { setToZero, params: { depositCollateral, withdrawCollateral, borrowZUSD, repayZUSD } } = change;
|
302
|
+
const collateralDecrease = withdrawCollateral !== null && withdrawCollateral !== void 0 ? withdrawCollateral : Decimal_1.Decimal.ZERO;
|
303
|
+
const collateralIncrease = depositCollateral !== null && depositCollateral !== void 0 ? depositCollateral : Decimal_1.Decimal.ZERO;
|
304
|
+
const debtDecrease = repayZUSD !== null && repayZUSD !== void 0 ? repayZUSD : Decimal_1.Decimal.ZERO;
|
305
|
+
const debtIncrease = borrowZUSD ? applyFee(borrowingRate, borrowZUSD) : Decimal_1.Decimal.ZERO;
|
306
|
+
return setToZero === "collateral"
|
307
|
+
? this.setCollateral(Decimal_1.Decimal.ZERO).addDebt(debtIncrease).subtractDebt(debtDecrease)
|
308
|
+
: setToZero === "debt"
|
309
|
+
? this.setDebt(Decimal_1.Decimal.ZERO)
|
310
|
+
.addCollateral(collateralIncrease)
|
311
|
+
.subtractCollateral(collateralDecrease)
|
312
|
+
: this.add(new Trove(collateralIncrease, debtIncrease)).subtract(new Trove(collateralDecrease, debtDecrease));
|
313
|
+
}
|
314
|
+
}
|
315
|
+
}
|
316
|
+
/**
|
317
|
+
* Calculate the result of an {@link TransactableLiquity.openTrove | openTrove()} transaction.
|
318
|
+
*
|
319
|
+
* @param params - Parameters of the transaction.
|
320
|
+
* @param borrowingRate - Borrowing rate to use when calculating the Trove's debt.
|
321
|
+
*/
|
322
|
+
static create(params, borrowingRate) {
|
323
|
+
return exports._emptyTrove.apply(troveCreation(exports._normalizeTroveCreation(params)), borrowingRate);
|
324
|
+
}
|
325
|
+
/**
|
326
|
+
* Calculate the parameters of an {@link TransactableLiquity.openTrove | openTrove()} transaction
|
327
|
+
* that will result in the given Trove.
|
328
|
+
*
|
329
|
+
* @param that - The Trove to recreate.
|
330
|
+
* @param borrowingRate - Current borrowing rate.
|
331
|
+
*/
|
332
|
+
static recreate(that, borrowingRate) {
|
333
|
+
const change = exports._emptyTrove.whatChanged(that, borrowingRate);
|
334
|
+
assert_1.default((change === null || change === void 0 ? void 0 : change.type) === "creation");
|
335
|
+
return change.params;
|
336
|
+
}
|
337
|
+
/**
|
338
|
+
* Calculate the result of an {@link TransactableLiquity.adjustTrove | adjustTrove()} transaction
|
339
|
+
* on this Trove.
|
340
|
+
*
|
341
|
+
* @param params - Parameters of the transaction.
|
342
|
+
* @param borrowingRate - Borrowing rate to use when adding to the Trove's debt.
|
343
|
+
*/
|
344
|
+
adjust(params, borrowingRate) {
|
345
|
+
return this.apply(troveAdjustment(exports._normalizeTroveAdjustment(params)), borrowingRate);
|
346
|
+
}
|
347
|
+
/**
|
348
|
+
* Calculate the parameters of an {@link TransactableLiquity.adjustTrove | adjustTrove()}
|
349
|
+
* transaction that will change this Trove into the given Trove.
|
350
|
+
*
|
351
|
+
* @param that - The desired result of the transaction.
|
352
|
+
* @param borrowingRate - Current borrowing rate.
|
353
|
+
*/
|
354
|
+
adjustTo(that, borrowingRate) {
|
355
|
+
const change = this.whatChanged(that, borrowingRate);
|
356
|
+
assert_1.default((change === null || change === void 0 ? void 0 : change.type) === "adjustment");
|
357
|
+
return change.params;
|
358
|
+
}
|
359
|
+
}
|
360
|
+
exports.Trove = Trove;
|
361
|
+
/** @internal */
|
362
|
+
exports._emptyTrove = new Trove();
|
363
|
+
/**
|
364
|
+
* A Trove that is associated with a single owner.
|
365
|
+
*
|
366
|
+
* @remarks
|
367
|
+
* The SDK uses the base {@link Trove} class as a generic container of collateral and debt, for
|
368
|
+
* example to represent the {@link ReadableLiquity.getTotal | total collateral and debt} locked up
|
369
|
+
* in the protocol.
|
370
|
+
*
|
371
|
+
* The `UserTrove` class extends `Trove` with extra information that's only available for Troves
|
372
|
+
* that are associated with a single owner (such as the owner's address, or the Trove's status).
|
373
|
+
*
|
374
|
+
* @public
|
375
|
+
*/
|
376
|
+
class UserTrove extends Trove {
|
377
|
+
/** @internal */
|
378
|
+
constructor(ownerAddress, status, collateral, debt) {
|
379
|
+
super(collateral, debt);
|
380
|
+
this.ownerAddress = ownerAddress;
|
381
|
+
this.status = status;
|
382
|
+
}
|
383
|
+
equals(that) {
|
384
|
+
return (super.equals(that) && this.ownerAddress === that.ownerAddress && this.status === that.status);
|
385
|
+
}
|
386
|
+
/** @internal */
|
387
|
+
toString() {
|
388
|
+
return (`{ ownerAddress: "${this.ownerAddress}"` +
|
389
|
+
`, collateral: ${this.collateral}` +
|
390
|
+
`, debt: ${this.debt}` +
|
391
|
+
`, status: "${this.status}" }`);
|
392
|
+
}
|
393
|
+
}
|
394
|
+
exports.UserTrove = UserTrove;
|
395
|
+
/**
|
396
|
+
* A Trove in its state after the last direct modification.
|
397
|
+
*
|
398
|
+
* @remarks
|
399
|
+
* The Trove may have received collateral and debt shares from liquidations since then.
|
400
|
+
* Use {@link TroveWithPendingRedistribution.applyRedistribution | applyRedistribution()} to
|
401
|
+
* calculate the Trove's most up-to-date state.
|
402
|
+
*
|
403
|
+
* @public
|
404
|
+
*/
|
405
|
+
class TroveWithPendingRedistribution extends UserTrove {
|
406
|
+
/** @internal */
|
407
|
+
constructor(ownerAddress, status, collateral, debt, stake = Decimal_1.Decimal.ZERO, snapshotOfTotalRedistributed = exports._emptyTrove) {
|
408
|
+
super(ownerAddress, status, collateral, debt);
|
409
|
+
this.stake = stake;
|
410
|
+
this.snapshotOfTotalRedistributed = snapshotOfTotalRedistributed;
|
411
|
+
}
|
412
|
+
applyRedistribution(totalRedistributed) {
|
413
|
+
const afterRedistribution = this.add(totalRedistributed.subtract(this.snapshotOfTotalRedistributed).multiply(this.stake));
|
414
|
+
return new UserTrove(this.ownerAddress, this.status, afterRedistribution.collateral, afterRedistribution.debt);
|
415
|
+
}
|
416
|
+
equals(that) {
|
417
|
+
return (super.equals(that) &&
|
418
|
+
this.stake.eq(that.stake) &&
|
419
|
+
this.snapshotOfTotalRedistributed.equals(that.snapshotOfTotalRedistributed));
|
420
|
+
}
|
421
|
+
}
|
422
|
+
exports.TroveWithPendingRedistribution = TroveWithPendingRedistribution;
|
423
|
+
//# sourceMappingURL=Trove.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Trove.js","sourceRoot":"","sources":["../../src/Trove.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import { Decimal } from "./Decimal";
|
2
|
+
import { Trove, TroveWithPendingRedistribution } from "./Trove";
|
3
|
+
import { StabilityDeposit } from "./StabilityDeposit";
|
4
|
+
/** @alpha */
|
5
|
+
export interface ObservableLiquity {
|
6
|
+
watchTotalRedistributed(onTotalRedistributedChanged: (totalRedistributed: Trove) => void): () => void;
|
7
|
+
watchTroveWithoutRewards(onTroveChanged: (trove: TroveWithPendingRedistribution) => void, address?: string): () => void;
|
8
|
+
watchNumberOfTroves(onNumberOfTrovesChanged: (numberOfTroves: number) => void): () => void;
|
9
|
+
watchPrice(onPriceChanged: (price: Decimal) => void): () => void;
|
10
|
+
watchTotal(onTotalChanged: (total: Trove) => void): () => void;
|
11
|
+
watchStabilityDeposit(onStabilityDepositChanged: (stabilityDeposit: StabilityDeposit) => void, address?: string): () => void;
|
12
|
+
watchZUSDInStabilityPool(onZUSDInStabilityPoolChanged: (zusdInStabilityPool: Decimal) => void): () => void;
|
13
|
+
watchZUSDBalance(onZUSDBalanceChanged: (balance: Decimal) => void, address?: string): () => void;
|
14
|
+
}
|
15
|
+
//# sourceMappingURL=ObservableLiquity.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ObservableLiquity.d.ts","sourceRoot":"","sources":["../../src/ObservableLiquity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,8BAA8B,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,aAAa;AACb,MAAM,WAAW,iBAAiB;IAChC,uBAAuB,CACrB,2BAA2B,EAAE,CAAC,kBAAkB,EAAE,KAAK,KAAK,IAAI,GAC/D,MAAM,IAAI,CAAC;IAEd,wBAAwB,CACtB,cAAc,EAAE,CAAC,KAAK,EAAE,8BAA8B,KAAK,IAAI,EAC/D,OAAO,CAAC,EAAE,MAAM,GACf,MAAM,IAAI,CAAC;IAEd,mBAAmB,CAAC,uBAAuB,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAE3F,UAAU,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAEjE,UAAU,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAE/D,qBAAqB,CACnB,yBAAyB,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,KAAK,IAAI,EACvE,OAAO,CAAC,EAAE,MAAM,GACf,MAAM,IAAI,CAAC;IAEd,wBAAwB,CACtB,4BAA4B,EAAE,CAAC,mBAAmB,EAAE,OAAO,KAAK,IAAI,GACnE,MAAM,IAAI,CAAC;IAEd,gBAAgB,CAAC,oBAAoB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,IAAI,CAAC;CAClG"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ObservableLiquity.js","sourceRoot":"","sources":["../../src/ObservableLiquity.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1,125 @@
|
|
1
|
+
import { Decimal, Decimalish } from "./Decimal";
|
2
|
+
import { TroveAdjustmentParams, TroveCreationParams } from "./Trove";
|
3
|
+
import { LiquityReceipt, SendableLiquity, SentLiquityTransaction } from "./SendableLiquity";
|
4
|
+
import { CollateralGainTransferDetails, LiquidationDetails, RedemptionDetails, StabilityDepositChangeDetails, StabilityPoolGainsWithdrawalDetails, TroveAdjustmentDetails, TroveClosureDetails, TroveCreationDetails } from "./TransactableLiquity";
|
5
|
+
/**
|
6
|
+
* A transaction that has been prepared for sending.
|
7
|
+
*
|
8
|
+
* @remarks
|
9
|
+
* Implemented by {@link @sovryn-zero/lib-ethers#PopulatedEthersLiquityTransaction}.
|
10
|
+
*
|
11
|
+
* @public
|
12
|
+
*/
|
13
|
+
export interface PopulatedLiquityTransaction<P = unknown, T extends SentLiquityTransaction = SentLiquityTransaction> {
|
14
|
+
/** Implementation-specific populated transaction object. */
|
15
|
+
readonly rawPopulatedTransaction: P;
|
16
|
+
/**
|
17
|
+
* Send the transaction.
|
18
|
+
*
|
19
|
+
* @returns An object that implements {@link @sovryn-zero/lib-base#SentLiquityTransaction}.
|
20
|
+
*/
|
21
|
+
send(): Promise<T>;
|
22
|
+
}
|
23
|
+
/**
|
24
|
+
* A redemption transaction that has been prepared for sending.
|
25
|
+
*
|
26
|
+
* @remarks
|
27
|
+
* The Zero protocol fulfills redemptions by repaying the debt of Troves in ascending order of
|
28
|
+
* their collateralization ratio, and taking a portion of their collateral in exchange. Due to the
|
29
|
+
* {@link @sovryn-zero/lib-base#ZUSD_MINIMUM_DEBT | minimum debt} requirement that Troves must fulfill,
|
30
|
+
* some ZUSD amounts are not possible to redeem exactly.
|
31
|
+
*
|
32
|
+
* When {@link @sovryn-zero/lib-base#PopulatableLiquity.redeemZUSD | redeemZUSD()} is called with an
|
33
|
+
* amount that can't be fully redeemed, the amount will be truncated (see the `redeemableZUSDAmount`
|
34
|
+
* property). When this happens, the redeemer can either redeem the truncated amount by sending the
|
35
|
+
* transaction unchanged, or prepare a new transaction by
|
36
|
+
* {@link @sovryn-zero/lib-base#PopulatedRedemption.increaseAmountByMinimumNetDebt | increasing the amount}
|
37
|
+
* to the next lowest possible value, which is the sum of the truncated amount and
|
38
|
+
* {@link @sovryn-zero/lib-base#ZUSD_MINIMUM_NET_DEBT}.
|
39
|
+
*
|
40
|
+
* @public
|
41
|
+
*/
|
42
|
+
export interface PopulatedRedemption<P = unknown, S = unknown, R = unknown> extends PopulatedLiquityTransaction<P, SentLiquityTransaction<S, LiquityReceipt<R, RedemptionDetails>>> {
|
43
|
+
/** Amount of ZUSD the redeemer is trying to redeem. */
|
44
|
+
readonly attemptedZUSDAmount: Decimal;
|
45
|
+
/** Maximum amount of ZUSD that is currently redeemable from `attemptedZUSDAmount`. */
|
46
|
+
readonly redeemableZUSDAmount: Decimal;
|
47
|
+
/** Whether `redeemableZUSDAmount` is less than `attemptedZUSDAmount`. */
|
48
|
+
readonly isTruncated: boolean;
|
49
|
+
/**
|
50
|
+
* Prepare a new transaction by increasing the attempted amount to the next lowest redeemable
|
51
|
+
* value.
|
52
|
+
*
|
53
|
+
* @param maxRedemptionRate - Maximum acceptable
|
54
|
+
* {@link @sovryn-zero/lib-base#Fees.redemptionRate | redemption rate} to
|
55
|
+
* use in the new transaction.
|
56
|
+
*
|
57
|
+
* @remarks
|
58
|
+
* If `maxRedemptionRate` is omitted, the original transaction's `maxRedemptionRate` is reused
|
59
|
+
* unless that was also omitted, in which case the current redemption rate (based on the increased
|
60
|
+
* amount) plus 0.1% is used as maximum acceptable rate.
|
61
|
+
*/
|
62
|
+
increaseAmountByMinimumNetDebt(maxRedemptionRate?: Decimalish): Promise<PopulatedRedemption<P, S, R>>;
|
63
|
+
}
|
64
|
+
/** @internal */
|
65
|
+
export declare type _PopulatableFrom<T, P> = {
|
66
|
+
[M in keyof T]: T[M] extends (...args: infer A) => Promise<infer U> ? U extends SentLiquityTransaction ? (...args: A) => Promise<PopulatedLiquityTransaction<P, U>> : never : never;
|
67
|
+
};
|
68
|
+
/**
|
69
|
+
* Prepare Zero transactions for sending.
|
70
|
+
*
|
71
|
+
* @remarks
|
72
|
+
* The functions return an object implementing {@link PopulatedLiquityTransaction}, which can be
|
73
|
+
* used to send the transaction and get a {@link SentLiquityTransaction}.
|
74
|
+
*
|
75
|
+
* Implemented by {@link @sovryn-zero/lib-ethers#PopulatableEthersLiquity}.
|
76
|
+
*
|
77
|
+
* @public
|
78
|
+
*/
|
79
|
+
export interface PopulatableLiquity<R = unknown, S = unknown, P = unknown> extends _PopulatableFrom<SendableLiquity<R, S>, P> {
|
80
|
+
/** {@inheritDoc TransactableLiquity.openTrove} */
|
81
|
+
openTrove(params: TroveCreationParams<Decimalish>, maxBorrowingRate?: Decimalish): Promise<PopulatedLiquityTransaction<P, SentLiquityTransaction<S, LiquityReceipt<R, TroveCreationDetails>>>>;
|
82
|
+
/** {@inheritDoc TransactableLiquity.closeTrove} */
|
83
|
+
closeTrove(): Promise<PopulatedLiquityTransaction<P, SentLiquityTransaction<S, LiquityReceipt<R, TroveClosureDetails>>>>;
|
84
|
+
/** {@inheritDoc TransactableLiquity.adjustTrove} */
|
85
|
+
adjustTrove(params: TroveAdjustmentParams<Decimalish>, maxBorrowingRate?: Decimalish): Promise<PopulatedLiquityTransaction<P, SentLiquityTransaction<S, LiquityReceipt<R, TroveAdjustmentDetails>>>>;
|
86
|
+
/** {@inheritDoc TransactableLiquity.depositCollateral} */
|
87
|
+
depositCollateral(amount: Decimalish): Promise<PopulatedLiquityTransaction<P, SentLiquityTransaction<S, LiquityReceipt<R, TroveAdjustmentDetails>>>>;
|
88
|
+
/** {@inheritDoc TransactableLiquity.withdrawCollateral} */
|
89
|
+
withdrawCollateral(amount: Decimalish): Promise<PopulatedLiquityTransaction<P, SentLiquityTransaction<S, LiquityReceipt<R, TroveAdjustmentDetails>>>>;
|
90
|
+
/** {@inheritDoc TransactableLiquity.borrowZUSD} */
|
91
|
+
borrowZUSD(amount: Decimalish, maxBorrowingRate?: Decimalish): Promise<PopulatedLiquityTransaction<P, SentLiquityTransaction<S, LiquityReceipt<R, TroveAdjustmentDetails>>>>;
|
92
|
+
/** {@inheritDoc TransactableLiquity.repayZUSD} */
|
93
|
+
repayZUSD(amount: Decimalish): Promise<PopulatedLiquityTransaction<P, SentLiquityTransaction<S, LiquityReceipt<R, TroveAdjustmentDetails>>>>;
|
94
|
+
/** @internal */
|
95
|
+
setPrice(price: Decimalish): Promise<PopulatedLiquityTransaction<P, SentLiquityTransaction<S, LiquityReceipt<R, void>>>>;
|
96
|
+
/** {@inheritDoc TransactableLiquity.liquidate} */
|
97
|
+
liquidate(address: string | string[]): Promise<PopulatedLiquityTransaction<P, SentLiquityTransaction<S, LiquityReceipt<R, LiquidationDetails>>>>;
|
98
|
+
/** {@inheritDoc TransactableLiquity.liquidateUpTo} */
|
99
|
+
liquidateUpTo(maximumNumberOfTrovesToLiquidate: number): Promise<PopulatedLiquityTransaction<P, SentLiquityTransaction<S, LiquityReceipt<R, LiquidationDetails>>>>;
|
100
|
+
/** {@inheritDoc TransactableLiquity.depositZUSDInStabilityPool} */
|
101
|
+
depositZUSDInStabilityPool(amount: Decimalish, frontendTag?: string): Promise<PopulatedLiquityTransaction<P, SentLiquityTransaction<S, LiquityReceipt<R, StabilityDepositChangeDetails>>>>;
|
102
|
+
/** {@inheritDoc TransactableLiquity.withdrawZUSDFromStabilityPool} */
|
103
|
+
withdrawZUSDFromStabilityPool(amount: Decimalish): Promise<PopulatedLiquityTransaction<P, SentLiquityTransaction<S, LiquityReceipt<R, StabilityDepositChangeDetails>>>>;
|
104
|
+
/** {@inheritDoc TransactableLiquity.withdrawGainsFromStabilityPool} */
|
105
|
+
withdrawGainsFromStabilityPool(): Promise<PopulatedLiquityTransaction<P, SentLiquityTransaction<S, LiquityReceipt<R, StabilityPoolGainsWithdrawalDetails>>>>;
|
106
|
+
/** {@inheritDoc TransactableLiquity.transferCollateralGainToTrove} */
|
107
|
+
transferCollateralGainToTrove(): Promise<PopulatedLiquityTransaction<P, SentLiquityTransaction<S, LiquityReceipt<R, CollateralGainTransferDetails>>>>;
|
108
|
+
/** {@inheritDoc TransactableLiquity.sendZUSD} */
|
109
|
+
sendZUSD(toAddress: string, amount: Decimalish): Promise<PopulatedLiquityTransaction<P, SentLiquityTransaction<S, LiquityReceipt<R, void>>>>;
|
110
|
+
/** {@inheritDoc TransactableLiquity.sendZERO} */
|
111
|
+
sendZERO(toAddress: string, amount: Decimalish): Promise<PopulatedLiquityTransaction<P, SentLiquityTransaction<S, LiquityReceipt<R, void>>>>;
|
112
|
+
/** {@inheritDoc TransactableLiquity.redeemZUSD} */
|
113
|
+
redeemZUSD(amount: Decimalish, maxRedemptionRate?: Decimalish): Promise<PopulatedRedemption<P, S, R>>;
|
114
|
+
/** {@inheritDoc TransactableLiquity.claimCollateralSurplus} */
|
115
|
+
claimCollateralSurplus(): Promise<PopulatedLiquityTransaction<P, SentLiquityTransaction<S, LiquityReceipt<R, void>>>>;
|
116
|
+
/** {@inheritDoc TransactableLiquity.stakeZERO} */
|
117
|
+
stakeZERO(amount: Decimalish): Promise<PopulatedLiquityTransaction<P, SentLiquityTransaction<S, LiquityReceipt<R, void>>>>;
|
118
|
+
/** {@inheritDoc TransactableLiquity.unstakeZERO} */
|
119
|
+
unstakeZERO(amount: Decimalish): Promise<PopulatedLiquityTransaction<P, SentLiquityTransaction<S, LiquityReceipt<R, void>>>>;
|
120
|
+
/** {@inheritDoc TransactableLiquity.withdrawGainsFromStaking} */
|
121
|
+
withdrawGainsFromStaking(): Promise<PopulatedLiquityTransaction<P, SentLiquityTransaction<S, LiquityReceipt<R, void>>>>;
|
122
|
+
/** {@inheritDoc TransactableLiquity.registerFrontend} */
|
123
|
+
registerFrontend(kickbackRate: Decimalish): Promise<PopulatedLiquityTransaction<P, SentLiquityTransaction<S, LiquityReceipt<R, void>>>>;
|
124
|
+
}
|
125
|
+
//# sourceMappingURL=PopulatableLiquity.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"PopulatableLiquity.d.ts","sourceRoot":"","sources":["../../src/PopulatableLiquity.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"PopulatableLiquity.js","sourceRoot":"","sources":["../../src/PopulatableLiquity.ts"],"names":[],"mappings":""}
|