hpl_interface/hook/
routing_fallback.rs

1use cosmwasm_schema::{cw_serde, QueryResponses};
2use cosmwasm_std::Addr;
3
4use crate::{
5    ownable::{OwnableMsg, OwnableQueryMsg},
6    router::{RouterMsg, RouterQuery},
7};
8
9use super::{HookQueryMsg, PostDispatchMsg};
10
11#[cw_serde]
12pub struct InstantiateMsg {
13    pub owner: String,
14}
15
16#[cw_serde]
17pub enum ExecuteMsg {
18    Ownable(OwnableMsg),
19    PostDispatch(PostDispatchMsg),
20    Router(RouterMsg<Addr>),
21
22    SetFallbackHook { hook: String },
23}
24
25#[cw_serde]
26#[derive(QueryResponses)]
27#[query_responses(nested)]
28pub enum QueryMsg {
29    Ownable(OwnableQueryMsg),
30    Router(RouterQuery<Addr>),
31    Hook(HookQueryMsg),
32}
33
34#[cfg(test)]
35mod test {
36    use cosmwasm_std::HexBinary;
37
38    use super::*;
39    use crate::{
40        hook::{ExpectedHookQueryMsg, PostDispatchMsg, QuoteDispatchMsg},
41        msg_checker,
42    };
43
44    #[test]
45    fn test_hook_interface() {
46        let _checked: ExecuteMsg = msg_checker(
47            PostDispatchMsg {
48                metadata: HexBinary::default(),
49                message: HexBinary::default(),
50            }
51            .wrap(),
52        );
53
54        let _checked: QueryMsg = msg_checker(ExpectedHookQueryMsg::Hook(HookQueryMsg::Mailbox {}));
55        let _checked: QueryMsg = msg_checker(
56            QuoteDispatchMsg {
57                metadata: HexBinary::default(),
58                message: HexBinary::default(),
59            }
60            .request(),
61        );
62    }
63}