From 1dfdd66b725a6a922e67b7691e90b543dc858e0b Mon Sep 17 00:00:00 2001 From: Stein Martin Hustad Date: Thu, 6 Aug 2015 20:03:07 +0200 Subject: [PATCH] Allow attributes in constructor --- lib/messages/commands/reject.js | 39 +++++++++++++++++++++++++++++---- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/lib/messages/commands/reject.js b/lib/messages/commands/reject.js index f426a6c..c2f51be 100644 --- a/lib/messages/commands/reject.js +++ b/lib/messages/commands/reject.js @@ -7,17 +7,48 @@ var utils = require('../utils'); var BufferReader = bitcore.encoding.BufferReader; var BufferWriter = bitcore.encoding.BufferWriter; +/** + * The reject message is sent when messages are rejected. + * + * @see https://en.bitcoin.it/wiki/Protocol_documentation#reject + * @param {Object=} arg - properties for the reject message + * @param {String=} arg.message - type of message rejected + * @param {Number=} arg.ccode - code relating to rejected message + * @param {String=} arg.reason - text version of reason for rejection + * @param {Buffer=} arg.data - Optional extra data provided by some errors. + * @param {Object} options + * @extends Message + * @constructor + */ function RejectMessage(arg, options) { + if (!arg) { + arg = {}; + } Message.call(this, options); this.command = 'reject'; + this.message = arg.message; + this.ccode = arg.ccode; + this.reason = arg.reason; + this.data = arg.data; } inherits(RejectMessage, Message); +RejectMessage.CCODE = { + REJECT_MALFORMED: 0x01, + REJECT_INVALID: 0x10, + REJECT_OBSOLETE: 0x11, + REJECT_DUPLICATE: 0x12, + REJECT_NONSTANDARD: 0x40, + REJECT_DUST: 0x41, + REJECT_INSUFFICIENTFEE: 0x42, + REJECT_CHECKPOINT: 0x43 +}; + RejectMessage.prototype.setPayload = function(payload) { var parser = new BufferReader(payload); - this.message = parser.readVarLengthBuffer(); + this.message = parser.readVarLengthBuffer().toString('utf-8'); this.ccode = parser.readUInt8(); - this.reason = parser.readVarLengthBuffer(); + this.reason = parser.readVarLengthBuffer().toString('utf-8'); this.data = parser.readAll(); utils.checkFinished(parser); }; @@ -25,10 +56,10 @@ RejectMessage.prototype.setPayload = function(payload) { RejectMessage.prototype.getPayload = function() { var bw = new BufferWriter(); bw.writeVarintNum(this.message.length); - bw.write(this.message); + bw.write(new Buffer(this.message, 'utf-8')); bw.writeUInt8(this.cccode); bw.writeVarintNum(this.reason.length); - bw.write(this.reason); + bw.write(new Buffer(this.reason, 'utf-8')); bw.write(this.data); return bw.toBuffer(); };