persistence_std/types/ibc/applications/interchain_accounts/genesis/
v1.rs

1use persistence_std_derive::CosmwasmExt;
2/// GenesisState defines the interchain accounts genesis state
3#[allow(clippy::derive_partial_eq_without_eq)]
4#[derive(
5    Clone,
6    PartialEq,
7    Eq,
8    ::prost::Message,
9    ::serde::Serialize,
10    ::serde::Deserialize,
11    ::schemars::JsonSchema,
12    CosmwasmExt,
13)]
14#[proto_message(type_url = "/ibc.applications.interchain_accounts.genesis.v1.GenesisState")]
15pub struct GenesisState {
16    #[prost(message, optional, tag = "1")]
17    pub controller_genesis_state: ::core::option::Option<ControllerGenesisState>,
18    #[prost(message, optional, tag = "2")]
19    pub host_genesis_state: ::core::option::Option<HostGenesisState>,
20}
21/// ControllerGenesisState defines the interchain accounts controller genesis state
22#[allow(clippy::derive_partial_eq_without_eq)]
23#[derive(
24    Clone,
25    PartialEq,
26    Eq,
27    ::prost::Message,
28    ::serde::Serialize,
29    ::serde::Deserialize,
30    ::schemars::JsonSchema,
31    CosmwasmExt,
32)]
33#[proto_message(
34    type_url = "/ibc.applications.interchain_accounts.genesis.v1.ControllerGenesisState"
35)]
36pub struct ControllerGenesisState {
37    #[prost(message, repeated, tag = "1")]
38    pub active_channels: ::prost::alloc::vec::Vec<ActiveChannel>,
39    #[prost(message, repeated, tag = "2")]
40    pub interchain_accounts: ::prost::alloc::vec::Vec<RegisteredInterchainAccount>,
41    #[prost(string, repeated, tag = "3")]
42    pub ports: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
43    #[prost(message, optional, tag = "4")]
44    pub params: ::core::option::Option<super::super::controller::v1::Params>,
45}
46/// HostGenesisState defines the interchain accounts host genesis state
47#[allow(clippy::derive_partial_eq_without_eq)]
48#[derive(
49    Clone,
50    PartialEq,
51    Eq,
52    ::prost::Message,
53    ::serde::Serialize,
54    ::serde::Deserialize,
55    ::schemars::JsonSchema,
56    CosmwasmExt,
57)]
58#[proto_message(type_url = "/ibc.applications.interchain_accounts.genesis.v1.HostGenesisState")]
59pub struct HostGenesisState {
60    #[prost(message, repeated, tag = "1")]
61    pub active_channels: ::prost::alloc::vec::Vec<ActiveChannel>,
62    #[prost(message, repeated, tag = "2")]
63    pub interchain_accounts: ::prost::alloc::vec::Vec<RegisteredInterchainAccount>,
64    #[prost(string, tag = "3")]
65    pub port: ::prost::alloc::string::String,
66    #[prost(message, optional, tag = "4")]
67    pub params: ::core::option::Option<super::super::host::v1::Params>,
68}
69/// ActiveChannel contains a connection ID, port ID and associated active channel ID, as well as a boolean flag to
70/// indicate if the channel is middleware enabled
71#[allow(clippy::derive_partial_eq_without_eq)]
72#[derive(
73    Clone,
74    PartialEq,
75    Eq,
76    ::prost::Message,
77    ::serde::Serialize,
78    ::serde::Deserialize,
79    ::schemars::JsonSchema,
80    CosmwasmExt,
81)]
82#[proto_message(type_url = "/ibc.applications.interchain_accounts.genesis.v1.ActiveChannel")]
83pub struct ActiveChannel {
84    #[prost(string, tag = "1")]
85    #[serde(alias = "connectionID")]
86    pub connection_id: ::prost::alloc::string::String,
87    #[prost(string, tag = "2")]
88    #[serde(alias = "portID")]
89    pub port_id: ::prost::alloc::string::String,
90    #[prost(string, tag = "3")]
91    #[serde(alias = "channelID")]
92    pub channel_id: ::prost::alloc::string::String,
93    #[prost(bool, tag = "4")]
94    pub is_middleware_enabled: bool,
95}
96/// RegisteredInterchainAccount contains a connection ID, port ID and associated interchain account address
97#[allow(clippy::derive_partial_eq_without_eq)]
98#[derive(
99    Clone,
100    PartialEq,
101    Eq,
102    ::prost::Message,
103    ::serde::Serialize,
104    ::serde::Deserialize,
105    ::schemars::JsonSchema,
106    CosmwasmExt,
107)]
108#[proto_message(
109    type_url = "/ibc.applications.interchain_accounts.genesis.v1.RegisteredInterchainAccount"
110)]
111pub struct RegisteredInterchainAccount {
112    #[prost(string, tag = "1")]
113    #[serde(alias = "connectionID")]
114    pub connection_id: ::prost::alloc::string::String,
115    #[prost(string, tag = "2")]
116    #[serde(alias = "portID")]
117    pub port_id: ::prost::alloc::string::String,
118    #[prost(string, tag = "3")]
119    pub account_address: ::prost::alloc::string::String,
120}