@dydxfoundation/governance
Version:
dYdX governance smart contracts
38 lines (37 loc) • 1.86 kB
JavaScript
;
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;