69 lines
1.4 KiB
JavaScript
69 lines
1.4 KiB
JavaScript
'use strict';
|
|
|
|
var _ = require('lodash');
|
|
var AddressTranslator = require('./addresstranslator');
|
|
var bitcore = require('bitcore-lib');
|
|
|
|
function Common(options) {
|
|
this.log = options.log;
|
|
this.translateAddresses = options.translateAddresses;
|
|
}
|
|
|
|
Common.prototype.notReady = function (err, res, p) {
|
|
res.status(503).send('Server not yet ready. Sync Percentage:' + p);
|
|
};
|
|
|
|
Common.prototype.handleErrors = function (err, res) {
|
|
if (err) {
|
|
if (err.code) {
|
|
res.status(400).send(err.message + '. Code:' + err.code);
|
|
} else {
|
|
this.log.error(err.stack);
|
|
res.status(503).send(err.message);
|
|
}
|
|
} else {
|
|
res.status(404).send('Not found');
|
|
}
|
|
};
|
|
|
|
|
|
Common.prototype.translateInputAddresses= function(addresses) {
|
|
var self = this;
|
|
|
|
if (!addresses) return;
|
|
|
|
if (!_.isArray(addresses))
|
|
addresses = [ addresses ];
|
|
|
|
function check(addresses) {
|
|
if (!addresses) return;
|
|
|
|
for(var i = 0; i < addresses.length; i++) {
|
|
try {
|
|
new bitcore.Address(addresses[i]);
|
|
} catch(e) {
|
|
|
|
throw addresses[i];
|
|
}
|
|
}
|
|
}
|
|
|
|
if (this.translateAddresses) {
|
|
addresses = AddressTranslator.translateInput(addresses);
|
|
} else
|
|
check(addresses);
|
|
|
|
return addresses;
|
|
};
|
|
|
|
|
|
|
|
|
|
Common.prototype.translateOutputAddress= function(address) {
|
|
if (!this.translateAddresses) return address;
|
|
return AddressTranslator.translateOutput(address);
|
|
};
|
|
|
|
|
|
module.exports = Common;
|