test_class.file: core/src/test/java/com/google/bitcoin/core/VersionMessageTest.java
test_class.identifier: VersionMessageTest
test_case.body: @Test
      // Test that we can decode version messages which miss data which some old nodes may not include
      public void testDecode() throws Exception {
          NetworkParameters params = UnitTestParams.get();
          
          VersionMessage ver = new VersionMessage(params, Hex.decode("71110100000000000000000048e5e95000000000000000000000000000000000000000000000ffff7f000001479d000000000000000000000000000000000000ffff7f000001479d0000000000000000172f426974436f696e4a3a302e372d534e415053484f542f0004000000"));
          assertTrue(!ver.relayTxesBeforeFilter);
          assertTrue(ver.bestHeight == 1024);
          assertTrue(ver.subVer.equals("/"+CoinDefinition.coinName+"J:0.7-SNAPSHOT/"));
          
          ver = new VersionMessage(params, Hex.decode("71110100000000000000000048e5e95000000000000000000000000000000000000000000000ffff7f000001479d000000000000000000000000000000000000ffff7f000001479d0000000000000000172f426974436f696e4a3a302e372d534e415053484f542f00040000"));
          assertTrue(ver.relayTxesBeforeFilter);
          assertTrue(ver.bestHeight == 1024);
          assertTrue(ver.subVer.equals("/"+CoinDefinition.coinName+"J:0.7-SNAPSHOT/"));
          
          ver = new VersionMessage(params, Hex.decode("71110100000000000000000048e5e95000000000000000000000000000000000000000000000ffff7f000001479d000000000000000000000000000000000000ffff7f000001479d0000000000000000172f426974436f696e4a3a302e372d534e415053484f542f"));
          assertTrue(ver.relayTxesBeforeFilter);
          assertTrue(ver.bestHeight == 0);
          assertTrue(ver.subVer.equals("/"+CoinDefinition.coinName+"J:0.7-SNAPSHOT/"));
          
          ver = new VersionMessage(params, Hex.decode("71110100000000000000000048e5e95000000000000000000000000000000000000000000000ffff7f000001479d000000000000000000000000000000000000ffff7f000001479d0000000000000000"));
          assertTrue(ver.relayTxesBeforeFilter);
          assertTrue(ver.bestHeight == 0);
          assertTrue(ver.subVer.equals(""));
      }
