package Ġcom . t ange m . operations Ċ Ċ import Ġcom . t ange m . common . Completion Result Ċ import Ġcom . t ange m . common . core . Card Session Ċ import Ġcom . t ange m . common . core . Card Session Runnable Ċ import Ġcom . t ange m . common . core . Completion Callback Ċ import Ġcom . t ange m . common . core . T ange m Sdk Error Ċ import Ġcom . t ange m . common . extensions . guard Ċ import Ġcom . t ange m . common . hd Wallet . Der ivation Path Ċ import Ġcom . t ange m . common . hd Wallet . Extended PublicKey Ċ import Ġcom . t ange m . operations . read . Read Wallet Command Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠAnt on ĠZ hil enk ov Ġon Ġ 0 6 / 0 8 / 2 0 2 1 . Ċ Ġ*/ Ċ class ĠDer ive PublicKey Command ( ĊĠĠĠ Ġprivate Ġval Ġwallet PublicKey : ĠByteArray , ĊĠĠĠ Ġprivate Ġval Ġhd Path : ĠDer ivation Path , Ċ ) Ġ: ĠCard Session Runnable < Extended PublicKey > Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġpref light Read Mode (): ĠPref light Read Mode Ġ= ĠPref light Read Mode . Read Card Only ĊĊĠĠĠ Ġoverride Ġfun Ġrun ( session : ĠCard Session , Ġcallback : ĠCompletion Callback < Extended PublicKey >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġread Wallet Ġ= ĠRead Wallet Command ( wallet PublicKey , Ġhd Path ) ĊĠĠĠĠĠĠĠ Ġread Wallet . run ( session ) Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( result ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCompletion Result . Success Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchain Code Ġ= Ġresult . data . wallet . chain Code . guard Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ( Completion Result . Failure ( T ange m Sdk Error . Card Error ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ run ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchild Key Ġ= ĠExtended PublicKey ( result . data . wallet . publicKey , Ġchain Code ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ( Completion Result . Success ( child Key )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCompletion Result . Failure Ġ-> Ġcallback ( Completion Result . Failure ( result . error )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }