@haven-fi/solauto-sdk 1.0.590 → 1.0.592

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, solautoFees_1.SolautoFeesBps.create(this.client.isReferred(), this.targetLiqUtilizationRateBps, this.client.pos.netWorthUsd()), flFee ?? 0, this.targetLiqUtilizationRateBps);
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, solautoFeeBps: SolautoFeesBps | undefined, flFeeBps: number, targetLiqUtilizationRateBps?: 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,aAAa,EAAE,cAAc,GAAG,SAAS,EACzC,QAAQ,EAAE,MAAM,EAChB,2BAA2B,CAAC,EAAE,MAAM,GACnC,eAAe,CA6CjB"}
@@ -101,7 +101,9 @@ function getRebalanceValues(solautoPosition, solautoFeeBps, flFeeBps, targetLiqU
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
108
  flashLoan: flFeeBps,
107
109
  };
@@ -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
@@ -3,6 +3,7 @@ import { DCASettings, LendingPlatform, PositionState, SolautoPosition, SolautoSe
3
3
  import { Umi } from "@metaplex-foundation/umi";
4
4
  import { ContextUpdates } from "../utils";
5
5
  import { RebalanceAction } from "../types";
6
+ import { TokenInfo } from "../constants";
6
7
  export interface PositionCustomArgs {
7
8
  lendingPlatform: LendingPlatform;
8
9
  supplyMint?: PublicKey;
@@ -39,7 +40,9 @@ export declare abstract class SolautoPositionEx {
39
40
  settings(): SolautoSettingsParameters | undefined;
40
41
  dca(): DCASettings | undefined;
41
42
  supplyMint(): PublicKey;
43
+ supplyMintInfo(): TokenInfo;
42
44
  debtMint(): PublicKey;
45
+ debtMintInfo(): TokenInfo;
43
46
  boostToBps(): number;
44
47
  boostFromBps(): number;
45
48
  repayToBps(): number;
@@ -62,7 +65,7 @@ export declare abstract class SolautoPositionEx {
62
65
  protected canRefreshPositionState(): boolean;
63
66
  abstract refreshPositionState(): Promise<void>;
64
67
  utilizationRateBpsDrift(): Promise<number>;
65
- updateWithLatestPrices(supplyPrice?: number, debtPrice?: number): Promise<PositionState>;
68
+ updateWithLatestPrices(supplyPrice?: number, debtPrice?: number): Promise<void>;
66
69
  refetchPositionData(): Promise<void>;
67
70
  }
68
71
  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,EASf,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAQ3C,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,QAAQ,IAAI,SAAS;IAIrB,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,GAAG,OAAO,CAAC,aAAa,CAAC;IAUxF,mBAAmB;CAM1B"}
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,EAUf,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,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;CAM1B"}
@@ -51,9 +51,15 @@ class SolautoPositionEx {
51
51
  supplyMint() {
52
52
  return (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.state().supply.mint);
53
53
  }
54
+ supplyMintInfo() {
55
+ return (0, utils_1.tokenInfo)(this.supplyMint());
56
+ }
54
57
  debtMint() {
55
58
  return (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.state().debt.mint);
56
59
  }
60
+ debtMintInfo() {
61
+ return (0, utils_1.tokenInfo)(this.debtMint());
62
+ }
57
63
  boostToBps() {
58
64
  return Math.min(this.settings()?.boostToBps ?? 0, (0, utils_1.maxBoostToBps)(this.state().maxLtvBps, this.state().liqThresholdBps));
59
65
  }
@@ -142,9 +148,7 @@ class SolautoPositionEx {
142
148
  return newState.liqUtilizationRateBps - oldState.liqUtilizationRateBps;
143
149
  }
144
150
  async updateWithLatestPrices(supplyPrice, debtPrice) {
145
- const newState = await (0, utils_1.positionStateWithLatestPrices)(this.state(), supplyPrice, debtPrice);
146
- this._data.state = newState;
147
- return newState;
151
+ this._data.state = await (0, utils_1.positionStateWithLatestPrices)(this.state(), supplyPrice, debtPrice);
148
152
  }
149
153
  async refetchPositionData() {
150
154
  this._data = await (0, generated_1.fetchSolautoPosition)(this.umi, (0, umi_web3js_adapters_1.fromWeb3JsPublicKey)(this.publicKey));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haven-fi/solauto-sdk",
3
- "version": "1.0.590",
3
+ "version": "1.0.592",
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,7 +52,7 @@ export class RebalanceTxBuilder {
52
52
  private getRebalanceValues(flFee?: number) {
53
53
  return getRebalanceValues(
54
54
  this.client.pos,
55
- new SolautoFeesBps(
55
+ SolautoFeesBps.create(
56
56
  this.client.isReferred(),
57
57
  this.targetLiqUtilizationRateBps,
58
58
  this.client.pos.netWorthUsd()
@@ -183,7 +183,7 @@ export interface RebalanceValues extends DebtAdjustment {
183
183
 
184
184
  export function getRebalanceValues(
185
185
  solautoPosition: SolautoPositionEx,
186
- solautoFeeBps: SolautoFeesBps,
186
+ solautoFeeBps: SolautoFeesBps | undefined,
187
187
  flFeeBps: number,
188
188
  targetLiqUtilizationRateBps?: number
189
189
  ): RebalanceValues {
@@ -203,7 +203,9 @@ 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
210
  flashLoan: flFeeBps,
209
211
  };
@@ -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%)
@@ -25,10 +25,11 @@ import {
25
25
  safeGetPrice,
26
26
  solautoStrategyName,
27
27
  supplyLiquidityUsdDepositable,
28
+ tokenInfo,
28
29
  } from "../utils";
29
30
  import { RebalanceAction } from "../types";
30
31
  import { getDebtAdjustment } from "../services/rebalance";
31
- import { MIN_POSITION_STATE_FRESHNESS_SECS } from "../constants";
32
+ import { MIN_POSITION_STATE_FRESHNESS_SECS, TokenInfo } from "../constants";
32
33
  import {
33
34
  fromWeb3JsPublicKey,
34
35
  toWeb3JsPublicKey,
@@ -123,10 +124,18 @@ export abstract class SolautoPositionEx {
123
124
  return toWeb3JsPublicKey(this.state().supply.mint);
124
125
  }
125
126
 
127
+ supplyMintInfo(): TokenInfo {
128
+ return tokenInfo(this.supplyMint());
129
+ }
130
+
126
131
  debtMint(): PublicKey {
127
132
  return toWeb3JsPublicKey(this.state().debt.mint);
128
133
  }
129
134
 
135
+ debtMintInfo(): TokenInfo {
136
+ return tokenInfo(this.debtMint());
137
+ }
138
+
130
139
  boostToBps() {
131
140
  return Math.min(
132
141
  this.settings()?.boostToBps ?? 0,
@@ -274,14 +283,12 @@ export abstract class SolautoPositionEx {
274
283
  return newState.liqUtilizationRateBps - oldState.liqUtilizationRateBps;
275
284
  }
276
285
 
277
- async updateWithLatestPrices(supplyPrice?: number, debtPrice?: number): Promise<PositionState> {
278
- const newState = await positionStateWithLatestPrices(
286
+ async updateWithLatestPrices(supplyPrice?: number, debtPrice?: number) {
287
+ this._data.state = await positionStateWithLatestPrices(
279
288
  this.state(),
280
289
  supplyPrice,
281
290
  debtPrice
282
291
  );
283
- this._data.state = newState;
284
- return newState;
285
292
  }
286
293
 
287
294
  async refetchPositionData() {
@@ -73,7 +73,7 @@ export async function e2eTransactionTest(
73
73
  return {
74
74
  tx: client.protocolInteractionIx(
75
75
  solautoAction("Deposit", [
76
- toBaseUnit(supplyUsd / supplyPrice, tokenInfo(supplyMint).decimals),
76
+ toBaseUnit(supplyUsd / supplyPrice, client.pos.supplyMintInfo().decimals),
77
77
  ])
78
78
  ),
79
79
  };
@@ -86,7 +86,7 @@ export async function e2eTransactionTest(
86
86
  return {
87
87
  tx: client.protocolInteractionIx(
88
88
  solautoAction("Borrow", [
89
- toBaseUnit(debtUsd / debtPrice, tokenInfo(debtMint).decimals),
89
+ toBaseUnit(debtUsd / debtPrice, client.pos.debtMintInfo().decimals),
90
90
  ])
91
91
  ),
92
92
  };
@@ -38,7 +38,7 @@ function assertAccurateRebalance(
38
38
  ) {
39
39
  const { endResult } = getRebalanceValues(
40
40
  client.pos,
41
- new SolautoFeesBps(
41
+ SolautoFeesBps.create(
42
42
  false,
43
43
  targetLiqUtilizationRateBps,
44
44
  client.pos.netWorthUsd()