diff --git a/apps/governance/src/main.tsx b/apps/governance/src/main.tsx index ebc9606f5..7babb6a75 100644 --- a/apps/governance/src/main.tsx +++ b/apps/governance/src/main.tsx @@ -3,7 +3,6 @@ import '@rainbow-me/rainbowkit/styles.css'; import { StrictMode } from 'react'; import * as ReactDOM from 'react-dom/client'; -import { chains, wagmiConfig } from '@origin/oeth/shared'; import { darkTheme, RainbowKitProvider } from '@rainbow-me/rainbowkit'; import { createHashRouter, RouterProvider } from 'react-router-dom'; import { WagmiConfig } from 'wagmi'; @@ -13,6 +12,7 @@ import { App } from './pages/app'; import { Governance } from './pages/governance'; import { Spinner } from './pages/Spinner'; import { Staking } from './pages/staking'; +import { chains, wagmiConfig } from './utils/wagmi'; const root = ReactDOM.createRoot( document.getElementById('root') as HTMLElement, diff --git a/apps/governance/src/utils/wagmi.ts b/apps/governance/src/utils/wagmi.ts new file mode 100644 index 000000000..cdbf7a25f --- /dev/null +++ b/apps/governance/src/utils/wagmi.ts @@ -0,0 +1,77 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +import { connectorsForWallets } from '@rainbow-me/rainbowkit'; +import { + argentWallet, + braveWallet, + coinbaseWallet, + imTokenWallet, + injectedWallet, + ledgerWallet, + metaMaskWallet, + rainbowWallet, + safeWallet, + walletConnectWallet, +} from '@rainbow-me/rainbowkit/wallets'; +import { configureChains, createConfig } from 'wagmi'; +import { mainnet } from 'wagmi/chains'; +import { alchemyProvider } from 'wagmi/providers/alchemy'; +import { publicProvider } from 'wagmi/providers/public'; + +const providers = [ + alchemyProvider({ apiKey: import.meta.env.VITE_ALCHEMY_ID }), + publicProvider(), +]; + +export const { chains, publicClient, webSocketPublicClient } = configureChains( + [mainnet], + providers as any, +); + +const connectors = connectorsForWallets([ + { + groupName: 'Recommended', + wallets: [ + metaMaskWallet({ + chains, + shimDisconnect: true, + projectId: import.meta.env.VITE_WALLET_CONNECT_PROJECT_ID, + }), + ledgerWallet({ + chains, + projectId: import.meta.env.VITE_WALLET_CONNECT_PROJECT_ID, + }), + walletConnectWallet({ + chains, + projectId: import.meta.env.VITE_WALLET_CONNECT_PROJECT_ID, + }), + coinbaseWallet({ appName: 'origin', chains }), + ], + }, + { + groupName: 'Others', + wallets: [ + injectedWallet({ chains, shimDisconnect: true }), + safeWallet({ chains }), + rainbowWallet({ + chains, + projectId: import.meta.env.VITE_WALLET_CONNECT_PROJECT_ID, + }), + braveWallet({ chains, shimDisconnect: true }), + argentWallet({ + chains, + projectId: import.meta.env.VITE_WALLET_CONNECT_PROJECT_ID, + }), + imTokenWallet({ + chains, + projectId: import.meta.env.VITE_WALLET_CONNECT_PROJECT_ID, + }), + ], + }, +]); + +export const wagmiConfig = createConfig({ + autoConnect: true, + connectors, + publicClient, + webSocketPublicClient, +});