@haven-fi/solauto-sdk 1.0.703 → 1.0.705

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":"rebalanceSwapManager.d.ts","sourceRoot":"","sources":["../../../src/services/rebalance/rebalanceSwapManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAkB,UAAU,EAAa,MAAM,SAAS,CAAC;AAChE,OAAO,EAA0B,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAiC,MAAM,iBAAiB,CAAC;AAY3E,qBAAa,oBAAoB;IAS7B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,cAAc,CAAC;IACvB,OAAO,CAAC,2BAA2B,CAAC;IACpC,OAAO,CAAC,SAAS,CAAC;IAZb,UAAU,EAAG,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,aAAa,CAAU;gBAGrB,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,cAAc,CAAC,EAAE,qBAAqB,YAAA,EACtC,2BAA2B,CAAC,EAAE,MAAM,YAAA,EACpC,SAAS,CAAC,EAAE,SAAS,YAAA;IAU/B,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,WAAW;IAyCnB,OAAO,CAAC,kCAAkC;YA+C5B,mBAAmB;IA2CjC,OAAO,CAAC,mBAAmB;IAIrB,aAAa,CAAC,UAAU,EAAE,MAAM;IAyEhC,aAAa;;;;;;CAWpB"}
1
+ {"version":3,"file":"rebalanceSwapManager.d.ts","sourceRoot":"","sources":["../../../src/services/rebalance/rebalanceSwapManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAkB,UAAU,EAAa,MAAM,SAAS,CAAC;AAChE,OAAO,EAA0B,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAiC,MAAM,iBAAiB,CAAC;AAc3E,qBAAa,oBAAoB;IAS7B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,cAAc,CAAC;IACvB,OAAO,CAAC,2BAA2B,CAAC;IACpC,OAAO,CAAC,SAAS,CAAC;IAZb,UAAU,EAAG,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,aAAa,CAAU;gBAGrB,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,cAAc,CAAC,EAAE,qBAAqB,YAAA,EACtC,2BAA2B,CAAC,EAAE,MAAM,YAAA,EACpC,SAAS,CAAC,EAAE,SAAS,YAAA;IAU/B,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,WAAW;IA4CnB,OAAO,CAAC,kCAAkC;YAiF5B,mBAAmB;IAyCjC,OAAO,CAAC,mBAAmB;IAIrB,aAAa,CAAC,UAAU,EAAE,MAAM;IAyEhC,aAAa;;;;;;CAWpB"}
@@ -38,6 +38,8 @@ class RebalanceSwapManager {
38
38
  const biasedOutputPrice = this.isBoost() ? supplyPrice : debtPrice;
39
39
  // const biasedInputPrice = inputPrice;
40
40
  // const biasedOutputPrice = outputPrice;
41
+ // const priceDiff = (biasedInputPrice - inputPrice) / 2;
42
+ // const weightedInputPrice = inputPrice + priceDiff;
41
43
  let inputAmount = (0, utils_1.toBaseUnit)(this.usdToSwap() / biasedInputPrice, input.decimals);
42
44
  return {
43
45
  inputAmount,
@@ -49,26 +51,38 @@ class RebalanceSwapManager {
49
51
  biasedOutputPrice,
50
52
  };
51
53
  }
52
- postRebalanceLiqUtilizationRateBps(swapOutputAmount, swapInputAmount) {
54
+ postRebalanceLiqUtilizationRateBps(swapOutputAmountBaseUnit, swapInputAmountBaseUnit) {
53
55
  let supplyUsd = this.client.pos.supplyUsd(this.priceType);
54
56
  let debtUsd = this.client.pos.debtUsd(this.priceType);
55
57
  // TODO: add token balance change
56
- const { input, biasedInputPrice, output, biasedOutputPrice } = this.swapDetails();
58
+ const { input, inputPrice, biasedInputPrice, output, outputPrice, biasedOutputPrice, } = this.swapDetails();
59
+ const swapInputAmount = swapInputAmountBaseUnit
60
+ ? (0, utils_1.fromBaseUnit)(swapInputAmountBaseUnit, (0, utils_1.tokenInfo)((0, umi_web3js_adapters_1.toWeb3JsPublicKey)(input.mint)).decimals)
61
+ : undefined;
62
+ const swapOutputAmount = swapOutputAmountBaseUnit
63
+ ? (0, utils_1.fromBaseUnit)(swapOutputAmountBaseUnit, (0, utils_1.tokenInfo)((0, umi_web3js_adapters_1.toWeb3JsPublicKey)(output.mint)).decimals)
64
+ : undefined;
57
65
  const swapInputUsd = swapInputAmount
58
- ? (0, utils_1.fromBaseUnit)(swapInputAmount, (0, utils_1.tokenInfo)((0, umi_web3js_adapters_1.toWeb3JsPublicKey)(input.mint)).decimals) * biasedInputPrice
66
+ ? swapInputAmount * biasedInputPrice
59
67
  : this.usdToSwap();
60
68
  const swapOutputUsd = swapOutputAmount
61
- ? (0, utils_1.fromBaseUnit)(swapOutputAmount, (0, utils_1.tokenInfo)((0, umi_web3js_adapters_1.toWeb3JsPublicKey)(output.mint)).decimals) * biasedOutputPrice
69
+ ? swapOutputAmount * biasedOutputPrice
62
70
  : this.usdToSwap();
63
- console.log(swapInputUsd, swapOutputUsd);
71
+ console.log((swapInputAmount ?? 0) * inputPrice, swapInputUsd, (swapOutputAmount ?? 0) * outputPrice, swapOutputUsd);
64
72
  const res = (0, rebalanceValues_1.applyDebtAdjustmentUsd)({
65
73
  debtAdjustmentUsd: this.isBoost() ? swapInputUsd : swapInputUsd * -1,
66
- debtAdjustmentUsdOutput: swapOutputUsd,
74
+ debtAdjustmentUsdOutput: this.isBoost() ? swapOutputUsd : swapOutputUsd * -1,
67
75
  }, { supplyUsd, debtUsd }, (0, utils_1.fromBps)(this.client.pos.state.liqThresholdBps), {
68
76
  solauto: this.solautoFeeBps,
69
77
  flashLoan: this.flRequirements?.flFeeBps ?? 0,
70
78
  lpBorrow: this.client.pos.state.debt.borrowFeeBps,
71
79
  });
80
+ if ((0, utils_1.isMarginfiPosition)(this.client.pos)) {
81
+ console.log(res.newPos.supplyUsd, res.newPos.debtUsd);
82
+ console.log(res.newPos.supplyUsd *
83
+ (0, utils_1.bytesToI80F48)(this.client.pos.supplyBank.config.assetWeightInit.value), res.newPos.debtUsd *
84
+ (0, utils_1.bytesToI80F48)(this.client.pos.debtBank.config.liabilityWeightInit.value));
85
+ }
72
86
  return (0, utils_1.getLiqUtilzationRateBps)(res.newPos.supplyUsd, res.newPos.debtUsd, this.client.pos.state.liqThresholdBps ?? 0);
73
87
  }
74
88
  async findSufficientQuote(swapInput, criteria) {
@@ -79,15 +93,14 @@ class RebalanceSwapManager {
79
93
  swapQuote = await this.jupSwapManager.getQuote(swapInput);
80
94
  const outputAmount = parseInt(swapQuote.outAmount);
81
95
  const postRebalanceRate = this.postRebalanceLiqUtilizationRateBps(BigInt(outputAmount), BigInt(parseInt(swapQuote.inAmount)));
82
- insufficient = criteria.minOutputAmount
83
- ? outputAmount < Number(criteria.minOutputAmount)
84
- : criteria.minLiqUtilizationRateBps
85
- ? postRebalanceRate < criteria.minLiqUtilizationRateBps
86
- : postRebalanceRate > criteria.maxLiqUtilizationRateBps;
96
+ const exceedsMinOutput = criteria.minOutputAmount
97
+ ? outputAmount < Number(criteria.minOutputAmount) : false;
98
+ const exceedsMaxRate = criteria.maxLiqUtilizationRateBps ? postRebalanceRate > criteria.maxLiqUtilizationRateBps : false;
99
+ insufficient = exceedsMinOutput || exceedsMaxRate;
87
100
  (0, utils_1.consoleLog)(postRebalanceRate, criteria.maxLiqUtilizationRateBps);
88
101
  if (insufficient) {
89
102
  (0, utils_1.consoleLog)("Insufficient swap quote:", swapQuote);
90
- const increment = 0.01 + i * 0.001;
103
+ const increment = 0.01 + i * 0.01;
91
104
  swapInput.amount = this.bigIntWithIncrement(swapInput.amount, this.isBoost() ? increment * -1 : increment);
92
105
  }
93
106
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"rebalanceValues.d.ts","sourceRoot":"","sources":["../../../src/services/rebalance/rebalanceValues.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAEnB,MAAM,iBAAiB,CAAC;AAOzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,cAAc,CAAC;IAC1B,iCAAiC,EAAE,MAAM,CAAC;CAC3C;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,yBAAyB;IACjC,MAAM,EAAE,cAAc,CAAC;IACvB,iCAAiC,EAAE,MAAM,CAAC;CAC3C;AAED,wBAAgB,sBAAsB,CACpC,UAAU,EAAE;IAAE,iBAAiB,EAAE,MAAM,CAAC;IAAC,uBAAuB,CAAC,EAAE,MAAM,CAAA;CAAE,EAC3E,GAAG,EAAE,cAAc,EACnB,YAAY,EAAE,MAAM,EACpB,IAAI,CAAC,EAAE,gBAAgB,GACtB,yBAAyB,CAmC3B;AAED,wBAAgB,iBAAiB,CAC/B,eAAe,EAAE,MAAM,EACvB,GAAG,EAAE,cAAc,EACnB,2BAA2B,EAAE,MAAM,EACnC,IAAI,CAAC,EAAE,gBAAgB,GACtB,cAAc,CAgChB;AA2ED,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAED,wBAAgB,kBAAkB,CAChC,eAAe,EAAE,iBAAiB,EAClC,SAAS,EAAE,SAAS,EACpB,2BAA2B,CAAC,EAAE,MAAM,EACpC,aAAa,CAAC,EAAE,cAAc,EAC9B,QAAQ,CAAC,EAAE,MAAM,GAChB,eAAe,GAAG,SAAS,CA8C7B"}
1
+ {"version":3,"file":"rebalanceValues.d.ts","sourceRoot":"","sources":["../../../src/services/rebalance/rebalanceValues.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAEnB,MAAM,iBAAiB,CAAC;AAOzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,cAAc,CAAC;IAC1B,iCAAiC,EAAE,MAAM,CAAC;CAC3C;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,yBAAyB;IACjC,MAAM,EAAE,cAAc,CAAC;IACvB,iCAAiC,EAAE,MAAM,CAAC;CAC3C;AAED,wBAAgB,sBAAsB,CACpC,UAAU,EAAE;IAAE,iBAAiB,EAAE,MAAM,CAAC;IAAC,uBAAuB,CAAC,EAAE,MAAM,CAAA;CAAE,EAC3E,GAAG,EAAE,cAAc,EACnB,YAAY,EAAE,MAAM,EACpB,IAAI,CAAC,EAAE,gBAAgB,GACtB,yBAAyB,CAmC3B;AAED,wBAAgB,iBAAiB,CAC/B,eAAe,EAAE,MAAM,EACvB,GAAG,EAAE,cAAc,EACnB,2BAA2B,EAAE,MAAM,EACnC,IAAI,CAAC,EAAE,gBAAgB,GACtB,cAAc,CAiChB;AA2ED,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAED,wBAAgB,kBAAkB,CAChC,eAAe,EAAE,iBAAiB,EAClC,SAAS,EAAE,SAAS,EACpB,2BAA2B,CAAC,EAAE,MAAM,EACpC,aAAa,CAAC,EAAE,cAAc,EAC9B,QAAQ,CAAC,EAAE,MAAM,GAChB,eAAe,GAAG,SAAS,CA8C7B"}
@@ -44,11 +44,12 @@ function getDebtAdjustment(liqThresholdBps, pos, targetLiqUtilizationRateBps, fe
44
44
  targetUtilizationRate * actualizedFee * liqThreshold)
45
45
  : (targetUtilizationRate * liqThreshold * pos.supplyUsd - pos.debtUsd) /
46
46
  (actualizedFee - targetUtilizationRate * liqThreshold * (1.0 + flFee));
47
- const newPos = applyDebtAdjustmentUsd({ debtAdjustmentUsd }, pos, liqThreshold, fees);
47
+ const endResult = applyDebtAdjustmentUsd({ debtAdjustmentUsd }, pos, liqThreshold, fees);
48
+ console.log(debtAdjustmentUsd, pos, endResult.newPos);
48
49
  return {
49
50
  debtAdjustmentUsd,
50
- endResult: newPos.newPos,
51
- intermediaryLiqUtilizationRateBps: newPos.intermediaryLiqUtilizationRateBps,
51
+ endResult: endResult.newPos,
52
+ intermediaryLiqUtilizationRateBps: endResult.intermediaryLiqUtilizationRateBps,
52
53
  };
53
54
  }
54
55
  function getTokenBalanceChange() {
@@ -25,7 +25,7 @@ class JupSwapManager {
25
25
  : undefined,
26
26
  slippageBps,
27
27
  maxAccounts: !data.exactOut ? (memeSwap ? 25 : 15) + attemptNum * 5 : undefined,
28
- }), 4, 150);
28
+ }), 6, 250);
29
29
  }
