@knine-sdk/fetch
Version:
Fetchers for Knine projects.
42 lines (35 loc) • 1.51 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var constants = require('@knine-sdk/constants');
var invariant = require('tiny-invariant');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var invariant__default = /*#__PURE__*/_interopDefaultLegacy(invariant);
const getInfuraRPCUrl = (chainId, apiKey) => {
invariant__default["default"](apiKey && typeof apiKey === 'string', 'API key should be a string');
switch (chainId) {
case constants.CHAINS.Mainnet:
return `https://mainnet.infura.io/v3/${apiKey}`;
default:
invariant__default["default"](false, 'Chain is not supported');
}
};
const getAlchemyRPCUrl = (chainId, apiKey) => {
invariant__default["default"](apiKey && typeof apiKey === 'string', 'API key should be a string');
switch (chainId) {
case constants.CHAINS.Mainnet:
return `https://eth-mainnet.alchemyapi.io/v2/${apiKey}`;
default:
invariant__default["default"](false, 'Chain is not supported');
}
};
const getRPCUrls = (chainId, keys) => {
const urls = [];
if (keys.alchemy)
urls.push(getAlchemyRPCUrl(chainId, keys.alchemy));
if (keys.infura)
urls.push(getInfuraRPCUrl(chainId, keys.infura));
return urls;
};
exports.getAlchemyRPCUrl = getAlchemyRPCUrl;
exports.getInfuraRPCUrl = getInfuraRPCUrl;
exports.getRPCUrls = getRPCUrls;