package Ġio . def itr ack . protocol . quick swap . claim able Ċ Ċ import Ġio . def itr ack . abi . ABI Resource Ċ import Ġio . def itr ack . claim able . Claim able Ċ import Ġio . def itr ack . claim able . Claim able Service Ċ import Ġio . def itr ack . common . network . Network Ċ import Ġio . def itr ack . e vm . contract . Blockchain Gateway . Companion . to Address Ċ import Ġio . def itr ack . e vm . contract . Blockchain Gateway Provider Ċ import Ġio . def itr ack . e vm . contract . mult ic all . Multi Call Element Ċ import Ġio . def itr ack . protocol . Protocol Ċ import Ġio . def itr ack . protocol . quick swap . Quick swap Reward Pool Contract Ċ import Ġio . def itr ack . protocol . quick swap . Quick swap Service Ċ import Ġio . def itr ack . token . ERC 2 0 Resource Ċ import Ġorg . springframework . stereotype . Service Ċ import Ġorg . web 3 j . abi . Type Reference Ċ import Ġorg . web 3 j . abi . datat ypes . generated . Uint 2 5 6 Ċ import Ġjava . math . BigInteger Ċ Ċ @ Service Ċ class ĠQuick swap Claim able Service ( ĊĠĠĠ Ġprivate Ġval Ġquick swap Service : ĠQuick swap Service , ĊĠĠĠ Ġprivate Ġval Ġblockchain Gateway Provider : ĠBlock chain Gateway Provider , ĊĠĠĠ Ġprivate Ġval Ġabi Service : ĠABI Resource , ĊĠĠĠ Ġprivate Ġval Ġer C 2 0 Resource : ĠERC 2 0 Resource Ċ ) Ġ: ĠClaim able Service Ġ{ ĊĊĠĠĠ Ġval Ġst aking Rewards ABI Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġabi Service . get ABI (" quick swap / St aking Rewards . json ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġclaim ables ( address : ĠString ): ĠList < Claim able > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgateway Ġ= Ġblockchain Gateway Provider . get Gateway ( get Network ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġpools Ġ= Ġquick swap Service . get Vault Addresses (). map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠQuick swap Reward Pool Contract ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgateway , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġst aking Rewards ABI , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġgateway . read Multi Call ( pools . map Ġ{ Ġcontract Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMulti Call Element ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontract . create Function With Ab i ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ear ned ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( address . to Address ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠType Reference . create ( Uint 2 5 6 :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontract . address ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}). map Indexed Ġ{ Ġindex , Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġe arn ed Ġ= Ġresult [ 0 ]. value Ġas ĠBigInteger ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ear ned Ġ> ĠBigInteger . ZERO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpool Ġ= Ġpools [ index ] ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreward Ġ= Ġer C 2 0 Resource . getToken Information ( get Network (), Ġpool . rewards Token Address ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġst aking Token Ġ= Ġer C 2 0 Resource . getToken Information ( get Network (), Ġpool . staking Token Address ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠClaim able ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ" quick swap - reward -$ pool . address ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaddress Ġ= Ġpool . address , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġ" quick swap - reward - vault ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ"${ staking Token . name } ĠRew ards ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprotocol Ġ= Ġget Protocol (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnetwork Ġ= Ġget Network (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġamount Ġ= Ġe arn ed , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclaim able Token Ġ= Ġreward . to F ung ible Token (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclaim Transaction Ġ= Ġempty List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. filter NotNull () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Protocol (): ĠProtocol Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠProtocol . QU ICK SWAP ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Network (): ĠNetwork Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠNetwork . POLYGON ĊĠĠĠ Ġ} Ċ }