Skip to content

Commit 56f6919

Browse files
authored
fix: react wallet (#880)
* fix: dependencies * refactor: components to obey new next version * fix: added guard against calling `onInitialize` multiple times at the same time
1 parent 094e454 commit 56f6919

File tree

8 files changed

+2078
-2640
lines changed

8 files changed

+2078
-2640
lines changed

advanced/wallets/react-wallet-v2/package.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
"@reown/walletkit": "1.2.4",
3434
"@rhinestone/module-sdk": "0.1.25",
3535
"@solana/spl-token": "^0.4.13",
36-
"@solana/web3.js": "1.89.2",
36+
"@solana/web3.js": "1.98.2",
3737
"@taquito/signer": "^15.1.0",
3838
"@taquito/taquito": "^15.1.0",
3939
"@types/semver": "^7.5.8",
@@ -78,5 +78,13 @@
7878
"jsonc-eslint-parser": "^2.4.0",
7979
"prettier": "2.6.2",
8080
"typescript": "5.2.2"
81+
},
82+
"resolutions": {
83+
"@walletconnect/core": "2.20.2",
84+
"@walletconnect/utils": "2.20.2",
85+
"@walletconnect/types": "2.20.2",
86+
"@walletconnect/sign-client": "2.20.2",
87+
"@walletconnect/ethereum-provider": "2.20.2",
88+
"@walletconnect/universal-provider": "2.20.2"
8189
}
8290
}

