github.com/devwanda/aphelion-staking@v0.33.9/privval/errors.go (about) 1 package privval 2 3 import ( 4 "errors" 5 "fmt" 6 ) 7 8 // EndpointTimeoutError occurs when endpoint times out. 9 type EndpointTimeoutError struct{} 10 11 // Implement the net.Error interface. 12 func (e EndpointTimeoutError) Error() string { return "endpoint connection timed out" } 13 func (e EndpointTimeoutError) Timeout() bool { return true } 14 func (e EndpointTimeoutError) Temporary() bool { return true } 15 16 // Socket errors. 17 var ( 18 ErrConnectionTimeout = EndpointTimeoutError{} 19 ErrNoConnection = errors.New("endpoint is not connected") 20 ErrReadTimeout = errors.New("endpoint read timed out") 21 ErrUnexpectedResponse = errors.New("empty response") 22 ErrWriteTimeout = errors.New("endpoint write timed out") 23 ) 24 25 // RemoteSignerError allows (remote) validators to include meaningful error 26 // descriptions in their reply. 27 type RemoteSignerError struct { 28 // TODO(ismail): create an enum of known errors 29 Code int 30 Description string 31 } 32 33 func (e *RemoteSignerError) Error() string { 34 return fmt.Sprintf("signerEndpoint returned error #%d: %s", e.Code, e.Description) 35 }