only pass db as option to module because other params aren't available until init
This commit is contained in:
parent
1aee45e423
commit
8290d61a09
|
@ -222,9 +222,7 @@ DB.prototype.getAPIMethods = function() {
|
|||
|
||||
DB.prototype.addModule = function(Module) {
|
||||
var module = new Module({
|
||||
db: this,
|
||||
bitcoind: this.bitcoind,
|
||||
network: this.network
|
||||
db: this
|
||||
});
|
||||
$.checkArgumentType(module, BaseModule);
|
||||
this.modules.push(module);
|
||||
|
|
|
@ -2,8 +2,6 @@
|
|||
|
||||
var Module = function(options) {
|
||||
this.db = options.db;
|
||||
this.bitcoind = options.bitcoind;
|
||||
this.network = options.network;
|
||||
};
|
||||
|
||||
Module.prototype.blockHandler = function(block, add, callback) {
|
||||
|
|
|
@ -67,15 +67,15 @@ AddressModule.prototype.blockHandler = function(block, addOutput, callback) {
|
|||
|
||||
if(script.isPublicKeyOut()) {
|
||||
var pubkey = script.chunks[0].buf;
|
||||
address = Address.fromPublicKey(new PublicKey(pubkey), this.network);
|
||||
address = Address.fromPublicKey(new PublicKey(pubkey), this.db.network);
|
||||
} else {
|
||||
address = output.script.toAddress(this.network);
|
||||
address = output.script.toAddress(this.db.network);
|
||||
}
|
||||
|
||||
var outputIndex = j;
|
||||
|
||||
var timestamp = block.timestamp.getTime();
|
||||
var height = block.height;
|
||||
var height = block.__height;
|
||||
|
||||
operations.push({
|
||||
type: action,
|
||||
|
@ -156,7 +156,7 @@ AddressModule.prototype.getOutputs = function(address, queryMempool, callback) {
|
|||
}
|
||||
|
||||
if(queryMempool) {
|
||||
outputs = outputs.concat(self.bitcoind.getMempoolOutputs(address));
|
||||
outputs = outputs.concat(self.db.bitcoind.getMempoolOutputs(address));
|
||||
}
|
||||
|
||||
callback(null, outputs);
|
||||
|
@ -198,7 +198,7 @@ AddressModule.prototype.isSpent = function(output, queryMempool, callback) {
|
|||
var txid = output.prevTxId ? output.prevTxId.toString('hex') : output.txid;
|
||||
|
||||
setImmediate(function() {
|
||||
callback(self.bitcoind.isSpent(txid, output.outputIndex));
|
||||
callback(self.db.bitcoind.isSpent(txid, output.outputIndex));
|
||||
});
|
||||
};
|
||||
|
||||
|
|
|
@ -301,15 +301,11 @@ describe('Bitcoin DB', function() {
|
|||
inherits(Module1, BaseModule);
|
||||
|
||||
var db = new DB({store: memdown});
|
||||
db.bitcoind = {};
|
||||
db.network = {};
|
||||
db.modules = [];
|
||||
db.addModule(Module1);
|
||||
|
||||
db.modules.length.should.equal(1);
|
||||
should.exist(db.modules[0].db);
|
||||
should.exist(db.modules[0].bitcoind);
|
||||
should.exist(db.modules[0].network);
|
||||
});
|
||||
|
||||
it('should throw an error if module is not an instance of BaseModule', function() {
|
||||
|
|
|
@ -77,7 +77,7 @@ describe('AddressModule', function() {
|
|||
var value64 = data[2].value;
|
||||
|
||||
it('should create the correct operations when updating/adding outputs', function(done) {
|
||||
am.blockHandler({height: 345003, timestamp: new Date(1424836934000)}, true, function(err, operations) {
|
||||
am.blockHandler({__height: 345003, timestamp: new Date(1424836934000)}, true, function(err, operations) {
|
||||
should.not.exist(err);
|
||||
operations.length.should.equal(11);
|
||||
operations[0].type.should.equal('put');
|
||||
|
@ -88,7 +88,7 @@ describe('AddressModule', function() {
|
|||
});
|
||||
});
|
||||
it('should create the correct operations when removing outputs', function(done) {
|
||||
am.blockHandler({height: 345003, timestamp: new Date(1424836934000)}, false, function(err, operations) {
|
||||
am.blockHandler({__height: 345003, timestamp: new Date(1424836934000)}, false, function(err, operations) {
|
||||
should.not.exist(err);
|
||||
operations.length.should.equal(11);
|
||||
operations[0].type.should.equal('del');
|
||||
|
@ -118,7 +118,7 @@ describe('AddressModule', function() {
|
|||
|
||||
var am = new AddressModule({db: db, network: 'livenet'});
|
||||
|
||||
am.blockHandler({height: 345003, timestamp: new Date(1424836934000)}, false, function(err, operations) {
|
||||
am.blockHandler({__height: 345003, timestamp: new Date(1424836934000)}, false, function(err, operations) {
|
||||
should.not.exist(err);
|
||||
operations.length.should.equal(0);
|
||||
done();
|
||||
|
@ -170,7 +170,7 @@ describe('AddressModule', function() {
|
|||
blockHeight: 352532
|
||||
}
|
||||
];
|
||||
am.bitcoind = {
|
||||
am.db.bitcoind = {
|
||||
getMempoolOutputs: sinon.stub().returns(mempoolOutputs)
|
||||
};
|
||||
|
||||
|
@ -313,8 +313,8 @@ describe('AddressModule', function() {
|
|||
});
|
||||
|
||||
describe('#isSpent', function() {
|
||||
var am = new AddressModule({});
|
||||
am.bitcoind = {
|
||||
var am = new AddressModule({db: {}});
|
||||
am.db.bitcoind = {
|
||||
isSpent: sinon.stub().returns(true)
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue