@haven-fi/solauto-sdk 1.0.63 → 1.0.64

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.
@@ -19,10 +19,9 @@ export declare function getReferralsByUser(umi: Umi, user: PublicKey): Promise<P
19
19
  export declare function getAllPositionsByAuthority(umi: Umi, user: PublicKey): Promise<SolautoPositionDetails[]>;
20
20
  export declare function positionStateWithLatestPrices(state: PositionState, supplyPrice?: number, debtPrice?: number): Promise<PositionState>;
21
21
  interface AssetProps {
22
- amountUsedBaseUnit: bigint;
23
- decimals: number;
24
- price: number;
25
22
  mint: PublicKey;
23
+ price: number;
24
+ amountUsed: number;
26
25
  }
27
26
  export declare function createFakePositionState(supply: AssetProps, debt: AssetProps, maxLtvBps: number, liqThresholdBps: number): PositionState;
28
27
  type PositionAdjustment = {
@@ -1 +1 @@
1
- {"version":3,"file":"generalUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/solauto/generalUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generalUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/solauto/generalUtils.ts"],"names":[],"mappings":"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"}
@@ -248,22 +248,24 @@ async function positionStateWithLatestPrices(state, supplyPrice, debtPrice) {
248
248
  };
249
249
  }
250
250
  function createFakePositionState(supply, debt, maxLtvBps, liqThresholdBps) {
251
- const supplyUsd = (0, numberUtils_1.fromBaseUnit)(supply.amountUsedBaseUnit, supply.decimals) * supply.price;
252
- const debtUsd = (0, numberUtils_1.fromBaseUnit)(debt.amountUsedBaseUnit, debt.decimals) * debt.price;
251
+ const supplyDecimals = constants_1.TOKEN_DECIMALS[supply.mint.toString()];
252
+ const debtDecimals = constants_1.TOKEN_DECIMALS[debt.mint.toString()];
253
+ const supplyUsd = supply.amountUsed * supply.price;
254
+ const debtUsd = debt.amountUsed * debt.price;
253
255
  return {
254
256
  liqUtilizationRateBps: (0, numberUtils_1.getLiqUtilzationRateBps)(supplyUsd, debtUsd, liqThresholdBps),
255
257
  supply: {
256
258
  amountUsed: {
257
- baseUnit: supply.amountUsedBaseUnit,
259
+ baseUnit: (0, numberUtils_1.toBaseUnit)(supply.amountUsed, supplyDecimals),
258
260
  baseAmountUsdValue: (0, numberUtils_1.toBaseUnit)(supplyUsd, constants_1.USD_DECIMALS),
259
261
  },
260
262
  amountCanBeUsed: {
261
- baseUnit: (0, numberUtils_1.toBaseUnit)(1000000, supply.decimals),
263
+ baseUnit: (0, numberUtils_1.toBaseUnit)(1000000, supplyDecimals),
262
264
  baseAmountUsdValue: BigInt(Math.round(1000000 * supply.price)),
263
265
  },
264
266
  baseAmountMarketPriceUsd: (0, numberUtils_1.toBaseUnit)(supply.price, constants_1.USD_DECIMALS),
265
267
  borrowFeeBps: 0,
266
- decimals: supply.decimals,
268
+ decimals: supplyDecimals,
267
269
  flashLoanFeeBps: 0,
268
270
  mint: (0, umi_1.publicKey)(supply.mint),
269
271
  padding1: [],
@@ -272,16 +274,16 @@ function createFakePositionState(supply, debt, maxLtvBps, liqThresholdBps) {
272
274
  },
273
275
  debt: {
274
276
  amountUsed: {
275
- baseUnit: debt.amountUsedBaseUnit,
277
+ baseUnit: (0, numberUtils_1.toBaseUnit)(debt.amountUsed, debtDecimals),
276
278
  baseAmountUsdValue: (0, numberUtils_1.toBaseUnit)(debtUsd, constants_1.USD_DECIMALS),
277
279
  },
278
280
  amountCanBeUsed: {
279
- baseUnit: (0, numberUtils_1.toBaseUnit)(1000000, debt.decimals),
281
+ baseUnit: (0, numberUtils_1.toBaseUnit)(1000000, debtDecimals),
280
282
  baseAmountUsdValue: BigInt(Math.round(1000000 * debt.price)),
281
283
  },
282
284
  baseAmountMarketPriceUsd: (0, numberUtils_1.toBaseUnit)(debt.price, constants_1.USD_DECIMALS),
283
285
  borrowFeeBps: 0,
284
- decimals: debt.decimals,
286
+ decimals: debtDecimals,
285
287
  flashLoanFeeBps: 0,
286
288
  mint: (0, umi_1.publicKey)(debt.mint),
287
289
  padding1: [],
@@ -289,7 +291,7 @@ function createFakePositionState(supply, debt, maxLtvBps, liqThresholdBps) {
289
291
  padding: new Uint8Array([]),
290
292
  },
291
293
  netWorth: {
292
- baseUnit: (0, numberUtils_1.toBaseUnit)((supplyUsd - debtUsd) / supply.price, supply.decimals),
294
+ baseUnit: (0, numberUtils_1.toBaseUnit)((supplyUsd - debtUsd) / supply.price, supplyDecimals),
293
295
  baseAmountUsdValue: (0, numberUtils_1.toBaseUnit)(supplyUsd - debtUsd, constants_1.USD_DECIMALS),
294
296
  },
295
297
  maxLtvBps,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haven-fi/solauto-sdk",
3
- "version": "1.0.63",
3
+ "version": "1.0.64",
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",
@@ -22,7 +22,11 @@ import {
22
22
  } from "../numberUtils";
23
23
  import { getReferralState } from "../accountUtils";
24
24
  import { toWeb3JsPublicKey } from "@metaplex-foundation/umi-web3js-adapters";
25
- import { ALL_SUPPORTED_TOKENS, USD_DECIMALS } from "../../constants";
25
+ import {
26
+ ALL_SUPPORTED_TOKENS,
27
+ TOKEN_DECIMALS,
28
+ USD_DECIMALS,
29
+ } from "../../constants";
26
30
  import {
27
31
  getAllMarginfiAccountsByAuthority,
28
32
  getMarginfiAccountPositionState,
@@ -329,7 +333,7 @@ export async function getAllPositionsByAuthority(
329
333
  export async function positionStateWithLatestPrices(
330
334
  state: PositionState,
331
335
  supplyPrice?: number,
332
- debtPrice?: number,
336
+ debtPrice?: number
333
337
  ): Promise<PositionState> {
334
338
  if (!supplyPrice || !debtPrice) {
335
339
  [supplyPrice, debtPrice] = await getTokenPrices([
@@ -376,10 +380,9 @@ export async function positionStateWithLatestPrices(
376
380
  }
377
381
 
378
382
  interface AssetProps {
379
- amountUsedBaseUnit: bigint;
380
- decimals: number;
381
- price: number;
382
383
  mint: PublicKey;
384
+ price: number;
385
+ amountUsed: number;
383
386
  }
384
387
 
385
388
  export function createFakePositionState(
@@ -388,10 +391,11 @@ export function createFakePositionState(
388
391
  maxLtvBps: number,
389
392
  liqThresholdBps: number
390
393
  ): PositionState {
391
- const supplyUsd =
392
- fromBaseUnit(supply.amountUsedBaseUnit, supply.decimals) * supply.price;
393
- const debtUsd =
394
- fromBaseUnit(debt.amountUsedBaseUnit, debt.decimals) * debt.price;
394
+ const supplyDecimals = TOKEN_DECIMALS[supply.mint.toString()];
395
+ const debtDecimals = TOKEN_DECIMALS[debt.mint.toString()];
396
+
397
+ const supplyUsd = supply.amountUsed * supply.price;
398
+ const debtUsd = debt.amountUsed * debt.price;
395
399
 
396
400
  return {
397
401
  liqUtilizationRateBps: getLiqUtilzationRateBps(
@@ -401,16 +405,16 @@ export function createFakePositionState(
401
405
  ),
402
406
  supply: {
403
407
  amountUsed: {
404
- baseUnit: supply.amountUsedBaseUnit,
408
+ baseUnit: toBaseUnit(supply.amountUsed, supplyDecimals),
405
409
  baseAmountUsdValue: toBaseUnit(supplyUsd, USD_DECIMALS),
406
410
  },
407
411
  amountCanBeUsed: {
408
- baseUnit: toBaseUnit(1000000, supply.decimals),
412
+ baseUnit: toBaseUnit(1000000, supplyDecimals),
409
413
  baseAmountUsdValue: BigInt(Math.round(1000000 * supply.price)),
410
414
  },
411
415
  baseAmountMarketPriceUsd: toBaseUnit(supply.price, USD_DECIMALS),
412
416
  borrowFeeBps: 0,
413
- decimals: supply.decimals,
417
+ decimals: supplyDecimals,
414
418
  flashLoanFeeBps: 0,
415
419
  mint: publicKey(supply.mint),
416
420
  padding1: [],
@@ -419,16 +423,16 @@ export function createFakePositionState(
419
423
  },
420
424
  debt: {
421
425
  amountUsed: {
422
- baseUnit: debt.amountUsedBaseUnit,
426
+ baseUnit: toBaseUnit(debt.amountUsed, debtDecimals),
423
427
  baseAmountUsdValue: toBaseUnit(debtUsd, USD_DECIMALS),
424
428
  },
425
429
  amountCanBeUsed: {
426
- baseUnit: toBaseUnit(1000000, debt.decimals),
430
+ baseUnit: toBaseUnit(1000000, debtDecimals),
427
431
  baseAmountUsdValue: BigInt(Math.round(1000000 * debt.price)),
428
432
  },
429
433
  baseAmountMarketPriceUsd: toBaseUnit(debt.price, USD_DECIMALS),
430
434
  borrowFeeBps: 0,
431
- decimals: debt.decimals,
435
+ decimals: debtDecimals,
432
436
  flashLoanFeeBps: 0,
433
437
  mint: publicKey(debt.mint),
434
438
  padding1: [],
@@ -438,7 +442,7 @@ export function createFakePositionState(
438
442
  netWorth: {
439
443
  baseUnit: toBaseUnit(
440
444
  (supplyUsd - debtUsd) / supply.price,
441
- supply.decimals
445
+ supplyDecimals
442
446
  ),
443
447
  baseAmountUsdValue: toBaseUnit(supplyUsd - debtUsd, USD_DECIMALS),
444
448
  },
@@ -120,20 +120,16 @@ async function getFakePosition(
120
120
  client.solautoPositionState = await positionStateWithLatestPrices(
121
121
  createFakePositionState(
122
122
  {
123
- amountUsedBaseUnit: toBaseUnit(supplyUsd / supplyPrice, 9),
124
- decimals: 9,
123
+ amountUsed: supplyUsd / supplyPrice,
125
124
  price: PRICES[NATIVE_MINT.toString()].price,
126
125
  mint: NATIVE_MINT,
127
126
  },
128
127
  {
129
- amountUsedBaseUnit: toBaseUnit(
128
+ amountUsed:
130
129
  (supplyUsd *
131
130
  fromBps(liqThresholdBps) *
132
131
  fromBps(fakeLiqUtilizationRateBps)) /
133
- debtPrice,
134
- 6
135
- ),
136
- decimals: 6,
132
+ debtPrice,
137
133
  price: 1,
138
134
  mint: new PublicKey(USDC_MINT),
139
135
  },