Очень трудно догадаться, не видя реального кода, который вызывает ошибку компиляции, в то время как кажется, что вы не заботитесь о втором параметре, который возвращается HistoryQueryIteratorInterface#Next()
API или даже ChaincodeStubInterface#GetHistoryForKey()
. Пожалуйста, посмотрите пример того, как правильно использовать эти API:
// GetPreviousValue reads previous value of given key
func (pm *personManagement) GetPreviousValue(params []string, stub shim.ChaincodeStubInterface) peer.Response {
historyIer, err := stub.GetHistoryForKey(params[0])
if err != nil {
errMsg := fmt.Sprintf("[ERROR] cannot retrieve history of key <%s>, due to %s", params[0], err)
fmt.Println(errMsg)
return shim.Error(errMsg)
}
if historyIer.HasNext() {
modification, err := historyIer.Next()
if err != nil {
errMsg := fmt.Sprintf("[ERROR] cannot read key record modification, key <%s>, due to %s", params[0], err)
fmt.Println(errMsg)
return shim.Error(errMsg)
}
fmt.Println("Returning information about", string(modification.Value))
return shim.Success(modification.Value)
}
fmt.Printf("No history found for key %s\n", params[0])
return shim.Success([]byte(fmt.Sprintf("No history for key %s", params[0])))
}
ПРИМЕЧАНИЕ : обратите внимание, что historyIer.Next()
возвращает значение истории и ошибку.