xmtp_db/encrypted_store/group_intent/
error.rs

1use thiserror::Error;
2use xmtp_common::RetryableError;
3use xmtp_proto::types::{CursorList, GroupId};
4
5use crate::group_intent::PayloadHash;
6
7#[derive(Debug, Error)]
8pub enum GroupIntentError {
9    #[error(
10        "intent {} for group {group_id} has invalid dependencies={}. one message cannot have more than 1 dependency in same epoch",
11        hex::encode(payload_hash),
12        cursors
13    )]
14    MoreThanOneDependency {
15        payload_hash: PayloadHash,
16        cursors: CursorList,
17        group_id: GroupId,
18    },
19    #[error("intent with hash {hash} has no known dependencies")]
20    NoDependencyFound { hash: PayloadHash },
21}
22
23impl RetryableError for GroupIntentError {
24    fn is_retryable(&self) -> bool {
25        match self {
26            Self::MoreThanOneDependency { .. } => true,
27            Self::NoDependencyFound { .. } => true,
28        }
29    }
30}