ibc_proto/prost/
ibc.applications.interchain_accounts.v1.rs

1// This file is @generated by prost-build.
2/// An InterchainAccount is defined as a BaseAccount & the address of the account owner on the controller chain
3#[allow(clippy::derive_partial_eq_without_eq)]
4#[derive(Clone, PartialEq, ::prost::Message)]
5pub struct InterchainAccount {
6    #[prost(message, optional, tag = "1")]
7    pub base_account: ::core::option::Option<
8        super::super::super::super::cosmos::auth::v1beta1::BaseAccount,
9    >,
10    #[prost(string, tag = "2")]
11    pub account_owner: ::prost::alloc::string::String,
12}
13impl ::prost::Name for InterchainAccount {
14    const NAME: &'static str = "InterchainAccount";
15    const PACKAGE: &'static str = "ibc.applications.interchain_accounts.v1";
16    fn full_name() -> ::prost::alloc::string::String {
17        "ibc.applications.interchain_accounts.v1.InterchainAccount".into()
18    }
19    fn type_url() -> ::prost::alloc::string::String {
20        "/ibc.applications.interchain_accounts.v1.InterchainAccount".into()
21    }
22}
23/// InterchainAccountPacketData is comprised of a raw transaction, type of transaction and optional memo field.
24#[allow(clippy::derive_partial_eq_without_eq)]
25#[derive(Clone, PartialEq, ::prost::Message)]
26pub struct InterchainAccountPacketData {
27    #[prost(enumeration = "Type", tag = "1")]
28    pub r#type: i32,
29    #[prost(bytes = "vec", tag = "2")]
30    pub data: ::prost::alloc::vec::Vec<u8>,
31    #[prost(string, tag = "3")]
32    pub memo: ::prost::alloc::string::String,
33}
34impl ::prost::Name for InterchainAccountPacketData {
35    const NAME: &'static str = "InterchainAccountPacketData";
36    const PACKAGE: &'static str = "ibc.applications.interchain_accounts.v1";
37    fn full_name() -> ::prost::alloc::string::String {
38        "ibc.applications.interchain_accounts.v1.InterchainAccountPacketData".into()
39    }
40    fn type_url() -> ::prost::alloc::string::String {
41        "/ibc.applications.interchain_accounts.v1.InterchainAccountPacketData".into()
42    }
43}
44/// CosmosTx contains a list of sdk.Msg's. It should be used when sending transactions to an SDK host chain.
45#[allow(clippy::derive_partial_eq_without_eq)]
46#[derive(Clone, PartialEq, ::prost::Message)]
47pub struct CosmosTx {
48    #[prost(message, repeated, tag = "1")]
49    pub messages: ::prost::alloc::vec::Vec<::tendermint_proto::google::protobuf::Any>,
50}
51impl ::prost::Name for CosmosTx {
52    const NAME: &'static str = "CosmosTx";
53    const PACKAGE: &'static str = "ibc.applications.interchain_accounts.v1";
54    fn full_name() -> ::prost::alloc::string::String {
55        "ibc.applications.interchain_accounts.v1.CosmosTx".into()
56    }
57    fn type_url() -> ::prost::alloc::string::String {
58        "/ibc.applications.interchain_accounts.v1.CosmosTx".into()
59    }
60}
61/// Type defines a classification of message issued from a controller chain to its associated interchain accounts
62/// host
63#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
64#[repr(i32)]
65pub enum Type {
66    /// Default zero value enumeration
67    Unspecified = 0,
68    /// Execute a transaction on an interchain accounts host chain
69    ExecuteTx = 1,
70}
71impl Type {
72    /// String value of the enum field names used in the ProtoBuf definition.
73    ///
74    /// The values are not transformed in any way and thus are considered stable
75    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
76    pub fn as_str_name(&self) -> &'static str {
77        match self {
78            Type::Unspecified => "TYPE_UNSPECIFIED",
79            Type::ExecuteTx => "TYPE_EXECUTE_TX",
80        }
81    }
82    /// Creates an enum from field names used in the ProtoBuf definition.
83    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
84        match value {
85            "TYPE_UNSPECIFIED" => Some(Self::Unspecified),
86            "TYPE_EXECUTE_TX" => Some(Self::ExecuteTx),
87            _ => None,
88        }
89    }
90}
91/// Metadata defines a set of protocol specific data encoded into the ICS27 channel version bytestring
92/// See ICS004: <https://github.com/cosmos/ibc/tree/master/spec/core/ics-004-channel-and-packet-semantics#Versioning>
93#[allow(clippy::derive_partial_eq_without_eq)]
94#[derive(Clone, PartialEq, ::prost::Message)]
95pub struct Metadata {
96    /// version defines the ICS27 protocol version
97    #[prost(string, tag = "1")]
98    pub version: ::prost::alloc::string::String,
99    /// controller_connection_id is the connection identifier associated with the controller chain
100    #[prost(string, tag = "2")]
101    pub controller_connection_id: ::prost::alloc::string::String,
102    /// host_connection_id is the connection identifier associated with the host chain
103    #[prost(string, tag = "3")]
104    pub host_connection_id: ::prost::alloc::string::String,
105    /// address defines the interchain account address to be fulfilled upon the OnChanOpenTry handshake step
106    /// NOTE: the address field is empty on the OnChanOpenInit handshake step
107    #[prost(string, tag = "4")]
108    pub address: ::prost::alloc::string::String,
109    /// encoding defines the supported codec format
110    #[prost(string, tag = "5")]
111    pub encoding: ::prost::alloc::string::String,
112    /// tx_type defines the type of transactions the interchain account can execute
113    #[prost(string, tag = "6")]
114    pub tx_type: ::prost::alloc::string::String,
115}
116impl ::prost::Name for Metadata {
117    const NAME: &'static str = "Metadata";
118    const PACKAGE: &'static str = "ibc.applications.interchain_accounts.v1";
119    fn full_name() -> ::prost::alloc::string::String {
120        "ibc.applications.interchain_accounts.v1.Metadata".into()
121    }
122    fn type_url() -> ::prost::alloc::string::String {
123        "/ibc.applications.interchain_accounts.v1.Metadata".into()
124    }
125}