@syndicure/vault-sdk 0.1.0

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.
Files changed (53) hide show
  1. package/dist/client.d.ts +90 -0
  2. package/dist/client.d.ts.map +1 -0
  3. package/dist/client.js +184 -0
  4. package/dist/client.js.map +1 -0
  5. package/dist/constants.d.ts +36 -0
  6. package/dist/constants.d.ts.map +1 -0
  7. package/dist/constants.js +44 -0
  8. package/dist/constants.js.map +1 -0
  9. package/dist/index.d.ts +18 -0
  10. package/dist/index.d.ts.map +1 -0
  11. package/dist/index.js +92 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/instructions/admin.d.ts +136 -0
  14. package/dist/instructions/admin.d.ts.map +1 -0
  15. package/dist/instructions/admin.js +227 -0
  16. package/dist/instructions/admin.js.map +1 -0
  17. package/dist/instructions/liquidity.d.ts +50 -0
  18. package/dist/instructions/liquidity.d.ts.map +1 -0
  19. package/dist/instructions/liquidity.js +118 -0
  20. package/dist/instructions/liquidity.js.map +1 -0
  21. package/dist/instructions/nft.d.ts +80 -0
  22. package/dist/instructions/nft.d.ts.map +1 -0
  23. package/dist/instructions/nft.js +159 -0
  24. package/dist/instructions/nft.js.map +1 -0
  25. package/dist/instructions/swap.d.ts +57 -0
  26. package/dist/instructions/swap.d.ts.map +1 -0
  27. package/dist/instructions/swap.js +117 -0
  28. package/dist/instructions/swap.js.map +1 -0
  29. package/dist/pda.d.ts +28 -0
  30. package/dist/pda.d.ts.map +1 -0
  31. package/dist/pda.js +59 -0
  32. package/dist/pda.js.map +1 -0
  33. package/dist/pool/fetcher.d.ts +23 -0
  34. package/dist/pool/fetcher.d.ts.map +1 -0
  35. package/dist/pool/fetcher.js +171 -0
  36. package/dist/pool/fetcher.js.map +1 -0
  37. package/dist/pool/index.d.ts +53 -0
  38. package/dist/pool/index.d.ts.map +1 -0
  39. package/dist/pool/index.js +90 -0
  40. package/dist/pool/index.js.map +1 -0
  41. package/dist/routing/pathfinder.d.ts +25 -0
  42. package/dist/routing/pathfinder.d.ts.map +1 -0
  43. package/dist/routing/pathfinder.js +116 -0
  44. package/dist/routing/pathfinder.js.map +1 -0
  45. package/dist/routing/quote.d.ts +53 -0
  46. package/dist/routing/quote.d.ts.map +1 -0
  47. package/dist/routing/quote.js +145 -0
  48. package/dist/routing/quote.js.map +1 -0
  49. package/dist/types.d.ts +105 -0
  50. package/dist/types.d.ts.map +1 -0
  51. package/dist/types.js +15 -0
  52. package/dist/types.js.map +1 -0
  53. package/package.json +31 -0
