package Ġcom . t ange m . commands . read Ċ Ċ import Ġcom . t ange m . Card Session Ċ import Ġcom . t ange m . Session Environment Ċ import Ġcom . t ange m . T ange m Sdk Error Ċ import Ġcom . t ange m . commands . Command Ċ import Ġcom . t ange m . commands . Command Response Ċ import Ġcom . t ange m . commands . wallet . Card Wallet Ċ import Ġcom . t ange m . commands . wallet . Wallet Index Ċ import Ġcom . t ange m . commands . wallet . add T lv Data Ċ import Ġcom . t ange m . common . Completion Result Ċ import Ġcom . t ange m . common . ap du . Command Ap du Ċ import Ġcom . t ange m . common . ap du . Instruction Ċ import Ġcom . t ange m . common . ap du . Response Ap du Ċ import Ġcom . t ange m . common . extensions . guard Ċ import Ġcom . t ange m . common . tl v . T lv Ċ import Ġcom . t ange m . common . tl v . T lv Builder Ċ import Ġcom . t ange m . common . tl v . T lv Decoder Ċ import Ġcom . t ange m . common . tl v . T lv Tag Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠAnt on ĠZ hil enk ov Ġon Ġ 2 6 / 0 3 / 2 0 2 1 . Ċ Ġ*/ Ċ class ĠWallet ListResponse ( ĊĠĠĠ Ġval Ġcid : ĠString , ĊĠĠĠ Ġval Ġwallet s : ĠList < Card Wallet > Ċ ) Ġ: ĠCommand Response Ċ Ċ class ĠRead Wallet List Command Ġ: ĠCommand < Wallet ListResponse >() Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġwallet Index : ĠWallet Index ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġtemp Wallet List Ġ= Ġmutable ListOf < Card Wallet >() ĊĊĠĠĠ Ġoverride Ġfun Ġneed Pref light Read (): ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun Ġrun ( session : ĠCard Session , Ġcallback : Ġ( result : ĠCompletion Result < Wallet ListResponse >) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcard Ġ= Ġsession . environment . card . guard Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ( Completion Result . Failure ( T ange m Sdk Error . Card Error ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtrans ceive ( session ) Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( result ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCompletion Result . Success Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Wallet List . addAll ( result . data . wallet s ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġloaded Wallet s Count Ġ= Ġtemp Wallet List . size ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( loaded Wallet s Count Ġ== Ġ 0 Ġ&& Ġresult . data . wallet s . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ( Completion Result . Failure ( T ange m Sdk Error . Card With Max Zero Wallet s ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ trans ceive ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( loaded Wallet s Count Ġ!= Ġcard . wallet s Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwallet Index Ġ= ĠWallet Index . Index ( loaded Wallet s Count ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun ( session , Ġcallback ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ trans ceive ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ( Completion Result . Success ( Wallet ListResponse ( result . data . cid , Ġtemp Wallet List ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCompletion Result . Failure Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ( Completion Result . Failure ( result . error )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġserialize ( environment : ĠSession Environment ): ĠCommand Ap du Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġt lv Builder Ġ= ĠT lv Builder () ĊĠĠĠĠĠĠĠ Ġt lv Builder . append ( T lv Tag . Card Id , Ġenvironment . card ?. card Id ) ĊĠĠĠĠĠĠĠ Ġt lv Builder . append ( T lv Tag . Pin , Ġenvironment . pin 1 ?. value ) ĊĠĠĠĠĠĠĠ Ġt lv Builder . append ( T lv Tag . Interaction Mode , ĠRead Mode . Read Wallet List ) ĊĠĠĠĠĠĠĠ Ġt lv Builder . append ( T lv Tag . Terminal PublicKey , Ġenvironment . terminal Keys ?. publicKey ) ĊĠĠĠĠĠĠĠ Ġwallet Index ?. add T lv Data ( tl v Builder ) ĊĠĠĠĠĠĠĠ Ġreturn ĠCommand Ap du ( Instruction . Read , Ġt lv Builder . serialize ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdeserialize ( environment : ĠSession Environment , Ġap du : ĠResponse Ap du ): ĠWallet ListResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġt lv Data Ġ= Ġap du . getT lv Data () Ġ?: Ġthrow ĠT ange m Sdk Error . Deserialize Ap du Failed () ĊĊĠĠĠĠĠĠĠ Ġval Ġdecoder Ġ= ĠT lv Decoder ( tl v Data ) ĊĠĠĠĠĠĠĠ Ġval Ġcard Wallet s Data : ĠList < ByteArray > Ġ= Ġdecoder . decode Array ( T lv Tag . Card Wallet ) ĊĠĠĠĠĠĠĠ Ġif Ġ( card Wallet s Data . isEmpty ()) Ġthrow ĠT ange m Sdk Error . Deserialize Ap du Failed () ĊĊĠĠĠĠĠĠĠ Ġval Ġwallet De coders Ġ= Ġcard Wallet s Data . map NotNull Ġ{ ĠT lv . deserialize ( it ) Ġ}. map Ġ{ ĠT lv Decoder ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġwallet s Ġ= Ġwallet De coders . map Ġ{ ĠCard Wallet . deserialize ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġcid Ġ= Ġdecoder . decode < String >( T lv Tag . Card Id ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠWallet ListResponse ( cid , Ġwallet s ) ĊĠĠĠ Ġ} Ċ }