UNPKG

@investorid/identity-sdk

Version:
94 lines 2.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const ethers_1 = require("ethers"); const providers_1 = require("ethers/providers"); /** * Allowed Ethereum network for the SDK. */ var NETWORKS; (function (NETWORKS) { NETWORKS["HOMESTEAD"] = "homestead"; NETWORKS["ROPSTEN"] = "ropsten"; })(NETWORKS = exports.NETWORKS || (exports.NETWORKS = {})); /** * Thrown when attempting to set an Invalid BlockChain Provider. */ class InvalidProviderError extends Error { constructor(message = 'Specified Provider is not valid. Must be either a default network name, a json RPC address, a Provider or a Signer object.') { super(message); this.name = 'INVALID_PROVIDER'; } } exports.InvalidProviderError = InvalidProviderError; /** * The current BlockChain Provider of the SDK. */ exports.provider = null; /** * Get the current set BlockChain Provider. */ function getProvider() { if (!exports.provider) { throw new InvalidProviderError('Provider is not set for SDK. Call SDK.Config.setProvider(provider | network).'); } return exports.provider; } exports.getProvider = getProvider; /** * Set the BlockChain Provider for the SDK. * @param newProvider */ function setProvider(newProvider) { if (newProvider === null) { exports.provider = null; } else if (typeof newProvider === 'string') { if (Object.values(NETWORKS).includes(newProvider)) { exports.provider = ethers_1.ethers.getDefaultProvider(newProvider); } else if (newProvider.includes('http://') || newProvider.includes('https://')) { try { exports.provider = new ethers_1.providers.JsonRpcProvider(newProvider); } catch (err) { throw new InvalidProviderError(); } } else { throw new InvalidProviderError(); } } else if (newProvider instanceof providers_1.Provider || newProvider instanceof ethers_1.Signer) { exports.provider = newProvider; } else { throw new InvalidProviderError(); } } exports.setProvider = setProvider; /** * Does the SDK allows to fetch data from unsecured providers? */ exports.allowUnsecuredProviders = false; /** * Configure the SDK with generic options. Invalid parameters will be ignored. * @param options * @params [options.allowUnsecuredProviders] Boolean. */ function config(options) { if (typeof options.allowUnsecuredProviders === 'boolean') { exports.allowUnsecuredProviders = options.allowUnsecuredProviders; } } exports.config = config; exports.default = { enums: { NETWORKS }, errors: { InvalidProviderError }, config, settings: { allowUnsecuredProviders: exports.allowUnsecuredProviders, }, getProvider, setProvider, }; //# sourceMappingURL=Config.js.map