@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;CAsCvC"}
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
- simulateRebalance(unixTime, supplyPrice, debtPrice, targetLiqUtilizationRateBps) {
156
- this._data.state.lastRefreshed = BigInt(unixTime);
157
- const rebalance = (0, rebalance_1.getRebalanceValues)(this, targetLiqUtilizationRateBps, rebalance_1.SolautoFeesBps.create(true, targetLiqUtilizationRateBps, this.netWorthUsd()));
158
- const newDebtUsd = rebalance.endResult.debtUsd;
159
- const newSupplyUsd = rebalance.endResult.supplyUsd;
160
- this._data.state.debt.amountUsed.baseAmountUsdValue =
161
- (0, utils_1.toRoundedUsdValue)(newDebtUsd);
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
- this._data.state.netWorth.baseAmountUsdValue = (0, utils_1.toRoundedUsdValue)(newSupplyUsd - newDebtUsd);
167
- this._data.state.netWorth.baseUnit = (0, utils_1.toBaseUnit)((newSupplyUsd - newDebtUsd) / supplyPrice, this.supplyMintInfo().decimals);
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haven-fi/solauto-sdk",
3
- "version": "1.0.607",
3
+ "version": "1.0.608",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "description": "Typescript SDK for the Solauto program on the Solana blockchain",
@@ -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 }, // TODO: get true data here instead of magic numbers
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
- const newDebtUsd = rebalance.endResult.debtUsd;
325
- const newSupplyUsd = rebalance.endResult.supplyUsd;
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
  }