Module: Tapyrus::Message::HeadersParser

Included in:
GetBlocks, GetBlocks, GetHeaders, GetHeaders
Defined in:
lib/tapyrus/message/headers_parser.rb

Overview

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

Instance Method Summary collapse

Instance Method Details

#parse_from_payload(payload) ⇒ Object



5
6
7
8
9
10
11
12
# 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_payloadObject



14
15
16
# 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