class Bitcoin::Message::BlockTransactionRequest
BIP-152 Compact Block's data format. github.com/bitcoin/bips/blob/master/bip-0152.mediawiki#BlockTransactionsRequest
Attributes
block_hash[RW]
indexes[RW]
Public Class Methods
new(block_hash, indexes)
click to toggle source
# File lib/bitcoin/message/block_transaction_request.rb, line 11 def initialize(block_hash, indexes) @block_hash = block_hash @indexes = indexes end
parse_from_payload(payload)
click to toggle source
# File lib/bitcoin/message/block_transaction_request.rb, line 16 def self.parse_from_payload(payload) buf = StringIO.new(payload) block_hash = buf.read(32).bth index_len = Bitcoin.unpack_var_int_from_io(buf) indexes = index_len.times.map{Bitcoin.unpack_var_int_from_io(buf)} # index data differentially encoded offset = 0 index_len.times do |i| index = indexes[i] index += offset indexes[i] = index offset = index + 1 end self.new(block_hash, indexes) end
Public Instance Methods
to_payload()
click to toggle source
# File lib/bitcoin/message/block_transaction_request.rb, line 32 def to_payload p = block_hash.htb << Bitcoin.pack_var_int(indexes.size) indexes.size.times do |i| index = indexes[i] index -= indexes[i-1] + 1 if i > 0 p << Bitcoin.pack_var_int(index) end p end