@haven-fi/solauto-sdk 1.0.539 → 1.0.541
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 +1 -3
- package/dist/utils/jupiterUtils.d.ts +2 -2
- package/dist/utils/jupiterUtils.d.ts.map +1 -1
- package/dist/utils/jupiterUtils.js +9 -6
- package/dist/utils/priceUtils.js +1 -1
- package/dist/utils/solauto/rebalanceUtils.d.ts.map +1 -1
- package/dist/utils/solauto/rebalanceUtils.js +2 -4
- package/package.json +1 -1
- package/src/transactions/transactionUtils.ts +0 -3
- package/src/utils/jupiterUtils.ts +26 -12
- package/src/utils/priceUtils.ts +1 -1
- package/src/utils/solauto/rebalanceUtils.ts +2 -5
@@ -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;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,
|
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,CAsI5C;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"}
|
@@ -375,7 +375,7 @@ async function buildSolautoRebalanceTransaction(client, targetLiqUtilizationRate
|
|
375
375
|
client.log("Rebalance values: ", values);
|
376
376
|
const flRequirements = await (0, rebalanceUtils_1.getFlashLoanRequirements)(client, values, attemptNum);
|
377
377
|
const swapDetails = await (0, rebalanceUtils_1.getJupSwapRebalanceDetails)(client, values, flRequirements, targetLiqUtilizationRateBps, attemptNum);
|
378
|
-
const { jupQuote, lookupTableAddresses, setupInstructions,
|
378
|
+
const { jupQuote, lookupTableAddresses, setupInstructions, swapIx, } = await (0, jupiterUtils_1.getJupSwapTransaction)(client.signer, swapDetails, attemptNum);
|
379
379
|
const flashLoan = flRequirements
|
380
380
|
? (0, rebalanceUtils_1.getFlashLoanDetails)(client, flRequirements, values, jupQuote)
|
381
381
|
: undefined;
|
@@ -401,7 +401,6 @@ async function buildSolautoRebalanceTransaction(client, targetLiqUtilizationRate
|
|
401
401
|
: (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(client.signer.publicKey), rebalanceThenSwap ? swapDetails.outputMint : swapDetails.inputMint);
|
402
402
|
tx = tx.add([
|
403
403
|
setupInstructions,
|
404
|
-
tokenLedgerIx,
|
405
404
|
client.flashBorrow(rebalanceType, flashLoan, flashBorrowDest),
|
406
405
|
...(addFirstRebalance ? [firstRebalance] : []),
|
407
406
|
...(rebalanceThenSwap
|
@@ -414,7 +413,6 @@ async function buildSolautoRebalanceTransaction(client, targetLiqUtilizationRate
|
|
414
413
|
const rebalanceType = generated_1.SolautoRebalanceType.Regular;
|
415
414
|
tx = tx.add([
|
416
415
|
setupInstructions,
|
417
|
-
tokenLedgerIx,
|
418
416
|
client.rebalance("A", jupQuote, rebalanceType, values, undefined, targetLiqUtilizationRateBps),
|
419
417
|
swapIx,
|
420
418
|
client.rebalance("B", jupQuote, rebalanceType, values, undefined, targetLiqUtilizationRateBps),
|
@@ -20,11 +20,11 @@ export interface JupSwapTransaction {
|
|
20
20
|
priceImpactBps: number;
|
21
21
|
lookupTableAddresses: string[];
|
22
22
|
setupInstructions: TransactionBuilder;
|
23
|
-
tokenLedgerIx
|
23
|
+
tokenLedgerIx?: TransactionBuilder;
|
24
24
|
swapIx: TransactionBuilder;
|
25
25
|
}
|
26
26
|
export declare function getJupSwapTransaction(signer: Signer, swapDetails: JupSwapDetails, attemptNum?: number): Promise<JupSwapTransaction>;
|
27
|
-
export declare function getJupPriceData(mints: PublicKey[],
|
27
|
+
export declare function getJupPriceData(mints: PublicKey[], mayIncludeSpamTokens?: boolean): Promise<{
|
28
28
|
[key: string]: any;
|
29
29
|
}>;
|
30
30
|
//# sourceMappingURL=jupiterUtils.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"jupiterUtils.d.ts","sourceRoot":"","sources":["../../src/utils/jupiterUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAA0B,MAAM,iBAAiB,CAAC;AAGpE,OAAO,EAGL,aAAa,EACd,MAAM,aAAa,CAAC;AAUrB,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,SAAS,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,iBAAiB,EAAE,SAAS,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAgBD,wBAAsB,WAAW,CAAC,WAAW,EAAE,YAAY,0BAsB1D;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,aAAa,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,iBAAiB,EAAE,kBAAkB,CAAC;IACtC,aAAa,EAAE,kBAAkB,CAAC;
|
1
|
+
{"version":3,"file":"jupiterUtils.d.ts","sourceRoot":"","sources":["../../src/utils/jupiterUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAA0B,MAAM,iBAAiB,CAAC;AAGpE,OAAO,EAGL,aAAa,EACd,MAAM,aAAa,CAAC;AAUrB,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,SAAS,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,iBAAiB,EAAE,SAAS,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAgBD,wBAAsB,WAAW,CAAC,WAAW,EAAE,YAAY,0BAsB1D;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,aAAa,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,iBAAiB,EAAE,kBAAkB,CAAC;IACtC,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,cAAc,EAC3B,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,kBAAkB,CAAC,CAoF7B;AAED,wBAAsB,eAAe,CACnC,KAAK,EAAE,SAAS,EAAE,EAClB,oBAAoB,CAAC,EAAE,OAAO;;GAwC/B"}
|
@@ -79,17 +79,17 @@ async function getJupSwapTransaction(signer, swapDetails, attemptNum) {
|
|
79
79
|
priceImpactBps: finalPriceImpactBps,
|
80
80
|
lookupTableAddresses: instructions.addressLookupTableAddresses,
|
81
81
|
setupInstructions: (0, umi_1.transactionBuilder)().add((instructions.setupInstructions ?? []).map((ix) => (0, solanaUtils_1.getWrappedInstruction)(signer, createTransactionInstruction(ix)))),
|
82
|
-
tokenLedgerIx:
|
83
|
-
? (0, solanaUtils_1.getWrappedInstruction)(signer, createTransactionInstruction(instructions.tokenLedgerInstruction))
|
84
|
-
:
|
82
|
+
tokenLedgerIx: instructions.tokenLedgerInstruction !== undefined
|
83
|
+
? (0, umi_1.transactionBuilder)().add((0, solanaUtils_1.getWrappedInstruction)(signer, createTransactionInstruction(instructions.tokenLedgerInstruction)))
|
84
|
+
: undefined,
|
85
85
|
swapIx: (0, umi_1.transactionBuilder)().add((0, solanaUtils_1.getWrappedInstruction)(signer, createTransactionInstruction(instructions.swapInstruction))),
|
86
86
|
};
|
87
87
|
}
|
88
|
-
async function getJupPriceData(mints,
|
88
|
+
async function getJupPriceData(mints, mayIncludeSpamTokens) {
|
89
89
|
const data = await (0, generalUtils_1.retryWithExponentialBackoff)(async () => {
|
90
90
|
const res = await (await fetch("https://api.jup.ag/price/v2?ids=" +
|
91
91
|
mints.map((x) => x.toString()).join(",") +
|
92
|
-
|
92
|
+
"&showExtraInfo=true")).json();
|
93
93
|
const result = res.data;
|
94
94
|
if (!result || result === null || typeof result !== "object") {
|
95
95
|
throw new Error("Failed to get token prices using Jupiter");
|
@@ -101,7 +101,10 @@ async function getJupPriceData(mints, extraInfo, mayIncludeSpamTokens) {
|
|
101
101
|
if (invalidValues && !mayIncludeSpamTokens) {
|
102
102
|
throw new Error("Invalid price values");
|
103
103
|
}
|
104
|
-
|
104
|
+
const trueData = Object.entries(result).reduce((acc, [key, val]) => val.extraInfo?.quotedPrice?.sellAt === null
|
105
|
+
? { ...acc, [key]: { ...val, price: "0" } }
|
106
|
+
: { ...acc, [key]: val }, {});
|
107
|
+
return trueData;
|
105
108
|
}, 8);
|
106
109
|
return data;
|
107
110
|
}
|
package/dist/utils/priceUtils.js
CHANGED
@@ -122,7 +122,7 @@ async function getJupTokenPrices(mints, mayIncludeSpamTokens) {
|
|
122
122
|
if (mints.length == 0) {
|
123
123
|
return [];
|
124
124
|
}
|
125
|
-
const data = await (0, jupiterUtils_1.getJupPriceData)(mints,
|
125
|
+
const data = await (0, jupiterUtils_1.getJupPriceData)(mints, mayIncludeSpamTokens);
|
126
126
|
const sortedData = {};
|
127
127
|
for (const mint of mints) {
|
128
128
|
const key = mint.toString();
|
@@ -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;AAiB5E,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;
|
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;AAiB5E,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAkI9C,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,CAqEjB;AA6CD,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,CA8F5C;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;AA4CD,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,CA4EzB"}
|
@@ -23,12 +23,10 @@ function getAdditionalAmountToDcaIn(dca) {
|
|
23
23
|
}
|
24
24
|
function getStandardTargetLiqUtilizationRateBps(state, settings) {
|
25
25
|
const adjustedSettings = (0, generalUtils_1.getAdjustedSettingsFromAutomation)(settings, (0, generalUtils_2.currentUnixSeconds)());
|
26
|
-
|
27
|
-
const boostFrom = adjustedSettings.boostToBps - settings.boostGap;
|
28
|
-
if (state.liqUtilizationRateBps <= boostFrom) {
|
26
|
+
if (state.liqUtilizationRateBps < adjustedSettings.boostToBps) {
|
29
27
|
return adjustedSettings.boostToBps;
|
30
28
|
}
|
31
|
-
else if (state.liqUtilizationRateBps
|
29
|
+
else if (state.liqUtilizationRateBps > settings.repayToBps) {
|
32
30
|
return adjustedSettings.repayToBps;
|
33
31
|
}
|
34
32
|
else {
|
package/package.json
CHANGED
@@ -707,7 +707,6 @@ export async function buildSolautoRebalanceTransaction(
|
|
707
707
|
jupQuote,
|
708
708
|
lookupTableAddresses,
|
709
709
|
setupInstructions,
|
710
|
-
tokenLedgerIx,
|
711
710
|
swapIx,
|
712
711
|
} = await getJupSwapTransaction(client.signer, swapDetails, attemptNum);
|
713
712
|
|
@@ -762,7 +761,6 @@ export async function buildSolautoRebalanceTransaction(
|
|
762
761
|
|
763
762
|
tx = tx.add([
|
764
763
|
setupInstructions,
|
765
|
-
tokenLedgerIx,
|
766
764
|
client.flashBorrow(rebalanceType, flashLoan, flashBorrowDest),
|
767
765
|
...(addFirstRebalance ? [firstRebalance] : []),
|
768
766
|
...(rebalanceThenSwap
|
@@ -774,7 +772,6 @@ export async function buildSolautoRebalanceTransaction(
|
|
774
772
|
const rebalanceType = SolautoRebalanceType.Regular;
|
775
773
|
tx = tx.add([
|
776
774
|
setupInstructions,
|
777
|
-
tokenLedgerIx,
|
778
775
|
client.rebalance(
|
779
776
|
"A",
|
780
777
|
jupQuote,
|
@@ -78,7 +78,7 @@ export interface JupSwapTransaction {
|
|
78
78
|
priceImpactBps: number;
|
79
79
|
lookupTableAddresses: string[];
|
80
80
|
setupInstructions: TransactionBuilder;
|
81
|
-
tokenLedgerIx
|
81
|
+
tokenLedgerIx?: TransactionBuilder;
|
82
82
|
swapIx: TransactionBuilder;
|
83
83
|
}
|
84
84
|
|
@@ -154,14 +154,15 @@ export async function getJupSwapTransaction(
|
|
154
154
|
getWrappedInstruction(signer, createTransactionInstruction(ix))
|
155
155
|
)
|
156
156
|
),
|
157
|
-
tokenLedgerIx:
|
157
|
+
tokenLedgerIx:
|
158
158
|
instructions.tokenLedgerInstruction !== undefined
|
159
|
-
?
|
160
|
-
|
161
|
-
|
159
|
+
? transactionBuilder().add(
|
160
|
+
getWrappedInstruction(
|
161
|
+
signer,
|
162
|
+
createTransactionInstruction(instructions.tokenLedgerInstruction)
|
163
|
+
)
|
162
164
|
)
|
163
|
-
:
|
164
|
-
),
|
165
|
+
: undefined,
|
165
166
|
swapIx: transactionBuilder().add(
|
166
167
|
getWrappedInstruction(
|
167
168
|
signer,
|
@@ -171,13 +172,16 @@ export async function getJupSwapTransaction(
|
|
171
172
|
};
|
172
173
|
}
|
173
174
|
|
174
|
-
export async function getJupPriceData(
|
175
|
+
export async function getJupPriceData(
|
176
|
+
mints: PublicKey[],
|
177
|
+
mayIncludeSpamTokens?: boolean
|
178
|
+
) {
|
175
179
|
const data = await retryWithExponentialBackoff(async () => {
|
176
180
|
const res = await (
|
177
181
|
await fetch(
|
178
182
|
"https://api.jup.ag/price/v2?ids=" +
|
179
183
|
mints.map((x) => x.toString()).join(",") +
|
180
|
-
|
184
|
+
"&showExtraInfo=true"
|
181
185
|
)
|
182
186
|
).json();
|
183
187
|
const result = res.data;
|
@@ -185,7 +189,7 @@ export async function getJupPriceData(mints: PublicKey[], extraInfo?: boolean, m
|
|
185
189
|
throw new Error("Failed to get token prices using Jupiter");
|
186
190
|
}
|
187
191
|
|
188
|
-
const invalidValues =
|
192
|
+
const invalidValues =
|
189
193
|
Boolean(Object.values(result).filter((x) => x === null).length) ||
|
190
194
|
Boolean(
|
191
195
|
Object.values(result)
|
@@ -196,8 +200,18 @@ export async function getJupPriceData(mints: PublicKey[], extraInfo?: boolean, m
|
|
196
200
|
throw new Error("Invalid price values");
|
197
201
|
}
|
198
202
|
|
199
|
-
|
203
|
+
const trueData: { [key: string]: any } = Object.entries(
|
204
|
+
result as { [key: string]: any }
|
205
|
+
).reduce(
|
206
|
+
(acc, [key, val]) =>
|
207
|
+
val.extraInfo?.quotedPrice?.sellAt === null
|
208
|
+
? { ...acc, [key]: { ...val, price: "0" } }
|
209
|
+
: { ...acc, [key]: val },
|
210
|
+
{}
|
211
|
+
);
|
212
|
+
|
213
|
+
return trueData;
|
200
214
|
}, 8);
|
201
215
|
|
202
|
-
return data
|
216
|
+
return data;
|
203
217
|
}
|
package/src/utils/priceUtils.ts
CHANGED
@@ -163,7 +163,7 @@ export async function getJupTokenPrices(
|
|
163
163
|
return [];
|
164
164
|
}
|
165
165
|
|
166
|
-
const data = await getJupPriceData(mints,
|
166
|
+
const data = await getJupPriceData(mints, mayIncludeSpamTokens);
|
167
167
|
|
168
168
|
const sortedData: { [key: string]: any } = {};
|
169
169
|
for (const mint of mints) {
|
@@ -62,12 +62,9 @@ function getStandardTargetLiqUtilizationRateBps(
|
|
62
62
|
currentUnixSeconds()
|
63
63
|
);
|
64
64
|
|
65
|
-
|
66
|
-
const boostFrom = adjustedSettings.boostToBps - settings.boostGap;
|
67
|
-
|
68
|
-
if (state.liqUtilizationRateBps <= boostFrom) {
|
65
|
+
if (state.liqUtilizationRateBps < adjustedSettings.boostToBps) {
|
69
66
|
return adjustedSettings.boostToBps;
|
70
|
-
} else if (state.liqUtilizationRateBps
|
67
|
+
} else if (state.liqUtilizationRateBps > settings.repayToBps) {
|
71
68
|
return adjustedSettings.repayToBps;
|
72
69
|
} else {
|
73
70
|
throw new Error("Invalid rebalance condition");
|