Sha256: 7348507aa8374e3dbc42ea6f0cc42df8f4c56b552d3a58568266a8333df7d262

Contents?: true

Size: 619 Bytes

Versions: 31

Compression:

Stored size: 619 Bytes

Contents

module Bitcoin
  module Message

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

      def parse_from_payload(payload)
        ver, payload = payload.unpack('Va*')
        size, payload = Bitcoin.unpack_var_int(payload)
        hashes = []
        buf = StringIO.new(payload)
        size.times do
          hashes << buf.read(32).bth
        end
        new(ver, hashes, buf.read(32).bth)
      end

      def to_payload
        [version].pack('V') << Bitcoin.pack_var_int(hashes.length) << hashes.map{|h|h.htb}.join << stop_hash.htb
      end

    end
  end
end

Version data entries

31 entries across 31 versions & 1 rubygems

Version Path
bitcoinrb-1.8.0 lib/bitcoin/message/headers_parser.rb
bitcoinrb-1.7.0 lib/bitcoin/message/headers_parser.rb
bitcoinrb-1.6.0 lib/bitcoin/message/headers_parser.rb
bitcoinrb-1.5.0 lib/bitcoin/message/headers_parser.rb
bitcoinrb-1.4.0 lib/bitcoin/message/headers_parser.rb
bitcoinrb-1.3.0 lib/bitcoin/message/headers_parser.rb
bitcoinrb-1.2.1 lib/bitcoin/message/headers_parser.rb
bitcoinrb-1.2.0 lib/bitcoin/message/headers_parser.rb
bitcoinrb-1.1.1 lib/bitcoin/message/headers_parser.rb
bitcoinrb-1.1.0 lib/bitcoin/message/headers_parser.rb
bitcoinrb-1.0.0 lib/bitcoin/message/headers_parser.rb
bitcoinrb-0.9.0 lib/bitcoin/message/headers_parser.rb
bitcoinrb-0.8.0 lib/bitcoin/message/headers_parser.rb
bitcoinrb-0.7.0 lib/bitcoin/message/headers_parser.rb
bitcoinrb-0.6.0 lib/bitcoin/message/headers_parser.rb
bitcoinrb-0.5.0 lib/bitcoin/message/headers_parser.rb
bitcoinrb-0.4.0 lib/bitcoin/message/headers_parser.rb
bitcoinrb-0.3.2 lib/bitcoin/message/headers_parser.rb
bitcoinrb-0.3.1 lib/bitcoin/message/headers_parser.rb
bitcoinrb-0.3.0 lib/bitcoin/message/headers_parser.rb