1use crate::bindings::types::Height;
2use cosmwasm_std::Binary;
3use schemars::JsonSchema;
4use serde::{Deserialize, Serialize};
5
6#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
7pub struct RequestPacket {
8 pub sequence: Option<u64>,
9 pub source_port: Option<String>,
10 pub source_channel: Option<String>,
11 pub destination_port: Option<String>,
12 pub destination_channel: Option<String>,
13 pub data: Option<Binary>,
14 pub timeout_height: Option<RequestPacketTimeoutHeight>,
15 pub timeout_timestamp: Option<u64>,
16}
17#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
18pub struct RequestPacketTimeoutHeight {
19 pub revision_number: Option<u64>,
20 pub revision_height: Option<u64>,
21}
22
23#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
24#[serde(rename_all = "snake_case")]
25pub enum SudoMsg {
26 Response {
27 request: RequestPacket,
28 data: Binary,
29 },
30 Error {
31 request: RequestPacket,
32 details: String,
33 },
34 Timeout {
35 request: RequestPacket,
36 },
37 OpenAck {
38 port_id: String,
39 channel_id: String,
40 counterparty_channel_id: String,
41 counterparty_version: String,
42 },
43 TxQueryResult {
44 query_id: u64,
45 height: Height,
46 data: Binary,
47 },
48 #[serde(rename = "kv_query_result")]
49 KVQueryResult {
50 query_id: u64,
51 },
52}
53
54#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
58#[serde(rename_all = "snake_case")]
59pub enum TransferSudoMsg {
60 Response {
61 request: RequestPacket,
62 data: Binary,
63 },
64 Error {
65 request: RequestPacket,
66 details: String,
67 },
68 Timeout {
69 request: RequestPacket,
70 },
71}