@haven-fi/solauto-sdk 1.0.581 → 1.0.583
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/constants/switchboardConstants.d.ts.map +1 -1
- package/dist/constants/switchboardConstants.js +5 -5
- 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/priceUtils.js +1 -1
- 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} +48 -173
- package/dist/utils/switchboardUtils.d.ts +1 -1
- package/dist/utils/switchboardUtils.d.ts.map +1 -1
- package/dist/utils/switchboardUtils.js +10 -9
- package/local/createTokenAccounts.ts +1 -5
- package/local/logPositions.ts +22 -68
- package/local/shared.ts +29 -24
- package/local/txSandbox.ts +27 -0
- package/local/updateMarginfiLUT.ts +80 -4
- package/package.json +4 -7
- package/src/constants/solautoConstants.ts +4 -9
- package/src/constants/switchboardConstants.ts +10 -5
- 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} +66 -288
- package/src/utils/switchboardUtils.ts +15 -17
- 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
@@ -5,24 +5,16 @@ const web3_js_1 = require("@solana/web3.js");
|
|
5
5
|
const spl_token_1 = require("@solana/spl-token");
|
6
6
|
const umi_1 = require("@metaplex-foundation/umi");
|
7
7
|
const umi_web3js_adapters_1 = require("@metaplex-foundation/umi-web3js-adapters");
|
8
|
-
const
|
9
|
-
const
|
10
|
-
const utils_1 = require("../utils");
|
8
|
+
const generated_1 = require("../../generated");
|
9
|
+
const utils_1 = require("../../utils");
|
11
10
|
const txHandler_1 = require("./txHandler");
|
12
|
-
const constants_1 = require("
|
11
|
+
const constants_1 = require("../../constants");
|
13
12
|
class ReferralStateManager extends txHandler_1.TxHandler {
|
14
13
|
async initialize(args) {
|
15
|
-
if (!args.signer && !args.wallet) {
|
16
|
-
throw new Error("Signer or wallet must be provided");
|
17
|
-
}
|
18
|
-
this.umi = this.umi.use(args.signer
|
19
|
-
? (0, umi_1.signerIdentity)(args.signer, true)
|
20
|
-
: (0, umi_signer_wallet_adapters_1.walletAdapterIdentity)(args.wallet, true));
|
21
|
-
this.signer = this.umi.identity;
|
22
14
|
this.referralState =
|
23
15
|
args.referralState ??
|
24
16
|
(0, utils_1.getReferralState)(args.authority ?? (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.signer.publicKey), this.programId);
|
25
|
-
|
17
|
+
await this.refetchReferralState();
|
26
18
|
this.authority = this.referralStateData?.authority
|
27
19
|
? (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.referralStateData.authority)
|
28
20
|
: (args.authority ?? (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.signer.publicKey));
|
@@ -37,6 +29,9 @@ class ReferralStateManager extends txHandler_1.TxHandler {
|
|
37
29
|
? [constants_1.SOLAUTO_LUT, this.referralStateData?.lookupTable.toString()]
|
38
30
|
: [constants_1.SOLAUTO_LUT];
|
39
31
|
}
|
32
|
+
async refetchReferralState() {
|
33
|
+
this.referralStateData = await (0, generated_1.safeFetchReferralState)(this.umi, (0, umi_1.publicKey)(this.referralState), { commitment: "confirmed" });
|
34
|
+
}
|
40
35
|
setReferredBy(referredBy) {
|
41
36
|
const hasReferredBy = this.referralStateData &&
|
42
37
|
this.referralStateData.referredByState !== (0, umi_1.publicKey)(web3_js_1.PublicKey.default);
|
@@ -53,6 +48,9 @@ class ReferralStateManager extends txHandler_1.TxHandler {
|
|
53
48
|
? (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.referralStateData.referredByState)
|
54
49
|
: undefined;
|
55
50
|
}
|
51
|
+
isReferred() {
|
52
|
+
return Boolean(this.referredByState);
|
53
|
+
}
|
56
54
|
updateReferralStatesIx(destFeesMint, lookupTable) {
|
57
55
|
return (0, generated_1.updateReferralStates)(this.umi, {
|
58
56
|
signer: this.signer,
|
@@ -0,0 +1,59 @@
|
|
1
|
+
import "rpc-websockets/dist/lib/client";
|
2
|
+
import { PublicKey } from "@solana/web3.js";
|
3
|
+
import { TransactionBuilder } from "@metaplex-foundation/umi";
|
4
|
+
import { DCASettingsInpArgs, LendingPlatform, RebalanceStep, SolautoActionArgs, SolautoSettingsParametersInpArgs, UpdatePositionDataArgs } from "../../generated";
|
5
|
+
import { ContextUpdates } from "../../utils/solautoUtils";
|
6
|
+
import { ReferralStateManager, ReferralStateManagerArgs } from "./referralStateManager";
|
7
|
+
import { SolautoPositionEx } from "../../solautoPosition";
|
8
|
+
import { RebalanceDetails } from "../../types";
|
9
|
+
import { FlProviderAggregator } from "../flashLoans/flProviderAggregator";
|
10
|
+
export interface SolautoClientArgs extends ReferralStateManagerArgs {
|
11
|
+
new?: boolean;
|
12
|
+
positionId?: number;
|
13
|
+
supplyMint?: PublicKey;
|
14
|
+
debtMint?: PublicKey;
|
15
|
+
lendingPool?: PublicKey;
|
16
|
+
lpUserAccount?: PublicKey;
|
17
|
+
}
|
18
|
+
export declare abstract class SolautoClient extends ReferralStateManager {
|
19
|
+
lendingPlatform: LendingPlatform;
|
20
|
+
authority: PublicKey;
|
21
|
+
positionId: number;
|
22
|
+
selfManaged: boolean;
|
23
|
+
solautoPosition: SolautoPositionEx;
|
24
|
+
positionSupplyTa: PublicKey;
|
25
|
+
signerSupplyTa: PublicKey;
|
26
|
+
positionDebtTa: PublicKey;
|
27
|
+
signerDebtTa: PublicKey;
|
28
|
+
solautoFeesSupplyTa: PublicKey;
|
29
|
+
solautoFeesDebtTa: PublicKey;
|
30
|
+
authorityLutAddress?: PublicKey;
|
31
|
+
flProvider: FlProviderAggregator;
|
32
|
+
contextUpdates: ContextUpdates;
|
33
|
+
private signerSupplyBalance;
|
34
|
+
private signerDebtBalance;
|
35
|
+
initialize(args: SolautoClientArgs): Promise<void>;
|
36
|
+
referredBySupplyTa(): PublicKey | undefined;
|
37
|
+
referredByDebtTa(): PublicKey | undefined;
|
38
|
+
resetLiveTxUpdates(success?: boolean): Promise<void>;
|
39
|
+
defaultLookupTables(): string[];
|
40
|
+
lutAccountsToAdd(): PublicKey[];
|
41
|
+
fetchExistingAuthorityLutAccounts(): Promise<PublicKey[]>;
|
42
|
+
updateLookupTable(): Promise<{
|
43
|
+
tx: TransactionBuilder;
|
44
|
+
new: boolean;
|
45
|
+
accountsToAdd: PublicKey[];
|
46
|
+
} | undefined>;
|
47
|
+
signerBalances(): Promise<{
|
48
|
+
supplyBalance: bigint;
|
49
|
+
debtBalance: bigint;
|
50
|
+
}>;
|
51
|
+
openPositionIx(settings?: SolautoSettingsParametersInpArgs, dca?: DCASettingsInpArgs): TransactionBuilder;
|
52
|
+
updatePositionIx(args: UpdatePositionDataArgs): TransactionBuilder;
|
53
|
+
abstract closePositionIx(): TransactionBuilder;
|
54
|
+
cancelDCAIx(): TransactionBuilder;
|
55
|
+
abstract refreshIx(): TransactionBuilder;
|
56
|
+
protocolInteractionIx(args: SolautoActionArgs): TransactionBuilder;
|
57
|
+
abstract rebalanceIx(rebalanceStep: RebalanceStep, data: RebalanceDetails): TransactionBuilder;
|
58
|
+
}
|
59
|
+
//# sourceMappingURL=solautoClient.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"solautoClient.d.ts","sourceRoot":"","sources":["../../../src/services/solauto/solautoClient.ts"],"names":[],"mappings":"AAAA,OAAO,gCAAgC,CAAC;AACxC,OAAO,EAEL,SAAS,EAGV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,kBAAkB,EAMnB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,gCAAgC,EAEhC,sBAAsB,EAGvB,MAAM,iBAAiB,CAAC;AAWzB,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEL,iBAAiB,EAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE1E,MAAM,WAAW,iBAAkB,SAAQ,wBAAwB;IACjE,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,aAAa,CAAC,EAAE,SAAS,CAAC;CAC3B;AAED,8BAAsB,aAAc,SAAQ,oBAAoB;IACvD,eAAe,EAAG,eAAe,CAAC;IAElC,SAAS,EAAG,SAAS,CAAC;IAEtB,UAAU,EAAG,MAAM,CAAC;IACpB,WAAW,EAAG,OAAO,CAAC;IACtB,eAAe,EAAG,iBAAiB,CAAC;IAEpC,gBAAgB,EAAG,SAAS,CAAC;IAC7B,cAAc,EAAG,SAAS,CAAC;IAE3B,cAAc,EAAG,SAAS,CAAC;IAC3B,YAAY,EAAG,SAAS,CAAC;IAEzB,mBAAmB,EAAG,SAAS,CAAC;IAChC,iBAAiB,EAAG,SAAS,CAAC;IAE9B,mBAAmB,CAAC,EAAE,SAAS,CAAC;IAEhC,UAAU,EAAG,oBAAoB,CAAC;IAClC,cAAc,EAAE,cAAc,CAAwB;IAE7D,OAAO,CAAC,mBAAmB,CAAqB;IAChD,OAAO,CAAC,iBAAiB,CAAqB;IAExC,UAAU,CAAC,IAAI,EAAE,iBAAiB;IA8ExC,kBAAkB,IAAI,SAAS,GAAG,SAAS;IAU3C,gBAAgB,IAAI,SAAS,GAAG,SAAS;IAUnC,kBAAkB,CAAC,OAAO,CAAC,EAAE,OAAO;IAmB1C,mBAAmB,IAAI,MAAM,EAAE;IAS/B,gBAAgB,IAAI,SAAS,EAAE;IAmBzB,iCAAiC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAUzD,iBAAiB,IAAI,OAAO,CAC9B;QACE,EAAE,EAAE,kBAAkB,CAAC;QACvB,GAAG,EAAE,OAAO,CAAC;QACb,aAAa,EAAE,SAAS,EAAE,CAAC;KAC5B,GACD,SAAS,CACZ;IA2DK,cAAc,IAAI,OAAO,CAAC;QAC9B,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IA8CF,cAAc,CACZ,QAAQ,CAAC,EAAE,gCAAgC,EAC3C,GAAG,CAAC,EAAE,kBAAkB,GACvB,kBAAkB;IA0BrB,gBAAgB,CAAC,IAAI,EAAE,sBAAsB,GAAG,kBAAkB;IAsDlE,QAAQ,CAAC,eAAe,IAAI,kBAAkB;IAE9C,WAAW,IAAI,kBAAkB;IAgCjC,QAAQ,CAAC,SAAS,IAAI,kBAAkB;IAExC,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,GAAG,kBAAkB;IAwFlE,QAAQ,CAAC,WAAW,CAClB,aAAa,EAAE,aAAa,EAC5B,IAAI,EAAE,gBAAgB,GACrB,kBAAkB;CACtB"}
|
@@ -5,84 +5,79 @@ require("rpc-websockets/dist/lib/client");
|
|
5
5
|
const web3_js_1 = require("@solana/web3.js");
|
6
6
|
const umi_1 = require("@metaplex-foundation/umi");
|
7
7
|
const umi_web3js_adapters_1 = require("@metaplex-foundation/umi-web3js-adapters");
|
8
|
-
const generated_1 = require("
|
9
|
-
const accountUtils_1 = require("
|
10
|
-
const generalAccounts_1 = require("
|
11
|
-
const solanaUtils_1 = require("
|
12
|
-
const solautoConstants_1 = require("
|
13
|
-
const
|
14
|
-
const generalUtils_2 = require("../utils/solauto/generalUtils");
|
8
|
+
const generated_1 = require("../../generated");
|
9
|
+
const accountUtils_1 = require("../../utils/accountUtils");
|
10
|
+
const generalAccounts_1 = require("../../constants/generalAccounts");
|
11
|
+
const solanaUtils_1 = require("../../utils/solanaUtils");
|
12
|
+
const solautoConstants_1 = require("../../constants/solautoConstants");
|
13
|
+
const solautoUtils_1 = require("../../utils/solautoUtils");
|
15
14
|
const referralStateManager_1 = require("./referralStateManager");
|
15
|
+
const solautoPosition_1 = require("../../solautoPosition");
|
16
|
+
const flProviderAggregator_1 = require("../flashLoans/flProviderAggregator");
|
16
17
|
class SolautoClient extends referralStateManager_1.ReferralStateManager {
|
17
18
|
constructor() {
|
18
19
|
super(...arguments);
|
19
|
-
this.contextUpdates = new
|
20
|
+
this.contextUpdates = new solautoUtils_1.ContextUpdates();
|
20
21
|
}
|
21
22
|
async initialize(args) {
|
22
23
|
await super.initialize(args);
|
23
24
|
this.positionId = args.positionId ?? 0;
|
24
25
|
this.selfManaged = this.positionId === 0;
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
this.
|
30
|
-
this.
|
31
|
-
|
32
|
-
|
33
|
-
args.
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
this.
|
38
|
-
this.
|
39
|
-
this.
|
40
|
-
|
41
|
-
|
42
|
-
? (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.solautoPositionData.state.debt.mint)
|
43
|
-
: web3_js_1.PublicKey.default);
|
44
|
-
this.positionDebtTa = (0, accountUtils_1.getTokenAccount)(this.solautoPosition, this.debtMint);
|
45
|
-
this.signerDebtTa = (0, accountUtils_1.getTokenAccount)((0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.signer.publicKey), this.debtMint);
|
46
|
-
this.solautoFeesSupplyTa = (0, accountUtils_1.getTokenAccount)(generalAccounts_1.SOLAUTO_FEES_WALLET, this.supplyMint);
|
47
|
-
this.solautoFeesDebtTa = (0, accountUtils_1.getTokenAccount)(generalAccounts_1.SOLAUTO_FEES_WALLET, this.debtMint);
|
26
|
+
if (this.selfManaged &&
|
27
|
+
(!args.supplyMint || !args.debtMint || !args.lpUserAccount)) {
|
28
|
+
throw new Error("Self managed position is missing arguments");
|
29
|
+
}
|
30
|
+
const positionPk = (0, accountUtils_1.getSolautoPositionAccount)(this.authority, this.positionId, this.programId);
|
31
|
+
this.solautoPosition = await (0, solautoPosition_1.getOrCreatePositionEx)(this.umi, positionPk, {
|
32
|
+
supplyMint: args.supplyMint,
|
33
|
+
debtMint: args.debtMint,
|
34
|
+
lpUserAccount: args.lpUserAccount,
|
35
|
+
lendingPlatform: this.lendingPlatform,
|
36
|
+
}, this.contextUpdates);
|
37
|
+
this.positionSupplyTa = (0, accountUtils_1.getTokenAccount)(this.solautoPosition.publicKey, this.solautoPosition.supplyMint());
|
38
|
+
this.signerSupplyTa = (0, accountUtils_1.getTokenAccount)((0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.signer.publicKey), this.solautoPosition.supplyMint());
|
39
|
+
this.positionDebtTa = (0, accountUtils_1.getTokenAccount)(this.solautoPosition.publicKey, this.solautoPosition.debtMint());
|
40
|
+
this.signerDebtTa = (0, accountUtils_1.getTokenAccount)((0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.signer.publicKey), this.solautoPosition.debtMint());
|
41
|
+
this.solautoFeesSupplyTa = (0, accountUtils_1.getTokenAccount)(generalAccounts_1.SOLAUTO_FEES_WALLET, this.solautoPosition.supplyMint());
|
42
|
+
this.solautoFeesDebtTa = (0, accountUtils_1.getTokenAccount)(generalAccounts_1.SOLAUTO_FEES_WALLET, this.solautoPosition.debtMint());
|
48
43
|
this.authorityLutAddress =
|
49
44
|
this.referralStateData?.lookupTable &&
|
50
45
|
!(0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.referralStateData.lookupTable).equals(web3_js_1.PublicKey.default)
|
51
46
|
? (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.referralStateData.lookupTable)
|
52
47
|
: undefined;
|
53
|
-
this.
|
54
|
-
this.
|
55
|
-
this.
|
56
|
-
|
57
|
-
|
58
|
-
|
48
|
+
this.flProvider = new flProviderAggregator_1.FlProviderAggregator(this.umi, this.signer, this.solautoPosition.supplyMint(), this.solautoPosition.debtMint());
|
49
|
+
await this.flProvider.initialize();
|
50
|
+
this.otherSigners.push(...this.flProvider.otherSigners());
|
51
|
+
this.log("Position state: ", this.solautoPosition.state());
|
52
|
+
this.log("Position settings: ", this.solautoPosition.settings());
|
53
|
+
this.log("Position DCA: ", this.solautoPosition.dca());
|
59
54
|
}
|
60
55
|
referredBySupplyTa() {
|
61
56
|
if (this.referredByState !== undefined) {
|
62
|
-
return (0, accountUtils_1.getTokenAccount)(this.referredByState, this.supplyMint);
|
57
|
+
return (0, accountUtils_1.getTokenAccount)(this.referredByState, this.solautoPosition.supplyMint());
|
63
58
|
}
|
64
59
|
return undefined;
|
65
60
|
}
|
66
61
|
referredByDebtTa() {
|
67
62
|
if (this.referredByState !== undefined) {
|
68
|
-
return (0, accountUtils_1.getTokenAccount)(this.referredByState, this.debtMint);
|
63
|
+
return (0, accountUtils_1.getTokenAccount)(this.referredByState, this.solautoPosition.debtMint());
|
69
64
|
}
|
70
65
|
return undefined;
|
71
66
|
}
|
72
67
|
async resetLiveTxUpdates(success) {
|
68
|
+
this.log("Resetting context updates...");
|
73
69
|
if (success) {
|
74
|
-
if (!this.
|
75
|
-
|
70
|
+
if (!this.solautoPosition.exists()) {
|
71
|
+
await this.solautoPosition.refetchPositionData();
|
76
72
|
}
|
77
73
|
else {
|
78
|
-
if (this.contextUpdates.activeDca) {
|
79
|
-
this.solautoPositionData.position.dca =
|
80
|
-
this.contextUpdates.activeDca;
|
81
|
-
}
|
82
74
|
if (this.contextUpdates.settings) {
|
83
|
-
this.
|
75
|
+
this.solautoPosition.data().position.settings =
|
84
76
|
this.contextUpdates.settings;
|
85
77
|
}
|
78
|
+
if (this.contextUpdates.dca) {
|
79
|
+
this.solautoPosition.data().position.dca = this.contextUpdates.dca;
|
80
|
+
}
|
86
81
|
// All other live position updates can be derived by getting a fresh position state, so we don't need to do anything else form contextUpdates
|
87
82
|
}
|
88
83
|
}
|
@@ -105,12 +100,13 @@ class SolautoClient extends referralStateManager_1.ReferralStateManager {
|
|
105
100
|
...((0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.signer.publicKey).equals(this.authority)
|
106
101
|
? [this.signerDebtTa]
|
107
102
|
: []),
|
108
|
-
this.solautoPosition,
|
103
|
+
this.solautoPosition.publicKey,
|
109
104
|
this.positionSupplyTa,
|
110
105
|
this.positionDebtTa,
|
111
106
|
this.referralState,
|
112
107
|
...(this.referredBySupplyTa() ? [this.referredBySupplyTa()] : []),
|
113
108
|
...(this.referredByDebtTa() ? [this.referredByDebtTa()] : []),
|
109
|
+
...this.flProvider.lutAccountsToAdd(),
|
114
110
|
];
|
115
111
|
}
|
116
112
|
async fetchExistingAuthorityLutAccounts() {
|
@@ -123,9 +119,6 @@ class SolautoClient extends referralStateManager_1.ReferralStateManager {
|
|
123
119
|
return lookupTable?.value?.state.addresses ?? [];
|
124
120
|
}
|
125
121
|
async updateLookupTable() {
|
126
|
-
if (this.selfManaged) {
|
127
|
-
return undefined;
|
128
|
-
}
|
129
122
|
const existingLutAccounts = await this.fetchExistingAuthorityLutAccounts();
|
130
123
|
if (this.lutAccountsToAdd().every((element) => existingLutAccounts
|
131
124
|
.map((x) => x.toString().toLowerCase())
|
@@ -140,7 +133,9 @@ class SolautoClient extends referralStateManager_1.ReferralStateManager {
|
|
140
133
|
recentSlot: await this.umi.rpc.getSlot({ commitment: "finalized" }),
|
141
134
|
});
|
142
135
|
this.authorityLutAddress = lookupTableAddress;
|
143
|
-
tx = tx
|
136
|
+
tx = tx
|
137
|
+
.add((0, solanaUtils_1.getWrappedInstruction)(this.signer, createLookupTableInst))
|
138
|
+
.add(this.updateReferralStatesIx(undefined, this.authorityLutAddress));
|
144
139
|
}
|
145
140
|
const accountsToAdd = this.lutAccountsToAdd().filter((x) => !existingLutAccounts
|
146
141
|
.map((x) => x.toString().toLowerCase())
|
@@ -148,12 +143,14 @@ class SolautoClient extends referralStateManager_1.ReferralStateManager {
|
|
148
143
|
if (accountsToAdd.length === 0) {
|
149
144
|
return undefined;
|
150
145
|
}
|
151
|
-
tx = tx
|
146
|
+
tx = tx
|
147
|
+
.add((0, solanaUtils_1.getWrappedInstruction)(this.signer, web3_js_1.AddressLookupTableProgram.extendLookupTable({
|
152
148
|
payer: (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.signer.publicKey),
|
153
149
|
authority: this.authority,
|
154
150
|
lookupTable: this.authorityLutAddress,
|
155
151
|
addresses: accountsToAdd,
|
156
|
-
})))
|
152
|
+
})))
|
153
|
+
.add(await this.flProvider.flAccountPrereqIxs());
|
157
154
|
this.log("Requires authority LUT update...");
|
158
155
|
return {
|
159
156
|
tx,
|
@@ -171,11 +168,19 @@ class SolautoClient extends referralStateManager_1.ReferralStateManager {
|
|
171
168
|
}
|
172
169
|
[this.signerSupplyBalance, this.signerDebtBalance] = await Promise.all([
|
173
170
|
(async () => {
|
174
|
-
|
171
|
+
let data;
|
172
|
+
try {
|
173
|
+
data = await this.connection.getTokenAccountBalance((0, accountUtils_1.getTokenAccount)((0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.signer.publicKey), this.solautoPosition.supplyMint()), "confirmed");
|
174
|
+
}
|
175
|
+
catch { }
|
175
176
|
return BigInt(parseInt(data?.value.amount ?? "0"));
|
176
177
|
})(),
|
177
178
|
(async () => {
|
178
|
-
|
179
|
+
let data;
|
180
|
+
try {
|
181
|
+
const data = await this.connection.getTokenAccountBalance((0, accountUtils_1.getTokenAccount)((0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.signer.publicKey), this.solautoPosition.debtMint()), "confirmed");
|
182
|
+
}
|
183
|
+
catch { }
|
179
184
|
return BigInt(parseInt(data?.value.amount ?? "0"));
|
180
185
|
})(),
|
181
186
|
]);
|
@@ -184,21 +189,7 @@ class SolautoClient extends referralStateManager_1.ReferralStateManager {
|
|
184
189
|
debtBalance: this.signerDebtBalance,
|
185
190
|
};
|
186
191
|
}
|
187
|
-
|
188
|
-
return (this.contextUpdates.settings ??
|
189
|
-
this.solautoPositionData?.position.settingParams);
|
190
|
-
}
|
191
|
-
solautoPositionActiveDca() {
|
192
|
-
return (this.contextUpdates.activeDca ??
|
193
|
-
this.solautoPositionData?.position.dca);
|
194
|
-
}
|
195
|
-
async maxLtvAndLiqThresholdBps() {
|
196
|
-
if (this.maxLtvBps !== undefined && this.liqThresholdBps !== undefined) {
|
197
|
-
return [this.maxLtvBps, this.liqThresholdBps];
|
198
|
-
}
|
199
|
-
return [0, 0];
|
200
|
-
}
|
201
|
-
openPosition(settingParams, dca) {
|
192
|
+
openPositionIx(settings, dca) {
|
202
193
|
if (dca && dca.dcaInBaseUnit > 0) {
|
203
194
|
this.contextUpdates.new({
|
204
195
|
type: "dcaInBalance",
|
@@ -208,10 +199,10 @@ class SolautoClient extends referralStateManager_1.ReferralStateManager {
|
|
208
199
|
},
|
209
200
|
});
|
210
201
|
}
|
211
|
-
if (
|
202
|
+
if (settings) {
|
212
203
|
this.contextUpdates.new({
|
213
204
|
type: "settings",
|
214
|
-
value:
|
205
|
+
value: settings,
|
215
206
|
});
|
216
207
|
}
|
217
208
|
if (dca) {
|
@@ -228,12 +219,12 @@ class SolautoClient extends referralStateManager_1.ReferralStateManager {
|
|
228
219
|
let signerDcaTa = undefined;
|
229
220
|
if ((0, umi_1.isOption)(args.dca) && (0, umi_1.isSome)(args.dca)) {
|
230
221
|
if (args.dca.value.tokenType === generated_1.TokenType.Supply) {
|
231
|
-
dcaMint = (0, umi_1.publicKey)(this.supplyMint);
|
222
|
+
dcaMint = (0, umi_1.publicKey)(this.solautoPosition.supplyMint());
|
232
223
|
positionDcaTa = (0, umi_1.publicKey)(this.positionSupplyTa);
|
233
224
|
signerDcaTa = (0, umi_1.publicKey)(this.signerSupplyTa);
|
234
225
|
}
|
235
226
|
else {
|
236
|
-
dcaMint = (0, umi_1.publicKey)(this.debtMint);
|
227
|
+
dcaMint = (0, umi_1.publicKey)(this.solautoPosition.debtMint());
|
237
228
|
positionDcaTa = (0, umi_1.publicKey)(this.positionDebtTa);
|
238
229
|
signerDcaTa = (0, umi_1.publicKey)(this.signerDebtTa);
|
239
230
|
}
|
@@ -249,10 +240,10 @@ class SolautoClient extends referralStateManager_1.ReferralStateManager {
|
|
249
240
|
});
|
250
241
|
}
|
251
242
|
}
|
252
|
-
if ((0, umi_1.isOption)(args.
|
243
|
+
if ((0, umi_1.isOption)(args.settings) && (0, umi_1.isSome)(args.settings)) {
|
253
244
|
this.contextUpdates.new({
|
254
245
|
type: "settings",
|
255
|
-
value: args.
|
246
|
+
value: args.settings.value,
|
256
247
|
});
|
257
248
|
}
|
258
249
|
if ((0, umi_1.isOption)(args.dca) && (0, umi_1.isSome)(args.dca)) {
|
@@ -263,54 +254,43 @@ class SolautoClient extends referralStateManager_1.ReferralStateManager {
|
|
263
254
|
}
|
264
255
|
return (0, generated_1.updatePosition)(this.umi, {
|
265
256
|
signer: this.signer,
|
266
|
-
solautoPosition: (0, umi_1.publicKey)(this.solautoPosition),
|
257
|
+
solautoPosition: (0, umi_1.publicKey)(this.solautoPosition.publicKey),
|
267
258
|
dcaMint,
|
268
259
|
positionDcaTa,
|
269
260
|
signerDcaTa,
|
270
261
|
updatePositionData: args,
|
271
262
|
});
|
272
263
|
}
|
273
|
-
closePositionIx() {
|
274
|
-
return (0, generated_1.closePosition)(this.umi, {
|
275
|
-
signer: this.signer,
|
276
|
-
solautoPosition: (0, umi_1.publicKey)(this.solautoPosition),
|
277
|
-
signerSupplyTa: (0, umi_1.publicKey)(this.signerSupplyTa),
|
278
|
-
positionSupplyTa: (0, umi_1.publicKey)(this.positionSupplyTa),
|
279
|
-
positionDebtTa: (0, umi_1.publicKey)(this.positionDebtTa),
|
280
|
-
signerDebtTa: (0, umi_1.publicKey)(this.signerDebtTa),
|
281
|
-
protocolAccount: (0, umi_1.publicKey)(this.protocolAccount()),
|
282
|
-
});
|
283
|
-
}
|
284
264
|
cancelDCAIx() {
|
285
265
|
let dcaMint = undefined;
|
286
266
|
let positionDcaTa = undefined;
|
287
267
|
let signerDcaTa = undefined;
|
288
|
-
const currDca = this.
|
268
|
+
const currDca = this.solautoPosition.dca();
|
289
269
|
if (currDca.dcaInBaseUnit > 0) {
|
290
270
|
if (currDca.tokenType === generated_1.TokenType.Supply) {
|
291
|
-
dcaMint = (0, umi_1.publicKey)(this.supplyMint);
|
271
|
+
dcaMint = (0, umi_1.publicKey)(this.solautoPosition.supplyMint());
|
292
272
|
positionDcaTa = (0, umi_1.publicKey)(this.positionSupplyTa);
|
293
273
|
signerDcaTa = (0, umi_1.publicKey)(this.signerSupplyTa);
|
294
274
|
}
|
295
275
|
else {
|
296
|
-
dcaMint = (0, umi_1.publicKey)(this.debtMint);
|
276
|
+
dcaMint = (0, umi_1.publicKey)(this.solautoPosition.debtMint());
|
297
277
|
positionDcaTa = (0, umi_1.publicKey)(this.positionDebtTa);
|
298
278
|
signerDcaTa = (0, umi_1.publicKey)(this.signerDebtTa);
|
299
279
|
}
|
300
280
|
this.contextUpdates.new({
|
301
281
|
type: "cancellingDca",
|
302
|
-
value: this.
|
282
|
+
value: this.solautoPosition.dca().tokenType,
|
303
283
|
});
|
304
284
|
}
|
305
285
|
return (0, generated_1.cancelDCA)(this.umi, {
|
306
286
|
signer: this.signer,
|
307
|
-
solautoPosition: (0, umi_1.publicKey)(this.solautoPosition),
|
287
|
+
solautoPosition: (0, umi_1.publicKey)(this.solautoPosition.publicKey),
|
308
288
|
dcaMint,
|
309
289
|
positionDcaTa,
|
310
290
|
signerDcaTa,
|
311
291
|
});
|
312
292
|
}
|
313
|
-
|
293
|
+
protocolInteractionIx(args) {
|
314
294
|
let tx = (0, umi_1.transactionBuilder)();
|
315
295
|
if (!this.selfManaged) {
|
316
296
|
if (args.__kind === "Deposit") {
|
@@ -321,8 +301,7 @@ class SolautoClient extends referralStateManager_1.ReferralStateManager {
|
|
321
301
|
tx = tx.add((0, solanaUtils_1.splTokenTransferUmiIx)(this.signer, this.signerDebtTa, this.positionDebtTa, (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.signer.publicKey), BigInt(args.fields[0].fields[0])));
|
322
302
|
}
|
323
303
|
else {
|
324
|
-
tx = tx.add((0, solanaUtils_1.splTokenTransferUmiIx)(this.signer, this.signerDebtTa, this.positionDebtTa, (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.signer.publicKey), BigInt(Math.round(Number(this.
|
325
|
-
1.01))));
|
304
|
+
tx = tx.add((0, solanaUtils_1.splTokenTransferUmiIx)(this.signer, this.signerDebtTa, this.positionDebtTa, (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.signer.publicKey), BigInt(Math.round(Number(this.solautoPosition.state().debt.amountUsed.baseUnit) * 1.01))));
|
326
305
|
}
|
327
306
|
}
|
328
307
|
}
|
@@ -342,7 +321,7 @@ class SolautoClient extends referralStateManager_1.ReferralStateManager {
|
|
342
321
|
else {
|
343
322
|
this.contextUpdates.new({
|
344
323
|
type: "supply",
|
345
|
-
value: (this.
|
324
|
+
value: (this.solautoPosition.state().supply.amountUsed.baseUnit ??
|
346
325
|
BigInt(0)) * BigInt(-1),
|
347
326
|
});
|
348
327
|
}
|
@@ -363,22 +342,12 @@ class SolautoClient extends referralStateManager_1.ReferralStateManager {
|
|
363
342
|
else {
|
364
343
|
this.contextUpdates.new({
|
365
344
|
type: "debt",
|
366
|
-
value: (this.
|
367
|
-
BigInt(-1),
|
345
|
+
value: (this.solautoPosition.state().debt.amountUsed.baseUnit ??
|
346
|
+
BigInt(0)) * BigInt(-1),
|
368
347
|
});
|
369
348
|
}
|
370
349
|
}
|
371
350
|
return tx;
|
372
351
|
}
|
373
|
-
async getFreshPositionState() {
|
374
|
-
if (Boolean(this.solautoPositionData) &&
|
375
|
-
Boolean(this.solautoPositionState) &&
|
376
|
-
Number(this.solautoPositionState.lastUpdated) >
|
377
|
-
(0, generalUtils_1.currentUnixSeconds)() - solautoConstants_1.MIN_POSITION_STATE_FRESHNESS_SECS &&
|
378
|
-
!this.contextUpdates.positionUpdates()) {
|
379
|
-
return this.solautoPositionState;
|
380
|
-
}
|
381
|
-
return undefined;
|
382
|
-
}
|
383
352
|
}
|
384
353
|
exports.SolautoClient = SolautoClient;
|
@@ -0,0 +1,34 @@
|
|
1
|
+
import { Signer, TransactionBuilder } from "@metaplex-foundation/umi";
|
2
|
+
import { PublicKey } from "@solana/web3.js";
|
3
|
+
import { SolautoClient, SolautoClientArgs } from "./solautoClient";
|
4
|
+
import { MarginfiAssetAccounts } from "../../types/accounts";
|
5
|
+
import { DCASettingsInpArgs, LendingPlatform, RebalanceStep, SolautoActionArgs, SolautoSettingsParametersInpArgs } from "../../generated";
|
6
|
+
import { RebalanceDetails } from "../../types";
|
7
|
+
export interface SolautoMarginfiClientArgs extends SolautoClientArgs {
|
8
|
+
marginfiAccount?: PublicKey | Signer;
|
9
|
+
marginfiAccountSeedIdx?: bigint;
|
10
|
+
}
|
11
|
+
export declare class SolautoMarginfiClient extends SolautoClient {
|
12
|
+
lendingPlatform: LendingPlatform;
|
13
|
+
marginfiProgram: PublicKey;
|
14
|
+
marginfiAccount: PublicKey | Signer;
|
15
|
+
marginfiAccountPk: PublicKey;
|
16
|
+
marginfiGroup: PublicKey;
|
17
|
+
marginfiSupplyAccounts: MarginfiAssetAccounts;
|
18
|
+
marginfiDebtAccounts: MarginfiAssetAccounts;
|
19
|
+
supplyPriceOracle: PublicKey;
|
20
|
+
debtPriceOracle: PublicKey;
|
21
|
+
initialize(args: SolautoMarginfiClientArgs): Promise<void>;
|
22
|
+
defaultLookupTables(): string[];
|
23
|
+
lutAccountsToAdd(): PublicKey[];
|
24
|
+
marginfiAccountInitialize(marginfiAccount: Signer): TransactionBuilder;
|
25
|
+
openPositionIx(settings?: SolautoSettingsParametersInpArgs, dca?: DCASettingsInpArgs): TransactionBuilder;
|
26
|
+
private marginfiOpenPositionIx;
|
27
|
+
closePositionIx(): TransactionBuilder;
|
28
|
+
refreshIx(): TransactionBuilder;
|
29
|
+
protocolInteractionIx(args: SolautoActionArgs): TransactionBuilder;
|
30
|
+
private marginfiProtocolInteractionIx;
|
31
|
+
private marginfiSolautoProtocolInteractionIx;
|
32
|
+
rebalanceIx(rebalanceStep: RebalanceStep, data: RebalanceDetails): TransactionBuilder;
|
33
|
+
}
|
34
|
+
//# sourceMappingURL=solautoMarginfiClient.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"solautoMarginfiClient.d.ts","sourceRoot":"","sources":["../../../src/services/solauto/solautoMarginfiClient.ts"],"names":[],"mappings":"AACA,OAAO,EACL,MAAM,EACN,kBAAkB,EAInB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAA8B,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAK7D,OAAO,EACL,kBAAkB,EAClB,eAAe,EAGf,aAAa,EACb,iBAAiB,EAEjB,gCAAgC,EAOjC,MAAM,iBAAiB,CAAC;AAgBzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;IAClE,eAAe,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IACrC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,qBAAa,qBAAsB,SAAQ,aAAa;IAC/C,eAAe,kBAA4B;IAE3C,eAAe,EAAG,SAAS,CAAC;IAE5B,eAAe,EAAG,SAAS,GAAG,MAAM,CAAC;IACrC,iBAAiB,EAAG,SAAS,CAAC;IAC9B,aAAa,EAAG,SAAS,CAAC;IAE1B,sBAAsB,EAAG,qBAAqB,CAAC;IAC/C,oBAAoB,EAAG,qBAAqB,CAAC;IAE7C,iBAAiB,EAAG,SAAS,CAAC;IAC9B,eAAe,EAAG,SAAS,CAAC;IAE7B,UAAU,CAAC,IAAI,EAAE,yBAAyB;IAsEhD,mBAAmB,IAAI,MAAM,EAAE;IAI/B,gBAAgB,IAAI,SAAS,EAAE;IAI/B,yBAAyB,CAAC,eAAe,EAAE,MAAM,GAAG,kBAAkB;IAStE,cAAc,CACZ,QAAQ,CAAC,EAAE,gCAAgC,EAC3C,GAAG,CAAC,EAAE,kBAAkB,GACvB,kBAAkB;IAMrB,OAAO,CAAC,sBAAsB;IA0C9B,eAAe,IAAI,kBAAkB;IAYrC,SAAS,IAAI,kBAAkB;IAc/B,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,GAAG,kBAAkB;IAUlE,OAAO,CAAC,6BAA6B;IAmErC,OAAO,CAAC,oCAAoC;IA0D5C,WAAW,CACT,aAAa,EAAE,aAAa,EAC5B,IAAI,EAAE,gBAAgB,GACrB,kBAAkB;CAqGtB"}
|