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

(async (): Promise<void> => {
  // 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
  );

  await circlesSdk.signupPerson();

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

  // const web3 = new Web3();
  // web3.setProvider(<any>provider);

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

  // await circlesSdk.signupPerson();

  // provider.engine.stop();
})();
