@haven-fi/solauto-sdk 1.0.25 → 1.0.27

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. package/dist/clients/solautoClient.d.ts +4 -4
  2. package/dist/clients/solautoClient.d.ts.map +1 -1
  3. package/dist/clients/solautoClient.js +25 -23
  4. package/dist/clients/solautoMarginfiClient.d.ts +1 -0
  5. package/dist/clients/solautoMarginfiClient.d.ts.map +1 -1
  6. package/dist/clients/solautoMarginfiClient.js +84 -23
  7. package/dist/generated/instructions/closePosition.d.ts +4 -4
  8. package/dist/generated/instructions/closePosition.d.ts.map +1 -1
  9. package/dist/generated/instructions/closePosition.js +8 -8
  10. package/dist/generated/instructions/marginfiProtocolInteraction.d.ts +2 -2
  11. package/dist/generated/instructions/marginfiProtocolInteraction.d.ts.map +1 -1
  12. package/dist/generated/instructions/marginfiProtocolInteraction.js +4 -4
  13. package/dist/generated/instructions/marginfiRebalance.d.ts +2 -0
  14. package/dist/generated/instructions/marginfiRebalance.d.ts.map +1 -1
  15. package/dist/generated/instructions/marginfiRebalance.js +17 -7
  16. package/dist/transactions/transactionUtils.d.ts.map +1 -1
  17. package/dist/transactions/transactionUtils.js +111 -21
  18. package/dist/transactions/transactionsManager.d.ts.map +1 -1
  19. package/dist/transactions/transactionsManager.js +6 -2
  20. package/dist/types/solauto.d.ts +13 -0
  21. package/dist/types/solauto.d.ts.map +1 -0
  22. package/dist/types/solauto.js +2 -0
  23. package/dist/utils/jupiterUtils.d.ts.map +1 -1
  24. package/dist/utils/jupiterUtils.js +1 -0
  25. package/dist/utils/marginfiUtils.d.ts +5 -1
  26. package/dist/utils/marginfiUtils.d.ts.map +1 -1
  27. package/dist/utils/marginfiUtils.js +8 -2
  28. package/dist/utils/solauto/generalUtils.d.ts +1 -5
  29. package/dist/utils/solauto/generalUtils.d.ts.map +1 -1
  30. package/dist/utils/solauto/generalUtils.js +6 -2
  31. package/dist/utils/solauto/rebalanceUtils.js +2 -1
  32. package/package.json +1 -1
  33. package/src/clients/solautoClient.ts +33 -31
  34. package/src/clients/solautoMarginfiClient.ts +89 -31
  35. package/src/generated/instructions/closePosition.ts +12 -12
  36. package/src/generated/instructions/marginfiProtocolInteraction.ts +6 -6
  37. package/src/generated/instructions/marginfiRebalance.ts +19 -7
  38. package/src/transactions/transactionUtils.ts +140 -36
  39. package/src/transactions/transactionsManager.ts +8 -6
  40. package/src/types/solauto.ts +14 -0
  41. package/src/utils/jupiterUtils.ts +1 -0
  42. package/src/utils/marginfiUtils.ts +11 -3
  43. package/src/utils/solauto/generalUtils.ts +21 -12
  44. package/src/utils/solauto/rebalanceUtils.ts +2 -2
  45. package/tests/transactions/solautoMarginfi.ts +44 -25
  46. package/tests/unit/lookupTables.ts +4 -3
@@ -13,6 +13,7 @@ const generalUtils_1 = require("../utils/generalUtils");
13
13
  const numberUtils_1 = require("../utils/numberUtils");
14
14
  const generalUtils_2 = require("../utils/solauto/generalUtils");
15
15
  const accountUtils_1 = require("../utils/accountUtils");
16
+ const marginfi_sdk_1 = require("../marginfi-sdk");
16
17
  function getWSolUsage(client, solautoActions, initiatingDcaIn, cancellingDcaIn) {
17
18
  const supplyIsWsol = client.supplyMint.equals(spl_token_1.NATIVE_MINT);
18
19
  const debtIsWsol = client.debtMint.equals(spl_token_1.NATIVE_MINT);
@@ -26,13 +27,13 @@ function getWSolUsage(client, solautoActions, initiatingDcaIn, cancellingDcaIn)
26
27
  cancellingDcaIn);
27
28
  if (supplyIsWsol && usingSupplyTaAction) {
28
29
  return {
29
- wSolTokenAccount: client.signerSupplyLiquidityTa,
30
+ wSolTokenAccount: client.signerSupplyTa,
30
31
  solautoAction: usingSupplyTaAction,
31
32
  };
32
33
  }
33
34
  else if (debtIsWsol && usingDebtTaAction) {
34
35
  return {
35
- wSolTokenAccount: client.signerDebtLiquidityTa,
36
+ wSolTokenAccount: client.signerDebtTa,
36
37
  solautoAction: usingDebtTaAction,
37
38
  };
38
39
  }
@@ -57,21 +58,21 @@ async function transactionChoresBefore(client, solautoActions, initiatingDcaIn)
57
58
  }
