package Ġio . def itr ack . protocol . quick swap Ċ Ċ import Ġio . def itr ack . ethereum based . contract . E vm Contract Ċ import Ġio . def itr ack . ethereum based . contract . E vm Contract Accessor Ċ import Ġio . def itr ack . ethereum based . contract . E vm Contract Accessor . Companion . to Address Ċ import Ġorg . web 3 j . abi . Type Reference Ċ import Ġorg . web 3 j . abi . datat ypes . Address Ċ import Ġorg . web 3 j . abi . datat ypes . generated . Uint 2 5 6 Ċ import Ġjava . math . BigInteger Ċ Ċ class ĠQuick swap Dual Reward Pool Contract ( ĊĠĠĠ Ġsolidity Based Contract Accessor : ĠE vm Contract Accessor , ĊĠĠĠ Ġabi : ĠString , ĊĠĠĠ Ġaddress : ĠString , Ċ ) Ġ: ĠE vm Contract ( ĊĠĠĠ Ġsolidity Based Contract Accessor , ĊĠĠĠ Ġabi , Ġaddress Ċ ) Ġ{ ĊĊĠĠĠ Ġval Ġtotal Supply Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġread (" total Supply ")[ 0 ]. value Ġas ĠBigInteger ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġrewards Token Address A Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġread ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" rewards Token A ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutputs Ġ= ĠlistOf ( Type Reference . create ( Address :: class . java )) ĊĠĠĠĠĠĠĠ Ġ) [ 0 ]. value Ġas ĠString ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġval Ġrewards Token Address B Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġread ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" rewards Token B ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutputs Ġ= ĠlistOf ( Type Reference . create ( Address :: class . java )) ĊĠĠĠĠĠĠĠ Ġ) [ 0 ]. value Ġas ĠString ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġst aking Token Address Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġread ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Ġ= Ġ" staking Token ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutputs Ġ= ĠlistOf ( Type Reference . create ( Address :: class . java )) ĊĠĠĠĠĠĠĠ Ġ) [ 0 ]. value Ġas ĠString ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġreward Rate A Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġread ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Ġ= Ġ" reward Rate A ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutputs Ġ= ĠlistOf ( Type Reference . create ( Uint 2 5 6 :: class . java )) ĊĠĠĠĠĠĠĠ Ġ) [ 0 ]. value Ġas ĠBigInteger ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġval Ġreward Rate B Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġread ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Ġ= Ġ" reward Rate B ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutputs Ġ= ĠlistOf ( Type Reference . create ( Uint 2 5 6 :: class . java )) ĊĠĠĠĠĠĠĠ Ġ) [ 0 ]. value Ġas ĠBigInteger ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġe arn ed A ( address : ĠString ): ĠBigInteger Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġread ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" ear ned A ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( address . to Address ()), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Type Reference . create ( Uint 2 5 6 :: class . java )) ĊĠĠĠĠĠĠĠ Ġ) [ 0 ]. value Ġas ĠBigInteger ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġe arn ed B ( address : ĠString ): ĠBigInteger Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġread ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" ear ned B ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( address . to Address ()), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Type Reference . create ( Uint 2 5 6 :: class . java )) ĊĠĠĠĠĠĠĠ Ġ) [ 0 ]. value Ġas ĠBigInteger ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġbalance Of ( address : ĠString ): ĠBigInteger Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġread ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" balanceOf ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinputs Ġ= ĠlistOf ( address . to Address ()), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutputs Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠType Reference . create ( Uint 2 5 6 :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) [ 0 ]. value Ġas ĠBigInteger ĊĠĠĠ Ġ} Ċ }