package Ġio . horizontal systems . bank wallet . core Ċ Ċ import Ġandroid . content . Context Ċ import Ġio . horizontal systems . bank wallet . core . utils . Address Parser Ċ import Ġio . horizontal systems . bank wallet . entities . Auth Data Ċ import Ġio . horizontal systems . bank wallet . entities . Coin Ċ import Ġio . horizontal systems . bank wallet . entities . Transaction Record Ċ import Ġio . horizontal systems . bank wallet . view Helpers . Date Helper Ċ import Ġio . horizontal systems . bitcoin core . Bitcoin Core Ċ import Ġio . horizontal systems . bitcoin core . models . Block Info Ċ import Ġio . horizontal systems . dash kit . Dash Kit Ċ import Ġio . horizontal systems . dash kit . Dash Kit . Network Type Ċ import Ġio . horizontal systems . dash kit . models . Dash Transaction Info Ċ import Ġio . reactivex . Single Ċ import Ġjava . math . BigDecimal Ċ import Ġjava . util .* Ċ Ċ class ĠDash Adapter ( coin : ĠCoin , Ġoverride Ġval Ġkit : ĠDash Kit , Ġaddress Parser : ĠAddress Parser , Ġprivate Ġval Ġfee Rate Provider : ĠIF ee Rate Provider ) Ġ: ĊĠĠĠĠĠĠĠ ĠBitcoin Base Adapter ( coin , Ġkit , Ġaddress Parser ), ĠDash Kit . Listener Ġ{ ĊĊĠĠĠ Ġconstructor ( coin : ĠCoin , Ġauth Data : ĠAuth Data , Ġnew Wallet : ĠBoolean , Ġtest Mode : ĠBoolean , Ġfee Rate Provider : ĠIF ee Rate Provider ) Ġ: ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis ( coin , Ġcreate Kit ( auth Data , Ġnew Wallet , Ġtest Mode ), ĠAddress Parser (" dash ", Ġtrue ), Ġfee Rate Provider ) ĊĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġkit . listener Ġ= Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĊĠĠĠ Ġ// ĠBitcoin Base Adapter ĊĠĠĠ Ġ// ĊĊĠĠĠ Ġoverride Ġval Ġsat osh isIn Bitcoin : ĠBigDecimal Ġ= ĠBigDecimal . valueOf ( Math . pow ( 1 0 . 0 , Ġdecimal . toDouble ())) ĊĊĠĠĠ Ġoverride Ġfun Ġfee Rate ( fee Priority : ĠF ee Rate Priority ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfee Rate Provider . dash Fee Rate ( fee Priority ). toInt () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĊĠĠĠ Ġ// ĠDash Kit ĠListener ĊĠĠĠ Ġ// ĊĊĠĠĠ Ġoverride Ġfun Ġon Balance Update ( balance : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbalance Updated Subject . onNext ( Unit ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Last Block Info Update ( block Info : ĠBlock Info ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlast Block Height Updated Subject . onNext ( Unit ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Kit State Update ( state : ĠBitcoin Core . Kit State ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( state ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠBitcoin Core . Kit State . Sync ed Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this . state Ġ! is ĠAdapter State . Sync ed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . state Ġ= ĠAdapter State . Sync ed ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠBitcoin Core . Kit State . Not Sync ed Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this . state Ġ! is ĠAdapter State . Not Sync ed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . state Ġ= ĠAdapter State . Not Sync ed ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠBitcoin Core . Kit State . Sync ing Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . state . let Ġ{ Ġcurrent State Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Progress Ġ= Ġ( state . progress Ġ* Ġ 1 0 0 ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Date Ġ= Ġkit . last Block Info ?. timestamp ?. let Ġ{ ĠDate ( it Ġ* Ġ 1 0 0 0 ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( currentState Ġis ĠAdapter State . Sync ing Ġ&& Ġcurrent State . progress Ġ== Ġnew Progress ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Date Ġ= Ġcurrent State . last Block Date ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new Date Ġ!= Ġnull Ġ&& Ġcurrent Date Ġ!= Ġnull Ġ&& ĠDate Helper . is Same Day ( new Date , Ġcurrent Date )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . state Ġ= ĠAdapter State . Sync ing ( new Progress , Ġnew Date ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Transactions Update ( inserted : ĠList < Dash Transaction Info >, Ġupdated : ĠList < Dash Transaction Info >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrecords Ġ= Ġmutable ListOf < Transaction Record >() ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( info Ġin Ġinserted ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecords . add ( transaction Record ( info )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( info Ġin Ġupdated ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecords . add ( transaction Record ( info )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtransaction Records Subject . onNext ( records ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Transactions Delete ( hashes : ĠList < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġignored Ġfor Ġnow ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Transactions ( from : ĠPair < String , ĠInt > ?, Ġlimit : ĠInt ): ĠSingle < List < Transaction Record >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġkit . transactions ( from ?. first , Ġlimit ). map Ġ{ Ġit . map Ġ{ Ġtx Ġ-> Ġtransaction Record ( tx ) Ġ} Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġget Network Type ( test Mode : ĠBoolean ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( test Mode ) ĠNetwork Type . Test Net Ġelse ĠNetwork Type . Main Net ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġcreate Kit ( auth Data : ĠAuth Data , Ġnew Wallet : ĠBoolean , Ġtest Mode : ĠBoolean ): ĠDash Kit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠDash Kit ( App . instance , Ġauth Data . words , Ġauth Data . wallet Id , Ġnew Wallet Ġ= Ġnew Wallet , Ġnetwork Type Ġ= Ġget Network Type ( test Mode )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġclear ( context : ĠContext , Ġwallet Id : ĠString , Ġtest Mode : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDash Kit . clear ( context , Ġget Network Type ( test Mode ), Ġwallet Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