package wire import ( "fmt" ) // MessageError describes an issue with a message. An example of some potential issues are messages from the wrong // bitcoin network, invalid commands, mismatched checksums, and exceeding max payloads. This provides a mechanism for // the caller to type assert the error to differentiate between general io errors such as io.EOF and issues that // resulted from malformed messages. type MessageError struct { Func string // Function name Description string // Human readable description of the issue } // Error satisfies the error interface and prints human-readable errors. func (e *MessageError) Error() string { if e.Func != "" { return fmt.Sprintf("%v: %v", e.Func, e.Description) } return e.Description } // messageError creates an error for the given function and description. func messageError(f string, desc string) *MessageError { return &MessageError{Func: f, Description: desc} }