Fix case-insensitive address search
This commit is contained in:
@@ -68,7 +68,7 @@ app.use('/ext/getmoneysupply', function(req,res){
|
||||
});
|
||||
|
||||
app.use('/ext/getaddress/:hash', function(req,res){
|
||||
db.get_address(req.params.hash, function(address){
|
||||
db.get_address(req.params.hash, false, function(address){
|
||||
if (address) {
|
||||
var a_ext = {
|
||||
address: address.a_id,
|
||||
@@ -85,7 +85,7 @@ app.use('/ext/getaddress/:hash', function(req,res){
|
||||
});
|
||||
|
||||
app.use('/ext/getbalance/:hash', function(req,res){
|
||||
db.get_address(req.params.hash, function(address){
|
||||
db.get_address(req.params.hash, false, function(address){
|
||||
if (address) {
|
||||
res.send((address.balance / 100000000).toString().replace(/(^-+)/mg, ''));
|
||||
} else {
|
||||
|
||||
+21
-11
@@ -20,14 +20,24 @@ var mongoose = require('mongoose')
|
||||
, stex = require('./markets/stex')
|
||||
, coindesk = require('./apis/coindesk');
|
||||
|
||||
function find_address(hash, cb) {
|
||||
Address.findOne({a_id: { $regex: hash, $options: 'i' }}, function(err, address) {
|
||||
if(address) {
|
||||
return cb(address);
|
||||
} else {
|
||||
return cb();
|
||||
}
|
||||
});
|
||||
function find_address(hash, caseSensitive, cb) {
|
||||
if (caseSensitive) {
|
||||
// faster search but only matches exact string including case
|
||||
Address.findOne({a_id: hash}, function(err, address) {
|
||||
if (address)
|
||||
return cb(address);
|
||||
else
|
||||
return cb();
|
||||
});
|
||||
} else {
|
||||
// slower search but matches exact string ignoring case
|
||||
Address.findOne({a_id: {$regex: '^' + hash + '$', $options: 'i'}}, function(err, address) {
|
||||
if (address)
|
||||
return cb(address);
|
||||
else
|
||||
return cb();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function find_richlist(coin, cb) {
|
||||
@@ -42,7 +52,7 @@ function find_richlist(coin, cb) {
|
||||
|
||||
function update_address(hash, txid, amount, type, cb) {
|
||||
// Check if address exists
|
||||
find_address(hash, function(address) {
|
||||
find_address(hash, true, function(address) {
|
||||
if (address) {
|
||||
// if coinbase (new coins PoW), update sent only and return cb.
|
||||
if ( hash == 'coinbase' ) {
|
||||
@@ -308,8 +318,8 @@ module.exports = {
|
||||
});
|
||||
},
|
||||
|
||||
get_address: function(hash, cb) {
|
||||
find_address(hash, function(address){
|
||||
get_address: function(hash, caseSensitive, cb) {
|
||||
find_address(hash, caseSensitive, function(address){
|
||||
return cb(address);
|
||||
});
|
||||
},
|
||||
|
||||
+2
-2
@@ -93,7 +93,7 @@ function route_get_index(res, error) {
|
||||
}
|
||||
|
||||
function route_get_address(res, hash, count) {
|
||||
db.get_address(hash, function(address) {
|
||||
db.get_address(hash, false, function(address) {
|
||||
if (address) {
|
||||
var txs = [];
|
||||
var hashes = address.txs.reverse();
|
||||
@@ -252,7 +252,7 @@ router.post('/search', function(req, res) {
|
||||
});
|
||||
}
|
||||
} else {
|
||||
db.get_address(query, function(address) {
|
||||
db.get_address(query, false, function(address) {
|
||||
if (address) {
|
||||
res.redirect('/address/' + address.a_id);
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user