diff --git a/lib/transaction/transaction.js b/lib/transaction/transaction.js index f15043c..ee8499b 100644 --- a/lib/transaction/transaction.js +++ b/lib/transaction/transaction.js @@ -472,7 +472,7 @@ Transaction.prototype.fromObject = function fromObject(arg) { var self = this; var transaction; if (arg instanceof Transaction) { - transaction = transaction.toObject(); + transaction = arg.toObject(); } else { transaction = arg; } diff --git a/test/transaction/fromObject.js b/test/transaction/fromObject.js new file mode 100644 index 0000000..61c488e --- /dev/null +++ b/test/transaction/fromObject.js @@ -0,0 +1,23 @@ +'use strict'; + +require('chai').should(); + +var bitcore = require('../../index-test'); +var Transaction = bitcore.Transaction; + +describe('Transaction', function() { + + describe('#fromObject', function() { + + it('builds from a Transaction instance and preserves its data', function() { + var source = new Transaction().lockUntilBlockHeight(123); + + var target = new Transaction().fromObject(source); + + target.nLockTime.should.equal(123); + target.toObject().should.deep.equal(source.toObject()); + }); + + }); + +});