@haven-fi/solauto-sdk 1.0.161 → 1.0.163

Sign up to get free protection for your applications and to get access to all the features.
Files changed (29) hide show
  1. package/dist/clients/solautoClient.d.ts +1 -1
  2. package/dist/clients/solautoClient.d.ts.map +1 -1
  3. package/dist/clients/solautoMarginfiClient.d.ts +1 -1
  4. package/dist/clients/solautoMarginfiClient.d.ts.map +1 -1
  5. package/dist/clients/solautoMarginfiClient.js +1 -2
  6. package/dist/generated/instructions/marginfiRebalance.d.ts +0 -2
  7. package/dist/generated/instructions/marginfiRebalance.d.ts.map +1 -1
  8. package/dist/generated/instructions/marginfiRebalance.js +0 -1
  9. package/dist/generated/types/rebalanceData.d.ts +0 -2
  10. package/dist/generated/types/rebalanceData.d.ts.map +1 -1
  11. package/dist/generated/types/rebalanceData.js +1 -2
  12. package/dist/transactions/transactionUtils.d.ts.map +1 -1
  13. package/dist/transactions/transactionUtils.js +5 -6
  14. package/dist/utils/jupiterUtils.js +1 -1
  15. package/dist/utils/solanaUtils.d.ts.map +1 -1
  16. package/dist/utils/solanaUtils.js +3 -2
  17. package/dist/utils/solauto/rebalanceUtils.d.ts +1 -0
  18. package/dist/utils/solauto/rebalanceUtils.d.ts.map +1 -1
  19. package/dist/utils/solauto/rebalanceUtils.js +13 -13
  20. package/package.json +1 -1
  21. package/src/clients/solautoClient.ts +0 -1
  22. package/src/clients/solautoMarginfiClient.ts +0 -2
  23. package/src/generated/instructions/marginfiRebalance.ts +0 -3
  24. package/src/generated/types/rebalanceData.ts +1 -4
  25. package/src/transactions/transactionUtils.ts +1 -6
  26. package/src/utils/jupiterUtils.ts +1 -1
  27. package/src/utils/solanaUtils.ts +4 -3
  28. package/src/utils/solauto/rebalanceUtils.ts +25 -19
  29. package/tests/transactions/solautoMarginfi.ts +4 -4
@@ -65,7 +65,7 @@ export declare abstract class SolautoClient extends TxHandler {
65
65
  protocolInteraction(args: SolautoActionArgs): TransactionBuilder;
66
66
  abstract flashBorrow(flashLoanDetails: FlashLoanDetails, destinationTokenAccount: PublicKey): TransactionBuilder;
67
67
  abstract flashRepay(flashLoanDetails: FlashLoanDetails): TransactionBuilder;
68
- abstract rebalance(rebalanceStep: "A" | "B", swapDetails: JupSwapDetails, rebalanceType: SolautoRebalanceTypeArgs, slippageBps: number, flashLoan?: FlashLoanDetails, targetLiqUtilizationRateBps?: number, limitGapBps?: number): TransactionBuilder;
68
+ abstract rebalance(rebalanceStep: "A" | "B", swapDetails: JupSwapDetails, rebalanceType: SolautoRebalanceTypeArgs, flashLoan?: FlashLoanDetails, targetLiqUtilizationRateBps?: number, limitGapBps?: number): TransactionBuilder;
69
69
  getFreshPositionState(): Promise<PositionState | undefined>;
70
70
  }
71
71
  //# sourceMappingURL=solautoClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"solautoClient.d.ts","sourceRoot":"","sources":["../../src/clients/solautoClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"solautoClient.d.ts","sourceRoot":"","sources":["../../src/clients/solautoClient.ts"],"names":[],"mappings":"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"}