@@ -0,0 +1,136 @@
1
+ /**
2
+ * @vault-program/sdk — Admin & pool-creation instruction builders.
3
+ *
4
+ * Builds transactions for:
5
+ * - initialize_protocol
6
+ * - update_protocol_config
7
+ * - withdraw_treasury (SOL)
8
+ * - withdraw_treasury_tokens (SPL tokens)
9
+ * - claim_creator_sol_fees
10
+ * - creator_withdraw
11
+ * - lock_pool
12
+ * - create_token_token_pool
13
+ * - create_token_nft_pool
14
+ */
15
+ import { Program, BN } from "@coral-xyz/anchor";
16
+ import { PublicKey } from "@solana/web3.js";
17
+ import { Pool } from "../types";
18
+ export interface InitializeProtocolOpts {
19
+ program: Program<any>;
20
+ authority: PublicKey;
21
+ poolCreationFee: BN;
22
+ swapFeeBps: number;
23
+ treasuryFeeBps: number;
24
+ tokenSwapSolFee: BN;
25
+ nftSwapSolFee: BN;
26
+ programId?: PublicKey;
27
+ }
28
+ export declare function buildInitializeProtocol(opts: InitializeProtocolOpts): Promise<any>;
29
+ export interface UpdateProtocolConfigOpts {
30
+ program: Program<any>;
31
+ authority: PublicKey;
32
+ poolCreationFee?: BN | null;
33
+ swapFeeBps?: number | null;
34
+ treasuryFeeBps?: number | null;
35
+ isPaused?: boolean | null;
36
+ tokenSwapSolFee?: BN | null;
37
+ nftSwapSolFee?: BN | null;
38
+ programId?: PublicKey;
39
+ }
40
+ export declare function buildUpdateProtocolConfig(opts: UpdateProtocolConfigOpts): Promise<any>;
41
+ export interface WithdrawTreasuryOpts {
42
+ program: Program<any>;
43
+ authority: PublicKey;
44
+ amount: BN;
45
+ programId?: PublicKey;
46
+ }
47
+ export declare function buildWithdrawTreasury(opts: WithdrawTreasuryOpts): Promise<any>;
48
+ export interface WithdrawTreasuryTokensOpts {
49
+ program: Program<any>;
50
+ authority: PublicKey;
51
+ amount: BN;
52
+ /** The SPL token mint to withdraw. */
53
+ mint: PublicKey;
54
+ /** Treasury's token account for this mint. */
55
+ treasuryTokenAccount: PublicKey;
56
+ /** Authority's token account to receive tokens. */
57
+ authorityTokenAccount: PublicKey;
58
+ /** Token program for this mint (SPL Token or Token-2022). */
59
+ tokenProgram?: PublicKey;
60
+ programId?: PublicKey;
61
+ }
62
+ export declare function buildWithdrawTreasuryTokens(opts: WithdrawTreasuryTokensOpts): Promise<any>;
63
+ export interface ClaimCreatorSolFeesOpts {
64
+ program: Program<any>;
65
+ creator: PublicKey;
66
+ pool: Pool;
67
+ programId?: PublicKey;
68
+ }
69
+ export declare function buildClaimCreatorSolFees(opts: ClaimCreatorSolFeesOpts): Promise<any>;
70
+ export interface CreatorWithdrawOpts {
71
+ program: Program<any>;
72
+ creator: PublicKey;
73
+ pool: Pool;
74
+ amountA: BN;
75
+ amountB: BN;
76
+ creatorTokenA: PublicKey;
77
+ creatorTokenB: PublicKey;
78
+ programId?: PublicKey;
79
+ computeUnits?: number;
80
+ }
81
+ export declare function buildCreatorWithdraw(opts: CreatorWithdrawOpts): Promise<any>;
82
+ export interface LockPoolOpts {
83
+ program: Program<any>;
84
+ creator: PublicKey;
85
+ pool: Pool;
86
+ programId?: PublicKey;
87
+ }
88
+ export declare function buildLockPool(opts: LockPoolOpts): Promise<any>;
89
+ export interface CreateTokenTokenPoolOpts {
90
+ program: Program<any>;
91
+ creator: PublicKey;
92
+ assetAMint: PublicKey;
93
+ assetBMint: PublicKey;
94
+ initialAmountA: BN;
95
+ initialAmountB: BN;
96
+ poolFeeBps: number;
97
+ isLocked: boolean;
98
+ /** Creator's token A ATA. */
99
+ creatorTokenA: PublicKey;
100
+ /** Creator's token B ATA. */
101
+ creatorTokenB: PublicKey;
102
+ /** Whether asset A is Token-2022. */
103
+ assetAIsToken2022?: boolean;
104
+ /** Whether asset B is Token-2022. */
105
+ assetBIsToken2022?: boolean;
106
+ programId?: PublicKey;
107
+ computeUnits?: number;
108
+ }
109
+ export declare function buildCreateTokenTokenPool(opts: CreateTokenTokenPoolOpts): Promise<any>;
110
+ export interface CreateTokenNftPoolOpts {
111
+ program: Program<any>;
112
+ creator: PublicKey;
113
+ assetAMint: PublicKey;
114
+ collectionMint: PublicKey;
115
+ initialTokenAmount: BN;
116
+ basePrice: BN;
117
+ curveDelta: BN;
118
+ poolFeeBps: number;
119
+ isLocked: boolean;
120
+ /** 0 = Linear, 1 = Exponential, etc. */
121
+ poolType: number;
122
+ /** Creator's token A ATA. */
123
+ creatorTokenA: PublicKey;
124
+ /** The NFT mint to deposit as initial liquidity. */
125
+ nftMint: PublicKey;
126
+ /** NFT metadata PDA (Metaplex). */
127
+ nftMetadata: PublicKey;
128
+ /** Creator's NFT token account (source). */
129
+ creatorNftAccount: PublicKey;
130
+ /** Whether asset A is Token-2022. */
131
+ assetAIsToken2022?: boolean;
132
+ programId?: PublicKey;
133
+ computeUnits?: number;
134
+ }
135
+ export declare function buildCreateTokenNftPool(opts: CreateTokenNftPoolOpts): Promise<any>;
136
+ //# sourceMappingURL=admin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/instructions/admin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,227 @@
1
+ "use strict";
2
+ /**
3
+ * @vault-program/sdk — Admin & pool-creation instruction builders.
4
+ *
5
+ * Builds transactions for:
6
+ * - initialize_protocol
7
+ * - update_protocol_config
8
+ * - withdraw_treasury (SOL)
9
+ * - withdraw_treasury_tokens (SPL tokens)
10
+ * - claim_creator_sol_fees
11
+ * - creator_withdraw
12
+ * - lock_pool
13
+ * - create_token_token_pool
14
+ * - create_token_nft_pool
15
+ */
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.buildInitializeProtocol = buildInitializeProtocol;
18
+ exports.buildUpdateProtocolConfig = buildUpdateProtocolConfig;
19
+ exports.buildWithdrawTreasury = buildWithdrawTreasury;
20
+ exports.buildWithdrawTreasuryTokens = buildWithdrawTreasuryTokens;
21
+ exports.buildClaimCreatorSolFees = buildClaimCreatorSolFees;
22
+ exports.buildCreatorWithdraw = buildCreatorWithdraw;
23
+ exports.buildLockPool = buildLockPool;
24
+ exports.buildCreateTokenTokenPool = buildCreateTokenTokenPool;
25
+ exports.buildCreateTokenNftPool = buildCreateTokenNftPool;
26
+ const web3_js_1 = require("@solana/web3.js");
27
+ const spl_token_1 = require("@solana/spl-token");
28
+ const constants_1 = require("../constants");
29
+ const pda_1 = require("../pda");
30
+ // ─── Helpers ─────────────────────────────────────────────────
31
+ const TOKEN_2022_PROGRAM_ID = new web3_js_1.PublicKey("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb");
32
+ function tokenProgramFor(is2022) {
33
+ return is2022 ? TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID;
34
+ }
35
+ async function buildInitializeProtocol(opts) {
36
+ const pid = opts.programId ?? constants_1.PROGRAM_ID;
37
+ const [configPda] = (0, pda_1.deriveConfigPda)(pid);
38
+ const [treasuryPda] = (0, pda_1.deriveTreasuryPda)(pid);
39
+ return opts.program.methods
40
+ .initializeProtocol(opts.poolCreationFee, opts.swapFeeBps, opts.treasuryFeeBps, opts.tokenSwapSolFee, opts.nftSwapSolFee)
41
+ .accounts({
42
+ authority: opts.authority,
43
+ config: configPda,
44
+ treasury: treasuryPda,
45
+ systemProgram: web3_js_1.SystemProgram.programId,
46
+ });
47
+ }
48
+ async function buildUpdateProtocolConfig(opts) {
49
+ const pid = opts.programId ?? constants_1.PROGRAM_ID;
50
+ const [configPda] = (0, pda_1.deriveConfigPda)(pid);
51
+ return opts.program.methods
52
+ .updateProtocolConfig(opts.poolCreationFee ?? null, opts.swapFeeBps ?? null, opts.treasuryFeeBps ?? null, opts.isPaused ?? null, opts.tokenSwapSolFee ?? null, opts.nftSwapSolFee ?? null)
53
+ .accounts({
54
+ authority: opts.authority,
55
+ config: configPda,
56
+ systemProgram: web3_js_1.SystemProgram.programId,
57
+ });
58
+ }
59
+ async function buildWithdrawTreasury(opts) {
60
+ const pid = opts.programId ?? constants_1.PROGRAM_ID;
61
+ const [configPda] = (0, pda_1.deriveConfigPda)(pid);
62
+ const [treasuryPda] = (0, pda_1.deriveTreasuryPda)(pid);
63
+ return opts.program.methods
64
+ .withdrawTreasury(opts.amount)
65
+ .accounts({
66
+ authority: opts.authority,
67
+ config: configPda,
68
+ treasury: treasuryPda,
69
+ systemProgram: web3_js_1.SystemProgram.programId,
70
+ });
71
+ }
72
+ async function buildWithdrawTreasuryTokens(opts) {
73
+ const pid = opts.programId ?? constants_1.PROGRAM_ID;
74
+ const [configPda] = (0, pda_1.deriveConfigPda)(pid);
75
+ const [treasuryPda] = (0, pda_1.deriveTreasuryPda)(pid);
76
+ return opts.program.methods
77
+ .withdrawTreasuryTokens(opts.amount)
78
+ .accounts({
79
+ authority: opts.authority,
80
+ config: configPda,
81
+ treasury: treasuryPda,
82
+ mint: opts.mint,
83
+ treasuryTokenAccount: opts.treasuryTokenAccount,
84
+ authorityTokenAccount: opts.authorityTokenAccount,
85
+ tokenProgram: opts.tokenProgram ?? spl_token_1.TOKEN_PROGRAM_ID,
86
+ });
87
+ }
88
+ async function buildClaimCreatorSolFees(opts) {
89
+ const pid = opts.programId ?? constants_1.PROGRAM_ID;
90
+ const [creatorFeeVault] = (0, pda_1.deriveCreatorFeeVaultPda)(opts.pool.address, pid);
91
+ return opts.program.methods
92
+ .claimCreatorSolFees()
93
+ .accounts({
94
+ creator: opts.creator,
95
+ pool: opts.pool.address,
96
+ creatorFeeVault,
97
+ });
98
+ }
99
+ async function buildCreatorWithdraw(opts) {
100
+ const pid = opts.programId ?? constants_1.PROGRAM_ID;
101
+ const tokenProgramA = tokenProgramFor(opts.pool.assetAIsToken2022);
102
+ const tokenProgramB = tokenProgramFor(opts.pool.assetBIsToken2022);
103
+ return opts.program.methods
104
+ .creatorWithdraw(opts.amountA, opts.amountB)
105
+ .accounts({
106
+ creator: opts.creator,
107
+ pool: opts.pool.address,
108
+ assetAMint: opts.pool.assetAMint,
109
+ assetBMint: opts.pool.assetBMint,
110
+ vaultA: opts.pool.vaultA,
111
+ vaultB: opts.pool.vaultB,
112
+ creatorTokenA: opts.creatorTokenA,
113
+ creatorTokenB: opts.creatorTokenB,
114
+ tokenProgramA,
115
+ tokenProgramB,
116
+ })
117
+ .preInstructions([
118
+ web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({
119
+ units: opts.computeUnits ?? 400000,
120
+ }),
121
+ ]);
122
+ }
123
+ async function buildLockPool(opts) {
124
+ return opts.program.methods
125
+ .lockPool()
126
+ .accounts({
127
+ creator: opts.creator,
128
+ pool: opts.pool.address,
129
+ });
130
+ }
131
+ async function buildCreateTokenTokenPool(opts) {
132
+ const pid = opts.programId ?? constants_1.PROGRAM_ID;
133
+ const [configPda] = (0, pda_1.deriveConfigPda)(pid);
134
+ const [treasuryPda] = (0, pda_1.deriveTreasuryPda)(pid);
135
+ const [poolPda] = (0, pda_1.derivePoolPda)(opts.assetAMint, opts.assetBMint, pid);
136
+ const [lpMint] = (0, pda_1.deriveLpMintPda)(poolPda, pid);
137
+ const [creatorPosition] = (0, pda_1.derivePositionPda)(poolPda, opts.creator, pid);
138
+ const [creatorFeeVault] = (0, pda_1.deriveCreatorFeeVaultPda)(poolPda, pid);
139
+ const tokenProgramA = tokenProgramFor(opts.assetAIsToken2022 ?? false);
140
+ const tokenProgramB = tokenProgramFor(opts.assetBIsToken2022 ?? false);
141
+ // Derive treasury ATAs for fee collection
142
+ const treasuryTokenA = await (0, spl_token_1.getAssociatedTokenAddress)(opts.assetAMint, treasuryPda, true, tokenProgramA);
143
+ const treasuryTokenB = await (0, spl_token_1.getAssociatedTokenAddress)(opts.assetBMint, treasuryPda, true, tokenProgramB);
144
+ // Derive creator LP ATA
145
+ const creatorLpAccount = await (0, spl_token_1.getAssociatedTokenAddress)(lpMint, opts.creator, false, spl_token_1.TOKEN_PROGRAM_ID);
146
+ return opts.program.methods
147
+ .createTokenTokenPool(opts.initialAmountA, opts.initialAmountB, opts.poolFeeBps, opts.isLocked)
148
+ .accounts({
149
+ creator: opts.creator,
150
+ config: configPda,
151
+ treasury: treasuryPda,
152
+ assetAMint: opts.assetAMint,
153
+ assetBMint: opts.assetBMint,
154
+ pool: poolPda,
155
+ vaultA: await (0, spl_token_1.getAssociatedTokenAddress)(opts.assetAMint, poolPda, true, tokenProgramA),
156
+ vaultB: await (0, spl_token_1.getAssociatedTokenAddress)(opts.assetBMint, poolPda, true, tokenProgramB),
157
+ lpMint,
158
+ creatorTokenA: opts.creatorTokenA,
159
+ creatorTokenB: opts.creatorTokenB,
160
+ creatorLpAccount,
161
+ treasuryTokenA,
162
+ treasuryTokenB,
163
+ creatorPosition,
164
+ creatorFeeVault,
165
+ tokenProgramA,
166
+ tokenProgramB,
167
+ lpTokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
168
+ associatedTokenProgram: spl_token_1.ASSOCIATED_TOKEN_PROGRAM_ID,
169
+ systemProgram: web3_js_1.SystemProgram.programId,
170
+ })
171
+ .preInstructions([
172
+ web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({
173
+ units: opts.computeUnits ?? 400000,
174
+ }),
175
+ ]);
176
+ }
177
+ async function buildCreateTokenNftPool(opts) {
178
+ const pid = opts.programId ?? constants_1.PROGRAM_ID;
179
+ const [configPda] = (0, pda_1.deriveConfigPda)(pid);
180
+ const [treasuryPda] = (0, pda_1.deriveTreasuryPda)(pid);
181
+ // For NFT pools: assetA = fungible, assetB = collection mint
182
+ const [poolPda] = (0, pda_1.derivePoolPda)(opts.assetAMint, opts.collectionMint, pid);
183
+ const [lpMint] = (0, pda_1.deriveLpMintPda)(poolPda, pid);
184
+ const [creatorPosition] = (0, pda_1.derivePositionPda)(poolPda, opts.creator, pid);
185
+ const [creatorFeeVault] = (0, pda_1.deriveCreatorFeeVaultPda)(poolPda, pid);
186
+ const [nftEscrow] = (0, pda_1.deriveNftEscrowPda)(poolPda, opts.nftMint, pid);
187
+ const tokenProgramA = tokenProgramFor(opts.assetAIsToken2022 ?? false);
188
+ // Treasury ATA for token A fee collection
189
+ const treasuryTokenA = await (0, spl_token_1.getAssociatedTokenAddress)(opts.assetAMint, treasuryPda, true, tokenProgramA);
190
+ // Creator LP ATA
191
+ const creatorLpAccount = await (0, spl_token_1.getAssociatedTokenAddress)(lpMint, opts.creator, false, spl_token_1.TOKEN_PROGRAM_ID);
192
+ // Pool's ATA for the NFT
193
+ const poolNftAccount = await (0, spl_token_1.getAssociatedTokenAddress)(opts.nftMint, poolPda, true, spl_token_1.TOKEN_PROGRAM_ID);
194
+ return opts.program.methods
195
+ .createTokenNftPool(opts.initialTokenAmount, opts.basePrice, opts.curveDelta, opts.poolFeeBps, opts.isLocked, opts.poolType)
196
+ .accounts({
197
+ creator: opts.creator,
198
+ config: configPda,
199
+ treasury: treasuryPda,
200
+ assetAMint: opts.assetAMint,
201
+ collectionMint: opts.collectionMint,
202
+ pool: poolPda,
203
+ vaultA: await (0, spl_token_1.getAssociatedTokenAddress)(opts.assetAMint, poolPda, true, tokenProgramA),
204
+ lpMint,
205
+ creatorTokenA: opts.creatorTokenA,
206
+ creatorLpAccount,
207
+ treasuryTokenA,
208
+ creatorPosition,
209
+ nftMint: opts.nftMint,
210
+ nftMetadata: opts.nftMetadata,
211
+ creatorNftAccount: opts.creatorNftAccount,
212
+ poolNftAccount,
213
+ nftEscrow,
214
+ creatorFeeVault,
215
+ tokenProgramA,
216
+ tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
217
+ lpTokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
218
+ associatedTokenProgram: spl_token_1.ASSOCIATED_TOKEN_PROGRAM_ID,
219
+ systemProgram: web3_js_1.SystemProgram.programId,
220
+ })
221
+ .preInstructions([
222
+ web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({
223
+ units: opts.computeUnits ?? 400000,
224
+ }),
225
+ ]);
226
+ }
227
+ //# sourceMappingURL=admin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/instructions/admin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * @vault-program/sdk — Liquidity instruction builders.
3
+ *
4
+ * Builds transactions for:
5
+ * - add_liquidity_token_token
6
+ * - remove_liquidity_token_token
7
+ * - claim_fees
8
+ */
9
+ import { Program, BN } from "@coral-xyz/anchor";
10
+ import { PublicKey } from "@solana/web3.js";
11
+ import { Pool } from "../types";
12
+ export interface AddLiquidityOpts {
13
+ program: Program<any>;
14
+ user: PublicKey;
15
+ pool: Pool;
16
+ amountA: BN;
17
+ amountB: BN;
18
+ /** User's token-A ATA. */
19
+ userTokenA: PublicKey;
20
+ /** User's token-B ATA. */
21
+ userTokenB: PublicKey;
22
+ /** User's LP-token ATA. */
23
+ userLpAccount: PublicKey;
24
+ programId?: PublicKey;
25
+ computeUnits?: number;
26
+ }
27
+ export declare function buildAddLiquidity(opts: AddLiquidityOpts): Promise<any>;
28
+ export interface RemoveLiquidityOpts {
29
+ program: Program<any>;
30
+ user: PublicKey;
31
+ pool: Pool;
32
+ lpTokensToBurn: BN;
33
+ userTokenA: PublicKey;
34
+ userTokenB: PublicKey;
35
+ userLpAccount: PublicKey;
36
+ programId?: PublicKey;
37
+ computeUnits?: number;
38
+ }
39
+ export declare function buildRemoveLiquidity(opts: RemoveLiquidityOpts): Promise<any>;
40
+ export interface ClaimFeesOpts {
41
+ program: Program<any>;
42
+ user: PublicKey;
43
+ pool: Pool;
44
+ userTokenA: PublicKey;
45
+ userTokenB: PublicKey;
46
+ programId?: PublicKey;
47
+ computeUnits?: number;
48
+ }
49
+ export declare function buildClaimFees(opts: ClaimFeesOpts): Promise<any>;
50
+ //# sourceMappingURL=liquidity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"liquidity.d.ts","sourceRoot":"","sources":["../../src/instructions/liquidity.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,SAAS,EAGV,MAAM,iBAAiB,CAAC;AAKzB,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAqBhC,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACtB,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,EAAE,CAAC;IACZ,OAAO,EAAE,EAAE,CAAC;IACZ,0BAA0B;IAC1B,UAAU,EAAE,SAAS,CAAC;IACtB,0BAA0B;IAC1B,UAAU,EAAE,SAAS,CAAC;IACtB,2BAA2B;IAC3B,aAAa,EAAE,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,CAmC5E;AAID,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACtB,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,IAAI,CAAC;IACX,cAAc,EAAE,EAAE,CAAC;IACnB,UAAU,EAAE,SAAS,CAAC;IACtB,UAAU,EAAE,SAAS,CAAC;IACtB,aAAa,EAAE,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,CAkClF;AAID,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACtB,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,IAAI,CAAC;IACX,UAAU,EAAE,SAAS,CAAC;IACtB,UAAU,EAAE,SAAS,CAAC;IACtB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CA2BtE"}
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ /**
3
+ * @vault-program/sdk — Liquidity instruction builders.
4
+ *
5
+ * Builds transactions for:
6
+ * - add_liquidity_token_token
7
+ * - remove_liquidity_token_token
8
+ * - claim_fees
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.buildAddLiquidity = buildAddLiquidity;
12
+ exports.buildRemoveLiquidity = buildRemoveLiquidity;
13
+ exports.buildClaimFees = buildClaimFees;
14
+ const web3_js_1 = require("@solana/web3.js");
15
+ const spl_token_1 = require("@solana/spl-token");
16
+ const constants_1 = require("../constants");
17
+ const pda_1 = require("../pda");
18
+ // ─── Helpers ─────────────────────────────────────────────────
19
+ function tokenProgramForMint(pool, isA) {
20
+ const is2022 = isA ? pool.assetAIsToken2022 : pool.assetBIsToken2022;
21
+ return is2022
22
+ ? new web3_js_1.PublicKey("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb")
23
+ : spl_token_1.TOKEN_PROGRAM_ID;
24
+ }
25
+ async function buildAddLiquidity(opts) {
26
+ const pid = opts.programId ?? constants_1.PROGRAM_ID;
27
+ const [configPda] = (0, pda_1.deriveConfigPda)(pid);
28
+ const [lpMint] = (0, pda_1.deriveLpMintPda)(opts.pool.address, pid);
29
+ const [position] = (0, pda_1.derivePositionPda)(opts.pool.address, opts.user, pid);
30
+ const tokenProgramA = tokenProgramForMint(opts.pool, true);
31
+ const tokenProgramB = tokenProgramForMint(opts.pool, false);
32
+ return opts.program.methods
33
+ .addLiquidityTokenToken(opts.amountA, opts.amountB)
34
+ .accounts({
35
+ user: opts.user,
36
+ config: configPda,
37
+ pool: opts.pool.address,
38
+ assetAMint: opts.pool.assetAMint,
39
+ assetBMint: opts.pool.assetBMint,
40
+ vaultA: opts.pool.vaultA,
41
+ vaultB: opts.pool.vaultB,
42
+ lpMint: lpMint,
43
+ userTokenA: opts.userTokenA,
44
+ userTokenB: opts.userTokenB,
45
+ userLpAccount: opts.userLpAccount,
46
+ position,
47
+ tokenProgramA,
48
+ tokenProgramB,
49
+ lpTokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
50
+ associatedTokenProgram: spl_token_1.ASSOCIATED_TOKEN_PROGRAM_ID,
51
+ systemProgram: web3_js_1.SystemProgram.programId,
52
+ })
53
+ .preInstructions([
54
+ web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({
55
+ units: opts.computeUnits ?? 400000,
56
+ }),
57
+ ]);
58
+ }
59
+ async function buildRemoveLiquidity(opts) {
60
+ const pid = opts.programId ?? constants_1.PROGRAM_ID;
61
+ const [configPda] = (0, pda_1.deriveConfigPda)(pid);
62
+ const [lpMint] = (0, pda_1.deriveLpMintPda)(opts.pool.address, pid);
63
+ const [position] = (0, pda_1.derivePositionPda)(opts.pool.address, opts.user, pid);
64
+ const tokenProgramA = tokenProgramForMint(opts.pool, true);
65
+ const tokenProgramB = tokenProgramForMint(opts.pool, false);
66
+ return opts.program.methods
67
+ .removeLiquidityTokenToken(opts.lpTokensToBurn)
68
+ .accounts({
69
+ user: opts.user,
70
+ config: configPda,
71
+ pool: opts.pool.address,
72
+ assetAMint: opts.pool.assetAMint,
73
+ assetBMint: opts.pool.assetBMint,
74
+ vaultA: opts.pool.vaultA,
75
+ vaultB: opts.pool.vaultB,
76
+ lpMint: lpMint,
77
+ userTokenA: opts.userTokenA,
78
+ userTokenB: opts.userTokenB,
79
+ userLpAccount: opts.userLpAccount,
80
+ position,
81
+ tokenProgramA,
82
+ tokenProgramB,
83
+ lpTokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
84
+ systemProgram: web3_js_1.SystemProgram.programId,
85
+ })
86
+ .preInstructions([
87
+ web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({
88
+ units: opts.computeUnits ?? 400000,
89
+ }),
90
+ ]);
91
+ }
92
+ async function buildClaimFees(opts) {
93
+ const pid = opts.programId ?? constants_1.PROGRAM_ID;
94
+ const [position] = (0, pda_1.derivePositionPda)(opts.pool.address, opts.user, pid);
95
+ const tokenProgramA = tokenProgramForMint(opts.pool, true);
96
+ const tokenProgramB = tokenProgramForMint(opts.pool, false);
97
+ return opts.program.methods
98
+ .claimFees()
99
+ .accounts({
100
+ user: opts.user,
101
+ pool: opts.pool.address,
102
+ assetAMint: opts.pool.assetAMint,
103
+ assetBMint: opts.pool.assetBMint,
104
+ vaultA: opts.pool.vaultA,
105
+ vaultB: opts.pool.vaultB,
106
+ userTokenA: opts.userTokenA,
107
+ userTokenB: opts.userTokenB,
108
+ position,
109
+ tokenProgramA,
110
+ tokenProgramB,
111
+ })
112
+ .preInstructions([
113
+ web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({
114
+ units: opts.computeUnits ?? 200000,
115
+ }),
116
+ ]);
117
+ }
118
+ //# sourceMappingURL=liquidity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"liquidity.js","sourceRoot":"","sources":["../../src/instructions/liquidity.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAiDH,8CAmCC;AAgBD,oDAkCC;AAcD,wCA2BC;AA5KD,6CAIyB;AACzB,iDAG2B;AAE3B,4CAEsB;AACtB,gCAIgB;AAEhB,gEAAgE;AAEhE,SAAS,mBAAmB,CAAC,IAAU,EAAE,GAAY;IACnD,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC;IACrE,OAAO,MAAM;QACX,CAAC,CAAC,IAAI,mBAAS,CAAC,6CAA6C,CAAC;QAC9D,CAAC,CAAC,4BAAgB,CAAC;AACvB,CAAC;AAoBM,KAAK,UAAU,iBAAiB,CAAC,IAAsB;IAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,IAAI,sBAAU,CAAC;IACzC,MAAM,CAAC,SAAS,CAAC,GAAG,IAAA,qBAAe,EAAC,GAAG,CAAC,CAAC;IACzC,MAAM,CAAC,MAAM,CAAC,GAAG,IAAA,qBAAe,EAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACzD,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,uBAAiB,EAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAExE,MAAM,aAAa,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3D,MAAM,aAAa,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAE5D,OAAQ,IAAI,CAAC,OAAO,CAAC,OAAe;SACjC,sBAAsB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;SAClD,QAAQ,CAAC;QACR,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;QACvB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU;QAChC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU;QAChC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;QACxB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;QACxB,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,QAAQ;QACR,aAAa;QACb,aAAa;QACb,cAAc,EAAE,4BAAgB;QAChC,sBAAsB,EAAE,uCAA2B;QACnD,aAAa,EAAE,uBAAa,CAAC,SAAS;KACvC,CAAC;SACD,eAAe,CAAC;QACf,8BAAoB,CAAC,mBAAmB,CAAC;YACvC,KAAK,EAAE,IAAI,CAAC,YAAY,IAAI,MAAO;SACpC,CAAC;KACH,CAAC,CAAC;AACP,CAAC;AAgBM,KAAK,UAAU,oBAAoB,CAAC,IAAyB;IAClE,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,IAAI,sBAAU,CAAC;IACzC,MAAM,CAAC,SAAS,CAAC,GAAG,IAAA,qBAAe,EAAC,GAAG,CAAC,CAAC;IACzC,MAAM,CAAC,MAAM,CAAC,GAAG,IAAA,qBAAe,EAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACzD,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,uBAAiB,EAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAExE,MAAM,aAAa,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3D,MAAM,aAAa,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAE5D,OAAQ,IAAI,CAAC,OAAO,CAAC,OAAe;SACjC,yBAAyB,CAAC,IAAI,CAAC,cAAc,CAAC;SAC9C,QAAQ,CAAC;QACR,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;QACvB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU;QAChC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU;QAChC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;QACxB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;QACxB,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,QAAQ;QACR,aAAa;QACb,aAAa;QACb,cAAc,EAAE,4BAAgB;QAChC,aAAa,EAAE,uBAAa,CAAC,SAAS;KACvC,CAAC;SACD,eAAe,CAAC;QACf,8BAAoB,CAAC,mBAAmB,CAAC;YACvC,KAAK,EAAE,IAAI,CAAC,YAAY,IAAI,MAAO;SACpC,CAAC;KACH,CAAC,CAAC;AACP,CAAC;AAcM,KAAK,UAAU,cAAc,CAAC,IAAmB;IACtD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,IAAI,sBAAU,CAAC;IACzC,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,uBAAiB,EAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAExE,MAAM,aAAa,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3D,MAAM,aAAa,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAE5D,OAAQ,IAAI,CAAC,OAAO,CAAC,OAAe;SACjC,SAAS,EAAE;SACX,QAAQ,CAAC;QACR,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;QACvB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU;QAChC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU;QAChC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;QACxB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;QACxB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,QAAQ;QACR,aAAa;QACb,aAAa;KACd,CAAC;SACD,eAAe,CAAC;QACf,8BAAoB,CAAC,mBAAmB,CAAC;YACvC,KAAK,EAAE,IAAI,CAAC,YAAY,IAAI,MAAO;SACpC,CAAC;KACH,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * @vault-program/sdk — NFT pool instruction builders.
3
+ *
4
+ * Builds transactions for:
5
+ * - swap_token_for_nft
6
+ * - swap_nft_for_token
7
+ * - add_liquidity_token_nft
8
+ * - remove_liquidity_token_nft
9
+ */
10
+ import { Program, BN } from "@coral-xyz/anchor";
11
+ import { PublicKey } from "@solana/web3.js";
12
+ import { Pool } from "../types";
13
+ export interface SwapTokenForNftOpts {
14
+ program: Program<any>;
15
+ user: PublicKey;
16
+ pool: Pool;
17
+ /** Max cost the user is willing to pay (in token-A). */
18
+ maxCost: BN;
19
+ /** User's token-A ATA. */
20
+ userTokenA: PublicKey;
21
+ /** The specific NFT mint to buy. */
22
+ nftMint: PublicKey;
23
+ /** NFT metadata PDA (Metaplex). */
24
+ nftMetadata: PublicKey;
25
+ /** Pool's NFT ATA (source). */
26
+ poolNftAccount: PublicKey;
27
+ /** User's NFT ATA (destination). */
28
+ userNftAccount: PublicKey;
29
+ /** Treasury fee account for token-A. */
30
+ treasuryFeeAccount: PublicKey;
31
+ programId?: PublicKey;
32
+ computeUnits?: number;
33
+ }
34
+ export declare function buildSwapTokenForNft(opts: SwapTokenForNftOpts): Promise<any>;
35
+ export interface SwapNftForTokenOpts {
36
+ program: Program<any>;
37
+ user: PublicKey;
38
+ pool: Pool;
39
+ /** Min payout the user will accept (in token-A). */
40
+ minPayout: BN;
41
+ userTokenA: PublicKey;
42
+ nftMint: PublicKey;
43
+ nftMetadata: PublicKey;
44
+ userNftAccount: PublicKey;
45
+ poolNftAccount: PublicKey;
46
+ treasuryFeeAccount: PublicKey;
47
+ programId?: PublicKey;
48
+ computeUnits?: number;
49
+ }
50
+ export declare function buildSwapNftForToken(opts: SwapNftForTokenOpts): Promise<any>;
51
+ export interface AddLiquidityNftOpts {
52
+ program: Program<any>;
53
+ user: PublicKey;
54
+ pool: Pool;
55
+ tokenAmount: BN;
56
+ userTokenA: PublicKey;
57
+ userLpAccount: PublicKey;
58
+ nftMint: PublicKey;
59
+ nftMetadata: PublicKey;
60
+ userNftAccount: PublicKey;
61
+ poolNftAccount: PublicKey;
62
+ programId?: PublicKey;
63
+ computeUnits?: number;
64
+ }
65
+ export declare function buildAddLiquidityNft(opts: AddLiquidityNftOpts): Promise<any>;
66
+ export interface RemoveLiquidityNftOpts {
67
+ program: Program<any>;
68
+ user: PublicKey;
69
+ pool: Pool;
70
+ lpTokensToBurn: BN;
71
+ userTokenA: PublicKey;
72
+ userLpAccount: PublicKey;
73
+ nftMint: PublicKey;
74
+ poolNftAccount: PublicKey;
75
+ userNftAccount: PublicKey;
76
+ programId?: PublicKey;
77
+ computeUnits?: number;
78
+ }
79
+ export declare function buildRemoveLiquidityNft(opts: RemoveLiquidityNftOpts): Promise<any>;
80
+ //# sourceMappingURL=nft.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nft.d.ts","sourceRoot":"","sources":["../../src/instructions/nft.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,SAAS,EAGV,MAAM,iBAAiB,CAAC;AAKzB,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAqBhC,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACtB,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,IAAI,CAAC;IACX,wDAAwD;IACxD,OAAO,EAAE,EAAE,CAAC;IACZ,0BAA0B;IAC1B,UAAU,EAAE,SAAS,CAAC;IACtB,oCAAoC;IACpC,OAAO,EAAE,SAAS,CAAC;IACnB,mCAAmC;IACnC,WAAW,EAAE,SAAS,CAAC;IACvB,+BAA+B;IAC/B,cAAc,EAAE,SAAS,CAAC;IAC1B,oCAAoC;IACpC,cAAc,EAAE,SAAS,CAAC;IAC1B,wCAAwC;IACxC,kBAAkB,EAAE,SAAS,CAAC;IAC9B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,CAiClF;AAID,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACtB,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,IAAI,CAAC;IACX,oDAAoD;IACpD,SAAS,EAAE,EAAE,CAAC;IACd,UAAU,EAAE,SAAS,CAAC;IACtB,OAAO,EAAE,SAAS,CAAC;IACnB,WAAW,EAAE,SAAS,CAAC;IACvB,cAAc,EAAE,SAAS,CAAC;IAC1B,cAAc,EAAE,SAAS,CAAC;IAC1B,kBAAkB,EAAE,SAAS,CAAC;IAC9B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,CAiClF;AAID,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACtB,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,IAAI,CAAC;IACX,WAAW,EAAE,EAAE,CAAC;IAChB,UAAU,EAAE,SAAS,CAAC;IACtB,aAAa,EAAE,SAAS,CAAC;IACzB,OAAO,EAAE,SAAS,CAAC;IACnB,WAAW,EAAE,SAAS,CAAC;IACvB,cAAc,EAAE,SAAS,CAAC;IAC1B,cAAc,EAAE,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,CAkClF;AAID,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACtB,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,IAAI,CAAC;IACX,cAAc,EAAE,EAAE,CAAC;IACnB,UAAU,EAAE,SAAS,CAAC;IACtB,aAAa,EAAE,SAAS,CAAC;IACzB,OAAO,EAAE,SAAS,CAAC;IACnB,cAAc,EAAE,SAAS,CAAC;IAC1B,cAAc,EAAE,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,GAAG,CAAC,CAiCxF"}