package Ġcash . z . ecc . sdk . model Ċ Ċ import Ġcash . z . ecc . android . bip 3 9 . Mn emon ics Ċ import Ġcash . z . ecc . android . bip 3 9 . to Seed Ċ import Ġcash . z . ecc . android . sdk . tool . Der ivation Tool Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . with Context Ċ Ċ data Ġclass ĠWallet Addresses ( ĊĠĠĠ Ġval Ġunified : ĠWallet Address . Unified , ĊĠĠĠ Ġval Ġsh ielded S ap ling : ĠWallet Address . Sh ielded S ap ling , ĊĠĠĠ Ġval Ġtransparent : ĠWallet Address . Transparent , ĊĠĠĠ Ġval Ġviewing Key : ĠString Ċ ) Ġ{ ĊĠĠĠ Ġ// ĠOverride Ġto Ġprevent Ġle aking Ġdetails Ġin Ġlogs ĊĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= Ġ" Wallet Addresses " ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġsuspend Ġfun Ġnew ( persist able Wallet : ĠPers ist able Wallet ): ĠWallet Addresses Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠDispatcher Ġneeded Ġbecause ĠSecure Random Ġis Ġloaded , Ġwhich Ġis Ġslow Ġand Ġperforms ĠIO ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġhttps :// github . com / zc ash / kotlin - bip 3 9 / issues / 1 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġb ip 3 9 Seed Ġ= Ġwith Context ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠM n emon ics . Mnemonic Code ( persist able Wallet . seed Phrase . join ToString ()). to Seed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠDispatch ers Ġneeded Ġuntil Ġan ĠSDK Ġis Ġpublished Ġwith Ġthe Ġimplementation Ġof ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġhttps :// github . com / zc ash / zc ash - android - wallet - sdk / issues / 2 6 9 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġviewing Key Ġ= Ġwith Context ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDer ivation Tool . derive Unified View ing Keys ( bip 3 9 Seed , Ġpersist able Wallet . network )[ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. ext pub ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsh ielded S ap ling Address Ġ= Ġwith Context ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDer ivation Tool . derive Sh ielded Address ( bip 3 9 Seed , Ġpersist able Wallet . network ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWallet Address . Sh ielded S ap ling . new ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransparent Address Ġ= Ġwith Context ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDer ivation Tool . derive Transparent Address ( bip 3 9 Seed , Ġpersist able Wallet . network ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWallet Address . Transparent . new ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO Ġ[# 1 6 1 ]: ĠPending ĠSDK Ġsupport , Ġfix Ġproviding Ġcorrect Ġvalues Ġfor Ġthe Ġunified ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠWallet Addresses ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunified Ġ= ĠWallet Address . Unified . new (" Unified ĠGitHub ĠIssue Ġ# 1 6 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsh ielded S ap ling Ġ= Ġsh ielded S ap ling Address , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransparent Ġ= Ġtransparent Address , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġviewing Key Ġ= Ġviewing Key ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