package privval import ( "errors" "fmt" ) // EndpointTimeoutError occurs when endpoint times out. type EndpointTimeoutError struct{} // Implement the net.Error interface. func (e EndpointTimeoutError) Error() string { return "endpoint connection timed out" } func (e EndpointTimeoutError) Timeout() bool { return true } func (e EndpointTimeoutError) Temporary() bool { return true } // Socket errors. var ( ErrConnectionTimeout = EndpointTimeoutError{} ErrNoConnection = errors.New("endpoint is not connected") ErrReadTimeout = errors.New("endpoint read timed out") ErrUnexpectedResponse = errors.New("empty response") ErrWriteTimeout = errors.New("endpoint write timed out") ) // RemoteSignerError allows (remote) validators to include meaningful error // descriptions in their reply. type RemoteSignerError struct { // TODO(ismail): create an enum of known errors Code int Description string } func (e *RemoteSignerError) Error() string { return fmt.Sprintf("signerEndpoint returned error #%d: %s", e.Code, e.Description) }