As part of the WCIP-2 (WalletConnect/WCIPs#2) the exchangeKey flow will be refactored to include a 2-stage procedure that includes a signing challenge and a key update to complete the exchangeKey successfully.
The proposal has been implemented on the
exchange-key-refactor branch in this repo and it already includes the cryptography library interface required to perform this procedure.
From PR #118, you can see the file changes to the
react-native packages are completed but the
react-native package is still missing the cryptographic methods.
browser library was able to use an existing library called
eth-crypto but this library is not supported in the
Implement the missing cryptographic methods present in the
nativeCrypto.ts file required for the new exchangeKey flow on the
The methods are
Refer to lines 157 to 196 here.
eth-crypto library and make it react-native compatible. Check the issue is described on their repo here.
Use a different library (eg. crypto node module polyfill from tradle/react-native-crypto) that matches the same cryptographic methods as the ones used from
eth-crypto. These methods involve key pair generation, encrypt, decrypt, sign and recover with Secp256k1. For more details, please consult the source code for
eth-crypto library here
When forking this repository to submit a PR, please use
exchange-key-refactor branch as base and submit a PR agaisnt it.
To test the react-native enviroment, you can use
walletconnect-developer-app library found here. Run the app from
debug branch and you will find a folder called
src which is copy of the source code from
walletconnect-monorepo on the
For any other questions, please reach out directly to me @pedrouid on Github / Telegram / Discord.