package Ġcom . c ak ew allet . mon ero Ċ Ċ import Ġjava . nio . ByteBuffer Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . os . Looper Ċ import Ġandroid . os . Handler Ċ Ċ import Ġandroidx . annotation . NonNull ; Ċ Ċ import Ġio . flutter . embedding . engine . plugins . Flutter Plugin Ċ import Ġio . flutter . plugin . common .* Ċ import Ġio . flutter . plugin . common . MethodCall Ċ import Ġio . flutter . plugin . common . Method Channel Ċ import Ġio . flutter . plugin . common . Method Channel . MethodCall Handler Ċ import Ġio . flutter . plugin . common . Method Channel . Result Ċ import Ġio . flutter . plugin . common . Plugin Registry . Registrar Ċ Ċ import Ġcom . c ak ew allet . mon ero . Flutter Method Handler ĊĊ Ċ public Ġclass ĠC w Mon ero Plugin Ġ: ĠFlutter Plugin , ĠMethod Call Handler Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġchannel Ġ: ĠMethod Channel ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġsync Listener Channel : ĠBasic Message Channel < ByteBuffer >? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġmon ero Api Ġ= ĠMon ero Api () ĊĠĠĠĠĠĠĠ Ġval Ġmain Ġ= ĠHandler ( Looper . get Main Looper ()); ĊĠĠĠĠĠĠĠ Ġval Ġhandlers Ġ= ĠlistOf ( Flutter Method Handler (" setup Sync Status Listener ", Ġ{ Ġcall : ĠMethod Call , Ġresult : ĠResult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmon ero Api . setup Listener ( Mon ero Wallet Sync Status Listener ({ Ġblock : ĠLong Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain . post () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuffer Ġ= ĠByteBuffer . allocate Direct ( 9 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer . put ( 0 . to Byte ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer . put Long ( block ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsync Listener Channel ?. send ( buffer ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain . post () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuffer Ġ= ĠByteBuffer . allocate Direct ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer . put ( 1 . to Byte ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsync Listener Channel ?. send ( buffer ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain . post () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuffer Ġ= ĠByteBuffer . allocate Direct ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer . put ( 2 . to Byte ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsync Listener Channel ?. send ( buffer ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain . post () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuffer Ġ= ĠByteBuffer . allocate Direct ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer . put ( 3 . to Byte ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsync Listener Channel ?. send ( buffer ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain . post () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuffer Ġ= ĠByteBuffer . allocate Direct ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer . put ( 4 . to Byte ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsync Listener Channel ?. send ( buffer ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain . post () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuffer Ġ= ĠByteBuffer . allocate Direct ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer . put ( 5 . to Byte ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsync Listener Channel ?. send ( buffer ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ})) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . success ( true ) ĊĠĠĠĠĠĠĠ Ġ})) ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġregister With ( regist rar : ĠRegist rar ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchannel Ġ= ĠMethod Channel ( regist rar . messenger (), Ġ" cw _ mon ero ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsync Listener Channel Ġ= Ġsync Listener Channel Ġ?: ĠBasic Message Channel < ByteBuffer >( regist rar . messenger (), Ġ" cw _ mon ero . sync _ listener ", ĠBinary Codec . INSTANCE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchannel . set MethodCall Handler ( Cw Mon ero Plugin ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Attached To Engine (@ NonNull Ġflutter Plugin Binding : ĠFlutter Plugin . Flutter Plugin Binding ) Ġ{ ĊĠĠĠĠĠĠĠ Ġchannel Ġ= ĠMethod Channel ( flutter Plugin Binding . get Flutter Engine (). get Dart Executor (), Ġ" cw _ mon ero ") ĊĠĠĠĠĠĠĠ Ġsync Listener Channel Ġ= Ġsync Listener Channel Ġ?: ĠBasic Message Channel < ByteBuffer >( flutter Plugin Binding . get Binary Messenger (), Ġ" cw _ mon ero . sync _ listener ", ĠBinary Codec . INSTANCE ) ĊĠĠĠĠĠĠĠ Ġchannel . set MethodCall Handler ( this ); ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Detached From Engine (@ NonNull Ġbinding : ĠFlutter Plugin . Flutter Plugin Binding ) Ġ{ ĊĠĠĠĠĠĠĠ Ġchannel . set MethodCall Handler ( null ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon MethodCall (@ NonNull Ġcall : ĠMethod Call , Ġ@ NonNull Ġresult : ĠResult ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmon ero Api . load () ĊĊĠĠĠĠĠĠĠ Ġhandlers . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . handle ( call , Ġresult ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