test_case.class_method_signature: VersionMessageTest.testDecode()
test_case.full_signature: @Test // Test that we can decode version messages which miss data which some old nodes may not include public void testDecode()
test_case.identifier: testDecode
test_case.invocations: get decode assertTrue assertTrue assertTrue equals decode assertTrue assertTrue assertTrue equals decode assertTrue assertTrue assertTrue equals decode assertTrue assertTrue assertTrue equals
test_case.modifiers: @Test // Test that we can decode version messages which miss data which some old nodes may not include public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testDecode()
focal_class.declarator: serialVersionUID = 7313594258967483180L
focal_class.modifier: private static final
focal_class.original_string: private static final long serialVersionUID = 7313594258967483180L;
focal_class.type: long
focal_class.var_name: serialVersionUID
focal_class.declarator: NODE_NETWORK = 1
focal_class.modifier: public static final
focal_class.original_string: public static final int NODE_NETWORK = 1;
focal_class.type: int
focal_class.var_name: NODE_NETWORK
focal_class.declarator: clientVersion
focal_class.modifier: public
focal_class.original_string: public int clientVersion;
focal_class.type: int
focal_class.var_name: clientVersion
focal_class.declarator: localServices
focal_class.modifier: public
focal_class.original_string: public long localServices;
focal_class.type: long
focal_class.var_name: localServices
focal_class.declarator: time
focal_class.modifier: public
focal_class.original_string: public long time;
focal_class.type: long
focal_class.var_name: time
focal_class.declarator: myAddr
focal_class.modifier: public
focal_class.original_string: public PeerAddress myAddr;
focal_class.type: PeerAddress
focal_class.var_name: myAddr
focal_class.declarator: theirAddr
focal_class.modifier: public
focal_class.original_string: public PeerAddress theirAddr;
focal_class.type: PeerAddress
focal_class.var_name: theirAddr
focal_class.declarator: subVer
focal_class.modifier: public
focal_class.original_string: public String subVer;
focal_class.type: String
focal_class.var_name: subVer
focal_class.declarator: bestHeight
focal_class.modifier: public
focal_class.original_string: public long bestHeight;
focal_class.type: long
focal_class.var_name: bestHeight
focal_class.declarator: relayTxesBeforeFilter
focal_class.modifier: public
focal_class.original_string: public boolean relayTxesBeforeFilter;
focal_class.type: boolean
focal_class.var_name: relayTxesBeforeFilter
focal_class.declarator: BITCOINJ_VERSION = "0.12-SNAPSHOT"
focal_class.modifier: public static final
focal_class.original_string: public static final String BITCOINJ_VERSION = "0.12-SNAPSHOT";
focal_class.type: String
focal_class.var_name: BITCOINJ_VERSION
focal_class.declarator: LIBRARY_SUBVER = "/"+CoinDefinition.coinName+"J:" + BITCOINJ_VERSION + "/"
focal_class.modifier: public static final
focal_class.original_string: public static final String LIBRARY_SUBVER = "/"+CoinDefinition.coinName+"J:" + BITCOINJ_VERSION + "/";
focal_class.type: String
focal_class.var_name: LIBRARY_SUBVER
focal_class.file: core/src/main/java/com/google/bitcoin/core/VersionMessage.java
focal_class.identifier: VersionMessage
focal_class.class_method_signature: VersionMessage.VersionMessage(NetworkParameters params, byte[] msg)
focal_class.full_signature: public  VersionMessage(NetworkParameters params, byte[] msg)
focal_class.identifier: VersionMessage
focal_class.modifiers: public
focal_class.parameters: (NetworkParameters params, byte[] msg)
focal_class.signature:  VersionMessage(NetworkParameters params, byte[] msg)
focal_class.class_method_signature: VersionMessage.VersionMessage(NetworkParameters params, int newBestHeight)
focal_class.full_signature: public  VersionMessage(NetworkParameters params, int newBestHeight)
focal_class.identifier: VersionMessage
focal_class.modifiers: public
focal_class.parameters: (NetworkParameters params, int newBestHeight)
focal_class.signature:  VersionMessage(NetworkParameters params, int newBestHeight)
focal_class.class_method_signature: VersionMessage.VersionMessage(NetworkParameters params, int newBestHeight, boolean relayTxesBeforeFilter)
focal_class.full_signature: public  VersionMessage(NetworkParameters params, int newBestHeight, boolean relayTxesBeforeFilter)
focal_class.identifier: VersionMessage
focal_class.modifiers: public
focal_class.parameters: (NetworkParameters params, int newBestHeight, boolean relayTxesBeforeFilter)
focal_class.signature:  VersionMessage(NetworkParameters params, int newBestHeight, boolean relayTxesBeforeFilter)
focal_class.class_method_signature: VersionMessage.parseLite()
focal_class.full_signature: @Override protected void parseLite()
focal_class.identifier: parseLite
focal_class.modifiers: @Override protected
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void parseLite()
focal_class.class_method_signature: VersionMessage.parse()
focal_class.full_signature: @Override public void parse()
focal_class.identifier: parse
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void parse()
focal_class.class_method_signature: VersionMessage.bitcoinSerializeToStream(OutputStream buf)
focal_class.full_signature: @Override public void bitcoinSerializeToStream(OutputStream buf)
focal_class.identifier: bitcoinSerializeToStream
focal_class.modifiers: @Override public
focal_class.parameters: (OutputStream buf)
focal_class.return: void
focal_class.signature: void bitcoinSerializeToStream(OutputStream buf)
focal_class.class_method_signature: VersionMessage.hasBlockChain()
focal_class.full_signature: public boolean hasBlockChain()
focal_class.identifier: hasBlockChain
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean hasBlockChain()
focal_class.class_method_signature: VersionMessage.equals(Object o)
focal_class.full_signature: @Override public boolean equals(Object o)
focal_class.identifier: equals
focal_class.modifiers: @Override public
focal_class.parameters: (Object o)
focal_class.return: boolean
focal_class.signature: boolean equals(Object o)
focal_class.class_method_signature: VersionMessage.getChecksum()
focal_class.full_signature: @Override byte[] getChecksum()
focal_class.identifier: getChecksum
focal_class.modifiers: @Override
focal_class.parameters: ()
focal_class.return: byte[]
focal_class.signature: byte[] getChecksum()
focal_class.class_method_signature: VersionMessage.setChecksum(byte[] checksum)
focal_class.full_signature: @Override void setChecksum(byte[] checksum)
focal_class.identifier: setChecksum
focal_class.modifiers: @Override
focal_class.parameters: (byte[] checksum)
focal_class.return: void
focal_class.signature: void setChecksum(byte[] checksum)
focal_class.class_method_signature: VersionMessage.hashCode()
focal_class.full_signature: @Override public int hashCode()
focal_class.identifier: hashCode
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int hashCode()
focal_class.class_method_signature: VersionMessage.toString()
focal_class.full_signature: public String toString()
focal_class.identifier: toString
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String toString()
focal_class.class_method_signature: VersionMessage.duplicate()
focal_class.full_signature: public VersionMessage duplicate()
focal_class.identifier: duplicate
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: VersionMessage
focal_class.signature: VersionMessage duplicate()
focal_class.class_method_signature: VersionMessage.appendToSubVer(String name, String version, @Nullable String comments)
focal_class.full_signature: public void appendToSubVer(String name, String version, @Nullable String comments)
focal_class.identifier: appendToSubVer
focal_class.modifiers: public
focal_class.parameters: (String name, String version, @Nullable String comments)
focal_class.return: void
focal_class.signature: void appendToSubVer(String name, String version, @Nullable String comments)
focal_class.class_method_signature: VersionMessage.checkSubVerComponent(String component)
focal_class.full_signature: private static void checkSubVerComponent(String component)
focal_class.identifier: checkSubVerComponent
focal_class.modifiers: private static
focal_class.parameters: (String component)
focal_class.return: void
focal_class.signature: void checkSubVerComponent(String component)
focal_class.class_method_signature: VersionMessage.isPingPongSupported()
focal_class.full_signature: public boolean isPingPongSupported()
focal_class.identifier: isPingPongSupported
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isPingPongSupported()
focal_class.class_method_signature: VersionMessage.isBloomFilteringSupported()
focal_class.full_signature: public boolean isBloomFilteringSupported()
focal_class.identifier: isBloomFilteringSupported
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isBloomFilteringSupported()
focal_class.superclass: extends Message
focal_method.body: @Override
      public boolean equals(Object o) {
          if (!(o instanceof VersionMessage)) return false;
          VersionMessage other = (VersionMessage) o;
          return other.bestHeight == bestHeight &&
                  other.clientVersion == clientVersion &&
                  other.localServices == localServices &&
                  other.time == time &&
                  other.subVer.equals(subVer) &&
                  other.myAddr.equals(myAddr) &&
                  other.theirAddr.equals(theirAddr) &&
                  other.relayTxesBeforeFilter == relayTxesBeforeFilter;
      }
focal_method.class_method_signature: VersionMessage.equals(Object o)
focal_method.full_signature: @Override public boolean equals(Object o)
focal_method.identifier: equals
focal_method.invocations: equals equals equals
focal_method.modifiers: @Override public
focal_method.parameters: (Object o)
focal_method.return: boolean
focal_method.signature: boolean equals(Object o)