penumbra_sdk_proto/gen/
penumbra.core.component.ibc.v1.rs

1// This file is @generated by prost-build.
2#[derive(Clone, PartialEq, ::prost::Message)]
3pub struct IbcRelay {
4    #[prost(message, optional, tag = "1")]
5    pub raw_action: ::core::option::Option<::pbjson_types::Any>,
6}
7impl ::prost::Name for IbcRelay {
8    const NAME: &'static str = "IbcRelay";
9    const PACKAGE: &'static str = "penumbra.core.component.ibc.v1";
10    fn full_name() -> ::prost::alloc::string::String {
11        "penumbra.core.component.ibc.v1.IbcRelay".into()
12    }
13    fn type_url() -> ::prost::alloc::string::String {
14        "/penumbra.core.component.ibc.v1.IbcRelay".into()
15    }
16}
17/// FungibleTokenPacketData defines a struct for the packet payload
18/// See FungibleTokenPacketData spec:
19/// <https://github.com/cosmos/ibc/tree/master/spec/app/ics-020-fungible-token-transfer#data-structures>
20#[derive(Clone, PartialEq, ::prost::Message)]
21pub struct FungibleTokenPacketData {
22    /// the token denomination to be transferred
23    #[prost(string, tag = "1")]
24    pub denom: ::prost::alloc::string::String,
25    /// the token amount to be transferred
26    #[prost(string, tag = "2")]
27    pub amount: ::prost::alloc::string::String,
28    /// the return address
29    #[prost(string, tag = "3")]
30    pub sender: ::prost::alloc::string::String,
31    /// the recipient address on the destination chain
32    #[prost(string, tag = "4")]
33    pub receiver: ::prost::alloc::string::String,
34    /// optional memo
35    #[prost(string, tag = "5")]
36    pub memo: ::prost::alloc::string::String,
37}
38impl ::prost::Name for FungibleTokenPacketData {
39    const NAME: &'static str = "FungibleTokenPacketData";
40    const PACKAGE: &'static str = "penumbra.core.component.ibc.v1";
41    fn full_name() -> ::prost::alloc::string::String {
42        "penumbra.core.component.ibc.v1.FungibleTokenPacketData".into()
43    }
44    fn type_url() -> ::prost::alloc::string::String {
45        "/penumbra.core.component.ibc.v1.FungibleTokenPacketData".into()
46    }
47}
48/// A Penumbra transaction action requesting an ICS20 transfer.
49#[derive(Clone, PartialEq, ::prost::Message)]
50pub struct Ics20Withdrawal {
51    #[prost(message, optional, tag = "1")]
52    pub amount: ::core::option::Option<super::super::super::num::v1::Amount>,
53    #[prost(message, optional, tag = "2")]
54    pub denom: ::core::option::Option<super::super::super::asset::v1::Denom>,
55    /// the address on the destination chain to send the transfer to
56    #[prost(string, tag = "3")]
57    pub destination_chain_address: ::prost::alloc::string::String,
58    /// a "sender" penumbra address to use to return funds from this withdrawal.
59    /// this should be an ephemeral address
60    #[prost(message, optional, tag = "4")]
61    pub return_address: ::core::option::Option<super::super::super::keys::v1::Address>,
62    /// The height on the counterparty chain at which this transfer expires, and
63    /// funds are sent back to the return address.
64    #[prost(message, optional, tag = "5")]
65    pub timeout_height: ::core::option::Option<
66        ::ibc_proto::ibc::core::client::v1::Height,
67    >,
68    /// The timestamp, in epoch time, after which this transfer will be considered invalid.
69    /// Clients must quantize this value to the nearest minute, to preserve privacy.
70    /// IBC withdrawals that do not quantize timestamps will be rejected.
71    #[prost(uint64, tag = "6")]
72    pub timeout_time: u64,
73    /// The source channel used for the withdrawal
74    #[prost(string, tag = "7")]
75    pub source_channel: ::prost::alloc::string::String,
76    /// Whether to use a "compat" (bech32, non-m) address for the return address in the withdrawal,
77    /// for compatability with chains that expect to be able to parse the return address as bech32.
78    #[deprecated]
79    #[prost(bool, tag = "8")]
80    pub use_compat_address: bool,
81    /// Arbitrary string data to be included in the `memo` field
82    /// of the ICS-20 FungibleTokenPacketData for this withdrawal.
83    /// Commonly used for packet forwarding support, or other protocols that may support usage of the memo field.
84    #[prost(string, tag = "9")]
85    pub ics20_memo: ::prost::alloc::string::String,
86    /// Whether to use a transparent address (bech32, 32-byte) for the return address in the withdrawal.
87    #[prost(bool, tag = "10")]
88    pub use_transparent_address: bool,
89}
90impl ::prost::Name for Ics20Withdrawal {
91    const NAME: &'static str = "Ics20Withdrawal";
92    const PACKAGE: &'static str = "penumbra.core.component.ibc.v1";
93    fn full_name() -> ::prost::alloc::string::String {
94        "penumbra.core.component.ibc.v1.Ics20Withdrawal".into()
95    }
96    fn type_url() -> ::prost::alloc::string::String {
97        "/penumbra.core.component.ibc.v1.Ics20Withdrawal".into()
98    }
99}
100#[derive(Clone, PartialEq, ::prost::Message)]
101pub struct ClientData {
102    #[prost(string, tag = "1")]
103    pub client_id: ::prost::alloc::string::String,
104    /// NOTE: left as Any to allow us to add more client types later
105    #[prost(message, optional, tag = "2")]
106    pub client_state: ::core::option::Option<::pbjson_types::Any>,
107    #[prost(string, tag = "3")]
108    pub processed_time: ::prost::alloc::string::String,
109    #[prost(uint64, tag = "4")]
110    pub processed_height: u64,
111}
112impl ::prost::Name for ClientData {
113    const NAME: &'static str = "ClientData";
114    const PACKAGE: &'static str = "penumbra.core.component.ibc.v1";
115    fn full_name() -> ::prost::alloc::string::String {
116        "penumbra.core.component.ibc.v1.ClientData".into()
117    }
118    fn type_url() -> ::prost::alloc::string::String {
119        "/penumbra.core.component.ibc.v1.ClientData".into()
120    }
121}
122#[derive(Clone, Copy, PartialEq, ::prost::Message)]
123pub struct ClientCounter {
124    #[prost(uint64, tag = "1")]
125    pub counter: u64,
126}
127impl ::prost::Name for ClientCounter {
128    const NAME: &'static str = "ClientCounter";
129    const PACKAGE: &'static str = "penumbra.core.component.ibc.v1";
130    fn full_name() -> ::prost::alloc::string::String {
131        "penumbra.core.component.ibc.v1.ClientCounter".into()
132    }
133    fn type_url() -> ::prost::alloc::string::String {
134        "/penumbra.core.component.ibc.v1.ClientCounter".into()
135    }
136}
137#[derive(Clone, PartialEq, ::prost::Message)]
138pub struct ConsensusState {
139    #[prost(message, optional, tag = "1")]
140    pub consensus_state: ::core::option::Option<::pbjson_types::Any>,
141}
142impl ::prost::Name for ConsensusState {
143    const NAME: &'static str = "ConsensusState";
144    const PACKAGE: &'static str = "penumbra.core.component.ibc.v1";
145    fn full_name() -> ::prost::alloc::string::String {
146        "penumbra.core.component.ibc.v1.ConsensusState".into()
147    }
148    fn type_url() -> ::prost::alloc::string::String {
149        "/penumbra.core.component.ibc.v1.ConsensusState".into()
150    }
151}
152#[derive(Clone, PartialEq, ::prost::Message)]
153pub struct VerifiedHeights {
154    #[prost(message, repeated, tag = "1")]
155    pub heights: ::prost::alloc::vec::Vec<::ibc_proto::ibc::core::client::v1::Height>,
156}
157impl ::prost::Name for VerifiedHeights {
158    const NAME: &'static str = "VerifiedHeights";
159    const PACKAGE: &'static str = "penumbra.core.component.ibc.v1";
160    fn full_name() -> ::prost::alloc::string::String {
161        "penumbra.core.component.ibc.v1.VerifiedHeights".into()
162    }
163    fn type_url() -> ::prost::alloc::string::String {
164        "/penumbra.core.component.ibc.v1.VerifiedHeights".into()
165    }
166}
167#[derive(Clone, Copy, PartialEq, ::prost::Message)]
168pub struct ConnectionCounter {
169    #[prost(uint64, tag = "1")]
170    pub counter: u64,
171}
172impl ::prost::Name for ConnectionCounter {
173    const NAME: &'static str = "ConnectionCounter";
174    const PACKAGE: &'static str = "penumbra.core.component.ibc.v1";
175    fn full_name() -> ::prost::alloc::string::String {
176        "penumbra.core.component.ibc.v1.ConnectionCounter".into()
177    }
178    fn type_url() -> ::prost::alloc::string::String {
179        "/penumbra.core.component.ibc.v1.ConnectionCounter".into()
180    }
181}
182#[derive(Clone, PartialEq, ::prost::Message)]
183pub struct ClientConnections {
184    #[prost(string, repeated, tag = "1")]
185    pub connections: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
186}
187impl ::prost::Name for ClientConnections {
188    const NAME: &'static str = "ClientConnections";
189    const PACKAGE: &'static str = "penumbra.core.component.ibc.v1";
190    fn full_name() -> ::prost::alloc::string::String {
191        "penumbra.core.component.ibc.v1.ClientConnections".into()
192    }
193    fn type_url() -> ::prost::alloc::string::String {
194        "/penumbra.core.component.ibc.v1.ClientConnections".into()
195    }
196}
197/// IBC configuration data.
198#[derive(Clone, Copy, PartialEq, ::prost::Message)]
199pub struct IbcParameters {
200    /// Whether IBC (forming connections, processing IBC packets) is enabled.
201    #[prost(bool, tag = "1")]
202    pub ibc_enabled: bool,
203    /// Whether inbound ICS-20 transfers are enabled
204    #[prost(bool, tag = "2")]
205    pub inbound_ics20_transfers_enabled: bool,
206    /// Whether outbound ICS-20 transfers are enabled
207    #[prost(bool, tag = "3")]
208    pub outbound_ics20_transfers_enabled: bool,
209}
210impl ::prost::Name for IbcParameters {
211    const NAME: &'static str = "IbcParameters";
212    const PACKAGE: &'static str = "penumbra.core.component.ibc.v1";
213    fn full_name() -> ::prost::alloc::string::String {
214        "penumbra.core.component.ibc.v1.IbcParameters".into()
215    }
216    fn type_url() -> ::prost::alloc::string::String {
217        "/penumbra.core.component.ibc.v1.IbcParameters".into()
218    }
219}
220/// IBC genesis state.
221#[derive(Clone, Copy, PartialEq, ::prost::Message)]
222pub struct GenesisContent {
223    /// IBC parameters.
224    #[prost(message, optional, tag = "1")]
225    pub ibc_params: ::core::option::Option<IbcParameters>,
226}
227impl ::prost::Name for GenesisContent {
228    const NAME: &'static str = "GenesisContent";
229    const PACKAGE: &'static str = "penumbra.core.component.ibc.v1";
230    fn full_name() -> ::prost::alloc::string::String {
231        "penumbra.core.component.ibc.v1.GenesisContent".into()
232    }
233    fn type_url() -> ::prost::alloc::string::String {
234        "/penumbra.core.component.ibc.v1.GenesisContent".into()
235    }
236}