hpl_interface/hook/
routing_fallback.rs1use 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}