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.
Files changed (318) hide show
  1. package/README.md +160 -0
  2. package/dist/batch-executor/accounts.d.ts +141 -0
  3. package/dist/batch-executor/accounts.d.ts.map +1 -0
  4. package/dist/batch-executor/accounts.js +98 -0
  5. package/dist/batch-executor/accounts.js.map +1 -0
  6. package/dist/batch-executor/batch-executor.d.ts +27 -0
  7. package/dist/batch-executor/batch-executor.d.ts.map +1 -0
  8. package/dist/batch-executor/batch-executor.js +286 -0
  9. package/dist/batch-executor/batch-executor.js.map +1 -0
  10. package/dist/batch-executor/index.d.ts +4 -0
  11. package/dist/batch-executor/index.d.ts.map +1 -0
  12. package/dist/batch-executor/index.js +6 -0
  13. package/dist/batch-executor/index.js.map +1 -0
  14. package/dist/batch-executor/types.d.ts +87 -0
  15. package/dist/batch-executor/types.d.ts.map +1 -0
  16. package/dist/batch-executor/types.js +42 -0
  17. package/dist/batch-executor/types.js.map +1 -0
  18. package/dist/constants.d.ts +151 -0
  19. package/dist/constants.d.ts.map +1 -0
  20. package/dist/constants.js +189 -0
  21. package/dist/constants.js.map +1 -0
  22. package/dist/dex/blockrazor/client.d.ts +52 -0
  23. package/dist/dex/blockrazor/client.d.ts.map +1 -0
  24. package/dist/dex/blockrazor/client.js +97 -0
  25. package/dist/dex/blockrazor/client.js.map +1 -0
  26. package/dist/dex/blockrazor/constants.d.ts +35 -0
  27. package/dist/dex/blockrazor/constants.d.ts.map +1 -0
  28. package/dist/dex/blockrazor/constants.js +56 -0
  29. package/dist/dex/blockrazor/constants.js.map +1 -0
  30. package/dist/dex/blockrazor/geyser.d.ts +129 -0
  31. package/dist/dex/blockrazor/geyser.d.ts.map +1 -0
  32. package/dist/dex/blockrazor/geyser.js +531 -0
  33. package/dist/dex/blockrazor/geyser.js.map +1 -0
  34. package/dist/dex/blockrazor/index.d.ts +19 -0
  35. package/dist/dex/blockrazor/index.d.ts.map +1 -0
  36. package/dist/dex/blockrazor/index.js +24 -0
  37. package/dist/dex/blockrazor/index.js.map +1 -0
  38. package/dist/dex/blockrazor/send.d.ts +136 -0
  39. package/dist/dex/blockrazor/send.d.ts.map +1 -0
  40. package/dist/dex/blockrazor/send.js +255 -0
  41. package/dist/dex/blockrazor/send.js.map +1 -0
  42. package/dist/dex/blockrazor/types.d.ts +192 -0
  43. package/dist/dex/blockrazor/types.d.ts.map +1 -0
  44. package/dist/dex/blockrazor/types.js +6 -0
  45. package/dist/dex/blockrazor/types.js.map +1 -0
  46. package/dist/dex/index.d.ts +11 -0
  47. package/dist/dex/index.d.ts.map +1 -0
  48. package/dist/dex/index.js +17 -0
  49. package/dist/dex/index.js.map +1 -0
  50. package/dist/dex/jup/client.d.ts +34 -0
  51. package/dist/dex/jup/client.d.ts.map +1 -0
  52. package/dist/dex/jup/client.js +111 -0
  53. package/dist/dex/jup/client.js.map +1 -0
  54. package/dist/dex/jup/index.d.ts +17 -0
  55. package/dist/dex/jup/index.d.ts.map +1 -0
  56. package/dist/dex/jup/index.js +149 -0
  57. package/dist/dex/jup/index.js.map +1 -0
  58. package/dist/dex/jup/legacy.d.ts +624 -0
  59. package/dist/dex/jup/legacy.d.ts.map +1 -0
  60. package/dist/dex/jup/legacy.js +417 -0
  61. package/dist/dex/jup/legacy.js.map +1 -0
  62. package/dist/dex/jup/lend.d.ts +641 -0
  63. package/dist/dex/jup/lend.d.ts.map +1 -0
  64. package/dist/dex/jup/lend.js +604 -0
  65. package/dist/dex/jup/lend.js.map +1 -0
  66. package/dist/dex/jup/portfolio.d.ts +363 -0
  67. package/dist/dex/jup/portfolio.d.ts.map +1 -0
  68. package/dist/dex/jup/portfolio.js +368 -0
  69. package/dist/dex/jup/portfolio.js.map +1 -0
  70. package/dist/dex/jup/price.d.ts +174 -0
  71. package/dist/dex/jup/price.d.ts.map +1 -0
  72. package/dist/dex/jup/price.js +226 -0
  73. package/dist/dex/jup/price.js.map +1 -0
  74. package/dist/dex/jup/recurring.d.ts +438 -0
  75. package/dist/dex/jup/recurring.d.ts.map +1 -0
  76. package/dist/dex/jup/recurring.js +321 -0
  77. package/dist/dex/jup/recurring.js.map +1 -0
  78. package/dist/dex/jup/send.d.ts +283 -0
  79. package/dist/dex/jup/send.d.ts.map +1 -0
  80. package/dist/dex/jup/send.js +296 -0
  81. package/dist/dex/jup/send.js.map +1 -0
  82. package/dist/dex/jup/studio.d.ts +458 -0
  83. package/dist/dex/jup/studio.d.ts.map +1 -0
  84. package/dist/dex/jup/studio.js +489 -0
  85. package/dist/dex/jup/studio.js.map +1 -0
  86. package/dist/dex/jup/tokens.d.ts +768 -0
  87. package/dist/dex/jup/tokens.d.ts.map +1 -0
  88. package/dist/dex/jup/tokens.js +698 -0
  89. package/dist/dex/jup/tokens.js.map +1 -0
  90. package/dist/dex/jup/trigger.d.ts +512 -0
  91. package/dist/dex/jup/trigger.d.ts.map +1 -0
  92. package/dist/dex/jup/trigger.js +398 -0
  93. package/dist/dex/jup/trigger.js.map +1 -0
  94. package/dist/dex/jup/types.d.ts +434 -0
  95. package/dist/dex/jup/types.d.ts.map +1 -0
  96. package/dist/dex/jup/types.js +6 -0
  97. package/dist/dex/jup/types.js.map +1 -0
  98. package/dist/dex/jup/ultra.d.ts +647 -0
  99. package/dist/dex/jup/ultra.d.ts.map +1 -0
  100. package/dist/dex/jup/ultra.js +854 -0
  101. package/dist/dex/jup/ultra.js.map +1 -0
  102. package/dist/dex/meteora/client.d.ts +77 -0
  103. package/dist/dex/meteora/client.d.ts.map +1 -0
  104. package/dist/dex/meteora/client.js +220 -0
  105. package/dist/dex/meteora/client.js.map +1 -0
  106. package/dist/dex/meteora/damm-v1-bundle.d.ts +62 -0
  107. package/dist/dex/meteora/damm-v1-bundle.d.ts.map +1 -0
  108. package/dist/dex/meteora/damm-v1-bundle.js +113 -0
  109. package/dist/dex/meteora/damm-v1-bundle.js.map +1 -0
  110. package/dist/dex/meteora/damm-v1.d.ts +119 -0
  111. package/dist/dex/meteora/damm-v1.d.ts.map +1 -0
  112. package/dist/dex/meteora/damm-v1.js +316 -0
  113. package/dist/dex/meteora/damm-v1.js.map +1 -0
  114. package/dist/dex/meteora/damm-v2-bundle.d.ts +83 -0
  115. package/dist/dex/meteora/damm-v2-bundle.d.ts.map +1 -0
  116. package/dist/dex/meteora/damm-v2-bundle.js +243 -0
  117. package/dist/dex/meteora/damm-v2-bundle.js.map +1 -0
  118. package/dist/dex/meteora/damm-v2.d.ts +173 -0
  119. package/dist/dex/meteora/damm-v2.d.ts.map +1 -0
  120. package/dist/dex/meteora/damm-v2.js +633 -0
  121. package/dist/dex/meteora/damm-v2.js.map +1 -0
  122. package/dist/dex/meteora/dbc-bundle.d.ts +124 -0
  123. package/dist/dex/meteora/dbc-bundle.d.ts.map +1 -0
  124. package/dist/dex/meteora/dbc-bundle.js +305 -0
  125. package/dist/dex/meteora/dbc-bundle.js.map +1 -0
  126. package/dist/dex/meteora/dbc.d.ts +193 -0
  127. package/dist/dex/meteora/dbc.d.ts.map +1 -0
  128. package/dist/dex/meteora/dbc.js +620 -0
  129. package/dist/dex/meteora/dbc.js.map +1 -0
  130. package/dist/dex/meteora/dlmm-bundle.d.ts +40 -0
  131. package/dist/dex/meteora/dlmm-bundle.d.ts.map +1 -0
  132. package/dist/dex/meteora/dlmm-bundle.js +190 -0
  133. package/dist/dex/meteora/dlmm-bundle.js.map +1 -0
  134. package/dist/dex/meteora/dlmm.d.ts +158 -0
  135. package/dist/dex/meteora/dlmm.d.ts.map +1 -0
  136. package/dist/dex/meteora/dlmm.js +672 -0
  137. package/dist/dex/meteora/dlmm.js.map +1 -0
  138. package/dist/dex/meteora/index.d.ts +26 -0
  139. package/dist/dex/meteora/index.d.ts.map +1 -0
  140. package/dist/dex/meteora/index.js +66 -0
  141. package/dist/dex/meteora/index.js.map +1 -0
  142. package/dist/dex/meteora/types.d.ts +788 -0
  143. package/dist/dex/meteora/types.d.ts.map +1 -0
  144. package/dist/dex/meteora/types.js +111 -0
  145. package/dist/dex/meteora/types.js.map +1 -0
  146. package/dist/dex/orca/index.d.ts +11 -0
  147. package/dist/dex/orca/index.d.ts.map +1 -0
  148. package/dist/dex/orca/index.js +17 -0
  149. package/dist/dex/orca/index.js.map +1 -0
  150. package/dist/dex/orca/orca-bundle.d.ts +42 -0
  151. package/dist/dex/orca/orca-bundle.d.ts.map +1 -0
  152. package/dist/dex/orca/orca-bundle.js +174 -0
  153. package/dist/dex/orca/orca-bundle.js.map +1 -0
  154. package/dist/dex/orca/orca.d.ts +66 -0
  155. package/dist/dex/orca/orca.d.ts.map +1 -0
  156. package/dist/dex/orca/orca.js +475 -0
  157. package/dist/dex/orca/orca.js.map +1 -0
  158. package/dist/dex/orca/types.d.ts +264 -0
  159. package/dist/dex/orca/types.d.ts.map +1 -0
  160. package/dist/dex/orca/types.js +39 -0
  161. package/dist/dex/orca/types.js.map +1 -0
  162. package/dist/dex/orca/wavebreak-bundle.d.ts +35 -0
  163. package/dist/dex/orca/wavebreak-bundle.d.ts.map +1 -0
  164. package/dist/dex/orca/wavebreak-bundle.js +199 -0
  165. package/dist/dex/orca/wavebreak-bundle.js.map +1 -0
  166. package/dist/dex/orca/wavebreak-types.d.ts +228 -0
  167. package/dist/dex/orca/wavebreak-types.d.ts.map +1 -0
  168. package/dist/dex/orca/wavebreak-types.js +24 -0
  169. package/dist/dex/orca/wavebreak-types.js.map +1 -0
  170. package/dist/dex/orca/wavebreak.d.ts +79 -0
  171. package/dist/dex/orca/wavebreak.d.ts.map +1 -0
  172. package/dist/dex/orca/wavebreak.js +498 -0
  173. package/dist/dex/orca/wavebreak.js.map +1 -0
  174. package/dist/dex/pump/index.d.ts +10 -0
  175. package/dist/dex/pump/index.d.ts.map +1 -0
  176. package/dist/dex/pump/index.js +15 -0
  177. package/dist/dex/pump/index.js.map +1 -0
  178. package/dist/dex/pump/pump-bundle.d.ts +93 -0
  179. package/dist/dex/pump/pump-bundle.d.ts.map +1 -0
  180. package/dist/dex/pump/pump-bundle.js +384 -0
  181. package/dist/dex/pump/pump-bundle.js.map +1 -0
  182. package/dist/dex/pump/pump-swap-bundle.d.ts +104 -0
  183. package/dist/dex/pump/pump-swap-bundle.d.ts.map +1 -0
  184. package/dist/dex/pump/pump-swap-bundle.js +381 -0
  185. package/dist/dex/pump/pump-swap-bundle.js.map +1 -0
  186. package/dist/dex/pump/pump-swap.d.ts +47 -0
  187. package/dist/dex/pump/pump-swap.d.ts.map +1 -0
  188. package/dist/dex/pump/pump-swap.js +200 -0
  189. package/dist/dex/pump/pump-swap.js.map +1 -0
  190. package/dist/dex/pump/pump.d.ts +36 -0
  191. package/dist/dex/pump/pump.d.ts.map +1 -0
  192. package/dist/dex/pump/pump.js +353 -0
  193. package/dist/dex/pump/pump.js.map +1 -0
  194. package/dist/dex/pump/types.d.ts +216 -0
  195. package/dist/dex/pump/types.d.ts.map +1 -0
  196. package/dist/dex/pump/types.js +6 -0
  197. package/dist/dex/pump/types.js.map +1 -0
  198. package/dist/dex/raydium/index.d.ts +9 -0
  199. package/dist/dex/raydium/index.d.ts.map +1 -0
  200. package/dist/dex/raydium/index.js +13 -0
  201. package/dist/dex/raydium/index.js.map +1 -0
  202. package/dist/dex/raydium/launchlab.d.ts +69 -0
  203. package/dist/dex/raydium/launchlab.d.ts.map +1 -0
  204. package/dist/dex/raydium/launchlab.js +211 -0
  205. package/dist/dex/raydium/launchlab.js.map +1 -0
  206. package/dist/dex/raydium/raydium-bundle.d.ts +65 -0
  207. package/dist/dex/raydium/raydium-bundle.d.ts.map +1 -0
  208. package/dist/dex/raydium/raydium-bundle.js +325 -0
  209. package/dist/dex/raydium/raydium-bundle.js.map +1 -0
  210. package/dist/dex/raydium/raydium.d.ts +41 -0
  211. package/dist/dex/raydium/raydium.d.ts.map +1 -0
  212. package/dist/dex/raydium/raydium.js +367 -0
  213. package/dist/dex/raydium/raydium.js.map +1 -0
  214. package/dist/dex/raydium/types.d.ts +241 -0
  215. package/dist/dex/raydium/types.d.ts.map +1 -0
  216. package/dist/dex/raydium/types.js +6 -0
  217. package/dist/dex/raydium/types.js.map +1 -0
  218. package/dist/index.d.ts +13 -0
  219. package/dist/index.d.ts.map +1 -0
  220. package/dist/index.js +21 -0
  221. package/dist/index.js.map +1 -0
  222. package/dist/jito/bundle.d.ts +91 -0
  223. package/dist/jito/bundle.d.ts.map +1 -0
  224. package/dist/jito/bundle.js +267 -0
  225. package/dist/jito/bundle.js.map +1 -0
  226. package/dist/jito/index.d.ts +8 -0
  227. package/dist/jito/index.d.ts.map +1 -0
  228. package/dist/jito/index.js +8 -0
  229. package/dist/jito/index.js.map +1 -0
  230. package/dist/jito/tip.d.ts +52 -0
  231. package/dist/jito/tip.d.ts.map +1 -0
  232. package/dist/jito/tip.js +84 -0
  233. package/dist/jito/tip.js.map +1 -0
  234. package/dist/jito/types.d.ts +101 -0
  235. package/dist/jito/types.d.ts.map +1 -0
  236. package/dist/jito/types.js +6 -0
  237. package/dist/jito/types.js.map +1 -0
  238. package/dist/nozomi/client.d.ts +64 -0
  239. package/dist/nozomi/client.d.ts.map +1 -0
  240. package/dist/nozomi/client.js +228 -0
  241. package/dist/nozomi/client.js.map +1 -0
  242. package/dist/nozomi/index.d.ts +9 -0
  243. package/dist/nozomi/index.d.ts.map +1 -0
  244. package/dist/nozomi/index.js +9 -0
  245. package/dist/nozomi/index.js.map +1 -0
  246. package/dist/nozomi/tip.d.ts +51 -0
  247. package/dist/nozomi/tip.d.ts.map +1 -0
  248. package/dist/nozomi/tip.js +81 -0
  249. package/dist/nozomi/tip.js.map +1 -0
  250. package/dist/nozomi/types.d.ts +97 -0
  251. package/dist/nozomi/types.d.ts.map +1 -0
  252. package/dist/nozomi/types.js +6 -0
  253. package/dist/nozomi/types.js.map +1 -0
  254. package/dist/token/create-complete.d.ts +116 -0
  255. package/dist/token/create-complete.d.ts.map +1 -0
  256. package/dist/token/create-complete.js +236 -0
  257. package/dist/token/create-complete.js.map +1 -0
  258. package/dist/token/create-token.d.ts +58 -0
  259. package/dist/token/create-token.d.ts.map +1 -0
  260. package/dist/token/create-token.js +231 -0
  261. package/dist/token/create-token.js.map +1 -0
  262. package/dist/token/index.d.ts +10 -0
  263. package/dist/token/index.d.ts.map +1 -0
  264. package/dist/token/index.js +15 -0
  265. package/dist/token/index.js.map +1 -0
  266. package/dist/token/metadata-upload.d.ts +87 -0
  267. package/dist/token/metadata-upload.d.ts.map +1 -0
  268. package/dist/token/metadata-upload.js +176 -0
  269. package/dist/token/metadata-upload.js.map +1 -0
  270. package/dist/token/metadata.d.ts +93 -0
  271. package/dist/token/metadata.d.ts.map +1 -0
  272. package/dist/token/metadata.js +275 -0
  273. package/dist/token/metadata.js.map +1 -0
  274. package/dist/token/types.d.ts +154 -0
  275. package/dist/token/types.d.ts.map +1 -0
  276. package/dist/token/types.js +6 -0
  277. package/dist/token/types.js.map +1 -0
  278. package/dist/types.d.ts +177 -0
  279. package/dist/types.d.ts.map +1 -0
  280. package/dist/types.js +8 -0
  281. package/dist/types.js.map +1 -0
  282. package/dist/utils/alt.d.ts +58 -0
  283. package/dist/utils/alt.d.ts.map +1 -0
  284. package/dist/utils/alt.js +125 -0
  285. package/dist/utils/alt.js.map +1 -0
  286. package/dist/utils/balance.d.ts +161 -0
  287. package/dist/utils/balance.d.ts.map +1 -0
  288. package/dist/utils/balance.js +639 -0
  289. package/dist/utils/balance.js.map +1 -0
  290. package/dist/utils/batch-swap.d.ts +52 -0
  291. package/dist/utils/batch-swap.d.ts.map +1 -0
  292. package/dist/utils/batch-swap.js +286 -0
  293. package/dist/utils/batch-swap.js.map +1 -0
  294. package/dist/utils/batch-types.d.ts +90 -0
  295. package/dist/utils/batch-types.d.ts.map +1 -0
  296. package/dist/utils/batch-types.js +7 -0
  297. package/dist/utils/batch-types.js.map +1 -0
  298. package/dist/utils/connection.d.ts +79 -0
  299. package/dist/utils/connection.d.ts.map +1 -0
  300. package/dist/utils/connection.js +169 -0
  301. package/dist/utils/connection.js.map +1 -0
  302. package/dist/utils/index.d.ts +13 -0
  303. package/dist/utils/index.d.ts.map +1 -0
  304. package/dist/utils/index.js +14 -0
  305. package/dist/utils/index.js.map +1 -0
  306. package/dist/utils/lp-inspect.d.ts +81 -0
  307. package/dist/utils/lp-inspect.d.ts.map +1 -0
  308. package/dist/utils/lp-inspect.js +265 -0
  309. package/dist/utils/lp-inspect.js.map +1 -0
  310. package/dist/utils/transfer.d.ts +197 -0
  311. package/dist/utils/transfer.d.ts.map +1 -0
  312. package/dist/utils/transfer.js +308 -0
  313. package/dist/utils/transfer.js.map +1 -0
  314. package/dist/utils/wallet.d.ts +108 -0
  315. package/dist/utils/wallet.d.ts.map +1 -0
  316. package/dist/utils/wallet.js +211 -0
  317. package/dist/utils/wallet.js.map +1 -0
  318. package/package.json +92 -0
