import { connectorsForWallets } from "@rainbow-me/rainbowkit"
import {
  coinbaseWallet,
  ledgerWallet,
  metaMaskWallet,
  rainbowWallet,
  safeWallet,
  walletConnectWallet,
} from "@rainbow-me/rainbowkit/wallets"
import { rainbowkitBurnerWallet } from "burner-connector"
import * as chains from "viem/chains"
import xchangeConfig from "~~/xchange.config"

const { onlyLocalBurnerWallet, targetNetworks } = xchangeConfig

const wallets = [
  metaMaskWallet,
  walletConnectWallet,
  ledgerWallet,
  coinbaseWallet,
  rainbowWallet,
  safeWallet,
  ...(!targetNetworks.some(
    network => network.id !== (chains.hardhat as chains.Chain).id
  ) || !onlyLocalBurnerWallet
    ? [rainbowkitBurnerWallet]
    : []),
]

/**
 * wagmi connectors for the wagmi context
 */
export const wagmiConnectors = connectorsForWallets(
  [
    {
      groupName: "Supported Wallets",
      wallets,
    },
  ],

  {
    appName: "🧪 Create Xchange App",
    projectId: xchangeConfig.walletConnectProjectId,
  }
)
