status-desktop/ui/app/AppLayouts/Wallet/views/walletconnect/sdk
Stefan 5b9e4faa8a feat(wallet) run WebEngineView as a service in background
This is required to control the resource consumption in case of no
usage of wallet connect
Hence we load the WebEngineView only if we have active pairings and
such that SDK events are expected from the paired dapps.

Also:

- Moved the generic WebEngineView communication bridge to StatusQ
- Added basic tests for WebEngineLoader
- Add a way to know when wallet is loaded (`walletReady`)
- Add storybook support for mock of nim sections as context properties

Updates: #12639
2023-11-27 22:54:11 +01:00
..
generated feat(wallet) run WebEngineView as a service in background 2023-11-27 22:54:11 +01:00
src feat(wallet) run WebEngineView as a service in background 2023-11-27 22:54:11 +01:00
README.md feat(wallet) run WebEngineView as a service in background 2023-11-27 22:54:11 +01:00
package-lock.json feat(wallet) Wallet Connect integration prototype 2023-10-30 09:29:33 +01:00
package.json feat(wallet) integrate Wallet Connect sign APIs 2023-11-15 17:21:27 +01:00
webpack.config.js feat(wallet) Wallet Connect integration prototype 2023-10-30 09:29:33 +01:00

README.md

Wallet Connect Integration

TODO

Design questions

  • Do we report disabled chains? Update session in case of enabled/disabled chains?
  • User error workflow: retry?
  • Check the Auth request for verifyContext https://docs.walletconnect.com/web3wallet/verify
  • What description and icons to use for the app? See metadata parameter in Web3Wallet.init call

WalletConnect SDK management

Install dependencies steps by executing commands in this directory:

  • update the package.json versions and run npm install
    • alternatively
      • use the command npm install <package-name>@<version/latest> --save for individual packages
      • or to update to the latest run npm update in here
    • these commands will also create or update a package-lock.json file and populate the node_modules directory
  • update the bundle.js file by running npm run build
  • add the newly generated files to index git add --update . to include in the commit

Testing

Use the web demo test client https://react-app.walletconnect.com/ for wallet pairing and https://react-auth-dapp.walletconnect.com/ for authentication

Log

Initial setup

npm init -y
npm install --save-dev webpack webpack-cli webpack-dev-server
npm install --save @walletconnect/web3wallet
npm run build
# npm run build:dev # for development
  • Do we report all chains and all accounts combination or let user select?
    • Wallet Connect require to report all chainIDs that were requested
    • Answer: We only report the available chains for the current account. We will look into adding others to he same session instead of requiring a new link
  • Can't respond to sign messages if the wallet-connect dialog/view is closed (app is minimized)
    • Only apps that use deep links are expected to work seamlessly
    • Also the main workflow will be driven by user
  • Allow user to disconnect session? Manage sessions?
    • Yes, in settings
  • Support update session if one account is added/removed?
    • Not at first
  • User awareness of session expiration?
    • Support extend session?
      • Yes