Class: Bitcoin::Message::Headers
- Defined in:
- lib/bitcoin/message/headers.rb
Overview
headers message bitcoin.org/en/developer-reference#headers
Constant Summary collapse
- COMMAND =
'headers'
Instance Attribute Summary collapse
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(headers = []) ⇒ Headers
constructor
A new instance of Headers.
- #to_payload ⇒ Object
Methods inherited from Base
Methods included from Util
#byte_to_bit, #calc_checksum, #decode_base58_address, #double_sha256, #encode_base58_address, #hash160, #hkdf_sha256, #hmac_sha256, #pack_boolean, #pack_var_int, #pack_var_string, #padding_zero, #sha256, #tagged_hash, #unpack_boolean, #unpack_var_int, #unpack_var_int_from_io, #unpack_var_string, #valid_address?
Methods included from HexConverter
Constructor Details
#initialize(headers = []) ⇒ Headers
Returns a new instance of Headers.
13 14 15 |
# File 'lib/bitcoin/message/headers.rb', line 13 def initialize(headers = []) @headers = headers end |
Instance Attribute Details
#headers ⇒ Object
11 12 13 |
# File 'lib/bitcoin/message/headers.rb', line 11 def headers @headers end |
Class Method Details
.parse_from_payload(payload) ⇒ Object
17 18 19 20 21 22 23 24 25 26 |
# File 'lib/bitcoin/message/headers.rb', line 17 def self.parse_from_payload(payload) buf = StringIO.new(payload) header_count = Bitcoin.unpack_var_int_from_io(buf) h = new header_count.times do h.headers << Bitcoin::BlockHeader.parse_from_payload(buf.read(80)) buf.read(1) # read tx count 0x00 (headers message doesn't include any tx.) end h end |
Instance Method Details
#to_payload ⇒ Object
28 29 30 |
# File 'lib/bitcoin/message/headers.rb', line 28 def to_payload Bitcoin.pack_var_int(headers.size) << headers.map { |h| h.to_payload << 0x00 }.join end |