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 @@
|
|
|
1
|
+
{"version":3,"file":"jito_tips_tx_executor.d.ts","sourceRoot":"","sources":["../../src/transactions/jito_tips_tx_executor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,OAAO,EACP,SAAS,EAGT,oBAAoB,EACpB,WAAW,EAEZ,MAAM,iBAAiB,CAAC;AAwBzB,wBAAgB,kBAAkB,IAAI,SAAS,CAG9C;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,oBAAoB,GAAG,WAAW,EAC/C,KAAK,EAAE,OAAO,EACd,eAAe,EAAE,8BAA8B,EAC/C,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,UAAU,CAAC,CA6DrB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,8BAA8B,GAC9C,OAAO,CAAC,UAAU,CAAC,CAYrB"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getRandomValidator = getRandomValidator;
|
|
7
|
+
exports.jito_executeAndConfirm = jito_executeAndConfirm;
|
|
8
|
+
exports.jito_confirm = jito_confirm;
|
|
9
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
10
|
+
const axios_1 = __importDefault(require("axios"));
|
|
11
|
+
const bs58_1 = __importDefault(require("bs58"));
|
|
12
|
+
const config_1 = require("../helpers/config");
|
|
13
|
+
const jito_Validators = [
|
|
14
|
+
"DfXygSm4jCyNCybVYYK6DwvWqjKee8pbDmJGcLWNDXjh",
|
|
15
|
+
"ADuUkR4vqLUMWXxW9gh6D6L8pMSawimctcNZ5pGwDcEt",
|
|
16
|
+
"3AVi9Tg9Uo68tJfuvoKvqKNWKkC5wPdSSdeBnizKZ6jT",
|
|
17
|
+
"HFqU5x63VTqvQss8hp11i4wVV8bD44PvwucfZ2bU7gRe",
|
|
18
|
+
"ADaUMid9yfUytqMBgopwjb2DTLSokTSzL1zt6iGPaS49",
|
|
19
|
+
"Cw8CFyM9FkoMi7K7Crf6HNQqf4uEMzpKw6QNghXLvLkY",
|
|
20
|
+
"DttWaMuVvTiduZRnguLF7jNxTgiMBZ1hyAumKUiL2KRL",
|
|
21
|
+
"96gYZGLnJYVFmbjzopPSU6QiEV5fGqZNyN9nmNhvrZU5",
|
|
22
|
+
];
|
|
23
|
+
const endpoints = [
|
|
24
|
+
"https://mainnet.block-engine.jito.wtf/api/v1/bundles",
|
|
25
|
+
"https://amsterdam.mainnet.block-engine.jito.wtf/api/v1/bundles",
|
|
26
|
+
"https://frankfurt.mainnet.block-engine.jito.wtf/api/v1/bundles",
|
|
27
|
+
"https://ny.mainnet.block-engine.jito.wtf/api/v1/bundles",
|
|
28
|
+
"https://tokyo.mainnet.block-engine.jito.wtf/api/v1/bundles",
|
|
29
|
+
];
|
|
30
|
+
function getRandomValidator() {
|
|
31
|
+
const res = jito_Validators[Math.floor(Math.random() * jito_Validators.length)];
|
|
32
|
+
return new web3_js_1.PublicKey(res);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Executes and confirms a Jito bundle transaction.
|
|
36
|
+
*/
|
|
37
|
+
async function jito_executeAndConfirm(transaction, payer, latestBlockhash, jitofee) {
|
|
38
|
+
console.log("Executing transaction (jito)...");
|
|
39
|
+
const jito_validator_wallet = getRandomValidator();
|
|
40
|
+
console.log("Selected Jito Validator:", jito_validator_wallet.toBase58());
|
|
41
|
+
try {
|
|
42
|
+
const fee = Math.round(jitofee * web3_js_1.LAMPORTS_PER_SOL);
|
|
43
|
+
console.log(`Jito Fee: ${fee / web3_js_1.LAMPORTS_PER_SOL} SOL`);
|
|
44
|
+
const jitoFee_message = new web3_js_1.TransactionMessage({
|
|
45
|
+
payerKey: payer.publicKey,
|
|
46
|
+
recentBlockhash: latestBlockhash.blockhash,
|
|
47
|
+
instructions: [
|
|
48
|
+
web3_js_1.SystemProgram.transfer({
|
|
49
|
+
fromPubkey: payer.publicKey,
|
|
50
|
+
toPubkey: jito_validator_wallet,
|
|
51
|
+
lamports: fee,
|
|
52
|
+
}),
|
|
53
|
+
],
|
|
54
|
+
}).compileToV0Message();
|
|
55
|
+
const jitoFee_transaction = new web3_js_1.VersionedTransaction(jitoFee_message);
|
|
56
|
+
jitoFee_transaction.sign([payer]);
|
|
57
|
+
const jitoTxSignature = bs58_1.default.encode(jitoFee_transaction.signatures[0]);
|
|
58
|
+
const serializedJitoFeeTransaction = bs58_1.default.encode(jitoFee_transaction.serialize());
|
|
59
|
+
const serializedTransaction = bs58_1.default.encode(transaction instanceof web3_js_1.VersionedTransaction
|
|
60
|
+
? transaction.serialize()
|
|
61
|
+
: transaction.serialize());
|
|
62
|
+
const final_transaction = [serializedJitoFeeTransaction, serializedTransaction];
|
|
63
|
+
const requests = endpoints.map((url) => axios_1.default.post(url, { jsonrpc: "2.0", id: 1, method: "sendBundle", params: [final_transaction] }, { timeout: 10000 }));
|
|
64
|
+
console.log("Sending tx to Jito validators...");
|
|
65
|
+
const res = await Promise.all(requests.map((p) => p.catch((e) => e)));
|
|
66
|
+
const success_res = res.filter((r) => !(r instanceof Error));
|
|
67
|
+
if (success_res.length > 0) {
|
|
68
|
+
console.log("Jito validator accepted the tx");
|
|
69
|
+
return await jito_confirm(jitoTxSignature, latestBlockhash);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
console.log("No Jito validators accepted the tx");
|
|
73
|
+
return { confirmed: false, signature: jitoTxSignature };
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
catch (e) {
|
|
77
|
+
if (e instanceof axios_1.default.AxiosError) {
|
|
78
|
+
console.log("Failed to execute the jito transaction");
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
console.log("Error during jito transaction execution:", e);
|
|
82
|
+
}
|
|
83
|
+
return { confirmed: false, signature: null };
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Confirms a transaction on the Solana blockchain.
|
|
88
|
+
*/
|
|
89
|
+
async function jito_confirm(signature, latestBlockhash) {
|
|
90
|
+
console.log("Confirming the jito transaction...");
|
|
91
|
+
const connection = (0, config_1.getConnection)();
|
|
92
|
+
const confirmation = await connection.confirmTransaction({
|
|
93
|
+
signature,
|
|
94
|
+
lastValidBlockHeight: latestBlockhash.lastValidBlockHeight,
|
|
95
|
+
blockhash: latestBlockhash.blockhash,
|
|
96
|
+
}, "confirmed");
|
|
97
|
+
return { confirmed: !confirmation.value.err, signature };
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=jito_tips_tx_executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jito_tips_tx_executor.js","sourceRoot":"","sources":["../../src/transactions/jito_tips_tx_executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TX Landing Layer — Public API
|
|
3
|
+
*
|
|
4
|
+
* Usage:
|
|
5
|
+
* import { landTransaction, getOrchestrator } from "./transactions/landing";
|
|
6
|
+
*
|
|
7
|
+
* // Quick: submit with default concurrent strategy
|
|
8
|
+
* const results = await landTransaction(ixs, signer, blockhash, { dex: "raydium-amm-v4", operation: "buy" });
|
|
9
|
+
*
|
|
10
|
+
* // Advanced: configure orchestrator
|
|
11
|
+
* const orchestrator = getOrchestrator({ strategy: "race", defaultTipSol: 0.002 });
|
|
12
|
+
* const results = await orchestrator.submit(ixs, signer, blockhash, opts);
|
|
13
|
+
*/
|
|
14
|
+
export { ILandingProvider, LandingResult, SubmitOptions, OrchestratorConfig, SubmissionStrategy, TipAccount, extractBlockhash, pickRandom, } from "./types";
|
|
15
|
+
export { LandingOrchestrator, getOrchestrator, landTransaction, } from "./orchestrator";
|
|
16
|
+
export { NonceManager } from "./nonce-manager";
|
|
17
|
+
export { TIP_ACCOUNTS, isTipAccount, getTipAccountProvider, getTipAccountsForProvider, } from "./tip-accounts";
|
|
18
|
+
export { createProvider as createZeroSlotProvider } from "./providers/zero-slot";
|
|
19
|
+
export { createProvider as createNozomiProvider } from "./providers/nozomi";
|
|
20
|
+
export { createProvider as createHeliusSenderProvider } from "./providers/helius-sender";
|
|
21
|
+
export { createProvider as createBlockrazorProvider } from "./providers/blockrazor";
|
|
22
|
+
export { createProvider as createNode1Provider } from "./providers/node1";
|
|
23
|
+
export { createProvider as createBloxrouteProvider } from "./providers/bloxroute";
|
|
24
|
+
export { createProvider as createAstralaneProvider } from "./providers/astralane";
|
|
25
|
+
export { createProvider as createStelliumProvider } from "./providers/stellium";
|
|
26
|
+
export { createProvider as createFlashblockProvider } from "./providers/flashblock";
|
|
27
|
+
export { createProvider as createJitoProvider } from "./providers/jito";
|
|
28
|
+
export { createProvider as createNextblockProvider } from "./providers/nextblock";
|
|
29
|
+
export { createProvider as createSoyasProvider } from "./providers/soyas";
|
|
30
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transactions/landing/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,UAAU,EACV,gBAAgB,EAChB,UAAU,GACX,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,cAAc,IAAI,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,cAAc,IAAI,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,cAAc,IAAI,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACzF,OAAO,EAAE,cAAc,IAAI,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAE,cAAc,IAAI,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,cAAc,IAAI,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,cAAc,IAAI,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,cAAc,IAAI,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,cAAc,IAAI,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,cAAc,IAAI,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,cAAc,IAAI,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* TX Landing Layer — Public API
|
|
4
|
+
*
|
|
5
|
+
* Usage:
|
|
6
|
+
* import { landTransaction, getOrchestrator } from "./transactions/landing";
|
|
7
|
+
*
|
|
8
|
+
* // Quick: submit with default concurrent strategy
|
|
9
|
+
* const results = await landTransaction(ixs, signer, blockhash, { dex: "raydium-amm-v4", operation: "buy" });
|
|
10
|
+
*
|
|
11
|
+
* // Advanced: configure orchestrator
|
|
12
|
+
* const orchestrator = getOrchestrator({ strategy: "race", defaultTipSol: 0.002 });
|
|
13
|
+
* const results = await orchestrator.submit(ixs, signer, blockhash, opts);
|
|
14
|
+
*/
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.createSoyasProvider = exports.createNextblockProvider = exports.createJitoProvider = exports.createFlashblockProvider = exports.createStelliumProvider = exports.createAstralaneProvider = exports.createBloxrouteProvider = exports.createNode1Provider = exports.createBlockrazorProvider = exports.createHeliusSenderProvider = exports.createNozomiProvider = exports.createZeroSlotProvider = exports.getTipAccountsForProvider = exports.getTipAccountProvider = exports.isTipAccount = exports.TIP_ACCOUNTS = exports.NonceManager = exports.landTransaction = exports.getOrchestrator = exports.LandingOrchestrator = exports.pickRandom = exports.extractBlockhash = void 0;
|
|
17
|
+
// Types
|
|
18
|
+
var types_1 = require("./types");
|
|
19
|
+
Object.defineProperty(exports, "extractBlockhash", { enumerable: true, get: function () { return types_1.extractBlockhash; } });
|
|
20
|
+
Object.defineProperty(exports, "pickRandom", { enumerable: true, get: function () { return types_1.pickRandom; } });
|
|
21
|
+
// Orchestrator
|
|
22
|
+
var orchestrator_1 = require("./orchestrator");
|
|
23
|
+
Object.defineProperty(exports, "LandingOrchestrator", { enumerable: true, get: function () { return orchestrator_1.LandingOrchestrator; } });
|
|
24
|
+
Object.defineProperty(exports, "getOrchestrator", { enumerable: true, get: function () { return orchestrator_1.getOrchestrator; } });
|
|
25
|
+
Object.defineProperty(exports, "landTransaction", { enumerable: true, get: function () { return orchestrator_1.landTransaction; } });
|
|
26
|
+
// Nonce manager for durable nonce accounts (concurrent strategy safety)
|
|
27
|
+
var nonce_manager_1 = require("./nonce-manager");
|
|
28
|
+
Object.defineProperty(exports, "NonceManager", { enumerable: true, get: function () { return nonce_manager_1.NonceManager; } });
|
|
29
|
+
// Tip account registry
|
|
30
|
+
var tip_accounts_1 = require("./tip-accounts");
|
|
31
|
+
Object.defineProperty(exports, "TIP_ACCOUNTS", { enumerable: true, get: function () { return tip_accounts_1.TIP_ACCOUNTS; } });
|
|
32
|
+
Object.defineProperty(exports, "isTipAccount", { enumerable: true, get: function () { return tip_accounts_1.isTipAccount; } });
|
|
33
|
+
Object.defineProperty(exports, "getTipAccountProvider", { enumerable: true, get: function () { return tip_accounts_1.getTipAccountProvider; } });
|
|
34
|
+
Object.defineProperty(exports, "getTipAccountsForProvider", { enumerable: true, get: function () { return tip_accounts_1.getTipAccountsForProvider; } });
|
|
35
|
+
// Individual provider factories (for advanced usage)
|
|
36
|
+
var zero_slot_1 = require("./providers/zero-slot");
|
|
37
|
+
Object.defineProperty(exports, "createZeroSlotProvider", { enumerable: true, get: function () { return zero_slot_1.createProvider; } });
|
|
38
|
+
var nozomi_1 = require("./providers/nozomi");
|
|
39
|
+
Object.defineProperty(exports, "createNozomiProvider", { enumerable: true, get: function () { return nozomi_1.createProvider; } });
|
|
40
|
+
var helius_sender_1 = require("./providers/helius-sender");
|
|
41
|
+
Object.defineProperty(exports, "createHeliusSenderProvider", { enumerable: true, get: function () { return helius_sender_1.createProvider; } });
|
|
42
|
+
var blockrazor_1 = require("./providers/blockrazor");
|
|
43
|
+
Object.defineProperty(exports, "createBlockrazorProvider", { enumerable: true, get: function () { return blockrazor_1.createProvider; } });
|
|
44
|
+
var node1_1 = require("./providers/node1");
|
|
45
|
+
Object.defineProperty(exports, "createNode1Provider", { enumerable: true, get: function () { return node1_1.createProvider; } });
|
|
46
|
+
var bloxroute_1 = require("./providers/bloxroute");
|
|
47
|
+
Object.defineProperty(exports, "createBloxrouteProvider", { enumerable: true, get: function () { return bloxroute_1.createProvider; } });
|
|
48
|
+
var astralane_1 = require("./providers/astralane");
|
|
49
|
+
Object.defineProperty(exports, "createAstralaneProvider", { enumerable: true, get: function () { return astralane_1.createProvider; } });
|
|
50
|
+
var stellium_1 = require("./providers/stellium");
|
|
51
|
+
Object.defineProperty(exports, "createStelliumProvider", { enumerable: true, get: function () { return stellium_1.createProvider; } });
|
|
52
|
+
var flashblock_1 = require("./providers/flashblock");
|
|
53
|
+
Object.defineProperty(exports, "createFlashblockProvider", { enumerable: true, get: function () { return flashblock_1.createProvider; } });
|
|
54
|
+
var jito_1 = require("./providers/jito");
|
|
55
|
+
Object.defineProperty(exports, "createJitoProvider", { enumerable: true, get: function () { return jito_1.createProvider; } });
|
|
56
|
+
var nextblock_1 = require("./providers/nextblock");
|
|
57
|
+
Object.defineProperty(exports, "createNextblockProvider", { enumerable: true, get: function () { return nextblock_1.createProvider; } });
|
|
58
|
+
var soyas_1 = require("./providers/soyas");
|
|
59
|
+
Object.defineProperty(exports, "createSoyasProvider", { enumerable: true, get: function () { return soyas_1.createProvider; } });
|
|
60
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transactions/landing/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAEH,QAAQ;AACR,iCASiB;AAFf,yGAAA,gBAAgB,OAAA;AAChB,mGAAA,UAAU,OAAA;AAGZ,eAAe;AACf,+CAIwB;AAHtB,mHAAA,mBAAmB,OAAA;AACnB,+GAAA,eAAe,OAAA;AACf,+GAAA,eAAe,OAAA;AAGjB,wEAAwE;AACxE,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AAErB,uBAAuB;AACvB,+CAKwB;AAJtB,4GAAA,YAAY,OAAA;AACZ,4GAAA,YAAY,OAAA;AACZ,qHAAA,qBAAqB,OAAA;AACrB,yHAAA,yBAAyB,OAAA;AAG3B,qDAAqD;AACrD,mDAAiF;AAAxE,mHAAA,cAAc,OAA0B;AACjD,6CAA4E;AAAnE,8GAAA,cAAc,OAAwB;AAC/C,2DAAyF;AAAhF,2HAAA,cAAc,OAA8B;AACrD,qDAAoF;AAA3E,sHAAA,cAAc,OAA4B;AACnD,2CAA0E;AAAjE,4GAAA,cAAc,OAAuB;AAC9C,mDAAkF;AAAzE,oHAAA,cAAc,OAA2B;AAClD,mDAAkF;AAAzE,oHAAA,cAAc,OAA2B;AAClD,iDAAgF;AAAvE,kHAAA,cAAc,OAA0B;AACjD,qDAAoF;AAA3E,sHAAA,cAAc,OAA4B;AACnD,yCAAwE;AAA/D,0GAAA,cAAc,OAAsB;AAC7C,mDAAkF;AAAzE,oHAAA,cAAc,OAA2B;AAClD,2CAA0E;AAAjE,4GAAA,cAAc,OAAuB"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Durable Nonce Account Manager
|
|
3
|
+
*
|
|
4
|
+
* Manages durable nonce accounts for concurrent TX landing safety.
|
|
5
|
+
*
|
|
6
|
+
* Problem: The "concurrent" landing strategy fires the SAME transaction to
|
|
7
|
+
* 9+ providers in parallel. Without a durable nonce, if multiple providers
|
|
8
|
+
* land it, the user gets DUPLICATE BUYS — spending 2-9x more SOL than intended.
|
|
9
|
+
*
|
|
10
|
+
* Solution: Durable nonce transactions use a nonce account's stored blockhash.
|
|
11
|
+
* Once consumed by the first successful landing, all other copies become
|
|
12
|
+
* invalid on-chain. This guarantees exactly-once execution.
|
|
13
|
+
*
|
|
14
|
+
* How it works:
|
|
15
|
+
* 1. NonceManager.create() creates a nonce account on-chain (~0.0015 SOL)
|
|
16
|
+
* 2. Before concurrent submission, NonceManager.get() fetches the current nonce
|
|
17
|
+
* 3. NonceManager.buildAdvanceIx() is prepended as the FIRST instruction
|
|
18
|
+
* 4. The nonce value replaces the blockhash in the transaction message
|
|
19
|
+
* 5. Providers treat the nonce as a regular blockhash — no provider changes needed
|
|
20
|
+
*
|
|
21
|
+
* Config is stored at ~/.outsmart/nonce.json
|
|
22
|
+
*/
|
|
23
|
+
import { Connection, Keypair, PublicKey, TransactionInstruction } from "@solana/web3.js";
|
|
24
|
+
export declare class NonceManager {
|
|
25
|
+
private connection;
|
|
26
|
+
private authority;
|
|
27
|
+
private nonceAddress;
|
|
28
|
+
private configLoaded;
|
|
29
|
+
/**
|
|
30
|
+
* @param connection - Solana RPC connection
|
|
31
|
+
* @param authority - Wallet keypair that controls the nonce account
|
|
32
|
+
*/
|
|
33
|
+
constructor(connection: Connection, authority: Keypair);
|
|
34
|
+
/** Directory for outsmart config files */
|
|
35
|
+
static get configDir(): string;
|
|
36
|
+
/** Path to nonce config JSON */
|
|
37
|
+
static get configPath(): string;
|
|
38
|
+
/** Path to nonce keypair JSON */
|
|
39
|
+
static get keypairPath(): string;
|
|
40
|
+
private readConfig;
|
|
41
|
+
private writeConfig;
|
|
42
|
+
private deleteConfig;
|
|
43
|
+
/**
|
|
44
|
+
* Check if a valid nonce account exists (config + on-chain).
|
|
45
|
+
*/
|
|
46
|
+
exists(): Promise<boolean>;
|
|
47
|
+
/**
|
|
48
|
+
* Create a new nonce account on-chain.
|
|
49
|
+
*
|
|
50
|
+
* Cost: ~0.0015 SOL (rent-exempt minimum for nonce account).
|
|
51
|
+
*
|
|
52
|
+
* @returns The nonce account address and initial nonce value
|
|
53
|
+
*/
|
|
54
|
+
create(): Promise<{
|
|
55
|
+
nonceAccount: PublicKey;
|
|
56
|
+
nonce: string;
|
|
57
|
+
}>;
|
|
58
|
+
/**
|
|
59
|
+
* Load the nonce account from config and fetch its current on-chain state.
|
|
60
|
+
*
|
|
61
|
+
* @returns Nonce address, current nonce value, and authority
|
|
62
|
+
* @throws Error if no nonce config exists or account is invalid
|
|
63
|
+
*/
|
|
64
|
+
load(): Promise<{
|
|
65
|
+
address: PublicKey;
|
|
66
|
+
nonce: string;
|
|
67
|
+
authority: PublicKey;
|
|
68
|
+
}>;
|
|
69
|
+
/**
|
|
70
|
+
* Get the current nonce value (fetches fresh from chain every time).
|
|
71
|
+
*
|
|
72
|
+
* IMPORTANT: Nonce value changes after each use. Always call get() fresh
|
|
73
|
+
* before building a transaction.
|
|
74
|
+
*/
|
|
75
|
+
get(): Promise<{
|
|
76
|
+
nonce: string;
|
|
77
|
+
address: PublicKey;
|
|
78
|
+
}>;
|
|
79
|
+
/**
|
|
80
|
+
* Build a nonceAdvance instruction.
|
|
81
|
+
*
|
|
82
|
+
* This MUST be the FIRST instruction in any transaction using a durable nonce.
|
|
83
|
+
* The Solana runtime recognizes the nonceAdvance instruction and validates
|
|
84
|
+
* the nonce value as the blockhash.
|
|
85
|
+
*
|
|
86
|
+
* @returns TransactionInstruction for SystemProgram.nonceAdvance
|
|
87
|
+
*/
|
|
88
|
+
buildAdvanceIx(): TransactionInstruction;
|
|
89
|
+
/**
|
|
90
|
+
* Ensure a nonce account exists, prompting the user to create one if needed.
|
|
91
|
+
*
|
|
92
|
+
* In non-interactive mode (piped stdin), defaults to false (skip nonce creation).
|
|
93
|
+
*
|
|
94
|
+
* @returns true if a nonce account exists (or was just created), false if user declined
|
|
95
|
+
*/
|
|
96
|
+
ensureExists(): Promise<boolean>;
|
|
97
|
+
/**
|
|
98
|
+
* Close the nonce account and reclaim the rent (~0.0015 SOL).
|
|
99
|
+
*
|
|
100
|
+
* Withdraws all lamports back to the authority wallet and deletes
|
|
101
|
+
* the local config files.
|
|
102
|
+
*/
|
|
103
|
+
close(): Promise<{
|
|
104
|
+
txSignature: string;
|
|
105
|
+
confirmed: boolean;
|
|
106
|
+
}>;
|
|
107
|
+
/**
|
|
108
|
+
* Get the nonce account address, if loaded.
|
|
109
|
+
*/
|
|
110
|
+
getAddress(): PublicKey | null;
|
|
111
|
+
/**
|
|
112
|
+
* Prompt the user for input via readline.
|
|
113
|
+
*/
|
|
114
|
+
private promptUser;
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=nonce-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nonce-manager.d.ts","sourceRoot":"","sources":["../../../src/transactions/landing/nonce-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EACL,UAAU,EACV,OAAO,EACP,SAAS,EAIT,sBAAsB,EAIvB,MAAM,iBAAiB,CAAC;AAyBzB,qBAAa,YAAY;IACvB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,YAAY,CAAS;IAE7B;;;OAGG;gBACS,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO;IAStD,0CAA0C;IAC1C,MAAM,KAAK,SAAS,IAAI,MAAM,CAG7B;IAED,gCAAgC;IAChC,MAAM,KAAK,UAAU,IAAI,MAAM,CAE9B;IAED,iCAAiC;IACjC,MAAM,KAAK,WAAW,IAAI,MAAM,CAE/B;IAMD,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,YAAY;IAiBpB;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAmBhC;;;;;;OAMG;IACG,MAAM,IAAI,OAAO,CAAC;QAAE,YAAY,EAAE,SAAS,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IA0FnE;;;;;OAKG;IACG,IAAI,IAAI,OAAO,CAAC;QACpB,OAAO,EAAE,SAAS,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,SAAS,CAAC;KACtB,CAAC;IA8BF;;;;;OAKG;IACG,GAAG,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,SAAS,CAAA;KAAE,CAAC;IAqB3D;;;;;;;;OAQG;IACH,cAAc,IAAI,sBAAsB;IAaxC;;;;;;OAMG;IACG,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAuCtC;;;;;OAKG;IACG,KAAK,IAAI,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IAoEnE;;OAEG;IACH,UAAU,IAAI,SAAS,GAAG,IAAI;IAI9B;;OAEG;IACH,OAAO,CAAC,UAAU;CAanB"}
|