package Ġio . horizontal systems . index chain kit . messages Ċ Ċ import Ġio . horizontal systems . bitcoin core . io . Bitcoin Input Mark able Ċ import Ġio . horizontal systems . bitcoin core . io . Bitcoin Output Ċ import Ġio . horizontal systems . bitcoin core . models . Network Address Ċ import Ġio . horizontal systems . bitcoin core . network . messages . I Message Ċ Ċ import Ġio . horizontal systems . bitcoin core . network . messages . Version Message Ċ import Ġio . horizontal systems . bitcoin core . network . messages . Version Message Parser Ċ import Ġio . horizontal systems . bitcoin core . network . messages . Version Message Serializer Ċ Ċ class ĠIndex Chain Version Message Parser Ġ: ĠVersion Message Parser () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġparse Message ( input : ĠBitcoin Input Mark able ): ĠI Message Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprotocol Version Ġ= Ġinput . readInt () ĊĠĠĠĠĠĠĠ Ġval Ġservices Ġ= Ġinput . read Long () ĊĠĠĠĠĠĠĠ Ġval Ġtimestamp Ġ= Ġinput . read Long () ĊĠĠĠĠĠĠĠ Ġval Ġrecipient Address Ġ= ĠNetwork Address . parse ( input , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġval Ġversion Message Ġ= ĠVersion Message ( protocol Version , Ġservices , Ġtimestamp , Ġrecipient Address ) ĊĊĠĠĠĠĠĠĠ Ġversion Message . sender Address Ġ= ĠNetwork Address . parse ( input , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġversion Message . nonce Ġ= Ġinput . read Long () ĊĠĠĠĠĠĠĠ Ġversion Message . sub Version Ġ= Ġinput . readString () ĊĠĠĠĠĠĠĠ Ġversion Message . last Block Ġ= Ġinput . readInt () ĊĠĠĠĠĠĠĠ Ġversion Message . relay Ġ= Ġinput . read Byte (). toInt () Ġ!= Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġreturn Ġversion Message ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠIndex Chain Version Message Serializer Ġ: ĠVersion Message Serializer () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġserialize ( message : ĠI Message ): ĠByteArray ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( message Ġ! is ĠVersion Message ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġoutput Ġ= ĠBitcoin Output () ĊĠĠĠĠĠĠĠ Ġoutput . writeInt ( message . protocol Version ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. write Long ( message . services ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. write Long ( message . timestamp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. write ( message . recipient Address . toByteArray ( false )) ĊĠĠĠĠĠĠĠ Ġoutput . write ( message . sender Address . toByteArray ( false )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. write Long ( message . nonce ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. writeString ( message . sub Version ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. writeInt ( message . last Block ) ĊĠĠĠĠĠĠĠ Ġoutput . write Byte ( 1 ) ĊĊĊĠĠĠĠĠĠĠ Ġreturn Ġoutput . toByteArray () ĊĠĠĠ Ġ} Ċ }