Skip to main content

wormhole/
msg.rs

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,         // Current guardian set index
52    pub addresses: Vec<GuardianAddress>, // List of querdian addresses
53}
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}