package Ġio . code chef . def itr ack . protocol . adam ant . claim able Ċ Ċ import Ġio . code chef . def itr ack . claim able . Claim ableElement Ċ import Ġio . code chef . def itr ack . claim able . Claim able Service Ċ import Ġio . code chef . def itr ack . claim able . Claim able Token Ċ import Ġio . code chef . def itr ack . token . ERC 2 0 Resource Ċ import Ġio . def itr ack . abi . ABI Resource Ċ import Ġio . def itr ack . abi . Price Resource Ċ import Ġio . def itr ack . common . network . Network Ċ import Ġio . def itr ack . ethereum based . contract . E vm Contract Accessor . Companion . to Address Ċ import Ġio . def itr ack . ethereum based . contract . mult ic all . Multi Call Element Ċ import Ġio . def itr ack . polygon . config . Polygon Contract Accessor Ċ import Ġio . def itr ack . protocol . Protocol Ċ import Ġio . def itr ack . protocol . adam ant . Adam ant Service Ċ import Ġio . def itr ack . protocol . adam ant . Adam ant Vault Contract Ċ import Ġio . def itr ack . protocol . adam ant . Strategy Contract Ċ 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 . BigDecimal Ċ import Ġjava . math . BigInteger Ċ import Ġjava . math . Round ingMode Ċ Ċ @ Service Ċ class ĠAdam ant Claim able Service ( ĊĠĠĠ Ġprivate Ġval Ġabi Resource : ĠABI Resource , ĊĠĠĠ Ġprivate Ġval Ġad am ant Service : ĠAdam ant Service , ĊĠĠĠ Ġprivate Ġval Ġpolygon Contract Accessor : ĠPolygon Contract Accessor , ĊĠĠĠ Ġprivate Ġval Ġer C 2 0 Resource : ĠERC 2 0 Resource , ĊĠĠĠ Ġprivate Ġval Ġprice Service : ĠPrice Resource Ċ ) Ġ: ĠClaim able Service Ġ{ ĊĊĠĠĠ Ġval Ġgeneric Vault ABI Ġ= Ġabi Resource . get ABI (" adam ant / Generic Vault . json ") ĊĊĠĠĠ Ġoverride Ġfun Ġclaim ables ( address : ĠString ): ĠList < Claim ableElement > Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġvault Contracts Ġ= Ġad am ant Service . adam ant Generic Vault s (). map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAdam ant Vault Contract ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpolygon Contract Accessor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgeneric Vault ABI , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . vault Address , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . lp Address ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġreturn Ġpolygon Contract Accessor . read Multi Call ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvault Contracts . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMulti Call Element ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . create Function ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" get Pending Reward ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( address . to Address ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠType Reference . create ( Uint 2 5 6 :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . address ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ). map Indexed Ġ{ Ġindex , Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbalance Ġ= Ġresult [ 0 ]. value Ġas ĠBigInteger ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( balance Ġ> ĠBigInteger . ONE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvault Ġ= Ġvault Contracts [ index ] ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstrategy Ġ= ĠStrategy Contract ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpolygon Contract Accessor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġabi Resource . get ABI (" adam ant / IS tr ategy . json "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvault . strategy ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtoken Ġ= Ġer C 2 0 Resource . get ERC 2 0 ( get Network (), Ġstrategy . fee Dist Token ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpending Reward Ġ= Ġvault . get Pending Reward ( address ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġadd y Price Ġ= Ġprice Service . get Price (" ADD Y ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġamount In Us d Ġ= Ġprice Service . calculate Price ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoken . symbol , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpending Reward . to BigDecimal (). divide ( BigDecimal . TEN . pow ( token . decimals ), Ġ 1 8 , ĠRound ingMode . HALF _ UP ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toDouble () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠClaim ableElement ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Adam ant ĠVault ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaddress Ġ= Ġvault . address , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġ" adam ant - vault ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprotocol Ġ= Ġget Protocol (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnetwork Ġ= Ġget Network (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠClaim able Token ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Add y ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsymbol Ġ= Ġ" ADD Y ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġamount Ġ= Ġamount In Us d . to BigDecimal (). divide ( addy Price , Ġ 4 , ĠRound ingMode . HALF _ UP ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. times ( BigDecimal . valueOf ( 2 L )). toDouble () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. filter NotNull () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Protocol (): ĠProtocol Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠProtocol . AD AM ANT ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Network (): ĠNetwork Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠNetwork . POLYGON ĊĠĠĠ Ġ} Ċ }