Radish alpha
r
Radicle web interface
Radicle
Git (anonymous pull)
Log in to clone via SSH
Use ethers defaultProvider when in development mode
Sebastian Martinez committed 3 years ago
commit 78e1cd1d93606a5670c0c9714d00303d776cf304
parent 0ba0feedf12ff7c0646edecfd18736049cd30e90
1 file changed +6 -2
modified src/config.ts
@@ -216,13 +216,17 @@ function getProvider(
  config: Record<string, any>,
  metamask: ethers.providers.JsonRpcProvider | null,
): ethers.providers.JsonRpcProvider {
-
  // Use Alchemy in production. Otherwise use Metamask if installed.
  if (import.meta.env.PROD) {
    return new ethers.providers.AlchemyWebSocketProvider(network.name, config.alchemy.key);
  } else if (metamask) {
    return metamask;
+
  } else if (import.meta.env.DEV) {
+
    // The ethers defaultProvider doesn't include a `send` method, which breaks the `utils.getTokens` fn.
+
    // Since Metamask nor WalletConnect provide an `alchemy_getTokenBalances` nor `alchemy_getTokenMetadata` endpoint,
+
    // we can rely on not using `config.provider.send`.
+
    return ethers.providers.getDefaultProvider() as ethers.providers.JsonRpcProvider;
  } else {
-
    throw new Error("A wallet such as Metamask must be enabled on your browser.");
+
    throw new Error("No Web3 provider available.");
  }
}