package Ġcom . d 3 . eth . provider Ċ Ċ import Ġcom . github . kit tin un f . result . Result Ċ import Ġcom . github . kit tin un f . result . map Ċ import Ġjp . co . sor am its u . iro ha . java . Query API Ċ import Ġmu . K Logging Ċ import Ġcom . d 3 . commons . side chain . iro ha . util . get Account Details Ċ Ċ /** Ċ Ġ* ĠProvides Ġwith Ġfree Ġe thereum Ġrelay Ġwallet Ċ Ġ* Ġ@ param Ġquery API Ġ- Ġi ro ha Ġqueries Ġnetwork Ġlayer Ċ Ġ* Ġ@ param Ġnot ary I ro ha Account Ġ- ĠMaster Ġnot ary Ġaccount Ġin ĠI ro ha Ġto Ġwrite Ġdown Ġthe Ġinformation Ġabout Ġfree Ġrelay Ġwallet s Ġhas Ġbeen Ġadded Ċ Ġ*/ Ċ // ĠTODO ĠPrevent Ġdouble Ġrelay Ġaccounts Ġusage Ġ( in Ġperfect Ġworld Ġit Ġis Ġon ĠI ro ha Ġside Ġwith Ġcustom Ġcode ). ĠIn Ġreal Ġworld Ċ // Ġon Ġprovider Ġside Ġwith Ġsome Ġsynchronization . Ċ class ĠE th Free Relay Provider ( ĊĠĠĠ Ġprivate Ġval Ġquery API : ĠQuery API , ĊĠĠĠ Ġprivate Ġval Ġnot ary I ro ha Account : ĠString , ĊĠĠĠ Ġprivate Ġval Ġregistration I ro ha Account : ĠString Ċ ) Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . info Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Init Ġfree Ġrelay Ġprovider Ġwith Ġholder Ġaccount Ġ'$ not ary I ro ha Account ' Ġand Ġsetter Ġaccount Ġ'$ registration I ro ha Account '" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġfirst Ġfree Ġe thereum Ġrelay Ġwallet . ĊĠĠĠĠ Ġ* Ġ@ return Ġfree Ġe thereum Ġrelay Ġwallet ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Relay (): ĠResult < String , ĠException > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Rel ays (). map Ġ{ Ġfree Wallet s Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( free Wallet s . isEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException (" Eth Free Relay Provider Ġ- Ġno Ġfree Ġrelay Ġwallet s Ġcreated Ġby Ġ$ registration I ro ha Account ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfree Wallet s . first () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġall Ġfree ĠEthereum Ġrelay Ġwallet s ĊĠĠĠĠ Ġ* Ġ@ return Ġfree ĠEthereum Ġrelay Ġwallet s ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Rel ays (): ĠResult < Set < String >, ĠException > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Account Details ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġquery API , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnot ary I ro ha Account , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregistration I ro ha Account ĊĠĠĠĠĠĠĠ Ġ). map Ġ{ Ġrelay s Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelay s . filter Values Ġ{ Ġi ro ha Account Ġ-> Ġi ro ha Account Ġ== Ġ" free " Ġ}. keys ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠLogger ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġcompanion Ġobject Ġ: ĠK Logging () Ċ } Ċ