UNPKG

fcash-p2p

Version:

Interface to the bitcoin P2P network for fcash

46 lines (40 loc) 1.31 kB
'use strict'; var Message = require('../message'); var inherits = require('util').inherits; var fcash = require('fcash-lib'); var utils = require('../utils'); var BufferUtil = fcash.util.buffer; var BufferWriter = fcash.encoding.BufferWriter; var BufferReader = fcash.encoding.BufferReader; var $ = fcash.util.preconditions; var _ = fcash.deps._; /** * Request peer to add data to a bloom filter already set by 'filterload' * @param {Buffer=} data - Array of bytes representing bloom filter data * @param {Object=} options * @extends Message * @constructor */ function FilteraddMessage(arg, options) { Message.call(this, options); this.command = 'filteradd'; $.checkArgument( _.isUndefined(arg) || BufferUtil.isBuffer(arg), 'First argument is expected to be a Buffer or undefined' ); this.data = arg || BufferUtil.EMPTY_BUFFER; } inherits(FilteraddMessage, Message); FilteraddMessage.prototype.setPayload = function(payload) { $.checkArgument(payload); var parser = new BufferReader(payload); this.data = parser.readVarLengthBuffer(); utils.checkFinished(parser); }; FilteraddMessage.prototype.getPayload = function() { var bw = new BufferWriter(); bw.writeVarintNum(this.data.length); bw.write(this.data); return bw.concat(); }; module.exports = FilteraddMessage;