package/README.md ADDED
@@ -0,0 +1,160 @@
1
+ # Solana Meme SDK
2
+
3
+ [English](#english) | [中文](#中文)
4
+
5
+ ---
6
+
7
+ ## English
8
+
9
+ A comprehensive TypeScript SDK for Solana meme token trading, creation, and bundle services. Optimized for speed, reliability, and high-density multi-wallet execution.
10
+
11
+ ### ✨ Key Features
12
+
13
+ - 📂 **DEX Support**: Integrated with Pump.fun, Raydium (AMM/CLMM), Orca (Whirlpool), Meteora (DLMM), Jupiter (Aggregator), and PumpSwap.
14
+ - 📦 **Batch Executor**: High-density atomic batch swaps supporting up to 50+ wallets in a single transaction.
15
+ - ⚡ **Jito & Nozomi**: Native support for Jito Bundles and Nozomi acceleration to bypass network congestion.
16
+ - 🪙 **Token Launch**: Unified API for SPL/Token-2022 creation, metadata uploading (IPFS/Arweave), and minting.
17
+ - 🔍 **LP Inspector**: Real-time detection of token liquidity status across all major DEXs.
18
+ - 🛠️ **Utility Pro**: Advanced Address Lookup Table (ALT) management and balance/transfer helpers.
19
+
20
+ ### ⚙️ Installation & Configuration
21
+
22
+ ```bash
23
+ npm install solana-meme-sdk
24
+ ```
25
+
26
+ **CRITICAL**: You must add these `overrides` to your root `package.json` to handle mandatory dependency resolution:
27
+
28
+ ```json
29
+ {
30
+ "overrides": {
31
+ "@noble/hashes": "^1.8.0",
32
+ "bigint-buffer": "npm:four-flap-bigint-buffer@1.1.6",
33
+ "@solana/spl-token-registry": { "cross-fetch": "3.2.0" },
34
+ "node-fetch": "2.7.0"
35
+ }
36
+ }
37
+ ```
38
+
39
+ ### 📖 API Reference
40
+
41
+ #### 1. DEX Operations (`solana-meme-sdk/dex`)
42
+ - **Pump.fun**: `getPumpBondingCurve(mint)`, `signPumpBuy(params)`, `signPumpSell(params)`
43
+ - **Raydium**: `RaydiumAMM` client for swap/liquidity on V4 pools.
44
+ - **Orca**: `WhirlpoolClient` for concentrated liquidity operations.
45
+ - **Meteora**: `DLMMClient` for dynamic fee and position management.
46
+ - **Jupiter**: `JupiterAggregator` for best-price routing and token pricing.
47
+ - **BlockRazor**: `BlockRazorClient` for high-performance landing, sandwich mitigation, and gRPC Geyser data streams.
48
+
49
+ #### 2. Batch Executor (`solana-meme-sdk/batch-executor`)
50
+ Optimized for multi-wallet simultaneous trades using a specialized on-chain program.
51
+ - `BatchExecutor` class:
52
+ - `buildBatchPumpBuyTx(params)` / `buildBatchPumpSellTx(params)`
53
+ - `buildBatchRaydiumSwapTx(params, accounts)`
54
+ - `buildBatchMeteoraSwapTx(params, accounts, binArrays)`
55
+ - `buildBatchOrcaSwapTx(params, accounts, aToB, sqrtPriceLimit)`
56
+ - `buildBatchJupiterSwapTx(wallets, jupAccounts)`
57
+ - `executeBatchPumpBuy(params)` (Helper for build + send)
58
+
59
+ #### 3. Jito & MEV Service (`solana-meme-sdk/jito`)
60
+ - `JitoBundleClient`: `sendBundle(transactions)`, `getJitoTipAccounts()`, `getNextJitoTipAccount()`
61
+
62
+ #### 4. Nozomi Acceleration (`solana-meme-sdk/nozomi`)
63
+ - `NozomiClient`: `sendTransaction(tx)`, `sendBundle(txs)`, `getNozomiTipAccounts()`
64
+
65
+ #### 5. Token Management (`solana-meme-sdk/token`)
66
+ - `createCompleteToken(params)`: One-click creation + metadata upload + initial mint.
67
+ - `uploadMetadataToIpfs(data)`, `uploadMetadataToArweave(data)`.
68
+
69
+ #### 6. Utilities & Inspection (`solana-meme-sdk/utils`)
70
+ - `inspectSolanaTokenLP(mint)`: Returns platform, liquidity amount, and curve status.
71
+ - `createALT(connection, payer, addresses)`, `waitForALTActivation(connection, altAddress)`.
72
+ - `transferSol()`, `transferToken()`, `getSolBalance()`, `getTokenBalances()`.
73
+
74
+ ### 🚀 Example: Batch Trading (50 Wallets)
75
+
76
+ ```typescript
77
+ import { BatchExecutor } from 'solana-meme-sdk';
78
+
79
+ const executor = new BatchExecutor(connection, payerKeypair);
80
+
81
+ const tx = await executor.buildBatchPumpBuyTx({
82
+ tokenMint: new PublicKey('...'),
83
+ wallets: [
84
+ { wallet: wallet1, amount: 100_000_000n, minAmountOut: 1n },
85
+ { wallet: wallet2, amount: 200_000_000n, minAmountOut: 1n },
86
+ // ... support up to ~50 wallets
87
+ ]
88
+ });
89
+
90
+ const sig = await executor.sendAndConfirm(tx);
91
+ ```
92
+
93
+ ---
94
+
95
+ ## 中文
96
+
97
+ 集成 Solana Meme 代币交易、创建、批量执行与加速服务的综合 TypeScript SDK。
98
+
99
+ ### ✨ 核心功能
100
+
101
+ - 📂 **DEX 支持**: 深度集成 Pump.fun, Raydium (AMM/CLMM), Orca (Whirlpool), Meteora (DLMM), Jupiter (Aggregator) 及 PumpSwap。
102
+ - 📦 **批量执行器 (Batch Executor)**: 基于定制化链上程序,支持在单笔交易中为 50+ 个钱包执行原子化 Swap。
103
+ - ⚡ **Jito & Nozomi**: 原生支持 Jito Bundle 和 Nozomi 交易加速,有效应对网络拥堵与 MEV。
104
+ - 🪙 **代币发射**: 统一封装 SPL/Token-2022 创建、元数据上传 (IPFS/Arweave) 及铸造流程。
105
+ - 🔍 **LP 检测器**: 实时检测代币在各大 DEX 的流动性、内盘进度及池子状态。
106
+ - 🛠️ **专业工具**: 高效的地址查询表 (ALT) 管理工具、资产查询及转账助手。
107
+
108
+ ### 📖 接口文档
109
+
110
+ #### 1. DEX 交易
111
+ - **Pump.fun**: `signPumpBuy`/`signPumpSell` (单钱包快速交易)。
112
+ - **Raydium**: 支持 V4 AMM 的完整 Swap 逻辑。
113
+ - **Jupiter**: `JupiterAggregator` 负责最优路径路由及代币实时定价。
114
+
115
+ #### 2. 批量交易执行器 (Batch Executor)
116
+ 专为多钱包同步操作优化,利用 ALT 极大提升交易密度。
117
+ - `BatchExecutor` 方法:
118
+ - `buildBatchPumpBuyTx` / `buildBatchPumpSellTx` (Pump.fun)
119
+ - `buildBatchRaydiumSwapTx` (Raydium)
120
+ - `buildBatchMeteoraSwapTx` (Meteora)
121
+ - `buildBatchJupiterSwapTx` (Jupiter 聚合)
122
+ - `executeBatchPumpBuy` (快捷构建并发送)
123
+
124
+ #### 3. Jito & Nozomi 加速
125
+ - `JitoBundleClient`: 支持多交易 Bundle 提交及 Tip 自动分配。
126
+ - `NozomiClient`: 提供极速交易广播服务。
127
+
128
+ #### 4. 代币管理
129
+ - `createCompleteToken`: 一键完成代币创建、Logo/元数据上传及初始供应量铸造。
130
+
131
+ #### 5. 工具类接口
132
+ - `inspectSolanaTokenLP`: 输入 Mint 地址,返回所属平台、LP 详情及是否已毕业/上线。
133
+ - `waitForALTActivation`: 确保地址查询表在交易发送前已在链上激活。
134
+
135
+ ### 🚀 代码示例:多钱包批量买入
136
+
137
+ ```typescript
138
+ import { BatchExecutor } from 'solana-meme-sdk';
139
+
140
+ const executor = new BatchExecutor(connection, payerKeypair);
141
+
142
+ // 为多个钱包构建批量买入指令 (Atomic)
143
+ const tx = await executor.buildBatchPumpBuyTx({
144
+ tokenMint: new PublicKey('...'),
145
+ wallets: [
146
+ { wallet: walletA, amount: 1_000_000_000n, minAmountOut: 0n },
147
+ { wallet: walletB, amount: 500_000_000n, minAmountOut: 0n },
148
+ // ...
149
+ ]
150
+ });
151
+
152
+ // 支持搭配 Jito 或常规发送
153
+ const sig = await executor.sendAndConfirm(tx);
154
+ ```
155
+
156
+ ---
157
+
158
+ ## License
159
+
160
+ MIT
@@ -0,0 +1,141 @@
1
+ import { PublicKey } from '@solana/web3.js';
2
+ export declare const PUMP_GLOBAL: PublicKey;
3
+ export declare const PUMP_FEE_RECIPIENT: PublicKey;
4
+ export declare const PUMP_EVENT_AUTHORITY: PublicKey;
5
+ export interface PumpBuyAccounts {
6
+ pumpGlobal: PublicKey;
7
+ pumpFeeRecipient: PublicKey;
8
+ tokenMint: PublicKey;
9
+ bondingCurve: PublicKey;
10
+ bondingCurveTokenAccount: PublicKey;
11
+ pumpProgram: PublicKey;
12
+ tokenProgram: PublicKey;
13
+ systemProgram: PublicKey;
14
+ associatedTokenProgram: PublicKey;
15
+ rent: PublicKey;
16
+ eventAuthority: PublicKey;
17
+ }
18
+ export interface PumpSellAccounts {
19
+ pumpGlobal: PublicKey;
20
+ pumpFeeRecipient: PublicKey;
21
+ tokenMint: PublicKey;
22
+ bondingCurve: PublicKey;
23
+ bondingCurveTokenAccount: PublicKey;
24
+ pumpProgram: PublicKey;
25
+ tokenProgram: PublicKey;
26
+ eventAuthority: PublicKey;
27
+ }
28
+ export interface PumpSwapAccounts {
29
+ globalConfig: PublicKey;
30
+ feeRecipient: PublicKey;
31
+ pool: PublicKey;
32
+ poolBaseVault: PublicKey;
33
+ poolQuoteVault: PublicKey;
34
+ baseMint: PublicKey;
35
+ quoteMint: PublicKey;
36
+ pumpSwapProgram: PublicKey;
37
+ tokenProgram: PublicKey;
38
+ token2022Program: PublicKey;
39
+ systemProgram: PublicKey;
40
+ associatedTokenProgram: PublicKey;
41
+ }
42
+ export interface RaydiumSwapAccounts {
43
+ ammId: PublicKey;
44
+ ammAuthority: PublicKey;
45
+ ammOpenOrders: PublicKey;
46
+ ammTargetOrders: PublicKey;
47
+ poolCoinVault: PublicKey;
48
+ poolPcVault: PublicKey;
49
+ serumProgram: PublicKey;
50
+ serumMarket: PublicKey;
51
+ serumBids: PublicKey;
52
+ serumAsks: PublicKey;
53
+ serumEventQueue: PublicKey;
54
+ serumCoinVault: PublicKey;
55
+ serumPcVault: PublicKey;
56
+ serumVaultSigner: PublicKey;
57
+ tokenProgram: PublicKey;
58
+ raydiumProgram: PublicKey;
59
+ }
60
+ export interface MeteoraSwapAccounts {
61
+ lbPair: PublicKey;
62
+ binArrayBitmapExtension: PublicKey | null;
63
+ reserveX: PublicKey;
64
+ reserveY: PublicKey;
65
+ tokenXMint: PublicKey;
66
+ tokenYMint: PublicKey;
67
+ oracle: PublicKey;
68
+ hostFeeIn: PublicKey | null;
69
+ tokenProgram: PublicKey;
70
+ eventAuthority: PublicKey;
71
+ meteoraProgram: PublicKey;
72
+ }
73
+ export interface OrcaSwapAccounts {
74
+ whirlpool: PublicKey;
75
+ tokenVaultA: PublicKey;
76
+ tokenVaultB: PublicKey;
77
+ tickArray0: PublicKey;
78
+ tickArray1: PublicKey;
79
+ tickArray2: PublicKey;
80
+ oracle: PublicKey;
81
+ tokenProgram: PublicKey;
82
+ orcaProgram: PublicKey;
83
+ }
84
+ export interface LaunchLabBuyAccounts {
85
+ globalConfig: PublicKey;
86
+ feeConfig: PublicKey | null;
87
+ poolState: PublicKey;
88
+ baseMint: PublicKey;
89
+ quoteMint: PublicKey;
90
+ baseVault: PublicKey;
91
+ quoteVault: PublicKey;
92
+ protocolFeeRecipient: PublicKey;
93
+ tokenProgram: PublicKey;
94
+ token2022Program: PublicKey;
95
+ systemProgram: PublicKey;
96
+ launchlabProgram: PublicKey;
97
+ }
98
+ /**
99
+ * 获取 Pump.fun Bonding Curve 地址 (PDA)
100
+ */
101
+ export declare function getPumpBondingCurvePDA(tokenMint: PublicKey): PublicKey;
102
+ /**
103
+ * 获取 Bonding Curve Token Account
104
+ */
105
+ export declare function getPumpBondingCurveTokenAccount(bondingCurve: PublicKey, tokenMint: PublicKey): PublicKey;
106
+ /**
107
+ * 获取 Pump.fun Buy 所需的固定账户
108
+ */
109
+ export declare function getPumpBuyAccounts(tokenMint: PublicKey): PumpBuyAccounts;
110
+ /**
111
+ * 获取 Pump.fun Sell 所需的固定账户
112
+ */
113
+ export declare function getPumpSellAccounts(tokenMint: PublicKey): PumpSellAccounts;
114
+ /**
115
+ * 构建剩余账户列表的方法,根据每个 swap 需要的账户数量
116
+ * 对于 Pump, Raydium, LaunchLab 是 2 或 3 个,Meteora 是 4 个
117
+ */
118
+ export declare function buildRemainingAccounts(wallets: {
119
+ publicKey: PublicKey;
120
+ }[], tokenMint: PublicKey, tokenMintB?: PublicKey | null, // 有些 DEX 需要两个 Token Mint
121
+ accountsPerWallet?: number, additionalAccountsFetcher?: (wallet: PublicKey) => PublicKey[]): {
122
+ pubkey: PublicKey;
123
+ isSigner: boolean;
124
+ isWritable: boolean;
125
+ }[];
126
+ /**
127
+ * 获取钱包的 Token ATA
128
+ */
129
+ export declare function getWalletATA(wallet: PublicKey, tokenMint: PublicKey): PublicKey;
130
+ /**
131
+ * 构建 Pump Buy remaining_accounts
132
+ * 格式: [wallet0, ata0, wallet1, ata1, ...]
133
+ */
134
+ export declare function buildPumpRemainingAccounts(wallets: {
135
+ publicKey: PublicKey;
136
+ }[], tokenMint: PublicKey): {
137
+ pubkey: PublicKey;
138
+ isSigner: boolean;
139
+ isWritable: boolean;
140
+ }[];
141
+ //# sourceMappingURL=accounts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../src/batch-executor/accounts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,98 @@
1
+ import { PublicKey, SystemProgram, SYSVAR_RENT_PUBKEY, } from '@solana/web3.js';
2
+ import { TOKEN_PROGRAM_ID, ASSOCIATED_TOKEN_PROGRAM_ID, getAssociatedTokenAddressSync } from '@solana/spl-token';
3
+ // ==================== Pump.fun Constants ====================
4
+ export const PUMP_GLOBAL = new PublicKey('4wTV1YmiEkRvAtNtsSGPtUrqRYQMe5SKy2uB4Jjaxnjf');
5
+ export const PUMP_FEE_RECIPIENT = new PublicKey('CebN5WGQ4jvEPvsVU4EoHEpgzq1VV7AbicfhtW4xC9iM');
6
+ export const PUMP_EVENT_AUTHORITY = new PublicKey('Ce6TQqeHC9p8KetsN6JsjHK7UTZk7nasjjnr7XxXp9F1');
7
+ // ==================== Account Fetchers ====================
8
+ /**
9
+ * 获取 Pump.fun Bonding Curve 地址 (PDA)
10
+ */
11
+ export function getPumpBondingCurvePDA(tokenMint) {
12
+ const [bondingCurve] = PublicKey.findProgramAddressSync([Buffer.from('bonding-curve'), tokenMint.toBuffer()], new PublicKey('6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P'));
13
+ return bondingCurve;
14
+ }
15
+ /**
16
+ * 获取 Bonding Curve Token Account
17
+ */
18
+ export function getPumpBondingCurveTokenAccount(bondingCurve, tokenMint) {
19
+ return getAssociatedTokenAddressSync(tokenMint, bondingCurve, true);
20
+ }
21
+ /**
22
+ * 获取 Pump.fun Buy 所需的固定账户
23
+ */
24
+ export function getPumpBuyAccounts(tokenMint) {
25
+ const bondingCurve = getPumpBondingCurvePDA(tokenMint);
26
+ const bondingCurveTokenAccount = getPumpBondingCurveTokenAccount(bondingCurve, tokenMint);
27
+ return {
28
+ pumpGlobal: PUMP_GLOBAL,
29
+ pumpFeeRecipient: PUMP_FEE_RECIPIENT,
30
+ tokenMint,
31
+ bondingCurve,
32
+ bondingCurveTokenAccount,
33
+ pumpProgram: new PublicKey('6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P'),
34
+ tokenProgram: TOKEN_PROGRAM_ID,
35
+ systemProgram: SystemProgram.programId,
36
+ associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,
37
+ rent: SYSVAR_RENT_PUBKEY,
38
+ eventAuthority: PUMP_EVENT_AUTHORITY,
39
+ };
40
+ }
41
+ /**
42
+ * 获取 Pump.fun Sell 所需的固定账户
43
+ */
44
+ export function getPumpSellAccounts(tokenMint) {
45
+ const bondingCurve = getPumpBondingCurvePDA(tokenMint);
46
+ const bondingCurveTokenAccount = getPumpBondingCurveTokenAccount(bondingCurve, tokenMint);
47
+ return {
48
+ pumpGlobal: PUMP_GLOBAL,
49
+ pumpFeeRecipient: PUMP_FEE_RECIPIENT,
50
+ tokenMint,
51
+ bondingCurve,
52
+ bondingCurveTokenAccount,
53
+ pumpProgram: new PublicKey('6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P'),
54
+ tokenProgram: TOKEN_PROGRAM_ID,
55
+ eventAuthority: PUMP_EVENT_AUTHORITY,
56
+ };
57
+ }
58
+ /**
59
+ * 构建剩余账户列表的方法,根据每个 swap 需要的账户数量
60
+ * 对于 Pump, Raydium, LaunchLab 是 2 或 3 个,Meteora 是 4 个
61
+ */
62
+ export function buildRemainingAccounts(wallets, tokenMint, tokenMintB = null, // 有些 DEX 需要两个 Token Mint
63
+ accountsPerWallet = 2, additionalAccountsFetcher) {
64
+ const accounts = [];
65
+ for (const wallet of wallets) {
66
+ accounts.push({ pubkey: wallet.publicKey, isSigner: true, isWritable: true });
67
+ if (additionalAccountsFetcher) {
68
+ const extra = additionalAccountsFetcher(wallet.publicKey);
69
+ for (const acc of extra) {
70
+ accounts.push({ pubkey: acc, isSigner: false, isWritable: true });
71
+ }
72
+ }
73
+ else {
74
+ // 默认行为:wallet, source_ata, [dest_ata]
75
+ const sourceAta = getWalletATA(wallet.publicKey, tokenMint);
76
+ accounts.push({ pubkey: sourceAta, isSigner: false, isWritable: true });
77
+ if (tokenMintB) {
78
+ const destAta = getWalletATA(wallet.publicKey, tokenMintB);
79
+ accounts.push({ pubkey: destAta, isSigner: false, isWritable: true });
80
+ }
81
+ }
82
+ }
83
+ return accounts;
84
+ }
85
+ /**
86
+ * 获取钱包的 Token ATA
87
+ */
88
+ export function getWalletATA(wallet, tokenMint) {
89
+ return getAssociatedTokenAddressSync(tokenMint, wallet, false);
90
+ }
91
+ /**
92
+ * 构建 Pump Buy remaining_accounts
93
+ * 格式: [wallet0, ata0, wallet1, ata1, ...]
94
+ */
95
+ export function buildPumpRemainingAccounts(wallets, tokenMint) {
96
+ return buildRemainingAccounts(wallets, tokenMint, null, 2);
97
+ }
98
+ //# sourceMappingURL=accounts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../src/batch-executor/accounts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { Connection, PublicKey, VersionedTransaction, Keypair, AccountMeta } from '@solana/web3.js';
2
+ import { BatchPumpBuyParams, BatchPumpSellParams, BatchRaydiumSwapParams, BatchMeteoraSwapParams, BatchOrcaSwapParams, BatchPumpSwapBuyParams, BatchPumpSwapSellParams, BatchLaunchLabBuyParams } from './types.js';
3
+ import { RaydiumSwapAccounts, MeteoraSwapAccounts, OrcaSwapAccounts, PumpSwapAccounts, LaunchLabBuyAccounts } from './accounts.js';
4
+ export declare class BatchExecutor {
5
+ private connection;
6
+ private payer;
7
+ constructor(connection: Connection, payer: Keypair);
8
+ private createVersionedTx;
9
+ private buildSwapInputs;
10
+ buildBatchPumpBuyTx(params: BatchPumpBuyParams): Promise<VersionedTransaction>;
11
+ buildBatchPumpSellTx(params: BatchPumpSellParams): Promise<VersionedTransaction>;
12
+ buildBatchPumpSwapBuyTx(params: BatchPumpSwapBuyParams, accounts: PumpSwapAccounts): Promise<VersionedTransaction>;
13
+ buildBatchPumpSwapSellTx(params: BatchPumpSwapSellParams, accounts: PumpSwapAccounts): Promise<VersionedTransaction>;
14
+ buildBatchRaydiumSwapTx(params: BatchRaydiumSwapParams, accounts: RaydiumSwapAccounts): Promise<VersionedTransaction>;
15
+ buildBatchMeteoraSwapTx(params: BatchMeteoraSwapParams, accounts: MeteoraSwapAccounts, binArrays: PublicKey[]): Promise<VersionedTransaction>;
16
+ buildBatchOrcaSwapTx(params: BatchOrcaSwapParams, accounts: OrcaSwapAccounts, aToB: boolean, sqrtPriceLimit: bigint): Promise<VersionedTransaction>;
17
+ buildBatchLaunchLabBuyTx(params: BatchLaunchLabBuyParams, accounts: LaunchLabBuyAccounts): Promise<VersionedTransaction>;
18
+ buildBatchJupiterSwapTx(wallets: {
19
+ wallet: Keypair;
20
+ instructionData: Buffer;
21
+ }[], jupAccounts: AccountMeta[]): Promise<VersionedTransaction>;
22
+ executeBatchPumpBuy(params: BatchPumpBuyParams): Promise<string>;
23
+ executeBatchPumpSell(params: BatchPumpSellParams): Promise<string>;
24
+ sendAndConfirm(tx: VersionedTransaction): Promise<string>;
25
+ }
26
+ export default BatchExecutor;
27
+ //# sourceMappingURL=batch-executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-executor.d.ts","sourceRoot":"","sources":["../../src/batch-executor/batch-executor.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,UAAU,EACV,SAAS,EAGT,oBAAoB,EACpB,OAAO,EACP,WAAW,EACd,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAKH,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EAC1B,MAAM,YAAY,CAAC;AAEpB,OAAO,EAIH,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACvB,MAAM,eAAe,CAAC;AAiBvB,qBAAa,aAAa;IAElB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,KAAK;gBADL,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,OAAO;YAGZ,iBAAiB;IAa/B,OAAO,CAAC,eAAe;IAUjB,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA2B9E,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA0BhF,uBAAuB,CAAC,MAAM,EAAE,sBAAsB,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA2BlH,wBAAwB,CAAC,MAAM,EAAE,uBAAuB,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA6BpH,uBAAuB,CAAC,MAAM,EAAE,sBAAsB,EAAE,QAAQ,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAuCrH,uBAAuB,CAAC,MAAM,EAAE,sBAAsB,EAAE,QAAQ,EAAE,mBAAmB,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA4C7I,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAiCnJ,wBAAwB,CAAC,MAAM,EAAE,uBAAuB,EAAE,QAAQ,EAAE,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA6BxH,uBAAuB,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA2B3I,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IAIhE,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;IAMlE,cAAc,CAAC,EAAE,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;CAQlE;AAED,eAAe,aAAa,CAAC"}