package Ġjp . dat ach ain . cord a . ib c . grpc _ adapter Ċ Ċ import Ġi bc . core . client . v 1 . Client Ċ import Ġi bc . core . client . v 1 . Query Grpc Ċ import Ġi bc . core . client . v 1 . Query OuterClass Ċ import Ġio . grpc . stub . Stream Observer Ċ import Ġjp . dat ach ain . cord a . ib c . clients . cord a . HEIGHT Ċ import Ġjp . dat ach ain . cord a . ib c . clients . cord a . to Proof Ċ import Ġjp . dat ach ain . cord a . ib c . ics 2 . Client State Ċ import Ġjp . dat ach ain . cord a . ib c . ics 2 4 . Identifier Ċ import Ġnet . cord a . core . contracts . State Ref Ċ import Ġnet . cord a . core . messaging . vault Query By Ċ import Ġnet . cord a . core . node . services . vault . Query Criteria Ċ Ċ class ĠClient Query Service ( host : ĠString , Ġport : ĠInt , Ġusername : ĠString , Ġpassword : ĠString , Ġprivate Ġval Ġbase Id : ĠState Ref ): ĠQuery Grpc . Query Impl Base (), ĠC ord a RP CO ps Ready Ġby ĠC ord a RP CO ps Ready . create ( host , Ġport , Ġusername , Ġpassword ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġclient State ( request : ĠQuery OuterClass . Query Client State Request , Ġresponse Observer : ĠStream Observer < Query OuterClass . Query Client State Response >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstate And Ref Ġ= Ġops . vault Query By < Client State >( Query Criteria . Linear State Query Criteria ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexternal Id Ġ= ĠlistOf ( base Id . toString ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuuid Ġ= ĠlistOf ( Identifier ( request . clientId ). to UUID ()) ĊĠĠĠĠĠĠĠ Ġ )). states . single () ĊĠĠĠĠĠĠĠ Ġval Ġproof Ġ= Ġops . internal Find Verified Transaction ( state And Ref . ref . tx hash ) !!. to Proof () ĊĠĠĠĠĠĠĠ Ġval Ġreply Ġ= ĠQuery OuterClass . Query Client State Response . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Client State ( state And Ref . state . data . client State ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Proof ( proof . to ByteString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Proof Height ( HEIGHT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġresponse Observer . onNext ( reply ) ĊĠĠĠĠĠĠĠ Ġresponse Observer . on Completed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġconsensus State ( request : ĠQuery OuterClass . Query Consensus State Request , Ġresponse Observer : ĠStream Observer < Query OuterClass . Query Consensus State Response >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstate And Ref Ġ= Ġops . vault Query By < Client State >( Query Criteria . Linear State Query Criteria ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexternal Id Ġ= ĠlistOf ( base Id . toString ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuuid Ġ= ĠlistOf ( Identifier ( request . clientId ). to UUID ()) ĊĠĠĠĠĠĠĠ Ġ )). states . single () ĊĠĠĠĠĠĠĠ Ġval Ġproof Ġ= Ġops . internal Find Verified Transaction ( state And Ref . ref . tx hash ) !!. to Proof () ĊĠĠĠĠĠĠĠ Ġval Ġclient State Ġ= Ġstate And Ref . state . data ĊĠĠĠĠĠĠĠ Ġval Ġheight Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( request . latest Height ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclient State . get Latest Height () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠClient . Height . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Revision Number ( request . revision Number ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Revision Height ( request . revision Height ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġval Ġreply Ġ= ĠQuery OuterClass . Query Consensus State Response . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Consensus State ( client State . consensus States [ height ] !!. consensus State ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Proof ( proof . to ByteString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Proof Height ( HEIGHT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġresponse Observer . onNext ( reply ) ĊĠĠĠĠĠĠĠ Ġresponse Observer . on Completed () ĊĠĠĠ Ġ} Ċ }