Sha256: 72acf519cb268eb9ae88827c1c7d365be60b4ee5acb5b868b51ad96067f86def

Contents?: true

Size: 829 Bytes

Versions: 11

Compression:

Stored size: 829 Bytes

Contents

module Tapyrus
  module Message
    # BIP-152 Compact Block's data format.
    # https://github.com/bitcoin/bips/blob/master/bip-0152.mediawiki#BlockTransactions
    class BlockTransactions
      attr_accessor :block_hash
      attr_accessor :transactions

      def initialize(block_hash, transactions)
        @block_hash = block_hash
        @transactions = transactions
      end

      def self.parse_from_payload(payload)
        buf = StringIO.new(payload)
        block_hash = buf.read(32).bth
        tx_count = Tapyrus.unpack_var_int_from_io(buf)
        txn = tx_count.times.map { Tapyrus::Tx.parse_from_payload(buf) }
        self.new(block_hash, txn)
      end

      def to_payload
        block_hash.htb << Tapyrus.pack_var_int(transactions.size) << transactions.map(&:to_payload).join
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
tapyrus-0.3.5 lib/tapyrus/message/block_transactions.rb
tapyrus-0.3.4 lib/tapyrus/message/block_transactions.rb
tapyrus-0.3.3 lib/tapyrus/message/block_transactions.rb
tapyrus-0.3.2 lib/tapyrus/message/block_transactions.rb
tapyrus-0.3.1 lib/tapyrus/message/block_transactions.rb
tapyrus-0.3.0 lib/tapyrus/message/block_transactions.rb
tapyrus-0.2.13 lib/tapyrus/message/block_transactions.rb
tapyrus-0.2.12 lib/tapyrus/message/block_transactions.rb
tapyrus-0.2.10 lib/tapyrus/message/block_transactions.rb
tapyrus-0.2.9 lib/tapyrus/message/block_transactions.rb
tapyrus-0.2.8 lib/tapyrus/message/block_transactions.rb