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,367 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Raydium DEX 集成
|
|
3
|
+
* 支持 AMM V4/V5、CPMM、CLMM 池子的交易和 LP 管理
|
|
4
|
+
* @module sol/dex/raydium/raydium
|
|
5
|
+
*/
|
|
6
|
+
import { PublicKey, } from '@solana/web3.js';
|
|
7
|
+
import { Raydium, TxVersion, Percent, CurveCalculator } from '@raydium-io/raydium-sdk-v2';
|
|
8
|
+
import BN from 'bn.js';
|
|
9
|
+
/**
|
|
10
|
+
* 初始化 Raydium SDK
|
|
11
|
+
*/
|
|
12
|
+
export async function initRaydium(connection, owner) {
|
|
13
|
+
const raydium = await Raydium.load({
|
|
14
|
+
connection,
|
|
15
|
+
owner: owner?.publicKey,
|
|
16
|
+
cluster: 'mainnet',
|
|
17
|
+
disableFeatureCheck: true,
|
|
18
|
+
disableLoadToken: true,
|
|
19
|
+
});
|
|
20
|
+
if (owner) {
|
|
21
|
+
raydium.setOwner(owner.publicKey);
|
|
22
|
+
}
|
|
23
|
+
return raydium;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* 获取池子信息
|
|
27
|
+
*/
|
|
28
|
+
export async function getRaydiumPoolInfo(connection, poolId) {
|
|
29
|
+
try {
|
|
30
|
+
const raydium = await initRaydium(connection);
|
|
31
|
+
// 尝试从 API 获取池子信息
|
|
32
|
+
const poolData = await raydium.api.fetchPoolById({ ids: poolId });
|
|
33
|
+
if (!poolData || poolData.length === 0) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
const pool = poolData[0];
|
|
37
|
+
// 根据池子类型返回不同的信息结构
|
|
38
|
+
if (pool.type === 'Standard') {
|
|
39
|
+
const mintAmountA = parseFloat(String(pool.mintAmountA));
|
|
40
|
+
const mintAmountB = parseFloat(String(pool.mintAmountB));
|
|
41
|
+
const lpAmount = parseFloat(String(pool.lpAmount));
|
|
42
|
+
return {
|
|
43
|
+
id: pool.id,
|
|
44
|
+
type: pool.programId.includes('CPMMoo8L') ? 'cpmm' : 'amm',
|
|
45
|
+
mintA: {
|
|
46
|
+
address: pool.mintA.address,
|
|
47
|
+
symbol: pool.mintA.symbol,
|
|
48
|
+
decimals: pool.mintA.decimals,
|
|
49
|
+
},
|
|
50
|
+
mintB: {
|
|
51
|
+
address: pool.mintB.address,
|
|
52
|
+
symbol: pool.mintB.symbol,
|
|
53
|
+
decimals: pool.mintB.decimals,
|
|
54
|
+
},
|
|
55
|
+
lpMint: {
|
|
56
|
+
address: pool.lpMint.address,
|
|
57
|
+
decimals: pool.lpMint.decimals,
|
|
58
|
+
},
|
|
59
|
+
reserveA: BigInt(Math.floor(mintAmountA * (10 ** pool.mintA.decimals))),
|
|
60
|
+
reserveB: BigInt(Math.floor(mintAmountB * (10 ** pool.mintB.decimals))),
|
|
61
|
+
lpSupply: BigInt(Math.floor(lpAmount * (10 ** pool.lpMint.decimals))),
|
|
62
|
+
price: pool.price,
|
|
63
|
+
feeRate: pool.feeRate,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
else if (pool.type === 'Concentrated') {
|
|
67
|
+
const mintAmountA = parseFloat(String(pool.mintAmountA));
|
|
68
|
+
const mintAmountB = parseFloat(String(pool.mintAmountB));
|
|
69
|
+
return {
|
|
70
|
+
id: pool.id,
|
|
71
|
+
type: 'clmm',
|
|
72
|
+
mintA: {
|
|
73
|
+
address: pool.mintA.address,
|
|
74
|
+
symbol: pool.mintA.symbol,
|
|
75
|
+
decimals: pool.mintA.decimals,
|
|
76
|
+
},
|
|
77
|
+
mintB: {
|
|
78
|
+
address: pool.mintB.address,
|
|
79
|
+
symbol: pool.mintB.symbol,
|
|
80
|
+
decimals: pool.mintB.decimals,
|
|
81
|
+
},
|
|
82
|
+
lpMint: {
|
|
83
|
+
address: '',
|
|
84
|
+
decimals: 0,
|
|
85
|
+
},
|
|
86
|
+
reserveA: BigInt(Math.floor(mintAmountA * (10 ** pool.mintA.decimals))),
|
|
87
|
+
reserveB: BigInt(Math.floor(mintAmountB * (10 ** pool.mintB.decimals))),
|
|
88
|
+
lpSupply: BigInt(0),
|
|
89
|
+
price: pool.price,
|
|
90
|
+
feeRate: pool.feeRate,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
console.error('Failed to get Raydium pool info:', error);
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* 构建并签名 Raydium CPMM 交换交易
|
|
102
|
+
*/
|
|
103
|
+
export async function signRaydiumCpmmSwap(connection, params) {
|
|
104
|
+
try {
|
|
105
|
+
const { poolId, inputMint, amountIn, slippageBps = 100, wallet, } = params;
|
|
106
|
+
const raydium = await initRaydium(connection, wallet);
|
|
107
|
+
// 获取池子信息
|
|
108
|
+
const poolData = await raydium.api.fetchPoolById({ ids: poolId });
|
|
109
|
+
if (!poolData || poolData.length === 0) {
|
|
110
|
+
return { success: false, error: 'Pool not found' };
|
|
111
|
+
}
|
|
112
|
+
const pool = poolData[0];
|
|
113
|
+
if (pool.type !== 'Standard') {
|
|
114
|
+
return { success: false, error: 'Not a standard pool' };
|
|
115
|
+
}
|
|
116
|
+
// 获取池子 keys
|
|
117
|
+
const poolKeys = await raydium.cpmm.getCpmmPoolKeys(poolId);
|
|
118
|
+
const rpcData = await raydium.cpmm.getRpcPoolInfo(poolId);
|
|
119
|
+
const baseIn = inputMint === pool.mintA.address;
|
|
120
|
+
const amountInBN = new BN(amountIn.toString());
|
|
121
|
+
// 计算输出
|
|
122
|
+
const swapResult = CurveCalculator.swapBaseInput(amountInBN, baseIn ? rpcData.baseReserve : rpcData.quoteReserve, baseIn ? rpcData.quoteReserve : rpcData.baseReserve, rpcData.configInfo?.tradeFeeRate || new BN(25), new BN(0), // creatorFeeRate
|
|
123
|
+
new BN(0), // protocolFeeRate
|
|
124
|
+
new BN(0), // fundFeeRate
|
|
125
|
+
false);
|
|
126
|
+
// 构建交换
|
|
127
|
+
const txData = await raydium.cpmm.swap({
|
|
128
|
+
poolInfo: pool,
|
|
129
|
+
poolKeys,
|
|
130
|
+
baseIn,
|
|
131
|
+
inputAmount: amountInBN,
|
|
132
|
+
swapResult: {
|
|
133
|
+
inputAmount: swapResult.inputAmount,
|
|
134
|
+
outputAmount: swapResult.outputAmount,
|
|
135
|
+
},
|
|
136
|
+
slippage: slippageBps / 10000,
|
|
137
|
+
txVersion: TxVersion.LEGACY,
|
|
138
|
+
});
|
|
139
|
+
// 签名交易
|
|
140
|
+
const { blockhash } = await connection.getLatestBlockhash('finalized');
|
|
141
|
+
if (txData.transaction) {
|
|
142
|
+
const tx = txData.transaction;
|
|
143
|
+
tx.recentBlockhash = blockhash;
|
|
144
|
+
tx.feePayer = wallet.publicKey;
|
|
145
|
+
tx.sign(wallet);
|
|
146
|
+
return {
|
|
147
|
+
success: true,
|
|
148
|
+
signedTransaction: Buffer.from(tx.serialize()).toString('base64'),
|
|
149
|
+
signature: tx.signature ? Buffer.from(tx.signature).toString('base64') : undefined,
|
|
150
|
+
estimatedAmountOut: BigInt(swapResult.outputAmount.toString()),
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
return { success: false, error: 'Failed to build transaction' };
|
|
154
|
+
}
|
|
155
|
+
catch (error) {
|
|
156
|
+
return {
|
|
157
|
+
success: false,
|
|
158
|
+
error: error.message,
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* 构建并签名 Raydium AMM 交换交易
|
|
164
|
+
*/
|
|
165
|
+
export async function signRaydiumAmmSwap(connection, params) {
|
|
166
|
+
try {
|
|
167
|
+
const { poolId, inputMint, outputMint, amountIn, slippageBps = 100, wallet, } = params;
|
|
168
|
+
const raydium = await initRaydium(connection, wallet);
|
|
169
|
+
// 获取池子信息
|
|
170
|
+
const poolData = await raydium.api.fetchPoolById({ ids: poolId });
|
|
171
|
+
if (!poolData || poolData.length === 0) {
|
|
172
|
+
return { success: false, error: 'Pool not found' };
|
|
173
|
+
}
|
|
174
|
+
const pool = poolData[0];
|
|
175
|
+
const poolKeys = await raydium.liquidity.getAmmPoolKeys(poolId);
|
|
176
|
+
const amountInBN = new BN(amountIn.toString());
|
|
177
|
+
const slippage = slippageBps / 10000;
|
|
178
|
+
// 计算输出
|
|
179
|
+
const computeResult = raydium.liquidity.computeAmountOut({
|
|
180
|
+
poolInfo: pool,
|
|
181
|
+
amountIn: amountInBN,
|
|
182
|
+
mintIn: new PublicKey(inputMint),
|
|
183
|
+
mintOut: new PublicKey(outputMint),
|
|
184
|
+
slippage,
|
|
185
|
+
});
|
|
186
|
+
// 构建交换
|
|
187
|
+
const txData = await raydium.liquidity.swap({
|
|
188
|
+
poolInfo: pool,
|
|
189
|
+
poolKeys: poolKeys,
|
|
190
|
+
amountIn: amountInBN,
|
|
191
|
+
amountOut: computeResult.minAmountOut,
|
|
192
|
+
fixedSide: 'in',
|
|
193
|
+
inputMint,
|
|
194
|
+
txVersion: TxVersion.LEGACY,
|
|
195
|
+
});
|
|
196
|
+
// 签名交易
|
|
197
|
+
const { blockhash } = await connection.getLatestBlockhash('finalized');
|
|
198
|
+
if (txData.transaction) {
|
|
199
|
+
const tx = txData.transaction;
|
|
200
|
+
tx.recentBlockhash = blockhash;
|
|
201
|
+
tx.feePayer = wallet.publicKey;
|
|
202
|
+
tx.sign(wallet);
|
|
203
|
+
return {
|
|
204
|
+
success: true,
|
|
205
|
+
signedTransaction: Buffer.from(tx.serialize()).toString('base64'),
|
|
206
|
+
signature: tx.signature ? Buffer.from(tx.signature).toString('base64') : undefined,
|
|
207
|
+
estimatedAmountOut: BigInt(computeResult.amountOut.toString()),
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
return { success: false, error: 'Failed to build transaction' };
|
|
211
|
+
}
|
|
212
|
+
catch (error) {
|
|
213
|
+
return {
|
|
214
|
+
success: false,
|
|
215
|
+
error: error.message,
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* 构建并签名 Raydium 交换交易(自动检测池子类型)
|
|
221
|
+
*/
|
|
222
|
+
export async function signRaydiumSwap(connection, params) {
|
|
223
|
+
try {
|
|
224
|
+
const raydium = await initRaydium(connection);
|
|
225
|
+
const poolData = await raydium.api.fetchPoolById({ ids: params.poolId });
|
|
226
|
+
if (!poolData || poolData.length === 0) {
|
|
227
|
+
return { success: false, error: 'Pool not found' };
|
|
228
|
+
}
|
|
229
|
+
const pool = poolData[0];
|
|
230
|
+
const isCpmm = pool.programId.includes('CPMMoo8L');
|
|
231
|
+
if (isCpmm) {
|
|
232
|
+
return signRaydiumCpmmSwap(connection, params);
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
return signRaydiumAmmSwap(connection, params);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
catch (error) {
|
|
239
|
+
return { success: false, error: error.message };
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* 构建并签名添加 LP 交易(CPMM)
|
|
244
|
+
*/
|
|
245
|
+
export async function signRaydiumCpmmAddLp(connection, params) {
|
|
246
|
+
try {
|
|
247
|
+
const { poolId, amountA, slippageBps = 100, fixedSide = 'a', wallet, } = params;
|
|
248
|
+
const raydium = await initRaydium(connection, wallet);
|
|
249
|
+
const poolData = await raydium.api.fetchPoolById({ ids: poolId });
|
|
250
|
+
if (!poolData || poolData.length === 0) {
|
|
251
|
+
return { success: false, error: 'Pool not found' };
|
|
252
|
+
}
|
|
253
|
+
const pool = poolData[0];
|
|
254
|
+
const poolKeys = await raydium.cpmm.getCpmmPoolKeys(poolId);
|
|
255
|
+
const txData = await raydium.cpmm.addLiquidity({
|
|
256
|
+
poolInfo: pool,
|
|
257
|
+
poolKeys,
|
|
258
|
+
inputAmount: new BN(amountA.toString()),
|
|
259
|
+
slippage: new Percent(slippageBps, 10000),
|
|
260
|
+
baseIn: fixedSide === 'a',
|
|
261
|
+
txVersion: TxVersion.LEGACY,
|
|
262
|
+
});
|
|
263
|
+
const { blockhash } = await connection.getLatestBlockhash('finalized');
|
|
264
|
+
if (txData.transaction) {
|
|
265
|
+
const tx = txData.transaction;
|
|
266
|
+
tx.recentBlockhash = blockhash;
|
|
267
|
+
tx.feePayer = wallet.publicKey;
|
|
268
|
+
tx.sign(wallet);
|
|
269
|
+
return {
|
|
270
|
+
success: true,
|
|
271
|
+
signedTransaction: Buffer.from(tx.serialize()).toString('base64'),
|
|
272
|
+
signature: tx.signature ? Buffer.from(tx.signature).toString('base64') : undefined,
|
|
273
|
+
};
|
|
274
|
+
}
|
|
275
|
+
return { success: false, error: 'Failed to build transaction' };
|
|
276
|
+
}
|
|
277
|
+
catch (error) {
|
|
278
|
+
return { success: false, error: error.message };
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* 构建并签名移除 LP 交易(CPMM)
|
|
283
|
+
*/
|
|
284
|
+
export async function signRaydiumCpmmRemoveLp(connection, params) {
|
|
285
|
+
try {
|
|
286
|
+
const { poolId, lpAmount, slippageBps = 100, wallet, } = params;
|
|
287
|
+
const raydium = await initRaydium(connection, wallet);
|
|
288
|
+
const poolData = await raydium.api.fetchPoolById({ ids: poolId });
|
|
289
|
+
if (!poolData || poolData.length === 0) {
|
|
290
|
+
return { success: false, error: 'Pool not found' };
|
|
291
|
+
}
|
|
292
|
+
const pool = poolData[0];
|
|
293
|
+
const poolKeys = await raydium.cpmm.getCpmmPoolKeys(poolId);
|
|
294
|
+
const txData = await raydium.cpmm.withdrawLiquidity({
|
|
295
|
+
poolInfo: pool,
|
|
296
|
+
poolKeys,
|
|
297
|
+
lpAmount: new BN(lpAmount.toString()),
|
|
298
|
+
slippage: new Percent(slippageBps, 10000),
|
|
299
|
+
txVersion: TxVersion.LEGACY,
|
|
300
|
+
});
|
|
301
|
+
const { blockhash } = await connection.getLatestBlockhash('finalized');
|
|
302
|
+
if (txData.transaction) {
|
|
303
|
+
const tx = txData.transaction;
|
|
304
|
+
tx.recentBlockhash = blockhash;
|
|
305
|
+
tx.feePayer = wallet.publicKey;
|
|
306
|
+
tx.sign(wallet);
|
|
307
|
+
return {
|
|
308
|
+
success: true,
|
|
309
|
+
signedTransaction: Buffer.from(tx.serialize()).toString('base64'),
|
|
310
|
+
signature: tx.signature ? Buffer.from(tx.signature).toString('base64') : undefined,
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
return { success: false, error: 'Failed to build transaction' };
|
|
314
|
+
}
|
|
315
|
+
catch (error) {
|
|
316
|
+
return { success: false, error: error.message };
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* 通过代币对查找池子
|
|
321
|
+
*/
|
|
322
|
+
export async function findRaydiumPool(connection, mintA, mintB) {
|
|
323
|
+
try {
|
|
324
|
+
const raydium = await initRaydium(connection);
|
|
325
|
+
// 搜索池子
|
|
326
|
+
const pools = await raydium.api.fetchPoolByMints({
|
|
327
|
+
mint1: mintA,
|
|
328
|
+
mint2: mintB,
|
|
329
|
+
});
|
|
330
|
+
if (!pools || pools.data.length === 0) {
|
|
331
|
+
return [];
|
|
332
|
+
}
|
|
333
|
+
return pools.data.map((pool) => {
|
|
334
|
+
const mintAmountA = parseFloat(String(pool.mintAmountA));
|
|
335
|
+
const mintAmountB = parseFloat(String(pool.mintAmountB));
|
|
336
|
+
const lpAmount = parseFloat(String(pool.lpAmount || 0));
|
|
337
|
+
return {
|
|
338
|
+
id: pool.id,
|
|
339
|
+
type: pool.type === 'Concentrated' ? 'clmm' : (pool.programId.includes('CPMMoo8L') ? 'cpmm' : 'amm'),
|
|
340
|
+
mintA: {
|
|
341
|
+
address: pool.mintA.address,
|
|
342
|
+
symbol: pool.mintA.symbol,
|
|
343
|
+
decimals: pool.mintA.decimals,
|
|
344
|
+
},
|
|
345
|
+
mintB: {
|
|
346
|
+
address: pool.mintB.address,
|
|
347
|
+
symbol: pool.mintB.symbol,
|
|
348
|
+
decimals: pool.mintB.decimals,
|
|
349
|
+
},
|
|
350
|
+
lpMint: {
|
|
351
|
+
address: pool.lpMint?.address || '',
|
|
352
|
+
decimals: pool.lpMint?.decimals || 0,
|
|
353
|
+
},
|
|
354
|
+
reserveA: BigInt(Math.floor(mintAmountA * (10 ** pool.mintA.decimals))),
|
|
355
|
+
reserveB: BigInt(Math.floor(mintAmountB * (10 ** pool.mintB.decimals))),
|
|
356
|
+
lpSupply: BigInt(Math.floor(lpAmount * (10 ** (pool.lpMint?.decimals || 0)))),
|
|
357
|
+
price: pool.price,
|
|
358
|
+
feeRate: pool.feeRate,
|
|
359
|
+
};
|
|
360
|
+
});
|
|
361
|
+
}
|
|
362
|
+
catch (error) {
|
|
363
|
+
console.error('Failed to find Raydium pool:', error);
|
|
364
|
+
return [];
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
//# sourceMappingURL=raydium.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raydium.js","sourceRoot":"","sources":["../../../src/dex/raydium/raydium.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Raydium 类型定义
|
|
3
|
+
* @module sol/dex/raydium/types
|
|
4
|
+
*/
|
|
5
|
+
import { Keypair } from '@solana/web3.js';
|
|
6
|
+
/**
|
|
7
|
+
* Raydium 池子类型
|
|
8
|
+
*/
|
|
9
|
+
export type RaydiumPoolType = 'amm' | 'cpmm' | 'clmm';
|
|
10
|
+
/**
|
|
11
|
+
* Raydium 交换参数
|
|
12
|
+
*/
|
|
13
|
+
export interface RaydiumSwapParams {
|
|
14
|
+
/** 池子 ID */
|
|
15
|
+
poolId: string;
|
|
16
|
+
/** 输入代币 Mint */
|
|
17
|
+
inputMint: string;
|
|
18
|
+
/** 输出代币 Mint */
|
|
19
|
+
outputMint: string;
|
|
20
|
+
/** 输入数量 */
|
|
21
|
+
amountIn: bigint;
|
|
22
|
+
/** 最小输出数量(滑点保护) */
|
|
23
|
+
minAmountOut?: bigint;
|
|
24
|
+
/** 滑点(基点,100 = 1%) */
|
|
25
|
+
slippageBps?: number;
|
|
26
|
+
/** 签名者 */
|
|
27
|
+
wallet: Keypair;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Raydium 添加 LP 参数
|
|
31
|
+
*/
|
|
32
|
+
export interface RaydiumAddLpParams {
|
|
33
|
+
/** 池子 ID */
|
|
34
|
+
poolId: string;
|
|
35
|
+
/** 代币 A 数量 */
|
|
36
|
+
amountA: bigint;
|
|
37
|
+
/** 代币 B 数量(可选,自动计算) */
|
|
38
|
+
amountB?: bigint;
|
|
39
|
+
/** 滑点(基点) */
|
|
40
|
+
slippageBps?: number;
|
|
41
|
+
/** 固定侧('a' 或 'b') */
|
|
42
|
+
fixedSide?: 'a' | 'b';
|
|
43
|
+
/** 签名者 */
|
|
44
|
+
wallet: Keypair;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Raydium 移除 LP 参数
|
|
48
|
+
*/
|
|
49
|
+
export interface RaydiumRemoveLpParams {
|
|
50
|
+
/** 池子 ID */
|
|
51
|
+
poolId: string;
|
|
52
|
+
/** LP 代币数量 */
|
|
53
|
+
lpAmount: bigint;
|
|
54
|
+
/** 滑点(基点) */
|
|
55
|
+
slippageBps?: number;
|
|
56
|
+
/** 签名者 */
|
|
57
|
+
wallet: Keypair;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Raydium LaunchLab 创建代币参数
|
|
61
|
+
*/
|
|
62
|
+
export interface RaydiumLaunchLabParams {
|
|
63
|
+
/** 代币名称 */
|
|
64
|
+
name: string;
|
|
65
|
+
/** 代币符号 */
|
|
66
|
+
symbol: string;
|
|
67
|
+
/** 元数据 URI */
|
|
68
|
+
uri: string;
|
|
69
|
+
/** 精度(默认 6) */
|
|
70
|
+
decimals?: number;
|
|
71
|
+
/** 总供应量 */
|
|
72
|
+
supply?: bigint;
|
|
73
|
+
/** 总售卖数量 */
|
|
74
|
+
totalSellA?: bigint;
|
|
75
|
+
/** 总募资数量(以 Quote 代币计) */
|
|
76
|
+
totalFundRaisingB?: bigint;
|
|
77
|
+
/** 迁移类型 */
|
|
78
|
+
migrateType?: 'amm' | 'cpmm';
|
|
79
|
+
/** 配置 ID */
|
|
80
|
+
configId?: string;
|
|
81
|
+
/** 平台 ID */
|
|
82
|
+
platformId?: string;
|
|
83
|
+
/** 创建者同时购买数量(可选) */
|
|
84
|
+
buyAmount?: bigint;
|
|
85
|
+
/** 最小获得代币数量 */
|
|
86
|
+
minMintAAmount?: bigint;
|
|
87
|
+
/** 滑点(基点) */
|
|
88
|
+
slippageBps?: number;
|
|
89
|
+
/** 是否使用 Token-2022 */
|
|
90
|
+
token2022?: boolean;
|
|
91
|
+
/** 签名者 */
|
|
92
|
+
wallet: Keypair;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Raydium 交换结果
|
|
96
|
+
*/
|
|
97
|
+
export interface RaydiumSwapResult {
|
|
98
|
+
success: boolean;
|
|
99
|
+
/** 签名后的交易(Base64) */
|
|
100
|
+
signedTransaction?: string;
|
|
101
|
+
/** 交易签名 */
|
|
102
|
+
signature?: string;
|
|
103
|
+
/** 预估输出数量 */
|
|
104
|
+
estimatedAmountOut?: bigint;
|
|
105
|
+
/** 错误信息 */
|
|
106
|
+
error?: string;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Raydium LP 操作结果
|
|
110
|
+
*/
|
|
111
|
+
export interface RaydiumLpResult {
|
|
112
|
+
success: boolean;
|
|
113
|
+
signedTransaction?: string;
|
|
114
|
+
signature?: string;
|
|
115
|
+
/** LP 代币数量(添加时) */
|
|
116
|
+
lpAmount?: bigint;
|
|
117
|
+
/** 代币 A 数量(移除时) */
|
|
118
|
+
amountA?: bigint;
|
|
119
|
+
/** 代币 B 数量(移除时) */
|
|
120
|
+
amountB?: bigint;
|
|
121
|
+
error?: string;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Raydium LaunchLab 创建结果
|
|
125
|
+
*/
|
|
126
|
+
export interface RaydiumLaunchLabResult {
|
|
127
|
+
success: boolean;
|
|
128
|
+
/** 代币 Mint 地址 */
|
|
129
|
+
mintAddress?: string;
|
|
130
|
+
/** 池子 ID */
|
|
131
|
+
poolId?: string;
|
|
132
|
+
/** 签名后的交易(可能多笔) */
|
|
133
|
+
signedTransactions?: string[];
|
|
134
|
+
error?: string;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Raydium 池子信息
|
|
138
|
+
*/
|
|
139
|
+
export interface RaydiumPoolInfo {
|
|
140
|
+
/** 池子 ID */
|
|
141
|
+
id: string;
|
|
142
|
+
/** 池子类型 */
|
|
143
|
+
type: RaydiumPoolType;
|
|
144
|
+
/** 代币 A */
|
|
145
|
+
mintA: {
|
|
146
|
+
address: string;
|
|
147
|
+
symbol?: string;
|
|
148
|
+
decimals: number;
|
|
149
|
+
};
|
|
150
|
+
/** 代币 B */
|
|
151
|
+
mintB: {
|
|
152
|
+
address: string;
|
|
153
|
+
symbol?: string;
|
|
154
|
+
decimals: number;
|
|
155
|
+
};
|
|
156
|
+
/** LP Mint */
|
|
157
|
+
lpMint: {
|
|
158
|
+
address: string;
|
|
159
|
+
decimals: number;
|
|
160
|
+
};
|
|
161
|
+
/** 代币 A 储备 */
|
|
162
|
+
reserveA: bigint;
|
|
163
|
+
/** 代币 B 储备 */
|
|
164
|
+
reserveB: bigint;
|
|
165
|
+
/** LP 总供应 */
|
|
166
|
+
lpSupply: bigint;
|
|
167
|
+
/** 价格 */
|
|
168
|
+
price: number;
|
|
169
|
+
/** 手续费率(基点) */
|
|
170
|
+
feeRate: number;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Raydium Bundle 买入项
|
|
174
|
+
*/
|
|
175
|
+
export interface RaydiumBundleBuyItem {
|
|
176
|
+
wallet: Keypair;
|
|
177
|
+
/** SOL/Quote 数量 */
|
|
178
|
+
amountIn: bigint;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Raydium Bundle 卖出项
|
|
182
|
+
*/
|
|
183
|
+
export interface RaydiumBundleSellItem {
|
|
184
|
+
wallet: Keypair;
|
|
185
|
+
/** 代币数量 */
|
|
186
|
+
tokenAmount: bigint;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Raydium Bundle 签名结果
|
|
190
|
+
*/
|
|
191
|
+
export interface RaydiumBundleSignResult {
|
|
192
|
+
success: boolean;
|
|
193
|
+
bundleData?: {
|
|
194
|
+
transactions: Array<{
|
|
195
|
+
data: string;
|
|
196
|
+
isVersioned: boolean;
|
|
197
|
+
signature?: string;
|
|
198
|
+
}>;
|
|
199
|
+
signatures: string[];
|
|
200
|
+
tip: {
|
|
201
|
+
account: string;
|
|
202
|
+
lamports: bigint;
|
|
203
|
+
};
|
|
204
|
+
recentBlockhash: string;
|
|
205
|
+
lastValidBlockHeight: number;
|
|
206
|
+
createdAt: number;
|
|
207
|
+
};
|
|
208
|
+
error?: string;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* CPMM 池子创建参数
|
|
212
|
+
*/
|
|
213
|
+
export interface RaydiumCreateCpmmPoolParams {
|
|
214
|
+
/** 代币 A Mint */
|
|
215
|
+
mintA: string;
|
|
216
|
+
/** 代币 B Mint */
|
|
217
|
+
mintB: string;
|
|
218
|
+
/** 代币 A 初始数量 */
|
|
219
|
+
amountA: bigint;
|
|
220
|
+
/** 代币 B 初始数量 */
|
|
221
|
+
amountB: bigint;
|
|
222
|
+
/** 开放时间(Unix 时间戳,可选) */
|
|
223
|
+
openTime?: number;
|
|
224
|
+
/** 配置 ID(可选) */
|
|
225
|
+
configId?: string;
|
|
226
|
+
/** 签名者 */
|
|
227
|
+
wallet: Keypair;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* CPMM 池子创建结果
|
|
231
|
+
*/
|
|
232
|
+
export interface RaydiumCreateCpmmPoolResult {
|
|
233
|
+
success: boolean;
|
|
234
|
+
/** 池子 ID */
|
|
235
|
+
poolId?: string;
|
|
236
|
+
/** LP Mint */
|
|
237
|
+
lpMint?: string;
|
|
238
|
+
signedTransaction?: string;
|
|
239
|
+
error?: string;
|
|
240
|
+
}
|
|
241
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/dex/raydium/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dex/raydium/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Solana SDK 入口
|
|
3
|
+
* @module sol
|
|
4
|
+
*/
|
|
5
|
+
export * from './types.js';
|
|
6
|
+
export * from './constants.js';
|
|
7
|
+
export * from './utils/index.js';
|
|
8
|
+
export * from './jito/index.js';
|
|
9
|
+
export * from './nozomi/index.js';
|
|
10
|
+
export * from './token/index.js';
|
|
11
|
+
export * from './dex/index.js';
|
|
12
|
+
export * from './batch-executor/index.js';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,YAAY,CAAC;AAG3B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,iBAAiB,CAAC;AAGhC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,gBAAgB,CAAC;AAG/B,cAAc,2BAA2B,CAAC"}
|