JSONオブジェクトをコードに渡すWeb APIを介してアクセスされるハイパーレジャーチェーンコードを設計しようとしています。ただし、invoke メソッドを実行するたびに、json 応答で実際にユーザーに値を返すことはできません。
たとえば、サンプル コードを次に示します。
func (t *TLCChaincode) Invoke(stub *shim.ChaincodeStub, function string, args []string) ([]byte, error) {
//Do some stuff
return []byte("Some string"), nil
}
エラーを返すためのサンプルコード
func (t *TLCChaincode) Invoke(stub *shim.ChaincodeStub, function string, args []string) ([]byte, error) {
//Try to do some stuff
//Get some sort of error
return nil, errors.New("someError")
}
ただし、これらはどちらも次のようなメッセージを返します。メッセージは常に以下のようなランダムな文字列です (ある種のハッシュが疑われます)。
{
"jsonrpc": "2.0",
"result": {
"status": "OK",
"message": "1e1123e3-b484-4120-a28e-c3a8db384557"
},
"id": 11
}
ご覧のとおり、この応答には、返された応答 (最初のケース) も、返されたエラー (2 番目のケース) も含まれていません。返されたバイト、または返されたエラーを返されたjsonに取得するにはどうすればよいですか?
編集: 別のチェーンコードから呼び出しメソッドを呼び出すと、正しい戻り値が返されることに注意してください。正しく機能しないのは、ユーザーに返されたときだけです。