package Ġcom . bab o ais ystem . market kit . models Ċ Ċ import Ġcom . google . gson . annotations . SerializedName Ċ import Ġjava . math . BigDecimal Ċ import Ġjava . math . Round ingMode Ċ import Ġjava . util .* Ċ Ċ data Ġclass ĠCoin Ge cko Coin Response ( ĊĠĠĠ Ġval Ġid : ĠString , ĊĠĠĠ Ġval Ġsymbol : ĠString , ĊĠĠĠ Ġval Ġname : ĠString , ĊĠĠĠ Ġval Ġplatforms : ĠMap < String , ĠString >, ĊĠĠĠ Ġval Ġtick ers : ĠList < Market Ticker Raw > Ċ ) Ġ{ ĊĊĠĠĠ Ġprivate Ġfun Ġis Smart Contract Address ( v : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( v . length Ġ!= Ġ 4 2 ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġv . matches ("^ 0 [ x X ][ A - z 0 - 9 ]+ $ ". to Regex ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfilter Ticker ( ticker : ĠMarket Ticker Raw ) Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġticker . last Rate . compareTo ( BigDecimal . ZERO ) Ġ== Ġ 0 Ġ-> Ġfalse ĊĠĠĠĠĠĠĠ Ġticker . volume . compareTo ( BigDecimal . ZERO ) Ġ== Ġ 0 Ġ-> Ġfalse ĊĠĠĠĠĠĠĠ Ġis Smart Contract Address ( ticker . base ) Ġ-> Ġfalse ĊĠĠĠĠĠĠĠ Ġis Smart Contract Address ( ticker . target ) Ġ-> Ġfalse ĊĠĠĠĠĠĠĠ Ġis Symbol Not Target Nor Base ( ticker . target , Ġticker . base ) Ġ-> Ġfalse ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġis Symbol Not Target Nor Base ( target : ĠString , Ġbase : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ( symbol . lowercase () Ġ!= Ġtarget . lowercase () Ġ&& Ġsymbol . lowercase () Ġ!= Ġbase . lowercase ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġexchange Ids : ĠList < String > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġtick ers . map Ġ{ Ġit . market . id Ġ} ĊĊĠĠĠ Ġfun Ġmarket Tick ers ( image Urls : ĠMap < String , ĠString >): ĠList < Market Ticker > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontract Addresses Ġ= Ġplatforms . map NotNull Ġ{ Ġ( platform Name , Ġcontract Address ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( smart Contract Platforms . contains ( platform Name )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontract Address . lowercase () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtick ers . map Ġ{ Ġraw Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbase Ġ= Ġif Ġ( contract Addresses . contains ( raw . base . lowercase ( Locale . EN GL ISH ))) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsymbol . uppercase () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġraw . base ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= Ġif Ġ( contract Addresses . contains ( raw . target . lowercase ( Locale . EN GL ISH ))) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsymbol . uppercase () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġraw . target ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠMarket Ticker Raw ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbase , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġraw . market , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġraw . last Rate , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġraw . volume , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġfilter Ticker ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠimageUrl Ġ= Ġimage Urls [ it . market . id ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġtarget Ġ= Ġit . target ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġbase Ġ= Ġit . base ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġvolume Ġ= Ġit . volume ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġlast Rate Ġ= Ġit . last Rate ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . target . lowercase () Ġ== Ġsymbol . lowercase ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbase Ġ= Ġsymbol . uppercase () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Ġ= Ġit . base ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvolume Ġ*= Ġlast Rate ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast Rate Ġ= ĠBigDecimal . ONE . divide ( last Rate , Ġ 4 , ĠRound ingMode . HALF _ E VEN ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMarket Ticker ( base , Ġtarget , Ġit . market . name , ĠimageUrl , Ġlast Rate , Ġvolume ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġsmart Contract Platforms : ĠList < String > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (" tron ", Ġ" ethereum ", Ġ" eos ", Ġ" bin ance - smart - chain ", Ġ" bin ance coin ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ data Ġclass ĠMarket Ticker Raw ( ĊĠĠĠ Ġval Ġbase : ĠString , ĊĠĠĠ Ġval Ġtarget : ĠString , ĊĠĠĠ Ġval Ġmarket : ĠT icker Market Raw , ĊĠĠĠ Ġ@ SerializedName (" last ") ĊĠĠĠ Ġval Ġlast Rate : ĠBigDecimal , ĊĠĠĠ Ġval Ġvolume : ĠBigDecimal , Ċ ) Ċ Ċ data Ġclass ĠT icker Market Raw ( ĊĠĠĠ Ġ@ SerializedName (" identifier ") ĊĠĠĠ Ġval Ġid : ĠString , ĊĠĠĠ Ġval Ġname : ĠString , Ċ ) Ċ