@colony/colony-js-client
Version:
Reference implementation of the Colony API
112 lines (78 loc) • 3.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _regenerator = require('babel-runtime/regenerator');
var _regenerator2 = _interopRequireDefault(_regenerator);
var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
var _ethers = require('ethers');
var _colonyJsAdapterEthers = require('@colony/colony-js-adapter-ethers');
var _colonyJsAdapterEthers2 = _interopRequireDefault(_colonyJsAdapterEthers);
var _colonyJsContractLoaderNetwork = require('@colony/colony-js-contract-loader-network');
var _colonyJsContractLoaderNetwork2 = _interopRequireDefault(_colonyJsContractLoaderNetwork);
var _colonyJsContractLoaderHttp = require('@colony/colony-js-contract-loader-http');
var _index = require('./ColonyNetworkClient/index');
var _index2 = _interopRequireDefault(_index);
var _index3 = require('./lib/EthersWrappedWallet/index');
var _index4 = _interopRequireDefault(_index3);
var _index5 = require('./lib/InfuraProvider/index');
var _index6 = _interopRequireDefault(_index5);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// This method provides a simple way of getting an initialized network client
// that uses NetworkLoader for the remote network and TrufflePigLoader for a
// local testrpc network (TrufflePig must be installed and running).
/* eslint-disable import/no-cycle */
var getNetworkClient = function () {
var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(network, wallet, infuraProjectId, verbose) {
var loader, provider, ethersWallet, adapter, networkClient;
return _regenerator2.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
loader = void 0;
provider = void 0;
// Set loader and provider
if (network === 'local') {
loader = new _colonyJsContractLoaderHttp.TrufflepigLoader();
// Throw custom error if TrufflePig is not installed and running
loader.getAccounts().catch(function () {
throw new Error('Make sure you have TrufflePig installed and running.');
});
provider = new _ethers.providers.JsonRpcProvider();
} else {
loader = new _colonyJsContractLoaderNetwork2.default({ network: network });
provider = new _index6.default(network, infuraProjectId, verbose);
}
// Use EthersWrappedWallet if purser wallet
ethersWallet = wallet.type && wallet.subtype ? new _index4.default(wallet, provider) : wallet;
// Initialize adpaters using ethers
adapter = new _colonyJsAdapterEthers2.default({
loader: loader,
provider: provider,
// $FlowFixMe colonyJS types don't yet accept some methods as async
wallet: ethersWallet
});
// Initialize network client using ethers adapter and default query
networkClient = new _index2.default({
adapter: adapter,
query: {},
verbose: verbose
});
_context.next = 8;
return networkClient.init();
case 8:
return _context.abrupt('return', networkClient);
case 9:
case 'end':
return _context.stop();
}
}
}, _callee, undefined);
}));
return function getNetworkClient(_x, _x2, _x3, _x4) {
return _ref.apply(this, arguments);
};
}();
exports.default = getNetworkClient;
//# sourceMappingURL=getNetworkClient.js.map