@haven-fi/solauto-sdk 1.0.133 → 1.0.135

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.
Files changed (52) hide show
  1. package/dist/clients/solautoClient.d.ts.map +1 -1
  2. package/dist/clients/solautoClient.js +49 -39
  3. package/dist/generated/accounts/solautoPosition.d.ts +1 -7
  4. package/dist/generated/accounts/solautoPosition.d.ts.map +1 -1
  5. package/dist/generated/accounts/solautoPosition.js +2 -6
  6. package/dist/generated/instructions/cancelDCA.d.ts +3 -3
  7. package/dist/generated/instructions/cancelDCA.d.ts.map +1 -1
  8. package/dist/generated/instructions/cancelDCA.js +6 -6
  9. package/dist/generated/instructions/closePosition.d.ts +1 -2
  10. package/dist/generated/instructions/closePosition.d.ts.map +1 -1
  11. package/dist/generated/instructions/closePosition.js +6 -11
  12. package/dist/generated/instructions/updatePosition.d.ts +3 -3
  13. package/dist/generated/instructions/updatePosition.d.ts.map +1 -1
  14. package/dist/generated/instructions/updatePosition.js +6 -6
  15. package/dist/generated/types/dCASettings.d.ts +7 -5
  16. package/dist/generated/types/dCASettings.d.ts.map +1 -1
  17. package/dist/generated/types/dCASettings.js +3 -2
  18. package/dist/generated/types/dCASettingsInp.d.ts +5 -3
  19. package/dist/generated/types/dCASettingsInp.d.ts.map +1 -1
  20. package/dist/generated/types/dCASettingsInp.js +2 -1
  21. package/dist/generated/types/index.d.ts +1 -1
  22. package/dist/generated/types/index.d.ts.map +1 -1
  23. package/dist/generated/types/index.js +1 -1
  24. package/dist/generated/types/{feeType.d.ts → tokenType.d.ts} +6 -6
  25. package/dist/generated/types/tokenType.d.ts.map +1 -0
  26. package/dist/generated/types/tokenType.js +22 -0
  27. package/dist/transactions/transactionUtils.d.ts.map +1 -1
  28. package/dist/transactions/transactionUtils.js +15 -15
  29. package/dist/utils/marginfiUtils.d.ts.map +1 -1
  30. package/dist/utils/solauto/generalUtils.d.ts +15 -5
  31. package/dist/utils/solauto/generalUtils.d.ts.map +1 -1
  32. package/dist/utils/solauto/generalUtils.js +54 -37
  33. package/dist/utils/solauto/rebalanceUtils.d.ts +2 -1
  34. package/dist/utils/solauto/rebalanceUtils.d.ts.map +1 -1
  35. package/dist/utils/solauto/rebalanceUtils.js +7 -5
  36. package/package.json +1 -1
  37. package/src/clients/solautoClient.ts +50 -45
  38. package/src/generated/accounts/solautoPosition.ts +2 -15
  39. package/src/generated/instructions/cancelDCA.ts +9 -9
  40. package/src/generated/instructions/closePosition.ts +7 -13
  41. package/src/generated/instructions/updatePosition.ts +9 -9
  42. package/src/generated/types/dCASettings.ts +14 -7
  43. package/src/generated/types/dCASettingsInp.ts +9 -3
  44. package/src/generated/types/index.ts +1 -1
  45. package/src/generated/types/{feeType.ts → tokenType.ts} +8 -9
  46. package/src/transactions/transactionUtils.ts +35 -25
  47. package/src/utils/marginfiUtils.ts +2 -2
  48. package/src/utils/solauto/generalUtils.ts +75 -59
  49. package/src/utils/solauto/rebalanceUtils.ts +9 -8
  50. package/tests/unit/rebalanceCalculations.ts +14 -14
  51. package/dist/generated/types/feeType.d.ts.map +0 -1
  52. package/dist/generated/types/feeType.js +0 -20
@@ -1,6 +1,6 @@
1
1
  import { PublicKey } from "@solana/web3.js";
2
2
  import { Umi } from "@metaplex-foundation/umi";
3
- import { AutomationSettings, DCASettings, DCASettingsInpArgs, PositionState, SolautoSettingsParameters, SolautoSettingsParametersInpArgs } from "../../generated";
3
+ import { AutomationSettings, DCASettings, DCASettingsInpArgs, PositionState, SolautoSettingsParameters, SolautoSettingsParametersInpArgs, TokenType } from "../../generated";
4
4
  import { RebalanceAction, SolautoPositionDetails } from "../../types/solauto";
5
5
  export declare function findMintByTicker(ticker: string): PublicKey;
