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,159 @@
1
+ "use strict";
2
+ /**
3
+ * DEX Adapter Registry
4
+ *
5
+ * Central registry for all DEX adapters. Each adapter (raydium-amm-v4,
6
+ * meteora-dlmm, orca, jupiter, etc.) registers itself here during module
7
+ * initialization.
8
+ *
9
+ * Usage:
10
+ * import { getDexAdapter, listDexAdapters } from "../dex";
11
+ *
12
+ * // Get a specific adapter
13
+ * const adapter = getDexAdapter("raydium-amm-v4");
14
+ * const result = await adapter.buy({ tokenMint: "...", amountSol: 0.1 });
15
+ *
16
+ * // List all registered adapters
17
+ * const adapters = listDexAdapters();
18
+ * console.log(adapters.map(a => `${a.name} (${a.protocol})`));
19
+ */
20
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ var desc = Object.getOwnPropertyDescriptor(m, k);
23
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
24
+ desc = { enumerable: true, get: function() { return m[k]; } };
25
+ }
26
+ Object.defineProperty(o, k2, desc);
27
+ }) : (function(o, m, k, k2) {
28
+ if (k2 === undefined) k2 = k;
29
+ o[k2] = m[k];
30
+ }));
31
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
32
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ exports.DexRegistry = void 0;
36
+ exports.getRegistry = getRegistry;
37
+ exports.getDexAdapter = getDexAdapter;
38
+ exports.listDexAdapters = listDexAdapters;
39
+ exports.registerAdapter = registerAdapter;
40
+ // Re-export everything from types for single-import convenience
41
+ __exportStar(require("./types"), exports);
42
+ // ---------------------------------------------------------------------------
43
+ // DexRegistry class
44
+ // ---------------------------------------------------------------------------
45
+ class DexRegistry {
46
+ adapters = new Map();
47
+ /**
48
+ * Register a DEX adapter.
49
+ *
50
+ * @param adapter - The adapter to register
51
+ * @throws Error if an adapter with the same name is already registered
52
+ */
53
+ registerAdapter(adapter) {
54
+ if (this.adapters.has(adapter.name)) {
55
+ throw new Error(`DEX adapter "${adapter.name}" is already registered. ` +
56
+ `Each adapter name must be unique.`);
57
+ }
58
+ this.adapters.set(adapter.name, adapter);
59
+ }
60
+ /**
61
+ * Get a DEX adapter by name.
62
+ *
63
+ * @param name - Adapter name (e.g. "raydium-amm-v4")
64
+ * @returns The adapter instance
65
+ * @throws Error if no adapter with that name is registered
66
+ */
67
+ getDexAdapter(name) {
68
+ const adapter = this.adapters.get(name);
69
+ if (!adapter) {
70
+ const available = [...this.adapters.keys()].join(", ") || "(none)";
71
+ throw new Error(`DEX adapter "${name}" not found. Available adapters: ${available}`);
72
+ }
73
+ return adapter;
74
+ }
75
+ /**
76
+ * Get a DEX adapter by name, returning undefined if not found.
77
+ */
78
+ tryGetDexAdapter(name) {
79
+ return this.adapters.get(name);
80
+ }
81
+ /**
82
+ * List all registered adapters with their info.
83
+ */
84
+ listDexAdapters() {
85
+ return [...this.adapters.values()].map((a) => ({
86
+ name: a.name,
87
+ protocol: a.protocol,
88
+ capabilities: { ...a.capabilities },
89
+ }));
90
+ }
91
+ /**
92
+ * Get all adapters of a specific protocol type.
93
+ *
94
+ * @param protocol - Protocol type (e.g. "clmm", "dlmm", "amm-v4")
95
+ */
96
+ getAdaptersByProtocol(protocol) {
97
+ return [...this.adapters.values()].filter((a) => a.protocol === protocol);
98
+ }
99
+ /**
100
+ * Get all adapters that have a specific capability.
101
+ *
102
+ * @param capability - Capability key (e.g. "canSell", "canSnipe")
103
+ */
104
+ getAdaptersWithCapability(capability) {
105
+ return [...this.adapters.values()].filter((a) => a.capabilities[capability]);
106
+ }
107
+ /**
108
+ * Check if an adapter is registered.
109
+ */
110
+ has(name) {
111
+ return this.adapters.has(name);
112
+ }
113
+ /**
114
+ * Number of registered adapters.
115
+ */
116
+ get count() {
117
+ return this.adapters.size;
118
+ }
119
+ /**
120
+ * Get all adapter names.
121
+ */
122
+ getNames() {
123
+ return [...this.adapters.keys()];
124
+ }
125
+ }
126
+ exports.DexRegistry = DexRegistry;
127
+ // ---------------------------------------------------------------------------
128
+ // Global singleton
129
+ // ---------------------------------------------------------------------------
130
+ let _registry = null;
131
+ /**
132
+ * Get the global DexRegistry singleton.
133
+ * Creates it on first access.
134
+ */
135
+ function getRegistry() {
136
+ if (!_registry) {
137
+ _registry = new DexRegistry();
138
+ }
139
+ return _registry;
140
+ }
141
+ /**
142
+ * Convenience: get a DEX adapter by name from the global registry.
143
+ */
144
+ function getDexAdapter(name) {
145
+ return getRegistry().getDexAdapter(name);
146
+ }
147
+ /**
148
+ * Convenience: list all registered adapters from the global registry.
149
+ */
150
+ function listDexAdapters() {
151
+ return getRegistry().listDexAdapters();
152
+ }
153
+ /**
154
+ * Convenience: register an adapter with the global registry.
155
+ */
156
+ function registerAdapter(adapter) {
157
+ getRegistry().registerAdapter(adapter);
158
+ }
159
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dex/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Jupiter Ultra — IDexAdapter Implementation
3
+ *
4
+ * REST API-based aggregator. Fundamentally different from on-chain adapters:
5
+ * 1. Get order from Jupiter Ultra API (server returns a transaction)
6
+ * 2. Deserialize and sign the transaction locally
7
+ * 3. Submit via Jupiter's execute API (NOT our landing layer)
8
+ * 4. Jupiter handles TX submission with built-in retry
9
+ *
10
+ * This adapter does NOT use landTransaction() — the Jupiter execute endpoint
11
+ * manages TX submission. The adapter wraps the server-generated flow.
12
+ *
13
+ * Source: 100x-algo-bots/trading-modules/jupiter/ultra-swap.ts
14
+ *
15
+ * Capabilities: canBuy, canSell (no snipe — doesn't make sense for an aggregator,
16
+ * no findPool/getPrice — no pool concept)
17
+ * API key from JUPITER_API_KEY env var (optional — works without key at lower rate limits).
18
+ */
19
+ import { IDexAdapter, DexCapabilities, BuyParams, SellParams, SwapResult } from "./types";
20
+ export declare class JupiterUltraAdapter implements IDexAdapter {
21
+ readonly name = "jupiter-ultra";
22
+ readonly protocol = "ultra";
23
+ readonly capabilities: DexCapabilities;
24
+ buy(params: BuyParams): Promise<SwapResult>;
25
+ sell(params: SellParams): Promise<SwapResult>;
26
+ }
27
+ //# sourceMappingURL=jupiter-ultra.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jupiter-ultra.d.ts","sourceRoot":"","sources":["../../src/dex/jupiter-ultra.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAWH,OAAO,EACL,WAAW,EACX,eAAe,EAEf,SAAS,EACT,UAAU,EACV,UAAU,EAKX,MAAM,SAAS,CAAC;AA8XjB,qBAAa,mBAAoB,YAAW,WAAW;IACrD,QAAQ,CAAC,IAAI,mBAAmB;IAChC,QAAQ,CAAC,QAAQ,WAAW;IAC5B,QAAQ,CAAC,YAAY,EAAE,eAAe,CAInC;IAIG,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;IAsC3C,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;CA0EpD"}
@@ -0,0 +1,369 @@
1
+ "use strict";
2
+ /**
3
+ * Jupiter Ultra — IDexAdapter Implementation
4
+ *
5
+ * REST API-based aggregator. Fundamentally different from on-chain adapters:
6
+ * 1. Get order from Jupiter Ultra API (server returns a transaction)
7
+ * 2. Deserialize and sign the transaction locally
8
+ * 3. Submit via Jupiter's execute API (NOT our landing layer)
9
+ * 4. Jupiter handles TX submission with built-in retry
10
+ *
11
+ * This adapter does NOT use landTransaction() — the Jupiter execute endpoint
12
+ * manages TX submission. The adapter wraps the server-generated flow.
13
+ *
14
+ * Source: 100x-algo-bots/trading-modules/jupiter/ultra-swap.ts
15
+ *
16
+ * Capabilities: canBuy, canSell (no snipe — doesn't make sense for an aggregator,
17
+ * no findPool/getPrice — no pool concept)
18
+ * API key from JUPITER_API_KEY env var (optional — works without key at lower rate limits).
19
+ */
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.JupiterUltraAdapter = void 0;
22
+ const web3_js_1 = require("@solana/web3.js");
23
+ const spl_token_1 = require("@solana/spl-token");
24
+ const config_1 = require("../helpers/config");
25
+ const types_1 = require("./types");
26
+ const index_1 = require("./index");
27
+ // ---------------------------------------------------------------------------
28
+ // Constants
29
+ // ---------------------------------------------------------------------------
30
+ const SOL_MINT = "So11111111111111111111111111111111111111112";
31
+ const JUPITER_ULTRA_API_BASE_URL = "https://api.jup.ag/ultra/v1";
32
+ // ---------------------------------------------------------------------------
33
+ // Helpers
34
+ // ---------------------------------------------------------------------------
35
+ let _apiKeyHintShown = false;
36
+ function getApiKey() {
37
+ const key = process.env.JUPITER_API_KEY || undefined;
38
+ if (!key && !_apiKeyHintShown) {
39
+ _apiKeyHintShown = true;
40
+ console.log("Tip: Set JUPITER_API_KEY for higher rate limits. Get one at https://portal.jup.ag");
41
+ }
42
+ return key;
43
+ }
44
+ function apiHeaders() {
45
+ const headers = {};
46
+ const key = getApiKey();
47
+ if (key) {
48
+ headers["x-api-key"] = key;
49
+ }
50
+ return headers;
51
+ }
52
+ /**
53
+ * Get token decimals for a mint (supports Token-2022).
54
+ */
55
+ async function getTokenDecimals(mint) {
56
+ const connection = (0, config_1.getConnection)();
57
+ try {
58
+ const mintInfo = await connection.getAccountInfo(mint);
59
+ if (!mintInfo) {
60
+ throw new Error(`Mint account not found: ${mint.toBase58()}`);
61
+ }
62
+ const tokenProgram = mintInfo.owner.equals(spl_token_1.TOKEN_2022_PROGRAM_ID)
63
+ ? spl_token_1.TOKEN_2022_PROGRAM_ID
64
+ : spl_token_1.TOKEN_PROGRAM_ID;
65
+ const mintData = await (0, spl_token_1.getMint)(connection, mint, undefined, tokenProgram);
66
+ return mintData.decimals;
67
+ }
68
+ catch {
69
+ // Default to 9 decimals if we can't fetch (common for most tokens)
70
+ return 9;
71
+ }
72
+ }
73
+ /**
74
+ * Get order from Jupiter Ultra API.
75
+ */
76
+ async function getUltraOrder(inputMint, outputMint, amount, taker, slippageBps) {
77
+ const url = new URL(`${JUPITER_ULTRA_API_BASE_URL}/order`);
78
+ url.searchParams.append("inputMint", inputMint);
79
+ url.searchParams.append("outputMint", outputMint);
80
+ url.searchParams.append("amount", amount);
81
+ url.searchParams.append("taker", taker);
82
+ if (slippageBps !== undefined) {
83
+ url.searchParams.append("slippageBps", slippageBps.toString());
84
+ }
85
+ const response = await fetch(url.toString(), {
86
+ headers: apiHeaders(),
87
+ });
88
+ if (!response.ok) {
89
+ const errorText = await response.text();
90
+ let errorData;
91
+ try {
92
+ errorData = JSON.parse(errorText);
93
+ }
94
+ catch {
95
+ errorData = { error: errorText };
96
+ }
97
+ throw new Error(`Jupiter Ultra API error (${response.status}): ${JSON.stringify(errorData)}`);
98
+ }
99
+ const orderData = await response.json();
100
+ if (orderData.error) {
101
+ throw new Error(`Jupiter Ultra order error: ${orderData.error}`);
102
+ }
103
+ if (orderData.errorCode) {
104
+ throw new Error(`Jupiter Ultra order error (code ${orderData.errorCode}): ${orderData.errorMessage || "Unknown error"}`);
105
+ }
106
+ if (!orderData.transaction) {
107
+ throw new Error("Jupiter Ultra order response missing transaction field");
108
+ }
109
+ return orderData;
110
+ }
111
+ /**
112
+ * Check if an error code is retryable.
113
+ * Retryable: network issues, timeouts, failed to land, unknown errors.
114
+ * Non-retryable: authentication, invalid transaction, slippage exceeded, etc.
115
+ */
116
+ function isRetryableError(executeResponse) {
117
+ if (!executeResponse.code) {
118
+ return executeResponse.status !== "Success";
119
+ }
120
+ if (executeResponse.code === 0)
121
+ return false;
122
+ // Retryable error codes (network/landing issues)
123
+ const retryableCodes = [
124
+ -1000, // Failed to land
125
+ -1001, // Unknown error
126
+ -1005, // Expired (might succeed on retry with fresh order)
127
+ -1006, // Timed out
128
+ -2000, // RFQ: Failed to land
129
+ -2001, // RFQ: Unknown error
130
+ ];
131
+ // Non-retryable error codes
132
+ const nonRetryableCodes = [
133
+ -1, // Missing cached order
134
+ -2, // Invalid signed transaction
135
+ -3, // Invalid message bytes
136
+ -4, // Missing request id
137
+ -5, // Missing signed transaction
138
+ -1002, // Invalid transaction
139
+ -1003, // Transaction not fully signed
140
+ -1004, // Invalid block height
141
+ -1007, // Gasless unsupported wallet
142
+ -2002, // RFQ: Invalid payload
143
+ -2003, // RFQ: Quote expired
144
+ -2004, // RFQ: Swap rejected
145
+ -2005, // RFQ: Internal error
146
+ ];
147
+ if (retryableCodes.includes(executeResponse.code))
148
+ return true;
149
+ if (nonRetryableCodes.includes(executeResponse.code))
150
+ return false;
151
+ // Positive codes are program errors (slippage, etc.) — don't retry
152
+ if (executeResponse.code > 0)
153
+ return false;
154
+ // Other negative codes — default to retryable
155
+ return true;
156
+ }
157
+ /**
158
+ * Execute order via Jupiter Ultra API with retry logic.
159
+ */
160
+ async function executeUltraOrderWithRetry(requestId, signedTransaction, maxRetries = 5, retryDelayMs = 5000) {
161
+ let lastResponse = null;
162
+ for (let attempt = 1; attempt <= maxRetries; attempt++) {
163
+ try {
164
+ const response = await fetch(`${JUPITER_ULTRA_API_BASE_URL}/execute`, {
165
+ method: "POST",
166
+ headers: {
167
+ "Content-Type": "application/json",
168
+ ...apiHeaders(),
169
+ },
170
+ body: JSON.stringify({ requestId, signedTransaction }),
171
+ });
172
+ if (!response.ok) {
173
+ const errorText = await response.text();
174
+ let errorData;
175
+ try {
176
+ errorData = JSON.parse(errorText);
177
+ }
178
+ catch {
179
+ errorData = { error: errorText };
180
+ }
181
+ throw new Error(`Jupiter Ultra execute error (${response.status}): ${JSON.stringify(errorData)}`);
182
+ }
183
+ const executeResponse = await response.json();
184
+ lastResponse = executeResponse;
185
+ // Check if successful
186
+ if (executeResponse.status === "Success" && executeResponse.signature) {
187
+ return executeResponse;
188
+ }
189
+ if (executeResponse.code === 0 && executeResponse.signature) {
190
+ return executeResponse;
191
+ }
192
+ // Non-retryable error — throw immediately
193
+ if (!isRetryableError(executeResponse)) {
194
+ throw new Error(`Jupiter Ultra execute failed (code ${executeResponse.code}): ${executeResponse.error || "Unknown error"}`);
195
+ }
196
+ // Retryable error — wait and try again
197
+ if (attempt < maxRetries) {
198
+ await new Promise((resolve) => setTimeout(resolve, retryDelayMs));
199
+ }
200
+ else {
201
+ throw new Error(`Jupiter Ultra execute failed after ${maxRetries} attempts (code ${executeResponse.code}): ${executeResponse.error || "Unknown error"}`);
202
+ }
203
+ }
204
+ catch (error) {
205
+ // Network errors are retryable
206
+ if (error instanceof Error &&
207
+ (error.message.includes("fetch") ||
208
+ error.message.includes("network") ||
209
+ error.message.includes("timeout") ||
210
+ error.message.includes("ECONNREFUSED") ||
211
+ error.message.includes("ETIMEDOUT"))) {
212
+ if (attempt < maxRetries) {
213
+ await new Promise((resolve) => setTimeout(resolve, retryDelayMs));
214
+ continue;
215
+ }
216
+ }
217
+ throw error;
218
+ }
219
+ }
220
+ // Should not reach here
221
+ if (lastResponse) {
222
+ throw new Error(`Jupiter Ultra execute failed after ${maxRetries} attempts: ${JSON.stringify(lastResponse)}`);
223
+ }
224
+ throw new Error(`Jupiter Ultra execute failed after ${maxRetries} attempts`);
225
+ }
226
+ /**
227
+ * Sign a server-generated transaction (handles both legacy and versioned).
228
+ * Returns the base64-encoded signed transaction.
229
+ */
230
+ function signTransaction(transactionBase64) {
231
+ const wallet = (0, config_1.getWallet)();
232
+ const transactionBytes = Buffer.from(transactionBase64, "base64");
233
+ try {
234
+ // Try as VersionedTransaction first (most common for Jupiter)
235
+ const versionedTx = web3_js_1.VersionedTransaction.deserialize(transactionBytes);
236
+ versionedTx.sign([wallet]);
237
+ return Buffer.from(versionedTx.serialize()).toString("base64");
238
+ }
239
+ catch {
240
+ // Fallback to legacy Transaction
241
+ const legacyTx = web3_js_1.Transaction.from(transactionBytes);
242
+ legacyTx.sign(wallet);
243
+ return Buffer.from(legacyTx.serialize()).toString("base64");
244
+ }
245
+ }
246
+ /**
247
+ * Full order-sign-execute flow. Used by both buy() and sell().
248
+ */
249
+ async function executeOrder(inputMint, outputMint, amount, slippageBps) {
250
+ const wallet = (0, config_1.getWallet)();
251
+ // Step 1: Get order
252
+ const orderResponse = await getUltraOrder(inputMint, outputMint, amount, wallet.publicKey.toBase58(), slippageBps);
253
+ if (!orderResponse.transaction) {
254
+ throw new Error("Order response missing transaction field");
255
+ }
256
+ if (!orderResponse.requestId) {
257
+ throw new Error("Order response missing requestId");
258
+ }
259
+ // Step 2: Sign
260
+ const signedTxBase64 = signTransaction(orderResponse.transaction);
261
+ // Step 3: Execute with retry
262
+ const executeResponse = await executeUltraOrderWithRetry(orderResponse.requestId, signedTxBase64);
263
+ // Validate response
264
+ const signature = executeResponse.signature ??
265
+ (() => {
266
+ throw new Error(`Jupiter Ultra execute returned unexpected response: ${JSON.stringify(executeResponse)}`);
267
+ })();
268
+ return { signature, orderResponse, executeResponse };
269
+ }
270
+ // ---------------------------------------------------------------------------
271
+ // Adapter
272
+ // ---------------------------------------------------------------------------
273
+ class JupiterUltraAdapter {
274
+ name = "jupiter-ultra";
275
+ protocol = "ultra";
276
+ capabilities = (0, types_1.defaultCapabilities)({
277
+ canBuy: true,
278
+ canSell: true,
279
+ isAggregator: true,
280
+ });
281
+ // ----- Core: buy -----
282
+ async buy(params) {
283
+ const tokenMint = (0, types_1.requireTokenMint)(params, this.name);
284
+ const { amountSol, opts } = params;
285
+ const slippageBps = opts?.slippageBps ?? types_1.DEFAULT_SLIPPAGE_BPS;
286
+ // Convert SOL to lamports
287
+ const amount = Math.floor(amountSol * 1_000_000_000).toString();
288
+ const { signature, orderResponse, executeResponse } = await executeOrder(SOL_MINT, tokenMint, amount, slippageBps);
289
+ // Parse output amount — convert from raw to human-readable
290
+ let amountOut;
291
+ if (executeResponse.outputAmountResult) {
292
+ const outDecimals = await getTokenDecimals(new web3_js_1.PublicKey(tokenMint));
293
+ amountOut = Number(executeResponse.outputAmountResult) / Math.pow(10, outDecimals);
294
+ }
295
+ return {
296
+ txSignature: signature,
297
+ confirmed: true,
298
+ amountIn: amountSol,
299
+ amountInToken: SOL_MINT,
300
+ amountOut,
301
+ amountOutToken: tokenMint,
302
+ priceImpactPct: orderResponse.priceImpactPct
303
+ ? parseFloat(orderResponse.priceImpactPct)
304
+ : undefined,
305
+ dex: this.name,
306
+ };
307
+ }
308
+ // ----- Core: sell -----
309
+ async sell(params) {
310
+ const tokenMint = (0, types_1.requireTokenMint)(params, this.name);
311
+ const { percentage, quoteMint: quoteMintParam, opts } = params;
312
+ const connection = (0, config_1.getConnection)();
313
+ const wallet = (0, config_1.getWallet)();
314
+ const slippageBps = opts?.slippageBps ?? types_1.DEFAULT_SLIPPAGE_BPS;
315
+ const outputMint = quoteMintParam ?? SOL_MINT;
316
+ // Validate percentage
317
+ if (percentage < 0 || percentage > 100) {
318
+ throw new Error("Sell percentage must be between 0 and 100");
319
+ }
320
+ // Get token decimals
321
+ const tokenDecimals = await getTokenDecimals(new web3_js_1.PublicKey(tokenMint));
322
+ // Get token balance
323
+ const mintPk = new web3_js_1.PublicKey(tokenMint);
324
+ const mintInfo = await connection.getAccountInfo(mintPk);
325
+ const tokenProgram = mintInfo && mintInfo.owner.equals(spl_token_1.TOKEN_2022_PROGRAM_ID)
326
+ ? spl_token_1.TOKEN_2022_PROGRAM_ID
327
+ : spl_token_1.TOKEN_PROGRAM_ID;
328
+ const tokenAccount = await (0, spl_token_1.getAssociatedTokenAddress)(mintPk, wallet.publicKey, false, tokenProgram);
329
+ let balance = 0;
330
+ try {
331
+ const balanceResponse = await connection.getTokenAccountBalance(tokenAccount);
332
+ balance = balanceResponse.value.uiAmount || 0;
333
+ }
334
+ catch {
335
+ balance = 0;
336
+ }
337
+ if (balance === 0) {
338
+ throw new Error("You have no balance of this token to sell");
339
+ }
340
+ // Calculate amount
341
+ const tokenAmount = (balance * percentage) / 100;
342
+ const amount = Math.floor(tokenAmount * Math.pow(10, tokenDecimals)).toString();
343
+ const { signature, orderResponse, executeResponse } = await executeOrder(tokenMint, outputMint, amount, slippageBps);
344
+ // Convert raw output to human-readable (SOL = 9 decimals)
345
+ let amountOut;
346
+ if (executeResponse.outputAmountResult) {
347
+ const outDecimals = outputMint === SOL_MINT ? 9 : await getTokenDecimals(new web3_js_1.PublicKey(outputMint));
348
+ amountOut = Number(executeResponse.outputAmountResult) / Math.pow(10, outDecimals);
349
+ }
350
+ return {
351
+ txSignature: signature,
352
+ confirmed: true,
353
+ amountIn: tokenAmount,
354
+ amountInToken: tokenMint,
355
+ amountOut,
356
+ amountOutToken: outputMint,
357
+ priceImpactPct: orderResponse.priceImpactPct
358
+ ? parseFloat(orderResponse.priceImpactPct)
359
+ : undefined,
360
+ dex: this.name,
361
+ };
362
+ }
363
+ }
364
+ exports.JupiterUltraAdapter = JupiterUltraAdapter;
365
+ // ---------------------------------------------------------------------------
366
+ // Auto-register
367
+ // ---------------------------------------------------------------------------
368
+ (0, index_1.registerAdapter)(new JupiterUltraAdapter());
369
+ //# sourceMappingURL=jupiter-ultra.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jupiter-ultra.js","sourceRoot":"","sources":["../../src/dex/jupiter-ultra.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Meteora DAMM v1 (Dynamic AMM) — IDexAdapter Implementation
3
+ *
4
+ * Wraps the @meteora-ag/dynamic-amm-sdk (AmmImpl) for buy/snipe/findPool/getPrice.
5
+ * No sell in source module — sell throws UnsupportedOperationError.
6
+ *
7
+ * Source: 100x-algo-bots/trading-modules/meteora-damm-v1/
8
+ *
9
+ * SDK pattern:
10
+ * const amm = await AmmImpl.create(connection, poolAddress);
11
+ * const quote = amm.getSwapQuote(inputMint, inputAmount, slippagePct);
12
+ * const swapTx = await amm.swap(user, inputMint, inputAmount, minOut);
13
+ */
14
+ import { IDexAdapter, DexCapabilities, BuyParams, SellParams, SnipeParams, SwapResult, PoolInfo, PriceInfo, BuildSwapIxsResult } from "./types";
15
+ export declare class MeteoraDammV1Adapter implements IDexAdapter {
16
+ readonly name = "meteora-damm-v1";
17
+ readonly protocol = "damm-v1";
18
+ readonly capabilities: DexCapabilities;
19
+ buy(params: BuyParams): Promise<SwapResult>;
20
+ sell(params: SellParams): Promise<SwapResult>;
21
+ snipe(params: SnipeParams): Promise<SwapResult>;
22
+ buildSwapIxs(params: BuyParams | SellParams): Promise<BuildSwapIxsResult>;
23
+ findPool(baseMint: string, quoteMint?: string): Promise<PoolInfo | null>;
24
+ getPrice(poolAddress: string): Promise<PriceInfo>;
25
+ /**
26
+ * Resolve pool address — if not provided, discover via findPool().
27
+ * Throws PoolNotFoundError if no pool found.
28
+ */
29
+ private resolvePool;
30
+ /**
31
+ * Derive customizable pool address using PDA seeds.
32
+ * Seeds: ["cpool", max(mintA, mintB), min(mintA, mintB)]
33
+ */
34
+ private deriveCustomizablePoolAddress;
35
+ }
36
+ //# sourceMappingURL=meteora-damm-v1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meteora-damm-v1.d.ts","sourceRoot":"","sources":["../../src/dex/meteora-damm-v1.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAgBH,OAAO,EACL,WAAW,EACX,eAAe,EAEf,SAAS,EACT,UAAU,EACV,WAAW,EACX,UAAU,EACV,QAAQ,EACR,SAAS,EACT,kBAAkB,EAUnB,MAAM,SAAS,CAAC;AAuCjB,qBAAa,oBAAqB,YAAW,WAAW;IACtD,QAAQ,CAAC,IAAI,qBAAqB;IAClC,QAAQ,CAAC,QAAQ,aAAa;IAC9B,QAAQ,CAAC,YAAY,EAAE,eAAe,CAMnC;IAIG,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;IAuD3C,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAqF7C,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAkD/C,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAmCzE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IA6BxE,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAkCvD;;;OAGG;YACW,WAAW;IAQzB;;;OAGG;IACH,OAAO,CAAC,6BAA6B;CAYtC"}