@haven-fi/solauto-sdk 1.0.697 → 1.0.699
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 +6 -4
- package/dist/utils/marginfi/data.d.ts.map +1 -1
- package/dist/utils/marginfi/data.js +3 -0
- package/dist/utils/priceUtils.d.ts.map +1 -1
- package/dist/utils/priceUtils.js +5 -5
- package/package.json +1 -1
- package/src/services/rebalance/rebalanceSwapManager.ts +7 -4
- package/src/utils/marginfi/data.ts +4 -0
- package/src/utils/priceUtils.ts +8 -7
@@ -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,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAiC,MAAM,iBAAiB,CAAC;
|
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,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAiC,MAAM,iBAAiB,CAAC;AAU3E,qBAAa,oBAAoB;IAQ7B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,cAAc,CAAC;IACvB,OAAO,CAAC,2BAA2B,CAAC;IACpC,OAAO,CAAC,SAAS,CAAC;IAXb,UAAU,EAAG,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,cAAc,CAAkB;gBAG9B,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;IAK/B,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,WAAW;IA6BnB,OAAO,CAAC,kCAAkC;YA4B5B,mBAAmB;IAoCjC,OAAO,CAAC,mBAAmB;IAIrB,aAAa,CAAC,UAAU,EAAE,MAAM;IAyEhC,aAAa;;;;;;CAWpB"}
|
@@ -27,10 +27,12 @@ class RebalanceSwapManager {
|
|
27
27
|
const output = this.isBoost()
|
28
28
|
? this.client.pos.state.supply
|
29
29
|
: this.client.pos.state.debt;
|
30
|
-
const supplyPrice = this.client.pos.supplyPrice(this.priceType)
|
31
|
-
const debtPrice = this.client.pos.debtPrice(this.priceType)
|
32
|
-
const inputPrice = this.isBoost() ? debtPrice : supplyPrice;
|
33
|
-
const outputPrice = this.isBoost() ? supplyPrice : debtPrice;
|
30
|
+
// const supplyPrice = this.client.pos.supplyPrice(this.priceType)!;
|
31
|
+
// const debtPrice = this.client.pos.debtPrice(this.priceType)!;
|
32
|
+
// const inputPrice = this.isBoost() ? debtPrice : supplyPrice;
|
33
|
+
// const outputPrice = this.isBoost() ? supplyPrice : debtPrice;
|
34
|
+
const inputPrice = (0, utils_1.safeGetPrice)((0, umi_web3js_adapters_1.toWeb3JsPublicKey)(input.mint), this.priceType);
|
35
|
+
const outputPrice = (0, utils_1.safeGetPrice)((0, umi_web3js_adapters_1.toWeb3JsPublicKey)(output.mint), this.priceType);
|
34
36
|
let inputAmount = (0, utils_1.toBaseUnit)(this.usdToSwap() / inputPrice, input.decimals);
|
35
37
|
return {
|
36
38
|
inputAmount,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/utils/marginfi/data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAa,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAsB,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAO/E,OAAO,EACL,IAAI,EAGJ,eAAe,EAIhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAgBjD,wBAAsB,mCAAmC,CACvD,GAAG,EAAE,GAAG,EACR,aAAa,EAAE,SAAS,EACxB,MAAM,EAAE;IACN,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACpB,EACD,IAAI,EAAE;IACJ,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACpB,EACD,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA8C3B;AAED,wBAAsB,mCAAmC,CACvD,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,eAAe,EAAE,CAAC,CA6B5B;AAED,wBAAsB,iCAAiC,CACrD,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,EACpB,KAAK,CAAC,EAAE,SAAS,EACjB,qBAAqB,CAAC,EAAE,OAAO,GAC9B,OAAO,CACR;IAAE,eAAe,EAAE,SAAS,CAAC;IAAC,UAAU,CAAC,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,EAAE,CAC/E,CAyDA;AAED,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,IAAI,GAAG,IAAI,EACjB,kBAAkB,EAAE,OAAO,UAqB5B;AA0DD,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,KAAK,UAAU,GAAG;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;CAAE,CAAC;AAwBhE,wBAAsB,+BAA+B,CACnD,GAAG,EAAE,GAAG,EACR,aAAa,EAAE;IAAE,EAAE,CAAC,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;CAAE,EAChE,aAAa,CAAC,EAAE,SAAS,EACzB,MAAM,CAAC,EAAE,aAAa,EACtB,IAAI,CAAC,EAAE,aAAa,EACpB,cAAc,CAAC,EAAE,cAAc,EAC/B,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CACN;IACE,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC;IACtB,aAAa,EAAE,SAAS,CAAC;IACzB,KAAK,EAAE,aAAa,CAAC;CACtB,GACD,SAAS,CACZ,
|
1
|
+
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/utils/marginfi/data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAa,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAsB,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAO/E,OAAO,EACL,IAAI,EAGJ,eAAe,EAIhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAgBjD,wBAAsB,mCAAmC,CACvD,GAAG,EAAE,GAAG,EACR,aAAa,EAAE,SAAS,EACxB,MAAM,EAAE;IACN,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACpB,EACD,IAAI,EAAE;IACJ,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACpB,EACD,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA8C3B;AAED,wBAAsB,mCAAmC,CACvD,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,eAAe,EAAE,CAAC,CA6B5B;AAED,wBAAsB,iCAAiC,CACrD,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,EACpB,KAAK,CAAC,EAAE,SAAS,EACjB,qBAAqB,CAAC,EAAE,OAAO,GAC9B,OAAO,CACR;IAAE,eAAe,EAAE,SAAS,CAAC;IAAC,UAAU,CAAC,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,EAAE,CAC/E,CAyDA;AAED,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,IAAI,GAAG,IAAI,EACjB,kBAAkB,EAAE,OAAO,UAqB5B;AA0DD,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,KAAK,UAAU,GAAG;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;CAAE,CAAC;AAwBhE,wBAAsB,+BAA+B,CACnD,GAAG,EAAE,GAAG,EACR,aAAa,EAAE;IAAE,EAAE,CAAC,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;CAAE,EAChE,aAAa,CAAC,EAAE,SAAS,EACzB,MAAM,CAAC,EAAE,aAAa,EACtB,IAAI,CAAC,EAAE,aAAa,EACpB,cAAc,CAAC,EAAE,cAAc,EAC/B,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CACN;IACE,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC;IACtB,aAAa,EAAE,SAAS,CAAC;IACzB,KAAK,EAAE,aAAa,CAAC;CACtB,GACD,SAAS,CACZ,CAmLA;AA+DD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,oBAU7C;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAgBnE"}
|
@@ -191,6 +191,9 @@ async function getMarginfiAccountPositionState(umi, lpUserAccount, marginfiGroup
|
|
191
191
|
let debtBank = await getBank(umi, debt, marginfiGroup);
|
192
192
|
let supplyUsage = undefined;
|
193
193
|
let debtUsage = undefined;
|
194
|
+
if (supply.mint && debt.mint) {
|
195
|
+
await (0, priceUtils_1.fetchTokenPrices)([supply.mint, debt.mint]);
|
196
|
+
}
|
194
197
|
if (marginfiAccount !== null &&
|
195
198
|
marginfiAccount.lendingAccount.balances.filter((x) => x.active).length > 0) {
|
196
199
|
const supplyBalances = marginfiAccount.lendingAccount.balances.filter((balance) => balance.active && (0, numberUtils_1.bytesToI80F48)(balance.assetShares.value) > 0);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"priceUtils.d.ts","sourceRoot":"","sources":["../../src/utils/priceUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAerE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,UAAU,WAAW;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,SAAS,EAAE,EAClB,SAAS,GAAE,SAA8B,EACzC,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,MAAM,EAAE,CAAC,CA0CnB;AAED,wBAAsB,aAAa,CACjC,KAAK,EAAE,SAAS,EAAE,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,
|
1
|
+
{"version":3,"file":"priceUtils.d.ts","sourceRoot":"","sources":["../../src/utils/priceUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAerE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,UAAU,WAAW;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,SAAS,EAAE,EAClB,SAAS,GAAE,SAA8B,EACzC,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,MAAM,EAAE,CAAC,CA0CnB;AAED,wBAAsB,aAAa,CACjC,KAAK,EAAE,SAAS,EAAE,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAqDtC;AAkBD,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,SAAS,EAAE,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CA+CtC;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,SAAS,EAAE,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAiBtC;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,SAAS,GAAG,YAAY,GAAG,MAAM,GAAG,SAAS,EACnD,SAAS,GAAE,SAA8B,EACzC,SAAS,CAAC,EAAE,SAAS,GACpB,MAAM,GAAG,SAAS,CAyBpB"}
|
package/dist/utils/priceUtils.js
CHANGED
@@ -163,16 +163,16 @@ function safeGetPrice(mint, priceType = generated_1.PriceType.Realtime, priceBia
|
|
163
163
|
? priceData.emaPrice
|
164
164
|
: priceData.realtimePrice;
|
165
165
|
if (priceBias !== undefined) {
|
166
|
-
const confInterval = priceType === generated_1.PriceType.Ema
|
166
|
+
const confInterval = priceType === generated_1.PriceType.Ema
|
167
|
+
? priceData.emaConfInterval
|
168
|
+
: priceData.confInterval;
|
167
169
|
const conf = Math.min(confInterval, price * 0.05);
|
168
|
-
(0, generalUtils_1.consoleLog)("before", price);
|
169
170
|
if (priceBias === marginfi_sdk_1.PriceBias.Low) {
|
170
|
-
price
|
171
|
+
price -= conf;
|
171
172
|
}
|
172
173
|
else {
|
173
|
-
price
|
174
|
+
price += conf;
|
174
175
|
}
|
175
|
-
(0, generalUtils_1.consoleLog)("after", price);
|
176
176
|
}
|
177
177
|
return price;
|
178
178
|
}
|
package/package.json
CHANGED
@@ -9,6 +9,7 @@ import {
|
|
9
9
|
consoleLog,
|
10
10
|
fromBaseUnit,
|
11
11
|
getLiqUtilzationRateBps,
|
12
|
+
safeGetPrice,
|
12
13
|
toBaseUnit,
|
13
14
|
tokenInfo,
|
14
15
|
} from "../../utils";
|
@@ -46,10 +47,12 @@ export class RebalanceSwapManager {
|
|
46
47
|
? this.client.pos.state.supply
|
47
48
|
: this.client.pos.state.debt;
|
48
49
|
|
49
|
-
const supplyPrice = this.client.pos.supplyPrice(this.priceType)!;
|
50
|
-
const debtPrice = this.client.pos.debtPrice(this.priceType)!;
|
51
|
-
const inputPrice = this.isBoost() ? debtPrice : supplyPrice;
|
52
|
-
const outputPrice = this.isBoost() ? supplyPrice : debtPrice;
|
50
|
+
// const supplyPrice = this.client.pos.supplyPrice(this.priceType)!;
|
51
|
+
// const debtPrice = this.client.pos.debtPrice(this.priceType)!;
|
52
|
+
// const inputPrice = this.isBoost() ? debtPrice : supplyPrice;
|
53
|
+
// const outputPrice = this.isBoost() ? supplyPrice : debtPrice;
|
54
|
+
const inputPrice = safeGetPrice(toWeb3JsPublicKey(input.mint), this.priceType)!;
|
55
|
+
const outputPrice = safeGetPrice(toWeb3JsPublicKey(output.mint), this.priceType)!;
|
53
56
|
|
54
57
|
let inputAmount = toBaseUnit(
|
55
58
|
this.usdToSwap() / inputPrice!,
|
@@ -345,6 +345,10 @@ export async function getMarginfiAccountPositionState(
|
|
345
345
|
let supplyUsage: PositionTokenState | undefined = undefined;
|
346
346
|
let debtUsage: PositionTokenState | undefined = undefined;
|
347
347
|
|
348
|
+
if (supply.mint && debt.mint) {
|
349
|
+
await fetchTokenPrices([supply.mint, debt.mint]);
|
350
|
+
}
|
351
|
+
|
348
352
|
if (
|
349
353
|
marginfiAccount !== null &&
|
350
354
|
marginfiAccount.lendingAccount.balances.filter((x) => x.active).length > 0
|
package/src/utils/priceUtils.ts
CHANGED
@@ -112,7 +112,8 @@ export async function getPythPrices(
|
|
112
112
|
realtimePrice: deriveValue(x.price.price, x.price.expo),
|
113
113
|
confInterval: deriveValue(x.price.conf, x.price.expo) * 2.12,
|
114
114
|
emaPrice: deriveValue(x.ema_price.price, x.ema_price.expo),
|
115
|
-
emaConfInterval:
|
115
|
+
emaConfInterval:
|
116
|
+
deriveValue(x.ema_price.conf, x.ema_price.expo) * 2.12,
|
116
117
|
};
|
117
118
|
});
|
118
119
|
|
@@ -229,17 +230,17 @@ export function safeGetPrice(
|
|
229
230
|
: priceData.realtimePrice;
|
230
231
|
|
231
232
|
if (priceBias !== undefined) {
|
232
|
-
const confInterval =
|
233
|
+
const confInterval =
|
234
|
+
priceType === PriceType.Ema
|
235
|
+
? priceData.emaConfInterval
|
236
|
+
: priceData.confInterval;
|
233
237
|
const conf = Math.min(confInterval, price * 0.05);
|
234
238
|
|
235
|
-
consoleLog("before", price);
|
236
239
|
if (priceBias === PriceBias.Low) {
|
237
|
-
price
|
240
|
+
price -= conf;
|
238
241
|
} else {
|
239
|
-
price
|
242
|
+
price += conf;
|
240
243
|
}
|
241
|
-
consoleLog("after", price);
|
242
|
-
|
243
244
|
}
|
244
245
|
|
245
246
|
return price;
|