diff --git a/lib/messages.js b/lib/messages.js index 7afc9b0..5a5d04e 100644 --- a/lib/messages.js +++ b/lib/messages.js @@ -14,6 +14,7 @@ var _ = bitcore.deps._; var BlockHeaderModel = bitcore.BlockHeader; var BlockModel = bitcore.Block; +var MerkleBlockModel = bitcore.MerkleBlock; var BufferReader = bitcore.encoding.BufferReader; var BufferWriter = bitcore.encoding.BufferWriter; var BufferUtil = bitcore.util.buffer; @@ -720,6 +721,37 @@ Block.prototype.getPayload = function() { module.exports.Block = Message.COMMANDS.block = Block; +/** + * Contains information about a MerkleBlock + * + * @name P2P.Message.MerkleBlock + * @param {MerkleBlock} block + */ +function MerkleBlock(block) { + $.checkArgument(_.isUndefined(block) || block instanceof MerkleBlockModel); + this.command = 'merkleblock'; + + /** + * @type {Block} + * @desc The block received + */ + this.merkleBlock = block; +} +util.inherits(MerkleBlock, Message); + +MerkleBlock.prototype.fromBuffer = function(payload) { + $.checkArgument(BufferUtil.isBuffer(payload)); + var block = MerkleBlockModel(payload); + return new MerkleBlock(block); +}; + +MerkleBlock.prototype.getPayload = function() { + return this.merkleBlock ? this.merkleBlock.toBuffer() : new Buffer(0); +}; + +module.exports.MerkleBlock = Message.COMMANDS.merkleblock = MerkleBlock; + + /** * Contains information about a transaction *