Skip to content

Commit fe8a0b9

Browse files
committed
chore(web): migrate-to-reown
1 parent f138274 commit fe8a0b9

File tree

5 files changed

+476
-482
lines changed

5 files changed

+476
-482
lines changed

web/package.json

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,11 @@
6868
"@cyntler/react-doc-viewer": "^1.16.3",
6969
"@kleros/kleros-app": "^2.0.2",
7070
"@kleros/ui-components-library": "^2.19.0",
71+
"@reown/appkit": "^1.6.6",
72+
"@reown/appkit-adapter-wagmi": "^1.6.6",
7173
"@sentry/react": "^7.93.0",
7274
"@sentry/tracing": "^7.93.0",
73-
"@tanstack/react-query": "^5.61.5",
74-
"@web3modal/wagmi": "^5.1.4",
75+
"@tanstack/react-query": "^5.66.0",
7576
"@yornaath/batshit": "^0.9.0",
7677
"alchemy-sdk": "^3.3.1",
7778
"chart.js": "^3.9.1",
@@ -98,7 +99,7 @@
9899
"react-use": "^17.4.3",
99100
"styled-components": "^5.3.11",
100101
"subgraph-status": "^1.2.3",
101-
"viem": "^2.21.51",
102-
"wagmi": "^2.13.2"
102+
"viem": "^2.22.22",
103+
"wagmi": "^2.14.10"
103104
}
104105
}

web/src/components/ConnectWallet/index.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import React, { useCallback } from "react";
22
import { useAccount, useSwitchChain } from "wagmi";
3-
import { useWeb3Modal, useWeb3ModalState } from "@web3modal/wagmi/react";
3+
import { useAppKit, useAppKitState } from "@reown/appkit/react";
44
import { Button } from "@kleros/ui-components-library";
55
import { SUPPORTED_CHAINS, DEFAULT_CHAIN } from "consts/chains";
66
import AccountDisplay from "./AccountDisplay";
@@ -30,8 +30,8 @@ export const SwitchChainButton: React.FC<{ className?: string }> = ({ className
3030
};
3131

3232
const ConnectButton: React.FC<{ className?: string }> = ({ className }) => {
33-
const { open } = useWeb3Modal();
34-
const { open: isOpen } = useWeb3ModalState();
33+
const { open } = useAppKit();
34+
const { open: isOpen } = useAppKitState();
3535
return (
3636
<Button
3737
{...{ className }}

web/src/consts/chains.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
import { extractChain } from "viem";
2-
import { Chain, arbitrum, mainnet, arbitrumSepolia, gnosis, gnosisChiado } from "viem/chains";
1+
import { type Chain, extractChain } from "viem";
2+
import { arbitrum, mainnet, arbitrumSepolia, gnosis, gnosisChiado, type AppKitNetwork } from "@reown/appkit/networks";
33

44
import { isProductionDeployment } from "./index";
55

66
export const DEFAULT_CHAIN = isProductionDeployment() ? arbitrum.id : arbitrumSepolia.id;
77

88
// Read/Write
9-
export const SUPPORTED_CHAINS: Record<number, Chain> = {
9+
export const SUPPORTED_CHAINS: Record<number, AppKitNetwork> = {
1010
[isProductionDeployment() ? arbitrum.id : arbitrumSepolia.id]: isProductionDeployment() ? arbitrum : arbitrumSepolia,
1111
};
1212

1313
// Read Only
14-
export const QUERY_CHAINS: Record<number, Chain> = {
14+
export const QUERY_CHAINS: Record<number, AppKitNetwork> = {
1515
[isProductionDeployment() ? gnosis.id : gnosisChiado.id]: isProductionDeployment() ? gnosis : gnosisChiado,
1616
[mainnet.id]: mainnet,
1717
};

web/src/context/Web3Provider.tsx

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
import React from "react";
22

3-
import { createWeb3Modal } from "@web3modal/wagmi/react";
4-
import { type Chain } from "viem";
5-
import { createConfig, fallback, http, WagmiProvider, webSocket } from "wagmi";
6-
import { mainnet, arbitrumSepolia, gnosisChiado } from "wagmi/chains";
7-
import { walletConnect } from "wagmi/connectors";
8-
3+
import { fallback, http, WagmiProvider, webSocket } from "wagmi";
4+
import { mainnet, arbitrumSepolia, gnosisChiado, type AppKitNetwork } from "@reown/appkit/networks";
5+
import { createAppKit } from "@reown/appkit/react";
6+
import { WagmiAdapter } from "@reown/appkit-adapter-wagmi";
97
import { lightTheme } from "styles/themes";
108

119
export const alchemyApiKey = import.meta.env.ALCHEMY_API_KEY ?? "";
@@ -17,11 +15,11 @@ const alchemyToViemChain = {
1715

1816
type AlchemyProtocol = "https" | "wss";
1917

20-
const alchemyURL = (protocol: AlchemyProtocol, chainId: number) =>
18+
const alchemyURL = (protocol: AlchemyProtocol, chainId: number | string) =>
2119
`${protocol}://${alchemyToViemChain[chainId]}.g.alchemy.com/v2/${alchemyApiKey}`;
2220

2321
const getTransports = () => {
24-
const alchemyTransport = (chain: Chain) =>
22+
const alchemyTransport = (chain: AppKitNetwork) =>
2523
fallback([http(alchemyURL("https", chain.id)), webSocket(alchemyURL("wss", chain.id))]);
2624
const chiadoTransport = () =>
2725
fallback([http("https://rpc.chiadochain.net"), webSocket("wss://rpc.chiadochain.net/wss")]);
@@ -33,26 +31,30 @@ const getTransports = () => {
3331
};
3432
};
3533

36-
const chains = [arbitrumSepolia, mainnet, gnosisChiado] as [Chain, ...Chain[]];
34+
const chains = [arbitrumSepolia, mainnet, gnosisChiado] as [AppKitNetwork, ...AppKitNetwork[]];
3735
const transports = getTransports();
3836
const projectId = import.meta.env.WALLETCONNECT_PROJECT_ID ?? "";
39-
const wagmiConfig = createConfig({
40-
chains,
37+
38+
const wagmiAdapter = new WagmiAdapter({
39+
networks: chains,
40+
projectId,
4141
transports,
42-
connectors: [walletConnect({ projectId, showQrModal: false })],
4342
});
4443

45-
createWeb3Modal({
46-
wagmiConfig,
44+
createAppKit({
45+
adapters: [wagmiAdapter],
46+
networks: chains,
47+
defaultNetwork: arbitrumSepolia,
4748
projectId,
4849
themeVariables: {
4950
"--w3m-color-mix": lightTheme.primaryPurple,
5051
"--w3m-color-mix-strength": 20,
52+
// overlay portal is at 9999
53+
"--w3m-z-index": 10000,
5154
},
5255
});
53-
5456
const Web3Provider: React.FC<{ children: React.ReactNode }> = ({ children }) => {
55-
return <WagmiProvider config={wagmiConfig}> {children} </WagmiProvider>;
57+
return <WagmiProvider config={wagmiAdapter.wagmiConfig}> {children} </WagmiProvider>;
5658
};
5759

5860
export default Web3Provider;

0 commit comments

Comments
 (0)