stop polling for events.

This commit is contained in:
Christopher Jeffrey 2014-10-23 12:44:05 -07:00
parent 7190fc21aa
commit bbc18ee764
1 changed files with 74 additions and 29 deletions

View File

@ -159,12 +159,57 @@ Bitcoin.prototype.start = function(options, callback) {
setImmediate(function() { setImmediate(function() {
self.emit('packet:' + packet.name, packet); self.emit('packet:' + packet.name, packet);
self.emit('packet', packet); self.emit('packet', packet);
// if (packet.name === 'block' || packet.name === 'tx') { if (packet.name === 'version') {
// self.emit(packet.name, packet.block || packet.tx); self.emit(packet.name, packet);
// if (packet.tx && !packet.tx.blockhash) { self.emit('peer', packet);
// self.emit('mptx', packet.tx); } else if (packet.name === 'verack') {
// } self.emit(packet.name, packet);
// } } else if (packet.name === 'addr') {
self.emit(packet.name, packet.addresses);
} else if (packet.name === 'inv') {
self.emit(packet.name, packet);
} else if (packet.name === 'getdata') {
self.emit(packet.name, packet);
} else if (packet.name === 'getblocks') {
self.emit(packet.name, packet);
} else if (packet.name === 'getheaders') {
self.emit(packet.name, packet);
} else if (packet.name === 'tx') {
if (!packet.tx.blockhash) {
packet.name = 'mptx';
}
self.emit(packet.name, bitcoind.tx(packet.tx));
} else if (packet.name === 'block') {
var block = bitcoind.block(packet.block);
self.emit(packet.name, block);
block.tx.forEach(function(tx) {
setImmediate(function() {
self.emit('tx', tx);
self.emit('parsed', tx);
});
});
} else if (packet.name === 'getaddr') {
self.emit(packet.name, packet);
} else if (packet.name === 'mempool') {
self.emit(packet.name, packet);
} else if (packet.name === 'ping') {
self.emit(packet.name, packet);
} else if (packet.name === 'pong') {
self.emit(packet.name, packet);
} else if (packet.name === 'alert') {
self.emit(packet.name, packet);
} else if (packet.name === 'filterload') {
self.emit(packet.name, packet);
} else if (packet.name === 'filteradd') {
self.emit(packet.name, packet);
} else if (packet.name === 'filterclear') {
self.emit(packet.name, packet);
} else if (packet.name === 'reject') {
self.emit(packet.name, packet);
} else if (packet.name === 'unknown') {
self.emit(packet.name, packet);
}
self.emit('parsed', packet.addresses || packet.block || packet.tx);
}); });
}); });
}, 50); }, 50);
@ -282,29 +327,29 @@ Bitcoin.prototype.start = function(options, callback) {
this._emitted = {}; this._emitted = {};
this.on('newListener', function(name) { // this.on('newListener', function(name) {
if (name === 'version' || name === 'peer') { // if (name === 'version' || name === 'peer') {
self._pollPeers(); // self._pollPeers();
return; // return;
} // }
if (name === 'addr') { // if (name === 'addr') {
self._pollAddresses(); // self._pollAddresses();
return; // return;
} // }
if (name === 'block') { // if (name === 'block') {
self._pollBlocks(); // self._pollBlocks();
return; // return;
} // }
if (name === 'tx') { // if (name === 'tx') {
self._pollBlocks(); // self._pollBlocks();
self._pollMempool(); // self._pollMempool();
return; // return;
} // }
if (name === 'mptx') { // if (name === 'mptx') {
self._pollMempool(); // self._pollMempool();
return; // return;
} // }
}); // });
if (this.log_pipe !== -1) { if (this.log_pipe !== -1) {
this.log('log pipe opened: %d', this.log_pipe); this.log('log pipe opened: %d', this.log_pipe);