Skip to content

Commit b8e8926

Browse files
author
Chris Kleeschulte
committed
Fixed all tests.
1 parent 272fb54 commit b8e8926

File tree

7 files changed

+28
-18
lines changed

7 files changed

+28
-18
lines changed

lib/services/header/encoding.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ Encoding.prototype.encodeHeaderValue = function(header) {
3838
var heightBuf = new Buffer(4);
3939
heightBuf.writeUInt32BE(header.height);
4040
var chainworkBuf = new Buffer(header.chainwork, 'hex');
41-
return Buffer.concat([hashBuf, versionBuf, prevHash.reverse(), merkleRoot.reverse(), tsBuf, bitsBuf, nonceBuf, heightBuf, chainworkBuf ]);
41+
return Buffer.concat([hashBuf, versionBuf, prevHash, merkleRoot, tsBuf, bitsBuf, nonceBuf, heightBuf, chainworkBuf ]);
4242
};
4343

4444
Encoding.prototype.decodeHeaderValue = function(buffer) {

lib/services/header/index.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ var BN = require('bn.js');
1111
var consensus = require('bcoin').consensus;
1212
var assert = require('assert');
1313
var constants = require('../../constants');
14+
var Header = require('bitcore-lib').BlockHeader;
1415

1516
var HeaderService = function(options) {
1617

@@ -215,6 +216,9 @@ HeaderService.prototype._onHeaders = function(headers) {
215216
var dbOps = [];
216217
for(var i = 0; i < headers.length; i++) {
217218
var header = headers[i];
219+
if (header instanceof Header) {
220+
header = header.toObject();
221+
}
218222
header.height = ++self._tip.height;
219223
self._tip.hash = header.hash;
220224
header.chainwork = self._getChainwork(header, prevHeader).toString(16, 64);

lib/services/p2p/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@ P2P.prototype._setListeners = function() {
307307
self._pool.on('peertx', self._onPeerTx.bind(self));
308308
self._pool.on('peerblock', self._onPeerBlock.bind(self));
309309
self._pool.on('peerheaders', self._onPeerHeaders.bind(self));
310-
self.node.once('ready', self._connect.bind(self));
310+
self.node.on('ready', self._connect.bind(self));
311311
if (self._bcoin) {
312312
self._bcoin.emitter.once('connect', self._connect.bind(self));
313313
}
@@ -333,7 +333,7 @@ P2P.prototype._setResourceFilter = function(filter, resource) {
333333

334334
P2P.prototype._startBcoin = function() {
335335
this._bcoin = new Bcoin({
336-
network: this.node.getNetworkName(),
336+
network: this.node.network,
337337
prefix: this.node.datadir
338338
});
339339
this._bcoin.start();

test/services/address/index.unit.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,7 @@ describe('Address Service', function() {
205205

206206
it('should reorg', function() {
207207
var getAddressString = sandbox.stub().returns('a');
208+
var oldEncodeTip = utils.encodeTip;
208209
var encodeTip = sandbox.stub().returns({ key: 'key', value: 'value' });
209210
var batch = sandbox.stub();
210211
addressService._tip = { height: 100 };
@@ -216,6 +217,7 @@ describe('Address Service', function() {
216217
addressService._onReorg(oldList, common);
217218
expect(batch.calledOnce).to.be.true;
218219
expect(encodeTip.calledOnce).to.be.true;
220+
utils.encodeTip = oldEncodeTip;
219221
});
220222

221223
});

test/services/header/encoding.unit.js

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,21 +11,24 @@ describe('Header service encoding', function() {
1111
var hash = '91b58f19b6eecba94ed0f6e463e8e334ec0bcda7880e2985c82a8f32e4d03add';
1212
var hashBuf = new Buffer(hash, 'hex');
1313
var header = {
14+
hash: hash,
1415
prevHash: '91b58f19b6eecba94ed0f6e463e8e334ec0bcda7880e2985c82a8f32e4d03ade',
1516
version: 0x2000012,
1617
merkleRoot: '91b58f19b6eecba94ed0f6e463e8e334ec0bcda7880e2985c82a8f32e4d03adf',
1718
timestamp: 1E9,
1819
bits: 400000,
1920
nonce: 123456,
20-
height: 123
21+
height: 123,
22+
chainwork: '0000000000000000000000000000000000000000000000000000000200020002'
2123
};
2224
var versionBuf = new Buffer(4);
23-
var prevHash = new Buffer(header.prevHash, 'hex');
24-
var merkleRoot = new Buffer(header.merkleRoot, 'hex');
25+
var prevHashBuf = new Buffer(header.prevHash, 'hex');
26+
var merkleRootBuf = new Buffer(header.merkleRoot, 'hex');
2527
var tsBuf = new Buffer(4);
2628
var bitsBuf = new Buffer(4);
2729
var nonceBuf = new Buffer(4);
2830
var heightBuf = new Buffer(4);
31+
var chainBuf = new Buffer('0000000000000000000000000000000000000000000000000000000200020002', 'hex');
2932
heightBuf.writeUInt32BE(header.height);
3033

3134
it('should encode header key' , function() {
@@ -38,17 +41,17 @@ describe('Header service encoding', function() {
3841
});
3942

4043
it('should encode header value', function() {
44+
var prevHashBuf = new Buffer(header.prevHash, 'hex');
4145
versionBuf.writeInt32BE(header.version); // signed
4246
tsBuf.writeUInt32BE(header.timestamp);
4347
bitsBuf.writeUInt32BE(header.bits);
4448
nonceBuf.writeUInt32BE(header.nonce);
4549
heightBuf.writeUInt32BE(header.height);
46-
var chainBuf = new Buffer('0000000000000000000000000000000000000000000000000000000200020002', 'hex');
4750
encoding.encodeHeaderValue(header).should.deep.equal(Buffer.concat([
4851
hashBuf,
4952
versionBuf,
50-
prevHash,
51-
merkleRoot,
53+
prevHashBuf,
54+
merkleRootBuf,
5255
tsBuf,
5356
bitsBuf,
5457
nonceBuf,
@@ -59,13 +62,15 @@ describe('Header service encoding', function() {
5962

6063
it('should decode header value', function() {
6164
encoding.decodeHeaderValue(Buffer.concat([
65+
hashBuf,
6266
versionBuf,
63-
prevHash,
64-
merkleRoot,
67+
prevHashBuf,
68+
merkleRootBuf,
6569
tsBuf,
6670
bitsBuf,
6771
nonceBuf,
68-
heightBuf
72+
heightBuf,
73+
chainBuf
6974
])).should.deep.equal(header);
7075
});
7176
});

test/services/header/index.unit.js

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,15 @@ var assert = chai.assert;
77
var expect = chai.expect;
88
var Encoding = require('../../../lib/services/header/encoding');
99
var utils = require('../../../lib/utils');
10-
var EventEmitter = require('events').EventEmitter;
11-
var Block = require('bcoin').block;
12-
var BitcoreBlock = require('bitcore-lib').Block;
10+
var Block = require('bitcore-lib').Block;
1311
var BN = require('bn.js');
1412

1513
describe('Header Service', function() {
1614

1715
var headerService;
1816
var sandbox;
19-
var prevHeader = new BitcoreBlock(new Buffer('01000000b25c0849b469983b4a5b90a49e4c0e4ba3853122ed141b5bd92d14000000000021a8aaa4995e4ce3b885677730b153741feda66a08492287a45c6a131671ba5a72ff504c5a0c011c456e4d060201000000010000000000000000000000000000000000000000000000000000000000000000ffffffff08045a0c011c028208ffffffff0100f2052a010000004341041994d910507ec4b2135dd32a4723caf00f8567f356ffbd5e703786d856b49a89d6597c280d8981238fbde81fa3767161bc3e994c17be41b42235a61c24c73459ac0000000001000000013b517d1aebd89b4034e0cf9b25ecbe82ef162ce71284e92a1f1adebf44ea1409000000008b483045022100c7ebc62e89740ddab42a64435c996e1c91a063f9f2cc004b4f023f7a1be5234402207608837faebec16049461d4ef7de807ce217040fd2a823a29da16ec07e463d440141048f108c0da4b5be3308e2e0b521d02d341de85b36a29285b47f00bc33e57a89cf4b6e76aa4a48ddc9a5e882620779e0f1b19dc98d478052fbd544167c745be1d8ffffffff010026e85a050000001976a914f760ef90462b0a4bde26d597c1f29324f5cd0fc488ac00000000', 'hex'));
20-
var header = new BitcoreBlock(new Buffer('010000006a39821735ec18a366d95b391a7ff10dee181a198f1789b0550e0d00000000002b0c80fa52b669022c344c3e09e6bb9698ab90707bb4bb412af3fbf31cfd2163a601514c5a0c011c572aef0f0101000000010000000000000000000000000000000000000000000000000000000000000000ffffffff08045a0c011c022003ffffffff0100f2052a01000000434104c5b694d72e601091fd733c6b18b94795c13e2db6b1474747e7be914b407854cad37cee3058f85373b9f9dbb0014e541c45851d5f85e83a1fd7c45e54423718f3ac00000000', 'hex')).header;
17+
var prevHeader = new Block(new Buffer('01000000b25c0849b469983b4a5b90a49e4c0e4ba3853122ed141b5bd92d14000000000021a8aaa4995e4ce3b885677730b153741feda66a08492287a45c6a131671ba5a72ff504c5a0c011c456e4d060201000000010000000000000000000000000000000000000000000000000000000000000000ffffffff08045a0c011c028208ffffffff0100f2052a010000004341041994d910507ec4b2135dd32a4723caf00f8567f356ffbd5e703786d856b49a89d6597c280d8981238fbde81fa3767161bc3e994c17be41b42235a61c24c73459ac0000000001000000013b517d1aebd89b4034e0cf9b25ecbe82ef162ce71284e92a1f1adebf44ea1409000000008b483045022100c7ebc62e89740ddab42a64435c996e1c91a063f9f2cc004b4f023f7a1be5234402207608837faebec16049461d4ef7de807ce217040fd2a823a29da16ec07e463d440141048f108c0da4b5be3308e2e0b521d02d341de85b36a29285b47f00bc33e57a89cf4b6e76aa4a48ddc9a5e882620779e0f1b19dc98d478052fbd544167c745be1d8ffffffff010026e85a050000001976a914f760ef90462b0a4bde26d597c1f29324f5cd0fc488ac00000000', 'hex')).header.toObject();
18+
var header = new Block(new Buffer('010000006a39821735ec18a366d95b391a7ff10dee181a198f1789b0550e0d00000000002b0c80fa52b669022c344c3e09e6bb9698ab90707bb4bb412af3fbf31cfd2163a601514c5a0c011c572aef0f0101000000010000000000000000000000000000000000000000000000000000000000000000ffffffff08045a0c011c022003ffffffff0100f2052a01000000434104c5b694d72e601091fd733c6b18b94795c13e2db6b1474747e7be914b407854cad37cee3058f85373b9f9dbb0014e541c45851d5f85e83a1fd7c45e54423718f3ac00000000', 'hex')).header.toObject();
2119
beforeEach(function() {
2220
sandbox = sinon.sandbox.create();
2321
headerService = new HeaderService({
@@ -122,6 +120,7 @@ describe('Header Service', function() {
122120
header.chainwork = '0000000000000000000000000000000000000000000000000000000000000001';
123121

124122
expect(batch.calledOnce).to.be.true;
123+
expect(getChainwork.calledOnce).to.be.true;
125124
var expected = batch.args[0][0];
126125

127126
expect(expected[0]).to.deep.equal({

test/services/web/web.unit.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ describe('WebService', function() {
8282
it('should pass json request limit to json body parser', function(done) {
8383
var node = new EventEmitter();
8484
var jsonStub = sinon.stub();
85-
var TestWebService = proxyquire('../../lib/services/web', {
85+
var TestWebService = proxyquire('../../../lib/services/web', {
8686
http: {
8787
createServer: sinon.stub()
8888
},

0 commit comments

Comments
 (0)