@haven-fi/solauto-sdk 1.0.133 → 1.0.135

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