/** Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 ĠE mer ald Pay , ĠInc Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġio . em eral dp ay . d sh ack le Ċ Ċ import Ġcom . fasterxml . jackson . core . Version Ċ import Ġcom . fasterxml . jackson . databind . Deserialization Feature Ċ import Ġcom . fasterxml . jackson . databind . ObjectMapper Ċ import Ġcom . fasterxml . jackson . databind . module . Simple Module Ċ import Ġcom . fasterxml . jackson . datatype . jdk 8 . J dk 8 Module Ċ import Ġcom . fasterxml . jackson . datatype . js r 3 1 0 . Java Time Module Ċ import Ġio . em eral dp ay . d sh ack le . upstream . bitcoin . data . E spl ora Un spent Ċ import Ġio . em eral dp ay . d sh ack le . upstream . bitcoin . data . E spl ora Un spent Deserializer Ċ import Ġio . em eral dp ay . d sh ack le . upstream . bitcoin . data . Rpc Un spent Ċ import Ġio . em eral dp ay . d sh ack le . upstream . bitcoin . data . Rpc Un spent Deserializer Ċ import Ġio . em eral dp ay . d sh ack le . upstream . rp cc lient . Json Rpc Request Ċ import Ġio . em eral dp ay . d sh ack le . upstream . rp cc lient . Json Rpc Response Ċ import Ġio . em eral dp ay . grpc . Chain Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util . Locale Ċ import Ġjava . util . TimeZone Ċ import Ġjava . util . concurrent . Executors Ċ import Ġjava . util . concurrent . Scheduled ExecutorService Ċ Ċ class ĠGlobal Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġvar Ġmetrics Extended Ġ= Ġfalse ĊĊĠĠĠ Ġprivate Ġval Ġchain Names Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" ethereum " Ġto ĠChain . ET HERE UM , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" ethereum - classic " Ġto ĠChain . ET HERE UM _ CLASS IC , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" eth " Ġto ĠChain . ET HERE UM , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" polygon " Ġto ĠChain . MAT IC , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" matic " Ġto ĠChain . MAT IC , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" r sk " Ġto ĠChain . R SK , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" xda i " Ġto ĠChain . X DA I , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" b sc " Ġto ĠChain . B SC , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" he co " Ġto ĠChain . HE CO , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" arb " Ġto ĠChain . AR BIT R UM , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" ar bit rum " Ġto ĠChain . AR BIT R UM , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" ava " Ġto ĠChain . A VAL AN CHE , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" av alan che " Ġto ĠChain . A VAL AN CHE , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" optim ism " Ġto ĠChain . OP TI MIS M , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" moon river " Ġto ĠChain . MO ON RI VER , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" etc " Ġto ĠChain . ET HERE UM _ CLASS IC , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" m orden " Ġto ĠChain . TEST NET _ M ORD EN , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" k ovan " Ġto ĠChain . TEST NET _ K OV AN , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" k ovan - test net " Ġto ĠChain . TEST NET _ K OV AN , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" go er li " Ġto ĠChain . TEST NET _ GO ER LI , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" go er li - test net " Ġto ĠChain . TEST NET _ GO ER LI , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" rin ke by " Ġto ĠChain . TEST NET _ R IN KE BY , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" rin ke by - test net " Ġto ĠChain . TEST NET _ R IN KE BY , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" rop sten " Ġto ĠChain . TEST NET _ ROP ST EN , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" rop sten - test net " Ġto ĠChain . TEST NET _ ROP ST EN , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" bitcoin " Ġto ĠChain . BIT CO IN , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" bitcoin - test net " Ġto ĠChain . TEST NET _ BIT CO IN ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġchain ById ( id : ĠString ?): ĠChain Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( id Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠChain . UNSPECIFIED ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġchain Names [ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid . lowercase ( Locale . getDefault ()). replace ("_ ", Ġ"- "). trim () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ] Ġ?: ĠChain . UNSPECIFIED ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġval ĠobjectMapper : ĠObjectMapper Ġ= Ġcreate ObjectMapper () ĊĊĠĠĠĠĠĠĠ Ġvar Ġversion : ĠString Ġ= Ġ" DEV " ĊĊĠĠĠĠĠĠĠ Ġval Ġcontrol : ĠScheduled ExecutorService Ġ= ĠExec utors . new Single Thread Scheduled Executor () ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġcreate ObjectMapper (): ĠObjectMapper Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmodule Ġ= ĠSimple Module (" E mer ald D sh ack le ", ĠVersion ( 1 , Ġ 0 , Ġ 0 , Ġnull , Ġnull , Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodule . add Serializer ( Json Rpc Response :: class . java , ĠJson Rpc Response . Response Json Serializer ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodule . add Deserializer ( E spl ora Un spent :: class . java , ĠE spl ora Un spent Deserializer ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodule . add Deserializer ( Rpc Un spent :: class . java , ĠRpc Un spent Deserializer ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodule . add Deserializer ( Json Rpc Request :: class . java , ĠJson Rpc Request . Deserializer ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠobjectMapper Ġ= ĠObjectMapper () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠobjectMapper . register Module ( module ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠobjectMapper . register Module ( J dk 8 Module ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠobjectMapper . register Module ( Java Time Module ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠobjectMapper . configure ( Deserialization Feature . FAIL _ ON _ UNKNOWN _ PROPERTIES , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠobjectMapper ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set DateFormat ( SimpleDateFormat (" yyyy - MM - dd \' T \' HH : mm : ss . SS S ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set TimeZone ( TimeZone . getTime Zone (" UTC ")) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠobjectMapper ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