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,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Jito Bundle 类型定义
|
|
3
|
+
* @module sol/jito/types
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Jito Bundle 状态
|
|
7
|
+
*/
|
|
8
|
+
export type JitoBundleStatus = 'pending' | 'landed' | 'failed' | 'invalid' | 'dropped';
|
|
9
|
+
/**
|
|
10
|
+
* Jito Bundle 提交结果
|
|
11
|
+
*/
|
|
12
|
+
export interface JitoBundleSubmitResult {
|
|
13
|
+
success: boolean;
|
|
14
|
+
bundleId?: string;
|
|
15
|
+
error?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Jito Bundle 状态查询结果
|
|
19
|
+
*/
|
|
20
|
+
export interface JitoBundleStatusResult {
|
|
21
|
+
bundleId: string;
|
|
22
|
+
status: JitoBundleStatus;
|
|
23
|
+
slot?: number;
|
|
24
|
+
confirmationStatus?: string;
|
|
25
|
+
error?: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* 序列化的交易(用于提交到后端)
|
|
29
|
+
*/
|
|
30
|
+
export interface SerializedTransaction {
|
|
31
|
+
/** Base64 编码的交易数据 */
|
|
32
|
+
data: string;
|
|
33
|
+
/** 是否是 VersionedTransaction */
|
|
34
|
+
isVersioned: boolean;
|
|
35
|
+
/** 交易签名(如果已签名) */
|
|
36
|
+
signature?: string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Bundle 请求(提交到后端)
|
|
40
|
+
*/
|
|
41
|
+
export interface BundleRequest {
|
|
42
|
+
/** 序列化的交易列表 */
|
|
43
|
+
transactions: SerializedTransaction[];
|
|
44
|
+
/** Tip 金额(lamports) */
|
|
45
|
+
tipLamports: bigint;
|
|
46
|
+
/** Tip 账户地址 */
|
|
47
|
+
tipAccount: string;
|
|
48
|
+
/** 请求时间戳 */
|
|
49
|
+
timestamp: number;
|
|
50
|
+
/** 可选:最后有效区块高度 */
|
|
51
|
+
lastValidBlockHeight?: number;
|
|
52
|
+
/** 可选:blockhash */
|
|
53
|
+
recentBlockhash?: string;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Bundle 响应(从后端返回)
|
|
57
|
+
*/
|
|
58
|
+
export interface BundleResponse {
|
|
59
|
+
success: boolean;
|
|
60
|
+
bundleId?: string;
|
|
61
|
+
signatures?: string[];
|
|
62
|
+
error?: string;
|
|
63
|
+
/** 后端处理时间 */
|
|
64
|
+
processingTime?: number;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* 交易构建选项
|
|
68
|
+
*/
|
|
69
|
+
export interface TransactionBuildOptions {
|
|
70
|
+
/** 是否添加 Jito Tip */
|
|
71
|
+
addTip?: boolean;
|
|
72
|
+
/** Tip 金额(lamports),默认使用 JITO_CONFIG.DEFAULT_TIP_LAMPORTS */
|
|
73
|
+
tipLamports?: bigint;
|
|
74
|
+
/** 指定 Tip 账户,默认随机选择 */
|
|
75
|
+
tipAccount?: string;
|
|
76
|
+
/** 计算单元限制 */
|
|
77
|
+
computeUnitLimit?: number;
|
|
78
|
+
/** 计算单元价格(microlamports) */
|
|
79
|
+
computeUnitPrice?: number;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* 签名后的 Bundle 数据(准备提交到后端)
|
|
83
|
+
*/
|
|
84
|
+
export interface SignedBundleData {
|
|
85
|
+
/** 序列化的交易列表 */
|
|
86
|
+
transactions: SerializedTransaction[];
|
|
87
|
+
/** 所有交易签名 */
|
|
88
|
+
signatures: string[];
|
|
89
|
+
/** Tip 信息 */
|
|
90
|
+
tip: {
|
|
91
|
+
account: string;
|
|
92
|
+
lamports: bigint;
|
|
93
|
+
};
|
|
94
|
+
/** blockhash */
|
|
95
|
+
recentBlockhash: string;
|
|
96
|
+
/** 最后有效区块高度 */
|
|
97
|
+
lastValidBlockHeight: number;
|
|
98
|
+
/** 创建时间 */
|
|
99
|
+
createdAt: number;
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/jito/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,SAAS,CAAC;AAEd;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,gBAAgB,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,WAAW,EAAE,OAAO,CAAC;IACrB,kBAAkB;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,eAAe;IACf,YAAY,EAAE,qBAAqB,EAAE,CAAC;IACtC,uBAAuB;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB;IAClB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mBAAmB;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,oBAAoB;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uBAAuB;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa;IACb,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4BAA4B;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,eAAe;IACf,YAAY,EAAE,qBAAqB,EAAE,CAAC;IACtC,aAAa;IACb,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa;IACb,GAAG,EAAE;QACH,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,gBAAgB;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe;IACf,oBAAoB,EAAE,MAAM,CAAC;IAC7B,WAAW;IACX,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/jito/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Nozomi 客户端
|
|
3
|
+
* 用于发送交易到 Temporal Nozomi 服务
|
|
4
|
+
* @module sol/nozomi/client
|
|
5
|
+
*/
|
|
6
|
+
import { Connection, Keypair, Transaction, VersionedTransaction, TransactionInstruction } from '@solana/web3.js';
|
|
7
|
+
import type { NozomiClientConfig, NozomiSendOptions, NozomiSendResult, NozomiBatchSendResult, NozomiTransactionBuildOptions, NozomiRegion } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Nozomi 客户端
|
|
10
|
+
* 用于发送交易到 Temporal Nozomi 服务
|
|
11
|
+
*/
|
|
12
|
+
export declare class NozomiClient {
|
|
13
|
+
private apiKeyFast;
|
|
14
|
+
private apiKeyMev;
|
|
15
|
+
private defaultRegion;
|
|
16
|
+
private defaultUseMevProtection;
|
|
17
|
+
private timeout;
|
|
18
|
+
constructor(config: NozomiClientConfig);
|
|
19
|
+
/**
|
|
20
|
+
* 获取 Nozomi 端点 URL
|
|
21
|
+
* @param useMevProtection 是否使用 MEV 保护
|
|
22
|
+
* @param region 区域
|
|
23
|
+
*/
|
|
24
|
+
getEndpoint(useMevProtection?: boolean, region?: NozomiRegion): string;
|
|
25
|
+
/**
|
|
26
|
+
* 发送单笔交易
|
|
27
|
+
* @param transaction 交易(Transaction 或 VersionedTransaction)
|
|
28
|
+
* @param options 发送选项
|
|
29
|
+
*/
|
|
30
|
+
sendTransaction(transaction: Transaction | VersionedTransaction, options?: NozomiSendOptions): Promise<NozomiSendResult>;
|
|
31
|
+
/**
|
|
32
|
+
* 批量发送交易(并行发送,非 Bundle)
|
|
33
|
+
* @param transactions 交易列表
|
|
34
|
+
* @param options 发送选项
|
|
35
|
+
*/
|
|
36
|
+
sendTransactions(transactions: Array<Transaction | VersionedTransaction>, options?: NozomiSendOptions): Promise<NozomiBatchSendResult>;
|
|
37
|
+
/**
|
|
38
|
+
* 构建并发送交易
|
|
39
|
+
* @param connection Solana 连接(用于获取 blockhash)
|
|
40
|
+
* @param instructions 指令列表
|
|
41
|
+
* @param signers 签名者列表(第一个为 feePayer)
|
|
42
|
+
* @param buildOptions 构建选项
|
|
43
|
+
* @param sendOptions 发送选项
|
|
44
|
+
*/
|
|
45
|
+
buildAndSendTransaction(connection: Connection, instructions: TransactionInstruction[], signers: Keypair[], buildOptions?: NozomiTransactionBuildOptions, sendOptions?: NozomiSendOptions): Promise<NozomiSendResult>;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* 构建带 Nozomi Tip 的交易
|
|
49
|
+
* @param connection Solana 连接
|
|
50
|
+
* @param instructions 指令列表
|
|
51
|
+
* @param feePayer 手续费支付者
|
|
52
|
+
* @param options 构建选项
|
|
53
|
+
*/
|
|
54
|
+
export declare function buildNozomiTransaction(connection: Connection, instructions: TransactionInstruction[], feePayer: Keypair, options?: NozomiTransactionBuildOptions): Promise<Transaction>;
|
|
55
|
+
/**
|
|
56
|
+
* 将现有交易添加 Nozomi Tip
|
|
57
|
+
* 注意:这会在交易开头添加 Tip 指令
|
|
58
|
+
* @param transaction 原始交易
|
|
59
|
+
* @param feePayer 手续费支付者
|
|
60
|
+
* @param tipLamports Tip 金额
|
|
61
|
+
* @param tipAccount Tip 账户
|
|
62
|
+
*/
|
|
63
|
+
export declare function addNozomiTipToTransaction(transaction: Transaction, feePayer: Keypair, tipLamports?: bigint, tipAccount?: string): Transaction;
|
|
64
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/nozomi/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,UAAU,EACV,OAAO,EACP,WAAW,EACX,oBAAoB,EACpB,sBAAsB,EAEvB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,6BAA6B,EAC7B,YAAY,EAEb,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,uBAAuB,CAAU;IACzC,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,kBAAkB;IAQtC;;;;OAIG;IACH,WAAW,CAAC,gBAAgB,GAAE,OAAe,EAAE,MAAM,GAAE,YAAqB,GAAG,MAAM;IAMrF;;;;OAIG;IACG,eAAe,CACnB,WAAW,EAAE,WAAW,GAAG,oBAAoB,EAC/C,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,gBAAgB,CAAC;IA0D5B;;;;OAIG;IACG,gBAAgB,CACpB,YAAY,EAAE,KAAK,CAAC,WAAW,GAAG,oBAAoB,CAAC,EACvD,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,qBAAqB,CAAC;IAmBjC;;;;;;;OAOG;IACG,uBAAuB,CAC3B,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,sBAAsB,EAAE,EACtC,OAAO,EAAE,OAAO,EAAE,EAClB,YAAY,CAAC,EAAE,6BAA6B,EAC5C,WAAW,CAAC,EAAE,iBAAiB,GAC9B,OAAO,CAAC,gBAAgB,CAAC;CA0D7B;AAED;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,sBAAsB,EAAE,EACtC,QAAQ,EAAE,OAAO,EACjB,OAAO,CAAC,EAAE,6BAA6B,GACtC,OAAO,CAAC,WAAW,CAAC,CA4CtB;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,OAAO,EACjB,WAAW,GAAE,MAAmD,EAChE,UAAU,CAAC,EAAE,MAAM,GAClB,WAAW,CAgCb"}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Nozomi 客户端
|
|
3
|
+
* 用于发送交易到 Temporal Nozomi 服务
|
|
4
|
+
* @module sol/nozomi/client
|
|
5
|
+
*/
|
|
6
|
+
import { Transaction, ComputeBudgetProgram, } from '@solana/web3.js';
|
|
7
|
+
import { NOZOMI_CONFIG } from '../constants.js';
|
|
8
|
+
import { buildNozomiTipInstruction, getRandomNozomiTipAccount } from './tip.js';
|
|
9
|
+
/**
|
|
10
|
+
* Nozomi 客户端
|
|
11
|
+
* 用于发送交易到 Temporal Nozomi 服务
|
|
12
|
+
*/
|
|
13
|
+
export class NozomiClient {
|
|
14
|
+
apiKeyFast;
|
|
15
|
+
apiKeyMev;
|
|
16
|
+
defaultRegion;
|
|
17
|
+
defaultUseMevProtection;
|
|
18
|
+
timeout;
|
|
19
|
+
constructor(config) {
|
|
20
|
+
this.apiKeyFast = config.apiKeyFast;
|
|
21
|
+
this.apiKeyMev = config.apiKeyMev || config.apiKeyFast;
|
|
22
|
+
this.defaultRegion = config.defaultRegion || 'auto';
|
|
23
|
+
this.defaultUseMevProtection = config.defaultUseMevProtection || false;
|
|
24
|
+
this.timeout = config.timeout || 30000;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* 获取 Nozomi 端点 URL
|
|
28
|
+
* @param useMevProtection 是否使用 MEV 保护
|
|
29
|
+
* @param region 区域
|
|
30
|
+
*/
|
|
31
|
+
getEndpoint(useMevProtection = false, region = 'auto') {
|
|
32
|
+
const apiKey = useMevProtection ? this.apiKeyMev : this.apiKeyFast;
|
|
33
|
+
const host = NOZOMI_CONFIG.REGIONS[region] || NOZOMI_CONFIG.REGIONS.auto;
|
|
34
|
+
return `https://${host}/?c=${apiKey}`;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* 发送单笔交易
|
|
38
|
+
* @param transaction 交易(Transaction 或 VersionedTransaction)
|
|
39
|
+
* @param options 发送选项
|
|
40
|
+
*/
|
|
41
|
+
async sendTransaction(transaction, options) {
|
|
42
|
+
const useMevProtection = options?.useMevProtection ?? this.defaultUseMevProtection;
|
|
43
|
+
const region = options?.region ?? this.defaultRegion;
|
|
44
|
+
const endpoint = this.getEndpoint(useMevProtection, region);
|
|
45
|
+
const startTime = Date.now();
|
|
46
|
+
try {
|
|
47
|
+
// 序列化交易
|
|
48
|
+
const serialized = transaction.serialize();
|
|
49
|
+
const base64Tx = Buffer.from(serialized).toString('base64');
|
|
50
|
+
// 发送请求
|
|
51
|
+
const response = await fetch(endpoint, {
|
|
52
|
+
method: 'POST',
|
|
53
|
+
headers: { 'Content-Type': 'application/json' },
|
|
54
|
+
body: JSON.stringify({
|
|
55
|
+
jsonrpc: '2.0',
|
|
56
|
+
id: 1,
|
|
57
|
+
method: 'sendTransaction',
|
|
58
|
+
params: [
|
|
59
|
+
base64Tx,
|
|
60
|
+
{
|
|
61
|
+
encoding: 'base64',
|
|
62
|
+
skipPreflight: options?.skipPreflight ?? true,
|
|
63
|
+
maxRetries: options?.maxRetries ?? 0,
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
}),
|
|
67
|
+
signal: AbortSignal.timeout(this.timeout),
|
|
68
|
+
});
|
|
69
|
+
const result = await response.json();
|
|
70
|
+
const latency = Date.now() - startTime;
|
|
71
|
+
if (result.error) {
|
|
72
|
+
return {
|
|
73
|
+
success: false,
|
|
74
|
+
error: `${result.error.message}${result.error.data ? `: ${result.error.data}` : ''}`,
|
|
75
|
+
latency,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
return {
|
|
79
|
+
success: true,
|
|
80
|
+
signature: result.result,
|
|
81
|
+
latency,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
const latency = Date.now() - startTime;
|
|
86
|
+
return {
|
|
87
|
+
success: false,
|
|
88
|
+
error: error instanceof Error ? error.message : String(error),
|
|
89
|
+
latency,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* 批量发送交易(并行发送,非 Bundle)
|
|
95
|
+
* @param transactions 交易列表
|
|
96
|
+
* @param options 发送选项
|
|
97
|
+
*/
|
|
98
|
+
async sendTransactions(transactions, options) {
|
|
99
|
+
const startTime = Date.now();
|
|
100
|
+
const results = await Promise.all(transactions.map((tx) => this.sendTransaction(tx, options)));
|
|
101
|
+
const successCount = results.filter((r) => r.success).length;
|
|
102
|
+
const failCount = results.length - successCount;
|
|
103
|
+
return {
|
|
104
|
+
total: transactions.length,
|
|
105
|
+
successCount,
|
|
106
|
+
failCount,
|
|
107
|
+
results,
|
|
108
|
+
totalLatency: Date.now() - startTime,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* 构建并发送交易
|
|
113
|
+
* @param connection Solana 连接(用于获取 blockhash)
|
|
114
|
+
* @param instructions 指令列表
|
|
115
|
+
* @param signers 签名者列表(第一个为 feePayer)
|
|
116
|
+
* @param buildOptions 构建选项
|
|
117
|
+
* @param sendOptions 发送选项
|
|
118
|
+
*/
|
|
119
|
+
async buildAndSendTransaction(connection, instructions, signers, buildOptions, sendOptions) {
|
|
120
|
+
if (signers.length === 0) {
|
|
121
|
+
return {
|
|
122
|
+
success: false,
|
|
123
|
+
error: 'At least one signer (feePayer) is required',
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
const feePayer = signers[0];
|
|
127
|
+
const { blockhash } = await connection.getLatestBlockhash('finalized');
|
|
128
|
+
const transaction = new Transaction();
|
|
129
|
+
// 添加计算预算指令
|
|
130
|
+
if (buildOptions?.computeUnitPrice) {
|
|
131
|
+
transaction.add(ComputeBudgetProgram.setComputeUnitPrice({
|
|
132
|
+
microLamports: buildOptions.computeUnitPrice,
|
|
133
|
+
}));
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
// 使用默认推荐值
|
|
137
|
+
transaction.add(ComputeBudgetProgram.setComputeUnitPrice({
|
|
138
|
+
microLamports: NOZOMI_CONFIG.RECOMMENDED_PRIORITY_FEE,
|
|
139
|
+
}));
|
|
140
|
+
}
|
|
141
|
+
if (buildOptions?.computeUnitLimit) {
|
|
142
|
+
transaction.add(ComputeBudgetProgram.setComputeUnitLimit({
|
|
143
|
+
units: buildOptions.computeUnitLimit,
|
|
144
|
+
}));
|
|
145
|
+
}
|
|
146
|
+
// 添加 Nozomi Tip(必须在业务指令之前)
|
|
147
|
+
if (buildOptions?.addTip !== false) {
|
|
148
|
+
const tipLamports = buildOptions?.tipLamports || BigInt(NOZOMI_CONFIG.DEFAULT_TIP_LAMPORTS);
|
|
149
|
+
transaction.add(buildNozomiTipInstruction(feePayer.publicKey, tipLamports, buildOptions?.tipAccount));
|
|
150
|
+
}
|
|
151
|
+
// 添加业务指令
|
|
152
|
+
transaction.add(...instructions);
|
|
153
|
+
// 设置交易属性
|
|
154
|
+
transaction.recentBlockhash = blockhash;
|
|
155
|
+
transaction.feePayer = feePayer.publicKey;
|
|
156
|
+
// 签名
|
|
157
|
+
transaction.sign(...signers);
|
|
158
|
+
// 发送
|
|
159
|
+
return this.sendTransaction(transaction, sendOptions);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* 构建带 Nozomi Tip 的交易
|
|
164
|
+
* @param connection Solana 连接
|
|
165
|
+
* @param instructions 指令列表
|
|
166
|
+
* @param feePayer 手续费支付者
|
|
167
|
+
* @param options 构建选项
|
|
168
|
+
*/
|
|
169
|
+
export async function buildNozomiTransaction(connection, instructions, feePayer, options) {
|
|
170
|
+
const { blockhash } = await connection.getLatestBlockhash('finalized');
|
|
171
|
+
const transaction = new Transaction();
|
|
172
|
+
// 添加计算预算指令
|
|
173
|
+
if (options?.computeUnitPrice) {
|
|
174
|
+
transaction.add(ComputeBudgetProgram.setComputeUnitPrice({
|
|
175
|
+
microLamports: options.computeUnitPrice,
|
|
176
|
+
}));
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
transaction.add(ComputeBudgetProgram.setComputeUnitPrice({
|
|
180
|
+
microLamports: NOZOMI_CONFIG.RECOMMENDED_PRIORITY_FEE,
|
|
181
|
+
}));
|
|
182
|
+
}
|
|
183
|
+
if (options?.computeUnitLimit) {
|
|
184
|
+
transaction.add(ComputeBudgetProgram.setComputeUnitLimit({
|
|
185
|
+
units: options.computeUnitLimit,
|
|
186
|
+
}));
|
|
187
|
+
}
|
|
188
|
+
// 添加 Nozomi Tip(必须在业务指令之前)
|
|
189
|
+
if (options?.addTip !== false) {
|
|
190
|
+
const tipLamports = options?.tipLamports || BigInt(NOZOMI_CONFIG.DEFAULT_TIP_LAMPORTS);
|
|
191
|
+
transaction.add(buildNozomiTipInstruction(feePayer.publicKey, tipLamports, options?.tipAccount));
|
|
192
|
+
}
|
|
193
|
+
// 添加业务指令
|
|
194
|
+
transaction.add(...instructions);
|
|
195
|
+
// 设置交易属性
|
|
196
|
+
transaction.recentBlockhash = blockhash;
|
|
197
|
+
transaction.feePayer = feePayer.publicKey;
|
|
198
|
+
return transaction;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* 将现有交易添加 Nozomi Tip
|
|
202
|
+
* 注意:这会在交易开头添加 Tip 指令
|
|
203
|
+
* @param transaction 原始交易
|
|
204
|
+
* @param feePayer 手续费支付者
|
|
205
|
+
* @param tipLamports Tip 金额
|
|
206
|
+
* @param tipAccount Tip 账户
|
|
207
|
+
*/
|
|
208
|
+
export function addNozomiTipToTransaction(transaction, feePayer, tipLamports = BigInt(NOZOMI_CONFIG.DEFAULT_TIP_LAMPORTS), tipAccount) {
|
|
209
|
+
const tipInstruction = buildNozomiTipInstruction(feePayer.publicKey, tipLamports, tipAccount || getRandomNozomiTipAccount());
|
|
210
|
+
// 创建新交易,先添加 tip,再添加原有指令
|
|
211
|
+
const newTransaction = new Transaction();
|
|
212
|
+
// 复制计算预算指令(如果有)
|
|
213
|
+
const computeBudgetInstructions = transaction.instructions.filter((ix) => ix.programId.toBase58() === 'ComputeBudget111111111111111111111111111111');
|
|
214
|
+
const otherInstructions = transaction.instructions.filter((ix) => ix.programId.toBase58() !== 'ComputeBudget111111111111111111111111111111');
|
|
215
|
+
// 先添加计算预算,再添加 tip,最后添加其他指令
|
|
216
|
+
newTransaction.add(...computeBudgetInstructions);
|
|
217
|
+
newTransaction.add(tipInstruction);
|
|
218
|
+
newTransaction.add(...otherInstructions);
|
|
219
|
+
// 复制交易属性
|
|
220
|
+
if (transaction.recentBlockhash) {
|
|
221
|
+
newTransaction.recentBlockhash = transaction.recentBlockhash;
|
|
222
|
+
}
|
|
223
|
+
if (transaction.feePayer) {
|
|
224
|
+
newTransaction.feePayer = transaction.feePayer;
|
|
225
|
+
}
|
|
226
|
+
return newTransaction;
|
|
227
|
+
}
|
|
228
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/nozomi/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/nozomi/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/nozomi/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Nozomi Tip 相关功能
|
|
3
|
+
* @module sol/nozomi/tip
|
|
4
|
+
*/
|
|
5
|
+
import { PublicKey, TransactionInstruction } from '@solana/web3.js';
|
|
6
|
+
/**
|
|
7
|
+
* 随机选择一个 Tip 账户
|
|
8
|
+
* @returns Tip 账户地址
|
|
9
|
+
*/
|
|
10
|
+
export declare function getRandomNozomiTipAccount(): string;
|
|
11
|
+
/**
|
|
12
|
+
* 获取所有 Tip 账户
|
|
13
|
+
* @returns Tip 账户列表
|
|
14
|
+
*/
|
|
15
|
+
export declare function getAllNozomiTipAccounts(): string[];
|
|
16
|
+
/**
|
|
17
|
+
* 验证是否是有效的 Nozomi Tip 账户
|
|
18
|
+
* @param address 地址
|
|
19
|
+
*/
|
|
20
|
+
export declare function isValidNozomiTipAccount(address: string): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* 构建 Nozomi Tip 指令
|
|
23
|
+
* @param fromPubkey 付款者公钥
|
|
24
|
+
* @param tipLamports Tip 金额(lamports),默认 0.001 SOL
|
|
25
|
+
* @param tipAccount 可选:指定 Tip 账户,默认随机选择
|
|
26
|
+
* @returns TransactionInstruction
|
|
27
|
+
*/
|
|
28
|
+
export declare function buildNozomiTipInstruction(fromPubkey: PublicKey, tipLamports?: bigint, tipAccount?: string): TransactionInstruction;
|
|
29
|
+
/**
|
|
30
|
+
* 计算推荐的 Tip 金额
|
|
31
|
+
* 根据优先级计算
|
|
32
|
+
* @param priority 优先级 (1-10,10 最高)
|
|
33
|
+
* @returns 推荐的 Tip 金额(lamports)
|
|
34
|
+
*/
|
|
35
|
+
export declare function calculateRecommendedNozomiTip(priority?: number): bigint;
|
|
36
|
+
/**
|
|
37
|
+
* Nozomi Tip 金额预设
|
|
38
|
+
*/
|
|
39
|
+
export declare const NOZOMI_TIP_PRESETS: {
|
|
40
|
+
/** 最低 tip (0.001 SOL) */
|
|
41
|
+
readonly LOW: bigint;
|
|
42
|
+
/** 标准 tip (0.001 SOL) */
|
|
43
|
+
readonly STANDARD: bigint;
|
|
44
|
+
/** 中等 tip (0.002 SOL) */
|
|
45
|
+
readonly MEDIUM: bigint;
|
|
46
|
+
/** 高 tip (0.005 SOL) */
|
|
47
|
+
readonly HIGH: bigint;
|
|
48
|
+
/** 紧急 tip (0.01 SOL) */
|
|
49
|
+
readonly URGENT: bigint;
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=tip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tip.d.ts","sourceRoot":"","sources":["../../src/nozomi/tip.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,SAAS,EAET,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AAGzB;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAIlD;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,EAAE,CAElD;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,SAAS,EACrB,WAAW,GAAE,MAAmD,EAChE,UAAU,CAAC,EAAE,MAAM,GAClB,sBAAsB,CAaxB;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,QAAQ,GAAE,MAAU,GAAG,MAAM,CAa1E;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB;IAC7B,yBAAyB;;IAEzB,yBAAyB;;IAEzB,yBAAyB;;IAEzB,wBAAwB;;IAExB,wBAAwB;;CAEhB,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Nozomi Tip 相关功能
|
|
3
|
+
* @module sol/nozomi/tip
|
|
4
|
+
*/
|
|
5
|
+
import { PublicKey, SystemProgram, } from '@solana/web3.js';
|
|
6
|
+
import { NOZOMI_CONFIG } from '../constants.js';
|
|
7
|
+
/**
|
|
8
|
+
* 随机选择一个 Tip 账户
|
|
9
|
+
* @returns Tip 账户地址
|
|
10
|
+
*/
|
|
11
|
+
export function getRandomNozomiTipAccount() {
|
|
12
|
+
const accounts = NOZOMI_CONFIG.TIP_ACCOUNTS;
|
|
13
|
+
const index = Math.floor(Math.random() * accounts.length);
|
|
14
|
+
return accounts[index];
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* 获取所有 Tip 账户
|
|
18
|
+
* @returns Tip 账户列表
|
|
19
|
+
*/
|
|
20
|
+
export function getAllNozomiTipAccounts() {
|
|
21
|
+
return [...NOZOMI_CONFIG.TIP_ACCOUNTS];
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* 验证是否是有效的 Nozomi Tip 账户
|
|
25
|
+
* @param address 地址
|
|
26
|
+
*/
|
|
27
|
+
export function isValidNozomiTipAccount(address) {
|
|
28
|
+
return NOZOMI_CONFIG.TIP_ACCOUNTS.includes(address);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* 构建 Nozomi Tip 指令
|
|
32
|
+
* @param fromPubkey 付款者公钥
|
|
33
|
+
* @param tipLamports Tip 金额(lamports),默认 0.001 SOL
|
|
34
|
+
* @param tipAccount 可选:指定 Tip 账户,默认随机选择
|
|
35
|
+
* @returns TransactionInstruction
|
|
36
|
+
*/
|
|
37
|
+
export function buildNozomiTipInstruction(fromPubkey, tipLamports = BigInt(NOZOMI_CONFIG.DEFAULT_TIP_LAMPORTS), tipAccount) {
|
|
38
|
+
const tipAccountAddress = tipAccount || getRandomNozomiTipAccount();
|
|
39
|
+
// 确保 tip 金额不低于最小值
|
|
40
|
+
const finalTip = tipLamports < BigInt(NOZOMI_CONFIG.MIN_TIP_LAMPORTS)
|
|
41
|
+
? BigInt(NOZOMI_CONFIG.MIN_TIP_LAMPORTS)
|
|
42
|
+
: tipLamports;
|
|
43
|
+
return SystemProgram.transfer({
|
|
44
|
+
fromPubkey,
|
|
45
|
+
toPubkey: new PublicKey(tipAccountAddress),
|
|
46
|
+
lamports: finalTip,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* 计算推荐的 Tip 金额
|
|
51
|
+
* 根据优先级计算
|
|
52
|
+
* @param priority 优先级 (1-10,10 最高)
|
|
53
|
+
* @returns 推荐的 Tip 金额(lamports)
|
|
54
|
+
*/
|
|
55
|
+
export function calculateRecommendedNozomiTip(priority = 5) {
|
|
56
|
+
// 基础 tip 0.001 SOL
|
|
57
|
+
const baseTip = BigInt(NOZOMI_CONFIG.DEFAULT_TIP_LAMPORTS);
|
|
58
|
+
// 根据优先级增加(1-10 映射到 1x - 3x)
|
|
59
|
+
const priorityMultiplier = 1 + (priority / 10) * 2;
|
|
60
|
+
const tip = BigInt(Math.floor(Number(baseTip) * priorityMultiplier));
|
|
61
|
+
// 确保不低于最小值
|
|
62
|
+
return tip < BigInt(NOZOMI_CONFIG.MIN_TIP_LAMPORTS)
|
|
63
|
+
? BigInt(NOZOMI_CONFIG.MIN_TIP_LAMPORTS)
|
|
64
|
+
: tip;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Nozomi Tip 金额预设
|
|
68
|
+
*/
|
|
69
|
+
export const NOZOMI_TIP_PRESETS = {
|
|
70
|
+
/** 最低 tip (0.001 SOL) */
|
|
71
|
+
LOW: BigInt(1_000_000),
|
|
72
|
+
/** 标准 tip (0.001 SOL) */
|
|
73
|
+
STANDARD: BigInt(1_000_000),
|
|
74
|
+
/** 中等 tip (0.002 SOL) */
|
|
75
|
+
MEDIUM: BigInt(2_000_000),
|
|
76
|
+
/** 高 tip (0.005 SOL) */
|
|
77
|
+
HIGH: BigInt(5_000_000),
|
|
78
|
+
/** 紧急 tip (0.01 SOL) */
|
|
79
|
+
URGENT: BigInt(10_000_000),
|
|
80
|
+
};
|
|
81
|
+
//# sourceMappingURL=tip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tip.js","sourceRoot":"","sources":["../../src/nozomi/tip.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,SAAS,EACT,aAAa,GAEd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;;GAGG;AACH,MAAM,UAAU,yBAAyB;IACvC,MAAM,QAAQ,GAAG,aAAa,CAAC,YAAY,CAAC;IAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1D,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO,CAAC,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;AACzC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAe;IACrD,OAAQ,aAAa,CAAC,YAAkC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC7E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CACvC,UAAqB,EACrB,cAAsB,MAAM,CAAC,aAAa,CAAC,oBAAoB,CAAC,EAChE,UAAmB;IAEnB,MAAM,iBAAiB,GAAG,UAAU,IAAI,yBAAyB,EAAE,CAAC;IAEpE,kBAAkB;IAClB,MAAM,QAAQ,GAAG,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC;QACnE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC;QACxC,CAAC,CAAC,WAAW,CAAC;IAEhB,OAAO,aAAa,CAAC,QAAQ,CAAC;QAC5B,UAAU;QACV,QAAQ,EAAE,IAAI,SAAS,CAAC,iBAAiB,CAAC;QAC1C,QAAQ,EAAE,QAAQ;KACnB,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAAC,WAAmB,CAAC;IAChE,mBAAmB;IACnB,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;IAE3D,4BAA4B;IAC5B,MAAM,kBAAkB,GAAG,CAAC,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IAEnD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC;IAErE,WAAW;IACX,OAAO,GAAG,GAAG,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC;QACjD,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC;QACxC,CAAC,CAAC,GAAG,CAAC;AACV,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,yBAAyB;IACzB,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC;IACtB,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC;IAC3B,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC;IACzB,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC;IACvB,wBAAwB;IACxB,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC;CAClB,CAAC"}
|