1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
use cosmwasm_std::StdError;

use abstract_sdk::os::abstract_ica::SimpleIcaError;
use cw_controllers::AdminError;
use cw_utils::ParseReplyError;
use thiserror::Error;

#[derive(Error, Debug, PartialEq)]
pub enum HostError {
    #[error("{0}")]
    Std(#[from] StdError),

    #[error("This host does not implement any custom queries")]
    NoCustomQueries,

    #[error("{0}")]
    AdminError(#[from] AdminError),

    #[error("{0}")]
    ParseReply(#[from] ParseReplyError),

    #[error("{0}")]
    SimpleIca(#[from] SimpleIcaError),

    #[error("Cannot register over an existing channel")]
    ChannelAlreadyRegistered,

    #[error("Invalid reply id")]
    InvalidReplyId,

    #[error("This channel has not been closed.")]
    ChannelNotClosed,

    #[error("A valid proxy address must be provided.")]
    MissingProxyAddress,

    #[error("Missing target proxy to send messages to.")]
    NoTarget,

    #[error("Ibc hopping not supported")]
    IbcHopping,
}