import { APP_NETWORK } from "./src/common/constants";
import { BscGateway } from "./src/gateways/bsc-gateway";
import { ERC20ContractModel } from "./src/models/erc20-contract-model";

const abi = require("./src/common/abis/erc20.json");

const rpcNode1 =
  "https://late-fragrant-reel.bsc-testnet.quiknode.pro/5bea1fc4ab794dcc995c14d828b19182ab8bb2bc/";
const rpcNode2 =
  "https://weathered-proportionate-night.bsc-testnet.quiknode.pro/9edd70f516e035cd7a9dd30696210a6201a0edd1/";

const bscGateway1 = new BscGateway({
  httpsUrl: rpcNode1,
  privateKey:
    "4eb45be5985f6e11903860d08b1aa60b47d362913a58f85d586a857f99ec4f7d",
  chainId: 97,
  network: APP_NETWORK.BINANCE_TESTNET,
});

const bscGateway2 = new BscGateway({
  httpsUrl: rpcNode2,
  privateKey:
    "4157b5a8d748f8894f4519125d1775f06b782da7312dc8e6e0c4134b5da86f2f",
  chainId: 97,
  network: APP_NETWORK.BINANCE_TESTNET,
});

const bscGateway3 = new BscGateway({
  httpsUrl: rpcNode2,
  privateKey:
    "4eb45be5985f6e11903860d08b1aa60b47d362913a58f85d586a857f99ec4f7d",
  chainId: 97,
  network: APP_NETWORK.BINANCE_TESTNET,
});

const bscGateway4 = new BscGateway({
  httpsUrl: rpcNode1,
  privateKey:
    "4157b5a8d748f8894f4519125d1775f06b782da7312dc8e6e0c4134b5da86f2f",
  chainId: 97,
  network: APP_NETWORK.BINANCE_TESTNET,
});

async function run() {
  const signer1 = await bscGateway1.signer;
  const signer2 = await bscGateway2.signer;
  const signer3 = await bscGateway3.signer;
  const signer4 = await bscGateway4.signer;

  const usdtContract = new ERC20ContractModel(
    "0x70Ac99C98d0123111a4A4A32d44A9a03667Caed1",
    abi,
    signer1
  );

  usdtContract.registerBackupSigner([signer2, signer3, signer4]);

  const transferTasks: any[] = [];
  const countTasks = 1000;

  for (let i = 0; i < countTasks; i++) {
    transferTasks.push([
      "0x0030d87235F940F6B785761Bb289A5e2C86245a7",
      "10000000000000000000",
    ]);
  }
}
