@haven-fi/solauto-sdk 1.0.194 → 1.0.195

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.
@@ -3,7 +3,6 @@ import { PublicKey } from "@solana/web3.js";
3
3
  import { Signer, TransactionBuilder } from "@metaplex-foundation/umi";
4
4
  import { WalletAdapter } from "@metaplex-foundation/umi-signer-wallet-adapters";
5
5
  import { DCASettings, DCASettingsInpArgs, LendingPlatform, PositionState, SolautoActionArgs, SolautoPosition, SolautoRebalanceTypeArgs, SolautoSettingsParameters, SolautoSettingsParametersInpArgs, UpdatePositionDataArgs } from "../generated";
6
- import { JupSwapDetails } from "../utils/jupiterUtils";
7
6
  import { FlashLoanDetails } from "../utils/solauto/rebalanceUtils";
8
7
  import { LivePositionUpdates } from "../utils/solauto/generalUtils";
9
8
  import { ReferralStateManager } from "./referralStateManager";
@@ -45,6 +44,7 @@ export declare abstract class SolautoClient extends TxHandler {
45
44
  livePositionUpdates: LivePositionUpdates;
46
45
  constructor(heliusApiUrl: string, localTest?: boolean);
47
46
  initialize(args: SolautoClientArgs, lendingPlatform: LendingPlatform): Promise<void>;
47
+ setReferredBy(referredBy: PublicKey): void;
48
48
  resetLiveTxUpdates(success?: boolean): Promise<void>;
49
49
  abstract protocolAccount(): PublicKey;
50
50
  defaultLookupTables(): string[];
@@ -65,7 +65,7 @@ export declare abstract class SolautoClient extends TxHandler {
65
65
  protocolInteraction(args: SolautoActionArgs): TransactionBuilder;
66
66
  abstract flashBorrow(flashLoanDetails: FlashLoanDetails, destinationTokenAccount: PublicKey): TransactionBuilder;
67
67
  abstract flashRepay(flashLoanDetails: FlashLoanDetails): TransactionBuilder;
68
- abstract rebalance(rebalanceStep: "A" | "B", swapDetails: JupSwapDetails, jupQuote: QuoteResponse, rebalanceType: SolautoRebalanceTypeArgs, flashLoan?: FlashLoanDetails, targetLiqUtilizationRateBps?: number): TransactionBuilder;
68
+ abstract rebalance(rebalanceStep: "A" | "B", jupQuote: QuoteResponse, rebalanceType: SolautoRebalanceTypeArgs, flashLoan?: FlashLoanDetails, targetLiqUtilizationRateBps?: number): TransactionBuilder;
69
69
  getFreshPositionState(): Promise<PositionState | undefined>;
70
70
  }
71
71
  //# sourceMappingURL=solautoClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"solautoClient.d.ts","sourceRoot":"","sources":["../../src/clients/solautoClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"solautoClient.d.ts","sourceRoot":"","sources":["../../src/clients/solautoClient.ts"],"names":[],"mappings":"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"}
@@ -60,14 +60,33 @@ class SolautoClient extends txHandler_1.TxHandler {
60
60
  signer: args.signer,
61
61
  wallet: args.wallet,
62
62
  });
