Fix case-insensitive address search

This commit is contained in:
joeuhren
2019-10-17 21:51:13 -06:00
parent e645ee8635
commit 4508309173
3 changed files with 25 additions and 15 deletions
+2 -2
View File
@@ -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
View File
@@ -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
View File
@@ -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 {