@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,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,52 @@
|
|
1
|
+
import { Decimal, Decimalish } from "./Decimal";
|
2
|
+
/**
|
3
|
+
* Represents the change between two states of an ZERO Stake.
|
4
|
+
*
|
5
|
+
* @public
|
6
|
+
*/
|
7
|
+
export declare type ZEROStakeChange<T> = {
|
8
|
+
stakeZERO: T;
|
9
|
+
unstakeZERO?: undefined;
|
10
|
+
} | {
|
11
|
+
stakeZERO?: undefined;
|
12
|
+
unstakeZERO: T;
|
13
|
+
unstakeAllZERO: boolean;
|
14
|
+
};
|
15
|
+
/**
|
16
|
+
* Represents a user's ZERO stake and accrued gains.
|
17
|
+
*
|
18
|
+
* @remarks
|
19
|
+
* Returned by the {@link ReadableLiquity.getZEROStake | getZEROStake()} function.
|
20
|
+
|
21
|
+
* @public
|
22
|
+
*/
|
23
|
+
export declare class ZEROStake {
|
24
|
+
/** The amount of ZERO that's staked. */
|
25
|
+
readonly stakedZERO: Decimal;
|
26
|
+
/** Collateral gain available to withdraw. */
|
27
|
+
readonly collateralGain: Decimal;
|
28
|
+
/** ZUSD gain available to withdraw. */
|
29
|
+
readonly zusdGain: Decimal;
|
30
|
+
/** @internal */
|
31
|
+
constructor(stakedZERO?: Decimal, collateralGain?: Decimal, zusdGain?: Decimal);
|
32
|
+
get isEmpty(): boolean;
|
33
|
+
/** @internal */
|
34
|
+
toString(): string;
|
35
|
+
/**
|
36
|
+
* Compare to another instance of `ZEROStake`.
|
37
|
+
*/
|
38
|
+
equals(that: ZEROStake): boolean;
|
39
|
+
/**
|
40
|
+
* Calculate the difference between this `ZEROStake` and `thatStakedZERO`.
|
41
|
+
*
|
42
|
+
* @returns An object representing the change, or `undefined` if the staked amounts are equal.
|
43
|
+
*/
|
44
|
+
whatChanged(thatStakedZERO: Decimalish): ZEROStakeChange<Decimal> | undefined;
|
45
|
+
/**
|
46
|
+
* Apply a {@link ZEROStakeChange} to this `ZEROStake`.
|
47
|
+
*
|
48
|
+
* @returns The new staked ZERO amount.
|
49
|
+
*/
|
50
|
+
apply(change: ZEROStakeChange<Decimalish> | undefined): Decimal;
|
51
|
+
}
|
52
|
+
//# sourceMappingURL=ZEROStake.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ZEROStake.d.ts","sourceRoot":"","sources":["../../src/ZEROStake.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEhD;;;;GAIG;AACH,oBAAY,eAAe,CAAC,CAAC,IACzB;IAAE,SAAS,EAAE,CAAC,CAAC;IAAC,WAAW,CAAC,EAAE,SAAS,CAAA;CAAE,GACzC;IAAE,SAAS,CAAC,EAAE,SAAS,CAAC;IAAC,WAAW,EAAE,CAAC,CAAC;IAAC,cAAc,EAAE,OAAO,CAAA;CAAE,CAAC;AAEvE;;;;;;;GAOG;AACH,qBAAa,SAAS;IACpB,wCAAwC;IACxC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAE7B,6CAA6C;IAC7C,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IAEjC,uCAAuC;IACvC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAE3B,gBAAgB;gBACJ,UAAU,UAAe,EAAE,cAAc,UAAe,EAAE,QAAQ,UAAe;IAM7F,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,gBAAgB;IAChB,QAAQ,IAAI,MAAM;IAQlB;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO;IAQhC;;;;OAIG;IACH,WAAW,CAAC,cAAc,EAAE,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,SAAS;IAe7E;;;;OAIG;IACH,KAAK,CAAC,MAAM,EAAE,eAAe,CAAC,UAAU,CAAC,GAAG,SAAS,GAAG,OAAO;CAahE"}
|
@@ -0,0 +1,74 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.ZEROStake = void 0;
|
4
|
+
const Decimal_1 = require("./Decimal");
|
5
|
+
/**
|
6
|
+
* Represents a user's ZERO stake and accrued gains.
|
7
|
+
*
|
8
|
+
* @remarks
|
9
|
+
* Returned by the {@link ReadableLiquity.getZEROStake | getZEROStake()} function.
|
10
|
+
|
11
|
+
* @public
|
12
|
+
*/
|
13
|
+
class ZEROStake {
|
14
|
+
/** @internal */
|
15
|
+
constructor(stakedZERO = Decimal_1.Decimal.ZERO, collateralGain = Decimal_1.Decimal.ZERO, zusdGain = Decimal_1.Decimal.ZERO) {
|
16
|
+
this.stakedZERO = stakedZERO;
|
17
|
+
this.collateralGain = collateralGain;
|
18
|
+
this.zusdGain = zusdGain;
|
19
|
+
}
|
20
|
+
get isEmpty() {
|
21
|
+
return this.stakedZERO.isZero && this.collateralGain.isZero && this.zusdGain.isZero;
|
22
|
+
}
|
23
|
+
/** @internal */
|
24
|
+
toString() {
|
25
|
+
return (`{ stakedZERO: ${this.stakedZERO}` +
|
26
|
+
`, collateralGain: ${this.collateralGain}` +
|
27
|
+
`, zusdGain: ${this.zusdGain} }`);
|
28
|
+
}
|
29
|
+
/**
|
30
|
+
* Compare to another instance of `ZEROStake`.
|
31
|
+
*/
|
32
|
+
equals(that) {
|
33
|
+
return (this.stakedZERO.eq(that.stakedZERO) &&
|
34
|
+
this.collateralGain.eq(that.collateralGain) &&
|
35
|
+
this.zusdGain.eq(that.zusdGain));
|
36
|
+
}
|
37
|
+
/**
|
38
|
+
* Calculate the difference between this `ZEROStake` and `thatStakedZERO`.
|
39
|
+
*
|
40
|
+
* @returns An object representing the change, or `undefined` if the staked amounts are equal.
|
41
|
+
*/
|
42
|
+
whatChanged(thatStakedZERO) {
|
43
|
+
thatStakedZERO = Decimal_1.Decimal.from(thatStakedZERO);
|
44
|
+
if (thatStakedZERO.lt(this.stakedZERO)) {
|
45
|
+
return {
|
46
|
+
unstakeZERO: this.stakedZERO.sub(thatStakedZERO),
|
47
|
+
unstakeAllZERO: thatStakedZERO.isZero
|
48
|
+
};
|
49
|
+
}
|
50
|
+
if (thatStakedZERO.gt(this.stakedZERO)) {
|
51
|
+
return { stakeZERO: thatStakedZERO.sub(this.stakedZERO) };
|
52
|
+
}
|
53
|
+
}
|
54
|
+
/**
|
55
|
+
* Apply a {@link ZEROStakeChange} to this `ZEROStake`.
|
56
|
+
*
|
57
|
+
* @returns The new staked ZERO amount.
|
58
|
+
*/
|
59
|
+
apply(change) {
|
60
|
+
if (!change) {
|
61
|
+
return this.stakedZERO;
|
62
|
+
}
|
63
|
+
if (change.unstakeZERO !== undefined) {
|
64
|
+
return change.unstakeAllZERO || this.stakedZERO.lte(change.unstakeZERO)
|
65
|
+
? Decimal_1.Decimal.ZERO
|
66
|
+
: this.stakedZERO.sub(change.unstakeZERO);
|
67
|
+
}
|
68
|
+
else {
|
69
|
+
return this.stakedZERO.add(change.stakeZERO);
|
70
|
+
}
|
71
|
+
}
|
72
|
+
}
|
73
|
+
exports.ZEROStake = ZEROStake;
|
74
|
+
//# sourceMappingURL=ZEROStake.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ZEROStake.js","sourceRoot":"","sources":["../../src/ZEROStake.ts"],"names":[],"mappings":";;;AAAA,uCAAgD;AAWhD;;;;;;;GAOG;AACH,MAAa,SAAS;IAUpB,gBAAgB;IAChB,YAAY,UAAU,GAAG,iBAAO,CAAC,IAAI,EAAE,cAAc,GAAG,iBAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,iBAAO,CAAC,IAAI;QAC3F,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IACtF,CAAC;IAED,gBAAgB;IAChB,QAAQ;QACN,OAAO,CACL,iBAAiB,IAAI,CAAC,UAAU,EAAE;YAClC,qBAAqB,IAAI,CAAC,cAAc,EAAE;YAC1C,eAAe,IAAI,CAAC,QAAQ,IAAI,CACjC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAe;QACpB,OAAO,CACL,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC;YACnC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC;YAC3C,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAChC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,cAA0B;QACpC,cAAc,GAAG,iBAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAE9C,IAAI,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACtC,OAAO;gBACL,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC;gBAChD,cAAc,EAAE,cAAc,CAAC,MAAM;aACtC,CAAC;SACH;QAED,IAAI,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACtC,OAAO,EAAE,SAAS,EAAE,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;SAC3D;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAA+C;QACnD,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,IAAI,CAAC,UAAU,CAAC;SACxB;QAED,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE;YACpC,OAAO,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC;gBACrE,CAAC,CAAC,iBAAO,CAAC,IAAI;gBACd,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;SAC7C;aAAM;YACL,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SAC9C;IACH,CAAC;CACF;AA/ED,8BA+EC"}
|
@@ -0,0 +1,55 @@
|
|
1
|
+
import { Decimal } from "./Decimal";
|
2
|
+
import { Fees } from "./Fees";
|
3
|
+
import { ZEROStake } from "./ZEROStake";
|
4
|
+
import { StabilityDeposit } from "./StabilityDeposit";
|
5
|
+
import { Trove, TroveWithPendingRedistribution, UserTrove } from "./Trove";
|
6
|
+
import { FrontendStatus, ReadableLiquity, TroveListingParams } from "./ReadableLiquity";
|
7
|
+
/** @internal */
|
8
|
+
export declare type _ReadableLiquityWithExtraParamsBase<T extends unknown[]> = {
|
9
|
+
[P in keyof ReadableLiquity]: ReadableLiquity[P] extends (...params: infer A) => infer R ? (...params: [...originalParams: A, ...extraParams: T]) => R : never;
|
10
|
+
};
|
11
|
+
/** @internal */
|
12
|
+
export declare type _LiquityReadCacheBase<T extends unknown[]> = {
|
13
|
+
[P in keyof ReadableLiquity]: ReadableLiquity[P] extends (...args: infer A) => Promise<infer R> ? (...params: [...originalParams: A, ...extraParams: T]) => R | undefined : never;
|
14
|
+
};
|
15
|
+
/** @internal */
|
16
|
+
export interface _ReadableLiquityWithExtraParams<T extends unknown[]> extends _ReadableLiquityWithExtraParamsBase<T> {
|
17
|
+
getTroves(params: TroveListingParams & {
|
18
|
+
beforeRedistribution: true;
|
19
|
+
}, ...extraParams: T): Promise<TroveWithPendingRedistribution[]>;
|
20
|
+
getTroves(params: TroveListingParams, ...extraParams: T): Promise<UserTrove[]>;
|
21
|
+
}
|
22
|
+
/** @internal */
|
23
|
+
export interface _LiquityReadCache<T extends unknown[]> extends _LiquityReadCacheBase<T> {
|
24
|
+
getTroves(params: TroveListingParams & {
|
25
|
+
beforeRedistribution: true;
|
26
|
+
}, ...extraParams: T): TroveWithPendingRedistribution[] | undefined;
|
27
|
+
getTroves(params: TroveListingParams, ...extraParams: T): UserTrove[] | undefined;
|
28
|
+
}
|
29
|
+
/** @internal */
|
30
|
+
export declare class _CachedReadableLiquity<T extends unknown[]> implements _ReadableLiquityWithExtraParams<T> {
|
31
|
+
private _readable;
|
32
|
+
private _cache;
|
33
|
+
constructor(readable: _ReadableLiquityWithExtraParams<T>, cache: _LiquityReadCache<T>);
|
34
|
+
getTotalRedistributed(...extraParams: T): Promise<Trove>;
|
35
|
+
getTroveBeforeRedistribution(address?: string, ...extraParams: T): Promise<TroveWithPendingRedistribution>;
|
36
|
+
getTrove(address?: string, ...extraParams: T): Promise<UserTrove>;
|
37
|
+
getNumberOfTroves(...extraParams: T): Promise<number>;
|
38
|
+
getPrice(...extraParams: T): Promise<Decimal>;
|
39
|
+
getTotal(...extraParams: T): Promise<Trove>;
|
40
|
+
getStabilityDeposit(address?: string, ...extraParams: T): Promise<StabilityDeposit>;
|
41
|
+
getRemainingStabilityPoolZEROReward(...extraParams: T): Promise<Decimal>;
|
42
|
+
getZUSDInStabilityPool(...extraParams: T): Promise<Decimal>;
|
43
|
+
getZUSDBalance(address?: string, ...extraParams: T): Promise<Decimal>;
|
44
|
+
getZEROBalance(address?: string, ...extraParams: T): Promise<Decimal>;
|
45
|
+
getCollateralSurplusBalance(address?: string, ...extraParams: T): Promise<Decimal>;
|
46
|
+
getTroves(params: TroveListingParams & {
|
47
|
+
beforeRedistribution: true;
|
48
|
+
}, ...extraParams: T): Promise<TroveWithPendingRedistribution[]>;
|
49
|
+
getTroves(params: TroveListingParams, ...extraParams: T): Promise<UserTrove[]>;
|
50
|
+
getFees(...extraParams: T): Promise<Fees>;
|
51
|
+
getZEROStake(address?: string, ...extraParams: T): Promise<ZEROStake>;
|
52
|
+
getTotalStakedZERO(...extraParams: T): Promise<Decimal>;
|
53
|
+
getFrontendStatus(address?: string, ...extraParams: T): Promise<FrontendStatus>;
|
54
|
+
}
|
55
|
+
//# sourceMappingURL=_CachedReadableLiquity.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"_CachedReadableLiquity.d.ts","sourceRoot":"","sources":["../../src/_CachedReadableLiquity.ts"],"names":[],"mappings":"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"}
|