package Ġio . horizontal systems . bank wallet . modules . send . bitcoin Ċ Ċ import Ġio . horizontal systems . bank wallet . core . IS end Bitcoin Adapter Ċ import Ġio . horizontal systems . bank wallet . modules . send . Send Module Ċ import Ġio . reactivex . Single Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġjava . math . BigDecimal Ċ Ċ class ĠSend Bitcoin Interactor ( private Ġval Ġadapter : ĠIS end Bitcoin Adapter ) Ġ: ĠSend Module . IS end Bitcoin Interactor Ġ{ ĊĠĠĠ Ġprivate Ġval Ġdis pos ables Ġ= ĠComposite Disposable () ĊĊĠĠĠ Ġvar Ġdelegate : ĠSend Module . IS end Bitcoin Interactor Delegate ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġfetch Available Balance ( fee Rate : ĠLong , Ġaddress : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠSingle . just ( adapter . available Balance ( fee Rate , Ġaddress )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġavailable Balance Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelegate ?. did Fetch Available Balance ( available Balance ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ Ġdis pos ables . add ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġvalidate ( address : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġadapter . validate ( address ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġfetch Fee ( amount : ĠBigDecimal , Ġfee Rate : ĠLong , Ġaddress : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠSingle . just ( adapter . fee ( amount , Ġfee Rate , Ġaddress )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġfee Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelegate ?. did Fetch Fee ( fee ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ Ġdis pos ables . add ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsend ( amount : ĠBigDecimal , Ġaddress : ĠString , Ġfee Rate : ĠLong ): ĠSingle < Unit > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġadapter . send ( amount , Ġaddress , Ġfee Rate ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġclear () Ġ{ ĊĠĠĠĠĠĠĠ Ġdis pos ables . clear () ĊĠĠĠ Ġ} Ċ } Ċ