@haven-fi/solauto-sdk 1.0.342 → 1.0.343

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":"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":"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"}
@@ -25,7 +25,6 @@ const umi_web3js_adapters_1 = require("@metaplex-foundation/umi-web3js-adapters"
25
25
  const constants_1 = require("../../constants");
26
26
  const marginfiUtils_1 = require("../marginfiUtils");
27
27
  const priceUtils_1 = require("../priceUtils");
28
- const rebalanceUtils_1 = require("./rebalanceUtils");
29
28
  function createDynamicSolautoProgram(programId) {
30
29
  return {
31
30
  name: "solauto",
@@ -92,17 +91,27 @@ function eligibleForRebalance(positionState, positionSettings, positionDca, curr
92
91
  const repayFrom = positionSettings.repayToBps + positionSettings.repayGap;
93
92
  const boostFrom = boostToBps - positionSettings.boostGap;
94
93
  if (positionState.liqUtilizationRateBps - boostFrom <= bpsDistanceThreshold) {
95
- if (positionState.liqUtilizationRateBps < boostFrom) {
96
- const values = (0, rebalanceUtils_1.getRebalanceValues)(positionState, positionSettings, positionDca, (0, generalUtils_1.currentUnixSeconds)(), supplyMintPrice, debtMintPrice);
97
- const sufficientLiquidity = (0, numberUtils_1.fromBaseUnit)(positionState.debt.amountCanBeUsed.baseAmountUsdValue, constants_1.USD_DECIMALS) *
98
- 0.95 >
99
- values.debtAdjustmentUsd;
100
- console.log((0, numberUtils_1.fromBaseUnit)(positionState.debt.amountCanBeUsed.baseAmountUsdValue, constants_1.USD_DECIMALS), values.debtAdjustmentUsd);
101
- if (!sufficientLiquidity) {
102
- (0, generalUtils_1.consoleLog)("Insufficient debt liquidity to further boost");
103
- }
104
- return sufficientLiquidity ? "boost" : undefined;
105
- }
94
+ // if (positionState.liqUtilizationRateBps < boostFrom) {
95
+ // const values = getRebalanceValues(
96
+ // positionState!,
97
+ // positionSettings,
98
+ // positionDca,
99
+ // currentUnixSeconds(),
100
+ // supplyMintPrice,
101
+ // debtMintPrice
102
+ // );
103
+ // const sufficientLiquidity =
104
+ // fromBaseUnit(
105
+ // positionState.debt.amountCanBeUsed.baseAmountUsdValue,
106
+ // USD_DECIMALS
107
+ // ) *
108
+ // 0.95 >
109
+ // values.debtAdjustmentUsd;
110
+ // if (!sufficientLiquidity) {
111
+ // consoleLog("Insufficient debt liquidity to further boost");
112
+ // }
113
+ // return sufficientLiquidity ? "boost" : undefined;
114
+ // }
106
115
  return "boost";
107
116
  }
108
117
  else if (repayFrom - positionState.liqUtilizationRateBps <=
@@ -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,EAAE,MAAM,iBAAiB,CAAC;AAajD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAmI9C,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;CACjB;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,CAwDjB;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,GACtB,gBAAgB,GAAG,SAAS,CA8D9B;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,2BAA2B,CAAC,EAAE,MAAM,EACpC,UAAU,CAAC,EAAE,MAAM,GAClB,cAAc,CA2ChB"}
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,EAAE,MAAM,iBAAiB,CAAC;AAajD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAmI9C,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;CACjB;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,CAwDjB;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,GACtB,gBAAgB,GAAG,SAAS,CAuE9B;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,2BAA2B,CAAC,EAAE,MAAM,EACpC,UAAU,CAAC,EAAE,MAAM,GAClB,cAAc,CA2ChB"}
@@ -122,9 +122,10 @@ function getFlashLoanDetails(client, values, jupQuote) {
122
122
  ? debtUsd + debtAdjustmentUsdAbs
123
123
  : debtUsd;
124
124
  const tempLiqUtilizationRateBps = (0, numberUtils_1.getLiqUtilzationRateBps)(supplyUsd, debtUsd, client.solautoPositionState.liqThresholdBps);
125
- const requiresFlashLoan = supplyUsd <= 0 ||
126
- tempLiqUtilizationRateBps >
127
- (0, numberUtils_1.getMaxLiqUtilizationRateBps)(client.solautoPositionState.maxLtvBps, client.solautoPositionState.liqThresholdBps, 0.015);
125
+ const maxLiqUtilizationRateBps = (0, numberUtils_1.getMaxLiqUtilizationRateBps)(client.solautoPositionState.maxLtvBps, client.solautoPositionState.liqThresholdBps, 0.015);
126
+ const requiresFlashLoan = supplyUsd <= 0 || tempLiqUtilizationRateBps > maxLiqUtilizationRateBps;
127
+ (0, generalUtils_2.consoleLog)("Requires flash loan:", requiresFlashLoan);
128
+ (0, generalUtils_2.consoleLog)("Intermediary liq utilization rate:", tempLiqUtilizationRateBps, `$${supplyUsd}`, `$${debtUsd}`, "Max:", maxLiqUtilizationRateBps);
128
129
  let flashLoanToken = undefined;
129
130
  let flashLoanTokenPrice = 0;
130
131
  if (values.rebalanceDirection === generated_1.RebalanceDirection.Boost) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haven-fi/solauto-sdk",
3
- "version": "1.0.342",
3
+ "version": "1.0.343",
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",
@@ -167,34 +167,27 @@ export function eligibleForRebalance(
167
167
  const boostFrom = boostToBps - positionSettings.boostGap;
168
168
 
169
169
  if (positionState.liqUtilizationRateBps - boostFrom <= bpsDistanceThreshold) {
170
- if (positionState.liqUtilizationRateBps < boostFrom) {
171
- const values = getRebalanceValues(
172
- positionState!,
173
- positionSettings,
174
- positionDca,
175
- currentUnixSeconds(),
176
- supplyMintPrice,
177
- debtMintPrice
178
- );
179
- const sufficientLiquidity =
180
- fromBaseUnit(
181
- positionState.debt.amountCanBeUsed.baseAmountUsdValue,
182
- USD_DECIMALS
183
- ) *
184
- 0.95 >
185
- values.debtAdjustmentUsd;
186
- console.log(
187
- fromBaseUnit(
188
- positionState.debt.amountCanBeUsed.baseAmountUsdValue,
189
- USD_DECIMALS
190
- ),
191
- values.debtAdjustmentUsd
192
- );
193
- if (!sufficientLiquidity) {
194
- consoleLog("Insufficient debt liquidity to further boost");
195
- }
196
- return sufficientLiquidity ? "boost" : undefined;
197
- }
170
+ // if (positionState.liqUtilizationRateBps < boostFrom) {
171
+ // const values = getRebalanceValues(
172
+ // positionState!,
173
+ // positionSettings,
174
+ // positionDca,
175
+ // currentUnixSeconds(),
176
+ // supplyMintPrice,
177
+ // debtMintPrice
178
+ // );
179
+ // const sufficientLiquidity =
180
+ // fromBaseUnit(
181
+ // positionState.debt.amountCanBeUsed.baseAmountUsdValue,
182
+ // USD_DECIMALS
183
+ // ) *
184
+ // 0.95 >
185
+ // values.debtAdjustmentUsd;
186
+ // if (!sufficientLiquidity) {
187
+ // consoleLog("Insufficient debt liquidity to further boost");
188
+ // }
189
+ // return sufficientLiquidity ? "boost" : undefined;
190
+ // }
198
191
 
199
192
  return "boost";
200
193
  } else if (
@@ -16,7 +16,7 @@ import {
16
16
  import { toWeb3JsPublicKey } from "@metaplex-foundation/umi-web3js-adapters";
17
17
  import { QuoteResponse } from "@jup-ag/api";
18
18
  import { JupSwapDetails } from "../jupiterUtils";
19
- import { currentUnixSeconds } from "../generalUtils";
19
+ import { consoleLog, currentUnixSeconds } from "../generalUtils";
20
20
  import {
21
21
  fromBaseUnit,
22
22
  fromBps,
@@ -272,14 +272,23 @@ export function getFlashLoanDetails(
272
272
  debtUsd,
273
273
  client.solautoPositionState!.liqThresholdBps
274
274
  );
275
+ const maxLiqUtilizationRateBps = getMaxLiqUtilizationRateBps(
276
+ client.solautoPositionState!.maxLtvBps,
277
+ client.solautoPositionState!.liqThresholdBps,
278
+ 0.015
279
+ );
275
280
  const requiresFlashLoan =
276
- supplyUsd <= 0 ||
277
- tempLiqUtilizationRateBps >
278
- getMaxLiqUtilizationRateBps(
279
- client.solautoPositionState!.maxLtvBps,
280
- client.solautoPositionState!.liqThresholdBps,
281
- 0.015
282
- );
281
+ supplyUsd <= 0 || tempLiqUtilizationRateBps > maxLiqUtilizationRateBps;
282
+
283
+ consoleLog("Requires flash loan:", requiresFlashLoan);
284
+ consoleLog(
285
+ "Intermediary liq utilization rate:",
286
+ tempLiqUtilizationRateBps,
287
+ `$${supplyUsd}`,
288
+ `$${debtUsd}`,
289
+ "Max:",
290
+ maxLiqUtilizationRateBps
291
+ );
283
292
 
284
293
  let flashLoanToken: PositionTokenUsage | undefined = undefined;
285
294
  let flashLoanTokenPrice = 0;
@@ -26,15 +26,18 @@ import {
26
26
  SOLAUTO_TEST_PROGRAM,
27
27
  USDC,
28
28
  } from "../../src/constants";
29
- import { buildHeliusApiUrl } from "../../src/utils";
29
+ import {
30
+ buildHeliusApiUrl,
31
+ positionStateWithLatestPrices,
32
+ } from "../../src/utils";
30
33
  import { PriorityFeeSetting } from "../../src/types";
31
34
 
32
35
  describe("Solauto Marginfi tests", async () => {
33
- const signer = setupTest();
34
- // const signer = setupTest("solauto-manager");
36
+ // const signer = setupTest();
37
+ const signer = setupTest("solauto-manager");
35
38
 
36
- const payForTransactions = false;
37
- const testProgram = true;
39
+ const payForTransactions = true;
40
+ const testProgram = false;
38
41
  const positionId = 1;
39
42
 
40
43
  it("open - deposit - borrow - rebalance to 0 - withdraw - close", async () => {
@@ -51,7 +54,7 @@ describe("Solauto Marginfi tests", async () => {
51
54
  await client.initialize({
52
55
  signer,
53
56
  positionId,
54
- authority: new PublicKey("rC5dMP5dmSsfQ66rynzfFzuc122Eex9h1RJHVDkeH6D"),
57
+ authority: new PublicKey("5UqsR2PGzbP8pGPbXEeXx86Gjz2N2UFBAuFZUSVydAEe"),
55
58
  // new: true,
56
59
  // marginfiAccount: new PublicKey(
57
60
  // "4nNvUXF5YqHFcH2nGweSiuvy1ct7V5FXfoCLKFYUN36z"
@@ -61,6 +64,13 @@ describe("Solauto Marginfi tests", async () => {
61
64
  // debtMint: new PublicKey(USDC),
62
65
  });
63
66
 
67
+ const data = client.solautoPositionData;
68
+ console.log(data);
69
+ console.log(data?.state.supply.amountCanBeUsed);
70
+ console.log(data?.state.debt.amountCanBeUsed);
71
+
72
+ console.log(await positionStateWithLatestPrices(data!.state));
73
+
64
74
  const transactionItems: TransactionItem[] = [];
65
75
  // const settingParams: SolautoSettingsParametersInpArgs = {
66
76
  // boostToBps: maxBoostToBps(
@@ -119,13 +129,13 @@ describe("Solauto Marginfi tests", async () => {
119
129
  // )
120
130
  // );
121
131
 
122
- transactionItems.push(
123
- new TransactionItem(
124
- async (attemptNum) =>
125
- await buildSolautoRebalanceTransaction(client, undefined, attemptNum),
126
- "rebalance"
127
- )
128
- );
132
+ // transactionItems.push(
133
+ // new TransactionItem(
134
+ // async (attemptNum) =>
135
+ // await buildSolautoRebalanceTransaction(client, undefined, attemptNum),
136
+ // "rebalance"
137
+ // )
138
+ // );
129
139
 
130
140
  // transactionItems.push(
131
141
  // new TransactionItem(
@@ -155,14 +165,14 @@ describe("Solauto Marginfi tests", async () => {
155
165
  // )
156
166
  // );
157
167
 
158
- const statuses = await new TransactionsManager(
159
- client,
160
- undefined,
161
- !payForTransactions ? "only-simulate" : "normal",
162
- PriorityFeeSetting.Low,
163
- true
164
- ).clientSend(transactionItems);
168
+ // const statuses = await new TransactionsManager(
169
+ // client,
170
+ // undefined,
171
+ // !payForTransactions ? "only-simulate" : "normal",
172
+ // PriorityFeeSetting.Low,
173
+ // true
174
+ // ).clientSend(transactionItems);
165
175
 
166
- console.log(statuses);
176
+ // console.log(statuses);
167
177
  });
168
178
  });