const TronWeb = require('tronweb');
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
function askQuestion(query) {
return new Promise(resolve => {
rl.question(query, resolve);
});
}
async function main() {
const privateKey = await askQuestion('Enter your private key: ');
const targetSuccessCountInput = await askQuestion('Enter the number of successful transactions you want to achieve: ');
const targetSuccessCount = parseInt(targetSuccessCountInput, 10);
if (isNaN(targetSuccessCount)) {
console.error('Invalid number of transactions. Exiting...');
process.exit(1);
}
const HttpProvider = TronWeb.providers.HttpProvider;
const fullNode = new HttpProvider("https://api.trongrid.io");
const solidityNode = new HttpProvider("https://api.trongrid.io");
const eventServer = new HttpProvider("https://api.trongrid.io");
const tronWeb = new TronWeb(fullNode, solidityNode, eventServer, privateKey);
const blackHole = "T9yD14Nj9j7xAB4dbGeiX9h8unkKHxuWwb";
const memo = 'data:,{"p":"trc-20","op":"mint","tick":"trxi","amt":"1000"}';
async function mint() {
const unSignedTxn = await tronWeb.transactionBuilder.sendTrx(blackHole, 1); //0.000001 TRX is the minimum transfer amount.
const unSignedTxnWithNote = await tronWeb.transactionBuilder.addUpdateData(unSignedTxn, memo, 'utf8');
const signedTxn = await tronWeb.trx.sign(unSignedTxnWithNote);
// console.log("signed =>", signedTxn);
const ret = await tronWeb.trx.sendRawTransaction(signedTxn);
// console.log("broadcast =>", ret);
return ret;
}
let successCount = 0;
while (true) {
try {
const ret = await mint();
if (ret && ret.transaction && ret.transaction.txID) {
successCount++;
console.log(Transaction Success ${successCount}: ${ret.transaction.txID}
);
console.log(Tronscan URL: https://tronscan.org/#/transaction/${ret.transaction.txID}
);
if (successCount >= targetSuccessCount) {
console.log(Reached target of ${targetSuccessCount} successful transactions.
);
break;
}
} else {
}
await require('timers/promises').setTimeout(300);
} catch (error) {
}
}
}
main().then(() => {
rl.close();
});