class BitcoinNode::P2p::Client::CommandHandler

Public Class Methods

new(client, buffer, probe) click to toggle source
# File lib/bitcoin_node/p2p/client.rb, line 46
def initialize(client, buffer, probe)
  @client, @buffer, @probe = client, buffer, probe
end

Public Instance Methods

parse() click to toggle source
# File lib/bitcoin_node/p2p/client.rb, line 50
def parse
  @probe << { receiving: @command }

  callback = Parser.new(@command, @payload).parse

  @buffer.clear
  callback.call(@client)
end
valid_message?() click to toggle source
# File lib/bitcoin_node/p2p/client.rb, line 59
def valid_message?
  @payload, @command = BN::Protocol::Message.validate(@buffer)
rescue BN::P::IncompleteMessageError
  false
rescue BN::P::InvalidChecksumError => e  
  BN::Logger.info(e.message)
  false
end