package Ġorg . tok end . template . features . local account . import t . logic Ċ Ċ import Ġio . reactivex . Single Ċ import Ġio . reactivex . rx kotlin . to Single Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġorg . tok end . template . features . local account . mn emonic . logic . Mnemonic Code Ċ import Ġorg . tok end . template . features . local account . model . Local Account Ċ import Ġorg . tok end . template . features . local account . storage . Local Account Repository Ċ import Ġorg . tok end . template . features . user key . logic . User Key Provider Ċ import Ġorg . tok end . template . util . cipher . Data Cipher Ċ import Ġjava . util .* Ċ Ċ class ĠImport Local Account From Mnemonic UseCase ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġmnemonic Phrase : ĠString , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġmnemonic Code : ĠM n emonic Code , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcipher : ĠData Cipher , ĊĠĠĠĠĠĠĠ Ġuser Key Provider : ĠUser Key Provider , ĊĠĠĠĠĠĠĠ Ġlocal Account Repository : ĠLocal Account Repository Ċ ) Ġ: ĠImport Local Account UseCase ( user Key Provider , Ġlocal Account Repository ) Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġentropy : ĠByteArray ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġuser Key : ĠChar Array ĊĊĠĠĠ Ġoverride Ġfun Ġget Local Account (): ĠSingle < Local Account > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Entropy () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On Success Ġ{ Ġentropy Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . entropy Ġ= Ġentropy ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetUser Key () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On Success Ġ{ Ġuser Key Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . user Key Ġ= Ġuser Key ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Encrypted Local Account () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Entropy (): ĠSingle < ByteArray > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmnemonic Code . to Entropy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmnemonic Phrase ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. trim () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toLowerCase ( Locale . EN GL ISH ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace ( Regex . from Literal ("[ \\ n + | \\ s + ] "), Ġ" Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. split (' Ġ') ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. to Single (). subscribe On ( Schedulers . computation ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Encrypted Local Account (): ĠSingle < Local Account > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLocal Account . from Entropy ( entropy , Ġcipher , Ġuser Key ) ĊĠĠĠĠĠĠĠ Ġ}. to Single (). subscribe On ( Schedulers . computation ()) ĊĠĠĠ Ġ} Ċ }