package Ġcom . d 3 . btc . listener Ċ Ċ import Ġcom . d 3 . btc . handler . New Btc Client Registration Handler Ċ import Ġcom . d 3 . commons . side chain . iro ha . util . get Set Detail Commands Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġi ro ha . protocol . Block OuterClass Ċ import Ġmu . K Logging Ċ import Ġorg . bitcoin j . wallet . Wallet Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . beans . factory . annotation . Qualifier Ċ import Ġorg . springframework . stereotype . Component Ċ import Ġjava . util . concurrent . ExecutorService Ċ Ċ /** Ċ Ġ* ĠClass Ġthat Ġis Ġused Ġto Ġlisten Ġto Ġnew Ġclient Ġregistration Ġevents Ċ Ġ*/ Ċ @ Component Ċ class ĠNew Btc Client Registration Listener ( ĊĠĠĠ Ġ@ Autowired Ġprivate Ġval Ġnew Btc Client Registration Handler : ĠNew Btc Client Registration Handler , ĊĠĠĠ Ġ@ Qualifier (" registered Clients Listener Executor ") ĊĠĠĠ Ġ@ Autowired Ġprivate Ġval Ġregistered Clients Listener Executor : ĠExecutor Service Ċ ) Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠList ens Ġto Ġnewly Ġregistered ĠBitcoin Ġaddresses Ġand Ġadds Ġaddresses Ġto Ġcurrent Ġwallet Ġobject ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġlisten To Registered Clients ( ĊĠĠĠĠĠĠĠ Ġwallet : ĠWallet , ĊĠĠĠĠĠĠĠ Ġi ro ha Observable : ĠObservable < Block OuterClass . Block >, ĊĠĠĠĠĠĠĠ Ġon Chain Listener Fail : Ġ() Ġ-> ĠUnit ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġi ro ha Observable . subscribe On ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠS chedulers . from ( registered Clients Listener Executor ) ĊĠĠĠĠĠĠĠ Ġ). subscribe ({ Ġblock Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Set Detail Commands ( block ). forEach Ġ{ Ġcommand Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Btc Client Registration Handler . handle New Client Command ( command , Ġwallet ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġex Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error (" Error Ġon Ġsubscribe ", Ġex ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Chain Listener Fail () ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠLogger ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġcompanion Ġobject Ġ: ĠK Logging () Ċ } Ċ