Add a convenience method to determine the network a message is from
This commit is contained in:
@@ -428,7 +428,7 @@ module BtcWireProto
|
|||||||
string :command, :length => 12
|
string :command, :length => 12
|
||||||
uint32 :payload_len, :value => lambda { payload.num_bytes }
|
uint32 :payload_len, :value => lambda { payload.num_bytes }
|
||||||
uint32 :checksum, :onlyif => :has_checksum?
|
uint32 :checksum, :onlyif => :has_checksum?
|
||||||
|
|
||||||
choice :payload, :selection => :payload_choice do
|
choice :payload, :selection => :payload_choice do
|
||||||
version "version"
|
version "version"
|
||||||
addr_pre31402 "addr_pre31402"
|
addr_pre31402 "addr_pre31402"
|
||||||
@@ -446,10 +446,17 @@ module BtcWireProto
|
|||||||
null_payload "null"
|
null_payload "null"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# @return[Symbol] representation of the command this message contains
|
||||||
def cmd_sym
|
def cmd_sym
|
||||||
c = command.strip
|
c = command.strip
|
||||||
c == "" ? nil : c.to_sym
|
c == "" ? nil : c.to_sym
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# @return[Symbol] representation of the network this message belongs to
|
||||||
|
def network_name
|
||||||
|
NETWORKS[magic]
|
||||||
|
end
|
||||||
|
|
||||||
# version and verack messages don't have a checksum. The rest do.
|
# version and verack messages don't have a checksum. The rest do.
|
||||||
# @return[Boolean] does this message header have a checksum field or not?
|
# @return[Boolean] does this message header have a checksum field or not?
|
||||||
def has_checksum?
|
def has_checksum?
|
||||||
|
@@ -300,6 +300,7 @@ describe ::BtcWireProto do
|
|||||||
m = Message::read(GOOD_VERSION_DATA)
|
m = Message::read(GOOD_VERSION_DATA)
|
||||||
|
|
||||||
m.magic.should == BtcWireProto::NETWORKS[:main]
|
m.magic.should == BtcWireProto::NETWORKS[:main]
|
||||||
|
m.network_name.should == :main
|
||||||
m.command.should == "version\x00\x00\x00\x00\x00"
|
m.command.should == "version\x00\x00\x00\x00\x00"
|
||||||
m.payload_len.should == 85
|
m.payload_len.should == 85
|
||||||
m.has_parameter?(:checksum).should be_false
|
m.has_parameter?(:checksum).should be_false
|
||||||
|
Reference in New Issue
Block a user