我正在尝试设计一个超级账本链代码,它可以通过 Web API 访问,它将 json 对象传递给代码。但是,每当我执行调用方法时,我实际上无法在 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
}
如您所见,此响应既不包含我返回的响应(如在第一种情况下),也不包含我返回的错误(在第二种情况下)。我将如何将返回的字节或返回的错误返回到返回的 json 中?
编辑:请注意,如果我从另一个链代码调用调用方法,它会收到正确的返回值。只有当它返回给用户时,它才能正常工作。