@haven-fi/solauto-sdk 1.0.527 → 1.0.528

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,12 +1,11 @@
1
1
  import { TransactionBuilder, Umi } from "@metaplex-foundation/umi";
2
2
  import { PublicKey } from "@solana/web3.js";
3
3
  import { SolautoClient } from "../clients/solautoClient";
4
- import { RebalanceValues } from "../utils/solauto/rebalanceUtils";
5
4
  import { ReferralStateManager } from "../clients";
6
5
  import { TransactionItemInputs } from "../types";
7
6
  export declare function rebalanceChoresBefore(client: SolautoClient, tx: TransactionBuilder, accountsGettingCreated: string[]): Promise<TransactionBuilder>;
8
7
  export declare function getTransactionChores(client: SolautoClient, tx: TransactionBuilder): Promise<[TransactionBuilder, TransactionBuilder]>;
9
- export declare function requiresRefreshBeforeRebalance(client: SolautoClient, values: RebalanceValues): Promise<boolean>;
8
+ export declare function requiresRefreshBeforeRebalance(client: SolautoClient): Promise<boolean>;
10
9
  export declare function buildSolautoRebalanceTransaction(client: SolautoClient, targetLiqUtilizationRateBps?: number, attemptNum?: number): Promise<TransactionItemInputs | undefined>;
11
10
  export declare function convertReferralFeesToDestination(referralManager: ReferralStateManager, tokenAccount: PublicKey, destinationMint: PublicKey): Promise<TransactionItemInputs | undefined>;
