@haven-fi/solauto-sdk 1.0.61 → 1.0.63
Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,6 @@
|
|
1
1
|
import { PublicKey } from "@solana/web3.js";
|
2
2
|
import { Umi } from "@metaplex-foundation/umi";
|
3
|
-
import { AutomationSettings, DCASettings, DCASettingsInpArgs, FeeType,
|
3
|
+
import { AutomationSettings, DCASettings, DCASettingsInpArgs, FeeType, PositionState, SolautoSettingsParameters, SolautoSettingsParametersInpArgs } from "../../generated";
|
4
4
|
import { RebalanceAction, SolautoPositionDetails } from "../../types/solauto";
|
5
5
|
export declare function nextAutomationPeriodTimestamp(automation: AutomationSettings): number;
|
6
6
|
export declare function eligibleForNextAutomationPeriod(automation: AutomationSettings, currentUnixTime: number): boolean;
|
@@ -17,14 +17,7 @@ export declare function getSolautoManagedPositions(umi: Umi, authority?: PublicK
|
|
17
17
|
export declare function getAllReferralStates(umi: Umi): Promise<PublicKey[]>;
|
18
18
|
export declare function getReferralsByUser(umi: Umi, user: PublicKey): Promise<PublicKey[]>;
|
19
19
|
export declare function getAllPositionsByAuthority(umi: Umi, user: PublicKey): Promise<SolautoPositionDetails[]>;
|
20
|
-
export declare function
|
21
|
-
state: PositionState;
|
22
|
-
umi?: Umi;
|
23
|
-
protocolAccount?: PublicKey;
|
24
|
-
lendingPlatform?: LendingPlatform;
|
25
|
-
supplyPrice?: number;
|
26
|
-
debtPrice?: number;
|
27
|
-
}): Promise<PositionState | undefined>;
|
20
|
+
export declare function positionStateWithLatestPrices(state: PositionState, supplyPrice?: number, debtPrice?: number): Promise<PositionState>;
|
28
21
|
interface AssetProps {
|
29
22
|
amountUsedBaseUnit: bigint;
|
30
23
|
decimals: number;
|
@@ -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,EAA+B,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,OAAO,
|
1
|
+
{"version":3,"file":"generalUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/solauto/generalUtils.ts"],"names":[],"mappings":"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"}
|
@@ -12,7 +12,7 @@ exports.getSolautoManagedPositions = getSolautoManagedPositions;
|
|
12
12
|
exports.getAllReferralStates = getAllReferralStates;
|
13
13
|
exports.getReferralsByUser = getReferralsByUser;
|
14
14
|
exports.getAllPositionsByAuthority = getAllPositionsByAuthority;
|
15
|
-
exports.
|
15
|
+
exports.positionStateWithLatestPrices = positionStateWithLatestPrices;
|
16
16
|
exports.createFakePositionState = createFakePositionState;
|
17
17
|
const web3_js_1 = require("@solana/web3.js");
|
18
18
|
const umi_1 = require("@metaplex-foundation/umi");
|
@@ -213,20 +213,7 @@ async function getAllPositionsByAuthority(umi, user) {
|
|
213
213
|
// TODO support other platforms
|
214
214
|
return allPositions;
|
215
215
|
}
|
216
|
-
async function
|
217
|
-
if ((0, generalUtils_1.currentUnixSeconds)() - Number(state.lastUpdated) > 60 * 60 * 24 * 7) {
|
218
|
-
if (umi === undefined ||
|
219
|
-
protocolAccount === undefined ||
|
220
|
-
lendingPlatform === undefined) {
|
221
|
-
throw new Error("Missing required parameters");
|
222
|
-
}
|
223
|
-
if (lendingPlatform === generated_1.LendingPlatform.Marginfi) {
|
224
|
-
return await (0, marginfiUtils_1.getMarginfiAccountPositionState)(umi, protocolAccount, (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(state.supply.mint), (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(state.debt.mint));
|
225
|
-
}
|
226
|
-
else {
|
227
|
-
throw new Error("Lending platorm not yet supported");
|
228
|
-
}
|
229
|
-
}
|
216
|
+
async function positionStateWithLatestPrices(state, supplyPrice, debtPrice) {
|
230
217
|
if (!supplyPrice || !debtPrice) {
|
231
218
|
[supplyPrice, debtPrice] = await (0, generalUtils_1.getTokenPrices)([
|
232
219
|
(0, umi_web3js_adapters_1.toWeb3JsPublicKey)(state.supply.mint),
|
package/package.json
CHANGED
@@ -326,42 +326,11 @@ export async function getAllPositionsByAuthority(
|
|
326
326
|
return allPositions;
|
327
327
|
}
|
328
328
|
|
329
|
-
export async function
|
330
|
-
state,
|
331
|
-
supplyPrice,
|
332
|
-
debtPrice,
|
333
|
-
|
334
|
-
protocolAccount,
|
335
|
-
lendingPlatform,
|
336
|
-
}: {
|
337
|
-
state: PositionState;
|
338
|
-
umi?: Umi;
|
339
|
-
protocolAccount?: PublicKey;
|
340
|
-
lendingPlatform?: LendingPlatform;
|
341
|
-
supplyPrice?: number;
|
342
|
-
debtPrice?: number;
|
343
|
-
}): Promise<PositionState | undefined> {
|
344
|
-
if (currentUnixSeconds() - Number(state.lastUpdated) > 60 * 60 * 24 * 7) {
|
345
|
-
if (
|
346
|
-
umi === undefined ||
|
347
|
-
protocolAccount === undefined ||
|
348
|
-
lendingPlatform === undefined
|
349
|
-
) {
|
350
|
-
throw new Error("Missing required parameters");
|
351
|
-
}
|
352
|
-
|
353
|
-
if (lendingPlatform === LendingPlatform.Marginfi) {
|
354
|
-
return await getMarginfiAccountPositionState(
|
355
|
-
umi,
|
356
|
-
protocolAccount,
|
357
|
-
toWeb3JsPublicKey(state.supply.mint),
|
358
|
-
toWeb3JsPublicKey(state.debt.mint)
|
359
|
-
);
|
360
|
-
} else {
|
361
|
-
throw new Error("Lending platorm not yet supported");
|
362
|
-
}
|
363
|
-
}
|
364
|
-
|
329
|
+
export async function positionStateWithLatestPrices(
|
330
|
+
state: PositionState,
|
331
|
+
supplyPrice?: number,
|
332
|
+
debtPrice?: number,
|
333
|
+
): Promise<PositionState> {
|
365
334
|
if (!supplyPrice || !debtPrice) {
|
366
335
|
[supplyPrice, debtPrice] = await getTokenPrices([
|
367
336
|
toWeb3JsPublicKey(state.supply.mint),
|
@@ -27,7 +27,7 @@ import {
|
|
27
27
|
getAdjustedSettingsFromAutomation,
|
28
28
|
getSolautoFeesBps,
|
29
29
|
getUpdatedValueFromAutomation,
|
30
|
-
|
30
|
+
positionStateWithLatestPrices,
|
31
31
|
} from "../../src/utils/solauto/generalUtils";
|
32
32
|
import {
|
33
33
|
currentUnixSeconds,
|
@@ -117,8 +117,8 @@ async function getFakePosition(
|
|
117
117
|
const supplyUsd = 1000;
|
118
118
|
const maxLtvBps = 6400;
|
119
119
|
const liqThresholdBps = 8181;
|
120
|
-
client.solautoPositionState = await
|
121
|
-
|
120
|
+
client.solautoPositionState = await positionStateWithLatestPrices(
|
121
|
+
createFakePositionState(
|
122
122
|
{
|
123
123
|
amountUsedBaseUnit: toBaseUnit(supplyUsd / supplyPrice, 9),
|
124
124
|
decimals: 9,
|
@@ -139,8 +139,8 @@ async function getFakePosition(
|
|
139
139
|
},
|
140
140
|
maxLtvBps,
|
141
141
|
liqThresholdBps
|
142
|
-
)
|
143
|
-
|
142
|
+
)
|
143
|
+
);
|
144
144
|
|
145
145
|
client.solautoPositionData = {
|
146
146
|
positionId: [1],
|