@haven-fi/solauto-sdk 1.0.214 → 1.0.216

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