package Ġio . horizontal systems . bank wallet . modules . enable coins Ċ Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . google . gson . reflect . Type Token Ċ import Ġio . horizontal systems . bank wallet . core . IN etwork Manager Ċ import Ġio . horizontal systems . market kit . models . Coin Type Ċ import Ġio . reactivex . Single Ċ Ċ class ĠEnable Coins E ip 2 0 Provider ( ĊĠĠĠ Ġprivate Ġval Ġnetwork Manager : ĠIN etwork Manager , ĊĠĠĠ Ġprivate Ġval Ġmode : ĠEnable Coin Mode Ċ ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġurl : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEnable Coin Mode . E rc 2 0 Ġ-> Ġ" https :// api . e thers can . io /" ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEnable Coin Mode . B ep 2 0 Ġ-> Ġ" https :// api . b sc scan . com /" ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcoin Type ( address : ĠString ): ĠCoin Type Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEnable Coin Mode . E rc 2 0 Ġ-> ĠCoin Type . E rc 2 0 ( address ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEnable Coin Mode . B ep 2 0 Ġ-> ĠCoin Type . B ep 2 0 ( address ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcoin Types ( transactions : ĠList < Transaction >): ĠList < Coin Type > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtransactions . map Ġ{ Ġcoin Type ( it . contract Address ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Coin Types Async ( address : ĠString ): ĠSingle < List < Coin Type >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparams Ġ= Ġ" api ? module = account & action = tok ent x & sort = asc & address =$ address " ĊĠĠĠĠĠĠĠ Ġval Ġgson Ġ= ĠGson () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġnetwork Manager . get E vm Info ( url , Ġparams ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĠjsonObject Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( jsonObject . get (" status "). asString Ġ== Ġ" 1 " Ġ&& ĠjsonObject . has (" result ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtype Ġ= Ġobject Ġ: ĠType Token < ArrayList < Transaction >>() Ġ{} . type ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransactions Ġ= Ġgson . fromJson < ArrayList < Transaction >>( jsonObject . get (" result "), Ġtype ). distinct () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcoin Types ( transactions ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġenum Ġclass ĠEnable Coin Mode Ġ{ ĊĠĠĠĠĠĠĠ ĠE rc 2 0 , ĠB ep 2 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdata Ġclass ĠTransaction ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontract Address : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtoken Name : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtoken Symbol : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtoken Decimal : ĠString ĊĠĠĠ Ġ) Ċ Ċ } Ċ