From ba9ff424c2d37716c46cf2c0bd1130538bdf2c8f Mon Sep 17 00:00:00 2001 From: Felipe Lima Date: Tue, 26 Aug 2014 10:56:17 -0300 Subject: [PATCH 1/3] Fixes unhandled exceptions in Transaction --- lib/Transaction.js | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/lib/Transaction.js b/lib/Transaction.js index bb53fa4..f023b54 100644 --- a/lib/Transaction.js +++ b/lib/Transaction.js @@ -633,8 +633,13 @@ Transaction.prototype.getReceivingAddresses = function(networkName) { ret = []; for (var i = 0; i Date: Tue, 26 Aug 2014 11:25:50 -0300 Subject: [PATCH 2/3] Fixes undefined check --- lib/Transaction.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Transaction.js b/lib/Transaction.js index f023b54..49425bf 100644 --- a/lib/Transaction.js +++ b/lib/Transaction.js @@ -634,7 +634,7 @@ Transaction.prototype.getReceivingAddresses = function(networkName) { for (var i = 0; i Date: Wed, 1 Oct 2014 13:31:32 -0300 Subject: [PATCH 3/3] refactor changes --- lib/Address.js | 8 +++++++- lib/Transaction.js | 19 +++++++------------ 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/lib/Address.js b/lib/Address.js index 8404b38..becf643 100644 --- a/lib/Address.js +++ b/lib/Address.js @@ -189,7 +189,13 @@ Address.fromPubkeyHashScriptSig = function(scriptSig, network) { //extract an address from scriptSig Address.fromScriptSig = function(scriptSig, network) { if (typeof scriptSig === 'string') { - scriptSig = new Script(new Buffer(scriptSig, 'hex')); + try { + var scriptSigBuf = new Buffer(scriptSig, 'hex') + } catch(err) { + // Error: Invalid public key + return null; + } + scriptSig = new Script(scriptSigBuf); } if (!network) network = 'livenet'; diff --git a/lib/Transaction.js b/lib/Transaction.js index 49425bf..149acf8 100644 --- a/lib/Transaction.js +++ b/lib/Transaction.js @@ -633,19 +633,19 @@ Transaction.prototype.getReceivingAddresses = function(networkName) { ret = []; for (var i = 0; i