@haven-fi/solauto-sdk 1.0.289 → 1.0.291
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/utils/numberUtils.d.ts.map +1 -1
- package/dist/utils/numberUtils.js +2 -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 +2 -1
- package/src/utils/solauto/generalUtils.ts +5 -1
- package/tests/transactions/solautoMarginfi.ts +30 -26
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"numberUtils.d.ts","sourceRoot":"","sources":["../../src/utils/numberUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,GACtB,MAAM,CAMR;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAElE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAqBrD;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAejE;AAED,wBAAgB,oBAAoB,CAClC,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,2BAA2B,EAAE,MAAM,EACnC,gBAAgB,CAAC,EAAE,MAAM,UAW1B;AAED,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,OAAO,EACnB,2BAA2B,EAAE,MAAM,GAAG,SAAS,EAC/C,mBAAmB,EAAE,MAAM,EAC3B,kBAAkB,EAAE,kBAAkB,GACrC;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf,
|
|
1
|
+
{"version":3,"file":"numberUtils.d.ts","sourceRoot":"","sources":["../../src/utils/numberUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,GACtB,MAAM,CAMR;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAElE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAqBrD;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAejE;AAED,wBAAgB,oBAAoB,CAClC,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,2BAA2B,EAAE,MAAM,EACnC,gBAAgB,CAAC,EAAE,MAAM,UAW1B;AAED,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,OAAO,EACnB,2BAA2B,EAAE,MAAM,GAAG,SAAS,EAC/C,mBAAmB,EAAE,MAAM,EAC3B,kBAAkB,EAAE,kBAAkB,GACrC;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf,CAiDA;AAED,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,EACvB,gBAAgB,EAAE,MAAM,GACvB,MAAM,CAKR;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,UAKzE;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,UAKvE;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,UAKvE"}
|
|
@@ -99,7 +99,8 @@ function getSolautoFeesBps(isReferred, targetLiqUtilizationRateBps, positionNetW
|
|
|
99
99
|
}
|
|
100
100
|
let referrer = 0;
|
|
101
101
|
if (isReferred) {
|
|
102
|
-
|
|
102
|
+
feeBps *= 0.9;
|
|
103
|
+
referrer = Math.floor(feeBps * 0.15);
|
|
103
104
|
}
|
|
104
105
|
return {
|
|
105
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":"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,GAAG,SAAS,EACvD,WAAW,EAAE,WAAW,GAAG,SAAS,EACpC,eAAe,EAAE,MAAM,EACvB,oBAAoB,SAAI,GACvB,eAAe,GAAG,SAAS,CA2C7B;AAED,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,yBAAyB,EAC3C,eAAe,EAAE,MAAM,GACtB,OAAO,CAYT;AAED,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,GAAG,EACR,SAAS,CAAC,EAAE,SAAS,EACrB,kBAAkB,CAAC,EAAE,YAAY,GAChC,OAAO,CAAC,sBAAsB,EAAE,CAAC,CA0FnC;AAED,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAkBzE;AAED,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,SAAS,GACd,OAAO,CAAC,SAAS,EAAE,CAAC,CA+BtB;AAED,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,SAAS,EACf,kBAAkB,CAAC,EAAE,YAAY,GAChC,OAAO,CAAC,sBAAsB,EAAE,CAAC,CA4CnC;AAED,wBAAsB,6BAA6B,CACjD,KAAK,EAAE,aAAa,EACpB,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC,CA2CxB;AAED,UAAU,UAAU;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,GACtB,aAAa,CA8Df;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,gCAAgC,GACzC,yBAAyB,CA8B3B;AAED,KAAK,kBAAkB,GACnB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,gCAAgC,CAAA;CAAE,GAC7D;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,kBAAkB,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,SAAS,CAAA;KAAE,CAAA;CAAE,GACzE;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC;AAEhD,qBAAa,mBAAmB;IACvB,gBAAgB,SAAa;IAC7B,cAAc,SAAa;IAC3B,QAAQ,EAAE,yBAAyB,GAAG,SAAS,CAAa;IAC5D,SAAS,EAAE,WAAW,GAAG,SAAS,CAAa;IAC/C,YAAY,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,SAAS,CAAA;KAAE,CAAa;IACpE,aAAa,EAAE,SAAS,GAAG,SAAS,CAAa;IAExD,GAAG,CAAC,MAAM,EAAE,kBAAkB;IA6B9B,KAAK;IASL,UAAU,IAAI,OAAO;CAStB"}
|
|
@@ -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
|
});
|