solana-meme-sdk 1.0.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/README.md +160 -0
- package/dist/batch-executor/accounts.d.ts +141 -0
- package/dist/batch-executor/accounts.d.ts.map +1 -0
- package/dist/batch-executor/accounts.js +98 -0
- package/dist/batch-executor/accounts.js.map +1 -0
- package/dist/batch-executor/batch-executor.d.ts +27 -0
- package/dist/batch-executor/batch-executor.d.ts.map +1 -0
- package/dist/batch-executor/batch-executor.js +286 -0
- package/dist/batch-executor/batch-executor.js.map +1 -0
- package/dist/batch-executor/index.d.ts +4 -0
- package/dist/batch-executor/index.d.ts.map +1 -0
- package/dist/batch-executor/index.js +6 -0
- package/dist/batch-executor/index.js.map +1 -0
- package/dist/batch-executor/types.d.ts +87 -0
- package/dist/batch-executor/types.d.ts.map +1 -0
- package/dist/batch-executor/types.js +42 -0
- package/dist/batch-executor/types.js.map +1 -0
- package/dist/constants.d.ts +151 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +189 -0
- package/dist/constants.js.map +1 -0
- package/dist/dex/blockrazor/client.d.ts +52 -0
- package/dist/dex/blockrazor/client.d.ts.map +1 -0
- package/dist/dex/blockrazor/client.js +97 -0
- package/dist/dex/blockrazor/client.js.map +1 -0
- package/dist/dex/blockrazor/constants.d.ts +35 -0
- package/dist/dex/blockrazor/constants.d.ts.map +1 -0
- package/dist/dex/blockrazor/constants.js +56 -0
- package/dist/dex/blockrazor/constants.js.map +1 -0
- package/dist/dex/blockrazor/geyser.d.ts +129 -0
- package/dist/dex/blockrazor/geyser.d.ts.map +1 -0
- package/dist/dex/blockrazor/geyser.js +531 -0
- package/dist/dex/blockrazor/geyser.js.map +1 -0
- package/dist/dex/blockrazor/index.d.ts +19 -0
- package/dist/dex/blockrazor/index.d.ts.map +1 -0
- package/dist/dex/blockrazor/index.js +24 -0
- package/dist/dex/blockrazor/index.js.map +1 -0
- package/dist/dex/blockrazor/send.d.ts +136 -0
- package/dist/dex/blockrazor/send.d.ts.map +1 -0
- package/dist/dex/blockrazor/send.js +255 -0
- package/dist/dex/blockrazor/send.js.map +1 -0
- package/dist/dex/blockrazor/types.d.ts +192 -0
- package/dist/dex/blockrazor/types.d.ts.map +1 -0
- package/dist/dex/blockrazor/types.js +6 -0
- package/dist/dex/blockrazor/types.js.map +1 -0
- package/dist/dex/index.d.ts +11 -0
- package/dist/dex/index.d.ts.map +1 -0
- package/dist/dex/index.js +17 -0
- package/dist/dex/index.js.map +1 -0
- package/dist/dex/jup/client.d.ts +34 -0
- package/dist/dex/jup/client.d.ts.map +1 -0
- package/dist/dex/jup/client.js +111 -0
- package/dist/dex/jup/client.js.map +1 -0
- package/dist/dex/jup/index.d.ts +17 -0
- package/dist/dex/jup/index.d.ts.map +1 -0
- package/dist/dex/jup/index.js +149 -0
- package/dist/dex/jup/index.js.map +1 -0
- package/dist/dex/jup/legacy.d.ts +624 -0
- package/dist/dex/jup/legacy.d.ts.map +1 -0
- package/dist/dex/jup/legacy.js +417 -0
- package/dist/dex/jup/legacy.js.map +1 -0
- package/dist/dex/jup/lend.d.ts +641 -0
- package/dist/dex/jup/lend.d.ts.map +1 -0
- package/dist/dex/jup/lend.js +604 -0
- package/dist/dex/jup/lend.js.map +1 -0
- package/dist/dex/jup/portfolio.d.ts +363 -0
- package/dist/dex/jup/portfolio.d.ts.map +1 -0
- package/dist/dex/jup/portfolio.js +368 -0
- package/dist/dex/jup/portfolio.js.map +1 -0
- package/dist/dex/jup/price.d.ts +174 -0
- package/dist/dex/jup/price.d.ts.map +1 -0
- package/dist/dex/jup/price.js +226 -0
- package/dist/dex/jup/price.js.map +1 -0
- package/dist/dex/jup/recurring.d.ts +438 -0
- package/dist/dex/jup/recurring.d.ts.map +1 -0
- package/dist/dex/jup/recurring.js +321 -0
- package/dist/dex/jup/recurring.js.map +1 -0
- package/dist/dex/jup/send.d.ts +283 -0
- package/dist/dex/jup/send.d.ts.map +1 -0
- package/dist/dex/jup/send.js +296 -0
- package/dist/dex/jup/send.js.map +1 -0
- package/dist/dex/jup/studio.d.ts +458 -0
- package/dist/dex/jup/studio.d.ts.map +1 -0
- package/dist/dex/jup/studio.js +489 -0
- package/dist/dex/jup/studio.js.map +1 -0
- package/dist/dex/jup/tokens.d.ts +768 -0
- package/dist/dex/jup/tokens.d.ts.map +1 -0
- package/dist/dex/jup/tokens.js +698 -0
- package/dist/dex/jup/tokens.js.map +1 -0
- package/dist/dex/jup/trigger.d.ts +512 -0
- package/dist/dex/jup/trigger.d.ts.map +1 -0
- package/dist/dex/jup/trigger.js +398 -0
- package/dist/dex/jup/trigger.js.map +1 -0
- package/dist/dex/jup/types.d.ts +434 -0
- package/dist/dex/jup/types.d.ts.map +1 -0
- package/dist/dex/jup/types.js +6 -0
- package/dist/dex/jup/types.js.map +1 -0
- package/dist/dex/jup/ultra.d.ts +647 -0
- package/dist/dex/jup/ultra.d.ts.map +1 -0
- package/dist/dex/jup/ultra.js +854 -0
- package/dist/dex/jup/ultra.js.map +1 -0
- package/dist/dex/meteora/client.d.ts +77 -0
- package/dist/dex/meteora/client.d.ts.map +1 -0
- package/dist/dex/meteora/client.js +220 -0
- package/dist/dex/meteora/client.js.map +1 -0
- package/dist/dex/meteora/damm-v1-bundle.d.ts +62 -0
- package/dist/dex/meteora/damm-v1-bundle.d.ts.map +1 -0
- package/dist/dex/meteora/damm-v1-bundle.js +113 -0
- package/dist/dex/meteora/damm-v1-bundle.js.map +1 -0
- package/dist/dex/meteora/damm-v1.d.ts +119 -0
- package/dist/dex/meteora/damm-v1.d.ts.map +1 -0
- package/dist/dex/meteora/damm-v1.js +316 -0
- package/dist/dex/meteora/damm-v1.js.map +1 -0
- package/dist/dex/meteora/damm-v2-bundle.d.ts +83 -0
- package/dist/dex/meteora/damm-v2-bundle.d.ts.map +1 -0
- package/dist/dex/meteora/damm-v2-bundle.js +243 -0
- package/dist/dex/meteora/damm-v2-bundle.js.map +1 -0
- package/dist/dex/meteora/damm-v2.d.ts +173 -0
- package/dist/dex/meteora/damm-v2.d.ts.map +1 -0
- package/dist/dex/meteora/damm-v2.js +633 -0
- package/dist/dex/meteora/damm-v2.js.map +1 -0
- package/dist/dex/meteora/dbc-bundle.d.ts +124 -0
- package/dist/dex/meteora/dbc-bundle.d.ts.map +1 -0
- package/dist/dex/meteora/dbc-bundle.js +305 -0
- package/dist/dex/meteora/dbc-bundle.js.map +1 -0
- package/dist/dex/meteora/dbc.d.ts +193 -0
- package/dist/dex/meteora/dbc.d.ts.map +1 -0
- package/dist/dex/meteora/dbc.js +620 -0
- package/dist/dex/meteora/dbc.js.map +1 -0
- package/dist/dex/meteora/dlmm-bundle.d.ts +40 -0
- package/dist/dex/meteora/dlmm-bundle.d.ts.map +1 -0
- package/dist/dex/meteora/dlmm-bundle.js +190 -0
- package/dist/dex/meteora/dlmm-bundle.js.map +1 -0
- package/dist/dex/meteora/dlmm.d.ts +158 -0
- package/dist/dex/meteora/dlmm.d.ts.map +1 -0
- package/dist/dex/meteora/dlmm.js +672 -0
- package/dist/dex/meteora/dlmm.js.map +1 -0
- package/dist/dex/meteora/index.d.ts +26 -0
- package/dist/dex/meteora/index.d.ts.map +1 -0
- package/dist/dex/meteora/index.js +66 -0
- package/dist/dex/meteora/index.js.map +1 -0
- package/dist/dex/meteora/types.d.ts +788 -0
- package/dist/dex/meteora/types.d.ts.map +1 -0
- package/dist/dex/meteora/types.js +111 -0
- package/dist/dex/meteora/types.js.map +1 -0
- package/dist/dex/orca/index.d.ts +11 -0
- package/dist/dex/orca/index.d.ts.map +1 -0
- package/dist/dex/orca/index.js +17 -0
- package/dist/dex/orca/index.js.map +1 -0
- package/dist/dex/orca/orca-bundle.d.ts +42 -0
- package/dist/dex/orca/orca-bundle.d.ts.map +1 -0
- package/dist/dex/orca/orca-bundle.js +174 -0
- package/dist/dex/orca/orca-bundle.js.map +1 -0
- package/dist/dex/orca/orca.d.ts +66 -0
- package/dist/dex/orca/orca.d.ts.map +1 -0
- package/dist/dex/orca/orca.js +475 -0
- package/dist/dex/orca/orca.js.map +1 -0
- package/dist/dex/orca/types.d.ts +264 -0
- package/dist/dex/orca/types.d.ts.map +1 -0
- package/dist/dex/orca/types.js +39 -0
- package/dist/dex/orca/types.js.map +1 -0
- package/dist/dex/orca/wavebreak-bundle.d.ts +35 -0
- package/dist/dex/orca/wavebreak-bundle.d.ts.map +1 -0
- package/dist/dex/orca/wavebreak-bundle.js +199 -0
- package/dist/dex/orca/wavebreak-bundle.js.map +1 -0
- package/dist/dex/orca/wavebreak-types.d.ts +228 -0
- package/dist/dex/orca/wavebreak-types.d.ts.map +1 -0
- package/dist/dex/orca/wavebreak-types.js +24 -0
- package/dist/dex/orca/wavebreak-types.js.map +1 -0
- package/dist/dex/orca/wavebreak.d.ts +79 -0
- package/dist/dex/orca/wavebreak.d.ts.map +1 -0
- package/dist/dex/orca/wavebreak.js +498 -0
- package/dist/dex/orca/wavebreak.js.map +1 -0
- package/dist/dex/pump/index.d.ts +10 -0
- package/dist/dex/pump/index.d.ts.map +1 -0
- package/dist/dex/pump/index.js +15 -0
- package/dist/dex/pump/index.js.map +1 -0
- package/dist/dex/pump/pump-bundle.d.ts +93 -0
- package/dist/dex/pump/pump-bundle.d.ts.map +1 -0
- package/dist/dex/pump/pump-bundle.js +384 -0
- package/dist/dex/pump/pump-bundle.js.map +1 -0
- package/dist/dex/pump/pump-swap-bundle.d.ts +104 -0
- package/dist/dex/pump/pump-swap-bundle.d.ts.map +1 -0
- package/dist/dex/pump/pump-swap-bundle.js +381 -0
- package/dist/dex/pump/pump-swap-bundle.js.map +1 -0
- package/dist/dex/pump/pump-swap.d.ts +47 -0
- package/dist/dex/pump/pump-swap.d.ts.map +1 -0
- package/dist/dex/pump/pump-swap.js +200 -0
- package/dist/dex/pump/pump-swap.js.map +1 -0
- package/dist/dex/pump/pump.d.ts +36 -0
- package/dist/dex/pump/pump.d.ts.map +1 -0
- package/dist/dex/pump/pump.js +353 -0
- package/dist/dex/pump/pump.js.map +1 -0
- package/dist/dex/pump/types.d.ts +216 -0
- package/dist/dex/pump/types.d.ts.map +1 -0
- package/dist/dex/pump/types.js +6 -0
- package/dist/dex/pump/types.js.map +1 -0
- package/dist/dex/raydium/index.d.ts +9 -0
- package/dist/dex/raydium/index.d.ts.map +1 -0
- package/dist/dex/raydium/index.js +13 -0
- package/dist/dex/raydium/index.js.map +1 -0
- package/dist/dex/raydium/launchlab.d.ts +69 -0
- package/dist/dex/raydium/launchlab.d.ts.map +1 -0
- package/dist/dex/raydium/launchlab.js +211 -0
- package/dist/dex/raydium/launchlab.js.map +1 -0
- package/dist/dex/raydium/raydium-bundle.d.ts +65 -0
- package/dist/dex/raydium/raydium-bundle.d.ts.map +1 -0
- package/dist/dex/raydium/raydium-bundle.js +325 -0
- package/dist/dex/raydium/raydium-bundle.js.map +1 -0
- package/dist/dex/raydium/raydium.d.ts +41 -0
- package/dist/dex/raydium/raydium.d.ts.map +1 -0
- package/dist/dex/raydium/raydium.js +367 -0
- package/dist/dex/raydium/raydium.js.map +1 -0
- package/dist/dex/raydium/types.d.ts +241 -0
- package/dist/dex/raydium/types.d.ts.map +1 -0
- package/dist/dex/raydium/types.js +6 -0
- package/dist/dex/raydium/types.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/jito/bundle.d.ts +91 -0
- package/dist/jito/bundle.d.ts.map +1 -0
- package/dist/jito/bundle.js +267 -0
- package/dist/jito/bundle.js.map +1 -0
- package/dist/jito/index.d.ts +8 -0
- package/dist/jito/index.d.ts.map +1 -0
- package/dist/jito/index.js +8 -0
- package/dist/jito/index.js.map +1 -0
- package/dist/jito/tip.d.ts +52 -0
- package/dist/jito/tip.d.ts.map +1 -0
- package/dist/jito/tip.js +84 -0
- package/dist/jito/tip.js.map +1 -0
- package/dist/jito/types.d.ts +101 -0
- package/dist/jito/types.d.ts.map +1 -0
- package/dist/jito/types.js +6 -0
- package/dist/jito/types.js.map +1 -0
- package/dist/nozomi/client.d.ts +64 -0
- package/dist/nozomi/client.d.ts.map +1 -0
- package/dist/nozomi/client.js +228 -0
- package/dist/nozomi/client.js.map +1 -0
- package/dist/nozomi/index.d.ts +9 -0
- package/dist/nozomi/index.d.ts.map +1 -0
- package/dist/nozomi/index.js +9 -0
- package/dist/nozomi/index.js.map +1 -0
- package/dist/nozomi/tip.d.ts +51 -0
- package/dist/nozomi/tip.d.ts.map +1 -0
- package/dist/nozomi/tip.js +81 -0
- package/dist/nozomi/tip.js.map +1 -0
- package/dist/nozomi/types.d.ts +97 -0
- package/dist/nozomi/types.d.ts.map +1 -0
- package/dist/nozomi/types.js +6 -0
- package/dist/nozomi/types.js.map +1 -0
- package/dist/token/create-complete.d.ts +116 -0
- package/dist/token/create-complete.d.ts.map +1 -0
- package/dist/token/create-complete.js +236 -0
- package/dist/token/create-complete.js.map +1 -0
- package/dist/token/create-token.d.ts +58 -0
- package/dist/token/create-token.d.ts.map +1 -0
- package/dist/token/create-token.js +231 -0
- package/dist/token/create-token.js.map +1 -0
- package/dist/token/index.d.ts +10 -0
- package/dist/token/index.d.ts.map +1 -0
- package/dist/token/index.js +15 -0
- package/dist/token/index.js.map +1 -0
- package/dist/token/metadata-upload.d.ts +87 -0
- package/dist/token/metadata-upload.d.ts.map +1 -0
- package/dist/token/metadata-upload.js +176 -0
- package/dist/token/metadata-upload.js.map +1 -0
- package/dist/token/metadata.d.ts +93 -0
- package/dist/token/metadata.d.ts.map +1 -0
- package/dist/token/metadata.js +275 -0
- package/dist/token/metadata.js.map +1 -0
- package/dist/token/types.d.ts +154 -0
- package/dist/token/types.d.ts.map +1 -0
- package/dist/token/types.js +6 -0
- package/dist/token/types.js.map +1 -0
- package/dist/types.d.ts +177 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +8 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/alt.d.ts +58 -0
- package/dist/utils/alt.d.ts.map +1 -0
- package/dist/utils/alt.js +125 -0
- package/dist/utils/alt.js.map +1 -0
- package/dist/utils/balance.d.ts +161 -0
- package/dist/utils/balance.d.ts.map +1 -0
- package/dist/utils/balance.js +639 -0
- package/dist/utils/balance.js.map +1 -0
- package/dist/utils/batch-swap.d.ts +52 -0
- package/dist/utils/batch-swap.d.ts.map +1 -0
- package/dist/utils/batch-swap.js +286 -0
- package/dist/utils/batch-swap.js.map +1 -0
- package/dist/utils/batch-types.d.ts +90 -0
- package/dist/utils/batch-types.d.ts.map +1 -0
- package/dist/utils/batch-types.js +7 -0
- package/dist/utils/batch-types.js.map +1 -0
- package/dist/utils/connection.d.ts +79 -0
- package/dist/utils/connection.d.ts.map +1 -0
- package/dist/utils/connection.js +169 -0
- package/dist/utils/connection.js.map +1 -0
- package/dist/utils/index.d.ts +13 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +14 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/lp-inspect.d.ts +81 -0
- package/dist/utils/lp-inspect.d.ts.map +1 -0
- package/dist/utils/lp-inspect.js +265 -0
- package/dist/utils/lp-inspect.js.map +1 -0
- package/dist/utils/transfer.d.ts +197 -0
- package/dist/utils/transfer.d.ts.map +1 -0
- package/dist/utils/transfer.js +308 -0
- package/dist/utils/transfer.js.map +1 -0
- package/dist/utils/wallet.d.ts +108 -0
- package/dist/utils/wallet.d.ts.map +1 -0
- package/dist/utils/wallet.js +211 -0
- package/dist/utils/wallet.js.map +1 -0
- package/package.json +92 -0
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Meteora DBC Bundle 批量交易
|
|
3
|
+
*
|
|
4
|
+
* 支持 Jito Bundle 的批量买卖
|
|
5
|
+
*/
|
|
6
|
+
import { Connection, Keypair } from '@solana/web3.js';
|
|
7
|
+
import BN from 'bn.js';
|
|
8
|
+
import type { DbcBundleSwapParams, MeteoraBundleSignedResult } from './types.js';
|
|
9
|
+
/**
|
|
10
|
+
* 创建池并捆绑首买参数
|
|
11
|
+
*/
|
|
12
|
+
export interface DbcCreatePoolAndBundleBuyParams {
|
|
13
|
+
/** 配置地址 */
|
|
14
|
+
configAddress: string;
|
|
15
|
+
/** 代币名称 */
|
|
16
|
+
name: string;
|
|
17
|
+
/** 代币符号 */
|
|
18
|
+
symbol: string;
|
|
19
|
+
/** 代币 URI (metadata) */
|
|
20
|
+
uri: string;
|
|
21
|
+
/** Base Mint Keypair */
|
|
22
|
+
baseMintKeypair: Keypair;
|
|
23
|
+
/** 池创建者钱包 */
|
|
24
|
+
creatorWallet: Keypair;
|
|
25
|
+
/** 创建者首买金额 (可选) */
|
|
26
|
+
creatorBuyAmount?: BN;
|
|
27
|
+
/** 批量首买交易列表 */
|
|
28
|
+
bundleBuys: {
|
|
29
|
+
wallet: Keypair;
|
|
30
|
+
buyAmount: BN;
|
|
31
|
+
minAmountOut?: BN;
|
|
32
|
+
}[];
|
|
33
|
+
/** 滑点 (bps) */
|
|
34
|
+
slippageBps?: number;
|
|
35
|
+
/** Jito 小费 */
|
|
36
|
+
jitoTipLamports?: number;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* 创建池并捆绑首买结果
|
|
40
|
+
*/
|
|
41
|
+
export interface DbcCreatePoolBundleResult extends MeteoraBundleSignedResult {
|
|
42
|
+
/** 池地址 */
|
|
43
|
+
poolAddress: string;
|
|
44
|
+
/** Base Mint 地址 */
|
|
45
|
+
baseMint: string;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* 签名 DBC Bundle 批量买入交易
|
|
49
|
+
*
|
|
50
|
+
* @param params Bundle 参数
|
|
51
|
+
* @param connection 可选连接
|
|
52
|
+
*/
|
|
53
|
+
export declare function signDbcBundleBuy(params: DbcBundleSwapParams, connection?: Connection): Promise<MeteoraBundleSignedResult>;
|
|
54
|
+
/**
|
|
55
|
+
* 签名 DBC Bundle 批量卖出交易
|
|
56
|
+
*
|
|
57
|
+
* @param params Bundle 参数
|
|
58
|
+
* @param connection 可选连接
|
|
59
|
+
*/
|
|
60
|
+
export declare function signDbcBundleSell(params: DbcBundleSwapParams, connection?: Connection): Promise<MeteoraBundleSignedResult>;
|
|
61
|
+
/**
|
|
62
|
+
* 将 Bundle 结果转换为后端 API 请求格式
|
|
63
|
+
*/
|
|
64
|
+
export declare function toDbcBundleApiRequest(result: MeteoraBundleSignedResult): {
|
|
65
|
+
transactions: string[];
|
|
66
|
+
type: string;
|
|
67
|
+
poolAddress: string;
|
|
68
|
+
tradeCount: number;
|
|
69
|
+
jitoTipLamports: number;
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* 签名 DBC 创建池并捆绑多地址首买交易
|
|
73
|
+
*
|
|
74
|
+
* 交易顺序:
|
|
75
|
+
* 1. 创建池交易 (由创建者签名)
|
|
76
|
+
* 2. 创建者首买交易 (可选)
|
|
77
|
+
* 3. 多个地址的首买交易
|
|
78
|
+
* 4. 最后一笔交易包含 Jito tip
|
|
79
|
+
*
|
|
80
|
+
* @param params 创建池并捆绑首买参数
|
|
81
|
+
* @param connection 可选连接
|
|
82
|
+
*/
|
|
83
|
+
export declare function signDbcCreatePoolAndBundleBuy(params: DbcCreatePoolAndBundleBuyParams, connection?: Connection): Promise<DbcCreatePoolBundleResult>;
|
|
84
|
+
/**
|
|
85
|
+
* 签名 DBC 创建池并捆绑多地址首买交易 (使用已有配置)
|
|
86
|
+
*
|
|
87
|
+
* 适用于使用平台方已有的 Config,只需创建池并首买
|
|
88
|
+
*
|
|
89
|
+
* @param params 创建池并捆绑首买参数
|
|
90
|
+
* @param connection 可选连接
|
|
91
|
+
*/
|
|
92
|
+
export declare function signDbcCreatePoolBundleBuyWithConfig(params: {
|
|
93
|
+
/** 配置地址 */
|
|
94
|
+
configAddress: string;
|
|
95
|
+
/** 代币名称 */
|
|
96
|
+
name: string;
|
|
97
|
+
/** 代币符号 */
|
|
98
|
+
symbol: string;
|
|
99
|
+
/** 代币 URI */
|
|
100
|
+
uri: string;
|
|
101
|
+
/** Base Mint Keypair */
|
|
102
|
+
baseMintKeypair: Keypair;
|
|
103
|
+
/** 池创建者钱包 (付款并创建池) */
|
|
104
|
+
creatorWallet: Keypair;
|
|
105
|
+
/** 批量首买交易列表 (第一个地址会和创建池合并在同一笔交易) */
|
|
106
|
+
bundleBuys: {
|
|
107
|
+
wallet: Keypair;
|
|
108
|
+
buyAmount: BN;
|
|
109
|
+
minAmountOut?: BN;
|
|
110
|
+
}[];
|
|
111
|
+
/** 滑点 (bps) */
|
|
112
|
+
slippageBps?: number;
|
|
113
|
+
/** Jito 小费 */
|
|
114
|
+
jitoTipLamports?: number;
|
|
115
|
+
}, connection?: Connection): Promise<DbcCreatePoolBundleResult>;
|
|
116
|
+
/**
|
|
117
|
+
* 签名 DBC 通用 Bundle Swap 交易
|
|
118
|
+
*
|
|
119
|
+
* @param params Bundle 参数
|
|
120
|
+
* @param swapBaseForQuote 是否卖出 (true = 卖出 base 换 quote, false = 买入)
|
|
121
|
+
* @param connection 可选连接
|
|
122
|
+
*/
|
|
123
|
+
export declare function signDbcBundleSwap(params: DbcBundleSwapParams, swapBaseForQuote: boolean, connection?: Connection): Promise<MeteoraBundleSignedResult>;
|
|
124
|
+
//# sourceMappingURL=dbc-bundle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dbc-bundle.d.ts","sourceRoot":"","sources":["../../../src/dex/meteora/dbc-bundle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Meteora DBC Bundle 批量交易
|
|
3
|
+
*
|
|
4
|
+
* 支持 Jito Bundle 的批量买卖
|
|
5
|
+
*/
|
|
6
|
+
import { PublicKey, } from '@solana/web3.js';
|
|
7
|
+
import BN from 'bn.js';
|
|
8
|
+
import { getCurrentPoint } from '@meteora-ag/dynamic-bonding-curve-sdk';
|
|
9
|
+
import { getConnection, getDbcClient } from './client.js';
|
|
10
|
+
import { buildTipInstruction } from '../../jito/tip.js';
|
|
11
|
+
// ============================================================================
|
|
12
|
+
// Bundle 批量买入
|
|
13
|
+
// ============================================================================
|
|
14
|
+
/**
|
|
15
|
+
* 签名 DBC Bundle 批量买入交易
|
|
16
|
+
*
|
|
17
|
+
* @param params Bundle 参数
|
|
18
|
+
* @param connection 可选连接
|
|
19
|
+
*/
|
|
20
|
+
export async function signDbcBundleBuy(params, connection) {
|
|
21
|
+
const conn = getConnection(connection);
|
|
22
|
+
const client = getDbcClient(connection);
|
|
23
|
+
const poolPubkey = new PublicKey(params.poolAddress);
|
|
24
|
+
const poolState = await client.state.getPool(poolPubkey);
|
|
25
|
+
const configState = await client.state.getPoolConfig(poolState.config);
|
|
26
|
+
const currentPoint = await getCurrentPoint(conn, configState.activationType);
|
|
27
|
+
const signedTransactions = [];
|
|
28
|
+
for (let i = 0; i < params.trades.length; i++) {
|
|
29
|
+
const trade = params.trades[i];
|
|
30
|
+
const quote = client.pool.swapQuote({
|
|
31
|
+
virtualPool: poolState,
|
|
32
|
+
config: configState,
|
|
33
|
+
swapBaseForQuote: false,
|
|
34
|
+
amountIn: trade.amountIn,
|
|
35
|
+
hasReferral: false,
|
|
36
|
+
currentPoint,
|
|
37
|
+
slippageBps: params.slippageBps || 100,
|
|
38
|
+
});
|
|
39
|
+
const minAmountOut = trade.minAmountOut || quote.minimumAmountOut;
|
|
40
|
+
const swapTx = await client.pool.swap({
|
|
41
|
+
owner: trade.wallet.publicKey,
|
|
42
|
+
pool: poolPubkey,
|
|
43
|
+
amountIn: trade.amountIn,
|
|
44
|
+
minimumAmountOut: minAmountOut,
|
|
45
|
+
swapBaseForQuote: false,
|
|
46
|
+
referralTokenAccount: null,
|
|
47
|
+
});
|
|
48
|
+
if (i === params.trades.length - 1 && params.jitoTipLamports) {
|
|
49
|
+
const tipIx = buildTipInstruction(trade.wallet.publicKey, BigInt(params.jitoTipLamports));
|
|
50
|
+
swapTx.add(tipIx);
|
|
51
|
+
}
|
|
52
|
+
const { blockhash, lastValidBlockHeight } = await conn.getLatestBlockhash();
|
|
53
|
+
swapTx.recentBlockhash = blockhash;
|
|
54
|
+
swapTx.lastValidBlockHeight = lastValidBlockHeight;
|
|
55
|
+
swapTx.feePayer = trade.wallet.publicKey;
|
|
56
|
+
swapTx.sign(trade.wallet);
|
|
57
|
+
signedTransactions.push(swapTx);
|
|
58
|
+
}
|
|
59
|
+
return {
|
|
60
|
+
signedTransactions,
|
|
61
|
+
type: 'dbc_bundle_buy',
|
|
62
|
+
poolAddress: params.poolAddress,
|
|
63
|
+
tradeCount: params.trades.length,
|
|
64
|
+
jitoTipLamports: params.jitoTipLamports || 0,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
// ============================================================================
|
|
68
|
+
// Bundle 批量卖出
|
|
69
|
+
// ============================================================================
|
|
70
|
+
/**
|
|
71
|
+
* 签名 DBC Bundle 批量卖出交易
|
|
72
|
+
*
|
|
73
|
+
* @param params Bundle 参数
|
|
74
|
+
* @param connection 可选连接
|
|
75
|
+
*/
|
|
76
|
+
export async function signDbcBundleSell(params, connection) {
|
|
77
|
+
const conn = getConnection(connection);
|
|
78
|
+
const client = getDbcClient(connection);
|
|
79
|
+
const poolPubkey = new PublicKey(params.poolAddress);
|
|
80
|
+
const poolState = await client.state.getPool(poolPubkey);
|
|
81
|
+
const configState = await client.state.getPoolConfig(poolState.config);
|
|
82
|
+
const currentPoint = await getCurrentPoint(conn, configState.activationType);
|
|
83
|
+
const signedTransactions = [];
|
|
84
|
+
for (let i = 0; i < params.trades.length; i++) {
|
|
85
|
+
const trade = params.trades[i];
|
|
86
|
+
const quote = client.pool.swapQuote({
|
|
87
|
+
virtualPool: poolState,
|
|
88
|
+
config: configState,
|
|
89
|
+
swapBaseForQuote: true,
|
|
90
|
+
amountIn: trade.amountIn,
|
|
91
|
+
hasReferral: false,
|
|
92
|
+
currentPoint,
|
|
93
|
+
slippageBps: params.slippageBps || 100,
|
|
94
|
+
});
|
|
95
|
+
const minAmountOut = trade.minAmountOut || quote.minimumAmountOut;
|
|
96
|
+
const swapTx = await client.pool.swap({
|
|
97
|
+
owner: trade.wallet.publicKey,
|
|
98
|
+
pool: poolPubkey,
|
|
99
|
+
amountIn: trade.amountIn,
|
|
100
|
+
minimumAmountOut: minAmountOut,
|
|
101
|
+
swapBaseForQuote: true,
|
|
102
|
+
referralTokenAccount: null,
|
|
103
|
+
});
|
|
104
|
+
if (i === params.trades.length - 1 && params.jitoTipLamports) {
|
|
105
|
+
const tipIx = buildTipInstruction(trade.wallet.publicKey, BigInt(params.jitoTipLamports));
|
|
106
|
+
swapTx.add(tipIx);
|
|
107
|
+
}
|
|
108
|
+
const { blockhash, lastValidBlockHeight } = await conn.getLatestBlockhash();
|
|
109
|
+
swapTx.recentBlockhash = blockhash;
|
|
110
|
+
swapTx.lastValidBlockHeight = lastValidBlockHeight;
|
|
111
|
+
swapTx.feePayer = trade.wallet.publicKey;
|
|
112
|
+
swapTx.sign(trade.wallet);
|
|
113
|
+
signedTransactions.push(swapTx);
|
|
114
|
+
}
|
|
115
|
+
return {
|
|
116
|
+
signedTransactions,
|
|
117
|
+
type: 'dbc_bundle_sell',
|
|
118
|
+
poolAddress: params.poolAddress,
|
|
119
|
+
tradeCount: params.trades.length,
|
|
120
|
+
jitoTipLamports: params.jitoTipLamports || 0,
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* 将 Bundle 结果转换为后端 API 请求格式
|
|
125
|
+
*/
|
|
126
|
+
export function toDbcBundleApiRequest(result) {
|
|
127
|
+
return {
|
|
128
|
+
transactions: result.signedTransactions.map((tx) => tx.serialize().toString('base64')),
|
|
129
|
+
type: result.type,
|
|
130
|
+
poolAddress: result.poolAddress,
|
|
131
|
+
tradeCount: result.tradeCount,
|
|
132
|
+
jitoTipLamports: result.jitoTipLamports,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
// ============================================================================
|
|
136
|
+
// Bundle 创建池 + 批量首买
|
|
137
|
+
// ============================================================================
|
|
138
|
+
/**
|
|
139
|
+
* 签名 DBC 创建池并捆绑多地址首买交易
|
|
140
|
+
*
|
|
141
|
+
* 交易顺序:
|
|
142
|
+
* 1. 创建池交易 (由创建者签名)
|
|
143
|
+
* 2. 创建者首买交易 (可选)
|
|
144
|
+
* 3. 多个地址的首买交易
|
|
145
|
+
* 4. 最后一笔交易包含 Jito tip
|
|
146
|
+
*
|
|
147
|
+
* @param params 创建池并捆绑首买参数
|
|
148
|
+
* @param connection 可选连接
|
|
149
|
+
*/
|
|
150
|
+
export async function signDbcCreatePoolAndBundleBuy(params, connection) {
|
|
151
|
+
const conn = getConnection(connection);
|
|
152
|
+
const client = getDbcClient(connection);
|
|
153
|
+
const signedTransactions = [];
|
|
154
|
+
const configPubkey = new PublicKey(params.configAddress);
|
|
155
|
+
// 获取配置状态,用于后续报价
|
|
156
|
+
const configState = await client.state.getPoolConfig(configPubkey);
|
|
157
|
+
const currentPoint = await getCurrentPoint(conn, configState.activationType);
|
|
158
|
+
// ============ 1. 创建池交易 ============
|
|
159
|
+
const { createPoolTx, swapBuyTx } = await client.pool.createPoolWithFirstBuy({
|
|
160
|
+
createPoolParam: {
|
|
161
|
+
baseMint: params.baseMintKeypair.publicKey,
|
|
162
|
+
config: configPubkey,
|
|
163
|
+
name: params.name,
|
|
164
|
+
symbol: params.symbol,
|
|
165
|
+
uri: params.uri,
|
|
166
|
+
payer: params.creatorWallet.publicKey,
|
|
167
|
+
poolCreator: params.creatorWallet.publicKey,
|
|
168
|
+
},
|
|
169
|
+
firstBuyParam: params.creatorBuyAmount ? {
|
|
170
|
+
buyer: params.creatorWallet.publicKey,
|
|
171
|
+
buyAmount: params.creatorBuyAmount,
|
|
172
|
+
minimumAmountOut: new BN(1),
|
|
173
|
+
referralTokenAccount: null,
|
|
174
|
+
} : undefined,
|
|
175
|
+
});
|
|
176
|
+
// 派生池地址
|
|
177
|
+
const [poolAddress] = PublicKey.findProgramAddressSync([Buffer.from('pool'), params.baseMintKeypair.publicKey.toBuffer()], new PublicKey('dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN'));
|
|
178
|
+
// 签名创建池交易
|
|
179
|
+
const { blockhash, lastValidBlockHeight } = await conn.getLatestBlockhash();
|
|
180
|
+
createPoolTx.recentBlockhash = blockhash;
|
|
181
|
+
createPoolTx.lastValidBlockHeight = lastValidBlockHeight;
|
|
182
|
+
createPoolTx.feePayer = params.creatorWallet.publicKey;
|
|
183
|
+
createPoolTx.sign(params.creatorWallet, params.baseMintKeypair);
|
|
184
|
+
signedTransactions.push(createPoolTx);
|
|
185
|
+
// ============ 2. 创建者首买交易 (如果有) ============
|
|
186
|
+
if (swapBuyTx && params.creatorBuyAmount) {
|
|
187
|
+
swapBuyTx.recentBlockhash = blockhash;
|
|
188
|
+
swapBuyTx.lastValidBlockHeight = lastValidBlockHeight;
|
|
189
|
+
swapBuyTx.feePayer = params.creatorWallet.publicKey;
|
|
190
|
+
swapBuyTx.sign(params.creatorWallet);
|
|
191
|
+
signedTransactions.push(swapBuyTx);
|
|
192
|
+
}
|
|
193
|
+
// ============ 3. 批量首买交易 ============
|
|
194
|
+
// 需要等池创建后才能获取池状态,这里使用预估的报价
|
|
195
|
+
for (let i = 0; i < params.bundleBuys.length; i++) {
|
|
196
|
+
const trade = params.bundleBuys[i];
|
|
197
|
+
// 构建买入交易
|
|
198
|
+
const buyTx = await client.pool.swap({
|
|
199
|
+
owner: trade.wallet.publicKey,
|
|
200
|
+
pool: poolAddress,
|
|
201
|
+
amountIn: trade.buyAmount,
|
|
202
|
+
minimumAmountOut: trade.minAmountOut || new BN(1),
|
|
203
|
+
swapBaseForQuote: false, // 买入 = 用 quote 换 base
|
|
204
|
+
referralTokenAccount: null,
|
|
205
|
+
});
|
|
206
|
+
// 如果是最后一笔交易,添加 Jito tip
|
|
207
|
+
if (i === params.bundleBuys.length - 1 && params.jitoTipLamports) {
|
|
208
|
+
const tipIx = buildTipInstruction(trade.wallet.publicKey, BigInt(params.jitoTipLamports));
|
|
209
|
+
buyTx.add(tipIx);
|
|
210
|
+
}
|
|
211
|
+
buyTx.recentBlockhash = blockhash;
|
|
212
|
+
buyTx.lastValidBlockHeight = lastValidBlockHeight;
|
|
213
|
+
buyTx.feePayer = trade.wallet.publicKey;
|
|
214
|
+
buyTx.sign(trade.wallet);
|
|
215
|
+
signedTransactions.push(buyTx);
|
|
216
|
+
}
|
|
217
|
+
return {
|
|
218
|
+
signedTransactions,
|
|
219
|
+
type: 'dbc_create_pool_bundle_buy',
|
|
220
|
+
poolAddress: poolAddress.toBase58(),
|
|
221
|
+
baseMint: params.baseMintKeypair.publicKey.toBase58(),
|
|
222
|
+
tradeCount: params.bundleBuys.length + (params.creatorBuyAmount ? 1 : 0),
|
|
223
|
+
jitoTipLamports: params.jitoTipLamports || 0,
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* 签名 DBC 创建池并捆绑多地址首买交易 (使用已有配置)
|
|
228
|
+
*
|
|
229
|
+
* 适用于使用平台方已有的 Config,只需创建池并首买
|
|
230
|
+
*
|
|
231
|
+
* @param params 创建池并捆绑首买参数
|
|
232
|
+
* @param connection 可选连接
|
|
233
|
+
*/
|
|
234
|
+
export async function signDbcCreatePoolBundleBuyWithConfig(params, connection) {
|
|
235
|
+
const conn = getConnection(connection);
|
|
236
|
+
const client = getDbcClient(connection);
|
|
237
|
+
const signedTransactions = [];
|
|
238
|
+
const configPubkey = new PublicKey(params.configAddress);
|
|
239
|
+
// 获取 blockhash
|
|
240
|
+
const { blockhash, lastValidBlockHeight } = await conn.getLatestBlockhash();
|
|
241
|
+
// 派生池地址
|
|
242
|
+
const [poolAddress] = PublicKey.findProgramAddressSync([Buffer.from('pool'), params.baseMintKeypair.publicKey.toBuffer()], new PublicKey('dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN'));
|
|
243
|
+
// ============ 1. 创建池交易 ============
|
|
244
|
+
const createPoolTx = await client.pool.createPool({
|
|
245
|
+
baseMint: params.baseMintKeypair.publicKey,
|
|
246
|
+
config: configPubkey,
|
|
247
|
+
name: params.name,
|
|
248
|
+
symbol: params.symbol,
|
|
249
|
+
uri: params.uri,
|
|
250
|
+
payer: params.creatorWallet.publicKey,
|
|
251
|
+
poolCreator: params.creatorWallet.publicKey,
|
|
252
|
+
});
|
|
253
|
+
createPoolTx.recentBlockhash = blockhash;
|
|
254
|
+
createPoolTx.lastValidBlockHeight = lastValidBlockHeight;
|
|
255
|
+
createPoolTx.feePayer = params.creatorWallet.publicKey;
|
|
256
|
+
createPoolTx.sign(params.creatorWallet, params.baseMintKeypair);
|
|
257
|
+
signedTransactions.push(createPoolTx);
|
|
258
|
+
// ============ 2. 批量首买交易 ============
|
|
259
|
+
for (let i = 0; i < params.bundleBuys.length; i++) {
|
|
260
|
+
const trade = params.bundleBuys[i];
|
|
261
|
+
// 构建买入交易
|
|
262
|
+
const buyTx = await client.pool.swap({
|
|
263
|
+
owner: trade.wallet.publicKey,
|
|
264
|
+
pool: poolAddress,
|
|
265
|
+
amountIn: trade.buyAmount,
|
|
266
|
+
minimumAmountOut: trade.minAmountOut || new BN(1),
|
|
267
|
+
swapBaseForQuote: false, // 买入
|
|
268
|
+
referralTokenAccount: null,
|
|
269
|
+
});
|
|
270
|
+
// 如果是最后一笔交易,添加 Jito tip
|
|
271
|
+
if (i === params.bundleBuys.length - 1 && params.jitoTipLamports) {
|
|
272
|
+
const tipIx = buildTipInstruction(trade.wallet.publicKey, BigInt(params.jitoTipLamports));
|
|
273
|
+
buyTx.add(tipIx);
|
|
274
|
+
}
|
|
275
|
+
buyTx.recentBlockhash = blockhash;
|
|
276
|
+
buyTx.lastValidBlockHeight = lastValidBlockHeight;
|
|
277
|
+
buyTx.feePayer = trade.wallet.publicKey;
|
|
278
|
+
buyTx.sign(trade.wallet);
|
|
279
|
+
signedTransactions.push(buyTx);
|
|
280
|
+
}
|
|
281
|
+
return {
|
|
282
|
+
signedTransactions,
|
|
283
|
+
type: 'dbc_create_pool_bundle_buy',
|
|
284
|
+
poolAddress: poolAddress.toBase58(),
|
|
285
|
+
baseMint: params.baseMintKeypair.publicKey.toBase58(),
|
|
286
|
+
tradeCount: params.bundleBuys.length,
|
|
287
|
+
jitoTipLamports: params.jitoTipLamports || 0,
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* 签名 DBC 通用 Bundle Swap 交易
|
|
292
|
+
*
|
|
293
|
+
* @param params Bundle 参数
|
|
294
|
+
* @param swapBaseForQuote 是否卖出 (true = 卖出 base 换 quote, false = 买入)
|
|
295
|
+
* @param connection 可选连接
|
|
296
|
+
*/
|
|
297
|
+
export async function signDbcBundleSwap(params, swapBaseForQuote, connection) {
|
|
298
|
+
if (swapBaseForQuote) {
|
|
299
|
+
return signDbcBundleSell(params, connection);
|
|
300
|
+
}
|
|
301
|
+
else {
|
|
302
|
+
return signDbcBundleBuy(params, connection);
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
//# sourceMappingURL=dbc-bundle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dbc-bundle.js","sourceRoot":"","sources":["../../../src/dex/meteora/dbc-bundle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Meteora Dynamic Bonding Curve (DBC) 集成
|
|
3
|
+
*
|
|
4
|
+
* 基于 https://github.com/MeteoraAg/dynamic-bonding-curve-sdk 源码分析
|
|
5
|
+
* DBC 是 Meteora 的代币发射平台,类似于 Pump.fun
|
|
6
|
+
*/
|
|
7
|
+
import { Connection, Keypair } from '@solana/web3.js';
|
|
8
|
+
import BN from 'bn.js';
|
|
9
|
+
import type { DbcPoolInfo, DbcSwapParams, DbcSwapQuote, DbcLockedVestingParams, MeteoraSignedResult } from './types.js';
|
|
10
|
+
/**
|
|
11
|
+
* 获取 DBC 池信息
|
|
12
|
+
* @param poolAddress 池地址
|
|
13
|
+
* @param connection 可选连接
|
|
14
|
+
*/
|
|
15
|
+
export declare function getDbcPoolInfo(poolAddress: string, connection?: Connection): Promise<DbcPoolInfo>;
|
|
16
|
+
/**
|
|
17
|
+
* 通过 Base Mint 查找 DBC 池
|
|
18
|
+
* @param baseMint Base Mint 地址
|
|
19
|
+
* @param connection 可选连接
|
|
20
|
+
*/
|
|
21
|
+
export declare function findDbcPoolByBaseMint(baseMint: string, connection?: Connection): Promise<string | null>;
|
|
22
|
+
/**
|
|
23
|
+
* 获取 DBC Swap 报价
|
|
24
|
+
* @param params Swap 参数
|
|
25
|
+
* @param connection 可选连接
|
|
26
|
+
*/
|
|
27
|
+
export declare function getDbcSwapQuote(params: DbcSwapParams, connection?: Connection): Promise<DbcSwapQuote>;
|
|
28
|
+
/**
|
|
29
|
+
* 签名 DBC Swap 交易
|
|
30
|
+
* @param params Swap 参数
|
|
31
|
+
* @param wallet 钱包
|
|
32
|
+
* @param connection 可选连接
|
|
33
|
+
*/
|
|
34
|
+
export declare function signDbcSwap(params: DbcSwapParams, wallet: Keypair, connection?: Connection): Promise<MeteoraSignedResult>;
|
|
35
|
+
/**
|
|
36
|
+
* 签名迁移到 DAMM V1 交易
|
|
37
|
+
*/
|
|
38
|
+
export declare function signDbcMigrateToDammV1(poolAddress: string, dammConfig: string, wallet: Keypair, connection?: Connection): Promise<MeteoraSignedResult>;
|
|
39
|
+
/**
|
|
40
|
+
* 签名迁移到 DAMM V2 交易
|
|
41
|
+
*/
|
|
42
|
+
export declare function signDbcMigrateToDammV2(poolAddress: string, dammV2Config: string, wallet: Keypair, connection?: Connection): Promise<MeteoraSignedResult>;
|
|
43
|
+
/**
|
|
44
|
+
* 签名领取创建者交易费
|
|
45
|
+
*/
|
|
46
|
+
export declare function signDbcClaimCreatorFee(poolAddress: string, wallet: Keypair, maxBaseAmount: BN, maxQuoteAmount: BN, connection?: Connection): Promise<MeteoraSignedResult>;
|
|
47
|
+
/**
|
|
48
|
+
* 签名领取 Partner 交易费
|
|
49
|
+
*/
|
|
50
|
+
export declare function signDbcClaimPartnerFee(poolAddress: string, wallet: Keypair, maxBaseAmount: BN, maxQuoteAmount: BN, connection?: Connection): Promise<MeteoraSignedResult>;
|
|
51
|
+
/**
|
|
52
|
+
* 签名创建锁仓交易
|
|
53
|
+
*/
|
|
54
|
+
export declare function signDbcCreateLocker(poolAddress: string, wallet: Keypair, connection?: Connection): Promise<MeteoraSignedResult>;
|
|
55
|
+
/**
|
|
56
|
+
* 计算锁仓 Vesting 参数
|
|
57
|
+
*/
|
|
58
|
+
export declare function calculateLockedVestingParams(totalVestingAmount: BN, cliffDurationSeconds: number, vestingDurationSeconds: number, vestingFrequencySeconds: number, cliffUnlockPercent: number): DbcLockedVestingParams;
|
|
59
|
+
/**
|
|
60
|
+
* 签名创建 DBC Config 交易
|
|
61
|
+
* @param params 配置参数
|
|
62
|
+
* @param configKeypair Config Keypair
|
|
63
|
+
* @param wallet 钱包
|
|
64
|
+
* @param connection 可选连接
|
|
65
|
+
*/
|
|
66
|
+
export declare function signDbcCreateConfig(params: {
|
|
67
|
+
feeClaimer: string;
|
|
68
|
+
leftoverReceiver: string;
|
|
69
|
+
quoteMint: string;
|
|
70
|
+
poolFees: {
|
|
71
|
+
baseFee: {
|
|
72
|
+
cliffFeeNumerator: BN;
|
|
73
|
+
firstFactor: number;
|
|
74
|
+
secondFactor: BN;
|
|
75
|
+
thirdFactor: BN;
|
|
76
|
+
baseFeeMode: number;
|
|
77
|
+
};
|
|
78
|
+
dynamicFee: {
|
|
79
|
+
binStep: number;
|
|
80
|
+
binStepU128: BN;
|
|
81
|
+
filterPeriod: number;
|
|
82
|
+
decayPeriod: number;
|
|
83
|
+
reductionFactor: number;
|
|
84
|
+
variableFeeControl: number;
|
|
85
|
+
maxVolatilityAccumulator: number;
|
|
86
|
+
} | null;
|
|
87
|
+
};
|
|
88
|
+
activationType: number;
|
|
89
|
+
collectFeeMode: number;
|
|
90
|
+
migrationOption: number;
|
|
91
|
+
tokenType: number;
|
|
92
|
+
tokenDecimal: number;
|
|
93
|
+
migrationQuoteThreshold: BN;
|
|
94
|
+
partnerLpPercentage: number;
|
|
95
|
+
creatorLpPercentage: number;
|
|
96
|
+
partnerLockedLpPercentage: number;
|
|
97
|
+
creatorLockedLpPercentage: number;
|
|
98
|
+
sqrtStartPrice: BN;
|
|
99
|
+
lockedVesting: DbcLockedVestingParams;
|
|
100
|
+
migrationFeeOption: number;
|
|
101
|
+
tokenSupply: {
|
|
102
|
+
preMigrationTokenSupply: BN;
|
|
103
|
+
postMigrationTokenSupply: BN;
|
|
104
|
+
} | null;
|
|
105
|
+
creatorTradingFeePercentage: number;
|
|
106
|
+
tokenUpdateAuthority: number;
|
|
107
|
+
migrationFee: {
|
|
108
|
+
feePercentage: number;
|
|
109
|
+
creatorFeePercentage: number;
|
|
110
|
+
};
|
|
111
|
+
migratedPoolFee?: {
|
|
112
|
+
collectFeeMode: number;
|
|
113
|
+
dynamicFee: number;
|
|
114
|
+
poolFeeBps: number;
|
|
115
|
+
};
|
|
116
|
+
curve: {
|
|
117
|
+
sqrtPrice: BN;
|
|
118
|
+
liquidity: BN;
|
|
119
|
+
}[];
|
|
120
|
+
}, configKeypair: Keypair, wallet: Keypair, connection?: Connection): Promise<MeteoraSignedResult>;
|
|
121
|
+
/**
|
|
122
|
+
* 签名创建 DBC Pool 交易
|
|
123
|
+
* @param params 创建池参数
|
|
124
|
+
* @param baseMintKeypair Base Mint Keypair
|
|
125
|
+
* @param wallet 钱包
|
|
126
|
+
* @param connection 可选连接
|
|
127
|
+
*/
|
|
128
|
+
export declare function signDbcCreatePool(params: {
|
|
129
|
+
config: string;
|
|
130
|
+
name: string;
|
|
131
|
+
symbol: string;
|
|
132
|
+
uri: string;
|
|
133
|
+
}, baseMintKeypair: Keypair, wallet: Keypair, connection?: Connection): Promise<MeteoraSignedResult>;
|
|
134
|
+
/**
|
|
135
|
+
* 签名创建 DBC Pool 并首次买入交易
|
|
136
|
+
* @param params 创建池并买入参数
|
|
137
|
+
* @param baseMintKeypair Base Mint Keypair
|
|
138
|
+
* @param wallet 钱包
|
|
139
|
+
* @param connection 可选连接
|
|
140
|
+
*/
|
|
141
|
+
export declare function signDbcCreatePoolWithFirstBuy(params: {
|
|
142
|
+
config: string;
|
|
143
|
+
name: string;
|
|
144
|
+
symbol: string;
|
|
145
|
+
uri: string;
|
|
146
|
+
buyAmount: BN;
|
|
147
|
+
minimumAmountOut?: BN;
|
|
148
|
+
}, baseMintKeypair: Keypair, wallet: Keypair, connection?: Connection): Promise<{
|
|
149
|
+
createPoolResult: MeteoraSignedResult;
|
|
150
|
+
buyResult?: MeteoraSignedResult;
|
|
151
|
+
}>;
|
|
152
|
+
/**
|
|
153
|
+
* 签名 Partner 提取迁移费用交易
|
|
154
|
+
*/
|
|
155
|
+
export declare function signDbcPartnerWithdrawMigrationFee(poolAddress: string, wallet: Keypair, connection?: Connection): Promise<MeteoraSignedResult>;
|
|
156
|
+
/**
|
|
157
|
+
* 签名 Partner 提取剩余资金交易
|
|
158
|
+
*/
|
|
159
|
+
export declare function signDbcPartnerWithdrawSurplus(poolAddress: string, wallet: Keypair, connection?: Connection): Promise<MeteoraSignedResult>;
|
|
160
|
+
/**
|
|
161
|
+
* 签名 Creator 提取迁移费用交易
|
|
162
|
+
*/
|
|
163
|
+
export declare function signDbcCreatorWithdrawMigrationFee(poolAddress: string, wallet: Keypair, connection?: Connection): Promise<MeteoraSignedResult>;
|
|
164
|
+
/**
|
|
165
|
+
* 签名 Creator 提取剩余资金交易
|
|
166
|
+
*/
|
|
167
|
+
export declare function signDbcCreatorWithdrawSurplus(poolAddress: string, wallet: Keypair, connection?: Connection): Promise<MeteoraSignedResult>;
|
|
168
|
+
/**
|
|
169
|
+
* 签名领取迁移后的 LP Token (用于 DAMM V1 迁移)
|
|
170
|
+
* 当池子迁移到 DAMM V1 后,创建者或合作伙伴可以通过此方法领取锁定的 LP Token
|
|
171
|
+
* @param poolAddress 池地址
|
|
172
|
+
* @param dammConfig DAMM 配置地址
|
|
173
|
+
* @param isPartner 是否是合作伙伴领取
|
|
174
|
+
* @param wallet 钱包
|
|
175
|
+
* @param connection 可选连接
|
|
176
|
+
*/
|
|
177
|
+
export declare function signDbcClaimDammV1LpToken(poolAddress: string, dammConfig: string, isPartner: boolean, wallet: Keypair, connection?: Connection): Promise<MeteoraSignedResult>;
|
|
178
|
+
/**
|
|
179
|
+
* 获取 DBC Config 信息
|
|
180
|
+
*/
|
|
181
|
+
export declare function getDbcConfigInfo(configAddress: string, connection?: Connection): Promise<any>;
|
|
182
|
+
/**
|
|
183
|
+
* 获取所有 DBC 池
|
|
184
|
+
*/
|
|
185
|
+
export declare function getAllDbcPools(connection?: Connection): Promise<any[]>;
|
|
186
|
+
/**
|
|
187
|
+
* 获取用户在 DBC 池中的余额
|
|
188
|
+
*/
|
|
189
|
+
export declare function getDbcUserBalance(poolAddress: string, userAddress: string, connection?: Connection): Promise<{
|
|
190
|
+
baseBalance: string;
|
|
191
|
+
quoteBalance: string;
|
|
192
|
+
}>;
|
|
193
|
+
//# sourceMappingURL=dbc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dbc.d.ts","sourceRoot":"","sources":["../../../src/dex/meteora/dbc.ts"],"names":[],"mappings":"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"}
|