diff --git a/lib/messages/commands/reject.js b/lib/messages/commands/reject.js index 5ed9543..f426a6c 100644 --- a/lib/messages/commands/reject.js +++ b/lib/messages/commands/reject.js @@ -3,19 +3,34 @@ var Message = require('../message'); var inherits = require('util').inherits; var bitcore = require('bitcore-lib'); -var BufferUtil = bitcore.util.buffer; +var utils = require('../utils'); +var BufferReader = bitcore.encoding.BufferReader; +var BufferWriter = bitcore.encoding.BufferWriter; -// todo: add payload: https://en.bitcoin.it/wiki/Protocol_documentation#reject function RejectMessage(arg, options) { Message.call(this, options); this.command = 'reject'; } inherits(RejectMessage, Message); -RejectMessage.prototype.setPayload = function() {}; +RejectMessage.prototype.setPayload = function(payload) { + var parser = new BufferReader(payload); + this.message = parser.readVarLengthBuffer(); + this.ccode = parser.readUInt8(); + this.reason = parser.readVarLengthBuffer(); + this.data = parser.readAll(); + utils.checkFinished(parser); +}; RejectMessage.prototype.getPayload = function() { - return BufferUtil.EMPTY_BUFFER; + var bw = new BufferWriter(); + bw.writeVarintNum(this.message.length); + bw.write(this.message); + bw.writeUInt8(this.cccode); + bw.writeVarintNum(this.reason.length); + bw.write(this.reason); + bw.write(this.data); + return bw.toBuffer(); }; module.exports = RejectMessage; diff --git a/test/data/messages.json b/test/data/messages.json index d7260b5..7b4d378 100644 --- a/test/data/messages.json +++ b/test/data/messages.json @@ -34,7 +34,7 @@ "message": "f9beb4d9616c65727400000000000000bc0000004fe68fe973010000003766404f00000000b305434f00000000f2030000f1030000001027000048ee00000064000000004653656520626974636f696e2e6f72672f666562323020696620796f7520686176652074726f75626c6520636f6e6e656374696e67206166746572203230204665627275617279004730450221008389df45f0703f39ec8c1cc42c13810ffcae14995bb648340219e353b63b53eb022009ec65e1c1aaeec1fd334c6b684bde2b3f573060d5b70c3a46723326e4e8a4f1" }, "reject": { - "message": "f9beb4d972656a656374000000000000000000005df6e0e2" + "message": "f9beb4d972656a6563740000000000003a000000f44033160274780015696e73756666696369656e74207072696f72697479165d408c9dd26fbdcb42b07546f6c37752301e3772f3ae441baf569e78839111" }, "notfound": { "message": "f9beb4d96e6f74666f756e6400000000250000001d33d53201010000003a4af715be220eae7b2657582869daddf79ac4afb4a0e1cafa5b57e1afb8dfe2"