@haven-fi/solauto-sdk 1.0.45 → 1.0.47

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.
@@ -1 +1 @@
1
- {"version":3,"file":"transactionUtils.d.ts","sourceRoot":"","sources":["../../src/transactions/transactionUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,kBAAkB,EAClB,GAAG,EAGJ,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAGL,OAAO,IAAI,eAAe,EAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEL,aAAa,EASd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAqMzD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,kBAAkB,EACtB,sBAAsB,EAAE,MAAM,EAAE,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CAgH7B;AAkLD,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,kBAAkB,GACrB,OAAO,CAAC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,CA4BnD;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,CAgHA;AAED,wBAAsB,gCAAgC,CACpD,GAAG,EAAE,GAAG,EACR,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,eAAe,GAC5B,OAAO,CAAC,CAAC,kBAAkB,EAAE,MAAM,EAAE,CAAC,CAAC,CA8BzC"}
1
+ {"version":3,"file":"transactionUtils.d.ts","sourceRoot":"","sources":["../../src/transactions/transactionUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,kBAAkB,EAClB,GAAG,EAGJ,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAGL,OAAO,IAAI,eAAe,EAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEL,aAAa,EASd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAqMzD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,kBAAkB,EACtB,sBAAsB,EAAE,MAAM,EAAE,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CA8G7B;AAkLD,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,kBAAkB,GACrB,OAAO,CAAC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,CA4BnD;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,CAgHA;AAED,wBAAsB,gCAAgC,CACpD,GAAG,EAAE,GAAG,EACR,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,eAAe,GAC5B,OAAO,CAAC,CAAC,kBAAkB,EAAE,MAAM,EAAE,CAAC,CAAC,CA8BzC"}
@@ -120,8 +120,8 @@ async function rebalanceChoresBefore(client, tx, accountsGettingCreated) {
120
120
  const checkSolautoFeesTa = usesAccount(client.solautoFeesSupplyTa);
121
121
  const checkIntermediaryMfiAccount = client.lendingPlatform === generated_1.LendingPlatform.Marginfi &&
122
122
  usesAccount(client.intermediaryMarginfiAccountPk);
123
- const checkSignerSupplyTa = client.selfManaged && usesAccount(client.signerSupplyTa);
124
- const checkSignerDebtTa = client.selfManaged && usesAccount(client.signerSupplyTa);
123
+ const checkSignerSupplyTa = usesAccount(client.signerSupplyTa);
124
+ const checkSignerDebtTa = usesAccount(client.signerDebtTa);
125
125
  const accountsNeeded = [
126
126
  ...[checkReferralSupplyTa ? client.referredBySupplyTa : web3_js_1.PublicKey.default],
127
127
  ...[checkSolautoFeesTa ? client.solautoFeesSupplyTa : web3_js_1.PublicKey.default],
@@ -62,7 +62,7 @@ function getDebtAdjustmentUsd(liqThresholdBps, supplyUsd, debtUsd, targetLiqUtil
62
62
  }
63
63
  exports.getDebtAdjustmentUsd = getDebtAdjustmentUsd;
64
64
  function getMaxLiqUtilizationRate(maxLtvBps, liqThresholdBps) {
65
- return toBps((fromBps(maxLtvBps) - 0.01) / fromBps(liqThresholdBps)) - 1;
65
+ return toBps((fromBps(maxLtvBps) - 0.02) / fromBps(liqThresholdBps)) - 1; // -1 to account for any rounding issues
66
66
  }
67
67
  exports.getMaxLiqUtilizationRate = getMaxLiqUtilizationRate;
68
68
  function maxRepayFrom(maxLtvBps, liqThresholdBps) {
@@ -163,7 +163,7 @@ async function sendSingleOptimizedTransaction(umi, connection, tx, simulateOnly,
163
163
  const computeUnitLimit = Math.round(simulationResult.value.unitsConsumed * 1.1);
164
164
  console.log("Compute unit limit: ", computeUnitLimit);
165
165
  if (!simulateOnly) {
166
- const result = await assembleFinalTransaction(umi.identity, tx, feeEstimate, computeUnitLimit).sendAndConfirm(umi, {
166
+ const result = await assembleFinalTransaction(umi.identity, tx, feeEstimate, 800000).sendAndConfirm(umi, {
167
167
  send: {
168
168
  skipPreflight: true,
169
169
  commitment: "finalized",
@@ -187,7 +187,7 @@ function getJupSwapRebalanceDetails(client, values, targetLiqUtilizationRateBps,
187
187
  outputMint: (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(output.mint),
188
188
  destinationWallet: client.solautoPosition,
189
189
  // slippageBpsIncFactor: (!values.increasingLeverage ? 0.1 : 0) + ((attemptNum ?? 0) * 0.15),
190
- slippageBpsIncFactor: (attemptNum ?? 0) * 0.15,
190
+ slippageBpsIncFactor: (attemptNum ?? 0) * 0.2,
191
191
  amount: rebalancingToZero
192
192
  ? client.solautoPositionState.debt.amountUsed.baseUnit +
193
193
  BigInt(Math.round(Number(client.solautoPositionState.debt.amountUsed.baseUnit) *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haven-fi/solauto-sdk",
3
- "version": "1.0.45",
3
+ "version": "1.0.47",
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",
@@ -245,10 +245,8 @@ export async function rebalanceChoresBefore(
245
245
  usesAccount(
246
246
  (client as SolautoMarginfiClient).intermediaryMarginfiAccountPk
247
247
  );
248
- const checkSignerSupplyTa =
249
- client.selfManaged && usesAccount(client.signerSupplyTa);
250
- const checkSignerDebtTa =
251
- client.selfManaged && usesAccount(client.signerSupplyTa);
248
+ const checkSignerSupplyTa = usesAccount(client.signerSupplyTa);
249
+ const checkSignerDebtTa = usesAccount(client.signerDebtTa);
252
250
 
253
251
  const accountsNeeded = [
254
252
  ...[checkReferralSupplyTa ? client.referredBySupplyTa : PublicKey.default],
@@ -81,7 +81,7 @@ export function getMaxLiqUtilizationRate(
81
81
  maxLtvBps: number,
82
82
  liqThresholdBps: number
83
83
  ): number {
84
- return toBps((fromBps(maxLtvBps) - 0.01) / fromBps(liqThresholdBps)) - 1;
84
+ return toBps((fromBps(maxLtvBps) - 0.02) / fromBps(liqThresholdBps)) - 1; // -1 to account for any rounding issues
85
85
  }
86
86
 
87
87
  export function maxRepayFrom(maxLtvBps: number, liqThresholdBps: number) {
@@ -315,7 +315,7 @@ export async function sendSingleOptimizedTransaction(
315
315
  umi.identity,
316
316
  tx,
317
317
  feeEstimate,
318
- computeUnitLimit
318
+ 800_000
319
319
  ).sendAndConfirm(umi, {
320
320
  send: {
321
321
  skipPreflight: true,
@@ -343,7 +343,7 @@ export function getJupSwapRebalanceDetails(
343
343
  outputMint: toWeb3JsPublicKey(output.mint),
344
344
  destinationWallet: client.solautoPosition,
345
345
  // slippageBpsIncFactor: (!values.increasingLeverage ? 0.1 : 0) + ((attemptNum ?? 0) * 0.15),
346
- slippageBpsIncFactor: (attemptNum ?? 0) * 0.15,
346
+ slippageBpsIncFactor: (attemptNum ?? 0) * 0.2,
347
347
  amount: rebalancingToZero
348
348
  ? client.solautoPositionState!.debt.amountUsed.baseUnit +
349
349
  BigInt(
@@ -9,7 +9,7 @@ import {
9
9
  SolautoSettingsParametersInpArgs,
10
10
  } from "../../src/generated";
11
11
  import { buildSolautoRebalanceTransaction } from "../../src/transactions/transactionUtils";
12
- import { toBaseUnit } from "../../src/utils/numberUtils";
12
+ import { getMaxLiqUtilizationRate, toBaseUnit } from "../../src/utils/numberUtils";
13
13
  import { NATIVE_MINT } from "@solana/spl-token";
14
14
  import { getTokenPrices } from "../../src/utils/generalUtils";
15
15
  import {
@@ -21,10 +21,11 @@ import { USDC_MINT } from "../../src/constants";
21
21
 
22
22
  describe("Solauto Marginfi tests", async () => {
23
23
  const signer = setupTest();
24
+ // const signer = setupTest("solauto-manager");
24
25
 
25
26
  const payForTransactions = false;
26
27
  const useJitoBundle = false;
27
- const positionId = 0;
28
+ const positionId = 1;
28
29
 
29
30
  it("open - deposit - borrow - rebalance to 0 - withdraw - close", async () => {
30
31
  const client = new SolautoMarginfiClient(process.env.HELIUS_API_KEY!, true);
@@ -37,11 +38,12 @@ describe("Solauto Marginfi tests", async () => {
37
38
  {
38
39
  signer,
39
40
  positionId,
40
- marginfiAccount: new PublicKey(
41
- "4nNvUXF5YqHFcH2nGweSiuvy1ct7V5FXfoCLKFYUN36z"
42
- ),
43
- supplyMint: NATIVE_MINT,
44
- debtMint: new PublicKey(USDC_MINT),
41
+ authority: new PublicKey("AprYCPiVeKMCgjQ2ZufwChMzvQ5kFjJo2ekTLSkXsQDm")
42
+ // marginfiAccount: new PublicKey(
43
+ // "4nNvUXF5YqHFcH2nGweSiuvy1ct7V5FXfoCLKFYUN36z"
44
+ // ),
45
+ // supplyMint: NATIVE_MINT,
46
+ // debtMint: new PublicKey(USDC_MINT),
45
47
  }
46
48
  );
47
49
 
@@ -79,6 +81,7 @@ describe("Solauto Marginfi tests", async () => {
79
81
  // );
80
82
  // }
81
83
 
84
+ // const maxLiqRate = getMaxLiqUtilizationRate(client.solautoPositionState!.maxLtvBps, client.solautoPositionState!.liqThresholdBps);
82
85
  // transactionItems.push(
83
86
  // new TransactionItem(
84
87
  // async () => ({
@@ -115,7 +118,7 @@ describe("Solauto Marginfi tests", async () => {
115
118
  transactionItems.push(
116
119
  new TransactionItem(
117
120
  async (attemptNum) =>
118
- await buildSolautoRebalanceTransaction(client, 5500, attemptNum),
121
+ await buildSolautoRebalanceTransaction(client, undefined, attemptNum),
119
122
  "rebalance"
120
123
  )
121
124
  );