Skip to content

Instantly share code, notes, and snippets.

@SatoshiMota
Last active February 14, 2025 11:52
Show Gist options
  • Save SatoshiMota/bbdbd0bc7c2b0419c6cdaec6e4243ee4 to your computer and use it in GitHub Desktop.
Save SatoshiMota/bbdbd0bc7c2b0419c6cdaec6e4243ee4 to your computer and use it in GitHub Desktop.
Eclipse Turbo Tap Transactions
// Запуск --- node eclipse_transaction.js
const crypto = require("crypto");
const {Connection,Keypair,Transaction,PublicKey,TransactionInstruction} = require("@solana/web3.js");
// ИНСТРУКЦИЯ / НАСТРОЙКА
// 1. На сайте тапалки пополните ETH для кликов
// 2. В local storage сайта (консоль → Application) есть wallet вставить ниже
const payerPrivateKey = Uint8Array.from([54, 98, 322, 125, 141, 69, 167, 149, 123, 175, 142, 53, 12, 72, 45, 67, 23, 138, 141, 69, 167, 149, 123, 175, 142, 53, 12, 72, 45, 67, 23, 138, 141, 69, 167, 149, 123, 234, 142, 53, 12, 72, 45, 67, 23, 138]);
// 3. Найдите транзакцию пополнения ETH для кликов и откройте адрес на которые ушли ETH
// 4. Раз 10 кликните тапалку и откройте любую из транзакций (на адресе который достали в 3 шаге) например https://eclipsescan.xyz/tx/67T8Xp24rg8xX81JRTcc2mBVppXqiU6Xi4cfLscmdr7uq51UZ9rHLPsiSjCKQeorwgmKoyTywQrP8E5h8dcUPDSo
// 5. Откройте #2 - Unknown: Unknown
// 6. Достаньте #1 - Account вставить ниже
const publicKey1 = new PublicKey("FsZ2Dg1zNyGV8V5fSBKo3gRVoCjBSNUZXDZDdjErxtYu");
// 7. Достаньте #2 - Account вставить ниже
const publicKey2 = new PublicKey("6XwtdX5nWNzUpppLC4tmxkxuCwQZf1SNwq3xENU58ufT");
// 8. Количество потоков (5 потоков = 10к транз за 10 мин) сильно больше неставьте (при 20 потоках бан словил, вроде автоматом далось)
const script_threads = 5;
//Дальше код
function randomRpc() {
const urls = [
{ url: "https://eclipse.lgns.net", weight: 20 },
{ url: "https://mainnetbeta-rpc.eclipse.xyz", weight: 3 },
{ url: "https://eclipse.helius-rpc.com", weight: 25 },
{ url: "https://mainnetbeta-tap-rpc.prod.eclipse.xyz", weight: 20 },
];
const totalWeight = urls.reduce((sum, url) => sum + url.weight, 0);
const random = Math.random() * totalWeight;
let currentWeight = 0;
for (let i = 0; i < urls.length; i++) {
currentWeight += urls[i].weight;
if (random < currentWeight) {
return urls[i].url;
}
}
}
// Кошелек
const payerWallet = Keypair.fromSecretKey(payerPrivateKey);
// Данные для программы ComputeBudget
const computeBudgetData = Buffer.alloc(5)
computeBudgetData.writeUInt8(2, 0)
computeBudgetData.writeUInt32LE(60000, 1)
// Инструкция для ComputeBudget
const computeBudgetInstruction = new TransactionInstruction({
keys: [],
programId: new PublicKey("ComputeBudget111111111111111111111111111111"),
data: computeBudgetData,
});
async function main() {
while (true) {
try {
// Инструкция для вызова основной программы
const mainInstruction = new TransactionInstruction({
keys: [
{ pubkey: publicKey1, isSigner: false, isWritable: false },
{ pubkey: publicKey2, isSigner: false, isWritable: true },
{ pubkey: new PublicKey("9FXCusMeR26k1LkDixLF2dw1AnBX8SsB2cspSSi3BcKE"), isSigner: false, isWritable: false },
{ pubkey: payerWallet.publicKey, isSigner: true, isWritable: true },
{ pubkey: new PublicKey("Sysvar1nstructions1111111111111111111111111"), isSigner: false, isWritable: false }
],
programId: new PublicKey("turboe9kMc3mSR8BosPkVzoHUfn5RVNzZhkrT2hdGxN"),
data: Buffer.concat([Buffer.from([118, 188, 23, 114, 219, 251, 66, 82]), crypto.randomBytes(4)])
});
// Установите RPC-сервер сети
const RPC_URL = randomRpc();
const connection = new Connection(RPC_URL, "confirmed");
// Создаем транзакцию
const transaction = new Transaction()
.add(computeBudgetInstruction) // Добавляем инструкцию для ComputeBudget
.add(mainInstruction); // Добавляем основную инструкцию
// Указываем fee payer
transaction.feePayer = payerWallet.publicKey;
// Получаем blockhash
transaction.recentBlockhash = (await connection.getLatestBlockhash()).blockhash;
// Подписываем транзакцию
transaction.sign(payerWallet);
// Отправляем транзакцию
const txId = await connection.sendRawTransaction(transaction.serialize());
console.log("Транзакция отправлена. ID:", txId);
} catch (error) {
console.error("Ошибка при выполнении транзакции:", error);
}
}
}
// Мультипоток
async function run() {
await Promise.all(Array.from({ length: script_threads }, () => main()));
};
run();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment