@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.
- package/dist/client.d.ts +90 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +184 -0
- package/dist/client.js.map +1 -0
- package/dist/constants.d.ts +36 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +44 -0
- package/dist/constants.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +92 -0
- package/dist/index.js.map +1 -0
- package/dist/instructions/admin.d.ts +136 -0
- package/dist/instructions/admin.d.ts.map +1 -0
- package/dist/instructions/admin.js +227 -0
- package/dist/instructions/admin.js.map +1 -0
- package/dist/instructions/liquidity.d.ts +50 -0
- package/dist/instructions/liquidity.d.ts.map +1 -0
- package/dist/instructions/liquidity.js +118 -0
- package/dist/instructions/liquidity.js.map +1 -0
- package/dist/instructions/nft.d.ts +80 -0
- package/dist/instructions/nft.d.ts.map +1 -0
- package/dist/instructions/nft.js +159 -0
- package/dist/instructions/nft.js.map +1 -0
- package/dist/instructions/swap.d.ts +57 -0
- package/dist/instructions/swap.d.ts.map +1 -0
- package/dist/instructions/swap.js +117 -0
- package/dist/instructions/swap.js.map +1 -0
- package/dist/pda.d.ts +28 -0
- package/dist/pda.d.ts.map +1 -0
- package/dist/pda.js +59 -0
- package/dist/pda.js.map +1 -0
- package/dist/pool/fetcher.d.ts +23 -0
- package/dist/pool/fetcher.d.ts.map +1 -0
- package/dist/pool/fetcher.js +171 -0
- package/dist/pool/fetcher.js.map +1 -0
- package/dist/pool/index.d.ts +53 -0
- package/dist/pool/index.d.ts.map +1 -0
- package/dist/pool/index.js +90 -0
- package/dist/pool/index.js.map +1 -0
- package/dist/routing/pathfinder.d.ts +25 -0
- package/dist/routing/pathfinder.d.ts.map +1 -0
- package/dist/routing/pathfinder.js +116 -0
- package/dist/routing/pathfinder.js.map +1 -0
- package/dist/routing/quote.d.ts +53 -0
- package/dist/routing/quote.d.ts.map +1 -0
- package/dist/routing/quote.js +145 -0
- package/dist/routing/quote.js.map +1 -0
- package/dist/types.d.ts +105 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +15 -0
- package/dist/types.js.map +1 -0
- 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":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,SAAS,EAGV,MAAM,iBAAiB,CAAC;AAMzB,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AA0BhC,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACtB,SAAS,EAAE,SAAS,CAAC;IACrB,eAAe,EAAE,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,EAAE,CAAC;IACpB,aAAa,EAAE,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,GAAG,CAAC,CAmBd;AAMD,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACtB,SAAS,EAAE,SAAS,CAAC;IACrB,eAAe,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,eAAe,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,GAAG,CAAC,CAkBd;AAMD,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACtB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,EAAE,CAAC;IACX,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,GAAG,CAAC,CAad;AAMD,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACtB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,EAAE,CAAC;IACX,sCAAsC;IACtC,IAAI,EAAE,SAAS,CAAC;IAChB,8CAA8C;IAC9C,oBAAoB,EAAE,SAAS,CAAC;IAChC,mDAAmD;IACnD,qBAAqB,EAAE,SAAS,CAAC;IACjC,6DAA6D;IAC7D,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,0BAA0B,GAC/B,OAAO,CAAC,GAAG,CAAC,CAgBd;AAMD,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,EAAE,SAAS,CAAC;IACnB,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC,GAAG,CAAC,CAcd;AAMD,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,EAAE,SAAS,CAAC;IACnB,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,EAAE,CAAC;IACZ,OAAO,EAAE,EAAE,CAAC;IACZ,aAAa,EAAE,SAAS,CAAC;IACzB,aAAa,EAAE,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,GAAG,CAAC,CAwBd;AAMD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,EAAE,SAAS,CAAC;IACnB,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAOpE;AAMD,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,EAAE,SAAS,CAAC;IACnB,UAAU,EAAE,SAAS,CAAC;IACtB,UAAU,EAAE,SAAS,CAAC;IACtB,cAAc,EAAE,EAAE,CAAC;IACnB,cAAc,EAAE,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,6BAA6B;IAC7B,aAAa,EAAE,SAAS,CAAC;IACzB,6BAA6B;IAC7B,aAAa,EAAE,SAAS,CAAC;IACzB,qCAAqC;IACrC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,qCAAqC;IACrC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,GAAG,CAAC,CA+Ed;AAMD,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,EAAE,SAAS,CAAC;IACnB,UAAU,EAAE,SAAS,CAAC;IACtB,cAAc,EAAE,SAAS,CAAC;IAC1B,kBAAkB,EAAE,EAAE,CAAC;IACvB,SAAS,EAAE,EAAE,CAAC;IACd,UAAU,EAAE,EAAE,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,6BAA6B;IAC7B,aAAa,EAAE,SAAS,CAAC;IACzB,oDAAoD;IACpD,OAAO,EAAE,SAAS,CAAC;IACnB,mCAAmC;IACnC,WAAW,EAAE,SAAS,CAAC;IACvB,4CAA4C;IAC5C,iBAAiB,EAAE,SAAS,CAAC;IAC7B,qCAAqC;IACrC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,GAAG,CAAC,CAqFd"}
|
|
@@ -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":"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"}
|
|
@@ -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"}
|