croncat_integration_utils/
error.rs

1use cosmwasm_std::{Addr, StdError};
2use cw_utils::ParseReplyError;
3use serde_json::Error as SerdeJsonError;
4use thiserror::Error;
5
6#[derive(Error, Debug, PartialEq)]
7pub enum CronCatContractError {
8    #[error("{0}")]
9    Std(#[from] StdError),
10
11    #[error("Parse Reply Error {0}")]
12    ParseReplyError(#[from] ParseReplyError),
13
14    #[error("Reply {reply_id} failed")]
15    ReplyError { reply_id: u64 },
16
17    #[error("Failed to retrieve latest task execution info from potential CronCat manager: {manager_addr}")]
18    LatestTaskInfoFailed { manager_addr: Addr },
19
20    #[error("Could not deserialize task info")]
21    DeserializeTaskInfo {},
22
23    #[error("No response from factory regarding potential manager ({manager_addr}) for version {version}")]
24    FactoryManagerQueryFailed { manager_addr: Addr, version: String },
25
26    #[error("Attempted invocation from unsanctioned manager contract ({manager_addr}) for version {version}")]
27    UnsanctionedInvocation { manager_addr: Addr, version: String },
28
29    #[error("Invocation not in the same block and transaction index")]
30    NotSameBlockTxIndex {},
31
32    #[error("Invocation not called by task owner. Expected owner: {expected_owner}")]
33    WrongTaskOwner { expected_owner: Addr },
34
35    #[error("Serialization error: {msg}")]
36    SerdeError { msg: String },
37
38    #[error("Must attach funds for task creation")]
39    TaskCreationNoFunds {},
40
41    #[error("No contract named {contract_name} on factory {factory_addr} with {version} version")]
42    NoSuchContractOnFactory {
43        contract_name: String,
44        factory_addr: Addr,
45        version: String,
46    },
47
48    #[error("Invalid version string, please use dot-separated format")]
49    InvalidVersionString {},
50}
51
52impl From<SerdeJsonError> for CronCatContractError {
53    fn from(error: SerdeJsonError) -> Self {
54        CronCatContractError::SerdeError {
55            msg: format!("Serialization error: {}", error),
56        }
57    }
58}