package Ġcom . my ether wallet . me ww allet bl . data Ċ Ċ import Ġandroid . os . Parcelable Ċ import Ġcom . google . gson . annotations . SerializedName Ċ import Ġkotlinx . parcel ize . Parcel ize Ċ import Ġjava . math . BigDecimal Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠB Art Well Ġon Ġ 1 2 . 0 2 . 2 0 2 0 . Ċ Ġ*/ Ċ Ċ @ Parcel ize Ċ data Ġclass ĠPurchase Provider ( ĊĠĠĠ Ġ@ SerializedName (" name ") ĊĠĠĠ Ġval Ġname : ĠName ?, ĊĠĠĠ Ġ@ SerializedName (" fi at _ currencies ") ĊĠĠĠ Ġval Ġfi at C urrencies : ĠList < String >, ĊĠĠĠ Ġ@ SerializedName (" crypto _ currencies ") ĊĠĠĠ Ġval Ġcrypto C urrencies : ĠList < String >, ĊĠĠĠ Ġ@ SerializedName (" prices ") ĊĠĠĠ Ġval Ġprices : ĠList < Purchase Prices >, ĊĠĠĠ Ġ@ SerializedName (" limits ") ĊĠĠĠ Ġval Ġlimits : ĠList < Purchase Limit >, ĊĠĠĠ Ġ@ SerializedName (" conversion _ rates ") ĊĠĠĠ Ġval Ġrates : ĠList < Purchase Conversion Rate > Ċ ) Ġ: ĠParcel able Ġ{ ĊĊĠĠĠ Ġfun Ġget Limit ( currency : ĠString ) Ġ= Ġlimits . find Ġ{ ĊĠĠĠĠĠĠĠ Ġit . fi at Currency Ġ== Ġcurrency Ġ&& Ġit . type Ġ== Ġ" WEB " ĊĠĠĠ Ġ} !!. limit ĊĊĠĠĠ Ġfun Ġget Price ( blockchain : ĠBlock chain , Ġcurrency : ĠString ) Ġ= Ġprices . find Ġ{ Ġit . crypto Currency Ġ== Ġblockchain . token Ġ&& Ġit . fi at Currency Ġ== Ġcurrency Ġ} ?. price ĊĊĠĠĠ Ġfun Ġget Rate ( currency : ĠString ) Ġ= Ġrates . find Ġ{ Ġit . fi at Currency Ġ== Ġcurrency Ġ} ?. exchange Rate ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġget Provider ( response : ĠList < Purchase Provider >, Ġblockchain : ĠBlock chain ): ĠPurchase Provider ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhas Non Zero Limits ( response , ĠName . SIMP LEX , Ġblockchain )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġhas Non Zero Limits ( response : ĠList < Purchase Provider >, Ġsearch : ĠName , Ġblockchain : ĠBlock chain ): ĠPurchase Provider ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprovider Ġ= Ġresponse . find Ġ{ Ġit . name Ġ== Ġsearch Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Provider Support Token Ġ= Ġprovider ?. crypto C urrencies ?. find Ġ{ Ġit Ġ== Ġblockchain . token Ġ} Ġ!= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Provider Support Token ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprovider ?. limits ?. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . type Ġ== Ġ" WEB " Ġ&& Ġit . limit . max Ġ> ĠBigDecimal . ZERO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġprovider ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġis Provider Present ( data : ĠList < Purchase Provider > ?, Ġname : ĠName ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġdata ?. find Ġ{ Ġit . name Ġ== Ġname Ġ} Ġ!= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġenum Ġclass ĠName Ġ{ ĊĠĠĠĠĠĠĠ ĠS IMP LEX ĊĠĠĠ Ġ} Ċ } Ċ