class Tapyrus::Message::Base

Base message class

Public Instance Methods

to_payload() click to toggle source

abstract method

# File lib/tapyrus/message/base.rb, line 21
def to_payload
  raise 'to_payload must be implemented in a child class.'
end
to_pkt() click to toggle source

generate message header (binary format) bitcoin.org/en/developer-reference#message-headers

# File lib/tapyrus/message/base.rb, line 11
def to_pkt
  payload = to_payload
  magic = Tapyrus.chain_params.magic_head.htb
  command_name = self.class.const_get(:COMMAND, false).ljust(12, "\x00")
  payload_size = [payload.bytesize].pack('V')
  checksum = Tapyrus.double_sha256(payload)[0...4]
  magic << command_name << payload_size << checksum << payload
end