@haven-fi/solauto-sdk 1.0.46 → 1.0.47

Sign up to get free protection for your applications and to get access to all the features.
@@ -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) {
@@ -159,26 +159,9 @@ async function sendSingleOptimizedTransaction(umi, connection, tx, simulateOnly,
159
159
  console.log("Serialized transaction size: ", tx.getTransactionSize(umi));
160
160
  const feeEstimate = await getComputeUnitPriceEstimate(umi, tx, attemptNum);
161
161
  console.log("Compute unit price: ", feeEstimate);
162
- // const simulationResult = await retryWithExponentialBackoff(
163
- // async () =>
164
- // await simulateTransaction(
165
- // connection,
166
- // toWeb3JsTransaction(
167
- // await (
168
- // await assembleFinalTransaction(
169
- // umi.identity,
170
- // tx,
171
- // feeEstimate,
172
- // 1_400_000
173
- // ).setLatestBlockhash(umi)
174
- // ).build(umi)
175
- // )
176
- // )
177
- // );
178
- // const computeUnitLimit = Math.round(
179
- // simulationResult.value.unitsConsumed! * 1.1
180
- // );
181
- // console.log("Compute unit limit: ", computeUnitLimit);
162
+ 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))));
163
+ const computeUnitLimit = Math.round(simulationResult.value.unitsConsumed * 1.1);
164
+ console.log("Compute unit limit: ", computeUnitLimit);
182
165
  if (!simulateOnly) {
183
166
  const result = await assembleFinalTransaction(umi.identity, tx, feeEstimate, 800000).sendAndConfirm(umi, {
184
167
  send: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haven-fi/solauto-sdk",
3
- "version": "1.0.46",
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",
@@ -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) {
@@ -288,27 +288,27 @@ export async function sendSingleOptimizedTransaction(
288
288
  const feeEstimate = await getComputeUnitPriceEstimate(umi, tx, attemptNum);
289
289
  console.log("Compute unit price: ", feeEstimate);
290
290
 
291
- // const simulationResult = await retryWithExponentialBackoff(
292
- // async () =>
293
- // await simulateTransaction(
294
- // connection,
295
- // toWeb3JsTransaction(
296
- // await (
297
- // await assembleFinalTransaction(
298
- // umi.identity,
299
- // tx,
300
- // feeEstimate,
301
- // 1_400_000
302
- // ).setLatestBlockhash(umi)
303
- // ).build(umi)
304
- // )
305
- // )
306
- // );
291
+ const simulationResult = await retryWithExponentialBackoff(
292
+ async () =>
293
+ await simulateTransaction(
294
+ connection,
295
+ toWeb3JsTransaction(
296
+ await (
297
+ await assembleFinalTransaction(
298
+ umi.identity,
299
+ tx,
300
+ feeEstimate,
301
+ 1_400_000
302
+ ).setLatestBlockhash(umi)
303
+ ).build(umi)
304
+ )
305
+ )
306
+ );
307
307
 
308
- // const computeUnitLimit = Math.round(
309
- // simulationResult.value.unitsConsumed! * 1.1
310
- // );
311
- // console.log("Compute unit limit: ", computeUnitLimit);
308
+ const computeUnitLimit = Math.round(
309
+ simulationResult.value.unitsConsumed! * 1.1
310
+ );
311
+ console.log("Compute unit limit: ", computeUnitLimit);
312
312
 
313
313
  if (!simulateOnly) {
314
314
  const result = await assembleFinalTransaction(
@@ -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 {
@@ -81,6 +81,7 @@ describe("Solauto Marginfi tests", async () => {
81
81
  // );
82
82
  // }
83
83
 
84
+ // const maxLiqRate = getMaxLiqUtilizationRate(client.solautoPositionState!.maxLtvBps, client.solautoPositionState!.liqThresholdBps);
84
85
  // transactionItems.push(
85
86
  // new TransactionItem(
86
87
  // async () => ({