6
6
  export declare function nextAutomationPeriodTimestamp(automation: AutomationSettings): number;
@@ -27,22 +27,32 @@ type PositionAdjustment = {
27
27
  } | {
28
28
  type: "debt";
29
29
  value: bigint;
30
- } | {
31
- type: "debtDcaIn";
32
- value: bigint;
33
30
  } | {
34
31
  type: "settings";
35
32
  value: SolautoSettingsParametersInpArgs;
36
33
  } | {
37
34
  type: "dca";
38
35
  value: DCASettingsInpArgs;
36
+ } | {
37
+ type: "dcaInBalance";
38
+ value: {
39
+ amount: bigint;
40
+ tokenType: TokenType;
41
+ };
42
+ } | {
43
+ type: "cancellingDca";
44
+ value: TokenType;
39
45
  };
40
46
  export declare class LivePositionUpdates {
41
47
  supplyAdjustment: bigint;
42
48
  debtAdjustment: bigint;
43
- debtTaBalanceAdjustment: bigint;
44
49
  settings: SolautoSettingsParameters | undefined;
45
50
  activeDca: DCASettings | undefined;
51
+ dcaInBalance?: {
52
+ amount: bigint;
53
+ tokenType: TokenType;
54
+ };
55
+ cancellingDca: TokenType | undefined;
46
56
  new(update: PositionAdjustment): void;
47
57
  reset(): void;
48
58
  hasUpdates(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"generalUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/solauto/generalUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generalUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/solauto/generalUtils.ts"],"names":[],"mappings":"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"}
