outsmart 2.0.0-alpha.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 (235) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +568 -0
  3. package/dist/cli.d.ts +44 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +1251 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/dex/byreal-clmm.d.ts +16 -0
  8. package/dist/dex/byreal-clmm.d.ts.map +1 -0
  9. package/dist/dex/byreal-clmm.js +39 -0
  10. package/dist/dex/byreal-clmm.js.map +1 -0
  11. package/dist/dex/dflow.d.ts +27 -0
  12. package/dist/dex/dflow.d.ts.map +1 -0
  13. package/dist/dex/dflow.js +200 -0
  14. package/dist/dex/dflow.js.map +1 -0
  15. package/dist/dex/fusion-amm.d.ts +44 -0
  16. package/dist/dex/fusion-amm.d.ts.map +1 -0
  17. package/dist/dex/fusion-amm.js +546 -0
  18. package/dist/dex/fusion-amm.js.map +1 -0
  19. package/dist/dex/futarchy-amm.d.ts +32 -0
  20. package/dist/dex/futarchy-amm.d.ts.map +1 -0
  21. package/dist/dex/futarchy-amm.js +443 -0
  22. package/dist/dex/futarchy-amm.js.map +1 -0
  23. package/dist/dex/futarchy-idl.d.ts +2568 -0
  24. package/dist/dex/futarchy-idl.d.ts.map +1 -0
  25. package/dist/dex/futarchy-idl.js +2570 -0
  26. package/dist/dex/futarchy-idl.js.map +1 -0
  27. package/dist/dex/futarchy-launchpad.d.ts +68 -0
  28. package/dist/dex/futarchy-launchpad.d.ts.map +1 -0
  29. package/dist/dex/futarchy-launchpad.js +377 -0
  30. package/dist/dex/futarchy-launchpad.js.map +1 -0
  31. package/dist/dex/index.d.ts +88 -0
  32. package/dist/dex/index.d.ts.map +1 -0
  33. package/dist/dex/index.js +159 -0
  34. package/dist/dex/index.js.map +1 -0
  35. package/dist/dex/jupiter-ultra.d.ts +27 -0
  36. package/dist/dex/jupiter-ultra.d.ts.map +1 -0
  37. package/dist/dex/jupiter-ultra.js +369 -0
  38. package/dist/dex/jupiter-ultra.js.map +1 -0
  39. package/dist/dex/meteora-damm-v1.d.ts +36 -0
  40. package/dist/dex/meteora-damm-v1.d.ts.map +1 -0
  41. package/dist/dex/meteora-damm-v1.js +314 -0
  42. package/dist/dex/meteora-damm-v1.js.map +1 -0
  43. package/dist/dex/meteora-damm-v2.d.ts +103 -0
  44. package/dist/dex/meteora-damm-v2.d.ts.map +1 -0
  45. package/dist/dex/meteora-damm-v2.js +1146 -0
  46. package/dist/dex/meteora-damm-v2.js.map +1 -0
  47. package/dist/dex/meteora-dbc.d.ts +38 -0
  48. package/dist/dex/meteora-dbc.d.ts.map +1 -0
  49. package/dist/dex/meteora-dbc.js +374 -0
  50. package/dist/dex/meteora-dbc.js.map +1 -0
  51. package/dist/dex/meteora-dlmm.d.ts +79 -0
  52. package/dist/dex/meteora-dlmm.d.ts.map +1 -0
  53. package/dist/dex/meteora-dlmm.js +735 -0
  54. package/dist/dex/meteora-dlmm.js.map +1 -0
  55. package/dist/dex/orca.d.ts +31 -0
  56. package/dist/dex/orca.d.ts.map +1 -0
  57. package/dist/dex/orca.js +536 -0
  58. package/dist/dex/orca.js.map +1 -0
  59. package/dist/dex/pancakeswap-clmm.d.ts +16 -0
  60. package/dist/dex/pancakeswap-clmm.d.ts.map +1 -0
  61. package/dist/dex/pancakeswap-clmm.js +39 -0
  62. package/dist/dex/pancakeswap-clmm.js.map +1 -0
  63. package/dist/dex/pumpfun-amm.d.ts +46 -0
  64. package/dist/dex/pumpfun-amm.d.ts.map +1 -0
  65. package/dist/dex/pumpfun-amm.js +692 -0
  66. package/dist/dex/pumpfun-amm.js.map +1 -0
  67. package/dist/dex/pumpfun.d.ts +41 -0
  68. package/dist/dex/pumpfun.d.ts.map +1 -0
  69. package/dist/dex/pumpfun.js +555 -0
  70. package/dist/dex/pumpfun.js.map +1 -0
  71. package/dist/dex/raydium-amm-v4.d.ts +11 -0
  72. package/dist/dex/raydium-amm-v4.d.ts.map +1 -0
  73. package/dist/dex/raydium-amm-v4.js +649 -0
  74. package/dist/dex/raydium-amm-v4.js.map +1 -0
  75. package/dist/dex/raydium-clmm.d.ts +12 -0
  76. package/dist/dex/raydium-clmm.d.ts.map +1 -0
  77. package/dist/dex/raydium-clmm.js +675 -0
  78. package/dist/dex/raydium-clmm.js.map +1 -0
  79. package/dist/dex/raydium-cpmm.d.ts +10 -0
  80. package/dist/dex/raydium-cpmm.d.ts.map +1 -0
  81. package/dist/dex/raydium-cpmm.js +613 -0
  82. package/dist/dex/raydium-cpmm.js.map +1 -0
  83. package/dist/dex/raydium-launchlab.d.ts +12 -0
  84. package/dist/dex/raydium-launchlab.d.ts.map +1 -0
  85. package/dist/dex/raydium-launchlab.js +530 -0
  86. package/dist/dex/raydium-launchlab.js.map +1 -0
  87. package/dist/dex/shared/clmm-base.d.ts +58 -0
  88. package/dist/dex/shared/clmm-base.d.ts.map +1 -0
  89. package/dist/dex/shared/clmm-base.js +891 -0
  90. package/dist/dex/shared/clmm-base.js.map +1 -0
  91. package/dist/dex/types.d.ts +601 -0
  92. package/dist/dex/types.d.ts.map +1 -0
  93. package/dist/dex/types.js +137 -0
  94. package/dist/dex/types.js.map +1 -0
  95. package/dist/dexscreener/index.d.ts +2 -0
  96. package/dist/dexscreener/index.d.ts.map +1 -0
  97. package/dist/dexscreener/index.js +18 -0
  98. package/dist/dexscreener/index.js.map +1 -0
  99. package/dist/dexscreener/info.d.ts +22 -0
  100. package/dist/dexscreener/info.d.ts.map +1 -0
  101. package/dist/dexscreener/info.js +104 -0
  102. package/dist/dexscreener/info.js.map +1 -0
  103. package/dist/helpers/check_balance.d.ts +10 -0
  104. package/dist/helpers/check_balance.d.ts.map +1 -0
  105. package/dist/helpers/check_balance.js +34 -0
  106. package/dist/helpers/check_balance.js.map +1 -0
  107. package/dist/helpers/config.d.ts +51 -0
  108. package/dist/helpers/config.d.ts.map +1 -0
  109. package/dist/helpers/config.js +118 -0
  110. package/dist/helpers/config.js.map +1 -0
  111. package/dist/helpers/index.d.ts +8 -0
  112. package/dist/helpers/index.d.ts.map +1 -0
  113. package/dist/helpers/index.js +29 -0
  114. package/dist/helpers/index.js.map +1 -0
  115. package/dist/helpers/logger.d.ts +27 -0
  116. package/dist/helpers/logger.d.ts.map +1 -0
  117. package/dist/helpers/logger.js +39 -0
  118. package/dist/helpers/logger.js.map +1 -0
  119. package/dist/helpers/token-2022.d.ts +32 -0
  120. package/dist/helpers/token-2022.d.ts.map +1 -0
  121. package/dist/helpers/token-2022.js +48 -0
  122. package/dist/helpers/token-2022.js.map +1 -0
  123. package/dist/helpers/unwrap_sol.d.ts +2 -0
  124. package/dist/helpers/unwrap_sol.d.ts.map +1 -0
  125. package/dist/helpers/unwrap_sol.js +67 -0
  126. package/dist/helpers/unwrap_sol.js.map +1 -0
  127. package/dist/helpers/util.d.ts +698 -0
  128. package/dist/helpers/util.d.ts.map +1 -0
  129. package/dist/helpers/util.js +181 -0
  130. package/dist/helpers/util.js.map +1 -0
  131. package/dist/helpers/utils.d.ts +10 -0
  132. package/dist/helpers/utils.d.ts.map +1 -0
  133. package/dist/helpers/utils.js +97 -0
  134. package/dist/helpers/utils.js.map +1 -0
  135. package/dist/helpers/wrap_sol.d.ts +3 -0
  136. package/dist/helpers/wrap_sol.d.ts.map +1 -0
  137. package/dist/helpers/wrap_sol.js +88 -0
  138. package/dist/helpers/wrap_sol.js.map +1 -0
  139. package/dist/index.d.ts +14 -0
  140. package/dist/index.d.ts.map +1 -0
  141. package/dist/index.js +32 -0
  142. package/dist/index.js.map +1 -0
  143. package/dist/transactions/bloXroute_tips_tx_executor.d.ts +4 -0
  144. package/dist/transactions/bloXroute_tips_tx_executor.d.ts.map +1 -0
  145. package/dist/transactions/bloXroute_tips_tx_executor.js +70 -0
  146. package/dist/transactions/bloXroute_tips_tx_executor.js.map +1 -0
  147. package/dist/transactions/index.d.ts +6 -0
  148. package/dist/transactions/index.d.ts.map +1 -0
  149. package/dist/transactions/index.js +30 -0
  150. package/dist/transactions/index.js.map +1 -0
  151. package/dist/transactions/jito_tips_tx_executor.d.ts +15 -0
  152. package/dist/transactions/jito_tips_tx_executor.d.ts.map +1 -0
  153. package/dist/transactions/jito_tips_tx_executor.js +99 -0
  154. package/dist/transactions/jito_tips_tx_executor.js.map +1 -0
  155. package/dist/transactions/landing/index.d.ts +30 -0
  156. package/dist/transactions/landing/index.d.ts.map +1 -0
  157. package/dist/transactions/landing/index.js +60 -0
  158. package/dist/transactions/landing/index.js.map +1 -0
  159. package/dist/transactions/landing/nonce-manager.d.ts +116 -0
  160. package/dist/transactions/landing/nonce-manager.d.ts.map +1 -0
  161. package/dist/transactions/landing/nonce-manager.js +393 -0
  162. package/dist/transactions/landing/nonce-manager.js.map +1 -0
  163. package/dist/transactions/landing/orchestrator.d.ts +104 -0
  164. package/dist/transactions/landing/orchestrator.d.ts.map +1 -0
  165. package/dist/transactions/landing/orchestrator.js +329 -0
  166. package/dist/transactions/landing/orchestrator.js.map +1 -0
  167. package/dist/transactions/landing/providers/astralane.d.ts +12 -0
  168. package/dist/transactions/landing/providers/astralane.d.ts.map +1 -0
  169. package/dist/transactions/landing/providers/astralane.js +132 -0
  170. package/dist/transactions/landing/providers/astralane.js.map +1 -0
  171. package/dist/transactions/landing/providers/blockrazor.d.ts +11 -0
  172. package/dist/transactions/landing/providers/blockrazor.d.ts.map +1 -0
  173. package/dist/transactions/landing/providers/blockrazor.js +134 -0
  174. package/dist/transactions/landing/providers/blockrazor.js.map +1 -0
  175. package/dist/transactions/landing/providers/bloxroute.d.ts +12 -0
  176. package/dist/transactions/landing/providers/bloxroute.d.ts.map +1 -0
  177. package/dist/transactions/landing/providers/bloxroute.js +102 -0
  178. package/dist/transactions/landing/providers/bloxroute.js.map +1 -0
  179. package/dist/transactions/landing/providers/flashblock.d.ts +10 -0
  180. package/dist/transactions/landing/providers/flashblock.d.ts.map +1 -0
  181. package/dist/transactions/landing/providers/flashblock.js +102 -0
  182. package/dist/transactions/landing/providers/flashblock.js.map +1 -0
  183. package/dist/transactions/landing/providers/helius-sender.d.ts +11 -0
  184. package/dist/transactions/landing/providers/helius-sender.d.ts.map +1 -0
  185. package/dist/transactions/landing/providers/helius-sender.js +101 -0
  186. package/dist/transactions/landing/providers/helius-sender.js.map +1 -0
  187. package/dist/transactions/landing/providers/jito.d.ts +16 -0
  188. package/dist/transactions/landing/providers/jito.d.ts.map +1 -0
  189. package/dist/transactions/landing/providers/jito.js +110 -0
  190. package/dist/transactions/landing/providers/jito.js.map +1 -0
  191. package/dist/transactions/landing/providers/nextblock.d.ts +11 -0
  192. package/dist/transactions/landing/providers/nextblock.d.ts.map +1 -0
  193. package/dist/transactions/landing/providers/nextblock.js +109 -0
  194. package/dist/transactions/landing/providers/nextblock.js.map +1 -0
  195. package/dist/transactions/landing/providers/node1.d.ts +11 -0
  196. package/dist/transactions/landing/providers/node1.d.ts.map +1 -0
  197. package/dist/transactions/landing/providers/node1.js +101 -0
  198. package/dist/transactions/landing/providers/node1.js.map +1 -0
  199. package/dist/transactions/landing/providers/nozomi.d.ts +11 -0
  200. package/dist/transactions/landing/providers/nozomi.d.ts.map +1 -0
  201. package/dist/transactions/landing/providers/nozomi.js +124 -0
  202. package/dist/transactions/landing/providers/nozomi.js.map +1 -0
  203. package/dist/transactions/landing/providers/soyas.d.ts +16 -0
  204. package/dist/transactions/landing/providers/soyas.d.ts.map +1 -0
  205. package/dist/transactions/landing/providers/soyas.js +192 -0
  206. package/dist/transactions/landing/providers/soyas.js.map +1 -0
  207. package/dist/transactions/landing/providers/stellium.d.ts +11 -0
  208. package/dist/transactions/landing/providers/stellium.d.ts.map +1 -0
  209. package/dist/transactions/landing/providers/stellium.js +102 -0
  210. package/dist/transactions/landing/providers/stellium.js.map +1 -0
  211. package/dist/transactions/landing/providers/zero-slot.d.ts +10 -0
  212. package/dist/transactions/landing/providers/zero-slot.d.ts.map +1 -0
  213. package/dist/transactions/landing/providers/zero-slot.js +92 -0
  214. package/dist/transactions/landing/providers/zero-slot.js.map +1 -0
  215. package/dist/transactions/landing/tip-accounts.d.ts +22 -0
  216. package/dist/transactions/landing/tip-accounts.d.ts.map +1 -0
  217. package/dist/transactions/landing/tip-accounts.js +140 -0
  218. package/dist/transactions/landing/tip-accounts.js.map +1 -0
  219. package/dist/transactions/landing/types.d.ts +98 -0
  220. package/dist/transactions/landing/types.d.ts.map +1 -0
  221. package/dist/transactions/landing/types.js +30 -0
  222. package/dist/transactions/landing/types.js.map +1 -0
  223. package/dist/transactions/nozomi/tx-submission.d.ts +14 -0
  224. package/dist/transactions/nozomi/tx-submission.d.ts.map +1 -0
  225. package/dist/transactions/nozomi/tx-submission.js +107 -0
  226. package/dist/transactions/nozomi/tx-submission.js.map +1 -0
  227. package/dist/transactions/send-rpc.d.ts +54 -0
  228. package/dist/transactions/send-rpc.d.ts.map +1 -0
  229. package/dist/transactions/send-rpc.js +126 -0
  230. package/dist/transactions/send-rpc.js.map +1 -0
  231. package/dist/transactions/simple_tx_executor.d.ts +10 -0
  232. package/dist/transactions/simple_tx_executor.d.ts.map +1 -0
  233. package/dist/transactions/simple_tx_executor.js +33 -0
  234. package/dist/transactions/simple_tx_executor.js.map +1 -0
  235. package/package.json +112 -0
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Structured logger — zero dependencies, tagged console output.
3
+ *
4
+ * Usage:
5
+ * import { log } from "./helpers/logger";
6
+ * log.info("connected"); // [info] connected
7
+ * log.debug("payload", x); // only prints when DEBUG=1 or OUTSMART_DEBUG=1
8
+ */
9
+ export declare const log: {
10
+ info(msg: string): void;
11
+ warn(msg: string): void;
12
+ error(msg: string): void;
13
+ debug(msg: string): void;
14
+ success(msg: string): void;
15
+ };
16
+ /**
17
+ * Backward-compatible alias — existing code imports `{ logger }` and calls
18
+ * `logger.info(...)`. This keeps those call-sites working without changes.
19
+ */
20
+ export declare const logger: {
21
+ info(msg: string): void;
22
+ warn(msg: string): void;
23
+ error(msg: string): void;
24
+ debug(msg: string): void;
25
+ success(msg: string): void;
26
+ };
27
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/helpers/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,eAAO,MAAM,GAAG;cACJ,MAAM,GAAG,IAAI;cAGb,MAAM,GAAG,IAAI;eAGZ,MAAM,GAAG,IAAI;eAGb,MAAM,GAAG,IAAI;iBAKX,MAAM,GAAG,IAAI;CAG3B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,MAAM;cAvBP,MAAM,GAAG,IAAI;cAGb,MAAM,GAAG,IAAI;eAGZ,MAAM,GAAG,IAAI;eAGb,MAAM,GAAG,IAAI;iBAKX,MAAM,GAAG,IAAI;CASH,CAAC"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ /**
3
+ * Structured logger — zero dependencies, tagged console output.
4
+ *
5
+ * Usage:
6
+ * import { log } from "./helpers/logger";
7
+ * log.info("connected"); // [info] connected
8
+ * log.debug("payload", x); // only prints when DEBUG=1 or OUTSMART_DEBUG=1
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.logger = exports.log = void 0;
12
+ function isDebugEnabled() {
13
+ return process.env.DEBUG === "1" || process.env.OUTSMART_DEBUG === "1";
14
+ }
15
+ exports.log = {
16
+ info(msg) {
17
+ console.log(`[info] ${msg}`);
18
+ },
19
+ warn(msg) {
20
+ console.error(`[warn] ${msg}`);
21
+ },
22
+ error(msg) {
23
+ console.error(`[error] ${msg}`);
24
+ },
25
+ debug(msg) {
26
+ if (isDebugEnabled()) {
27
+ console.log(`[debug] ${msg}`);
28
+ }
29
+ },
30
+ success(msg) {
31
+ console.log(`[ok] ${msg}`);
32
+ },
33
+ };
34
+ /**
35
+ * Backward-compatible alias — existing code imports `{ logger }` and calls
36
+ * `logger.info(...)`. This keeps those call-sites working without changes.
37
+ */
38
+ exports.logger = exports.log;
39
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/helpers/logger.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,SAAS,cAAc;IACrB,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,GAAG,CAAC;AACzE,CAAC;AAEY,QAAA,GAAG,GAAG;IACjB,IAAI,CAAC,GAAW;QACd,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,CAAC,GAAW;QACd,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;IACjC,CAAC;IACD,KAAK,CAAC,GAAW;QACf,OAAO,CAAC,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;IAClC,CAAC;IACD,KAAK,CAAC,GAAW;QACf,IAAI,cAAc,EAAE,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAW;QACjB,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC;AAEF;;;GAGG;AACU,QAAA,MAAM,GAAG,WAAG,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Token-2022 Detection Utility
3
+ *
4
+ * Detects whether a mint uses the standard SPL Token program or Token-2022.
5
+ * Used by multiple DEX adapters (futarchy-amm, futarchy-launchpad, dflow, etc.)
6
+ * to correctly derive ATAs and build instructions.
7
+ *
8
+ * Source: 100x-algo-bots/trading-modules/futarchy-amm/utils.ts
9
+ */
10
+ import { Connection, PublicKey } from "@solana/web3.js";
11
+ /**
12
+ * Get the token program for a given mint (supports both SPL Token and Token-2022).
13
+ *
14
+ * Reads the on-chain account to check its owner program. If the mint account
15
+ * is owned by Token-2022, returns TOKEN_2022_PROGRAM_ID; otherwise returns
16
+ * TOKEN_PROGRAM_ID.
17
+ *
18
+ * @param connection - Solana RPC connection
19
+ * @param mint - Mint public key
20
+ * @returns TOKEN_PROGRAM_ID or TOKEN_2022_PROGRAM_ID
21
+ * @throws Error if the mint account is not found on-chain
22
+ */
23
+ export declare function getTokenProgram(connection: Connection, mint: PublicKey): Promise<PublicKey>;
24
+ /**
25
+ * Check if a mint uses Token-2022.
26
+ *
27
+ * @param connection - Solana RPC connection
28
+ * @param mint - Mint public key
29
+ * @returns true if the mint uses Token-2022, false otherwise
30
+ */
31
+ export declare function isToken2022(connection: Connection, mint: PublicKey): Promise<boolean>;
32
+ //# sourceMappingURL=token-2022.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-2022.d.ts","sourceRoot":"","sources":["../../src/helpers/token-2022.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGxD;;;;;;;;;;;GAWG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,SAAS,GACd,OAAO,CAAC,SAAS,CAAC,CASpB;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC/B,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,SAAS,GACd,OAAO,CAAC,OAAO,CAAC,CAGlB"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ /**
3
+ * Token-2022 Detection Utility
4
+ *
5
+ * Detects whether a mint uses the standard SPL Token program or Token-2022.
6
+ * Used by multiple DEX adapters (futarchy-amm, futarchy-launchpad, dflow, etc.)
7
+ * to correctly derive ATAs and build instructions.
8
+ *
9
+ * Source: 100x-algo-bots/trading-modules/futarchy-amm/utils.ts
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.getTokenProgram = getTokenProgram;
13
+ exports.isToken2022 = isToken2022;
14
+ const spl_token_1 = require("@solana/spl-token");
15
+ /**
16
+ * Get the token program for a given mint (supports both SPL Token and Token-2022).
17
+ *
18
+ * Reads the on-chain account to check its owner program. If the mint account
19
+ * is owned by Token-2022, returns TOKEN_2022_PROGRAM_ID; otherwise returns
20
+ * TOKEN_PROGRAM_ID.
21
+ *
22
+ * @param connection - Solana RPC connection
23
+ * @param mint - Mint public key
24
+ * @returns TOKEN_PROGRAM_ID or TOKEN_2022_PROGRAM_ID
25
+ * @throws Error if the mint account is not found on-chain
26
+ */
27
+ async function getTokenProgram(connection, mint) {
28
+ const mintInfo = await connection.getAccountInfo(mint);
29
+ if (!mintInfo) {
30
+ throw new Error(`Mint account not found: ${mint.toBase58()}`);
31
+ }
32
+ if (mintInfo.owner.equals(spl_token_1.TOKEN_2022_PROGRAM_ID)) {
33
+ return spl_token_1.TOKEN_2022_PROGRAM_ID;
34
+ }
35
+ return spl_token_1.TOKEN_PROGRAM_ID;
36
+ }
37
+ /**
38
+ * Check if a mint uses Token-2022.
39
+ *
40
+ * @param connection - Solana RPC connection
41
+ * @param mint - Mint public key
42
+ * @returns true if the mint uses Token-2022, false otherwise
43
+ */
44
+ async function isToken2022(connection, mint) {
45
+ const program = await getTokenProgram(connection, mint);
46
+ return program.equals(spl_token_1.TOKEN_2022_PROGRAM_ID);
47
+ }
48
+ //# sourceMappingURL=token-2022.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-2022.js","sourceRoot":"","sources":["../../src/helpers/token-2022.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AAiBH,0CAYC;AASD,kCAMC;AAzCD,iDAA4E;AAE5E;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,eAAe,CACnC,UAAsB,EACtB,IAAe;IAEf,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,iCAAqB,CAAC,EAAE,CAAC;QACjD,OAAO,iCAAqB,CAAC;IAC/B,CAAC;IACD,OAAO,4BAAgB,CAAC;AAC1B,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,WAAW,CAC/B,UAAsB,EACtB,IAAe;IAEf,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACxD,OAAO,OAAO,CAAC,MAAM,CAAC,iCAAqB,CAAC,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function unwrapSol(): Promise<void>;
2
+ //# sourceMappingURL=unwrap_sol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unwrap_sol.d.ts","sourceRoot":"","sources":["../../src/helpers/unwrap_sol.ts"],"names":[],"mappings":"AAKA,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAuD/C"}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.unwrapSol = unwrapSol;
4
+ const spl_token_1 = require("@solana/spl-token");
5
+ const config_1 = require("./config");
6
+ const web3_js_1 = require("@solana/web3.js");
7
+ const jito_tips_tx_executor_1 = require("../transactions/jito_tips_tx_executor");
8
+ async function unwrapSol() {
9
+ const wallet = (0, config_1.getWallet)();
10
+ const connection = (0, config_1.getConnection)();
11
+ // wSol ATA
12
+ const wSolAta = await (0, spl_token_1.getOrCreateAssociatedTokenAccount)(connection, wallet, spl_token_1.NATIVE_MINT, wallet.publicKey);
13
+ // close wSol account instruction
14
+ const transaction = new web3_js_1.Transaction();
15
+ transaction.add((0, spl_token_1.createCloseAccountInstruction)(wSolAta.address, wallet.publicKey, wallet.publicKey));
16
+ let latestBlockhash = await connection.getLatestBlockhash();
17
+ const messageV0 = new web3_js_1.TransactionMessage({
18
+ payerKey: wallet.publicKey,
19
+ recentBlockhash: latestBlockhash.blockhash,
20
+ instructions: [
21
+ web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({ units: 70000 }),
22
+ ...transaction.instructions,
23
+ ],
24
+ }).compileToV0Message();
25
+ const tx = new web3_js_1.VersionedTransaction(messageV0);
26
+ tx.sign([wallet]);
27
+ let attempts = 0;
28
+ const maxAttempts = 3;
29
+ while (attempts < maxAttempts) {
30
+ attempts++;
31
+ try {
32
+ const res = await (0, jito_tips_tx_executor_1.jito_executeAndConfirm)(tx, wallet, latestBlockhash, config_1.jito_fee);
33
+ const signature = res.signature;
34
+ if (signature) {
35
+ console.log(`Transaction successful: ${signature}`);
36
+ break;
37
+ }
38
+ else {
39
+ console.log("jito fee transaction failed");
40
+ console.log(`Retry attempt ${attempts}`);
41
+ }
42
+ }
43
+ catch (e) {
44
+ console.log(e);
45
+ }
46
+ latestBlockhash = await connection.getLatestBlockhash();
47
+ }
48
+ await new Promise((resolve) => setTimeout(resolve, 2000));
49
+ const new_sol_balance = await connection.getBalance(wallet.publicKey);
50
+ console.log(`new sol balance: ${new_sol_balance / web3_js_1.LAMPORTS_PER_SOL}`);
51
+ }
52
+ // CLI entry point -- only runs when executed directly
53
+ if (require.main === module) {
54
+ const { program } = require("commander");
55
+ const { logger } = require("./logger");
56
+ program
57
+ .option("-h, --help", "display help for command")
58
+ .action(async (options) => {
59
+ if (options.help) {
60
+ logger.info("ts-node src/helpers/unwrap_sol.ts");
61
+ process.exit(0);
62
+ }
63
+ await unwrapSol();
64
+ });
65
+ program.parse();
66
+ }
67
+ //# sourceMappingURL=unwrap_sol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unwrap_sol.js","sourceRoot":"","sources":["../../src/helpers/unwrap_sol.ts"],"names":[],"mappings":"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"}