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,275 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Metaplex Token Metadata 集成
|
|
3
|
+
* @module sol/token/metadata
|
|
4
|
+
*/
|
|
5
|
+
import { PublicKey, Transaction, TransactionInstruction, } from '@solana/web3.js';
|
|
6
|
+
import { SYSTEM_PROGRAMS } from '../constants.js';
|
|
7
|
+
// Metaplex Token Metadata Program ID
|
|
8
|
+
const TOKEN_METADATA_PROGRAM_ID = new PublicKey(SYSTEM_PROGRAMS.METADATA_PROGRAM);
|
|
9
|
+
/**
|
|
10
|
+
* 获取 Metadata PDA 地址
|
|
11
|
+
* @param mint Mint 地址
|
|
12
|
+
*/
|
|
13
|
+
export function getMetadataPDA(mint) {
|
|
14
|
+
const [pda] = PublicKey.findProgramAddressSync([
|
|
15
|
+
Buffer.from('metadata'),
|
|
16
|
+
TOKEN_METADATA_PROGRAM_ID.toBuffer(),
|
|
17
|
+
mint.toBuffer(),
|
|
18
|
+
], TOKEN_METADATA_PROGRAM_ID);
|
|
19
|
+
return pda;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* 构建 CreateMetadataAccountV3 指令
|
|
23
|
+
* 手动构建指令,避免 Metaplex SDK 版本兼容问题
|
|
24
|
+
*/
|
|
25
|
+
export function buildCreateMetadataAccountV3Instruction(params) {
|
|
26
|
+
const { metadata, mint, mintAuthority, payer, updateAuthority, name, symbol, uri, sellerFeeBasisPoints = 0, creators = null, isMutable = true, } = params;
|
|
27
|
+
// 构建指令数据
|
|
28
|
+
// CreateMetadataAccountV3 指令格式
|
|
29
|
+
const data = buildCreateMetadataV3Data({
|
|
30
|
+
name,
|
|
31
|
+
symbol,
|
|
32
|
+
uri,
|
|
33
|
+
sellerFeeBasisPoints,
|
|
34
|
+
creators,
|
|
35
|
+
isMutable,
|
|
36
|
+
});
|
|
37
|
+
return new TransactionInstruction({
|
|
38
|
+
keys: [
|
|
39
|
+
{ pubkey: metadata, isSigner: false, isWritable: true },
|
|
40
|
+
{ pubkey: mint, isSigner: false, isWritable: false },
|
|
41
|
+
{ pubkey: mintAuthority, isSigner: true, isWritable: false },
|
|
42
|
+
{ pubkey: payer, isSigner: true, isWritable: true },
|
|
43
|
+
{ pubkey: updateAuthority, isSigner: false, isWritable: false },
|
|
44
|
+
{ pubkey: new PublicKey(SYSTEM_PROGRAMS.SYSTEM_PROGRAM), isSigner: false, isWritable: false },
|
|
45
|
+
{ pubkey: new PublicKey(SYSTEM_PROGRAMS.RENT_SYSVAR), isSigner: false, isWritable: false },
|
|
46
|
+
],
|
|
47
|
+
programId: TOKEN_METADATA_PROGRAM_ID,
|
|
48
|
+
data,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* 构建 CreateMetadataAccountV3 指令数据
|
|
53
|
+
*/
|
|
54
|
+
function buildCreateMetadataV3Data(params) {
|
|
55
|
+
const { name, symbol, uri, sellerFeeBasisPoints, creators, isMutable } = params;
|
|
56
|
+
// 指令判别器:CreateMetadataAccountV3 = 33
|
|
57
|
+
const discriminator = 33;
|
|
58
|
+
// 计算缓冲区大小
|
|
59
|
+
let size = 1; // discriminator
|
|
60
|
+
size += 4 + name.length; // name (string with u32 length prefix)
|
|
61
|
+
size += 4 + symbol.length; // symbol
|
|
62
|
+
size += 4 + uri.length; // uri
|
|
63
|
+
size += 2; // sellerFeeBasisPoints (u16)
|
|
64
|
+
size += 1; // creators option flag
|
|
65
|
+
if (creators) {
|
|
66
|
+
size += 4; // creators vec length
|
|
67
|
+
size += creators.length * (32 + 1 + 1); // each creator: pubkey + verified + share
|
|
68
|
+
}
|
|
69
|
+
size += 1; // collection option flag (None)
|
|
70
|
+
size += 1; // uses option flag (None)
|
|
71
|
+
size += 1; // isMutable
|
|
72
|
+
size += 1; // collectionDetails option flag (None)
|
|
73
|
+
const buffer = Buffer.alloc(size);
|
|
74
|
+
let offset = 0;
|
|
75
|
+
// 写入 discriminator
|
|
76
|
+
buffer.writeUInt8(discriminator, offset);
|
|
77
|
+
offset += 1;
|
|
78
|
+
// 写入 name
|
|
79
|
+
buffer.writeUInt32LE(name.length, offset);
|
|
80
|
+
offset += 4;
|
|
81
|
+
buffer.write(name, offset);
|
|
82
|
+
offset += name.length;
|
|
83
|
+
// 写入 symbol
|
|
84
|
+
buffer.writeUInt32LE(symbol.length, offset);
|
|
85
|
+
offset += 4;
|
|
86
|
+
buffer.write(symbol, offset);
|
|
87
|
+
offset += symbol.length;
|
|
88
|
+
// 写入 uri
|
|
89
|
+
buffer.writeUInt32LE(uri.length, offset);
|
|
90
|
+
offset += 4;
|
|
91
|
+
buffer.write(uri, offset);
|
|
92
|
+
offset += uri.length;
|
|
93
|
+
// 写入 sellerFeeBasisPoints
|
|
94
|
+
buffer.writeUInt16LE(sellerFeeBasisPoints, offset);
|
|
95
|
+
offset += 2;
|
|
96
|
+
// 写入 creators
|
|
97
|
+
if (creators && creators.length > 0) {
|
|
98
|
+
buffer.writeUInt8(1, offset); // Some
|
|
99
|
+
offset += 1;
|
|
100
|
+
buffer.writeUInt32LE(creators.length, offset);
|
|
101
|
+
offset += 4;
|
|
102
|
+
for (const creator of creators) {
|
|
103
|
+
creator.address.toBuffer().copy(buffer, offset);
|
|
104
|
+
offset += 32;
|
|
105
|
+
buffer.writeUInt8(creator.verified ? 1 : 0, offset);
|
|
106
|
+
offset += 1;
|
|
107
|
+
buffer.writeUInt8(creator.share, offset);
|
|
108
|
+
offset += 1;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
buffer.writeUInt8(0, offset); // None
|
|
113
|
+
offset += 1;
|
|
114
|
+
}
|
|
115
|
+
// 写入 collection (None)
|
|
116
|
+
buffer.writeUInt8(0, offset);
|
|
117
|
+
offset += 1;
|
|
118
|
+
// 写入 uses (None)
|
|
119
|
+
buffer.writeUInt8(0, offset);
|
|
120
|
+
offset += 1;
|
|
121
|
+
// 写入 isMutable
|
|
122
|
+
buffer.writeUInt8(isMutable ? 1 : 0, offset);
|
|
123
|
+
offset += 1;
|
|
124
|
+
// 写入 collectionDetails (None)
|
|
125
|
+
buffer.writeUInt8(0, offset);
|
|
126
|
+
offset += 1;
|
|
127
|
+
return buffer.slice(0, offset);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* 构建并签名创建 Metadata 交易
|
|
131
|
+
* @param connection Solana 连接
|
|
132
|
+
* @param params 参数
|
|
133
|
+
*/
|
|
134
|
+
export async function signCreateMetadataTransaction(connection, params) {
|
|
135
|
+
try {
|
|
136
|
+
const { mint, mintAuthority, payer, name, symbol, uri, sellerFeeBasisPoints = 0, creators = null, isMutable = true, } = params;
|
|
137
|
+
// 获取 Metadata PDA
|
|
138
|
+
const metadataPDA = getMetadataPDA(mint);
|
|
139
|
+
// 获取 blockhash
|
|
140
|
+
const { blockhash } = await connection.getLatestBlockhash('finalized');
|
|
141
|
+
// 构建指令
|
|
142
|
+
const instruction = buildCreateMetadataAccountV3Instruction({
|
|
143
|
+
metadata: metadataPDA,
|
|
144
|
+
mint,
|
|
145
|
+
mintAuthority: mintAuthority.publicKey,
|
|
146
|
+
payer: payer.publicKey,
|
|
147
|
+
updateAuthority: mintAuthority.publicKey,
|
|
148
|
+
name,
|
|
149
|
+
symbol,
|
|
150
|
+
uri,
|
|
151
|
+
sellerFeeBasisPoints,
|
|
152
|
+
creators,
|
|
153
|
+
isMutable,
|
|
154
|
+
});
|
|
155
|
+
// 构建交易
|
|
156
|
+
const transaction = new Transaction();
|
|
157
|
+
transaction.add(instruction);
|
|
158
|
+
transaction.recentBlockhash = blockhash;
|
|
159
|
+
transaction.feePayer = payer.publicKey;
|
|
160
|
+
// 签名
|
|
161
|
+
const signers = [payer];
|
|
162
|
+
if (!payer.publicKey.equals(mintAuthority.publicKey)) {
|
|
163
|
+
signers.push(mintAuthority);
|
|
164
|
+
}
|
|
165
|
+
transaction.sign(...signers);
|
|
166
|
+
const serialized = transaction.serialize();
|
|
167
|
+
return {
|
|
168
|
+
success: true,
|
|
169
|
+
metadataAddress: metadataPDA.toBase58(),
|
|
170
|
+
signedTransaction: {
|
|
171
|
+
data: Buffer.from(serialized).toString('base64'),
|
|
172
|
+
signature: transaction.signature ? Buffer.from(transaction.signature).toString('base64') : '',
|
|
173
|
+
},
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
catch (error) {
|
|
177
|
+
return {
|
|
178
|
+
success: false,
|
|
179
|
+
error: error.message,
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* 构建 UpdateMetadataAccountV2 指令
|
|
185
|
+
*/
|
|
186
|
+
export function buildUpdateMetadataAccountV2Instruction(params) {
|
|
187
|
+
const { metadata, updateAuthority, newUpdateAuthority, name, symbol, uri, sellerFeeBasisPoints, creators, primarySaleHappened, isMutable, } = params;
|
|
188
|
+
// UpdateMetadataAccountV2 指令格式
|
|
189
|
+
// discriminator = 15
|
|
190
|
+
const discriminator = 15;
|
|
191
|
+
// 简化版本:只构建基本的更新数据
|
|
192
|
+
// 完整实现需要更复杂的序列化
|
|
193
|
+
const dataBuffer = Buffer.alloc(1024);
|
|
194
|
+
let offset = 0;
|
|
195
|
+
dataBuffer.writeUInt8(discriminator, offset);
|
|
196
|
+
offset += 1;
|
|
197
|
+
// data option (Some if any field is provided)
|
|
198
|
+
const hasData = name || symbol || uri || sellerFeeBasisPoints !== undefined || creators;
|
|
199
|
+
dataBuffer.writeUInt8(hasData ? 1 : 0, offset);
|
|
200
|
+
offset += 1;
|
|
201
|
+
if (hasData) {
|
|
202
|
+
// name
|
|
203
|
+
const nameStr = name || '';
|
|
204
|
+
dataBuffer.writeUInt32LE(nameStr.length, offset);
|
|
205
|
+
offset += 4;
|
|
206
|
+
dataBuffer.write(nameStr, offset);
|
|
207
|
+
offset += nameStr.length;
|
|
208
|
+
// symbol
|
|
209
|
+
const symbolStr = symbol || '';
|
|
210
|
+
dataBuffer.writeUInt32LE(symbolStr.length, offset);
|
|
211
|
+
offset += 4;
|
|
212
|
+
dataBuffer.write(symbolStr, offset);
|
|
213
|
+
offset += symbolStr.length;
|
|
214
|
+
// uri
|
|
215
|
+
const uriStr = uri || '';
|
|
216
|
+
dataBuffer.writeUInt32LE(uriStr.length, offset);
|
|
217
|
+
offset += 4;
|
|
218
|
+
dataBuffer.write(uriStr, offset);
|
|
219
|
+
offset += uriStr.length;
|
|
220
|
+
// sellerFeeBasisPoints
|
|
221
|
+
dataBuffer.writeUInt16LE(sellerFeeBasisPoints || 0, offset);
|
|
222
|
+
offset += 2;
|
|
223
|
+
// creators (None for simplicity)
|
|
224
|
+
dataBuffer.writeUInt8(0, offset);
|
|
225
|
+
offset += 1;
|
|
226
|
+
// collection (None)
|
|
227
|
+
dataBuffer.writeUInt8(0, offset);
|
|
228
|
+
offset += 1;
|
|
229
|
+
// uses (None)
|
|
230
|
+
dataBuffer.writeUInt8(0, offset);
|
|
231
|
+
offset += 1;
|
|
232
|
+
}
|
|
233
|
+
// newUpdateAuthority option
|
|
234
|
+
if (newUpdateAuthority) {
|
|
235
|
+
dataBuffer.writeUInt8(1, offset);
|
|
236
|
+
offset += 1;
|
|
237
|
+
newUpdateAuthority.toBuffer().copy(dataBuffer, offset);
|
|
238
|
+
offset += 32;
|
|
239
|
+
}
|
|
240
|
+
else {
|
|
241
|
+
dataBuffer.writeUInt8(0, offset);
|
|
242
|
+
offset += 1;
|
|
243
|
+
}
|
|
244
|
+
// primarySaleHappened option
|
|
245
|
+
if (primarySaleHappened !== undefined) {
|
|
246
|
+
dataBuffer.writeUInt8(1, offset);
|
|
247
|
+
offset += 1;
|
|
248
|
+
dataBuffer.writeUInt8(primarySaleHappened ? 1 : 0, offset);
|
|
249
|
+
offset += 1;
|
|
250
|
+
}
|
|
251
|
+
else {
|
|
252
|
+
dataBuffer.writeUInt8(0, offset);
|
|
253
|
+
offset += 1;
|
|
254
|
+
}
|
|
255
|
+
// isMutable option
|
|
256
|
+
if (isMutable !== undefined) {
|
|
257
|
+
dataBuffer.writeUInt8(1, offset);
|
|
258
|
+
offset += 1;
|
|
259
|
+
dataBuffer.writeUInt8(isMutable ? 1 : 0, offset);
|
|
260
|
+
offset += 1;
|
|
261
|
+
}
|
|
262
|
+
else {
|
|
263
|
+
dataBuffer.writeUInt8(0, offset);
|
|
264
|
+
offset += 1;
|
|
265
|
+
}
|
|
266
|
+
return new TransactionInstruction({
|
|
267
|
+
keys: [
|
|
268
|
+
{ pubkey: metadata, isSigner: false, isWritable: true },
|
|
269
|
+
{ pubkey: updateAuthority, isSigner: true, isWritable: false },
|
|
270
|
+
],
|
|
271
|
+
programId: TOKEN_METADATA_PROGRAM_ID,
|
|
272
|
+
data: dataBuffer.slice(0, offset),
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
//# sourceMappingURL=metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/token/metadata.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Token 创建相关类型定义
|
|
3
|
+
* @module sol/token/types
|
|
4
|
+
*/
|
|
5
|
+
import { PublicKey, Keypair } from '@solana/web3.js';
|
|
6
|
+
/**
|
|
7
|
+
* 代币标准
|
|
8
|
+
*/
|
|
9
|
+
export type TokenStandard = 'SPL' | 'TOKEN_2022';
|
|
10
|
+
/**
|
|
11
|
+
* 代币元数据(符合 Metaplex 标准)
|
|
12
|
+
*/
|
|
13
|
+
export interface TokenMetadataInput {
|
|
14
|
+
/** 代币名称 */
|
|
15
|
+
name: string;
|
|
16
|
+
/** 代币符号 */
|
|
17
|
+
symbol: string;
|
|
18
|
+
/** 代币描述 */
|
|
19
|
+
description: string;
|
|
20
|
+
/** 图片 URL(IPFS 或 HTTP) */
|
|
21
|
+
image: string;
|
|
22
|
+
/** 外部链接 */
|
|
23
|
+
externalUrl?: string;
|
|
24
|
+
/** 属性 */
|
|
25
|
+
attributes?: Array<{
|
|
26
|
+
trait_type: string;
|
|
27
|
+
value: string | number;
|
|
28
|
+
}>;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* 上传到 IPFS 的元数据 JSON 格式
|
|
32
|
+
*/
|
|
33
|
+
export interface TokenMetadataJson {
|
|
34
|
+
name: string;
|
|
35
|
+
symbol: string;
|
|
36
|
+
description: string;
|
|
37
|
+
image: string;
|
|
38
|
+
external_url?: string;
|
|
39
|
+
attributes?: Array<{
|
|
40
|
+
trait_type: string;
|
|
41
|
+
value: string | number;
|
|
42
|
+
}>;
|
|
43
|
+
properties?: {
|
|
44
|
+
files?: Array<{
|
|
45
|
+
uri: string;
|
|
46
|
+
type: string;
|
|
47
|
+
}>;
|
|
48
|
+
category?: string;
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Token-2022 扩展功能
|
|
53
|
+
*/
|
|
54
|
+
export interface Token2022Extensions {
|
|
55
|
+
/** 转账手续费(基点,如 100 = 1%) */
|
|
56
|
+
transferFee?: {
|
|
57
|
+
feeBasisPoints: number;
|
|
58
|
+
maxFee: bigint;
|
|
59
|
+
};
|
|
60
|
+
/** 不可转让 */
|
|
61
|
+
nonTransferable?: boolean;
|
|
62
|
+
/** 利息 */
|
|
63
|
+
interestBearing?: {
|
|
64
|
+
rate: number;
|
|
65
|
+
};
|
|
66
|
+
/** 永久代理 */
|
|
67
|
+
permanentDelegate?: PublicKey;
|
|
68
|
+
/** 关闭权限 */
|
|
69
|
+
closeAuthority?: PublicKey;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* 代币创建参数
|
|
73
|
+
*/
|
|
74
|
+
export interface CreateTokenParams {
|
|
75
|
+
/** 代币名称 */
|
|
76
|
+
name: string;
|
|
77
|
+
/** 代币符号 */
|
|
78
|
+
symbol: string;
|
|
79
|
+
/** 代币描述 */
|
|
80
|
+
description: string;
|
|
81
|
+
/** 精度(小数位数) */
|
|
82
|
+
decimals: number;
|
|
83
|
+
/** 初始供应量(不含精度,如 1000000 表示 100万) */
|
|
84
|
+
initialSupply: bigint;
|
|
85
|
+
/** 图片 Buffer(用于上传 IPFS) */
|
|
86
|
+
imageBuffer?: Buffer;
|
|
87
|
+
/** 图片文件名 */
|
|
88
|
+
imageFilename?: string;
|
|
89
|
+
/** 已上传的图片 URL(如果已有,则不需要 imageBuffer) */
|
|
90
|
+
imageUrl?: string;
|
|
91
|
+
/** 创建者 Keypair */
|
|
92
|
+
creator: Keypair;
|
|
93
|
+
/** Mint 权限(默认为 creator) */
|
|
94
|
+
mintAuthority?: PublicKey;
|
|
95
|
+
/** 冻结权限(null 表示不可冻结) */
|
|
96
|
+
freezeAuthority?: PublicKey | null;
|
|
97
|
+
/** 代币标准(默认 TOKEN_2022) */
|
|
98
|
+
tokenStandard?: TokenStandard;
|
|
99
|
+
/** Token-2022 扩展功能 */
|
|
100
|
+
extensions?: Token2022Extensions;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* 代币创建结果
|
|
104
|
+
*/
|
|
105
|
+
export interface CreateTokenResult {
|
|
106
|
+
/** 是否成功 */
|
|
107
|
+
success: boolean;
|
|
108
|
+
/** Mint 地址 */
|
|
109
|
+
mint?: string;
|
|
110
|
+
/** Metadata 账户地址 */
|
|
111
|
+
metadataAddress?: string;
|
|
112
|
+
/** 元数据 URI(IPFS) */
|
|
113
|
+
metadataUri?: string;
|
|
114
|
+
/** 图片 URI(IPFS) */
|
|
115
|
+
imageUri?: string;
|
|
116
|
+
/** 签名后的交易数据(用于提交后端) */
|
|
117
|
+
signedTransactions?: Array<{
|
|
118
|
+
data: string;
|
|
119
|
+
signature: string;
|
|
120
|
+
description: string;
|
|
121
|
+
}>;
|
|
122
|
+
/** 错误信息 */
|
|
123
|
+
error?: string;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Mint To 参数
|
|
127
|
+
*/
|
|
128
|
+
export interface MintToParams {
|
|
129
|
+
/** Mint 地址 */
|
|
130
|
+
mint: string;
|
|
131
|
+
/** 目标地址 */
|
|
132
|
+
destination: string;
|
|
133
|
+
/** 数量(含精度) */
|
|
134
|
+
amount: bigint;
|
|
135
|
+
/** Mint 权限 Keypair */
|
|
136
|
+
mintAuthority: Keypair;
|
|
137
|
+
/** 代币标准 */
|
|
138
|
+
tokenStandard?: TokenStandard;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Mint To 结果
|
|
142
|
+
*/
|
|
143
|
+
export interface MintToResult {
|
|
144
|
+
success: boolean;
|
|
145
|
+
/** ATA 地址 */
|
|
146
|
+
ataAddress?: string;
|
|
147
|
+
/** 签名后的交易数据 */
|
|
148
|
+
signedTransaction?: {
|
|
149
|
+
data: string;
|
|
150
|
+
signature: string;
|
|
151
|
+
};
|
|
152
|
+
error?: string;
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/token/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/token/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Solana SDK 类型定义
|
|
3
|
+
* @module sol/types
|
|
4
|
+
*/
|
|
5
|
+
import { PublicKey, Keypair } from '@solana/web3.js';
|
|
6
|
+
/**
|
|
7
|
+
* 支持的 Solana DEX
|
|
8
|
+
*/
|
|
9
|
+
export type SolanaDex = 'PUMP' | 'PUMP_SWAP' | 'RAYDIUM' | 'ORCA' | 'METEORA';
|
|
10
|
+
/**
|
|
11
|
+
* 池子类型
|
|
12
|
+
*/
|
|
13
|
+
export type PoolType = 'AMM' | 'CLMM' | 'DLMM' | 'DAMM' | 'BONDING_CURVE';
|
|
14
|
+
/**
|
|
15
|
+
* LP 目标 DEX
|
|
16
|
+
*/
|
|
17
|
+
export type LpTargetDex = 'RAYDIUM_AMM' | 'RAYDIUM_CLMM' | 'ORCA' | 'METEORA_DLMM' | 'METEORA_DAMM';
|
|
18
|
+
/**
|
|
19
|
+
* 代币发射平台
|
|
20
|
+
*/
|
|
21
|
+
export type TokenLaunchPlatform = 'SPL_TOKEN_2022' | 'SPL' | 'PUMP' | 'RAYDIUM' | 'METEORA_DBC';
|
|
22
|
+
/**
|
|
23
|
+
* Solana 钱包信息
|
|
24
|
+
*/
|
|
25
|
+
export interface SolanaWallet {
|
|
26
|
+
publicKey: PublicKey;
|
|
27
|
+
secretKey: Uint8Array;
|
|
28
|
+
address: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* 钱包生成结果
|
|
32
|
+
*/
|
|
33
|
+
export interface WalletGenerateResult {
|
|
34
|
+
publicKey: string;
|
|
35
|
+
secretKey: Uint8Array;
|
|
36
|
+
secretKeyBase58: string;
|
|
37
|
+
address: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* 代币元数据
|
|
41
|
+
*/
|
|
42
|
+
export interface TokenMetadata {
|
|
43
|
+
name: string;
|
|
44
|
+
symbol: string;
|
|
45
|
+
description: string;
|
|
46
|
+
image: string;
|
|
47
|
+
external_url?: string;
|
|
48
|
+
attributes?: Array<{
|
|
49
|
+
trait_type: string;
|
|
50
|
+
value: string | number;
|
|
51
|
+
}>;
|
|
52
|
+
properties?: {
|
|
53
|
+
files?: Array<{
|
|
54
|
+
uri: string;
|
|
55
|
+
type: string;
|
|
56
|
+
}>;
|
|
57
|
+
category?: string;
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Token-2022 创建参数
|
|
62
|
+
*/
|
|
63
|
+
export interface CreateToken2022Params {
|
|
64
|
+
name: string;
|
|
65
|
+
symbol: string;
|
|
66
|
+
decimals: number;
|
|
67
|
+
initialSupply: bigint;
|
|
68
|
+
uri: string;
|
|
69
|
+
creator: Keypair;
|
|
70
|
+
mintAuthority?: PublicKey;
|
|
71
|
+
freezeAuthority?: PublicKey | null;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* 代币创建结果
|
|
75
|
+
*/
|
|
76
|
+
export interface TokenCreateResult {
|
|
77
|
+
mint: PublicKey;
|
|
78
|
+
metadataAddress: PublicKey;
|
|
79
|
+
signature: string;
|
|
80
|
+
metadataUri?: string;
|
|
81
|
+
lpPoolAddress?: string;
|
|
82
|
+
lpSignature?: string;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* 交易参数
|
|
86
|
+
*/
|
|
87
|
+
export interface SwapParams {
|
|
88
|
+
dex: SolanaDex;
|
|
89
|
+
tokenAddress: string;
|
|
90
|
+
amount: bigint;
|
|
91
|
+
slippage: number;
|
|
92
|
+
wallet: Keypair;
|
|
93
|
+
isBuy: boolean;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* 批量交易参数
|
|
97
|
+
*/
|
|
98
|
+
export interface BatchSwapParams {
|
|
99
|
+
dex: SolanaDex;
|
|
100
|
+
tokenAddress: string;
|
|
101
|
+
wallets: Array<{
|
|
102
|
+
wallet: Keypair;
|
|
103
|
+
amount: bigint;
|
|
104
|
+
}>;
|
|
105
|
+
slippage: number;
|
|
106
|
+
isBuy: boolean;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* 交易结果
|
|
110
|
+
*/
|
|
111
|
+
export interface TransactionResult {
|
|
112
|
+
success: boolean;
|
|
113
|
+
signature?: string;
|
|
114
|
+
error?: string;
|
|
115
|
+
fee?: bigint;
|
|
116
|
+
timestamp: number;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* 批量交易结果
|
|
120
|
+
*/
|
|
121
|
+
export interface BatchTransactionResult {
|
|
122
|
+
totalCount: number;
|
|
123
|
+
successCount: number;
|
|
124
|
+
failedCount: number;
|
|
125
|
+
results: TransactionResult[];
|
|
126
|
+
signatures: string[];
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* LP 操作参数
|
|
130
|
+
*/
|
|
131
|
+
export interface LiquidityParams {
|
|
132
|
+
dex: SolanaDex;
|
|
133
|
+
poolAddress: string;
|
|
134
|
+
tokenA: string;
|
|
135
|
+
tokenB: string;
|
|
136
|
+
amountA: bigint;
|
|
137
|
+
amountB: bigint;
|
|
138
|
+
wallet: Keypair;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* LP 添加结果
|
|
142
|
+
*/
|
|
143
|
+
export interface AddLiquidityResult {
|
|
144
|
+
poolAddress: string;
|
|
145
|
+
lpTokenAmount: bigint;
|
|
146
|
+
signature: string;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* 交易类型
|
|
150
|
+
*/
|
|
151
|
+
export type TransactionType = 'BUY' | 'SELL' | 'ADD_LP' | 'REMOVE_LP' | 'CREATE' | 'TRANSFER';
|
|
152
|
+
/**
|
|
153
|
+
* 交易状态
|
|
154
|
+
*/
|
|
155
|
+
export type TransactionStatus = 'PENDING' | 'SUCCESS' | 'FAILED';
|
|
156
|
+
/**
|
|
157
|
+
* 交易流水记录
|
|
158
|
+
*/
|
|
159
|
+
export interface TransactionLog {
|
|
160
|
+
id: string;
|
|
161
|
+
chain: 'SOLANA';
|
|
162
|
+
type: TransactionType;
|
|
163
|
+
dex?: SolanaDex;
|
|
164
|
+
tokenAddress: string;
|
|
165
|
+
tokenSymbol?: string;
|
|
166
|
+
walletAddress: string;
|
|
167
|
+
amount: string;
|
|
168
|
+
solAmount?: string;
|
|
169
|
+
fee: string;
|
|
170
|
+
signature: string;
|
|
171
|
+
status: TransactionStatus;
|
|
172
|
+
timestamp: number;
|
|
173
|
+
blockTime?: number;
|
|
174
|
+
slot?: number;
|
|
175
|
+
errorMessage?: string;
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,OAAO,EAAqC,MAAM,iBAAiB,CAAC;AAIxF;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;AAE9E;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,eAAe,CAAC;AAE1E;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,cAAc,GAAG,MAAM,GAAG,cAAc,GAAG,cAAc,CAAC;AAEpG;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,GAAG,aAAa,CAAC;AAIhG;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,UAAU,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAID;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,KAAK,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;KACxB,CAAC,CAAC;IACH,UAAU,CAAC,EAAE;QACX,KAAK,CAAC,EAAE,KAAK,CAAC;YACZ,GAAG,EAAE,MAAM,CAAC;YACZ,IAAI,EAAE,MAAM,CAAC;SACd,CAAC,CAAC;QACH,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,eAAe,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,SAAS,CAAC;IAChB,eAAe,EAAE,SAAS,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAID;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,SAAS,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,SAAS,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,KAAK,CAAC;QACb,MAAM,EAAE,OAAO,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAID;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,SAAS,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAID;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE9F;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,QAAQ,CAAC;IAChB,IAAI,EAAE,eAAe,CAAC;IACtB,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AA6MH,wDAAwD;AACxD,gCAAgC"}
|