import { showThrottleMessage } from "./formatter"; import { UrlJsonRpcProvider } from "./url-json-rpc-provider"; import { Logger } from "@ethersproject/logger"; import { version } from "./_version"; const logger = new Logger(version); const defaultApiKey = "9f7d929b018cdffb338517efa06f58359e86ff1ffd350bc889738523659e7972"; function getHost(name) { switch (name) { case "homestead": return "rpc.ankr.com/eth/"; case "matic": return "rpc.ankr.com/polygon/"; case "arbitrum": return "rpc.ankr.com/arbitrum/"; } return logger.throwArgumentError("unsupported network", "name", name); } export class AnkrProvider extends UrlJsonRpcProvider { isCommunityResource() { return (this.apiKey === defaultApiKey); } static getApiKey(apiKey) { if (apiKey == null) { return defaultApiKey; } return apiKey; } static getUrl(network, apiKey) { if (apiKey == null) { apiKey = defaultApiKey; } const connection = { allowGzip: true, url: ("https:/\/" + getHost(network.name) + apiKey), throttleCallback: (attempt, url) => { if (apiKey.apiKey === defaultApiKey) { showThrottleMessage(); } return Promise.resolve(true); } }; if (apiKey.projectSecret != null) { connection.user = ""; connection.password = apiKey.projectSecret; } return connection; } } //# sourceMappingURL=ankr-provider.js.map