updated bitconid integration test to use exposed message constructors
This commit is contained in:
parent
641443f6dd
commit
4ecb34e123
@ -94,7 +94,7 @@ describe('Integration with ' + network.name + ' bitcoind', function() {
|
|||||||
});
|
});
|
||||||
cb();
|
cb();
|
||||||
});
|
});
|
||||||
var message = messages.build('getaddr');
|
var message = messages.GetAddr();
|
||||||
peer.sendMessage(message);
|
peer.sendMessage(message);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -108,9 +108,9 @@ describe('Integration with ' + network.name + ' bitcoind', function() {
|
|||||||
should.exist(message.transaction);
|
should.exist(message.transaction);
|
||||||
cb();
|
cb();
|
||||||
});
|
});
|
||||||
peer.once('inv', function(m) {
|
peer.once('inv', function(message) {
|
||||||
var message = messages.build('getdata', {inventory: m.inventory});
|
var get = messages.GetData(message.inventory);
|
||||||
peer.sendMessage(message);
|
peer.sendMessage(get);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -125,7 +125,7 @@ describe('Integration with ' + network.name + ' bitcoind', function() {
|
|||||||
message.inventory.should.deep.equal(inv);
|
message.inventory.should.deep.equal(inv);
|
||||||
cb();
|
cb();
|
||||||
});
|
});
|
||||||
var message = messages.build('inv', {inventory: inv});
|
var message = messages.Inventory(inv);
|
||||||
message.inventory[0].hash.length.should.equal(32);
|
message.inventory[0].hash.length.should.equal(32);
|
||||||
peer.sendMessage(message);
|
peer.sendMessage(message);
|
||||||
});
|
});
|
||||||
@ -136,23 +136,22 @@ describe('Integration with ' + network.name + ' bitcoind', function() {
|
|||||||
(message.block instanceof Block).should.equal(true);
|
(message.block instanceof Block).should.equal(true);
|
||||||
cb();
|
cb();
|
||||||
});
|
});
|
||||||
var inventory = Inventory.forBlock(blockHash[network.name]);
|
var message = messages.GetData.forBlock(blockHash[network.name]);
|
||||||
var message = messages.build('getdata', {inventory: [inventory]});
|
|
||||||
peer.sendMessage(message);
|
peer.sendMessage(message);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
var fakeHash = 'e2dfb8afe1575bfacae1a0b4afc49af7ddda69285857267bae0e22be15f74a3a';
|
var fakeHash = 'e2dfb8afe1575bfacae1a0b4afc49af7ddda69285857267bae0e22be15f74a3a';
|
||||||
it('handles request tx data not found', function(cb) {
|
it('handles request tx data not found', function(cb) {
|
||||||
connect(function(peer) {
|
connect(function(peer) {
|
||||||
var inventory = Inventory.forTransaction(fakeHash);
|
var expected = messages.NotFound.forTransaction(fakeHash);
|
||||||
var expected = messages.build('notfound', {inventory: [inventory]});
|
|
||||||
peer.once('notfound', function(message) {
|
peer.once('notfound', function(message) {
|
||||||
message.command.should.equal('notfound');
|
(message instanceof messages.NotFound).should.equal(true);
|
||||||
message.inventory[0].type.should.equal(Inventory.TYPE.TX);
|
message.inventory[0].type.should.equal(Inventory.TYPE.TX);
|
||||||
message.inventory[0].hash.toString('hex').should.equal(inventory.hash.toString('hex'));
|
var expectedHash = expected.inventory[0].hash.toString('hex');
|
||||||
|
message.inventory[0].hash.toString('hex').should.equal(expectedHash);
|
||||||
cb();
|
cb();
|
||||||
});
|
});
|
||||||
var message = messages.build('getdata', {inventory: [inventory]});
|
var message = messages.GetData.forTransaction(fakeHash);
|
||||||
peer.sendMessage(message);
|
peer.sendMessage(message);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -161,11 +160,11 @@ describe('Integration with ' + network.name + ' bitcoind', function() {
|
|||||||
it('gets headers', function(cb) {
|
it('gets headers', function(cb) {
|
||||||
connect(function(peer) {
|
connect(function(peer) {
|
||||||
peer.once('headers', function(message) {
|
peer.once('headers', function(message) {
|
||||||
message.command.should.equal('headers');
|
(message instanceof messages.Headers).should.equal(true);
|
||||||
message.headers.length.should.equal(3);
|
message.headers.length.should.equal(3);
|
||||||
cb();
|
cb();
|
||||||
});
|
});
|
||||||
var message = messages.build('getheaders', {starts: from, stop: stop});
|
var message = messages.GetHeaders({starts: from, stop: stop});
|
||||||
peer.sendMessage(message);
|
peer.sendMessage(message);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -178,7 +177,7 @@ describe('Integration with ' + network.name + ' bitcoind', function() {
|
|||||||
cb();
|
cb();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
var message = messages.build('getblocks', {starts: from, stop: stop});
|
var message = messages.GetBlocks({starts: from, stop: stop});
|
||||||
peer.sendMessage(message);
|
peer.sendMessage(message);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -196,16 +195,14 @@ describe('Integration with ' + network.name + ' bitcoind', function() {
|
|||||||
};
|
};
|
||||||
it('sends block inv and receives getdata', function(cb) {
|
it('sends block inv and receives getdata', function(cb) {
|
||||||
var randomHash = new Buffer(Random.getRandomBuffer(32)); // slow buffer
|
var randomHash = new Buffer(Random.getRandomBuffer(32)); // slow buffer
|
||||||
var inventory = Inventory.forBlock(randomHash);
|
var expected = messages.GetData.forBlock(randomHash);
|
||||||
var expected = messages.build('getdata', {inventory: [inventory]});
|
var message = messages.Inventory.forBlock(randomHash);
|
||||||
var message = messages.build('inv', {inventory: [inventory]});
|
|
||||||
testInvGetData(expected, message, cb);
|
testInvGetData(expected, message, cb);
|
||||||
});
|
});
|
||||||
it('sends tx inv and receives getdata', function(cb) {
|
it('sends tx inv and receives getdata', function(cb) {
|
||||||
var randomHash = new Buffer(Random.getRandomBuffer(32)); // slow buffer
|
var randomHash = new Buffer(Random.getRandomBuffer(32)); // slow buffer
|
||||||
var inventory = Inventory.forTransaction(randomHash);
|
var expected = messages.GetData.forTransaction(randomHash);
|
||||||
var expected = messages.build('getdata', {inventory: [inventory]});
|
var message = messages.Inventory.forTransaction(randomHash);
|
||||||
var message = messages.build('inv', {inventory: [inventory]});
|
|
||||||
testInvGetData(expected, message, cb);
|
testInvGetData(expected, message, cb);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@ -13,7 +13,6 @@ function Inventory(obj) {
|
|||||||
throw new TypeError('Unexpected hash, expected to be a buffer');
|
throw new TypeError('Unexpected hash, expected to be a buffer');
|
||||||
}
|
}
|
||||||
this.hash = obj.hash;
|
this.hash = obj.hash;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Inventory.forItem = function(type, hash) {
|
Inventory.forItem = function(type, hash) {
|
||||||
|
|||||||
@ -10,6 +10,9 @@ var BufferWriter = bitcore.encoding.BufferWriter;
|
|||||||
var magicNumber = bitcore.Networks.defaultNetwork.networkMagic.readUInt32LE(0);
|
var magicNumber = bitcore.Networks.defaultNetwork.networkMagic.readUInt32LE(0);
|
||||||
|
|
||||||
function AddrMessage(options) {
|
function AddrMessage(options) {
|
||||||
|
if (!(this instanceof AddrMessage)) {
|
||||||
|
return new AddrMessage(options);
|
||||||
|
}
|
||||||
Message.call(this, options);
|
Message.call(this, options);
|
||||||
this.command = 'addr';
|
this.command = 'addr';
|
||||||
this.magicNumber = magicNumber;
|
this.magicNumber = magicNumber;
|
||||||
|
|||||||
@ -10,6 +10,9 @@ var BufferWriter = bitcore.encoding.BufferWriter;
|
|||||||
var magicNumber = bitcore.Networks.defaultNetwork.networkMagic.readUInt32LE(0);
|
var magicNumber = bitcore.Networks.defaultNetwork.networkMagic.readUInt32LE(0);
|
||||||
|
|
||||||
function AlertMessage(options) {
|
function AlertMessage(options) {
|
||||||
|
if (!(this instanceof AlertMessage)) {
|
||||||
|
return new AlertMessage(options);
|
||||||
|
}
|
||||||
Message.call(this, options);
|
Message.call(this, options);
|
||||||
this.magicNumber = magicNumber;
|
this.magicNumber = magicNumber;
|
||||||
this.command = 'alert';
|
this.command = 'alert';
|
||||||
|
|||||||
@ -8,6 +8,9 @@ var Block = bitcore.Block;
|
|||||||
var magicNumber = bitcore.Networks.defaultNetwork.networkMagic.readUInt32LE(0);
|
var magicNumber = bitcore.Networks.defaultNetwork.networkMagic.readUInt32LE(0);
|
||||||
|
|
||||||
function BlockMessage(options) {
|
function BlockMessage(options) {
|
||||||
|
if (!(this instanceof BlockMessage)) {
|
||||||
|
return new BlockMessage(options);
|
||||||
|
}
|
||||||
Message.call(this, options);
|
Message.call(this, options);
|
||||||
this.command = 'block';
|
this.command = 'block';
|
||||||
this.magicNumber = magicNumber;
|
this.magicNumber = magicNumber;
|
||||||
|
|||||||
@ -18,6 +18,9 @@ var magicNumber = bitcore.Networks.defaultNetwork.networkMagic.readUInt32LE(0);
|
|||||||
* @param{Buffer} data - Array of bytes representing bloom filter data
|
* @param{Buffer} data - Array of bytes representing bloom filter data
|
||||||
*/
|
*/
|
||||||
function FilteraddMessage(options) {
|
function FilteraddMessage(options) {
|
||||||
|
if (!(this instanceof FilteraddMessage)) {
|
||||||
|
return new FilteraddMessage(options);
|
||||||
|
}
|
||||||
Message.call(this, options);
|
Message.call(this, options);
|
||||||
this.magicNumber = magicNumber;
|
this.magicNumber = magicNumber;
|
||||||
this.command = 'filteradd';
|
this.command = 'filteradd';
|
||||||
|
|||||||
@ -8,6 +8,9 @@ var BufferUtil = bitcore.util.buffer;
|
|||||||
var magicNumber = bitcore.Networks.defaultNetwork.networkMagic.readUInt32LE(0);
|
var magicNumber = bitcore.Networks.defaultNetwork.networkMagic.readUInt32LE(0);
|
||||||
|
|
||||||
function FilterclearMessage(options) {
|
function FilterclearMessage(options) {
|
||||||
|
if (!(this instanceof FilterclearMessage)) {
|
||||||
|
return new FilterclearMessage(options);
|
||||||
|
}
|
||||||
Message.call(this, options);
|
Message.call(this, options);
|
||||||
this.magicNumber = magicNumber;
|
this.magicNumber = magicNumber;
|
||||||
this.command = 'filterclear';
|
this.command = 'filterclear';
|
||||||
|
|||||||
@ -11,6 +11,9 @@ var _ = bitcore.deps._;
|
|||||||
var magicNumber = bitcore.Networks.defaultNetwork.networkMagic.readUInt32LE(0);
|
var magicNumber = bitcore.Networks.defaultNetwork.networkMagic.readUInt32LE(0);
|
||||||
|
|
||||||
function FilterloadMessage(options) {
|
function FilterloadMessage(options) {
|
||||||
|
if (!(this instanceof FilterloadMessage)) {
|
||||||
|
return new FilterloadMessage(options);
|
||||||
|
}
|
||||||
Message.call(this, options);
|
Message.call(this, options);
|
||||||
this.magicNumber = magicNumber;
|
this.magicNumber = magicNumber;
|
||||||
this.command = 'filterload';
|
this.command = 'filterload';
|
||||||
|
|||||||
@ -8,6 +8,9 @@ var BufferUtil = bitcore.util.buffer;
|
|||||||
var magicNumber = bitcore.Networks.defaultNetwork.networkMagic.readUInt32LE(0);
|
var magicNumber = bitcore.Networks.defaultNetwork.networkMagic.readUInt32LE(0);
|
||||||
|
|
||||||
function GetaddrMessage(options) {
|
function GetaddrMessage(options) {
|
||||||
|
if (!(this instanceof GetaddrMessage)) {
|
||||||
|
return new GetaddrMessage(options);
|
||||||
|
}
|
||||||
if (!options) {
|
if (!options) {
|
||||||
options = {};
|
options = {};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -20,6 +20,9 @@ var magicNumber = bitcore.Networks.defaultNetwork.networkMagic.readUInt32LE(0);
|
|||||||
* @param{Buffer} [stop] - hash of the last block
|
* @param{Buffer} [stop] - hash of the last block
|
||||||
*/
|
*/
|
||||||
function GetblocksMessage(options) {
|
function GetblocksMessage(options) {
|
||||||
|
if (!(this instanceof GetblocksMessage)) {
|
||||||
|
return new GetblocksMessage(options);
|
||||||
|
}
|
||||||
Message.call(this, options);
|
Message.call(this, options);
|
||||||
this.command = 'getblocks';
|
this.command = 'getblocks';
|
||||||
this.version = protocolVersion;
|
this.version = protocolVersion;
|
||||||
|
|||||||
@ -6,17 +6,43 @@ var bitcore = require('bitcore');
|
|||||||
var utils = require('../utils');
|
var utils = require('../utils');
|
||||||
var BufferReader = bitcore.encoding.BufferReader;
|
var BufferReader = bitcore.encoding.BufferReader;
|
||||||
var BufferWriter = bitcore.encoding.BufferWriter;
|
var BufferWriter = bitcore.encoding.BufferWriter;
|
||||||
|
var Inventory = require('../../inventory');
|
||||||
|
var _ = bitcore.deps._;
|
||||||
|
|
||||||
var magicNumber = bitcore.Networks.defaultNetwork.networkMagic.readUInt32LE(0);
|
var magicNumber = bitcore.Networks.defaultNetwork.networkMagic.readUInt32LE(0);
|
||||||
|
|
||||||
function GetdataMessage(options) {
|
function GetdataMessage(options) {
|
||||||
|
if (!(this instanceof GetdataMessage)) {
|
||||||
|
return new GetdataMessage(options);
|
||||||
|
}
|
||||||
Message.call(this, options);
|
Message.call(this, options);
|
||||||
this.command = 'getdata';
|
this.command = 'getdata';
|
||||||
this.magicNumber = magicNumber;
|
this.magicNumber = magicNumber;
|
||||||
this.inventory = options.inventory;
|
|
||||||
|
var inventory;
|
||||||
|
if (_.isArray(options)) {
|
||||||
|
inventory = options;
|
||||||
|
} else {
|
||||||
|
inventory = options.inventory;
|
||||||
|
}
|
||||||
|
|
||||||
|
utils.checkInventory(inventory);
|
||||||
|
this.inventory = inventory;
|
||||||
}
|
}
|
||||||
inherits(GetdataMessage, Message);
|
inherits(GetdataMessage, Message);
|
||||||
|
|
||||||
|
GetdataMessage.forTransaction = function(hash) {
|
||||||
|
return new GetdataMessage([Inventory.forTransaction(hash)]);
|
||||||
|
};
|
||||||
|
|
||||||
|
GetdataMessage.forBlock = function(hash) {
|
||||||
|
return new GetdataMessage([Inventory.forBlock(hash)]);
|
||||||
|
};
|
||||||
|
|
||||||
|
GetdataMessage.forFilteredBlock = function(hash) {
|
||||||
|
return new GetdataMessage([Inventory.forFilteredBlock(hash)]);
|
||||||
|
};
|
||||||
|
|
||||||
GetdataMessage.fromObject = function(options) {
|
GetdataMessage.fromObject = function(options) {
|
||||||
return new GetdataMessage(options);
|
return new GetdataMessage(options);
|
||||||
};
|
};
|
||||||
|
|||||||
@ -18,6 +18,9 @@ var magicNumber = bitcore.Networks.defaultNetwork.networkMagic.readUInt32LE(0);
|
|||||||
* @param{Buffer} [stop] - hash of the last block
|
* @param{Buffer} [stop] - hash of the last block
|
||||||
*/
|
*/
|
||||||
function GetheadersMessage(options) {
|
function GetheadersMessage(options) {
|
||||||
|
if (!(this instanceof GetheadersMessage)) {
|
||||||
|
return new GetheadersMessage(options);
|
||||||
|
}
|
||||||
Message.call(this, options);
|
Message.call(this, options);
|
||||||
this.command = 'getheaders';
|
this.command = 'getheaders';
|
||||||
this.version = protocolVersion;
|
this.version = protocolVersion;
|
||||||
|
|||||||
@ -18,6 +18,9 @@ var magicNumber = bitcore.Networks.defaultNetwork.networkMagic.readUInt32LE(0);
|
|||||||
* @param{Array} blockheaders - array of block headers
|
* @param{Array} blockheaders - array of block headers
|
||||||
*/
|
*/
|
||||||
function HeadersMessage(options) {
|
function HeadersMessage(options) {
|
||||||
|
if (!(this instanceof HeadersMessage)) {
|
||||||
|
return new HeadersMessage(options);
|
||||||
|
}
|
||||||
Message.call(this, options);
|
Message.call(this, options);
|
||||||
this.magicNumber = magicNumber;
|
this.magicNumber = magicNumber;
|
||||||
this.command = 'headers';
|
this.command = 'headers';
|
||||||
|
|||||||
@ -6,17 +6,42 @@ var bitcore = require('bitcore');
|
|||||||
var utils = require('../utils');
|
var utils = require('../utils');
|
||||||
var BufferReader = bitcore.encoding.BufferReader;
|
var BufferReader = bitcore.encoding.BufferReader;
|
||||||
var BufferWriter = bitcore.encoding.BufferWriter;
|
var BufferWriter = bitcore.encoding.BufferWriter;
|
||||||
|
var Inventory = require('../../inventory');
|
||||||
|
var _ = bitcore.deps._;
|
||||||
|
|
||||||
var magicNumber = bitcore.Networks.defaultNetwork.networkMagic.readUInt32LE(0);
|
var magicNumber = bitcore.Networks.defaultNetwork.networkMagic.readUInt32LE(0);
|
||||||
|
|
||||||
function InvMessage(options) {
|
function InvMessage(options) {
|
||||||
|
if (!(this instanceof InvMessage)) {
|
||||||
|
return new InvMessage(options);
|
||||||
|
}
|
||||||
Message.call(this, options);
|
Message.call(this, options);
|
||||||
this.command = 'inv';
|
this.command = 'inv';
|
||||||
this.magicNumber = magicNumber;
|
this.magicNumber = magicNumber;
|
||||||
this.inventory = options.inventory;
|
|
||||||
|
var inventory;
|
||||||
|
if (_.isArray(options)) {
|
||||||
|
inventory = options;
|
||||||
|
} else {
|
||||||
|
inventory = options.inventory;
|
||||||
|
}
|
||||||
|
utils.checkInventory(inventory);
|
||||||
|
this.inventory = inventory;
|
||||||
}
|
}
|
||||||
inherits(InvMessage, Message);
|
inherits(InvMessage, Message);
|
||||||
|
|
||||||
|
InvMessage.forTransaction = function(hash) {
|
||||||
|
return new InvMessage([Inventory.forTransaction(hash)]);
|
||||||
|
};
|
||||||
|
|
||||||
|
InvMessage.forBlock = function(hash) {
|
||||||
|
return new InvMessage([Inventory.forBlock(hash)]);
|
||||||
|
};
|
||||||
|
|
||||||
|
InvMessage.forFilteredBlock = function(hash) {
|
||||||
|
return new InvMessage([Inventory.forFilteredBlock(hash)]);
|
||||||
|
};
|
||||||
|
|
||||||
InvMessage.fromObject = function(options) {
|
InvMessage.fromObject = function(options) {
|
||||||
return new InvMessage(options);
|
return new InvMessage(options);
|
||||||
};
|
};
|
||||||
|
|||||||
@ -8,6 +8,9 @@ var BufferUtil = bitcore.util.buffer;
|
|||||||
var magicNumber = bitcore.Networks.defaultNetwork.networkMagic.readUInt32LE(0);
|
var magicNumber = bitcore.Networks.defaultNetwork.networkMagic.readUInt32LE(0);
|
||||||
|
|
||||||
function MempoolMessage(options) {
|
function MempoolMessage(options) {
|
||||||
|
if (!(this instanceof MempoolMessage)) {
|
||||||
|
return new MempoolMessage(options);
|
||||||
|
}
|
||||||
Message.call(this, options);
|
Message.call(this, options);
|
||||||
this.magicNumber = magicNumber;
|
this.magicNumber = magicNumber;
|
||||||
this.command = 'mempool';
|
this.command = 'mempool';
|
||||||
|
|||||||
@ -17,6 +17,9 @@ var magicNumber = bitcore.Networks.defaultNetwork.networkMagic.readUInt32LE(0);
|
|||||||
* @param {MerkleBlock} block
|
* @param {MerkleBlock} block
|
||||||
*/
|
*/
|
||||||
function MerkleblockMessage(options) {
|
function MerkleblockMessage(options) {
|
||||||
|
if (!(this instanceof MerkleblockMessage)) {
|
||||||
|
return new MerkleblockMessage(options);
|
||||||
|
}
|
||||||
Message.call(this, options);
|
Message.call(this, options);
|
||||||
this.magicNumber = magicNumber;
|
this.magicNumber = magicNumber;
|
||||||
this.command = 'merkleblock';
|
this.command = 'merkleblock';
|
||||||
|
|||||||
@ -6,17 +6,42 @@ var bitcore = require('bitcore');
|
|||||||
var utils = require('../utils');
|
var utils = require('../utils');
|
||||||
var BufferReader = bitcore.encoding.BufferReader;
|
var BufferReader = bitcore.encoding.BufferReader;
|
||||||
var BufferWriter = bitcore.encoding.BufferWriter;
|
var BufferWriter = bitcore.encoding.BufferWriter;
|
||||||
|
var Inventory = require('../../inventory');
|
||||||
|
var _ = bitcore.deps._;
|
||||||
|
|
||||||
var magicNumber = bitcore.Networks.defaultNetwork.networkMagic.readUInt32LE(0);
|
var magicNumber = bitcore.Networks.defaultNetwork.networkMagic.readUInt32LE(0);
|
||||||
|
|
||||||
function NotfoundMessage(options) {
|
function NotfoundMessage(options) {
|
||||||
|
if (!(this instanceof NotfoundMessage)) {
|
||||||
|
return new NotfoundMessage(options);
|
||||||
|
}
|
||||||
Message.call(this, options);
|
Message.call(this, options);
|
||||||
this.command = 'notfound';
|
this.command = 'notfound';
|
||||||
this.magicNumber = magicNumber;
|
this.magicNumber = magicNumber;
|
||||||
this.inventory = options.inventory;
|
|
||||||
|
var inventory;
|
||||||
|
if (_.isArray(options)) {
|
||||||
|
inventory = options;
|
||||||
|
} else {
|
||||||
|
inventory = options.inventory;
|
||||||
|
}
|
||||||
|
utils.checkInventory(inventory);
|
||||||
|
this.inventory = inventory;
|
||||||
}
|
}
|
||||||
inherits(NotfoundMessage, Message);
|
inherits(NotfoundMessage, Message);
|
||||||
|
|
||||||
|
NotfoundMessage.forTransaction = function(hash) {
|
||||||
|
return new NotfoundMessage([Inventory.forTransaction(hash)]);
|
||||||
|
};
|
||||||
|
|
||||||
|
NotfoundMessage.forBlock = function(hash) {
|
||||||
|
return new NotfoundMessage([Inventory.forBlock(hash)]);
|
||||||
|
};
|
||||||
|
|
||||||
|
NotfoundMessage.forFilteredBlock = function(hash) {
|
||||||
|
return new NotfoundMessage([Inventory.forFilteredBlock(hash)]);
|
||||||
|
};
|
||||||
|
|
||||||
NotfoundMessage.fromObject = function(options) {
|
NotfoundMessage.fromObject = function(options) {
|
||||||
return new NotfoundMessage(options);
|
return new NotfoundMessage(options);
|
||||||
};
|
};
|
||||||
|
|||||||
@ -9,6 +9,9 @@ var BufferReader = bitcore.encoding.BufferReader;
|
|||||||
var magicNumber = bitcore.Networks.defaultNetwork.networkMagic.readUInt32LE(0);
|
var magicNumber = bitcore.Networks.defaultNetwork.networkMagic.readUInt32LE(0);
|
||||||
|
|
||||||
function PingMessage(options) {
|
function PingMessage(options) {
|
||||||
|
if (!(this instanceof PingMessage)) {
|
||||||
|
return new PingMessage(options);
|
||||||
|
}
|
||||||
if (!options) {
|
if (!options) {
|
||||||
options = {};
|
options = {};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,6 +9,9 @@ var BufferReader = bitcore.encoding.BufferReader;
|
|||||||
var magicNumber = bitcore.Networks.defaultNetwork.networkMagic.readUInt32LE(0);
|
var magicNumber = bitcore.Networks.defaultNetwork.networkMagic.readUInt32LE(0);
|
||||||
|
|
||||||
function PongMessage(options) {
|
function PongMessage(options) {
|
||||||
|
if (!(this instanceof PongMessage)) {
|
||||||
|
return new PongMessage(options);
|
||||||
|
}
|
||||||
Message.call(this, options);
|
Message.call(this, options);
|
||||||
this.command = 'pong';
|
this.command = 'pong';
|
||||||
this.magicNumber = magicNumber;
|
this.magicNumber = magicNumber;
|
||||||
|
|||||||
@ -9,6 +9,9 @@ var magicNumber = bitcore.Networks.defaultNetwork.networkMagic.readUInt32LE(0);
|
|||||||
|
|
||||||
// todo: add payload: https://en.bitcoin.it/wiki/Protocol_documentation#reject
|
// todo: add payload: https://en.bitcoin.it/wiki/Protocol_documentation#reject
|
||||||
function RejectMessage(options) {
|
function RejectMessage(options) {
|
||||||
|
if (!(this instanceof RejectMessage)) {
|
||||||
|
return new RejectMessage(options);
|
||||||
|
}
|
||||||
Message.call(this, options);
|
Message.call(this, options);
|
||||||
this.magicNumber = magicNumber;
|
this.magicNumber = magicNumber;
|
||||||
this.command = 'reject';
|
this.command = 'reject';
|
||||||
|
|||||||
@ -8,6 +8,9 @@ var Transaction = bitcore.Transaction;
|
|||||||
var magicNumber = bitcore.Networks.defaultNetwork.networkMagic.readUInt32LE(0);
|
var magicNumber = bitcore.Networks.defaultNetwork.networkMagic.readUInt32LE(0);
|
||||||
|
|
||||||
function TransactionMessage(options) {
|
function TransactionMessage(options) {
|
||||||
|
if (!(this instanceof TransactionMessage)) {
|
||||||
|
return new TransactionMessage(options);
|
||||||
|
}
|
||||||
Message.call(this, options);
|
Message.call(this, options);
|
||||||
this.command = 'tx';
|
this.command = 'tx';
|
||||||
this.magicNumber = magicNumber;
|
this.magicNumber = magicNumber;
|
||||||
|
|||||||
@ -8,6 +8,9 @@ var BufferUtil = bitcore.util.buffer;
|
|||||||
var magicNumber = bitcore.Networks.defaultNetwork.networkMagic.readUInt32LE(0);
|
var magicNumber = bitcore.Networks.defaultNetwork.networkMagic.readUInt32LE(0);
|
||||||
|
|
||||||
function VerackMessage(options) {
|
function VerackMessage(options) {
|
||||||
|
if (!(this instanceof VerackMessage)) {
|
||||||
|
return new VerackMessage(options);
|
||||||
|
}
|
||||||
if(!options) {
|
if(!options) {
|
||||||
options = {};
|
options = {};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -24,6 +24,9 @@ var packageInfo = require('../../../package.json');
|
|||||||
* @param{Buffer} obj.nonce - a random 8 byte buffer
|
* @param{Buffer} obj.nonce - a random 8 byte buffer
|
||||||
*/
|
*/
|
||||||
function VersionMessage(obj) {
|
function VersionMessage(obj) {
|
||||||
|
if (!(this instanceof VersionMessage)) {
|
||||||
|
return new VersionMessage(obj);
|
||||||
|
}
|
||||||
/* jshint maxcomplexity: 10 */
|
/* jshint maxcomplexity: 10 */
|
||||||
Message.call(this, obj);
|
Message.call(this, obj);
|
||||||
this.command = 'version';
|
this.command = 'version';
|
||||||
|
|||||||
@ -7,6 +7,14 @@ var _ = bitcore.deps._;
|
|||||||
var utils;
|
var utils;
|
||||||
|
|
||||||
module.exports = utils = {
|
module.exports = utils = {
|
||||||
|
checkInventory: function(inventory) {
|
||||||
|
$.checkArgument(
|
||||||
|
_.isUndefined(inventory) ||
|
||||||
|
inventory.length === 0 ||
|
||||||
|
(!_.isUndefined(inventory[0].type) && !_.isUndefined(inventory[0].hash)),
|
||||||
|
'Inventory must be an array of inventory objects'
|
||||||
|
);
|
||||||
|
},
|
||||||
checkFinished: function checkFinished(parser) {
|
checkFinished: function checkFinished(parser) {
|
||||||
if(!parser.finished()) {
|
if(!parser.finished()) {
|
||||||
throw new Error('Data still available after parsing');
|
throw new Error('Data still available after parsing');
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user