forgex-cli 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 (275) hide show
  1. package/README.md +479 -0
  2. package/dist/bin/forgex.d.ts +12 -0
  3. package/dist/bin/forgex.d.ts.map +1 -0
  4. package/dist/bin/forgex.js +23 -0
  5. package/dist/bin/forgex.js.map +1 -0
  6. package/dist/src/adapters/codex-adapter.d.ts +238 -0
  7. package/dist/src/adapters/codex-adapter.d.ts.map +1 -0
  8. package/dist/src/adapters/codex-adapter.js +524 -0
  9. package/dist/src/adapters/codex-adapter.js.map +1 -0
  10. package/dist/src/adapters/connection.d.ts +20 -0
  11. package/dist/src/adapters/connection.d.ts.map +1 -0
  12. package/dist/src/adapters/connection.js +43 -0
  13. package/dist/src/adapters/connection.js.map +1 -0
  14. package/dist/src/adapters/ipfs.d.ts +17 -0
  15. package/dist/src/adapters/ipfs.d.ts.map +1 -0
  16. package/dist/src/adapters/ipfs.js +30 -0
  17. package/dist/src/adapters/ipfs.js.map +1 -0
  18. package/dist/src/adapters/jito-adapter.d.ts +194 -0
  19. package/dist/src/adapters/jito-adapter.d.ts.map +1 -0
  20. package/dist/src/adapters/jito-adapter.js +474 -0
  21. package/dist/src/adapters/jito-adapter.js.map +1 -0
  22. package/dist/src/adapters/rpc-adapter.d.ts +148 -0
  23. package/dist/src/adapters/rpc-adapter.d.ts.map +1 -0
  24. package/dist/src/adapters/rpc-adapter.js +410 -0
  25. package/dist/src/adapters/rpc-adapter.js.map +1 -0
  26. package/dist/src/adapters/sdk-adapter.d.ts +148 -0
  27. package/dist/src/adapters/sdk-adapter.d.ts.map +1 -0
  28. package/dist/src/adapters/sdk-adapter.js +554 -0
  29. package/dist/src/adapters/sdk-adapter.js.map +1 -0
  30. package/dist/src/commands/config/index.d.ts +8 -0
  31. package/dist/src/commands/config/index.d.ts.map +1 -0
  32. package/dist/src/commands/config/index.js +91 -0
  33. package/dist/src/commands/config/index.js.map +1 -0
  34. package/dist/src/commands/query/index.d.ts +10 -0
  35. package/dist/src/commands/query/index.d.ts.map +1 -0
  36. package/dist/src/commands/query/index.js +376 -0
  37. package/dist/src/commands/query/index.js.map +1 -0
  38. package/dist/src/commands/sniper/index.d.ts +16 -0
  39. package/dist/src/commands/sniper/index.d.ts.map +1 -0
  40. package/dist/src/commands/sniper/index.js +292 -0
  41. package/dist/src/commands/sniper/index.js.map +1 -0
  42. package/dist/src/commands/token/index.d.ts +16 -0
  43. package/dist/src/commands/token/index.d.ts.map +1 -0
  44. package/dist/src/commands/token/index.js +295 -0
  45. package/dist/src/commands/token/index.js.map +1 -0
  46. package/dist/src/commands/tools/index.d.ts +17 -0
  47. package/dist/src/commands/tools/index.d.ts.map +1 -0
  48. package/dist/src/commands/tools/index.js +626 -0
  49. package/dist/src/commands/tools/index.js.map +1 -0
  50. package/dist/src/commands/trade/index.d.ts +8 -0
  51. package/dist/src/commands/trade/index.d.ts.map +1 -0
  52. package/dist/src/commands/trade/index.js +531 -0
  53. package/dist/src/commands/trade/index.js.map +1 -0
  54. package/dist/src/commands/transfer/index.d.ts +16 -0
  55. package/dist/src/commands/transfer/index.d.ts.map +1 -0
  56. package/dist/src/commands/transfer/index.js +509 -0
  57. package/dist/src/commands/transfer/index.js.map +1 -0
  58. package/dist/src/commands/wallet/index.d.ts +10 -0
  59. package/dist/src/commands/wallet/index.d.ts.map +1 -0
  60. package/dist/src/commands/wallet/index.js +828 -0
  61. package/dist/src/commands/wallet/index.js.map +1 -0
  62. package/dist/src/config.d.ts +74 -0
  63. package/dist/src/config.d.ts.map +1 -0
  64. package/dist/src/config.js +190 -0
  65. package/dist/src/config.js.map +1 -0
  66. package/dist/src/const/IDL/index.d.ts +4 -0
  67. package/dist/src/const/IDL/index.d.ts.map +1 -0
  68. package/dist/src/const/IDL/index.js +2 -0
  69. package/dist/src/const/IDL/index.js.map +1 -0
  70. package/dist/src/const/IDL/meteora-DLMM.d.ts +10249 -0
  71. package/dist/src/const/IDL/meteora-DLMM.d.ts.map +1 -0
  72. package/dist/src/const/IDL/meteora-DLMM.js +4177 -0
  73. package/dist/src/const/IDL/meteora-DLMM.js.map +1 -0
  74. package/dist/src/const/IDL/pump-fun.d.ts +4811 -0
  75. package/dist/src/const/IDL/pump-fun.d.ts.map +1 -0
  76. package/dist/src/const/IDL/pump-fun.js +2954 -0
  77. package/dist/src/const/IDL/pump-fun.js.map +1 -0
  78. package/dist/src/const/IDL/pump-swap-IDL.d.ts +3119 -0
  79. package/dist/src/const/IDL/pump-swap-IDL.d.ts.map +1 -0
  80. package/dist/src/const/IDL/pump-swap-IDL.js +2095 -0
  81. package/dist/src/const/IDL/pump-swap-IDL.js.map +1 -0
  82. package/dist/src/const/IDL/raydium-launchlab-IDL.d.ts +4031 -0
  83. package/dist/src/const/IDL/raydium-launchlab-IDL.d.ts.map +1 -0
  84. package/dist/src/const/IDL/raydium-launchlab-IDL.js +2110 -0
  85. package/dist/src/const/IDL/raydium-launchlab-IDL.js.map +1 -0
  86. package/dist/src/const/index.d.ts +40 -0
  87. package/dist/src/const/index.d.ts.map +1 -0
  88. package/dist/src/const/index.js +57 -0
  89. package/dist/src/const/index.js.map +1 -0
  90. package/dist/src/data-source.d.ts +270 -0
  91. package/dist/src/data-source.d.ts.map +1 -0
  92. package/dist/src/data-source.js +628 -0
  93. package/dist/src/data-source.js.map +1 -0
  94. package/dist/src/data-store/index.d.ts +87 -0
  95. package/dist/src/data-store/index.d.ts.map +1 -0
  96. package/dist/src/data-store/index.js +561 -0
  97. package/dist/src/data-store/index.js.map +1 -0
  98. package/dist/src/data-store/types.d.ts +91 -0
  99. package/dist/src/data-store/types.d.ts.map +1 -0
  100. package/dist/src/data-store/types.js +8 -0
  101. package/dist/src/data-store/types.js.map +1 -0
  102. package/dist/src/index.d.ts +8 -0
  103. package/dist/src/index.d.ts.map +1 -0
  104. package/dist/src/index.js +36 -0
  105. package/dist/src/index.js.map +1 -0
  106. package/dist/src/output.d.ts +52 -0
  107. package/dist/src/output.d.ts.map +1 -0
  108. package/dist/src/output.js +218 -0
  109. package/dist/src/output.js.map +1 -0
  110. package/dist/src/shims/store.d.ts +58 -0
  111. package/dist/src/shims/store.d.ts.map +1 -0
  112. package/dist/src/shims/store.js +55 -0
  113. package/dist/src/shims/store.js.map +1 -0
  114. package/dist/src/sol-sdk/account/index.d.ts +13 -0
  115. package/dist/src/sol-sdk/account/index.d.ts.map +1 -0
  116. package/dist/src/sol-sdk/account/index.js +174 -0
  117. package/dist/src/sol-sdk/account/index.js.map +1 -0
  118. package/dist/src/sol-sdk/account/lookupTable.d.ts +24 -0
  119. package/dist/src/sol-sdk/account/lookupTable.d.ts.map +1 -0
  120. package/dist/src/sol-sdk/account/lookupTable.js +103 -0
  121. package/dist/src/sol-sdk/account/lookupTable.js.map +1 -0
  122. package/dist/src/sol-sdk/batch/create.d.ts +23 -0
  123. package/dist/src/sol-sdk/batch/create.d.ts.map +1 -0
  124. package/dist/src/sol-sdk/batch/create.js +580 -0
  125. package/dist/src/sol-sdk/batch/create.js.map +1 -0
  126. package/dist/src/sol-sdk/batch/external-sniper.d.ts +31 -0
  127. package/dist/src/sol-sdk/batch/external-sniper.d.ts.map +1 -0
  128. package/dist/src/sol-sdk/batch/external-sniper.js +163 -0
  129. package/dist/src/sol-sdk/batch/external-sniper.js.map +1 -0
  130. package/dist/src/sol-sdk/batch/index.d.ts +144 -0
  131. package/dist/src/sol-sdk/batch/index.d.ts.map +1 -0
  132. package/dist/src/sol-sdk/batch/index.js +1573 -0
  133. package/dist/src/sol-sdk/batch/index.js.map +1 -0
  134. package/dist/src/sol-sdk/calc.d.ts +277 -0
  135. package/dist/src/sol-sdk/calc.d.ts.map +1 -0
  136. package/dist/src/sol-sdk/calc.js +590 -0
  137. package/dist/src/sol-sdk/calc.js.map +1 -0
  138. package/dist/src/sol-sdk/index.d.ts +1 -0
  139. package/dist/src/sol-sdk/index.d.ts.map +1 -0
  140. package/dist/src/sol-sdk/index.js +1 -0
  141. package/dist/src/sol-sdk/index.js.map +1 -0
  142. package/dist/src/sol-sdk/jito/index.d.ts +50 -0
  143. package/dist/src/sol-sdk/jito/index.d.ts.map +1 -0
  144. package/dist/src/sol-sdk/jito/index.js +225 -0
  145. package/dist/src/sol-sdk/jito/index.js.map +1 -0
  146. package/dist/src/sol-sdk/launchlab/index.d.ts +32 -0
  147. package/dist/src/sol-sdk/launchlab/index.d.ts.map +1 -0
  148. package/dist/src/sol-sdk/launchlab/index.js +78 -0
  149. package/dist/src/sol-sdk/launchlab/index.js.map +1 -0
  150. package/dist/src/sol-sdk/launchlab/instructions/buy.d.ts +27 -0
  151. package/dist/src/sol-sdk/launchlab/instructions/buy.d.ts.map +1 -0
  152. package/dist/src/sol-sdk/launchlab/instructions/buy.js +124 -0
  153. package/dist/src/sol-sdk/launchlab/instructions/buy.js.map +1 -0
  154. package/dist/src/sol-sdk/launchlab/instructions/create.d.ts +27 -0
  155. package/dist/src/sol-sdk/launchlab/instructions/create.d.ts.map +1 -0
  156. package/dist/src/sol-sdk/launchlab/instructions/create.js +125 -0
  157. package/dist/src/sol-sdk/launchlab/instructions/create.js.map +1 -0
  158. package/dist/src/sol-sdk/launchlab/instructions/sell.d.ts +15 -0
  159. package/dist/src/sol-sdk/launchlab/instructions/sell.d.ts.map +1 -0
  160. package/dist/src/sol-sdk/launchlab/instructions/sell.js +65 -0
  161. package/dist/src/sol-sdk/launchlab/instructions/sell.js.map +1 -0
  162. package/dist/src/sol-sdk/meteora/index.d.ts +32 -0
  163. package/dist/src/sol-sdk/meteora/index.d.ts.map +1 -0
  164. package/dist/src/sol-sdk/meteora/index.js +72 -0
  165. package/dist/src/sol-sdk/meteora/index.js.map +1 -0
  166. package/dist/src/sol-sdk/meteora/instructions/buy.d.ts +46 -0
  167. package/dist/src/sol-sdk/meteora/instructions/buy.d.ts.map +1 -0
  168. package/dist/src/sol-sdk/meteora/instructions/buy.js +153 -0
  169. package/dist/src/sol-sdk/meteora/instructions/buy.js.map +1 -0
  170. package/dist/src/sol-sdk/meteora/instructions/sell.d.ts +24 -0
  171. package/dist/src/sol-sdk/meteora/instructions/sell.d.ts.map +1 -0
  172. package/dist/src/sol-sdk/meteora/instructions/sell.js +98 -0
  173. package/dist/src/sol-sdk/meteora/instructions/sell.js.map +1 -0
  174. package/dist/src/sol-sdk/pump/index.d.ts +22 -0
  175. package/dist/src/sol-sdk/pump/index.d.ts.map +1 -0
  176. package/dist/src/sol-sdk/pump/index.js +101 -0
  177. package/dist/src/sol-sdk/pump/index.js.map +1 -0
  178. package/dist/src/sol-sdk/pump/instructions/buy.d.ts +29 -0
  179. package/dist/src/sol-sdk/pump/instructions/buy.d.ts.map +1 -0
  180. package/dist/src/sol-sdk/pump/instructions/buy.js +131 -0
  181. package/dist/src/sol-sdk/pump/instructions/buy.js.map +1 -0
  182. package/dist/src/sol-sdk/pump/instructions/createAndBuy.d.ts +36 -0
  183. package/dist/src/sol-sdk/pump/instructions/createAndBuy.d.ts.map +1 -0
  184. package/dist/src/sol-sdk/pump/instructions/createAndBuy.js +77 -0
  185. package/dist/src/sol-sdk/pump/instructions/createAndBuy.js.map +1 -0
  186. package/dist/src/sol-sdk/pump/instructions/sell.d.ts +7 -0
  187. package/dist/src/sol-sdk/pump/instructions/sell.d.ts.map +1 -0
  188. package/dist/src/sol-sdk/pump/instructions/sell.js +38 -0
  189. package/dist/src/sol-sdk/pump/instructions/sell.js.map +1 -0
  190. package/dist/src/sol-sdk/pumpswap/index.d.ts +9 -0
  191. package/dist/src/sol-sdk/pumpswap/index.d.ts.map +1 -0
  192. package/dist/src/sol-sdk/pumpswap/index.js +27 -0
  193. package/dist/src/sol-sdk/pumpswap/index.js.map +1 -0
  194. package/dist/src/sol-sdk/pumpswap/instructions/buy.d.ts +61 -0
  195. package/dist/src/sol-sdk/pumpswap/instructions/buy.d.ts.map +1 -0
  196. package/dist/src/sol-sdk/pumpswap/instructions/buy.js +215 -0
  197. package/dist/src/sol-sdk/pumpswap/instructions/buy.js.map +1 -0
  198. package/dist/src/sol-sdk/pumpswap/instructions/migrate.d.ts +3 -0
  199. package/dist/src/sol-sdk/pumpswap/instructions/migrate.d.ts.map +1 -0
  200. package/dist/src/sol-sdk/pumpswap/instructions/migrate.js +33 -0
  201. package/dist/src/sol-sdk/pumpswap/instructions/migrate.js.map +1 -0
  202. package/dist/src/sol-sdk/pumpswap/instructions/sell.d.ts +20 -0
  203. package/dist/src/sol-sdk/pumpswap/instructions/sell.d.ts.map +1 -0
  204. package/dist/src/sol-sdk/pumpswap/instructions/sell.js +107 -0
  205. package/dist/src/sol-sdk/pumpswap/instructions/sell.js.map +1 -0
  206. package/dist/src/sol-sdk/pumpswap/rpc/index.d.ts +28 -0
  207. package/dist/src/sol-sdk/pumpswap/rpc/index.d.ts.map +1 -0
  208. package/dist/src/sol-sdk/pumpswap/rpc/index.js +63 -0
  209. package/dist/src/sol-sdk/pumpswap/rpc/index.js.map +1 -0
  210. package/dist/src/sol-sdk/raydium/index.d.ts +16 -0
  211. package/dist/src/sol-sdk/raydium/index.d.ts.map +1 -0
  212. package/dist/src/sol-sdk/raydium/index.js +47 -0
  213. package/dist/src/sol-sdk/raydium/index.js.map +1 -0
  214. package/dist/src/sol-sdk/raydium/instructions/buy.d.ts +29 -0
  215. package/dist/src/sol-sdk/raydium/instructions/buy.d.ts.map +1 -0
  216. package/dist/src/sol-sdk/raydium/instructions/buy.js +106 -0
  217. package/dist/src/sol-sdk/raydium/instructions/buy.js.map +1 -0
  218. package/dist/src/sol-sdk/raydium/instructions/cpmmBuy.d.ts +29 -0
  219. package/dist/src/sol-sdk/raydium/instructions/cpmmBuy.d.ts.map +1 -0
  220. package/dist/src/sol-sdk/raydium/instructions/cpmmBuy.js +80 -0
  221. package/dist/src/sol-sdk/raydium/instructions/cpmmBuy.js.map +1 -0
  222. package/dist/src/sol-sdk/raydium/instructions/cpmmSell.d.ts +17 -0
  223. package/dist/src/sol-sdk/raydium/instructions/cpmmSell.d.ts.map +1 -0
  224. package/dist/src/sol-sdk/raydium/instructions/cpmmSell.js +56 -0
  225. package/dist/src/sol-sdk/raydium/instructions/cpmmSell.js.map +1 -0
  226. package/dist/src/sol-sdk/raydium/instructions/sell.d.ts +8558 -0
  227. package/dist/src/sol-sdk/raydium/instructions/sell.d.ts.map +1 -0
  228. package/dist/src/sol-sdk/raydium/instructions/sell.js +70 -0
  229. package/dist/src/sol-sdk/raydium/instructions/sell.js.map +1 -0
  230. package/dist/src/sol-sdk/raydium/rpc/index.d.ts +39 -0
  231. package/dist/src/sol-sdk/raydium/rpc/index.d.ts.map +1 -0
  232. package/dist/src/sol-sdk/raydium/rpc/index.js +82 -0
  233. package/dist/src/sol-sdk/raydium/rpc/index.js.map +1 -0
  234. package/dist/src/sol-sdk/raydium/rpc/raydium.d.ts +5 -0
  235. package/dist/src/sol-sdk/raydium/rpc/raydium.d.ts.map +1 -0
  236. package/dist/src/sol-sdk/raydium/rpc/raydium.js +18 -0
  237. package/dist/src/sol-sdk/raydium/rpc/raydium.js.map +1 -0
  238. package/dist/src/sol-sdk/rpc/index.d.ts +33 -0
  239. package/dist/src/sol-sdk/rpc/index.d.ts.map +1 -0
  240. package/dist/src/sol-sdk/rpc/index.js +128 -0
  241. package/dist/src/sol-sdk/rpc/index.js.map +1 -0
  242. package/dist/src/sol-sdk/transfer/index.d.ts +24 -0
  243. package/dist/src/sol-sdk/transfer/index.d.ts.map +1 -0
  244. package/dist/src/sol-sdk/transfer/index.js +65 -0
  245. package/dist/src/sol-sdk/transfer/index.js.map +1 -0
  246. package/dist/src/sol-sdk/turnover/index.d.ts +84 -0
  247. package/dist/src/sol-sdk/turnover/index.d.ts.map +1 -0
  248. package/dist/src/sol-sdk/turnover/index.js +569 -0
  249. package/dist/src/sol-sdk/turnover/index.js.map +1 -0
  250. package/dist/src/tx-tracker/detail-adapter.d.ts +100 -0
  251. package/dist/src/tx-tracker/detail-adapter.d.ts.map +1 -0
  252. package/dist/src/tx-tracker/detail-adapter.js +215 -0
  253. package/dist/src/tx-tracker/detail-adapter.js.map +1 -0
  254. package/dist/src/tx-tracker/index.d.ts +142 -0
  255. package/dist/src/tx-tracker/index.d.ts.map +1 -0
  256. package/dist/src/tx-tracker/index.js +447 -0
  257. package/dist/src/tx-tracker/index.js.map +1 -0
  258. package/dist/src/types/index.d.ts +76 -0
  259. package/dist/src/types/index.d.ts.map +1 -0
  260. package/dist/src/types/index.js +69 -0
  261. package/dist/src/types/index.js.map +1 -0
  262. package/dist/src/types/websocket.d.ts +15 -0
  263. package/dist/src/types/websocket.d.ts.map +1 -0
  264. package/dist/src/types/websocket.js +18 -0
  265. package/dist/src/types/websocket.js.map +1 -0
  266. package/dist/src/utils/index.d.ts +13 -0
  267. package/dist/src/utils/index.d.ts.map +1 -0
  268. package/dist/src/utils/index.js +174 -0
  269. package/dist/src/utils/index.js.map +1 -0
  270. package/dist/src/wallet-store.d.ts +124 -0
  271. package/dist/src/wallet-store.d.ts.map +1 -0
  272. package/dist/src/wallet-store.js +524 -0
  273. package/dist/src/wallet-store.js.map +1 -0
  274. package/package.json +86 -0
  275. package/scripts/postinstall.js +88 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sell.d.ts","sourceRoot":"","sources":["../../../../../src/sol-sdk/raydium/instructions/sell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA8B,MAAM,4BAA4B,CAAC;AASnF,OAAO,EACL,WAAW,EAEX,SAAS,EACT,UAAU,EAEV,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,MAAM,OAAO,CAAC;AAGvB,eAAO,MAAM,UAAU,GAAU,YAAY,UAAU,EAAE,QAAQ,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAQtE,CAAC;AAEF,eAAO,MAAM,eAAe,GAAU,+KAYnC;IACD,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,kBAAkB,CAAC,EAAE,SAAS,CAAC;IAC/B,4BAA4B,CAAC,EAAE,sBAAsB,CAAC;CACvD,KAAG,OAAO,CAAC,WAAW,CA+EtB,CAAC"}
