'use strict'; /** * Module dependencies. */ var Address = require('../models/Address'), common = require('./common'), async = require('async'); var getAddr = function(req, res, next) { var a; try { var addr = req.param('addr'); a = new Address(addr); } catch (e) { common.handleErrors({ message: 'Invalid address:' + e.message, code: 1 }, res, next); return null; } return a; }; 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); if (a) { a.update(function(err) { if (err) { return common.handleErrors(err, res); } else { return res.jsonp(a); } }, req.query.noTxList); } }; exports.utxo = function(req, res, next) { var a = getAddr(req, res, next); if (a) { a.getUtxo(function(err, utxo) { if (err) return common.handleErrors(err, res); else { return res.jsonp(utxo); } }); } }; 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); } 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); } 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); } 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); } else { return res.jsonp(a.unconfirmedBalanceSat); } }); };