package Ġcom . fan r ong . fr wallet . tools čĊč Ċ import Ġandroid . webkit . Value Callback č Ċ import Ġkotlinx . coroutines . Dispatch ers č Ċ import Ġkotlinx . coroutines . Global Scope č Ċ import Ġkotlinx . coroutines . delay č Ċ import Ġkotlinx . coroutines . launch čĊč Ċ object ĠB rew Chain Js Utils Ġ{ čĊčĊĠĠĠ Ġfun Ġexport Ke yst ore ( privateKey : String , password : String , callback : ĠValue Callback < String > ){ čĊĠĠĠĠĠĠĠ Ġval Ġscript Ġ= ĠString . format (" wrap er Export Ke yst ore ('% s ',' % s ') ", ĠprivateKey , Ġpassword ) čĊĠĠĠĠĠĠĠ ĠCall Js Code Utils . get Js Handler (). evaluate Javascript ( script , Ġcallback ) čĊĠĠĠ Ġ} čĊĠĠĠ Ġfun Ġimport Ke yst ore ( keystore : String , password : ĠString , callback : ĠValue Callback < String > ){ čĊĠĠĠĠĠĠĠ Ġval Ġscript Ġ= ĠString . format (" wrap er Import Ke yst ore ('% s ',' % s ') ", Ġkeystore , Ġpassword ) čĊĠĠĠĠĠĠĠ ĠCall Js Code Utils . get Js Handler (). evaluate Javascript ( script , Ġcallback ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġget Transaction C 2 0 Tx ( private key : ĠString ?, Ġto : ĠString ?, Ġnonce : ĠString ?, Ġcontract : ĠString ?, Ġamount : ĠString ?, Ġcallback : ĠValue Callback < String ?> ?) Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġscript Ġ= ĠString . format (" getTransaction C 2 0 Tx ('% s ',' % s ',' % s ',' % s ',' % s ') ", Ġprivate key , Ġto , Ġnonce , Ġcontract , Ġamount ) čĊĠĠĠĠĠĠĠ ĠCall Js Code Utils . get Js Handler (). evaluate Javascript ( script , Ġcallback ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġsuspend Ġfun Ġsus Get Transaction C 2 0 Tx ( čĊĠĠĠĠĠĠĠ Ġprivate key : ĠString ?, čĊĠĠĠĠĠĠĠ Ġto : ĠString ?, čĊĠĠĠĠĠĠĠ Ġnonce : ĠString ?, čĊĠĠĠĠĠĠĠ Ġcontract : ĠString ?, čĊĠĠĠĠĠĠĠ Ġamount : ĠString ? čĊĠĠĠ Ġ): ĠString ? Ġ{ čĊĠĠĠĠĠĠĠ Ġvar Ġresult : ĠString ? Ġ= Ġnull čĊĠĠĠĠĠĠĠ Ġvar Ġjob Ġ= ĠGlobal Scope . launch ( Dispatch ers . Main ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġscript Ġ= ĠString . format (" getTransaction C 2 0 Tx ('% s ',' % s ',' % s ',' % s ',' % s ') ", Ġprivate key , Ġto , Ġnonce , Ġcontract , Ġamount ) čĊĠĠĠĠĠĠĠĠĠĠĠ ĠCall Js Code Utils . get Js Handler (). evaluate Javascript ( script , Ġobject Ġ: ĠValue Callback < String > Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Receive Value ( value : ĠString ?) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= ĠCall Js Code Utils . readString Js Value ( value ) ?: "" čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( result Ġ== Ġnull ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 2 0 0 ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġjob . join () čĊĠĠĠĠĠĠĠ Ġreturn Ġresult čĊĠĠĠ Ġ} č Ċ }