58
59
  const wSolUsage = getWSolUsage(client, solautoActions, initiatingDcaIn, undefined);
59
60
  if (wSolUsage !== undefined) {
60
- if (!(0, generalUtils_1.getSolanaAccountCreated)(client.umi, wSolUsage.wSolTokenAccount)) {
61
+ if (await (0, generalUtils_1.getSolanaAccountCreated)(client.umi, wSolUsage.wSolTokenAccount)) {
61
62
  client.log(`Closing signer wSol TA`);
62
63
  chores = chores.add((0, solanaUtils_1.closeTokenAccountUmiIx)(client.signer, wSolUsage.wSolTokenAccount, (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(client.signer.publicKey)));
63
64
  }
64
65
  let amountToTransfer = BigInt(0);
65
66
  if ((0, generated_1.isSolautoAction)("Deposit", wSolUsage.solautoAction)) {
66
- amountToTransfer += BigInt(wSolUsage.solautoAction.fields[0]);
67
+ amountToTransfer = BigInt(wSolUsage.solautoAction.fields[0]);
67
68
  }
68
69
  else if ((0, generated_1.isSolautoAction)("Repay", wSolUsage.solautoAction) &&
69
70
  wSolUsage.solautoAction.fields[0].__kind === "Some") {
70
- amountToTransfer += BigInt(wSolUsage.solautoAction.fields[0].fields[0]);
71
+ amountToTransfer = BigInt(wSolUsage.solautoAction.fields[0].fields[0]);
71
72
  }
72
73
  else if (initiatingDcaIn &&
73
74
  client.debtMint.toString() === spl_token_1.NATIVE_MINT.toString()) {
74
- amountToTransfer += initiatingDcaIn;
75
+ amountToTransfer = initiatingDcaIn;
75
76
  }
76
77
  if (amountToTransfer > 0) {
77
78
  const amount = amountToTransfer +
@@ -89,8 +90,8 @@ async function transactionChoresBefore(client, solautoActions, initiatingDcaIn)
89
90
  continue;
90
91
  }
91
92
  const tokenAccount = (0, generated_1.isSolautoAction)("Withdraw", solautoAction)
92
- ? client.signerSupplyLiquidityTa
93
- : client.signerDebtLiquidityTa;
93
+ ? client.signerSupplyTa
94
+ : client.signerDebtTa;
94
95
  if (accountsGettingCreated.includes(tokenAccount.toString())) {
95
96
  continue;
96
97
  }
@@ -148,22 +149,111 @@ function transactionChoresAfter(client, solautoActions, cancellingDcaIn) {
148
149
  function getSolautoActions(tx) {
149
150
  let solautoActions = [];
150
151
  tx.getInstructions().forEach((x) => {
151
- if (x.programId !== generated_1.SOLAUTO_PROGRAM_ID) {
152
- return;
152
+ if (x.programId === generated_1.SOLAUTO_PROGRAM_ID) {
153
+ try {
154
+ const serializer = (0, generated_1.getMarginfiProtocolInteractionInstructionDataSerializer)();
155
+ const discriminator = serializer
156
+ .serialize({
157
+ solautoAction: (0, generated_1.solautoAction)("Deposit", [BigInt(0)]),
158
+ })
159
+ .slice(0, 1)[0];
160
+ const [data, _] = serializer.deserialize(x.data);
161
+ if (data.discriminator === discriminator) {
162
+ solautoActions?.push(data.solautoAction);
163
+ }
164
+ }
165
+ catch { }
153
166
  }
154
- try {
155
- const serializer = (0, generated_1.getMarginfiProtocolInteractionInstructionDataSerializer)();
156
- const discriminator = (0, numberUtils_1.uint8ArrayToBigInt)(serializer
157
- .serialize({
158
- solautoAction: (0, generated_1.solautoAction)("Deposit", [BigInt(0)]),
159
- })
160
- .slice(0, 8));
161
- const [data, _] = serializer.deserialize(x.data);
162
- if (BigInt(data.discriminator) === discriminator) {
163
- solautoActions?.push(data.solautoAction);
167
+ if (x.programId === marginfi_sdk_1.MARGINFI_PROGRAM_ID) {
168
+ try {
169
+ const serializer = (0, marginfi_sdk_1.getLendingAccountDepositInstructionDataSerializer)();
170
+ const discriminator = (0, numberUtils_1.uint8ArrayToBigInt)(serializer
171
+ .serialize({
172
+ amount: 0,
173
+ })
174
+ .slice(0, 8));
175
+ const [data, _] = serializer.deserialize(x.data);
176
+ if ((0, numberUtils_1.uint8ArrayToBigInt)(new Uint8Array(data.discriminator)) ===
177
+ discriminator) {
178
+ solautoActions?.push({
179
+ __kind: "Deposit",
180
+ fields: [data.amount],
181
+ });
182
+ }
183
+ }
184
+ catch { }
185
+ try {
186
+ const serializer = (0, marginfi_sdk_1.getLendingAccountBorrowInstructionDataSerializer)();
187
+ const discriminator = (0, numberUtils_1.uint8ArrayToBigInt)(serializer
188
+ .serialize({
189
+ amount: 0,
190
+ })
191
+ .slice(0, 8));
192
+ const [data, _] = serializer.deserialize(x.data);
193
+ if ((0, numberUtils_1.uint8ArrayToBigInt)(new Uint8Array(data.discriminator)) ===
194
+ discriminator) {
195
+ solautoActions?.push({
196
+ __kind: "Borrow",
197
+ fields: [data.amount],
198
+ });
199
+ }
200
+ }
201
+ catch { }
202
+ try {
203
+ const serializer = (0, marginfi_sdk_1.getLendingAccountWithdrawInstructionDataSerializer)();
204
+ const discriminator = (0, numberUtils_1.uint8ArrayToBigInt)(serializer
205
+ .serialize({
206
+ amount: 0,
207
+ withdrawAll: false,
208
+ })
209
+ .slice(0, 8));
210
+ const [data, _] = serializer.deserialize(x.data);
211
+ if ((0, numberUtils_1.uint8ArrayToBigInt)(new Uint8Array(data.discriminator)) ===
212
+ discriminator) {
213
+ solautoActions?.push({
214
+ __kind: "Withdraw",
215
+ fields: [
216
+ data.withdrawAll
217
+ ? {
218
+ __kind: "All",
219
+ }
220
+ : {
221
+ __kind: "Some",
222
+ fields: [data.amount],
223
+ },
224
+ ],
225
+ });
226
+ }
227
+ }
228
+ catch { }
229
+ try {
230
+ const serializer = (0, marginfi_sdk_1.getLendingAccountRepayInstructionDataSerializer)();
231
+ const discriminator = (0, numberUtils_1.uint8ArrayToBigInt)(serializer
232
+ .serialize({
233
+ amount: 0,
234
+ repayAll: false,
235
+ })
236
+ .slice(0, 8));
237
+ const [data, _] = serializer.deserialize(x.data);
238
+ if ((0, numberUtils_1.uint8ArrayToBigInt)(new Uint8Array(data.discriminator)) ===
239
+ discriminator) {
240
+ solautoActions?.push({
241
+ __kind: "Repay",
242
+ fields: [
243
+ data.repayAll
244
+ ? {
245
+ __kind: "All",
246
+ }
247
+ : {
248
+ __kind: "Some",
249
+ fields: [data.amount],
250
+ },
251
+ ],
252
+ });
253
+ }
164
254
  }
255
+ catch { }
165
256
  }
166
- catch { }
167
257
  // TODO support other platforms
168
258
  });
169
259
  return solautoActions;
@@ -1 +1 @@
1
- {"version":3,"file":"transactionsManager.d.ts","sourceRoot":"","sources":["../../src/transactions/transactionsManager.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAKzD,OAAO,EACL,aAAa,EAEd,MAAM,uBAAuB,CAAC;AAqC/B,qBAAa,eAAe;IAKjB,OAAO,EAAE,CACd,UAAU,EAAE,MAAM,KACf,OAAO,CACV;QAAE,EAAE,EAAE,kBAAkB,CAAC;QAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,SAAS,CACxE;IACM,IAAI,CAAC;IATd,oBAAoB,EAAG,MAAM,EAAE,CAAC;IAChC,EAAE,CAAC,EAAE,kBAAkB,CAAC;gBAGf,OAAO,EAAE,CACd,UAAU,EAAE,MAAM,KACf,OAAO,CACV;QAAE,EAAE,EAAE,kBAAkB,CAAC;QAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,SAAS,CACxE,EACM,IAAI,CAAC,oBAAQ;IAGhB,UAAU;IAIV,OAAO,CAAC,UAAU,EAAE,MAAM;IAMhC,cAAc,IAAI,MAAM,EAAE;CAY3B;AAgFD,oBAAY,iBAAiB;IAC3B,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,UAAU,eAAe;CAC1B;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,iBAAiB,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,EAAE,CAAC;AAEJ,qBAAa,mBAAmB;IAK5B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,cAAc,CAAC;IACvB,OAAO,CAAC,YAAY,CAAC;IACrB,OAAO,CAAC,YAAY,CAAC;IACrB,OAAO,CAAC,aAAa,CAAC;IATxB,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,YAAY,CAAe;gBAGzB,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,eAAe,EAAE,EACxB,cAAc,CAAC,6CAA4C,IAAI,aAAA,EAC/D,YAAY,CAAC,qBAAS,EACtB,YAAY,CAAC,qBAAS,EACtB,aAAa,CAAC,2BAAe;YAKzB,uBAAuB;IAsCrC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,KAAK,CAAC,EAAE,MAAM;IAgB9D,IAAI;CA8IX"}
1
+ {"version":3,"file":"transactionsManager.d.ts","sourceRoot":"","sources":["../../src/transactions/transactionsManager.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAKzD,OAAO,EACL,aAAa,EAEd,MAAM,uBAAuB,CAAC;AAqC/B,qBAAa,eAAe;IAKjB,OAAO,EAAE,CACd,UAAU,EAAE,MAAM,KACf,OAAO,CACV;QAAE,EAAE,EAAE,kBAAkB,CAAC;QAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,SAAS,CACxE;IACM,IAAI,CAAC;IATd,oBAAoB,EAAG,MAAM,EAAE,CAAC;IAChC,EAAE,CAAC,EAAE,kBAAkB,CAAC;gBAGf,OAAO,EAAE,CACd,UAAU,EAAE,MAAM,KACf,OAAO,CACV;QAAE,EAAE,EAAE,kBAAkB,CAAC;QAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,SAAS,CACxE,EACM,IAAI,CAAC,oBAAQ;IAGhB,UAAU;IAIV,OAAO,CAAC,UAAU,EAAE,MAAM;IAMhC,cAAc,IAAI,MAAM,EAAE;CAY3B;AAgFD,oBAAY,iBAAiB;IAC3B,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,UAAU,eAAe;CAC1B;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,iBAAiB,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,EAAE,CAAC;AAEJ,qBAAa,mBAAmB;IAK5B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,cAAc,CAAC;IACvB,OAAO,CAAC,YAAY,CAAC;IACrB,OAAO,CAAC,YAAY,CAAC;IACrB,OAAO,CAAC,aAAa,CAAC;IATxB,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,YAAY,CAAe;gBAGzB,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,eAAe,EAAE,EACxB,cAAc,CAAC,6CAA4C,IAAI,aAAA,EAC/D,YAAY,CAAC,qBAAS,EACtB,YAAY,CAAC,qBAAS,EACtB,aAAa,CAAC,2BAAe;YAKzB,uBAAuB;IAsCrC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,KAAK,CAAC,EAAE,MAAM;IAgB9D,IAAI;CAgJX"}
@@ -193,11 +193,15 @@ class TransactionsManager {
193
193
  choresBefore.prepend(updateLookupTable.updateLutTx);
194
194
  }
195
195
  if (choresBefore.getInstructions().length > 0) {
196
- this.items.unshift(new TransactionItem(async () => ({ tx: choresBefore }), "create account(s)"));
196
+ const chore = new TransactionItem(async () => ({ tx: choresBefore }), "create account(s)");
197
+ await chore.initialize();
198
+ this.items.unshift(chore);
197
199
  this.client.log("Chores before: ", choresBefore.getInstructions().length);
198
200
  }
199
201
  if (choresAfter.getInstructions().length > 0) {
200
- this.items.push(new TransactionItem(async () => ({ tx: choresAfter })));
202
+ const chore = new TransactionItem(async () => ({ tx: choresAfter }));
203
+ await chore.initialize();
204
+ this.items.push(chore);
201
205
  this.client.log("Chores after: ", choresAfter.getInstructions().length);
202
206
  }
203
207
  const itemSets = await this.assembleTransactionSets(this.items);
@@ -0,0 +1,13 @@
1
+ import { PublicKey } from "@solana/web3.js";
2
+ import { LendingPlatform } from "../generated";
3
+ export interface SolautoPositionDetails {
4
+ positionId: number;
5
+ selfManaged: boolean;
6
+ lendingPlatform: LendingPlatform;
7
+ }
8
+ export interface SelfManagedPositionDetails extends SolautoPositionDetails {
9
+ protocolAccount: PublicKey;
10
+ supplyMint: PublicKey;
11
+ debtMint: PublicKey;
12
+ }
13
+ //# sourceMappingURL=solauto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solauto.d.ts","sourceRoot":"","sources":["../../src/types/solauto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,WAAW,sBAAsB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,eAAe,CAAC;CACpC;AAED,MAAM,WAAW,0BAA2B,SAAQ,sBAAsB;IACtE,eAAe,EAAE,SAAS,CAAC;IAC3B,UAAU,EAAE,SAAS,CAAC;IACtB,QAAQ,EAAE,SAAS,CAAC;CACvB"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1 +1 @@
1
- {"version":3,"file":"jupiterUtils.d.ts","sourceRoot":"","sources":["../../src/utils/jupiterUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAA0B,MAAM,iBAAiB,CAAC;AAGpE,OAAO,EAGL,aAAa,EACd,MAAM,aAAa,CAAC;AAKrB,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,SAAS,CAAC;IACtB,iBAAiB,EAAE,SAAS,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAgBD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,aAAa,CAAC;IACxB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,iBAAiB,EAAE,kBAAkB,CAAC;IACtC,aAAa,EAAE,kBAAkB,CAAC;IAClC,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,cAAc,GAC1B,OAAO,CAAC,kBAAkB,CAAC,CAiE7B"}
1
+ {"version":3,"file":"jupiterUtils.d.ts","sourceRoot":"","sources":["../../src/utils/jupiterUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAA0B,MAAM,iBAAiB,CAAC;AAGpE,OAAO,EAGL,aAAa,EACd,MAAM,aAAa,CAAC;AAKrB,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,SAAS,CAAC;IACtB,iBAAiB,EAAE,SAAS,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAgBD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,aAAa,CAAC;IACxB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,iBAAiB,EAAE,kBAAkB,CAAC;IACtC,aAAa,EAAE,kBAAkB,CAAC;IAClC,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,cAAc,GAC1B,OAAO,CAAC,kBAAkB,CAAC,CAkE7B"}
@@ -30,6 +30,7 @@ async function getJupSwapTransaction(signer, swapDetails) {
30
30
  : swapDetails.exactIn
31
31
  ? "ExactIn"
32
32
  : undefined,
33
+ slippageBps: 10
33
34
  });
34
35
  const finalPriceSlippageBps = Math.round(Math.max(quoteResponse.slippageBps ?? 10, Math.round((0, numberUtils_1.toBps)(parseFloat(quoteResponse.priceImpactPct)))) *
35
36
  (1 + (swapDetails.slippageBpsIncFactor ?? 0)));
@@ -9,7 +9,11 @@ export declare function findMarginfiBankAccounts({ mint, bank, }: {
9
9
  bank?: string;
10
10
  }): MarginfiTokenAccounts;
11
11
  export declare function getMaxLtvAndLiqThreshold(supplyBank: Bank, debtBank: Bank, supplyPrice?: number): Promise<[number, number]>;
12
- export declare function getAllMarginfiAccountsByAuthority(umi: Umi, authority: PublicKey, compatibleWithSolauto?: boolean): Promise<PublicKey[]>;
12
+ export declare function getAllMarginfiAccountsByAuthority(umi: Umi, authority: PublicKey, compatibleWithSolauto?: boolean): Promise<{
13
+ marginfiAccount: PublicKey;
14
+ supplyMint?: PublicKey;
15
+ debtMint?: PublicKey;
16
+ }[]>;
13
17
  export declare function getMarginfiAccountPositionState(umi: Umi, marginfiAccountPk: PublicKey, supplyMint?: PublicKey, debtMint?: PublicKey, livePositionUpdates?: LivePositionUpdates): Promise<PositionState | undefined>;
14
18
  export declare function getUpToDateShareValues(umi: Umi, bank: Bank): Promise<[number, number]>;
15
19
  //# sourceMappingURL=marginfiUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"marginfiUtils.d.ts","sourceRoot":"","sources":["../../src/utils/marginfiUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAa,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EACL,IAAI,EAOL,MAAM,iBAAiB,CAAC;AAUzB,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAsB,MAAM,cAAc,CAAC;AAEjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG7D,wBAAgB,wBAAwB,CAAC,EACvC,IAAI,EACJ,IAAI,GACL,EAAE;IACD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,qBAAqB,CAWxB;AAED,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,IAAI,EAChB,QAAQ,EAAE,IAAI,EACd,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAkC3B;AAED,wBAAsB,iCAAiC,CACrD,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,EACpB,qBAAqB,CAAC,EAAE,OAAO,GAC9B,OAAO,CAAC,SAAS,EAAE,CAAC,CAuCtB;AAoDD,wBAAsB,+BAA+B,CACnD,GAAG,EAAE,GAAG,EACR,iBAAiB,EAAE,SAAS,EAC5B,UAAU,CAAC,EAAE,SAAS,EACtB,QAAQ,CAAC,EAAE,SAAS,EACpB,mBAAmB,CAAC,EAAE,mBAAmB,GACxC,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CA4IpC;AA+DD,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,GACT,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA0B3B"}
1
+ {"version":3,"file":"marginfiUtils.d.ts","sourceRoot":"","sources":["../../src/utils/marginfiUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAa,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EACL,IAAI,EAOL,MAAM,iBAAiB,CAAC;AAUzB,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAsB,MAAM,cAAc,CAAC;AAEjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG7D,wBAAgB,wBAAwB,CAAC,EACvC,IAAI,EACJ,IAAI,GACL,EAAE;IACD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,qBAAqB,CAWxB;AAED,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,IAAI,EAChB,QAAQ,EAAE,IAAI,EACd,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAkC3B;AAED,wBAAsB,iCAAiC,CACrD,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,EACpB,qBAAqB,CAAC,EAAE,OAAO,GAC9B,OAAO,CACR;IAAE,eAAe,EAAE,SAAS,CAAC;IAAC,UAAU,CAAC,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,EAAE,CAC/E,CA6CA;AAoDD,wBAAsB,+BAA+B,CACnD,GAAG,EAAE,GAAG,EACR,iBAAiB,EAAE,SAAS,EAC5B,UAAU,CAAC,EAAE,SAAS,EACtB,QAAQ,CAAC,EAAE,SAAS,EACpB,mBAAmB,CAAC,EAAE,mBAAmB,GACxC,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CA4IpC;AA+DD,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,GACT,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA0B3B"}
@@ -70,10 +70,16 @@ async function getAllMarginfiAccountsByAuthority(umi, authority, compatibleWithS
70
70
  })));
71
71
  return positionStates
72
72
  .filter((x) => x.state !== undefined)
73
- .map((x) => (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(x.publicKey));
73
+ .map((x) => ({
74
+ marginfiAccount: (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(x.publicKey),
75
+ supplyMint: (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(x.state.supply.mint),
76
+ debtMint: (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(x.state.debt.mint),
77
+ }));
74
78
  }
75
79
  else {
76
- return marginfiAccounts.map((x) => (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(x.publicKey));
80
+ return marginfiAccounts.map((x) => ({
81
+ marginfiAccount: (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(x.publicKey),
82
+ }));
77
83
  }
78
84
  }
79
85
  exports.getAllMarginfiAccountsByAuthority = getAllMarginfiAccountsByAuthority;
@@ -1,6 +1,7 @@
1
1
  import { PublicKey } from "@solana/web3.js";
2
2
  import { Umi } from "@metaplex-foundation/umi";
3
3
  import { AutomationSettings, DCASettings, DCASettingsInpArgs, FeeType, LendingPlatform, PositionState, SolautoSettingsParameters, SolautoSettingsParametersInpArgs } from "../../generated";
4
+ import { SolautoPositionDetails } from "../../types/solauto";
4
5
  export declare function nextAutomationPeriodTimestamp(automation: AutomationSettings): number;
5
6
  export declare function eligibleForNextAutomationPeriod(automation: AutomationSettings): boolean;
6
7
  export declare function getUpdatedValueFromAutomation(currValue: number, targetValue: number, automation: AutomationSettings, currentUnixTimestamp: number): number;
@@ -19,11 +20,6 @@ export declare function getSolautoManagedPositions(umi: Umi, authority?: PublicK
19
20
  }[]>;
20
21
  export declare function getAllReferralStates(umi: Umi): Promise<PublicKey[]>;
21
22
  export declare function getReferralsByUser(umi: Umi, user: PublicKey): Promise<PublicKey[]>;
22
- export interface SolautoPositionDetails {
23
- positionId: number;
24
- lendingPlatform: LendingPlatform;
25
- protocolAccount?: PublicKey;
26
- }
27
23
  export declare function getAllPositionsByAuthority(umi: Umi, user: PublicKey): Promise<SolautoPositionDetails[]>;
28
24
  type PositionAdjustment = {
29
25
  type: "supply";
@@ -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":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAoB,GAAG,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,OAAO,EACP,eAAe,EACf,aAAa,EAEb,yBAAyB,EACzB,gCAAgC,EAIjC,MAAM,iBAAiB,CAAC;AAczB,OAAO,EAEL,sBAAsB,EACvB,MAAM,qBAAqB,CAAC;AAgB7B,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,kBAAkB,GAC7B,MAAM,CAKR;AAED,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,kBAAkB,GAC7B,OAAO,CAET;AAED,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,kBAAkB,EAC9B,oBAAoB,EAAE,MAAM,UAY7B;AAED,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,yBAAyB,EACnC,kBAAkB,EAAE,MAAM,GACzB,yBAAyB,CAgB3B;AAED,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,OAAO,EACnB,OAAO,EAAE,OAAO,GACf;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf,CAYA;AAED,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,yBAAyB,EAC3C,WAAW,EAAE,WAAW,GACvB,OAAO,CA+BT;AAED,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,yBAAyB,GAC1C,OAAO,CAST;AAED,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,GAAG,EACR,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CACR;IACE,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,eAAe,CAAC;CAClC,EAAE,CACJ,CAkDA;AAED,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAezE;AAED,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,SAAS,GACd,OAAO,CAAC,SAAS,EAAE,CAAC,CA2BtB;AAED,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,SAAS,GACd,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAkCnC;AA4DD,KAAK,kBAAkB,GACnB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,gCAAgC,CAAA;CAAE,GAC7D;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,kBAAkB,CAAA;CAAE,CAAC;AAE/C,qBAAa,mBAAmB;IACvB,gBAAgB,EAAE,MAAM,CAAa;IACrC,cAAc,EAAE,MAAM,CAAa;IACnC,uBAAuB,EAAE,MAAM,CAAa;IAC5C,QAAQ,EAAE,yBAAyB,GAAG,SAAS,CAAa;IAC5D,SAAS,EAAE,WAAW,GAAG,SAAS,CAAa;IAEtD,GAAG,CAAC,MAAM,EAAE,kBAAkB;IAyD9B,KAAK;IAQL,UAAU,IAAI,OAAO;CAQtB"}
@@ -186,12 +186,16 @@ async function getAllPositionsByAuthority(umi, user) {
186
186
  allPositions.push(...solautoManagedPositions.map((x) => ({
187
187
  positionId: x.positionId,
188
188
  lendingPlatform: x.lendingPlatform,
189
+ selfManaged: false,
189
190
  })));
190
191
  const marginfiPositions = await (0, marginfiUtils_1.getAllMarginfiAccountsByAuthority)(umi, user, true);
191
- allPositions.push(...marginfiPositions.map((pubkey) => ({
192
+ allPositions.push(...marginfiPositions.map((x) => ({
192
193
  positionId: 0,
194
+ selfManaged: true,
193
195
  lendingPlatform: generated_1.LendingPlatform.Marginfi,
194
- protocolAccount: pubkey,
196
+ protocolAccount: x.marginfiAccount,
197
+ supplyMint: x.supplyMint,
198
+ debtMint: x.debtMint,
195
199
  })));
196
200
  // TODO support other platforms
197
201
  return allPositions;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getJupSwapRebalanceDetails = exports.getFlashLoanDetails = exports.getRebalanceValues = void 0;
4
+ const generated_1 = require("../../generated");
4
5
  const generalUtils_1 = require("./generalUtils");
5
6
  const umi_web3js_adapters_1 = require("@metaplex-foundation/umi-web3js-adapters");
6
7
  const generalUtils_2 = require("../generalUtils");
@@ -98,7 +99,7 @@ function getRebalanceValues(client, targetLiqUtilizationRateBps, limitGapBps) {
98
99
  client.solautoPositionState.liqUtilizationRateBps < targetRateBps;
99
100
  let adjustmentFeeBps = 0;
100
101
  if (increasingLeverage) {
101
- adjustmentFeeBps = (0, generalUtils_1.getSolautoFeesBps)(client.referredByState !== undefined, client.solautoPositionData.feeType).total;
102
+ adjustmentFeeBps = (0, generalUtils_1.getSolautoFeesBps)(client.referredByState !== undefined, client.solautoPositionData?.feeType ?? generated_1.FeeType.Small).total;
102
103
  }
103
104
  const supplyUsd = (0, numberUtils_1.fromBaseUnit)(client.solautoPositionState.supply.amountUsed.baseAmountUsdValue, generalAccounts_1.USD_DECIMALS) + amountUsdToDcaIn;
104
105
  const debtUsd = (0, numberUtils_1.fromBaseUnit)(client.solautoPositionState.debt.amountUsed.baseAmountUsdValue, generalAccounts_1.USD_DECIMALS);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haven-fi/solauto-sdk",
3
- "version": "1.0.25",
3
+ "version": "1.0.27",
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",
@@ -88,12 +88,12 @@ export abstract class SolautoClient {
88
88
  public solautoPositionState!: PositionState | undefined;
89
89
 
90
90
  public supplyMint!: PublicKey;
91
- public positionSupplyLiquidityTa!: PublicKey;
92
- public signerSupplyLiquidityTa!: PublicKey;
91
+ public positionSupplyTa!: PublicKey;
92
+ public signerSupplyTa!: PublicKey;
93
93
 
94
94
  public debtMint!: PublicKey;
95
- public positionDebtLiquidityTa!: PublicKey;
96
- public signerDebtLiquidityTa!: PublicKey;
95
+ public positionDebtTa!: PublicKey;
96
+ public signerDebtTa!: PublicKey;
97
97
 
98
98
  public authorityReferralState!: PublicKey;
99
99
  public authorityReferralStateData!: ReferralState | null;
@@ -157,11 +157,11 @@ export abstract class SolautoClient {
157
157
  this.supplyMint =
158
158
  args.supplyMint ??
159
159
  toWeb3JsPublicKey(this.solautoPositionData!.position.supplyMint);
160
- this.positionSupplyLiquidityTa = getTokenAccount(
160
+ this.positionSupplyTa = getTokenAccount(
161
161
  this.solautoPosition,
162
162
  this.supplyMint
163
163
  );
164
- this.signerSupplyLiquidityTa = getTokenAccount(
164
+ this.signerSupplyTa = getTokenAccount(
165
165
  toWeb3JsPublicKey(this.signer.publicKey),
166
166
  this.supplyMint
167
167
  );
@@ -169,11 +169,11 @@ export abstract class SolautoClient {
169
169
  this.debtMint =
170
170
  args.debtMint ??
171
171
  toWeb3JsPublicKey(this.solautoPositionData!.position.debtMint);
172
- this.positionDebtLiquidityTa = getTokenAccount(
172
+ this.positionDebtTa = getTokenAccount(
173
173
  this.solautoPosition,
174
174
  this.debtMint
175
175
  );
176
- this.signerDebtLiquidityTa = getTokenAccount(
176
+ this.signerDebtTa = getTokenAccount(
177
177
  toWeb3JsPublicKey(this.signer.publicKey),
178
178
  this.debtMint
179
179
  );
@@ -280,14 +280,14 @@ export abstract class SolautoClient {
280
280
  return [
281
281
  this.authority,
282
282
  ...(this.signer.publicKey.toString() === this.authority.toString()
283
- ? [this.signerSupplyLiquidityTa]
283
+ ? [this.signerSupplyTa]
284
284
  : []),
285
285
  ...(this.signer.publicKey.toString() === this.authority.toString()
286
- ? [this.signerDebtLiquidityTa]
286
+ ? [this.signerDebtTa]
287
287
  : []),
288
288
  this.solautoPosition,
289
- this.positionSupplyLiquidityTa,
290
- this.positionDebtLiquidityTa,
289
+ this.positionSupplyTa,
290
+ this.positionDebtTa,
291
291
  this.authorityReferralState,
292
292
  ...(this.referredBySupplyTa ? [this.referredBySupplyTa] : []),
293
293
  ];
@@ -317,7 +317,6 @@ export abstract class SolautoClient {
317
317
  return undefined;
318
318
  }
319
319
 
320
- this.log("Updating authority lookup table...");
321
320
  let tx = transactionBuilder();
322
321
 
323
322
  if (this.authorityLutAddress === undefined) {
@@ -353,10 +352,13 @@ export abstract class SolautoClient {
353
352
  );
354
353
  }
355
354
 
356
- const addingReferredBy =
357
- accountsToAdd.length === 1 &&
358
- accountsToAdd[0].toString().toLowerCase() ===
359
- this.referredBySupplyTa?.toString().toLowerCase();
355
+ const addingReferredBy = accountsToAdd.length === 1
356
+ // && accountsToAdd[0].toString().toLowerCase() ===
357
+ // this.referredBySupplyTa?.toString().toLowerCase();
358
+
359
+ if (tx.getInstructions().length > 0) {
360
+ this.log("Updating authority lookup table...");
361
+ }
360
362
 
361
363
  return { updateLutTx: tx, needsToBeIsolated: !addingReferredBy };
362
364
  }
@@ -443,8 +445,8 @@ export abstract class SolautoClient {
443
445
  let signerDebtTa: UmiPublicKey | undefined = undefined;
444
446
  if (isOption(args.dca) && isSome(args.dca)) {
445
447
  debtMint = publicKey(this.debtMint);
446
- positionDebtTa = publicKey(this.positionDebtLiquidityTa);
447
- signerDebtTa = publicKey(this.signerDebtLiquidityTa);
448
+ positionDebtTa = publicKey(this.positionDebtTa);
449
+ signerDebtTa = publicKey(this.signerDebtTa);
448
450
 
449
451
  let addingToPos = false;
450
452
  if (
@@ -500,10 +502,10 @@ export abstract class SolautoClient {
500
502
  return closePosition(this.umi, {
501
503
  signer: this.signer,
502
504
  solautoPosition: publicKey(this.solautoPosition),
503
- signerSupplyLiquidityTa: publicKey(this.signerSupplyLiquidityTa),
504
- positionSupplyLiquidityTa: publicKey(this.positionSupplyLiquidityTa),
505
- positionDebtLiquidityTa: publicKey(this.positionDebtLiquidityTa),
506
- signerDebtLiquidityTa: publicKey(this.signerDebtLiquidityTa),
505
+ signerSupplyTa: publicKey(this.signerSupplyTa),
506
+ positionSupplyTa: publicKey(this.positionSupplyTa),
507
+ positionDebtTa: publicKey(this.positionDebtTa),
508
+ signerDebtTa: publicKey(this.signerDebtTa),
507
509
  });
508
510
  }
509
511
 
@@ -516,8 +518,8 @@ export abstract class SolautoClient {
516
518
  const positionData = this.solautoPositionData!.position;
517
519
  if (positionData.dca.debtToAddBaseUnit) {
518
520
  debtMint = publicKey(this.debtMint);
519
- positionDebtTa = publicKey(this.positionDebtLiquidityTa);
520
- signerDebtTa = publicKey(this.signerDebtLiquidityTa);
521
+ positionDebtTa = publicKey(this.positionDebtTa);
522
+ signerDebtTa = publicKey(this.signerDebtTa);
521
523
 
522
524
  this.livePositionUpdates.new({
523
525
  type: "debtDcaIn",
@@ -545,8 +547,8 @@ export abstract class SolautoClient {
545
547
  tx = tx.add(
546
548
  splTokenTransferUmiIx(
547
549
  this.signer,
548
- this.signerSupplyLiquidityTa,
549
- this.positionSupplyLiquidityTa,
550
+ this.signerSupplyTa,
551
+ this.positionSupplyTa,
550
552
  toWeb3JsPublicKey(this.signer.publicKey),
551
553
  BigInt(args.fields[0])
552
554
  )
@@ -556,8 +558,8 @@ export abstract class SolautoClient {
556
558
  tx = tx.add(
557
559
  splTokenTransferUmiIx(
558
560
  this.signer,
559
- this.signerDebtLiquidityTa,
560
- this.positionDebtLiquidityTa,
561
+ this.signerDebtTa,
562
+ this.positionDebtTa,
561
563
  toWeb3JsPublicKey(this.signer.publicKey),
562
564
  BigInt(args.fields[0].fields[0])
563
565
  )
@@ -566,8 +568,8 @@ export abstract class SolautoClient {
566
568
  tx = tx.add(
567
569
  splTokenTransferUmiIx(
568
570
  this.signer,
569
- this.signerDebtLiquidityTa,
570
- this.positionDebtLiquidityTa,
571
+ this.signerDebtTa,
572
+ this.positionDebtTa,
571
573
  toWeb3JsPublicKey(this.signer.publicKey),
572
574
  BigInt(
573
575
  Math.round(