12
11
  export declare function getErrorInfo(umi: Umi, txs: TransactionBuilder[], error: Error, simulationSuccessful?: boolean): {
@@ -1 +1 @@
1
- {"version":3,"file":"transactionUtils.d.ts","sourceRoot":"","sources":["../../src/transactions/transactionUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,kBAAkB,EAClB,GAAG,EAGJ,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,SAAS,EAA8B,MAAM,iBAAiB,CAAC;AAoBxE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAOzD,OAAO,EAKL,eAAe,EAChB,MAAM,iCAAiC,CAAC;AA0BzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAOlD,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AA6LjD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,kBAAkB,EACtB,sBAAsB,EAAE,MAAM,EAAE,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CAoH7B;AA2LD,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,kBAAkB,GACrB,OAAO,CAAC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,CA0BnD;AAED,wBAAsB,8BAA8B,CAClD,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,oBAsDxB;AAED,wBAAsB,gCAAgC,CACpD,MAAM,EAAE,aAAa,EACrB,2BAA2B,CAAC,EAAE,MAAM,EACpC,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CA0I5C;AAED,wBAAsB,gCAAgC,CACpD,eAAe,EAAE,oBAAoB,EACrC,YAAY,EAAE,SAAS,EACvB,eAAe,EAAE,SAAS,GACzB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAsC5C;AAED,wBAAgB,YAAY,CAC1B,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,kBAAkB,EAAE,EACzB,KAAK,EAAE,KAAK,EACZ,oBAAoB,CAAC,EAAE,OAAO;;;;EA0G/B"}
1
+ {"version":3,"file":"transactionUtils.d.ts","sourceRoot":"","sources":["../../src/transactions/transactionUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,kBAAkB,EAClB,GAAG,EAGJ,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,SAAS,EAA8B,MAAM,iBAAiB,CAAC;AAoBxE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAuCzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAOlD,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AA6LjD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,kBAAkB,EACtB,sBAAsB,EAAE,MAAM,EAAE,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CAoH7B;AA2LD,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,kBAAkB,GACrB,OAAO,CAAC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,CA0BnD;AAED,wBAAsB,8BAA8B,CAClD,MAAM,EAAE,aAAa,oBAsDtB;AAED,wBAAsB,gCAAgC,CACpD,MAAM,EAAE,aAAa,EACrB,2BAA2B,CAAC,EAAE,MAAM,EACpC,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAyI5C;AAED,wBAAsB,gCAAgC,CACpD,eAAe,EAAE,oBAAoB,EACrC,YAAY,EAAE,SAAS,EACvB,eAAe,EAAE,SAAS,GACzB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAsC5C;AAED,wBAAgB,YAAY,CAC1B,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,kBAAkB,EAAE,EACzB,KAAK,EAAE,KAAK,EACZ,oBAAoB,CAAC,EAAE,OAAO;;;;EA0G/B"}
@@ -329,7 +329,7 @@ async function getTransactionChores(client, tx) {
329
329
  choresAfter = choresAfter.add(transactionChoresAfter(client, solautoActions, client.livePositionUpdates.cancellingDca));
330
330
  return [choresBefore, choresAfter];
331
331
  }
332
- async function requiresRefreshBeforeRebalance(client, values) {
332
+ async function requiresRefreshBeforeRebalance(client) {
333
333
  const neverRefreshedBefore = client.solautoPositionData &&
334
334
  client.solautoPositionData.state.supply.amountCanBeUsed.baseUnit ===
335
335
  BigInt(0) &&
@@ -380,8 +380,7 @@ async function buildSolautoRebalanceTransaction(client, targetLiqUtilizationRate
380
380
  ? (0, rebalanceUtils_1.getFlashLoanDetails)(client, flRequirements, values, jupQuote)
381
381
  : undefined;
382
382
  let tx = (0, umi_1.transactionBuilder)();
383
- // REVERT ME
384
- if (await requiresRefreshBeforeRebalance(client, values)) {
383
+ if (await requiresRefreshBeforeRebalance(client)) {
385
384
  tx = tx.add(client.refresh());
386
385
  }
387
386
  if (flashLoan) {
@@ -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,kBAAkB,EAClB,yBAAyB,EACzB,SAAS,EACV,MAAM,iBAAiB,CAAC;AAOzB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAe,cAAc,EAAgB,MAAM,iBAAiB,CAAC;AAc5E,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAqI9C,MAAM,WAAW,eAAe;IAC9B,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;IACzB,eAAe,EAAE,eAAe,CAAC;IACjC,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB;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,GACnC,eAAe,CA4EjB;AAWD,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAkG5C;AAED,MAAM,WAAW,gBAAiB,SAAQ,qBAAqB;IAC7D,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EACrB,cAAc,EAAE,qBAAqB,EACrC,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,aAAa,GACtB,gBAAgB,GAAG,SAAS,CA2B9B;AAED,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,cAAc,CAAC,EAAE,qBAAqB,EACtC,2BAA2B,CAAC,EAAE,MAAM,EACpC,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,cAAc,CAAC,CAqEzB"}
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,kBAAkB,EAClB,yBAAyB,EACzB,SAAS,EACV,MAAM,iBAAiB,CAAC;AAOzB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAe,cAAc,EAAgB,MAAM,iBAAiB,CAAC;AAc5E,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAqI9C,MAAM,WAAW,eAAe;IAC9B,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;IACzB,eAAe,EAAE,eAAe,CAAC;IACjC,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB;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,GACnC,eAAe,CA4EjB;AAWD,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAoG5C;AAED,MAAM,WAAW,gBAAiB,SAAQ,qBAAqB;IAC7D,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EACrB,cAAc,EAAE,qBAAqB,EACrC,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,aAAa,GACtB,gBAAgB,GAAG,SAAS,CA2B9B;AAED,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,cAAc,CAAC,EAAE,qBAAqB,EACtC,2BAA2B,CAAC,EAAE,MAAM,EACpC,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,cAAc,CAAC,CAqEzB"}
@@ -86,7 +86,7 @@ function getTargetRateAndDcaAmount(state, settings, dca, currentUnixTime, target
86
86
  }
87
87
  function getRebalanceValues(state, settings, dca, currentUnixTime, supplyPrice, debtPrice, targetLiqUtilizationRateBps) {
88
88
  let { targetRateBps, amountToDcaIn } = getTargetRateAndDcaAmount(state, settings, dca, currentUnixTime, targetLiqUtilizationRateBps);
89
- // REVERT ME AND GET TO THE ROOT OF THIS ISSUE
89
+ // TODO: REVERT ME AND GET TO THE ROOT OF THIS ISSUE
90
90
  const supplyMint = (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(state.supply.mint);
91
91
  if (constants_1.BROKEN_TOKENS.includes(supplyMint.toString()) &&
92
92
  ((0, umi_web3js_adapters_1.toWeb3JsPublicKey)(state.debt.mint).equals(new web3_js_1.PublicKey(constants_1.USDC)) ||
@@ -146,16 +146,17 @@ async function getFlashLoanRequirements(client, values, attemptNum) {
146
146
  const requiresFlashLoan = supplyUsd <= 0 || tempLiqUtilizationRateBps > maxLiqUtilizationRateBps;
147
147
  const supplyPrice = (0, priceUtils_1.safeGetPrice)(client.supplyMint) ?? 0;
148
148
  const debtPrice = (0, priceUtils_1.safeGetPrice)(client.debtMint) ?? 0;
149
- const insufficientSupplyLiquidity = insufficientLiquidity(values.debtAdjustmentUsd, client.supplyLiquidityAvailable(), (0, generalUtils_2.tokenInfo)(client.supplyMint).decimals, supplyPrice);
150
- const insufficientDebtLiquidity = insufficientLiquidity(values.debtAdjustmentUsd, client.debtLiquidityAvailable(), (0, generalUtils_2.tokenInfo)(client.debtMint).decimals, debtPrice);
149
+ const debtAdjustmentUsd = Math.abs(values.debtAdjustmentUsd);
150
+ const insufficientSupplyLiquidity = insufficientLiquidity(debtAdjustmentUsd, client.supplyLiquidityAvailable(), (0, generalUtils_2.tokenInfo)(client.supplyMint).decimals, supplyPrice);
151
+ const insufficientDebtLiquidity = insufficientLiquidity(debtAdjustmentUsd, client.debtLiquidityAvailable(), (0, generalUtils_2.tokenInfo)(client.debtMint).decimals, debtPrice);
151
152
  let useDebtLiquidity = values.rebalanceDirection === generated_1.RebalanceDirection.Boost ||
152
153
  insufficientSupplyLiquidity;
153
154
  let signerFlashLoan = false;
154
155
  if ((attemptNum ?? 0) > 3 ||
155
156
  (insufficientSupplyLiquidity && insufficientDebtLiquidity)) {
156
157
  const { supplyBalance, debtBalance } = await client.signerBalances();
157
- const sufficientSignerSupplyLiquidity = !insufficientLiquidity(values.debtAdjustmentUsd, supplyBalance, (0, generalUtils_2.tokenInfo)(client.supplyMint).decimals, supplyPrice);
158
- const sufficientSignerDebtLiquidity = !insufficientLiquidity(values.debtAdjustmentUsd, debtBalance, (0, generalUtils_2.tokenInfo)(client.debtMint).decimals, debtPrice);
158
+ const sufficientSignerSupplyLiquidity = !insufficientLiquidity(debtAdjustmentUsd, supplyBalance, (0, generalUtils_2.tokenInfo)(client.supplyMint).decimals, supplyPrice);
159
+ const sufficientSignerDebtLiquidity = !insufficientLiquidity(debtAdjustmentUsd, debtBalance, (0, generalUtils_2.tokenInfo)(client.debtMint).decimals, debtPrice);
159
160
  signerFlashLoan =
160
161
  sufficientSignerSupplyLiquidity || sufficientSignerDebtLiquidity;
161
162
  if (signerFlashLoan) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haven-fi/solauto-sdk",
3
- "version": "1.0.527",
3
+ "version": "1.0.528",
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",
@@ -603,7 +603,6 @@ export async function getTransactionChores(
603
603
 
604
604
  export async function requiresRefreshBeforeRebalance(
605
605
  client: SolautoClient,
606
- values: RebalanceValues
607
606
  ) {
608
607
  const neverRefreshedBefore =
609
608
  client.solautoPositionData &&
@@ -718,8 +717,7 @@ export async function buildSolautoRebalanceTransaction(
718
717
 
719
718
  let tx = transactionBuilder();
720
719
 
721
- // REVERT ME
722
- if (await requiresRefreshBeforeRebalance(client, values)) {
720
+ if (await requiresRefreshBeforeRebalance(client)) {
723
721
  tx = tx.add(client.refresh());
724
722
  }
725
723
 
@@ -191,7 +191,7 @@ export function getRebalanceValues(
191
191
  targetLiqUtilizationRateBps
192
192
  );
193
193
 
194
- // REVERT ME AND GET TO THE ROOT OF THIS ISSUE
194
+ // TODO: REVERT ME AND GET TO THE ROOT OF THIS ISSUE
195
195
  const supplyMint = toWeb3JsPublicKey(state.supply.mint);
196
196
  if (
197
197
  BROKEN_TOKENS.includes(supplyMint.toString()) &&
@@ -315,14 +315,16 @@ export async function getFlashLoanRequirements(
315
315
 
316
316
  const supplyPrice = safeGetPrice(client.supplyMint) ?? 0;
317
317
  const debtPrice = safeGetPrice(client.debtMint) ?? 0;
318
+ const debtAdjustmentUsd = Math.abs(values.debtAdjustmentUsd);
319
+
318
320
  const insufficientSupplyLiquidity = insufficientLiquidity(
319
- values.debtAdjustmentUsd,
321
+ debtAdjustmentUsd,
320
322
  client.supplyLiquidityAvailable(),
321
323
  tokenInfo(client.supplyMint).decimals,
322
324
  supplyPrice
323
325
  );
324
326
  const insufficientDebtLiquidity = insufficientLiquidity(
325
- values.debtAdjustmentUsd,
327
+ debtAdjustmentUsd,
326
328
  client.debtLiquidityAvailable(),
327
329
  tokenInfo(client.debtMint).decimals,
328
330
  debtPrice
@@ -339,13 +341,13 @@ export async function getFlashLoanRequirements(
339
341
  ) {
340
342
  const { supplyBalance, debtBalance } = await client.signerBalances();
341
343
  const sufficientSignerSupplyLiquidity = !insufficientLiquidity(
342
- values.debtAdjustmentUsd,
344
+ debtAdjustmentUsd,
343
345
  supplyBalance,
344
346
  tokenInfo(client.supplyMint).decimals,
345
347
  supplyPrice
346
348
  );
347
349
  const sufficientSignerDebtLiquidity = !insufficientLiquidity(
348
- values.debtAdjustmentUsd,
350
+ debtAdjustmentUsd,
349
351
  debtBalance,
350
352
  tokenInfo(client.debtMint).decimals,
351
353
  debtPrice
@@ -50,7 +50,7 @@ describe("Solauto Marginfi tests", async () => {
50
50
 
51
51
  const payForTransactions = true;
52
52
  const testProgram = false;
53
- const positionId = 2;
53
+ const positionId = 1;
54
54
 
55
55
  it("open - deposit - borrow - rebalance to 0 - withdraw - close", async () => {
56
56
  const client = new SolautoMarginfiClient(
@@ -66,7 +66,7 @@ describe("Solauto Marginfi tests", async () => {
66
66
  await client.initialize({
67
67
  signer,
68
68
  positionId,
69
- authority: new PublicKey("7yk7HcAJfwNao3NSbYiPNtJvCPTxsgkzuJmyMLyP297E"),
69
+ authority: new PublicKey("7F6v4HWZsyFP6yVFq92HQWygUgoYm5khUX8pXWGLoqUN"),
70
70
  // new: true,
71
71
  // marginfiAccount: new PublicKey(
72
72
  // ""
@@ -76,17 +76,9 @@ describe("Solauto Marginfi tests", async () => {
76
76
  // debtMint: new PublicKey(USDC),
77
77
  });
78
78
 
79
- // console.log(
80
- // JSON.stringify(
81
- // await getQnComputeUnitPriceEstimate(
82
- // client.umi,
83
- // new PublicKey(JUPITER_PROGRAM_ID)
84
- // ),
85
- // null,
86
- // 2
87
- // )
88
- // );
89
- // return;
79
+ await client.getFreshPositionState();
80
+ console.log(fromBaseUnit(client.supplyLiquidityAvailable(), tokenInfo(client.supplyMint).decimals));
81
+ console.log(fromBaseUnit(client.debtLiquidityAvailable(), tokenInfo(client.debtMint).decimals));
90
82
 
91
83
  const transactionItems: TransactionItem[] = [];
92
84
  // const settingParams: SolautoSettingsParametersInpArgs = {