/** Ċ * ĠCopyright ĠS or am its u ĠCo ., ĠLtd . ĠAll ĠRights ĠReserved . Ċ * ĠSPDX - License - Identifier : ĠGPL - 3 . 0 Ċ */ Ċ Ċ package Ġjp . co . sor am its u . feature _ ethereum _ impl . data . network Ċ Ċ import Ġjp . co . sor am its u . feature _ ethereum _ impl . util . E thereum Config Provider Ċ import Ġjp . co . sor am its u . feature _ ethereum _ impl . util . Gas Provider Ċ import Ġorg . web 3 j . abi . Type Reference Ċ import Ġorg . web 3 j . abi . Utils Ċ 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 Ġorg . web 3 j . abi . datat ypes . Uint Ċ import Ġorg . web 3 j . abi . datat ypes . generated . Bytes 3 2 Ċ import Ġorg . web 3 j . abi . datat ypes . generated . Uint 2 5 6 Ċ import Ġorg . web 3 j . abi . datat ypes . generated . Uint 8 Ċ import Ġorg . web 3 j . protocol . Web 3 j Ċ import Ġorg . web 3 j . protocol . core . Remote Call Ċ import Ġorg . web 3 j . protocol . core . methods . response . Transaction Receipt Ċ import Ġorg . web 3 j . tx . Contract Ċ import Ġorg . web 3 j . tx . Fast Raw Transaction Manager Ċ import Ġorg . web 3 j . utils . Convert Ċ import Ġjava . math . BigDecimal Ċ import Ġjava . math . BigInteger Ċ Ċ class ĠSmart Contract Api ( ĊĠĠĠ Ġweb 3 j : ĠWeb 3 j , ĊĠĠĠ Ġfast Raw Transaction Manager : ĠFast Raw Transaction Manager , ĊĠĠĠ Ġgas Provider : ĠG as Provider , ĊĠĠĠ Ġe thereum Config Provider : ĠEthereum Config Provider Ċ ) Ġ: ĠContract ( BIN _ NOT _ PROVIDED , Ġe thereum Config Provider . config . master Contract , Ġweb 3 j , Ġfast Raw Transaction Manager , Ġgas Provider ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFUNC _ M INT TOKEN SB YPE ERS Ġ= Ġ" mint Tokens By Peers " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFUNC _ VAL TOKEN INSTANCE Ġ= Ġ" token Instance " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFUNC _ USED Ġ= Ġ" used " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFUNC _ PRO OF Ġ= Ġ" proof " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġused ( tx Hash : ĠByteArray ): ĠRemote Call < BigInteger > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfunction Ġ= ĠFunction ( FUNC _ USED , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Bytes 3 2 ( tx Hash )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf < Type Reference < *> >( object Ġ: ĠType Reference < Uint >() Ġ{} )) ĊĠĠĠĠĠĠĠ Ġreturn Ġexecute Remote Call Single Value Return ( function , ĠBigInteger :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġproof (): ĠRemote Call < ByteArray > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfunction Ġ= ĠFunction ( FUNC _ PRO OF , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf < Type Reference < *> >( object Ġ: ĠType Reference < Bytes 3 2 >() Ġ{} )) ĊĠĠĠĠĠĠĠ Ġreturn Ġexecute Remote Call Single Value Return ( function , ĠByteArray :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġval Token Instance (): ĠRemote Call < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfunction Ġ= ĠFunction ( FUNC _ VAL TOKEN INSTANCE , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf < Type Reference < *> >( object Ġ: ĠType Reference < Address >() Ġ{} )) ĊĠĠĠĠĠĠĠ Ġreturn Ġexecute Remote Call Single Value Return < String >( function , ĠString :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmint Tokens By Peers ( amount : ĠBigDecimal , Ġbene ficiary : ĠString , Ġtx Hash : ĠByteArray , Ġv : ĠList < BigInteger >, Ġr : ĠList < ByteArray >, Ġs : ĠList < ByteArray >, Ġfrom : ĠString , Ġtoken Address : ĠString ): ĠRemote Call < Transaction Receipt > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġamount In Wei Ġ= ĠConvert . to Wei ( amount , ĠConvert . Unit . ETHER ). to BigInteger () ĊĠĠĠĠĠĠĠ Ġreturn Ġexecute Remote Call Transaction ( getM int Token Function ( amount In Wei , Ġbene ficiary , Ġtx Hash , Ġv , Ġr , Ġs , Ġfrom , Ġtoken Address )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Mint Token Function ( amount : ĠBigInteger , Ġbene ficiary : ĠString , Ġtx Hash : ĠByteArray , Ġv : ĠList < BigInteger >, Ġr : ĠList < ByteArray >, Ġs : ĠList < ByteArray >, Ġfrom : ĠString , Ġtoken Address : ĠString ): Ġorg . web 3 j . abi . datat ypes . Function Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠFunction ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFUNC _ M INT TOKEN SB YPE ERS , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Address ( token Address ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUint 2 5 6 ( amount ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAddress ( bene ficiary ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBytes 3 2 ( tx Hash ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDynamic Array ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUint 8 :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUtils . type Map < BigInteger , ĠUint 8 >( v , ĠUint 8 :: class . java )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDynamic Array ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBytes 3 2 :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUtils . type Map < ByteArray , ĠBytes 3 2 >( r , ĠBytes 3 2 :: class . java )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDynamic Array ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBytes 3 2 :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUtils . type Map < ByteArray , ĠBytes 3 2 >( s , ĠBytes 3 2 :: class . java )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAddress ( from )), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġempty List ()) ĊĠĠĠ Ġ} Ċ }