@haven-fi/solauto-sdk 1.0.290 → 1.0.291
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/utils/numberUtils.js +1 -1
- package/dist/utils/solauto/generalUtils.d.ts +1 -1
- package/dist/utils/solauto/generalUtils.d.ts.map +1 -1
- package/dist/utils/solauto/generalUtils.js +3 -0
- package/package.json +1 -1
- package/src/transactions/transactionUtils.ts +2 -2
- package/src/utils/numberUtils.ts +1 -1
- package/src/utils/solauto/generalUtils.ts +5 -1
- package/tests/transactions/solautoMarginfi.ts +30 -26
@@ -100,7 +100,7 @@ function getSolautoFeesBps(isReferred, targetLiqUtilizationRateBps, positionNetW
|
|
100
100
|
let referrer = 0;
|
101
101
|
if (isReferred) {
|
102
102
|
feeBps *= 0.9;
|
103
|
-
referrer = Math.floor(feeBps
|
103
|
+
referrer = Math.floor(feeBps * 0.15);
|
104
104
|
}
|
105
105
|
return {
|
106
106
|
solauto: feeBps - referrer,
|
@@ -7,7 +7,7 @@ export declare function nextAutomationPeriodTimestamp(automation: AutomationSett
|
|
7
7
|
export declare function eligibleForNextAutomationPeriod(automation: AutomationSettings, currentUnixTime: number): boolean;
|
8
8
|
export declare function getUpdatedValueFromAutomation(currValue: number, targetValue: number, automation: AutomationSettings, currentUnixTimestamp: number): number;
|
9
9
|
export declare function getAdjustedSettingsFromAutomation(settings: SolautoSettingsParameters, currentUnixTime: number): SolautoSettingsParameters;
|
10
|
-
export declare function eligibleForRebalance(positionState: PositionState, positionSettings: SolautoSettingsParameters, positionDca: DCASettings | undefined, currentUnixTime: number, bpsDistanceThreshold?: number): RebalanceAction | undefined;
|
10
|
+
export declare function eligibleForRebalance(positionState: PositionState, positionSettings: SolautoSettingsParameters | undefined, positionDca: DCASettings | undefined, currentUnixTime: number, bpsDistanceThreshold?: number): RebalanceAction | undefined;
|
11
11
|
export declare function eligibleForRefresh(positionState: PositionState, positionSettings: SolautoSettingsParameters, currentUnixTime: number): boolean;
|
12
12
|
export declare function getSolautoManagedPositions(umi: Umi, authority?: PublicKey, positionTypeFilter?: PositionType): Promise<SolautoPositionDetails[]>;
|
13
13
|
export declare function getAllReferralStates(umi: Umi): Promise<PublicKey[]>;
|
@@ -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;AAkBzB,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE9E,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAczE;AAgBD,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,kBAAkB,GAC7B,MAAM,CAKR;AAED,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,kBAAkB,EAC9B,eAAe,EAAE,MAAM,GACtB,OAAO,CAET;AAED,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,kBAAkB,EAC9B,oBAAoB,EAAE,MAAM,UAY7B;AAED,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,yBAAyB,EACnC,eAAe,EAAE,MAAM,GACtB,yBAAyB,CAgB3B;AAED,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,yBAAyB,
|
1
|
+
{"version":3,"file":"generalUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/solauto/generalUtils.ts"],"names":[],"mappings":"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"}
|
@@ -72,6 +72,9 @@ function getAdjustedSettingsFromAutomation(settings, currentUnixTime) {
|
|
72
72
|
};
|
73
73
|
}
|
74
74
|
function eligibleForRebalance(positionState, positionSettings, positionDca, currentUnixTime, bpsDistanceThreshold = 0) {
|
75
|
+
if (!positionSettings) {
|
76
|
+
return undefined;
|
77
|
+
}
|
75
78
|
if (positionDca &&
|
76
79
|
positionDca.automation.targetPeriods > 0 &&
|
77
80
|
eligibleForNextAutomationPeriod(positionDca.automation, currentUnixTime)) {
|
package/package.json
CHANGED
@@ -647,8 +647,8 @@ export async function buildSolautoRebalanceTransaction(
|
|
647
647
|
(targetLiqUtilizationRateBps === undefined &&
|
648
648
|
!eligibleForRebalance(
|
649
649
|
client.solautoPositionState!,
|
650
|
-
client.solautoPositionSettings()
|
651
|
-
client.solautoPositionActiveDca()
|
650
|
+
client.solautoPositionSettings(),
|
651
|
+
client.solautoPositionActiveDca(),
|
652
652
|
currentUnixSeconds()
|
653
653
|
))
|
654
654
|
) {
|
package/src/utils/numberUtils.ts
CHANGED
@@ -128,11 +128,15 @@ export function getAdjustedSettingsFromAutomation(
|
|
128
128
|
|
129
129
|
export function eligibleForRebalance(
|
130
130
|
positionState: PositionState,
|
131
|
-
positionSettings: SolautoSettingsParameters,
|
131
|
+
positionSettings: SolautoSettingsParameters | undefined,
|
132
132
|
positionDca: DCASettings | undefined,
|
133
133
|
currentUnixTime: number,
|
134
134
|
bpsDistanceThreshold = 0
|
135
135
|
): RebalanceAction | undefined {
|
136
|
+
if (!positionSettings) {
|
137
|
+
return undefined;
|
138
|
+
}
|
139
|
+
|
136
140
|
if (
|
137
141
|
positionDca &&
|
138
142
|
positionDca.automation.targetPeriods > 0 &&
|
@@ -17,11 +17,14 @@ import { NATIVE_MINT } from "@solana/spl-token";
|
|
17
17
|
import { consoleLog, fetchTokenPrices } from "../../src/utils/generalUtils";
|
18
18
|
import {
|
19
19
|
TransactionItem,
|
20
|
-
TransactionManagerStatuses,
|
21
20
|
TransactionsManager,
|
22
21
|
} from "../../src/transactions/transactionsManager";
|
23
22
|
import { PublicKey } from "@solana/web3.js";
|
24
|
-
import {
|
23
|
+
import {
|
24
|
+
SOLAUTO_PROD_PROGRAM,
|
25
|
+
SOLAUTO_TEST_PROGRAM,
|
26
|
+
USDC,
|
27
|
+
} from "../../src/constants";
|
25
28
|
import { buildHeliusApiUrl } from "../../src/utils";
|
26
29
|
import { PriorityFeeSetting } from "../../src/types";
|
27
30
|
|
@@ -30,12 +33,14 @@ describe("Solauto Marginfi tests", async () => {
|
|
30
33
|
// const signer = setupTest("solauto-manager");
|
31
34
|
|
32
35
|
const payForTransactions = false;
|
36
|
+
const testProgram = true;
|
33
37
|
const positionId = 1;
|
34
38
|
|
35
39
|
it("open - deposit - borrow - rebalance to 0 - withdraw - close", async () => {
|
36
40
|
const client = new SolautoMarginfiClient(
|
37
41
|
buildHeliusApiUrl(process.env.HELIUS_API_KEY!),
|
38
|
-
true
|
42
|
+
true,
|
43
|
+
testProgram ? SOLAUTO_TEST_PROGRAM : SOLAUTO_PROD_PROGRAM
|
39
44
|
);
|
40
45
|
|
41
46
|
const supply = NATIVE_MINT;
|
@@ -54,14 +59,14 @@ describe("Solauto Marginfi tests", async () => {
|
|
54
59
|
});
|
55
60
|
|
56
61
|
const transactionItems: TransactionItem[] = [];
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
62
|
+
const settingParams: SolautoSettingsParametersInpArgs = {
|
63
|
+
boostToBps: 6950,
|
64
|
+
boostGap: 50,
|
65
|
+
repayToBps: 7000,
|
66
|
+
repayGap: 50,
|
67
|
+
automation: none(),
|
68
|
+
targetBoostToBps: none(),
|
69
|
+
};
|
65
70
|
|
66
71
|
// if (client.solautoPositionData === null) {
|
67
72
|
// transactionItems.push(
|
@@ -73,16 +78,16 @@ describe("Solauto Marginfi tests", async () => {
|
|
73
78
|
// );
|
74
79
|
|
75
80
|
// // const initialSupplyUsd = 150;
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
81
|
+
// transactionItems.push(
|
82
|
+
// new TransactionItem(async () => {
|
83
|
+
// // const [supplyPrice] = await fetchTokenPrices([supply]);
|
84
|
+
// return {
|
85
|
+
// tx: client.protocolInteraction(
|
86
|
+
// solautoAction("Deposit", [toBaseUnit(9.5, supplyDecimals)])
|
87
|
+
// ),
|
88
|
+
// };
|
89
|
+
// }, "deposit")
|
90
|
+
// );
|
86
91
|
// }
|
87
92
|
|
88
93
|
// const maxLtvBps = client.solautoPositionState!.maxLtvBps;
|
@@ -120,7 +125,7 @@ describe("Solauto Marginfi tests", async () => {
|
|
120
125
|
// transactionItems.push(
|
121
126
|
// new TransactionItem(
|
122
127
|
// async (attemptNum) =>
|
123
|
-
// await buildSolautoRebalanceTransaction(client,
|
128
|
+
// await buildSolautoRebalanceTransaction(client, settingParams.boostToBps, attemptNum),
|
124
129
|
// "rebalance"
|
125
130
|
// )
|
126
131
|
// );
|
@@ -147,13 +152,12 @@ describe("Solauto Marginfi tests", async () => {
|
|
147
152
|
|
148
153
|
const statuses = await new TransactionsManager(
|
149
154
|
client,
|
150
|
-
|
151
|
-
console.log(statuses);
|
152
|
-
},
|
155
|
+
undefined,
|
153
156
|
!payForTransactions ? "only-simulate" : "normal",
|
154
157
|
PriorityFeeSetting.Low
|
155
158
|
).clientSend(transactionItems);
|
156
159
|
|
157
|
-
|
160
|
+
console.log(statuses);
|
161
|
+
|
158
162
|
});
|
159
163
|
});
|