@@ -0,0 +1,70 @@
1
+ import { makeSwapFixedInInstruction } from '@raydium-io/raydium-sdk-v2';
2
+ import { NATIVE_MINT, getAssociatedTokenAddress, createAssociatedTokenAccountIdempotentInstruction, createCloseAccountInstruction, createInitializeAccountInstruction, TOKEN_PROGRAM_ID, } from '@solana/spl-token';
3
+ import { Transaction, Keypair, PublicKey, SystemProgram, } from '@solana/web3.js';
4
+ import BN from 'bn.js';
5
+ import { initSdk } from '../index.js';
6
+ export const beforeSell = async (connection, poolId) => {
7
+ const raydium = await initSdk(connection);
8
+ const [data, poolKeys, rpcData] = await Promise.all([
9
+ raydium.api.fetchPoolById({ ids: poolId }),
10
+ raydium.liquidity.getAmmPoolKeys(poolId),
11
+ raydium.liquidity.getRpcPoolInfo(poolId),
12
+ ]);
13
+ return [data[0], poolKeys, rpcData];
14
+ };
15
+ export const sellInstruction = async ({ amount, owner, poolKeys, mintA, mintB, minAmountOut, needCreateAtaAccount = true, needCloseTokenAccount = false, needCloseWsolAccount = true, initialWsolAccount, createWsolAccountInstruction, }) => {
16
+ const inputMint = NATIVE_MINT.toBase58();
17
+ const randomAccount = Keypair.generate();
18
+ const seed = randomAccount.publicKey.toBase58().slice(0, 32);
19
+ if (mintA !== inputMint && mintB !== inputMint)
20
+ return Promise.reject(new Error('input mint does not match pool'));
21
+ const transaction = new Transaction();
22
+ const baseLamports = 2039280;
23
+ // 如果提供了初始 wsolAccount,使用它;否则创建新的
24
+ const wsolAccount = initialWsolAccount || (await PublicKey.createWithSeed(owner, seed, TOKEN_PROGRAM_ID));
25
+ // 只有在需要创建账户且没有提供预创建指令时才创建新账户
26
+ if (needCreateAtaAccount && !createWsolAccountInstruction) {
27
+ const createWsolAccount = SystemProgram.createAccountWithSeed({
28
+ fromPubkey: owner,
29
+ newAccountPubkey: wsolAccount,
30
+ basePubkey: owner,
31
+ lamports: new BN(baseLamports).toNumber(),
32
+ space: 165,
33
+ programId: TOKEN_PROGRAM_ID,
34
+ seed,
35
+ });
36
+ transaction.add(createWsolAccount, createInitializeAccountInstruction(wsolAccount, NATIVE_MINT, owner));
37
+ }
38
+ else if (createWsolAccountInstruction) {
39
+ // 如果提供了预创建指令,使用它
40
+ transaction.add(createWsolAccountInstruction);
41
+ }
42
+ const tokenMint = mintA == NATIVE_MINT.toBase58() ? mintB : mintA;
43
+ const tokenAccount = await getAssociatedTokenAddress(new PublicKey(tokenMint), owner);
44
+ // 只有在需要创建 Token Account 时才创建
45
+ if (needCreateAtaAccount) {
46
+ transaction.add(createAssociatedTokenAccountIdempotentInstruction(owner, tokenAccount, owner, new PublicKey(tokenMint)));
47
+ }
48
+ const swapInstruction = makeSwapFixedInInstruction({
49
+ poolKeys,
50
+ userKeys: {
51
+ tokenAccountIn: tokenAccount,
52
+ tokenAccountOut: wsolAccount,
53
+ owner,
54
+ },
55
+ amountIn: new BN(amount),
56
+ minAmountOut: new BN(minAmountOut),
57
+ }, 4);
58
+ transaction.add(swapInstruction);
59
+ // 只有在需要关闭 WSOL 账户时才添加关闭指令
60
+ if (needCloseWsolAccount) {
61
+ transaction.add(createCloseAccountInstruction(wsolAccount, owner, owner));
62
+ }
63
+ // 只有在需要关闭 Token 账户时才添加关闭指令
64
+ if (needCloseTokenAccount) {
65
+ transaction.add(createCloseAccountInstruction(tokenAccount, owner, owner));
66
+ }
67
+ transaction.feePayer = owner;
68
+ return transaction;
69
+ };
70
+ //# sourceMappingURL=sell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sell.js","sourceRoot":"","sources":["../../../../../src/sol-sdk/raydium/instructions/sell.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { Connection } from '@solana/web3.js';
2
+ export declare const raydiumCalcCaPrice: (connection: Connection, poolId: string) => Promise<string>;
3
+ export declare const raydiumGetPoolInfo: (connection: Connection, poolId: string) => Promise<{
4
+ poolBaseTokenInfo: {
5
+ amount: string;
6
+ };
7
+ poolQuoteTokenInfo: {
8
+ amount: string;
9
+ };
10
+ }>;
11
+ export declare const raydiumGetCpmmPoolInfo: (connection: Connection, poolId: string) => Promise<{
12
+ poolBaseTokenInfo: {
13
+ amount: string;
14
+ };
15
+ poolQuoteTokenInfo: {
16
+ amount: string;
17
+ };
18
+ }>;
19
+ export declare const searchPoolByMint: (mint: string, isNew: boolean) => Promise<string | {
20
+ poolId: string;
21
+ poolKeys: object;
22
+ }>;
23
+ export declare const getPoolVault: (poolId: string) => Promise<{
24
+ A: string;
25
+ B: string;
26
+ mintA: string;
27
+ mintB: string;
28
+ }>;
29
+ export declare const getPoolKeys: (connection: Connection, poolId: string) => Promise<{
30
+ poolKeys: import("@raydium-io/raydium-sdk-v2").AmmV4Keys | import("@raydium-io/raydium-sdk-v2").AmmV5Keys;
31
+ }>;
32
+ export declare const getRaydiumCpmmKeys: (connection: Connection, poolId: string) => Promise<{
33
+ poolKeys: {
34
+ poolInfo: import("@raydium-io/raydium-sdk-v2").ApiV3PoolInfoStandardItemCpmm;
35
+ poolKeys: import("@raydium-io/raydium-sdk-v2").CpmmKeys;
36
+ rpcData: import("@raydium-io/raydium-sdk-v2").CpmmRpcData;
37
+ };
38
+ }>;
39
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/sol-sdk/raydium/rpc/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAQxD,eAAO,MAAM,kBAAkB,GAAU,YAAY,UAAU,EAAE,QAAQ,MAAM,oBAe9E,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAU,YAAY,UAAU,EAAE,QAAQ,MAAM;;;;;;;EAW9E,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAU,YAAY,UAAU,EAAE,QAAQ,MAAM;;;;;;;EAWlF,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,MAAM,MAAM,EACZ,OAAO,OAAO,KACb,OAAO,CAAC,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAcvD,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,QAAQ,MAAM,KACb,OAAO,CAAC;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAQhE,CAAC;AAEF,eAAO,MAAM,WAAW,GAAU,YAAY,UAAU,EAAE,QAAQ,MAAM;;EAMvE,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAU,YAAY,UAAU,EAAE,QAAQ,MAAM;;;;;;EAM9E,CAAC"}
@@ -0,0 +1,82 @@
1
+ import { PublicKey } from '@solana/web3.js';
2
+ import { NATIVE_MINT } from '@solana/spl-token';
3
+ import BigNumber from 'bignumber.js';
4
+ import initSDK from './raydium.js';
5
+ import { Api } from '@raydium-io/raydium-sdk-v2';
6
+ import axios from 'axios';
7
+ import { initSdk } from '../index.js';
8
+ export const raydiumCalcCaPrice = async (connection, poolId) => {
9
+ const raydium = initSDK(connection);
10
+ const pool = await raydium.liquidity.getRpcPoolInfo(poolId);
11
+ const baseReserve = pool.baseReserve.toString(10);
12
+ const quoteReserve = pool.quoteReserve.toString(10);
13
+ const baseDecimal = pool.baseDecimal.toString(10);
14
+ const quoteDecimal = pool.quoteDecimal.toString(10);
15
+ const baseAmount = new BigNumber(baseReserve).div(new BigNumber(10).pow(new BigNumber(baseDecimal)));
16
+ const quoteAmount = new BigNumber(quoteReserve).div(new BigNumber(10).pow(new BigNumber(quoteDecimal)));
17
+ const price = baseAmount.div(quoteAmount).toFixed(9);
18
+ return price;
19
+ };
20
+ export const raydiumGetPoolInfo = async (connection, poolId) => {
21
+ const raydium = await initSdk(connection);
22
+ const pool = await raydium.liquidity.getRpcPoolInfo(poolId);
23
+ return {
24
+ poolBaseTokenInfo: {
25
+ amount: pool.baseReserve.toString(10),
26
+ },
27
+ poolQuoteTokenInfo: {
28
+ amount: pool.quoteReserve.toString(10),
29
+ },
30
+ };
31
+ };
32
+ export const raydiumGetCpmmPoolInfo = async (connection, poolId) => {
33
+ const raydium = await initSdk(connection);
34
+ const pool = await raydium.cpmm.getPoolInfoFromRpc(poolId);
35
+ return {
36
+ poolBaseTokenInfo: {
37
+ amount: pool.rpcData.baseReserve.toString(10),
38
+ },
39
+ poolQuoteTokenInfo: {
40
+ amount: pool.rpcData.quoteReserve.toString(10),
41
+ },
42
+ };
43
+ };
44
+ export const searchPoolByMint = async (mint, isNew) => {
45
+ return new Promise(async (resolve, reject) => {
46
+ try {
47
+ const pools = await new Api({
48
+ cluster: 'mainnet',
49
+ timeout: 10000,
50
+ }).fetchPoolByMints({ mint1: NATIVE_MINT, mint2: new PublicKey(mint) });
51
+ const pool = pools.data.filter(item => item.type === 'Standard');
52
+ resolve(pool[0]?.id ?? null);
53
+ }
54
+ catch (error) {
55
+ throw new Error(error);
56
+ }
57
+ });
58
+ };
59
+ export const getPoolVault = async (poolId) => {
60
+ const res = await axios.get(`https://api-v3.raydium.io/pools/key/ids?ids=${poolId}`);
61
+ return {
62
+ A: res.data.data[0].vault.A,
63
+ B: res.data.data[0].vault.B,
64
+ mintA: res.data.data[0].mintA.address,
65
+ mintB: res.data.data[0].mintB.address,
66
+ };
67
+ };
68
+ export const getPoolKeys = async (connection, poolId) => {
69
+ const raydium = await initSdk(connection);
70
+ const poolKeys = await raydium.liquidity.getAmmPoolKeys(poolId);
71
+ return {
72
+ poolKeys,
73
+ };
74
+ };
75
+ export const getRaydiumCpmmKeys = async (connection, poolId) => {
76
+ const raydium = await initSdk(connection);
77
+ const poolKeys = await raydium.cpmm.getPoolInfoFromRpc(poolId);
78
+ return {
79
+ poolKeys,
80
+ };
81
+ };
82
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/sol-sdk/raydium/rpc/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { Connection } from '@solana/web3.js';
2
+ import { Raydium } from '@raydium-io/raydium-sdk-v2';
3
+ declare const _default: (connection: Connection) => Raydium;
4
+ export default _default;
5
+ //# sourceMappingURL=raydium.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raydium.d.ts","sourceRoot":"","sources":["../../../../../src/sol-sdk/raydium/rpc/raydium.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAW,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,OAAO,EAA4B,MAAM,4BAA4B,CAAC;yBAI/D,YAAY,UAAU;AAAtC,wBAaE"}
@@ -0,0 +1,18 @@
1
+ import { Keypair } from '@solana/web3.js';
2
+ import { Raydium } from '@raydium-io/raydium-sdk-v2';
3
+ let raydium;
4
+ export default (connection) => {
5
+ if (raydium) {
6
+ return raydium;
7
+ }
8
+ raydium = new Raydium({
9
+ connection,
10
+ owner: Keypair.generate(),
11
+ cluster: 'mainnet',
12
+ disableFeatureCheck: true,
13
+ disableLoadToken: true,
14
+ blockhashCommitment: 'processed',
15
+ });
16
+ return raydium;
17
+ };
18
+ //# sourceMappingURL=raydium.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raydium.js","sourceRoot":"","sources":["../../../../../src/sol-sdk/raydium/rpc/raydium.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,OAAO,EAA4B,MAAM,4BAA4B,CAAC;AAE/E,IAAI,OAAgB,CAAC;AAErB,eAAe,CAAC,UAAsB,EAAE,EAAE;IACxC,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,GAAG,IAAI,OAAO,CAAC;QACpB,UAAU;QACV,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE;QACzB,OAAO,EAAE,SAAS;QAClB,mBAAmB,EAAE,IAAI;QACzB,gBAAgB,EAAE,IAAI;QACtB,mBAAmB,EAAE,WAAW;KACE,CAAC,CAAC;IACtC,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { Connection, Commitment, TransactionInstruction } from '@solana/web3.js';
2
+ export declare const getConnection: (url: string, commitment?: Commitment) => Connection;
3
+ export declare const getNativeBalance: (connection: Connection, address: string) => Promise<number>;
4
+ export declare const getTokenAccountBalance: (connection: Connection, mint: string, address: string) => Promise<number>;
5
+ export declare const getMultipleTokenAccountBalanceByOwners: (connection: Connection, wallets: string[], tokenAddresses: string) => Promise<number[]>;
6
+ export declare const getTokenAccountsByOwner: (connection: Connection, address: string, tokenAddress: string) => Promise<import("@solana/web3.js").RpcResponseAndContext<import("@solana/web3.js").GetProgramAccountsResponse>>;
7
+ /**
8
+ * 获取减去 gasfee 和优先费的余额或token 余额
9
+ * @param address 地址
10
+ * @param tokenAddress 代币地址
11
+ * @param leftFee 是否减去 gasfee 和优先费
12
+ * @param priorityFee 优先费
13
+ * @param solBalance 已知余额
14
+ * @returns 余额或token 余额(uiAmount)
15
+ */
16
+ export declare const getAccountBalanceLeftFee: (address: string, tokenAddress: string, leftFee: boolean, // 是否减去 gasfee 和优先费
17
+ priorityFee?: number, // 优先费
18
+ solBalance?: number, // 余额
19
+ fromTransfer?: boolean) => Promise<number>;
20
+ export declare const getMultipleAccountBalanceLeftFee: (wallets: string[], tokenAddress: string, leftFee: boolean, priorityFee?: number, solBalance?: number, // 余额
21
+ fromTransfer?: boolean) => Promise<number[]>;
22
+ /**
23
+ * 获取CU和价格
24
+ * @param priorityFee 优先费(uiAmount)
25
+ * @param estimateCU 估计CU
26
+ * @returns { limitIx: TransactionInstruction; priceIx: TransactionInstruction }
27
+ */
28
+ export declare const getCU: (priorityFee: number, estimateCU?: number) => {
29
+ limitIx: TransactionInstruction;
30
+ priceIx: TransactionInstruction;
31
+ };
32
+ export declare const getTransactionStatus: (connection: Connection, txHash: string, attempts?: number, interval?: number) => Promise<boolean>;
33
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/sol-sdk/rpc/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,UAAU,EAIV,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AASzB,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,EAAE,aAAY,UAAwB,eAE9E,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,YAAY,UAAU,EACtB,SAAS,MAAM,KACd,OAAO,CAAC,MAAM,CAOhB,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,YAAY,UAAU,EACtB,MAAM,MAAM,EACZ,SAAS,MAAM,KACd,OAAO,CAAC,MAAM,CAShB,CAAC;AAEF,eAAO,MAAM,sCAAsC,GACjD,YAAY,UAAU,EACtB,SAAS,MAAM,EAAE,EACjB,gBAAgB,MAAM,sBAMvB,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,YAAY,UAAU,EACtB,SAAS,MAAM,EACf,cAAc,MAAM,mHAMrB,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,GACnC,SAAS,MAAM,EACf,cAAc,MAAM,EACpB,SAAS,OAAO,EAAE,mBAAmB;AACrC,cAAc,MAAM,EAAE,MAAM;AAC5B,aAAa,MAAM,EAAE,KAAK;AAC1B,eAAe,OAAO,KACrB,OAAO,CAAC,MAAM,CAmChB,CAAC;AAEF,eAAO,MAAM,gCAAgC,GAC3C,SAAS,MAAM,EAAE,EACjB,cAAc,MAAM,EACpB,SAAS,OAAO,EAChB,cAAc,MAAM,EACpB,aAAa,MAAM,EAAE,KAAK;AAC1B,eAAe,OAAO,sBAQvB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAChB,aAAa,MAAM,EACnB,aAAa,MAAM,KAClB;IAAE,OAAO,EAAE,sBAAsB,CAAC;IAAC,OAAO,EAAE,sBAAsB,CAAA;CAQpE,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,YAAY,UAAU,EACtB,QAAQ,MAAM,EACd,WAAU,MAAU,EACpB,WAAU,MAAa,KACtB,OAAO,CAAC,OAAO,CAmBjB,CAAC"}
@@ -0,0 +1,128 @@
1
+ import { Connection, PublicKey, LAMPORTS_PER_SOL, ComputeBudgetProgram, } from '@solana/web3.js';
2
+ import { getAssociatedTokenAddress, NATIVE_MINT } from '@solana/spl-token';
3
+ import { store } from '../../shims/store.js';
4
+ import { sleep } from '../../utils/index.js';
5
+ import BigNumber from 'bignumber.js';
6
+ const NATIVE_COIN = 'SOL';
7
+ export const getConnection = (url, commitment = 'confirmed') => {
8
+ return new Connection(url, commitment);
9
+ };
10
+ export const getNativeBalance = async (connection, address) => {
11
+ const balance = await connection.getBalance(new PublicKey(address));
12
+ const amount = new BigNumber(balance).div(new BigNumber(LAMPORTS_PER_SOL)).toNumber();
13
+ if (Number(amount) <= 0) {
14
+ return 0;
15
+ }
16
+ return amount;
17
+ };
18
+ export const getTokenAccountBalance = async (connection, mint, address) => {
19
+ try {
20
+ const ataAccount = await getAssociatedTokenAddress(new PublicKey(mint), new PublicKey(address));
21
+ const tokenAccountBalance = await connection.getTokenAccountBalance(ataAccount);
22
+ if (!tokenAccountBalance.value.uiAmount)
23
+ return 0;
24
+ return tokenAccountBalance.value.uiAmount;
25
+ }
26
+ catch (err) {
27
+ return 0;
28
+ }
29
+ };
30
+ export const getMultipleTokenAccountBalanceByOwners = async (connection, wallets, tokenAddresses) => {
31
+ const tokenAccountBalances = await Promise.all(wallets.map(wallet => getTokenAccountBalance(connection, tokenAddresses, wallet)));
32
+ return tokenAccountBalances;
33
+ };
34
+ export const getTokenAccountsByOwner = async (connection, address, tokenAddress) => {
35
+ const tokenAccount = await connection.getTokenAccountsByOwner(new PublicKey(address), {
36
+ mint: new PublicKey(tokenAddress),
37
+ });
38
+ return tokenAccount;
39
+ };
40
+ /**
41
+ * 获取减去 gasfee 和优先费的余额或token 余额
42
+ * @param address 地址
43
+ * @param tokenAddress 代币地址
44
+ * @param leftFee 是否减去 gasfee 和优先费
45
+ * @param priorityFee 优先费
46
+ * @param solBalance 已知余额
47
+ * @returns 余额或token 余额(uiAmount)
48
+ */
49
+ export const getAccountBalanceLeftFee = async (address, tokenAddress, leftFee, // 是否减去 gasfee 和优先费
50
+ priorityFee, // 优先费
51
+ solBalance, // 余额
52
+ fromTransfer // 是否从归集页面调用
53
+ ) => {
54
+ // try {
55
+ const { gasSettings: { priorityFee: systemPriorityFee }, rpcUrl, } = store.getState().settings;
56
+ // 如果是交易要减去两倍的优先费
57
+ const fee = (Number(priorityFee == undefined ? systemPriorityFee : priorityFee) *
58
+ (fromTransfer ? 1 : 2) *
59
+ LAMPORTS_PER_SOL +
60
+ 5000) /
61
+ LAMPORTS_PER_SOL;
62
+ if (solBalance) {
63
+ return new BigNumber(solBalance).minus(new BigNumber(fee)).toNumber();
64
+ }
65
+ const connection = new Connection(rpcUrl, 'confirmed');
66
+ if (tokenAddress === NATIVE_MINT.toBase58() || tokenAddress === NATIVE_COIN) {
67
+ const balance = await getNativeBalance(connection, address);
68
+ if (leftFee) {
69
+ const amount = new BigNumber(balance).minus(new BigNumber(fee)).toNumber();
70
+ if (Number(amount) <= 0 || isNaN(Number(amount))) {
71
+ return 0;
72
+ }
73
+ return amount;
74
+ }
75
+ else {
76
+ return balance;
77
+ }
78
+ }
79
+ else {
80
+ return await getTokenAccountBalance(connection, tokenAddress, address);
81
+ }
82
+ // } catch (error) {
83
+ // console.log('error', error);
84
+ // return 0;
85
+ // }
86
+ };
87
+ export const getMultipleAccountBalanceLeftFee = async (wallets, tokenAddress, leftFee, priorityFee, solBalance, // 余额
88
+ fromTransfer // 是否从归集页面调用
89
+ ) => {
90
+ const tokenAccountBalances = await Promise.all(wallets.map(wallet => getAccountBalanceLeftFee(wallet, tokenAddress, leftFee, priorityFee, solBalance, fromTransfer)));
91
+ return tokenAccountBalances;
92
+ };
93
+ /**
94
+ * 获取CU和价格
95
+ * @param priorityFee 优先费(uiAmount)
96
+ * @param estimateCU 估计CU
97
+ * @returns { limitIx: TransactionInstruction; priceIx: TransactionInstruction }
98
+ */
99
+ export const getCU = (priorityFee, estimateCU) => {
100
+ let cuLimit = estimateCU || 200_000;
101
+ const totalPriorityFeeSOL = priorityFee;
102
+ const totalPriorityFeeLamports = totalPriorityFeeSOL * LAMPORTS_PER_SOL;
103
+ const microLamports = Math.floor((totalPriorityFeeLamports / cuLimit) * 1_000_000);
104
+ const limitIx = ComputeBudgetProgram.setComputeUnitLimit({ units: cuLimit });
105
+ const priceIx = ComputeBudgetProgram.setComputeUnitPrice({ microLamports });
106
+ return { limitIx, priceIx };
107
+ };
108
+ export const getTransactionStatus = async (connection, txHash, attempts = 0, interval = 3000) => {
109
+ const signatureStatuses = await connection.getSignatureStatuses([txHash]);
110
+ const status = signatureStatuses.value[0];
111
+ if (status) {
112
+ if (status && status.err) {
113
+ return false;
114
+ }
115
+ else {
116
+ return true;
117
+ }
118
+ }
119
+ if (status == null) {
120
+ return false;
121
+ }
122
+ await sleep(interval);
123
+ if (attempts < 5) {
124
+ return await getTransactionStatus(connection, txHash, attempts + 1, interval);
125
+ }
126
+ return false;
127
+ };
128
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/sol-sdk/rpc/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { PublicKey, Transaction, TransactionInstruction, Keypair } from '@solana/web3.js';
2
+ export declare const transferSOLInstruction: (from: PublicKey, to: PublicKey, amount: number) => TransactionInstruction;
3
+ export declare const transferSOL: (addresses: TransferSOLAddress[]) => TransactionInstruction[];
4
+ export declare const transferTokenInstruction: ({ from, to, amount, token, fromAta, toAta, decimals, }: {
5
+ from: PublicKey;
6
+ to: PublicKey;
7
+ amount: number;
8
+ token: string;
9
+ fromAta: PublicKey;
10
+ toAta: PublicKey;
11
+ decimals: number;
12
+ }) => Transaction[];
13
+ export declare const transferToken: (addresses: TransferTokenAddress[]) => Transaction[];
14
+ export declare const solToWsolInstruction: ({ from, fromAta, amount, }: {
15
+ from: PublicKey;
16
+ fromAta: PublicKey;
17
+ amount: number;
18
+ }) => TransactionInstruction[];
19
+ export declare const wsolToSolInstruction: ({ from, fromAta, }: {
20
+ from: PublicKey;
21
+ fromAta: PublicKey;
22
+ }) => TransactionInstruction[];
23
+ export declare const addCommission: (tx: Transaction, payer: Keypair, commissionWallet: string, commissionAmount: string) => void;
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/sol-sdk/transfer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAET,WAAW,EACX,sBAAsB,EACtB,OAAO,EAER,MAAM,iBAAiB,CAAC;AAazB,eAAO,MAAM,sBAAsB,GACjC,MAAM,SAAS,EACf,IAAI,SAAS,EACb,QAAQ,MAAM,KACb,sBAMF,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,WAAW,kBAAkB,EAAE,KAAG,sBAAsB,EAInF,CAAC;AAGF,eAAO,MAAM,wBAAwB,GAAI,wDAQtC;IACD,IAAI,EAAE,SAAS,CAAC;IAChB,EAAE,EAAE,SAAS,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,SAAS,CAAC;IACnB,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB,KAAG,WAAW,EAsBd,CAAC;AAGF,eAAO,MAAM,aAAa,GAAI,WAAW,oBAAoB,EAAE,KAAG,WAAW,EAuB5E,CAAC;AAGF,eAAO,MAAM,oBAAoB,GAAI,4BAIlC;IACD,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,SAAS,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,KAAG,sBAAsB,EAWzB,CAAC;AAGF,eAAO,MAAM,oBAAoB,GAAI,oBAGlC;IACD,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,SAAS,CAAC;CACpB,KAAG,sBAAsB,EAIzB,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,IAAI,WAAW,EACf,OAAO,OAAO,EACd,kBAAkB,MAAM,EACxB,kBAAkB,MAAM,SAazB,CAAC"}
@@ -0,0 +1,65 @@
1
+ import { PublicKey, SystemProgram, Transaction, LAMPORTS_PER_SOL, } from '@solana/web3.js';
2
+ import { createAssociatedTokenAccountIdempotentInstruction, createTransferCheckedInstruction, createSyncNativeInstruction, createCloseAccountInstruction, getAssociatedTokenAddressSync, } from '@solana/spl-token';
3
+ import BigNumber from 'bignumber.js';
4
+ const MIN_COMMISSION_AMOUNT = new BigNumber(0.005).times(LAMPORTS_PER_SOL).toNumber();
5
+ // 转账 sol 指令
6
+ export const transferSOLInstruction = (from, to, amount) => {
7
+ return SystemProgram.transfer({
8
+ fromPubkey: from,
9
+ toPubkey: to,
10
+ lamports: amount,
11
+ });
12
+ };
13
+ export const transferSOL = (addresses) => {
14
+ return addresses.map(address => transferSOLInstruction(new PublicKey(address.from), new PublicKey(address.to), address.amount));
15
+ };
16
+ // 转账 token 指令
17
+ export const transferTokenInstruction = ({ from, to, amount, token, fromAta, toAta, decimals, }) => {
18
+ const tx = new Transaction();
19
+ tx.add(createAssociatedTokenAccountIdempotentInstruction(from, toAta, new PublicKey(to), new PublicKey(token)));
20
+ tx.add(createTransferCheckedInstruction(fromAta, new PublicKey(token), toAta, from, BigInt(amount), decimals, [from]));
21
+ return [tx];
22
+ };
23
+ // 批量转账 token 指令
24
+ export const transferToken = (addresses) => {
25
+ const alltxs = [];
26
+ addresses.forEach(address => {
27
+ const fromAta = getAssociatedTokenAddressSync(new PublicKey(address.token), new PublicKey(address.from));
28
+ const toAta = getAssociatedTokenAddressSync(new PublicKey(address.token), new PublicKey(address.to));
29
+ const txs = transferTokenInstruction({
30
+ from: new PublicKey(address.from),
31
+ to: new PublicKey(address.to),
32
+ fromAta: fromAta,
33
+ toAta: toAta,
34
+ amount: address.amount,
35
+ token: address.token,
36
+ decimals: address.decimals,
37
+ });
38
+ alltxs.push(...txs);
39
+ });
40
+ return alltxs;
41
+ };
42
+ // 转账 sol 到 wsol 指令
43
+ export const solToWsolInstruction = ({ from, fromAta, amount, }) => {
44
+ const txs = [];
45
+ txs.push(SystemProgram.transfer({
46
+ fromPubkey: from,
47
+ toPubkey: fromAta,
48
+ lamports: amount,
49
+ }), createSyncNativeInstruction(fromAta));
50
+ return txs;
51
+ };
52
+ // 转账 wsol 到 sol 指令
53
+ export const wsolToSolInstruction = ({ from, fromAta, }) => {
54
+ const txs = [];
55
+ txs.push(createCloseAccountInstruction(fromAta, from, from));
56
+ return txs;
57
+ };
58
+ export const addCommission = (tx, payer, commissionWallet, commissionAmount) => {
59
+ if (Number(commissionAmount) > 0) {
60
+ tx.add(transferSOLInstruction(payer.publicKey, new PublicKey(commissionWallet), new BigNumber(commissionAmount).gt(MIN_COMMISSION_AMOUNT)
61
+ ? new BigNumber(commissionAmount).toNumber()
62
+ : MIN_COMMISSION_AMOUNT));
63
+ }
64
+ };
65
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/sol-sdk/transfer/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ import { Connection } from '@solana/web3.js';
2
+ import { AmmV4Keys, CpmmKeys } from '@raydium-io/raydium-sdk-v2';
3
+ export interface TurnoverTradeParams {
4
+ connection: Connection;
5
+ fromWallet: string;
6
+ toWallet: string;
7
+ tokenAddress: string;
8
+ tokenAmount: number;
9
+ decimals: number;
10
+ exchangeName: string;
11
+ poolInfo: {
12
+ exchange: {
13
+ name: string;
14
+ };
15
+ pairAddress: string;
16
+ tokenA?: string;
17
+ tokenB?: string;
18
+ };
19
+ priceInSol: number;
20
+ creatorAddress: string;
21
+ priorityFee: number;
22
+ slippage?: number;
23
+ tipAddress: string;
24
+ commissionAmount: number;
25
+ pumpfunReverseInfo?: PumpfunReverseInfo;
26
+ ammReverseInfo?: AmmReverseInfo;
27
+ raydiumV4Keys?: AmmV4Keys;
28
+ raydiumCpmmKeys?: CpmmKeys;
29
+ pumpswapReverseInfo?: AmmReverseInfo;
30
+ launchlabReverseInfo?: LaunchlabReverseInfo;
31
+ meteoraDLMMReverseInfo?: MeteoraDLMMReverseInfo;
32
+ }
33
+ export interface TurnoverTradeResult {
34
+ success: boolean;
35
+ bundleId?: string;
36
+ buyTxHash?: string;
37
+ sellTxHash?: string;
38
+ error?: string;
39
+ }
40
+ export interface BatchTurnoverParams {
41
+ connection: Connection;
42
+ turnoverItems: {
43
+ fromWallet: string;
44
+ toWallet: string;
45
+ tokenAmount: number;
46
+ }[];
47
+ tokenAddress: string;
48
+ decimals: number;
49
+ exchangeName: string;
50
+ poolInfo: {
51
+ exchange: {
52
+ name: string;
53
+ };
54
+ pairAddress: string;
55
+ tokenA?: string;
56
+ tokenB?: string;
57
+ };
58
+ priceInSol: number;
59
+ creatorAddress: string;
60
+ priorityFee: number;
61
+ slippage?: number;
62
+ tipAddress: string;
63
+ commissionAmount: number;
64
+ intervalMs?: number;
65
+ pumpfunReverseInfo?: PumpfunReverseInfo;
66
+ ammReverseInfo?: AmmReverseInfo;
67
+ raydiumV4Keys?: AmmV4Keys;
68
+ raydiumCpmmKeys?: CpmmKeys;
69
+ launchlabReverseInfo?: LaunchlabReverseInfo;
70
+ meteoraDLMMReverseInfo?: MeteoraDLMMReverseInfo;
71
+ }
72
+ /**
73
+ * 执行单次换手交易(买入+卖出的捆绑交易)
74
+ */
75
+ export declare const executeSingleTurnover: (params: TurnoverTradeParams) => Promise<TurnoverTradeResult>;
76
+ /**
77
+ * 执行批量换手交易
78
+ */
79
+ export declare const executeBatchTurnover: (params: BatchTurnoverParams) => Promise<TurnoverTradeResult[]>;
80
+ /**
81
+ * 计算换手交易的SOL转账数量
82
+ */
83
+ export declare const calculateTurnoverProfit: (tokenAmount: number, priceInSol: number, slippage?: number, fees?: number) => number;
84
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/sol-sdk/turnover/index.ts"],"names":[],"mappings":"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"}