advanced/wallets/react-wallet-v2/src/components/ModalFooter.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ export default function ModalFooter({
5353
auto
5454
flat
5555
style={{ color: 'white', backgroundColor: 'grey' }}
56-
onPress={onReject}
56+
onClick={onReject}
5757
data-testid="session-reject-button"
5858
disabled={disableReject || rejectLoader?.active}
5959
>
@@ -68,7 +68,7 @@ export default function ModalFooter({
6868
flat
6969
color={approveButtonColor}
7070
disabled={disableApprove || approveLoader?.active}
71-
onPress={onApprove}
71+
onClick={onApprove}
7272
data-testid="session-approve-button"
7373
>
7474
{approveLoader && approveLoader.active ? (

advanced/wallets/react-wallet-v2/src/components/Navigation.tsx

Lines changed: 22 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -5,46 +5,36 @@ import Link from 'next/link'
55
export default function Navigation() {
66
return (
77
<Row justify="space-between" align="center">
8-
<Link href="/" passHref>
9-
<a className="navLink" data-testid="accounts">
10-
<Image alt="accounts icon" src="/icons/accounts-icon.svg" width={27} height={27} />
11-
</a>
8+
<Link href="/" passHref className="navLink" data-testid="accounts">
9+
<Image alt="accounts icon" src="/icons/accounts-icon.svg" width={27} height={27} />
1210
</Link>
1311

14-
<Link href="/sessions" passHref>
15-
<a className="navLink" data-testid="sessions">
16-
<Image alt="sessions icon" src="/icons/sessions-icon.svg" width={27} height={27} />
17-
</a>
12+
<Link href="/sessions" passHref className="navLink" data-testid="sessions">
13+
<Image alt="sessions icon" src="/icons/sessions-icon.svg" width={27} height={27} />
1814
</Link>
1915

20-
<Link href="/walletconnect" passHref>
21-
<a className="navLink" data-testid="wc-connect">
22-
<Avatar
23-
size="lg"
24-
css={{ cursor: 'pointer' }}
25-
color="gradient"
26-
icon={
27-
<Image
28-
alt="wallet connect icon"
29-
src="/wallet-connect-logo.svg"
30-
width={30}
31-
height={30}
32-
/>
33-
}
34-
/>
35-
</a>
16+
<Link href="/walletconnect" passHref className="navLink" data-testid="wc-connect">
17+
<Avatar
18+
size="lg"
19+
css={{ cursor: 'pointer' }}
20+
color="gradient"
21+
icon={
22+
<Image
23+
alt="wallet connect icon"
24+
src="/wallet-connect-logo.svg"
25+
width={30}
26+
height={30}
27+
/>
28+
}
29+
/>
3630
</Link>
3731

38-
<Link href="/pairings" passHref>
39-
<a className="navLink" data-testid="pairings">
40-
<Image alt="pairings icon" src="/icons/pairings-icon.svg" width={25} height={25} />
41-
</a>
32+
<Link href="/pairings" passHref className="navLink" data-testid="pairings">
33+
<Image alt="pairings icon" src="/icons/pairings-icon.svg" width={25} height={25} />
4234
</Link>
4335

44-
<Link href="/settings" passHref>
45-
<a className="navLink" data-testid="settings">
46-
<Image alt="settings icon" src="/icons/settings-icon.svg" width={27} height={27} />
47-
</a>
36+
<Link href="/settings" passHref className="navLink" data-testid="settings">
37+
<Image alt="settings icon" src="/icons/settings-icon.svg" width={27} height={27} />
4838
</Link>
4939
</Row>
5040
)

advanced/wallets/react-wallet-v2/src/components/PairingCard.tsx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,8 @@ export default function PairingCard({ logo, name, url, topic, onDelete }: IProps
4040
<Text h5 css={{ marginLeft: '$9' }} data-testid={'pairing-text-' + topic}>
4141
{name}
4242
</Text>
43-
<Link href={url} css={{ marginLeft: '$9' }}>
44-
<a data-testid={'pairing-text-' + topic}>
45-
{truncate(url?.split('https://')[1] ?? 'Unknown', 23)}
46-
</a>
43+
<Link href={url} css={{ marginLeft: '$9' }} data-testid={'pairing-text-' + topic}>
44+
{truncate(url?.split('https://')[1] ?? 'Unknown', 23)}
4745
</Link>
4846
</div>
4947
<Tooltip content="Delete" placement="left">

advanced/wallets/react-wallet-v2/src/components/SessionCard.tsx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,8 @@ export default function SessionCard({ logo, name, url, topic }: IProps) {
4343
<Text h5 css={{ marginLeft: '$9' }} data-testid={`session-text`}>
4444
{name}
4545
</Text>
46-
<Link href={url} css={{ marginLeft: '$9' }}>
47-
<a data-testid={`session-link`}>
48-
{truncate(url?.split('https://')[1] ?? 'Unknown', 23)}
49-
</a>
46+
<Link href={url} css={{ marginLeft: '$9' }} data-testid={`session-link`}>
47+
{truncate(url?.split('https://')[1] ?? 'Unknown', 23)}
5048
</Link>
5149
</div>
5250

advanced/wallets/react-wallet-v2/src/hooks/useInitialization.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ import { useSnapshot } from 'valtio'
1414
import useSmartAccounts from './useSmartAccounts'
1515
import { createOrRestoreBip122Wallet } from '@/utils/Bip122WalletUtil'
1616

17+
// guard against multiple calls to createWalletKit while the wallet is initializing
18+
let startedInit = false
1719
export default function useInitialization() {
1820
const [initialized, setInitialized] = useState(false)
1921
const prevRelayerURLValue = useRef<string>('')
@@ -22,6 +24,9 @@ export default function useInitialization() {
2224
const { initializeSmartAccounts } = useSmartAccounts()
2325

2426
const onInitialize = useCallback(async () => {
27+
if (startedInit) return
28+
29+
startedInit = true
2530
try {
2631
const { eip155Addresses, eip155Wallets } = createOrRestoreEIP155Wallet()
2732
const { cosmosAddresses } = await createOrRestoreCosmosWallet()
@@ -50,6 +55,8 @@ export default function useInitialization() {
5055
} catch (err: unknown) {
5156
console.error('Initialization failed', err)
5257
alert(err)
58+
} finally {
59+
startedInit = false
5360
}
5461
// eslint-disable-next-line react-hooks/exhaustive-deps
5562
}, [relayerRegionURL])

advanced/wallets/react-wallet-v2/src/utils/WalletConnectUtil.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ export async function createWalletKit(relayerRegionURL: string) {
66
const core = new Core({
77
projectId: process.env.NEXT_PUBLIC_PROJECT_ID,
88
relayUrl: relayerRegionURL ?? process.env.NEXT_PUBLIC_RELAY_URL,
9-
logger: 'trace'
9+
logger: 'warn'
1010
})
1111
walletkit = await WalletKit.init({
1212
core,

0 commit comments

Comments
 (0)