hpl_interface/hook/
routing.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
23#[cw_serde]
24#[derive(QueryResponses)]
25#[query_responses(nested)]
26pub enum QueryMsg {
27 Ownable(OwnableQueryMsg),
28 Router(RouterQuery<Addr>),
29 Hook(HookQueryMsg),
30}
31
32#[cfg(test)]
33mod test {
34 use cosmwasm_std::HexBinary;
35
36 use super::*;
37 use crate::{
38 hook::{ExpectedHookQueryMsg, PostDispatchMsg, QuoteDispatchMsg},
39 msg_checker,
40 };
41
42 #[test]
43 fn test_hook_interface() {
44 let _checked: ExecuteMsg = msg_checker(
45 PostDispatchMsg {
46 metadata: HexBinary::default(),
47 message: HexBinary::default(),
48 }
49 .wrap(),
50 );
51
52 let _checked: QueryMsg = msg_checker(ExpectedHookQueryMsg::Hook(HookQueryMsg::Mailbox {}));
53 let _checked: QueryMsg = msg_checker(
54 QuoteDispatchMsg {
55 metadata: HexBinary::default(),
56 message: HexBinary::default(),
57 }
58 .request(),
59 );
60 }
61}