bitcore-node-zcash/app/controllers/addresses.js

140 lines
2.8 KiB
JavaScript
Raw Normal View History

2014-01-13 12:21:42 -08:00
'use strict';
/**
* Module dependencies.
*/
2014-01-20 10:51:23 -08:00
var Address = require('../models/Address'),
2014-05-12 14:23:15 -07:00
common = require('./common'),
async = require('async');
2014-01-13 12:21:42 -08:00
var getAddr = function(req, res, next) {
2014-01-20 10:51:23 -08:00
var a;
try {
var addr = req.param('addr');
2014-03-10 12:39:55 -07:00
a = new Address(addr);
2014-01-20 10:51:23 -08:00
} catch (e) {
2014-05-12 14:23:15 -07:00
common.handleErrors({
message: 'Invalid address:' + e.message,
code: 1
}, res, next);
return null;
2014-01-20 10:51:23 -08:00
}
return a;
};
2014-01-13 12:21:42 -08:00
2014-05-12 14:23:15 -07:00
var getAddrs = function(req, res, next) {
var as = [];
try {
var addrStrs = req.param('addrs');
var s = addrStrs.split(',');
if (s.length === 0) return as;
for (var i = 0; i < s.length; i++) {
var a = new Address(s[i]);
as.push(a);
}
} catch (e) {
common.handleErrors({
message: 'Invalid address:' + e.message,
code: 1
}, res, next);
return null;
}
return as;
};
exports.show = function(req, res, next) {
var a = getAddr(req, res, next);
2014-05-12 14:23:15 -07:00
if (a) {
a.update(function(err) {
if (err) {
2014-01-20 11:40:20 -08:00
return common.handleErrors(err, res);
2014-05-12 14:23:15 -07:00
} else {
return res.jsonp(a);
2014-01-20 11:40:20 -08:00
}
2014-03-21 06:24:44 -07:00
}, req.query.noTxList);
2014-05-12 14:23:15 -07:00
}
2014-01-13 12:21:42 -08:00
};
2014-02-20 05:54:02 -08:00
exports.utxo = function(req, res, next) {
var a = getAddr(req, res, next);
2014-05-12 14:23:15 -07:00
if (a) {
2014-02-20 05:54:02 -08:00
a.getUtxo(function(err, utxo) {
if (err)
return common.handleErrors(err, res);
2014-05-12 14:23:15 -07:00
else {
2014-02-20 05:54:02 -08:00
return res.jsonp(utxo);
}
});
2014-05-12 14:23:15 -07:00
}
2014-01-13 12:21:42 -08:00
};
2014-05-12 14:23:15 -07:00
exports.multiutxo = function(req, res, next) {
var as = getAddrs(req, res, next);
if (as) {
var utxos = [];
async.each(as, function(a, callback) {
a.getUtxo(function(err, utxo) {
if (err) callback(err);
utxos = utxos.concat(utxo);
callback();
});
}, function(err) { // finished callback
if (err) return common.handleErrors(err, res);
res.jsonp(utxos);
});
}
};
exports.balance = function(req, res, next) {
var a = getAddr(req, res, next);
if (a)
a.update(function(err) {
if (err) {
return common.handleErrors(err, res);
2014-05-12 14:23:15 -07:00
} else {
return res.jsonp(a.balanceSat);
}
});
};
exports.totalReceived = function(req, res, next) {
var a = getAddr(req, res, next);
if (a)
a.update(function(err) {
if (err) {
return common.handleErrors(err, res);
2014-05-12 14:23:15 -07:00
} else {
return res.jsonp(a.totalReceivedSat);
}
});
};
exports.totalSent = function(req, res, next) {
var a = getAddr(req, res, next);
if (a)
a.update(function(err) {
if (err) {
return common.handleErrors(err, res);
2014-05-12 14:23:15 -07:00
} else {
return res.jsonp(a.totalSentSat);
}
});
};
exports.unconfirmedBalance = function(req, res, next) {
var a = getAddr(req, res, next);
if (a)
a.update(function(err) {
if (err) {
return common.handleErrors(err, res);
2014-05-12 14:23:15 -07:00
} else {
return res.jsonp(a.unconfirmedBalanceSat);
}
});
};