diff --git a/lib/primitives/outpoint.js b/lib/primitives/outpoint.js index 10292dd5..379dc5a6 100644 --- a/lib/primitives/outpoint.js +++ b/lib/primitives/outpoint.js @@ -69,7 +69,7 @@ Outpoint.fromOptions = function fromOptions(options) { Outpoint.prototype.clone = function clone() { const outpoint = new Outpoint(); - outpoint.hash = this.value; + outpoint.hash = this.hash; outpoint.index = this.index; return outpoint; }; diff --git a/test/outpoint-test.js b/test/outpoint-test.js new file mode 100644 index 00000000..f55566f7 --- /dev/null +++ b/test/outpoint-test.js @@ -0,0 +1,26 @@ +/* eslint-env mocha */ + +'use strict'; + +const Outpoint = require('../lib/primitives/outpoint'); +const assert = require('./util/assert'); +const common = require('./util/common'); + +const OUTPOINT_SIZE = 36; +const tx1 = common.readTX('tx1').getRaw(); +const rawOutpoint1 = tx1.slice(5, 5+OUTPOINT_SIZE); + +const tx2 = common.readTX('tx2').getRaw(); +const rawOutpoint2 = tx2.slice(5, 5+OUTPOINT_SIZE); + +describe('Outpoint', () => { + it('should clone the outpoint correctly', () => { + const raw = rawOutpoint1.slice(); + const outpointObject = Outpoint.fromRaw(raw); + const clone = outpointObject.clone(); + const equals = outpointObject.equals(clone); + + assert.strictEqual(outpointObject !== clone, true); + assert.strictEqual(equals, true); + }); +});