@abcpros/bitcore-wallet-service
Version:
A service for Mutisig HD Bitcoin Wallets
90 lines • 3.08 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.XPIAddressTranslator = void 0;
var lodash_1 = __importDefault(require("lodash"));
var Bitcore_ = {
btc: require('@abcpros/bitcore-lib'),
bch: require('@abcpros/bitcore-lib-cash'),
xec: require('@abcpros/bitcore-lib-xec'),
xpi: require('@abcpros/bitcore-lib-xpi')
};
var XPIAddressTranslator = (function () {
function XPIAddressTranslator() {
}
XPIAddressTranslator.getAddressCoin = function (address) {
try {
new Bitcore_['btc'].Address(address);
return 'legacy';
}
catch (e) {
try {
var a = new Bitcore_['bch'].Address(address);
if (a.toLegacyAddress() == address)
return 'copay';
return 'cashaddr';
}
catch (e) {
try {
var a = new Bitcore_['xpi'].Address(address);
return 'xaddr';
}
catch (e) {
return;
}
}
}
};
XPIAddressTranslator.translate = function (addresses, to, from) {
var wasArray = true;
if (!lodash_1.default.isArray(addresses)) {
wasArray = false;
addresses = [addresses];
}
from = from || XPIAddressTranslator.getAddressCoin(addresses[0]);
var ret;
if (from == to) {
ret = addresses;
}
else {
ret = lodash_1.default.filter(lodash_1.default.map(addresses, function (x) {
var bitcore;
if (from == 'xaddr') {
bitcore = Bitcore_['xpi'];
}
else {
bitcore = Bitcore_[from == 'legacy' ? 'btc' : 'bch'];
}
var orig;
try {
orig = new bitcore.Address(x).toObject();
}
catch (e) {
return null;
}
if (to == 'cashaddr') {
return Bitcore_['bch'].Address.fromObject(orig).toCashAddress(true);
}
else if (to == 'copay') {
return Bitcore_['bch'].Address.fromObject(orig).toLegacyAddress();
}
else if (to == 'legacy') {
return Bitcore_['btc'].Address.fromObject(orig).toString();
}
else if (to == 'xaddr') {
return Bitcore_['xpi'].Address.fromObject(orig).toXAddress();
}
}));
}
if (wasArray)
return ret;
else
return ret[0];
};
return XPIAddressTranslator;
}());
exports.XPIAddressTranslator = XPIAddressTranslator;
module.exports = XPIAddressTranslator;
//# sourceMappingURL=xpiaddresstranslator.js.map