Skip to content

Commit

Permalink
Added WebSocket static method to Alchemy provider and updated Alchemy…
Browse files Browse the repository at this point in the history
… URLs.
  • Loading branch information
ricmoo committed Jul 3, 2020
1 parent 96cb440 commit 4838874
Showing 1 changed file with 17 additions and 6 deletions.
23 changes: 17 additions & 6 deletions packages/providers/src.ts/alchemy-provider.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
"use strict";

import { Network } from "@ethersproject/networks";
import { Network, Networkish } from "@ethersproject/networks";

import { WebSocketProvider } from "./websocket-provider";

import { Logger } from "@ethersproject/logger";
import { version } from "./_version";
Expand All @@ -18,6 +20,15 @@ const defaultApiKey = "_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC"
export class AlchemyProvider extends UrlJsonRpcProvider {
readonly apiKey: string;

static getWebSocketProvider(network: Networkish, apiKey: any): WebSocketProvider {
const provider = new AlchemyProvider(network, apiKey);

const url = provider.connection.url.replace(/^http/i, "ws")
.replace(".alchemyapi.", ".ws.alchemyapi.");

return new WebSocketProvider(url, provider.network);
}

static getApiKey(apiKey: any): any {
if (apiKey == null) { return defaultApiKey; }
if (apiKey && typeof(apiKey) !== "string") {
Expand All @@ -30,19 +41,19 @@ export class AlchemyProvider extends UrlJsonRpcProvider {
let host = null;
switch (network.name) {
case "homestead":
host = "eth-mainnet.alchemyapi.io/jsonrpc/";
host = "eth-mainnet.alchemyapi.io/v2/";
break;
case "ropsten":
host = "eth-ropsten.alchemyapi.io/jsonrpc/";
host = "eth-ropsten.alchemyapi.io/v2/";
break;
case "rinkeby":
host = "eth-rinkeby.alchemyapi.io/jsonrpc/";
host = "eth-rinkeby.alchemyapi.io/v2/";
break;
case "goerli":
host = "eth-goerli.alchemyapi.io/jsonrpc/";
host = "eth-goerli.alchemyapi.io/v2/";
break;
case "kovan":
host = "eth-kovan.alchemyapi.io/jsonrpc/";
host = "eth-kovan.alchemyapi.io/v2/";
break;
default:
logger.throwArgumentError("unsupported network", "network", arguments[0]);
Expand Down

0 comments on commit 4838874

Please sign in to comment.