@haven-fi/solauto-sdk 1.0.459 → 1.0.461
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.
- package/dist/transactions/transactionUtils.d.ts.map +1 -1
- package/dist/transactions/transactionUtils.js +2 -5
- package/dist/utils/marginfiUtils.d.ts.map +1 -1
- package/dist/utils/marginfiUtils.js +2 -2
- package/dist/utils/solauto/rebalanceUtils.d.ts.map +1 -1
- package/dist/utils/solauto/rebalanceUtils.js +4 -5
- package/package.json +1 -1
- package/src/transactions/transactionUtils.ts +4 -11
- package/src/utils/marginfiUtils.ts +9 -6
- package/src/utils/solauto/rebalanceUtils.ts +5 -6
@@ -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;AAqBxE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAOzD,OAAO,EAIL,eAAe,EAChB,MAAM,iCAAiC,CAAC;AA2BzC,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,
|
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;AAqBxE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAOzD,OAAO,EAIL,eAAe,EAChB,MAAM,iCAAiC,CAAC;AA2BzC,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,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,oBAkElG;AAED,wBAAsB,gCAAgC,CACpD,MAAM,EAAE,aAAa,EACrB,2BAA2B,CAAC,EAAE,MAAM,EACpC,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAqI5C;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;;;;EAiG/B"}
|
@@ -333,14 +333,11 @@ async function requiresRefreshBeforeRebalance(client, values) {
|
|
333
333
|
// REMOVE ME
|
334
334
|
const state = client.solautoPositionState;
|
335
335
|
const settings = client.solautoPositionSettings();
|
336
|
-
|
337
|
-
if ((supplyMint.equals(new web3_js_1.PublicKey(constants_1.JUP)) ||
|
338
|
-
supplyMint.equals(new web3_js_1.PublicKey(constants_1.BONK))) &&
|
336
|
+
if ((0, umi_web3js_adapters_1.toWeb3JsPublicKey)(state.supply.mint).equals(new web3_js_1.PublicKey(constants_1.JUP)) &&
|
339
337
|
(0, umi_web3js_adapters_1.toWeb3JsPublicKey)(state.debt.mint).equals(new web3_js_1.PublicKey(constants_1.USDC)) &&
|
340
338
|
settings &&
|
341
339
|
settings.boostToBps ===
|
342
|
-
(0, numberUtils_1.maxBoostToBps)(state.maxLtvBps, state.liqThresholdBps) &&
|
343
|
-
values.targetRateBps === 6500) {
|
340
|
+
(0, numberUtils_1.maxBoostToBps)(state.maxLtvBps, state.liqThresholdBps) && values.targetRateBps === 6500) {
|
344
341
|
return true;
|
345
342
|
}
|
346
343
|
const neverRefreshedBefore = client.solautoPositionData &&
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"marginfiUtils.d.ts","sourceRoot":"","sources":["../../src/utils/marginfiUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAa,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EACL,IAAI,EAGJ,eAAe,EAGhB,MAAM,iBAAiB,CAAC;AAazB,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAsB,MAAM,cAAc,CAAC;AAEjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAI7D,UAAU,wBAAyB,SAAQ,qBAAqB;IAC9D,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,SAAS,GACd,wBAAwB,CAY1B;AAED,wBAAgB,iCAAiC,CAC/C,UAAU,EAAE,IAAI,EAChB,QAAQ,EAAE,IAAI,EACd,WAAW,EAAE,MAAM,GAClB,CAAC,MAAM,EAAE,MAAM,CAAC,CA6BlB;AAED,wBAAsB,gCAAgC,CACpD,GAAG,EAAE,GAAG,EACR,aAAa,EAAE,SAAS,EACxB,MAAM,EAAE;IACN,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACpB,EACD,IAAI,EAAE;IACJ,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACpB,EACD,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA4C3B;AAED,wBAAsB,iCAAiC,CACrD,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,EACpB,KAAK,CAAC,EAAE,SAAS,EACjB,qBAAqB,CAAC,EAAE,OAAO,GAC9B,OAAO,CACR;IAAE,eAAe,EAAE,SAAS,CAAC;IAAC,UAAU,CAAC,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,EAAE,CAC/E,CAmEA;AAED,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,IAAI,GAAG,IAAI,EACjB,kBAAkB,EAAE,OAAO,
|
1
|
+
{"version":3,"file":"marginfiUtils.d.ts","sourceRoot":"","sources":["../../src/utils/marginfiUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAa,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EACL,IAAI,EAGJ,eAAe,EAGhB,MAAM,iBAAiB,CAAC;AAazB,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAsB,MAAM,cAAc,CAAC;AAEjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAI7D,UAAU,wBAAyB,SAAQ,qBAAqB;IAC9D,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,SAAS,GACd,wBAAwB,CAY1B;AAED,wBAAgB,iCAAiC,CAC/C,UAAU,EAAE,IAAI,EAChB,QAAQ,EAAE,IAAI,EACd,WAAW,EAAE,MAAM,GAClB,CAAC,MAAM,EAAE,MAAM,CAAC,CA6BlB;AAED,wBAAsB,gCAAgC,CACpD,GAAG,EAAE,GAAG,EACR,aAAa,EAAE,SAAS,EACxB,MAAM,EAAE;IACN,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACpB,EACD,IAAI,EAAE;IACJ,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACpB,EACD,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA4C3B;AAED,wBAAsB,iCAAiC,CACrD,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,EACpB,KAAK,CAAC,EAAE,SAAS,EACjB,qBAAqB,CAAC,EAAE,OAAO,GAC9B,OAAO,CACR;IAAE,eAAe,EAAE,SAAS,CAAC;IAAC,UAAU,CAAC,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,EAAE,CAC/E,CAmEA;AAED,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,IAAI,GAAG,IAAI,EACjB,kBAAkB,EAAE,OAAO,UAqB5B;AAmDD,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,KAAK,UAAU,GAAG;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;CAAE,CAAC;AAEhE,wBAAsB,+BAA+B,CACnD,GAAG,EAAE,GAAG,EACR,eAAe,EAAE;IAAE,EAAE,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,eAAe,CAAA;CAAE,EAC1D,aAAa,CAAC,EAAE,SAAS,EACzB,MAAM,CAAC,EAAE,aAAa,EACtB,IAAI,CAAC,EAAE,aAAa,EACpB,mBAAmB,CAAC,EAAE,mBAAmB,GACxC,OAAO,CACN;IAAE,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,GACxE,SAAS,CACZ,CA8LA;AA+DD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,oBAU7C;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAgBnE;AAED,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,eAAe,WASpE"}
|
@@ -124,10 +124,10 @@ function getBankLiquidityAvailableBaseUnit(bank, availableToDeposit) {
|
|
124
124
|
if (bank !== null) {
|
125
125
|
const [assetShareValue, liabilityShareValue] = getUpToDateShareValues(bank);
|
126
126
|
const totalDeposited = (0, numberUtils_1.bytesToI80F48)(bank.totalAssetShares.value) * assetShareValue;
|
127
|
+
const totalBorrowed = (0, numberUtils_1.bytesToI80F48)(bank.totalLiabilityShares.value) * liabilityShareValue;
|
127
128
|
amountCanBeUsed = availableToDeposit
|
128
129
|
? Number(bank.config.depositLimit) - totalDeposited
|
129
|
-
: totalDeposited -
|
130
|
-
(0, numberUtils_1.bytesToI80F48)(bank.totalLiabilityShares.value) * liabilityShareValue;
|
130
|
+
: Math.min(totalDeposited - totalBorrowed, Number(bank.config.borrowLimit) - totalBorrowed);
|
131
131
|
}
|
132
132
|
return BigInt(Math.round(amountCanBeUsed));
|
133
133
|
}
|
@@ -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;AAcjD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAoI9C,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,
|
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;AAcjD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAoI9C,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,CA6EjB;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe;;;EAsDxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC;IAChB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,aAAa,GACtB,gBAAgB,GAAG,SAAS,CAgC9B;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,2BAA2B,CAAC,EAAE,MAAM,EACpC,UAAU,CAAC,EAAE,MAAM,GAClB,cAAc,CA2DhB"}
|
@@ -86,8 +86,10 @@ function getTargetRateAndDcaAmount(state, settings, dca, currentUnixTime, target
|
|
86
86
|
function getRebalanceValues(state, settings, dca, currentUnixTime, supplyPrice, debtPrice, targetLiqUtilizationRateBps) {
|
87
87
|
let { targetRateBps, amountToDcaIn } = getTargetRateAndDcaAmount(state, settings, dca, currentUnixTime, targetLiqUtilizationRateBps);
|
88
88
|
// REVERT ME AND GET TO THE ROOT OF THIS ISSUE
|
89
|
-
|
90
|
-
|
89
|
+
const supplyMint = (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(state.supply.mint);
|
90
|
+
if ((supplyMint.equals(new web3_js_1.PublicKey(constants_1.JUP)) ||
|
91
|
+
supplyMint.equals(new web3_js_1.PublicKey(constants_1.BONK)) ||
|
92
|
+
supplyMint.equals(new web3_js_1.PublicKey(constants_1.WETH))) &&
|
91
93
|
(0, umi_web3js_adapters_1.toWeb3JsPublicKey)(state.debt.mint).equals(new web3_js_1.PublicKey(constants_1.USDC)) &&
|
92
94
|
settings &&
|
93
95
|
settings.boostToBps ===
|
@@ -151,17 +153,14 @@ function rebalanceRequiresFlashLoan(client, values) {
|
|
151
153
|
function getFlashLoanDetails(client, values, jupQuote) {
|
152
154
|
const { requiresFlashLoan, useDebtLiquidity } = rebalanceRequiresFlashLoan(client, values);
|
153
155
|
let flashLoanToken = undefined;
|
154
|
-
let flashLoanTokenPrice = 0;
|
155
156
|
const inAmount = BigInt(parseInt(jupQuote.inAmount));
|
156
157
|
const outAmount = BigInt(parseInt(jupQuote.outAmount));
|
157
158
|
const boosting = values.rebalanceDirection === generated_1.RebalanceDirection.Boost;
|
158
159
|
if (boosting || useDebtLiquidity) {
|
159
160
|
flashLoanToken = client.solautoPositionState.debt;
|
160
|
-
flashLoanTokenPrice = (0, priceUtils_1.safeGetPrice)(client.debtMint);
|
161
161
|
}
|
162
162
|
else {
|
163
163
|
flashLoanToken = client.solautoPositionState.supply;
|
164
|
-
flashLoanTokenPrice = (0, priceUtils_1.safeGetPrice)(client.supplyMint);
|
165
164
|
}
|
166
165
|
if (jupQuote.swapMode !== "ExactOut" && jupQuote.swapMode !== "ExactIn") {
|
167
166
|
throw new Error("Token ledger swap not currently supported");
|
package/package.json
CHANGED
@@ -74,7 +74,7 @@ import {
|
|
74
74
|
getJupiterErrorFromCode,
|
75
75
|
JUPITER_PROGRAM_ID,
|
76
76
|
} from "../jupiter-sdk";
|
77
|
-
import {
|
77
|
+
import { JUP, PRICES, USDC } from "../constants";
|
78
78
|
import { TransactionItemInputs } from "../types";
|
79
79
|
import { safeGetPrice } from "../utils";
|
80
80
|
import { BundleSimulationError } from "../types/transactions";
|
@@ -602,23 +602,16 @@ export async function getTransactionChores(
|
|
602
602
|
return [choresBefore, choresAfter];
|
603
603
|
}
|
604
604
|
|
605
|
-
export async function requiresRefreshBeforeRebalance(
|
606
|
-
client: SolautoClient,
|
607
|
-
values: RebalanceValues
|
608
|
-
) {
|
605
|
+
export async function requiresRefreshBeforeRebalance(client: SolautoClient, values: RebalanceValues) {
|
609
606
|
// REMOVE ME
|
610
607
|
const state = client.solautoPositionState!;
|
611
608
|
const settings = client.solautoPositionSettings();
|
612
|
-
|
613
|
-
const supplyMint = toWeb3JsPublicKey(state.supply.mint);
|
614
609
|
if (
|
615
|
-
(
|
616
|
-
supplyMint.equals(new PublicKey(BONK))) &&
|
610
|
+
toWeb3JsPublicKey(state.supply.mint).equals(new PublicKey(JUP)) &&
|
617
611
|
toWeb3JsPublicKey(state.debt.mint).equals(new PublicKey(USDC)) &&
|
618
612
|
settings &&
|
619
613
|
settings.boostToBps ===
|
620
|
-
maxBoostToBps(state.maxLtvBps, state.liqThresholdBps) &&
|
621
|
-
values.targetRateBps === 6500
|
614
|
+
maxBoostToBps(state.maxLtvBps, state.liqThresholdBps) && values.targetRateBps === 6500
|
622
615
|
) {
|
623
616
|
return true;
|
624
617
|
}
|
@@ -225,12 +225,18 @@ export function getBankLiquidityAvailableBaseUnit(
|
|
225
225
|
|
226
226
|
if (bank !== null) {
|
227
227
|
const [assetShareValue, liabilityShareValue] = getUpToDateShareValues(bank);
|
228
|
+
|
228
229
|
const totalDeposited =
|
229
230
|
bytesToI80F48(bank.totalAssetShares.value) * assetShareValue;
|
231
|
+
const totalBorrowed =
|
232
|
+
bytesToI80F48(bank.totalLiabilityShares.value) * liabilityShareValue;
|
233
|
+
|
230
234
|
amountCanBeUsed = availableToDeposit
|
231
235
|
? Number(bank.config.depositLimit) - totalDeposited
|
232
|
-
:
|
233
|
-
|
236
|
+
: Math.min(
|
237
|
+
totalDeposited - totalBorrowed,
|
238
|
+
Number(bank.config.borrowLimit) - totalBorrowed
|
239
|
+
);
|
234
240
|
}
|
235
241
|
|
236
242
|
return BigInt(Math.round(amountCanBeUsed));
|
@@ -271,10 +277,7 @@ async function getTokenUsage(
|
|
271
277
|
baseUnit: amountCanBeUsed,
|
272
278
|
baseAmountUsdValue: bank
|
273
279
|
? toBaseUnit(
|
274
|
-
fromBaseUnit(
|
275
|
-
amountCanBeUsed,
|
276
|
-
bank.mintDecimals
|
277
|
-
) * marketPrice,
|
280
|
+
fromBaseUnit(amountCanBeUsed, bank.mintDecimals) * marketPrice,
|
278
281
|
USD_DECIMALS
|
279
282
|
)
|
280
283
|
: BigInt(0),
|
@@ -31,7 +31,7 @@ import {
|
|
31
31
|
import { USD_DECIMALS } from "../../constants/generalAccounts";
|
32
32
|
import { RebalanceAction } from "../../types";
|
33
33
|
import { safeGetPrice } from "../priceUtils";
|
34
|
-
import { BONK, JUP, TOKEN_INFO, USDC } from "../../constants";
|
34
|
+
import { BONK, JUP, TOKEN_INFO, USDC, WETH } from "../../constants";
|
35
35
|
|
36
36
|
function getAdditionalAmountToDcaIn(dca: DCASettings): number {
|
37
37
|
if (dca.dcaInBaseUnit === BigInt(0)) {
|
@@ -191,9 +191,11 @@ export function getRebalanceValues(
|
|
191
191
|
);
|
192
192
|
|
193
193
|
// REVERT ME AND GET TO THE ROOT OF THIS ISSUE
|
194
|
+
const supplyMint = toWeb3JsPublicKey(state.supply.mint);
|
194
195
|
if (
|
195
|
-
(
|
196
|
-
|
196
|
+
(supplyMint.equals(new PublicKey(JUP)) ||
|
197
|
+
supplyMint.equals(new PublicKey(BONK)) ||
|
198
|
+
supplyMint.equals(new PublicKey(WETH))) &&
|
197
199
|
toWeb3JsPublicKey(state.debt.mint).equals(new PublicKey(USDC)) &&
|
198
200
|
settings &&
|
199
201
|
settings.boostToBps ===
|
@@ -333,7 +335,6 @@ export function getFlashLoanDetails(
|
|
333
335
|
);
|
334
336
|
|
335
337
|
let flashLoanToken: PositionTokenUsage | undefined = undefined;
|
336
|
-
let flashLoanTokenPrice = 0;
|
337
338
|
|
338
339
|
const inAmount = BigInt(parseInt(jupQuote.inAmount));
|
339
340
|
const outAmount = BigInt(parseInt(jupQuote.outAmount));
|
@@ -341,10 +342,8 @@ export function getFlashLoanDetails(
|
|
341
342
|
const boosting = values.rebalanceDirection === RebalanceDirection.Boost;
|
342
343
|
if (boosting || useDebtLiquidity) {
|
343
344
|
flashLoanToken = client.solautoPositionState!.debt;
|
344
|
-
flashLoanTokenPrice = safeGetPrice(client.debtMint)!;
|
345
345
|
} else {
|
346
346
|
flashLoanToken = client.solautoPositionState!.supply;
|
347
|
-
flashLoanTokenPrice = safeGetPrice(client.supplyMint)!;
|
348
347
|
}
|
349
348
|
|
350
349
|
if (jupQuote.swapMode !== "ExactOut" && jupQuote.swapMode !== "ExactIn") {
|