Class: BitcoinNode::Protocol::Header

Inherits:
Object
  • Object
show all
Defined in:
lib/bitcoin_node/protocol.rb

Constant Summary collapse

SIZE =
24

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(payload) ⇒ Header

Returns a new instance of Header.



32
33
34
# File 'lib/bitcoin_node/protocol.rb', line 32

def initialize(payload)
  @payload = payload
end

Class Method Details

.build_from(payload) ⇒ Object



24
25
26
# File 'lib/bitcoin_node/protocol.rb', line 24

def self.build_from(payload)
  new(payload)
end

.unpack(raw) ⇒ Object



28
29
30
# File 'lib/bitcoin_node/protocol.rb', line 28

def self.unpack(raw)
  raw.unpack('a4A12Va4')
end

Instance Method Details

#rawObject



37
38
39
40
41
42
43
44
# File 'lib/bitcoin_node/protocol.rb', line 37

def raw
  @raw ||= begin
    [BitcoinNode.network,
     @payload.name.ljust(12, "\x00")[0...12],
     [@payload.bytesize].pack("V"),
     BN::Protocol.digest(@payload.raw)[0...4]].join
  end
end