@haven-fi/solauto-sdk 1.0.636 → 1.0.637

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.
@@ -32,6 +32,8 @@ export declare abstract class SolautoPositionEx {
32
32
  protected lpEnv: ProgramEnv;
33
33
  lpUserAccount?: PublicKey;
34
34
  private readonly firstState;
35
+ protected _supplyPrice?: number;
36
+ protected _debtPrice?: number;
35
37
  constructor(args: PositionExArgs);
36
38
  abstract lendingPool(): Promise<PublicKey>;
37
39
  get exists(): boolean;
@@ -61,8 +63,10 @@ export declare abstract class SolautoPositionEx {
61
63
  get netWorthUsd(): number;
62
64
  get totalSupply(): number;
63
65
  supplyUsd(priceType?: PriceType): number;
66
+ protected supplyPrice(priceType?: PriceType): number | undefined;
64
67
  get totalDebt(): number;
65
68
  debtUsd(priceType?: PriceType): number;
69
+ protected debtPrice(priceType?: PriceType): number | undefined;
66
70
  get supplyLiquidityDepositable(): number;
67
71
  get supplyLiquidityUsdDepositable(): number;
68
72
  get supplyLiquidityUsdAvailable(): number;
@@ -78,7 +82,9 @@ export declare abstract class SolautoPositionEx {
78
82
  abstract refreshPositionState(priceType?: PriceType): Promise<void>;
79
83
  utilizationRateBpsDrift(priceType?: PriceType): Promise<number>;
80
84
  updateSupply(newSupplyUsd: number, supplyPrice?: number): void;
85
+ updateSupplyPrice(price: number): void;
81
86
  updateDebt(newDebtUsd: number, debtPrice?: number): void;
87
+ updateDebtPrice(price: number): void;
82
88
  updateNetWorth(supplyPrice?: number): void;
83
89
  updateLiqUtilizationRate(supplyUsd?: number, debtUsd?: number, priceType?: PriceType): void;
84
90
  updateWithLatestPrices(data?: {
@@ -1 +1 @@
1
- {"version":3,"file":"solautoPositionEx.d.ts","sourceRoot":"","sources":["../../src/solautoPosition/solautoPositionEx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"solautoPositionEx.d.ts","sourceRoot":"","sources":["../../src/solautoPosition/solautoPositionEx.ts"],"names":[],"mappings":"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"}
@@ -105,20 +105,26 @@ class SolautoPositionEx {
105
105
  return (0, utils_1.calcTotalSupply)(this.state);
106
106
  }
107
107
  supplyUsd(priceType) {
108
- const supplyPrice = (0, utils_1.safeGetPrice)(this.supplyMint, priceType);
108
+ const supplyPrice = this.supplyPrice(priceType);
109
109
  return supplyPrice
110
110
  ? (0, utils_1.calcTotalSupply)(this.state) * supplyPrice
111
111
  : (0, utils_1.calcSupplyUsd)(this.state);
112
112
  }
113
+ supplyPrice(priceType) {
114
+ return this._supplyPrice ?? (0, utils_1.safeGetPrice)(this.supplyMint, priceType);
115
+ }
113
116
  get totalDebt() {
114
117
  return (0, utils_1.calcTotalDebt)(this.state);
115
118
  }
116
119
  debtUsd(priceType) {
117
- const debtPrice = (0, utils_1.safeGetPrice)(this.debtMint, priceType);
120
+ const debtPrice = this.debtPrice(priceType);
118
121
  return debtPrice
119
122
  ? (0, utils_1.calcTotalDebt)(this.state) * debtPrice
120
123
  : (0, utils_1.calcDebtUsd)(this.state);
121
124
  }
125
+ debtPrice(priceType) {
126
+ return this._debtPrice ?? (0, utils_1.safeGetPrice)(this.debtMint, priceType);
127
+ }
122
128
  get supplyLiquidityDepositable() {
123
129
  return (0, utils_1.supplyLiquidityDepositable)(this.state);
124
130
  }
@@ -126,7 +132,7 @@ class SolautoPositionEx {
126
132
  return (0, utils_1.supplyLiquidityUsdDepositable)(this.state);
127
133
  }
128
134
  get supplyLiquidityUsdAvailable() {
129
- return this.supplyLiquidityAvailable * ((0, utils_1.safeGetPrice)(this.supplyMint) ?? 0);
135
+ return this.supplyLiquidityAvailable * (this.supplyPrice() ?? 0);
130
136
  }
131
137
  get debtLiquidityAvailable() {
132
138
  return (0, utils_1.debtLiquidityAvailable)(this.state);
@@ -179,8 +185,8 @@ class SolautoPositionEx {
179
185
  return true;
180
186
  }
181
187
  async utilizationRateBpsDrift(priceType) {
182
- const supplyPrice = (0, utils_1.safeGetPrice)(this.supplyMint, priceType) ?? 0;
183
- const debtPrice = (0, utils_1.safeGetPrice)(this.debtMint, priceType) ?? 0;
188
+ const supplyPrice = this.supplyPrice(priceType) ?? 0;
189
+ const debtPrice = this.debtPrice(priceType) ?? 0;
184
190
  const oldState = await (0, utils_1.positionStateWithLatestPrices)(this.firstState, supplyPrice, debtPrice);
185
191
  const newState = await (0, utils_1.positionStateWithLatestPrices)(this.state, supplyPrice, debtPrice);
186
192
  return newState.liqUtilizationRateBps - oldState.liqUtilizationRateBps;
@@ -188,12 +194,18 @@ class SolautoPositionEx {
188
194
  updateSupply(newSupplyUsd, supplyPrice) {
189
195
  this._data.state.supply.amountUsed.baseAmountUsdValue =
190
196
  (0, utils_1.toRoundedUsdValue)(newSupplyUsd);
191
- this._data.state.supply.amountUsed.baseUnit = (0, utils_1.toBaseUnit)(newSupplyUsd / (supplyPrice ?? (0, utils_1.safeGetPrice)(this.supplyMint) ?? 0), this.supplyMintInfo.decimals);
197
+ this._data.state.supply.amountUsed.baseUnit = (0, utils_1.toBaseUnit)(newSupplyUsd / (supplyPrice ?? this.supplyPrice() ?? 0), this.supplyMintInfo.decimals);
198
+ }
199
+ updateSupplyPrice(price) {
200
+ this._supplyPrice = price;
192
201
  }
193
202
  updateDebt(newDebtUsd, debtPrice) {
194
203
  this._data.state.debt.amountUsed.baseAmountUsdValue =
195
204
  (0, utils_1.toRoundedUsdValue)(newDebtUsd);
196
- this._data.state.debt.amountUsed.baseUnit = (0, utils_1.toBaseUnit)(newDebtUsd / (debtPrice ?? (0, utils_1.safeGetPrice)(this.debtMint) ?? 0), this.debtMintInfo.decimals);
205
+ this._data.state.debt.amountUsed.baseUnit = (0, utils_1.toBaseUnit)(newDebtUsd / (debtPrice ?? this.debtPrice() ?? 0), this.debtMintInfo.decimals);
206
+ }
207
+ updateDebtPrice(price) {
208
+ this._debtPrice = price;
197
209
  }
198
210
  updateNetWorth(supplyPrice) {
199
211
  const netWorthUsd = this.supplyUsd() - this.debtUsd();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haven-fi/solauto-sdk",
3
- "version": "1.0.636",
3
+ "version": "1.0.637",
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",
@@ -80,6 +80,8 @@ export abstract class SolautoPositionEx {
80
80
  public lpUserAccount?: PublicKey = undefined;
81
81
 
82
82
  private readonly firstState!: PositionState;
83
+ protected _supplyPrice?: number;
84
+ protected _debtPrice?: number;
83
85
 
84
86
  constructor(args: PositionExArgs) {
85
87
  this.umi = args.umi;
@@ -211,23 +213,31 @@ export abstract class SolautoPositionEx {
211
213
  }
212
214
 
213
215
  supplyUsd(priceType?: PriceType) {
214
- const supplyPrice = safeGetPrice(this.supplyMint, priceType);
216
+ const supplyPrice = this.supplyPrice(priceType);
215
217
  return supplyPrice
216
218
  ? calcTotalSupply(this.state) * supplyPrice
217
219
  : calcSupplyUsd(this.state);
218
220
  }
219
221
 
222
+ protected supplyPrice(priceType?: PriceType) {
223
+ return this._supplyPrice ?? safeGetPrice(this.supplyMint, priceType);
224
+ }
225
+
220
226
  get totalDebt() {
221
227
  return calcTotalDebt(this.state);
222
228
  }
223
229
 
224
230
  debtUsd(priceType?: PriceType) {
225
- const debtPrice = safeGetPrice(this.debtMint, priceType);
231
+ const debtPrice = this.debtPrice(priceType);
226
232
  return debtPrice
227
233
  ? calcTotalDebt(this.state) * debtPrice
228
234
  : calcDebtUsd(this.state);
229
235
  }
230
236
 
237
+ protected debtPrice(priceType?: PriceType) {
238
+ return this._debtPrice ?? safeGetPrice(this.debtMint, priceType);
239
+ }
240
+
231
241
  get supplyLiquidityDepositable() {
232
242
  return supplyLiquidityDepositable(this.state);
233
243
  }
@@ -237,7 +247,7 @@ export abstract class SolautoPositionEx {
237
247
  }
238
248
 
239
249
  get supplyLiquidityUsdAvailable() {
240
- return this.supplyLiquidityAvailable * (safeGetPrice(this.supplyMint) ?? 0);
250
+ return this.supplyLiquidityAvailable * (this.supplyPrice() ?? 0);
241
251
  }
242
252
 
243
253
  get debtLiquidityAvailable() {
@@ -324,8 +334,8 @@ export abstract class SolautoPositionEx {
324
334
  abstract refreshPositionState(priceType?: PriceType): Promise<void>;
325
335
 
326
336
  async utilizationRateBpsDrift(priceType?: PriceType) {
327
- const supplyPrice = safeGetPrice(this.supplyMint, priceType) ?? 0;
328
- const debtPrice = safeGetPrice(this.debtMint, priceType) ?? 0;
337
+ const supplyPrice = this.supplyPrice(priceType) ?? 0;
338
+ const debtPrice = this.debtPrice(priceType) ?? 0;
329
339
  const oldState = await positionStateWithLatestPrices(
330
340
  this.firstState,
331
341
  supplyPrice,
@@ -344,20 +354,28 @@ export abstract class SolautoPositionEx {
344
354
  this._data.state.supply.amountUsed.baseAmountUsdValue =
345
355
  toRoundedUsdValue(newSupplyUsd);
346
356
  this._data.state.supply.amountUsed.baseUnit = toBaseUnit(
347
- newSupplyUsd / (supplyPrice ?? safeGetPrice(this.supplyMint) ?? 0),
357
+ newSupplyUsd / (supplyPrice ?? this.supplyPrice() ?? 0),
348
358
  this.supplyMintInfo.decimals
349
359
  );
350
360
  }
351
361
 
362
+ updateSupplyPrice(price: number) {
363
+ this._supplyPrice = price;
364
+ }
365
+
352
366
  updateDebt(newDebtUsd: number, debtPrice?: number) {
353
367
  this._data.state.debt.amountUsed.baseAmountUsdValue =
354
368
  toRoundedUsdValue(newDebtUsd);
355
369
  this._data.state.debt.amountUsed.baseUnit = toBaseUnit(
356
- newDebtUsd / (debtPrice ?? safeGetPrice(this.debtMint) ?? 0),
370
+ newDebtUsd / (debtPrice ?? this.debtPrice() ?? 0),
357
371
  this.debtMintInfo.decimals
358
372
  );
359
373
  }
360
374
 
375
+ updateDebtPrice(price: number) {
376
+ this._debtPrice = price;
377
+ }
378
+
361
379
  updateNetWorth(supplyPrice?: number) {
362
380
  const netWorthUsd = this.supplyUsd() - this.debtUsd();
363
381
  this._data.state.netWorth.baseAmountUsdValue =
@@ -428,7 +446,10 @@ export abstract class SolautoPositionEx {
428
446
  this.updateSupply(rebalance.endResult.supplyUsd, supplyPrice);
429
447
  this.updateDebt(rebalance.endResult.debtUsd, debtPrice);
430
448
  this.updateNetWorth(supplyPrice);
431
- this.updateLiqUtilizationRate(rebalance.endResult.supplyUsd, rebalance.endResult.debtUsd);
449
+ this.updateLiqUtilizationRate(
450
+ rebalance.endResult.supplyUsd,
451
+ rebalance.endResult.debtUsd
452
+ );
432
453
  }
433
454
 
434
455
  async refetchPositionData() {