package Ġuk . co . sentinel web . bit watcher . net . x change . bin ance Ċ Ċ import Ġio . reactivex . Observable Ċ import Ġorg . know m . x change . Exchange Factory Ċ import Ġorg . know m . x change . bin ance . Bin ance Exchange Ċ import Ġorg . know m . x change . bin ance . dto . market data . Bin ance Ticker 2 4 h Ċ import Ġorg . know m . x change . bin ance . service . Bin ance Market DataService Raw Ċ import Ġuk . co . sentinel web . bit watcher . net . Ticker Data Interactor Ċ import Ġuk . co . sentinel web . domain . Currency Code Ċ import Ġuk . co . sentinel web . domain . Currency Pair Ċ import Ġuk . co . sentinel web . domain . Ticker Domain Ċ import Ġjava . util .* Ċ import Ġjava . util . concurrent . Callable ĊĊ Ċ class ĠBin ance Ticker Data Api Interactor ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġmapper : ĠT icker Mapper Ġ= ĠT icker Mapper () Ċ ) Ġ: ĠT icker Data Interactor Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget Tick ers ( currency Codes : ĠList < Currency Code >, Ġbase Currency Codes : ĠList < Currency Code >): ĠObservable < Ticker Domain > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġobservable s : ĠMutable List < Observable < Ticker Domain >> Ġ= Ġmutable ListOf < Observable < Ticker Domain >>() ĊĠĠĠĠĠĠĠ Ġfor Ġ( base Ġin Ġbase Currency Codes ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( code Ġin Ġcurrency Codes ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobservable s . add ( get Ticker ( code , base )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠObservable . merge Delay Error ( observable s ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Ticker ( currency Code : Currency Code , Ġbase Currency Code : Currency Code ): ĠObservable < Ticker Domain > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠObservable . from Callable ( object Ġ: ĠCallable < Ticker Domain > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcall (): ĠT icker Domain Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbin ance Market DataService Raw Ġ= ĠExchange Factory . INSTANCE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create Exchange ( Bin ance Exchange :: class . java . name ). market DataService ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġas ĠBin ance Market DataService Raw ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġticker Ġ= Ġbin ance Market DataService Raw . ticker 2 4 h ( org . know m . x change . currency . Currency Pair ( currency Code . toString (), Ġbase Currency Code . toString ())) // Currency Pair . getKey ( currency Code , Ġbase Currency Code ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġmapper . map ( ticker , Ġcurrency Code , Ġbase Currency Code ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠT icker Mapper Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġmap ( ticker : ĠBin ance Ticker 2 4 h , Ġcurrency : Currency Code , Ġbase : Currency Code ): ĠT icker Domain Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠT icker Domain ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠT icker Domain . BASIC , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDate (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġticker . last Price , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrency , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbase ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }