@haven-fi/solauto-sdk 1.0.607 → 1.0.608
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.
@@ -67,6 +67,9 @@ export declare abstract class SolautoPositionEx {
|
|
67
67
|
utilizationRateBpsDrift(): Promise<number>;
|
68
68
|
updateWithLatestPrices(supplyPrice?: number, debtPrice?: number): Promise<void>;
|
69
69
|
refetchPositionData(): Promise<void>;
|
70
|
+
updateNetWorth(supplyPrice: number, debtPrice: number): void;
|
71
|
+
updateSupply(newSupplyUsd: number, supplyPrice: number): void;
|
72
|
+
updateDebt(newDebtUsd: number, debtPrice: number): void;
|
70
73
|
simulateRebalance(unixTime: number, supplyPrice: number, debtPrice: number, targetLiqUtilizationRateBps?: number): void;
|
71
74
|
}
|
72
75
|
export {};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"solautoPositionEx.d.ts","sourceRoot":"","sources":["../../src/solautoPosition/solautoPositionEx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EACL,WAAW,EAEX,eAAe,EACf,aAAa,EACb,eAAe,EACf,yBAAyB,EAC1B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAC/C,OAAO,EAQL,cAAc,EAYf,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAM3C,OAAO,EAAqC,SAAS,EAAE,MAAM,cAAc,CAAC;AAM5E,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,eAAe,CAAC;IACjC,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,aAAa,CAAC,EAAE,SAAS,CAAC;CAC3B;AAED,UAAU,qBAAsB,SAAQ,OAAO,CAAC,eAAe,CAAC;IAC9D,KAAK,EAAE,aAAa,CAAC;CACtB;AAED,UAAU,cAAc;IACtB,GAAG,EAAE,GAAG,CAAC;IACT,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE,qBAAqB,CAAC;IAC5B,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,8BAAsB,iBAAiB;IAC9B,GAAG,EAAG,GAAG,CAAC;IACV,SAAS,EAAG,SAAS,CAAC;IAC7B,SAAS,CAAC,KAAK,EAAG,qBAAqB,CAAC;IACxC,SAAS,CAAC,EAAE,CAAC,EAAE,SAAS,CAAa;IAC9B,aAAa,CAAC,EAAE,SAAS,CAAa;IAC7C,SAAS,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IAE1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;gBAEhC,IAAI,EAAE,cAAc;IAgBhC,QAAQ,CAAC,WAAW,IAAI,OAAO,CAAC,SAAS,CAAC;IAE1C,MAAM;IAIN,SAAS;IAMT,UAAU;IAIV,YAAY;IAOZ,IAAI,IAAI,qBAAqB;IAI7B,KAAK,IAAI,aAAa;IAItB,QAAQ,IAAI,yBAAyB,GAAG,SAAS;IAIjD,GAAG,IAAI,WAAW,GAAG,SAAS;IAI9B,UAAU,IAAI,SAAS;IAIvB,cAAc,IAAI,SAAS;IAI3B,QAAQ,IAAI,SAAS;IAIrB,YAAY,IAAI,SAAS;IAIzB,UAAU;IAOV,YAAY;IAIZ,UAAU;IAOV,YAAY;IAMZ,QAAQ;IAIR,WAAW;IAIX,WAAW;IAIX,SAAS;IAIT,SAAS;IAIT,OAAO;IAIP,6BAA6B;IAI7B,yBAAyB;IAIzB,QAAQ,CAAC,wBAAwB,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9D,QAAQ,CAAC,0BAA0B,IAAI,MAAM;IAC7C,QAAQ,CAAC,wBAAwB,IAAI,MAAM;IAC3C,QAAQ,CAAC,sBAAsB,IAAI,MAAM;IAEzC,0BAA0B;IA0B1B,oBAAoB,CAAC,oBAAoB,SAAI,GAAG,eAAe,GAAG,SAAS;IAqB3E,kBAAkB,IAAI,OAAO;IAS7B,SAAS,CAAC,uBAAuB;IAWjC,QAAQ,CAAC,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAExC,uBAAuB;IAiBvB,sBAAsB,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;IAQ/D,mBAAmB;IAOzB,iBAAiB,CACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,2BAA2B,CAAC,EAAE,MAAM;
|
1
|
+
{"version":3,"file":"solautoPositionEx.d.ts","sourceRoot":"","sources":["../../src/solautoPosition/solautoPositionEx.ts"],"names":[],"mappings":"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"}
|
@@ -100,7 +100,8 @@ class SolautoPositionEx {
|
|
100
100
|
const limitsUpToDate = this.debtLiquidityUsdAvailable() !== 0 ||
|
101
101
|
this.supplyLiquidityUsdDepositable() !== 0;
|
102
102
|
if (limitsUpToDate) {
|
103
|
-
const { debtAdjustmentUsd } = (0, rebalance_1.getDebtAdjustment)(this.state().liqThresholdBps, { supplyUsd: this.supplyUsd(), debtUsd: this.debtUsd() }, this.boostToBps(), { solauto: 50, lpBorrow: 50, flashLoan: 50 }
|
103
|
+
const { debtAdjustmentUsd } = (0, rebalance_1.getDebtAdjustment)(this.state().liqThresholdBps, { supplyUsd: this.supplyUsd(), debtUsd: this.debtUsd() }, this.boostToBps(), { solauto: 50, lpBorrow: 50, flashLoan: 50 } // TODO: get true data here instead of magic numbers
|
104
|
+
);
|
104
105
|
const sufficientLiquidity = this.debtLiquidityUsdAvailable() * 0.95 > debtAdjustmentUsd &&
|
105
106
|
this.supplyLiquidityUsdDepositable() * 0.95 > debtAdjustmentUsd;
|
106
107
|
if (!sufficientLiquidity) {
|
@@ -152,19 +153,28 @@ class SolautoPositionEx {
|
|
152
153
|
async refetchPositionData() {
|
153
154
|
this._data = await (0, generated_1.fetchSolautoPosition)(this.umi, (0, umi_web3js_adapters_1.fromWeb3JsPublicKey)(this.publicKey));
|
154
155
|
}
|
155
|
-
|
156
|
-
this.
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
this._data.state.debt.amountUsed.baseUnit = (0, utils_1.toBaseUnit)(newDebtUsd / debtPrice, this.debtMintInfo().decimals);
|
156
|
+
updateNetWorth(supplyPrice, debtPrice) {
|
157
|
+
const netWorthUsd = this.supplyUsd() - this.debtUsd();
|
158
|
+
this._data.state.netWorth.baseAmountUsdValue =
|
159
|
+
(0, utils_1.toRoundedUsdValue)(netWorthUsd);
|
160
|
+
this._data.state.netWorth.baseUnit = (0, utils_1.toBaseUnit)(netWorthUsd / supplyPrice, this.supplyMintInfo().decimals);
|
161
|
+
}
|
162
|
+
updateSupply(newSupplyUsd, supplyPrice) {
|
163
163
|
this._data.state.supply.amountUsed.baseAmountUsdValue =
|
164
164
|
(0, utils_1.toRoundedUsdValue)(newSupplyUsd);
|
165
165
|
this._data.state.supply.amountUsed.baseUnit = (0, utils_1.toBaseUnit)(newSupplyUsd / supplyPrice, this.supplyMintInfo().decimals);
|
166
|
-
|
167
|
-
|
166
|
+
}
|
167
|
+
updateDebt(newDebtUsd, debtPrice) {
|
168
|
+
this._data.state.debt.amountUsed.baseAmountUsdValue =
|
169
|
+
(0, utils_1.toRoundedUsdValue)(newDebtUsd);
|
170
|
+
this._data.state.debt.amountUsed.baseUnit = (0, utils_1.toBaseUnit)(newDebtUsd / debtPrice, this.debtMintInfo().decimals);
|
171
|
+
}
|
172
|
+
simulateRebalance(unixTime, supplyPrice, debtPrice, targetLiqUtilizationRateBps) {
|
173
|
+
this._data.state.lastRefreshed = BigInt(unixTime);
|
174
|
+
const rebalance = (0, rebalance_1.getRebalanceValues)(this, targetLiqUtilizationRateBps, rebalance_1.SolautoFeesBps.create(true, targetLiqUtilizationRateBps, this.netWorthUsd()));
|
175
|
+
this.updateSupply(rebalance.endResult.supplyUsd, supplyPrice);
|
176
|
+
this.updateDebt(rebalance.endResult.debtUsd, debtPrice);
|
177
|
+
this.updateNetWorth(supplyPrice, debtPrice);
|
168
178
|
}
|
169
179
|
}
|
170
180
|
exports.SolautoPositionEx = SolautoPositionEx;
|
package/package.json
CHANGED
@@ -213,7 +213,7 @@ export abstract class SolautoPositionEx {
|
|
213
213
|
this.state().liqThresholdBps,
|
214
214
|
{ supplyUsd: this.supplyUsd(), debtUsd: this.debtUsd() },
|
215
215
|
this.boostToBps(),
|
216
|
-
{ solauto: 50, lpBorrow: 50, flashLoan: 50 }
|
216
|
+
{ solauto: 50, lpBorrow: 50, flashLoan: 50 } // TODO: get true data here instead of magic numbers
|
217
217
|
);
|
218
218
|
|
219
219
|
const sufficientLiquidity =
|
@@ -304,6 +304,34 @@ export abstract class SolautoPositionEx {
|
|
304
304
|
);
|
305
305
|
}
|
306
306
|
|
307
|
+
updateNetWorth(supplyPrice: number, debtPrice: number) {
|
308
|
+
const netWorthUsd = this.supplyUsd() - this.debtUsd();
|
309
|
+
this._data.state.netWorth.baseAmountUsdValue =
|
310
|
+
toRoundedUsdValue(netWorthUsd);
|
311
|
+
this._data.state.netWorth.baseUnit = toBaseUnit(
|
312
|
+
netWorthUsd / supplyPrice,
|
313
|
+
this.supplyMintInfo().decimals
|
314
|
+
);
|
315
|
+
}
|
316
|
+
|
317
|
+
updateSupply(newSupplyUsd: number, supplyPrice: number) {
|
318
|
+
this._data.state.supply.amountUsed.baseAmountUsdValue =
|
319
|
+
toRoundedUsdValue(newSupplyUsd);
|
320
|
+
this._data.state.supply.amountUsed.baseUnit = toBaseUnit(
|
321
|
+
newSupplyUsd / supplyPrice,
|
322
|
+
this.supplyMintInfo().decimals
|
323
|
+
);
|
324
|
+
}
|
325
|
+
|
326
|
+
updateDebt(newDebtUsd: number, debtPrice: number) {
|
327
|
+
this._data.state.debt.amountUsed.baseAmountUsdValue =
|
328
|
+
toRoundedUsdValue(newDebtUsd);
|
329
|
+
this._data.state.debt.amountUsed.baseUnit = toBaseUnit(
|
330
|
+
newDebtUsd / debtPrice,
|
331
|
+
this.debtMintInfo().decimals
|
332
|
+
);
|
333
|
+
}
|
334
|
+
|
307
335
|
simulateRebalance(
|
308
336
|
unixTime: number,
|
309
337
|
supplyPrice: number,
|
@@ -320,30 +348,8 @@ export abstract class SolautoPositionEx {
|
|
320
348
|
this.netWorthUsd()
|
321
349
|
)
|
322
350
|
);
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
this._data.state.debt.amountUsed.baseAmountUsdValue =
|
328
|
-
toRoundedUsdValue(newDebtUsd);
|
329
|
-
this._data.state.debt.amountUsed.baseUnit = toBaseUnit(
|
330
|
-
newDebtUsd / debtPrice,
|
331
|
-
this.debtMintInfo().decimals
|
332
|
-
);
|
333
|
-
|
334
|
-
this._data.state.supply.amountUsed.baseAmountUsdValue =
|
335
|
-
toRoundedUsdValue(newSupplyUsd);
|
336
|
-
this._data.state.supply.amountUsed.baseUnit = toBaseUnit(
|
337
|
-
newSupplyUsd / supplyPrice,
|
338
|
-
this.supplyMintInfo().decimals
|
339
|
-
);
|
340
|
-
|
341
|
-
this._data.state.netWorth.baseAmountUsdValue = toRoundedUsdValue(
|
342
|
-
newSupplyUsd - newDebtUsd
|
343
|
-
);
|
344
|
-
this._data.state.netWorth.baseUnit = toBaseUnit(
|
345
|
-
(newSupplyUsd - newDebtUsd) / supplyPrice,
|
346
|
-
this.supplyMintInfo().decimals
|
347
|
-
);
|
351
|
+
this.updateSupply(rebalance.endResult.supplyUsd, supplyPrice);
|
352
|
+
this.updateDebt(rebalance.endResult.debtUsd, debtPrice);
|
353
|
+
this.updateNetWorth(supplyPrice, debtPrice);
|
348
354
|
}
|
349
355
|
}
|