hpl_interface/hook/
pausable.rs1use cosmwasm_schema::{cw_serde, QueryResponses};
2
3use crate::{
4 ownable::{OwnableMsg, OwnableQueryMsg},
5 pausable::{PausableMsg, PausableQueryMsg},
6};
7
8use super::{HookQueryMsg, PostDispatchMsg};
9
10#[cw_serde]
11pub struct InstantiateMsg {
12 pub owner: String,
13 pub paused: bool,
14}
15
16#[cw_serde]
17pub enum ExecuteMsg {
18 Ownable(OwnableMsg),
19 Pausable(PausableMsg),
20 PostDispatch(PostDispatchMsg),
21}
22
23#[cw_serde]
24#[derive(QueryResponses)]
25#[query_responses(nested)]
26pub enum QueryMsg {
27 Pausable(PausableQueryMsg),
28 Ownable(OwnableQueryMsg),
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}