package Ġcom . gun ess . k sol ana . rpc Ċ Ċ import Ġcom . gun ess . k sol ana . core . Account Ċ import Ġcom . gun ess . k sol ana . core . PublicKey Ċ import Ġcom . gun ess . k sol ana . core . Transaction Ċ import Ġcom . gun ess . k sol ana . rpc . types . Recent Block hash Ċ import Ġcom . gun ess . k sol ana . rpc . types . Rpc Result Types Ċ import Ġcom . gun ess . k sol ana . rpc . types . config . Commit ment Ċ import Ġcom . gun ess . k sol ana . rpc . types . config . Rpc Send Transaction Config Ċ import Ġkotlinx . serialization . builtins . serializer Ċ import Ġjava . util . Base 6 4 . get Encoder Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġgun ess Ġon Ġ 6 . 1 2 . 2 0 2 1 Ġ 2 1 : 4 7 Ċ Ġ*/ Ċ class ĠRpc Api ( private Ġval Ġclient : ĠRpc Client ) Ġ{ ĊĊĠĠĠ Ġ@ Throws ( Rpc Exception :: class ) ĊĠĠĠ Ġsuspend Ġfun Ġget Recent Block hash ( commit ment : ĠCommit ment ? Ġ= Ġnull ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparams Ġ= Ġmutable ListOf < Any >() ĊĊĠĠĠĠĠĠĠ Ġcommit ment ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparams . add ( map Of (" commit ment " Ġto Ġit . value )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġclient . call (" get Recent Block hash ", Ġparams , ĠRecent Block hash . serializer ()). value ?. block hash ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( Rpc Exception :: class ) ĊĠĠĠ Ġsuspend Ġfun Ġsend Transaction ( transaction : ĠTransaction , Ġsigner : ĠAccount , Ġrecent Block Hash : ĠString ? Ġ= Ġnull ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsend Transaction ( transaction , ĠlistOf ( signer ), Ġrecent Block Hash ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( Rpc Exception :: class ) ĊĠĠĠ Ġsuspend Ġfun Ġsend Transaction ( transaction : ĠTransaction , Ġsign ers : ĠList < Account >, Ġrecent Block Hash : ĠString ?): ĠString Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġblock hash Ġ= Ġrecent Block Hash Ġ?: Ġget Recent Block hash () ĊĊĠĠĠĠĠĠĠ Ġtransaction . set Recent Block Hash ( block hash ) ĊĠĠĠĠĠĠĠ Ġtransaction . sign ( sign ers ) ĊĊĠĠĠĠĠĠĠ Ġval Ġserialized Transaction Ġ= Ġtransaction . serialize () ĊĠĠĠĠĠĠĠ Ġval Ġbase 6 4 Tr x Ġ= Ġget Encoder (). encode ToString ( serialized Transaction ) ĊĊĠĠĠĠĠĠĠ Ġval Ġparams Ġ= ĠlistOf ( base 6 4 Tr x , ĠRpc Send Transaction Config ()) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġclient . call (" send Transaction ", Ġparams , ĠString . serializer ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( Rpc Exception :: class ) ĊĠĠĠ Ġsuspend Ġfun Ġget Balance ( account : ĠPublicKey , Ġcommit ment : ĠCommit ment ? Ġ= Ġnull ): ĠLong Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġparams Ġ= Ġmutable ListOf < Any >() ĊĠĠĠĠĠĠĠ Ġparams . add ( account . toString ()) ĊĊĠĠĠĠĠĠĠ Ġcommit ment ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparams . add ( map Of (" commit ment " Ġto Ġit . value )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġclient . call (" get Balance ", Ġparams , ĠRpc Result Types . Value Long . serializer ()). value ĊĠĠĠ Ġ} Ċ }