@abcpros/bitcore-wallet-service
Version:
A service for Mutisig HD Bitcoin Wallets
77 lines • 3 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.BlockChainExplorer = void 0;
var lodash_1 = __importDefault(require("lodash"));
var v8_1 = require("./blockchainexplorers/v8");
var index_1 = require("./chain/index");
var $ = require('preconditions').singleton();
var Common = require('./common');
var Defaults = Common.Defaults;
var PROVIDERS = {
v8: {
btc: {
livenet: 'https://api.bitpay.com',
testnet: 'https://api.bitpay.com'
},
bch: {
livenet: 'https://api.bitpay.com',
testnet: 'https://api.bitpay.com'
},
xec: {
livenet: 'http://localhost:3000',
testnet: 'http://localhost:3000'
},
eth: {
livenet: 'https://api-eth.bitcore.io',
testnet: 'https://api-eth.bitcore.io'
},
xrp: {
livenet: 'https://api-xrp.bitcore.io',
testnet: 'https://api-xrp.bitcore.io'
},
doge: {
livenet: 'https://api.bitpay.com',
testnet: 'https://api.bitpay.com'
},
xpi: {
livenet: 'http://localhost:3000',
testnet: 'http://localhost:3000'
},
ltc: {
livenet: 'https://api.bitpay.com',
testnet: 'https://api.bitpay.com'
}
}
};
function BlockChainExplorer(opts) {
$.checkArgument(opts, 'Failed state: opts undefined at <BlockChainExplorer()>');
var provider = opts.provider || 'v8';
var coin = index_1.ChainService.getChain(opts.coin || Defaults.COIN).toLowerCase();
var network = opts.network || 'livenet';
$.checkState(PROVIDERS[provider], 'Provider ' + provider + ' not supported');
$.checkState(lodash_1.default.includes(lodash_1.default.keys(PROVIDERS[provider]), coin), 'Coin ' + coin + ' not supported by this provider');
$.checkState(lodash_1.default.includes(lodash_1.default.keys(PROVIDERS[provider][coin]), network), 'Network ' + network + ' not supported by this provider for coin ' + coin);
var url = opts.url || PROVIDERS[provider][coin][network];
if (coin != 'bch' && coin != 'xec' && opts.addressFormat)
throw new Error('addressFormat only supported for bch and xec');
if (coin == 'bch' && !opts.addressFormat)
opts.addressFormat = 'cashaddr';
switch (provider) {
case 'v8':
return new v8_1.V8({
coin: coin,
network: network,
url: url,
apiPrefix: opts.apiPrefix,
userAgent: opts.userAgent,
addressFormat: opts.addressFormat
});
default:
throw new Error('Provider ' + provider + ' not supported.');
}
}
exports.BlockChainExplorer = BlockChainExplorer;
//# sourceMappingURL=blockchainexplorer.js.map