Transaction: add hash as addInput parameter
This commit is contained in:
parent
0b17c2bc3d
commit
1b1b550bd6
2 changed files with 18 additions and 13 deletions
|
@ -39,15 +39,17 @@ Transaction.prototype.addInput = function(tx, index, sequence) {
|
|||
|
||||
if (typeof tx === 'string') {
|
||||
hash = new Buffer(tx, 'hex')
|
||||
assert.equal(hash.length, 32, 'Expected Transaction or string, got ' + tx)
|
||||
assert.equal(hash.length, 32, 'Expected Transaction, txId or txHash, got ' + tx)
|
||||
|
||||
// TxHash hex is big-endian, we need little-endian
|
||||
// TxId hex is big-endian, we need little-endian
|
||||
Array.prototype.reverse.call(hash)
|
||||
|
||||
} else {
|
||||
assert(tx instanceof Transaction, 'Expected Transaction or string, got ' + tx)
|
||||
hash = crypto.hash256(tx.toBuffer())
|
||||
} else if (tx instanceof Transaction) {
|
||||
hash = tx.getHash()
|
||||
|
||||
} else {
|
||||
assert(Buffer.isBuffer(tx), 'Expected Transaction, txId or txHash, got ' + tx)
|
||||
hash = tx
|
||||
}
|
||||
|
||||
assert.equal(typeof index, 'number', 'Expected number index, got ' + index)
|
||||
|
|
|
@ -69,6 +69,13 @@ describe('Transaction', function() {
|
|||
assert.deepEqual(tx.ins[0].hash, prevTxHash)
|
||||
})
|
||||
|
||||
it('accepts a transaction hash', function() {
|
||||
var tx = new Transaction()
|
||||
tx.addInput(prevTxHash, 0)
|
||||
|
||||
assert.deepEqual(tx.ins[0].hash, prevTxHash)
|
||||
})
|
||||
|
||||
it('accepts a Transaction object', function() {
|
||||
var tx = new Transaction()
|
||||
tx.addInput(prevTx, 0)
|
||||
|
@ -78,13 +85,13 @@ describe('Transaction', function() {
|
|||
|
||||
it('returns an index', function() {
|
||||
var tx = new Transaction()
|
||||
assert.equal(tx.addInput(prevTxId, 0), 0)
|
||||
assert.equal(tx.addInput(prevTxId, 0), 1)
|
||||
assert.equal(tx.addInput(prevTxHash, 0), 0)
|
||||
assert.equal(tx.addInput(prevTxHash, 0), 1)
|
||||
})
|
||||
|
||||
it('defaults to DEFAULT_SEQUENCE', function() {
|
||||
var tx = new Transaction()
|
||||
tx.addInput(prevTxId, 0)
|
||||
tx.addInput(prevTxHash, 0)
|
||||
|
||||
assert.equal(tx.ins[0].sequence, 0xffffffff)
|
||||
})
|
||||
|
@ -94,11 +101,7 @@ describe('Transaction', function() {
|
|||
var tx = new Transaction()
|
||||
|
||||
f.raw.ins.forEach(function(txIn, i) {
|
||||
var txInId = new Buffer(txIn.hash)
|
||||
Array.prototype.reverse.call(txInId)
|
||||
txInId = txInId.toString('hex')
|
||||
|
||||
var j = tx.addInput(txInId, txIn.index, txIn.sequence)
|
||||
var j = tx.addInput(txIn.hash, txIn.index, txIn.sequence)
|
||||
|
||||
assert.equal(i, j)
|
||||
assert.deepEqual(tx.ins[i].hash, txIn.hash)
|
||||
|
|
Loading…
Reference in a new issue