hpl_interface/core/
va.rs

1use cosmwasm_schema::{cw_serde, QueryResponses};
2use cosmwasm_std::HexBinary;
3
4#[cw_serde]
5pub struct InstantiateMsg {
6    pub hrp: String,
7    pub mailbox: String,
8}
9
10#[cw_serde]
11pub enum ExecuteMsg {
12    Announce {
13        validator: HexBinary,
14        signature: HexBinary,
15        storage_location: String,
16    },
17}
18
19#[cw_serde]
20#[derive(QueryResponses)]
21pub enum QueryMsg {
22    #[returns(GetAnnounceStorageLocationsResponse)]
23    GetAnnounceStorageLocations { validators: Vec<HexBinary> },
24
25    #[returns(GetAnnouncedValidatorsResponse)]
26    GetAnnouncedValidators {},
27
28    #[returns(MailboxResponse)]
29    Mailbox {},
30
31    #[returns(LocalDomainResponse)]
32    LocalDomain {},
33}
34
35#[cw_serde]
36pub struct GetAnnounceStorageLocationsResponse {
37    pub storage_locations: Vec<(String, Vec<String>)>,
38}
39
40#[cw_serde]
41pub struct GetAnnouncedValidatorsResponse {
42    pub validators: Vec<String>,
43}
44
45#[cw_serde]
46pub struct MailboxResponse {
47    pub mailbox: String,
48}
49
50#[cw_serde]
51pub struct LocalDomainResponse {
52    pub local_domain: u32,
53}