Skip to content

Commit 25c56b9

Browse files
v 1 r t lhan0110NoahZinsmeister
authored
fix WalletConnect stuck forever (+ resolve merge conflicts and update Next.js) (#360)
* fix: reset provider when user close modal or reject connection * chore: ignore .next in example * fix: remove over-optimistic disconnect message comparison and reject anyway * feat: upgrade @walletconnect/provider to 1.3.4 and use @walletconnect/types * feat: upgrade walletconnect-connector in example * chore: update Next.js to fix native module errors * fix: path * get example working bump @walletconnect/types fix prettier * fix(walletconnect-connector): use `ethereum-provider` instead * prettier Co-authored-by: han0110 <tinghan0110@gmail.com> Co-authored-by: Noah Zinsmeister <noahwz@gmail.com>
1 parent 8f54e9d commit 25c56b9

File tree

10 files changed

+2576
-7044
lines changed

10 files changed

+2576
-7044
lines changed

example/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.next

example/connectors.ts

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
import { InjectedConnector } from '@web3-react/injected-connector'
2-
import { NetworkConnector } from '@web3-react/network-connector'
3-
import { WalletConnectConnector } from '@web3-react/walletconnect-connector'
4-
import { WalletLinkConnector } from '@web3-react/walletlink-connector'
5-
import { LedgerConnector } from '@web3-react/ledger-connector'
6-
import { TrezorConnector } from '@web3-react/trezor-connector'
7-
import { LatticeConnector } from '@web3-react/lattice-connector'
8-
import { FrameConnector } from '@web3-react/frame-connector'
91
import { AuthereumConnector } from '@web3-react/authereum-connector'
102
import { FortmaticConnector } from '@web3-react/fortmatic-connector'
3+
import { FrameConnector } from '@web3-react/frame-connector'
4+
import { InjectedConnector } from '@web3-react/injected-connector'
5+
import { LatticeConnector } from '@web3-react/lattice-connector'
6+
import { LedgerConnector } from '@web3-react/ledger-connector'
117
import { MagicConnector } from '@web3-react/magic-connector'
8+
import { NetworkConnector } from '@web3-react/network-connector'
129
import { PortisConnector } from '@web3-react/portis-connector'
1310
import { TorusConnector } from '@web3-react/torus-connector'
11+
import { TrezorConnector } from '@web3-react/trezor-connector'
12+
import { WalletConnectConnector } from '@web3-react/walletconnect-connector'
13+
import { WalletLinkConnector } from '@web3-react/walletlink-connector'
1414

1515
const POLLING_INTERVAL = 12000
1616
const RPC_URLS: { [chainId: number]: string } = {
@@ -26,7 +26,9 @@ export const network = new NetworkConnector({
2626
})
2727

2828
export const walletconnect = new WalletConnectConnector({
29-
rpc: { 1: RPC_URLS[1] },
29+
rpc: RPC_URLS,
30+
chainId: 1,
31+
bridge: 'https://bridge.walletconnect.org',
3032
qrcode: true
3133
})
3234

example/next-env.d.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
11
/// <reference types="next" />
2-
/// <reference types="next/types/global" />
2+
/// <reference types="next/image-types/global" />
3+
4+
// NOTE: This file should not be edited
5+
// see https://nextjs.org/docs/basic-features/typescript for more information.

example/next.config.js

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,36 @@
1-
module.exports = {
1+
/**
2+
* @type {import('next').NextConfig}
3+
*/
4+
const config = {
25
env: {
36
RPC_URL_1: 'https://mainnet.infura.io/v3/84842078b09946638c03157f83405213',
47
RPC_URL_4: 'https://rinkeby.infura.io/v3/84842078b09946638c03157f83405213',
58
FORTMATIC_API_KEY: 'pk_test_A6260FCBAA2EBDFB',
69
MAGIC_API_KEY: 'pk_test_398B82F5F0E88874',
710
PORTIS_DAPP_ID: 'e9be171c-2b7f-4ff0-8db9-327707511ee2'
11+
},
12+
webpack5: true,
13+
webpack: (config, { isServer }) => {
14+
if (!isServer) {
15+
config.resolve.fallback = {
16+
...config.resolve.fallback,
17+
net: false,
18+
tls: false,
19+
electron: false,
20+
'@ethereumjs/tx': false
21+
}
22+
} else {
23+
config.resolve.fallback = {
24+
...config.resolve.fallback,
25+
electron: false,
26+
'@ethereumjs/tx': false
27+
}
28+
}
29+
return config
30+
},
31+
experimental: {
32+
esmExternals: 'loose'
833
}
934
}
35+
36+
module.exports = config

example/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
"@web3-react/trezor-connector": "latest",
2323
"@web3-react/walletconnect-connector": "latest",
2424
"@web3-react/walletlink-connector": "latest",
25-
"next": "^9.2.1",
25+
"next": "^12.0.8",
2626
"react": ">=16.8",
2727
"react-dom": ">=16.8",
2828
"typescript": "^3.7.5"

example/pages/index.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,11 @@ function App() {
283283
key={name}
284284
onClick={() => {
285285
setActivatingConnector(currentConnector)
286-
activate(connectorsByName[name])
286+
activate(connectorsByName[name], (error) => {
287+
if (error) {
288+
setActivatingConnector(undefined)
289+
}
290+
})
287291
}}
288292
>
289293
<div

0 commit comments

Comments
 (0)