From 7b73402377d194d2a542a12175ebe4180c186cf8 Mon Sep 17 00:00:00 2001 From: Javed Khan Date: Wed, 23 Aug 2017 18:49:25 +0530 Subject: [PATCH] tests: add headers tests --- test/data/block1.raw | Bin 0 -> 215 bytes test/data/headers1.raw | Bin 0 -> 81 bytes test/headers-test.js | 58 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+) create mode 100644 test/data/block1.raw create mode 100644 test/data/headers1.raw create mode 100644 test/headers-test.js diff --git a/test/data/block1.raw b/test/data/block1.raw new file mode 100644 index 0000000000000000000000000000000000000000..34212c578baa30e68a230bf248a99228c2ef265a GIT binary patch literal 215 zcmZQ%U|`69)Wfyy3A>7|Lp54awB3#*yFL6(r=l}lAYHGnW)@E-`+S-^UL-uO&uN|9jN{v^5L6*~KsolZo&TLZEg01zilRR910 literal 0 HcmV?d00001 diff --git a/test/data/headers1.raw b/test/data/headers1.raw new file mode 100644 index 0000000000000000000000000000000000000000..6937a3be057c16cb2340a47bf0bd5ea79c3102bc GIT binary patch literal 81 zcmV-X0IvT50001Q;*1Km@w0NlrlLl!WA{&!9)o4!S_qtI))@c*0001(AW{7uOQ%G; nzGw~~?i6Qxp`*i83-__jwg%`|BR&pcyk<%N{{S5U<6@Zrb_F7V literal 0 HcmV?d00001 diff --git a/test/headers-test.js b/test/headers-test.js new file mode 100644 index 00000000..41b17745 --- /dev/null +++ b/test/headers-test.js @@ -0,0 +1,58 @@ +/* eslint-env mocha */ +/* eslint prefer-arrow-callback: "off" */ + +'use strict'; + +const Headers = require('../lib/primitives/headers'); +const assert = require('./util/assert'); +const common = require('./util/common'); + +const block1 = common.readBlock('block1'); +const headers1 = common.readFile('headers1.raw'); + +describe('Headers', function() { + it('should match headers size', () => { + const headers = new Headers(); + + assert.strictEqual(headers.getSize(), 81); + }); + + it('should match block1 headers from block', () => { + const [blockOne] = block1.getBlock(); + const headers = Headers.fromBlock(blockOne); + + assert.strictEqual(headers.time, 1231469665); + assert.strictEqual(headers.bits, 486604799); + assert.strictEqual(headers.nonce, 2573394689); + assert.strictEqual(headers.version, 1); + + assert.strictEqual(headers.prevBlock, + '6fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d6190000000000'); + assert.strictEqual(headers.merkleRoot, + '982051fd1e4ba744bbbe680e1fee14677ba1a3c3540bf7b1cdb606e857233e0e'); + assert.strictEqual(headers.rhash(), + '00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048'); + + assert(headers.verifyBody()); + assert(headers.verifyPOW()); + }); + + it('should match block1 headers from raw', () => { + const headers = Headers.fromRaw(headers1); + + assert.strictEqual(headers.time, 1231469665); + assert.strictEqual(headers.bits, 486604799); + assert.strictEqual(headers.nonce, 2573394689); + assert.strictEqual(headers.version, 1); + + assert.strictEqual(headers.prevBlock, + '6fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d6190000000000'); + assert.strictEqual(headers.merkleRoot, + '982051fd1e4ba744bbbe680e1fee14677ba1a3c3540bf7b1cdb606e857233e0e'); + assert.strictEqual(headers.rhash(), + '00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048'); + + assert(headers.verifyBody()); + assert(headers.verifyPOW()); + }); +});