package Ġat . m inte ch . nft maker . ui . scan Ċ Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġat . m inte ch . nft maker . domain . Persist User Address Ċ import Ġat . m inte ch . nft maker . domain . Transform To E thereum Address Ċ import Ġat . m inte ch . nft maker . helper . config . INVALID _ ADDRESS Ċ import Ġat . m inte ch . nft maker . helper . config . component 1 Ċ import Ġat . m inte ch . nft maker . helper . config . component 2 Ċ import Ġorg . orbit m vi . orbit . Container Host Ċ import Ġorg . orbit m vi . orbit . syntax . simple . intent Ċ import Ġorg . orbit m vi . orbit . syntax . simple . post Side Effect Ċ import Ġorg . orbit m vi . orbit . syntax . simple . reduce Ċ import Ġorg . orbit m vi . orbit . view model . container Ċ Ċ data Ġclass ĠScan ViewModel State ( ĊĠĠĠ Ġval Ġe thereum Address Ġ: ĠString Ġ= Ġ"" Ċ ) Ċ Ċ sealed Ġclass ĠScan ViewModel Side Effects Ġ{ ĊĠĠĠ Ġdata Ġclass ĠShow Error ( val Ġerror : ĠString ) Ġ: ĠScan ViewModel Side Effects () Ċ } Ċ Ċ class ĠScan ViewModel ( ĊĠĠĠ Ġprivate Ġval Ġtransform To E thereum Address : ĠTransform To E thereum Address , ĊĠĠĠ Ġprivate Ġval Ġpersist User Address : ĠPers ist User Address Ċ ) Ġ: ĠViewModel (), ĠContainer Host < Scan ViewModel State , ĠAny > Ġ{ ĊĊĠĠĠ Ġfun Ġset E thereum Address ( address : ĠString ) Ġ= Ġintent Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġ( transformed , Ġerror ) Ġ= Ġtransform To E thereum Address ( address ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( error Ġ!= Ġnull Ġ&& Ġerror . message Ġ== ĠINVALID _ ADDRESS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpost Side Effect ( Scan ViewModel Side Effects . Show Error ( error . message !! )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( transformed Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpersist User Address ( transformed ). on Success Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreduce Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate . copy ( ethereum Address Ġ= Ġtransformed ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġcontainer Ġ= Ġcontainer < Scan ViewModel State , ĠAny >( Scan ViewModel State ()) Ċ Ċ }