mirror of https://github.com/oxen-io/session-ios
				
				
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			57 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Swift
		
	
			
		
		
	
	
			57 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Swift
		
	
| // Copyright © 2022 Rangeproof Pty Ltd. All rights reserved.
 | |
| 
 | |
| import Foundation
 | |
| 
 | |
| public enum MessageReceiverError: LocalizedError {
 | |
|     case duplicateMessage
 | |
|     case duplicateMessageNewSnode
 | |
|     case duplicateControlMessage
 | |
|     case invalidMessage
 | |
|     case unknownMessage
 | |
|     case unknownEnvelopeType
 | |
|     case noUserX25519KeyPair
 | |
|     case noUserED25519KeyPair
 | |
|     case invalidSignature
 | |
|     case noData
 | |
|     case senderBlocked
 | |
|     case noThread
 | |
|     case selfSend
 | |
|     case decryptionFailed
 | |
|     case invalidGroupPublicKey
 | |
|     case noGroupKeyPair
 | |
| 
 | |
|     public var isRetryable: Bool {
 | |
|         switch self {
 | |
|             case .duplicateMessage, .duplicateMessageNewSnode, .duplicateControlMessage,
 | |
|                 .invalidMessage, .unknownMessage, .unknownEnvelopeType, .invalidSignature,
 | |
|                 .noData, .senderBlocked, .noThread, .selfSend, .decryptionFailed:
 | |
|                 return false
 | |
|                 
 | |
|             default: return true
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public var errorDescription: String? {
 | |
|         switch self {
 | |
|             case .duplicateMessage: return "Duplicate message."
 | |
|             case .duplicateMessageNewSnode: return "Duplicate message from different service node."
 | |
|             case .duplicateControlMessage: return "Duplicate control message."
 | |
|             case .invalidMessage: return "Invalid message."
 | |
|             case .unknownMessage: return "Unknown message type."
 | |
|             case .unknownEnvelopeType: return "Unknown envelope type."
 | |
|             case .noUserX25519KeyPair: return "Couldn't find user X25519 key pair."
 | |
|             case .noUserED25519KeyPair: return "Couldn't find user ED25519 key pair."
 | |
|             case .invalidSignature: return "Invalid message signature."
 | |
|             case .noData: return "Received an empty envelope."
 | |
|             case .senderBlocked: return "Received a message from a blocked user."
 | |
|             case .noThread: return "Couldn't find thread for message."
 | |
|             case .selfSend: return "Message addressed at self."
 | |
|             case .decryptionFailed: return "Decryption failed."
 | |
|             
 | |
|             // Shared sender keys
 | |
|             case .invalidGroupPublicKey: return "Invalid group public key."
 | |
|             case .noGroupKeyPair: return "Missing group key pair."
 | |
|         }
 | |
|     }
 | |
| }
 |