@haven-fi/solauto-sdk 1.0.343 → 1.0.345
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 +8 -2
- package/dist/utils/solauto/generalUtils.d.ts.map +1 -1
- package/dist/utils/solauto/generalUtils.js +13 -21
- package/package.json +2 -2
- package/src/transactions/transactionUtils.ts +10 -3
- package/src/utils/solauto/generalUtils.ts +25 -21
@@ -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;AAmBxE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAoCzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAOlD,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AA2LjD,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,
|
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;AAmBxE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAoCzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAOlD,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AA2LjD,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,oBAkDzE;AAED,wBAAsB,gCAAgC,CACpD,MAAM,EAAE,aAAa,EACrB,2BAA2B,CAAC,EAAE,MAAM,EACpC,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CA2H5C;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,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,GAAG;;;;EA0DxE"}
|
@@ -329,8 +329,14 @@ async function getTransactionChores(client, tx) {
|
|
329
329
|
return [choresBefore, choresAfter];
|
330
330
|
}
|
331
331
|
async function requiresRefreshBeforeRebalance(client) {
|
332
|
-
|
333
|
-
|
332
|
+
const neverRefreshedBefore = client.solautoPositionData &&
|
333
|
+
client.solautoPositionData.state.supply.amountCanBeUsed.baseUnit ===
|
334
|
+
BigInt(0) &&
|
335
|
+
client.solautoPositionData.state.debt.amountCanBeUsed.baseUnit ===
|
336
|
+
BigInt(0);
|
337
|
+
const aboveMaxLtv = client.solautoPositionState.liqUtilizationRateBps >
|
338
|
+
(0, numberUtils_1.getMaxLiqUtilizationRateBps)(client.solautoPositionState.maxLtvBps, client.solautoPositionState.liqThresholdBps, 0.01);
|
339
|
+
if (aboveMaxLtv || neverRefreshedBefore) {
|
334
340
|
return true;
|
335
341
|
}
|
336
342
|
else if (client.solautoPositionData && !client.selfManaged) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"generalUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/solauto/generalUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAGL,OAAO,EAEP,GAAG,EACJ,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAElB,aAAa,EACb,YAAY,EACZ,yBAAyB,EACzB,gCAAgC,EAChC,SAAS,EAMV,MAAM,iBAAiB,CAAC;AAkBzB,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAI9E,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAczE;AAgBD,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,kBAAkB,GAC7B,MAAM,CAKR;AAED,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,kBAAkB,EAC9B,eAAe,EAAE,MAAM,GACtB,OAAO,CAET;AAED,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,kBAAkB,EAC9B,oBAAoB,EAAE,MAAM,UAY7B;AAED,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,yBAAyB,EACnC,eAAe,EAAE,MAAM,GACtB,yBAAyB,CAgB3B;AAED,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,yBAAyB,GAAG,SAAS,EACvD,WAAW,EAAE,WAAW,GAAG,SAAS,EACpC,eAAe,EAAE,MAAM,EACvB,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,MAAM,EACrB,oBAAoB,SAAI,GACvB,eAAe,GAAG,SAAS,
|
1
|
+
{"version":3,"file":"generalUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/solauto/generalUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAGL,OAAO,EAEP,GAAG,EACJ,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAElB,aAAa,EACb,YAAY,EACZ,yBAAyB,EACzB,gCAAgC,EAChC,SAAS,EAMV,MAAM,iBAAiB,CAAC;AAkBzB,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAI9E,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAczE;AAgBD,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,kBAAkB,GAC7B,MAAM,CAKR;AAED,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,kBAAkB,EAC9B,eAAe,EAAE,MAAM,GACtB,OAAO,CAET;AAED,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,kBAAkB,EAC9B,oBAAoB,EAAE,MAAM,UAY7B;AAED,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,yBAAyB,EACnC,eAAe,EAAE,MAAM,GACtB,yBAAyB,CAgB3B;AAED,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,yBAAyB,GAAG,SAAS,EACvD,WAAW,EAAE,WAAW,GAAG,SAAS,EACpC,eAAe,EAAE,MAAM,EACvB,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,MAAM,EACrB,oBAAoB,SAAI,GACvB,eAAe,GAAG,SAAS,CAkE7B;AAED,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,yBAAyB,EAC3C,eAAe,EAAE,MAAM,GACtB,OAAO,CAYT;AAED,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,GAAG,EACR,SAAS,CAAC,EAAE,SAAS,EACrB,kBAAkB,CAAC,EAAE,YAAY,GAChC,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAuFnC;AAED,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAkBzE;AAED,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,SAAS,GACd,OAAO,CAAC,SAAS,EAAE,CAAC,CA+BtB;AAED,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,SAAS,EACf,kBAAkB,CAAC,EAAE,YAAY,GAChC,OAAO,CAAC,sBAAsB,EAAE,CAAC,CA6CnC;AAED,wBAAsB,6BAA6B,CACjD,KAAK,EAAE,aAAa,EACpB,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC,CA2CxB;AAED,UAAU,UAAU;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,GACtB,aAAa,CAoEf;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,gCAAgC,GACzC,yBAAyB,CA8B3B;AAED,KAAK,kBAAkB,GACnB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,gCAAgC,CAAA;CAAE,GAC7D;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,kBAAkB,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,SAAS,CAAA;KAAE,CAAA;CAAE,GACzE;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC;AAEhD,qBAAa,mBAAmB;IACvB,gBAAgB,SAAa;IAC7B,cAAc,SAAa;IAC3B,QAAQ,EAAE,yBAAyB,GAAG,SAAS,CAAa;IAC5D,SAAS,EAAE,WAAW,GAAG,SAAS,CAAa;IAC/C,YAAY,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,SAAS,CAAA;KAAE,CAAa;IACpE,aAAa,EAAE,SAAS,GAAG,SAAS,CAAa;IAExD,GAAG,CAAC,MAAM,EAAE,kBAAkB;IA6B9B,KAAK;IASL,UAAU,IAAI,OAAO;CAStB"}
|
@@ -25,6 +25,7 @@ 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");
|
28
29
|
function createDynamicSolautoProgram(programId) {
|
29
30
|
return {
|
30
31
|
name: "solauto",
|
@@ -91,27 +92,18 @@ function eligibleForRebalance(positionState, positionSettings, positionDca, curr
|
|
91
92
|
const repayFrom = positionSettings.repayToBps + positionSettings.repayGap;
|
92
93
|
const boostFrom = boostToBps - positionSettings.boostGap;
|
93
94
|
if (positionState.liqUtilizationRateBps - boostFrom <= bpsDistanceThreshold) {
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
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
|
-
// }
|
95
|
+
const limitsUpToDate = positionState.supply.amountCanBeUsed.baseUnit > BigInt(0) ||
|
96
|
+
positionState.debt.amountCanBeUsed.baseUnit > BigInt(0);
|
97
|
+
if (limitsUpToDate && positionState.liqUtilizationRateBps < boostFrom) {
|
98
|
+
const values = (0, rebalanceUtils_1.getRebalanceValues)(positionState, positionSettings, positionDca, (0, generalUtils_1.currentUnixSeconds)(), supplyMintPrice, debtMintPrice);
|
99
|
+
const sufficientLiquidity = (0, numberUtils_1.fromBaseUnit)(positionState.debt.amountCanBeUsed.baseAmountUsdValue, constants_1.USD_DECIMALS) *
|
100
|
+
0.95 >
|
101
|
+
values.debtAdjustmentUsd;
|
102
|
+
if (!sufficientLiquidity) {
|
103
|
+
(0, generalUtils_1.consoleLog)("Insufficient debt liquidity to further boost");
|
104
|
+
}
|
105
|
+
return sufficientLiquidity ? "boost" : undefined;
|
106
|
+
}
|
115
107
|
return "boost";
|
116
108
|
}
|
117
109
|
else if (repayFrom - positionState.liqUtilizationRateBps <=
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@haven-fi/solauto-sdk",
|
3
|
-
"version": "1.0.
|
3
|
+
"version": "1.0.345",
|
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",
|
@@ -24,7 +24,7 @@
|
|
24
24
|
"@metaplex-foundation/umi-signer-wallet-adapters": "^0.9.1",
|
25
25
|
"@metaplex-foundation/umi-web3js-adapters": "^0.9.1",
|
26
26
|
"@solana/spl-token": "^0.4.0",
|
27
|
-
"@solana/web3.js": "
|
27
|
+
"@solana/web3.js": "=1.95.8",
|
28
28
|
"@switchboard-xyz/on-demand": "^1.2.51",
|
29
29
|
"axios": "^1.7.8",
|
30
30
|
"bs58": "^5.0.0",
|
@@ -596,14 +596,21 @@ export async function getTransactionChores(
|
|
596
596
|
}
|
597
597
|
|
598
598
|
export async function requiresRefreshBeforeRebalance(client: SolautoClient) {
|
599
|
-
|
599
|
+
const neverRefreshedBefore =
|
600
|
+
client.solautoPositionData &&
|
601
|
+
client.solautoPositionData.state.supply.amountCanBeUsed.baseUnit ===
|
602
|
+
BigInt(0) &&
|
603
|
+
client.solautoPositionData.state.debt.amountCanBeUsed.baseUnit ===
|
604
|
+
BigInt(0);
|
605
|
+
const aboveMaxLtv =
|
600
606
|
client.solautoPositionState!.liqUtilizationRateBps >
|
601
607
|
getMaxLiqUtilizationRateBps(
|
602
608
|
client.solautoPositionState!.maxLtvBps,
|
603
609
|
client.solautoPositionState!.liqThresholdBps,
|
604
610
|
0.01
|
605
|
-
)
|
606
|
-
|
611
|
+
);
|
612
|
+
|
613
|
+
if (aboveMaxLtv || neverRefreshedBefore) {
|
607
614
|
return true;
|
608
615
|
} else if (client.solautoPositionData && !client.selfManaged) {
|
609
616
|
if (
|
@@ -167,27 +167,31 @@ export function eligibleForRebalance(
|
|
167
167
|
const boostFrom = boostToBps - positionSettings.boostGap;
|
168
168
|
|
169
169
|
if (positionState.liqUtilizationRateBps - boostFrom <= bpsDistanceThreshold) {
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
170
|
+
const limitsUpToDate =
|
171
|
+
positionState.supply.amountCanBeUsed.baseUnit > BigInt(0) ||
|
172
|
+
positionState.debt.amountCanBeUsed.baseUnit > BigInt(0);
|
173
|
+
|
174
|
+
if (limitsUpToDate && positionState.liqUtilizationRateBps < boostFrom) {
|
175
|
+
const values = getRebalanceValues(
|
176
|
+
positionState!,
|
177
|
+
positionSettings,
|
178
|
+
positionDca,
|
179
|
+
currentUnixSeconds(),
|
180
|
+
supplyMintPrice,
|
181
|
+
debtMintPrice
|
182
|
+
);
|
183
|
+
const sufficientLiquidity =
|
184
|
+
fromBaseUnit(
|
185
|
+
positionState.debt.amountCanBeUsed.baseAmountUsdValue,
|
186
|
+
USD_DECIMALS
|
187
|
+
) *
|
188
|
+
0.95 >
|
189
|
+
values.debtAdjustmentUsd;
|
190
|
+
if (!sufficientLiquidity) {
|
191
|
+
consoleLog("Insufficient debt liquidity to further boost");
|
192
|
+
}
|
193
|
+
return sufficientLiquidity ? "boost" : undefined;
|
194
|
+
}
|
191
195
|
|
192
196
|
return "boost";
|
193
197
|
} else if (
|