Class: Bitcoin::Message::CFCheckpt
- Defined in:
- lib/bitcoin/message/cfcheckpt.rb
Overview
cfcheckpt message for BIP-157 github.com/bitcoin/bips/blob/master/bip-0157.mediawiki#cfcheckpt
Constant Summary collapse
- COMMAND =
'cfcheckpt'
Instance Attribute Summary collapse
-
#filter_headers ⇒ Object
little endian.
-
#filter_type ⇒ Object
Returns the value of attribute filter_type.
-
#stop_hash ⇒ Object
little endian.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(filter_type, stop_hash, filter_headers) ⇒ CFCheckpt
constructor
A new instance of CFCheckpt.
- #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(filter_type, stop_hash, filter_headers) ⇒ CFCheckpt
Returns a new instance of CFCheckpt.
14 15 16 17 18 |
# File 'lib/bitcoin/message/cfcheckpt.rb', line 14 def initialize(filter_type, stop_hash, filter_headers) @filter_type = filter_type @stop_hash = stop_hash @filter_headers = filter_headers end |
Instance Attribute Details
#filter_headers ⇒ Object
little endian
12 13 14 |
# File 'lib/bitcoin/message/cfcheckpt.rb', line 12 def filter_headers @filter_headers end |
#filter_type ⇒ Object
Returns the value of attribute filter_type.
10 11 12 |
# File 'lib/bitcoin/message/cfcheckpt.rb', line 10 def filter_type @filter_type end |
#stop_hash ⇒ Object
little endian
11 12 13 |
# File 'lib/bitcoin/message/cfcheckpt.rb', line 11 def stop_hash @stop_hash end |
Class Method Details
.parse_from_payload(payload) ⇒ Object
20 21 22 23 24 25 26 27 |
# File 'lib/bitcoin/message/cfcheckpt.rb', line 20 def self.parse_from_payload(payload) buf = StringIO.new(payload) type = buf.read(1).unpack1('C') hash = buf.read(32).unpack1('H*') count = Bitcoin.unpack_var_int_from_io(buf) headers = count.times.map{buf.read(32).bth} self.new(type, hash, headers) end |
Instance Method Details
#to_payload ⇒ Object
29 30 31 32 |
# File 'lib/bitcoin/message/cfcheckpt.rb', line 29 def to_payload [filter_type, stop_hash].pack('CH*') + Bitcoin.pack_var_int(filter_headers.size) + filter_headers.map(&:htb).join end |