@haven-fi/solauto-sdk 1.0.772 → 1.0.774
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/rebalanceValues.js +2 -2
- package/dist/solautoPosition/marginfiSolautoPositionEx.d.ts +2 -2
- package/dist/solautoPosition/marginfiSolautoPositionEx.d.ts.map +1 -1
- package/dist/solautoPosition/marginfiSolautoPositionEx.js +5 -4
- package/dist/solautoPosition/solautoPositionEx.d.ts +5 -5
- package/dist/solautoPosition/solautoPositionEx.d.ts.map +1 -1
- package/dist/solautoPosition/solautoPositionEx.js +12 -10
- package/dist/utils/generalUtils.d.ts.map +1 -1
- package/dist/utils/generalUtils.js +3 -0
- package/local/txSandbox.ts +26 -34
- package/package.json +1 -1
- package/src/services/rebalance/rebalanceValues.ts +2 -2
- package/src/solautoPosition/marginfiSolautoPositionEx.ts +16 -4
- package/src/solautoPosition/solautoPositionEx.ts +14 -11
- package/src/utils/generalUtils.ts +3 -0
@@ -59,11 +59,11 @@ function getTargetLiqUtilizationRateBps(solautoPosition, priceType, targetLiqUti
|
|
59
59
|
if (targetLiqUtilizationRateBps !== undefined) {
|
60
60
|
return targetLiqUtilizationRateBps;
|
61
61
|
}
|
62
|
-
if (solautoPosition.liqUtilizationRateBps(generated_1.PriceType.Realtime) + (bpsDistanceFromRebalance ?? 0) >=
|
62
|
+
if (solautoPosition.liqUtilizationRateBps(generated_1.PriceType.Realtime, true) + (bpsDistanceFromRebalance ?? 0) >=
|
63
63
|
solautoPosition.repayFromBps) {
|
64
64
|
return solautoPosition.settings.repayToBps;
|
65
65
|
}
|
66
|
-
else if (solautoPosition.liqUtilizationRateBps(priceType) - (bpsDistanceFromRebalance ?? 0) <=
|
66
|
+
else if (solautoPosition.liqUtilizationRateBps(priceType, true) - (bpsDistanceFromRebalance ?? 0) <=
|
67
67
|
solautoPosition.boostFromBps) {
|
68
68
|
return solautoPosition.settings.boostToBps;
|
69
69
|
}
|
@@ -7,8 +7,8 @@ export declare class MarginfiSolautoPositionEx extends SolautoPositionEx {
|
|
7
7
|
maxLtvPriceType: PriceType;
|
8
8
|
supplyBank: Bank | null;
|
9
9
|
debtBank: Bank | null;
|
10
|
-
supplyPrice(priceType?: PriceType): number | undefined;
|
11
|
-
debtPrice(priceType?: PriceType): number | undefined;
|
10
|
+
supplyPrice(priceType?: PriceType, withoutBias?: boolean): number | undefined;
|
11
|
+
debtPrice(priceType?: PriceType, withoutBias?: boolean): number | undefined;
|
12
12
|
private getBankAccounts;
|
13
13
|
getBanks(): Promise<Bank[]>;
|
14
14
|
priceOracles(): Promise<PublicKey[]>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"marginfiSolautoPositionEx.d.ts","sourceRoot":"","sources":["../../src/solautoPosition/marginfiSolautoPositionEx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAA+B,MAAM,0BAA0B,CAAC;AAgB7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE1D,qBAAa,yBAA0B,SAAQ,iBAAiB;IAC9D,eAAe,kBAA4B;IAC3C,eAAe,YAAiB;IAEzB,UAAU,EAAE,IAAI,GAAG,IAAI,CAAQ;IAC/B,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAQ;IAEpC,WAAW,
|
1
|
+
{"version":3,"file":"marginfiSolautoPositionEx.d.ts","sourceRoot":"","sources":["../../src/solautoPosition/marginfiSolautoPositionEx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAA+B,MAAM,0BAA0B,CAAC;AAgB7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE1D,qBAAa,yBAA0B,SAAQ,iBAAiB;IAC9D,eAAe,kBAA4B;IAC3C,eAAe,YAAiB;IAEzB,UAAU,EAAE,IAAI,GAAG,IAAI,CAAQ;IAC/B,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAQ;IAEpC,WAAW,CACT,SAAS,CAAC,EAAE,SAAS,EACrB,WAAW,CAAC,EAAE,OAAO,GACpB,MAAM,GAAG,SAAS;IAWrB,SAAS,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS;IAW3E,OAAO,CAAC,eAAe;IAMjB,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAW3B,YAAY,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IASpC,wBAAwB,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAa3D,OAAO,CAAC,6BAA6B;IAwBrC,gCAAgC,CAAC,KAAK,EAAE,IAAI,EAAE;IAK9C,4BAA4B,CAAC,KAAK,EAAE,IAAI,EAAE;IAQ1C,IAAI,eAAe,cAElB;IAED,IAAI,aAAa,cAEhB;IAED,IAAI,wBAAwB,IAAI,MAAM,CAKrC;IAED,IAAI,qBAAqB,IAAI,MAAM,CAUlC;IAEK,oBAAoB,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;CA2BjE"}
|
@@ -16,12 +16,13 @@ class MarginfiSolautoPositionEx extends solautoPositionEx_1.SolautoPositionEx {
|
|
16
16
|
this.supplyBank = null;
|
17
17
|
this.debtBank = null;
|
18
18
|
}
|
19
|
-
supplyPrice(priceType) {
|
19
|
+
supplyPrice(priceType, withoutBias) {
|
20
20
|
return (this._supplyPrice ??
|
21
|
-
(0, utils_1.safeGetPrice)(this.supplyMint, priceType, marginfi_1.PriceBias.Low));
|
21
|
+
(0, utils_1.safeGetPrice)(this.supplyMint, priceType, !withoutBias ? marginfi_1.PriceBias.Low : undefined));
|
22
22
|
}
|
23
|
-
debtPrice(priceType) {
|
24
|
-
return (this._debtPrice ??
|
23
|
+
debtPrice(priceType, withoutBias) {
|
24
|
+
return (this._debtPrice ??
|
25
|
+
(0, utils_1.safeGetPrice)(this.debtMint, priceType, !withoutBias ? marginfi_1.PriceBias.High : undefined));
|
25
26
|
}
|
26
27
|
getBankAccounts(mint) {
|
27
28
|
const group = this.lpPoolAccount.toString();
|
@@ -49,7 +49,7 @@ export declare abstract class SolautoPositionEx {
|
|
49
49
|
get positionType(): import("../generated").PositionType | undefined;
|
50
50
|
get strategyName(): string;
|
51
51
|
get lpPoolAccount(): PublicKey;
|
52
|
-
liqUtilizationRateBps(priceType?: PriceType): number;
|
52
|
+
liqUtilizationRateBps(priceType?: PriceType, withoutBias?: boolean): number;
|
53
53
|
protected get data(): SolautoPositionExData;
|
54
54
|
get state(): PositionState;
|
55
55
|
get settings(): SolautoSettingsParameters | undefined;
|
@@ -68,11 +68,11 @@ export declare abstract class SolautoPositionEx {
|
|
68
68
|
get netWorth(): number;
|
69
69
|
netWorthUsd(priceType?: PriceType): number;
|
70
70
|
get totalSupply(): number;
|
71
|
-
supplyUsd(priceType?: PriceType): number;
|
72
|
-
supplyPrice(priceType?: PriceType): number | undefined;
|
71
|
+
supplyUsd(priceType?: PriceType, withoutBias?: boolean): number;
|
72
|
+
supplyPrice(priceType?: PriceType, withoutBias?: boolean): number | undefined;
|
73
73
|
get totalDebt(): number;
|
74
|
-
debtUsd(priceType?: PriceType): number;
|
75
|
-
debtPrice(priceType?: PriceType): number | undefined;
|
74
|
+
debtUsd(priceType?: PriceType, withoutBias?: boolean): number;
|
75
|
+
debtPrice(priceType?: PriceType, withoutBias?: boolean): number | undefined;
|
76
76
|
get supplyLiquidityDepositable(): number;
|
77
77
|
get supplyLiquidityUsdDepositable(): number;
|
78
78
|
get supplyLiquidityUsdAvailable(): number;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"solautoPositionEx.d.ts","sourceRoot":"","sources":["../../src/solautoPosition/solautoPositionEx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAK/C,OAAO,EAEL,eAAe,EACf,aAAa,EACb,SAAS,EACT,eAAe,EACf,yBAAyB,EAC1B,MAAM,cAAc,CAAC;AACtB,OAAO,EAOL,cAAc,EAkBf,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAMvD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,eAAe,CAAC;IACjC,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB;AAED,UAAU,qBAAsB,SAAQ,OAAO,CAAC,eAAe,CAAC;IAC9D,KAAK,EAAE,aAAa,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,GAAG,CAAC;IACT,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,qBAAqB,CAAC;IAC5B,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,8BAAsB,iBAAiB;IAC9B,GAAG,EAAG,GAAG,CAAC;IACjB,SAAS,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IAEnC,SAAS,EAAG,SAAS,CAAC;IACtB,eAAe,EAAG,eAAe,CAAC;IAClC,UAAU,EAAG,MAAM,CAAC;IACpB,SAAS,EAAG,SAAS,CAAC;IAC7B,SAAS,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC;IAC9B,aAAa,CAAC,EAAE,SAAS,CAAa;IAC7C,SAAS,CAAC,KAAK,EAAG,UAAU,CAAC;IAC7B,OAAO,CAAC,WAAW,CAAC,CAAY;IAChC,OAAO,CAAC,SAAS,CAAC,CAAY;IAC9B,SAAS,CAAC,KAAK,EAAG,qBAAqB,CAAC;IAExC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;IAE5C,SAAS,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEvB,SAAS,EAAG,uBAAuB,CAAC;IACpC,eAAe,EAAG,SAAS,CAAC;gBAEvB,IAAI,EAAE,cAAc;IA8BhC,IAAI,MAAM,YAET;IAED,IAAI,WAAW,YAEd;IAED,IAAI,YAAY,oDAEf;IAED,IAAI,YAAY,WAEf;IAED,IAAI,aAAa,cAKhB;IAED,qBAAqB,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,MAAM;
|
1
|
+
{"version":3,"file":"solautoPositionEx.d.ts","sourceRoot":"","sources":["../../src/solautoPosition/solautoPositionEx.ts"],"names":[],"mappings":"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"}
|
@@ -44,8 +44,8 @@ class SolautoPositionEx {
|
|
44
44
|
return (this._lpPoolAccount ??
|
45
45
|
(0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.data.position.lpPoolAccount));
|
46
46
|
}
|
47
|
-
liqUtilizationRateBps(priceType) {
|
48
|
-
return (0, utils_1.getLiqUtilzationRateBps)(this.supplyUsd(priceType), this.debtUsd(priceType), this.state.liqThresholdBps);
|
47
|
+
liqUtilizationRateBps(priceType, withoutBias) {
|
48
|
+
return (0, utils_1.getLiqUtilzationRateBps)(this.supplyUsd(priceType, withoutBias), this.debtUsd(priceType, withoutBias), this.state.liqThresholdBps);
|
49
49
|
}
|
50
50
|
get data() {
|
51
51
|
return this._data;
|
@@ -101,25 +101,25 @@ class SolautoPositionEx {
|
|
101
101
|
get totalSupply() {
|
102
102
|
return (0, utils_1.calcTotalSupply)(this.state);
|
103
103
|
}
|
104
|
-
supplyUsd(priceType) {
|
105
|
-
const supplyPrice = this.supplyPrice(priceType);
|
104
|
+
supplyUsd(priceType, withoutBias) {
|
105
|
+
const supplyPrice = this.supplyPrice(priceType, withoutBias);
|
106
106
|
return supplyPrice
|
107
107
|
? (0, utils_1.calcTotalSupply)(this.state) * supplyPrice
|
108
108
|
: (0, utils_1.calcSupplyUsd)(this.state);
|
109
109
|
}
|
110
|
-
supplyPrice(priceType) {
|
110
|
+
supplyPrice(priceType, withoutBias) {
|
111
111
|
return this._supplyPrice ?? (0, utils_1.safeGetPrice)(this.supplyMint, priceType);
|
112
112
|
}
|
113
113
|
get totalDebt() {
|
114
114
|
return (0, utils_1.calcTotalDebt)(this.state);
|
115
115
|
}
|
116
|
-
debtUsd(priceType) {
|
117
|
-
const debtPrice = this.debtPrice(priceType);
|
116
|
+
debtUsd(priceType, withoutBias) {
|
117
|
+
const debtPrice = this.debtPrice(priceType, withoutBias);
|
118
118
|
return debtPrice
|
119
119
|
? (0, utils_1.calcTotalDebt)(this.state) * debtPrice
|
120
120
|
: (0, utils_1.calcDebtUsd)(this.state);
|
121
121
|
}
|
122
|
-
debtPrice(priceType) {
|
122
|
+
debtPrice(priceType, withoutBias) {
|
123
123
|
return this._debtPrice ?? (0, utils_1.safeGetPrice)(this.debtMint, priceType);
|
124
124
|
}
|
125
125
|
get supplyLiquidityDepositable() {
|
@@ -244,14 +244,16 @@ class PositionRebalanceHelper {
|
|
244
244
|
}, this.pos.boostToBps, { solauto: 25, lpBorrow: 0, flashLoan: 0 } // Undershoot fees
|
245
245
|
);
|
246
246
|
return (this.validRealtimePricesBoost(debtAdjustmentUsd) ||
|
247
|
-
this.pos.liqUtilizationRateBps(generated_1.PriceType.Ema) -
|
247
|
+
this.pos.liqUtilizationRateBps(generated_1.PriceType.Ema, true) -
|
248
|
+
this.pos.boostFromBps <=
|
248
249
|
bpsDistanceThreshold);
|
249
250
|
}
|
250
251
|
eligibleForRebalance(bpsDistanceThreshold, skipExtraChecks) {
|
251
252
|
if (this.pos.selfManaged || !this.pos.supplyUsd()) {
|
252
253
|
return undefined;
|
253
254
|
}
|
254
|
-
const realtimeLiqUtilRateBps = this.pos.liqUtilizationRateBps(generated_1.PriceType.Realtime);
|
255
|
+
const realtimeLiqUtilRateBps = this.pos.liqUtilizationRateBps(generated_1.PriceType.Realtime, true);
|
256
|
+
console.log(realtimeLiqUtilRateBps, this.pos.boostFromBps);
|
255
257
|
if (this.pos.repayFromBps - realtimeLiqUtilRateBps <=
|
256
258
|
bpsDistanceThreshold) {
|
257
259
|
return "repay";
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"generalUtils.d.ts","sourceRoot":"","sources":["../../src/utils/generalUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EACL,eAAe,EAEf,GAAG,EACH,SAAS,IAAI,YAAY,EAC1B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAc,SAAS,EAAE,MAAM,cAAc,CAAC;AAErD,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,UAErD;AAED,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,MAAM,UAE3D;AAED,wBAAgB,UAAU,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAI/C;AAED,wBAAgB,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAErD;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAW1D;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,yBAQ/C;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC,EAAE,EAAE,CAMlE;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAO1C;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,SAAS,GACZ,OAAO,CAAC,OAAO,CAAC,CAKlB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAEnE;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAU1E;AAED,wBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAS1D;AAED,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,KAAK,CAAC,CAAC;AAEjE,wBAAgB,2BAA2B,CAAC,CAAC,EAC3C,EAAE,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,EACvD,OAAO,GAAE,MAAU,EACnB,KAAK,GAAE,MAAY,EACnB,aAAa,CAAC,EAAE,aAAa,GAC5B,OAAO,CAAC,CAAC,CAAC,CA8BZ;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAC1C,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,MAAM,GACZ,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAUxB;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,
|
1
|
+
{"version":3,"file":"generalUtils.d.ts","sourceRoot":"","sources":["../../src/utils/generalUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EACL,eAAe,EAEf,GAAG,EACH,SAAS,IAAI,YAAY,EAC1B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAc,SAAS,EAAE,MAAM,cAAc,CAAC;AAErD,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,UAErD;AAED,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,MAAM,UAE3D;AAED,wBAAgB,UAAU,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAI/C;AAED,wBAAgB,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAErD;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAW1D;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,yBAQ/C;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC,EAAE,EAAE,CAMlE;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAO1C;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,SAAS,GACZ,OAAO,CAAC,OAAO,CAAC,CAKlB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAEnE;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAU1E;AAED,wBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAS1D;AAED,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,KAAK,CAAC,CAAC;AAEjE,wBAAgB,2BAA2B,CAAC,CAAC,EAC3C,EAAE,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,EACvD,OAAO,GAAE,MAAU,EACnB,KAAK,GAAE,MAAY,EACnB,aAAa,CAAC,EAAE,aAAa,GAC5B,OAAO,CAAC,CAAC,CAAC,CA8BZ;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAC1C,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,MAAM,GACZ,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAUxB;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,gBA0BzE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAU5D;AAED,wBAAgB,WAAW,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,YAAY,GAAG,MAAM,WAErE;AAED,wBAAgB,YAAY,CAAC,CAAC,EAC5B,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,EAAE,CAAC,EAAE,GACV,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAInB"}
|
package/local/txSandbox.ts
CHANGED
@@ -7,7 +7,6 @@ import {
|
|
7
7
|
getBatches,
|
8
8
|
getClient,
|
9
9
|
getPositionExBulk,
|
10
|
-
getQnComputeUnitPriceEstimate,
|
11
10
|
getSolanaRpcConnection,
|
12
11
|
getSolautoManagedPositions,
|
13
12
|
LendingPlatform,
|
@@ -39,39 +38,32 @@ const signer = createSignerFromKeypair(
|
|
39
38
|
);
|
40
39
|
|
41
40
|
export async function main() {
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
const res = await getQnComputeUnitPriceEstimate(
|
70
|
-
umi,
|
71
|
-
new PublicKey("JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4")
|
72
|
-
);
|
73
|
-
|
74
|
-
console.log(res);
|
41
|
+
const client = getClient(LendingPlatform.Marginfi, {
|
42
|
+
signer,
|
43
|
+
showLogs: true,
|
44
|
+
rpcUrl: LOCAL_IRONFORGE_API_URL,
|
45
|
+
programId: testProgram ? SOLAUTO_TEST_PROGRAM : SOLAUTO_PROD_PROGRAM,
|
46
|
+
lpEnv,
|
47
|
+
});
|
48
|
+
|
49
|
+
await client.initializeExistingSolautoPosition({
|
50
|
+
positionId: 1,
|
51
|
+
authority: new PublicKey("61rtn5tzVkesapo6Cz83SPoShUfAePSxJsqniuF2wRKC"),
|
52
|
+
// lpUserAccount: new PublicKey(
|
53
|
+
// "GEokw9jqbh6d1xUNA3qaeYFFetbSR5Y1nt7C3chwwgSz"
|
54
|
+
// ),
|
55
|
+
});
|
56
|
+
|
57
|
+
const transactionItems = [rebalance(client)];
|
58
|
+
|
59
|
+
const txManager = new ClientTransactionsManager({
|
60
|
+
txHandler: client,
|
61
|
+
txRunType: payForTransaction ? "normal" : "only-simulate",
|
62
|
+
priorityFeeSetting: PriorityFeeSetting.Default,
|
63
|
+
retryConfig: { totalRetries: 2 },
|
64
|
+
});
|
65
|
+
const statuses = await txManager.send(transactionItems);
|
66
|
+
consoleLog(statuses);
|
75
67
|
}
|
76
68
|
|
77
69
|
async function refreshAll() {
|
package/package.json
CHANGED
@@ -132,12 +132,12 @@ function getTargetLiqUtilizationRateBps(
|
|
132
132
|
}
|
133
133
|
|
134
134
|
if (
|
135
|
-
solautoPosition.liqUtilizationRateBps(PriceType.Realtime) + (bpsDistanceFromRebalance ?? 0) >=
|
135
|
+
solautoPosition.liqUtilizationRateBps(PriceType.Realtime, true) + (bpsDistanceFromRebalance ?? 0) >=
|
136
136
|
solautoPosition.repayFromBps
|
137
137
|
) {
|
138
138
|
return solautoPosition.settings!.repayToBps;
|
139
139
|
} else if (
|
140
|
-
solautoPosition.liqUtilizationRateBps(priceType) - (bpsDistanceFromRebalance ?? 0) <=
|
140
|
+
solautoPosition.liqUtilizationRateBps(priceType, true) - (bpsDistanceFromRebalance ?? 0) <=
|
141
141
|
solautoPosition.boostFromBps
|
142
142
|
) {
|
143
143
|
return solautoPosition.settings!.boostToBps;
|
@@ -25,16 +25,28 @@ export class MarginfiSolautoPositionEx extends SolautoPositionEx {
|
|
25
25
|
public supplyBank: Bank | null = null;
|
26
26
|
public debtBank: Bank | null = null;
|
27
27
|
|
28
|
-
supplyPrice(
|
28
|
+
supplyPrice(
|
29
|
+
priceType?: PriceType,
|
30
|
+
withoutBias?: boolean
|
31
|
+
): number | undefined {
|
29
32
|
return (
|
30
33
|
this._supplyPrice ??
|
31
|
-
safeGetPrice(
|
34
|
+
safeGetPrice(
|
35
|
+
this.supplyMint,
|
36
|
+
priceType,
|
37
|
+
!withoutBias ? PriceBias.Low : undefined
|
38
|
+
)
|
32
39
|
);
|
33
40
|
}
|
34
41
|
|
35
|
-
debtPrice(priceType?: PriceType): number | undefined {
|
42
|
+
debtPrice(priceType?: PriceType, withoutBias?: boolean): number | undefined {
|
36
43
|
return (
|
37
|
-
this._debtPrice ??
|
44
|
+
this._debtPrice ??
|
45
|
+
safeGetPrice(
|
46
|
+
this.debtMint,
|
47
|
+
priceType,
|
48
|
+
!withoutBias ? PriceBias.High : undefined
|
49
|
+
)
|
38
50
|
);
|
39
51
|
}
|
40
52
|
|
@@ -146,10 +146,10 @@ export abstract class SolautoPositionEx {
|
|
146
146
|
);
|
147
147
|
}
|
148
148
|
|
149
|
-
liqUtilizationRateBps(priceType?: PriceType): number {
|
149
|
+
liqUtilizationRateBps(priceType?: PriceType, withoutBias?: boolean): number {
|
150
150
|
return getLiqUtilzationRateBps(
|
151
|
-
this.supplyUsd(priceType),
|
152
|
-
this.debtUsd(priceType),
|
151
|
+
this.supplyUsd(priceType, withoutBias),
|
152
|
+
this.debtUsd(priceType, withoutBias),
|
153
153
|
this.state.liqThresholdBps
|
154
154
|
);
|
155
155
|
}
|
@@ -229,14 +229,14 @@ export abstract class SolautoPositionEx {
|
|
229
229
|
return calcTotalSupply(this.state);
|
230
230
|
}
|
231
231
|
|
232
|
-
supplyUsd(priceType?: PriceType) {
|
233
|
-
const supplyPrice = this.supplyPrice(priceType);
|
232
|
+
supplyUsd(priceType?: PriceType, withoutBias?: boolean) {
|
233
|
+
const supplyPrice = this.supplyPrice(priceType, withoutBias);
|
234
234
|
return supplyPrice
|
235
235
|
? calcTotalSupply(this.state) * supplyPrice
|
236
236
|
: calcSupplyUsd(this.state);
|
237
237
|
}
|
238
238
|
|
239
|
-
supplyPrice(priceType?: PriceType) {
|
239
|
+
supplyPrice(priceType?: PriceType, withoutBias?: boolean) {
|
240
240
|
return this._supplyPrice ?? safeGetPrice(this.supplyMint, priceType);
|
241
241
|
}
|
242
242
|
|
@@ -244,14 +244,14 @@ export abstract class SolautoPositionEx {
|
|
244
244
|
return calcTotalDebt(this.state);
|
245
245
|
}
|
246
246
|
|
247
|
-
debtUsd(priceType?: PriceType) {
|
248
|
-
const debtPrice = this.debtPrice(priceType);
|
247
|
+
debtUsd(priceType?: PriceType, withoutBias?: boolean) {
|
248
|
+
const debtPrice = this.debtPrice(priceType, withoutBias);
|
249
249
|
return debtPrice
|
250
250
|
? calcTotalDebt(this.state) * debtPrice
|
251
251
|
: calcDebtUsd(this.state);
|
252
252
|
}
|
253
253
|
|
254
|
-
debtPrice(priceType?: PriceType) {
|
254
|
+
debtPrice(priceType?: PriceType, withoutBias?: boolean) {
|
255
255
|
return this._debtPrice ?? safeGetPrice(this.debtMint, priceType);
|
256
256
|
}
|
257
257
|
|
@@ -495,7 +495,8 @@ class PositionRebalanceHelper {
|
|
495
495
|
|
496
496
|
return (
|
497
497
|
this.validRealtimePricesBoost(debtAdjustmentUsd) ||
|
498
|
-
this.pos.liqUtilizationRateBps(PriceType.Ema) -
|
498
|
+
this.pos.liqUtilizationRateBps(PriceType.Ema, true) -
|
499
|
+
this.pos.boostFromBps <=
|
499
500
|
bpsDistanceThreshold
|
500
501
|
);
|
501
502
|
}
|
@@ -509,9 +510,11 @@ class PositionRebalanceHelper {
|
|
509
510
|
}
|
510
511
|
|
511
512
|
const realtimeLiqUtilRateBps = this.pos.liqUtilizationRateBps(
|
512
|
-
PriceType.Realtime
|
513
|
+
PriceType.Realtime,
|
514
|
+
true
|
513
515
|
);
|
514
516
|
|
517
|
+
console.log(realtimeLiqUtilRateBps, this.pos.boostFromBps);
|
515
518
|
if (
|
516
519
|
this.pos.repayFromBps - realtimeLiqUtilRateBps <=
|
517
520
|
bpsDistanceThreshold
|