package Ġio . def itr ack . protocol . a ave . v 3 . contract Ċ Ċ import Ġio . def itr ack . e vm . contract . Blockchain Gateway Ċ import Ġio . def itr ack . e vm . contract . Blockchain Gateway . Companion . to Address Ċ import Ġio . def itr ack . e vm . contract . Blockchain Gateway . Companion . to Uint 1 6 Ċ import Ġio . def itr ack . e vm . contract . Blockchain Gateway . Companion . to Uint 2 5 6 Ċ import Ġio . def itr ack . e vm . contract . E vm Contract Ċ 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 . Dynamic Array Ċ import Ġorg . web 3 j . abi . datat ypes . Function Ċ import Ġjava . math . BigInteger Ċ Ċ class ĠPool Contract ( ĊĠĠĠ Ġblockchain Gateway : ĠBlock chain Gateway , ĊĠĠĠ Ġabi : ĠString , ĊĠĠĠ Ġaddress : ĠString Ċ ) Ġ: ĠE vm Contract ( blockchain Gateway , Ġabi , Ġaddress ) Ġ{ ĊĊĠĠĠ Ġfun Ġget Supply Function ( asset : ĠString , Ġamount : ĠBigInteger , Ġon Be half Of : ĠString ): ĠFunction Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcreate Function With Ab i ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" supply ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġasset . to Address (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġamount . to Uint 2 5 6 (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Be half Of . to Address (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBigInteger . ZERO . to Uint 1 6 () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġre serves List Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġ( read With Ab i (" get Reser ves List ", Ġempty List (), ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠType Reference < Dynamic Array < Address >>() Ġ{} ĊĠĠĠĠĠĠĠ Ġ)) [ 0 ]. value Ġas ĠList < Address >). map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . value Ġas ĠString ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }