UNPKG

@dydxfoundation/governance

Version:
38 lines (37 loc) 1.86 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const ethers_1 = require("ethers"); const ERC20_1 = __importDefault(require("./services/ERC20")); const types_1 = require("./types"); class BaseTxBuilder { constructor(network = types_1.Network.ropsten, injectedProvider, defaultProviderKeys, ipfsTimeoutMs) { let provider; // TODO: this is probably not enough as we use network down the road const chainId = types_1.ChainId[network]; if (!injectedProvider) { if (defaultProviderKeys && Object.keys(defaultProviderKeys).length > 1) { provider = ethers_1.ethers.getDefaultProvider(network, defaultProviderKeys); } else { provider = ethers_1.ethers.getDefaultProvider(network); console.log(`These API keys are a provided as a community resource by the backend services for low-traffic projects and for early prototyping. It is highly recommended to use own keys: https://docs.ethers.io/v5/api-keys/`); } } else if (typeof injectedProvider === 'string') { provider = new ethers_1.providers.JsonRpcProvider(injectedProvider, chainId); } else if (injectedProvider instanceof ethers_1.providers.Web3Provider || injectedProvider instanceof ethers_1.providers.JsonRpcProvider) { provider = injectedProvider; } else { provider = new ethers_1.providers.Web3Provider(injectedProvider, chainId); } this.configuration = { network, provider, ipfsTimeoutMs }; this.erc20Service = new ERC20_1.default(this.configuration); } } exports.default = BaseTxBuilder;