@liquid-af/sdk 0.8.2 → 0.9.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.
- package/dist/helpers/ata.d.ts +28 -0
- package/dist/helpers/ata.d.ts.map +1 -0
- package/dist/helpers/ata.js +29 -0
- package/dist/helpers/ata.js.map +1 -0
- package/dist/helpers/index.d.ts +1 -0
- package/dist/helpers/index.d.ts.map +1 -1
- package/dist/helpers/index.js +1 -0
- package/dist/helpers/index.js.map +1 -1
- package/dist/idl/liquid.d.ts +27 -663
- package/dist/idl/liquid.d.ts.map +1 -1
- package/dist/idl/liquid.json +37 -673
- package/dist/idl/liquid_fees.d.ts +0 -86
- package/dist/idl/liquid_fees.d.ts.map +1 -1
- package/dist/idl/liquid_fees.json +1 -87
- package/dist/instructions/liquid-fees.d.ts +1 -0
- package/dist/instructions/liquid-fees.d.ts.map +1 -1
- package/dist/instructions/liquid-fees.js +4 -1
- package/dist/instructions/liquid-fees.js.map +1 -1
- package/dist/instructions/liquid.d.ts +12 -0
- package/dist/instructions/liquid.d.ts.map +1 -1
- package/dist/instructions/liquid.js +45 -9
- package/dist/instructions/liquid.js.map +1 -1
- package/package.json +1 -1
- package/src/helpers/ata.ts +44 -0
- package/src/helpers/index.ts +1 -0
- package/src/idl/liquid.json +37 -673
- package/src/idl/liquid.ts +37 -673
- package/src/idl/liquid_fees.json +1 -87
- package/src/idl/liquid_fees.ts +1 -87
- package/src/instructions/liquid-fees.ts +8 -1
- package/src/instructions/liquid.ts +81 -0
package/src/idl/liquid_fees.json
CHANGED
|
@@ -309,93 +309,7 @@
|
|
|
309
309
|
"docs": [
|
|
310
310
|
"The recipient's own token account to receive claimed fees."
|
|
311
311
|
],
|
|
312
|
-
"writable": true
|
|
313
|
-
"pda": {
|
|
314
|
-
"seeds": [
|
|
315
|
-
{
|
|
316
|
-
"kind": "account",
|
|
317
|
-
"path": "recipient"
|
|
318
|
-
},
|
|
319
|
-
{
|
|
320
|
-
"kind": "const",
|
|
321
|
-
"value": [
|
|
322
|
-
6,
|
|
323
|
-
221,
|
|
324
|
-
246,
|
|
325
|
-
225,
|
|
326
|
-
215,
|
|
327
|
-
101,
|
|
328
|
-
161,
|
|
329
|
-
147,
|
|
330
|
-
217,
|
|
331
|
-
203,
|
|
332
|
-
225,
|
|
333
|
-
70,
|
|
334
|
-
206,
|
|
335
|
-
235,
|
|
336
|
-
121,
|
|
337
|
-
172,
|
|
338
|
-
28,
|
|
339
|
-
180,
|
|
340
|
-
133,
|
|
341
|
-
237,
|
|
342
|
-
95,
|
|
343
|
-
91,
|
|
344
|
-
55,
|
|
345
|
-
145,
|
|
346
|
-
58,
|
|
347
|
-
140,
|
|
348
|
-
245,
|
|
349
|
-
133,
|
|
350
|
-
126,
|
|
351
|
-
255,
|
|
352
|
-
0,
|
|
353
|
-
169
|
|
354
|
-
]
|
|
355
|
-
},
|
|
356
|
-
{
|
|
357
|
-
"kind": "account",
|
|
358
|
-
"path": "quote_mint"
|
|
359
|
-
}
|
|
360
|
-
],
|
|
361
|
-
"program": {
|
|
362
|
-
"kind": "const",
|
|
363
|
-
"value": [
|
|
364
|
-
140,
|
|
365
|
-
151,
|
|
366
|
-
37,
|
|
367
|
-
143,
|
|
368
|
-
78,
|
|
369
|
-
36,
|
|
370
|
-
137,
|
|
371
|
-
241,
|
|
372
|
-
187,
|
|
373
|
-
61,
|
|
374
|
-
16,
|
|
375
|
-
41,
|
|
376
|
-
20,
|
|
377
|
-
142,
|
|
378
|
-
13,
|
|
379
|
-
131,
|
|
380
|
-
11,
|
|
381
|
-
90,
|
|
382
|
-
19,
|
|
383
|
-
153,
|
|
384
|
-
218,
|
|
385
|
-
255,
|
|
386
|
-
16,
|
|
387
|
-
132,
|
|
388
|
-
4,
|
|
389
|
-
142,
|
|
390
|
-
123,
|
|
391
|
-
216,
|
|
392
|
-
219,
|
|
393
|
-
233,
|
|
394
|
-
248,
|
|
395
|
-
89
|
|
396
|
-
]
|
|
397
|
-
}
|
|
398
|
-
}
|
|
312
|
+
"writable": true
|
|
399
313
|
},
|
|
400
314
|
{
|
|
401
315
|
"name": "fee_config",
|
package/src/idl/liquid_fees.ts
CHANGED
|
@@ -315,93 +315,7 @@ export type LiquidFees = {
|
|
|
315
315
|
"docs": [
|
|
316
316
|
"The recipient's own token account to receive claimed fees."
|
|
317
317
|
],
|
|
318
|
-
"writable": true
|
|
319
|
-
"pda": {
|
|
320
|
-
"seeds": [
|
|
321
|
-
{
|
|
322
|
-
"kind": "account",
|
|
323
|
-
"path": "recipient"
|
|
324
|
-
},
|
|
325
|
-
{
|
|
326
|
-
"kind": "const",
|
|
327
|
-
"value": [
|
|
328
|
-
6,
|
|
329
|
-
221,
|
|
330
|
-
246,
|
|
331
|
-
225,
|
|
332
|
-
215,
|
|
333
|
-
101,
|
|
334
|
-
161,
|
|
335
|
-
147,
|
|
336
|
-
217,
|
|
337
|
-
203,
|
|
338
|
-
225,
|
|
339
|
-
70,
|
|
340
|
-
206,
|
|
341
|
-
235,
|
|
342
|
-
121,
|
|
343
|
-
172,
|
|
344
|
-
28,
|
|
345
|
-
180,
|
|
346
|
-
133,
|
|
347
|
-
237,
|
|
348
|
-
95,
|
|
349
|
-
91,
|
|
350
|
-
55,
|
|
351
|
-
145,
|
|
352
|
-
58,
|
|
353
|
-
140,
|
|
354
|
-
245,
|
|
355
|
-
133,
|
|
356
|
-
126,
|
|
357
|
-
255,
|
|
358
|
-
0,
|
|
359
|
-
169
|
|
360
|
-
]
|
|
361
|
-
},
|
|
362
|
-
{
|
|
363
|
-
"kind": "account",
|
|
364
|
-
"path": "quoteMint"
|
|
365
|
-
}
|
|
366
|
-
],
|
|
367
|
-
"program": {
|
|
368
|
-
"kind": "const",
|
|
369
|
-
"value": [
|
|
370
|
-
140,
|
|
371
|
-
151,
|
|
372
|
-
37,
|
|
373
|
-
143,
|
|
374
|
-
78,
|
|
375
|
-
36,
|
|
376
|
-
137,
|
|
377
|
-
241,
|
|
378
|
-
187,
|
|
379
|
-
61,
|
|
380
|
-
16,
|
|
381
|
-
41,
|
|
382
|
-
20,
|
|
383
|
-
142,
|
|
384
|
-
13,
|
|
385
|
-
131,
|
|
386
|
-
11,
|
|
387
|
-
90,
|
|
388
|
-
19,
|
|
389
|
-
153,
|
|
390
|
-
218,
|
|
391
|
-
255,
|
|
392
|
-
16,
|
|
393
|
-
132,
|
|
394
|
-
4,
|
|
395
|
-
142,
|
|
396
|
-
123,
|
|
397
|
-
216,
|
|
398
|
-
219,
|
|
399
|
-
233,
|
|
400
|
-
248,
|
|
401
|
-
89
|
|
402
|
-
]
|
|
403
|
-
}
|
|
404
|
-
}
|
|
318
|
+
"writable": true
|
|
405
319
|
},
|
|
406
320
|
{
|
|
407
321
|
"name": "feeConfig",
|
|
@@ -245,6 +245,7 @@ export interface BuildClaimTokenFeesParams {
|
|
|
245
245
|
recipient: PublicKey;
|
|
246
246
|
tokenMint: PublicKey;
|
|
247
247
|
quoteMint: PublicKey;
|
|
248
|
+
recipientTokenAccount?: PublicKey;
|
|
248
249
|
config: LiquidConfig;
|
|
249
250
|
}
|
|
250
251
|
|
|
@@ -259,7 +260,8 @@ export interface BuildClaimTokenFeesParams {
|
|
|
259
260
|
export function buildClaimTokenFees(
|
|
260
261
|
params: BuildClaimTokenFeesParams,
|
|
261
262
|
): Promise<TransactionInstruction> {
|
|
262
|
-
const { recipient, tokenMint, quoteMint, config } =
|
|
263
|
+
const { recipient, tokenMint, quoteMint, recipientTokenAccount, config } =
|
|
264
|
+
params;
|
|
263
265
|
const program = getCachedFeesProgram(config);
|
|
264
266
|
const [feeConfig] = getFeeConfigPDA(
|
|
265
267
|
tokenMint,
|
|
@@ -267,12 +269,17 @@ export function buildClaimTokenFees(
|
|
|
267
269
|
config.liquidFeesProgramId,
|
|
268
270
|
);
|
|
269
271
|
|
|
272
|
+
const resolvedRecipientTokenAccount =
|
|
273
|
+
recipientTokenAccount ??
|
|
274
|
+
getAssociatedTokenAddressSync(quoteMint, recipient, false);
|
|
275
|
+
|
|
270
276
|
return program.methods
|
|
271
277
|
.claimTokenFees()
|
|
272
278
|
.accounts({
|
|
273
279
|
recipient,
|
|
274
280
|
feeConfig,
|
|
275
281
|
quoteMint,
|
|
282
|
+
recipientTokenAccount: resolvedRecipientTokenAccount,
|
|
276
283
|
})
|
|
277
284
|
.instruction();
|
|
278
285
|
}
|
|
@@ -6,6 +6,7 @@ import type {
|
|
|
6
6
|
import {
|
|
7
7
|
getAssociatedTokenAddressSync,
|
|
8
8
|
TOKEN_PROGRAM_ID,
|
|
9
|
+
TOKEN_2022_PROGRAM_ID,
|
|
9
10
|
} from "@solana/spl-token";
|
|
10
11
|
import type BN from "bn.js";
|
|
11
12
|
import { WSOL_MINT, type LiquidConfig } from "../config.js";
|
|
@@ -118,6 +119,7 @@ export interface BuildBuyExactInNativeParams {
|
|
|
118
119
|
feeRecipient: PublicKey;
|
|
119
120
|
creatorReferralVault?: PublicKey | null;
|
|
120
121
|
traderReferralVault?: PublicKey | null;
|
|
122
|
+
userTokenAccount?: PublicKey;
|
|
121
123
|
config: LiquidConfig;
|
|
122
124
|
}
|
|
123
125
|
|
|
@@ -141,6 +143,7 @@ export function buildBuyExactInNative(
|
|
|
141
143
|
feeRecipient,
|
|
142
144
|
creatorReferralVault,
|
|
143
145
|
traderReferralVault,
|
|
146
|
+
userTokenAccount,
|
|
144
147
|
config,
|
|
145
148
|
} = params;
|
|
146
149
|
|
|
@@ -152,6 +155,10 @@ export function buildBuyExactInNative(
|
|
|
152
155
|
config.liquidStateProgramId,
|
|
153
156
|
);
|
|
154
157
|
|
|
158
|
+
const resolvedUserTokenAccount =
|
|
159
|
+
userTokenAccount ??
|
|
160
|
+
getAssociatedTokenAddressSync(mint, user, false, TOKEN_2022_PROGRAM_ID);
|
|
161
|
+
|
|
155
162
|
return program.methods
|
|
156
163
|
.buyExactInNative(amountIn, minAmountOut)
|
|
157
164
|
.accountsPartial({
|
|
@@ -160,6 +167,7 @@ export function buildBuyExactInNative(
|
|
|
160
167
|
mint,
|
|
161
168
|
pythPriceFeed,
|
|
162
169
|
creatorUserProperties,
|
|
170
|
+
userTokenAccount: resolvedUserTokenAccount,
|
|
163
171
|
creatorReferralVault: creatorReferralVault ?? null,
|
|
164
172
|
traderReferralVault: traderReferralVault ?? null,
|
|
165
173
|
liquidState: {
|
|
@@ -204,6 +212,7 @@ export interface BuildSellExactInNativeParams {
|
|
|
204
212
|
feeRecipient: PublicKey;
|
|
205
213
|
creatorReferralVault?: PublicKey | null;
|
|
206
214
|
traderReferralVault?: PublicKey | null;
|
|
215
|
+
userTokenAccount?: PublicKey;
|
|
207
216
|
config: LiquidConfig;
|
|
208
217
|
}
|
|
209
218
|
|
|
@@ -227,6 +236,7 @@ export function buildSellExactInNative(
|
|
|
227
236
|
feeRecipient,
|
|
228
237
|
creatorReferralVault,
|
|
229
238
|
traderReferralVault,
|
|
239
|
+
userTokenAccount,
|
|
230
240
|
config,
|
|
231
241
|
} = params;
|
|
232
242
|
|
|
@@ -238,6 +248,10 @@ export function buildSellExactInNative(
|
|
|
238
248
|
config.liquidStateProgramId,
|
|
239
249
|
);
|
|
240
250
|
|
|
251
|
+
const resolvedUserTokenAccount =
|
|
252
|
+
userTokenAccount ??
|
|
253
|
+
getAssociatedTokenAddressSync(mint, user, false, TOKEN_2022_PROGRAM_ID);
|
|
254
|
+
|
|
241
255
|
return program.methods
|
|
242
256
|
.sellExactInNative(amountIn, minAmountOut)
|
|
243
257
|
.accountsPartial({
|
|
@@ -246,6 +260,7 @@ export function buildSellExactInNative(
|
|
|
246
260
|
mint,
|
|
247
261
|
pythPriceFeed,
|
|
248
262
|
creatorUserProperties,
|
|
263
|
+
userTokenAccount: resolvedUserTokenAccount,
|
|
249
264
|
creatorReferralVault: creatorReferralVault ?? null,
|
|
250
265
|
traderReferralVault: traderReferralVault ?? null,
|
|
251
266
|
liquidState: {
|
|
@@ -290,6 +305,7 @@ export interface BuildBuyExactOutNativeParams {
|
|
|
290
305
|
feeRecipient: PublicKey;
|
|
291
306
|
creatorReferralVault?: PublicKey | null;
|
|
292
307
|
traderReferralVault?: PublicKey | null;
|
|
308
|
+
userTokenAccount?: PublicKey;
|
|
293
309
|
config: LiquidConfig;
|
|
294
310
|
}
|
|
295
311
|
|
|
@@ -313,6 +329,7 @@ export function buildBuyExactOutNative(
|
|
|
313
329
|
feeRecipient,
|
|
314
330
|
creatorReferralVault,
|
|
315
331
|
traderReferralVault,
|
|
332
|
+
userTokenAccount,
|
|
316
333
|
config,
|
|
317
334
|
} = params;
|
|
318
335
|
|
|
@@ -323,6 +340,10 @@ export function buildBuyExactOutNative(
|
|
|
323
340
|
config.liquidStateProgramId,
|
|
324
341
|
);
|
|
325
342
|
|
|
343
|
+
const resolvedUserTokenAccount =
|
|
344
|
+
userTokenAccount ??
|
|
345
|
+
getAssociatedTokenAddressSync(mint, user, false, TOKEN_2022_PROGRAM_ID);
|
|
346
|
+
|
|
326
347
|
return program.methods
|
|
327
348
|
.buyExactOutNative(exactAmountOut, maxAmountIn)
|
|
328
349
|
.accountsPartial({
|
|
@@ -331,6 +352,7 @@ export function buildBuyExactOutNative(
|
|
|
331
352
|
mint,
|
|
332
353
|
pythPriceFeed,
|
|
333
354
|
creatorUserProperties,
|
|
355
|
+
userTokenAccount: resolvedUserTokenAccount,
|
|
334
356
|
creatorReferralVault: creatorReferralVault ?? null,
|
|
335
357
|
traderReferralVault: traderReferralVault ?? null,
|
|
336
358
|
liquidState: {
|
|
@@ -375,6 +397,7 @@ export interface BuildSellExactOutNativeParams {
|
|
|
375
397
|
feeRecipient: PublicKey;
|
|
376
398
|
creatorReferralVault?: PublicKey | null;
|
|
377
399
|
traderReferralVault?: PublicKey | null;
|
|
400
|
+
userTokenAccount?: PublicKey;
|
|
378
401
|
config: LiquidConfig;
|
|
379
402
|
}
|
|
380
403
|
|
|
@@ -398,6 +421,7 @@ export function buildSellExactOutNative(
|
|
|
398
421
|
feeRecipient,
|
|
399
422
|
creatorReferralVault,
|
|
400
423
|
traderReferralVault,
|
|
424
|
+
userTokenAccount,
|
|
401
425
|
config,
|
|
402
426
|
} = params;
|
|
403
427
|
|
|
@@ -408,6 +432,10 @@ export function buildSellExactOutNative(
|
|
|
408
432
|
config.liquidStateProgramId,
|
|
409
433
|
);
|
|
410
434
|
|
|
435
|
+
const resolvedUserTokenAccount =
|
|
436
|
+
userTokenAccount ??
|
|
437
|
+
getAssociatedTokenAddressSync(mint, user, false, TOKEN_2022_PROGRAM_ID);
|
|
438
|
+
|
|
411
439
|
return program.methods
|
|
412
440
|
.sellExactOutNative(exactAmountOut, maxAmountIn)
|
|
413
441
|
.accountsPartial({
|
|
@@ -416,6 +444,7 @@ export function buildSellExactOutNative(
|
|
|
416
444
|
mint,
|
|
417
445
|
pythPriceFeed,
|
|
418
446
|
creatorUserProperties,
|
|
447
|
+
userTokenAccount: resolvedUserTokenAccount,
|
|
419
448
|
creatorReferralVault: creatorReferralVault ?? null,
|
|
420
449
|
traderReferralVault: traderReferralVault ?? null,
|
|
421
450
|
liquidState: {
|
|
@@ -732,6 +761,8 @@ export interface BuildBuyExactInStableParams {
|
|
|
732
761
|
feeRecipient: PublicKey;
|
|
733
762
|
creatorReferralVault?: PublicKey | null;
|
|
734
763
|
traderReferralVault?: PublicKey | null;
|
|
764
|
+
userTokenAccount?: PublicKey;
|
|
765
|
+
userQuoteAccount?: PublicKey;
|
|
735
766
|
config: LiquidConfig;
|
|
736
767
|
}
|
|
737
768
|
|
|
@@ -755,6 +786,8 @@ export function buildBuyExactInStable(
|
|
|
755
786
|
feeRecipient,
|
|
756
787
|
creatorReferralVault,
|
|
757
788
|
traderReferralVault,
|
|
789
|
+
userTokenAccount,
|
|
790
|
+
userQuoteAccount,
|
|
758
791
|
config,
|
|
759
792
|
} = params;
|
|
760
793
|
|
|
@@ -783,6 +816,13 @@ export function buildBuyExactInStable(
|
|
|
783
816
|
config.liquidProgramId,
|
|
784
817
|
);
|
|
785
818
|
|
|
819
|
+
const resolvedUserTokenAccount =
|
|
820
|
+
userTokenAccount ??
|
|
821
|
+
getAssociatedTokenAddressSync(mint, user, false, TOKEN_2022_PROGRAM_ID);
|
|
822
|
+
const resolvedUserQuoteAccount =
|
|
823
|
+
userQuoteAccount ??
|
|
824
|
+
getAssociatedTokenAddressSync(quoteMint, user, false, TOKEN_PROGRAM_ID);
|
|
825
|
+
|
|
786
826
|
return program.methods
|
|
787
827
|
.buyExactInStable(amountIn, minAmountOut)
|
|
788
828
|
.accountsPartial({
|
|
@@ -791,6 +831,8 @@ export function buildBuyExactInStable(
|
|
|
791
831
|
quoteMint,
|
|
792
832
|
feeRecipient: feeRecipientQuoteAccount,
|
|
793
833
|
creatorUserProperties,
|
|
834
|
+
userTokenAccount: resolvedUserTokenAccount,
|
|
835
|
+
userQuoteAccount: resolvedUserQuoteAccount,
|
|
794
836
|
creatorReferralVault: creatorReferralVault ?? null,
|
|
795
837
|
traderReferralVault: traderReferralVault ?? null,
|
|
796
838
|
buybackVault,
|
|
@@ -832,6 +874,8 @@ export interface BuildSellExactInStableParams {
|
|
|
832
874
|
feeRecipient: PublicKey;
|
|
833
875
|
creatorReferralVault?: PublicKey | null;
|
|
834
876
|
traderReferralVault?: PublicKey | null;
|
|
877
|
+
userTokenAccount?: PublicKey;
|
|
878
|
+
userQuoteAccount?: PublicKey;
|
|
835
879
|
config: LiquidConfig;
|
|
836
880
|
}
|
|
837
881
|
|
|
@@ -855,6 +899,8 @@ export function buildSellExactInStable(
|
|
|
855
899
|
feeRecipient,
|
|
856
900
|
creatorReferralVault,
|
|
857
901
|
traderReferralVault,
|
|
902
|
+
userTokenAccount,
|
|
903
|
+
userQuoteAccount,
|
|
858
904
|
config,
|
|
859
905
|
} = params;
|
|
860
906
|
|
|
@@ -883,6 +929,13 @@ export function buildSellExactInStable(
|
|
|
883
929
|
config.liquidProgramId,
|
|
884
930
|
);
|
|
885
931
|
|
|
932
|
+
const resolvedUserTokenAccount =
|
|
933
|
+
userTokenAccount ??
|
|
934
|
+
getAssociatedTokenAddressSync(mint, user, false, TOKEN_2022_PROGRAM_ID);
|
|
935
|
+
const resolvedUserQuoteAccount =
|
|
936
|
+
userQuoteAccount ??
|
|
937
|
+
getAssociatedTokenAddressSync(quoteMint, user, false, TOKEN_PROGRAM_ID);
|
|
938
|
+
|
|
886
939
|
return program.methods
|
|
887
940
|
.sellExactInStable(amountIn, minAmountOut)
|
|
888
941
|
.accountsPartial({
|
|
@@ -891,6 +944,8 @@ export function buildSellExactInStable(
|
|
|
891
944
|
quoteMint,
|
|
892
945
|
feeRecipient: feeRecipientQuoteAccount,
|
|
893
946
|
creatorUserProperties,
|
|
947
|
+
userTokenAccount: resolvedUserTokenAccount,
|
|
948
|
+
userQuoteAccount: resolvedUserQuoteAccount,
|
|
894
949
|
creatorReferralVault: creatorReferralVault ?? null,
|
|
895
950
|
traderReferralVault: traderReferralVault ?? null,
|
|
896
951
|
buybackVault,
|
|
@@ -932,6 +987,8 @@ export interface BuildBuyExactOutStableParams {
|
|
|
932
987
|
feeRecipient: PublicKey;
|
|
933
988
|
creatorReferralVault?: PublicKey | null;
|
|
934
989
|
traderReferralVault?: PublicKey | null;
|
|
990
|
+
userTokenAccount?: PublicKey;
|
|
991
|
+
userQuoteAccount?: PublicKey;
|
|
935
992
|
config: LiquidConfig;
|
|
936
993
|
}
|
|
937
994
|
|
|
@@ -955,6 +1012,8 @@ export function buildBuyExactOutStable(
|
|
|
955
1012
|
feeRecipient,
|
|
956
1013
|
creatorReferralVault,
|
|
957
1014
|
traderReferralVault,
|
|
1015
|
+
userTokenAccount,
|
|
1016
|
+
userQuoteAccount,
|
|
958
1017
|
config,
|
|
959
1018
|
} = params;
|
|
960
1019
|
|
|
@@ -981,6 +1040,13 @@ export function buildBuyExactOutStable(
|
|
|
981
1040
|
config.liquidProgramId,
|
|
982
1041
|
);
|
|
983
1042
|
|
|
1043
|
+
const resolvedUserTokenAccount =
|
|
1044
|
+
userTokenAccount ??
|
|
1045
|
+
getAssociatedTokenAddressSync(mint, user, false, TOKEN_2022_PROGRAM_ID);
|
|
1046
|
+
const resolvedUserQuoteAccount =
|
|
1047
|
+
userQuoteAccount ??
|
|
1048
|
+
getAssociatedTokenAddressSync(quoteMint, user, false, TOKEN_PROGRAM_ID);
|
|
1049
|
+
|
|
984
1050
|
return program.methods
|
|
985
1051
|
.buyExactOutStable(exactAmountOut, maxAmountIn)
|
|
986
1052
|
.accountsPartial({
|
|
@@ -989,6 +1055,8 @@ export function buildBuyExactOutStable(
|
|
|
989
1055
|
quoteMint,
|
|
990
1056
|
feeRecipient: feeRecipientQuoteAccount,
|
|
991
1057
|
creatorUserProperties,
|
|
1058
|
+
userTokenAccount: resolvedUserTokenAccount,
|
|
1059
|
+
userQuoteAccount: resolvedUserQuoteAccount,
|
|
992
1060
|
creatorReferralVault: creatorReferralVault ?? null,
|
|
993
1061
|
traderReferralVault: traderReferralVault ?? null,
|
|
994
1062
|
buybackVault,
|
|
@@ -1030,6 +1098,8 @@ export interface BuildSellExactOutStableParams {
|
|
|
1030
1098
|
feeRecipient: PublicKey;
|
|
1031
1099
|
creatorReferralVault?: PublicKey | null;
|
|
1032
1100
|
traderReferralVault?: PublicKey | null;
|
|
1101
|
+
userTokenAccount?: PublicKey;
|
|
1102
|
+
userQuoteAccount?: PublicKey;
|
|
1033
1103
|
config: LiquidConfig;
|
|
1034
1104
|
}
|
|
1035
1105
|
|
|
@@ -1053,6 +1123,8 @@ export function buildSellExactOutStable(
|
|
|
1053
1123
|
feeRecipient,
|
|
1054
1124
|
creatorReferralVault,
|
|
1055
1125
|
traderReferralVault,
|
|
1126
|
+
userTokenAccount,
|
|
1127
|
+
userQuoteAccount,
|
|
1056
1128
|
config,
|
|
1057
1129
|
} = params;
|
|
1058
1130
|
|
|
@@ -1079,6 +1151,13 @@ export function buildSellExactOutStable(
|
|
|
1079
1151
|
config.liquidProgramId,
|
|
1080
1152
|
);
|
|
1081
1153
|
|
|
1154
|
+
const resolvedUserTokenAccount =
|
|
1155
|
+
userTokenAccount ??
|
|
1156
|
+
getAssociatedTokenAddressSync(mint, user, false, TOKEN_2022_PROGRAM_ID);
|
|
1157
|
+
const resolvedUserQuoteAccount =
|
|
1158
|
+
userQuoteAccount ??
|
|
1159
|
+
getAssociatedTokenAddressSync(quoteMint, user, false, TOKEN_PROGRAM_ID);
|
|
1160
|
+
|
|
1082
1161
|
return program.methods
|
|
1083
1162
|
.sellExactOutStable(exactAmountOut, maxAmountIn)
|
|
1084
1163
|
.accountsPartial({
|
|
@@ -1087,6 +1166,8 @@ export function buildSellExactOutStable(
|
|
|
1087
1166
|
quoteMint,
|
|
1088
1167
|
feeRecipient: feeRecipientQuoteAccount,
|
|
1089
1168
|
creatorUserProperties,
|
|
1169
|
+
userTokenAccount: resolvedUserTokenAccount,
|
|
1170
|
+
userQuoteAccount: resolvedUserQuoteAccount,
|
|
1090
1171
|
creatorReferralVault: creatorReferralVault ?? null,
|
|
1091
1172
|
traderReferralVault: traderReferralVault ?? null,
|
|
1092
1173
|
buybackVault,
|