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.
- package/LICENSE +21 -0
- package/README.md +568 -0
- package/dist/cli.d.ts +44 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +1251 -0
- package/dist/cli.js.map +1 -0
- package/dist/dex/byreal-clmm.d.ts +16 -0
- package/dist/dex/byreal-clmm.d.ts.map +1 -0
- package/dist/dex/byreal-clmm.js +39 -0
- package/dist/dex/byreal-clmm.js.map +1 -0
- package/dist/dex/dflow.d.ts +27 -0
- package/dist/dex/dflow.d.ts.map +1 -0
- package/dist/dex/dflow.js +200 -0
- package/dist/dex/dflow.js.map +1 -0
- package/dist/dex/fusion-amm.d.ts +44 -0
- package/dist/dex/fusion-amm.d.ts.map +1 -0
- package/dist/dex/fusion-amm.js +546 -0
- package/dist/dex/fusion-amm.js.map +1 -0
- package/dist/dex/futarchy-amm.d.ts +32 -0
- package/dist/dex/futarchy-amm.d.ts.map +1 -0
- package/dist/dex/futarchy-amm.js +443 -0
- package/dist/dex/futarchy-amm.js.map +1 -0
- package/dist/dex/futarchy-idl.d.ts +2568 -0
- package/dist/dex/futarchy-idl.d.ts.map +1 -0
- package/dist/dex/futarchy-idl.js +2570 -0
- package/dist/dex/futarchy-idl.js.map +1 -0
- package/dist/dex/futarchy-launchpad.d.ts +68 -0
- package/dist/dex/futarchy-launchpad.d.ts.map +1 -0
- package/dist/dex/futarchy-launchpad.js +377 -0
- package/dist/dex/futarchy-launchpad.js.map +1 -0
- package/dist/dex/index.d.ts +88 -0
- package/dist/dex/index.d.ts.map +1 -0
- package/dist/dex/index.js +159 -0
- package/dist/dex/index.js.map +1 -0
- package/dist/dex/jupiter-ultra.d.ts +27 -0
- package/dist/dex/jupiter-ultra.d.ts.map +1 -0
- package/dist/dex/jupiter-ultra.js +369 -0
- package/dist/dex/jupiter-ultra.js.map +1 -0
- package/dist/dex/meteora-damm-v1.d.ts +36 -0
- package/dist/dex/meteora-damm-v1.d.ts.map +1 -0
- package/dist/dex/meteora-damm-v1.js +314 -0
- package/dist/dex/meteora-damm-v1.js.map +1 -0
- package/dist/dex/meteora-damm-v2.d.ts +103 -0
- package/dist/dex/meteora-damm-v2.d.ts.map +1 -0
- package/dist/dex/meteora-damm-v2.js +1146 -0
- package/dist/dex/meteora-damm-v2.js.map +1 -0
- package/dist/dex/meteora-dbc.d.ts +38 -0
- package/dist/dex/meteora-dbc.d.ts.map +1 -0
- package/dist/dex/meteora-dbc.js +374 -0
- package/dist/dex/meteora-dbc.js.map +1 -0
- package/dist/dex/meteora-dlmm.d.ts +79 -0
- package/dist/dex/meteora-dlmm.d.ts.map +1 -0
- package/dist/dex/meteora-dlmm.js +735 -0
- package/dist/dex/meteora-dlmm.js.map +1 -0
- package/dist/dex/orca.d.ts +31 -0
- package/dist/dex/orca.d.ts.map +1 -0
- package/dist/dex/orca.js +536 -0
- package/dist/dex/orca.js.map +1 -0
- package/dist/dex/pancakeswap-clmm.d.ts +16 -0
- package/dist/dex/pancakeswap-clmm.d.ts.map +1 -0
- package/dist/dex/pancakeswap-clmm.js +39 -0
- package/dist/dex/pancakeswap-clmm.js.map +1 -0
- package/dist/dex/pumpfun-amm.d.ts +46 -0
- package/dist/dex/pumpfun-amm.d.ts.map +1 -0
- package/dist/dex/pumpfun-amm.js +692 -0
- package/dist/dex/pumpfun-amm.js.map +1 -0
- package/dist/dex/pumpfun.d.ts +41 -0
- package/dist/dex/pumpfun.d.ts.map +1 -0
- package/dist/dex/pumpfun.js +555 -0
- package/dist/dex/pumpfun.js.map +1 -0
- package/dist/dex/raydium-amm-v4.d.ts +11 -0
- package/dist/dex/raydium-amm-v4.d.ts.map +1 -0
- package/dist/dex/raydium-amm-v4.js +649 -0
- package/dist/dex/raydium-amm-v4.js.map +1 -0
- package/dist/dex/raydium-clmm.d.ts +12 -0
- package/dist/dex/raydium-clmm.d.ts.map +1 -0
- package/dist/dex/raydium-clmm.js +675 -0
- package/dist/dex/raydium-clmm.js.map +1 -0
- package/dist/dex/raydium-cpmm.d.ts +10 -0
- package/dist/dex/raydium-cpmm.d.ts.map +1 -0
- package/dist/dex/raydium-cpmm.js +613 -0
- package/dist/dex/raydium-cpmm.js.map +1 -0
- package/dist/dex/raydium-launchlab.d.ts +12 -0
- package/dist/dex/raydium-launchlab.d.ts.map +1 -0
- package/dist/dex/raydium-launchlab.js +530 -0
- package/dist/dex/raydium-launchlab.js.map +1 -0
- package/dist/dex/shared/clmm-base.d.ts +58 -0
- package/dist/dex/shared/clmm-base.d.ts.map +1 -0
- package/dist/dex/shared/clmm-base.js +891 -0
- package/dist/dex/shared/clmm-base.js.map +1 -0
- package/dist/dex/types.d.ts +601 -0
- package/dist/dex/types.d.ts.map +1 -0
- package/dist/dex/types.js +137 -0
- package/dist/dex/types.js.map +1 -0
- package/dist/dexscreener/index.d.ts +2 -0
- package/dist/dexscreener/index.d.ts.map +1 -0
- package/dist/dexscreener/index.js +18 -0
- package/dist/dexscreener/index.js.map +1 -0
- package/dist/dexscreener/info.d.ts +22 -0
- package/dist/dexscreener/info.d.ts.map +1 -0
- package/dist/dexscreener/info.js +104 -0
- package/dist/dexscreener/info.js.map +1 -0
- package/dist/helpers/check_balance.d.ts +10 -0
- package/dist/helpers/check_balance.d.ts.map +1 -0
- package/dist/helpers/check_balance.js +34 -0
- package/dist/helpers/check_balance.js.map +1 -0
- package/dist/helpers/config.d.ts +51 -0
- package/dist/helpers/config.d.ts.map +1 -0
- package/dist/helpers/config.js +118 -0
- package/dist/helpers/config.js.map +1 -0
- package/dist/helpers/index.d.ts +8 -0
- package/dist/helpers/index.d.ts.map +1 -0
- package/dist/helpers/index.js +29 -0
- package/dist/helpers/index.js.map +1 -0
- package/dist/helpers/logger.d.ts +27 -0
- package/dist/helpers/logger.d.ts.map +1 -0
- package/dist/helpers/logger.js +39 -0
- package/dist/helpers/logger.js.map +1 -0
- package/dist/helpers/token-2022.d.ts +32 -0
- package/dist/helpers/token-2022.d.ts.map +1 -0
- package/dist/helpers/token-2022.js +48 -0
- package/dist/helpers/token-2022.js.map +1 -0
- package/dist/helpers/unwrap_sol.d.ts +2 -0
- package/dist/helpers/unwrap_sol.d.ts.map +1 -0
- package/dist/helpers/unwrap_sol.js +67 -0
- package/dist/helpers/unwrap_sol.js.map +1 -0
- package/dist/helpers/util.d.ts +698 -0
- package/dist/helpers/util.d.ts.map +1 -0
- package/dist/helpers/util.js +181 -0
- package/dist/helpers/util.js.map +1 -0
- package/dist/helpers/utils.d.ts +10 -0
- package/dist/helpers/utils.d.ts.map +1 -0
- package/dist/helpers/utils.js +97 -0
- package/dist/helpers/utils.js.map +1 -0
- package/dist/helpers/wrap_sol.d.ts +3 -0
- package/dist/helpers/wrap_sol.d.ts.map +1 -0
- package/dist/helpers/wrap_sol.js +88 -0
- package/dist/helpers/wrap_sol.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -0
- package/dist/transactions/bloXroute_tips_tx_executor.d.ts +4 -0
- package/dist/transactions/bloXroute_tips_tx_executor.d.ts.map +1 -0
- package/dist/transactions/bloXroute_tips_tx_executor.js +70 -0
- package/dist/transactions/bloXroute_tips_tx_executor.js.map +1 -0
- package/dist/transactions/index.d.ts +6 -0
- package/dist/transactions/index.d.ts.map +1 -0
- package/dist/transactions/index.js +30 -0
- package/dist/transactions/index.js.map +1 -0
- package/dist/transactions/jito_tips_tx_executor.d.ts +15 -0
- package/dist/transactions/jito_tips_tx_executor.d.ts.map +1 -0
- package/dist/transactions/jito_tips_tx_executor.js +99 -0
- package/dist/transactions/jito_tips_tx_executor.js.map +1 -0
- package/dist/transactions/landing/index.d.ts +30 -0
- package/dist/transactions/landing/index.d.ts.map +1 -0
- package/dist/transactions/landing/index.js +60 -0
- package/dist/transactions/landing/index.js.map +1 -0
- package/dist/transactions/landing/nonce-manager.d.ts +116 -0
- package/dist/transactions/landing/nonce-manager.d.ts.map +1 -0
- package/dist/transactions/landing/nonce-manager.js +393 -0
- package/dist/transactions/landing/nonce-manager.js.map +1 -0
- package/dist/transactions/landing/orchestrator.d.ts +104 -0
- package/dist/transactions/landing/orchestrator.d.ts.map +1 -0
- package/dist/transactions/landing/orchestrator.js +329 -0
- package/dist/transactions/landing/orchestrator.js.map +1 -0
- package/dist/transactions/landing/providers/astralane.d.ts +12 -0
- package/dist/transactions/landing/providers/astralane.d.ts.map +1 -0
- package/dist/transactions/landing/providers/astralane.js +132 -0
- package/dist/transactions/landing/providers/astralane.js.map +1 -0
- package/dist/transactions/landing/providers/blockrazor.d.ts +11 -0
- package/dist/transactions/landing/providers/blockrazor.d.ts.map +1 -0
- package/dist/transactions/landing/providers/blockrazor.js +134 -0
- package/dist/transactions/landing/providers/blockrazor.js.map +1 -0
- package/dist/transactions/landing/providers/bloxroute.d.ts +12 -0
- package/dist/transactions/landing/providers/bloxroute.d.ts.map +1 -0
- package/dist/transactions/landing/providers/bloxroute.js +102 -0
- package/dist/transactions/landing/providers/bloxroute.js.map +1 -0
- package/dist/transactions/landing/providers/flashblock.d.ts +10 -0
- package/dist/transactions/landing/providers/flashblock.d.ts.map +1 -0
- package/dist/transactions/landing/providers/flashblock.js +102 -0
- package/dist/transactions/landing/providers/flashblock.js.map +1 -0
- package/dist/transactions/landing/providers/helius-sender.d.ts +11 -0
- package/dist/transactions/landing/providers/helius-sender.d.ts.map +1 -0
- package/dist/transactions/landing/providers/helius-sender.js +101 -0
- package/dist/transactions/landing/providers/helius-sender.js.map +1 -0
- package/dist/transactions/landing/providers/jito.d.ts +16 -0
- package/dist/transactions/landing/providers/jito.d.ts.map +1 -0
- package/dist/transactions/landing/providers/jito.js +110 -0
- package/dist/transactions/landing/providers/jito.js.map +1 -0
- package/dist/transactions/landing/providers/nextblock.d.ts +11 -0
- package/dist/transactions/landing/providers/nextblock.d.ts.map +1 -0
- package/dist/transactions/landing/providers/nextblock.js +109 -0
- package/dist/transactions/landing/providers/nextblock.js.map +1 -0
- package/dist/transactions/landing/providers/node1.d.ts +11 -0
- package/dist/transactions/landing/providers/node1.d.ts.map +1 -0
- package/dist/transactions/landing/providers/node1.js +101 -0
- package/dist/transactions/landing/providers/node1.js.map +1 -0
- package/dist/transactions/landing/providers/nozomi.d.ts +11 -0
- package/dist/transactions/landing/providers/nozomi.d.ts.map +1 -0
- package/dist/transactions/landing/providers/nozomi.js +124 -0
- package/dist/transactions/landing/providers/nozomi.js.map +1 -0
- package/dist/transactions/landing/providers/soyas.d.ts +16 -0
- package/dist/transactions/landing/providers/soyas.d.ts.map +1 -0
- package/dist/transactions/landing/providers/soyas.js +192 -0
- package/dist/transactions/landing/providers/soyas.js.map +1 -0
- package/dist/transactions/landing/providers/stellium.d.ts +11 -0
- package/dist/transactions/landing/providers/stellium.d.ts.map +1 -0
- package/dist/transactions/landing/providers/stellium.js +102 -0
- package/dist/transactions/landing/providers/stellium.js.map +1 -0
- package/dist/transactions/landing/providers/zero-slot.d.ts +10 -0
- package/dist/transactions/landing/providers/zero-slot.d.ts.map +1 -0
- package/dist/transactions/landing/providers/zero-slot.js +92 -0
- package/dist/transactions/landing/providers/zero-slot.js.map +1 -0
- package/dist/transactions/landing/tip-accounts.d.ts +22 -0
- package/dist/transactions/landing/tip-accounts.d.ts.map +1 -0
- package/dist/transactions/landing/tip-accounts.js +140 -0
- package/dist/transactions/landing/tip-accounts.js.map +1 -0
- package/dist/transactions/landing/types.d.ts +98 -0
- package/dist/transactions/landing/types.d.ts.map +1 -0
- package/dist/transactions/landing/types.js +30 -0
- package/dist/transactions/landing/types.js.map +1 -0
- package/dist/transactions/nozomi/tx-submission.d.ts +14 -0
- package/dist/transactions/nozomi/tx-submission.d.ts.map +1 -0
- package/dist/transactions/nozomi/tx-submission.js +107 -0
- package/dist/transactions/nozomi/tx-submission.js.map +1 -0
- package/dist/transactions/send-rpc.d.ts +54 -0
- package/dist/transactions/send-rpc.d.ts.map +1 -0
- package/dist/transactions/send-rpc.js +126 -0
- package/dist/transactions/send-rpc.js.map +1 -0
- package/dist/transactions/simple_tx_executor.d.ts +10 -0
- package/dist/transactions/simple_tx_executor.d.ts.map +1 -0
- package/dist/transactions/simple_tx_executor.js +33 -0
- package/dist/transactions/simple_tx_executor.js.map +1 -0
- 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":"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"}
|
|
@@ -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"}
|