63
+ if (args.referredByAuthority) {
64
+ this.setReferredBy(args.referredByAuthority);
65
+ }
66
+ this.solautoFeesWallet = generalAccounts_1.SOLAUTO_FEES_WALLET;
67
+ this.solautoFeesSupplyTa = (0, accountUtils_1.getTokenAccount)(this.solautoFeesWallet, this.supplyMint);
68
+ const authorityReferralStateData = this.referralStateManager.referralStateData;
69
+ this.authorityLutAddress =
70
+ authorityReferralStateData?.lookupTable &&
71
+ !(0, umi_web3js_adapters_1.toWeb3JsPublicKey)(authorityReferralStateData.lookupTable).equals(web3_js_1.PublicKey.default)
72
+ ? (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(authorityReferralStateData.lookupTable)
73
+ : undefined;
74
+ this.log("Position state: ", this.solautoPositionState);
75
+ this.log("Position settings: ", this.solautoPositionData?.position?.settingParams);
76
+ this.log("Position DCA: ", (this.solautoPositionData?.position?.dca?.automation?.targetPeriods ??
77
+ 0) > 0
78
+ ? this.solautoPositionData?.position?.dca
79
+ : undefined);
80
+ }
81
+ setReferredBy(referredBy) {
63
82
  const authorityReferralStateData = this.referralStateManager.referralStateData;
64
83
  const hasReferredBy = authorityReferralStateData &&
65
84
  authorityReferralStateData.referredByState !==
66
85
  (0, umi_1.publicKey)(web3_js_1.PublicKey.default);
67
86
  const referredByAuthority = !hasReferredBy &&
68
- args.referredByAuthority &&
69
- !args.referredByAuthority.equals((0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.signer.publicKey))
70
- ? args.referredByAuthority
87
+ referredBy &&
88
+ !referredBy.equals((0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.signer.publicKey))
89
+ ? referredBy
71
90
  : undefined;
72
91
  this.referredByState = hasReferredBy
73
92
  ? (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(authorityReferralStateData.referredByState)
@@ -78,19 +97,6 @@ class SolautoClient extends txHandler_1.TxHandler {
78
97
  if (this.referredByState !== undefined) {
79
98
  this.referredBySupplyTa = (0, accountUtils_1.getTokenAccount)(this.referredByState, this.supplyMint);
80
99
  }
81
- this.solautoFeesWallet = generalAccounts_1.SOLAUTO_FEES_WALLET;
82
- this.solautoFeesSupplyTa = (0, accountUtils_1.getTokenAccount)(this.solautoFeesWallet, this.supplyMint);
83
- this.authorityLutAddress =
84
- authorityReferralStateData?.lookupTable &&
85
- !(0, umi_web3js_adapters_1.toWeb3JsPublicKey)(authorityReferralStateData.lookupTable).equals(web3_js_1.PublicKey.default)
86
- ? (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(authorityReferralStateData.lookupTable)
87
- : undefined;
88
- this.log("Position state: ", this.solautoPositionState);
89
- this.log("Position settings: ", this.solautoPositionData?.position?.settingParams);
90
- this.log("Position DCA: ", (this.solautoPositionData?.position?.dca?.automation?.targetPeriods ??
91
- 0) > 0
92
- ? this.solautoPositionData?.position?.dca
93
- : undefined);
94
100
  }
95
101
  async resetLiveTxUpdates(success) {
96
102
  if (success) {
@@ -200,7 +206,7 @@ class SolautoClient extends txHandler_1.TxHandler {
200
206
  type: "dcaInBalance",
201
207
  value: {
202
208
  amount: BigInt(dca.dcaInBaseUnit),
203
- tokenType: dca.tokenType
209
+ tokenType: dca.tokenType,
204
210
  },
205
211
  });
206
212
  }
@@ -241,7 +247,7 @@ class SolautoClient extends txHandler_1.TxHandler {
241
247
  type: "dcaInBalance",
242
248
  value: {
243
249
  amount: BigInt(args.dca.value.dcaInBaseUnit),
244
- tokenType: args.dca.value.tokenType
250
+ tokenType: args.dca.value.tokenType,
245
251
  },
246
252
  });
247
253
  addingToPos = true;
@@ -4,7 +4,6 @@ import { SolautoClient, SolautoClientArgs } from "./solautoClient";
4
4
  import { MarginfiAssetAccounts } from "../types/accounts";
5
5
  import { DCASettingsInpArgs, PositionState, SolautoActionArgs, SolautoRebalanceTypeArgs, SolautoSettingsParametersInpArgs } from "../generated";
6
6
  import { MarginfiAccount } from "../marginfi-sdk";
7
- import { JupSwapDetails } from "../utils/jupiterUtils";
8
7
  import { FlashLoanDetails } from "../utils/solauto/rebalanceUtils";
9
8
  import { QuoteResponse } from "@jup-ag/api";
10
9
  export interface SolautoMarginfiClientArgs extends SolautoClientArgs {
@@ -39,7 +38,7 @@ export declare class SolautoMarginfiClient extends SolautoClient {
39
38
  protocolInteraction(args: SolautoActionArgs): TransactionBuilder;
40
39
  private marginfiProtocolInteractionIx;
41
40
  private marginfiSolautoProtocolInteractionIx;
42
- rebalance(rebalanceStep: "A" | "B", swapDetails: JupSwapDetails, jupQuote: QuoteResponse, rebalanceType: SolautoRebalanceTypeArgs, flashLoan?: FlashLoanDetails, targetLiqUtilizationRateBps?: number): TransactionBuilder;
41
+ rebalance(rebalanceStep: "A" | "B", jupQuote: QuoteResponse, rebalanceType: SolautoRebalanceTypeArgs, flashLoan?: FlashLoanDetails, targetLiqUtilizationRateBps?: number): TransactionBuilder;
43
42
  flashBorrow(flashLoanDetails: FlashLoanDetails, destinationTokenAccount: PublicKey): TransactionBuilder;
44
43
  flashRepay(flashLoanDetails: FlashLoanDetails): TransactionBuilder;
45
44
  createIntermediaryMarginfiAccount(): TransactionBuilder;
@@ -1 +1 @@
1
- {"version":3,"file":"solautoMarginfiClient.d.ts","sourceRoot":"","sources":["../../src/clients/solautoMarginfiClient.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,MAAM,EACN,kBAAkB,EAMnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAA8B,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAM1D,OAAO,EACL,kBAAkB,EAElB,aAAa,EAEb,iBAAiB,EACjB,wBAAwB,EACxB,gCAAgC,EAKjC,MAAM,cAAc,CAAC;AAGtB,OAAO,EAEL,eAAe,EAUhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AASnE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;IAClE,eAAe,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IACrC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,aAAa,CAAC,EAAE,SAAS,CAAC;CAC3B;AAED,qBAAa,qBAAsB,SAAQ,aAAa;IACtD,OAAO,CAAC,WAAW,CAAkB;IAE9B,eAAe,EAAG,SAAS,CAAC;IAE5B,sBAAsB,EAAE,MAAM,CAAa;IAC3C,eAAe,EAAG,SAAS,GAAG,MAAM,CAAC;IACrC,iBAAiB,EAAG,SAAS,CAAC;IAC9B,aAAa,EAAG,SAAS,CAAC;IAE1B,sBAAsB,EAAG,qBAAqB,CAAC;IAC/C,oBAAoB,EAAG,qBAAqB,CAAC;IAE7C,iBAAiB,EAAG,SAAS,CAAC;IAC9B,eAAe,EAAG,SAAS,CAAC;IAG5B,iCAAiC,CAAC,EAAE,MAAM,CAAC;IAC3C,6BAA6B,EAAG,SAAS,CAAC;IAC1C,2BAA2B,CAAC,EAAE,eAAe,CAAC;IAE/C,UAAU,CAAC,IAAI,EAAE,yBAAyB;IAmE1C,8BAA8B;IA0CpC,eAAe,IAAI,SAAS;IAI5B,mBAAmB,IAAI,MAAM,EAAE;IAI/B,gBAAgB,IAAI,SAAS,EAAE;IAUzB,wBAAwB,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAyBvE,yBAAyB,IAAI,kBAAkB;IAS/C,YAAY,CACV,aAAa,CAAC,EAAE,gCAAgC,EAChD,GAAG,CAAC,EAAE,kBAAkB,GACvB,kBAAkB;IAMrB,OAAO,CAAC,sBAAsB;IA+C9B,OAAO,IAAI,kBAAkB;IAc7B,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,kBAAkB;IAUhE,OAAO,CAAC,6BAA6B;IAmErC,OAAO,CAAC,oCAAoC;IA0D5C,SAAS,CACP,aAAa,EAAE,GAAG,GAAG,GAAG,EACxB,WAAW,EAAE,cAAc,EAC3B,QAAQ,EAAE,aAAa,EACvB,aAAa,EAAE,wBAAwB,EACvC,SAAS,CAAC,EAAE,gBAAgB,EAC5B,2BAA2B,CAAC,EAAE,MAAM,GACnC,kBAAkB;IAgErB,WAAW,CACT,gBAAgB,EAAE,gBAAgB,EAClC,uBAAuB,EAAE,SAAS,GACjC,kBAAkB;IA2BrB,UAAU,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,kBAAkB;IAoFlE,iCAAiC,IAAI,kBAAkB;IASjD,qBAAqB,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;CA4ClE"}
1
+ {"version":3,"file":"solautoMarginfiClient.d.ts","sourceRoot":"","sources":["../../src/clients/solautoMarginfiClient.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,MAAM,EACN,kBAAkB,EAMnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAA8B,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAM1D,OAAO,EACL,kBAAkB,EAElB,aAAa,EAEb,iBAAiB,EACjB,wBAAwB,EACxB,gCAAgC,EAKjC,MAAM,cAAc,CAAC;AAGtB,OAAO,EAEL,eAAe,EAUhB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AASnE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;IAClE,eAAe,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IACrC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,aAAa,CAAC,EAAE,SAAS,CAAC;CAC3B;AAED,qBAAa,qBAAsB,SAAQ,aAAa;IACtD,OAAO,CAAC,WAAW,CAAkB;IAE9B,eAAe,EAAG,SAAS,CAAC;IAE5B,sBAAsB,EAAE,MAAM,CAAa;IAC3C,eAAe,EAAG,SAAS,GAAG,MAAM,CAAC;IACrC,iBAAiB,EAAG,SAAS,CAAC;IAC9B,aAAa,EAAG,SAAS,CAAC;IAE1B,sBAAsB,EAAG,qBAAqB,CAAC;IAC/C,oBAAoB,EAAG,qBAAqB,CAAC;IAE7C,iBAAiB,EAAG,SAAS,CAAC;IAC9B,eAAe,EAAG,SAAS,CAAC;IAG5B,iCAAiC,CAAC,EAAE,MAAM,CAAC;IAC3C,6BAA6B,EAAG,SAAS,CAAC;IAC1C,2BAA2B,CAAC,EAAE,eAAe,CAAC;IAE/C,UAAU,CAAC,IAAI,EAAE,yBAAyB;IAmE1C,8BAA8B;IA0CpC,eAAe,IAAI,SAAS;IAI5B,mBAAmB,IAAI,MAAM,EAAE;IAI/B,gBAAgB,IAAI,SAAS,EAAE;IAUzB,wBAAwB,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAyBvE,yBAAyB,IAAI,kBAAkB;IAS/C,YAAY,CACV,aAAa,CAAC,EAAE,gCAAgC,EAChD,GAAG,CAAC,EAAE,kBAAkB,GACvB,kBAAkB;IAMrB,OAAO,CAAC,sBAAsB;IA+C9B,OAAO,IAAI,kBAAkB;IAc7B,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,kBAAkB;IAUhE,OAAO,CAAC,6BAA6B;IAmErC,OAAO,CAAC,oCAAoC;IA0D5C,SAAS,CACP,aAAa,EAAE,GAAG,GAAG,GAAG,EACxB,QAAQ,EAAE,aAAa,EACvB,aAAa,EAAE,wBAAwB,EACvC,SAAS,CAAC,EAAE,gBAAgB,EAC5B,2BAA2B,CAAC,EAAE,MAAM,GACnC,kBAAkB;IAgErB,WAAW,CACT,gBAAgB,EAAE,gBAAgB,EAClC,uBAAuB,EAAE,SAAS,GACjC,kBAAkB;IA2BrB,UAAU,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,kBAAkB;IAoFlE,iCAAiC,IAAI,kBAAkB;IASjD,qBAAqB,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;CA4ClE"}
@@ -291,9 +291,9 @@ class SolautoMarginfiClient extends solautoClient_1.SolautoClient {
291
291
  solautoAction: args,
292
292
  });
293
293
  }
294
- rebalance(rebalanceStep, swapDetails, jupQuote, rebalanceType, flashLoan, targetLiqUtilizationRateBps) {
295
- const inputIsSupply = swapDetails.inputMint.equals(this.supplyMint);
296
- const outputIsSupply = swapDetails.outputMint.equals(this.supplyMint);
294
+ rebalance(rebalanceStep, jupQuote, rebalanceType, flashLoan, targetLiqUtilizationRateBps) {
295
+ const inputIsSupply = (new web3_js_1.PublicKey(jupQuote.inputMint)).equals(this.supplyMint);
296
+ const outputIsSupply = (new web3_js_1.PublicKey(jupQuote.outputMint)).equals(this.supplyMint);
297
297
  const needSupplyAccounts = (inputIsSupply && rebalanceStep === "A") ||
298
298
  (outputIsSupply && rebalanceStep === "B") ||
299
299
  (inputIsSupply && flashLoan !== undefined && rebalanceStep == "B");
@@ -313,7 +313,7 @@ class SolautoMarginfiClient extends solautoClient_1.SolautoClient {
313
313
  solautoPosition: (0, umi_1.publicKey)(this.solautoPosition),
314
314
  marginfiGroup: (0, umi_1.publicKey)(this.marginfiGroup),
315
315
  marginfiAccount: (0, umi_1.publicKey)(this.marginfiAccountPk),
316
- intermediaryTa: (0, umi_1.publicKey)((0, accountUtils_1.getTokenAccount)((0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.signer.publicKey), swapDetails.inputMint)),
316
+ intermediaryTa: (0, umi_1.publicKey)((0, accountUtils_1.getTokenAccount)((0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.signer.publicKey), new web3_js_1.PublicKey(jupQuote.inputMint))),
317
317
  supplyBank: (0, umi_1.publicKey)(this.marginfiSupplyAccounts.bank),
318
318
  supplyPriceOracle: (0, umi_1.publicKey)(this.supplyPriceOracle),
319
319
  positionSupplyTa: (0, umi_1.publicKey)(this.positionSupplyTa),
@@ -1 +1 @@
1
- {"version":3,"file":"transactionUtils.d.ts","sourceRoot":"","sources":["../../src/transactions/transactionUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,kBAAkB,EAClB,GAAG,EAGJ,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,SAAS,EAA8B,MAAM,iBAAiB,CAAC;AAKxE,OAAO,EAGL,aAAa,EAYd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAiOzD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,kBAAkB,EACtB,sBAAsB,EAAE,MAAM,EAAE,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CA+G7B;AAkLD,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,kBAAkB,GACrB,OAAO,CAAC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,CA0BnD;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,aAAa,WAwCnE;AAED,wBAAsB,gCAAgC,CACpD,MAAM,EAAE,aAAa,EACrB,2BAA2B,CAAC,EAAE,MAAM,EACpC,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CACN;IACE,EAAE,EAAE,kBAAkB,CAAC;IACvB,oBAAoB,EAAE,MAAM,EAAE,CAAC;CAChC,GACD,SAAS,CACZ,CAsHA;AAED,wBAAsB,gCAAgC,CACpD,GAAG,EAAE,GAAG,EACR,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,SAAS,GACtB,OAAO,CAAC,CAAC,kBAAkB,EAAE,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,CAmCrD;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,GAAG;;;;EAwC9D"}
1
+ {"version":3,"file":"transactionUtils.d.ts","sourceRoot":"","sources":["../../src/transactions/transactionUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,kBAAkB,EAClB,GAAG,EAGJ,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,SAAS,EAA8B,MAAM,iBAAiB,CAAC;AAKxE,OAAO,EAGL,aAAa,EAYd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAiOzD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,kBAAkB,EACtB,sBAAsB,EAAE,MAAM,EAAE,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CA+G7B;AAkLD,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,kBAAkB,GACrB,OAAO,CAAC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,CA0BnD;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,aAAa,WAwCnE;AAED,wBAAsB,gCAAgC,CACpD,MAAM,EAAE,aAAa,EACrB,2BAA2B,CAAC,EAAE,MAAM,EACpC,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CACN;IACE,EAAE,EAAE,kBAAkB,CAAC;IACvB,oBAAoB,EAAE,MAAM,EAAE,CAAC;CAChC,GACD,SAAS,CACZ,CAkHA;AAED,wBAAsB,gCAAgC,CACpD,GAAG,EAAE,GAAG,EACR,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,SAAS,GACtB,OAAO,CAAC,CAAC,kBAAkB,EAAE,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,CAmCrD;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,GAAG;;;;EAwC9D"}
@@ -340,8 +340,8 @@ function requiresRefreshBeforeRebalance(client) {
340
340
  oldSupply;
341
341
  const debtDiff = (client.solautoPositionState?.debt.amountUsed.baseUnit ?? BigInt(0)) -
342
342
  oldDebt;
343
- if (Math.abs(Number(supplyDiff)) / Number(oldSupply) >= 0.01 ||
344
- Math.abs(Number(debtDiff)) / Number(oldDebt) >= 0.01) {
343
+ if (Math.abs(Number(supplyDiff)) / Number(oldSupply) >= 0.005 ||
344
+ Math.abs(Number(debtDiff)) / Number(oldDebt) >= 0.005) {
345
345
  return true;
346
346
  }
347
347
  }
@@ -378,11 +378,11 @@ async function buildSolautoRebalanceTransaction(client, targetLiqUtilizationRate
378
378
  client.flashBorrow(flashLoan, (0, accountUtils_1.getTokenAccount)((0, umi_web3js_adapters_1.toWeb3JsPublicKey)(client.signer.publicKey), swapDetails.inputMint)),
379
379
  ...(addFirstRebalance
380
380
  ? [
381
- client.rebalance("A", swapDetails, jupQuote, rebalanceType, flashLoan, targetLiqUtilizationRateBps),
381
+ client.rebalance("A", jupQuote, rebalanceType, flashLoan, targetLiqUtilizationRateBps),
382
382
  ]
383
383
  : []),
384
384
  swapIx,
385
- client.rebalance("B", swapDetails, jupQuote, rebalanceType, flashLoan, targetLiqUtilizationRateBps),
385
+ client.rebalance("B", jupQuote, rebalanceType, flashLoan, targetLiqUtilizationRateBps),
386
386
  client.flashRepay(flashLoan),
387
387
  ]);
388
388
  }
@@ -391,9 +391,9 @@ async function buildSolautoRebalanceTransaction(client, targetLiqUtilizationRate
391
391
  tx = tx.add([
392
392
  setupInstructions,
393
393
  tokenLedgerIx,
394
- client.rebalance("A", swapDetails, jupQuote, rebalanceType, undefined, targetLiqUtilizationRateBps),
394
+ client.rebalance("A", jupQuote, rebalanceType, undefined, targetLiqUtilizationRateBps),
395
395
  swapIx,
396
- client.rebalance("B", swapDetails, jupQuote, rebalanceType, undefined, targetLiqUtilizationRateBps),
396
+ client.rebalance("B", jupQuote, rebalanceType, undefined, targetLiqUtilizationRateBps),
397
397
  ]);
398
398
  }
399
399
  return {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haven-fi/solauto-sdk",
3
- "version": "1.0.194",
3
+ "version": "1.0.195",
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",
@@ -103,10 +103,7 @@ export abstract class SolautoClient extends TxHandler {
103
103
 
104
104
  public livePositionUpdates: LivePositionUpdates = new LivePositionUpdates();
105
105
 
106
- constructor(
107
- heliusApiUrl: string,
108
- localTest?: boolean
109
- ) {
106
+ constructor(heliusApiUrl: string, localTest?: boolean) {
110
107
  super(heliusApiUrl, localTest);
111
108
 
112
109
  this.umi = this.umi.use({
@@ -175,29 +172,8 @@ export abstract class SolautoClient extends TxHandler {
175
172
  wallet: args.wallet,
176
173
  });
177
174
 
178
- const authorityReferralStateData =
179
- this.referralStateManager.referralStateData;
180
- const hasReferredBy =
181
- authorityReferralStateData &&
182
- authorityReferralStateData.referredByState !==
183
- publicKey(PublicKey.default);
184
- const referredByAuthority =
185
- !hasReferredBy &&
186
- args.referredByAuthority &&
187
- !args.referredByAuthority.equals(toWeb3JsPublicKey(this.signer.publicKey))
188
- ? args.referredByAuthority
189
- : undefined;
190
- this.referredByState = hasReferredBy
191
- ? toWeb3JsPublicKey(authorityReferralStateData!.referredByState)
192
- : referredByAuthority
193
- ? getReferralState(referredByAuthority!)
194
- : undefined;
195
- this.referredByAuthority = referredByAuthority;
196
- if (this.referredByState !== undefined) {
197
- this.referredBySupplyTa = getTokenAccount(
198
- this.referredByState,
199
- this.supplyMint
200
- );
175
+ if (args.referredByAuthority) {
176
+ this.setReferredBy(args.referredByAuthority);
201
177
  }
202
178
 
203
179
  this.solautoFeesWallet = SOLAUTO_FEES_WALLET;
@@ -206,6 +182,8 @@ export abstract class SolautoClient extends TxHandler {
206
182
  this.supplyMint
207
183
  );
208
184
 
185
+ const authorityReferralStateData =
186
+ this.referralStateManager.referralStateData;
209
187
  this.authorityLutAddress =
210
188
  authorityReferralStateData?.lookupTable &&
211
189
  !toWeb3JsPublicKey(authorityReferralStateData.lookupTable).equals(
@@ -228,6 +206,33 @@ export abstract class SolautoClient extends TxHandler {
228
206
  );
229
207
  }
230
208
 
209
+ public setReferredBy(referredBy: PublicKey) {
210
+ const authorityReferralStateData =
211
+ this.referralStateManager.referralStateData;
212
+ const hasReferredBy =
213
+ authorityReferralStateData &&
214
+ authorityReferralStateData.referredByState !==
215
+ publicKey(PublicKey.default);
216
+ const referredByAuthority =
217
+ !hasReferredBy &&
218
+ referredBy &&
219
+ !referredBy.equals(toWeb3JsPublicKey(this.signer.publicKey))
220
+ ? referredBy
221
+ : undefined;
222
+ this.referredByState = hasReferredBy
223
+ ? toWeb3JsPublicKey(authorityReferralStateData!.referredByState)
224
+ : referredByAuthority
225
+ ? getReferralState(referredByAuthority!)
226
+ : undefined;
227
+ this.referredByAuthority = referredByAuthority;
228
+ if (this.referredByState !== undefined) {
229
+ this.referredBySupplyTa = getTokenAccount(
230
+ this.referredByState,
231
+ this.supplyMint
232
+ );
233
+ }
234
+ }
235
+
231
236
  async resetLiveTxUpdates(success?: boolean) {
232
237
  if (success) {
233
238
  if (!this.solautoPositionData) {
@@ -378,7 +383,7 @@ export abstract class SolautoClient extends TxHandler {
378
383
  type: "dcaInBalance",
379
384
  value: {
380
385
  amount: BigInt(dca.dcaInBaseUnit),
381
- tokenType: dca.tokenType
386
+ tokenType: dca.tokenType,
382
387
  },
383
388
  });
384
389
  }
@@ -423,7 +428,7 @@ export abstract class SolautoClient extends TxHandler {
423
428
  type: "dcaInBalance",
424
429
  value: {
425
430
  amount: BigInt(args.dca.value.dcaInBaseUnit),
426
- tokenType: args.dca.value.tokenType
431
+ tokenType: args.dca.value.tokenType,
427
432
  },
428
433
  });
429
434
  addingToPos = true;
@@ -596,11 +601,10 @@ export abstract class SolautoClient extends TxHandler {
596
601
 
597
602
  abstract rebalance(
598
603
  rebalanceStep: "A" | "B",
599
- swapDetails: JupSwapDetails,
600
604
  jupQuote: QuoteResponse,
601
605
  rebalanceType: SolautoRebalanceTypeArgs,
602
606
  flashLoan?: FlashLoanDetails,
603
- targetLiqUtilizationRateBps?: number,
607
+ targetLiqUtilizationRateBps?: number
604
608
  ): TransactionBuilder;
605
609
 
606
610
  async getFreshPositionState(): Promise<PositionState | undefined> {
@@ -454,14 +454,13 @@ export class SolautoMarginfiClient extends SolautoClient {
454
454
 
455
455
  rebalance(
456
456
  rebalanceStep: "A" | "B",
457
- swapDetails: JupSwapDetails,
458
457
  jupQuote: QuoteResponse,
459
458
  rebalanceType: SolautoRebalanceTypeArgs,
460
459
  flashLoan?: FlashLoanDetails,
461
460
  targetLiqUtilizationRateBps?: number
462
461
  ): TransactionBuilder {
463
- const inputIsSupply = swapDetails.inputMint.equals(this.supplyMint);
464
- const outputIsSupply = swapDetails.outputMint.equals(this.supplyMint);
462
+ const inputIsSupply = (new PublicKey(jupQuote.inputMint)).equals(this.supplyMint);
463
+ const outputIsSupply = (new PublicKey(jupQuote.outputMint)).equals(this.supplyMint);
465
464
  const needSupplyAccounts =
466
465
  (inputIsSupply && rebalanceStep === "A") ||
467
466
  (outputIsSupply && rebalanceStep === "B") ||
@@ -490,7 +489,7 @@ export class SolautoMarginfiClient extends SolautoClient {
490
489
  intermediaryTa: publicKey(
491
490
  getTokenAccount(
492
491
  toWeb3JsPublicKey(this.signer.publicKey),
493
- swapDetails.inputMint
492
+ new PublicKey(jupQuote.inputMint)
494
493
  )
495
494
  ),
496
495
  supplyBank: publicKey(this.marginfiSupplyAccounts.bank),
@@ -607,8 +607,8 @@ export function requiresRefreshBeforeRebalance(client: SolautoClient) {
607
607
  oldDebt;
608
608
 
609
609
  if (
610
- Math.abs(Number(supplyDiff)) / Number(oldSupply) >= 0.01 ||
611
- Math.abs(Number(debtDiff)) / Number(oldDebt) >= 0.01
610
+ Math.abs(Number(supplyDiff)) / Number(oldSupply) >= 0.005 ||
611
+ Math.abs(Number(debtDiff)) / Number(oldDebt) >= 0.005
612
612
  ) {
613
613
  return true;
614
614
  }
@@ -699,7 +699,6 @@ export async function buildSolautoRebalanceTransaction(
699
699
  ? [
700
700
  client.rebalance(
701
701
  "A",
702
- swapDetails,
703
702
  jupQuote,
704
703
  rebalanceType,
705
704
  flashLoan,
@@ -710,7 +709,6 @@ export async function buildSolautoRebalanceTransaction(
710
709
  swapIx,
711
710
  client.rebalance(
712
711
  "B",
713
- swapDetails,
714
712
  jupQuote,
715
713
  rebalanceType,
716
714
  flashLoan,
@@ -725,7 +723,6 @@ export async function buildSolautoRebalanceTransaction(
725
723
  tokenLedgerIx,
726
724
  client.rebalance(
727
725
  "A",
728
- swapDetails,
729
726
  jupQuote,
730
727
  rebalanceType,
731
728
  undefined,
@@ -734,7 +731,6 @@ export async function buildSolautoRebalanceTransaction(
734
731
  swapIx,
735
732
  client.rebalance(
736
733
  "B",
737
- swapDetails,
738
734
  jupQuote,
739
735
  rebalanceType,
740
736
  undefined,