package Ġio . horizontal systems . bank wallet . modules . wallet connect . version 2 Ċ Ċ import Ġcom . wallet connect . wallet connect v 2 . client . Wallet Connect Ċ import Ġcom . wallet connect . wallet connect v 2 . client . Wallet Connect Client Ċ import Ġio . reactivex . Back pressure Strategy Ċ import Ġio . reactivex . Flow able Ċ import Ġio . reactivex . subjects . Publish Subject Ċ Ċ class ĠWC 2 Ping Service Ġ{ ĊĠĠĠ Ġsealed Ġclass ĠState Ġ{ ĊĠĠĠĠĠĠĠ Ġobject ĠConnect ing Ġ: ĠState () ĊĠĠĠĠĠĠĠ Ġobject ĠConnected Ġ: ĠState () ĊĠĠĠĠĠĠĠ Ġclass ĠDis connected ( val Ġerror : ĠThrowable Ġ= ĠError (" Disconnected ")) Ġ: ĠState () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġstate Subject Ġ= ĠPublish Subject . create < State >() ĊĠĠĠ Ġval Ġstate Observable : ĠFlow able < State > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġstate Subject . to Flow able ( Back pressure Strategy . BUFFER ) ĊĊĠĠĠ Ġvar Ġstate : ĠState Ġ= ĠState . Disconnected () ĊĠĠĠĠĠĠĠ Ġprivate Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate Subject . onNext ( value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġping ( topic : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstate Ġ= ĠState . Connecting ĊĠĠĠĠĠĠĠ Ġval Ġping Ġ= ĠWallet Connect . Params . Ping ( topic ) ĊĊĠĠĠĠĠĠĠ ĠWallet Connect Client . ping ( ping , Ġobject Ġ: ĠWallet Connect . Listeners . Session Ping Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( topic : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate Ġ= ĠState . Connected ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( error : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate Ġ= ĠState . Disconnected ( error ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġreceive Response () Ġ{ ĊĠĠĠĠĠĠĠ Ġstate Ġ= ĠState . Connected ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdisconnect () Ġ{ ĊĠĠĠĠĠĠĠ Ġstate Ġ= ĠState . Disconnected () ĊĠĠĠ Ġ} Ċ Ċ } Ċ