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,102 @@
1
+ "use strict";
2
+ /**
3
+ * Stellium TX Landing Provider (FlashRPC)
4
+ *
5
+ * Submits transactions via Stellium's HTTP JSON-RPC endpoint.
6
+ * API key is embedded as a URL path segment.
7
+ * Supports ping() for health checking.
8
+ */
9
+ var __importDefault = (this && this.__importDefault) || function (mod) {
10
+ return (mod && mod.__esModule) ? mod : { "default": mod };
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.createProvider = createProvider;
14
+ const axios_1 = __importDefault(require("axios"));
15
+ const web3_js_1 = require("@solana/web3.js");
16
+ const types_1 = require("../types");
17
+ // ---------------------------------------------------------------------------
18
+ // Config
19
+ // ---------------------------------------------------------------------------
20
+ const TIP_ACCOUNTS = [
21
+ "ste11JV3MLMM7x7EJUM2sXcJC1H7F4jBLnP9a9PG8PH",
22
+ "ste11MWPjXCRfQryCshzi86SGhuXjF4Lv6xMXD2AoSt",
23
+ "ste11p5x8tJ53H1NbNQsRBg1YNRd4GcVpxtDw8PBpmb",
24
+ "ste11p7e2KLYou5bwtt35H7BM6uMdo4pvioGjJXKFcN",
25
+ "ste11TMV68LMi1BguM4RQujtbNCZvf1sjsASpqgAvSX",
26
+ ];
27
+ const DEFAULT_TIP_SOL = 0.001;
28
+ // ---------------------------------------------------------------------------
29
+ // Provider
30
+ // ---------------------------------------------------------------------------
31
+ function createProvider() {
32
+ function getEndpoint() {
33
+ const key = process.env.STELLIUM_API_KEY || "";
34
+ return `https://ams1.flashrpc.com/${key}`;
35
+ }
36
+ return {
37
+ name: "stellium",
38
+ isEnabled() {
39
+ return !!process.env.STELLIUM_API_KEY;
40
+ },
41
+ async ping() {
42
+ const url = getEndpoint();
43
+ await axios_1.default.get(url, { timeout: 5_000 });
44
+ },
45
+ async submit(ixs, signer, blockhash, opts) {
46
+ const provider = this.name;
47
+ try {
48
+ const key = process.env.STELLIUM_API_KEY || "";
49
+ if (!key) {
50
+ return { provider, accepted: false, error: "STELLIUM_API_KEY not set" };
51
+ }
52
+ const tipSol = opts.tipSol && opts.tipSol > 0 ? opts.tipSol : DEFAULT_TIP_SOL;
53
+ const tipAccount = (0, types_1.pickRandom)(TIP_ACCOUNTS);
54
+ // Build tip instruction
55
+ const tipIx = web3_js_1.SystemProgram.transfer({
56
+ fromPubkey: signer.publicKey,
57
+ toPubkey: new web3_js_1.PublicKey(tipAccount),
58
+ lamports: Math.round(tipSol * web3_js_1.LAMPORTS_PER_SOL),
59
+ });
60
+ // Build V0 transaction — never mutate input ixs
61
+ const allIxs = [...ixs, tipIx];
62
+ const bh = (0, types_1.extractBlockhash)(blockhash);
63
+ const messageV0 = new web3_js_1.TransactionMessage({
64
+ payerKey: signer.publicKey,
65
+ recentBlockhash: bh,
66
+ instructions: allIxs,
67
+ }).compileToV0Message(opts.addressLookupTables);
68
+ const tx = new web3_js_1.VersionedTransaction(messageV0);
69
+ const signers = [signer, ...(opts.extraSigners ?? [])];
70
+ tx.sign(signers);
71
+ const b64 = Buffer.from(tx.serialize()).toString("base64");
72
+ const endpoint = getEndpoint();
73
+ const t0 = Date.now();
74
+ const response = await axios_1.default.post(endpoint, {
75
+ jsonrpc: "2.0",
76
+ id: 1,
77
+ method: "sendTransaction",
78
+ params: [b64, { encoding: "base64" }],
79
+ }, { timeout: 10_000 });
80
+ const latencyMs = Date.now() - t0;
81
+ const signature = response.data?.result;
82
+ if (signature) {
83
+ return { provider, accepted: true, signature, latencyMs };
84
+ }
85
+ const errMsg = response.data?.error?.message ||
86
+ JSON.stringify(response.data?.error) ||
87
+ "Unknown stellium error";
88
+ return { provider, accepted: false, error: errMsg, latencyMs };
89
+ }
90
+ catch (err) {
91
+ return {
92
+ provider,
93
+ accepted: false,
94
+ error: err?.response?.data?.error?.message ||
95
+ err?.message ||
96
+ "Stellium request failed",
97
+ };
98
+ }
99
+ },
100
+ };
101
+ }
102
+ //# sourceMappingURL=stellium.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stellium.js","sourceRoot":"","sources":["../../../../src/transactions/landing/providers/stellium.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * 0slot TX Landing Provider
3
+ *
4
+ * Submits transactions via 0slot's HTTP JSON-RPC endpoint.
5
+ * Tip is appended as a SOL transfer to a randomly chosen tip account.
6
+ */
7
+ import { ILandingProvider } from "../types";
8
+ declare function createProvider(): ILandingProvider;
9
+ export { createProvider };
10
+ //# sourceMappingURL=zero-slot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zero-slot.d.ts","sourceRoot":"","sources":["../../../../src/transactions/landing/providers/zero-slot.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH,OAAO,EACL,gBAAgB,EAKjB,MAAM,UAAU,CAAC;AAoBlB,iBAAS,cAAc,IAAI,gBAAgB,CAoF1C;AAED,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ /**
3
+ * 0slot TX Landing Provider
4
+ *
5
+ * Submits transactions via 0slot's HTTP JSON-RPC endpoint.
6
+ * Tip is appended as a SOL transfer to a randomly chosen tip account.
7
+ */
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.createProvider = createProvider;
13
+ const axios_1 = __importDefault(require("axios"));
14
+ const web3_js_1 = require("@solana/web3.js");
15
+ const types_1 = require("../types");
16
+ // ---------------------------------------------------------------------------
17
+ // Config
18
+ // ---------------------------------------------------------------------------
19
+ const TIP_ACCOUNTS = [
20
+ "Eb2KpSC8uMt9GmzyAEm5Eb1AAAgTjRaXWFjKyFXHZxF3",
21
+ "FCjUJZ1qozm1e8romw216qyfQMaaWKxWsuySnumVCCNe",
22
+ "ENxTEjSQ1YabmUpXAdCgevnHQ9MHdLv8tzFiuiYJqa13",
23
+ "6rYLG55Q9RpsPGvqdPNJs4z5WTxJVatMB8zV3WJhs5EK",
24
+ "Cix2bHfqPcKcM233mzxbLk14kSggUUiz2A87fJtGivXr",
25
+ ];
26
+ const DEFAULT_TIP_SOL = 0.001;
27
+ // ---------------------------------------------------------------------------
28
+ // Provider
29
+ // ---------------------------------------------------------------------------
30
+ function createProvider() {
31
+ const apiKey = () => process.env.ZERO_SLOT_API_KEY || "";
32
+ return {
33
+ name: "0slot",
34
+ isEnabled() {
35
+ return !!process.env.ZERO_SLOT_API_KEY;
36
+ },
37
+ async submit(ixs, signer, blockhash, opts) {
38
+ const provider = this.name;
39
+ try {
40
+ const key = apiKey();
41
+ if (!key) {
42
+ return { provider, accepted: false, error: "ZERO_SLOT_API_KEY not set" };
43
+ }
44
+ const tipSol = opts.tipSol && opts.tipSol > 0 ? opts.tipSol : DEFAULT_TIP_SOL;
45
+ const tipAccount = (0, types_1.pickRandom)(TIP_ACCOUNTS);
46
+ // Build tip instruction
47
+ const tipIx = web3_js_1.SystemProgram.transfer({
48
+ fromPubkey: signer.publicKey,
49
+ toPubkey: new web3_js_1.PublicKey(tipAccount),
50
+ lamports: Math.round(tipSol * web3_js_1.LAMPORTS_PER_SOL),
51
+ });
52
+ // Build V0 transaction — never mutate input ixs
53
+ const allIxs = [...ixs, tipIx];
54
+ const bh = (0, types_1.extractBlockhash)(blockhash);
55
+ const message = new web3_js_1.TransactionMessage({
56
+ payerKey: signer.publicKey,
57
+ recentBlockhash: bh,
58
+ instructions: allIxs,
59
+ });
60
+ const messageV0 = message.compileToV0Message(opts.addressLookupTables);
61
+ const tx = new web3_js_1.VersionedTransaction(messageV0);
62
+ // Sign with primary + extra signers
63
+ const signers = [signer, ...(opts.extraSigners ?? [])];
64
+ tx.sign(signers);
65
+ const b64 = Buffer.from(tx.serialize()).toString("base64");
66
+ const endpoint = `http://ams1.0slot.trade?api-key=${key}`;
67
+ const t0 = Date.now();
68
+ const response = await axios_1.default.post(endpoint, {
69
+ jsonrpc: "2.0",
70
+ id: 1,
71
+ method: "sendTransaction",
72
+ params: [b64, { encoding: "base64" }],
73
+ }, { timeout: 10_000 });
74
+ const latencyMs = Date.now() - t0;
75
+ const signature = response.data?.result;
76
+ if (signature) {
77
+ return { provider, accepted: true, signature, latencyMs };
78
+ }
79
+ const errMsg = response.data?.error?.message || JSON.stringify(response.data?.error) || "Unknown 0slot error";
80
+ return { provider, accepted: false, error: errMsg, latencyMs };
81
+ }
82
+ catch (err) {
83
+ return {
84
+ provider,
85
+ accepted: false,
86
+ error: err?.response?.data?.error?.message || err?.message || "0slot request failed",
87
+ };
88
+ }
89
+ },
90
+ };
91
+ }
92
+ //# sourceMappingURL=zero-slot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zero-slot.js","sourceRoot":"","sources":["../../../../src/transactions/landing/providers/zero-slot.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * TX Landing — Tip Account Registry
3
+ *
4
+ * Master lookup of all known SWQoS tip accounts across all providers.
5
+ * These are public on-chain addresses (NOT secrets). Used to identify
6
+ * tip transfers when analyzing transactions.
7
+ */
8
+ import { TipAccount } from "./types";
9
+ /**
10
+ * All known tip accounts, organized by provider.
11
+ */
12
+ export declare const TIP_ACCOUNTS: readonly TipAccount[];
13
+ export declare function isTipAccount(address: string): boolean;
14
+ /**
15
+ * Get the provider name for a tip account address, or undefined.
16
+ */
17
+ export declare function getTipAccountProvider(address: string): string | undefined;
18
+ /**
19
+ * Get all tip accounts for a specific provider.
20
+ */
21
+ export declare function getTipAccountsForProvider(provider: string): string[];
22
+ //# sourceMappingURL=tip-accounts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tip-accounts.d.ts","sourceRoot":"","sources":["../../../src/transactions/landing/tip-accounts.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,SAAS,UAAU,EAiHpC,CAAC;AAOX,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEzE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAEpE"}
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ /**
3
+ * TX Landing — Tip Account Registry
4
+ *
5
+ * Master lookup of all known SWQoS tip accounts across all providers.
6
+ * These are public on-chain addresses (NOT secrets). Used to identify
7
+ * tip transfers when analyzing transactions.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.TIP_ACCOUNTS = void 0;
11
+ exports.isTipAccount = isTipAccount;
12
+ exports.getTipAccountProvider = getTipAccountProvider;
13
+ exports.getTipAccountsForProvider = getTipAccountsForProvider;
14
+ /**
15
+ * All known tip accounts, organized by provider.
16
+ */
17
+ exports.TIP_ACCOUNTS = [
18
+ // 0slot
19
+ { provider: "zero-slot", address: "Eb2KpSC8uMt9GmzyAEm5Eb1AAAgTjRaXWFjKyFXHZxF3" },
20
+ { provider: "zero-slot", address: "FCjUJZ1qozm1e8romw216qyfQMaaWKxWsuySnumVCCNe" },
21
+ { provider: "zero-slot", address: "ENxTEjSQ1YabmUpXAdCgevnHQ9MHdLv8tzFiuiYJqa13" },
22
+ { provider: "zero-slot", address: "6rYLG55Q9RpsPGvqdPNJs4z5WTxJVatMB8zV3WJhs5EK" },
23
+ { provider: "zero-slot", address: "Cix2bHfqPcKcM233mzxbLk14kSggUUiz2A87fJtGivXr" },
24
+ // nozomi
25
+ { provider: "nozomi", address: "TEMPaMeCRFAS9EKF53Jd6KpHxgL47uWLcpFArU1Fanq" },
26
+ { provider: "nozomi", address: "noz3jAjPiHuBPqiSPkkugaJDkJscPuRhYnSpbi8UvC4" },
27
+ { provider: "nozomi", address: "noz3str9KXfpKknefHji8L1mPgimezaiUyCHYMDv1GE" },
28
+ { provider: "nozomi", address: "noz6uoYCDijhu1V7cutCpwxNiSovEwLdRHPwmgCGDNo" },
29
+ { provider: "nozomi", address: "noz9EPNcT7WH6Sou3sr3GGjHQYVkN3DNirpbvDkv9YJ" },
30
+ { provider: "nozomi", address: "nozc5yT15LazbLTFVZzoNZCwjh3yUtW86LoUyqsBu4L" },
31
+ { provider: "nozomi", address: "nozFrhfnNGoyqwVuwPAW4aaGqempx4PU6g6D9CJMv7Z" },
32
+ { provider: "nozomi", address: "nozievPk7HyK1Rqy1MPJwVQ7qQg2QoJGyP71oeDwbsu" },
33
+ { provider: "nozomi", address: "noznbgwYnBLDHu8wcQVCEw6kDrXkPdKkydGJGNXGvL7" },
34
+ { provider: "nozomi", address: "nozNVWs5N8mgzuD3qigrCG2UoKxZttxzZ85pvAQVrbP" },
35
+ { provider: "nozomi", address: "nozpEGbwx4BcGp6pvEdAh1JoC2CQGZdU6HbNP1v2p6P" },
36
+ { provider: "nozomi", address: "nozrhjhkCr3zXT3BiT4WCodYCUFeQvcdUkM7MqhKqge" },
37
+ { provider: "nozomi", address: "nozrwQtWhEdrA6W8dkbt9gnUaMs52PdAv5byipnadq3" },
38
+ { provider: "nozomi", address: "nozUacTVWub3cL4mJmGCYjKZTnE9RbdY5AP46iQgbPJ" },
39
+ { provider: "nozomi", address: "nozWCyTPppJjRuw2fpzDhhWbW355fzosWSzrrMYB1Qk" },
40
+ { provider: "nozomi", address: "nozWNju6dY353eMkMqURqwQEoM3SFgEKC6psLCSfUne" },
41
+ { provider: "nozomi", address: "nozxNBgWohjR75vdspfxR5H9ceC7XXH99xpxhVGt3Bb" },
42
+ // helius-sender
43
+ { provider: "helius-sender", address: "4ACfpUFoaSD9bfPdeu6DBt89gB6ENTeHBXCAi87NhDEE" },
44
+ { provider: "helius-sender", address: "D2L6yPZ2FmmmTKPgzaMKdhu6EWZcTpLy1Vhx8uvZe7NZ" },
45
+ { provider: "helius-sender", address: "9bnz4RShgq1hAnLnZbP8kbgBg1kEmcJBYQq3gQbmnSta" },
46
+ { provider: "helius-sender", address: "5VY91ws6B2hMmBFRsXkoAAdsPHBJwRfBht4DXox3xkwn" },
47
+ { provider: "helius-sender", address: "2nyhqdwKcJZR2vcqCyrYsaPVdAnFoJjiksCXJ7hfEYgD" },
48
+ { provider: "helius-sender", address: "2q5pghRs6arqVjRvT5gfgWfWcHWmw1ZuCzphgd5KfWGJ" },
49
+ { provider: "helius-sender", address: "wyvPkWjVZz1M8fHQnMMCDTQDbkManefNNhweYk5WkcF" },
50
+ { provider: "helius-sender", address: "3KCKozbAaF75qEU33jtzozcJ29yJuaLJTy2jFdzUY8bT" },
51
+ { provider: "helius-sender", address: "4vieeGHPYPG2MmyPRcYjdiDmmhN3ww7hsFNap8pVN3Ey" },
52
+ { provider: "helius-sender", address: "4TQLFNWK8AovT1gFvda5jfw2oJeRMKEmw7aH6MGBJ3or" },
53
+ // blockrazor
54
+ { provider: "blockrazor", address: "Gywj98ophM7GmkDdaWs4isqZnDdFCW7B46TXmKfvyqSm" },
55
+ { provider: "blockrazor", address: "FjmZZrFvhnqqb9ThCuMVnENaM3JGVuGWNyCAxRJcFpg9" },
56
+ { provider: "blockrazor", address: "6No2i3aawzHsjtThw81iq1EXPJN6rh8eSJCLaYZfKDTG" },
57
+ { provider: "blockrazor", address: "A9cWowVAiHe9pJfKAj3TJiN9VpbzMUq6E4kEvf5mUT22" },
58
+ { provider: "blockrazor", address: "68Pwb4jS7eZATjDfhmTXgRJjCiZmw1L7Huy4HNpnxJ3o" },
59
+ { provider: "blockrazor", address: "4ABhJh5rZPjv63RBJBuyWzBK3g9gWMUQdTZP2kiW31V9" },
60
+ { provider: "blockrazor", address: "B2M4NG5eyZp5SBQrSdtemzk5TqVuaWGQnowGaCBt8GyM" },
61
+ { provider: "blockrazor", address: "5jA59cXMKQqZAVdtopv8q3yyw9SYfiE3vUCbt7p8MfVf" },
62
+ { provider: "blockrazor", address: "5YktoWygr1Bp9wiS1xtMtUki1PeYuuzuCF98tqwYxf61" },
63
+ { provider: "blockrazor", address: "295Avbam4qGShBYK7E9H5Ldew4B3WyJGmgmXfiWdeeyV" },
64
+ { provider: "blockrazor", address: "EDi4rSy2LZgKJX74mbLTFk4mxoTgT6F7HxxzG2HBAFyK" },
65
+ { provider: "blockrazor", address: "BnGKHAC386n4Qmv9xtpBVbRaUTKixjBe3oagkPFKtoy6" },
66
+ { provider: "blockrazor", address: "Dd7K2Fp7AtoN8xCghKDRmyqr5U169t48Tw5fEd3wT9mq" },
67
+ { provider: "blockrazor", address: "AP6qExwrbRgBAVaehg4b5xHENX815sMabtBzUzVB4v8S" },
68
+ // node1.me
69
+ { provider: "node1", address: "node1PqAa3BWWzUnTHVbw8NJHC874zn9ngAkXjgWEej" },
70
+ { provider: "node1", address: "node1UzzTxAAeBTpfZkQPJXBAqixsbdth11ba1NXLBG" },
71
+ { provider: "node1", address: "node1Qm1bV4fwYnCurP8otJ9s5yrkPq7SPZ5uhj3Tsv" },
72
+ { provider: "node1", address: "node1PUber6SFmSQgvf2ECmXsHP5o3boRSGhvJyPMX1" },
73
+ { provider: "node1", address: "node1AyMbeqiVN6eoQzEAwCA6Pk826hrdqdAHR7cdJ3" },
74
+ { provider: "node1", address: "node1YtWCoTwwVYTFLfS19zquRQzYX332hs1HEuRBjC" },
75
+ // bloxroute
76
+ { provider: "bloxroute", address: "HWEoBxYs7ssKuudEjzjmpfJVX7Dvi7wescFsVx2L5yoY" },
77
+ { provider: "bloxroute", address: "95cfoy472fcQHaw4tPGBTKpn6ZQnfEPfBgDQx6gcRmRg" },
78
+ { provider: "bloxroute", address: "3UQUKjhMKaY2S6bjcQD6yHB7utcZt5bfarRCmctpRtUd" },
79
+ { provider: "bloxroute", address: "FogxVNs6Mm2w9rnGL1vkARSwJxvLE8mujTv3LK8RnUhF" },
80
+ // astralane
81
+ { provider: "astralane", address: "astra4uejePWneqNaJKuFFA8oonqCE1sqF6b45kDMZm" },
82
+ { provider: "astralane", address: "astrazznxsGUhWShqgNtAdfrzP2G83DzcWVJDxwV9bF" },
83
+ { provider: "astralane", address: "astra9xWY93QyfG6yM8zwsKsRodscjQ2uU2HKNL5prk" },
84
+ { provider: "astralane", address: "astraRVUuTHjpwEVvNBeQEgwYx9w9CFyfxjYoobCZhL" },
85
+ { provider: "astralane", address: "astraEJ2fEj8Xmy6KLG7B3VfbKfsHXhHrNdCQx7iGJK" },
86
+ { provider: "astralane", address: "astraubkDw81n4LuutzSQ8uzHCv4BhPVhfvTcYv8SKC" },
87
+ { provider: "astralane", address: "astraZW5GLFefxNPAatceHhYjfA1ciq9gvfEg2S47xk" },
88
+ { provider: "astralane", address: "astrawVNP4xDBKT7rAdxrLYiTSTdqtUr63fSMduivXK" },
89
+ // stellium
90
+ { provider: "stellium", address: "ste11JV3MLMM7x7EJUM2sXcJC1H7F4jBLnP9a9PG8PH" },
91
+ { provider: "stellium", address: "ste11MWPjXCRfQryCshzi86SGhuXjF4Lv6xMXD2AoSt" },
92
+ { provider: "stellium", address: "ste11p5x8tJ53H1NbNQsRBg1YNRd4GcVpxtDw8PBpmb" },
93
+ { provider: "stellium", address: "ste11p7e2KLYou5bwtt35H7BM6uMdo4pvioGjJXKFcN" },
94
+ { provider: "stellium", address: "ste11TMV68LMi1BguM4RQujtbNCZvf1sjsASpqgAvSX" },
95
+ // flashblock
96
+ { provider: "flashblock", address: "FLaShB3iXXTWE1vu9wQsChUKq3HFtpMAhb8kAh1pf1wi" },
97
+ { provider: "flashblock", address: "FLashhsorBmM9dLpuq6qATawcpqk1Y2aqaZfkd48iT3W" },
98
+ { provider: "flashblock", address: "FLaSHJNm5dWYzEgnHJWWJP5ccu128Mu61NJLxUf7mUXU" },
99
+ { provider: "flashblock", address: "FLaSHR4Vv7sttd6TyDF4yR1bJyAxRwWKbohDytEMu3wL" },
100
+ { provider: "flashblock", address: "FLASHRzANfcAKDuQ3RXv9hbkBy4WVEKDzoAgxJ56DiE4" },
101
+ { provider: "flashblock", address: "FLasHstqx11M8W56zrSEqkCyhMCCpr6ze6Mjdvqope5s" },
102
+ { provider: "flashblock", address: "FLAShWTjcweNT4NSotpjpxAkwxUr2we3eXQGhpTVzRwy" },
103
+ { provider: "flashblock", address: "FLasHXTqrbNvpWFB6grN47HGZfK6pze9HLNTgbukfPSk" },
104
+ { provider: "flashblock", address: "FLAshyAyBcKb39KPxSzXcepiS8iDYUhDGwJcJDPX4g2B" },
105
+ { provider: "flashblock", address: "FLAsHZTRcf3Dy1APaz6j74ebdMC6Xx4g6i9YxjyrDybR" },
106
+ // nextblock
107
+ { provider: "nextblock", address: "NEXTbLoCkB51HpLBLojQfpyVAMorm3zzKg7w9NFdqid" },
108
+ { provider: "nextblock", address: "nextBLoCkPMgmG8ZgJtABeScP35qLa2AMCNKntAP7Xc" },
109
+ { provider: "nextblock", address: "NextbLoCkVtMGcV47JzewQdvBpLqT9TxQFozQkN98pE" },
110
+ { provider: "nextblock", address: "NexTbLoCkWykbLuB1NkjXgFWkX9oAtcoagQegygXXA2" },
111
+ { provider: "nextblock", address: "NeXTBLoCKs9F1y5PJS9CKrFNNLU1keHW71rfh7KgA1X" },
112
+ { provider: "nextblock", address: "NexTBLockJYZ7QD7p2byrUa6df8ndV2WSd8GkbWqfbb" },
113
+ { provider: "nextblock", address: "neXtBLock1LeC67jYd1QdAa32kbVeubsfPNTJC1V5At" },
114
+ { provider: "nextblock", address: "nEXTBLockYgngeRmRrjDV31mGSekVPqZoMGhQEZtPVG" },
115
+ // soyas
116
+ { provider: "soyas", address: "soyas4s6L8KWZ8rsSk1mF3d1mQScoTGGAgjk98bF8nP" },
117
+ { provider: "soyas", address: "soyascXFW5wEEYiwfEmHy2pNwomqzvggJosGVD6TJdY" },
118
+ { provider: "soyas", address: "soyasDBdKjADwPz3xk82U3TNPRDKEWJj7wWLajNHZ1L" },
119
+ { provider: "soyas", address: "soyasE2abjBAynmHbGWgEwk4ctBy7JMTUCNrMbjcnyH" },
120
+ ];
121
+ /**
122
+ * Fast O(1) lookup: is this address a known SWQoS tip account?
123
+ */
124
+ const _tipLookup = new Set(exports.TIP_ACCOUNTS.map((t) => t.address));
125
+ function isTipAccount(address) {
126
+ return _tipLookup.has(address);
127
+ }
128
+ /**
129
+ * Get the provider name for a tip account address, or undefined.
130
+ */
131
+ function getTipAccountProvider(address) {
132
+ return exports.TIP_ACCOUNTS.find((t) => t.address === address)?.provider;
133
+ }
134
+ /**
135
+ * Get all tip accounts for a specific provider.
136
+ */
137
+ function getTipAccountsForProvider(provider) {
138
+ return exports.TIP_ACCOUNTS.filter((t) => t.provider === provider).map((t) => t.address);
139
+ }
140
+ //# sourceMappingURL=tip-accounts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tip-accounts.js","sourceRoot":"","sources":["../../../src/transactions/landing/tip-accounts.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AA+HH,oCAEC;AAKD,sDAEC;AAKD,8DAEC;AA3ID;;GAEG;AACU,QAAA,YAAY,GAA0B;IACjD,QAAQ;IACR,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,8CAA8C,EAAE;IAClF,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,8CAA8C,EAAE;IAClF,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,8CAA8C,EAAE;IAClF,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,8CAA8C,EAAE;IAClF,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,8CAA8C,EAAE;IAElF,SAAS;IACT,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,6CAA6C,EAAE;IAC9E,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,6CAA6C,EAAE;IAC9E,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,6CAA6C,EAAE;IAC9E,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,6CAA6C,EAAE;IAC9E,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,6CAA6C,EAAE;IAC9E,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,6CAA6C,EAAE;IAC9E,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,6CAA6C,EAAE;IAC9E,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,6CAA6C,EAAE;IAC9E,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,6CAA6C,EAAE;IAC9E,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,6CAA6C,EAAE;IAC9E,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,6CAA6C,EAAE;IAC9E,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,6CAA6C,EAAE;IAC9E,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,6CAA6C,EAAE;IAC9E,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,6CAA6C,EAAE;IAC9E,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,6CAA6C,EAAE;IAC9E,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,6CAA6C,EAAE;IAC9E,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,6CAA6C,EAAE;IAE9E,gBAAgB;IAChB,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,8CAA8C,EAAE;IACtF,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,8CAA8C,EAAE;IACtF,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,8CAA8C,EAAE;IACtF,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,8CAA8C,EAAE;IACtF,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,8CAA8C,EAAE;IACtF,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,8CAA8C,EAAE;IACtF,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,6CAA6C,EAAE;IACrF,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,8CAA8C,EAAE;IACtF,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,8CAA8C,EAAE;IACtF,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,8CAA8C,EAAE;IAEtF,aAAa;IACb,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,8CAA8C,EAAE;IACnF,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,8CAA8C,EAAE;IACnF,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,8CAA8C,EAAE;IACnF,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,8CAA8C,EAAE;IACnF,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,8CAA8C,EAAE;IACnF,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,8CAA8C,EAAE;IACnF,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,8CAA8C,EAAE;IACnF,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,8CAA8C,EAAE;IACnF,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,8CAA8C,EAAE;IACnF,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,8CAA8C,EAAE;IACnF,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,8CAA8C,EAAE;IACnF,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,8CAA8C,EAAE;IACnF,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,8CAA8C,EAAE;IACnF,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,8CAA8C,EAAE;IAEnF,WAAW;IACX,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,6CAA6C,EAAE;IAC7E,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,6CAA6C,EAAE;IAC7E,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,6CAA6C,EAAE;IAC7E,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,6CAA6C,EAAE;IAC7E,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,6CAA6C,EAAE;IAC7E,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,6CAA6C,EAAE;IAE7E,YAAY;IACZ,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,8CAA8C,EAAE;IAClF,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,8CAA8C,EAAE;IAClF,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,8CAA8C,EAAE;IAClF,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,8CAA8C,EAAE;IAElF,YAAY;IACZ,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,6CAA6C,EAAE;IACjF,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,6CAA6C,EAAE;IACjF,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,6CAA6C,EAAE;IACjF,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,6CAA6C,EAAE;IACjF,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,6CAA6C,EAAE;IACjF,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,6CAA6C,EAAE;IACjF,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,6CAA6C,EAAE;IACjF,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,6CAA6C,EAAE;IAEjF,WAAW;IACX,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,6CAA6C,EAAE;IAChF,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,6CAA6C,EAAE;IAChF,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,6CAA6C,EAAE;IAChF,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,6CAA6C,EAAE;IAChF,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,6CAA6C,EAAE;IAEhF,aAAa;IACb,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,8CAA8C,EAAE;IACnF,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,8CAA8C,EAAE;IACnF,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,8CAA8C,EAAE;IACnF,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,8CAA8C,EAAE;IACnF,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,8CAA8C,EAAE;IACnF,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,8CAA8C,EAAE;IACnF,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,8CAA8C,EAAE;IACnF,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,8CAA8C,EAAE;IACnF,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,8CAA8C,EAAE;IACnF,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,8CAA8C,EAAE;IAEnF,YAAY;IACZ,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,6CAA6C,EAAE;IACjF,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,6CAA6C,EAAE;IACjF,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,6CAA6C,EAAE;IACjF,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,6CAA6C,EAAE;IACjF,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,6CAA6C,EAAE;IACjF,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,6CAA6C,EAAE;IACjF,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,6CAA6C,EAAE;IACjF,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,6CAA6C,EAAE;IAEjF,QAAQ;IACR,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,6CAA6C,EAAE;IAC7E,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,6CAA6C,EAAE;IAC7E,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,6CAA6C,EAAE;IAC7E,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,6CAA6C,EAAE;CACrE,CAAC;AAEX;;GAEG;AACH,MAAM,UAAU,GAAgB,IAAI,GAAG,CAAC,oBAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAE5E,SAAgB,YAAY,CAAC,OAAe;IAC1C,OAAO,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CAAC,OAAe;IACnD,OAAO,oBAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,EAAE,QAAQ,CAAC;AACnE,CAAC;AAED;;GAEG;AACH,SAAgB,yBAAyB,CAAC,QAAgB;IACxD,OAAO,oBAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AACnF,CAAC"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * TX Landing Layer — Shared Types & Interfaces
3
+ *
4
+ * This module defines the provider interface and shared types used by
5
+ * all 12+ TX landing providers (0slot, nozomi, helius-sender, blockrazor,
6
+ * node1.me, bloXroute, astralane, stellium, flashblock, jito, nextblock, soyas).
7
+ *
8
+ * Each provider implements ILandingProvider. The orchestrator calls them
9
+ * using a uniform interface — no provider-specific logic leaks out.
10
+ */
11
+ import { Keypair, TransactionInstruction, AddressLookupTableAccount } from "@solana/web3.js";
12
+ export interface LandingResult {
13
+ /** Provider name (e.g. "0slot", "nozomi") */
14
+ provider: string;
15
+ /** Whether the submission was accepted by the provider (NOT on-chain confirmation) */
16
+ accepted: boolean;
17
+ /** Transaction signature (base58), if available */
18
+ signature?: string;
19
+ /** Bundle ID (jito), if applicable */
20
+ bundleId?: string;
21
+ /** Provider-specific error, if submission failed */
22
+ error?: string;
23
+ /** Round-trip latency in ms */
24
+ latencyMs?: number;
25
+ }
26
+ export interface SubmitOptions {
27
+ /** The DEX this transaction targets (e.g. "raydium-amm-v4", "meteora-dlmm") */
28
+ dex: string;
29
+ /** "buy" | "sell" | "snipe" | "create_account" | "create_damm_pool" */
30
+ operation: string;
31
+ /** Tip amount in SOL (overrides provider default if > 0) */
32
+ tipSol?: number;
33
+ /** Extra signers beyond the primary wallet (e.g. positionNft for DAMM pool creation) */
34
+ extraSigners?: Keypair[];
35
+ /** Address lookup table accounts for V0 message compilation */
36
+ addressLookupTables?: AddressLookupTableAccount[];
37
+ /**
38
+ * Skip durable nonce for concurrent strategy.
39
+ * WARNING: Without nonce, concurrent submission risks duplicate buys.
40
+ * Only set this if you understand the risks.
41
+ */
42
+ skipNonce?: boolean;
43
+ }
44
+ export interface ILandingProvider {
45
+ /** Unique name (e.g. "0slot", "nozomi") */
46
+ readonly name: string;
47
+ /**
48
+ * Submit a transaction to this provider.
49
+ *
50
+ * @param ixs - Instructions to include (tip instruction is appended by the provider)
51
+ * @param signer - Primary wallet keypair
52
+ * @param blockhash - Recent blockhash (string or { blockhash, lastValidBlockHeight })
53
+ * @param opts - Submission options
54
+ * @returns - Provider result
55
+ */
56
+ submit(ixs: TransactionInstruction[], signer: Keypair, blockhash: string | {
57
+ blockhash: string;
58
+ lastValidBlockHeight: number;
59
+ }, opts: SubmitOptions): Promise<LandingResult>;
60
+ /**
61
+ * Optional health check / keep-alive ping.
62
+ * Providers that support it (blockrazor, stellium, nextblock, soyas) implement this.
63
+ */
64
+ ping?(): Promise<void>;
65
+ /**
66
+ * Whether this provider is currently enabled (has required env vars / API keys).
67
+ */
68
+ isEnabled(): boolean;
69
+ }
70
+ export type SubmissionStrategy = "concurrent" | "race" | "random" | "sequential";
71
+ export interface OrchestratorConfig {
72
+ /** Which providers to use (by name). If empty, use all enabled providers. */
73
+ providers?: string[];
74
+ /** Submission strategy */
75
+ strategy: SubmissionStrategy;
76
+ /** Default tip in SOL if not specified per-call */
77
+ defaultTipSol: number;
78
+ /** Timeout per provider in ms (default 10000) */
79
+ timeoutMs?: number;
80
+ }
81
+ export interface TipAccount {
82
+ /** Provider this tip account belongs to */
83
+ provider: string;
84
+ /** Base58 public key */
85
+ address: string;
86
+ }
87
+ /**
88
+ * Extract blockhash string from various formats.
89
+ */
90
+ export declare function extractBlockhash(bh: string | {
91
+ blockhash: string;
92
+ lastValidBlockHeight: number;
93
+ }): string;
94
+ /**
95
+ * Pick a random element from an array.
96
+ */
97
+ export declare function pickRandom<T>(arr: readonly T[]): T;
98
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/transactions/landing/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,OAAO,EAEP,sBAAsB,EAEtB,yBAAyB,EAC1B,MAAM,iBAAiB,CAAC;AAMzB,MAAM,WAAW,aAAa;IAC5B,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,sFAAsF;IACtF,QAAQ,EAAE,OAAO,CAAC;IAClB,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD,MAAM,WAAW,aAAa;IAC5B,+EAA+E;IAC/E,GAAG,EAAE,MAAM,CAAC;IACZ,uEAAuE;IACvE,SAAS,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wFAAwF;IACxF,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC;IACzB,+DAA+D;IAC/D,mBAAmB,CAAC,EAAE,yBAAyB,EAAE,CAAC;IAClD;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAMD,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;;;;;;OAQG;IACH,MAAM,CACJ,GAAG,EAAE,sBAAsB,EAAE,EAC7B,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,MAAM,GAAG;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,oBAAoB,EAAE,MAAM,CAAA;KAAE,EACvE,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,aAAa,CAAC,CAAC;IAE1B;;;OAGG;IACH,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC;CACtB;AAMD,MAAM,MAAM,kBAAkB,GAC1B,YAAY,GACZ,MAAM,GACN,QAAQ,GACR,YAAY,CAAC;AAEjB,MAAM,WAAW,kBAAkB;IACjC,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,0BAA0B;IAC1B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD,MAAM,WAAW,UAAU;IACzB,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAMD;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,oBAAoB,EAAE,MAAM,CAAA;CAAE,GAC/D,MAAM,CAER;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,CAElD"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ /**
3
+ * TX Landing Layer — Shared Types & Interfaces
4
+ *
5
+ * This module defines the provider interface and shared types used by
6
+ * all 12+ TX landing providers (0slot, nozomi, helius-sender, blockrazor,
7
+ * node1.me, bloXroute, astralane, stellium, flashblock, jito, nextblock, soyas).
8
+ *
9
+ * Each provider implements ILandingProvider. The orchestrator calls them
10
+ * using a uniform interface — no provider-specific logic leaks out.
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.extractBlockhash = extractBlockhash;
14
+ exports.pickRandom = pickRandom;
15
+ // ---------------------------------------------------------------------------
16
+ // Helpers
17
+ // ---------------------------------------------------------------------------
18
+ /**
19
+ * Extract blockhash string from various formats.
20
+ */
21
+ function extractBlockhash(bh) {
22
+ return typeof bh === "string" ? bh : bh.blockhash;
23
+ }
24
+ /**
25
+ * Pick a random element from an array.
26
+ */
27
+ function pickRandom(arr) {
28
+ return arr[Math.floor(Math.random() * arr.length)];
29
+ }
30
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/transactions/landing/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;AA+HH,4CAIC;AAKD,gCAEC;AAlBD,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E;;GAEG;AACH,SAAgB,gBAAgB,CAC9B,EAAgE;IAEhE,OAAO,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC;AACpD,CAAC;AAED;;GAEG;AACH,SAAgB,UAAU,CAAI,GAAiB;IAC7C,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AACrD,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { PublicKey, Keypair, Connection, TransactionInstruction, BlockhashWithExpiryBlockHeight } from "@solana/web3.js";
2
+ export declare function getRandomValidator(): PublicKey;
3
+ export declare function getNozomiConnection(): Connection;
4
+ export interface NozomiResult {
5
+ success: boolean;
6
+ signature?: string;
7
+ error?: string;
8
+ }
9
+ /**
10
+ * Sends a transaction via Nozomi with tip.
11
+ * NOTE: Does NOT mutate the input ixs array.
12
+ */
13
+ export declare function sendNozomiTx(ixs: TransactionInstruction[], signer: Keypair, blockhash: string | BlockhashWithExpiryBlockHeight, tipSol?: number): Promise<NozomiResult>;
14
+ //# sourceMappingURL=tx-submission.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tx-submission.d.ts","sourceRoot":"","sources":["../../../src/transactions/nozomi/tx-submission.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,OAAO,EACP,UAAU,EAIV,sBAAsB,EACtB,8BAA8B,EAC/B,MAAM,iBAAiB,CAAC;AAoCzB,wBAAgB,kBAAkB,IAAI,SAAS,CAG9C;AASD,wBAAgB,mBAAmB,IAAI,UAAU,CAMhD;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,sBAAsB,EAAE,EAC7B,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,MAAM,GAAG,8BAA8B,EAClD,MAAM,GAAE,MAAiB,GACxB,OAAO,CAAC,YAAY,CAAC,CAwDvB"}