@haven-fi/solauto-sdk 1.0.194 → 1.0.195

Sign up to get free protection for your applications and to get access to all the features.
@@ -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,