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) {
|
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) {
|
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