@haven-fi/solauto-sdk 1.0.582 → 1.0.584
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/constants/solautoConstants.d.ts +1 -0
- package/dist/constants/solautoConstants.d.ts.map +1 -1
- package/dist/constants/solautoConstants.js +4 -10
- package/dist/generated/accounts/solautoPosition.js +2 -2
- package/dist/generated/errors/solauto.d.ts +14 -2
- package/dist/generated/errors/solauto.d.ts.map +1 -1
- package/dist/generated/errors/solauto.js +27 -5
- package/dist/generated/instructions/claimReferralFees.d.ts +1 -1
- package/dist/generated/instructions/claimReferralFees.d.ts.map +1 -1
- package/dist/generated/instructions/closePosition.d.ts +1 -1
- package/dist/generated/instructions/closePosition.d.ts.map +1 -1
- package/dist/generated/instructions/closePosition.js +2 -2
- package/dist/generated/instructions/marginfiOpenPosition.d.ts +1 -3
- package/dist/generated/instructions/marginfiOpenPosition.d.ts.map +1 -1
- package/dist/generated/instructions/marginfiOpenPosition.js +0 -1
- package/dist/generated/instructions/marginfiRebalance.d.ts +7 -3
- package/dist/generated/instructions/marginfiRebalance.d.ts.map +1 -1
- package/dist/generated/instructions/marginfiRebalance.js +3 -1
- package/dist/generated/types/index.d.ts +7 -1
- package/dist/generated/types/index.d.ts.map +1 -1
- package/dist/generated/types/index.js +7 -1
- package/dist/generated/types/positionData.d.ts +2 -2
- package/dist/generated/types/positionData.d.ts.map +1 -1
- package/dist/generated/types/positionData.js +1 -1
- package/dist/generated/types/positionState.d.ts +7 -7
- package/dist/generated/types/positionState.d.ts.map +1 -1
- package/dist/generated/types/positionState.js +3 -3
- package/dist/generated/types/{positionTokenUsage.d.ts → positionTokenState.d.ts} +6 -8
- package/dist/generated/types/positionTokenState.d.ts.map +1 -0
- package/dist/generated/types/{positionTokenUsage.js → positionTokenState.js} +6 -7
- package/dist/generated/types/rebalanceData.d.ts +7 -13
- package/dist/generated/types/rebalanceData.d.ts.map +1 -1
- package/dist/generated/types/rebalanceData.js +3 -6
- package/dist/generated/types/rebalanceDirection.d.ts +3 -2
- package/dist/generated/types/rebalanceDirection.d.ts.map +1 -1
- package/dist/generated/types/rebalanceDirection.js +3 -2
- package/dist/generated/types/rebalanceInstructionData.d.ts +27 -0
- package/dist/generated/types/rebalanceInstructionData.d.ts.map +1 -0
- package/dist/generated/types/rebalanceInstructionData.js +22 -0
- package/dist/generated/types/rebalanceStateValues.d.ts +27 -0
- package/dist/generated/types/rebalanceStateValues.d.ts.map +1 -0
- package/dist/generated/types/rebalanceStateValues.js +22 -0
- package/dist/generated/types/rebalanceStep.d.ts +15 -0
- package/dist/generated/types/rebalanceStep.d.ts.map +1 -0
- package/dist/generated/types/rebalanceStep.js +22 -0
- package/dist/generated/types/solautoRebalanceType.d.ts +4 -5
- package/dist/generated/types/solautoRebalanceType.d.ts.map +1 -1
- package/dist/generated/types/solautoRebalanceType.js +4 -5
- package/dist/generated/types/solautoSettingsParameters.d.ts +2 -15
- package/dist/generated/types/solautoSettingsParameters.d.ts.map +1 -1
- package/dist/generated/types/solautoSettingsParameters.js +1 -5
- package/dist/generated/types/solautoSettingsParametersInp.d.ts +1 -12
- package/dist/generated/types/solautoSettingsParametersInp.d.ts.map +1 -1
- package/dist/generated/types/solautoSettingsParametersInp.js +0 -3
- package/dist/generated/types/swapType.d.ts +15 -0
- package/dist/generated/types/swapType.d.ts.map +1 -0
- package/dist/generated/types/swapType.js +22 -0
- package/dist/generated/types/tokenBalanceChange.d.ts +21 -0
- package/dist/generated/types/tokenBalanceChange.d.ts.map +1 -0
- package/dist/generated/types/tokenBalanceChange.js +19 -0
- package/dist/generated/types/tokenBalanceChangeType.d.ts +18 -0
- package/dist/generated/types/tokenBalanceChangeType.d.ts.map +1 -0
- package/dist/generated/types/tokenBalanceChangeType.js +25 -0
- package/dist/generated/types/updatePositionData.d.ts +2 -2
- package/dist/generated/types/updatePositionData.d.ts.map +1 -1
- package/dist/generated/types/updatePositionData.js +1 -1
- package/dist/index.d.ts +8 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -5
- package/dist/marginfi-sdk/types/interestRateConfig.d.ts +3 -1
- package/dist/marginfi-sdk/types/interestRateConfig.d.ts.map +1 -1
- package/dist/marginfi-sdk/types/interestRateConfig.js +2 -1
- package/dist/services/flashLoans/flProviderAggregator.d.ts +19 -0
- package/dist/services/flashLoans/flProviderAggregator.d.ts.map +1 -0
- package/dist/services/flashLoans/flProviderAggregator.js +46 -0
- package/dist/services/flashLoans/flProviderBase.d.ts +23 -0
- package/dist/services/flashLoans/flProviderBase.d.ts.map +1 -0
- package/dist/services/flashLoans/flProviderBase.js +37 -0
- package/dist/services/flashLoans/index.d.ts +4 -0
- package/dist/services/flashLoans/index.d.ts.map +1 -0
- package/dist/services/flashLoans/index.js +19 -0
- package/dist/services/flashLoans/marginfiFlProvider.d.ts +25 -0
- package/dist/services/flashLoans/marginfiFlProvider.d.ts.map +1 -0
- package/dist/services/flashLoans/marginfiFlProvider.js +246 -0
- package/dist/services/index.d.ts +6 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +21 -0
- package/dist/services/rebalance/index.d.ts +3 -0
- package/dist/services/rebalance/index.d.ts.map +1 -0
- package/dist/services/rebalance/index.js +18 -0
- package/dist/services/rebalance/rebalanceSwapManager.d.ts +30 -0
- package/dist/services/rebalance/rebalanceSwapManager.d.ts.map +1 -0
- package/dist/services/rebalance/rebalanceSwapManager.js +144 -0
- package/dist/services/rebalance/rebalanceTxBuilder.d.ts +22 -0
- package/dist/services/rebalance/rebalanceTxBuilder.d.ts.map +1 -0
- package/dist/services/rebalance/rebalanceTxBuilder.js +200 -0
- package/dist/services/rebalance/rebalanceValues.d.ts +31 -0
- package/dist/services/rebalance/rebalanceValues.d.ts.map +1 -0
- package/dist/services/rebalance/rebalanceValues.js +118 -0
- package/dist/services/rebalance/solautoFees.d.ts +13 -0
- package/dist/services/rebalance/solautoFees.d.ts.map +1 -0
- package/dist/services/rebalance/solautoFees.js +54 -0
- package/dist/services/solauto/index.d.ts +5 -0
- package/dist/services/solauto/index.d.ts.map +1 -0
- package/dist/{clients → services/solauto}/referralStateManager.d.ts +4 -5
- package/dist/services/solauto/referralStateManager.d.ts.map +1 -0
- package/dist/{clients → services/solauto}/referralStateManager.js +10 -12
- package/dist/services/solauto/solautoClient.d.ts +59 -0
- package/dist/services/solauto/solautoClient.d.ts.map +1 -0
- package/dist/{clients → services/solauto}/solautoClient.js +78 -109
- package/dist/services/solauto/solautoMarginfiClient.d.ts +34 -0
- package/dist/services/solauto/solautoMarginfiClient.d.ts.map +1 -0
- package/dist/services/solauto/solautoMarginfiClient.js +322 -0
- package/dist/{clients → services/solauto}/txHandler.d.ts +11 -2
- package/dist/services/solauto/txHandler.d.ts.map +1 -0
- package/dist/services/solauto/txHandler.js +38 -0
- package/dist/services/swap/index.d.ts +2 -0
- package/dist/services/swap/index.d.ts.map +1 -0
- package/dist/{utils/solauto → services/swap}/index.js +1 -2
- package/dist/services/swap/jupSwapManager.d.ts +37 -0
- package/dist/services/swap/jupSwapManager.d.ts.map +1 -0
- package/dist/services/swap/jupSwapManager.js +108 -0
- package/dist/services/transactions/index.d.ts.map +1 -0
- package/dist/{transactions → services/transactions}/transactionUtils.d.ts +3 -5
- package/dist/services/transactions/transactionUtils.d.ts.map +1 -0
- package/dist/{transactions → services/transactions}/transactionUtils.js +29 -137
- package/dist/{transactions → services/transactions}/transactionsManager.d.ts +4 -4
- package/dist/services/transactions/transactionsManager.d.ts.map +1 -0
- package/dist/{transactions → services/transactions}/transactionsManager.js +10 -8
- package/dist/solautoPosition/index.d.ts +4 -0
- package/dist/solautoPosition/index.d.ts.map +1 -0
- package/dist/solautoPosition/index.js +19 -0
- package/dist/solautoPosition/marginfiSolautoPositionEx.d.ts +14 -0
- package/dist/solautoPosition/marginfiSolautoPositionEx.d.ts.map +1 -0
- package/dist/solautoPosition/marginfiSolautoPositionEx.js +73 -0
- package/dist/solautoPosition/solautoPositionEx.d.ts +67 -0
- package/dist/solautoPosition/solautoPositionEx.d.ts.map +1 -0
- package/dist/solautoPosition/solautoPositionEx.js +143 -0
- package/dist/solautoPosition/utils.d.ts +17 -0
- package/dist/solautoPosition/utils.d.ts.map +1 -0
- package/dist/solautoPosition/utils.js +115 -0
- package/dist/types/solauto.d.ts +19 -1
- package/dist/types/solauto.d.ts.map +1 -1
- package/dist/utils/generalUtils.d.ts +1 -0
- package/dist/utils/generalUtils.d.ts.map +1 -1
- package/dist/utils/generalUtils.js +9 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/jitoUtils.d.ts.map +1 -1
- package/dist/utils/jupiterUtils.d.ts +3 -28
- package/dist/utils/jupiterUtils.d.ts.map +1 -1
- package/dist/utils/jupiterUtils.js +2 -73
- package/dist/utils/marginfiUtils.d.ts +4 -3
- package/dist/utils/marginfiUtils.d.ts.map +1 -1
- package/dist/utils/marginfiUtils.js +47 -18
- package/dist/utils/numberUtils.d.ts +3 -6
- package/dist/utils/numberUtils.d.ts.map +1 -1
- package/dist/utils/numberUtils.js +13 -48
- package/dist/utils/solanaUtils.js +2 -2
- package/dist/utils/{solauto/generalUtils.d.ts → solautoUtils.d.ts} +9 -16
- package/dist/utils/solautoUtils.d.ts.map +1 -0
- package/dist/utils/{solauto/generalUtils.js → solautoUtils.js} +49 -173
- package/local/createTokenAccounts.ts +1 -5
- package/local/logPositions.ts +22 -68
- package/local/shared.ts +29 -24
- package/local/txSandbox.ts +66 -0
- package/local/updateMarginfiLUT.ts +80 -4
- package/package.json +3 -6
- package/src/constants/solautoConstants.ts +4 -9
- package/src/generated/accounts/solautoPosition.ts +2 -2
- package/src/generated/errors/solauto.ts +45 -4
- package/src/generated/instructions/claimReferralFees.ts +1 -1
- package/src/generated/instructions/closePosition.ts +3 -3
- package/src/generated/instructions/marginfiOpenPosition.ts +0 -7
- package/src/generated/instructions/marginfiRebalance.ts +12 -3
- package/src/generated/types/index.ts +7 -1
- package/src/generated/types/positionData.ts +3 -3
- package/src/generated/types/positionState.ts +12 -12
- package/src/generated/types/{positionTokenUsage.ts → positionTokenState.ts} +13 -16
- package/src/generated/types/rebalanceData.ts +16 -27
- package/src/generated/types/rebalanceDirection.ts +1 -0
- package/src/generated/types/rebalanceInstructionData.ts +62 -0
- package/src/generated/types/rebalanceStateValues.ts +59 -0
- package/src/generated/types/rebalanceStep.ts +25 -0
- package/src/generated/types/solautoRebalanceType.ts +0 -1
- package/src/generated/types/solautoSettingsParameters.ts +4 -25
- package/src/generated/types/solautoSettingsParametersInp.ts +2 -24
- package/src/generated/types/swapType.ts +22 -0
- package/src/generated/types/tokenBalanceChange.ts +46 -0
- package/src/generated/types/tokenBalanceChangeType.ts +28 -0
- package/src/generated/types/updatePositionData.ts +3 -3
- package/src/index.ts +8 -8
- package/src/marginfi-sdk/types/interestRateConfig.ts +6 -2
- package/src/services/flashLoans/flProviderAggregator.ts +74 -0
- package/src/services/flashLoans/flProviderBase.ts +88 -0
- package/src/services/flashLoans/index.ts +3 -0
- package/src/services/flashLoans/marginfiFlProvider.ts +392 -0
- package/src/services/index.ts +5 -0
- package/src/services/rebalance/index.ts +2 -0
- package/src/services/rebalance/rebalanceSwapManager.ts +218 -0
- package/src/services/rebalance/rebalanceTxBuilder.ts +330 -0
- package/src/services/rebalance/rebalanceValues.ts +232 -0
- package/src/services/rebalance/solautoFees.ts +61 -0
- package/src/services/solauto/index.ts +4 -0
- package/src/{clients → services/solauto}/referralStateManager.ts +17 -31
- package/src/{clients → services/solauto}/solautoClient.ts +142 -205
- package/src/services/solauto/solautoMarginfiClient.ts +472 -0
- package/src/services/solauto/txHandler.ts +69 -0
- package/src/services/swap/index.ts +1 -0
- package/src/services/swap/jupSwapManager.ts +189 -0
- package/src/{transactions → services/transactions}/transactionUtils.ts +40 -280
- package/src/{transactions → services/transactions}/transactionsManager.ts +15 -10
- package/src/solautoPosition/index.ts +3 -0
- package/src/solautoPosition/marginfiSolautoPositionEx.ts +111 -0
- package/src/solautoPosition/solautoPositionEx.ts +281 -0
- package/src/solautoPosition/utils.ts +188 -0
- package/src/types/solauto.ts +30 -2
- package/src/utils/generalUtils.ts +9 -1
- package/src/utils/index.ts +2 -2
- package/src/utils/jitoUtils.ts +0 -4
- package/src/utils/jupiterUtils.ts +3 -164
- package/src/utils/marginfiUtils.ts +77 -43
- package/src/utils/numberUtils.ts +18 -77
- package/src/utils/solanaUtils.ts +1 -1
- package/src/utils/{solauto/generalUtils.ts → solautoUtils.ts} +67 -288
- package/tests/transactions/shared.ts +135 -0
- package/tests/transactions/solautoMarginfi.ts +8 -198
- package/tests/unit/accounts.ts +3 -10
- package/tests/unit/lookupTables.ts +23 -2
- package/tests/unit/rebalanceCalculations.ts +65 -343
- package/dist/clients/index.d.ts +0 -5
- package/dist/clients/index.d.ts.map +0 -1
- package/dist/clients/referralStateManager.d.ts.map +0 -1
- package/dist/clients/solautoClient.d.ts +0 -71
- package/dist/clients/solautoClient.d.ts.map +0 -1
- package/dist/clients/solautoMarginfiClient.d.ts +0 -51
- package/dist/clients/solautoMarginfiClient.d.ts.map +0 -1
- package/dist/clients/solautoMarginfiClient.js +0 -497
- package/dist/clients/txHandler.d.ts.map +0 -1
- package/dist/clients/txHandler.js +0 -23
- package/dist/generated/types/positionTokenUsage.d.ts.map +0 -1
- package/dist/transactions/index.d.ts.map +0 -1
- package/dist/transactions/transactionUtils.d.ts.map +0 -1
- package/dist/transactions/transactionsManager.d.ts.map +0 -1
- package/dist/utils/solauto/generalUtils.d.ts.map +0 -1
- package/dist/utils/solauto/index.d.ts +0 -3
- package/dist/utils/solauto/index.d.ts.map +0 -1
- package/dist/utils/solauto/rebalanceUtils.d.ts +0 -30
- package/dist/utils/solauto/rebalanceUtils.d.ts.map +0 -1
- package/dist/utils/solauto/rebalanceUtils.js +0 -287
- package/src/clients/index.ts +0 -4
- package/src/clients/solautoMarginfiClient.ts +0 -774
- package/src/clients/txHandler.ts +0 -38
- package/src/utils/solauto/index.ts +0 -2
- package/src/utils/solauto/rebalanceUtils.ts +0 -562
- package/dist/{clients → services/solauto}/index.js +2 -2
- /package/dist/{transactions → services/transactions}/index.d.ts +0 -0
- /package/dist/{transactions → services/transactions}/index.js +0 -0
- /package/src/{transactions → services/transactions}/index.ts +0 -0
@@ -19,49 +19,46 @@ import {
|
|
19
19
|
} from '@metaplex-foundation/umi/serializers';
|
20
20
|
import { TokenAmount, TokenAmountArgs, getTokenAmountSerializer } from '.';
|
21
21
|
|
22
|
-
export type
|
22
|
+
export type PositionTokenState = {
|
23
23
|
mint: PublicKey;
|
24
24
|
decimals: number;
|
25
25
|
padding1: Array<number>;
|
26
|
+
borrowFeeBps: number;
|
26
27
|
amountUsed: TokenAmount;
|
27
28
|
amountCanBeUsed: TokenAmount;
|
28
29
|
baseAmountMarketPriceUsd: bigint;
|
29
|
-
flashLoanFeeBps: number;
|
30
|
-
borrowFeeBps: number;
|
31
30
|
padding2: Array<number>;
|
32
31
|
padding: Uint8Array;
|
33
32
|
};
|
34
33
|
|
35
|
-
export type
|
34
|
+
export type PositionTokenStateArgs = {
|
36
35
|
mint: PublicKey;
|
37
36
|
decimals: number;
|
38
37
|
padding1: Array<number>;
|
38
|
+
borrowFeeBps: number;
|
39
39
|
amountUsed: TokenAmountArgs;
|
40
40
|
amountCanBeUsed: TokenAmountArgs;
|
41
41
|
baseAmountMarketPriceUsd: number | bigint;
|
42
|
-
flashLoanFeeBps: number;
|
43
|
-
borrowFeeBps: number;
|
44
42
|
padding2: Array<number>;
|
45
43
|
padding: Uint8Array;
|
46
44
|
};
|
47
45
|
|
48
|
-
export function
|
49
|
-
|
50
|
-
|
46
|
+
export function getPositionTokenStateSerializer(): Serializer<
|
47
|
+
PositionTokenStateArgs,
|
48
|
+
PositionTokenState
|
51
49
|
> {
|
52
|
-
return struct<
|
50
|
+
return struct<PositionTokenState>(
|
53
51
|
[
|
54
52
|
['mint', publicKeySerializer()],
|
55
53
|
['decimals', u8()],
|
56
|
-
['padding1', array(u8(), { size:
|
54
|
+
['padding1', array(u8(), { size: 5 })],
|
55
|
+
['borrowFeeBps', u16()],
|
57
56
|
['amountUsed', getTokenAmountSerializer()],
|
58
57
|
['amountCanBeUsed', getTokenAmountSerializer()],
|
59
58
|
['baseAmountMarketPriceUsd', u64()],
|
60
|
-
['
|
61
|
-
['borrowFeeBps', u16()],
|
62
|
-
['padding2', array(u8(), { size: 4 })],
|
59
|
+
['padding2', array(u8(), { size: 8 })],
|
63
60
|
['padding', bytes({ size: 32 })],
|
64
61
|
],
|
65
|
-
{ description: '
|
66
|
-
) as Serializer<
|
62
|
+
{ description: 'PositionTokenState' }
|
63
|
+
) as Serializer<PositionTokenStateArgs, PositionTokenState>;
|
67
64
|
}
|
@@ -9,36 +9,28 @@
|
|
9
9
|
import {
|
10
10
|
Serializer,
|
11
11
|
array,
|
12
|
-
bytes,
|
13
12
|
struct,
|
14
|
-
|
15
|
-
u8,
|
13
|
+
u32,
|
16
14
|
} from '@metaplex-foundation/umi/serializers';
|
17
15
|
import {
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
16
|
+
RebalanceInstructionData,
|
17
|
+
RebalanceInstructionDataArgs,
|
18
|
+
RebalanceStateValues,
|
19
|
+
RebalanceStateValuesArgs,
|
20
|
+
getRebalanceInstructionDataSerializer,
|
21
|
+
getRebalanceStateValuesSerializer,
|
24
22
|
} from '.';
|
25
23
|
|
26
24
|
export type RebalanceData = {
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
padding2: Array<number>;
|
31
|
-
flashLoanAmount: bigint;
|
32
|
-
padding: Uint8Array;
|
25
|
+
ixs: RebalanceInstructionData;
|
26
|
+
values: RebalanceStateValues;
|
27
|
+
padding: Array<number>;
|
33
28
|
};
|
34
29
|
|
35
30
|
export type RebalanceDataArgs = {
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
padding2: Array<number>;
|
40
|
-
flashLoanAmount: number | bigint;
|
41
|
-
padding: Uint8Array;
|
31
|
+
ixs: RebalanceInstructionDataArgs;
|
32
|
+
values: RebalanceStateValuesArgs;
|
33
|
+
padding: Array<number>;
|
42
34
|
};
|
43
35
|
|
44
36
|
export function getRebalanceDataSerializer(): Serializer<
|
@@ -47,12 +39,9 @@ export function getRebalanceDataSerializer(): Serializer<
|
|
47
39
|
> {
|
48
40
|
return struct<RebalanceData>(
|
49
41
|
[
|
50
|
-
['
|
51
|
-
['
|
52
|
-
['
|
53
|
-
['padding2', array(u8(), { size: 7 })],
|
54
|
-
['flashLoanAmount', u64()],
|
55
|
-
['padding', bytes({ size: 32 })],
|
42
|
+
['ixs', getRebalanceInstructionDataSerializer()],
|
43
|
+
['values', getRebalanceStateValuesSerializer()],
|
44
|
+
['padding', array(u32(), { size: 4 })],
|
56
45
|
],
|
57
46
|
{ description: 'RebalanceData' }
|
58
47
|
) as Serializer<RebalanceDataArgs, RebalanceData>;
|
@@ -0,0 +1,62 @@
|
|
1
|
+
/**
|
2
|
+
* This code was AUTOGENERATED using the kinobi library.
|
3
|
+
* Please DO NOT EDIT THIS FILE, instead use visitors
|
4
|
+
* to add features, then rerun kinobi to update it.
|
5
|
+
*
|
6
|
+
* @see https://github.com/metaplex-foundation/kinobi
|
7
|
+
*/
|
8
|
+
|
9
|
+
import {
|
10
|
+
Serializer,
|
11
|
+
array,
|
12
|
+
struct,
|
13
|
+
u32,
|
14
|
+
u64,
|
15
|
+
u8,
|
16
|
+
} from '@metaplex-foundation/umi/serializers';
|
17
|
+
import {
|
18
|
+
PodBool,
|
19
|
+
PodBoolArgs,
|
20
|
+
SolautoRebalanceType,
|
21
|
+
SolautoRebalanceTypeArgs,
|
22
|
+
SwapType,
|
23
|
+
SwapTypeArgs,
|
24
|
+
getPodBoolSerializer,
|
25
|
+
getSolautoRebalanceTypeSerializer,
|
26
|
+
getSwapTypeSerializer,
|
27
|
+
} from '.';
|
28
|
+
|
29
|
+
export type RebalanceInstructionData = {
|
30
|
+
active: PodBool;
|
31
|
+
rebalanceType: SolautoRebalanceType;
|
32
|
+
swapType: SwapType;
|
33
|
+
padding1: Array<number>;
|
34
|
+
flashLoanAmount: bigint;
|
35
|
+
padding: Array<number>;
|
36
|
+
};
|
37
|
+
|
38
|
+
export type RebalanceInstructionDataArgs = {
|
39
|
+
active: PodBoolArgs;
|
40
|
+
rebalanceType: SolautoRebalanceTypeArgs;
|
41
|
+
swapType: SwapTypeArgs;
|
42
|
+
padding1: Array<number>;
|
43
|
+
flashLoanAmount: number | bigint;
|
44
|
+
padding: Array<number>;
|
45
|
+
};
|
46
|
+
|
47
|
+
export function getRebalanceInstructionDataSerializer(): Serializer<
|
48
|
+
RebalanceInstructionDataArgs,
|
49
|
+
RebalanceInstructionData
|
50
|
+
> {
|
51
|
+
return struct<RebalanceInstructionData>(
|
52
|
+
[
|
53
|
+
['active', getPodBoolSerializer()],
|
54
|
+
['rebalanceType', getSolautoRebalanceTypeSerializer()],
|
55
|
+
['swapType', getSwapTypeSerializer()],
|
56
|
+
['padding1', array(u8(), { size: 5 })],
|
57
|
+
['flashLoanAmount', u64()],
|
58
|
+
['padding', array(u32(), { size: 4 })],
|
59
|
+
],
|
60
|
+
{ description: 'RebalanceInstructionData' }
|
61
|
+
) as Serializer<RebalanceInstructionDataArgs, RebalanceInstructionData>;
|
62
|
+
}
|
@@ -0,0 +1,59 @@
|
|
1
|
+
/**
|
2
|
+
* This code was AUTOGENERATED using the kinobi library.
|
3
|
+
* Please DO NOT EDIT THIS FILE, instead use visitors
|
4
|
+
* to add features, then rerun kinobi to update it.
|
5
|
+
*
|
6
|
+
* @see https://github.com/metaplex-foundation/kinobi
|
7
|
+
*/
|
8
|
+
|
9
|
+
import {
|
10
|
+
Serializer,
|
11
|
+
array,
|
12
|
+
struct,
|
13
|
+
u32,
|
14
|
+
u64,
|
15
|
+
u8,
|
16
|
+
} from '@metaplex-foundation/umi/serializers';
|
17
|
+
import {
|
18
|
+
RebalanceDirection,
|
19
|
+
RebalanceDirectionArgs,
|
20
|
+
TokenBalanceChange,
|
21
|
+
TokenBalanceChangeArgs,
|
22
|
+
getRebalanceDirectionSerializer,
|
23
|
+
getTokenBalanceChangeSerializer,
|
24
|
+
} from '.';
|
25
|
+
|
26
|
+
export type RebalanceStateValues = {
|
27
|
+
rebalanceDirection: RebalanceDirection;
|
28
|
+
padding1: Array<number>;
|
29
|
+
targetSupplyUsd: bigint;
|
30
|
+
targetDebtUsd: bigint;
|
31
|
+
tokenBalanceChange: TokenBalanceChange;
|
32
|
+
padding: Array<number>;
|
33
|
+
};
|
34
|
+
|
35
|
+
export type RebalanceStateValuesArgs = {
|
36
|
+
rebalanceDirection: RebalanceDirectionArgs;
|
37
|
+
padding1: Array<number>;
|
38
|
+
targetSupplyUsd: number | bigint;
|
39
|
+
targetDebtUsd: number | bigint;
|
40
|
+
tokenBalanceChange: TokenBalanceChangeArgs;
|
41
|
+
padding: Array<number>;
|
42
|
+
};
|
43
|
+
|
44
|
+
export function getRebalanceStateValuesSerializer(): Serializer<
|
45
|
+
RebalanceStateValuesArgs,
|
46
|
+
RebalanceStateValues
|
47
|
+
> {
|
48
|
+
return struct<RebalanceStateValues>(
|
49
|
+
[
|
50
|
+
['rebalanceDirection', getRebalanceDirectionSerializer()],
|
51
|
+
['padding1', array(u8(), { size: 7 })],
|
52
|
+
['targetSupplyUsd', u64()],
|
53
|
+
['targetDebtUsd', u64()],
|
54
|
+
['tokenBalanceChange', getTokenBalanceChangeSerializer()],
|
55
|
+
['padding', array(u32(), { size: 4 })],
|
56
|
+
],
|
57
|
+
{ description: 'RebalanceStateValues' }
|
58
|
+
) as Serializer<RebalanceStateValuesArgs, RebalanceStateValues>;
|
59
|
+
}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
/**
|
2
|
+
* This code was AUTOGENERATED using the kinobi library.
|
3
|
+
* Please DO NOT EDIT THIS FILE, instead use visitors
|
4
|
+
* to add features, then rerun kinobi to update it.
|
5
|
+
*
|
6
|
+
* @see https://github.com/metaplex-foundation/kinobi
|
7
|
+
*/
|
8
|
+
|
9
|
+
import { Serializer, scalarEnum } from '@metaplex-foundation/umi/serializers';
|
10
|
+
|
11
|
+
export enum RebalanceStep {
|
12
|
+
PreSwap,
|
13
|
+
PostSwap,
|
14
|
+
}
|
15
|
+
|
16
|
+
export type RebalanceStepArgs = RebalanceStep;
|
17
|
+
|
18
|
+
export function getRebalanceStepSerializer(): Serializer<
|
19
|
+
RebalanceStepArgs,
|
20
|
+
RebalanceStep
|
21
|
+
> {
|
22
|
+
return scalarEnum<RebalanceStep>(RebalanceStep, {
|
23
|
+
description: 'RebalanceStep',
|
24
|
+
}) as Serializer<RebalanceStepArgs, RebalanceStep>;
|
25
|
+
}
|
@@ -9,38 +9,20 @@
|
|
9
9
|
import {
|
10
10
|
Serializer,
|
11
11
|
array,
|
12
|
-
bytes,
|
13
12
|
struct,
|
14
13
|
u16,
|
15
|
-
|
14
|
+
u32,
|
16
15
|
} from '@metaplex-foundation/umi/serializers';
|
17
|
-
import {
|
18
|
-
AutomationSettings,
|
19
|
-
AutomationSettingsArgs,
|
20
|
-
getAutomationSettingsSerializer,
|
21
|
-
} from '.';
|
22
16
|
|
23
17
|
export type SolautoSettingsParameters = {
|
24
18
|
boostToBps: number;
|
25
19
|
boostGap: number;
|
26
20
|
repayToBps: number;
|
27
21
|
repayGap: number;
|
28
|
-
|
29
|
-
padding1: Array<number>;
|
30
|
-
automation: AutomationSettings;
|
31
|
-
padding: Uint8Array;
|
22
|
+
padding: Array<number>;
|
32
23
|
};
|
33
24
|
|
34
|
-
export type SolautoSettingsParametersArgs =
|
35
|
-
boostToBps: number;
|
36
|
-
boostGap: number;
|
37
|
-
repayToBps: number;
|
38
|
-
repayGap: number;
|
39
|
-
targetBoostToBps: number;
|
40
|
-
padding1: Array<number>;
|
41
|
-
automation: AutomationSettingsArgs;
|
42
|
-
padding: Uint8Array;
|
43
|
-
};
|
25
|
+
export type SolautoSettingsParametersArgs = SolautoSettingsParameters;
|
44
26
|
|
45
27
|
export function getSolautoSettingsParametersSerializer(): Serializer<
|
46
28
|
SolautoSettingsParametersArgs,
|
@@ -52,10 +34,7 @@ export function getSolautoSettingsParametersSerializer(): Serializer<
|
|
52
34
|
['boostGap', u16()],
|
53
35
|
['repayToBps', u16()],
|
54
36
|
['repayGap', u16()],
|
55
|
-
['
|
56
|
-
['padding1', array(u8(), { size: 6 })],
|
57
|
-
['automation', getAutomationSettingsSerializer()],
|
58
|
-
['padding', bytes({ size: 32 })],
|
37
|
+
['padding', array(u32(), { size: 24 })],
|
59
38
|
],
|
60
39
|
{ description: 'SolautoSettingsParameters' }
|
61
40
|
) as Serializer<SolautoSettingsParametersArgs, SolautoSettingsParameters>;
|
@@ -6,36 +6,16 @@
|
|
6
6
|
* @see https://github.com/metaplex-foundation/kinobi
|
7
7
|
*/
|
8
8
|
|
9
|
-
import {
|
10
|
-
import {
|
11
|
-
Serializer,
|
12
|
-
option,
|
13
|
-
struct,
|
14
|
-
u16,
|
15
|
-
} from '@metaplex-foundation/umi/serializers';
|
16
|
-
import {
|
17
|
-
AutomationSettingsInp,
|
18
|
-
AutomationSettingsInpArgs,
|
19
|
-
getAutomationSettingsInpSerializer,
|
20
|
-
} from '.';
|
9
|
+
import { Serializer, struct, u16 } from '@metaplex-foundation/umi/serializers';
|
21
10
|
|
22
11
|
export type SolautoSettingsParametersInp = {
|
23
12
|
boostToBps: number;
|
24
13
|
boostGap: number;
|
25
14
|
repayToBps: number;
|
26
15
|
repayGap: number;
|
27
|
-
targetBoostToBps: Option<number>;
|
28
|
-
automation: Option<AutomationSettingsInp>;
|
29
16
|
};
|
30
17
|
|
31
|
-
export type SolautoSettingsParametersInpArgs =
|
32
|
-
boostToBps: number;
|
33
|
-
boostGap: number;
|
34
|
-
repayToBps: number;
|
35
|
-
repayGap: number;
|
36
|
-
targetBoostToBps: OptionOrNullable<number>;
|
37
|
-
automation: OptionOrNullable<AutomationSettingsInpArgs>;
|
38
|
-
};
|
18
|
+
export type SolautoSettingsParametersInpArgs = SolautoSettingsParametersInp;
|
39
19
|
|
40
20
|
export function getSolautoSettingsParametersInpSerializer(): Serializer<
|
41
21
|
SolautoSettingsParametersInpArgs,
|
@@ -47,8 +27,6 @@ export function getSolautoSettingsParametersInpSerializer(): Serializer<
|
|
47
27
|
['boostGap', u16()],
|
48
28
|
['repayToBps', u16()],
|
49
29
|
['repayGap', u16()],
|
50
|
-
['targetBoostToBps', option(u16())],
|
51
|
-
['automation', option(getAutomationSettingsInpSerializer())],
|
52
30
|
],
|
53
31
|
{ description: 'SolautoSettingsParametersInp' }
|
54
32
|
) as Serializer<
|
@@ -0,0 +1,22 @@
|
|
1
|
+
/**
|
2
|
+
* This code was AUTOGENERATED using the kinobi library.
|
3
|
+
* Please DO NOT EDIT THIS FILE, instead use visitors
|
4
|
+
* to add features, then rerun kinobi to update it.
|
5
|
+
*
|
6
|
+
* @see https://github.com/metaplex-foundation/kinobi
|
7
|
+
*/
|
8
|
+
|
9
|
+
import { Serializer, scalarEnum } from '@metaplex-foundation/umi/serializers';
|
10
|
+
|
11
|
+
export enum SwapType {
|
12
|
+
ExactIn,
|
13
|
+
ExactOut,
|
14
|
+
}
|
15
|
+
|
16
|
+
export type SwapTypeArgs = SwapType;
|
17
|
+
|
18
|
+
export function getSwapTypeSerializer(): Serializer<SwapTypeArgs, SwapType> {
|
19
|
+
return scalarEnum<SwapType>(SwapType, {
|
20
|
+
description: 'SwapType',
|
21
|
+
}) as Serializer<SwapTypeArgs, SwapType>;
|
22
|
+
}
|
@@ -0,0 +1,46 @@
|
|
1
|
+
/**
|
2
|
+
* This code was AUTOGENERATED using the kinobi library.
|
3
|
+
* Please DO NOT EDIT THIS FILE, instead use visitors
|
4
|
+
* to add features, then rerun kinobi to update it.
|
5
|
+
*
|
6
|
+
* @see https://github.com/metaplex-foundation/kinobi
|
7
|
+
*/
|
8
|
+
|
9
|
+
import {
|
10
|
+
Serializer,
|
11
|
+
array,
|
12
|
+
struct,
|
13
|
+
u64,
|
14
|
+
u8,
|
15
|
+
} from '@metaplex-foundation/umi/serializers';
|
16
|
+
import {
|
17
|
+
TokenBalanceChangeType,
|
18
|
+
TokenBalanceChangeTypeArgs,
|
19
|
+
getTokenBalanceChangeTypeSerializer,
|
20
|
+
} from '.';
|
21
|
+
|
22
|
+
export type TokenBalanceChange = {
|
23
|
+
changeType: TokenBalanceChangeType;
|
24
|
+
padding1: Array<number>;
|
25
|
+
amountUsd: bigint;
|
26
|
+
};
|
27
|
+
|
28
|
+
export type TokenBalanceChangeArgs = {
|
29
|
+
changeType: TokenBalanceChangeTypeArgs;
|
30
|
+
padding1: Array<number>;
|
31
|
+
amountUsd: number | bigint;
|
32
|
+
};
|
33
|
+
|
34
|
+
export function getTokenBalanceChangeSerializer(): Serializer<
|
35
|
+
TokenBalanceChangeArgs,
|
36
|
+
TokenBalanceChange
|
37
|
+
> {
|
38
|
+
return struct<TokenBalanceChange>(
|
39
|
+
[
|
40
|
+
['changeType', getTokenBalanceChangeTypeSerializer()],
|
41
|
+
['padding1', array(u8(), { size: 7 })],
|
42
|
+
['amountUsd', u64()],
|
43
|
+
],
|
44
|
+
{ description: 'TokenBalanceChange' }
|
45
|
+
) as Serializer<TokenBalanceChangeArgs, TokenBalanceChange>;
|
46
|
+
}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
/**
|
2
|
+
* This code was AUTOGENERATED using the kinobi library.
|
3
|
+
* Please DO NOT EDIT THIS FILE, instead use visitors
|
4
|
+
* to add features, then rerun kinobi to update it.
|
5
|
+
*
|
6
|
+
* @see https://github.com/metaplex-foundation/kinobi
|
7
|
+
*/
|
8
|
+
|
9
|
+
import { Serializer, scalarEnum } from '@metaplex-foundation/umi/serializers';
|
10
|
+
|
11
|
+
export enum TokenBalanceChangeType {
|
12
|
+
None,
|
13
|
+
PreSwapDeposit,
|
14
|
+
PostSwapDeposit,
|
15
|
+
PostRebalanceWithdrawSupplyToken,
|
16
|
+
PostRebalanceWithdrawDebtToken,
|
17
|
+
}
|
18
|
+
|
19
|
+
export type TokenBalanceChangeTypeArgs = TokenBalanceChangeType;
|
20
|
+
|
21
|
+
export function getTokenBalanceChangeTypeSerializer(): Serializer<
|
22
|
+
TokenBalanceChangeTypeArgs,
|
23
|
+
TokenBalanceChangeType
|
24
|
+
> {
|
25
|
+
return scalarEnum<TokenBalanceChangeType>(TokenBalanceChangeType, {
|
26
|
+
description: 'TokenBalanceChangeType',
|
27
|
+
}) as Serializer<TokenBalanceChangeTypeArgs, TokenBalanceChangeType>;
|
28
|
+
}
|
@@ -24,13 +24,13 @@ import {
|
|
24
24
|
|
25
25
|
export type UpdatePositionData = {
|
26
26
|
positionId: number;
|
27
|
-
|
27
|
+
settings: Option<SolautoSettingsParametersInp>;
|
28
28
|
dca: Option<DCASettingsInp>;
|
29
29
|
};
|
30
30
|
|
31
31
|
export type UpdatePositionDataArgs = {
|
32
32
|
positionId: number;
|
33
|
-
|
33
|
+
settings: OptionOrNullable<SolautoSettingsParametersInpArgs>;
|
34
34
|
dca: OptionOrNullable<DCASettingsInpArgs>;
|
35
35
|
};
|
36
36
|
|
@@ -41,7 +41,7 @@ export function getUpdatePositionDataSerializer(): Serializer<
|
|
41
41
|
return struct<UpdatePositionData>(
|
42
42
|
[
|
43
43
|
['positionId', u8()],
|
44
|
-
['
|
44
|
+
['settings', option(getSolautoSettingsParametersInpSerializer())],
|
45
45
|
['dca', option(getDCASettingsInpSerializer())],
|
46
46
|
],
|
47
47
|
{ description: 'UpdatePositionData' }
|
package/src/index.ts
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
export * from
|
2
|
-
export * from
|
3
|
-
export * from
|
4
|
-
export * from
|
5
|
-
export * from
|
6
|
-
export * from
|
7
|
-
|
8
|
-
|
1
|
+
export * from "./constants";
|
2
|
+
export * from "./generated/accounts";
|
3
|
+
export * from "./generated/types";
|
4
|
+
export * from "./marginfi-sdk/accounts";
|
5
|
+
export * from "./services";
|
6
|
+
export * from "./solautoPosition";
|
7
|
+
export * from "./types";
|
8
|
+
export * from "./utils";
|
@@ -11,6 +11,7 @@ import {
|
|
11
11
|
array,
|
12
12
|
struct,
|
13
13
|
u128,
|
14
|
+
u32,
|
14
15
|
} from '@metaplex-foundation/umi/serializers';
|
15
16
|
import {
|
16
17
|
WrappedI80F48,
|
@@ -26,7 +27,8 @@ export type InterestRateConfig = {
|
|
26
27
|
insuranceIrFee: WrappedI80F48;
|
27
28
|
protocolFixedFeeApr: WrappedI80F48;
|
28
29
|
protocolIrFee: WrappedI80F48;
|
29
|
-
|
30
|
+
protocolOriginationFee: WrappedI80F48;
|
31
|
+
padding: Array<number>;
|
30
32
|
};
|
31
33
|
|
32
34
|
export type InterestRateConfigArgs = {
|
@@ -37,6 +39,7 @@ export type InterestRateConfigArgs = {
|
|
37
39
|
insuranceIrFee: WrappedI80F48Args;
|
38
40
|
protocolFixedFeeApr: WrappedI80F48Args;
|
39
41
|
protocolIrFee: WrappedI80F48Args;
|
42
|
+
protocolOriginationFee: WrappedI80F48Args;
|
40
43
|
padding: Array<number | bigint>;
|
41
44
|
};
|
42
45
|
|
@@ -53,7 +56,8 @@ export function getInterestRateConfigSerializer(): Serializer<
|
|
53
56
|
['insuranceIrFee', getWrappedI80F48Serializer()],
|
54
57
|
['protocolFixedFeeApr', getWrappedI80F48Serializer()],
|
55
58
|
['protocolIrFee', getWrappedI80F48Serializer()],
|
56
|
-
['
|
59
|
+
['protocolOriginationFee', getWrappedI80F48Serializer()],
|
60
|
+
['padding', array(u32(), { size: 28 })],
|
57
61
|
],
|
58
62
|
{ description: 'InterestRateConfig' }
|
59
63
|
) as Serializer<InterestRateConfigArgs, InterestRateConfig>;
|
@@ -0,0 +1,74 @@
|
|
1
|
+
import { FlProviderBase } from "./flProviderBase";
|
2
|
+
import { PublicKey } from "@solana/web3.js";
|
3
|
+
import { FlashLoanDetails, FlashLoanRequirements } from "../../types";
|
4
|
+
import { Signer, TransactionBuilder, Umi } from "@metaplex-foundation/umi";
|
5
|
+
import { TokenType } from "../../generated";
|
6
|
+
import { MarginfiFlProvider } from "./marginfiFlProvider";
|
7
|
+
|
8
|
+
export class FlProviderAggregator extends FlProviderBase {
|
9
|
+
private marginfiFlProvider!: MarginfiFlProvider;
|
10
|
+
|
11
|
+
constructor(
|
12
|
+
umi: Umi,
|
13
|
+
signer: Signer,
|
14
|
+
supplyMint: PublicKey,
|
15
|
+
debtMint: PublicKey
|
16
|
+
) {
|
17
|
+
super(umi, signer, supplyMint, debtMint);
|
18
|
+
this.marginfiFlProvider = new MarginfiFlProvider(
|
19
|
+
umi,
|
20
|
+
signer,
|
21
|
+
supplyMint,
|
22
|
+
debtMint
|
23
|
+
);
|
24
|
+
}
|
25
|
+
|
26
|
+
async initialize() {
|
27
|
+
// TODO: PF
|
28
|
+
// Once we have more than one, set the right fl provider for each liquidity source
|
29
|
+
await this.marginfiFlProvider.initialize();
|
30
|
+
}
|
31
|
+
|
32
|
+
async flAccountPrereqIxs(): Promise<TransactionBuilder> {
|
33
|
+
return await this.marginfiFlProvider.initializeIMfiAccounts();
|
34
|
+
}
|
35
|
+
|
36
|
+
otherSigners(): Signer[] {
|
37
|
+
// TODO: PF
|
38
|
+
return [...this.flSigners, ...this.marginfiFlProvider.otherSigners()];
|
39
|
+
}
|
40
|
+
|
41
|
+
lutAccountsToAdd(): PublicKey[] {
|
42
|
+
return [
|
43
|
+
...super.lutAccountsToAdd(),
|
44
|
+
...this.marginfiFlProvider.lutAccountsToAdd(),
|
45
|
+
];
|
46
|
+
}
|
47
|
+
|
48
|
+
private flProvider(source: TokenType): FlProviderBase {
|
49
|
+
// TODO: PF
|
50
|
+
return this.marginfiFlProvider;
|
51
|
+
}
|
52
|
+
|
53
|
+
liquidityAvailable(source: TokenType): bigint {
|
54
|
+
return this.flProvider(source).liquidityAvailable(source);
|
55
|
+
}
|
56
|
+
|
57
|
+
flFeeBps(source: TokenType, signerFlashLoan?: boolean): number {
|
58
|
+
return this.flProvider(source).flFeeBps(source);
|
59
|
+
}
|
60
|
+
|
61
|
+
flashBorrow(
|
62
|
+
flashLoan: FlashLoanDetails,
|
63
|
+
destTokenAccount: PublicKey
|
64
|
+
): TransactionBuilder {
|
65
|
+
return this.flProvider(flashLoan.liquiditySource).flashBorrow(
|
66
|
+
flashLoan,
|
67
|
+
destTokenAccount
|
68
|
+
);
|
69
|
+
}
|
70
|
+
|
71
|
+
flashRepay(flashLoan: FlashLoanDetails): TransactionBuilder {
|
72
|
+
return this.flProvider(flashLoan.liquiditySource).flashRepay(flashLoan);
|
73
|
+
}
|
74
|
+
}
|