@@ -27,7 +27,8 @@ const marginfiUtils_1 = require("../marginfiUtils");
27
27
  function findMintByTicker(ticker) {
28
28
  for (const key in constants_1.TOKEN_INFO) {
29
29
  const account = constants_1.TOKEN_INFO[key];
30
- if (account.ticker.toString().toLowerCase() === ticker.toString().toLowerCase()) {
30
+ if (account.ticker.toString().toLowerCase() ===
31
+ ticker.toString().toLowerCase()) {
31
32
  return new web3_js_1.PublicKey(key);
32
33
  }
33
34
  }
@@ -102,13 +103,17 @@ async function getSolautoManagedPositions(umi, authority) {
102
103
  // position_id: [u8; 1]
103
104
  // self_managed: u8 - (1 for true, 0 for false)
104
105
  // padding: [u8; 5]
105
- // authority: Pubkey
106
+ // authority: pubkey
106
107
  // lending_platform: u8
108
+ // padding: [u8; 7]
109
+ // protocol account: pubkey
110
+ // supply mint: pubkey
111
+ // debt mint: pubkey
107
112
  const accounts = await umi.rpc.getProgramAccounts(generated_1.SOLAUTO_PROGRAM_ID, {
108
113
  commitment: "confirmed",
109
114
  dataSlice: {
110
115
  offset: 0,
111
- length: 1 + 1 + 1 + 5 + 32 + 1, // bump + position_id + self_managed + padding + authority (pubkey) + lending_platform
116
+ length: 1 + 1 + 1 + 5 + 32 + 1 + 7 + 32 + 32 + 32, // bump + position_id + self_managed + padding (5) + authority (pubkey) + lending_platform + padding (7) + protocol account (pubkey) + supply mint (pubkey) + debt mint (pubkey)
112
117
  },
113
118
  filters: [
114
119
  {
@@ -142,6 +147,9 @@ async function getSolautoManagedPositions(umi, authority) {
142
147
  authority: (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(position.authority),
143
148
  positionId: position.positionId[0],
144
149
  lendingPlatform: position.position.lendingPlatform,
150
+ protocolAccount: (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(position.position.protocolAccount),
151
+ supplyMint: (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(position.position.supplyMint),
152
+ debtMint: (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(position.position.debtMint),
145
153
  };
146
154
  });
147
155
  }
@@ -187,29 +195,32 @@ async function getReferralsByUser(umi, user) {
187
195
  return accounts.map((x) => (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(x.publicKey));
188
196
  }
189
197
  async function getAllPositionsByAuthority(umi, user) {
190
- const allPositions = [];
191
- const solautoManagedPositions = await getSolautoManagedPositions(umi, user);
192
- allPositions.push(...solautoManagedPositions.map((x) => ({
193
- publicKey: x.publicKey,
194
- authority: user,
195
- positionId: x.positionId,
196
- lendingPlatform: x.lendingPlatform,
197
- })));
198
- let marginfiPositions = await (0, marginfiUtils_1.getAllMarginfiAccountsByAuthority)(umi, user, true);
199
- marginfiPositions = marginfiPositions.filter((x) => x.supplyMint &&
200
- (x.debtMint.equals(web3_js_1.PublicKey.default) ||
201
- constants_1.ALL_SUPPORTED_TOKENS.includes(x.debtMint.toString())));
202
- allPositions.push(...marginfiPositions.map((x) => ({
203
- publicKey: x.marginfiAccount,
204
- authority: user,
205
- positionId: 0,
206
- lendingPlatform: generated_1.LendingPlatform.Marginfi,
207
- protocolAccount: x.marginfiAccount,
208
- supplyMint: x.supplyMint,
209
- debtMint: x.debtMint,
210
- })));
211
- // TODO support other platforms
212
- return allPositions;
198
+ const solautoCompatiblePositions = await Promise.all([
199
+ (async () => {
200
+ const solautoManagedPositions = await getSolautoManagedPositions(umi, user);
201
+ return solautoManagedPositions.map((x) => ({
202
+ ...x,
203
+ authority: user,
204
+ }));
205
+ })(),
206
+ (async () => {
207
+ let marginfiPositions = await (0, marginfiUtils_1.getAllMarginfiAccountsByAuthority)(umi, user, true);
208
+ marginfiPositions = marginfiPositions.filter((x) => x.supplyMint &&
209
+ (x.debtMint.equals(web3_js_1.PublicKey.default) ||
210
+ constants_1.ALL_SUPPORTED_TOKENS.includes(x.debtMint.toString())));
211
+ return marginfiPositions.map((x) => ({
212
+ publicKey: x.marginfiAccount,
213
+ authority: user,
214
+ positionId: 0,
215
+ lendingPlatform: generated_1.LendingPlatform.Marginfi,
216
+ protocolAccount: x.marginfiAccount,
217
+ supplyMint: x.supplyMint,
218
+ debtMint: x.debtMint,
219
+ }));
220
+ })(),
221
+ // TODO support other platforms
222
+ ]);
223
+ return solautoCompatiblePositions.flat();
213
224
  }
214
225
  async function positionStateWithLatestPrices(state, supplyPrice, debtPrice) {
215
226
  if (!supplyPrice || !debtPrice) {
@@ -320,8 +331,7 @@ function createSolautoSettings(settings) {
320
331
  padding: new Uint8Array([]),
321
332
  padding1: [],
322
333
  },
323
- targetBoostToBps: (0, umi_1.isOption)(settings.targetBoostToBps) &&
324
- (0, umi_1.isSome)(settings.targetBoostToBps)
334
+ targetBoostToBps: (0, umi_1.isOption)(settings.targetBoostToBps) && (0, umi_1.isSome)(settings.targetBoostToBps)
325
335
  ? settings.targetBoostToBps.value
326
336
  : 0,
327
337
  boostGap: settings.boostGap,
@@ -336,9 +346,10 @@ class LivePositionUpdates {
336
346
  constructor() {
337
347
  this.supplyAdjustment = BigInt(0);
338
348
  this.debtAdjustment = BigInt(0);
339
- this.debtTaBalanceAdjustment = BigInt(0);
340
349
  this.settings = undefined;
341
350
  this.activeDca = undefined;
351
+ this.dcaInBalance = undefined;
352
+ this.cancellingDca = undefined;
342
353
  }
343
354
  new(update) {
344
355
  if (update.type === "supply") {
@@ -347,9 +358,6 @@ class LivePositionUpdates {
347
358
  else if (update.type === "debt") {
348
359
  this.debtAdjustment += update.value;
349
360
  }
350
- else if (update.type === "debtDcaIn") {
351
- this.debtTaBalanceAdjustment += update.value;
352
- }
353
361
  else if (update.type === "settings") {
354
362
  const settings = update.value;
355
363
  this.settings = createSolautoSettings(settings);
@@ -364,23 +372,32 @@ class LivePositionUpdates {
364
372
  padding: new Uint8Array([]),
365
373
  padding1: [],
366
374
  },
367
- debtToAddBaseUnit: BigInt(dca.debtToAddBaseUnit),
368
- padding: new Uint8Array([]),
375
+ dcaInBaseUnit: BigInt(dca.dcaInBaseUnit),
376
+ tokenType: dca.tokenType,
377
+ padding: [],
369
378
  };
370
379
  }
380
+ else if (update.type === "cancellingDca") {
381
+ this.cancellingDca = update.value;
382
+ }
383
+ else if (update.type === "dcaInBalance") {
384
+ this.dcaInBalance = update.value;
385
+ }
371
386
  }
372
387
  reset() {
373
388
  this.supplyAdjustment = BigInt(0);
374
389
  this.debtAdjustment = BigInt(0);
375
- this.debtTaBalanceAdjustment = BigInt(0);
376
390
  this.settings = undefined;
377
391
  this.activeDca = undefined;
392
+ this.dcaInBalance = undefined;
393
+ this.cancellingDca = undefined;
378
394
  }
379
395
  hasUpdates() {
380
396
  return (this.supplyAdjustment !== BigInt(0) ||
381
397
  this.debtAdjustment !== BigInt(0) ||
382
- this.debtTaBalanceAdjustment !== BigInt(0) ||
383
- this.settings !== undefined);
398
+ this.dcaInBalance !== undefined ||
399
+ this.settings !== undefined ||
400
+ this.cancellingDca !== undefined);
384
401
  }
385
402
  }
386
403
  exports.LivePositionUpdates = LivePositionUpdates;
@@ -1,6 +1,6 @@
1
1
  import { PublicKey } from "@solana/web3.js";
2
2
  import { SolautoClient } from "../../clients/solautoClient";
3
- import { DCASettings, PositionState, SolautoSettingsParameters } from "../../generated";
3
+ import { DCASettings, PositionState, SolautoSettingsParameters, TokenType } from "../../generated";
4
4
  import { QuoteResponse } from "@jup-ag/api";
5
5
  import { JupSwapDetails } from "../jupiterUtils";
6
6
  export interface RebalanceValues {
@@ -8,6 +8,7 @@ export interface RebalanceValues {
8
8
  debtAdjustmentUsd: number;
9
9
  amountToDcaIn: number;
10
10
  amountUsdToDcaIn: number;
11
+ dcaTokenType?: TokenType;
11
12
  }
12
13
  export declare function getRebalanceValues(state: PositionState, settings: SolautoSettingsParameters | undefined, dca: DCASettings | undefined, currentUnixTime: number, supplyPrice: number, debtPrice: number, targetLiqUtilizationRateBps?: number, limitGapBps?: number): RebalanceValues;
13
14
  export interface FlashLoanDetails {
@@ -1 +1 @@
1
- {"version":3,"file":"rebalanceUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/solauto/rebalanceUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EACL,WAAW,EACX,aAAa,EAEb,yBAAyB,EAC1B,MAAM,iBAAiB,CAAC;AAOzB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAkJjD,MAAM,WAAW,eAAe;IAC9B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,yBAAyB,GAAG,SAAS,EAC/C,GAAG,EAAE,WAAW,GAAG,SAAS,EAC5B,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,2BAA2B,CAAC,EAAE,MAAM,EACpC,WAAW,CAAC,EAAE,MAAM,GACnB,eAAe,CAgEjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,aAAa,GACtB,gBAAgB,GAAG,SAAS,CAmE9B;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,2BAA2B,CAAC,EAAE,MAAM,EACpC,UAAU,CAAC,EAAE,MAAM,GAClB,cAAc,CAkChB"}
1
+ {"version":3,"file":"rebalanceUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/solauto/rebalanceUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EACL,WAAW,EACX,aAAa,EAEb,yBAAyB,EACzB,SAAS,EACV,MAAM,iBAAiB,CAAC;AAOzB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAgJjD,MAAM,WAAW,eAAe;IAC9B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,SAAS,CAAC;CAC1B;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,yBAAyB,GAAG,SAAS,EAC/C,GAAG,EAAE,WAAW,GAAG,SAAS,EAC5B,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,2BAA2B,CAAC,EAAE,MAAM,EACpC,WAAW,CAAC,EAAE,MAAM,GACnB,eAAe,CAiEjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,aAAa,GACtB,gBAAgB,GAAG,SAAS,CAmE9B;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,2BAA2B,CAAC,EAAE,MAAM,EACpC,UAAU,CAAC,EAAE,MAAM,GAClB,cAAc,CAkChB"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getRebalanceValues = getRebalanceValues;
4
4
  exports.getFlashLoanDetails = getFlashLoanDetails;
5
5
  exports.getJupSwapRebalanceDetails = getJupSwapRebalanceDetails;
6
+ const generated_1 = require("../../generated");
6
7
  const generalUtils_1 = require("./generalUtils");
7
8
  const umi_web3js_adapters_1 = require("@metaplex-foundation/umi-web3js-adapters");
8
9
  const generalUtils_2 = require("../generalUtils");
@@ -10,10 +11,10 @@ const numberUtils_1 = require("../numberUtils");
10
11
  const generalAccounts_1 = require("../../constants/generalAccounts");
11
12
  const solautoConstants_1 = require("../../constants/solautoConstants");
12
13
  function getAdditionalAmountToDcaIn(dca) {
13
- if (dca.debtToAddBaseUnit === BigInt(0)) {
14
+ if (dca.dcaInBaseUnit === BigInt(0)) {
14
15
  return 0;
15
16
  }
16
- const debtBalance = Number(dca.debtToAddBaseUnit);
17
+ const debtBalance = Number(dca.dcaInBaseUnit);
17
18
  const updatedDebtBalance = (0, generalUtils_1.getUpdatedValueFromAutomation)(debtBalance, 0, dca.automation, (0, generalUtils_2.currentUnixSeconds)());
18
19
  return debtBalance - updatedDebtBalance;
19
20
  }
@@ -34,7 +35,7 @@ function getStandardTargetLiqUtilizationRateBps(state, settings) {
34
35
  function targetLiqUtilizationRateBpsFromDCA(state, settings, dca, currentUnixTime) {
35
36
  const adjustedSettings = (0, generalUtils_1.getAdjustedSettingsFromAutomation)(settings, currentUnixTime);
36
37
  let targetRateBps = 0;
37
- if (dca.debtToAddBaseUnit > BigInt(0)) {
38
+ if (dca.dcaInBaseUnit > BigInt(0)) {
38
39
  targetRateBps = Math.max(state.liqUtilizationRateBps, adjustedSettings.boostToBps);
39
40
  }
40
41
  else {
@@ -110,10 +111,11 @@ function getRebalanceValues(state, settings, dca, currentUnixTime, supplyPrice,
110
111
  debtAdjustmentUsd,
111
112
  amountToDcaIn: amountToDcaIn ?? 0,
112
113
  amountUsdToDcaIn,
114
+ dcaTokenType: dca?.tokenType
113
115
  };
114
116
  }
115
117
  function getFlashLoanDetails(client, values, jupQuote) {
116
- let supplyUsd = (0, numberUtils_1.fromBaseUnit)(client.solautoPositionState.supply.amountUsed.baseAmountUsdValue, generalAccounts_1.USD_DECIMALS);
118
+ let supplyUsd = (0, numberUtils_1.fromBaseUnit)(client.solautoPositionState.supply.amountUsed.baseAmountUsdValue, generalAccounts_1.USD_DECIMALS) + (values.dcaTokenType === generated_1.TokenType.Supply ? values.amountUsdToDcaIn : 0);
117
119
  let debtUsd = (0, numberUtils_1.fromBaseUnit)(client.solautoPositionState.debt.amountUsed.baseAmountUsdValue, generalAccounts_1.USD_DECIMALS);
118
120
  const debtAdjustmentWithSlippage = Math.abs(values.debtAdjustmentUsd) +
119
121
  Math.abs(values.debtAdjustmentUsd) * (0, numberUtils_1.fromBps)(jupQuote.slippageBps);
@@ -159,7 +161,7 @@ function getJupSwapRebalanceDetails(client, values, targetLiqUtilizationRateBps,
159
161
  const output = values.increasingLeverage
160
162
  ? client.solautoPositionState.supply
161
163
  : client.solautoPositionState.debt;
162
- const usdToSwap = Math.abs(values.debtAdjustmentUsd) + values.amountUsdToDcaIn;
164
+ const usdToSwap = Math.abs(values.debtAdjustmentUsd) + (values.dcaTokenType === generated_1.TokenType.Debt ? values.amountUsdToDcaIn : 0);
163
165
  const inputPrice = values.increasingLeverage
164
166
  ? (0, generalUtils_2.safeGetPrice)(client.debtMint)
165
167
  : (0, generalUtils_2.safeGetPrice)(client.supplyMint);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haven-fi/solauto-sdk",
3
- "version": "1.0.133",
3
+ "version": "1.0.135",
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",
@@ -25,6 +25,7 @@ import {
25
25
  SolautoRebalanceTypeArgs,
26
26
  SolautoSettingsParameters,
27
27
  SolautoSettingsParametersInpArgs,
28
+ TokenType,
28
29
  UpdatePositionDataArgs,
29
30
  cancelDCA,
30
31
  closePosition,
@@ -360,10 +361,13 @@ export abstract class SolautoClient extends TxHandler {
360
361
  settingParams?: SolautoSettingsParametersInpArgs,
361
362
  dca?: DCASettingsInpArgs
362
363
  ): TransactionBuilder {
363
- if (dca && dca.debtToAddBaseUnit > 0) {
364
+ if (dca && dca.dcaInBaseUnit > 0) {
364
365
  this.livePositionUpdates.new({
365
- type: "debtDcaIn",
366
- value: BigInt(dca.debtToAddBaseUnit),
366
+ type: "dcaInBalance",
367
+ value: {
368
+ amount: BigInt(dca.dcaInBaseUnit),
369
+ tokenType: dca.tokenType
370
+ },
367
371
  });
368
372
  }
369
373
  if (settingParams) {
@@ -383,38 +387,35 @@ export abstract class SolautoClient extends TxHandler {
383
387
  }
384
388
 
385
389
  updatePositionIx(args: UpdatePositionDataArgs): TransactionBuilder {
386
- let debtMint: UmiPublicKey | undefined = undefined;
387
- let positionDebtTa: UmiPublicKey | undefined = undefined;
388
- let signerDebtTa: UmiPublicKey | undefined = undefined;
390
+ let dcaMint: UmiPublicKey | undefined = undefined;
391
+ let positionDcaTa: UmiPublicKey | undefined = undefined;
392
+ let signerDcaTa: UmiPublicKey | undefined = undefined;
389
393
  if (isOption(args.dca) && isSome(args.dca)) {
390
- debtMint = publicKey(this.debtMint);
391
- positionDebtTa = publicKey(this.positionDebtTa);
392
- signerDebtTa = publicKey(this.signerDebtTa);
394
+ if (args.dca.value.tokenType === TokenType.Supply) {
395
+ dcaMint = publicKey(this.supplyMint);
396
+ positionDcaTa = publicKey(this.positionSupplyTa);
397
+ signerDcaTa = publicKey(this.signerSupplyTa);
398
+ } else {
399
+ dcaMint = publicKey(this.debtMint);
400
+ positionDcaTa = publicKey(this.positionDebtTa);
401
+ signerDcaTa = publicKey(this.signerDebtTa);
402
+ }
393
403
 
394
404
  let addingToPos = false;
395
405
  if (
396
406
  isOption(args.dca) &&
397
407
  isSome(args.dca) &&
398
- args.dca.value.debtToAddBaseUnit > 0
408
+ args.dca.value.dcaInBaseUnit > 0
399
409
  ) {
400
410
  this.livePositionUpdates.new({
401
- type: "debtDcaIn",
402
- value: BigInt(args.dca.value.debtToAddBaseUnit),
411
+ type: "dcaInBalance",
412
+ value: {
413
+ amount: BigInt(args.dca.value.dcaInBaseUnit),
414
+ tokenType: args.dca.value.tokenType
415
+ },
403
416
  });
404
417
  addingToPos = true;
405
418
  }
406
-
407
- if (
408
- this.solautoPositionData?.position.dca.debtToAddBaseUnit &&
409
- !addingToPos
410
- ) {
411
- this.livePositionUpdates.new({
412
- type: "debtDcaIn",
413
- value:
414
- this.solautoPositionData.position.dca.debtToAddBaseUnit *
415
- BigInt(-1),
416
- });
417
- }
418
419
  }
419
420
 
420
421
  if (isOption(args.settingParams) && isSome(args.settingParams)) {
@@ -434,9 +435,9 @@ export abstract class SolautoClient extends TxHandler {
434
435
  return updatePosition(this.umi, {
435
436
  signer: this.signer,
436
437
  solautoPosition: publicKey(this.solautoPosition),
437
- debtMint,
438
- positionDebtTa,
439
- signerDebtTa,
438
+ dcaMint,
439
+ positionDcaTa,
440
+ signerDcaTa,
440
441
  updatePositionData: args,
441
442
  });
442
443
  }
@@ -454,30 +455,34 @@ export abstract class SolautoClient extends TxHandler {
454
455
  }
455
456
 
456
457
  cancelDCAIx(): TransactionBuilder {
457
- let debtMint: UmiPublicKey | undefined = undefined;
458
- let positionDebtTa: UmiPublicKey | undefined = undefined;
459
- let signerDebtTa: UmiPublicKey | undefined = undefined;
460
-
461
- if (this.solautoPositionData !== null && !this.selfManaged) {
462
- const positionData = this.solautoPositionData!.position;
463
- if (positionData.dca.debtToAddBaseUnit) {
464
- debtMint = publicKey(this.debtMint);
465
- positionDebtTa = publicKey(this.positionDebtTa);
466
- signerDebtTa = publicKey(this.signerDebtTa);
467
-
468
- this.livePositionUpdates.new({
469
- type: "debtDcaIn",
470
- value: positionData.dca.debtToAddBaseUnit * BigInt(-1),
471
- });
458
+ let dcaMint: UmiPublicKey | undefined = undefined;
459
+ let positionDcaTa: UmiPublicKey | undefined = undefined;
460
+ let signerDcaTa: UmiPublicKey | undefined = undefined;
461
+
462
+ const currDca = this.solautoPositionActiveDca()!;
463
+ if (currDca.dcaInBaseUnit > 0) {
464
+ if (currDca.tokenType === TokenType.Supply) {
465
+ dcaMint = publicKey(this.supplyMint);
466
+ positionDcaTa = publicKey(this.positionSupplyTa);
467
+ signerDcaTa = publicKey(this.signerSupplyTa);
468
+ } else {
469
+ dcaMint = publicKey(this.debtMint);
470
+ positionDcaTa = publicKey(this.positionDebtTa);
471
+ signerDcaTa = publicKey(this.signerDebtTa);
472
472
  }
473
+
474
+ this.livePositionUpdates.new({
475
+ type: "cancellingDca",
476
+ value: this.solautoPositionData!.position.dca.tokenType,
477
+ });
473
478
  }
474
479
 
475
480
  return cancelDCA(this.umi, {
476
481
  signer: this.signer,
477
482
  solautoPosition: publicKey(this.solautoPosition),
478
- debtMint,
479
- positionDebtTa,
480
- signerDebtTa,
483
+ dcaMint,
484
+ positionDcaTa,
485
+ signerDcaTa,
481
486
  });
482
487
  }
483
488
 
@@ -28,8 +28,6 @@ import {
28
28
  u8,
29
29
  } from '@metaplex-foundation/umi/serializers';
30
30
  import {
31
- FeeType,
32
- FeeTypeArgs,
33
31
  PodBool,
34
32
  PodBoolArgs,
35
33
  PositionData,
@@ -38,7 +36,6 @@ import {
38
36
  PositionStateArgs,
39
37
  RebalanceData,
40
38
  RebalanceDataArgs,
41
- getFeeTypeSerializer,
42
39
  getPodBoolSerializer,
43
40
  getPositionDataSerializer,
44
41
  getPositionStateSerializer,
@@ -56,8 +53,6 @@ export type SolautoPositionAccountData = {
56
53
  position: PositionData;
57
54
  state: PositionState;
58
55
  rebalance: RebalanceData;
59
- feeType: FeeType;
60
- padding2: Array<number>;
61
56
  padding: Array<number>;
62
57
  };
63
58
 
@@ -70,8 +65,6 @@ export type SolautoPositionAccountDataArgs = {
70
65
  position: PositionDataArgs;
71
66
  state: PositionStateArgs;
72
67
  rebalance: RebalanceDataArgs;
73
- feeType: FeeTypeArgs;
74
- padding2: Array<number>;
75
68
  padding: Array<number>;
76
69
  };
77
70
 
@@ -89,9 +82,7 @@ export function getSolautoPositionAccountDataSerializer(): Serializer<
89
82
  ['position', getPositionDataSerializer()],
90
83
  ['state', getPositionStateSerializer()],
91
84
  ['rebalance', getRebalanceDataSerializer()],
92
- ['feeType', getFeeTypeSerializer()],
93
- ['padding2', array(u8(), { size: 7 })],
94
- ['padding', array(u32(), { size: 30 })],
85
+ ['padding', array(u32(), { size: 32 })],
95
86
  ],
96
87
  { description: 'SolautoPositionAccountData' }
97
88
  ) as Serializer<SolautoPositionAccountDataArgs, SolautoPositionAccountData>;
@@ -179,8 +170,6 @@ export function getSolautoPositionGpaBuilder(
179
170
  position: PositionDataArgs;
180
171
  state: PositionStateArgs;
181
172
  rebalance: RebalanceDataArgs;
182
- feeType: FeeTypeArgs;
183
- padding2: Array<number>;
184
173
  padding: Array<number>;
185
174
  }>({
186
175
  bump: [0, array(u8(), { size: 1 })],
@@ -191,9 +180,7 @@ export function getSolautoPositionGpaBuilder(
191
180
  position: [40, getPositionDataSerializer()],
192
181
  state: [360, getPositionStateSerializer()],
193
182
  rebalance: [648, getRebalanceDataSerializer()],
194
- feeType: [704, getFeeTypeSerializer()],
195
- padding2: [705, array(u8(), { size: 7 })],
196
- padding: [712, array(u32(), { size: 30 })],
183
+ padding: [704, array(u32(), { size: 32 })],
197
184
  })
198
185
  .deserializeUsing<SolautoPosition>((account) =>
199
186
  deserializeSolautoPosition(account)
@@ -33,9 +33,9 @@ export type CancelDCAInstructionAccounts = {
33
33
  tokenProgram?: PublicKey | Pda;
34
34
  ataProgram?: PublicKey | Pda;
35
35
  solautoPosition: PublicKey | Pda;
36
- debtMint?: PublicKey | Pda;
37
- positionDebtTa?: PublicKey | Pda;
38
- signerDebtTa?: PublicKey | Pda;
36
+ dcaMint?: PublicKey | Pda;
37
+ positionDcaTa?: PublicKey | Pda;
38
+ signerDcaTa?: PublicKey | Pda;
39
39
  };
40
40
 
41
41
  // Data.
@@ -97,20 +97,20 @@ export function cancelDCA(
97
97
  isWritable: true as boolean,
98
98
  value: input.solautoPosition ?? null,
99
99
  },
100
- debtMint: {
100
+ dcaMint: {
101
101
  index: 5,
102
102
  isWritable: false as boolean,
103
- value: input.debtMint ?? null,
103
+ value: input.dcaMint ?? null,
104
104
  },
105
- positionDebtTa: {
105
+ positionDcaTa: {
106
106
  index: 6,
107
107
  isWritable: true as boolean,
108
- value: input.positionDebtTa ?? null,
108
+ value: input.positionDcaTa ?? null,
109
109
  },
110
- signerDebtTa: {
110
+ signerDcaTa: {
111
111
  index: 7,
112
112
  isWritable: true as boolean,
113
- value: input.signerDebtTa ?? null,
113
+ value: input.signerDcaTa ?? null,
114
114
  },
115
115
  } satisfies ResolvedAccountsWithIndices;
116
116
 
@@ -34,9 +34,8 @@ export type ClosePositionInstructionAccounts = {
34
34
  ataProgram?: PublicKey | Pda;
35
35
  solautoPosition: PublicKey | Pda;
36
36
  protocolAccount: PublicKey | Pda;
37
- signerSupplyTa: PublicKey | Pda;
38
37
  positionSupplyTa: PublicKey | Pda;
39
- positionSupplyCollateralTa?: PublicKey | Pda;
38
+ signerSupplyTa: PublicKey | Pda;
40
39
  positionDebtTa: PublicKey | Pda;
41
40
  signerDebtTa: PublicKey | Pda;
42
41
  };
@@ -108,28 +107,23 @@ export function closePosition(
108
107
  isWritable: true as boolean,
109
108
  value: input.protocolAccount ?? null,
110
109
  },
111
- signerSupplyTa: {
112
- index: 6,
113
- isWritable: true as boolean,
114
- value: input.signerSupplyTa ?? null,
115
- },
116
110
  positionSupplyTa: {
117
- index: 7,
111
+ index: 6,
118
112
  isWritable: true as boolean,
119
113
  value: input.positionSupplyTa ?? null,
120
114
  },
121
- positionSupplyCollateralTa: {
122
- index: 8,
115
+ signerSupplyTa: {
116
+ index: 7,
123
117
  isWritable: true as boolean,
124
- value: input.positionSupplyCollateralTa ?? null,
118
+ value: input.signerSupplyTa ?? null,
125
119
  },
126
120
  positionDebtTa: {
127
- index: 9,
121
+ index: 8,
128
122
  isWritable: true as boolean,
129
123
  value: input.positionDebtTa ?? null,
130
124
  },
131
125
  signerDebtTa: {
132
- index: 10,
126
+ index: 9,
133
127
  isWritable: true as boolean,
134
128
  value: input.signerDebtTa ?? null,
135
129
  },
@@ -37,9 +37,9 @@ export type UpdatePositionInstructionAccounts = {
37
37
  systemProgram?: PublicKey | Pda;
38
38
  tokenProgram?: PublicKey | Pda;
39
39
  solautoPosition: PublicKey | Pda;
40
- debtMint?: PublicKey | Pda;
41
- positionDebtTa?: PublicKey | Pda;
42
- signerDebtTa?: PublicKey | Pda;
40
+ dcaMint?: PublicKey | Pda;
41
+ positionDcaTa?: PublicKey | Pda;
42
+ signerDcaTa?: PublicKey | Pda;
43
43
  };
44
44
 
45
45
  // Data.
@@ -111,20 +111,20 @@ export function updatePosition(
111
111
  isWritable: true as boolean,
112
112
  value: input.solautoPosition ?? null,
113
113
  },
114
- debtMint: {
114
+ dcaMint: {
115
115
  index: 4,
116
116
  isWritable: false as boolean,
117
- value: input.debtMint ?? null,
117
+ value: input.dcaMint ?? null,
118
118
  },
119
- positionDebtTa: {
119
+ positionDcaTa: {
120
120
  index: 5,
121
121
  isWritable: true as boolean,
122
- value: input.positionDebtTa ?? null,
122
+ value: input.positionDcaTa ?? null,
123
123
  },
124
- signerDebtTa: {
124
+ signerDcaTa: {
125
125
  index: 6,
126
126
  isWritable: true as boolean,
127
- value: input.signerDebtTa ?? null,
127
+ value: input.signerDcaTa ?? null,
128
128
  },
129
129
  } satisfies ResolvedAccountsWithIndices;
130
130