@haven-fi/solauto-sdk 1.0.367 → 1.0.369
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/clients/solautoMarginfiClient.js +1 -1
- package/dist/utils/marginfiUtils.d.ts +2 -2
- package/dist/utils/marginfiUtils.d.ts.map +1 -1
- package/dist/utils/marginfiUtils.js +6 -6
- package/dist/utils/solauto/generalUtils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/clients/solautoMarginfiClient.ts +2 -2
- package/src/utils/marginfiUtils.ts +4 -4
- package/src/utils/solauto/generalUtils.ts +2 -0
@@ -114,7 +114,7 @@ class SolautoMarginfiClient extends solautoClient_1.SolautoClient {
|
|
114
114
|
return [0, 0];
|
115
115
|
}
|
116
116
|
else {
|
117
|
-
const [maxLtv, liqThreshold] = await (0, marginfiUtils_1.
|
117
|
+
const [maxLtv, liqThreshold] = await (0, marginfiUtils_1.getMarginfiMaxLtvAndLiqThreshold)(this.umi, this.marginfiGroup, {
|
118
118
|
mint: this.supplyMint,
|
119
119
|
}, {
|
120
120
|
mint: this.debtMint,
|
@@ -8,8 +8,8 @@ interface AllMarginfiAssetAccounts extends MarginfiAssetAccounts {
|
|
8
8
|
mint: PublicKey;
|
9
9
|
}
|
10
10
|
export declare function findMarginfiAccounts(bank: PublicKey): AllMarginfiAssetAccounts;
|
11
|
-
export declare function
|
12
|
-
export declare function
|
11
|
+
export declare function calcMarginfiMaxLtvAndLiqThreshold(supplyBank: Bank, debtBank: Bank, supplyPrice: number): [number, number];
|
12
|
+
export declare function getMarginfiMaxLtvAndLiqThreshold(umi: Umi, marginfiGroup: PublicKey, supply: {
|
13
13
|
mint: PublicKey;
|
14
14
|
bank?: Bank | null;
|
15
15
|
}, debt: {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"marginfiUtils.d.ts","sourceRoot":"","sources":["../../src/utils/marginfiUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAa,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EACL,IAAI,EAGJ,eAAe,EAGhB,MAAM,iBAAiB,CAAC;AAazB,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAsB,MAAM,cAAc,CAAC;AAEjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAI7D,UAAU,wBAAyB,SAAQ,qBAAqB;IAC9D,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,SAAS,GACd,wBAAwB,CAY1B;AAED,wBAAgB,
|
1
|
+
{"version":3,"file":"marginfiUtils.d.ts","sourceRoot":"","sources":["../../src/utils/marginfiUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAa,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EACL,IAAI,EAGJ,eAAe,EAGhB,MAAM,iBAAiB,CAAC;AAazB,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAsB,MAAM,cAAc,CAAC;AAEjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAI7D,UAAU,wBAAyB,SAAQ,qBAAqB;IAC9D,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,SAAS,GACd,wBAAwB,CAY1B;AAED,wBAAgB,iCAAiC,CAC/C,UAAU,EAAE,IAAI,EAChB,QAAQ,EAAE,IAAI,EACd,WAAW,EAAE,MAAM,GAClB,CAAC,MAAM,EAAE,MAAM,CAAC,CA6BlB;AAED,wBAAsB,gCAAgC,CACpD,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,CAwC3B;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,CAiEA;AAED,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,IAAI,GAAG,IAAI,EACjB,OAAO,EAAE,OAAO,UAejB;AAsDD,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;AAEhE,wBAAsB,+BAA+B,CACnD,GAAG,EAAE,GAAG,EACR,eAAe,EAAE;IAAE,EAAE,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,eAAe,CAAA;CAAE,EAC1D,aAAa,CAAC,EAAE,SAAS,EACzB,MAAM,CAAC,EAAE,aAAa,EACtB,IAAI,CAAC,EAAE,aAAa,EACpB,mBAAmB,CAAC,EAAE,mBAAmB,GACxC,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAkLpC;AA+DD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,oBAU7C;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAgBnE;AAED,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,eAAe,WASpE"}
|
@@ -1,8 +1,8 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.findMarginfiAccounts = findMarginfiAccounts;
|
4
|
-
exports.
|
5
|
-
exports.
|
4
|
+
exports.calcMarginfiMaxLtvAndLiqThreshold = calcMarginfiMaxLtvAndLiqThreshold;
|
5
|
+
exports.getMarginfiMaxLtvAndLiqThreshold = getMarginfiMaxLtvAndLiqThreshold;
|
6
6
|
exports.getAllMarginfiAccountsByAuthority = getAllMarginfiAccountsByAuthority;
|
7
7
|
exports.getBankLiquidityAvailableBaseUnit = getBankLiquidityAvailableBaseUnit;
|
8
8
|
exports.getMarginfiAccountPositionState = getMarginfiAccountPositionState;
|
@@ -30,7 +30,7 @@ function findMarginfiAccounts(bank) {
|
|
30
30
|
}
|
31
31
|
throw new Error(`Marginfi accounts not found by the bank: ${bank}`);
|
32
32
|
}
|
33
|
-
function
|
33
|
+
function calcMarginfiMaxLtvAndLiqThreshold(supplyBank, debtBank, supplyPrice) {
|
34
34
|
let maxLtv = (0, numberUtils_1.bytesToI80F48)(supplyBank.config.assetWeightInit.value) /
|
35
35
|
(0, numberUtils_1.bytesToI80F48)(debtBank.config.liabilityWeightInit.value);
|
36
36
|
const liqThreshold = (0, numberUtils_1.bytesToI80F48)(supplyBank.config.assetWeightMaint.value) /
|
@@ -45,7 +45,7 @@ function calcMaxLtvAndLiqThreshold(supplyBank, debtBank, supplyPrice) {
|
|
45
45
|
}
|
46
46
|
return [maxLtv, liqThreshold];
|
47
47
|
}
|
48
|
-
async function
|
48
|
+
async function getMarginfiMaxLtvAndLiqThreshold(umi, marginfiGroup, supply, debt, supplyPrice) {
|
49
49
|
if (!supply.bank && supply.mint.equals(web3_js_1.PublicKey.default)) {
|
50
50
|
return [0, 0];
|
51
51
|
}
|
@@ -65,7 +65,7 @@ async function getMaxLtvAndLiqThreshold(umi, marginfiGroup, supply, debt, supply
|
|
65
65
|
if (!debt.bank || debt.bank === null) {
|
66
66
|
return [0, 0];
|
67
67
|
}
|
68
|
-
return
|
68
|
+
return calcMarginfiMaxLtvAndLiqThreshold(supply.bank, debt.bank, supplyPrice);
|
69
69
|
}
|
70
70
|
async function getAllMarginfiAccountsByAuthority(umi, authority, group, compatibleWithSolauto) {
|
71
71
|
const marginfiAccounts = await umi.rpc.getProgramAccounts(marginfi_sdk_1.MARGINFI_PROGRAM_ID, {
|
@@ -238,7 +238,7 @@ async function getMarginfiAccountPositionState(umi, protocolAccount, marginfiGro
|
|
238
238
|
debtUsage = await getTokenUsage(debtBank, false, 0, livePositionUpdates?.debtAdjustment);
|
239
239
|
}
|
240
240
|
const supplyPrice = (0, priceUtils_1.safeGetPrice)(supply.mint);
|
241
|
-
let [maxLtv, liqThreshold] = await
|
241
|
+
let [maxLtv, liqThreshold] = await getMarginfiMaxLtvAndLiqThreshold(umi, marginfiGroup ?? new web3_js_1.PublicKey(marginfiAccounts_1.DEFAULT_MARGINFI_GROUP), {
|
242
242
|
mint: (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(supplyBank.mint),
|
243
243
|
bank: supplyBank,
|
244
244
|
}, {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"generalUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/solauto/generalUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,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;
|
1
|
+
{"version":3,"file":"generalUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/solauto/generalUtils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -55,7 +55,7 @@ import {
|
|
55
55
|
findMarginfiAccounts,
|
56
56
|
getAllMarginfiAccountsByAuthority,
|
57
57
|
getMarginfiAccountPositionState,
|
58
|
-
|
58
|
+
getMarginfiMaxLtvAndLiqThreshold,
|
59
59
|
marginfiAccountEmpty,
|
60
60
|
} from "../utils/marginfiUtils";
|
61
61
|
import { fromBaseUnit, toBps } from "../utils/numberUtils";
|
@@ -240,7 +240,7 @@ export class SolautoMarginfiClient extends SolautoClient {
|
|
240
240
|
) {
|
241
241
|
return [0, 0];
|
242
242
|
} else {
|
243
|
-
const [maxLtv, liqThreshold] = await
|
243
|
+
const [maxLtv, liqThreshold] = await getMarginfiMaxLtvAndLiqThreshold(
|
244
244
|
this.umi,
|
245
245
|
this.marginfiGroup,
|
246
246
|
{
|
@@ -48,7 +48,7 @@ export function findMarginfiAccounts(
|
|
48
48
|
throw new Error(`Marginfi accounts not found by the bank: ${bank}`);
|
49
49
|
}
|
50
50
|
|
51
|
-
export function
|
51
|
+
export function calcMarginfiMaxLtvAndLiqThreshold(
|
52
52
|
supplyBank: Bank,
|
53
53
|
debtBank: Bank,
|
54
54
|
supplyPrice: number
|
@@ -83,7 +83,7 @@ export function calcMaxLtvAndLiqThreshold(
|
|
83
83
|
return [maxLtv, liqThreshold];
|
84
84
|
}
|
85
85
|
|
86
|
-
export async function
|
86
|
+
export async function getMarginfiMaxLtvAndLiqThreshold(
|
87
87
|
umi: Umi,
|
88
88
|
marginfiGroup: PublicKey,
|
89
89
|
supply: {
|
@@ -134,7 +134,7 @@ export async function getMaxLtvAndLiqThreshold(
|
|
134
134
|
return [0, 0];
|
135
135
|
}
|
136
136
|
|
137
|
-
return
|
137
|
+
return calcMarginfiMaxLtvAndLiqThreshold(supply.bank!, debt.bank, supplyPrice);
|
138
138
|
}
|
139
139
|
|
140
140
|
export async function getAllMarginfiAccountsByAuthority(
|
@@ -430,7 +430,7 @@ export async function getMarginfiAccountPositionState(
|
|
430
430
|
}
|
431
431
|
|
432
432
|
const supplyPrice = safeGetPrice(supply.mint!)!;
|
433
|
-
let [maxLtv, liqThreshold] = await
|
433
|
+
let [maxLtv, liqThreshold] = await getMarginfiMaxLtvAndLiqThreshold(
|
434
434
|
umi,
|
435
435
|
marginfiGroup ?? new PublicKey(DEFAULT_MARGINFI_GROUP),
|
436
436
|
{
|
@@ -27,6 +27,7 @@ import {
|
|
27
27
|
fromBaseUnit,
|
28
28
|
getLiqUtilzationRateBps,
|
29
29
|
toBaseUnit,
|
30
|
+
toBps,
|
30
31
|
} from "../numberUtils";
|
31
32
|
import { getReferralState } from "../accountUtils";
|
32
33
|
import { toWeb3JsPublicKey } from "@metaplex-foundation/umi-web3js-adapters";
|
@@ -38,6 +39,7 @@ import {
|
|
38
39
|
import {
|
39
40
|
findMarginfiAccounts,
|
40
41
|
getAllMarginfiAccountsByAuthority,
|
42
|
+
getMarginfiMaxLtvAndLiqThreshold,
|
41
43
|
} from "../marginfiUtils";
|
42
44
|
import { RebalanceAction, SolautoPositionDetails } from "../../types/solauto";
|
43
45
|
import { fetchTokenPrices } from "../priceUtils";
|