30
30
  async getJupInstructions(data) {
31
31
  if (!this.jupQuote) {
@@ -67,7 +67,15 @@ export async function main() {
67
67
  // debtMint: new PublicKey(RETARDIO),
68
68
  });
69
69
 
70
- await client.pos.refreshPositionState();
70
+ // await client.pos.refreshPositionState();
71
+
72
+ console.log(
73
+ getMaxLiqUtilizationRateBps(
74
+ client.pos.state.maxLtvBps,
75
+ client.pos.state.liqThresholdBps,
76
+ 0
77
+ )
78
+ );
71
79
 
72
80
  // const transactionItems = [
73
81
  // openSolautoPosition(client, {
@@ -84,7 +92,7 @@ export async function main() {
84
92
  // repayGap: 100,
85
93
  // repayToBps: client.pos.maxRepayToBps,
86
94
  // }),
87
- deposit(client, toBaseUnit(50, client.pos.supplyMintInfo.decimals)),
95
+ deposit(client, toBaseUnit(5, client.pos.supplyMintInfo.decimals)),
88
96
  rebalance(client, client.pos.maxBoostToBps),
89
97
  // withdraw(client, "All"),
90
98
  // closeSolautoPosition(client)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haven-fi/solauto-sdk",
3
- "version": "1.0.703",
3
+ "version": "1.0.705",
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",
@@ -6,10 +6,12 @@ import { JupSwapManager, SwapParams, SwapInput } from "../swap";
6
6
  import { applyDebtAdjustmentUsd, RebalanceValues } from "./rebalanceValues";
7
7
  import { PriceType, RebalanceDirection, TokenType } from "../../generated";
8
8
  import {
9
+ bytesToI80F48,
9
10
  consoleLog,
10
11
  fromBaseUnit,
11
12
  fromBps,
12
13
  getLiqUtilzationRateBps,
14
+ isMarginfiPosition,
13
15
  safeGetPrice,
14
16
  toBaseUnit,
15
17
  tokenInfo,
@@ -72,6 +74,9 @@ export class RebalanceSwapManager {
72
74
  // const biasedInputPrice = inputPrice;
73
75
  // const biasedOutputPrice = outputPrice;
74
76
 
77
+ // const priceDiff = (biasedInputPrice - inputPrice) / 2;
78
+ // const weightedInputPrice = inputPrice + priceDiff;
79
+
75
80
  let inputAmount = toBaseUnit(
76
81
  this.usdToSwap() / biasedInputPrice!,
77
82
  input.decimals
@@ -89,35 +94,55 @@ export class RebalanceSwapManager {
89
94
  }
90
95
 
91
96
  private postRebalanceLiqUtilizationRateBps(
92
- swapOutputAmount?: bigint,
93
- swapInputAmount?: bigint
97
+ swapOutputAmountBaseUnit?: bigint,
98
+ swapInputAmountBaseUnit?: bigint
94
99
  ) {
95
100
  let supplyUsd = this.client.pos.supplyUsd(this.priceType);
96
101
  let debtUsd = this.client.pos.debtUsd(this.priceType);
97
102
  // TODO: add token balance change
98
103
 
99
- const { input, biasedInputPrice, output, biasedOutputPrice } =
100
- this.swapDetails();
104
+ const {
105
+ input,
106
+ inputPrice,
107
+ biasedInputPrice,
108
+ output,
109
+ outputPrice,
110
+ biasedOutputPrice,
111
+ } = this.swapDetails();
101
112
 
102
- const swapInputUsd = swapInputAmount
113
+ const swapInputAmount = swapInputAmountBaseUnit
103
114
  ? fromBaseUnit(
104
- swapInputAmount,
115
+ swapInputAmountBaseUnit,
105
116
  tokenInfo(toWeb3JsPublicKey(input.mint)).decimals
106
- ) * biasedInputPrice
107
- : this.usdToSwap();
117
+ )
118
+ : undefined;
108
119
 
109
- const swapOutputUsd = swapOutputAmount
120
+ const swapOutputAmount = swapOutputAmountBaseUnit
110
121
  ? fromBaseUnit(
111
- swapOutputAmount,
122
+ swapOutputAmountBaseUnit,
112
123
  tokenInfo(toWeb3JsPublicKey(output.mint)).decimals
113
- ) * biasedOutputPrice
124
+ )
125
+ : undefined;
126
+
127
+ const swapInputUsd = swapInputAmount
128
+ ? swapInputAmount * biasedInputPrice
129
+ : this.usdToSwap();
130
+
131
+ const swapOutputUsd = swapOutputAmount
132
+ ? swapOutputAmount * biasedOutputPrice
114
133
  : this.usdToSwap();
115
134
 
116
- console.log(swapInputUsd, swapOutputUsd);
135
+ console.log(
136
+ (swapInputAmount ?? 0) * inputPrice,
137
+ swapInputUsd,
138
+ (swapOutputAmount ?? 0) * outputPrice,
139
+ swapOutputUsd
140
+ );
141
+
117
142
  const res = applyDebtAdjustmentUsd(
118
143
  {
119
144
  debtAdjustmentUsd: this.isBoost() ? swapInputUsd : swapInputUsd * -1,
120
- debtAdjustmentUsdOutput: swapOutputUsd,
145
+ debtAdjustmentUsdOutput: this.isBoost() ? swapOutputUsd : swapOutputUsd * -1,
121
146
  },
122
147
  { supplyUsd, debtUsd },
123
148
  fromBps(this.client.pos.state.liqThresholdBps),
@@ -128,6 +153,20 @@ export class RebalanceSwapManager {
128
153
  }
129
154
  );
130
155
 
156
+ if (isMarginfiPosition(this.client.pos)) {
157
+ console.log(res.newPos.supplyUsd, res.newPos.debtUsd);
158
+ console.log(
159
+ res.newPos.supplyUsd *
160
+ bytesToI80F48(
161
+ this.client.pos.supplyBank!.config.assetWeightInit.value
162
+ ),
163
+ res.newPos.debtUsd *
164
+ bytesToI80F48(
165
+ this.client.pos.debtBank!.config.liabilityWeightInit.value
166
+ )
167
+ );
168
+ }
169
+
131
170
  return getLiqUtilzationRateBps(
132
171
  res.newPos.supplyUsd,
133
172
  res.newPos.debtUsd,
@@ -139,7 +178,6 @@ export class RebalanceSwapManager {
139
178
  swapInput: SwapInput,
140
179
  criteria: {
141
180
  minOutputAmount?: bigint;
142
- minLiqUtilizationRateBps?: number;
143
181
  maxLiqUtilizationRateBps?: number;
144
182
  }
145
183
  ): Promise<QuoteResponse> {
@@ -155,17 +193,16 @@ export class RebalanceSwapManager {
155
193
  BigInt(outputAmount),
156
194
  BigInt(parseInt(swapQuote.inAmount))
157
195
  );
158
- insufficient = criteria.minOutputAmount
159
- ? outputAmount < Number(criteria.minOutputAmount)
160
- : criteria.minLiqUtilizationRateBps
161
- ? postRebalanceRate < criteria.minLiqUtilizationRateBps
162
- : postRebalanceRate > criteria.maxLiqUtilizationRateBps!;
196
+ const exceedsMinOutput = criteria.minOutputAmount
197
+ ? outputAmount < Number(criteria.minOutputAmount) : false;
198
+ const exceedsMaxRate = criteria.maxLiqUtilizationRateBps ? postRebalanceRate > criteria.maxLiqUtilizationRateBps : false;
199
+ insufficient = exceedsMinOutput || exceedsMaxRate;
163
200
 
164
201
  consoleLog(postRebalanceRate, criteria.maxLiqUtilizationRateBps);
165
202
  if (insufficient) {
166
203
  consoleLog("Insufficient swap quote:", swapQuote);
167
204
 
168
- const increment = 0.01 + i * 0.001;
205
+ const increment = 0.01 + i * 0.01;
169
206
  swapInput.amount = this.bigIntWithIncrement(
170
207
  swapInput.amount,
171
208
  this.isBoost() ? increment * -1 : increment
@@ -104,17 +104,18 @@ export function getDebtAdjustment(
104
104
  : (targetUtilizationRate * liqThreshold * pos.supplyUsd - pos.debtUsd) /
105
105
  (actualizedFee - targetUtilizationRate * liqThreshold * (1.0 + flFee));
106
106
 
107
- const newPos = applyDebtAdjustmentUsd(
107
+ const endResult = applyDebtAdjustmentUsd(
108
108
  { debtAdjustmentUsd },
109
109
  pos,
110
110
  liqThreshold,
111
111
  fees
112
112
  );
113
+ console.log(debtAdjustmentUsd, pos, endResult.newPos);
113
114
 
114
115
  return {
115
116
  debtAdjustmentUsd,
116
- endResult: newPos.newPos,
117
- intermediaryLiqUtilizationRateBps: newPos.intermediaryLiqUtilizationRateBps,
117
+ endResult: endResult.newPos,
118
+ intermediaryLiqUtilizationRateBps: endResult.intermediaryLiqUtilizationRateBps,
118
119
  };
119
120
  }
120
121
 
@@ -71,8 +71,8 @@ export class JupSwapManager {
71
71
  slippageBps,
72
72
  maxAccounts: !data.exactOut ? (memeSwap ? 25 : 15) + attemptNum * 5 : undefined,
73
73
  }),
74
- 4,
75
- 150
74
+ 6,
75
+ 250
76
76
  );
77
77
  }
78
78