I am building a wallet app and have successfully managed to set WalletConnect V2 up so that I can pair with a dApp and then respond to requests. However, after only about 5 minutes I get this error:
Error: Not initialized. subscription
and then all requests stop being sent to my wallet. I am building this in react-native and have added every listener that I could find in the docs to my web3wallet. It seems like the dApp may be trying to send the wallet app something and my app is not set up to receive it. Any guidance in this would be appreciated.
Here is my current web3wallet implementation:
const core = new Core({
projectId: CONNECT_WALLET_PROJECT_ID
});
const metadata = {
name: 'Wallet',
description: 'A Wallet Application',
url: "#",
icons: []
};
const web3wallet = await Web3Wallet.init({
core,
metadata: metadata
});
web3wallet.on("session_delete", (proposal) => {
Alert.alert("session deleted");
console.log('wc delete: ', proposal);
});
web3wallet.on("session_request", (event) => {
console.log('session request: ', event);
console.log('create wallet method worked');
// const { id, method, params } = event.request;
setGlobalVariableValue({
key: 'walletConnectEventData',
value: {'event': 'session_request', 'data': event}
});
navigation.navigate('WalletConnectModal');
});
web3wallet.on("session_update", (proposal) => {
console.log('session update! ', proposal)
});
web3wallet.on("push_request", (proposal) => {
console.log("push_request")
console.log("push_request", proposal)
});
web3wallet.on("push_message", (proposal) => {
console.log("push_message")
console.log("push_message: ", proposal)
});
web3wallet.on("push_delete", (proposal) => {
console.log("push_delete");
console.log("push_delete: ", proposal)
});
web3wallet.on("session_ping", (proposal) => {
console.log("session_ping");
console.log("session_ping: ", proposal)
});
web3wallet.on("session_event", (proposal) => {
console.log("session_event");
console.log("session_event: ", proposal)
});
web3wallet.on("pairing_ping", (proposal) => {
console.log("pairing ping");
console.log('pairing ping: ', proposal);
});
web3wallet.on("pairing_delete", (proposal) => {
console.log("pairing delete");
console.log("pairing delete: ", proposal)
});
web3wallet.on("auth_request", (proposal) => {
console.log("auth_request")
console.log("auth request: ", proposal);
});