@haven-fi/solauto-sdk 1.0.751 → 1.0.752
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/services/rebalance/rebalanceSwapManager.d.ts.map +1 -1
- package/dist/services/rebalance/rebalanceSwapManager.js +10 -7
- package/dist/services/transactions/manager/transactionsManager.d.ts.map +1 -1
- package/dist/services/transactions/manager/transactionsManager.js +1 -5
- package/local/txSandbox.ts +3 -3
- package/package.json +1 -1
- package/src/services/rebalance/rebalanceSwapManager.ts +11 -12
- package/src/services/transactions/manager/transactionsManager.ts +1 -9
@@ -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;IAsCnB,OAAO,CAAC,kCAAkC;
|
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;IAsCnB,OAAO,CAAC,kCAAkC;YAsE5B,mBAAmB;IA4CjC,OAAO,CAAC,mBAAmB;IAIrB,aAAa,CAAC,UAAU,EAAE,MAAM;IAuEhC,aAAa;;;;;;CAWpB"}
|
@@ -51,7 +51,7 @@ class RebalanceSwapManager {
|
|
51
51
|
let supplyUsd = this.client.pos.supplyUsd(this.priceType);
|
52
52
|
let debtUsd = this.client.pos.debtUsd(this.priceType);
|
53
53
|
// TODO: add token balance change
|
54
|
-
const { input, biasedInputPrice, output, biasedOutputPrice
|
54
|
+
const { input, biasedInputPrice, output, biasedOutputPrice } = this.swapDetails();
|
55
55
|
const swapInputAmount = swapInputAmountBaseUnit
|
56
56
|
? (0, utils_1.fromBaseUnit)(swapInputAmountBaseUnit, (0, utils_1.tokenInfo)((0, umi_web3js_adapters_1.toWeb3JsPublicKey)(input.mint)).decimals)
|
57
57
|
: undefined;
|
@@ -66,7 +66,9 @@ class RebalanceSwapManager {
|
|
66
66
|
: this.usdToSwap();
|
67
67
|
const res = (0, rebalanceValues_1.applyDebtAdjustmentUsd)({
|
68
68
|
debtAdjustmentUsd: this.isBoost() ? swapInputUsd : swapInputUsd * -1,
|
69
|
-
debtAdjustmentUsdOutput: this.isBoost()
|
69
|
+
debtAdjustmentUsdOutput: this.isBoost()
|
70
|
+
? swapOutputUsd
|
71
|
+
: swapOutputUsd * -1,
|
70
72
|
}, { supplyUsd, debtUsd }, (0, utils_1.fromBps)(this.client.pos.state.liqThresholdBps), {
|
71
73
|
solauto: this.solautoFeeBps,
|
72
74
|
flashLoan: this.flRequirements?.flFeeBps ?? 0,
|
@@ -96,8 +98,11 @@ class RebalanceSwapManager {
|
|
96
98
|
const outputAmount = parseInt(swapQuote.outAmount);
|
97
99
|
const postRebalanceRate = this.postRebalanceLiqUtilizationRateBps(BigInt(outputAmount), BigInt(parseInt(swapQuote.inAmount)));
|
98
100
|
const exceedsMinOutput = criteria.minOutputAmount
|
99
|
-
? outputAmount < Number(criteria.minOutputAmount)
|
100
|
-
|
101
|
+
? outputAmount < Number(criteria.minOutputAmount)
|
102
|
+
: false;
|
103
|
+
const exceedsMaxRate = criteria.maxLiqUtilizationRateBps
|
104
|
+
? postRebalanceRate > criteria.maxLiqUtilizationRateBps
|
105
|
+
: false;
|
101
106
|
insufficient = exceedsMinOutput || exceedsMaxRate;
|
102
107
|
(0, utils_1.consoleLog)(postRebalanceRate, criteria.maxLiqUtilizationRateBps);
|
103
108
|
if (insufficient) {
|
@@ -119,9 +124,7 @@ class RebalanceSwapManager {
|
|
119
124
|
let { input, output, biasedOutputPrice, inputAmount } = this.swapDetails();
|
120
125
|
let outputAmount = rebalanceToZero
|
121
126
|
? output.amountUsed.baseUnit +
|
122
|
-
BigInt(Math.round(Number(output.amountUsed.baseUnit) *
|
123
|
-
// Add this small percentage to account for the APR on the debt between now and the transaction
|
124
|
-
0.0001))
|
127
|
+
BigInt(Math.round(Number(output.amountUsed.baseUnit) * (0, utils_1.fromBps)(this.solautoFeeBps)))
|
125
128
|
: (0, utils_1.toBaseUnit)(this.usdToSwap() / biasedOutputPrice, output.decimals);
|
126
129
|
const flashLoanRepayFromDebt = !this.isBoost() &&
|
127
130
|
this.flRequirements &&
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"transactionsManager.d.ts","sourceRoot":"","sources":["../../../../src/services/transactions/manager/transactionsManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EACL,kBAAkB,EAElB,kBAAkB,EACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAEL,aAAa,EAId,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,eAAe,EAAkB,MAAM,UAAU,CAAC;AAEzE,qBAAa,wBAAyB,SAAQ,KAAK;gBACrC,OAAO,EAAE,MAAM;CAK5B;AAED,oBAAY,iBAAiB;IAC3B,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,UAAU,eAAe;IACzB,MAAM,WAAW;CAClB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,0BAA0B,GAAG,wBAAwB,EAAE,CAAC;AAEpE,UAAU,WAAW;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB,CAAC,CAAC,SAAS,SAAS;IAC1D,SAAS,EAAE,CAAC,CAAC;IACb,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,0BAA0B,KAAK,IAAI,CAAC;IAChE,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED,qBAAa,mBAAmB,CAAC,CAAC,SAAS,SAAS;IAClD,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC;IACvB,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,0BAA0B,KAAK,IAAI,CAAC;IAC1E,SAAS,CAAC,SAAS,CAAC,EAAE,kBAAkB,CAAC;IACzC,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IACjD,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC;IAC9B,SAAS,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACxC,SAAS,CAAC,QAAQ,EAAE,0BAA0B,CAAM;IACpD,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC;IACrC,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,eAAe,CAAC,EAAE,eAAe,CAAC;IAE5C,kBAAkB,SAAmB;gBAEzB,IAAI,EAAE,uBAAuB,CAAC,CAAC,CAAC;YAoB9B,uBAAuB;
|
1
|
+
{"version":3,"file":"transactionsManager.d.ts","sourceRoot":"","sources":["../../../../src/services/transactions/manager/transactionsManager.ts"],"names":[],"mappings":"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"}
|
@@ -48,7 +48,6 @@ class TransactionsManager {
|
|
48
48
|
let transactionSets = [];
|
49
49
|
(0, utils_1.consoleLog)(`Reassembling ${items.length} items`);
|
50
50
|
const txItems = items.sort((a, b) => a.orderPrio - b.orderPrio);
|
51
|
-
const splitTxsGenerously = this.statuses.find((x) => x.moreInfo === "ProgramFailedToComplete");
|
52
51
|
for (let i = txItems.length - 1; i >= 0;) {
|
53
52
|
let item = txItems[i];
|
54
53
|
i--;
|
@@ -65,10 +64,7 @@ class TransactionsManager {
|
|
65
64
|
]);
|
66
65
|
for (let j = i; j >= 0; j--) {
|
67
66
|
const tx = txItems[j];
|
68
|
-
|
69
|
-
j < i &&
|
70
|
-
txItems[j + 1].name?.toLowerCase() === "rebalance";
|
71
|
-
if ((await newSet.fitsWith(tx)) && !separateTx) {
|
67
|
+
if ((await newSet.fitsWith(tx))) {
|
72
68
|
newSet.prepend(tx);
|
73
69
|
i--;
|
74
70
|
}
|
package/local/txSandbox.ts
CHANGED
@@ -22,7 +22,7 @@ import {
|
|
22
22
|
} from "../src";
|
23
23
|
import { getSecretKey } from "./shared";
|
24
24
|
|
25
|
-
const payForTransaction =
|
25
|
+
const payForTransaction = false;
|
26
26
|
const testProgram = false;
|
27
27
|
const lpEnv: ProgramEnv = "Prod";
|
28
28
|
|
@@ -47,8 +47,8 @@ export async function main() {
|
|
47
47
|
});
|
48
48
|
|
49
49
|
await client.initializeExistingSolautoPosition({
|
50
|
-
positionId:
|
51
|
-
authority: new PublicKey("
|
50
|
+
positionId: 2,
|
51
|
+
authority: new PublicKey("EBhRj7jbF2EVE21i19JSuCX1BAbnZFYhoKW64HnaZ3kf"),
|
52
52
|
// lpUserAccount: new PublicKey(
|
53
53
|
// "GEokw9jqbh6d1xUNA3qaeYFFetbSR5Y1nt7C3chwwgSz"
|
54
54
|
// ),
|
package/package.json
CHANGED
@@ -93,12 +93,8 @@ export class RebalanceSwapManager {
|
|
93
93
|
let debtUsd = this.client.pos.debtUsd(this.priceType);
|
94
94
|
// TODO: add token balance change
|
95
95
|
|
96
|
-
const {
|
97
|
-
|
98
|
-
biasedInputPrice,
|
99
|
-
output,
|
100
|
-
biasedOutputPrice,
|
101
|
-
} = this.swapDetails();
|
96
|
+
const { input, biasedInputPrice, output, biasedOutputPrice } =
|
97
|
+
this.swapDetails();
|
102
98
|
|
103
99
|
const swapInputAmount = swapInputAmountBaseUnit
|
104
100
|
? fromBaseUnit(
|
@@ -125,7 +121,9 @@ export class RebalanceSwapManager {
|
|
125
121
|
const res = applyDebtAdjustmentUsd(
|
126
122
|
{
|
127
123
|
debtAdjustmentUsd: this.isBoost() ? swapInputUsd : swapInputUsd * -1,
|
128
|
-
debtAdjustmentUsdOutput: this.isBoost()
|
124
|
+
debtAdjustmentUsdOutput: this.isBoost()
|
125
|
+
? swapOutputUsd
|
126
|
+
: swapOutputUsd * -1,
|
129
127
|
},
|
130
128
|
{ supplyUsd, debtUsd },
|
131
129
|
fromBps(this.client.pos.state.liqThresholdBps),
|
@@ -177,8 +175,11 @@ export class RebalanceSwapManager {
|
|
177
175
|
BigInt(parseInt(swapQuote.inAmount))
|
178
176
|
);
|
179
177
|
const exceedsMinOutput = criteria.minOutputAmount
|
180
|
-
|
181
|
-
|
178
|
+
? outputAmount < Number(criteria.minOutputAmount)
|
179
|
+
: false;
|
180
|
+
const exceedsMaxRate = criteria.maxLiqUtilizationRateBps
|
181
|
+
? postRebalanceRate > criteria.maxLiqUtilizationRateBps
|
182
|
+
: false;
|
182
183
|
insufficient = exceedsMinOutput || exceedsMaxRate;
|
183
184
|
|
184
185
|
consoleLog(postRebalanceRate, criteria.maxLiqUtilizationRateBps);
|
@@ -210,9 +211,7 @@ export class RebalanceSwapManager {
|
|
210
211
|
? output.amountUsed.baseUnit +
|
211
212
|
BigInt(
|
212
213
|
Math.round(
|
213
|
-
Number(output.amountUsed.baseUnit) *
|
214
|
-
// Add this small percentage to account for the APR on the debt between now and the transaction
|
215
|
-
0.0001
|
214
|
+
Number(output.amountUsed.baseUnit) * fromBps(this.solautoFeeBps)
|
216
215
|
)
|
217
216
|
)
|
218
217
|
: toBaseUnit(this.usdToSwap() / biasedOutputPrice, output.decimals);
|
@@ -104,9 +104,6 @@ export class TransactionsManager<T extends TxHandler> {
|
|
104
104
|
consoleLog(`Reassembling ${items.length} items`);
|
105
105
|
|
106
106
|
const txItems = items.sort((a, b) => a.orderPrio - b.orderPrio);
|
107
|
-
const splitTxsGenerously = this.statuses.find(
|
108
|
-
(x) => x.moreInfo === "ProgramFailedToComplete"
|
109
|
-
);
|
110
107
|
|
111
108
|
for (let i = txItems.length - 1; i >= 0; ) {
|
112
109
|
let item = txItems[i];
|
@@ -129,12 +126,7 @@ export class TransactionsManager<T extends TxHandler> {
|
|
129
126
|
]);
|
130
127
|
for (let j = i; j >= 0; j--) {
|
131
128
|
const tx = txItems[j];
|
132
|
-
|
133
|
-
splitTxsGenerously &&
|
134
|
-
j < i &&
|
135
|
-
txItems[j + 1].name?.toLowerCase() === "rebalance";
|
136
|
-
|
137
|
-
if ((await newSet.fitsWith(tx)) && !separateTx) {
|
129
|
+
if ((await newSet.fitsWith(tx))) {
|
138
130
|
newSet.prepend(tx);
|
139
131
|
i--;
|
140
132
|
} else {
|