package Ġnetwork . po kt . a ion . rpc Ċ Ċ import Ġnetwork . po kt . a ion . models . A ion Relay Ċ import Ġnetwork . po kt . a ion . network . A ion Network Ċ import Ġnetwork . po kt . a ion . operations . Create Transaction Operation Ċ import Ġnetwork . po kt . a ion . rpc . callbacks .* Ċ import Ġnetwork . po kt . a ion . rpc . types . Block Tag Ċ import Ġnetwork . po kt . a ion . util . HexString Util Ċ import Ġnetwork . po kt . core . errors . P ocket Error Ċ import Ġnetwork . po kt . core . model . Wallet Ċ import Ġorg . json . JSONArray Ċ import Ġorg . json . JSONObject Ċ import Ġjava . math . BigInteger Ċ import Ġjava . util . ArrayList Ċ import Ġjava . util . HashMap Ċ Ċ class ĠE th Rpc ĊĠĠĠ Ġ( private Ġval Ġa ion Network : ĠA ion Network ) Ġ{ ĊĠĠĠ Ġprivate Ġenum Ġclass ĠA ion Rpc Method Ġ{ ĊĠĠĠĠĠĠĠ Ġeth _ protocol Version , ĊĠĠĠĠĠĠĠ Ġeth _ sync ing , ĊĠĠĠĠĠĠĠ Ġeth _ gas Price , ĊĠĠĠĠĠĠĠ Ġeth _ block Number , ĊĠĠĠĠĠĠĠ Ġeth _ get Balance , ĊĠĠĠĠĠĠĠ Ġeth _ get Storage At , ĊĠĠĠĠĠĠĠ Ġeth _ getTransaction Count , ĊĠĠĠĠĠĠĠ Ġeth _ getBlock Transaction Count By Hash , ĊĠĠĠĠĠĠĠ Ġeth _ getBlock Transaction Count By Number , ĊĠĠĠĠĠĠĠ Ġeth _ getCode , ĊĠĠĠĠĠĠĠ Ġeth _ send Raw Transaction , ĊĠĠĠĠĠĠĠ Ġeth _ call , ĊĠĠĠĠĠĠĠ Ġeth _ estimate Gas , ĊĠĠĠĠĠĠĠ Ġeth _ getBlock By Hash , ĊĠĠĠĠĠĠĠ Ġeth _ getBlock By Number , ĊĠĠĠĠĠĠĠ Ġeth _ getTransaction By Hash , ĊĠĠĠĠĠĠĠ Ġeth _ getTransaction By Block Hash And Index , ĊĠĠĠĠĠĠĠ Ġeth _ getTransaction By Block Number And Index , ĊĠĠĠĠĠĠĠ Ġeth _ getTransaction Receipt , ĊĠĠĠĠĠĠĠ Ġeth _ get Logs ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġprotocol Version ( callback : ĠString Callback ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrelay Ġ= ĠA ion Relay ( this . a ion Network . net ID , Ġthis . a ion Network . dev ID , ĠE th Rpc . A ion Rpc Method . eth _ protocol Version . name , Ġnull ) ĊĠĠĠĠĠĠĠ Ġthis . a ion Network . send With String Result ( relay , Ġcallback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsync ing ( callback : ĠJSONObject Or Boolean Callback ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrelay Ġ= ĠA ion Relay ( this . a ion Network . net ID , Ġthis . a ion Network . dev ID , ĠE th Rpc . A ion Rpc Method . eth _ sync ing . name , Ġnull ) ĊĠĠĠĠĠĠĠ Ġthis . a ion Network . send With JSONObject Or Boolean Result ( relay , Ġcallback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġn rg Price ( callback : ĠBigInteger Callback ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrelay Ġ= ĠA ion Relay ( this . a ion Network . net ID , Ġthis . a ion Network . dev ID , ĠE th Rpc . A ion Rpc Method . eth _ gas Price . name , Ġnull ) ĊĠĠĠĠĠĠĠ Ġthis . a ion Network . send With BigInteger Result ( relay , Ġcallback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġblock Number ( callback : ĠBigInteger Callback ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrelay Ġ= ĠA ion Relay ( this . a ion Network . net ID , Ġthis . a ion Network . dev ID , ĠE th Rpc . A ion Rpc Method . eth _ block Number . name , Ġnull ) ĊĠĠĠĠĠĠĠ Ġthis . a ion Network . send With BigInteger Result ( relay , Ġcallback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Balance ( address : ĠString , Ġblock Tag : ĠBlock Tag ?, Ġcallback : ĠBigInteger Callback ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . execute Generic Quantity Relay ( A ion Rpc Method . eth _ get Balance , Ġaddress , Ġblock Tag , Ġcallback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Storage At ( address : ĠString , Ġstorage Position : ĠBigInteger , Ġblock Tag : ĠBlock Tag ?, Ġcallback : ĠString Callback ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġblock Tag Ġ= Ġblock Tag ĊĠĠĠĠĠĠĠ Ġblock Tag Ġ= ĠBlock Tag . tag Or Latest ( block Tag ) ĊĠĠĠĠĠĠĠ Ġval Ġrpc Params Ġ= ĠArrayList < Any >() ĊĠĠĠĠĠĠĠ Ġrpc Params . add ( address ) ĊĠĠĠĠĠĠĠ Ġrpc Params . add ( HexString Util . prepend Zero X ( storage Position . toString ( 1 6 ))) ĊĠĠĠĠĠĠĠ Ġrpc Params . add ( block Tag . block Tag String ) ĊĠĠĠĠĠĠĠ Ġval Ġrelay Ġ= ĠA ion Relay ( this . a ion Network . net ID , Ġthis . a ion Network . dev ID , ĠE th Rpc . A ion Rpc Method . eth _ block Number . name , ĠJSONArray ( rpc Params )) ĊĠĠĠĠĠĠĠ Ġthis . a ion Network . send With String Result ( relay , Ġcallback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Transaction Count ( address : ĠString , Ġblock Tag : ĠBlock Tag ?, Ġcallback : ĠBigInteger Callback ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . execute Generic Quantity Relay ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA ion Rpc Method . eth _ getTransaction Count , Ġaddress , Ġblock Tag , Ġcallback ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Block Transaction Count By Hash ( block Hash Hex : ĠString , Ġcallback : ĠBigInteger Callback ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . execute Generic Count By Block Hash ( A ion Rpc Method . eth _ getBlock Transaction Count By Hash , Ġblock Hash Hex , Ġcallback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Block Transaction Count By Number ( block Tag : ĠBlock Tag , Ġcallback : ĠBigInteger Callback ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . execute Generic Count For Block Tag Query ( block Tag , ĠA ion Rpc Method . eth _ getBlock Transaction Count By Number , Ġcallback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Code ( address : ĠString , Ġblock Tag : ĠBlock Tag ?, Ġcallback : ĠString Callback ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġblock Tag Ġ= Ġblock Tag ĊĠĠĠĠĠĠĠ Ġblock Tag Ġ= ĠBlock Tag . tag Or Latest ( block Tag ) ĊĠĠĠĠĠĠĠ Ġval Ġrpc Params Ġ= ĠArrayList < Any >() ĊĠĠĠĠĠĠĠ Ġrpc Params . add ( address ) ĊĠĠĠĠĠĠĠ Ġrpc Params . add ( block Tag . block Tag String ) ĊĠĠĠĠĠĠĠ Ġval Ġrelay Ġ= ĠA ion Relay ( this . a ion Network . net ID , Ġthis . a ion Network . dev ID , ĠE th Rpc . A ion Rpc Method . eth _ getCode . name , ĠJSONArray ( rpc Params )) ĊĠĠĠĠĠĠĠ Ġthis . a ion Network . send With String Result ( relay , Ġcallback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( P ocket Error :: class ) ĊĠĠĠ Ġfun Ġsend Transaction ( ĊĠĠĠĠĠĠĠ Ġwallet : ĠWallet , ĊĠĠĠĠĠĠĠ Ġto Address : ĠString , ĊĠĠĠĠĠĠĠ Ġn rg : ĠBigInteger , ĊĠĠĠĠĠĠĠ Ġn rg Price : ĠBigInteger , ĊĠĠĠĠĠĠĠ Ġvalue : ĠBigInteger ?, ĊĠĠĠĠĠĠĠ Ġdata : ĠString ?, ĊĠĠĠĠĠĠĠ Ġnonce : ĠBigInteger , ĊĠĠĠĠĠĠĠ Ġcallback : ĠString Callback ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! wallet . net ID . equals ( this . a ion Network . net ID , Ġignore Case Ġ= Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠP ocket Error ( Ġ" Invalid Ġwallet Ġnet ID : Ġ${ wallet . net ID }") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġnonce Ġ= ĠHex StringUtil . prepend Zero X ( nonce . toString ( 1 6 )) ĊĠĠĠĠĠĠĠ Ġval Ġn rg Ġ= ĠHex StringUtil . prepend Zero X ( n rg . toString ( 1 6 )) ĊĠĠĠĠĠĠĠ Ġval Ġn rg Price Ġ= ĠHex StringUtil . prepend Zero X ( n rg Price . toString ( 1 6 )) ĊĠĠĠĠĠĠĠ Ġvar Ġstr Value : ĠString ? Ġ= Ġif Ġ( value Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHex StringUtil . prepend Zero X ( value . toString ( 1 6 )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvar Ġtx Operation Ġ= ĠCreate Transaction Operation ( this . a ion Network . getContext (), Ġwallet , Ġnonce , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġto Address , Ġstr Value , Ġdata , Ġn rg , Ġn rg Price ) ĊĠĠĠĠĠĠĠ Ġvar Ġoperation Successful Ġ= Ġtx Operation . start Process () ĊĠĠĠĠĠĠĠ Ġif Ġ(! operation Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠP ocket Error ( tx Operation . error Msg ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvar Ġraw Transaction Ġ= Ġtx Operation . raw Transaction ĊĠĠĠĠĠĠĠ Ġvar Ġrpc Params Ġ= ĠJSONArray () ĊĠĠĠĠĠĠĠ Ġrpc Params . put ( raw Transaction ) ĊĊĠĠĠĠĠĠĠ Ġval Ġrelay Ġ= ĠA ion Relay ( this . a ion Network . net ID , Ġthis . a ion Network . dev ID , ĠE th Rpc . A ion Rpc Method . eth _ send Raw Transaction . name , Ġrpc Params ) ĊĠĠĠĠĠĠĠ Ġthis . a ion Network . send With String Result ( relay , Ġcallback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcall ( ĊĠĠĠĠĠĠĠ Ġto Address : ĠString , Ġblock Tag : ĠBlock Tag ?, ĊĠĠĠĠĠĠĠ Ġfrom Address : ĠString ?, Ġn rg : ĠBigInteger ?, Ġn rg Price : ĠBigInteger ?, Ġvalue : ĠBigInteger ?, ĊĠĠĠĠĠĠĠ Ġdata : ĠString , Ġcallback : ĠString Callback ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrelay Ġ= Ġthis . call Or Estimate Gas Query ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA ion Rpc Method . eth _ call , Ġto Address , Ġblock Tag , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom Address , Ġn rg , Ġn rg Price , Ġvalue , Ġdata ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġthis . a ion Network . send With String Result ( relay , Ġcallback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġestimate Gas ( ĊĠĠĠĠĠĠĠ Ġto Address : ĠString , ĊĠĠĠĠĠĠĠ Ġblock Tag : ĠBlock Tag ?, ĊĠĠĠĠĠĠĠ Ġfrom Address : ĠString ?, ĊĠĠĠĠĠĠĠ Ġn rg : ĠBigInteger ?, ĊĠĠĠĠĠĠĠ Ġn rg Price : ĠBigInteger ?, ĊĠĠĠĠĠĠĠ Ġvalue : ĠBigInteger ?, ĊĠĠĠĠĠĠĠ Ġdata : ĠString , ĊĠĠĠĠĠĠĠ Ġcallback : ĠBigInteger Callback ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrelay Ġ= Ġthis . call Or Estimate Gas Query ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA ion Rpc Method . eth _ estimate Gas , Ġto Address , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblock Tag , Ġfrom Address , Ġn rg , Ġn rg Price , Ġvalue , Ġdata ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġthis . a ion Network . send With BigInteger Result ( relay , Ġcallback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Block By Hash ( block Hash Hex : ĠString , Ġfull Tx : ĠBoolean , Ġcallback : ĠJSONObject Callback ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . execute Get Block By Hex ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA ion Rpc Method . eth _ getBlock By Hash , Ġblock Hash Hex , Ġfull Tx , Ġcallback ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Block By Number ( block Tag : ĠBlock Tag ?, Ġfull Tx : ĠBoolean , Ġcallback : ĠJSONObject Callback ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġblock Tag Ġ= Ġblock Tag ĊĠĠĠĠĠĠĠ Ġblock Tag Ġ= ĠBlock Tag . tag Or Latest ( block Tag ) ĊĠĠĠĠĠĠĠ Ġthis . execute Get Block By Hex ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA ion Rpc Method . eth _ getBlock By Number , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblock Tag . block Tag String , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfull Tx , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Transaction By Hash ( tx Hash Hex : ĠString , Ġcallback : ĠJSONObject Callback ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . execute GetObject With Hex ( A ion Rpc Method . eth _ getTransaction By Hash , Ġtx Hash Hex , Ġcallback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Transaction By Block Hash And Index ( ĊĠĠĠĠĠĠĠ Ġblock Hash Hex : ĠString , ĊĠĠĠĠĠĠĠ Ġtx Index : ĠBigInteger , ĊĠĠĠĠĠĠĠ Ġcallback : ĠJSONObject Callback ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . execute GetObject With Hex Pair ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA ion Rpc Method . eth _ getTransaction By Block Hash And Index , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblock Hash Hex , ĠHex StringUtil . prepend Zero X ( tx Index . toString ( 1 6 )), Ġcallback ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Transaction By Block Number And Index ( ĊĠĠĠĠĠĠĠ Ġblock Tag : ĠBlock Tag , ĊĠĠĠĠĠĠĠ Ġtx Index : ĠBigInteger , ĊĠĠĠĠĠĠĠ Ġcallback : ĠJSONObject Callback ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġblock Tag Ġ= Ġblock Tag ĊĊĠĠĠĠĠĠĠ Ġblock Tag Ġ= ĠBlock Tag . tag Or Latest ( block Tag ) ĊĠĠĠĠĠĠĠ Ġthis . execute GetObject With Hex Pair ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA ion Rpc Method . eth _ getTransaction By Block Number And Index , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblock Tag . block Tag String , ĠHex StringUtil . prepend Zero X ( tx Index . toString ( 1 6 )), Ġcallback ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Transaction Receipt ( ĊĠĠĠĠĠĠĠ Ġtx Hash Hex : ĠString , ĊĠĠĠĠĠĠĠ Ġcallback : ĠJSONObject Callback ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . execute GetObject With Hex ( A ion Rpc Method . eth _ getTransaction Receipt , Ġtx Hash Hex , Ġcallback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Logs ( ĊĠĠĠĠĠĠĠ Ġfrom Block : ĠBlock Tag ?, Ġto Block : ĠBlock Tag ?, ĊĠĠĠĠĠĠĠ Ġaddress List : ĠList < String > ?, Ġtopics : ĠList < String > ?, Ġblock Hash Hex : ĠString ?, ĊĠĠĠĠĠĠĠ Ġcallback : ĠJSONArray Callback ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠqueryParams Ġ= ĠHashMap < String , ĠAny >() ĊĊĠĠĠĠĠĠĠ Ġif Ġ( address List Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠqueryParams [" address "] Ġ= Ġaddress List ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( topics Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠqueryParams [" topics "] Ġ= Ġtopics ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( block Hash Hex Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠqueryParams [" block hash "] Ġ= Ġblock Hash Hex ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠqueryParams [" from Block "] Ġ= ĠBlock Tag . tag Or Latest ( from Block ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠqueryParams [" to Block "] Ġ= ĠBlock Tag . tag Or Latest ( to Block ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġrpc Params Ġ= ĠArrayList < Any >() ĊĠĠĠĠĠĠĠ Ġrpc Params . add ( queryParams ) ĊĠĠĠĠĠĠĠ Ġval Ġrelay Ġ= ĠA ion Relay ( this . a ion Network . net ID , Ġthis . a ion Network . dev ID , ĠA ion Rpc Method . eth _ get Logs . name , ĠJSONArray ( rpc Params )) ĊĠĠĠĠĠĠĠ Ġthis . a ion Network . send With JSONArray Result ( relay , Ġcallback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠPrivate Ġinterfaces ĊĠĠĠ Ġprivate Ġfun Ġexecute Generic Quantity Relay ( rpc Method : ĠA ion Rpc Method , Ġaddress : ĠString , Ġblock Tag : ĠBlock Tag ?, Ġcallback : ĠBigInteger Callback ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġblock Tag Ġ= Ġblock Tag ĊĠĠĠĠĠĠĠ Ġblock Tag Ġ= ĠBlock Tag . tag Or Latest ( block Tag ) ĊĠĠĠĠĠĠĠ Ġval Ġrpc Params Ġ= ĠArrayList < Any >() ĊĠĠĠĠĠĠĠ Ġrpc Params . add ( address ) ĊĠĠĠĠĠĠĠ Ġrpc Params . add ( block Tag . block Tag String ) ĊĠĠĠĠĠĠĠ Ġval Ġrelay Ġ= ĠA ion Relay ( this . a ion Network . net ID , Ġthis . a ion Network . dev ID , Ġrpc Method . name , ĠJSONArray ( rpc Params )) ĊĠĠĠĠĠĠĠ Ġthis . a ion Network . send With BigInteger Result ( relay , Ġcallback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġexecute Generic Count By Block Hash ( rpc Method : ĠA ion Rpc Method , Ġblock Hash Hex : ĠString , Ġcallback : ĠBigInteger Callback ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrpc Params Ġ= ĠArrayList < Any >() ĊĠĠĠĠĠĠĠ Ġrpc Params . add ( block Hash Hex ) ĊĠĠĠĠĠĠĠ Ġval Ġrelay Ġ= ĠA ion Relay ( this . a ion Network . net ID , Ġthis . a ion Network . dev ID , Ġrpc Method . name , ĠJSONArray ( rpc Params )) ĊĠĠĠĠĠĠĠ Ġthis . a ion Network . send With BigInteger Result ( relay , Ġcallback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġexecute Generic Count For Block Tag Query ( ĊĠĠĠĠĠĠĠ Ġblock Tag : ĠBlock Tag , ĊĠĠĠĠĠĠĠ Ġrpc Method : ĠA ion Rpc Method , ĊĠĠĠĠĠĠĠ Ġcallback : ĠBigInteger Callback ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġblock Tag Ġ= Ġblock Tag ĊĠĠĠĠĠĠĠ Ġblock Tag Ġ= ĠBlock Tag . tag Or Latest ( block Tag ) ĊĠĠĠĠĠĠĠ Ġval Ġrpc Params Ġ= ĠArrayList < Any >() ĊĠĠĠĠĠĠĠ Ġrpc Params . add ( block Tag . block Tag String ) ĊĠĠĠĠĠĠĠ Ġval Ġrelay Ġ= ĠA ion Relay ( this . a ion Network . net ID , Ġthis . a ion Network . dev ID , Ġrpc Method . name , ĠJSONArray ( rpc Params )) ĊĠĠĠĠĠĠĠ Ġthis . a ion Network . send With BigInteger Result ( relay , Ġcallback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcall Or Estimate Gas Query ( ĊĠĠĠĠĠĠĠ Ġrpc Method : ĠA ion Rpc Method , ĊĠĠĠĠĠĠĠ Ġto Address : ĠString , ĊĠĠĠĠĠĠĠ Ġblock Tag : ĠBlock Tag ?, ĊĠĠĠĠĠĠĠ Ġfrom Address : ĠString ?, ĊĠĠĠĠĠĠĠ Ġn rg : ĠBigInteger ?, ĊĠĠĠĠĠĠĠ Ġn rg Price : ĠBigInteger ?, ĊĠĠĠĠĠĠĠ Ġvalue : ĠBigInteger ?, ĊĠĠĠĠĠĠĠ Ġdata : ĠString ? ĊĠĠĠ Ġ): ĠA ion Relay Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġblock Tag Ġ= Ġblock Tag ĊĠĠĠĠĠĠĠ Ġblock Tag Ġ= ĠBlock Tag . tag Or Latest ( block Tag ) ĊĠĠĠĠĠĠĠ Ġval Ġcall Tx Params Ġ= ĠHashMap < String , ĠAny >() ĊĠĠĠĠĠĠĠ Ġcall Tx Params [" to "] Ġ= Ġto Address ĊĠĠĠĠĠĠĠ Ġif Ġ( from Address Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcall Tx Params [" from "] Ġ= Ġfrom Address ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( n rg Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcall Tx Params [" n rg "] Ġ= ĠHex StringUtil . prepend Zero X ( n rg . toString ( 1 6 )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( n rg Price Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcall Tx Params [" n rg Price "] Ġ= ĠHex StringUtil . prepend Zero X ( n rg Price . toString ( 1 6 )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( value Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcall Tx Params [" value "] Ġ= ĠHex StringUtil . prepend Zero X ( value . toString ( 1 6 )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( data Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcall Tx Params [" data "] Ġ= Ġdata ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġcall Tx Obj Ġ= ĠJSONObject ( call Tx Params ) ĊĊĠĠĠĠĠĠĠ Ġval Ġrpc Params Ġ= ĠArrayList < Any >() ĊĠĠĠĠĠĠĠ Ġrpc Params . add ( call Tx Obj ) ĊĠĠĠĠĠĠĠ Ġrpc Params . add ( block Tag . block Tag String ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠA ion Relay ( this . a ion Network . net ID , Ġthis . a ion Network . dev ID , Ġrpc Method . name , ĠJSONArray ( rpc Params )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġexecute Get Block By Hex ( ĊĠĠĠĠĠĠĠ Ġrpc Method : ĠA ion Rpc Method , Ġblock Id Hex : ĠString , Ġfull Tx : ĠBoolean , Ġcallback : ĠJSONObject Callback ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrpc Params Ġ= ĠArrayList < Any >() ĊĠĠĠĠĠĠĠ Ġrpc Params . add ( block Id Hex ) ĊĠĠĠĠĠĠĠ Ġrpc Params . add ( full Tx ) ĊĠĠĠĠĠĠĠ Ġval Ġrelay Ġ= ĠA ion Relay ( this . a ion Network . net ID , Ġthis . a ion Network . dev ID , Ġrpc Method . name , ĠJSONArray ( rpc Params )) ĊĠĠĠĠĠĠĠ Ġthis . a ion Network . send With JSONObject Result ( relay , Ġcallback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġexecute GetObject With Hex ( ĊĠĠĠĠĠĠĠ Ġrpc Method : ĠA ion Rpc Method , Ġhex : ĠString , Ġcallback : ĠJSONObject Callback ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrpc Params Ġ= ĠArrayList < Any >() ĊĠĠĠĠĠĠĠ Ġrpc Params . add ( hex ) ĊĠĠĠĠĠĠĠ Ġval Ġrelay Ġ= ĠA ion Relay ( this . a ion Network . net ID , Ġthis . a ion Network . dev ID , Ġrpc Method . name , ĠJSONArray ( rpc Params )) ĊĠĠĠĠĠĠĠ Ġthis . a ion Network . send With JSONObject Result ( relay , Ġcallback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġexecute GetObject With Hex Pair ( ĊĠĠĠĠĠĠĠ Ġrpc Method : ĠA ion Rpc Method , ĊĠĠĠĠĠĠĠ Ġhex Primary : ĠString , ĊĠĠĠĠĠĠĠ Ġhex Secondary : ĠString , ĊĠĠĠĠĠĠĠ Ġcallback : ĠJSONObject Callback ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrpc Params Ġ= ĠArrayList < Any >() ĊĠĠĠĠĠĠĠ Ġrpc Params . add ( hex Primary ) ĊĠĠĠĠĠĠĠ Ġrpc Params . add ( hex Secondary ) ĊĠĠĠĠĠĠĠ Ġval Ġrelay Ġ= ĠA ion Relay ( this . a ion Network . net ID , Ġthis . a ion Network . dev ID , Ġrpc Method . name , ĠJSONArray ( rpc Params )) ĊĠĠĠĠĠĠĠ Ġthis . a ion Network . send With JSONObject Result ( relay , Ġcallback ) ĊĠĠĠ Ġ} Ċ } Ċ