diff --git a/web/account/siwe.react.js b/web/account/siwe.react.js --- a/web/account/siwe.react.js +++ b/web/account/siwe.react.js @@ -5,7 +5,6 @@ import { ConnectButton, darkTheme, - getDefaultWallets, RainbowKitProvider, useConnectModal, } from '@rainbow-me/rainbowkit'; @@ -13,7 +12,7 @@ import _merge from 'lodash/fp/merge'; import * as React from 'react'; import { FaEthereum } from 'react-icons/fa'; -import { useAccount, useSigner, WagmiConfig } from 'wagmi'; +import { useAccount, useSigner } from 'wagmi'; import { getSIWENonce, @@ -32,18 +31,14 @@ siweMessageSigningExplanationStatements, siweStatementWithoutPublicKey, } from 'lib/utils/siwe-utils.js'; -import { configureWagmiChains, createWagmiClient } from 'lib/utils/wagmi-utils'; import Button from '../components/button.react'; import LoadingIndicator from '../loading-indicator.react'; import { useSelector } from '../redux/redux-utils'; import { webLogInExtraInfoSelector } from '../selectors/account-selectors.js'; +import { wagmiChains } from '../utils/wagmi-utils'; import css from './siwe.css'; -const { chains, provider } = configureWagmiChains(process.env.COMM_ALCHEMY_KEY); -const { connectors } = getDefaultWallets({ appName: 'comm', chains }); -const wagmiClient = createWagmiClient({ connectors, provider }); - const getSIWENonceLoadingStatusSelector = createLoadingStatusSelector( getSIWENonceActionTypes, ); @@ -191,11 +186,9 @@ }); }, []); return ( - - - - - + + + ); } diff --git a/web/app.react.js b/web/app.react.js --- a/web/app.react.js +++ b/web/app.react.js @@ -9,6 +9,7 @@ import { DndProvider } from 'react-dnd'; import { HTML5Backend } from 'react-dnd-html5-backend'; import { useDispatch } from 'react-redux'; +import { WagmiConfig } from 'wagmi'; import { fetchEntriesActionTypes, @@ -55,6 +56,7 @@ import getTitle from './title/getTitle'; import { type NavInfo } from './types/nav-types'; import { canonicalURLFromReduxState, navInfoFromURL } from './url-utils'; +import { WagmiENSCacheProvider, wagmiClient } from './utils/wagmi-utils'; // We want Webpack's css-loader and style-loader to handle the Fontawesome CSS, // so we disable the autoAddCss logic and import the CSS file. Otherwise every @@ -153,12 +155,16 @@ - - - - - {content} - {this.props.modals} + + + + + + + {content} + {this.props.modals} + + diff --git a/web/utils/wagmi-utils.js b/web/utils/wagmi-utils.js new file mode 100644 --- /dev/null +++ b/web/utils/wagmi-utils.js @@ -0,0 +1,26 @@ +// @flow + +import { getDefaultWallets } from '@rainbow-me/rainbowkit'; +import * as React from 'react'; +import { useProvider } from 'wagmi'; + +import { ENSCacheProvider } from 'lib/components/ens-cache-provider.react'; +import { configureWagmiChains, createWagmiClient } from 'lib/utils/wagmi-utils'; + +const { chains, provider } = configureWagmiChains(process.env.COMM_ALCHEMY_KEY); +const { connectors } = getDefaultWallets({ appName: 'comm', chains }); +const wagmiClient: mixed = createWagmiClient({ connectors, provider }); +const wagmiChains: mixed = chains; + +type Props = { + +children: React.Node, +}; +function WagmiENSCacheProvider(props: Props): React.Node { + const { children } = props; + const wagmiProvider = useProvider(); + return ( + {children} + ); +} + +export { wagmiClient, wagmiChains, WagmiENSCacheProvider };