""" Exceptions used by pyhmy """ class InvalidRPCReplyError( RuntimeError ): """Exception raised when RPC call returns unexpected result Generally indicates Harmony API has been updated & pyhmy library needs to be updated as well.""" def __init__( self, method, endpoint ): super().__init__( f"Unexpected reply for {method} from {endpoint}" ) class InvalidValidatorError( ValueError ): """Exception raised Validator does not pass sanity checks.""" errors = { 1: "Invalid ONE address", 2: "Field not initialized", 3: "Invalid field input", 4: "Error checking blockchain", 5: "Unable to import validator information from blockchain", } def __init__( self, err_code, msg ): self.code = err_code self.msg = msg super().__init__( msg ) def __str__( self ): return f"[Errno {self.code}] {self.errors[self.code]}: {self.msg}" class TxConfirmationTimedoutError( AssertionError ): """Exception raised when a transaction is sent to the chain But not confirmed during the timeout period specified.""" def __init__( self, msg ): super().__init__( f"{msg}" )