@haven-fi/solauto-sdk 1.0.25 → 1.0.27

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 (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(