57 lines
1.1 KiB
JavaScript
57 lines
1.1 KiB
JavaScript
var Bitcore_ = {
|
|
btc: require('bitcore-lib'),
|
|
bch: require('bitcore-lib-cash')
|
|
};
|
|
|
|
var _ = require('lodash');
|
|
|
|
function AddressTranslator() {
|
|
};
|
|
|
|
|
|
AddressTranslator.getAddressCoin = function(address) {
|
|
try {
|
|
new Bitcore_['btc'].Address(address);
|
|
return 'btc';
|
|
} catch (e) {
|
|
try {
|
|
new Bitcore_['bch'].Address(address);
|
|
return 'bch';
|
|
} catch (e) {
|
|
return;
|
|
}
|
|
}
|
|
};
|
|
|
|
AddressTranslator.translate = function(addresses, coin, origCoin) {
|
|
var wasArray = true;
|
|
if (!_.isArray(addresses)) {
|
|
wasArray = false;
|
|
addresses = [addresses];
|
|
}
|
|
origCoin = origCoin || AddressTranslator.getAddressCoin(addresses[0]);
|
|
var ret = _.map(addresses, function(x) {
|
|
var orig = new Bitcore_[origCoin].Address(x).toObject();
|
|
return Bitcore_[coin].Address.fromObject(orig).toString();
|
|
});
|
|
|
|
if (wasArray)
|
|
return ret;
|
|
else
|
|
return ret[0];
|
|
|
|
};
|
|
|
|
AddressTranslator.translateInput = function(addresses) {
|
|
return this.translate(addresses, 'btc', 'bch');
|
|
}
|
|
|
|
AddressTranslator.translateOutput = function(addresses) {
|
|
return this.translate(addresses, 'bch', 'btc');
|
|
}
|
|
|
|
|
|
|
|
|
|
module.exports = AddressTranslator;
|