diff --git a/lib/messages/commands/addr.js b/lib/messages/commands/addr.js index e8c1772..83125f9 100644 --- a/lib/messages/commands/addr.js +++ b/lib/messages/commands/addr.js @@ -13,6 +13,9 @@ function AddrMessage(options) { if (!(this instanceof AddrMessage)) { return new AddrMessage(options); } + if(!options) { + options = {}; + } Message.call(this, options); this.command = 'addr'; this.magicNumber = magicNumber; diff --git a/lib/messages/commands/alert.js b/lib/messages/commands/alert.js index 17f7902..12b07cf 100644 --- a/lib/messages/commands/alert.js +++ b/lib/messages/commands/alert.js @@ -13,6 +13,9 @@ function AlertMessage(options) { if (!(this instanceof AlertMessage)) { return new AlertMessage(options); } + if(!options) { + options = {}; + } Message.call(this, options); this.magicNumber = magicNumber; this.command = 'alert'; diff --git a/lib/messages/commands/block.js b/lib/messages/commands/block.js index 29876de..e05bc1d 100644 --- a/lib/messages/commands/block.js +++ b/lib/messages/commands/block.js @@ -11,6 +11,9 @@ function BlockMessage(options) { if (!(this instanceof BlockMessage)) { return new BlockMessage(options); } + if(!options) { + options = {}; + } Message.call(this, options); this.command = 'block'; this.magicNumber = magicNumber; diff --git a/lib/messages/commands/filteradd.js b/lib/messages/commands/filteradd.js index ed67f8f..48ffc62 100644 --- a/lib/messages/commands/filteradd.js +++ b/lib/messages/commands/filteradd.js @@ -21,6 +21,9 @@ function FilteraddMessage(options) { if (!(this instanceof FilteraddMessage)) { return new FilteraddMessage(options); } + if(!options) { + options = {}; + } Message.call(this, options); this.magicNumber = magicNumber; this.command = 'filteradd'; diff --git a/lib/messages/commands/filterclear.js b/lib/messages/commands/filterclear.js index 8acd582..3808254 100644 --- a/lib/messages/commands/filterclear.js +++ b/lib/messages/commands/filterclear.js @@ -11,6 +11,9 @@ function FilterclearMessage(options) { if (!(this instanceof FilterclearMessage)) { return new FilterclearMessage(options); } + if(!options) { + options = {}; + } Message.call(this, options); this.magicNumber = magicNumber; this.command = 'filterclear'; diff --git a/lib/messages/commands/filterload.js b/lib/messages/commands/filterload.js index 04c1a97..98acdf2 100644 --- a/lib/messages/commands/filterload.js +++ b/lib/messages/commands/filterload.js @@ -14,6 +14,9 @@ function FilterloadMessage(options) { if (!(this instanceof FilterloadMessage)) { return new FilterloadMessage(options); } + if(!options) { + options = {}; + } Message.call(this, options); this.magicNumber = magicNumber; this.command = 'filterload'; diff --git a/lib/messages/commands/getblocks.js b/lib/messages/commands/getblocks.js index 97ae5d7..26a78a5 100644 --- a/lib/messages/commands/getblocks.js +++ b/lib/messages/commands/getblocks.js @@ -23,6 +23,9 @@ function GetblocksMessage(options) { if (!(this instanceof GetblocksMessage)) { return new GetblocksMessage(options); } + if(!options) { + options = {}; + } Message.call(this, options); this.command = 'getblocks'; this.version = protocolVersion; diff --git a/lib/messages/commands/getdata.js b/lib/messages/commands/getdata.js index 266b17e..d23c82e 100644 --- a/lib/messages/commands/getdata.js +++ b/lib/messages/commands/getdata.js @@ -15,6 +15,9 @@ function GetdataMessage(options) { if (!(this instanceof GetdataMessage)) { return new GetdataMessage(options); } + if(!options) { + options = {}; + } Message.call(this, options); this.command = 'getdata'; this.magicNumber = magicNumber; diff --git a/lib/messages/commands/getheaders.js b/lib/messages/commands/getheaders.js index 0beb550..023cbd0 100644 --- a/lib/messages/commands/getheaders.js +++ b/lib/messages/commands/getheaders.js @@ -21,6 +21,9 @@ function GetheadersMessage(options) { if (!(this instanceof GetheadersMessage)) { return new GetheadersMessage(options); } + if(!options) { + options = {}; + } Message.call(this, options); this.command = 'getheaders'; this.version = protocolVersion; diff --git a/lib/messages/commands/headers.js b/lib/messages/commands/headers.js index 4911684..a7282cc 100644 --- a/lib/messages/commands/headers.js +++ b/lib/messages/commands/headers.js @@ -21,6 +21,9 @@ function HeadersMessage(options) { if (!(this instanceof HeadersMessage)) { return new HeadersMessage(options); } + if(!options) { + options = {}; + } Message.call(this, options); this.magicNumber = magicNumber; this.command = 'headers'; diff --git a/lib/messages/commands/inv.js b/lib/messages/commands/inv.js index 83cfbc3..9c359b4 100644 --- a/lib/messages/commands/inv.js +++ b/lib/messages/commands/inv.js @@ -15,6 +15,9 @@ function InvMessage(options) { if (!(this instanceof InvMessage)) { return new InvMessage(options); } + if(!options) { + options = {}; + } Message.call(this, options); this.command = 'inv'; this.magicNumber = magicNumber; diff --git a/lib/messages/commands/mempool.js b/lib/messages/commands/mempool.js index 45e3b5a..724fe1c 100644 --- a/lib/messages/commands/mempool.js +++ b/lib/messages/commands/mempool.js @@ -11,6 +11,9 @@ function MempoolMessage(options) { if (!(this instanceof MempoolMessage)) { return new MempoolMessage(options); } + if(!options) { + options = {}; + } Message.call(this, options); this.magicNumber = magicNumber; this.command = 'mempool'; diff --git a/lib/messages/commands/merkleblock.js b/lib/messages/commands/merkleblock.js index f2e3539..4ab72cb 100644 --- a/lib/messages/commands/merkleblock.js +++ b/lib/messages/commands/merkleblock.js @@ -20,6 +20,9 @@ function MerkleblockMessage(options) { if (!(this instanceof MerkleblockMessage)) { return new MerkleblockMessage(options); } + if(!options) { + options = {}; + } Message.call(this, options); this.magicNumber = magicNumber; this.command = 'merkleblock'; diff --git a/lib/messages/commands/notfound.js b/lib/messages/commands/notfound.js index 8905c7f..61caa47 100644 --- a/lib/messages/commands/notfound.js +++ b/lib/messages/commands/notfound.js @@ -15,6 +15,9 @@ function NotfoundMessage(options) { if (!(this instanceof NotfoundMessage)) { return new NotfoundMessage(options); } + if(!options) { + options = {}; + } Message.call(this, options); this.command = 'notfound'; this.magicNumber = magicNumber; diff --git a/lib/messages/commands/pong.js b/lib/messages/commands/pong.js index af99a95..82d940a 100644 --- a/lib/messages/commands/pong.js +++ b/lib/messages/commands/pong.js @@ -12,6 +12,9 @@ function PongMessage(options) { if (!(this instanceof PongMessage)) { return new PongMessage(options); } + if(!options) { + options = {}; + } Message.call(this, options); this.command = 'pong'; this.magicNumber = magicNumber; diff --git a/lib/messages/commands/reject.js b/lib/messages/commands/reject.js index 4c197f7..f19b676 100644 --- a/lib/messages/commands/reject.js +++ b/lib/messages/commands/reject.js @@ -12,6 +12,9 @@ function RejectMessage(options) { if (!(this instanceof RejectMessage)) { return new RejectMessage(options); } + if(!options) { + options = {}; + } Message.call(this, options); this.magicNumber = magicNumber; this.command = 'reject'; diff --git a/lib/messages/commands/tx.js b/lib/messages/commands/tx.js index 9f4409d..047a771 100644 --- a/lib/messages/commands/tx.js +++ b/lib/messages/commands/tx.js @@ -11,6 +11,9 @@ function TransactionMessage(options) { if (!(this instanceof TransactionMessage)) { return new TransactionMessage(options); } + if(!options) { + options = {}; + } Message.call(this, options); this.command = 'tx'; this.magicNumber = magicNumber; diff --git a/lib/messages/commands/verack.js b/lib/messages/commands/verack.js index ddc79c2..12bad63 100644 --- a/lib/messages/commands/verack.js +++ b/lib/messages/commands/verack.js @@ -14,7 +14,6 @@ function VerackMessage(options) { if(!options) { options = {}; } - Message.call(this, options); this.magicNumber = magicNumber; this.command = 'verack'; diff --git a/lib/messages/message.js b/lib/messages/message.js index 9d16477..f1a938a 100644 --- a/lib/messages/message.js +++ b/lib/messages/message.js @@ -9,6 +9,9 @@ var Hash = bitcore.crypto.Hash; * `getPayload` method to modify the message payload. */ function Message(options) { + if(!options) { + options = {}; + } this.command = options.command; this.magicNumber = options.magicNumber; } diff --git a/test/messages/builder.js b/test/messages/builder.js index 1a67c92..86798df 100644 --- a/test/messages/builder.js +++ b/test/messages/builder.js @@ -51,7 +51,6 @@ describe('Messages Builder', function() { message.toBuffer().should.deep.equal(expectedBuffer); done(); }); - }); }); diff --git a/test/messages/index.js b/test/messages/index.js index 44a6337..bf1f14b 100644 --- a/test/messages/index.js +++ b/test/messages/index.js @@ -33,6 +33,21 @@ describe('Messages', function() { }); }); + describe('@constructor for all command messages', function() { + var messages = new Messages(); + Object.keys(messages.builder.commandsMap).forEach(function(command) { + var name = messages.builder.commandsMap[command]; + it('message.' + name, function(done) { + should.exist(messages[name]); + messages[name].super_.should.equal(Messages.Message); + var message = messages[name](); + should.exist(message); + message.should.be.instanceof(messages[name]); + done(); + }); + }); + }); + describe('#parseBuffer', function() { it('fails with invalid command', function() { var invalidCommand = 'f9beb4d96d616c6963696f757300000025000000bd5e830c' +