@haven-fi/solauto-sdk 1.0.368 → 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 +1 -2
- package/dist/utils/solauto/generalUtils.d.ts.map +1 -1
- package/dist/utils/solauto/generalUtils.js +0 -10
- 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 +1 -25
@@ -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,6 +1,6 @@
|
|
1
1
|
import { PublicKey } from "@solana/web3.js";
|
2
2
|
import { Program, Umi } from "@metaplex-foundation/umi";
|
3
|
-
import { AutomationSettings, DCASettings, DCASettingsInpArgs,
|
3
|
+
import { AutomationSettings, DCASettings, DCASettingsInpArgs, PositionState, PositionType, SolautoSettingsParameters, SolautoSettingsParametersInpArgs, TokenType } from "../../generated";
|
4
4
|
import { RebalanceAction, SolautoPositionDetails } from "../../types/solauto";
|
5
5
|
export declare function createDynamicSolautoProgram(programId: PublicKey): Program;
|
6
6
|
export declare function nextAutomationPeriodTimestamp(automation: AutomationSettings): number;
|
@@ -22,7 +22,6 @@ interface AssetProps {
|
|
22
22
|
}
|
23
23
|
export declare function createFakePositionState(supply: AssetProps, debt: AssetProps, maxLtvBps: number, liqThresholdBps: number): PositionState;
|
24
24
|
export declare function createSolautoSettings(settings: SolautoSettingsParametersInpArgs): SolautoSettingsParameters;
|
25
|
-
export declare function getMaxLtvBpsAndLiqThresholdBps(umi: Umi, lendingPlatform: LendingPlatform, lendingPool: PublicKey, supplyMint: PublicKey, debtMint: PublicKey, supplyPrice: number): Promise<number[]>;
|
26
25
|
type PositionAdjustment = {
|
27
26
|
type: "supply";
|
28
27
|
value: bigint;
|
@@ -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,
|
1
|
+
{"version":3,"file":"generalUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/solauto/generalUtils.ts"],"names":[],"mappings":"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"}
|
@@ -15,7 +15,6 @@ exports.getAllPositionsByAuthority = getAllPositionsByAuthority;
|
|
15
15
|
exports.positionStateWithLatestPrices = positionStateWithLatestPrices;
|
16
16
|
exports.createFakePositionState = createFakePositionState;
|
17
17
|
exports.createSolautoSettings = createSolautoSettings;
|
18
|
-
exports.getMaxLtvBpsAndLiqThresholdBps = getMaxLtvBpsAndLiqThresholdBps;
|
19
18
|
const web3_js_1 = require("@solana/web3.js");
|
20
19
|
const umi_1 = require("@metaplex-foundation/umi");
|
21
20
|
const generated_1 = require("../../generated");
|
@@ -390,15 +389,6 @@ function createSolautoSettings(settings) {
|
|
390
389
|
padding1: [],
|
391
390
|
};
|
392
391
|
}
|
393
|
-
async function getMaxLtvBpsAndLiqThresholdBps(umi, lendingPlatform, lendingPool, supplyMint, debtMint, supplyPrice) {
|
394
|
-
let maxLtv = 0;
|
395
|
-
let liqThreshold = 0;
|
396
|
-
if (lendingPlatform === generated_1.LendingPlatform.Marginfi) {
|
397
|
-
[maxLtv, liqThreshold] = await (0, marginfiUtils_1.getMaxLtvAndLiqThreshold)(umi, lendingPool, { mint: supplyMint }, { mint: debtMint }, supplyPrice);
|
398
|
-
}
|
399
|
-
// TODO: PK
|
400
|
-
return [(0, numberUtils_1.toBps)(maxLtv), (0, numberUtils_1.toBps)(liqThreshold)];
|
401
|
-
}
|
402
392
|
class LivePositionUpdates {
|
403
393
|
constructor() {
|
404
394
|
this.supplyAdjustment = BigInt(0);
|
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
|
{
|
@@ -39,7 +39,7 @@ import {
|
|
39
39
|
import {
|
40
40
|
findMarginfiAccounts,
|
41
41
|
getAllMarginfiAccountsByAuthority,
|
42
|
-
|
42
|
+
getMarginfiMaxLtvAndLiqThreshold,
|
43
43
|
} from "../marginfiUtils";
|
44
44
|
import { RebalanceAction, SolautoPositionDetails } from "../../types/solauto";
|
45
45
|
import { fetchTokenPrices } from "../priceUtils";
|
@@ -589,30 +589,6 @@ export function createSolautoSettings(
|
|
589
589
|
};
|
590
590
|
}
|
591
591
|
|
592
|
-
export async function getMaxLtvBpsAndLiqThresholdBps(
|
593
|
-
umi: Umi,
|
594
|
-
lendingPlatform: LendingPlatform,
|
595
|
-
lendingPool: PublicKey,
|
596
|
-
supplyMint: PublicKey,
|
597
|
-
debtMint: PublicKey,
|
598
|
-
supplyPrice: number
|
599
|
-
) {
|
600
|
-
let maxLtv: number = 0;
|
601
|
-
let liqThreshold: number = 0;
|
602
|
-
if (lendingPlatform === LendingPlatform.Marginfi) {
|
603
|
-
[maxLtv, liqThreshold] = await getMaxLtvAndLiqThreshold(
|
604
|
-
umi,
|
605
|
-
lendingPool,
|
606
|
-
{ mint: supplyMint },
|
607
|
-
{ mint: debtMint },
|
608
|
-
supplyPrice
|
609
|
-
);
|
610
|
-
}
|
611
|
-
// TODO: PK
|
612
|
-
|
613
|
-
return [toBps(maxLtv), toBps(liqThreshold)];
|
614
|
-
}
|
615
|
-
|
616
592
|
type PositionAdjustment =
|
617
593
|
| { type: "supply"; value: bigint }
|
618
594
|
| { type: "debt"; value: bigint }
|