diff --git a/src/transaction.js b/src/transaction.js index f99976e..0195067 100644 --- a/src/transaction.js +++ b/src/transaction.js @@ -193,8 +193,12 @@ Transaction.prototype.hashForSignature = function(prevOutScript, inIndex, hashTy return crypto.hash256(buffer) } +Transaction.prototype.getHash = function () { + return crypto.hash256(this.toBuffer()) +} + Transaction.prototype.getId = function () { - var buffer = crypto.hash256(this.toBuffer()) + var buffer = this.getHash() // Big-endian is used for TxHash Array.prototype.reverse.call(buffer) diff --git a/test/transaction.js b/test/transaction.js index e93ea11..0ebf50a 100644 --- a/test/transaction.js +++ b/test/transaction.js @@ -56,12 +56,10 @@ describe('Transaction', function() { // Probably a bit representative of the API var prevTxHash, prevTxId, prevTx beforeEach(function() { - var crypto = require('../src/crypto') - var f = fixtures.valid[0] prevTx = Transaction.fromHex(f.hex) + prevTxHash = prevTx.getHash() prevTxId = prevTx.getId() - prevTxHash = crypto.hash256(prevTx.toBuffer()) }) it('accepts a transaction id', function() { @@ -195,6 +193,17 @@ describe('Transaction', function() { }) }) + describe('getHash', function() { + fixtures.valid.forEach(function(f) { + it('should return the hash for ' + f.txid, function() { + var tx = Transaction.fromHex(f.hex) + var actual = tx.getHash().toString('hex') + + assert.equal(actual, f.hash) + }) + }) + }) + // TODO: // hashForSignature: [Function],