@haven-fi/solauto-sdk 1.0.214 → 1.0.216

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,20 +3,22 @@ import { Signer, TransactionBuilder, Umi } from "@metaplex-foundation/umi";
3
3
  import { WalletAdapter } from "@metaplex-foundation/umi-signer-wallet-adapters";
4
4
  import { ReferralState } from "../generated";
5
5
  import { TxHandler } from "./txHandler";
6
- interface ReferralStateManagerArgs {
6
+ export interface ReferralStateManagerArgs {
7
7
  signer?: Signer;
8
8
  wallet?: WalletAdapter;
9
- referralAuthority?: PublicKey;
9
+ authority?: PublicKey;
10
10
  referredByAuthority?: PublicKey;
11
11
  }
12
12
  export declare class ReferralStateManager extends TxHandler {
13
13
  localTest?: boolean | undefined;
14
14
  umi: Umi;
15
15
  signer: Signer;
16
- referralAuthority: PublicKey;
16
+ authority: PublicKey;
17
17
  referralState: PublicKey;
18
18
  referralStateData: ReferralState | null;
19
- constructor(heliusApiUrl: string, localTest?: boolean | undefined);
19
+ referredBy?: PublicKey;
20
+ referredByState?: PublicKey;
21
+ constructor(rpcUrl: string, localTest?: boolean | undefined);
20
22
  initialize(args: ReferralStateManagerArgs): Promise<void>;
21
23
  defaultLookupTables(): string[];
22
24
  setReferredBy(referredBy?: PublicKey): void;
@@ -24,5 +26,4 @@ export declare class ReferralStateManager extends TxHandler {
24
26
  claimReferralFeesIx(destFeesMint?: PublicKey): TransactionBuilder;
25
27
  resetLiveTxUpdates(success?: boolean): Promise<void>;
26
28
  }
27
- export {};
28
29
  //# sourceMappingURL=referralStateManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"referralStateManager.d.ts","sourceRoot":"","sources":["../../src/clients/referralStateManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAEL,MAAM,EAEN,kBAAkB,EAClB,GAAG,EACJ,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,aAAa,EAEd,MAAM,iDAAiD,CAAC;AACzD,OAAO,EAGL,aAAa,EAGd,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,UAAU,wBAAwB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,iBAAiB,CAAC,EAAE,SAAS,CAAC;IAC9B,mBAAmB,CAAC,EAAE,SAAS,CAAC;CACjC;AAED,qBAAa,oBAAqB,SAAQ,SAAS;IAUxC,SAAS,CAAC,EAAE,OAAO;IATrB,GAAG,EAAG,GAAG,CAAC;IACV,MAAM,EAAG,MAAM,CAAC;IAEhB,iBAAiB,EAAG,SAAS,CAAC;IAC9B,aAAa,EAAG,SAAS,CAAC;IAC1B,iBAAiB,EAAG,aAAa,GAAG,IAAI,CAAC;gBAG9C,YAAY,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,OAAO,YAAA;IAUtB,UAAU,CAAC,IAAI,EAAE,wBAAwB;IAuB/C,mBAAmB,IAAI,MAAM,EAAE;IASxB,aAAa,CAAC,UAAU,CAAC,EAAE,SAAS;IAqB3C,sBAAsB,CACpB,YAAY,CAAC,EAAE,SAAS,EACxB,WAAW,CAAC,EAAE,SAAS,GACtB,kBAAkB;IAerB,mBAAmB,CAAC,YAAY,CAAC,EAAE,SAAS,GAAG,kBAAkB;IA8B3D,kBAAkB,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAC3D"}
1
+ {"version":3,"file":"referralStateManager.d.ts","sourceRoot":"","sources":["../../src/clients/referralStateManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAEL,MAAM,EAEN,kBAAkB,EAClB,GAAG,EACJ,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,aAAa,EAEd,MAAM,iDAAiD,CAAC;AACzD,OAAO,EAGL,aAAa,EAGd,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,mBAAmB,CAAC,EAAE,SAAS,CAAC;CACjC;AAED,qBAAa,oBAAqB,SAAQ,SAAS;IAaxC,SAAS,CAAC,EAAE,OAAO;IAZrB,GAAG,EAAG,GAAG,CAAC;IACV,MAAM,EAAG,MAAM,CAAC;IAEhB,SAAS,EAAG,SAAS,CAAC;IACtB,aAAa,EAAG,SAAS,CAAC;IAC1B,iBAAiB,EAAG,aAAa,GAAG,IAAI,CAAC;IAEzC,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,eAAe,CAAC,EAAE,SAAS,CAAC;gBAGjC,MAAM,EAAE,MAAM,EACP,SAAS,CAAC,EAAE,OAAO,YAAA;IAUtB,UAAU,CAAC,IAAI,EAAE,wBAAwB;IAwB/C,mBAAmB,IAAI,MAAM,EAAE;IAS/B,aAAa,CAAC,UAAU,CAAC,EAAE,SAAS;IAmBpC,sBAAsB,CACpB,YAAY,CAAC,EAAE,SAAS,EACxB,WAAW,CAAC,EAAE,SAAS,GACtB,kBAAkB;IAerB,mBAAmB,CAAC,YAAY,CAAC,EAAE,SAAS,GAAG,kBAAkB;IA8B3D,kBAAkB,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAC3D"}
@@ -11,8 +11,8 @@ const utils_1 = require("../utils");
11
11
  const txHandler_1 = require("./txHandler");
12
12
  const constants_1 = require("../constants");
13
13
  class ReferralStateManager extends txHandler_1.TxHandler {
14
- constructor(heliusApiUrl, localTest) {
15
- super(heliusApiUrl, localTest);
14
+ constructor(rpcUrl, localTest) {
15
+ super(rpcUrl, localTest);
16
16
  this.localTest = localTest;
17
17
  this.umi = this.umi.use({
18
18
  install(umi) {
@@ -28,7 +28,8 @@ class ReferralStateManager extends txHandler_1.TxHandler {
28
28
  ? (0, umi_1.signerIdentity)(args.signer)
29
29
  : (0, umi_signer_wallet_adapters_1.walletAdapterIdentity)(args.wallet, true));
30
30
  this.signer = this.umi.identity;
31
- this.referralState = (0, utils_1.getReferralState)(args.referralAuthority ?? (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.signer.publicKey));
31
+ this.authority = args.authority ?? (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.signer.publicKey);
32
+ this.referralState = (0, utils_1.getReferralState)(args.authority ?? (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.signer.publicKey));
32
33
  this.referralStateData = await (0, generated_1.safeFetchReferralState)(this.umi, (0, umi_1.publicKey)(this.referralState), { commitment: "confirmed" });
33
34
  this.setReferredBy(args.referredByAuthority);
34
35
  }
@@ -39,10 +40,8 @@ class ReferralStateManager extends txHandler_1.TxHandler {
39
40
  : [constants_1.SOLAUTO_LUT];
40
41
  }
41
42
  setReferredBy(referredBy) {
42
- const authorityReferralStateData = this.referralStateData;
43
- const hasReferredBy = authorityReferralStateData &&
44
- authorityReferralStateData.referredByState !==
45
- (0, umi_1.publicKey)(web3_js_1.PublicKey.default);
43
+ const hasReferredBy = this.referralStateData &&
44
+ this.referralStateData.referredByState !== (0, umi_1.publicKey)(web3_js_1.PublicKey.default);
46
45
  const finalReferredBy = !hasReferredBy &&
47
46
  referredBy &&
48
47
  !referredBy.equals((0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.signer.publicKey))
@@ -51,8 +50,8 @@ class ReferralStateManager extends txHandler_1.TxHandler {
51
50
  this.referredBy = finalReferredBy;
52
51
  this.referredByState = finalReferredBy
53
52
  ? (0, utils_1.getReferralState)(finalReferredBy)
54
- : authorityReferralStateData
55
- ? (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(authorityReferralStateData.referredByState)
53
+ : this.referralStateData
54
+ ? (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.referralStateData.referredByState)
56
55
  : undefined;
57
56
  }
58
57
  updateReferralStatesIx(destFeesMint, lookupTable) {
@@ -78,7 +77,7 @@ class ReferralStateManager extends txHandler_1.TxHandler {
78
77
  return (0, generated_1.claimReferralFees)(this.umi, {
79
78
  signer: this.signer,
80
79
  signerWsolTa: (0, umi_1.publicKey)((0, utils_1.getTokenAccount)((0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.signer.publicKey), spl_token_1.NATIVE_MINT)),
81
- referralAuthority: (0, umi_1.publicKey)(this.referralAuthority),
80
+ referralAuthority: (0, umi_1.publicKey)(this.authority),
82
81
  referralState: (0, umi_1.publicKey)(this.referralState),
83
82
  referralFeesDestTa: (0, umi_1.publicKey)(referralDestTa),
84
83
  referralFeesDestMint: (0, umi_1.publicKey)(referralFeesDestMint),
@@ -1,25 +1,19 @@
1
1
  import "rpc-websockets/dist/lib/client";
2
2
  import { PublicKey } from "@solana/web3.js";
3
3
  import { Signer, TransactionBuilder } from "@metaplex-foundation/umi";
4
- import { WalletAdapter } from "@metaplex-foundation/umi-signer-wallet-adapters";
5
4
  import { DCASettings, DCASettingsInpArgs, LendingPlatform, PositionState, SolautoActionArgs, SolautoPosition, SolautoRebalanceTypeArgs, SolautoSettingsParameters, SolautoSettingsParametersInpArgs, UpdatePositionDataArgs } from "../generated";
6
5
  import { FlashLoanDetails } from "../utils/solauto/rebalanceUtils";
7
6
  import { LivePositionUpdates } from "../utils/solauto/generalUtils";
8
- import { ReferralStateManager } from "./referralStateManager";
9
- import { TxHandler } from "./txHandler";
7
+ import { ReferralStateManager, ReferralStateManagerArgs } from "./referralStateManager";
10
8
  import { QuoteResponse } from "@jup-ag/api";
11
- export interface SolautoClientArgs {
9
+ export interface SolautoClientArgs extends ReferralStateManagerArgs {
12
10
  new?: boolean;
13
- authority?: PublicKey;
14
11
  positionId?: number;
15
- signer?: Signer;
16
- wallet?: WalletAdapter;
17
12
  supplyMint?: PublicKey;
18
13
  debtMint?: PublicKey;
19
- referredByAuthority?: PublicKey;
20
14
  }
21
- export declare abstract class SolautoClient extends TxHandler {
22
- lendingPlatform: LendingPlatform;
15
+ export declare abstract class SolautoClient extends ReferralStateManager {
16
+ lendingPlatform?: LendingPlatform;
23
17
  authority: PublicKey;
24
18
  signer: Signer;
25
19
  positionId: number;
@@ -35,15 +29,12 @@ export declare abstract class SolautoClient extends TxHandler {
35
29
  debtMint: PublicKey;
36
30
  positionDebtTa: PublicKey;
37
31
  signerDebtTa: PublicKey;
38
- referralStateManager: ReferralStateManager;
39
- referredBySupplyTa?: PublicKey;
40
32
  solautoFeesWallet: PublicKey;
41
33
  solautoFeesSupplyTa: PublicKey;
42
34
  authorityLutAddress?: PublicKey;
43
35
  livePositionUpdates: LivePositionUpdates;
44
- constructor(rpcUrl: string, localTest?: boolean);
45
- initialize(args: SolautoClientArgs, lendingPlatform: LendingPlatform): Promise<void>;
46
- setReferredBy(referredBy?: PublicKey): void;
36
+ initialize(args: SolautoClientArgs): Promise<void>;
37
+ referredBySupplyTa(): PublicKey | undefined;
47
38
  resetLiveTxUpdates(success?: boolean): Promise<void>;
48
39
  abstract protocolAccount(): PublicKey;
49
40
  defaultLookupTables(): string[];
@@ -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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"}
@@ -5,7 +5,6 @@ require("rpc-websockets/dist/lib/client");
5
5
  const web3_js_1 = require("@solana/web3.js");
6
6
  const umi_1 = require("@metaplex-foundation/umi");
7
7
  const umi_web3js_adapters_1 = require("@metaplex-foundation/umi-web3js-adapters");
8
- const umi_signer_wallet_adapters_1 = require("@metaplex-foundation/umi-signer-wallet-adapters");
9
8
  const generated_1 = require("../generated");
10
9
  const accountUtils_1 = require("../utils/accountUtils");
11
10
  const generalAccounts_1 = require("../constants/generalAccounts");
@@ -14,29 +13,15 @@ const solautoConstants_1 = require("../constants/solautoConstants");
14
13
  const generalUtils_1 = require("../utils/generalUtils");
15
14
  const generalUtils_2 = require("../utils/solauto/generalUtils");
16
15
  const referralStateManager_1 = require("./referralStateManager");
17
- const txHandler_1 = require("./txHandler");
18
- class SolautoClient extends txHandler_1.TxHandler {
19
- constructor(rpcUrl, localTest) {
20
- super(rpcUrl, localTest);
16
+ class SolautoClient extends referralStateManager_1.ReferralStateManager {
17
+ constructor() {
18
+ super(...arguments);
21
19
  this.livePositionUpdates = new generalUtils_2.LivePositionUpdates();
22
- this.umi = this.umi.use({
23
- install(umi) {
24
- umi.programs.add((0, generated_1.createSolautoProgram)(), false);
25
- },
26
- });
27
20
  }
28
- async initialize(args, lendingPlatform) {
29
- if (!args.signer && !args.wallet) {
30
- throw new Error("Signer or wallet must be provided");
31
- }
32
- this.umi = this.umi.use(args.signer
33
- ? (0, umi_1.signerIdentity)(args.signer)
34
- : (0, umi_signer_wallet_adapters_1.walletAdapterIdentity)(args.wallet, true));
35
- this.signer = this.umi.identity;
36
- this.authority = args.authority ?? (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.signer.publicKey);
21
+ async initialize(args) {
22
+ await super.initialize(args);
37
23
  this.positionId = args.positionId ?? 0;
38
24
  this.selfManaged = this.positionId === 0;
39
- this.lendingPlatform = lendingPlatform;
40
25
  this.solautoPosition = (0, accountUtils_1.getSolautoPositionAccount)(this.authority, this.positionId);
41
26
  this.solautoPositionData = !args.new
42
27
  ? await (0, generated_1.safeFetchSolautoPosition)(this.umi, (0, umi_1.publicKey)(this.solautoPosition), { commitment: "confirmed" })
@@ -58,24 +43,12 @@ class SolautoClient extends txHandler_1.TxHandler {
58
43
  : web3_js_1.PublicKey.default);
59
44
  this.positionDebtTa = (0, accountUtils_1.getTokenAccount)(this.solautoPosition, this.debtMint);
60
45
  this.signerDebtTa = (0, accountUtils_1.getTokenAccount)((0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.signer.publicKey), this.debtMint);
61
- this.referralStateManager = new referralStateManager_1.ReferralStateManager(this.rpcUrl);
62
- await this.referralStateManager.initialize({
63
- referralAuthority: this.authority,
64
- referredByAuthority: args.referredByAuthority,
65
- signer: args.signer,
66
- wallet: args.wallet,
67
- });
68
- console.log(this.referralStateManager.referredBy?.toString());
69
- if (this.referralStateManager.referredByState !== undefined) {
70
- this.referredBySupplyTa = (0, accountUtils_1.getTokenAccount)(this.referralStateManager.referredByState, this.supplyMint);
71
- }
72
46
  this.solautoFeesWallet = generalAccounts_1.SOLAUTO_FEES_WALLET;
73
47
  this.solautoFeesSupplyTa = (0, accountUtils_1.getTokenAccount)(this.solautoFeesWallet, this.supplyMint);
74
- const authorityReferralStateData = this.referralStateManager.referralStateData;
75
48
  this.authorityLutAddress =
76
- authorityReferralStateData?.lookupTable &&
77
- !(0, umi_web3js_adapters_1.toWeb3JsPublicKey)(authorityReferralStateData.lookupTable).equals(web3_js_1.PublicKey.default)
78
- ? (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(authorityReferralStateData.lookupTable)
49
+ this.referralStateData?.lookupTable &&
50
+ !(0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.referralStateData.lookupTable).equals(web3_js_1.PublicKey.default)
51
+ ? (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.referralStateData.lookupTable)
79
52
  : undefined;
80
53
  this.log("Position state: ", this.solautoPositionState);
81
54
  this.log("Position settings: ", this.solautoPositionData?.position?.settingParams);
@@ -84,11 +57,11 @@ class SolautoClient extends txHandler_1.TxHandler {
84
57
  ? this.solautoPositionData?.position?.dca
85
58
  : undefined);
86
59
  }
87
- setReferredBy(referredBy) {
88
- this.referralStateManager.setReferredBy(referredBy);
89
- if (this.referralStateManager.referredByState !== undefined) {
90
- this.referredBySupplyTa = (0, accountUtils_1.getTokenAccount)(this.referralStateManager.referredByState, this.supplyMint);
60
+ referredBySupplyTa() {
61
+ if (this.referredByState !== undefined) {
62
+ return (0, accountUtils_1.getTokenAccount)(this.referredByState, this.supplyMint);
91
63
  }
64
+ return undefined;
92
65
  }
93
66
  async resetLiveTxUpdates(success) {
94
67
  if (success) {
@@ -129,8 +102,8 @@ class SolautoClient extends txHandler_1.TxHandler {
129
102
  this.solautoPosition,
130
103
  this.positionSupplyTa,
131
104
  this.positionDebtTa,
132
- this.referralStateManager.referralState,
133
- ...(this.referredBySupplyTa ? [this.referredBySupplyTa] : []),
105
+ this.referralState,
106
+ ...(this.referredBySupplyTa() ? [this.referredBySupplyTa()] : []),
134
107
  ];
135
108
  }
136
109
  async fetchExistingAuthorityLutAccounts() {
@@ -172,7 +145,7 @@ class SolautoClient extends txHandler_1.TxHandler {
172
145
  }
173
146
  const addingReferredBy = accountsToAdd.length === 1 &&
174
147
  accountsToAdd[0].toString().toLowerCase() ===
175
- this.referredBySupplyTa?.toString().toLowerCase();
148
+ this.referredBySupplyTa()?.toString().toLowerCase();
176
149
  if (tx.getInstructions().length > 0) {
177
150
  this.log("Updating authority lookup table...");
178
151
  }
@@ -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,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAQnE,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;IA6D1C,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;IA0BvE,yBAAyB,IAAI,kBAAkB;IAS/C,YAAY,CACV,aAAa,CAAC,EAAE,gCAAgC,EAChD,GAAG,CAAC,EAAE,kBAAkB,GACvB,kBAAkB;IAMrB,OAAO,CAAC,sBAAsB;IA6C9B,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;IAqErB,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;CA6ClE"}
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,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAQnE,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;IA+D1C,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;IA0BvE,yBAAyB,IAAI,kBAAkB;IAS/C,YAAY,CACV,aAAa,CAAC,EAAE,gCAAgC,EAChD,GAAG,CAAC,EAAE,kBAAkB,GACvB,kBAAkB;IAMrB,OAAO,CAAC,sBAAsB;IA6C9B,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;IAqErB,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;CA6ClE"}
@@ -19,7 +19,8 @@ class SolautoMarginfiClient extends solautoClient_1.SolautoClient {
19
19
  this.marginfiAccountSeedIdx = BigInt(0);
20
20
  }
21
21
  async initialize(args) {
22
- await super.initialize(args, generated_1.LendingPlatform.Marginfi);
22
+ await super.initialize(args);
23
+ this.lendingPlatform = generated_1.LendingPlatform.Marginfi;
23
24
  if (this.selfManaged) {
24
25
  this.marginfiAccount =
25
26
  args.marginfiAccount ??
@@ -135,12 +136,12 @@ class SolautoMarginfiClient extends solautoClient_1.SolautoClient {
135
136
  return (0, generated_1.marginfiOpenPosition)(this.umi, {
136
137
  signer: this.signer,
137
138
  marginfiProgram: (0, umi_1.publicKey)(marginfi_sdk_1.MARGINFI_PROGRAM_ID),
138
- signerReferralState: (0, umi_1.publicKey)(this.referralStateManager.referralState),
139
- referredByState: this.referralStateManager.referredByState
140
- ? (0, umi_1.publicKey)(this.referralStateManager.referredByState)
139
+ signerReferralState: (0, umi_1.publicKey)(this.referralState),
140
+ referredByState: this.referredByState
141
+ ? (0, umi_1.publicKey)(this.referredByState)
141
142
  : undefined,
142
- referredBySupplyTa: this.referredBySupplyTa
143
- ? (0, umi_1.publicKey)(this.referredBySupplyTa)
143
+ referredBySupplyTa: this.referredBySupplyTa()
144
+ ? (0, umi_1.publicKey)(this.referredBySupplyTa())
144
145
  : undefined,
145
146
  solautoPosition: (0, umi_1.publicKey)(this.solautoPosition),
146
147
  marginfiGroup: (0, umi_1.publicKey)(this.marginfiGroup),
@@ -299,9 +300,9 @@ class SolautoMarginfiClient extends solautoClient_1.SolautoClient {
299
300
  marginfiProgram: (0, umi_1.publicKey)(marginfi_sdk_1.MARGINFI_PROGRAM_ID),
300
301
  ixsSysvar: (0, umi_1.publicKey)(web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY),
301
302
  solautoFeesSupplyTa: rebalanceStep === "B" ? (0, umi_1.publicKey)(this.solautoFeesSupplyTa) : undefined,
302
- authorityReferralState: (0, umi_1.publicKey)(this.referralStateManager.referralState),
303
- referredBySupplyTa: this.referredBySupplyTa
304
- ? (0, umi_1.publicKey)(this.referredBySupplyTa)
303
+ authorityReferralState: (0, umi_1.publicKey)(this.referralState),
304
+ referredBySupplyTa: this.referredBySupplyTa()
305
+ ? (0, umi_1.publicKey)(this.referredBySupplyTa())
305
306
  : undefined,
306
307
  positionAuthority: (0, umi_1.publicKey)(this.authority),
307
308
  solautoPosition: (0, umi_1.publicKey)(this.solautoPosition),
@@ -1,15 +1,12 @@
1
1
  import { Umi } from "@metaplex-foundation/umi";
2
- import { Connection, PublicKey } from "@solana/web3.js";
2
+ import { Connection } from "@solana/web3.js";
3
3
  export declare abstract class TxHandler {
4
4
  rpcUrl: string;
5
5
  umi: Umi;
6
6
  connection: Connection;
7
- referredBy?: PublicKey;
8
- referredByState?: PublicKey;
9
7
  constructor(rpcUrl: string, localTest?: boolean);
10
8
  log(...args: any[]): void;
11
9
  abstract defaultLookupTables(): string[];
12
10
  abstract resetLiveTxUpdates(success?: boolean): Promise<void>;
13
- abstract setReferredBy(referredBy?: PublicKey): void;
14
11
  }
15
12
  //# sourceMappingURL=txHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"txHandler.d.ts","sourceRoot":"","sources":["../../src/clients/txHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGxD,8BAAsB,SAAS;IACtB,MAAM,EAAG,MAAM,CAAC;IAChB,GAAG,EAAG,GAAG,CAAC;IACV,UAAU,EAAG,UAAU,CAAC;IAExB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,eAAe,CAAC,EAAE,SAAS,CAAC;gBAGjC,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,OAAO;IAYrB,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAIzB,QAAQ,CAAC,mBAAmB,IAAI,MAAM,EAAE;IAExC,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAE7D,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,SAAS,GAAG,IAAI;CACrD"}
1
+ {"version":3,"file":"txHandler.d.ts","sourceRoot":"","sources":["../../src/clients/txHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAa,MAAM,iBAAiB,CAAC;AAGxD,8BAAsB,SAAS;IACtB,MAAM,EAAG,MAAM,CAAC;IAChB,GAAG,EAAG,GAAG,CAAC;IACV,UAAU,EAAG,UAAU,CAAC;gBAG7B,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,OAAO;IAYrB,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAIzB,QAAQ,CAAC,mBAAmB,IAAI,MAAM,EAAE;IAExC,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAC9D"}
@@ -1 +1 @@
1
- {"version":3,"file":"transactionUtils.d.ts","sourceRoot":"","sources":["../../src/transactions/transactionUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,kBAAkB,EAInB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,SAAS,EAA8B,MAAM,iBAAiB,CAAC;AAuBxE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAqCzD,OAAO,EAAE,oBAAoB,EAAa,MAAM,YAAY,CAAC;AAO7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAyLjD,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,wBAAsB,8BAA8B,CAAC,MAAM,EAAE,aAAa,oBAwCzE;AAED,wBAAsB,gCAAgC,CACpD,MAAM,EAAE,aAAa,EACrB,2BAA2B,CAAC,EAAE,MAAM,EACpC,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAkH5C;AAED,wBAAsB,gCAAgC,CACpD,eAAe,EAAE,oBAAoB,EACrC,YAAY,EAAE,SAAS,EACvB,eAAe,EAAE,SAAS,GACzB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAsC5C;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,EAInB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,SAAS,EAA8B,MAAM,iBAAiB,CAAC;AAuBxE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAyCzD,OAAO,EAAE,oBAAoB,EAAa,MAAM,YAAY,CAAC;AAO7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAqLjD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,kBAAkB,EACtB,sBAAsB,EAAE,MAAM,EAAE,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CAiH7B;AAkLD,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,kBAAkB,GACrB,OAAO,CAAC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,CA0BnD;AAED,wBAAsB,8BAA8B,CAAC,MAAM,EAAE,aAAa,oBA2CzE;AAED,wBAAsB,gCAAgC,CACpD,MAAM,EAAE,aAAa,EACrB,2BAA2B,CAAC,EAAE,MAAM,EACpC,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAkH5C;AAED,wBAAsB,gCAAgC,CACpD,eAAe,EAAE,oBAAoB,EACrC,YAAY,EAAE,SAAS,EACvB,eAAe,EAAE,SAAS,GACzB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAsC5C;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,GAAG;;;;EAwC9D"}
@@ -51,14 +51,13 @@ function getWSolUsage(client, solautoActions, initiatingDcaIn, cancellingDcaIn)
51
51
  }
52
52
  async function transactionChoresBefore(client, accountsGettingCreated, solautoActions, initiatingDcaIn) {
53
53
  let chores = (0, umi_1.transactionBuilder)();
54
- if (client.referralStateManager.referralStateData === null ||
55
- (client.referralStateManager.referredBy !== undefined &&
56
- client.referralStateManager.referralStateData?.referredByState ===
54
+ if (client.referralStateData === null ||
55
+ (client.referredBy !== undefined &&
56
+ client.referralStateData?.referredByState ===
57
57
  (0, umi_1.publicKey)(web3_js_1.PublicKey.default)) ||
58
58
  (client.authorityLutAddress !== undefined &&
59
- client.referralStateManager.referralStateData.lookupTable ==
60
- (0, umi_1.publicKey)(web3_js_1.PublicKey.default))) {
61
- chores = chores.add(client.referralStateManager.updateReferralStatesIx(undefined, client.authorityLutAddress));
59
+ client.referralStateData.lookupTable == (0, umi_1.publicKey)(web3_js_1.PublicKey.default))) {
60
+ chores = chores.add(client.updateReferralStatesIx(undefined, client.authorityLutAddress));
62
61
  }
63
62
  if (client.selfManaged) {
64
63
  if (client.solautoPositionData === null) {
@@ -127,14 +126,16 @@ async function rebalanceChoresBefore(client, tx, accountsGettingCreated) {
127
126
  const usesAccount = (key) => tx
128
127
  .getInstructions()
129
128
  .some((t) => t.keys.some((k) => (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(k.pubkey).equals(key)));
130
- const checkReferralSupplyTa = client.referredBySupplyTa && usesAccount(client.referredBySupplyTa);
129
+ const checkReferralSupplyTa = client.referredBySupplyTa() && usesAccount(client.referredBySupplyTa());
131
130
  const checkSolautoFeesTa = usesAccount(client.solautoFeesSupplyTa);
132
131
  const checkIntermediaryMfiAccount = client.lendingPlatform === generated_1.LendingPlatform.Marginfi &&
133
132
  usesAccount(client.intermediaryMarginfiAccountPk);
134
133
  const checkSignerSupplyTa = usesAccount(client.signerSupplyTa);
135
134
  const checkSignerDebtTa = usesAccount(client.signerDebtTa);
136
135
  const accountsNeeded = [
137
- ...[checkReferralSupplyTa ? client.referredBySupplyTa : web3_js_1.PublicKey.default],
136
+ ...[
137
+ checkReferralSupplyTa ? client.referredBySupplyTa() : web3_js_1.PublicKey.default,
138
+ ],
138
139
  ...[checkSolautoFeesTa ? client.solautoFeesSupplyTa : web3_js_1.PublicKey.default],
139
140
  ...[
140
141
  checkIntermediaryMfiAccount
@@ -148,7 +149,7 @@ async function rebalanceChoresBefore(client, tx, accountsGettingCreated) {
148
149
  let chores = (0, umi_1.transactionBuilder)();
149
150
  if (checkReferralSupplyTa && !(0, generalUtils_1.rpcAccountCreated)(referredBySupplyTa)) {
150
151
  client.log("Creating referred-by TA for ", client.supplyMint.toString());
151
- chores = chores.add((0, solanaUtils_1.createAssociatedTokenAccountUmiIx)(client.signer, client.referralStateManager.referredByState, client.supplyMint));
152
+ chores = chores.add((0, solanaUtils_1.createAssociatedTokenAccountUmiIx)(client.signer, client.referredByState, client.supplyMint));
152
153
  }
153
154
  if (checkSolautoFeesTa && !(0, generalUtils_1.rpcAccountCreated)(solautoFeesSupplyTa)) {
154
155
  client.log("Creating Solauto fees TA for ", client.supplyMint.toString());
@@ -338,13 +339,16 @@ async function requiresRefreshBeforeRebalance(client) {
338
339
  const oldStateWithLatestPrices = await (0, generalUtils_2.positionStateWithLatestPrices)(client.solautoPositionData.state, constants_1.PRICES[client.supplyMint.toString()].price, constants_1.PRICES[client.debtMint.toString()].price);
339
340
  const utilizationRateDiff = Math.abs((client.solautoPositionState?.liqUtilizationRateBps ?? 0) -
340
341
  oldStateWithLatestPrices.liqUtilizationRateBps);
342
+ client.log("Liq utilization rate diff:", utilizationRateDiff);
341
343
  if (client.livePositionUpdates.supplyAdjustment === BigInt(0) &&
342
344
  client.livePositionUpdates.debtAdjustment === BigInt(0) &&
343
- utilizationRateDiff >= 20) {
345
+ utilizationRateDiff >= 10) {
346
+ client.log("Choosing to refresh before rebalance");
344
347
  return true;
345
348
  }
346
349
  }
347
350
  // Rebalance ix will already refresh internally if position is self managed, has automation to update, or position state last updated >= 1 day ago
351
+ client.log("Not refreshing before rebalance");
348
352
  return false;
349
353
  }
350
354
  async function buildSolautoRebalanceTransaction(client, targetLiqUtilizationRateBps, attemptNum) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haven-fi/solauto-sdk",
3
- "version": "1.0.214",
3
+ "version": "1.0.216",
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",
@@ -23,10 +23,10 @@ import { getReferralState, getTokenAccount } from "../utils";
23
23
  import { TxHandler } from "./txHandler";
24
24
  import { SOLAUTO_LUT } from "../constants";
25
25
 
26
- interface ReferralStateManagerArgs {
26
+ export interface ReferralStateManagerArgs {
27
27
  signer?: Signer;
28
28
  wallet?: WalletAdapter;
29
- referralAuthority?: PublicKey;
29
+ authority?: PublicKey;
30
30
  referredByAuthority?: PublicKey;
31
31
  }
32
32
 
@@ -34,15 +34,18 @@ export class ReferralStateManager extends TxHandler {
34
34
  public umi!: Umi;
35
35
  public signer!: Signer;
36
36
 
37
- public referralAuthority!: PublicKey;
37
+ public authority!: PublicKey;
38
38
  public referralState!: PublicKey;
39
39
  public referralStateData!: ReferralState | null;
40
40
 
41
+ public referredBy?: PublicKey;
42
+ public referredByState?: PublicKey;
43
+
41
44
  constructor(
42
- heliusApiUrl: string,
45
+ rpcUrl: string,
43
46
  public localTest?: boolean
44
47
  ) {
45
- super(heliusApiUrl, localTest);
48
+ super(rpcUrl, localTest);
46
49
  this.umi = this.umi.use({
47
50
  install(umi) {
48
51
  umi.programs.add(createSolautoProgram(), false);
@@ -59,10 +62,11 @@ export class ReferralStateManager extends TxHandler {
59
62
  ? signerIdentity(args.signer)
60
63
  : walletAdapterIdentity(args.wallet!, true)
61
64
  );
62
-
63
65
  this.signer = this.umi.identity;
66
+ this.authority = args.authority ?? toWeb3JsPublicKey(this.signer.publicKey);
67
+
64
68
  this.referralState = getReferralState(
65
- args.referralAuthority ?? toWeb3JsPublicKey(this.signer.publicKey)
69
+ args.authority ?? toWeb3JsPublicKey(this.signer.publicKey)
66
70
  );
67
71
  this.referralStateData = await safeFetchReferralState(
68
72
  this.umi,
@@ -82,12 +86,10 @@ export class ReferralStateManager extends TxHandler {
82
86
  : [SOLAUTO_LUT];
83
87
  }
84
88
 
85
- public setReferredBy(referredBy?: PublicKey) {
86
- const authorityReferralStateData = this.referralStateData;
89
+ setReferredBy(referredBy?: PublicKey) {
87
90
  const hasReferredBy =
88
- authorityReferralStateData &&
89
- authorityReferralStateData.referredByState !==
90
- publicKey(PublicKey.default);
91
+ this.referralStateData &&
92
+ this.referralStateData.referredByState !== publicKey(PublicKey.default);
91
93
  const finalReferredBy =
92
94
  !hasReferredBy &&
93
95
  referredBy &&
@@ -98,8 +100,8 @@ export class ReferralStateManager extends TxHandler {
98
100
  this.referredBy = finalReferredBy;
99
101
  this.referredByState = finalReferredBy
100
102
  ? getReferralState(finalReferredBy)
101
- : authorityReferralStateData
102
- ? toWeb3JsPublicKey(authorityReferralStateData.referredByState)
103
+ : this.referralStateData
104
+ ? toWeb3JsPublicKey(this.referralStateData.referredByState)
103
105
  : undefined;
104
106
  }
105
107
 
@@ -143,7 +145,7 @@ export class ReferralStateManager extends TxHandler {
143
145
  signerWsolTa: publicKey(
144
146
  getTokenAccount(toWeb3JsPublicKey(this.signer.publicKey), NATIVE_MINT)
145
147
  ),
146
- referralAuthority: publicKey(this.referralAuthority),
148
+ referralAuthority: publicKey(this.authority),
147
149
  referralState: publicKey(this.referralState),
148
150
  referralFeesDestTa: publicKey(referralDestTa),
149
151
  referralFeesDestMint: publicKey(referralFeesDestMint),
@@ -8,13 +8,8 @@ import {
8
8
  PublicKey as UmiPublicKey,
9
9
  isSome,
10
10
  transactionBuilder,
11
- signerIdentity,
12
11
  } from "@metaplex-foundation/umi";
13
12
  import { toWeb3JsPublicKey } from "@metaplex-foundation/umi-web3js-adapters";
14
- import {
15
- WalletAdapter,
16
- walletAdapterIdentity,
17
- } from "@metaplex-foundation/umi-signer-wallet-adapters";
18
13
  import {
19
14
  DCASettings,
20
15
  DCASettingsInpArgs,
@@ -29,12 +24,10 @@ import {
29
24
  UpdatePositionDataArgs,
30
25
  cancelDCA,
31
26
  closePosition,
32
- createSolautoProgram,
33
27
  safeFetchSolautoPosition,
34
28
  updatePosition,
35
29
  } from "../generated";
36
30
  import {
37
- getReferralState,
38
31
  getSolautoPositionAccount,
39
32
  getTokenAccount,
40
33
  } from "../utils/accountUtils";
@@ -50,25 +43,21 @@ import {
50
43
  } from "../constants/solautoConstants";
51
44
  import { currentUnixSeconds } from "../utils/generalUtils";
52
45
  import { LivePositionUpdates } from "../utils/solauto/generalUtils";
53
- import { ReferralStateManager } from "./referralStateManager";
54
- import { TxHandler } from "./txHandler";
46
+ import {
47
+ ReferralStateManager,
48
+ ReferralStateManagerArgs,
49
+ } from "./referralStateManager";
55
50
  import { QuoteResponse } from "@jup-ag/api";
56
51
 
57
- export interface SolautoClientArgs {
52
+ export interface SolautoClientArgs extends ReferralStateManagerArgs {
58
53
  new?: boolean;
59
- authority?: PublicKey;
60
54
  positionId?: number;
61
- signer?: Signer;
62
- wallet?: WalletAdapter;
63
-
64
55
  supplyMint?: PublicKey;
65
56
  debtMint?: PublicKey;
66
-
67
- referredByAuthority?: PublicKey;
68
57
  }
69
58
 
70
- export abstract class SolautoClient extends TxHandler {
71
- public lendingPlatform!: LendingPlatform;
59
+ export abstract class SolautoClient extends ReferralStateManager {
60
+ public lendingPlatform?: LendingPlatform;
72
61
 
73
62
  public authority!: PublicKey;
74
63
  public signer!: Signer;
@@ -90,9 +79,6 @@ export abstract class SolautoClient extends TxHandler {
90
79
  public positionDebtTa!: PublicKey;
91
80
  public signerDebtTa!: PublicKey;
92
81
 
93
- public referralStateManager!: ReferralStateManager;
94
- public referredBySupplyTa?: PublicKey;
95
-
96
82
  public solautoFeesWallet!: PublicKey;
97
83
  public solautoFeesSupplyTa!: PublicKey;
98
84
 
@@ -100,32 +86,11 @@ export abstract class SolautoClient extends TxHandler {
100
86
 
101
87
  public livePositionUpdates: LivePositionUpdates = new LivePositionUpdates();
102
88
 
103
- constructor(rpcUrl: string, localTest?: boolean) {
104
- super(rpcUrl, localTest);
105
-
106
- this.umi = this.umi.use({
107
- install(umi) {
108
- umi.programs.add(createSolautoProgram(), false);
109
- },
110
- });
111
- }
112
-
113
- async initialize(args: SolautoClientArgs, lendingPlatform: LendingPlatform) {
114
- if (!args.signer && !args.wallet) {
115
- throw new Error("Signer or wallet must be provided");
116
- }
117
- this.umi = this.umi.use(
118
- args.signer
119
- ? signerIdentity(args.signer)
120
- : walletAdapterIdentity(args.wallet!, true)
121
- );
122
-
123
- this.signer = this.umi.identity;
124
- this.authority = args.authority ?? toWeb3JsPublicKey(this.signer.publicKey);
89
+ async initialize(args: SolautoClientArgs) {
90
+ await super.initialize(args);
125
91
 
126
92
  this.positionId = args.positionId ?? 0;
127
93
  this.selfManaged = this.positionId === 0;
128
- this.lendingPlatform = lendingPlatform;
129
94
  this.solautoPosition = getSolautoPositionAccount(
130
95
  this.authority,
131
96
  this.positionId
@@ -167,35 +132,18 @@ export abstract class SolautoClient extends TxHandler {
167
132
  this.debtMint
168
133
  );
169
134
 
170
- this.referralStateManager = new ReferralStateManager(this.rpcUrl);
171
- await this.referralStateManager.initialize({
172
- referralAuthority: this.authority,
173
- referredByAuthority: args.referredByAuthority,
174
- signer: args.signer,
175
- wallet: args.wallet,
176
- });
177
- console.log(this.referralStateManager.referredBy?.toString());
178
- if (this.referralStateManager.referredByState !== undefined) {
179
- this.referredBySupplyTa = getTokenAccount(
180
- this.referralStateManager.referredByState,
181
- this.supplyMint
182
- );
183
- }
184
-
185
135
  this.solautoFeesWallet = SOLAUTO_FEES_WALLET;
186
136
  this.solautoFeesSupplyTa = getTokenAccount(
187
137
  this.solautoFeesWallet,
188
138
  this.supplyMint
189
139
  );
190
140
 
191
- const authorityReferralStateData =
192
- this.referralStateManager.referralStateData;
193
141
  this.authorityLutAddress =
194
- authorityReferralStateData?.lookupTable &&
195
- !toWeb3JsPublicKey(authorityReferralStateData.lookupTable).equals(
142
+ this.referralStateData?.lookupTable &&
143
+ !toWeb3JsPublicKey(this.referralStateData.lookupTable).equals(
196
144
  PublicKey.default
197
145
  )
198
- ? toWeb3JsPublicKey(authorityReferralStateData.lookupTable)
146
+ ? toWeb3JsPublicKey(this.referralStateData.lookupTable)
199
147
  : undefined;
200
148
 
201
149
  this.log("Position state: ", this.solautoPositionState);
@@ -212,14 +160,11 @@ export abstract class SolautoClient extends TxHandler {
212
160
  );
213
161
  }
214
162
 
215
- public setReferredBy(referredBy?: PublicKey) {
216
- this.referralStateManager.setReferredBy(referredBy);
217
- if (this.referralStateManager.referredByState !== undefined) {
218
- this.referredBySupplyTa = getTokenAccount(
219
- this.referralStateManager.referredByState!,
220
- this.supplyMint
221
- );
163
+ referredBySupplyTa(): PublicKey | undefined {
164
+ if (this.referredByState !== undefined) {
165
+ return getTokenAccount(this.referredByState, this.supplyMint);
222
166
  }
167
+ return undefined;
223
168
  }
224
169
 
225
170
  async resetLiveTxUpdates(success?: boolean) {
@@ -268,8 +213,8 @@ export abstract class SolautoClient extends TxHandler {
268
213
  this.solautoPosition,
269
214
  this.positionSupplyTa,
270
215
  this.positionDebtTa,
271
- this.referralStateManager.referralState,
272
- ...(this.referredBySupplyTa ? [this.referredBySupplyTa] : []),
216
+ this.referralState,
217
+ ...(this.referredBySupplyTa() ? [this.referredBySupplyTa()!] : []),
273
218
  ];
274
219
  }
275
220
 
@@ -333,7 +278,7 @@ export abstract class SolautoClient extends TxHandler {
333
278
  const addingReferredBy =
334
279
  accountsToAdd.length === 1 &&
335
280
  accountsToAdd[0].toString().toLowerCase() ===
336
- this.referredBySupplyTa?.toString().toLowerCase();
281
+ this.referredBySupplyTa()?.toString().toLowerCase();
337
282
 
338
283
  if (tx.getInstructions().length > 0) {
339
284
  this.log("Updating authority lookup table...");
@@ -85,7 +85,9 @@ export class SolautoMarginfiClient extends SolautoClient {
85
85
  public intermediaryMarginfiAccount?: MarginfiAccount;
86
86
 
87
87
  async initialize(args: SolautoMarginfiClientArgs) {
88
- await super.initialize(args, LendingPlatform.Marginfi);
88
+ await super.initialize(args);
89
+
90
+ this.lendingPlatform = LendingPlatform.Marginfi;
89
91
 
90
92
  if (this.selfManaged) {
91
93
  this.marginfiAccount =
@@ -262,12 +264,12 @@ export class SolautoMarginfiClient extends SolautoClient {
262
264
  return marginfiOpenPosition(this.umi, {
263
265
  signer: this.signer,
264
266
  marginfiProgram: publicKey(MARGINFI_PROGRAM_ID),
265
- signerReferralState: publicKey(this.referralStateManager.referralState),
266
- referredByState: this.referralStateManager.referredByState
267
- ? publicKey(this.referralStateManager.referredByState)
267
+ signerReferralState: publicKey(this.referralState),
268
+ referredByState: this.referredByState
269
+ ? publicKey(this.referredByState)
268
270
  : undefined,
269
- referredBySupplyTa: this.referredBySupplyTa
270
- ? publicKey(this.referredBySupplyTa)
271
+ referredBySupplyTa: this.referredBySupplyTa()
272
+ ? publicKey(this.referredBySupplyTa()!)
271
273
  : undefined,
272
274
  solautoPosition: publicKey(this.solautoPosition),
273
275
  marginfiGroup: publicKey(this.marginfiGroup),
@@ -472,10 +474,10 @@ export class SolautoMarginfiClient extends SolautoClient {
472
474
  solautoFeesSupplyTa:
473
475
  rebalanceStep === "B" ? publicKey(this.solautoFeesSupplyTa) : undefined,
474
476
  authorityReferralState: publicKey(
475
- this.referralStateManager.referralState
477
+ this.referralState
476
478
  ),
477
- referredBySupplyTa: this.referredBySupplyTa
478
- ? publicKey(this.referredBySupplyTa)
479
+ referredBySupplyTa: this.referredBySupplyTa()
480
+ ? publicKey(this.referredBySupplyTa()!)
479
481
  : undefined,
480
482
  positionAuthority: publicKey(this.authority),
481
483
  solautoPosition: publicKey(this.solautoPosition),
@@ -7,9 +7,6 @@ export abstract class TxHandler {
7
7
  public umi!: Umi;
8
8
  public connection!: Connection;
9
9
 
10
- public referredBy?: PublicKey;
11
- public referredByState?: PublicKey;
12
-
13
10
  constructor(
14
11
  rpcUrl: string,
15
12
  localTest?: boolean
@@ -31,6 +28,4 @@ export abstract class TxHandler {
31
28
  abstract defaultLookupTables(): string[];
32
29
 
33
30
  abstract resetLiveTxUpdates(success?: boolean): Promise<void>;
34
-
35
- abstract setReferredBy(referredBy?: PublicKey): void;
36
31
  }
@@ -57,7 +57,11 @@ import {
57
57
  eligibleForRebalance,
58
58
  positionStateWithLatestPrices,
59
59
  } from "../utils/solauto/generalUtils";
60
- import { getReferralState, getTokenAccount, getTokenAccountData } from "../utils/accountUtils";
60
+ import {
61
+ getReferralState,
62
+ getTokenAccount,
63
+ getTokenAccountData,
64
+ } from "../utils/accountUtils";
61
65
  import {
62
66
  createMarginfiProgram,
63
67
  getLendingAccountBorrowInstructionDataSerializer,
@@ -139,19 +143,15 @@ async function transactionChoresBefore(
139
143
  let chores = transactionBuilder();
140
144
 
141
145
  if (
142
- client.referralStateManager.referralStateData === null ||
143
- (client.referralStateManager.referredBy !== undefined &&
144
- client.referralStateManager.referralStateData?.referredByState ===
146
+ client.referralStateData === null ||
147
+ (client.referredBy !== undefined &&
148
+ client.referralStateData?.referredByState ===
145
149
  publicKey(PublicKey.default)) ||
146
150
  (client.authorityLutAddress !== undefined &&
147
- client.referralStateManager.referralStateData!.lookupTable ==
148
- publicKey(PublicKey.default))
151
+ client.referralStateData!.lookupTable == publicKey(PublicKey.default))
149
152
  ) {
150
153
  chores = chores.add(
151
- client.referralStateManager.updateReferralStatesIx(
152
- undefined,
153
- client.authorityLutAddress
154
- )
154
+ client.updateReferralStatesIx(undefined, client.authorityLutAddress)
155
155
  );
156
156
  }
157
157
 
@@ -275,7 +275,7 @@ export async function rebalanceChoresBefore(
275
275
  .some((t) => t.keys.some((k) => toWeb3JsPublicKey(k.pubkey).equals(key)));
276
276
 
277
277
  const checkReferralSupplyTa =
278
- client.referredBySupplyTa && usesAccount(client.referredBySupplyTa);
278
+ client.referredBySupplyTa() && usesAccount(client.referredBySupplyTa()!);
279
279
  const checkSolautoFeesTa = usesAccount(client.solautoFeesSupplyTa);
280
280
  const checkIntermediaryMfiAccount =
281
281
  client.lendingPlatform === LendingPlatform.Marginfi &&
@@ -286,7 +286,9 @@ export async function rebalanceChoresBefore(
286
286
  const checkSignerDebtTa = usesAccount(client.signerDebtTa);
287
287
 
288
288
  const accountsNeeded = [
289
- ...[checkReferralSupplyTa ? client.referredBySupplyTa : PublicKey.default],
289
+ ...[
290
+ checkReferralSupplyTa ? client.referredBySupplyTa() : PublicKey.default,
291
+ ],
290
292
  ...[checkSolautoFeesTa ? client.solautoFeesSupplyTa : PublicKey.default],
291
293
  ...[
292
294
  checkIntermediaryMfiAccount
@@ -314,7 +316,7 @@ export async function rebalanceChoresBefore(
314
316
  chores = chores.add(
315
317
  createAssociatedTokenAccountUmiIx(
316
318
  client.signer,
317
- client.referralStateManager.referredByState!,
319
+ client.referredByState!,
318
320
  client.supplyMint
319
321
  )
320
322
  );
@@ -611,17 +613,20 @@ export async function requiresRefreshBeforeRebalance(client: SolautoClient) {
611
613
  oldStateWithLatestPrices.liqUtilizationRateBps
612
614
  );
613
615
 
616
+ client.log("Liq utilization rate diff:", utilizationRateDiff);
614
617
  if (
615
618
  client.livePositionUpdates.supplyAdjustment === BigInt(0) &&
616
619
  client.livePositionUpdates.debtAdjustment === BigInt(0) &&
617
- utilizationRateDiff >= 20
620
+ utilizationRateDiff >= 10
618
621
  ) {
622
+ client.log("Choosing to refresh before rebalance");
619
623
  return true;
620
624
  }
621
625
  }
622
626
 
623
627
  // Rebalance ix will already refresh internally if position is self managed, has automation to update, or position state last updated >= 1 day ago
624
628
 
629
+ client.log("Not refreshing before rebalance");
625
630
  return false;
626
631
  }
627
632
 
@@ -25,10 +25,10 @@ import { buildHeliusApiUrl } from "../../src/utils";
25
25
  import { PriorityFeeSetting } from "../../src/types";
26
26
 
27
27
  describe("Solauto Marginfi tests", async () => {
28
- const signer = setupTest();
29
- // const signer = setupTest("solauto-manager");
28
+ // const signer = setupTest();
29
+ const signer = setupTest("solauto-manager");
30
30
 
31
- const payForTransactions = true;
31
+ const payForTransactions = false;
32
32
  const useJitoBundle = false;
33
33
  const positionId = 1;
34
34
 
@@ -128,7 +128,7 @@ describe("Solauto Marginfi tests", async () => {
128
128
  transactionItems.push(
129
129
  new TransactionItem(
130
130
  async (attemptNum) =>
131
- await buildSolautoRebalanceTransaction(client, 7000, attemptNum),
131
+ await buildSolautoRebalanceTransaction(client, undefined, attemptNum),
132
132
  "rebalance"
133
133
  )
134
134
  );