@haven-fi/solauto-sdk 1.0.542 → 1.0.544
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/constants/solautoConstants.d.ts +1 -1
- package/dist/constants/solautoConstants.d.ts.map +1 -1
- package/dist/constants/solautoConstants.js +5 -2
- package/dist/constants/tokenConstants.js +2 -2
- package/dist/transactions/transactionUtils.d.ts.map +1 -1
- package/dist/utils/jitoUtils.d.ts.map +1 -1
- package/dist/utils/jitoUtils.js +14 -2
- package/dist/utils/solauto/rebalanceUtils.d.ts.map +1 -1
- package/dist/utils/solauto/rebalanceUtils.js +0 -1
- package/local/logPositions.ts +3 -10
- package/local/shared.ts +22 -10
- package/local/updateSolautoLUT.ts +1 -1
- package/package.json +1 -1
- package/src/constants/solautoConstants.ts +5 -2
- package/src/constants/tokenConstants.ts +2 -2
- package/src/utils/jitoUtils.ts +15 -8
- package/src/utils/solauto/rebalanceUtils.ts +0 -5
@@ -14,7 +14,7 @@ export declare const PRICES: {
|
|
14
14
|
};
|
15
15
|
export declare const JITO_BLOCK_ENGINE = "https://mainnet.block-engine.jito.wtf";
|
16
16
|
export declare const JITO_TIP_ACCOUNTS: string[];
|
17
|
-
export declare const SOLAUTO_LUT = "
|
17
|
+
export declare const SOLAUTO_LUT = "8b7KefQDroVLGao71J5H3hFwABeyMCgCrLpXWssNFhk9";
|
18
18
|
export declare const STANDARD_LUT_ACCOUNTS: string[];
|
19
19
|
export declare const BROKEN_TOKENS: string[];
|
20
20
|
//# sourceMappingURL=solautoConstants.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"solautoConstants.d.ts","sourceRoot":"","sources":["../../src/constants/solautoConstants.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,SAAS,EACV,MAAM,iBAAiB,CAAC;AASzB,eAAO,MAAM,oBAAoB,WAEhC,CAAC;AACF,eAAO,MAAM,oBAAoB,WAEhC,CAAC;AAIF,eAAO,MAAM,YAAY,QAAQ,CAAC;AAElC,eAAO,MAAM,iCAAiC,IAAI,CAAC;AACnD,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C,eAAO,MAAM,MAAM,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAO,CAAC;AAE7E,eAAO,MAAM,iBAAiB,0CAA0C,CAAC;AAEzE,eAAO,MAAM,iBAAiB,UAS7B,CAAC;
|
1
|
+
{"version":3,"file":"solautoConstants.d.ts","sourceRoot":"","sources":["../../src/constants/solautoConstants.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,SAAS,EACV,MAAM,iBAAiB,CAAC;AASzB,eAAO,MAAM,oBAAoB,WAEhC,CAAC;AACF,eAAO,MAAM,oBAAoB,WAEhC,CAAC;AAIF,eAAO,MAAM,YAAY,QAAQ,CAAC;AAElC,eAAO,MAAM,iCAAiC,IAAI,CAAC;AACnD,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C,eAAO,MAAM,MAAM,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAO,CAAC;AAE7E,eAAO,MAAM,iBAAiB,0CAA0C,CAAC;AAEzE,eAAO,MAAM,iBAAiB,UAS7B,CAAC;AAMF,eAAO,MAAM,WAAW,iDAAiD,CAAC;AAC1E,eAAO,MAAM,qBAAqB,UAYR,CAAC;AAG3B,eAAO,MAAM,aAAa,UAOzB,CAAA"}
|
@@ -26,7 +26,11 @@ exports.JITO_TIP_ACCOUNTS = [
|
|
26
26
|
"DttWaMuVvTiduZRnguLF7jNxTgiMBZ1hyAumKUiL2KRL",
|
27
27
|
"3AVi9Tg9Uo68tJfuvoKvqKNWKkC5wPdSSdeBnizKZ6jT",
|
28
28
|
];
|
29
|
-
|
29
|
+
// "9D4xwZwDf46n9ft5gQxZzq3rBbdRXsXojKQLZbBdskPY";
|
30
|
+
// "J97FEQeJzChRnaAjNy3dRvm9FBavKqAdxo8jKXzw17ut"
|
31
|
+
// "ByhmNseaYZXBDcBm6xhbgarwixgjym6H4ddLsvgoL3BL"
|
32
|
+
// "2VJK8AHqtiaiJKYbBtFr3EHV4Hcy1FHCiEYQFmUvxot8"
|
33
|
+
exports.SOLAUTO_LUT = "8b7KefQDroVLGao71J5H3hFwABeyMCgCrLpXWssNFhk9";
|
30
34
|
exports.STANDARD_LUT_ACCOUNTS = [
|
31
35
|
web3_js_1.PublicKey.default,
|
32
36
|
exports.SOLAUTO_PROD_PROGRAM,
|
@@ -39,7 +43,6 @@ exports.STANDARD_LUT_ACCOUNTS = [
|
|
39
43
|
web3_js_1.SYSVAR_RENT_PUBKEY,
|
40
44
|
web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
41
45
|
jupiter_sdk_1.JUPITER_PROGRAM_ID,
|
42
|
-
...exports.JITO_TIP_ACCOUNTS
|
43
46
|
].map((x) => x.toString());
|
44
47
|
// TODO:
|
45
48
|
exports.BROKEN_TOKENS = [
|
@@ -109,12 +109,12 @@ exports.TOKEN_INFO = {
|
|
109
109
|
decimals: 6,
|
110
110
|
},
|
111
111
|
[exports.WBTC]: {
|
112
|
-
ticker: "
|
112
|
+
ticker: "WBTC",
|
113
113
|
decimals: 8,
|
114
114
|
isMajor: true,
|
115
115
|
},
|
116
116
|
[exports.WETH]: {
|
117
|
-
ticker: "
|
117
|
+
ticker: "WETH",
|
118
118
|
decimals: 8,
|
119
119
|
isMajor: true,
|
120
120
|
},
|
@@ -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;
|
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;AAsCzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAOlD,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AA4LjD,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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"jitoUtils.d.ts","sourceRoot":"","sources":["../../src/utils/jitoUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,SAAS,EAKV,MAAM,iBAAiB,CAAC;AAMzB,OAAO,EACL,MAAM,EACN,kBAAkB,EAClB,GAAG,EAEH,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAQlC,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAMlE,wBAAgB,mBAAmB,IAAI,SAAS,CAG/C;
|
1
|
+
{"version":3,"file":"jitoUtils.d.ts","sourceRoot":"","sources":["../../src/utils/jitoUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,SAAS,EAKV,MAAM,iBAAiB,CAAC;AAMzB,OAAO,EACL,MAAM,EACN,kBAAkB,EAClB,GAAG,EAEH,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAQlC,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAMlE,wBAAgB,mBAAmB,IAAI,SAAS,CAG/C;AAqOD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB;;;;IAkB7D;AAED,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EAAE,EACtB,GAAG,EAAE,kBAAkB,EAAE,EACzB,MAAM,CAAC,EAAE,kBAAkB,EAC3B,kBAAkB,GAAE,kBAA2C,EAC/D,cAAc,CAAC,EAAE,MAAM,IAAI,GAC1B,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CA+F/B"}
|
package/dist/utils/jitoUtils.js
CHANGED
@@ -93,7 +93,7 @@ async function simulateJitoBundle(umi, txs) {
|
|
93
93
|
else if (res.error && res.error.message) {
|
94
94
|
throw new Error(res.error.message);
|
95
95
|
}
|
96
|
-
return res;
|
96
|
+
return res.result.value;
|
97
97
|
});
|
98
98
|
const transactionResults = simulationResult.transactionResults;
|
99
99
|
return transactionResults;
|
@@ -170,6 +170,12 @@ async function sendJitoBundle(umi, transactions) {
|
|
170
170
|
throw e;
|
171
171
|
}
|
172
172
|
}
|
173
|
+
if (resp?.data?.error?.message === "All providers failed") {
|
174
|
+
throw new Error(resp.data.error.responses[0].response.error.message);
|
175
|
+
}
|
176
|
+
else if (resp.data.error) {
|
177
|
+
throw new Error(resp.data.error);
|
178
|
+
}
|
173
179
|
const bundleId = resp.data.result;
|
174
180
|
(0, generalUtils_1.consoleLog)("Bundle ID:", bundleId);
|
175
181
|
return bundleId ? await pollBundleStatus(umi, bundleId) : [];
|
@@ -207,7 +213,6 @@ async function sendJitoBundledTransactions(umi, connection, userSigner, otherSig
|
|
207
213
|
let simulationResults;
|
208
214
|
if (txType !== "skip-simulation") {
|
209
215
|
builtTxs = await umiToVersionedTransactions(umi, latestBlockhash, userSigner, otherSigners, txs, false, feeEstimates);
|
210
|
-
(0, generalUtils_1.consoleLog)(builtTxs.map((x) => x.message.compiledInstructions.map((y) => x.message.staticAccountKeys[y.programIdIndex].toString())));
|
211
216
|
simulationResults = await simulateJitoBundle(umi, builtTxs);
|
212
217
|
}
|
213
218
|
if (txType !== "only-simulate") {
|
@@ -215,6 +220,13 @@ async function sendJitoBundledTransactions(umi, connection, userSigner, otherSig
|
|
215
220
|
builtTxs = await umiToVersionedTransactions(umi, latestBlockhash, userSigner, otherSigners, txs, true, feeEstimates, simulationResults
|
216
221
|
? simulationResults.map((x) => x.unitsConsumed * 1.15)
|
217
222
|
: undefined);
|
223
|
+
// consoleLog(
|
224
|
+
// builtTxs.map((x) =>
|
225
|
+
// x.message.compiledInstructions.map((y) =>
|
226
|
+
// x.message.staticAccountKeys[y.programIdIndex].toString()
|
227
|
+
// )
|
228
|
+
// )
|
229
|
+
// );
|
218
230
|
const serializedTxs = builtTxs.map((x) => x.serialize());
|
219
231
|
if (serializedTxs.find((x) => x.length > 1232)) {
|
220
232
|
throw new Error("A transaction is too large");
|
@@ -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;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,
|
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,CAgEjB;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"}
|
@@ -101,7 +101,6 @@ function getRebalanceValues(state, settings, dca, currentUnixTime, supplyPrice,
|
|
101
101
|
: generated_1.RebalanceDirection.Repay;
|
102
102
|
const adjustmentFeeBps = (0, numberUtils_1.getSolautoFeesBps)(false, targetLiqUtilizationRateBps, (0, numberUtils_1.calcNetWorthUsd)(state), rebalanceDirection).total;
|
103
103
|
let debtAdjustmentUsd = (0, numberUtils_1.getDebtAdjustmentUsd)(state.liqThresholdBps, (0, numberUtils_1.calcSupplyUsd)(state) + amountUsdToDcaIn, (0, numberUtils_1.calcDebtUsd)(state), targetRateBps, adjustmentFeeBps);
|
104
|
-
(0, generalUtils_2.consoleLog)("Target rate:", targetRateBps, (0, numberUtils_1.maxBoostToBps)(state.maxLtvBps, state.liqThresholdBps));
|
105
104
|
const maxRepayTo = (0, numberUtils_1.maxRepayToBps)(state.maxLtvBps, state.liqThresholdBps);
|
106
105
|
return {
|
107
106
|
debtAdjustmentUsd,
|
package/local/logPositions.ts
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import { publicKey } from "@metaplex-foundation/umi";
|
2
2
|
import {
|
3
|
-
|
3
|
+
buildIronforgeApiUrl,
|
4
4
|
calcNetWorthUsd,
|
5
5
|
calcSupplyUsd,
|
6
6
|
currentUnixSeconds,
|
@@ -20,17 +20,10 @@ import { PublicKey } from "@solana/web3.js";
|
|
20
20
|
import { toWeb3JsPublicKey } from "@metaplex-foundation/umi-web3js-adapters";
|
21
21
|
import path from "path";
|
22
22
|
import { config } from "dotenv";
|
23
|
+
import { getBatches } from "./shared";
|
23
24
|
|
24
25
|
config({ path: path.join(__dirname, ".env") });
|
25
26
|
|
26
|
-
function getBatches<T>(items: T[], batchSize: number): T[][] {
|
27
|
-
const batches: T[][] = [];
|
28
|
-
for (let i = 0; i < items.length; i += batchSize) {
|
29
|
-
batches.push(items.slice(i, i + batchSize));
|
30
|
-
}
|
31
|
-
return batches;
|
32
|
-
}
|
33
|
-
|
34
27
|
export function roundToDecimals(value: number, decimals: number = 2): number {
|
35
28
|
if (!value || isNaN(value)) {
|
36
29
|
return value;
|
@@ -96,7 +89,7 @@ export function formatNumber(
|
|
96
89
|
|
97
90
|
async function main(filterWhitelist: boolean) {
|
98
91
|
const [_, umi] = getSolanaRpcConnection(
|
99
|
-
|
92
|
+
buildIronforgeApiUrl(process.env.IRONFORGE_API_KEY!),
|
100
93
|
SOLAUTO_PROD_PROGRAM
|
101
94
|
);
|
102
95
|
|
package/local/shared.ts
CHANGED
@@ -10,6 +10,14 @@ import {
|
|
10
10
|
} from "@solana/web3.js";
|
11
11
|
import { buildHeliusApiUrl, getSolanaRpcConnection } from "../src/utils/solanaUtils";
|
12
12
|
|
13
|
+
export function getBatches<T>(items: T[], batchSize: number): T[][] {
|
14
|
+
const batches: T[][] = [];
|
15
|
+
for (let i = 0; i < items.length; i += batchSize) {
|
16
|
+
batches.push(items.slice(i, i + batchSize));
|
17
|
+
}
|
18
|
+
return batches;
|
19
|
+
}
|
20
|
+
|
13
21
|
function loadSecretKey(keypairPath: string) {
|
14
22
|
const secretKey = JSON.parse(fs.readFileSync(keypairPath, "utf8"));
|
15
23
|
return new Uint8Array(secretKey);
|
@@ -59,16 +67,20 @@ async function addAddressesIfNeeded(
|
|
59
67
|
const addresses = addressesToAdd
|
60
68
|
.filter((x) => !existingAddresses.includes(x))
|
61
69
|
.map((x) => new PublicKey(x));
|
62
|
-
|
70
|
+
|
63
71
|
if (addresses.length > 0) {
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
+
const batches = getBatches(addresses, 20);
|
73
|
+
for (const addressBatch of batches) {
|
74
|
+
console.log(addressBatch.map(x => x.toString()));
|
75
|
+
await createAndSendV0Tx([
|
76
|
+
AddressLookupTableProgram.extendLookupTable({
|
77
|
+
payer: keypair.publicKey,
|
78
|
+
authority: keypair.publicKey,
|
79
|
+
lookupTable: lookupTableAddress,
|
80
|
+
addresses: addressBatch,
|
81
|
+
}),
|
82
|
+
]);
|
83
|
+
}
|
72
84
|
}
|
73
85
|
}
|
74
86
|
|
@@ -87,7 +99,7 @@ export async function updateLookupTable(
|
|
87
99
|
});
|
88
100
|
lookupTableAddress = addr;
|
89
101
|
console.log("Lookup Table Address:", lookupTableAddress.toString());
|
90
|
-
createAndSendV0Tx([createLutIx]);
|
102
|
+
await createAndSendV0Tx([createLutIx]);
|
91
103
|
}
|
92
104
|
|
93
105
|
const existingAccounts =
|
@@ -17,7 +17,7 @@ import {
|
|
17
17
|
} from "../src/utils";
|
18
18
|
import { SWITCHBOARD_PRICE_FEED_IDS } from "../src/constants/switchboardConstants";
|
19
19
|
|
20
|
-
const LOOKUP_TABLE_ADDRESS = new PublicKey(SOLAUTO_LUT);
|
20
|
+
const LOOKUP_TABLE_ADDRESS = Boolean(SOLAUTO_LUT) ? new PublicKey(SOLAUTO_LUT) : undefined;
|
21
21
|
const solautoManagerTokenAccounts = getTokenAccounts(
|
22
22
|
SOLAUTO_MANAGER,
|
23
23
|
ALL_SUPPORTED_TOKENS.map((x) => new PublicKey(x))
|
package/package.json
CHANGED
@@ -44,7 +44,11 @@ export const JITO_TIP_ACCOUNTS = [
|
|
44
44
|
"3AVi9Tg9Uo68tJfuvoKvqKNWKkC5wPdSSdeBnizKZ6jT",
|
45
45
|
];
|
46
46
|
|
47
|
-
|
47
|
+
// "9D4xwZwDf46n9ft5gQxZzq3rBbdRXsXojKQLZbBdskPY";
|
48
|
+
// "J97FEQeJzChRnaAjNy3dRvm9FBavKqAdxo8jKXzw17ut"
|
49
|
+
// "ByhmNseaYZXBDcBm6xhbgarwixgjym6H4ddLsvgoL3BL"
|
50
|
+
// "2VJK8AHqtiaiJKYbBtFr3EHV4Hcy1FHCiEYQFmUvxot8"
|
51
|
+
export const SOLAUTO_LUT = "8b7KefQDroVLGao71J5H3hFwABeyMCgCrLpXWssNFhk9";
|
48
52
|
export const STANDARD_LUT_ACCOUNTS = [
|
49
53
|
PublicKey.default,
|
50
54
|
SOLAUTO_PROD_PROGRAM,
|
@@ -57,7 +61,6 @@ export const STANDARD_LUT_ACCOUNTS = [
|
|
57
61
|
SYSVAR_RENT_PUBKEY,
|
58
62
|
SYSVAR_INSTRUCTIONS_PUBKEY,
|
59
63
|
JUPITER_PROGRAM_ID,
|
60
|
-
...JITO_TIP_ACCOUNTS
|
61
64
|
].map((x) => x.toString());
|
62
65
|
|
63
66
|
// TODO:
|
@@ -118,12 +118,12 @@ export const TOKEN_INFO: { [key: string]: TokenInfo } = {
|
|
118
118
|
decimals: 6,
|
119
119
|
},
|
120
120
|
[WBTC]: {
|
121
|
-
ticker: "
|
121
|
+
ticker: "WBTC",
|
122
122
|
decimals: 8,
|
123
123
|
isMajor: true,
|
124
124
|
},
|
125
125
|
[WETH]: {
|
126
|
-
ticker: "
|
126
|
+
ticker: "WETH",
|
127
127
|
decimals: 8,
|
128
128
|
isMajor: true,
|
129
129
|
},
|
package/src/utils/jitoUtils.ts
CHANGED
@@ -139,7 +139,7 @@ async function simulateJitoBundle(umi: Umi, txs: VersionedTransaction[]) {
|
|
139
139
|
throw new Error(res.error.message);
|
140
140
|
}
|
141
141
|
|
142
|
-
return res;
|
142
|
+
return res.result.value;
|
143
143
|
});
|
144
144
|
|
145
145
|
const transactionResults =
|
@@ -253,6 +253,12 @@ async function sendJitoBundle(
|
|
253
253
|
}
|
254
254
|
}
|
255
255
|
|
256
|
+
if (resp?.data?.error?.message === "All providers failed") {
|
257
|
+
throw new Error(resp.data.error.responses[0].response.error.message);
|
258
|
+
} else if (resp.data.error) {
|
259
|
+
throw new Error(resp.data.error);
|
260
|
+
}
|
261
|
+
|
256
262
|
const bundleId = resp.data.result;
|
257
263
|
consoleLog("Bundle ID:", bundleId);
|
258
264
|
return bundleId ? await pollBundleStatus(umi, bundleId) : [];
|
@@ -311,6 +317,7 @@ export async function sendJitoBundledTransactions(
|
|
311
317
|
);
|
312
318
|
|
313
319
|
txs[0] = txs[0].prepend(getTipInstruction(userSigner, 150_000));
|
320
|
+
|
314
321
|
const feeEstimates =
|
315
322
|
priorityFeeSetting !== PriorityFeeSetting.None
|
316
323
|
? await Promise.all(
|
@@ -342,13 +349,6 @@ export async function sendJitoBundledTransactions(
|
|
342
349
|
false,
|
343
350
|
feeEstimates
|
344
351
|
);
|
345
|
-
consoleLog(
|
346
|
-
builtTxs.map((x) =>
|
347
|
-
x.message.compiledInstructions.map((y) =>
|
348
|
-
x.message.staticAccountKeys[y.programIdIndex].toString()
|
349
|
-
)
|
350
|
-
)
|
351
|
-
);
|
352
352
|
simulationResults = await simulateJitoBundle(umi, builtTxs);
|
353
353
|
}
|
354
354
|
|
@@ -367,6 +367,13 @@ export async function sendJitoBundledTransactions(
|
|
367
367
|
? simulationResults.map((x) => x.unitsConsumed! * 1.15)
|
368
368
|
: undefined
|
369
369
|
);
|
370
|
+
// consoleLog(
|
371
|
+
// builtTxs.map((x) =>
|
372
|
+
// x.message.compiledInstructions.map((y) =>
|
373
|
+
// x.message.staticAccountKeys[y.programIdIndex].toString()
|
374
|
+
// )
|
375
|
+
// )
|
376
|
+
// );
|
370
377
|
|
371
378
|
const serializedTxs = builtTxs.map((x) => x.serialize());
|
372
379
|
if (serializedTxs.find((x) => x.length > 1232)) {
|
@@ -228,11 +228,6 @@ export function getRebalanceValues(
|
|
228
228
|
adjustmentFeeBps
|
229
229
|
);
|
230
230
|
|
231
|
-
consoleLog(
|
232
|
-
"Target rate:",
|
233
|
-
targetRateBps,
|
234
|
-
maxBoostToBps(state.maxLtvBps, state.liqThresholdBps)
|
235
|
-
);
|
236
231
|
const maxRepayTo = maxRepayToBps(state.maxLtvBps, state.liqThresholdBps);
|
237
232
|
return {
|
238
233
|
debtAdjustmentUsd,
|