Instabuy
Instabuy NodeJSjava
2 months ago
3.5 kB
5
Indexable
Never
const fs = require("fs"); const { Web3 } = require("web3"); const prompt = require("prompt-sync")({ sigint: true }); const web3 = new Web3("https://data-seed-prebsc-1-s2.bnbchain.org:8545 "); let settings; try { settings = JSON.parse(fs.readFileSync("./settings.json").toString()); console.log("JSON verified."); } catch (err) { console.error(err); console.log("JSON can't be verified."); process.exit(1); // Programı hata durumunda sonlandır } function sleep(ms) { return new Promise((resolve) => setTimeout(resolve, ms)); } let contract = new web3.eth.Contract( settings["abi"], settings["presale_address"] ); const buy = async (daccount) => { await contract.methods .contribute( web3.utils.toWei(settings["fix_buy"], "ether"), settings["token_address"] ) .send({ from: daccount, gasPrice: web3.utils.toWei(settings["gwei_param"], "gwei"), // gasPrice: 5000000 }); }; const init = async () => { for (let i = 0; i < settings["private_keys"].length; i++) { web3.eth.accounts.wallet.clear(); console.log(settings["private_keys"][i]); let privateKey = settings["private_keys"][i]; let account = web3.eth.accounts.wallet.add(privateKey); web3.eth.defaultAccount = account[0]["address"]; console.log("Account added to wallet:", web3.eth.defaultAccount + "."); console.log("Executing buy."); // console.log(web3.utils.toWei(settings["gwei_param"], "gwei")) try { await buy(web3.eth.defaultAccount); } catch (err) { console.error("Error catched: ", err); } } }; const test = async () => { web3.eth.accounts.wallet.add( "0x3a7e7864b54d01b47408b114c46e28198943f2e88044a3f482e964f44c4cbf0c" ); web3.eth.defaultAccount = "0x11D3c1AFC7477a1A0676618511eBBf73D59F5FCD"; let encoded = contract.methods .contribute(web3.utils.toWei("0.1", "ether"), settings["token_address"]) .encodeABI(); let block = await web3.eth.getBlock("latest"); const gasLimit = await contract.methods .contribute(web3.utils.toWei("0.1", "ether"), settings["token_address"]) .estimateGas({ from: "0x11D3c1AFC7477a1A0676618511eBBf73D59F5FCD" }); let gasPrice = await web3.eth.getGasPrice(); let nonce = await web3.eth.getTransactionCount( "0x11D3c1AFC7477a1A0676618511eBBf73D59F5FCD", "latest" ); let tx = { nonce: nonce, gas: gasLimit, gasPrice: gasPrice, from: "0x11D3c1AFC7477a1A0676618511eBBf73D59F5FCD", to: "0x7c904f88f15595a11a98b21d4708193c48fb265a", value: web3.utils.toWei("0.1", "ether"), data: encoded, }; web3.eth.accounts .signTransaction( tx, "0x0bcb901de31ce5d7f0afd90c121721f0899c59756caa2d0659d8b851234c9af7" ) .then((signed) => { web3.eth .sendSignedTransaction(signed.rawTransaction) .on("receipt", console.log); }); // web3.eth.accounts.wallet.add( // "0x3a7e7864b54d01b47408b114c46e28198943f2e88044a3f482e964f44c4cbf0c" // ); // web3.eth.defaultAccount = "0xfc66876365b7b04f091c6d99f76368293E3d9a9c"; // await contract.methods // .contribute( // web3.utils.toWei(settings["fix_buy"], "ether"), // settings["token_address"] // ) // .send({ // from: "0xfc66876365b7b04f091c6d99f76368293E3d9a9c", // gas: web3.utils.toWei(settings["gwei_param"], "gwei"), // }); }; test();