wallet-connect-web-examples/wallets/react-wallet-v2
renovate[bot] f83c067c67
fix(deps): update walletconnect monorepo deps to v2.9.0 (#231)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-10 15:15:17 +02:00
..
public feat: adds zk sync era (#211) 2023-06-30 16:31:28 +02:00
src fix(config): fixes typos in the zkSync RPC domains 2023-07-10 10:08:21 +02:00
.env.local.example Add Tezos Support (#127) 2023-03-31 10:35:53 +02:00
.eslintrc.json Set up dev tooling 2022-02-03 11:24:35 +02:00
.gitignore Beta 100 (#27) 2022-05-30 11:46:15 +02:00
.prettierrc.json Set up dev tooling 2022-02-03 11:24:35 +02:00
next-env.d.ts scope wallet examples under one folder 2022-02-03 11:14:39 +02:00
next.config.js feat: adds Elrond support (#67) 2022-10-31 11:21:33 +01:00
package.json fix(deps): update walletconnect monorepo deps to v2.9.0 (#231) 2023-07-10 15:15:17 +02:00
README.md docs(readme): tweaks readmes to point out wallet sign v1+v2 support 2022-11-09 16:42:53 +01:00
tsconfig.json refactor(dapp-v2): splits requested methods between required/optional (#196) 2023-06-28 09:51:13 +02:00
yarn.lock fix(deps): update walletconnect monorepo deps to v2.9.0 (#231) 2023-07-10 15:15:17 +02:00

Wallet Example (React, Typescript, Ethers, NextJS, Cosmos)

This example aims to demonstrate basic and advanced use cases enabled by WalletConnect's Sign SDK.

The wallet implements Sign v1 and v2 side-by-side, to serve as a reference for wallet developers aiming to support both major versions for backwards compatibility. All files containing code for the legacy v1 implementation are prefixed with Legacy....

Please only use this for reference and development purposes, otherwise you are at risk of losing your funds.

Useful links

🔗 Live wallet app - https://react-wallet.walletconnect.com
🔗 Live dapp - https://react-app.walletconnect.com
📚 WalletConnect docs - https://docs.walletconnect.com/2.0

Getting started

Example is built atop of NextJS in order to abstract complexity of setting up bundlers, routing etc. So there are few steps you need to follow in order to set everything up

  1. Go to WalletConnect Cloud and obtain a project id

  2. Add your project details in WalletConnectUtil.ts file

  3. Install dependencies yarn install or npm install

  4. Setup your environment variables

cp .env.local.example .env.local

Your .env.local now contains the following environment variables:

  1. Run yarn dev or npm run dev to start local development

Navigating through example

  1. Initial setup and initializations happen in _app.ts file
  2. WalletConnect client, ethers and cosmos wallets are initialized in useInitialization.ts hook
  3. Subscription and handling of WalletConnect events happens in useWalletConnectEventsManager.ts hook, that opens related Modal views and passes them all necessary data
  4. Modal views are responsible for data display and handling approval or rejection actions
  5. Upon approval or rejection, modals pass the request data to RequestHandlerUtil.ts that performs all necessary work based on the request method and returns formated json rpc result data that can be then used for WalletConnect client responses

Preview of wallet and dapp examples in action

https://user-images.githubusercontent.com/3154053/156764521-3492c232-7a93-47ba-88bd-2cee3f8366d4.mp4