From b3c5b5970def282921769dab567960a4c47d9e0a Mon Sep 17 00:00:00 2001 From: Noah Saso Date: Mon, 17 Apr 2023 17:38:36 -0700 Subject: [PATCH] Safely handle disconnect errors. --- example/package-lock.json | 8 ++++---- example/package.json | 2 +- package-lock.json | 4 ++-- package.json | 2 +- src/components/WalletManagerProvider.tsx | 10 +++++++--- 5 files changed, 15 insertions(+), 11 deletions(-) diff --git a/example/package-lock.json b/example/package-lock.json index 9e16231..363fcc8 100644 --- a/example/package-lock.json +++ b/example/package-lock.json @@ -19,7 +19,7 @@ "@keplr-wallet/provider": "^0.11.49", "@keplr-wallet/stores": "^0.11.49", "@keplr-wallet/types": "^0.11.49", - "@noahsaso/cosmodal": "0.10.0", + "@noahsaso/cosmodal": "0.10.1", "@walletconnect/client": "^1.7.8", "next": "^13.3.0", "react": "^18.2.0", @@ -1742,9 +1742,9 @@ } }, "node_modules/@noahsaso/cosmodal": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@noahsaso/cosmodal/-/cosmodal-0.10.0.tgz", - "integrity": "sha512-pMVehEtxUv47oCO/rwGcWu3i6pyZlL9TQceKr068NOdAyu0HThajKPHkCG3QNWt4T9BrMJrB60GHB1GMN2OV0w==", + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@noahsaso/cosmodal/-/cosmodal-0.10.1.tgz", + "integrity": "sha512-9OwHCF5wWicWocelUbUtsyEafrZ5V1E0TKxoln/h76IbvGyk5UYTqUmfVng/JyARB0pZQevB5i4qWq6cUBISoQ==", "dependencies": { "@toruslabs/eccrypto": "^2.1.1", "@walletconnect/client": "^1.7.8", diff --git a/example/package.json b/example/package.json index c4917bb..222c1cb 100644 --- a/example/package.json +++ b/example/package.json @@ -20,7 +20,7 @@ "@keplr-wallet/provider": "^0.11.49", "@keplr-wallet/stores": "^0.11.49", "@keplr-wallet/types": "^0.11.49", - "@noahsaso/cosmodal": "0.10.0", + "@noahsaso/cosmodal": "0.10.1", "@walletconnect/client": "^1.7.8", "next": "^13.3.0", "react": "^18.2.0", diff --git a/package-lock.json b/package-lock.json index 9e2e52d..3689367 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@noahsaso/cosmodal", - "version": "0.10.0", + "version": "0.10.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@noahsaso/cosmodal", - "version": "0.10.0", + "version": "0.10.1", "license": "ISC", "dependencies": { "@toruslabs/eccrypto": "^2.1.1", diff --git a/package.json b/package.json index d77b728..c97d78f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@noahsaso/cosmodal", - "version": "0.10.0", + "version": "0.10.1", "repository": { "type": "git", "url": "git+https://github.com/NoahSaso/cosmodal.git" diff --git a/src/components/WalletManagerProvider.tsx b/src/components/WalletManagerProvider.tsx index c1a3269..057799d 100644 --- a/src/components/WalletManagerProvider.tsx +++ b/src/components/WalletManagerProvider.tsx @@ -139,8 +139,12 @@ export const WalletManagerProvider: FunctionComponent< // Disconnect from connected wallet. const disconnect = useCallback( async (dontKillWalletConnect?: boolean) => { - // Disconnect client if it exists. - connectedWallet?.walletClient?.disconnect?.() + // Disconnect client if it exists. Log and ignore errors. + try { + await connectedWallet?.walletClient?.disconnect?.() + } catch (err) { + console.error("Error disconnecting wallet client", err) + } // Disconnect wallet. setConnectedWallet(undefined) @@ -153,7 +157,7 @@ export const WalletManagerProvider: FunctionComponent< // Disconnect WalletConnect. setWalletConnect(undefined) if (walletConnect?.connected && !dontKillWalletConnect) { - await walletConnect.killSession() + await walletConnect.killSession().catch(console.error) // Remove session from localStorage since it tries to use the same // session as last time on future attempts. When the user manually // disconnects, we want to clear this state in case something is wrong