module Bitcoin::Message

Constants

DEFAULT_SERVICE_FLAGS

DEFAULT_SERVICE_FLAGS = SERVICE_FLAGS | SERVICE_FLAGS | SERVICE_FLAGS

DEFAULT_STOP_HASH
INTERNAL_IN_IPV6_PREFIX
NETWORK_ID
SERVICE_FLAGS
USER_AGENT
VERSION

the protocol version.

Public Instance Methods

decode(command, payload = nil) click to toggle source

Decode P2P message. @param [String] command P2P message command string. @param [String] payload P2P message payload with hex format.. @return [Bitcoin::Message::]

# File lib/bitcoin/message.rb, line 86
def decode(command, payload = nil)
  payload = payload.htb if payload
  case command
  when Bitcoin::Message::Version::COMMAND
    Bitcoin::Message::Version.parse_from_payload(payload)
  when Bitcoin::Message::VerAck::COMMAND
    Bitcoin::Message::VerAck.new
  when Bitcoin::Message::GetAddr::COMMAND
    Bitcoin::Message::GetAddr.new
  when Bitcoin::Message::Addr::COMMAND
    Bitcoin::Message::Addr.parse_from_payload(payload)
  when Bitcoin::Message::SendHeaders::COMMAND
    Bitcoin::Message::SendHeaders.new
  when Bitcoin::Message::FeeFilter::COMMAND
    Bitcoin::Message::FeeFilter.parse_from_payload(payload)
  when Bitcoin::Message::Ping::COMMAND
    Bitcoin::Message::Ping.parse_from_payload(payload)
  when Bitcoin::Message::Pong::COMMAND
    Bitcoin::Message::Pong.parse_from_payload(payload)
  when Bitcoin::Message::GetHeaders::COMMAND
    Bitcoin::Message::GetHeaders.parse_from_payload(payload)
  when Bitcoin::Message::Headers::COMMAND
    Bitcoin::Message::Headers.parse_from_payload(payload)
  when Bitcoin::Message::Block::COMMAND
    Bitcoin::Message::Block.parse_from_payload(payload)
  when Bitcoin::Message::Tx::COMMAND
    Bitcoin::Message::Tx.parse_from_payload(payload)
  when Bitcoin::Message::NotFound::COMMAND
    Bitcoin::Message::NotFound.parse_from_payload(payload)
  when Bitcoin::Message::MemPool::COMMAND
    Bitcoin::Message::MemPool.new
  when Bitcoin::Message::Reject::COMMAND
    Bitcoin::Message::Reject.parse_from_payload(payload)
  when Bitcoin::Message::SendCmpct::COMMAND
    Bitcoin::Message::SendCmpct.parse_from_payload(payload)
  when Bitcoin::Message::Inv::COMMAND
    Bitcoin::Message::Inv.parse_from_payload(payload)
  when Bitcoin::Message::MerkleBlock::COMMAND
    Bitcoin::Message::MerkleBlock.parse_from_payload(payload)
  when Bitcoin::Message::CmpctBlock::COMMAND
    Bitcoin::Message::CmpctBlock.parse_from_payload(payload)
  when Bitcoin::Message::GetData::COMMAND
    Bitcoin::Message::GetData.parse_from_payload(payload)
  when Bitcoin::Message::GetCFHeaders::COMMAND
    Bitcoin::Message::GetCFHeaders.parse_from_payload(payload)
  when Bitcoin::Message::GetCFilters::COMMAND
    Bitcoin::Message::GetCFilters.parse_from_payload(payload)
  when Bitcoin::Message::GetCFCheckpt::COMMAND
    Bitcoin::Message::GetCFCheckpt.parse_from_payload(payload)
  when Bitcoin::Message::CFCheckpt::COMMAND
    Bitcoin::Message::CFCheckpt.parse_from_payload(payload)
  when Bitcoin::Message::CFHeaders::COMMAND
    Bitcoin::Message::CFHeaders.parse_from_payload(payload)
  when Bitcoin::Message::CFilter::COMMAND
    Bitcoin::Message::CFilter.parse_from_payload(payload)
  when Bitcoin::Message::SendAddrV2::COMMAND
    Bitcoin::Message::SendAddrV2.new
  when Bitcoin::Message::AddrV2::COMMAND
    Bitcoin::Message::AddrV2.parse_from_payload(payload)
  end
end