package Ġcom . star base . bank wallet . modules . wallet connect . request . sign message Ċ Ċ import Ġcom . trust wallet . wallet connect . models . ethereum . W CE thereum Sign Message Ċ import Ġcom . trust wallet . wallet connect . models . ethereum . W CE thereum Sign Message . WC Sign Type Ċ import Ġio . horizontal systems . bank wallet . modules . wallet connect . Wallet Connect Service Ċ import Ġio . horizontal systems . bank wallet . modules . wallet connect . Wallet Connect Sign Message Request Ċ import Ġio . horizontal systems . ethereum kit . core . E thereum Kit Ċ import Ġio . horizontal systems . ethereum kit . core . hex StringTo ByteArray Ċ Ċ class ĠWallet Connect Sign Message Request Service ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġrequest : ĠWallet Connect Sign Message Request , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġbase Service : ĠWallet Connect Service Ċ ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġe vm Kit : ĠEthereum Kit ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġbase Service . e vm Kit ĊĊĠĠĠ Ġval Ġmessage : ĠSign Message Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmessage Data Ġ= Ġrequest . message . data ĊĠĠĠĠĠĠĠ Ġwhen Ġ( request . message . type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWC Sign Type . MESSAGE Ġ-> ĠSign Message . Message ( hex StringTo Utf 8 String ( message Data )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWC Sign Type . PERSON AL _ MESSAGE Ġ-> ĠSign Message . Personal Message ( hex StringTo Utf 8 String ( message Data )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWC Sign Type . TYPE D _ MESSAGE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtype Data Ġ= Ġe vm Kit ?. parse Typed Data ( message Data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdomain Ġ= Ġtype Data ?. domain ?. get (" name ") ?. toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSign Message . Typed Message ( message Data , Ġdomain Ġ?: Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhex StringTo Utf 8 String ( hex String : ĠString ) Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠ ĠString ( hex String . hex StringTo ByteArray ()) ĊĠĠĠ Ġ} Ġcatch Ġ(_ : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġhex String ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsign Message ( message : ĠW CE thereum Sign Message ): ĠByteArray ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġe vm Kit ?. let Ġ{ Ġe vm Kit Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( message . type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWC Sign Type . MESSAGE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWC Sign Type . PERSON AL _ MESSAGE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe vm Kit . sign ByteArray ( message Ġ= Ġmessage . data . hex StringTo ByteArray ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWC Sign Type . TYPE D _ MESSAGE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe vm Kit . sign Typed Data ( raw Json Message Ġ= Ġmessage . data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsign () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsigned Message Ġ= Ġsign Message ( request . message ) ĊĠĠĠĠĠĠĠ Ġbase Service . approve Request ( request . id , Ġsigned Message Ġ?: Ġbyte ArrayOf ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġreject () Ġ{ ĊĠĠĠĠĠĠĠ Ġbase Service . reject Request ( request . id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsealed Ġclass ĠSign Message ( val Ġdata : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġclass ĠMessage ( data : ĠString ) Ġ: ĠSign Message ( data ) ĊĠĠĠĠĠĠĠ Ġclass ĠPersonal Message ( data : ĠString ) Ġ: ĠSign Message ( data ) ĊĠĠĠĠĠĠĠ Ġclass ĠTyped Message ( data : ĠString , Ġval Ġdomain : ĠString ) Ġ: ĠSign Message ( data ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