import Web3 from "web3";
import { PRIVATE_KEY_1, SAFE_ADDRESS_USER } from "../config";
import { CirclesSdkWeb3Factory } from "@ingocollatz/sdk-web3-adapter";
import HDWalletProvider from "@truffle/hdwallet-provider";
import { ethers } from "ethers";
import { CirclesSdk } from "@ingocollatz/sdk";
import { CirclesSdkEthersFactory } from "@ingocollatz/sdk-ethers-adapter";
import { SdkConfig } from "@ingocollatz/sdk";

(async (): Promise<void> => {
  // Web3
  const web3 = new Web3();

  const provider = new HDWalletProvider(
    {
      privateKeys: [PRIVATE_KEY_1.slice(2)],
      providerOrUrl: SdkConfig._rpcUrl,
    },
  );

  web3.setProvider(<any>provider);

  const signerAddress = provider.getAddress();

  const circlesSdk = await CirclesSdkWeb3Factory.withExistingSafe(web3, signerAddress, SAFE_ADDRESS_USER);

  circlesSdk.mintUbi();

  provider.engine.stop();

  // Ethers
  // const provider = new ethers.providers.JsonRpcProvider(SdkConfig._rpcUrl);
  // const signerAddress = new ethers.Wallet(PRIVATE_KEY_1, provider);

  // const circlesSdk = await CirclesSdkEthersFactory.withExistingSafe(
  //   ethers,
  //   signerAddress,
  //   SAFE_ADDRESS_USER
  // );

  // circlesSdk.mintUbi();
})();
