Class: Tapyrus::Message::Base
Overview
Base message class
Direct Known Subclasses
Addr, Block, BlockTxn, CmpctBlock, FeeFilter, FilterAdd, FilterClear, FilterLoad, GetAddr, GetBlockTxn, GetBlocks, GetData, GetHeaders, Headers, Inv, MemPool, MerkleBlock, NotFound, Ping, Pong, Reject, SendCmpct, SendHeaders, Tx, VerAck, Version
Constant Summary
Constants included from Util
Instance Method Summary collapse
-
#to_payload ⇒ Object
abstract method.
-
#to_pkt ⇒ Object
generate message header (binary format) bitcoin.org/en/developer-reference#message-headers.
Methods included from Util
byte_to_bit, calc_checksum, decode_base58_address, double_sha256, encode_base58_address, hash160, hmac_sha256, pack_boolean, pack_var_int, pack_var_string, padding_zero, sha256, unpack_boolean, unpack_var_int, unpack_var_int_from_io, unpack_var_string
Methods included from HexConverter
Instance Method Details
#to_payload ⇒ Object
abstract method
22 23 24 |
# File 'lib/tapyrus/message/base.rb', line 22 def to_payload raise 'to_payload must be implemented in a child class.' end |
#to_pkt ⇒ Object
generate message header (binary format) bitcoin.org/en/developer-reference#message-headers
12 13 14 15 16 17 18 19 |
# File 'lib/tapyrus/message/base.rb', line 12 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 |