From 837658034a07aea0bb8b2c7e9e7b33d8b079c3a1 Mon Sep 17 00:00:00 2001 From: Manuel Araoz Date: Sat, 19 Jul 2014 17:28:42 -0300 Subject: [PATCH] one test passes --- lib/Address.js | 15 +++++++++++++++ lib/NetworkMonitor.js | 6 +++--- lib/Transaction.js | 11 +++++++---- test/test.NetworkMonitor.js | 35 +++++++++++++++++++++++++++-------- 4 files changed, 52 insertions(+), 15 deletions(-) diff --git a/lib/Address.js b/lib/Address.js index 9e2256f..8404b38 100644 --- a/lib/Address.js +++ b/lib/Address.js @@ -186,6 +186,21 @@ Address.fromPubkeyHashScriptSig = function(scriptSig, network) { return Address.fromPubKey(scriptSig.chunks[1], network); }; +//extract an address from scriptSig +Address.fromScriptSig = function(scriptSig, network) { + if (typeof scriptSig === 'string') { + scriptSig = new Script(new Buffer(scriptSig, 'hex')); + } + if (!network) + network = 'livenet'; + + var payload = scriptSig.chunks; + if (scriptSig.chunks.length === 2) + return Address.fromPubkeyHashScriptSig(scriptSig, network); + // TODO: support other scriptSig types + return null; +}; + Address.getScriptPubKeyFor = function(s) { return new Address(s).getScriptPubKey(); }; diff --git a/lib/NetworkMonitor.js b/lib/NetworkMonitor.js index 4a3c704..3d301ff 100644 --- a/lib/NetworkMonitor.js +++ b/lib/NetworkMonitor.js @@ -10,13 +10,13 @@ var preconditions = require('preconditions').singleton(); var NetworkMonitor = function(peerman) { preconditions.checkArgument(peerman); this.peerman = peerman; + this.networkName = peerman.config.network; this.init(); } util.inherits(NetworkMonitor, EventEmitter); NetworkMonitor.create = function(config) { - this.config = config; var peerman = new PeerManager({ network: config.networkName }); @@ -39,12 +39,12 @@ NetworkMonitor.prototype.init = function() { var handleTx = function(info) { var tx = info.message.tx; - var from = tx.getSendingAddresses(self.config.networkName); + var from = tx.getSendingAddresses(self.networkName); for (var i = 0; i < from.length; i++) { var addr = from[i]; self.emit('out:'+addr, tx); } - var to = tx.getReceivingAddresses(self.config.networkName); + var to = tx.getReceivingAddresses(self.networkName); for (var i = 0; i < to.length; i++) { var addr = to[i]; self.emit('in:'+addr, tx); diff --git a/lib/Transaction.js b/lib/Transaction.js index 9c4e6c9..0f52f82 100644 --- a/lib/Transaction.js +++ b/lib/Transaction.js @@ -634,10 +634,13 @@ Transaction.prototype.getSendingAddresses = function(networkName) { var ret = []; if (!networkName) networkName = 'livenet'; for (var i = 0; i