@haven-fi/solauto-sdk 1.0.206 → 1.0.207
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 +5 -2
- package/dist/utils/marginfiUtils.d.ts.map +1 -1
- package/dist/utils/marginfiUtils.js +6 -3
- package/package.json +1 -1
- package/src/clients/solautoMarginfiClient.ts +1 -1
- package/src/utils/marginfiUtils.ts +8 -7
- package/tests/transactions/solautoMarginfi.ts +2 -10
|
@@ -429,7 +429,7 @@ class SolautoMarginfiClient extends solautoClient_1.SolautoClient {
|
|
|
429
429
|
if (state) {
|
|
430
430
|
return state;
|
|
431
431
|
}
|
|
432
|
-
const freshState = await (0, marginfiUtils_1.getMarginfiAccountPositionState)(this.umi, this.marginfiAccountPk, this.marginfiGroup, !this.selfManaged && this.solautoPositionData === null
|
|
432
|
+
const freshState = await (0, marginfiUtils_1.getMarginfiAccountPositionState)(this.umi, { pk: this.marginfiAccountPk }, this.marginfiGroup, !this.selfManaged && this.solautoPositionData === null
|
|
433
433
|
? { mint: this.supplyMint }
|
|
434
434
|
: undefined, !this.selfManaged && this.solautoPositionData === null
|
|
435
435
|
? { mint: this.debtMint }
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PublicKey } from "@solana/web3.js";
|
|
2
2
|
import { Umi } from "@metaplex-foundation/umi";
|
|
3
|
-
import { Bank } from "../marginfi-sdk";
|
|
3
|
+
import { Bank, MarginfiAccount } from "../marginfi-sdk";
|
|
4
4
|
import { MarginfiAssetAccounts } from "../types/accounts";
|
|
5
5
|
import { PositionState } from "../generated";
|
|
6
6
|
import { LivePositionUpdates } from "./solauto/generalUtils";
|
|
@@ -27,7 +27,10 @@ type BanksCache = {
|
|
|
27
27
|
[mint: string]: Bank;
|
|
28
28
|
};
|
|
29
29
|
};
|
|
30
|
-
export declare function getMarginfiAccountPositionState(umi: Umi,
|
|
30
|
+
export declare function getMarginfiAccountPositionState(umi: Umi, protocolAccount: {
|
|
31
|
+
pk: PublicKey;
|
|
32
|
+
data?: MarginfiAccount;
|
|
33
|
+
}, marginfiGroup?: PublicKey, supply?: BankSelection, debt?: BankSelection, livePositionUpdates?: LivePositionUpdates): Promise<PositionState | undefined>;
|
|
31
34
|
export declare function calculateAnnualAPYs(bank: Bank): [number, number];
|
|
32
35
|
export declare function getUpToDateShareValues(bank: Bank): Promise<[number, number]>;
|
|
33
36
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marginfiUtils.d.ts","sourceRoot":"","sources":["../../src/utils/marginfiUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAa,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EACL,IAAI,
|
|
1
|
+
{"version":3,"file":"marginfiUtils.d.ts","sourceRoot":"","sources":["../../src/utils/marginfiUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAa,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EACL,IAAI,EAGJ,eAAe,EAGhB,MAAM,iBAAiB,CAAC;AAiBzB,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAsB,MAAM,cAAc,CAAC;AAEjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG7D,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,GAAG,qBAAqB,CAY3E;AAED,wBAAgB,gCAAgC,CAC9C,UAAU,EAAE,IAAI,EAChB,QAAQ,EAAE,IAAI,EACd,WAAW,EAAE,MAAM,GAClB,CAAC,MAAM,EAAE,MAAM,CAAC,CA6BlB;AAED,wBAAsB,wBAAwB,CAC5C,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,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,CAwDA;AA6DD,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,CA0LpC;AA+DD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,oBAU7C;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,IAAI,GACT,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAgB3B"}
|
|
@@ -86,7 +86,7 @@ async function getAllMarginfiAccountsByAuthority(umi, authority, compatibleWithS
|
|
|
86
86
|
if (compatibleWithSolauto) {
|
|
87
87
|
const positionStates = await Promise.all(marginfiAccounts.map(async (x) => ({
|
|
88
88
|
publicKey: x.publicKey,
|
|
89
|
-
state: await getMarginfiAccountPositionState(umi, (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(x.publicKey)),
|
|
89
|
+
state: await getMarginfiAccountPositionState(umi, { pk: (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(x.publicKey) }),
|
|
90
90
|
})));
|
|
91
91
|
return positionStates
|
|
92
92
|
.sort((a, b) => (0, numberUtils_1.fromBaseUnit)(b.state?.netWorth.baseAmountUsdValue ?? BigInt(0), generalAccounts_1.USD_DECIMALS) -
|
|
@@ -143,8 +143,11 @@ async function getTokenUsage(bank, isAsset, shares, amountUsedAdjustment) {
|
|
|
143
143
|
padding: new Uint8Array([]),
|
|
144
144
|
};
|
|
145
145
|
}
|
|
146
|
-
async function getMarginfiAccountPositionState(umi,
|
|
147
|
-
let marginfiAccount =
|
|
146
|
+
async function getMarginfiAccountPositionState(umi, protocolAccount, marginfiGroup, supply, debt, livePositionUpdates) {
|
|
147
|
+
let marginfiAccount = protocolAccount.data ??
|
|
148
|
+
(await (0, marginfi_sdk_1.safeFetchMarginfiAccount)(umi, (0, umi_1.publicKey)(protocolAccount.pk), {
|
|
149
|
+
commitment: "confirmed",
|
|
150
|
+
}));
|
|
148
151
|
if (!supply) {
|
|
149
152
|
supply = {};
|
|
150
153
|
}
|
package/package.json
CHANGED
|
@@ -649,7 +649,7 @@ export class SolautoMarginfiClient extends SolautoClient {
|
|
|
649
649
|
|
|
650
650
|
const freshState = await getMarginfiAccountPositionState(
|
|
651
651
|
this.umi,
|
|
652
|
-
this.marginfiAccountPk,
|
|
652
|
+
{ pk: this.marginfiAccountPk },
|
|
653
653
|
this.marginfiGroup,
|
|
654
654
|
!this.selfManaged && this.solautoPositionData === null
|
|
655
655
|
? { mint: this.supplyMint }
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
Bank,
|
|
6
6
|
getMarginfiAccountSize,
|
|
7
7
|
MARGINFI_PROGRAM_ID,
|
|
8
|
+
MarginfiAccount,
|
|
8
9
|
safeFetchBank,
|
|
9
10
|
safeFetchMarginfiAccount,
|
|
10
11
|
} from "../marginfi-sdk";
|
|
@@ -168,7 +169,7 @@ export async function getAllMarginfiAccountsByAuthority(
|
|
|
168
169
|
publicKey: x.publicKey,
|
|
169
170
|
state: await getMarginfiAccountPositionState(
|
|
170
171
|
umi,
|
|
171
|
-
toWeb3JsPublicKey(x.publicKey)
|
|
172
|
+
{ pk: toWeb3JsPublicKey(x.publicKey) }
|
|
172
173
|
),
|
|
173
174
|
}))
|
|
174
175
|
);
|
|
@@ -265,17 +266,17 @@ type BanksCache = { [group: string]: { [mint: string]: Bank } };
|
|
|
265
266
|
|
|
266
267
|
export async function getMarginfiAccountPositionState(
|
|
267
268
|
umi: Umi,
|
|
268
|
-
|
|
269
|
+
protocolAccount: { pk: PublicKey; data?: MarginfiAccount },
|
|
269
270
|
marginfiGroup?: PublicKey,
|
|
270
271
|
supply?: BankSelection,
|
|
271
272
|
debt?: BankSelection,
|
|
272
273
|
livePositionUpdates?: LivePositionUpdates
|
|
273
274
|
): Promise<PositionState | undefined> {
|
|
274
|
-
let marginfiAccount =
|
|
275
|
-
|
|
276
|
-
publicKey(
|
|
277
|
-
|
|
278
|
-
|
|
275
|
+
let marginfiAccount =
|
|
276
|
+
protocolAccount.data ??
|
|
277
|
+
(await safeFetchMarginfiAccount(umi, publicKey(protocolAccount.pk), {
|
|
278
|
+
commitment: "confirmed",
|
|
279
|
+
}));
|
|
279
280
|
|
|
280
281
|
if (!supply) {
|
|
281
282
|
supply = {};
|
|
@@ -3,8 +3,6 @@ import { none, publicKey, some } from "@metaplex-foundation/umi";
|
|
|
3
3
|
import { setupTest } from "../shared";
|
|
4
4
|
import { SolautoMarginfiClient } from "../../src/clients/solautoMarginfiClient";
|
|
5
5
|
import {
|
|
6
|
-
PositionType,
|
|
7
|
-
safeFetchAllSolautoPosition,
|
|
8
6
|
solautoAction,
|
|
9
7
|
SolautoSettingsParametersInpArgs,
|
|
10
8
|
} from "../../src/generated";
|
|
@@ -15,7 +13,7 @@ import {
|
|
|
15
13
|
maxRepayToBps,
|
|
16
14
|
toBaseUnit,
|
|
17
15
|
} from "../../src/utils/numberUtils";
|
|
18
|
-
import {
|
|
16
|
+
import { NATIVE_MINT } from "@solana/spl-token";
|
|
19
17
|
import { fetchTokenPrices } from "../../src/utils/generalUtils";
|
|
20
18
|
import {
|
|
21
19
|
TransactionItem,
|
|
@@ -23,13 +21,7 @@ import {
|
|
|
23
21
|
} from "../../src/transactions/transactionsManager";
|
|
24
22
|
import { PublicKey } from "@solana/web3.js";
|
|
25
23
|
import { USDC } from "../../src/constants";
|
|
26
|
-
import {
|
|
27
|
-
buildHeliusApiUrl,
|
|
28
|
-
getAllPositionsByAuthority,
|
|
29
|
-
getMarginfiAccountPositionState,
|
|
30
|
-
getSolautoManagedPositions,
|
|
31
|
-
} from "../../src/utils";
|
|
32
|
-
import { toWeb3JsPublicKey } from "@metaplex-foundation/umi-web3js-adapters";
|
|
24
|
+
import { buildHeliusApiUrl } from "../../src/utils";
|
|
33
25
|
|
|
34
26
|
describe("Solauto Marginfi tests", async () => {
|
|
35
27
|
// const signer = setupTest();
|