@haven-fi/solauto-sdk 1.0.591 → 1.0.593

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.
@@ -20,7 +20,7 @@ class RebalanceTxBuilder {
20
20
  this.client.pos.eligibleForRebalance()));
21
21
  }
22
22
  getRebalanceValues(flFee) {
23
- return (0, rebalanceValues_1.getRebalanceValues)(this.client.pos, new solautoFees_1.SolautoFeesBps(this.client.isReferred(), this.targetLiqUtilizationRateBps, this.client.pos.netWorthUsd()), flFee ?? 0, this.targetLiqUtilizationRateBps);
23
+ return (0, rebalanceValues_1.getRebalanceValues)(this.client.pos, this.targetLiqUtilizationRateBps, solautoFees_1.SolautoFeesBps.create(this.client.isReferred(), this.targetLiqUtilizationRateBps, this.client.pos.netWorthUsd()), flFee ?? 0);
24
24
  }
25
25
  getFlLiquiditySource(supplyLiquidityAvailable, debtLiquidityAvailable) {
26
26
  const debtAdjustmentUsd = Math.abs(this.values.debtAdjustmentUsd);
@@ -26,6 +26,6 @@ export interface RebalanceValues extends DebtAdjustment {
26
26
  tokenBalanceChange?: TokenBalanceChange;
27
27
  repayingCloseToMaxLtv: boolean;
28
28
  }
29
- export declare function getRebalanceValues(solautoPosition: SolautoPositionEx, solautoFeeBps: SolautoFeesBps, flFeeBps: number, targetLiqUtilizationRateBps?: number): RebalanceValues;
29
+ export declare function getRebalanceValues(solautoPosition: SolautoPositionEx, targetLiqUtilizationRateBps?: number, solautoFeeBps?: SolautoFeesBps, flFeeBps?: number): RebalanceValues;
30
30
  export {};
31
31
  //# sourceMappingURL=rebalanceValues.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rebalanceValues.d.ts","sourceRoot":"","sources":["../../../src/services/rebalance/rebalanceValues.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAEnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAO1D,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,cAAc,CAAC;IAC1B,iCAAiC,EAAE,MAAM,CAAC;CAC3C;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,yBAAyB;IACjC,MAAM,EAAE,cAAc,CAAC;IACvB,iCAAiC,EAAE,MAAM,CAAC;CAC3C;AAED,wBAAgB,sBAAsB,CACpC,iBAAiB,EAAE,MAAM,EACzB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,gBAAgB,EACtB,YAAY,EAAE,MAAM,GACnB,yBAAyB,CA6B3B;AAED,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,EACpB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,gBAAgB,EACtB,2BAA2B,EAAE,MAAM,GAClC,cAAc,CA+BhB;AAqED,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAED,wBAAgB,kBAAkB,CAChC,eAAe,EAAE,iBAAiB,EAClC,aAAa,EAAE,cAAc,EAC7B,QAAQ,EAAE,MAAM,EAChB,2BAA2B,CAAC,EAAE,MAAM,GACnC,eAAe,CA2CjB"}
1
+ {"version":3,"file":"rebalanceValues.d.ts","sourceRoot":"","sources":["../../../src/services/rebalance/rebalanceValues.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAEnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAO1D,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,cAAc,CAAC;IAC1B,iCAAiC,EAAE,MAAM,CAAC;CAC3C;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,yBAAyB;IACjC,MAAM,EAAE,cAAc,CAAC;IACvB,iCAAiC,EAAE,MAAM,CAAC;CAC3C;AAED,wBAAgB,sBAAsB,CACpC,iBAAiB,EAAE,MAAM,EACzB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,gBAAgB,EACtB,YAAY,EAAE,MAAM,GACnB,yBAAyB,CA6B3B;AAED,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,EACpB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,gBAAgB,EACtB,2BAA2B,EAAE,MAAM,GAClC,cAAc,CA+BhB;AAqED,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAED,wBAAgB,kBAAkB,CAChC,eAAe,EAAE,iBAAiB,EAClC,2BAA2B,CAAC,EAAE,MAAM,EACpC,aAAa,CAAC,EAAE,cAAc,EAC9B,QAAQ,CAAC,EAAE,MAAM,GAChB,eAAe,CA6CjB"}
@@ -95,15 +95,17 @@ function getRebalanceDirection(solautoPosition, targetLtvBps) {
95
95
  ? generated_1.RebalanceDirection.Boost
96
96
  : generated_1.RebalanceDirection.Repay;
97
97
  }
98
- function getRebalanceValues(solautoPosition, solautoFeeBps, flFeeBps, targetLiqUtilizationRateBps) {
98
+ function getRebalanceValues(solautoPosition, targetLiqUtilizationRateBps, solautoFeeBps, flFeeBps) {
99
99
  const tokenBalanceChange = getTokenBalanceChange();
100
100
  const targetRate = getTargetLiqUtilizationRateBps(solautoPosition, targetLiqUtilizationRateBps, tokenBalanceChange);
101
101
  const rebalanceDirection = getRebalanceDirection(solautoPosition, targetRate);
102
102
  const position = getAdjustedPositionValues(solautoPosition, tokenBalanceChange);
103
103
  const fees = {
104
- solauto: solautoFeeBps.getSolautoFeesBps(rebalanceDirection).total,
104
+ solauto: solautoFeeBps
105
+ ? solautoFeeBps.getSolautoFeesBps(rebalanceDirection).total
106
+ : 0,
105
107
  lpBorrow: solautoPosition.state().debt.borrowFeeBps,
106
- flashLoan: flFeeBps,
108
+ flashLoan: flFeeBps ?? 0,
107
109
  };
108
110
  const debtAdjustment = getDebtAdjustment((0, utils_1.fromBps)(solautoPosition.state().liqThresholdBps), position, fees, targetRate);
109
111
  const repayingCloseToMaxLtv = rebalanceDirection === generated_1.RebalanceDirection.Repay &&
@@ -4,6 +4,7 @@ export declare class SolautoFeesBps {
4
4
  private targetLiqUtilizationRateBps;
5
5
  private positionNetWorthUsd;
6
6
  constructor(isReferred: boolean, targetLiqUtilizationRateBps: number | undefined, positionNetWorthUsd: number);
7
+ static create(isReferred: boolean, targetLiqUtilizationRateBps: number | undefined, netWorthUsd: number): SolautoFeesBps;
7
8
  getSolautoFeesBps(rebalanceDirection: RebalanceDirection): {
8
9
  solauto: number;
9
10
  referrer: number;
@@ -1 +1 @@
1
- {"version":3,"file":"solautoFees.d.ts","sourceRoot":"","sources":["../../../src/services/rebalance/solautoFees.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,qBAAa,cAAc;IAEvB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,2BAA2B;IACnC,OAAO,CAAC,mBAAmB;gBAFnB,UAAU,EAAE,OAAO,EACnB,2BAA2B,EAAE,MAAM,GAAG,SAAS,EAC/C,mBAAmB,EAAE,MAAM;IAG9B,iBAAiB,CAAC,kBAAkB,EAAE,kBAAkB;;;;;CAkDhE"}
1
+ {"version":3,"file":"solautoFees.d.ts","sourceRoot":"","sources":["../../../src/services/rebalance/solautoFees.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,qBAAa,cAAc;IAEvB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,2BAA2B;IACnC,OAAO,CAAC,mBAAmB;gBAFnB,UAAU,EAAE,OAAO,EACnB,2BAA2B,EAAE,MAAM,GAAG,SAAS,EAC/C,mBAAmB,EAAE,MAAM;IAGrC,MAAM,CAAC,MAAM,CACX,UAAU,EAAE,OAAO,EACnB,2BAA2B,EAAE,MAAM,GAAG,SAAS,EAC/C,WAAW,EAAE,MAAM;IASrB,iBAAiB,CAAC,kBAAkB,EAAE,kBAAkB;;;;;CAkDzD"}
@@ -9,6 +9,9 @@ class SolautoFeesBps {
9
9
  this.targetLiqUtilizationRateBps = targetLiqUtilizationRateBps;
10
10
  this.positionNetWorthUsd = positionNetWorthUsd;
11
11
  }
12
+ static create(isReferred, targetLiqUtilizationRateBps, netWorthUsd) {
13
+ return new SolautoFeesBps(isReferred, targetLiqUtilizationRateBps, netWorthUsd);
14
+ }
12
15
  getSolautoFeesBps(rebalanceDirection) {
13
16
  const minSize = 10000; // Minimum position size
14
17
  const maxSize = 250000; // Maximum position size
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haven-fi/solauto-sdk",
3
- "version": "1.0.591",
3
+ "version": "1.0.593",
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",
@@ -52,13 +52,13 @@ export class RebalanceTxBuilder {
52
52
  private getRebalanceValues(flFee?: number) {
53
53
  return getRebalanceValues(
54
54
  this.client.pos,
55
- new SolautoFeesBps(
55
+ this.targetLiqUtilizationRateBps,
56
+ SolautoFeesBps.create(
56
57
  this.client.isReferred(),
57
58
  this.targetLiqUtilizationRateBps,
58
59
  this.client.pos.netWorthUsd()
59
60
  ),
60
61
  flFee ?? 0,
61
- this.targetLiqUtilizationRateBps
62
62
  );
63
63
  }
64
64
 
@@ -183,9 +183,9 @@ export interface RebalanceValues extends DebtAdjustment {
183
183
 
184
184
  export function getRebalanceValues(
185
185
  solautoPosition: SolautoPositionEx,
186
- solautoFeeBps: SolautoFeesBps,
187
- flFeeBps: number,
188
- targetLiqUtilizationRateBps?: number
186
+ targetLiqUtilizationRateBps?: number,
187
+ solautoFeeBps?: SolautoFeesBps,
188
+ flFeeBps?: number,
189
189
  ): RebalanceValues {
190
190
  const tokenBalanceChange = getTokenBalanceChange();
191
191
 
@@ -203,9 +203,11 @@ export function getRebalanceValues(
203
203
  );
204
204
 
205
205
  const fees: RebalanceFeesBps = {
206
- solauto: solautoFeeBps.getSolautoFeesBps(rebalanceDirection).total,
206
+ solauto: solautoFeeBps
207
+ ? solautoFeeBps.getSolautoFeesBps(rebalanceDirection).total
208
+ : 0,
207
209
  lpBorrow: solautoPosition.state().debt.borrowFeeBps,
208
- flashLoan: flFeeBps,
210
+ flashLoan: flFeeBps ?? 0,
209
211
  };
210
212
 
211
213
  const debtAdjustment = getDebtAdjustment(
@@ -8,7 +8,19 @@ export class SolautoFeesBps {
8
8
  private positionNetWorthUsd: number
9
9
  ) {}
10
10
 
11
- public getSolautoFeesBps(rebalanceDirection: RebalanceDirection) {
11
+ static create(
12
+ isReferred: boolean,
13
+ targetLiqUtilizationRateBps: number | undefined,
14
+ netWorthUsd: number
15
+ ) {
16
+ return new SolautoFeesBps(
17
+ isReferred,
18
+ targetLiqUtilizationRateBps,
19
+ netWorthUsd
20
+ );
21
+ }
22
+
23
+ getSolautoFeesBps(rebalanceDirection: RebalanceDirection) {
12
24
  const minSize = 10_000; // Minimum position size
13
25
  const maxSize = 250_000; // Maximum position size
14
26
  const maxFeeBps = 50; // Fee in basis points for minSize (0.5%)
@@ -11,12 +11,7 @@ import {
11
11
  import { fromBps, getLiqUtilzationRateBps } from "../../src/utils/numberUtils";
12
12
  import { getClient } from "../../src/utils/solautoUtils";
13
13
  import { USDC } from "../../src/constants/tokenConstants";
14
- import {
15
- buildHeliusApiUrl,
16
- fetchTokenPrices,
17
- getSolanaRpcConnection,
18
- safeGetPrice,
19
- } from "../../src/utils";
14
+ import { buildIronforgeApiUrl, fetchTokenPrices, safeGetPrice } from "../../src/utils";
20
15
  import {
21
16
  createFakePositionState,
22
17
  getRebalanceValues,
@@ -24,12 +19,8 @@ import {
24
19
  SolautoClient,
25
20
  } from "../../src";
26
21
  import { SolautoFeesBps } from "../../src/services/rebalance/solautoFees";
27
- import { buildIronforgeApiUrl } from "../../dist";
28
22
 
29
23
  const signer = setupTest(undefined, true);
30
- const [conn, _] = getSolanaRpcConnection(
31
- buildHeliusApiUrl(process.env.HELIUS_API_URL!)
32
- );
33
24
 
34
25
  function assertAccurateRebalance(
35
26
  client: SolautoClient,
@@ -38,13 +29,13 @@ function assertAccurateRebalance(
38
29
  ) {
39
30
  const { endResult } = getRebalanceValues(
40
31
  client.pos,
41
- new SolautoFeesBps(
32
+ targetLiqUtilizationRateBps,
33
+ SolautoFeesBps.create(
42
34
  false,
43
35
  targetLiqUtilizationRateBps,
44
36
  client.pos.netWorthUsd()
45
37
  ),
46
- 50,
47
- targetLiqUtilizationRateBps
38
+ 50
48
39
  );
49
40
 
50
41
  const newLiqUtilizationRateBps = getLiqUtilzationRateBps(