1use cosmwasm_std::{
2 Binary,
3 Coin,
4};
5use schemars::JsonSchema;
6use serde::{
7 Deserialize,
8 Serialize,
9};
10
11use crate::state::{
12 GuardianAddress,
13 GuardianSetInfo,
14};
15
16type HumanAddr = String;
17
18#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
19pub struct InstantiateMsg {
20 pub gov_chain: u16,
21 pub gov_address: Binary,
22
23 pub initial_guardian_set: GuardianSetInfo,
24 pub guardian_set_expirity: u64,
25}
26
27#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
28#[serde(rename_all = "snake_case")]
29pub enum ExecuteMsg {
30 SubmitVAA { vaa: Binary },
31 PostMessage { message: Binary, nonce: u32 },
32}
33
34#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
35#[serde(rename_all = "snake_case")]
36pub struct MigrateMsg {
37}
38
39#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
40#[serde(rename_all = "snake_case")]
41pub enum QueryMsg {
42 GuardianSetInfo {},
43 VerifyVAA { vaa: Binary, block_time: u64 },
44 GetState {},
45 QueryAddressHex { address: HumanAddr },
46}
47
48#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
49#[serde(rename_all = "snake_case")]
50pub struct GuardianSetInfoResponse {
51 pub guardian_set_index: u32, pub addresses: Vec<GuardianAddress>, }
54
55#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
56#[serde(rename_all = "snake_case")]
57pub struct WrappedRegistryResponse {
58 pub address: HumanAddr,
59}
60
61#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
62#[serde(rename_all = "snake_case")]
63pub struct GetStateResponse {
64 pub fee: Coin,
65}
66
67#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
68#[serde(rename_all = "snake_case")]
69pub struct GetAddressHexResponse {
70 pub hex: String,
71}