diff --git a/src/transaction.js b/src/transaction.js index a721e73..29590eb 100644 --- a/src/transaction.js +++ b/src/transaction.js @@ -362,23 +362,20 @@ Transaction.prototype.signWithKeys = function(keys, outputs, type) { * Signs a P2SH output at some index with the given key */ Transaction.prototype.p2shsign = function(index, script, key, type) { - script = new Script(script) - key = new ECKey(key) type = type || SIGHASH_ALL - var hash = this.hashTransactionForSignature(script, index, type), - sig = key.sign(hash).concat([type]) - return sig + var hash = this.hashTransactionForSignature(script, index, type) + return key.sign(hash).concat([type]) } Transaction.prototype.setScriptSig = function(index, script) { this.ins[index].script = script } -Transaction.prototype.validateSig = function(index, script, sig, pub) { - script = new Script(script) - var hash = this.hashTransactionForSignature(script,index,1) - return ecdsa.verify(hash, convert.coerceToBytes(sig), - convert.coerceToBytes(pub)) +Transaction.prototype.validateSig = function(index, script, pub, sig, type) { + type = type || SIGHASH_ALL + var hash = this.hashTransactionForSignature(script, index, type) + + return pub.verify(hash, sig) } Transaction.feePerKb = 20000 diff --git a/test/transaction.js b/test/transaction.js index dfc9fdd..425cace 100644 --- a/test/transaction.js +++ b/test/transaction.js @@ -171,11 +171,10 @@ describe('Transaction', function() { var key = ECKey.fromWIF('L44f7zxJ5Zw4EK9HZtyAnzCYz2vcZ5wiJf9AuwhJakiV4xVkxBeb') tx.sign(0, key) - var pub = key.pub.toBuffer() - var script = prevTx.outs[0].script.buffer + var script = prevTx.outs[0].script var sig = tx.ins[0].script.chunks[0] - assert.equal(tx.validateSig(0, script, sig, pub), true) + assert.equal(tx.validateSig(0, script, key.pub, sig), true) }) }) @@ -188,11 +187,10 @@ describe('Transaction', function() { it('returns true for valid signature', function(){ var key = ECKey.fromWIF('L44f7zxJ5Zw4EK9HZtyAnzCYz2vcZ5wiJf9AuwhJakiV4xVkxBeb') - var pub = key.pub.toBuffer() - var script = prevTx.outs[0].script.buffer + var script = prevTx.outs[0].script var sig = validTx.ins[0].script.chunks[0] - assert.equal(validTx.validateSig(0, script, sig, pub), true) + assert.equal(validTx.validateSig(0, script, key.pub, sig), true) }) })