@haven-fi/solauto-sdk 1.0.750 → 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 +3 -2
- 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 +3 -2
@@ -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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"}
|
@@ -63,8 +63,9 @@ class TransactionsManager {
|
|
63
63
|
item,
|
64
64
|
]);
|
65
65
|
for (let j = i; j >= 0; j--) {
|
66
|
-
|
67
|
-
|
66
|
+
const tx = txItems[j];
|
67
|
+
if ((await newSet.fitsWith(tx))) {
|
68
|
+
newSet.prepend(tx);
|
68
69
|
i--;
|
69
70
|
}
|
70
71
|
else {
|
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);
|
@@ -125,8 +125,9 @@ export class TransactionsManager<T extends TxHandler> {
|
|
125
125
|
item,
|
126
126
|
]);
|
127
127
|
for (let j = i; j >= 0; j--) {
|
128
|
-
|
129
|
-
|
128
|
+
const tx = txItems[j];
|
129
|
+
if ((await newSet.fitsWith(tx))) {
|
130
|
+
newSet.prepend(tx);
|
130
131
|
i--;
|
131
132
|
} else {
|
132
133
|
break;
|