@exponent-labs/exponent-sdk 0.9.0 → 0.9.2
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/build/client/vaults/index.d.ts +2 -0
- package/build/client/vaults/index.js +2 -0
- package/build/client/vaults/index.js.map +1 -1
- package/build/client/vaults/types/index.d.ts +2 -0
- package/build/client/vaults/types/index.js +2 -0
- package/build/client/vaults/types/index.js.map +1 -1
- package/build/client/vaults/types/kaminoFarmEntry.d.ts +15 -0
- package/build/client/vaults/types/kaminoFarmEntry.js +17 -0
- package/build/client/vaults/types/kaminoFarmEntry.js.map +1 -0
- package/build/client/vaults/types/kaminoObligationEntry.d.ts +21 -4
- package/build/client/vaults/types/kaminoObligationEntry.js +2 -1
- package/build/client/vaults/types/kaminoObligationEntry.js.map +1 -1
- package/build/client/vaults/types/positionUpdate.d.ts +9 -0
- package/build/client/vaults/types/positionUpdate.js +23 -0
- package/build/client/vaults/types/positionUpdate.js.map +1 -1
- package/build/client/vaults/types/proposalAction.js +0 -3
- package/build/client/vaults/types/proposalAction.js.map +1 -1
- package/build/client/vaults/types/reserveFarmMapping.d.ts +19 -0
- package/build/client/vaults/types/reserveFarmMapping.js +18 -0
- package/build/client/vaults/types/reserveFarmMapping.js.map +1 -0
- package/build/client/vaults/types/strategyPosition.d.ts +5 -0
- package/build/client/vaults/types/strategyPosition.js +5 -0
- package/build/client/vaults/types/strategyPosition.js.map +1 -1
- package/build/exponentVaults/aumCalculator.d.ts +25 -4
- package/build/exponentVaults/aumCalculator.js +236 -15
- package/build/exponentVaults/aumCalculator.js.map +1 -1
- package/build/exponentVaults/fetcher.d.ts +52 -0
- package/build/exponentVaults/fetcher.js +199 -0
- package/build/exponentVaults/fetcher.js.map +1 -0
- package/build/exponentVaults/index.d.ts +10 -9
- package/build/exponentVaults/index.js +26 -8
- package/build/exponentVaults/index.js.map +1 -1
- package/build/exponentVaults/kamino-farms.d.ts +144 -0
- package/build/exponentVaults/kamino-farms.js +396 -0
- package/build/exponentVaults/kamino-farms.js.map +1 -0
- package/build/exponentVaults/loopscale/client.d.ts +240 -0
- package/build/exponentVaults/loopscale/client.js +590 -0
- package/build/exponentVaults/loopscale/client.js.map +1 -0
- package/build/exponentVaults/loopscale/client.test.d.ts +1 -0
- package/build/exponentVaults/loopscale/client.test.js +183 -0
- package/build/exponentVaults/loopscale/client.test.js.map +1 -0
- package/build/exponentVaults/loopscale/helpers.d.ts +29 -0
- package/build/exponentVaults/loopscale/helpers.js +119 -0
- package/build/exponentVaults/loopscale/helpers.js.map +1 -0
- package/build/exponentVaults/loopscale/index.d.ts +3 -0
- package/build/exponentVaults/loopscale/index.js +12 -0
- package/build/exponentVaults/loopscale/index.js.map +1 -0
- package/build/exponentVaults/loopscale/prepared-transactions.d.ts +13 -0
- package/build/exponentVaults/loopscale/prepared-transactions.js +271 -0
- package/build/exponentVaults/loopscale/prepared-transactions.js.map +1 -0
- package/build/exponentVaults/loopscale/prepared-transactions.test.d.ts +1 -0
- package/build/exponentVaults/loopscale/prepared-transactions.test.js +400 -0
- package/build/exponentVaults/loopscale/prepared-transactions.test.js.map +1 -0
- package/build/exponentVaults/loopscale/prepared-types.d.ts +62 -0
- package/build/exponentVaults/loopscale/prepared-types.js +3 -0
- package/build/exponentVaults/loopscale/prepared-types.js.map +1 -0
- package/build/exponentVaults/loopscale/response-plan.d.ts +69 -0
- package/build/exponentVaults/loopscale/response-plan.js +141 -0
- package/build/exponentVaults/loopscale/response-plan.js.map +1 -0
- package/build/exponentVaults/loopscale/response-plan.test.d.ts +1 -0
- package/build/exponentVaults/loopscale/response-plan.test.js +139 -0
- package/build/exponentVaults/loopscale/response-plan.test.js.map +1 -0
- package/build/exponentVaults/loopscale/send-plan.d.ts +75 -0
- package/build/exponentVaults/loopscale/send-plan.js +235 -0
- package/build/exponentVaults/loopscale/send-plan.js.map +1 -0
- package/build/exponentVaults/loopscale/types.d.ts +443 -0
- package/build/exponentVaults/loopscale/types.js +3 -0
- package/build/exponentVaults/loopscale/types.js.map +1 -0
- package/build/exponentVaults/loopscale-client.d.ts +113 -524
- package/build/exponentVaults/loopscale-client.js +296 -539
- package/build/exponentVaults/loopscale-client.js.map +1 -1
- package/build/exponentVaults/loopscale-client.test.d.ts +1 -0
- package/build/exponentVaults/loopscale-client.test.js +162 -0
- package/build/exponentVaults/loopscale-client.test.js.map +1 -0
- package/build/exponentVaults/loopscale-client.types.d.ts +425 -0
- package/build/exponentVaults/loopscale-client.types.js +3 -0
- package/build/exponentVaults/loopscale-client.types.js.map +1 -0
- package/build/exponentVaults/loopscale-execution.d.ts +125 -0
- package/build/exponentVaults/loopscale-execution.js +341 -0
- package/build/exponentVaults/loopscale-execution.js.map +1 -0
- package/build/exponentVaults/loopscale-execution.test.d.ts +1 -0
- package/build/exponentVaults/loopscale-execution.test.js +139 -0
- package/build/exponentVaults/loopscale-execution.test.js.map +1 -0
- package/build/exponentVaults/loopscale-vault.d.ts +115 -0
- package/build/exponentVaults/loopscale-vault.js +275 -0
- package/build/exponentVaults/loopscale-vault.js.map +1 -0
- package/build/exponentVaults/loopscale-vault.test.d.ts +1 -0
- package/build/exponentVaults/loopscale-vault.test.js +102 -0
- package/build/exponentVaults/loopscale-vault.test.js.map +1 -0
- package/build/exponentVaults/policyBuilders.d.ts +62 -0
- package/build/exponentVaults/policyBuilders.js +119 -2
- package/build/exponentVaults/policyBuilders.js.map +1 -1
- package/build/exponentVaults/pricePathResolver.d.ts +45 -0
- package/build/exponentVaults/pricePathResolver.js +198 -0
- package/build/exponentVaults/pricePathResolver.js.map +1 -0
- package/build/exponentVaults/pricePathResolver.test.d.ts +1 -0
- package/build/exponentVaults/pricePathResolver.test.js +369 -0
- package/build/exponentVaults/pricePathResolver.test.js.map +1 -0
- package/build/exponentVaults/syncTransaction.js +4 -1
- package/build/exponentVaults/syncTransaction.js.map +1 -1
- package/build/exponentVaults/titan-quote.js +170 -36
- package/build/exponentVaults/titan-quote.js.map +1 -1
- package/build/exponentVaults/vault-instruction-types.d.ts +363 -0
- package/build/exponentVaults/vault-instruction-types.js +128 -0
- package/build/exponentVaults/vault-instruction-types.js.map +1 -0
- package/build/exponentVaults/vault-interaction.d.ts +203 -343
- package/build/exponentVaults/vault-interaction.js +1894 -426
- package/build/exponentVaults/vault-interaction.js.map +1 -1
- package/build/exponentVaults/vault-interaction.kamino-vault.test.d.ts +1 -0
- package/build/exponentVaults/vault-interaction.kamino-vault.test.js +143 -0
- package/build/exponentVaults/vault-interaction.kamino-vault.test.js.map +1 -0
- package/build/exponentVaults/vault.d.ts +51 -2
- package/build/exponentVaults/vault.js +324 -48
- package/build/exponentVaults/vault.js.map +1 -1
- package/build/exponentVaults/vaultTransactionBuilder.d.ts +100 -134
- package/build/exponentVaults/vaultTransactionBuilder.js +383 -285
- package/build/exponentVaults/vaultTransactionBuilder.js.map +1 -1
- package/build/exponentVaults/vaultTransactionBuilder.test.d.ts +1 -0
- package/build/exponentVaults/vaultTransactionBuilder.test.js +297 -0
- package/build/exponentVaults/vaultTransactionBuilder.test.js.map +1 -0
- package/build/marketThree.d.ts +6 -2
- package/build/marketThree.js +10 -8
- package/build/marketThree.js.map +1 -1
- package/package.json +34 -32
- package/src/client/vaults/index.ts +2 -0
- package/src/client/vaults/types/index.ts +2 -0
- package/src/client/vaults/types/kaminoFarmEntry.ts +32 -0
- package/src/client/vaults/types/kaminoObligationEntry.ts +6 -3
- package/src/client/vaults/types/positionUpdate.ts +62 -0
- package/src/client/vaults/types/proposalAction.ts +0 -3
- package/src/client/vaults/types/reserveFarmMapping.ts +35 -0
- package/src/client/vaults/types/strategyPosition.ts +18 -1
- package/src/exponentVaults/aumCalculator.ts +353 -16
- package/src/exponentVaults/fetcher.ts +257 -0
- package/src/exponentVaults/index.ts +65 -40
- package/src/exponentVaults/kamino-farms.ts +538 -0
- package/src/exponentVaults/loopscale/client.ts +808 -0
- package/src/exponentVaults/loopscale/helpers.ts +172 -0
- package/src/exponentVaults/loopscale/index.ts +57 -0
- package/src/exponentVaults/loopscale/prepared-transactions.ts +435 -0
- package/src/exponentVaults/loopscale/prepared-types.ts +73 -0
- package/src/exponentVaults/loopscale/types.ts +466 -0
- package/src/exponentVaults/policyBuilders.ts +170 -0
- package/src/exponentVaults/pricePathResolver.test.ts +466 -0
- package/src/exponentVaults/pricePathResolver.ts +273 -0
- package/src/exponentVaults/syncTransaction.ts +6 -1
- package/src/exponentVaults/titan-quote.ts +231 -45
- package/src/exponentVaults/vault-instruction-types.ts +493 -0
- package/src/exponentVaults/vault-interaction.kamino-vault.test.ts +149 -0
- package/src/exponentVaults/vault-interaction.ts +2818 -799
- package/src/exponentVaults/vault.ts +474 -63
- package/src/exponentVaults/vaultTransactionBuilder.test.ts +349 -0
- package/src/exponentVaults/vaultTransactionBuilder.ts +581 -433
- package/src/marketThree.ts +14 -6
- package/src/exponentVaults/loopscale-client.ts +0 -1373
|
@@ -0,0 +1,363 @@
|
|
|
1
|
+
import { PublicKey, TransactionInstruction } from "@solana/web3.js";
|
|
2
|
+
import { SwapDirection } from "../client/clmm";
|
|
3
|
+
import { KAMINO_RESERVES, KaminoMarket } from "./kamino-markets";
|
|
4
|
+
import BN from "bn.js";
|
|
5
|
+
type KaminoReserves = typeof KAMINO_RESERVES;
|
|
6
|
+
/** Actions that can be performed through the vault instruction builder. */
|
|
7
|
+
export declare enum VaultAction {
|
|
8
|
+
INIT_USER_METADATA = "INIT_USER_METADATA",
|
|
9
|
+
INIT_OBLIGATION = "INIT_OBLIGATION",
|
|
10
|
+
DEPOSIT = "DEPOSIT",
|
|
11
|
+
WITHDRAW = "WITHDRAW",
|
|
12
|
+
BORROW = "BORROW",
|
|
13
|
+
REPAY = "REPAY"
|
|
14
|
+
}
|
|
15
|
+
/** A market-level instruction (no specific reserve needed). */
|
|
16
|
+
export type MarketInstruction = {
|
|
17
|
+
action: VaultAction.INIT_USER_METADATA | VaultAction.INIT_OBLIGATION;
|
|
18
|
+
market: KaminoMarket;
|
|
19
|
+
};
|
|
20
|
+
/** A reserve-level instruction with an amount. */
|
|
21
|
+
export type ReserveInstruction = {
|
|
22
|
+
action: VaultAction.DEPOSIT | VaultAction.WITHDRAW | VaultAction.BORROW | VaultAction.REPAY;
|
|
23
|
+
market: KaminoMarket;
|
|
24
|
+
asset: string;
|
|
25
|
+
amount: BN;
|
|
26
|
+
};
|
|
27
|
+
/** Actions that can be performed on a direct Kamino Vault position. */
|
|
28
|
+
export declare enum KaminoVaultAction {
|
|
29
|
+
DEPOSIT = "KAMINO_VAULT_DEPOSIT",
|
|
30
|
+
WITHDRAW = "KAMINO_VAULT_WITHDRAW"
|
|
31
|
+
}
|
|
32
|
+
type KaminoVaultInstructionBase = {
|
|
33
|
+
action: KaminoVaultAction;
|
|
34
|
+
vault: PublicKey;
|
|
35
|
+
};
|
|
36
|
+
/** Deposit the vault-owned token account into a Kamino Vault and mint shares. */
|
|
37
|
+
export type KaminoVaultDepositInstruction = KaminoVaultInstructionBase & {
|
|
38
|
+
action: KaminoVaultAction.DEPOSIT;
|
|
39
|
+
amount: BN;
|
|
40
|
+
};
|
|
41
|
+
/** Withdraw Kamino Vault shares back into the vault-owned token account. */
|
|
42
|
+
export type KaminoVaultWithdrawInstruction = KaminoVaultInstructionBase & {
|
|
43
|
+
action: KaminoVaultAction.WITHDRAW;
|
|
44
|
+
sharesAmount: BN;
|
|
45
|
+
/** Optional reserve override. Omit it to let the SDK plan the withdraw across the vault's active reserves. */
|
|
46
|
+
reserve?: PublicKey;
|
|
47
|
+
};
|
|
48
|
+
export type KaminoVaultInstruction = KaminoVaultDepositInstruction | KaminoVaultWithdrawInstruction;
|
|
49
|
+
/** Actions that can be performed on a direct Kamino Farm position. */
|
|
50
|
+
export declare enum KaminoFarmAction {
|
|
51
|
+
INITIALIZE_USER = "KAMINO_FARM_INITIALIZE_USER",
|
|
52
|
+
STAKE = "KAMINO_FARM_STAKE",
|
|
53
|
+
UNSTAKE = "KAMINO_FARM_UNSTAKE",
|
|
54
|
+
WITHDRAW_UNSTAKED_DEPOSITS = "KAMINO_FARM_WITHDRAW_UNSTAKED_DEPOSITS",
|
|
55
|
+
HARVEST_REWARD = "KAMINO_FARM_HARVEST_REWARD"
|
|
56
|
+
}
|
|
57
|
+
type KaminoFarmInstructionBase = {
|
|
58
|
+
action: KaminoFarmAction;
|
|
59
|
+
farmState: PublicKey;
|
|
60
|
+
/**
|
|
61
|
+
* Optional delegatee used to derive the Farm `user_state`.
|
|
62
|
+
* Defaults to the managed vault owner when omitted.
|
|
63
|
+
*/
|
|
64
|
+
delegatee?: PublicKey;
|
|
65
|
+
};
|
|
66
|
+
/** Initialize the Farm `user_state` PDA for the vault owner or delegatee. */
|
|
67
|
+
export type KaminoFarmInitializeUserInstruction = KaminoFarmInstructionBase & {
|
|
68
|
+
action: KaminoFarmAction.INITIALIZE_USER;
|
|
69
|
+
};
|
|
70
|
+
/** Stake tokens from the vault-owned ATA into the Farm. */
|
|
71
|
+
export type KaminoFarmStakeInstruction = KaminoFarmInstructionBase & {
|
|
72
|
+
action: KaminoFarmAction.STAKE;
|
|
73
|
+
amount: BN | "ALL";
|
|
74
|
+
};
|
|
75
|
+
/** Unstake a scaled share amount from the Farm. */
|
|
76
|
+
export type KaminoFarmUnstakeInstruction = KaminoFarmInstructionBase & {
|
|
77
|
+
action: KaminoFarmAction.UNSTAKE;
|
|
78
|
+
stakeSharesScaled: BN;
|
|
79
|
+
};
|
|
80
|
+
/** Withdraw matured unstaked deposits back into the vault-owned ATA. */
|
|
81
|
+
export type KaminoFarmWithdrawUnstakedDepositsInstruction = KaminoFarmInstructionBase & {
|
|
82
|
+
action: KaminoFarmAction.WITHDRAW_UNSTAKED_DEPOSITS;
|
|
83
|
+
};
|
|
84
|
+
/** Harvest a single Farm reward into a vault-owned reward ATA. */
|
|
85
|
+
export type KaminoFarmHarvestRewardInstruction = KaminoFarmInstructionBase & {
|
|
86
|
+
action: KaminoFarmAction.HARVEST_REWARD;
|
|
87
|
+
rewardIndex: number;
|
|
88
|
+
};
|
|
89
|
+
export type KaminoFarmInstruction = KaminoFarmInitializeUserInstruction | KaminoFarmStakeInstruction | KaminoFarmUnstakeInstruction | KaminoFarmWithdrawUnstakedDepositsInstruction | KaminoFarmHarvestRewardInstruction;
|
|
90
|
+
/** Orderbook trade direction */
|
|
91
|
+
export declare enum OrderbookTradeDirection {
|
|
92
|
+
BUY_PT = "BUY_PT",
|
|
93
|
+
SELL_PT = "SELL_PT",
|
|
94
|
+
BUY_YT = "BUY_YT",
|
|
95
|
+
SELL_YT = "SELL_YT"
|
|
96
|
+
}
|
|
97
|
+
/** Offer options for limit orders (currently only FillOrKill supported) */
|
|
98
|
+
export type OrderbookOfferOption = "FillOrKill";
|
|
99
|
+
/** Actions that can be performed on the Exponent Orderbook */
|
|
100
|
+
export declare enum OrderbookAction {
|
|
101
|
+
POST_OFFER = "POST_OFFER",
|
|
102
|
+
MARKET_OFFER = "MARKET_OFFER",
|
|
103
|
+
REMOVE_OFFER = "REMOVE_OFFER",
|
|
104
|
+
WITHDRAW_FUNDS = "WITHDRAW_FUNDS"
|
|
105
|
+
}
|
|
106
|
+
export type OrderbookInstructionMode = "wrapper" | "raw";
|
|
107
|
+
/** Base instruction type for all orderbook operations */
|
|
108
|
+
interface OrderbookInstructionBase {
|
|
109
|
+
action: OrderbookAction;
|
|
110
|
+
orderbook: PublicKey;
|
|
111
|
+
mode?: OrderbookInstructionMode;
|
|
112
|
+
}
|
|
113
|
+
/** Post a limit order on the orderbook */
|
|
114
|
+
export interface OrderbookPostOfferInstruction extends OrderbookInstructionBase {
|
|
115
|
+
action: OrderbookAction.POST_OFFER;
|
|
116
|
+
direction: OrderbookTradeDirection;
|
|
117
|
+
priceApy: number;
|
|
118
|
+
amount: bigint;
|
|
119
|
+
offerOption?: OrderbookOfferOption;
|
|
120
|
+
expirySeconds?: number;
|
|
121
|
+
}
|
|
122
|
+
/** Execute a market order on the orderbook */
|
|
123
|
+
export interface OrderbookMarketOfferInstruction extends OrderbookInstructionBase {
|
|
124
|
+
action: OrderbookAction.MARKET_OFFER;
|
|
125
|
+
direction: OrderbookTradeDirection;
|
|
126
|
+
maxPriceApy: number;
|
|
127
|
+
amount: bigint;
|
|
128
|
+
minAmountOut: bigint;
|
|
129
|
+
virtualOffer?: boolean;
|
|
130
|
+
}
|
|
131
|
+
/** Cancel an existing limit order */
|
|
132
|
+
export interface OrderbookRemoveOfferInstruction extends OrderbookInstructionBase {
|
|
133
|
+
action: OrderbookAction.REMOVE_OFFER;
|
|
134
|
+
offerIdx: number;
|
|
135
|
+
}
|
|
136
|
+
/** Withdraw funds from user escrow */
|
|
137
|
+
export interface OrderbookWithdrawFundsInstruction extends OrderbookInstructionBase {
|
|
138
|
+
action: OrderbookAction.WITHDRAW_FUNDS;
|
|
139
|
+
ptAmount?: bigint | null;
|
|
140
|
+
ytAmount?: bigint | null;
|
|
141
|
+
syAmount?: bigint | null;
|
|
142
|
+
}
|
|
143
|
+
/** A single orderbook instruction */
|
|
144
|
+
export type OrderbookInstruction = OrderbookPostOfferInstruction | OrderbookMarketOfferInstruction | OrderbookRemoveOfferInstruction | OrderbookWithdrawFundsInstruction;
|
|
145
|
+
/** Actions that can be performed on Exponent Core */
|
|
146
|
+
export declare enum CoreAction {
|
|
147
|
+
STRIP = "STRIP",
|
|
148
|
+
MERGE = "MERGE",
|
|
149
|
+
WITHDRAW_YT = "WITHDRAW_YT",
|
|
150
|
+
DEPOSIT_YT = "DEPOSIT_YT",
|
|
151
|
+
INITIALIZE_YIELD_POSITION = "INITIALIZE_YIELD_POSITION"
|
|
152
|
+
}
|
|
153
|
+
/** Base instruction type for all core operations */
|
|
154
|
+
interface CoreInstructionBase {
|
|
155
|
+
action: CoreAction;
|
|
156
|
+
vault: PublicKey;
|
|
157
|
+
}
|
|
158
|
+
/** Strip LST into PT + YT */
|
|
159
|
+
export interface CoreStripInstruction extends CoreInstructionBase {
|
|
160
|
+
action: CoreAction.STRIP;
|
|
161
|
+
/** Amount of base token (LST) to strip */
|
|
162
|
+
amountBase: bigint;
|
|
163
|
+
}
|
|
164
|
+
/** Merge PT + YT into LST */
|
|
165
|
+
export interface CoreMergeInstruction extends CoreInstructionBase {
|
|
166
|
+
action: CoreAction.MERGE;
|
|
167
|
+
/** Amount of PT/YT to merge (must have equal amounts of both) */
|
|
168
|
+
amountPy: bigint;
|
|
169
|
+
}
|
|
170
|
+
/** Withdraw YT from the tracked yield position back into the YT token account */
|
|
171
|
+
export interface CoreWithdrawYtInstruction extends CoreInstructionBase {
|
|
172
|
+
action: CoreAction.WITHDRAW_YT;
|
|
173
|
+
amountYt: bigint;
|
|
174
|
+
}
|
|
175
|
+
/** Deposit YT from the YT token account back into the tracked yield position */
|
|
176
|
+
export interface CoreDepositYtInstruction extends CoreInstructionBase {
|
|
177
|
+
action: CoreAction.DEPOSIT_YT;
|
|
178
|
+
amountYt: bigint;
|
|
179
|
+
}
|
|
180
|
+
/** Initialize yield position for a vault (owner = Squads vault) */
|
|
181
|
+
export interface CoreInitializeYieldPositionInstruction extends CoreInstructionBase {
|
|
182
|
+
action: CoreAction.INITIALIZE_YIELD_POSITION;
|
|
183
|
+
}
|
|
184
|
+
/** A single core instruction */
|
|
185
|
+
export type CoreInstruction = CoreStripInstruction | CoreMergeInstruction | CoreWithdrawYtInstruction | CoreDepositYtInstruction | CoreInitializeYieldPositionInstruction;
|
|
186
|
+
export declare enum SyAction {
|
|
187
|
+
MINT = "MINT_SY",
|
|
188
|
+
REDEEM = "REDEEM_SY"
|
|
189
|
+
}
|
|
190
|
+
interface SyInstructionBase {
|
|
191
|
+
action: SyAction;
|
|
192
|
+
vault: PublicKey;
|
|
193
|
+
}
|
|
194
|
+
export interface SyMintInstruction extends SyInstructionBase {
|
|
195
|
+
action: SyAction.MINT;
|
|
196
|
+
amountBase: bigint;
|
|
197
|
+
}
|
|
198
|
+
export interface SyRedeemInstruction extends SyInstructionBase {
|
|
199
|
+
action: SyAction.REDEEM;
|
|
200
|
+
amountSy: bigint;
|
|
201
|
+
}
|
|
202
|
+
export type SyInstruction = SyMintInstruction | SyRedeemInstruction;
|
|
203
|
+
export declare enum TitanAction {
|
|
204
|
+
SWAP = "SWAP"
|
|
205
|
+
}
|
|
206
|
+
/** A pre-built Titan swap instruction to wrap in a sync transaction. */
|
|
207
|
+
export interface TitanSwapInstruction {
|
|
208
|
+
action: TitanAction.SWAP;
|
|
209
|
+
/** The raw Titan SwapRouteV2 TransactionInstruction (from Titan's router API) */
|
|
210
|
+
instruction: TransactionInstruction;
|
|
211
|
+
/** ALT addresses returned by Titan's router for this route. */
|
|
212
|
+
addressLookupTableAddresses?: PublicKey[];
|
|
213
|
+
}
|
|
214
|
+
/** Actions for Loopscale interactions (loans = borrower side, strategies = lender side). */
|
|
215
|
+
export declare enum LoopscaleAction {
|
|
216
|
+
CREATE_LOAN = "LOOPSCALE_CREATE_LOAN",
|
|
217
|
+
DEPOSIT_COLLATERAL = "LOOPSCALE_DEPOSIT_COLLATERAL",
|
|
218
|
+
BORROW_PRINCIPAL = "LOOPSCALE_BORROW_PRINCIPAL",
|
|
219
|
+
REPAY_PRINCIPAL = "LOOPSCALE_REPAY_PRINCIPAL",
|
|
220
|
+
WITHDRAW_COLLATERAL = "LOOPSCALE_WITHDRAW_COLLATERAL",
|
|
221
|
+
CLOSE_LOAN = "LOOPSCALE_CLOSE_LOAN",
|
|
222
|
+
UPDATE_WEIGHT_MATRIX = "LOOPSCALE_UPDATE_WEIGHT_MATRIX",
|
|
223
|
+
CREATE_STRATEGY = "LOOPSCALE_CREATE_STRATEGY",
|
|
224
|
+
DEPOSIT_STRATEGY = "LOOPSCALE_DEPOSIT_STRATEGY",
|
|
225
|
+
WITHDRAW_STRATEGY = "LOOPSCALE_WITHDRAW_STRATEGY",
|
|
226
|
+
CLOSE_STRATEGY = "LOOPSCALE_CLOSE_STRATEGY",
|
|
227
|
+
UPDATE_STRATEGY = "LOOPSCALE_UPDATE_STRATEGY",
|
|
228
|
+
LOCK_LOAN = "LOOPSCALE_LOCK_LOAN",
|
|
229
|
+
UNLOCK_LOAN = "LOOPSCALE_UNLOCK_LOAN",
|
|
230
|
+
REFINANCE_LEDGER = "LOOPSCALE_REFINANCE_LEDGER"
|
|
231
|
+
}
|
|
232
|
+
/** A pre-built Loopscale instruction (loan or strategy) to wrap in a sync transaction. */
|
|
233
|
+
export interface LoopscaleInstruction {
|
|
234
|
+
action: LoopscaleAction;
|
|
235
|
+
/** The raw Loopscale TransactionInstruction (from Loopscale API or local builder) */
|
|
236
|
+
instruction: TransactionInstruction;
|
|
237
|
+
}
|
|
238
|
+
/** Actions that can be performed on the Exponent CLMM (Concentrated Liquidity Market Maker). */
|
|
239
|
+
export declare enum ClmmAction {
|
|
240
|
+
/** Create a new LP position with a specified tick range. Generates keypair internally. */
|
|
241
|
+
DEPOSIT_LIQUIDITY = "CLMM_DEPOSIT_LIQUIDITY",
|
|
242
|
+
/** Add more liquidity to an existing LP position. */
|
|
243
|
+
ADD_LIQUIDITY = "CLMM_ADD_LIQUIDITY",
|
|
244
|
+
/** Remove liquidity from an LP position and receive PT + SY. */
|
|
245
|
+
WITHDRAW_LIQUIDITY = "CLMM_WITHDRAW_LIQUIDITY",
|
|
246
|
+
/** Low-level PT/SY swap. Prefer buyPt/sellPt for directional trades. */
|
|
247
|
+
TRADE_PT = "CLMM_TRADE_PT",
|
|
248
|
+
/** Buy PT with SY on the CLMM. */
|
|
249
|
+
BUY_PT = "CLMM_BUY_PT",
|
|
250
|
+
/** Sell PT for SY on the CLMM. */
|
|
251
|
+
SELL_PT = "CLMM_SELL_PT",
|
|
252
|
+
/** Buy YT with SY on the CLMM. */
|
|
253
|
+
BUY_YT = "CLMM_BUY_YT",
|
|
254
|
+
/** Sell YT for SY on the CLMM. */
|
|
255
|
+
SELL_YT = "CLMM_SELL_YT",
|
|
256
|
+
/** Claim farm emissions from an LP position. */
|
|
257
|
+
CLAIM_FARM_EMISSION = "CLMM_CLAIM_FARM_EMISSION"
|
|
258
|
+
}
|
|
259
|
+
/** Base type for all CLMM instructions. */
|
|
260
|
+
interface ClmmInstructionBase {
|
|
261
|
+
action: ClmmAction;
|
|
262
|
+
/** The CLMM MarketThree account address. */
|
|
263
|
+
market: PublicKey;
|
|
264
|
+
}
|
|
265
|
+
/** Create a new LP position on the CLMM. The lpPosition keypair is generated internally for good UX. */
|
|
266
|
+
export interface ClmmDepositLiquidityInstruction extends ClmmInstructionBase {
|
|
267
|
+
action: ClmmAction.DEPOSIT_LIQUIDITY;
|
|
268
|
+
/** Maximum amount of PT to deposit. */
|
|
269
|
+
ptInIntent: bigint;
|
|
270
|
+
/** Maximum amount of SY to deposit. */
|
|
271
|
+
syInIntent: bigint;
|
|
272
|
+
/** Lower tick boundary (APY value). */
|
|
273
|
+
lowerTickKey: number;
|
|
274
|
+
/** Upper tick boundary (APY value). */
|
|
275
|
+
upperTickKey: number;
|
|
276
|
+
}
|
|
277
|
+
/** Add liquidity to an existing LP position. */
|
|
278
|
+
export interface ClmmAddLiquidityInstruction extends ClmmInstructionBase {
|
|
279
|
+
action: ClmmAction.ADD_LIQUIDITY;
|
|
280
|
+
/** The existing LpPosition account public key. */
|
|
281
|
+
lpPosition: PublicKey;
|
|
282
|
+
/** Maximum amount of PT to add. */
|
|
283
|
+
ptInIntent: bigint;
|
|
284
|
+
/** Maximum amount of SY to add. */
|
|
285
|
+
syInIntent: bigint;
|
|
286
|
+
}
|
|
287
|
+
/** Withdraw liquidity from an LP position. */
|
|
288
|
+
export interface ClmmWithdrawLiquidityInstruction extends ClmmInstructionBase {
|
|
289
|
+
action: ClmmAction.WITHDRAW_LIQUIDITY;
|
|
290
|
+
/** The LpPosition account to withdraw from. */
|
|
291
|
+
lpPosition: PublicKey;
|
|
292
|
+
/** Amount of liquidity (LP units) to remove. */
|
|
293
|
+
lpIn: bigint;
|
|
294
|
+
/** Minimum PT to receive (slippage protection). */
|
|
295
|
+
minPtOut: bigint;
|
|
296
|
+
/** Minimum SY to receive (slippage protection). */
|
|
297
|
+
minSyOut: bigint;
|
|
298
|
+
}
|
|
299
|
+
/** Low-level PT/SY swap on the CLMM. Prefer buyPt/sellPt for directional trades. */
|
|
300
|
+
export interface ClmmTradePtInstruction extends ClmmInstructionBase {
|
|
301
|
+
action: ClmmAction.TRADE_PT;
|
|
302
|
+
/** Amount of the input token. */
|
|
303
|
+
traderAmount: bigint;
|
|
304
|
+
/** Minimum output amount (slippage protection). */
|
|
305
|
+
outConstraint: bigint;
|
|
306
|
+
/** Swap direction: SyToPt or PtToSy. */
|
|
307
|
+
swapDirection: SwapDirection;
|
|
308
|
+
/** Optional price limit (ln implied APY). */
|
|
309
|
+
lnImpliedApyLimit?: number;
|
|
310
|
+
}
|
|
311
|
+
/** Buy PT with SY on the CLMM. */
|
|
312
|
+
export interface ClmmBuyPtInstruction extends ClmmInstructionBase {
|
|
313
|
+
action: ClmmAction.BUY_PT;
|
|
314
|
+
/** Amount of SY to spend. */
|
|
315
|
+
amountSy: bigint;
|
|
316
|
+
/** Minimum PT to receive (slippage protection). */
|
|
317
|
+
outConstraint: bigint;
|
|
318
|
+
/** Optional price limit (ln implied APY). */
|
|
319
|
+
lnImpliedApyLimit?: number;
|
|
320
|
+
}
|
|
321
|
+
/** Sell PT for SY on the CLMM. */
|
|
322
|
+
export interface ClmmSellPtInstruction extends ClmmInstructionBase {
|
|
323
|
+
action: ClmmAction.SELL_PT;
|
|
324
|
+
/** Amount of PT to sell. */
|
|
325
|
+
amountPt: bigint;
|
|
326
|
+
/** Minimum SY to receive (slippage protection). */
|
|
327
|
+
outConstraint: bigint;
|
|
328
|
+
/** Optional price limit (ln implied APY). */
|
|
329
|
+
lnImpliedApyLimit?: number;
|
|
330
|
+
}
|
|
331
|
+
/** Buy YT with SY on the CLMM. */
|
|
332
|
+
export interface ClmmBuyYtInstruction extends ClmmInstructionBase {
|
|
333
|
+
action: ClmmAction.BUY_YT;
|
|
334
|
+
/** Minimum amount of YT to receive. */
|
|
335
|
+
ytOut: bigint;
|
|
336
|
+
/** Maximum amount of SY to spend. */
|
|
337
|
+
maxSyIn: bigint;
|
|
338
|
+
/** Optional price limit (ln implied APY). */
|
|
339
|
+
lnImpliedApyLimit?: number;
|
|
340
|
+
}
|
|
341
|
+
/** Sell YT for SY on the CLMM. */
|
|
342
|
+
export interface ClmmSellYtInstruction extends ClmmInstructionBase {
|
|
343
|
+
action: ClmmAction.SELL_YT;
|
|
344
|
+
/** Amount of YT to sell. */
|
|
345
|
+
ytIn: bigint;
|
|
346
|
+
/** Minimum SY to receive (slippage protection). */
|
|
347
|
+
minSyOut: bigint;
|
|
348
|
+
/** Optional price limit (ln implied APY). */
|
|
349
|
+
lnImpliedApyLimit?: number;
|
|
350
|
+
}
|
|
351
|
+
/** Claim farm emissions from an LP position. */
|
|
352
|
+
export interface ClmmClaimFarmEmissionInstruction extends ClmmInstructionBase {
|
|
353
|
+
action: ClmmAction.CLAIM_FARM_EMISSION;
|
|
354
|
+
/** The LpPosition account to claim from. */
|
|
355
|
+
lpPosition: PublicKey;
|
|
356
|
+
/** Index of the farm to claim from. */
|
|
357
|
+
farmIndex: number;
|
|
358
|
+
}
|
|
359
|
+
/** A single CLMM instruction. */
|
|
360
|
+
export type ClmmInstruction = ClmmDepositLiquidityInstruction | ClmmAddLiquidityInstruction | ClmmWithdrawLiquidityInstruction | ClmmTradePtInstruction | ClmmBuyPtInstruction | ClmmSellPtInstruction | ClmmBuyYtInstruction | ClmmSellYtInstruction | ClmmClaimFarmEmissionInstruction;
|
|
361
|
+
/** A single vault instruction — pass an array of these to `createVaultSyncTransaction`. */
|
|
362
|
+
export type VaultInstruction = MarketInstruction | ReserveInstruction | KaminoVaultInstruction | KaminoFarmInstruction | OrderbookInstruction | CoreInstruction | SyInstruction | TitanSwapInstruction | ClmmInstruction | LoopscaleInstruction;
|
|
363
|
+
export type { KaminoReserves };
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ClmmAction = exports.LoopscaleAction = exports.TitanAction = exports.SyAction = exports.CoreAction = exports.OrderbookAction = exports.OrderbookTradeDirection = exports.KaminoFarmAction = exports.KaminoVaultAction = exports.VaultAction = void 0;
|
|
4
|
+
/** Actions that can be performed through the vault instruction builder. */
|
|
5
|
+
var VaultAction;
|
|
6
|
+
(function (VaultAction) {
|
|
7
|
+
VaultAction["INIT_USER_METADATA"] = "INIT_USER_METADATA";
|
|
8
|
+
VaultAction["INIT_OBLIGATION"] = "INIT_OBLIGATION";
|
|
9
|
+
VaultAction["DEPOSIT"] = "DEPOSIT";
|
|
10
|
+
VaultAction["WITHDRAW"] = "WITHDRAW";
|
|
11
|
+
VaultAction["BORROW"] = "BORROW";
|
|
12
|
+
VaultAction["REPAY"] = "REPAY";
|
|
13
|
+
})(VaultAction || (exports.VaultAction = VaultAction = {}));
|
|
14
|
+
// ============================================================================
|
|
15
|
+
// Kamino Vault Instruction Types
|
|
16
|
+
// ============================================================================
|
|
17
|
+
/** Actions that can be performed on a direct Kamino Vault position. */
|
|
18
|
+
var KaminoVaultAction;
|
|
19
|
+
(function (KaminoVaultAction) {
|
|
20
|
+
KaminoVaultAction["DEPOSIT"] = "KAMINO_VAULT_DEPOSIT";
|
|
21
|
+
KaminoVaultAction["WITHDRAW"] = "KAMINO_VAULT_WITHDRAW";
|
|
22
|
+
})(KaminoVaultAction || (exports.KaminoVaultAction = KaminoVaultAction = {}));
|
|
23
|
+
// ============================================================================
|
|
24
|
+
// Kamino Farm Instruction Types
|
|
25
|
+
// ============================================================================
|
|
26
|
+
/** Actions that can be performed on a direct Kamino Farm position. */
|
|
27
|
+
var KaminoFarmAction;
|
|
28
|
+
(function (KaminoFarmAction) {
|
|
29
|
+
KaminoFarmAction["INITIALIZE_USER"] = "KAMINO_FARM_INITIALIZE_USER";
|
|
30
|
+
KaminoFarmAction["STAKE"] = "KAMINO_FARM_STAKE";
|
|
31
|
+
KaminoFarmAction["UNSTAKE"] = "KAMINO_FARM_UNSTAKE";
|
|
32
|
+
KaminoFarmAction["WITHDRAW_UNSTAKED_DEPOSITS"] = "KAMINO_FARM_WITHDRAW_UNSTAKED_DEPOSITS";
|
|
33
|
+
KaminoFarmAction["HARVEST_REWARD"] = "KAMINO_FARM_HARVEST_REWARD";
|
|
34
|
+
})(KaminoFarmAction || (exports.KaminoFarmAction = KaminoFarmAction = {}));
|
|
35
|
+
// ============================================================================
|
|
36
|
+
// Orderbook Instruction Types
|
|
37
|
+
// ============================================================================
|
|
38
|
+
/** Orderbook trade direction */
|
|
39
|
+
var OrderbookTradeDirection;
|
|
40
|
+
(function (OrderbookTradeDirection) {
|
|
41
|
+
OrderbookTradeDirection["BUY_PT"] = "BUY_PT";
|
|
42
|
+
OrderbookTradeDirection["SELL_PT"] = "SELL_PT";
|
|
43
|
+
OrderbookTradeDirection["BUY_YT"] = "BUY_YT";
|
|
44
|
+
OrderbookTradeDirection["SELL_YT"] = "SELL_YT";
|
|
45
|
+
})(OrderbookTradeDirection || (exports.OrderbookTradeDirection = OrderbookTradeDirection = {}));
|
|
46
|
+
/** Actions that can be performed on the Exponent Orderbook */
|
|
47
|
+
var OrderbookAction;
|
|
48
|
+
(function (OrderbookAction) {
|
|
49
|
+
OrderbookAction["POST_OFFER"] = "POST_OFFER";
|
|
50
|
+
OrderbookAction["MARKET_OFFER"] = "MARKET_OFFER";
|
|
51
|
+
OrderbookAction["REMOVE_OFFER"] = "REMOVE_OFFER";
|
|
52
|
+
OrderbookAction["WITHDRAW_FUNDS"] = "WITHDRAW_FUNDS";
|
|
53
|
+
})(OrderbookAction || (exports.OrderbookAction = OrderbookAction = {}));
|
|
54
|
+
// ============================================================================
|
|
55
|
+
// Core Instruction Types (Strip/Merge)
|
|
56
|
+
// ============================================================================
|
|
57
|
+
/** Actions that can be performed on Exponent Core */
|
|
58
|
+
var CoreAction;
|
|
59
|
+
(function (CoreAction) {
|
|
60
|
+
CoreAction["STRIP"] = "STRIP";
|
|
61
|
+
CoreAction["MERGE"] = "MERGE";
|
|
62
|
+
CoreAction["WITHDRAW_YT"] = "WITHDRAW_YT";
|
|
63
|
+
CoreAction["DEPOSIT_YT"] = "DEPOSIT_YT";
|
|
64
|
+
CoreAction["INITIALIZE_YIELD_POSITION"] = "INITIALIZE_YIELD_POSITION";
|
|
65
|
+
})(CoreAction || (exports.CoreAction = CoreAction = {}));
|
|
66
|
+
// ============================================================================
|
|
67
|
+
// Standard Program Instruction Types (mint_sy / redeem_sy)
|
|
68
|
+
// ============================================================================
|
|
69
|
+
var SyAction;
|
|
70
|
+
(function (SyAction) {
|
|
71
|
+
SyAction["MINT"] = "MINT_SY";
|
|
72
|
+
SyAction["REDEEM"] = "REDEEM_SY";
|
|
73
|
+
})(SyAction || (exports.SyAction = SyAction = {}));
|
|
74
|
+
// ============================================================================
|
|
75
|
+
// Titan Instruction Types
|
|
76
|
+
// ============================================================================
|
|
77
|
+
var TitanAction;
|
|
78
|
+
(function (TitanAction) {
|
|
79
|
+
TitanAction["SWAP"] = "SWAP";
|
|
80
|
+
})(TitanAction || (exports.TitanAction = TitanAction = {}));
|
|
81
|
+
// ============================================================================
|
|
82
|
+
// Loopscale Instruction Types
|
|
83
|
+
// ============================================================================
|
|
84
|
+
/** Actions for Loopscale interactions (loans = borrower side, strategies = lender side). */
|
|
85
|
+
var LoopscaleAction;
|
|
86
|
+
(function (LoopscaleAction) {
|
|
87
|
+
LoopscaleAction["CREATE_LOAN"] = "LOOPSCALE_CREATE_LOAN";
|
|
88
|
+
LoopscaleAction["DEPOSIT_COLLATERAL"] = "LOOPSCALE_DEPOSIT_COLLATERAL";
|
|
89
|
+
LoopscaleAction["BORROW_PRINCIPAL"] = "LOOPSCALE_BORROW_PRINCIPAL";
|
|
90
|
+
LoopscaleAction["REPAY_PRINCIPAL"] = "LOOPSCALE_REPAY_PRINCIPAL";
|
|
91
|
+
LoopscaleAction["WITHDRAW_COLLATERAL"] = "LOOPSCALE_WITHDRAW_COLLATERAL";
|
|
92
|
+
LoopscaleAction["CLOSE_LOAN"] = "LOOPSCALE_CLOSE_LOAN";
|
|
93
|
+
LoopscaleAction["UPDATE_WEIGHT_MATRIX"] = "LOOPSCALE_UPDATE_WEIGHT_MATRIX";
|
|
94
|
+
LoopscaleAction["CREATE_STRATEGY"] = "LOOPSCALE_CREATE_STRATEGY";
|
|
95
|
+
LoopscaleAction["DEPOSIT_STRATEGY"] = "LOOPSCALE_DEPOSIT_STRATEGY";
|
|
96
|
+
LoopscaleAction["WITHDRAW_STRATEGY"] = "LOOPSCALE_WITHDRAW_STRATEGY";
|
|
97
|
+
LoopscaleAction["CLOSE_STRATEGY"] = "LOOPSCALE_CLOSE_STRATEGY";
|
|
98
|
+
LoopscaleAction["UPDATE_STRATEGY"] = "LOOPSCALE_UPDATE_STRATEGY";
|
|
99
|
+
LoopscaleAction["LOCK_LOAN"] = "LOOPSCALE_LOCK_LOAN";
|
|
100
|
+
LoopscaleAction["UNLOCK_LOAN"] = "LOOPSCALE_UNLOCK_LOAN";
|
|
101
|
+
LoopscaleAction["REFINANCE_LEDGER"] = "LOOPSCALE_REFINANCE_LEDGER";
|
|
102
|
+
})(LoopscaleAction || (exports.LoopscaleAction = LoopscaleAction = {}));
|
|
103
|
+
// ============================================================================
|
|
104
|
+
// CLMM Instruction Types
|
|
105
|
+
// ============================================================================
|
|
106
|
+
/** Actions that can be performed on the Exponent CLMM (Concentrated Liquidity Market Maker). */
|
|
107
|
+
var ClmmAction;
|
|
108
|
+
(function (ClmmAction) {
|
|
109
|
+
/** Create a new LP position with a specified tick range. Generates keypair internally. */
|
|
110
|
+
ClmmAction["DEPOSIT_LIQUIDITY"] = "CLMM_DEPOSIT_LIQUIDITY";
|
|
111
|
+
/** Add more liquidity to an existing LP position. */
|
|
112
|
+
ClmmAction["ADD_LIQUIDITY"] = "CLMM_ADD_LIQUIDITY";
|
|
113
|
+
/** Remove liquidity from an LP position and receive PT + SY. */
|
|
114
|
+
ClmmAction["WITHDRAW_LIQUIDITY"] = "CLMM_WITHDRAW_LIQUIDITY";
|
|
115
|
+
/** Low-level PT/SY swap. Prefer buyPt/sellPt for directional trades. */
|
|
116
|
+
ClmmAction["TRADE_PT"] = "CLMM_TRADE_PT";
|
|
117
|
+
/** Buy PT with SY on the CLMM. */
|
|
118
|
+
ClmmAction["BUY_PT"] = "CLMM_BUY_PT";
|
|
119
|
+
/** Sell PT for SY on the CLMM. */
|
|
120
|
+
ClmmAction["SELL_PT"] = "CLMM_SELL_PT";
|
|
121
|
+
/** Buy YT with SY on the CLMM. */
|
|
122
|
+
ClmmAction["BUY_YT"] = "CLMM_BUY_YT";
|
|
123
|
+
/** Sell YT for SY on the CLMM. */
|
|
124
|
+
ClmmAction["SELL_YT"] = "CLMM_SELL_YT";
|
|
125
|
+
/** Claim farm emissions from an LP position. */
|
|
126
|
+
ClmmAction["CLAIM_FARM_EMISSION"] = "CLMM_CLAIM_FARM_EMISSION";
|
|
127
|
+
})(ClmmAction || (exports.ClmmAction = ClmmAction = {}));
|
|
128
|
+
//# sourceMappingURL=vault-instruction-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault-instruction-types.js","sourceRoot":"","sources":["../../src/exponentVaults/vault-instruction-types.ts"],"names":[],"mappings":"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"}
|