module Tapyrus::Message::HeadersParser

Common message parser which handle multiple block headers as a payload.

Public Instance Methods

parse_from_payload(payload) click to toggle source
# File lib/tapyrus/message/headers_parser.rb, line 5
def parse_from_payload(payload)
  ver, payload = payload.unpack('Va*')
  size, payload = Tapyrus.unpack_var_int(payload)
  hashes = []
  buf = StringIO.new(payload)
  size.times { hashes << buf.read(32).bth }
  new(ver, hashes, buf.read(32).bth)
end
to_payload() click to toggle source
# File lib/tapyrus/message/headers_parser.rb, line 14
def to_payload
  [version].pack('V') << Tapyrus.pack_var_int(hashes.length) << hashes.map { |h| h.htb }.join << stop_hash.htb
end