mempool address methods.
This commit is contained in:
parent
f313b43414
commit
18ff108a77
@ -460,7 +460,40 @@ Mempool.prototype.isSpent = function isSpent(hash, index, callback) {
|
||||
*/
|
||||
|
||||
Mempool.prototype.getCoinsByAddress = function getCoinsByAddress(addresses, callback) {
|
||||
return this.chain.db.getCoinsByAddress.call(this, addresses, callback);
|
||||
var self = this;
|
||||
var coins = [];
|
||||
|
||||
if (!Array.isArray(addresses))
|
||||
addresses = [addresses];
|
||||
|
||||
addresses = utils.uniq(addresses);
|
||||
|
||||
utils.forEachSerial(addresses, function(address, next) {
|
||||
address = bcoin.address.getHash(address);
|
||||
|
||||
if (!address)
|
||||
return next();
|
||||
|
||||
self.db.lookup({
|
||||
gte: 'C/' + address,
|
||||
lte: 'C/' + address + '~',
|
||||
transform: function(key) {
|
||||
key = key.split('/');
|
||||
return 'c/' + key[2] + '/' + key[3];
|
||||
},
|
||||
parse: function(data, key) {
|
||||
var coin = bcoin.coin.fromRaw(data);
|
||||
key = key.split('/');
|
||||
coin.hash = key[1];
|
||||
coin.index = +key[2];
|
||||
coins.push(coin);
|
||||
}
|
||||
}, next);
|
||||
}, function(err) {
|
||||
if (err)
|
||||
return callback(err);
|
||||
return callback(null, coins);
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
@ -470,7 +503,44 @@ Mempool.prototype.getCoinsByAddress = function getCoinsByAddress(addresses, call
|
||||
*/
|
||||
|
||||
Mempool.prototype.getTXByAddress = function getTXByAddress(addresses, callback) {
|
||||
return this.chain.db.getTXByAddress.call(this, addresses, callback);
|
||||
var self = this;
|
||||
var txs = [];
|
||||
var have = {};
|
||||
|
||||
if (!Array.isArray(addresses))
|
||||
addresses = [addresses];
|
||||
|
||||
addresses = utils.uniq(addresses);
|
||||
|
||||
utils.forEachSerial(addresses, function(address, next) {
|
||||
address = bcoin.address.getHash(address);
|
||||
|
||||
if (!address)
|
||||
return next();
|
||||
|
||||
self.db.lookup({
|
||||
gte: 'T/' + address,
|
||||
lte: 'T/' + address + '~',
|
||||
transform: function(key) {
|
||||
var hash = key.split('/')[2];
|
||||
|
||||
if (addresses.length > 1) {
|
||||
if (have[hash])
|
||||
return false;
|
||||
have[hash] = true;
|
||||
}
|
||||
|
||||
return 't/' + hash;
|
||||
},
|
||||
parse: function(data, key) {
|
||||
txs.push(bcoin.tx.fromRaw(data));
|
||||
}
|
||||
}, next);
|
||||
}, function(err) {
|
||||
if (err)
|
||||
return callback(err);
|
||||
return callback(null, txs);
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
Loading…
Reference in New Issue
Block a user