@@ -38,7 +38,7 @@ export declare class SolautoMarginfiClient extends SolautoClient {
38
38
  protocolInteraction(args: SolautoActionArgs): TransactionBuilder;
39
39
  private marginfiProtocolInteractionIx;
40
40
  private marginfiSolautoProtocolInteractionIx;
41
- rebalance(rebalanceStep: "A" | "B", swapDetails: JupSwapDetails, rebalanceType: SolautoRebalanceTypeArgs, slippageBps: number, flashLoan?: FlashLoanDetails, targetLiqUtilizationRateBps?: number, limitGapBps?: number): TransactionBuilder;
41
+ rebalance(rebalanceStep: "A" | "B", swapDetails: JupSwapDetails, rebalanceType: SolautoRebalanceTypeArgs, flashLoan?: FlashLoanDetails, targetLiqUtilizationRateBps?: number, limitGapBps?: number): TransactionBuilder;
42
42
  flashBorrow(flashLoanDetails: FlashLoanDetails, destinationTokenAccount: PublicKey): TransactionBuilder;
43
43
  flashRepay(flashLoanDetails: FlashLoanDetails): TransactionBuilder;
44
44
  createIntermediaryMarginfiAccount(): TransactionBuilder;
@@ -1 +1 @@
1
- {"version":3,"file":"solautoMarginfiClient.d.ts","sourceRoot":"","sources":["../../src/clients/solautoMarginfiClient.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,MAAM,EACN,kBAAkB,EAMnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAA8B,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAM1D,OAAO,EACL,kBAAkB,EAElB,aAAa,EAEb,iBAAiB,EACjB,wBAAwB,EACxB,gCAAgC,EAKjC,MAAM,cAAc,CAAC;AAGtB,OAAO,EAEL,eAAe,EAUhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAUnE,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;IAClE,eAAe,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IACrC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,aAAa,CAAC,EAAE,SAAS,CAAC;CAC3B;AAED,qBAAa,qBAAsB,SAAQ,aAAa;IACtD,OAAO,CAAC,WAAW,CAAkB;IAE9B,eAAe,EAAG,SAAS,CAAC;IAE5B,sBAAsB,EAAE,MAAM,CAAa;IAC3C,eAAe,EAAG,SAAS,GAAG,MAAM,CAAC;IACrC,iBAAiB,EAAG,SAAS,CAAC;IAC9B,aAAa,EAAG,SAAS,CAAC;IAE1B,sBAAsB,EAAG,qBAAqB,CAAC;IAC/C,oBAAoB,EAAG,qBAAqB,CAAC;IAE7C,iBAAiB,EAAG,SAAS,CAAC;IAC9B,eAAe,EAAG,SAAS,CAAC;IAG5B,iCAAiC,CAAC,EAAE,MAAM,CAAC;IAC3C,6BAA6B,EAAG,SAAS,CAAC;IAC1C,2BAA2B,CAAC,EAAE,eAAe,CAAC;IAE/C,UAAU,CAAC,IAAI,EAAE,yBAAyB;IA+D1C,8BAA8B;IA0CpC,eAAe,IAAI,SAAS;IAI5B,mBAAmB,IAAI,MAAM,EAAE;IAI/B,gBAAgB,IAAI,SAAS,EAAE;IAUzB,qBAAqB,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IA2BpE,yBAAyB,IAAI,kBAAkB;IAS/C,YAAY,CACV,aAAa,CAAC,EAAE,gCAAgC,EAChD,GAAG,CAAC,EAAE,kBAAkB,GACvB,kBAAkB;IAMrB,OAAO,CAAC,sBAAsB;IA+C9B,OAAO,IAAI,kBAAkB;IAc7B,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,kBAAkB;IAUhE,OAAO,CAAC,6BAA6B;IAmErC,OAAO,CAAC,oCAAoC;IA0D5C,SAAS,CACP,aAAa,EAAE,GAAG,GAAG,GAAG,EACxB,WAAW,EAAE,cAAc,EAC3B,aAAa,EAAE,wBAAwB,EACvC,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,gBAAgB,EAC5B,2BAA2B,CAAC,EAAE,MAAM,EACpC,WAAW,CAAC,EAAE,MAAM,GACnB,kBAAkB;IAoErB,WAAW,CACT,gBAAgB,EAAE,gBAAgB,EAClC,uBAAuB,EAAE,SAAS,GACjC,kBAAkB;IA2BrB,UAAU,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,kBAAkB;IAoFlE,iCAAiC,IAAI,kBAAkB;IASjD,qBAAqB,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;CAwClE"}
1
+ {"version":3,"file":"solautoMarginfiClient.d.ts","sourceRoot":"","sources":["../../src/clients/solautoMarginfiClient.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,MAAM,EACN,kBAAkB,EAMnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAA8B,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAM1D,OAAO,EACL,kBAAkB,EAElB,aAAa,EAEb,iBAAiB,EACjB,wBAAwB,EACxB,gCAAgC,EAKjC,MAAM,cAAc,CAAC;AAGtB,OAAO,EAEL,eAAe,EAUhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAUnE,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;IAClE,eAAe,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IACrC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,aAAa,CAAC,EAAE,SAAS,CAAC;CAC3B;AAED,qBAAa,qBAAsB,SAAQ,aAAa;IACtD,OAAO,CAAC,WAAW,CAAkB;IAE9B,eAAe,EAAG,SAAS,CAAC;IAE5B,sBAAsB,EAAE,MAAM,CAAa;IAC3C,eAAe,EAAG,SAAS,GAAG,MAAM,CAAC;IACrC,iBAAiB,EAAG,SAAS,CAAC;IAC9B,aAAa,EAAG,SAAS,CAAC;IAE1B,sBAAsB,EAAG,qBAAqB,CAAC;IAC/C,oBAAoB,EAAG,qBAAqB,CAAC;IAE7C,iBAAiB,EAAG,SAAS,CAAC;IAC9B,eAAe,EAAG,SAAS,CAAC;IAG5B,iCAAiC,CAAC,EAAE,MAAM,CAAC;IAC3C,6BAA6B,EAAG,SAAS,CAAC;IAC1C,2BAA2B,CAAC,EAAE,eAAe,CAAC;IAE/C,UAAU,CAAC,IAAI,EAAE,yBAAyB;IA+D1C,8BAA8B;IA0CpC,eAAe,IAAI,SAAS;IAI5B,mBAAmB,IAAI,MAAM,EAAE;IAI/B,gBAAgB,IAAI,SAAS,EAAE;IAUzB,qBAAqB,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IA2BpE,yBAAyB,IAAI,kBAAkB;IAS/C,YAAY,CACV,aAAa,CAAC,EAAE,gCAAgC,EAChD,GAAG,CAAC,EAAE,kBAAkB,GACvB,kBAAkB;IAMrB,OAAO,CAAC,sBAAsB;IA+C9B,OAAO,IAAI,kBAAkB;IAc7B,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,kBAAkB;IAUhE,OAAO,CAAC,6BAA6B;IAmErC,OAAO,CAAC,oCAAoC;IA0D5C,SAAS,CACP,aAAa,EAAE,GAAG,GAAG,GAAG,EACxB,WAAW,EAAE,cAAc,EAC3B,aAAa,EAAE,wBAAwB,EACvC,SAAS,CAAC,EAAE,gBAAgB,EAC5B,2BAA2B,CAAC,EAAE,MAAM,EACpC,WAAW,CAAC,EAAE,MAAM,GACnB,kBAAkB;IAmErB,WAAW,CACT,gBAAgB,EAAE,gBAAgB,EAClC,uBAAuB,EAAE,SAAS,GACjC,kBAAkB;IA2BrB,UAAU,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,kBAAkB;IAoFlE,iCAAiC,IAAI,kBAAkB;IASjD,qBAAqB,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;CAwClE"}
@@ -291,7 +291,7 @@ class SolautoMarginfiClient extends solautoClient_1.SolautoClient {
291
291
  solautoAction: args,
292
292
  });
293
293
  }
294
- rebalance(rebalanceStep, swapDetails, rebalanceType, slippageBps, flashLoan, targetLiqUtilizationRateBps, limitGapBps) {
294
+ rebalance(rebalanceStep, swapDetails, rebalanceType, flashLoan, targetLiqUtilizationRateBps, limitGapBps) {
295
295
  const inputIsSupply = swapDetails.inputMint.equals(this.supplyMint);
296
296
  const outputIsSupply = swapDetails.outputMint.equals(this.supplyMint);
297
297
  const needSupplyAccounts = (inputIsSupply && rebalanceStep === "A") ||
@@ -340,7 +340,6 @@ class SolautoMarginfiClient extends solautoClient_1.SolautoClient {
340
340
  ? swapDetails.amount
341
341
  : null,
342
342
  limitGapBps: limitGapBps ?? null,
343
- slippageBps: slippageBps ?? 0,
344
343
  });
345
344
  }
346
345
  flashBorrow(flashLoanDetails, destinationTokenAccount) {
@@ -37,14 +37,12 @@ export type MarginfiRebalanceInstructionAccounts = {
37
37
  };
38
38
  export type MarginfiRebalanceInstructionData = {
39
39
  discriminator: number;
40
- slippageBps: number;
41
40
  rebalanceType: SolautoRebalanceType;
42
41
  targetLiqUtilizationRateBps: Option<number>;
43
42
  targetInAmountBaseUnit: Option<bigint>;
44
43
  limitGapBps: Option<number>;
45
44
  };
46
45
  export type MarginfiRebalanceInstructionDataArgs = {
47
- slippageBps: number;
48
46
  rebalanceType: SolautoRebalanceTypeArgs;
49
47
  targetLiqUtilizationRateBps: OptionOrNullable<number>;
50
48
  targetInAmountBaseUnit: OptionOrNullable<number | bigint>;
@@ -1 +1 @@
1
- {"version":3,"file":"marginfiRebalance.d.ts","sourceRoot":"","sources":["../../../src/generated/instructions/marginfiRebalance.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,OAAO,EACP,MAAM,EACN,gBAAgB,EAChB,GAAG,EACH,SAAS,EACT,MAAM,EACN,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,UAAU,EAOX,MAAM,sCAAsC,CAAC;AAM9C,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EAEzB,MAAM,UAAU,CAAC;AAGlB,MAAM,MAAM,oCAAoC,GAAG;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,SAAS,GAAG,GAAG,CAAC;IACjC,aAAa,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;IAChC,YAAY,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;IAC/B,SAAS,EAAE,SAAS,GAAG,GAAG,CAAC;IAC3B,mBAAmB,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;IACtC,sBAAsB,EAAE,SAAS,GAAG,GAAG,CAAC;IACxC,kBAAkB,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;IACrC,iBAAiB,EAAE,SAAS,GAAG,GAAG,CAAC;IACnC,eAAe,EAAE,SAAS,GAAG,GAAG,CAAC;IACjC,aAAa,EAAE,SAAS,GAAG,GAAG,CAAC;IAC/B,eAAe,EAAE,SAAS,GAAG,GAAG,CAAC;IACjC,cAAc,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;IACjC,UAAU,EAAE,SAAS,GAAG,GAAG,CAAC;IAC5B,iBAAiB,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;IACpC,gBAAgB,EAAE,SAAS,GAAG,GAAG,CAAC;IAClC,iBAAiB,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;IACpC,aAAa,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;IAChC,oBAAoB,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;IACvC,QAAQ,EAAE,SAAS,GAAG,GAAG,CAAC;IAC1B,eAAe,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;IAClC,cAAc,EAAE,SAAS,GAAG,GAAG,CAAC;IAChC,eAAe,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;IAClC,WAAW,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;IAC9B,kBAAkB,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;CACtC,CAAC;AAGF,MAAM,MAAM,gCAAgC,GAAG;IAC7C,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,oBAAoB,CAAC;IACpC,2BAA2B,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5C,sBAAsB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACvC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,oCAAoC,GAAG;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,wBAAwB,CAAC;IACxC,2BAA2B,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACtD,sBAAsB,EAAE,gBAAgB,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAC1D,WAAW,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;CACvC,CAAC;AAEF,wBAAgB,6CAA6C,IAAI,UAAU,CACzE,oCAAoC,EACpC,gCAAgC,CACjC,CAsBA;AAGD,MAAM,MAAM,gCAAgC,GAC1C,oCAAoC,CAAC;AAGvC,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAClC,KAAK,EAAE,oCAAoC,GAAG,gCAAgC,GAC7E,kBAAkB,CAkLpB"}
1
+ {"version":3,"file":"marginfiRebalance.d.ts","sourceRoot":"","sources":["../../../src/generated/instructions/marginfiRebalance.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,OAAO,EACP,MAAM,EACN,gBAAgB,EAChB,GAAG,EACH,SAAS,EACT,MAAM,EACN,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,UAAU,EAOX,MAAM,sCAAsC,CAAC;AAM9C,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EAEzB,MAAM,UAAU,CAAC;AAGlB,MAAM,MAAM,oCAAoC,GAAG;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,SAAS,GAAG,GAAG,CAAC;IACjC,aAAa,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;IAChC,YAAY,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;IAC/B,SAAS,EAAE,SAAS,GAAG,GAAG,CAAC;IAC3B,mBAAmB,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;IACtC,sBAAsB,EAAE,SAAS,GAAG,GAAG,CAAC;IACxC,kBAAkB,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;IACrC,iBAAiB,EAAE,SAAS,GAAG,GAAG,CAAC;IACnC,eAAe,EAAE,SAAS,GAAG,GAAG,CAAC;IACjC,aAAa,EAAE,SAAS,GAAG,GAAG,CAAC;IAC/B,eAAe,EAAE,SAAS,GAAG,GAAG,CAAC;IACjC,cAAc,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;IACjC,UAAU,EAAE,SAAS,GAAG,GAAG,CAAC;IAC5B,iBAAiB,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;IACpC,gBAAgB,EAAE,SAAS,GAAG,GAAG,CAAC;IAClC,iBAAiB,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;IACpC,aAAa,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;IAChC,oBAAoB,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;IACvC,QAAQ,EAAE,SAAS,GAAG,GAAG,CAAC;IAC1B,eAAe,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;IAClC,cAAc,EAAE,SAAS,GAAG,GAAG,CAAC;IAChC,eAAe,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;IAClC,WAAW,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;IAC9B,kBAAkB,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;CACtC,CAAC;AAGF,MAAM,MAAM,gCAAgC,GAAG;IAC7C,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,oBAAoB,CAAC;IACpC,2BAA2B,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5C,sBAAsB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACvC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,oCAAoC,GAAG;IACjD,aAAa,EAAE,wBAAwB,CAAC;IACxC,2BAA2B,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACtD,sBAAsB,EAAE,gBAAgB,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAC1D,WAAW,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;CACvC,CAAC;AAEF,wBAAgB,6CAA6C,IAAI,UAAU,CACzE,oCAAoC,EACpC,gCAAgC,CACjC,CAqBA;AAGD,MAAM,MAAM,gCAAgC,GAC1C,oCAAoC,CAAC;AAGvC,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAClC,KAAK,EAAE,oCAAoC,GAAG,gCAAgC,GAC7E,kBAAkB,CAkLpB"}
@@ -16,7 +16,6 @@ const types_1 = require("../types");
16
16
  function getMarginfiRebalanceInstructionDataSerializer() {
17
17
  return (0, serializers_1.mapSerializer)((0, serializers_1.struct)([
18
18
  ['discriminator', (0, serializers_1.u8)()],
19
- ['slippageBps', (0, serializers_1.u16)()],
20
19
  ['rebalanceType', (0, types_1.getSolautoRebalanceTypeSerializer)()],
21
20
  ['targetLiqUtilizationRateBps', (0, serializers_1.option)((0, serializers_1.u16)())],
22
21
  ['targetInAmountBaseUnit', (0, serializers_1.option)((0, serializers_1.u64)())],
@@ -10,7 +10,6 @@ import { SolautoRebalanceType, SolautoRebalanceTypeArgs } from '.';
10
10
  export type RebalanceData = {
11
11
  rebalanceType: SolautoRebalanceType;
12
12
  padding1: Array<number>;
13
- priceSlippageBps: number;
14
13
  targetLiqUtilizationRateBps: number;
15
14
  padding2: Array<number>;
16
15
  flashLoanAmount: bigint;
@@ -19,7 +18,6 @@ export type RebalanceData = {
19
18
  export type RebalanceDataArgs = {
20
19
  rebalanceType: SolautoRebalanceTypeArgs;
21
20
  padding1: Array<number>;
22
- priceSlippageBps: number;
23
21
  targetLiqUtilizationRateBps: number;
24
22
  padding2: Array<number>;
25
23
  flashLoanAmount: number | bigint;
@@ -1 +1 @@
1
- {"version":3,"file":"rebalanceData.d.ts","sourceRoot":"","sources":["../../../src/generated/types/rebalanceData.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,UAAU,EAOX,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EAEzB,MAAM,GAAG,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG;IAC1B,aAAa,EAAE,oBAAoB,CAAC;IACpC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,2BAA2B,EAAE,MAAM,CAAC;IACpC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,UAAU,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,aAAa,EAAE,wBAAwB,CAAC;IACxC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,2BAA2B,EAAE,MAAM,CAAC;IACpC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACxB,eAAe,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,OAAO,EAAE,UAAU,CAAC;CACrB,CAAC;AAEF,wBAAgB,0BAA0B,IAAI,UAAU,CACtD,iBAAiB,EACjB,aAAa,CACd,CAaA"}
1
+ {"version":3,"file":"rebalanceData.d.ts","sourceRoot":"","sources":["../../../src/generated/types/rebalanceData.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,UAAU,EAOX,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EAEzB,MAAM,GAAG,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG;IAC1B,aAAa,EAAE,oBAAoB,CAAC;IACpC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACxB,2BAA2B,EAAE,MAAM,CAAC;IACpC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,UAAU,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,aAAa,EAAE,wBAAwB,CAAC;IACxC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACxB,2BAA2B,EAAE,MAAM,CAAC;IACpC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACxB,eAAe,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,OAAO,EAAE,UAAU,CAAC;CACrB,CAAC;AAEF,wBAAgB,0BAA0B,IAAI,UAAU,CACtD,iBAAiB,EACjB,aAAa,CACd,CAYA"}
@@ -14,9 +14,8 @@ function getRebalanceDataSerializer() {
14
14
  return (0, serializers_1.struct)([
15
15
  ['rebalanceType', (0, _1.getSolautoRebalanceTypeSerializer)()],
16
16
  ['padding1', (0, serializers_1.array)((0, serializers_1.u8)(), { size: 7 })],
17
- ['priceSlippageBps', (0, serializers_1.u16)()],
18
17
  ['targetLiqUtilizationRateBps', (0, serializers_1.u16)()],
19
- ['padding2', (0, serializers_1.array)((0, serializers_1.u8)(), { size: 4 })],
18
+ ['padding2', (0, serializers_1.array)((0, serializers_1.u8)(), { size: 6 })],
20
19
  ['flashLoanAmount', (0, serializers_1.u64)()],
21
20
  ['padding', (0, serializers_1.bytes)({ size: 32 })],
22
21
  ], { description: 'RebalanceData' });
@@ -1 +1 @@
1
- {"version":3,"file":"transactionUtils.d.ts","sourceRoot":"","sources":["../../src/transactions/transactionUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,EAClB,GAAG,EAGJ,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,SAAS,EAA8B,MAAM,iBAAiB,CAAC;AAKxE,OAAO,EAEL,aAAa,EAUd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAyNzD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,kBAAkB,EACtB,sBAAsB,EAAE,MAAM,EAAE,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CA+G7B;AAoLD,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,kBAAkB,GACrB,OAAO,CAAC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,CA0BnD;AAED,wBAAsB,gCAAgC,CACpD,MAAM,EAAE,aAAa,EACrB,2BAA2B,CAAC,EAAE,MAAM,EACpC,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CACN;IACE,EAAE,EAAE,kBAAkB,CAAC;IACvB,oBAAoB,EAAE,MAAM,EAAE,CAAC;CAChC,GACD,SAAS,CACZ,CAmIA;AAED,wBAAsB,gCAAgC,CACpD,GAAG,EAAE,GAAG,EACR,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,SAAS,GACtB,OAAO,CAAC,CAAC,kBAAkB,EAAE,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,CAmCrD"}
1
+ {"version":3,"file":"transactionUtils.d.ts","sourceRoot":"","sources":["../../src/transactions/transactionUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,EAClB,GAAG,EAGJ,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,SAAS,EAA8B,MAAM,iBAAiB,CAAC;AAKxE,OAAO,EAEL,aAAa,EAUd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAyNzD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,kBAAkB,EACtB,sBAAsB,EAAE,MAAM,EAAE,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CA+G7B;AAmLD,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,kBAAkB,GACrB,OAAO,CAAC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,CA0BnD;AAED,wBAAsB,gCAAgC,CACpD,MAAM,EAAE,aAAa,EACrB,2BAA2B,CAAC,EAAE,MAAM,EACpC,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CACN;IACE,EAAE,EAAE,kBAAkB,CAAC;IACvB,oBAAoB,EAAE,MAAM,EAAE,CAAC;CAChC,GACD,SAAS,CACZ,CA+HA;AAED,wBAAsB,gCAAgC,CACpD,GAAG,EAAE,GAAG,EACR,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,SAAS,GACtB,OAAO,CAAC,CAAC,kBAAkB,EAAE,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,CAmCrD"}
@@ -185,7 +185,6 @@ function getRebalanceInstructions(tx) {
185
185
  try {
186
186
  const serializer = (0, generated_1.getMarginfiRebalanceInstructionDataSerializer)();
187
187
  const discriminator = serializer.serialize({
188
- slippageBps: 0,
189
188
  limitGapBps: 0,
190
189
  targetInAmountBaseUnit: 0,
191
190
  rebalanceType: generated_1.SolautoRebalanceType.None,
@@ -350,11 +349,11 @@ async function buildSolautoRebalanceTransaction(client, targetLiqUtilizationRate
350
349
  client.flashBorrow(flashLoan, (0, accountUtils_1.getTokenAccount)((0, umi_web3js_adapters_1.toWeb3JsPublicKey)(client.signer.publicKey), swapDetails.inputMint)),
351
350
  ...(addFirstRebalance
352
351
  ? [
353
- client.rebalance("A", swapDetails, rebalanceType, priceImpactBps, flashLoan, targetLiqUtilizationRateBps),
352
+ client.rebalance("A", swapDetails, rebalanceType, flashLoan, targetLiqUtilizationRateBps),
354
353
  ]
355
354
  : []),
356
355
  swapIx,
357
- client.rebalance("B", swapDetails, rebalanceType, priceImpactBps, flashLoan, targetLiqUtilizationRateBps),
356
+ client.rebalance("B", swapDetails, rebalanceType, flashLoan, targetLiqUtilizationRateBps),
358
357
  client.flashRepay(flashLoan),
359
358
  ]);
360
359
  }
@@ -363,9 +362,9 @@ async function buildSolautoRebalanceTransaction(client, targetLiqUtilizationRate
363
362
  tx = tx.add([
364
363
  setupInstructions,
365
364
  tokenLedgerIx,
366
- client.rebalance("A", swapDetails, rebalanceType, priceImpactBps, undefined, targetLiqUtilizationRateBps),
365
+ client.rebalance("A", swapDetails, rebalanceType, undefined, targetLiqUtilizationRateBps),
367
366
  swapIx,
368
- client.rebalance("B", swapDetails, rebalanceType, priceImpactBps, undefined, targetLiqUtilizationRateBps),
367
+ client.rebalance("B", swapDetails, rebalanceType, undefined, targetLiqUtilizationRateBps),
369
368
  ]);
370
369
  }
371
370
  if (client.solautoPositionState.liqUtilizationRateBps >
@@ -388,7 +387,7 @@ async function convertReferralFeesToDestination(umi, referralState, tokenAccount
388
387
  inputMint: tokenAccountData.mint,
389
388
  outputMint: (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(referralState.destFeesMint),
390
389
  exactIn: true,
391
- slippageIncFactor: 0.15,
390
+ slippageIncFactor: 0.25,
392
391
  });
393
392
  let tx = (0, umi_1.transactionBuilder)()
394
393
  .add(setupInstructions)
@@ -31,7 +31,7 @@ async function getJupSwapTransaction(signer, swapDetails, attemptNum) {
31
31
  : swapDetails.exactIn
32
32
  ? "ExactIn"
33
33
  : undefined,
34
- slippageBps: 30,
34
+ slippageBps: 50,
35
35
  maxAccounts: !swapDetails.exactOut ? 60 : undefined,
36
36
  }), 3);
37
37
  const priceImpactBps = (Math.round((0, numberUtils_1.toBps)(parseFloat(quoteResponse.priceImpactPct))) + 1);
@@ -1 +1 @@
1
- {"version":3,"file":"solanaUtils.d.ts","sourceRoot":"","sources":["../../src/utils/solanaUtils.ts"],"names":[],"mappings":"AACA,OAAO,EACL,uBAAuB,EACvB,MAAM,EACN,kBAAkB,EAClB,GAAG,EACH,kBAAkB,EAGnB,MAAM,0BAA0B,CAAC;AAOlC,OAAO,EAGL,UAAU,EACV,SAAS,EAIT,sBAAsB,EAEvB,MAAM,iBAAiB,CAAC;AAYzB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAElE,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,UAErD;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,GACb,CAAC,UAAU,EAAE,GAAG,CAAC,CAInB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,sBAAsB,GACzB,kBAAkB,CAMpB;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,GACtB,kBAAkB,CAOpB;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,kBAAkB,CAOpB;AAED,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,SAAS,GACd,kBAAkB,CAUpB;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,SAAS,EACtB,QAAQ,EAAE,MAAM,GACf,kBAAkB,CASpB;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,SAAS,EACvB,SAAS,EAAE,SAAS,GACnB,kBAAkB,CAKpB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,SAAS,EACf,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,GACb,kBAAkB,CAKpB;AAED,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,GAAG,EACR,oBAAoB,EAAE,MAAM,EAAE,GAC7B,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAkBpC;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,kBAAkB,EACtB,gBAAgB,EAAE,MAAM,EACxB,gBAAgB,CAAC,EAAE,MAAM,sBA4D1B;AAmBD,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,kBAAkB,EACtB,eAAe,EAAE,kBAAkB,GAClC,OAAO,CAAC,MAAM,CAAC,CAgBjB;AAED,wBAAsB,8BAA8B,CAClD,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,kBAAkB,EACtB,MAAM,CAAC,EAAE,kBAAkB,EAC3B,UAAU,CAAC,EAAE,MAAM,EACnB,eAAe,GAAE,kBAA+C,EAChE,cAAc,CAAC,EAAE,MAAM,IAAI,GAC1B,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CA8DjC"}
1
+ {"version":3,"file":"solanaUtils.d.ts","sourceRoot":"","sources":["../../src/utils/solanaUtils.ts"],"names":[],"mappings":"AACA,OAAO,EACL,uBAAuB,EACvB,MAAM,EACN,kBAAkB,EAClB,GAAG,EACH,kBAAkB,EAGnB,MAAM,0BAA0B,CAAC;AAOlC,OAAO,EAGL,UAAU,EACV,SAAS,EAIT,sBAAsB,EAEvB,MAAM,iBAAiB,CAAC;AAYzB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAElE,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,UAErD;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,GACb,CAAC,UAAU,EAAE,GAAG,CAAC,CAInB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,sBAAsB,GACzB,kBAAkB,CAMpB;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,GACtB,kBAAkB,CAOpB;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,kBAAkB,CAOpB;AAED,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,SAAS,GACd,kBAAkB,CAUpB;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,SAAS,EACtB,QAAQ,EAAE,MAAM,GACf,kBAAkB,CASpB;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,SAAS,EACvB,SAAS,EAAE,SAAS,GACnB,kBAAkB,CAKpB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,SAAS,EACf,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,GACb,kBAAkB,CAKpB;AAED,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,GAAG,EACR,oBAAoB,EAAE,MAAM,EAAE,GAC7B,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAkBpC;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,kBAAkB,EACtB,gBAAgB,EAAE,MAAM,EACxB,gBAAgB,CAAC,EAAE,MAAM,sBA4D1B;AAmBD,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,kBAAkB,EACtB,eAAe,EAAE,kBAAkB,GAClC,OAAO,CAAC,MAAM,CAAC,CAgBjB;AAED,wBAAsB,8BAA8B,CAClD,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,kBAAkB,EACtB,MAAM,CAAC,EAAE,kBAAkB,EAC3B,UAAU,CAAC,EAAE,MAAM,EACnB,eAAe,GAAE,kBAA+C,EAChE,cAAc,CAAC,EAAE,MAAM,IAAI,GAC1B,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CA+DjC"}
@@ -154,15 +154,16 @@ async function sendSingleOptimizedTransaction(umi, connection, tx, txType, attem
154
154
  console.log("Serialized transaction size: ", tx.getTransactionSize(umi));
155
155
  const feeEstimate = await getComputeUnitPriceEstimate(umi, tx, prioritySetting);
156
156
  console.log("Compute unit price: ", feeEstimate);
157
+ let computeUnitLimit = undefined;
157
158
  if (txType !== "skip-simulation") {
158
159
  // TODO: we should only retry simulation if it's not a solauto error
159
160
  const simulationResult = await (0, generalUtils_1.retryWithExponentialBackoff)(async () => await simulateTransaction(connection, (0, umi_web3js_adapters_1.toWeb3JsTransaction)(await (await assembleFinalTransaction(umi.identity, tx, feeEstimate, 1400000).setLatestBlockhash(umi)).build(umi))), 3);
160
- const computeUnitLimit = Math.round(Math.min(1400000, simulationResult.value.unitsConsumed * 1.3));
161
+ computeUnitLimit = Math.round(simulationResult.value.unitsConsumed * 1.1);
161
162
  console.log("Compute unit limit: ", computeUnitLimit);
162
163
  }
163
164
  if (txType !== "only-simulate") {
164
165
  onAwaitingSign?.();
165
- const result = await assembleFinalTransaction(umi.identity, tx, feeEstimate, 800000).sendAndConfirm(umi, {
166
+ const result = await assembleFinalTransaction(umi.identity, tx, feeEstimate, computeUnitLimit).sendAndConfirm(umi, {
166
167
  send: {
167
168
  skipPreflight: true,
168
169
  commitment: "confirmed",
@@ -6,6 +6,7 @@ import { JupSwapDetails } from "../jupiterUtils";
6
6
  export interface RebalanceValues {
7
7
  increasingLeverage: boolean;
8
8
  debtAdjustmentUsd: number;
9
+ repayingCloseToMaxLtv: boolean;
9
10
  amountToDcaIn: number;
10
11
  amountUsdToDcaIn: number;
11
12
  dcaTokenType?: TokenType;
@@ -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,EACzB,SAAS,EACV,MAAM,iBAAiB,CAAC;AAOzB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AA8IjD,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,EACvB,cAAc,EAAE,MAAM,GACrB,gBAAgB,GAAG,SAAS,CAoE9B;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,2BAA2B,CAAC,EAAE,MAAM,EACpC,UAAU,CAAC,EAAE,MAAM,GAClB,cAAc,CAsChB"}
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;AA+IjD,MAAM,WAAW,eAAe;IAC9B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,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,CAmEjB;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,EACvB,cAAc,EAAE,MAAM,GACrB,gBAAgB,GAAG,SAAS,CAgE9B;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,2BAA2B,CAAC,EAAE,MAAM,EACpC,UAAU,CAAC,EAAE,MAAM,GAClB,cAAc,CA4ChB"}
@@ -106,9 +106,11 @@ function getRebalanceValues(state, settings, dca, currentUnixTime, supplyPrice,
106
106
  limitGap;
107
107
  debtAdjustmentUsd = maxUsageUsd - maxUsageUsd * limitGap;
108
108
  }
109
+ const maxRepayTo = (0, numberUtils_1.maxRepayToBps)(state.maxLtvBps, state.liqThresholdBps);
109
110
  return {
110
111
  increasingLeverage,
111
112
  debtAdjustmentUsd,
113
+ repayingCloseToMaxLtv: state.liqUtilizationRateBps > maxRepayTo && targetRateBps >= maxRepayTo,
112
114
  amountToDcaIn: amountToDcaIn ?? 0,
113
115
  amountUsdToDcaIn,
114
116
  dcaTokenType: dca?.tokenType,
@@ -142,15 +144,13 @@ function getFlashLoanDetails(client, values, jupQuote, priceImpactBps) {
142
144
  flashLoanToken = client.solautoPositionState.supply;
143
145
  flashLoanTokenPrice = (0, generalUtils_2.safeGetPrice)(client.supplyMint);
144
146
  }
145
- const exactAmountBaseUnit = jupQuote &&
146
- (jupQuote.swapMode === "ExactOut" || jupQuote.swapMode === "ExactIn")
147
+ const exactAmountBaseUnit = jupQuote.swapMode === "ExactOut" || jupQuote.swapMode === "ExactIn"
147
148
  ? BigInt(parseInt(jupQuote.inAmount))
148
149
  : undefined;
149
150
  return requiresFlashLoan
150
151
  ? {
151
152
  baseUnitAmount: exactAmountBaseUnit
152
- ? exactAmountBaseUnit +
153
- BigInt(Math.round(Number(exactAmountBaseUnit) * (0, numberUtils_1.fromBps)(priceImpactBps)))
153
+ ? exactAmountBaseUnit
154
154
  : (0, numberUtils_1.toBaseUnit)(debtAdjustmentWithSlippage / flashLoanTokenPrice, flashLoanToken.decimals),
155
155
  mint: (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(flashLoanToken.mint),
156
156
  }
@@ -165,11 +165,9 @@ function getJupSwapRebalanceDetails(client, values, targetLiqUtilizationRateBps,
165
165
  : client.solautoPositionState.debt;
166
166
  const usdToSwap = Math.abs(values.debtAdjustmentUsd) +
167
167
  (values.dcaTokenType === generated_1.TokenType.Debt ? values.amountUsdToDcaIn : 0);
168
- const inputPrice = values.increasingLeverage
169
- ? (0, generalUtils_2.safeGetPrice)(client.debtMint)
170
- : (0, generalUtils_2.safeGetPrice)(client.supplyMint);
171
- const inputAmount = (0, numberUtils_1.toBaseUnit)(usdToSwap / inputPrice, input.decimals);
172
- const exactOut = targetLiqUtilizationRateBps === 0;
168
+ const inputAmount = (0, numberUtils_1.toBaseUnit)(usdToSwap / (0, generalUtils_2.safeGetPrice)(input.mint), input.decimals);
169
+ const outputAmount = (0, numberUtils_1.toBaseUnit)(usdToSwap / (0, generalUtils_2.safeGetPrice)(output.mint), output.decimals);
170
+ const exactOut = values.repayingCloseToMaxLtv;
173
171
  const exactIn = !exactOut && targetLiqUtilizationRateBps !== undefined;
174
172
  return {
175
173
  inputMint: (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(input.mint),
@@ -177,10 +175,12 @@ function getJupSwapRebalanceDetails(client, values, targetLiqUtilizationRateBps,
177
175
  destinationWallet: client.solautoPosition,
178
176
  slippageIncFactor: 0.5 + (attemptNum ?? 0) * 0.2,
179
177
  amount: exactOut
180
- ? client.solautoPositionState.debt.amountUsed.baseUnit +
181
- BigInt(Math.round(Number(client.solautoPositionState.debt.amountUsed.baseUnit) *
182
- // Add this small percentage to account for the APR on the debt between now and the transaction
183
- 0.0001))
178
+ ? outputAmount +
179
+ (targetLiqUtilizationRateBps === 0
180
+ ? BigInt(Math.round(Number(client.solautoPositionState.debt.amountUsed.baseUnit) *
181
+ // Add this small percentage to account for the APR on the debt between now and the transaction
182
+ 0.0001))
183
+ : BigInt(0))
184
184
  : inputAmount,
185
185
  exactIn: exactIn,
186
186
  exactOut: exactOut,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haven-fi/solauto-sdk",
3
- "version": "1.0.161",
3
+ "version": "1.0.163",
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",
@@ -597,7 +597,6 @@ export abstract class SolautoClient extends TxHandler {
597
597
  rebalanceStep: "A" | "B",
598
598
  swapDetails: JupSwapDetails,
599
599
  rebalanceType: SolautoRebalanceTypeArgs,
600
- slippageBps: number,
601
600
  flashLoan?: FlashLoanDetails,
602
601
  targetLiqUtilizationRateBps?: number,
603
602
  limitGapBps?: number,
@@ -453,7 +453,6 @@ export class SolautoMarginfiClient extends SolautoClient {
453
453
  rebalanceStep: "A" | "B",
454
454
  swapDetails: JupSwapDetails,
455
455
  rebalanceType: SolautoRebalanceTypeArgs,
456
- slippageBps: number,
457
456
  flashLoan?: FlashLoanDetails,
458
457
  targetLiqUtilizationRateBps?: number,
459
458
  limitGapBps?: number
@@ -521,7 +520,6 @@ export class SolautoMarginfiClient extends SolautoClient {
521
520
  ? swapDetails.amount
522
521
  : null,
523
522
  limitGapBps: limitGapBps ?? null,
524
- slippageBps: slippageBps ?? 0,
525
523
  });
526
524
  }
527
525
 
@@ -68,7 +68,6 @@ export type MarginfiRebalanceInstructionAccounts = {
68
68
  // Data.
69
69
  export type MarginfiRebalanceInstructionData = {
70
70
  discriminator: number;
71
- slippageBps: number;
72
71
  rebalanceType: SolautoRebalanceType;
73
72
  targetLiqUtilizationRateBps: Option<number>;
74
73
  targetInAmountBaseUnit: Option<bigint>;
@@ -76,7 +75,6 @@ export type MarginfiRebalanceInstructionData = {
76
75
  };
77
76
 
78
77
  export type MarginfiRebalanceInstructionDataArgs = {
79
- slippageBps: number;
80
78
  rebalanceType: SolautoRebalanceTypeArgs;
81
79
  targetLiqUtilizationRateBps: OptionOrNullable<number>;
82
80
  targetInAmountBaseUnit: OptionOrNullable<number | bigint>;
@@ -95,7 +93,6 @@ export function getMarginfiRebalanceInstructionDataSerializer(): Serializer<
95
93
  struct<MarginfiRebalanceInstructionData>(
96
94
  [
97
95
  ['discriminator', u8()],
98
- ['slippageBps', u16()],
99
96
  ['rebalanceType', getSolautoRebalanceTypeSerializer()],
100
97
  ['targetLiqUtilizationRateBps', option(u16())],
101
98
  ['targetInAmountBaseUnit', option(u64())],
@@ -24,7 +24,6 @@ import {
24
24
  export type RebalanceData = {
25
25
  rebalanceType: SolautoRebalanceType;
26
26
  padding1: Array<number>;
27
- priceSlippageBps: number;
28
27
  targetLiqUtilizationRateBps: number;
29
28
  padding2: Array<number>;
30
29
  flashLoanAmount: bigint;
@@ -34,7 +33,6 @@ export type RebalanceData = {
34
33
  export type RebalanceDataArgs = {
35
34
  rebalanceType: SolautoRebalanceTypeArgs;
36
35
  padding1: Array<number>;
37
- priceSlippageBps: number;
38
36
  targetLiqUtilizationRateBps: number;
39
37
  padding2: Array<number>;
40
38
  flashLoanAmount: number | bigint;
@@ -49,9 +47,8 @@ export function getRebalanceDataSerializer(): Serializer<
49
47
  [
50
48
  ['rebalanceType', getSolautoRebalanceTypeSerializer()],
51
49
  ['padding1', array(u8(), { size: 7 })],
52
- ['priceSlippageBps', u16()],
53
50
  ['targetLiqUtilizationRateBps', u16()],
54
- ['padding2', array(u8(), { size: 4 })],
51
+ ['padding2', array(u8(), { size: 6 })],
55
52
  ['flashLoanAmount', u64()],
56
53
  ['padding', bytes({ size: 32 })],
57
54
  ],
@@ -390,7 +390,6 @@ function getRebalanceInstructions(tx: TransactionBuilder): Instruction[] {
390
390
  try {
391
391
  const serializer = getMarginfiRebalanceInstructionDataSerializer();
392
392
  const discriminator = serializer.serialize({
393
- slippageBps: 0,
394
393
  limitGapBps: 0,
395
394
  targetInAmountBaseUnit: 0,
396
395
  rebalanceType: SolautoRebalanceType.None,
@@ -651,7 +650,6 @@ export async function buildSolautoRebalanceTransaction(
651
650
  "A",
652
651
  swapDetails,
653
652
  rebalanceType,
654
- priceImpactBps,
655
653
  flashLoan,
656
654
  targetLiqUtilizationRateBps
657
655
  ),
@@ -662,7 +660,6 @@ export async function buildSolautoRebalanceTransaction(
662
660
  "B",
663
661
  swapDetails,
664
662
  rebalanceType,
665
- priceImpactBps,
666
663
  flashLoan,
667
664
  targetLiqUtilizationRateBps
668
665
  ),
@@ -677,7 +674,6 @@ export async function buildSolautoRebalanceTransaction(
677
674
  "A",
678
675
  swapDetails,
679
676
  rebalanceType,
680
- priceImpactBps,
681
677
  undefined,
682
678
  targetLiqUtilizationRateBps
683
679
  ),
@@ -686,7 +682,6 @@ export async function buildSolautoRebalanceTransaction(
686
682
  "B",
687
683
  swapDetails,
688
684
  rebalanceType,
689
- priceImpactBps,
690
685
  undefined,
691
686
  targetLiqUtilizationRateBps
692
687
  ),
@@ -727,7 +722,7 @@ export async function convertReferralFeesToDestination(
727
722
  inputMint: tokenAccountData.mint,
728
723
  outputMint: toWeb3JsPublicKey(referralState.destFeesMint),
729
724
  exactIn: true,
730
- slippageIncFactor: 0.15,
725
+ slippageIncFactor: 0.25,
731
726
  });
732
727
 
733
728
  let tx = transactionBuilder()
@@ -66,7 +66,7 @@ export async function getJupSwapTransaction(
66
66
  : swapDetails.exactIn
67
67
  ? "ExactIn"
68
68
  : undefined,
69
- slippageBps: 30,
69
+ slippageBps: 50,
70
70
  maxAccounts: !swapDetails.exactOut ? 60 : undefined,
71
71
  }),
72
72
  3
@@ -288,6 +288,7 @@ export async function sendSingleOptimizedTransaction(
288
288
  );
289
289
  console.log("Compute unit price: ", feeEstimate);
290
290
 
291
+ let computeUnitLimit = undefined;
291
292
  if (txType !== "skip-simulation") {
292
293
  // TODO: we should only retry simulation if it's not a solauto error
293
294
  const simulationResult = await retryWithExponentialBackoff(
@@ -308,8 +309,8 @@ export async function sendSingleOptimizedTransaction(
308
309
  3
309
310
  );
310
311
 
311
- const computeUnitLimit = Math.round(
312
- Math.min(1_400_000, simulationResult.value.unitsConsumed! * 1.3)
312
+ computeUnitLimit = Math.round(
313
+ simulationResult.value.unitsConsumed! * 1.1
313
314
  );
314
315
  console.log("Compute unit limit: ", computeUnitLimit);
315
316
  }
@@ -320,7 +321,7 @@ export async function sendSingleOptimizedTransaction(
320
321
  umi.identity,
321
322
  tx,
322
323
  feeEstimate,
323
- 800_000
324
+ computeUnitLimit
324
325
  ).sendAndConfirm(umi, {
325
326
  send: {
326
327
  skipPreflight: true,
@@ -23,6 +23,7 @@ import {
23
23
  getLiqUtilzationRateBps,
24
24
  getMaxLiqUtilizationRateBps,
25
25
  getSolautoFeesBps,
26
+ maxRepayToBps,
26
27
  toBaseUnit,
27
28
  } from "../numberUtils";
28
29
  import { USD_DECIMALS } from "../../constants/generalAccounts";
@@ -159,6 +160,7 @@ function getTargetRateAndDcaAmount(
159
160
  export interface RebalanceValues {
160
161
  increasingLeverage: boolean;
161
162
  debtAdjustmentUsd: number;
163
+ repayingCloseToMaxLtv: boolean;
162
164
  amountToDcaIn: number;
163
165
  amountUsdToDcaIn: number;
164
166
  dcaTokenType?: TokenType;
@@ -231,9 +233,11 @@ export function getRebalanceValues(
231
233
  debtAdjustmentUsd = maxUsageUsd - maxUsageUsd * limitGap;
232
234
  }
233
235
 
236
+ const maxRepayTo = maxRepayToBps(state.maxLtvBps, state.liqThresholdBps);
234
237
  return {
235
238
  increasingLeverage,
236
239
  debtAdjustmentUsd,
240
+ repayingCloseToMaxLtv: state.liqUtilizationRateBps > maxRepayTo && targetRateBps >= maxRepayTo,
237
241
  amountToDcaIn: amountToDcaIn ?? 0,
238
242
  amountUsdToDcaIn,
239
243
  dcaTokenType: dca?.tokenType,
@@ -299,18 +303,14 @@ export function getFlashLoanDetails(
299
303
  }
300
304
 
301
305
  const exactAmountBaseUnit =
302
- jupQuote &&
303
- (jupQuote.swapMode === "ExactOut" || jupQuote.swapMode === "ExactIn")
306
+ jupQuote.swapMode === "ExactOut" || jupQuote.swapMode === "ExactIn"
304
307
  ? BigInt(parseInt(jupQuote.inAmount))
305
308
  : undefined;
306
309
 
307
310
  return requiresFlashLoan
308
311
  ? {
309
312
  baseUnitAmount: exactAmountBaseUnit
310
- ? exactAmountBaseUnit +
311
- BigInt(
312
- Math.round(Number(exactAmountBaseUnit) * fromBps(priceImpactBps))
313
- )
313
+ ? exactAmountBaseUnit
314
314
  : toBaseUnit(
315
315
  debtAdjustmentWithSlippage / flashLoanTokenPrice,
316
316
  flashLoanToken.decimals
@@ -337,12 +337,16 @@ export function getJupSwapRebalanceDetails(
337
337
  Math.abs(values.debtAdjustmentUsd) +
338
338
  (values.dcaTokenType === TokenType.Debt ? values.amountUsdToDcaIn : 0);
339
339
 
340
- const inputPrice = values.increasingLeverage
341
- ? safeGetPrice(client.debtMint)
342
- : safeGetPrice(client.supplyMint);
343
- const inputAmount = toBaseUnit(usdToSwap / inputPrice!, input.decimals);
340
+ const inputAmount = toBaseUnit(
341
+ usdToSwap / safeGetPrice(input.mint)!,
342
+ input.decimals
343
+ );
344
+ const outputAmount = toBaseUnit(
345
+ usdToSwap / safeGetPrice(output.mint)!,
346
+ output.decimals
347
+ );
344
348
 
345
- const exactOut = targetLiqUtilizationRateBps === 0;
349
+ const exactOut = values.repayingCloseToMaxLtv;
346
350
  const exactIn = !exactOut && targetLiqUtilizationRateBps !== undefined;
347
351
 
348
352
  return {
@@ -351,14 +355,16 @@ export function getJupSwapRebalanceDetails(
351
355
  destinationWallet: client.solautoPosition,
352
356
  slippageIncFactor: 0.5 + (attemptNum ?? 0) * 0.2,
353
357
  amount: exactOut
354
- ? client.solautoPositionState!.debt.amountUsed.baseUnit +
355
- BigInt(
356
- Math.round(
357
- Number(client.solautoPositionState!.debt.amountUsed.baseUnit) *
358
- // Add this small percentage to account for the APR on the debt between now and the transaction
359
- 0.0001
360
- )
361
- )
358
+ ? outputAmount +
359
+ (targetLiqUtilizationRateBps === 0
360
+ ? BigInt(
361
+ Math.round(
362
+ Number(client.solautoPositionState!.debt.amountUsed.baseUnit) *
363
+ // Add this small percentage to account for the APR on the debt between now and the transaction
364
+ 0.0001
365
+ )
366
+ )
367
+ : BigInt(0))
362
368
  : inputAmount,
363
369
  exactIn: exactIn,
364
370
  exactOut: exactOut,
@@ -21,10 +21,10 @@ import { USDC_MINT } from "../../src/constants";
21
21
  import { buildHeliusApiUrl } from "../../src/utils";
22
22
 
23
23
  describe("Solauto Marginfi tests", async () => {
24
- // const signer = setupTest();
25
- const signer = setupTest("solauto-manager");
24
+ const signer = setupTest();
25
+ // const signer = setupTest("solauto-manager");
26
26
 
27
- const payForTransactions = false;
27
+ const payForTransactions = true;
28
28
  const useJitoBundle = false;
29
29
  const positionId = 1;
30
30
 
@@ -124,7 +124,7 @@ describe("Solauto Marginfi tests", async () => {
124
124
  transactionItems.push(
125
125
  new TransactionItem(
126
126
  async (attemptNum) =>
127
- await buildSolautoRebalanceTransaction(client, undefined, attemptNum),
127
+ await buildSolautoRebalanceTransaction(client, 7200, attemptNum),
128
128
  "rebalance"
129
129
  )
130
130
  );