コールバックを介してその結果を返す関数を公開することができます。 コールバックは関数の最後の引数でなければなりません。
JSON-RPCリクエストのパラメータは、引数として関数に渡されます。 パラメータは、JSONがサポートする任意のタイプ(文字列、数値、ブール値、オブジェクト)でも構いませんが、関数ではありません。 JSON-RPCリクエストのパラメータが配列の場合、引数のリストに展開されます。 オブジェクトの場合は、第1引数として関数に渡されます。
コールバックのパラメータは、JSON-RPCレスポンスに返されます。 デフォルトでは、コールバックの最初の引数はエラーとみなされます。 真実であれば、要求はエラー応答となります:
{"jsonrpc":"2.0","error":{"code":-32603,"message":"not enough spendable funds from 4MIACTR3WJMC4UUKHHU3VX55LWW77EZW,QM63QOKZVOHGTMCKRQCB4GJVD4FCHL56 for 1000000000641"}
コールバックの最初の引数がfalsyの場合、要求は成功します。 残っている引数が1つしかない場合は、JSON-RPCリクエストの結果として返されます。 残りの引数がさらにある場合、それらは配列にラップされます。
expose()のオプションのbNoErrorsパラメータ(下記参照)が真実である場合、要求はエラーで終わることはなく、コールバックの最初のパラメータと後続のパラメータが結果として解釈されます。
元の名前で関数を公開するには、
rpcify.expose(func, bNoErrors);
複数の関数を元の名前で公開するには、関数の配列を渡します。
rpcify.expose([func1, func2], bNoErrors);
異なる名前で関数を公開するには、次の構文を使用します。
rpcify.expose('func_name', func, bNoErrors);
rpcify.expose({func1_name: func1, func2_name: func2}, bNoErrors);