Instabuy

Instabuy NodeJS
mail@pastecode.io avatarunknown
java
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();